Processing

Please wait...

PATENTSCOPE will be unavailable a few hours for maintenance reason on Saturday 31.10.2020 at 7:00 AM CET
Settings

Settings

Goto Application

1. CN105844450 - 管理远程事件的技术

Note: Text based on automatic Optical Character Recognition processes. Please use the PDF version for legal matters

[ ZH ]
管理远程事件的技术


本申请是申请日:2012.12.7,申请号为201210526366.3,名称为“管理远程事件的技术”的申请的分案申请。
技术领域
本发明涉及管理远程事件的技术。
背景技术
在计算中,行业(LOB)系统通常指的是为有时被称为企业的商业实体的客户提供LOB应用的计算或通信系统。LOB应用是企业的关键任务软件应用的某种形式。LOB应用的一个示例是客户关系管理(CRM)应用。CRM应用被设计成组织、自动化和同步销售、市场营销、客户服务和技术支持的业务流程。知识工作者可以从全世界任何地方通过网络访问CRM应用,以创建、消费和更新客户数据。
在某些情况下,LOB系统与企业使用的其他支持系统集成。LOB系统可被设计成与为企业的特定业务流程定制的内部企业服务器进行互操作。例如,CRM应用可管理作为从一个或多个企业服务器控制的企业的较大销售流程的一部分的客户数据。在这些情况下,LOB系统可能需要将LOB数据与企业服务器同步。数据同步操作具有可按照计算资源和通信资源来测量的相关联的成本。通常,这些成本应变于给定性能水平,较高的性能水平具有较高的相关联成本。由此,当前存在对用于在给定性能水平的情况下降低成本的高效数据同步技术的需求。本发明的改进正是针对这些和其他考虑事项而需要的。
发明内容
提供本发明内容以便以简化形式介绍将在以下具体实施方式中进一步描述的一些概念。本发明内容并非旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
各实施例可涉及一种或多种用于机器对机器(M2M)系统的增强的远程事件管理技术。具体而言,一些实施例可涉及由企业系统实现以便代表一个或多个客户机设备来管理来自一个或多个LOB系统的事件通知的增强的远程事件管理技术。LOB系统通常可管理和存储商业实体的商业数据(被称为LOB数据)。LOB系统可使用推送通知模型来将对由该LOB系统存储的商业数据做出的任何改变或修改通知给企业系统。企业系统可接收推送通知,并将推送通知路由至自定义事件接收器,该自定义事件接收器被设计成响应于变更事件来执行自定义业务逻辑,包括将变更事件通知给各客户机设备。
例如在一个实施例中,一种装置可包括处理器电路和被安排成由处理器电路执行的远程事件应用。该远程事件应用可用于管理发布者实体和订阅者实体的远程事件通知。远程事件应用可包括事件监视器组件和其他元素,该事件监视器组件用于接收具有关于发布者实体的发布者实体事件的外部事件通知消息。事件监视器组件可以从多个自定义事件接收器组件中选择与发布者实体相关联的自定义事件接收器组件,并将该外部事件通知消息发送到所选自定义事件接收器组件。该自定义事件接收器组件可实现诸如代码调出等为特定应用程序或系统程序设计的自定义业务逻辑。对其他实施例也予以描述并要求保护。
通过阅读下面的具体实施方式并参考相关联的附图,这些及其它特点和优点将变得显而易见。应该理解,前面的概括说明和下面的详细描述只是说明性的,不会对所要求保护的各方面形成限制。
附图说明
图1示出了远程事件管理系统的一个实施例。
图2示出了远程事件管理系统的操作环境的一个实施例以及远程事件应用的更详细的图示。
图3示出了远程事件管理系统的操作环境的一个实施例以及事件监视器组件的更详细的图示。
图4示出了远程事件管理系统的操作环境的一个实施例以及自定义事件接收器的更详细的图示。
图5示出了远程事件管理系统的操作环境的一个实施例以及事件通知组件的更详细的图示。
图6A示出了远程事件管理系统的第五操作环境的一个实施例以及事件管理组件的更详细的图示。
图6B示出了远程事件管理系统的第五操作环境的一个实施例以及对于可靠性事件的事件管理组件的更详细的图示。
图7示出了远程事件管理系统的逻辑流程的一个实施例。
图8示出了远程事件管理系统的订阅操作的消息流的一个实施例。
图9示出了远程事件管理系统的取消订阅操作的消息流的一个实施例。
图10示出了远程事件管理系统的通知操作的消息流的一个实施例。
图11示出了适用于远程事件管理系统的示例性计算系统体系结构的一个实施例。
图12示出了适用于远程事件管理系统的示例性通信系统体系结构的一个实施例。
具体实施方式
各实施例涉及用于企业系统的增强的远程事件管理技术。更具体而言,一些实施例可涉及用于管理诸如LOB系统和企业系统的不同网络元件之类的异构网络设备之间的事件通知的增强的远程事件管理技术。企业系统可由商业实体拥有和操作。LOB系统可由向企业系统提供应用和数据服务的独立第三方供应商来拥有和操作。LOB系统的网络元件的一个示例可包括执行诸如CRM应用等LOB应用的LOB服务器或服务器阵列。企业系统的网络元件的一个示例可包括企业服务器或服务器阵列,诸如由华盛顿州雷蒙德市的微软公司制造的企业服务器。也描述其它示例。
企业系统的企业服务器可将各种增强的远程事件管理技术实现为LOB系统和客户机设备之间的中间层平台。增强的远程事件管理技术的一些示例可包括增强的远程事件监视服务和增强的远程事件通知服务。也描述其他增强的远程事件管理技术。
在各实施例中,企业服务器可实现增强的远程事件监视服务,该服务允许LOB系统和企业系统以高效且经济的方式同步对由LOB系统管理的LOB数据的变更。企业服务器可实现专门为不同的LOB系统设计的各种自定义事件接收器。自定义事件接收器可响应于来自对应的LOB系统的对LOB数据的变更的推送通知来实现诸如代码调出等用于不同应用程序和系统程序的自定义业务逻辑。在一个实施例中,自定义事件接收器可被实现为Share Point web应用平台的各web部分,诸如端口小部件、窗口小部件或小配件。
在各实施例中,企业服务器可实现增强的远程事件通知服务,该服务在LOB系统管理的LOB数据发生变更事件时向用户的客户机设备提供可配置通知。这些通知可经由以下各种技术来实现:电子邮件(email)、即时消息(IM)、文本消息、页面消息、短消息收发服务(SMS)消息、多媒体消息收发服务(MMS)消息、社交网络服务(SNS)消息或任何其他合适的消息收发技术。
如上所述,信息工作者频繁地创建、消费和更新LOB系统中存储的商业数据(或商业对象)。一些企业系统利用拉取模型来从LOB系统中检索已变更数据。然而,存在与该拉取模型相关联的显著缺点。例如,商业数据可能由于缺少对LOB系统内部的低层对象的读取支持而无法被外部应用读取,安全模型可能阻止对特定对象的读取访问,商业对象可能是来自一个或多个LOB应用系统的合成,以及将始终存在发生在拉取间隔之间的丢失的变更事件。
另一种可能的解决方案是利用推送模型来将已变更数据从LOB系统推送到企业系统。然而,存在许多不同种类的LOB系统,每一种LOB系统都可能利用一组不同的服务、服务入口点、消息格式、数据架构、数据类型、主键、代码等。结果,企业系统可能难以按统一的方式适应接收自这一组不同的LOB系统的推送通知。此外,针对每一种LOB系统的解决方案可利用不可互操作的部分,由此消耗更多的计算和通信资源。
各实施例尝试通过实现LOB系统和企业系统之间的集成推送通知模型来解决这些和其他问题。此外,各实施例可实现web服务以允许LOB系统使用共同的寻址模式和共同的数据架构来向企业系统推送通知。web服务可将LOB通知转发至专门为每一种LOB系统设计的自定义事件接收器。自定义事件接收器可接收LOB通知并响应于LOB通知来执行被实现为可由企业系统执行的代码调出的自定义业务逻辑。代码调出可以用诸如用于云计算体系结构的网络操作系统等给定应用程序或系统程序所需的任何编程语言来实现。业务逻辑可被专门设计成支持企业服务器管理的业务工作流。自定义事件接收器可包括通知系统,该通知系统具有用于将任何变更事件通知给用户的客户机设备的通知参数。或者,web服务可将LOB通知路由至企业系统本机的通知系统,该通知系统进而将任何变更事件通知给用户的客户机设备。结果,各实施例可实现能够以高效且有效的方式处理多个异构LOB系统的统一推送模型。此外,企业系统可以向LOB系统提供不同水平的可靠性和服务质量(QoS),由此允许用于关键任务应用的区别化服务。这些和其他改进提高操作者、设备或网络的可承受性、可伸缩性、模块性、可扩展性或互操作性。
现在将参考附图,全部附图中相同的附图标记用于指代相同的元素。在下面的描述中,为了进行说明,阐述了很多具体细节以便提供对本发明的全面理解。然而,显而易见,可以没有这些具体细节的情况下实施各新颖实施方式。在其他情况下,以框图形式示出了各个公知的结构和设备以便于描述本发明。本发明将涵盖落入所要求保护的主题的精神和范围内的所有修改、等效方案和替换方案。
图1示出了远程事件管理系统100的一个实施例。远程事件管理系统100可适于实现增强的远程事件管理技术,该技术用于管理诸如独立第三方供应商的LOB系统和利用LOB系统提供的应用和数据服务的商业实体的企业系统的不同网络元件等异构网络设备之间的事件通知。由于LOB系统和企业系统通常由不同的商业实体拥有,且增强的远程事件管理技术通常由企业系统实现,因此LOB系统及其相关联的应用此处有时可被称为“外部应用”或“外部实体”。
如图1所示,远程事件管理系统100包括服务器设备110、服务器设备120和客户机设备130。可以理解,远程事件管理系统100可以如给定实现所需要的那样包括更多或更少的元件。各实施例不限于该上下文。
在各实施例中,远程事件管理系统100可包括服务器设备110。服务器设备110可包括用于商业实体的企业硬件平台及相关联的服务器软件,适用于存储和执行各种LOB应用程序以创建、读取、更新、删除、查询或以其他方式处理存储在数据存储116中的LOB数据。服务器设备110可以在如针对服务器设备120和/或客户机设备130和其他设备描述的任何硬件和/或软件平台上实现。适用于服务器设备110的示例性计算体系结构可参考图11来描述。然而,各实施例不限于这些示例。
在一个实施例中,服务器设备110可包括或被实现为LOB系统的网络元件。LOB系统一般包括通常在用于商业实体的企业硬件平台上实现的各种LOB应用程序。LOB应用程序是被设计成提供各种商业应用服务的应用程序。LOB应用程序的示例可包括客户关系管理(CRM)应用程序、企业资源规划(ERP)应用程序、供应链管理(SCM)应用程序、商业智能(BI)应用程序和使用面向商业的应用逻辑的其他商业应用程序。LOB系统可实现具有相关联的LOB数据的一个或多个LOB应用程序。各种LOB应用程序的LOB数据可被存储在整个LOB系统中的各个元件中,包括服务器设备110的数据存储116和/或LOB系统的其他网络元件。
只要使用LOB应用程序来对LOB数据做出变更,就可存在将变更事件促进到诸如可与LOB系统互操作的企业系统的网络元件等与LOB系统相关联的其他网络元件的需求。因此,各实施例涉及提供增强的远程事件管理技术,该技术允许LOB系统贯穿连接到LOB系统的各种物理和逻辑设备来传播对LOB数据的变更。
服务器设备110可被安排成使用推送技术来传播对存储在数据存储116中的LOB数据的变更。推送技术通常描述其中是发送者而非接收者发起数据传输的通信技术。这与其中是接收者而非发送者发起数据传输的拉取技术相反。推送服务经常基于提前表达的信息偏好。由此,这有时被称为发布/订阅模型,其中一个软件对象可订阅另一软件对象提供的服务。订阅另一软件对象提供的服务的软件对象此处被称为“订阅者实体”。向另一软件对象提供的订阅的服务的软件对象此处被称为“发布者实体”。
如图1所示,服务器设备110可实现发布者实体112。发布者实体112可包括能够创建、修改、删除或存储LOB数据的任何逻辑构造。发布者实体112的示例可包括软件应用、软件对象或数据源等。在一个实施例中,例如发布者实体112可包括诸如数据存储116等LOB应用的数据源,该数据源存储该LOB应用的LOB数据。
如图1所示,服务器设备110还可实现发布者实体处理程序114。发布者实体处理程序114可包括实现响应于发布者实体112的变更事件来生成和发送通知消息的逻辑的软件应用或软件对象。变更事件可包括其中发布者实体112的LOB数据的一部分被创建、修改、删除、处理或以其他方式改变状态的任何事件。发布者实体处理程序114可检测发布者实体112的变更事件,并使用作为通知消息的目的地地址的web服务地址来向服务器设备120发送通知消息。
在各实施例中,远程事件管理系统100可包括服务器设备120。在一个实施例中,服务器设备120可包括企业系统中能够读取LOB数据的网络元件。企业系统一般包括通常在用于商业实体的企业硬件平台上实现的各种商业应用程序。企业系统的网络元件的一个示例可包括企业服务器或服务器阵列,诸如实现微软Share Point服务器应用软件的企业服务器。
微软Share Point是web应用平台。Share Point被设计成对多个web应用的集中替换并支持企业网站要求的各种组合。它通常与web内容管理和文档管理系统相关联。Share Point提供一种多用途平台,该平台允许管理和提供内联网门户、外联网和网站、文档管理和文件管理、协作空间、社交网络工具、企业搜索、商业智能工具化、过程/信息集成和第三方开发的解决方案。Share Point还可被用作web应用开发平台。
在各实施例中,服务器设备120可包括用于商业实体的企业硬件平台,适用于存储和执行各种商业应用程序以便从服务器设备110接收LOB数据。如同服务器设备110,服务器设备120可以在如针对服务器设备110和/或客户机设备130和其他设备描述的任何硬件和/或软件平台上实现。适用于服务器设备120的示例性计算体系结构可参考图11来描述。然而,各实施例不限于这些示例。
如图1所示,服务器设备120可包括处理器电路122和被安排成由处理器电路122执行的远程事件应用124。远程事件应用124可实现各种增强的远程事件管理技术作为服务器设备110和客户机设备130之间的中间层服务。远程事件应用124可包括用于服务器设备110和客户机设备130的适当接口,以便以每一设备实现的特定格式和数据架构来与每一设备传递消息。例如,当服务器设备110和客户机设备130对LOB数据及相关联的消息利用不同的格式或数据架构时,远程事件应用124可执行数据转换操作。然而,当服务器设备110和客户机设备130对LOB数据及相关联的消息利用共同的格式或数据架构时,远程事件应用124可以不执行任何数据转换操作并作为通过设备来操作。另外地或另选地,远程事件应用124还可实现适用于给定服务器设备110和/或客户机设备130的处理传入和传出消息的自定义业务逻辑。
在各实施例中,远程事件管理系统100可包括一个或多个客户机设备130。客户机设备130可包括被安排成接收对于服务器设备110的数据存储116所存储的LOB数据的变更事件的通知的任何客户机设备或客户机系统。客户机设备130的示例可以包括但不限于,处理系统、计算机、服务器、工作站、电器、终端、个人计算机、膝上型计算机、超膝上型计算机、手持式计算机、个人数字助理、智能电话、平板计算机、消费电子产品、电视机、数字电视机、机顶盒、电话、移动电话、蜂窝电话、手机、无线接入点、基站、用户站、移动用户中心、无线电网络控制器、路由器、集线器、网关、网桥、交换机、机器、或其组合。各实施例不限于该上下文。
客户机设备130可订阅服务器设备110经由服务器设备120提供的推送服务。由此,服务器设备120可实现订阅者实体132和订阅者实体处理程序134。尽管订阅者实体132和订阅者实体处理程序134被示为客户机设备130的一部分,但可以理解,订阅者实体132和订阅者实体处理程序134中的一个或两者可被实现为服务器设备120的一部分。在这种情况下,客户机设备130可简单地实现用于从服务器设备120接收通知消息的消息收发应用(未示出)。
订阅者实体132可包括能够读取LOB数据的任何逻辑构造。订阅者实体132的示例可包括软件应用、软件对象或数据源。在一个实施例中,例如订阅者实体132可包括用于远程事件应用124的软件对象。
订阅者实体处理程序134可包括实现响应于发布者实体112的变更事件来经由服务器设备120接收通知消息的逻辑的软件程序。订阅者实体处理程序134可使用客户机设备130的用户选择的消息收发技术来从服务器设备120接收通知消息,并将该通知消息转发至客户机应用。
在一般操作中,发布者实体处理程序114可检测发布者实体112在服务器设备110上的变更事件(例如,对LOB数据的修改),并将适当地格式化的通知消息发送到服务器设备110的远程事件应用124。远程事件应用124可接收该通知消息,处理该通知消息,路由该通知消息,发起由服务器设备120定制的工作流,和/或以定制的方式将通知消息发送到客户机设备130。
在一种使用场景中,作为示例,假定Ichiro是被称为“Contoso”的商业实体的销售经理并且负责欧洲的销售。Ichiro具有始终处于进展中的销售代表团队。销售代表可在实地使用移动应用来将任何潜在客户添加到由服务器设备110实现的CRM LOB系统。Ichiro想要知道他的销售团队在进展中的同时所发生的一切。Ichiro在服务器设备120实现的Share Point站点上具有所有潜在客户的虚拟列表。Ichiro订阅关于潜在客户到该虚拟列表的任何添加的警告,以使他能够在他的电子邮件中看见警告。当他的一个销售代表将新的潜在客户添加到CRM LOB系统时,Ichiro使用的客户机设备130接收作为他的收件箱中的电子邮件消息的警告。他立即移至虚拟列表并从他的销售团队中指派一个高级销售代表来跟进该新潜在客户。该高级销售代表在他的客户机设备130上获取对由于Ichiro的指派而创建的新任务的警告。快速对新潜在客户做出反映的能力导致在更短的时间段内转换更多的潜在客户。
在另一使用场景中,作为示例,假定被称为“Fabrikam”的商业实体是专营重型工程装备的制造公司的供应商。从他们的客户接收到的采购单是复杂的,具有多个产品项且每一个产品项都由不同部门中的不同个人来处理。通常,这些查询的周转时间需要尽可能地短,并且被要求更新产品项的多个人的复杂性意味着增加的电子邮件通信和跟进。Fabrikam包括一企业系统,该企业系统将服务器设备120实现为与服务器设备110实现的ERP LOB系统通信的Share Point安装。每次为ERP LOB系统创建采购单时,来自相关部门的雇员就在对应的客户机设备130处获得电子邮件警告。他们能够在Share Point虚拟列表上查看要求并在虚拟列表上更新服务器设备120提供的状态。结果,需要更短的时间段来处理采购单,并且Fabrikam能够减少周转时间,这导致客户满意度提高。
图2示出了远程事件管理系统100的操作环境200的一个实施例以及远程事件应用124的更详细的图示。
远程事件应用124一般可被安排成管理发布者实体112和订阅者实体132的远程事件通知。在图1所示的实施例中,远程事件应用124可包括事件监视器组件212,多个自定义事件接收器组件214-a、事件通知组件216和事件管理组件218。可以理解,远程事件管理系统124可以如给定实现所需要的那样包括更多或更少的组件。各实施例不限于该上下文。
值得指出的是,本文所使用的“a”、“b”、“c”以及类似的标志符是表示任何正整数的变量。因此,例如,如果一实现设置值为a=5,则一整组自定义事件接收器组件214-a可包括自定义事件接收器组件214-1、214-2、214-3、214-4以及214-5。各实施例不限于该上下文。
如此处所使用的,术语“组件”和“系统”旨在指示与计算机相关的实体,其或者是硬件、硬件和软件的组合、软件、或者是执行中的软件。例如,组件可被实现为在处理器上运行的进程、处理器、硬盘驱动器、多个(光和/或磁存储介质的)存储驱动器、对象、可执行代码、执行的线程、程序、和/或计算机。作为说明,在服务器上运行的应用和服务器两者都可以是组件。一个或多个组件可以驻留在进程和/或执行的线程内,且组件可以视给定实现所需而位于一台计算机上和/或分布在两台或更多的计算机之间。各实施例不限于该上下文。
远程事件应用124可包括事件监视器组件212。事件监视器组件212一般可被安排成监视接收自服务器设备110的通知消息。在一个实施例中,例如事件监视器组件212可接收具有发布者实体112的发布者实体事件的信息的外部事件通知消息204-b。发布者实体112可包括例如服务器设备110实现的LOB应用的数据源116。发布者实体事件可包括例如指示服务器设备110存储的LOB数据已变更状态(例如,添加、删除、被修改、被处理等)的发布者实体112的变更事件。
在一个实施例中,事件监视器组件212可包括或被实现为远程事件应用124的基于代表性状态转移(REST)的输入点。例如,示例性基于REST的输入点可具有如下签名:
{
POST
http://site/web/_vti_bin/client.svc/web/ProcessRemoteEvent?id=xxxxxxxxxxxxxx
HTTP/1.0
Request Body:
}
基于REST的输入点允许服务器设备110的共同服务入口点。共同服务入口点可由服务器设备110来排他地使用,或由也实现其他LOB应用的其他服务器设备共享。
对基于REST的输入点的使用方便接收外部事件通知消息204-d,并且还允许外部事件通知消息204-d共享相同或相似的数据格式。例如,当服务器设备120被实现为Share Point服务器时,外部事件通知消息204-d可包括通用原子馈源的一部分。原子馈源的通用特质允许外部事件通知消息204-d使用的字段名称与商业数据目录(BDC)模型中定义的那些字段名称相同。通用原子馈源的示例如下:
如上所示,属性名称“BcsItemIdentity”可以一致地用于来自服务器设备110实现的LOB系统的所有外部事件通知消息204-d,并且在某些情况下,也用于其他服务器设备实现的其他LOB系统。在后一种情况下,属性名称“BcsItemIdentity”可以一致地用于来自所有外部LOB系统的所有外部事件通知消息204-d,且在适当时变更属性名称的字段名称。
远程事件应用124可包括一个或多个自定义事件接收器组件214-a。远程事件应用124需要连接到LOB系统且告知LOB服务器需要在LOB系统处发生变更事件时通知该应用。每一个LOB系统都具有其自己的应用程序、实体、事件类型、用户、服务、服务入口点、消息格式、数据架构、数据类型、主键、代码等的集合。由此,远程事件应用124可以对给定LOB系统利用自定义事件接收器组件214-a形式的唯一端点。自定义事件接收器组件214-a可以各自实现用于服务器设备110(或其他服务器设备)实现的对应LOB系统的自定义业务逻辑。当远程事件应用124被实现为例如Share Point应用时,引入商业连接服务(BCS)和商业数据目录(BDC)中的新规制(stereotype)以启用到服务器设备110的连接并支持事件接收器功能。在一个实施例中,可规定该新规制用于服务器设备110的LOB系统。
远程事件应用124可包括事件通知组件216。事件通知组件216一般可以为客户机设备130提供通知服务。通知服务可被配置成适应给定客户机设备130或客户机设备130的用户的用户偏好。通知服务可通过将客户机事件通知消息208-e从服务器120传递至客户机设备130,使用各种消息收发技术、应用和模态来实现。客户机事件通知消息208-e的示例可包括但不限于电子邮件消息、IM消息、文本消息、页面消息、SMS消息、MMS消息、SNS消息或任何其他合适的消息类型。各实施例不限于该上下文。
远程事件应用124可包括事件管理组件218。事件管理组件218一般可提供管理服务以允许用户或订阅者实体132利用一个或多个外部事件管理消息202-b和客户机事件管理消息206-c来订阅或取消订阅发布者实体112。事件管理组件218还可提供管理服务以设置事件通知组件216提供的通知服务。事件管理组件218还可提供管理服务以便为接收自服务器设备110的通知消息提供不同的可靠性和QoS水平。
图3示出了远程事件管理系统100的操作环境300的一个实施例以及事件监视器组件212的更详细的图示。
如图3所示,发布者实体处理程序112可检测服务器设备110处的发布者实体112的发布者实体事件302-f。发布者实体事件302-f的示例可包括添加项目事件302-1、删除项目事件302-2、修改项目事件302-3等。发布者实体事件处理程序114可生成外部事件通知消息204-1并使用例如基于REST的输入点来将该消息发送到服务器设备120。
事件监视器组件212可接收外部事件通知消息204-1,并从多个自定义事件接收器组件214-e中选择与发布者实体312-g相关联的自定义事件接收器组件214-e,并且将外部事件通知消息204-1发送到所选自定义事件接收器组件214-e。每一个自定义事件接收器组件214-e都可对应于不同的发布者实体312-g。每一个发布者实体312-g都可以是参考图1描述的发布者实体112的实例。如图3所示,自定义事件接收器组件214-1可以与发布者实体312-1相关联,自定义事件接收器组件214-2可以与发布者实体312-2相关联,而自定义事件接收器组件214-3可以与发布者实体312-3相关联。
图4示出了远程事件管理系统100的操作环境400的一个实施例以及自定义事件接收器组件214-a的更详细的图示。
如图4所示,事件监视器组件212可接收外部事件通知消息204-1,并基于分配给与外部事件通知消息204-1相关联的发布者实体312-g的全局唯一标识符(GUID)来为该外部事件通知消息204-1选择自定义事件接收器组件214-1。假定GUID 402标识发布者实体312-1,事件监视器组件212可选择自定义事件接收器组件214-1,如图4中的加粗文本所示。
自定义事件接收器组件214-1可实现诸如代码调出402等为特定应用程序或系统程序设计的自定义业务逻辑。例如,自定义事件接收器组件214-1可接收外部事件通知消息204-1,并调用被安排成响应于发布者实体事件来执行自定义逻辑的代码调出402。代码调出402可包括响应于服务器设备110中的发布者实体事件来管控动作的计算机程序代码。
代码调出402使得开发者能够具有使他们能够对LOB数据中的变更事件做出反应的代码。例如,假定发布者实体112是存储在数据存储116中的对汽车公司的客户的服务请求的列表。只要新服务请求被添加到服务请求的列表,发布者实体处理程序114就可检测变更事件,并生成具有变更事件信息的外部事件通知消息204-1。事件监视器组件212可接收外部事件通知消息204-1,并选择与发布者实体112和服务器设备110相关联的自定义事件接收器组件214-1。自定义事件接收器组件214-1可实现自定义逻辑以支持服务器设备110和客户机设备130两者。例如,新服务请求可被添加到服务器设备120管理的服务请求的虚拟列表。另外地或另选地,新服务请求可使用各种消息收发模态来被发送到客户机设备130。这些操作可在服务设备120或客户机设备130不必直接访问服务器设备110的数据存储116的情况下被完成,由此减少响应时间并增强用户体验。
开发者可将代码调出402设计成具有列表级或实体级订阅。对于列表级代码调出402,开发者能够编写代码作为对列表的事件响应的一部分。实体代码调出402可通过使开发者能够提供诸如由开发者开发的微软服务等基于网络的服务的代码调出统一资源定位符(URL)来支持。Azure是用于通过网络数据中心来构建、主存和缩放web应用的云计算平台。通过利用不同的自定义事件接收器214-a和代码调出402,远程事件应用124可担当中介,以便从外部LOB系统接收变更事件并将其传递至诸如Azure等各种云计算体系结构中的远程事件接收器。
图5示出了远程事件管理系统100的操作环境500的一个实施例以及事件通知组件216的更详细的图示。
如图5所示,远程事件应用124可包括事件通知组件216,该组件被安排成检索与订阅者实体132相关联的通知参数502-h,并向与订阅者实体132相关联的客户机应用(例如,消息收发应用)发送客户机事件通知消息208-e。用户可将用于事件通知组件216的一组选项配置成发送如由通知参数502-h编码的客户机事件通知消息208-e。例如,通知参数502-1可指示消息类型(例如,电子邮件消息)、通知参数502-2可指示消息时间(例如,工作时间期间的电子邮件、个人时间期间的SMS消息)、通知参数502-3可指示客户机设备130(例如,工作时间期间的工作站、个人时间期间的智能电话),等等。
服务器设备120的事件通知组件216可检索一个或多个通知参数502-h,并基于通知参数502-h来生成客户机事件通知消息208-e。例如,事件通知组件216可生成电子邮件消息534-1、SMS/MMS消息534-2、SNS消息534-3等。事件通知组件216可将客户机事件通知消息208-e发送到客户机设备130。
订阅者实体134的订阅者实体事件处理程序132可以从服务器设备120接收客户机事件通知消息208-e,并将客户机事件通知消息208-e转发至客户机应用540。在一个实施例中,例如客户机应用540可包括消息应用。例如在一个实施例中,客户机应用540可包括用于LOB系统和/或企业系统的瘦客户机。客户机应用540可使用具有各种图形用户界面(GUI)元素的各种GUI视图来向客户机设备130的用户呈现通知消息。GUI视图可由客户机应用540、订阅者实体处理程序134和/或诸如在客户机设备130上执行的操作系统(OS)等客户机设备130的本机应用来生成。
图6A示出了远程事件管理系统100的操作环境600的一个实施例以及事件管理组件218的更详细的图示。
事件管理组件218可提供管理服务以允许用户管理远程事件应用124的各种特征。如图6所示,用户可使用客户机设备130的web浏览器602来访问远程事件应用124提供的各种配置选项。配置选项可用于生成订阅事件604、取消订阅事件606、通知事件608和可靠性事件610以及其他类型的配置事件。
事件管理组件218可管理发布者实体112和订阅者实体132之间的订阅。订阅事件604和取消订阅事件606通常是成对事件。订阅事件604利用一个或多个外部事件管理消息202-b和客户机事件管理消息206-c来触发订阅者实体132订阅发布者实体112的一组操作。相反,取消订阅事件606利用一个或多个外部事件管理消息202-b和客户机事件管理消息206-c来触发取消订阅者实体132对发布者实体112的订阅的一组操作。
事件管理组件218可管理发布者实体112和订阅者实体132之间的远程事件通知。通知事件608可用于设置事件通知组件216提供的通知服务。例如,用户可以为客户机事件通知消息208-e设置订阅者实体132的一个或多个通知参数502-h。
事件管理组件218可管理外部事件通知消息204-d的可靠性水平。可靠性事件610可用于设置接收自服务器设备110的外部事件通知消息204-d的不同的可靠性和/或QoS水平。事件管理组件218可管理每一个发布者实体112的一组可靠性参数602-i。事件管理组件218可检索表示与发布者实体112相关联的可靠性水平的可靠性参数602-i,并基于可靠性参数602-i来处理外部事件通知消息204-d。
事件和通知处理的松耦合的异步特质施加一些独特的可靠性要求。在设计事件监视器组件212时,事件监视器组件212的所需可靠性水平可以是可配置选项。企业系统提供用于实现提供不同的可靠性水平的服务的各种基础结构。为给定企业系统选择正确的基础结构涉及将所需可靠性水平与该基础结构的能力进行匹配。
传递自LOB系统的变更事件的范围可以从信息性通知(例如,“你的花费报告已被批准”)到关键商业事件(例如,“供应商已经解除合同,触发Share Point中的工作流以选择新供应商”)。对于关键商业事件,需要可靠性和可跟踪性两者,因为这些变更事件将驱动Share Point中的事件处理程序和工作流。
为了适应不同种类的通知,事件管理组件218可允许用户如在可靠性参数602-i中编码的为通知设置不同的可靠性水平。五个可靠性水平的示例性集合可以在如下表1中示出:
表1
用户可使用事件管理组件218来选择可靠性水平,并且事件管理组件218可针对该所选可靠性水平来编码可靠性参数602-i及相关联的消息处理参数604-j的集合。可以理解,表1所示的可靠性水平是作为示例而非限制的。可以为给定实现建立任何数量的可靠性水平。各实施例不限于该上下文。
图6B示出了远程事件管理系统100的操作环境600的一个实施例以及事件管理组件218和可靠性事件610的更详细的图示。
如图6B所示,可靠性事件610可发起对应于用户所选可靠性水平的可靠性参数602-i的配置。可靠性参数602-i可具有被配置成提供所选可靠性水平的一组消息处理参数604-j。在一个实施例中,对应于给定可靠性参数602-i的消息处理参数604-j可包括重复消息参数604-1、备用服务器参数604-2和重放参数604-3。可以理解,参数604-1到604-3是作为示例而非限制的。可以对给定实现使用任何数量的消息处理参数604-j。各实施例不限于该上下文。
重复消息参数604-1可指示是接受还是拒绝接收自外部LOB应用的外部事件通知消息204-d。对于低可靠性水平(例如,可靠性水平1),事件监视器组件212可接受所有外部事件通知消息204-d,即使在LOB系统处对于相同的变更事件存在重复的消息。这反映其中在消耗服务器设备120的更多资源的代价下未给出消息传递保证的一种情况。当被设置成逻辑一(1)时,重复消息参数604-1可指示接受来自服务器设备110的重复的外部事件通知消息204-d。当被设置成逻辑零(0)时,重复消息参数604-1可指示不接受来自服务器设备110的重复的外部事件通知消息204-d。
备用服务器参数604-2可指示在主服务器不在运行时是否向备用服务器发送外部事件通知消息204-d。为了确保较高的可靠性水平(例如,可靠性水平2-5),备用服务器参数604-2可指示在服务器设备120不在运行时发生什么。例如,假定服务器设备120是Share Point站点的服务器阵列的一部分。在服务器设备120是主服务器并且无法处理通知的情况下,事件监视器组件212可将其接收到的任何外部事件通知消息204-d路由至备用或备份服务器。这确保外部事件通知消息204-d到达服务器以供处理。在这种情况下,事件监视器组件212可以在诸如网络装置或负载平衡器等与服务器设备120分开的网络元件中实现。当被设置成逻辑一(1)时,备用服务器参数604-2可指示外部事件通知消息204-d将在服务器设备110不运行时被发送到备用服务器。当被设置成逻辑零(0)时,备用服务器参数604-2可指示外部事件通知消息204-d在服务器设备110不运行时不会被发送到备用服务器,而是被简单地丢弃。
重放参数604-3可指示当事件监视器组件212在处理外部事件通知消息204-d时检测到错误时是否重放外部事件通知消息204-d。对于那些最高的可靠性水平(例如,可靠性水平5),重放参数604-3可确保即使在远程事件应用124或服务器设备120的一个组件发生内部错误时,外部事件通知消息204-d也不会丢失。当检测到错误情况时,事件监视器组件212和/或自定义事件接收器组件214-a可重放或重新处理外部事件通知消息204-d。重放事件可发生直到外部事件通知消息204-d已由远程事件应用124和/或服务器设备120完全处理。当被设置成逻辑一(1)时,重放参数604-3可指示外部事件通知消息204-d将在出现错误情况时被重放。当被设置成逻辑零(0)时,重放参数604-3可指示外部事件通知消息204-d在出现错误情况时不会被重放。
当事件监视器组件212接收到外部事件通知消息204-d时,事件监视器组件212可检索与发布者实体112相关联的可靠性参数602-i及任何相关联的消息处理参数604-j。事件监视器组件212然后可根据可靠性参数602-i和消息处理参数604-j来处理外部事件通知消息204-d。
作为示例,假定发布者实体112具有被设置成可靠性水平一的可靠性参数602-1。在这种情况下,消息处理参数604-j可包括全都被设置成逻辑零(0)的重复消息参数604-1、备用服务器参数604-2和重放参数604-3。
继续该示例,假定发布者实体112具有被设置成可靠性水平二的可靠性参数602-1。在这种情况下,消息处理参数604-j可包括被设置成逻辑一(1)的重复消息参数604-1,以及被设置成逻辑零(0)的备用服务器参数604-2和重放参数604-3。
继续该示例,假定发布者实体112具有被设置成可靠性水平三的可靠性参数602-1。在这种情况下,消息处理参数604-j可包括被设置成逻辑一(1)的重复消息参数604-1和重放参数604-3,以及被设置成逻辑零(0)的备用服务器参数604-2。
继续该示例,假定发布者实体112具有被设置成可靠性水平四的可靠性参数602-1。在这种情况下,消息处理参数604-j可包括被设置成逻辑一(1)的重复消息参数604-1和备用服务器参数604-2,以及被设置成逻辑零(0)的重放参数604-3。
继续该示例,假定发布者实体112具有被设置成可靠性水平五的可靠性参数602-1。在这种情况下,消息处理参数604-j可包括全都别设置成逻辑一(1)的重复消息参数604-1、备用服务器参数604-2和重放参数604-3。
此处所包括的是一组表示用于执行所公开的体系结构的新颖方面的示例性方法的流程图。尽管出于解释简明的目的,此处例如以流程图形式示出的一个或多个方法被示出并且描述为一系列动作,但是可以理解,各方法不受动作的次序的限制,因为根据本发明,某些动作可以按与此处所示并描述的不同的次序和/或与其他动作同时发生。例如,本领域的技术人员将明白并理解,方法可被替换地表示为一系列相互相关联的状态或事件,诸如以状态图的形式。此外,并非方法中所示出的所有动作都是新颖实现所必需的。
图7示出了逻辑流程700的一个实施例。逻辑流程700可表示由在此所描述的一个或多个实施例(诸如远程事件应用124)所执行的操作中的一些或全部。
在图7所示的实施例中,逻辑流程700可以在框702处由第二服务器设备从第一服务器设备接收具有关于发布者实体的发布者实体事件的外部事件通知消息。例如,远程事件应用124的事件监视器组件212可由第二服务器设备120从第一服务器设备110接收具有发布者实体112的发布者实体事件302-f的外部事件通知消息204-d。发布者实体事件302-f可包括表示存储在服务器设备110的数据存储116中的LOB数据的状态的变更的变更事件。
逻辑流程700可以在框704处从第二服务器设备处的多个自定义事件接收器组件中选择与发布者实体相关联的自定义事件接收器组件。例如,事件监视器组件212可以从第二服务器设备120处的多个自定义事件接收器组件214-1到214-a中选择与发布者实体112相关联的自定义事件接收器组件214-1。所选自定义事件接收器组件214-1可被专门设计成接收和处理来自发布者实体112和/或服务器设备110的事件通知。
逻辑流程700可以在框706处向第二服务器设备处的所选自定义事件接收器组件发送外部事件通知消息。例如,事件监视器组件212可以向第二服务器设备120处的所选自定义事件接收器组件214-1发送外部事件通知消息204-d。在这种情况下,事件监视器组件212担当用于将来自不同LOB系统的外部事件通知消息204-d路由到为该LOB系统定制的适当的自定义事件接收器组件214-a的路由器或交换机。
逻辑流程700可以在框708处将针对订阅发布者实体的订阅者实体的客户机事件通知消息从第二服务器设备发送到客户机设备。例如,远程事件应用124的事件通知组件216将针对先前订阅发布者实体112的订阅者实体132的客户机事件通知消息208-e从第二服务器设备120发送到客户机设备130。例如,事件通知组件216可生成电子邮件消息并将该电子邮件消息发送到客户机设备130的客户机应用540。
图8示出了远程事件管理系统100响应于订阅事件604的订阅操作的消息流800的一个实施例。如消息流800所示,客户机设备130可以向服务器设备120发送对订阅者实体132的“警告我”(IW)或list.eventreceivers.add(…)请求。服务器设备120可发起对服务器设备110的发布者实体112的订阅操作。服务器设备110可使得订阅者实体132订阅发布者实体112,并将发布者实体处理程序114配置成与服务器设备120连接。服务器设备110然后可向服务器设备120发送确认消息。服务器设备120可将订阅持久存储到服务器设备120的数据存储126,并且一旦存储,就将订阅完成消息发送到客户机设备130。
图9示出了远程事件管理系统100响应于取消订阅事件606的取消订阅操作的消息流900的一个实施例。如消息流900所示,客户机设备130可以向服务器设备120发送“删除警告”(IW)或list.eventreceivers.remove(…)请求。服务器设备120可以从数据存储126中检索订阅,并发起取消订阅操作以取消订阅者实体132对服务器设备110的发布者实体112的订阅。服务器设备110可取消订阅者实体132对发布者实体112的订阅,并将发布者实体处理程序114配置成移除与服务器设备120的连接。服务器设备110然后可向服务器设备120发送确认消息。服务器设备120可将订阅从服务器设备120的数据存储126中移除,并且一旦移除,就将取消订阅完成消息发送到客户机设备130。
图10示出了远程事件管理系统100的通知操作的消息流1000的一个实施例。如消息流1000所示,服务器设备110可以向服务器设备120发送外部事件通知消息204-d。服务器设备120实现的远程事件应用124的事件监视器组件212可将确认发回到服务器设备110以指示已经成功地接收到外部事件通知消息204-d。事件监视器组件212可以向事件通知组件216发送指示已经接收到外部事件通知消息204-d的激发事件信号,从多个自定义事件接收器组件214-1到214-a中选择一自定义事件接收器214-1,并将外部事件通知消息204-d路由到自定义事件接收器214-1。
事件通知组件216可将外部事件通知消息204-d持久存储在服务器设备120的数据存储126中。数据存储126可包括例如Share Point应用的Share Point内容数据库。
自定义事件接收器214-1可发送从数据存储126中获取事件数据的请求,并从数据存储126接收事件数据。自定义事件接收器214-1还可发送从数据存储126中获取订阅数据的请求,并从数据存储126接收订阅数据。自定义事件接收器214-1可比较事件数据和订阅数据,并且当存在匹配时,向客户机设备130的客户机应用540发送客户机事件通知消息208-e。
图11示出适用于实现上述各实施例的示例性计算体系结构1100的实施例。如在本申请中所使用的,术语“系统”和“组件”旨在表示计算机相关的实体,其可以是硬件、硬件和软件的组合、软件、或者执行中的软件,其示例由示例性计算体系结构1100提供。例如,组件可以是但不限于,在处理器上运行的进程、处理器、硬盘驱动器、多个(光和/或磁存储介质的)存储驱动器、对象、可执行代码、执行的线程、程序、和/或计算机。作为说明,在服务器上运行的应用和服务器两者都可以是组件。一个或多个组件可以驻留在进程和/或执行的线程内,且组件可以位于一个计算机上和/或分布在两个或更多的计算机之间。此外,组件可以通过各种类型的通信介质可通信地彼此耦合以协调操作。该协调可以涉及单向或双向信息交换。例如,组件可以传递通过通信介质传递的信号形式的信息。该信息可被实现成分配给各条信号线的信号。在这些分配中,每一个消息都是信号。然而,其他实施方式可替代地采用数据消息。这些数据消息可以跨各个连接发送。示例性连接包括并行接口、串行接口和总线接口。
在一个实施例中,计算体系结构1100可包括计算设备的一部分或作为计算设备的一部分实现。电子设备的示例可包括但不限于,移动设备、个人数字助理、移动计算设备、智能电话、蜂窝电话、手机、单向寻呼机、双向寻呼机、消息收发设备、计算机、个人计算机(PC)、台式计算机、膝上型计算机、笔记本计算机、手持式计算机、平板计算机、服务器、服务器阵列或服务器场、web服务器、网络服务器、因特网服务器、工作站、小型计算机、大型计算机、超级计算机、网络设备、web设备、分布式计算系统、多处理器系统、基于处理器的系统、消费电子产品、可编程消费电子产品、电视机、数字电视机、机顶盒、无线接入点、基站、用户站、移动用户中心、无线电网络控制器、路由器、集线器、网关、网桥、交换机、机器、或其组合。各实施例不限于该上下文。
计算体系结构1100包括各种常见计算元件,如一个或多个处理器、协同处理器、存储器单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(I/O)组件,等等。然而,各实施方式不限于由计算体系结构1100来实现。
如图11所示,计算体系结构1100包括处理单元1104、系统存储器1106以及系统总线1108。处理单元1104可以是可购得的各种处理器中的任一种。双微处理器和其他多处理器体系结构也可用作处理单元1104。系统总线1108向包括但不限于系统存储器1106的各系统组件提供到处理单元1104的接口。系统总线1108可以是若干种总线结构中的任一种,这些总线结构还可互连到存储器总线(带有或没有存储器控制器)、外围总线、以及使用各类市场上可购买到的总线架构中的任一种的局部总线。
计算体系结构1100可包括或实现各种制品。制品可包括存储逻辑的计算机可读的存储介质。计算机可读存储介质的示例可包括能够存储电子数据的任何有形介质,包括易失性存储器或非易失性存储器、可移动或不可移动存储器、可擦除或不可擦除存储器、可写或可重写存储器等。逻辑的示例可包括使用任何合适类型的代码(诸如源代码、已编译代码、已解释代码、可执行代码、静态代码、动态代码、面向对象代码、可视代码等)实现的可执行计算机程序指令。
系统存储器1106可以包括一个或多个较高速的存储器单元的形式的各种类型的计算机可读存储介质,如只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双倍数据率DRAM(DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、诸如铁电聚合物存储器等聚合物存储器、奥氏存储器、相变或铁电存储器、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、磁卡或光卡、或适于存储信息的任何其他类型的介质。在图11示出的所示实施方式中,系统存储器1106可包括非易失性存储器1110和/或易失性存储器1112。基本输入/输出系统(BIOS)可以存储在非易失性存储器1110中。
计算机1102可包括一个或多个较低速的存储器单元的形式的各种类型的计算机可读存储介质,包括内置硬盘驱动器(HDD)1114、用于读写可移动磁盘1118的磁软盘驱动器(FDD)1116、以及用于读写可移动光盘1122(例如,CD-ROM或DVD)的光盘驱动器1120。HDD 1114、FDD 1116、以及光盘驱动器1120可分别由HDD接口1124、FDD接口1126和光盘驱动器接口1128连接到系统总线1108。用于外置驱动器实现的HDD接口1124可包括通用串行总线(USB)和IEEE 1194接口技术中的至少一种或两者。
驱动器及相关联的计算机可读介质提供了对数据、数据结构、计算机可执行指令等的易失性和/或非易失性存储。例如,多个程序模块可存储在驱动器和存储器单元1110、1112中,包括操作系统1130、一个或多个应用1132、其他程序模块1134和程序数据1136。
该一个或多个应用1132、其他程序模块1134和程序数据1136可包括例如远程事件应用124、事件监视器组件212、自定义事件接收器组件214-a、事件通知组件216、事件管理组件218、发布者实体112、发布者实体处理程序114、订阅者实体132、订阅者实体处理程序134,等等。
用户可以通过一个或多个有线/无线输入设备,例如键盘1138和诸如鼠标1140等定点设备将命令和信息输入到计算机1102中。其他输入设备可包括话筒、红外(IR)遥控器、操纵杆、游戏垫、指示笔、触摸屏等等。这些和其他输入设备通常通过耦合到系统总线1108的输入设备接口1142连接到处理单元1104,但也可通过诸如并行端口、IEEE 1194串行端口、游戏端口、USB端口、IR接口等其他接口连接。
监视器1144或其他类型的显示设备也经由诸如视频适配器1146等接口连接到系统总线1108。除了监视器1144之外,计算机通常包括诸如扬声器、打印机等其他外围输出设备。
计算机1102可使用经由有线和/或无线通信至一个或多个远程计算机(诸如远程计算机1148)的逻辑连接在网络化环境中操作。远程计算机1148可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐设备、对等设备或其他常见的网络节点,并且通常包括相对于计算机1102描述的许多或所有元件,但为简明起见仅示出了存储器/存储设备1150。所描绘的逻辑连接包括到局域网(LAN)1152和/或例如广域网(WAN)1154等更大网络的有线/无线连接。这种LAN和WAN连网环境常见于办公室和公司,并且方便了诸如内联网等企业范围计算机网络,所有这些都可连接到例如因特网等全球通信网络。
当在LAN连网环境中使用时,计算机1102通过有线和/或无线通信网络接口或适配器1156连接到LAN 1152。适配器1156可以方便到LAN 1152的有线和/或无线通信,并且还可包括其上设置的用于使用适配器1156的无线功能进行通信的无线接入点。
当在WAN连网环境中使用时,计算机1102可包括调制解调器1158,或连接到WAN 1154上的通信服务器,或具有用于诸如通过因特网等通过WAN1154建立通信的其它装置。或为内置或为外置以及有线和/或无线设备的调制解调器1158经由输入设备接口1142连接到系统总线1108。在联网环境中,相对于计算机1102所描绘的程序模块或其部分可以存储在远程存储器/存储设备1150中。应该理解,所示网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其他手段。
计算机1102可操作来使用IEEE 802标准系列来与有线和无线设备或实体进行通信,这些实体例如是在操作上安置成与例如打印机、扫描仪、台式和/或便携式计算机、个人数字助理(PDA)、通信卫星、任何一件与无线可检测标签相关联的设备或位置(例如,电话亭、报亭、休息室)以及电话进行无线通信(例如,IEEE 802.11空中调制技术)的无线设备。这至少包括Wi-Fi(即无线保真)、WiMax和蓝牙TM无线技术。由此,通信可以如对于常规网络那样是预定义结构,或者仅仅是至少两个设备之间的自组织(ad hoc)通信。Wi-Fi网络使用称为IEEE 802.11x(a、b、n、g等等)的无线电技术来提供安全、可靠、快速的无线连接。Wi-Fi网络可用于将计算机彼此连接、连接到因特网以及连接到有线网络(使用IEEE 802.3相关的介质和功能)。
图12示出适用于实现上述各实施例的示例性通信体系结构1200的框图。通信体系结构1200包括各种常见通信元件,如发射机、接收机、收发机、无线电装置、网络接口、基带处理器、天线、放大器、滤波器,等等。然而,各实施例不限于由通信体系结构1200来实现。
如图12所示,通信体系结构1200包括一个或多个客户机1202和服务器1204。客户机1202可实现客户机设备130。服务器1204可实现服务器系统110、120。客户机1202和服务器1204可操作地连接到可被用来存储相应客户机1202和服务器1204本地的信息(如cookie和/或相关联的上下文信息)的一个或多个相应客户机数据存储1208和服务器数据存储1210。
客户机1202和服务器1204可以使用通信框架1206在彼此之间传递信息。通信框架1206可实现任何公知通信技术和协议,诸如参考信息可视化系统100所描述的那些。通信框架1206可以被实现为分组交换网络(例如,诸如因特网等公共网络、诸如企业内联网等专有网络,等等)、电路交换网络(例如,公共交换电话网)、或分组交换网络和电路交换网络的组合(使用合适的网关和转换器)。
一些实施例可使用表述“一个实施例”和”一实施例”及其派生词来描述。这些术语意味着结合该实施例描述的特定特征、结构、或特性包括在至少一个实施例中。出现在说明书中各个地方的短语“在一个实施例中”不必全都指的是同一实施例。此外,一些实施例可使用表述“耦合的”和“连接的”及其派生词来描述。这些术语不必旨在互为同义词。例如,一些实施例可使用术语“连接的”和/或“耦合的”来描述以指示两个或更多元件彼此有直接的物理或电接触。然而,术语“耦合的”还可以意味着两个或更多元件彼此不直接接触,而仍彼此合作或交互。
要强调,本公开的摘要是为了允许读者快速确定本技术公开的性质而提供的。提交摘要的同时要明白,将不用它来解释或限制权利要求的范围或含义。另外,在前面的详细描述中,可以看到,出于将本公开连成一个整体的目的而将各种特征组合在一起放在单个实施例中。此公开方法将不被解释为反映所要求保护的实施例要求比每个权利要求中明确陈述的更多特征的意图。相反,如所附权利要求书所反映,发明性的主题存在于比单个已公开实施例的所有特征少的特征中。从而,据此将所附权利要求结合进“具体实施方式”中,其中每个权利要求独立地代表一个单独的实施例。在所附权利要求书中,术语“包括”和“其中”分别用作术语“包含”和“其特征在于”的易懂的英文等价词。而且,术语“第一”、“第二”、“第三”等等只用作标记,而不旨在将数字要求强加于其对象上。
上面描述的包括所公开的体系结构的各示例。当然,描述每一个可以想到的组件和/或方法的组合是不可能的,但本领域内的普通技术人员应该认识到,许多其他组合和排列都是可能的。因此,该新颖体系结构旨在涵盖所有这些落入所附权利要求书的精神和范围内的更改、修改和变化。