容错外部应用服务器的制作方法

文档序号:6377816阅读:203来源:国知局
专利名称:容错外部应用服务器的制作方法
技术领域
本发明涉及应用服务器,尤其是容错应用服务器。
背景技术
企业通常出于不同的目的维护被存储在不同地方的各种类型的文档。在许多情况下,根据各种不同的软件应用和存储系统来创建和存储这种文档。例如,可使用文字处理应用、电子表格应用、演示应用、注释应用、图形设计应用、摄影应用等来生成文档。可经由各种存储系统来存储所生成的文档,包括用于存储各种类型的文档的一个或多个内容服务器、用于存储文档作为电子邮件项(电子邮件)附件的服务器、用于存储文档作为会议附件的存储系统、用于存储文档作为主要或顾客数据的附件的顾客关系管理(CRM)系统、用于存储文档以供日常使用的通用文档存储、和/或存储文档以供专门非常规定的需求的专用文档存储(例如,来自Documentum公司的Documentum )。
在典型的服务器场中,正确的操作要求场的所有成员共享对场拓扑结构和配置的最新和完美的理解,以避免损失功能。为了提供最新的理解,典型的服务器场依赖于状态配置数据库;然而,对状态配置数据库的使用通常增加了服务器场的管理、要求、经营和成本方面的复杂度。
本发明正是对于这些和其它考虑事项而做出的。发明内容
提供该发明内容以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
根据各实施例,外部应用服务器场包括容错场(FTF)系统。外部应用服务器场作为FTF系统的结果实现了低经营负担、最小的支持软件要求、以及优越的健壮性、可靠性和伸缩性。FTF系统的主要组件包括场管理组件、可互换的服务器组件、和健康监视组件。一般而言,FTF系统管理场状态,该场状态描述了外部应用服务器场的当前状态,而不描述状态管理数据库的成本和复杂度。为了实现这一点,FTF系统包括在外部应用服务器场的每个成员上运行的各种代理。代理是为运行该代理的场成员提供不同功能的系统服务。
场管理组件包括场状态管理器和场状态复制器。场管理组件的主要功能是管理场状态的配置变化以及将场状态分发到场成员。场状态管理器是在每个场成员上运行的代理。虽然每个场成员都运行场状态管理器,但在任意给定时间,只有场状态管理器的一个实例被指定为主场状态管理器。未被指定为主的场状态管理器的任何实例(即,次实例)通常继续运行,但没有责任(即它们什么都不做)。主场状态管理器为整个外部应用服务器场管理“官方”(即真实)版本的场状态。FTF系统将官方场状态存储到中央配置存储中。每个场成员将场状态的本地副本高速缓存到本地配置存储中。
即使活动的主场状态管理器失效,FTF系统也允许外部应用服务器场继续运行。在该情况中,管理员手动地指定另一个场状态管理器作为主。由于FTF系统对场状态处理的可变设计(fluid design),没有必要提升另一个场状态管理器。场状态管理器的每个单独的实例继续使用在该特定计算设备的本地配置存储中高速缓存的最后已知的场状态来独立地运行,直到指定了新的主场状态管理器。
场状态复制器是确保每个场成员具有官方版本的场状态的适当最近副本的代理。 每个计算设备运行场状态复制器的一个实例。为了保持本地高速缓存版本的场状态是适当最近的,场状态复制器周期性地联系主场状态管理器并将官方场状态复制到计算设备的本地配置存储。
本地配置存储的更新之间的时间量表示场管理组件中的固有等待时间。由于场管理组件引入的、将官方场状态传播到场成员中涉及的等待时间,整个场状态被假设为是不一致的(即,各个场成员所知的场状态可与官方场状态和/或其他场成员所知的场状态不相同)。随着等待时间时段经过但没有任何配置改变,一旦每个场成员从中央配置存储得到官方场状态,则整个场状态变成一致的(即,外部应用服务器像管理员预期的那样操作)。等待时间时段没有必要为了使外部应用服务器场保持可使用而较短。经延长的等待时间时段仅增加了全部场成员像管理员预期的那样操作之前所需要的时间量。
由于可互换的服务器组件,外部应用服务器展现了高度容错。可互换的服务器组件允许外部应用服务器场与不一致的场状态一起操作,而不损失功能,以及其他益处。可互换的服务器组件的第一方面是预期的角色组件。在场配置中指定场的成员以及每个场成员的角色;然而,外部应用服务器角色是描述该特定成员的主要焦点而不限制该成员的功能的预期角色。可互换的服务器组件要求全部场成员一直运行全部代理或外部应用服务器的功能专用的至少全部代理。由此,每个成员能够执行通常由外部应用服务器处理的任何动作。此外,每个场成员将执行向其请求的任何动作,无论被指派给该成员的预期角色如何。
可互换的服务器组件的第二方面是后退行为组件。外部应用服务器从外部源接收请求,并且那些请求基于外部应用服务器的配置被分发给场成员。另外,可在场成员间作出场内请求。如果向场成员作出请求,但出于任何理由未将该请求填充到外部应用服务器的控制内,则将向包括请求者的其他场成员作出请求,直到该请求被实现。后退行为组件处理外部应用服务器对场状态中的配置问题的响应。如果设置被管理员不可解释地错误配置或不被外部应用服务器所理解,则外部应用服务器恢复到该设置的默认值或适当地忽略该设置。
预期角色组件和后退行为组件、可互换的服务器系统的组合使得外部应用服务器对各个场成员失效或其他方式的不作为能极度容错。预期角色子系统和后退行为子系统确保对外部应用服务器作出的全部请求在没有看似明显(即,对用户明显)损失功能的情况下被处理。
健康监视组件监视每个场成员以及在每个成员上运行的各个代理的健康。每个场成员运行多个监督代理和健康评估代理。每个监督代理负责监视在场成员上运行的非监督代理的状态。如果被监视的非监督代理存在问题,则负责的监督代理将采取适当的动作。 在各个实施例中,适当的动作包括但不限于尝试重新启动未正在运行的相关联的非监督代理,并且向健康评估代理报告相关联的非监督代理的问题。健康评估代理基于来自监督代理的报告来确定场成员是否健康,并向主场状态管理器报告健康判定(即,成员健康报告)。主场状态管理器进而记录每个成员健康报告作为场状态的一部分。


通过参考下面的具体实施方式
、所附的权利要求书和附图,本发明的进一步的特征、各方面和益处将变得更好理解,其中各元素不会缩放以更清晰地示出细节,在若干视图中,相同的附图标记指示相同的元素,并且其中
图I示出企业网络的框图,该企业网络采用主机不可知的文档访问系统的一个实施例;
图2示出外部应用服务器的体系结构的一个实施例的框图3示出外部应用服务器的框图,该外部应用服务器示出容错场(FTF)系统的各组件的一个实施例;
图4是可用其实践本发明的各实施例的计算设备的简化框图5A和5B是可用来实施本发明的各实施例的移动计算设备的简化框图;以及
图6是可在其中实施本发明的各实施例的分布式计算系统的简化框图。
具体实施方式
容错外部应用服务器在此处被描述并在附图中被示出。外部应用服务器是基于 web的系统,该系统允许客户计算设备的用户经由与主机通信的通用客户机应用来与网络上的文件一起工作。主机提供用于与外部应用服务器交互的平台并作为其功能的代理。外部应用服务器被实现为服务器场。容错场系统组合场成员、可互换的场成员、与任选的健康监视之间的潜在配置复制,以允许外部应用服务器在维持全部功能的同时提供进行中配置,而不需要实时状态管理数据库。
图I不出包括一个或多个主机102和一个或多个外部应用服务器104的不例性企业网络100的一个实施例。用户106从客户计算设备110使用web浏览器108来访问主机 102。主机102最一般地是将文档存储在文档存储系统126中并为用户106管理许可的内容服务器。一般而言,主机102运行主机应用112,该主机应用提供处理主机102的普通功能的主机用户界面114。主机102的普通功能中的至少一些包括向用户106提供对已存储的文档116的访问,该文档116被包含在内容存储126中并且旨在使用支持的应用来被查看和/或编辑。主机102还提供使外部应用服务器104的服务对用户106可用的通用平台。 外部应用服务器104提供基于浏览器的web应用,该web应用允许用户106与通过主机可用的文档进行交互。开放平台接口定义并指导主机102与外部应用服务器104之间的文档操作。主机102还实现从外部应用服务器接收通信的端点120。虽然主机102初始化包括外部应用服务器104的服务的场景,但主机102不调用外部应用服务器104。相反,外部应用服务器104展示所支持的功能,以使用回调来针对所支持的文档类型进行操作。
外部应用服务器104运行一个或多个基于web的服务应用118,该服务应用118使用户106能够访问、查看、编辑以及任选地执行针对内容(S卩,文件或文档)的其他操作,并且从客户计算设备110通过网络执行文件夹(即,目录)管理,而不要求本地安装与特定文档类型一同工作所需的适当的应用。外部应用服务器104的操作和输出不是调用外部应用服务器104的功能的主机102所专用的。每个服务应用118 —般作为外部应用服务器104上的服务来运行。外部应用服务器104使用开放平台接口和开放平台接口的约定集合来与主机 102集成。外部应用服务器104提供与所选文件类型的文档一同工作的必要操作和功能。 外部应用服务器104是主机不可知的。换言之,外部应用服务器104的操作和/或输出不是便于访问外部应用服务器104的服务的主机102所专用的。处理各种文档类型的服务应用 118的示例包括用于与文字处理文档、电子表格、演示和注释一起工作的标准(S卩,本地安装的)应用的在线(即,基于web的)伙伴。
每个服务应用118所提供的操作通常专用与所选文件类型或与文件夹管理有关。 外部应用服务器104所提供的核心操作是查看和编辑文档。在各个实施例中,服务应用118 提供一个或多个附加操作,包括但不限于,重新格式化文档以供在移动设备上查看、创建新文档、转换文档、嵌入文档、以及从外部应用服务器104的角度来广播文档,广播和嵌入是特定的交互式用户流。在广播的情况中,外部应用服务器104在多个客户计算设备110上显示文档,并在一个实施例中跟踪在多个客户计算设备110的每个处被查看的当前页面。主机102管理文档上传、广播发起、和富客户端入口点。在广播操作的另一个实施例中,页面跟踪由主机102来处理。
通过一个或多个服务应用入口 URL来访问每个服务应用118所支持的操作。每个服务应用入口 URL用作用于针对特定文档类型的特定操作的外部应用服务器104的入口点。一般而言,每个服务应用入口 URL包括外部应用服务器104的地址,并指定任务(例如, 使用电子表格应用的嵌入式编辑)以及与所请求的任务相关联的所需数据,即文档的元数据URL和授权访问的访问令牌。
当用户106选择用于文档的一个操作时,主机102针对用户所选择的文档生成用于该操作的服务应用入口 URL。具体而言,外部应用主页122生成与服务应用118—起使用的URL参数。外部应用主页122所生成的参数包括但不限于访问令牌和源URL。源URL 是服务应用118用来访问主机端点120和文档的URL。访问令牌是对用户/对象对来说唯一的令牌,主机端点120使用该用户/对象对来认证用户106并授权对文档和/或服务应用118的访问。在各个实施例中,基于用户标识符、时间戳和文档标识符来计算访问令牌, 并用主机102已知的(例如,存储在主机配置数据库中的)密码来加密该访问令牌。
通过主机102提供的包装器来处理服务应用入口点。主机102提供的包装器是一个框架或环境,该框架或环境显示外部应用服务器104的输出,并接受来自允许用户106使用服务应用118提供的功能来与文档交互的客户计算设备110的输入。在一个实施例中, 包装器包括外部应用主页122和/或应用帧124。作为示例,主机102生成的外部应用主页 122的一个实施例是将应用服务器104生成的全部服务应用页面托管在web页面容器中的单个页面,诸如使用逐条边的布局的内联巾贞(iFrame)。外部应用主页122本身不具有用户界面。外部应用主页的替换实现可包括用于上面所描述的用户界面或替代的其他网页容器和布局。
外部应用服务器104提供访问、编辑、查看和以其他方式操纵或与各种文档类型一起工作的必要功能。在所描述的实施例中,外部应用服务器104不包括与网络访问相关联的复杂度和开销、用户认证、文件存储、网络和文件安全、以及通常由网络中的其他服务器来处理且通常专用于特定企业的其他管理任务。忽略这些特征并使外部应用服务器聚焦于通过开放平台接口来处理文档操作允许外部应用服务器104被用于各种各样的企业网络场景。应当理解,如此处所描述的执行并且承担通常由企业网络上的其他服务器来处理的额外角色和责任的外部应用服务器104落入本发明的范围和精神。
主机是能够使用通用客户机应用(诸如web浏览器)通过网络来访问的在线服务器应用。外部应用服务器104所提供的服务由主机来消费,并且对客户计算设备可用。当附连于外部应用服务器104时,主机变为知晓外部应用服务器104所支持的服务应用和功能。开放平台接口是可扩展的,并且提供对跨版本的接口通信的支持。开放平台接口的基本数据传输机制方便了跨平台的通信。在各个实施例中,虽然应当认识到其他人类和/ 或机器可读数据交换格式落入本发明的范围和精神,但基本数据是在JavaScript Object Notation(JSON)主体中来传送的。开放平台接口还遵守诸如Windows Communication Foundation(WCF)的一些应用边界接口所使用的“忽略你不预期的(ignore what you weren’t expecting)”和“使用你正预期但未得到的数据的默认值(use default values for data you were expecting but didn,t get)”的面向服务的体系结构原则。开放平台接口所使用的“默认值必然带来可接受的行为”的语义有助于维持高度跨版本的世界中的功能。
图2示出被实现为多服务器场的外部应用服务器104的拓扑结构的一个实施例。 外部应用服务器104不必包括多个服务器。使用单个计算设备来实现外部应用服务器104 的一个实施例,该单个计算设备作为单个服务器“场”来有效地运行。在一个实施例中,外部应用服务器场200的每个成员202、204a、204b、204c被指派作为前端服务器202或后端服务器204a、204b、204c的角色。前端服务器202负责将文档处理请求路由到与所选文档类型相关联的后端服务器204a、204b、204c。当使用一个以上前端服务器202时,通过使用在前端服务器202之间分布流量的任选负载平衡器206来实现改进的性能。后端服务器 204a、204b、204提供用于所支持的文档的文档处理服务。在所示的实施例中,每个后端服务器204a、204b、204c为特定的文档类型提供文档处理服务。
在所示的实施例中,外部应用服务器104的场状态208被存储在中央配置存储210 中包含的一个或多个文件中。场状态208中包含的信息包括但不限于以下各项中的一项或多项场拓扑结构(即,对场的成员的标识),场成员角色,场成员的配置设置,外部应用服务器配置设置,服务应用配置设置,和场成员健康。每个场成员202、204a、204b、204c必须具有对中央配置存储210的读访问。在所示的实施例中,中央配置存储210是可由组成外部应用服务器的每个计算设备读取的共享文件夹。在各个实施例中,存储场状态208的文件是机器可读的,并且任选地是人可读的。
外部应用服务器104是可通过标准网络资源寻址方案来访问的。合适的网络寻址方案包括但不限于统一命名约定(UNC)路径、驱动映射、以及诸如统一资源名称(URN)和统一资源定位符(URL)的统一资源指示符(URI)。外部可见的地址面向因特网或内联网,并普遍使用URL来访问。普遍使用UNC路径来访问外部应用服务器104的内部地址,诸如配置文件夹路径。
在一个实施例中,场内通信是安全的以确保只有场的成员能针对高速缓存和后端服务器进行请求。这通过检查发出请求的机器的身份来实现。场内通信被任选地加密以得到增强的安全性。
图3示出了具有容错场(FTF)系统300的一个实施例的外部应用服务器场200。8外部应用服务器场200作为FTF系统300的结果实现了低经营负担、最小的支持软件要求、 以及优越的健壮性、可靠性和伸缩性。FTF系统300的主要组件包括场管理组件302、可互换的服务器组件304、和健康监视组件306。一般而言,FTF系统300管理场状态208,该场状态208描述了外部应用服务器场200的当前状态,而不描述状态管理数据库的成本和复杂度。为了实现这一点,FTF系统300包括在外部应用服务器场200的每个成员上运行的各种代理。代理是为运行该代理的场成员提供不同功能的系统服务。在所示的实施例中, 外部应用服务器场200示出场成员308a-308n的可变集。
场管理组件302包括场状态管理器310a、310b和场状态复制器312。场管理组件 302的主要功能是管理场状态的配置变化以及将场状态分发到场成员308a-308n。
场状态管理器310a、3IOb是在每个场成员308a_308n上运行的代理。虽然每个场成员308a-308n都运行场状态管理器310a、310b,但在任意给定时间,只有场状态管理器的一个实例被指定为主场状态管理器310a。未被指定为主的场状态管理器310b的任何实例 (即,次实例)通常继续运行,但没有责任(即它们什么都不做)。在替换实施例中,场状态管理器310b的次实例在发现主场状态管理器310a时被停止,并仅在没有可用的主场状态管理器310a或者管理员手动请求时启动。
主场状态管理器310a为整个外部应用服务器场200管理“官方”(即真实)版本的场状态208。FTF系统300将官方场状态208存储在中央配置存储210中。每个场成员将场状态的本地副本高速缓存到本地配置存储314中。
主场状态管理器310a接受来自任一个场成员作出的配置改变,并更新中央配置存储210中的官方版本的配置状态。为了在同时尝试多个配置改变时预防冲突产生,主场状态对中央配置存储210施加访问控制。在一个实施例中,主场状态管理器310a向中央配置存储210中的配置文件写入配置状态改变,并通过在接收配置改变时锁定配置文件来控制冲突。在一个实施例中,中央配置存储210是运行主场状态管理器310a的场成员上的本地配置存储314。主场状态管理器310a也接受来自任一个场成员308a_308n的对场状态的当前副本的请求。在一些实施例中,主场状态管理器310a仅接受来自所选场成员的和/或不是外部应用服务器场200的成员的所选计算设备的配置改变和请求。
即使活动的主场状态管理器310a失效,FTF系统300也允许外部应用服务器场 200继续运行。在该情况中,管理员手动地指定另一个场状态管理器310b作为主。由于FTF 系统300对场状态处理的可变设计,没有必要提升另一个场状态管理器310b。场状态管理器310b的每个单独的实例继续使用在该特定计算设备的本地配置存储314中高速缓存的最后已知的场状态来独立地运行,直到指定了新的主场状态管理器310a。在替换实施例中, 外部应用服务器自动地提升另一个场状态管理器作为主。在各个实施例中,自动提升场状态管理器的一个实例的自动决定是完全任意的,或者基于选择标准(例如,考虑计算设备的角色、负载和/或资源,和/或最近的场状态复制操作的时间)。
场状态复制器312是确保每个场成员308a_308n具有官方版本的场状态的适当最近副本的代理。每个计算设备运行场状态复制器312的一个实例;然而,与场状态管理器不同,不存在主场状态复制器。为了保持本地高速缓存版本的场状态是适当最近的,场状态复制器312周期性地联系主场状态管理器310a并将官方场状态复制到计算设备的本地配置存储314。在一个实施例中,场状态复制器312根据时间表(例如,每隔30秒)来更新场成员的本地场状态。在一些实施例中,每个单独的场状态复制器312根据独立的时间表来操作。在其他实施例中,每个单独的场状态复制器312根据基于主时钟的公共时间表(例如, 同步时钟的每分钟的起始)来操作。在某个实施例中,场状态复制器312响应于一个事件或其他类似的触发来更新本地配置状态。
本地配置存储的更新之间的时间量表示场管理组件302中的固有等待时间。由于场管理组件302引入的、将官方场状态传播到场成员308a-308n中涉及的等待时间,整个场状态被假设为是不一致的(即,各个场成员所知的场状态可与官方场状态和/或其他场成员所知的场状态不相同)。随着等待时间时段经过但没有任何配置改变,一旦每个场成员 308a-308n从中央配置存储210得到官方场状态,则整个场状态变成一致的(即,外部应用服务器像管理员预期的那样操作)。等待时间时段没有必要为了使外部应用服务器场200 保持可使用而较短。经延长的等待时间时段仅增加了全部场成员像管理员预期的那样操作之前所需要的时间量。
由于可互换的服务器组件304,外部应用服务器104展现了高度容错。可互换的服务器组件304允许外部应用服务器场200与不一致的场状态一起操作,而不损失功能,以及其他益处。可互换的服务器组件304的第一方面是预期的角色组件。在场配置中指定场的成员以及每个场成员308a-308n的角色;然而,外部应用服务器角色是除通常与常规服务器一起使用的精确角色以外的预期角色。精确角色定义了在特定服务器上运行的服务。通常完成向服务器指派精确角色来优化服务器的性能、或者根据服务器的资源来定制由特定服务器处理的功能。相反,预期角色描述该特定成员的主要焦点,而不限制该成员的功能。 虽然预期角色不直接影响成员的功能,但是对预期角色的使用提供了其他益处,诸如由于场成员之间负载均衡的性能改进。
可互换的服务器组件304要求全部场成员308a_308n —直运行全部代理或至少外部应用服务器104的功能专用的全部代理。这包括但不限于场管理代理(例如,场状态管理器310和场状态复制器312)、文档处理代理316a-316d(例如,文字处理查看器代理、电子表格编辑器代理、和演示广播代理)、和监视代理(例如,监督代理和健康评估代理)。由此,每个成员能够执行通常由外部应用服务器处理的任何动作。此外,每个场成员308a-308n将执行向其请求的任何动作,无论被指派给该成员的预期角色如何。换言之,外部应用服务器场200的成员是可互换的。即使请求被发送到错误的场成员308a-308n,由于请求者知道的场状态是过期的,因此“错误的”成员将处理该请求。
可互换的服务器组件304的第二方面是后退行为组件。外部应用服务器104从外部源接收请求,并且那些请求基于外部应用服务器的配置被分发给场成员。另外,可在场成员308a-308n间作出场内请求。如果向场成员作出请求,但出于任何理由未将该请求填充到外部应用服务器的控制内,则将向包括请求者的其他场成员作出请求,直到该请求被实现。在极端的情况下,可互换的服务器系统允许一个成员(即请求者)处理它自己的请求。 后退行为组件处理外部应用服务器场200对场状态中的配置问题的响应。如果设置被管理员不可解释地错误配置或不被外部应用服务器104所理解,则外部应用服务器104恢复到该设置的默认值或适当地忽略该设置。
预期角色组件和后退行为组件、可互换的服务器系统的组合使得外部应用服务器对各个场成员失效或以其他方式不作为能极端容错。预期角色子系统和后退行为子系统确1保对外部应用服务器作出的全部请求在没有看似明显(即,对用户明显)损失功能的情况下被处理。
健康监视组件306监视每个场成员以及在每个成员上运行的各个代理的健康。每个场成员运行多个监督代理318a-318f和健康评估代理320。每个监督代理318a_318f负责监视在场成员308a-308n上运行的非监督代理(例如,场管理组件310a、310b、312和文档处理代理316a-316d)的状态。在一个实施例中,将每个监督代理与非监督代理中的一个唯一地配对(即,相关联)。如果被监视的非监督代理存在问题,则负责的监督代理将采取适当的动作。在各个实施例中,适当的动作包括但不限于尝试重新启动未正在运行的相关联的非监督代理,并且向健康评估代理320报告相关联的非监督代理的问题。在一些实施例中, 监督代理将直接向主场状态管理器310a报告相关联的非监督代理的问题。在其他实施例中,负责的监督代理周期性地报告相关联的非监督代理的状态,无论是否检测到问题。
健康评估代理320基于来自监督代理的报告来确定场成员是否健康,并向主场状态管理器310a报告健康判定(S卩,成员健康报告)。主场状态管理器310a进而记录每个成员健康报告作为场状态的一部分。在一个实施例中,如果一个场成员上的全部代理都正确地运行,则该场成员被认为是健康的。在另一个实施例中,如果外部应用服务器的功能专用的全部代理都正确地运行,则场成员被认为是健康的。在又一个实施例中,如果一个场成员上的所选代理正确地运行,则该场成员被认为是健康的。在各个实施例中,当确定场成员是否健康时,健康评估代理320包括监督代理。在这些实施例中,健康评估代理320知晓在场成员上运行的监督代理,并在一个监督代理没有作出报告时判定该监督代理已经失效。在一个实施例中,如果场成员不健康,则健康评估代理320仅向主场状态管理器310a报告。
除了可靠性好处,FTF系统300向外部应用服务器场200的管理员提供额外的优势。第一,通过聚集来自场状态中的每个场成员的健康报告,经营负担被简化,因为存在单个地方来查看以检查场的健康。没有必要单独地在每个场成员处检查健康。第二,聚集后的健康数据通过单独的监视工具被轻松地监视。例如,健康数据被包含到事件日志或单独的监视工具(例如,综合性企业或网络监视系统)中,并且在有问题的情况下将警告发送到外部应用服务器管理员。第三,由于场状态被所有场成员高速缓存,因此即使在丢失中央配置存储的情况下,官方场状态的真实副本或至少适当最近的副本是可用的。这包括在调查失效原因时可能有用的有价值的健康数据。
FTF系统300通过利用由非常规定的状态管理系统提供的效率的一些来在低成本、容易经营的系统中提供健壮的容错。当场状态变得不一致时,无论是由于FTF系统300 引入的等待时间还是场成员失效的结果,外部应用系统都继续运行,虽然由于缺少负载均衡或必须进行多个后退请求而可能损失效率。在没有可用的主场状态管理器310a的极端情况下,FTF系统300允许外部应用服务器继续(虽然有可能低效地)运行,每个场成员基于该成员的本地配置存储中的高速缓存的场状态异步地运行。场状态变得一致时,外部应用服务器场200平静下来并像管理员预期的那样运行。
本文描述的实施例和功能可经由许多计算系统来操作,诸如上面参考图I所描述的主机102、和外部应用服务器104、和客户机设备110,包括有线和无线计算系统、移动计算系统(如移动电话、图形输入板或平板型计算机、膝上型计算机等)。此外,本文所述的实施例和功能可在分布式系统上操作(如基于云的计算系统),其中应用功能、存储器、数据存储和检索、以及各种处理功能可在诸如因特网或内联网之类的分布式计算网络上彼此远程地操作。各种类型的用户界面和信息可经板载计算设备显示器或经与一个或多个计算设备相关联的远程显示单元被显示。例如,各种类型的用户界面和信息可在墙壁表面上被显示和交互,各种类型的用户界面和信息被投射在墙壁表面上。与可用于实施本发明的各实施例的许多计算系统的交互包括键击输入、触摸屏输入、语音或其他音频输入、姿势输入(其中相关联的计算设备配备有用于捕捉和解释用于控制计算设备的功能的用户姿势的检测 (如相机)功能)等。图4到6以及相关描述提供了其中可实施本发明的各实施例的各种操作环境的讨论。然而,关于图4到6所示出和讨论的设备和系统是用于示例的目的,而非对可被用于实施本文所述的本发明的各实施例的大量计算设备配置的限制。
图4是示出可用来实施本发明的各实施例的计算设备400的示例物理组件的框图。下面描述的计算设备组件可适合于上面描述的计算设备,例如主机102、外部应用服务器104、和客户计算设备110。在基本配置中,计算设备400可包括至少一个处理单元402 和系统存储器404。取决于计算设备的配置和类型,系统存储器404可包括但不限于,易失性存储器(例如,随机存取存储器(RAM))、非易失性存储器(例如,只读存储器(ROM))、闪存、或任何组合。系统存储器404可包括操作系统405和一个或多个编程模块406,该编程模块406适合于运行诸如客户机应用(例如,用户代理/ web浏览器108)或服务器应用(例如,主机应用112或服务应用118)的应用420。操作系统405例如可适合于控制计算设备 400的操作。此外,本发明的实施例可结合图形库、其他操作系统、或任何其他应用程序来实践,并且不限于任何特定应用或系统。该基本配置在图4中由虚线408内的那些组件示出。
计算设备400可具有附加特征或功能。例如,计算设备400还可包括附加数据存储设备(可移动和/或不可移动),诸如例如,磁盘、光盘、或磁带。这些附加存储在图4中由可移动存储409和不可移动存储410示出。
如上所述,可在系统存储器404中存储包括操作系统405在内的多个程序模块和数据文件。当在处理单元402上执行时,编程模块406可执行各过程,包括例如,容错场系统 400的各步骤中的一个或多个。上述过程是一个示例,且处理单元402可执行其他过程。根据本发明的实施例可使用的其他编程模块可包括电子邮件和联系人应用、文字处理应用、 电子表格应用、数据库应用、幻灯片演示应用、绘图或计算机辅助应用等。
一般而言,根据本发明的实施例,程序模块可包括可执行特定任务或可实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。此外,本发明的实施例可用其他计算机系统配置来实践,包括手持式设备、多处理器系统、基于微处理器的系统或可编程消费电子产品、小型机、大型计算机等。本发明的实施例还可在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实践。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备两者中。
此外,本发明的实施例可在包括分立电子元件的电路、包含逻辑门的封装或集成电子芯片、利用微处理器的电路、或在包含电子元件或微处理器的单个芯片上实践。例如, 可以通过片上系统(SOC)来实施本发明的各实施例,其中,可以将图4中示出的每个或许多组件集成到单个集成电路上。这样的SOC设备可包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元以及各种应用功能,所有这些都被集成到(或“烧录到”)芯片基板上作为单个集成电路。当通过SOC操作时,各种客户机和/或服务器应用的功能可以通过在单个集成电路(芯片)上集成有计算设备400的其它组件的应用专用逻辑来实现。本发明的实施例还可使用能够执行诸如例如,AND (与)、0R (或)和NOT (非)的逻辑运算的其他技术来实践,包括但不限于,机械、光学、流体和量子技术。另外,本发明的实施例可在通用计算机或任何其他电路或系统中实践。例如,本发明的实施例可被实现为计算机过程(方法)、计算系统、或诸如计算机程序产品或计算机可读介质之类的制品。计算机程序产品可以是计算机系统可读并对用于执行计算机过程的指令的计算机程序编码的计算机存储介质。本文所使用的术语计算机可读介质可包括计算机存储介质。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块、或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。系统存储器404、可移动存储409和不可移动存储410都是计算机存储介质的示例(即,存储器存储)。计算机存储介质可包括,但不限于,RAM、ROM、电可擦除只读存储器(EEPR0M)、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD )或其他光存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或者可用于存储信息且可由计算设备400访问的任何其他介质。任何这样的计算机存储介质可以是设备400的一部分。计算设备400还可具有输入设备412,诸如键盘、鼠标、笔、声音输入设备、触摸输入设备等。还可包括输出设备414,诸如显示器、扬声器、打印机等。上述设备是示例,并且可使用其他设备。本文所使用的术语计算机可读介质还可包括通信介质。通信媒介可由诸如载波或其他传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块、或其他数据来体现,并且包括任何信息传递介质。术语“已调制数据信号”可以描述以对该信号中的信息进行编码的方式设定或者改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接等有线介质,以及诸如声学、射频(RF)、红外线和其他无线介质等无线介质。计算设备400可包括允许与其他计算设备418通信的通信连接416。合适的通信连接416的示例包括但不限于RF发射机、接收机和/或收发机电路;通用串行总线(USB)、并行或串行端口、以及适用于与适用的计算机可读介质一起使用的其他连接。图5A和5B示出可用来实施本发明的各实施例的合适的移动计算环境,例如移动电话500、智能电话、平板个人计算机、膝上型计算机等。参考图5A,示出了用于实现各实施例的示例移动计算设备500。在基本配置中,移动计算设备500是具有输入元件和输出元件两者的手持式计算机。输入元件可包括允许用户将信息输入到移动计算设备500中的触摸屏显示器505和输入按钮510。移动计算设备500还可结合允许进一步的用户输入的可选的侧面输入元件515。可选的侧面输入元件515可以是旋转开关、按钮、或任何其他类型的手动输入元件。在替代实施例中,移动计算设备500可结合更多或更少的输入元件。例如,在某些实施例中,显示器505可以不是触摸屏。在又一替代实施例中,移动计算设备是便携式电话系统,如具有显示器505和输入按钮510的蜂窝电话。移动计算设备500还可包括可选的小键盘535。可选的小键盘535可以是物理小键盘或者在触摸屏显示器上生成的“软”小键盘。移动计算设备500结合输出元件,如可显示图形用户界面(⑶I)的显示器505。其他输出元件包括LED光520和扬声器525。另外,移动计算设备500可包含振动模块(未示出),该振动模块使得移动计算设备500振动以将事件通知给用户。在又一实施例中,移动计算设备500可结合耳机插孔(未示出),用于提供提供输出信号的另一手段。尽管此处组合移动计算设备500来描述,但在替代实施例中,本发明还可组合任何数量的计算机系统来被使用,如在台式环境中、膝上型或笔记本计算机系统、多处理器系统、基于微处理器或可编程消费电子产品、网络PC、小型计算机、大型计算机等。本发明的实施例也可在分布式计算环境中实践,其中任务由分布式计算环境中通过通信网络链接的远程处理设备来执行;程序可位于本机和远程存储器存储设备中。总而言之,具有多个环境传感器、向用户提供通知的多个输出元件和多个通知事件类型的任何计算机系统可结合本发明的实施例。图5B是示出在一个实施例中使用的诸如图5A中所示的计算设备之类的移动计算设备的组件的框图。即,移动计算设备500可结合系统502以实现某些实施例。例如,系统502可被用于实现可运行与台式或笔记本计算机的应用类似的一个或多个应用的“智能电话”,这些应用例如浏览器、电子邮件、日程安排、即时消息收发、以及媒体播放器应用。在某些实施例中,系统502被集成为计算设备,诸如集成的个人数字助理(PDA)和无线电话。一个或多个应用程序566可被加载到存储器562中并在操作系统564上或与操作系统564相关联地运行。应用程序的示例包括电话拨号程序、电子邮件程序、PM (个人信息管理)程序、文字处理程序、电子表格程序、因特网浏览器程序、消息通信程序等等。系统502还包括存储器562内的非易失性存储568。非易失性存储568可被用于存储在系统502断电时不会丢失的持久信息。应用566可使用信息并将信息存储在非易失性存储568中,如电子邮件应用使用的电子邮件或其他消息等。同步应用(未示出)也驻留在系统502上并被编程为与驻留在主机计算机上的对应同步应用进行交互,以保持存储在非易失性存储568中的信息与存储在主机计算机上的对应信息相同步。如应被理解的,其他应用可被加载到存储器562中且在设备500上运行,包括此处描述的各种客户机和服务器应用。系统502具有可被实现为一个或多个电池的电源570。电源570还可包括外部功率源,如补充电池或对电池重新充电的AC适配器或加电对接托架。系统502还可包括执行发射和接收无线电频率通信的功能的无线电572。无线电572通过通信运营商或服务供应商来方便系统502与“外部世界”之间的无线连接。来往无线电572的传输是在操作系统564的控制下进行的。换言之,无线电572接收的通信可通过操作系统564传播到应用程序566,反之亦然。无线电572允许系统502例如通过网络与其他计算设备通信。无线电572是通信介质的一个示例。通信介质通常由诸如载波或其他传输机制之类的已调制数据信号中的计算机可读指令、数据结构、程序模块、或其他数据来体现,并且包括任何信息传送介质。术语已调制数据信号摂是指具有以在信号中编码信息的方式被设定或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。如此处所使用的术语“计算机可读介质”包括存储介质和通信介质两者。系统502的这个实施例被示为具有两种类型的通知输出设备可用于提供视觉通知的发光二极管(LED) 520和可用于与扬声器525 —起使用来提供音频通知的音频接口574。这些设备可直接耦合到电源570,使得当被激活时,即使为了节省电池功率而可能关闭处理器560和其它组件,它们也保留一段由通知机制指示的保持通电时间。LED 520可被编
14程来无限地保持通电,直到用户采取行动指示该设备的通电状态。音频接口 574用于向用户提供听觉信号并从用户接收听觉信号。例如,除被耦合到扬声器525以外,音频接口 574还可被耦合到话筒以接收听觉输入,诸如便于电话对话。根据各本发明的各实施例,话筒也可充当音频传感器来便于对通知的控制,如下文将描述的。系统502可进一步包括允许板载相机530的操作来记录静止图像、视频流等的视频接口 576。移动计算设备实现系统502可具有附加特征或功能。例如,设备还可包括附加数据存储设备(可移动的/或不可移动的),诸如磁盘、光盘或磁带。这些另外的存储在图5B中由存储568示出。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块、或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。设备500生成或捕捉的且经系统502存储的数据/信息可如上所述本地存储在设备500上,或数据可被存储在可由设备通过无线电572或通过设备500和与设备500相关联的一分开的计算设备之间的有线连接访问的任何数量的存储介质上,该计算设备如例如因特网之类的分布式计算网络中的服务器计算机。如应理解的,此类数据/信息可经设备500、经无线电572或经分布式计算网络来被访问。类似地,这些数据/信息可根据已知的数据/信息传送和存储手段来容易地在计算设备之间传送以供存储和使用,这些手段包括电子邮件和协作数据/信息共享系统。图6示出用于向一个或多个客户机设备提供如上所述的浏览器应用108、主机应用112、和/或服务应用118的系统体系结构。与主机应用112和/或服务应用118相关联地开放、交互或编辑的内容可被存储在不同通信信道或其他存储类型中。例如,可使用目录服务622、web门户624、邮箱服务626、即时消息通信存储628以及社交联网站点630来存储各种文档。如上所述,主机应用112和/或服务应用118可使用用于允许数据利用的这些类型的系统等中的任一个。服务器620可为客户机提供主机应用112和/或服务应用118。作为一个示例,服务器620可以是通过web来提供主机应用112和/或服务应用118的web服务器。服务器620可通过网络615向客户机提供web上的主机应用112和/或服务应用118。可访问主机不可知的文档访问系统100的客户机的示例包括计算设备400,计算设备可包括任何通用个人计算机110a、平板计算设备IlOb和/或诸如智能电话的移动计算设备110c。这些设备中的任一个可从存储616中获得内容。以上参考例如根据本发明的实施例的方法、系统和计算机程序产品的框图和/或操作示图描述了本发明的实施例。框中所注明的各功能/动作可按不同于任何流程图所示的次序出现。例如,取决于所涉及的功能/动作,连续示出的两个框实际上可基本同时执行,或者这些框有时可按相反的次序执行。尽管已描述了本发明的特定实施例,但也可能存在其他实施例。此外,虽然本发明的实施例被描述为与存储在存储器和其他存储介质中的数据相关联,但是数据还可被存储在其他类型的计算机可读介质上或从其读取,诸如辅助存储设备(像硬盘、软盘、或CD-ROM)、来自因特网的载波、或其他形式的RAM或ROM。此外,所公开的方法的各步骤可以任何方式修改,包括通过对各步骤重新排序和/或插入或删除步骤,而不背离本发明。在各种实施例中,用于在构成本发明的计算设备之间进行通信的网络的类型包括但不限于互联网、内联网、广域网(WAN)、局域网(LAN)、以及虚拟专用网络(VPN)。在本申请
15中,网络包括企业网络和客户机计算设备用来访问企业网络的网络(即客户机网络)。在一个实施例中,客户机网络是企业网络的一部分。在另一实施例中,客户机网络是通过外部可用的入口点(如网关、远程访问协议、或公共或专用互联网地址)来访问企业网络的一分开的网络。本申请中提供的一个或多个实施例的描述和说明不旨在以任何方式限制或约束如权利要求所要求保护的发明范围。本申请中提供的实施例、示例和细节被认为是足以传达所有权,且使得他人能够制作并使用所要求保护的发明的最佳模式。所要求保护的发明不应被理解为限制于本申请中所提供的任何实施例、示例或细节。不管是以组合的方式还是分开的方式示出和描述,各种特征(结构上的和方法逻辑上的)旨在被选择性地包括或忽略,以产生具有特定的特征集的实施例。在被提供本申请的描述和说明的情况下,本领域的技术人员能够想象到落在所要求保护的发明的更宽泛方面以及本申请中所具体化的一般发明概念的精神内的替代实施例并不背离该更宽泛的范围。
权利要求
1.一种外部应用服务器(104),包括 场配置(208); 一个或多个计算设备(308a-n),每个计算设备是服务器场(300)的成员,每个所述成员具有用于存储所述场配置的副本的本地配置存储位置(314); 每个所述成员的管理代理(310a-b),每个所述成员运行所述管理代理的一个实例,一个所述管理代理被指定为主管理代理,运行所述主管理代理的成员上的所述本地配置存储位置被指定为用于保存所述场配置的主副本的中央配置存储位置(210),所述主管理代理维护所述场配置的所述主副本; 每个所述成员的一个复制代理(312),每个所述成员运行所述复制代理的一个实例,所述复制代理周期性地从所述主管理代理请求所述场配置的副本,并将所述场配置的所述副本存储到所述成员上的所述本地配置存储位置;以及 每个所述成员的一个文档处理代理(316a-d),每个所述成员运行所述文档处理代理的一个实例,所述文档处理代理提供与所选文件类型的文档交互的功能。
2.如权利要求I所述的外部应用服务器,其特征在于,还包括多个监督代理(318a-f),每个所述成员运行每个监督代理的一个实例,所述多个监督代理包括用于被监视的代理的监督代理,所述被监视的代理包括在所述成员上运行的另一个代理。
3.如权利要求2所述的外部应用服务器,其特征在于,还包括多个健康评估代理(320),每个所述成员运行所述健康评估代理的一个实例,每个所述监督代理向所述健康评估代理报告对应的所述被监视代理的被监视的代理状态,所述健康评估代理基于所述被监视的代理总统来生成成员健康报告,每个所述健康评估代理向所述主管理代理报告所述成员健康报告。
4.如权利要求3所述的外部应用服务器,其特征在于,所述主管理代理将所述成员健康报告存储到所述场配置中。
5.如权利要求1-4中任一个所述的外部应用服务器,其特征在于,向每个所述成员指派预期角色,并且无论被指派给所述成员的所述预期角色是什么,每个所述成员对向所述成员作出的任意请求作出响应。
6.一种在外部应用服务器场中提供容错的方法,所述方法包括以下步骤 提供一个或多个计算设备(308a-n),每个所述计算设备是服务器场(300)的成员; 在每个所述成员上运行管理代理(310a-b); 将所述成员上的所述管理代理指定为主管理代理; 使用所述主管理代理将官方场配置存储到中央场配置存储(210)中; 在每个所述成员上运行复制代理(312); 使用所述复制代理向所述主管理代理请求所述官方场配置的副本; 将所述官方场配置的所述副本存储到所述成员上的本地配置存储(314)中;以及在每个所述成员上运行文档处理代理(316a-d),所述文档处理代理提供与所选文件类型的文档交互的功能。
7.如权利要求6所述的方法,其特征在于,每个所述管理代理、每个所述复制代理、和每个所述文档处理代理是被监视的代理,所述方法还包括在每个所述成员上为每个被监视的代理运行监督代理(318a-f)的步骤。
8.如权利要求7所述的方法,其特征在于,还包括以下步骤 在每个所述成员上运行健康评估代理(320);以及 使用每个所述监督代理向所述健康评估代理报告对应的所述被监视的代理的代理状态;以及 使用所述健康评估代理向所述主管理代理发送基于每个所述代理状态的成员健康报生口 ο
9.如权利要求6-8中任一个所述的方法,其特征在于,还包括无论所述成员的所述预期角色是什么都允许每个所述成员对向所述成员作出的全部请求作出响应的步骤。
10.一种外部应用服务器,包括 场配置(208); 一个或多个计算设备(308a-n),每个计算设备是服务器场(300)的成员,每个所述成员具有用于存储所述场配置的副本的本地配置存储位置(314); 多个被监视的代理,包括 (i)在每个所述成员上运行的管理代理(310a-b),一个所述管理代理被指定为主管理代理,运行所述主管理代理的所述成员上的所述本地配置存储位置被指定为用于保存所述场配置的主副本的中央配置存储位置(210),所述主管理代理维护所述场配置的所述主副本; ( )在每个所述成员上运行的复制代理(312),所述复制代理周期性地向所述主管理代理请求所述场配置的副本,并将所述场配置的所述副本存储到所述成员上的所述本地配置存储位置;以及 (iii)在每个所述成员上运行文档处理代理(316a-d),每个所述文档处理代理提供与所选文件类型的文档交互的功能; 在每个成员上运行的多个监督代理(318a-f),每个所述监督代理与一个所述被监视的代理唯一地相关联,每个所述监督代理报告相关联的所述被监视的代理的被监视代理状态;以及 在每个成员上运行的健康评估代理(320),每个所述健康评估代理接收所述被监视代理状态并生成成员健康报告,所述健康评估代理向所述主管理代理发送所述成员健康报告以便包括在所述场配置中。
全文摘要
容错外部应用服务器。外部应用服务器是基于web的系统,该系统允许客户计算设备的用户经由与主机通信的通用客户机应用来与网络上的文件一起工作。主机提供用于与外部应用服务器交互的平台并作为其功能的代理。外部应用服务器被实现为服务器场。容错场系统组合场成员、可互换的场成员、与任选的健康监视之间的潜在配置复制,以允许外部应用服务器在维持全部功能的同时提供进行中配置,而不需要实时状态管理数据库。
文档编号G06Q10/06GK102930368SQ20121036456
公开日2013年2月13日 申请日期2012年9月26日 优先权日2011年9月27日
发明者N·M·西蒙斯, C·D·肖, D·明, S·S·卡珀, C·布劳萨德, R·A·马雷诺, M·J·鲁伦, T·克拉夫特, M·T·菲尔兹, K·J·小尤哈斯, M·C·拉姆塞, A·V·沃匹洛夫, C·V·汉森, Y·彭 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1