分布式计算服务平台的制作方法

文档序号:6469709阅读:432来源:国知局
专利名称:分布式计算服务平台的制作方法
背景技术
1.发明领域本发明涉及通信领域。更具体地,本发明描述分布式计算服务平台,以便于改善通信和通过计算机网络(如因特网)进行协作。
2.技术的现有状态因特网革命性的改变了人们通信的方式并迎来了人类历史中常称为“信息时代”的新纪元。本质上,因特网包括大量星罗棋布的用网络连接的计算机,它们散布的世界的大部分地区。从终端用户的观点看,完善的计算机,软件和网络技术已使得因特网的通信直截了当。
例如,用户能使用随手可得的电子邮件软件编著电子邮件或“e-mail”消息。在指定接收者的地址以后,用户可以如借助使用鼠标激活在计算机显示器上的“发送-send”图表简单地发送该消息。该消息随后经过因特网从一个计算机系统路由到下一个直到消息到达目标计算设备。
此外,传统的浏览器软件使用户能从远程计算机请求如网页那样的信息。在用户输入网页地址后,浏览器随后使用户的计算机能使用广泛认可的通信协议,如超文本传输协议(HTTP),发送该请求。该请求随后用目标地址被路由至目标计算机或网址。
远程网站评估该请求,并返回常包括所请求的信息的恰当的响应。所请求的网页以如超文本标记语言(“HTML”)那样的格式返回,此格式可由网络浏览器分析。然后,经分析的网页在计算机显示器上表示及提供给用户。
网络浏览器软件可用于多种广泛可得到计算机,包括通用个人计算机(PC),电视机顶盒,个人数字助理,移动电话等。此外,有数以万计的网站公开地为访问那样传统的浏览器软件和因特网连接的任何人。这些因素结束起来,使得更多人比以前任何时候更多地访问更丰富的信息。
总之,因特网为大量用户提供简单的全球连结。虽然因特网的使用在访问信息方面对业务和个人提供许多相同的好处,因特网应能以更灵活的方式更有效地用于访问和使用信息。例如,因特网的一个主流(dominant)使用通常以“只读”为特征。在发布者建立和发布网页以后,因特网本质上作为表示工具服务,它允许用户阅读网页上信息。因特网本身很少提供或不提供让用户写,编辑,或与网页互动的能力。
而且,虽然因特网允许个人直接访问数百万个网站,若有的话只有少量标准允许网站互相通信或共享信息。每个网站通常得维持不同的ID,偏爱,数据格式和方案,连接性等。为此,为了使得能在两个网站之间互动而不管无数的其他网站,要占用大量时间和开销。因此,网站通常不收集由其他网站在因特网上提供的大量和丰富的信息。相反,许多网站只好独立地收集和编辑信息成某种静态的格式,即使它们已经从不同的网站可以得到。因此,虽然通过因特网在大量网站和计算机之间有广泛分布的连结,但在自动交互地利用那样连结方面作得很少,且能够得到的革命性进展还远未能实现。
因特网的有效性及灵活性也由于限制用户访问信息及服务的其他因素而受到限制。例如,一个装有一台个人计算机的用户可以访问比移动电话用户大的多的因特网资源集,这是由于受到与基础平台有关的限制。当平台限制不是问题时,其他问题(如安全和存储)可以仍然限制相同用户访问因特网资源,更不用说由不同的用户经过若干平台的访问。即使能访问同样的信息和服务,例如,当用户必须协商显著不同的用户接口或遵循不同协议访问那些资源时,总的效率和灵活性被削弱了。
而且,因特网的用户经常面临太多的难以过滤及组织的信息。例如,网络搜索引擎常常返回对简单询问的成千上万可能“匹配”。用户必须手人过滤这些匹配而寻找相关的信息。用户的电子邮件收件箱还经常被无用的电子邮件或“垃圾”爆满,它们常是无关的或对用户是低优先级的。虽然存在某些收件箱过滤器,用户仍必须扫视剩下的消息以找到高优先级或重要的消息。
因此,需要这样的系统和方法,它们方便于更好的和更一致的用户交互和协作,以及经因特网在网站之间的通信。还需要提供给用户更加个性化的有关信息而不会用太多的信息把用户压垮。
发明概述上述在现有技术中问题由本发明克服,它是方便于更多的基于因特网的协作和更多网站问题通信的分布式计算服务平台。首先,概述平台的总概念结构。然后概述平台的集成技术组件。这些组件包括编程模型,模式(schema)用户界面,事件,发消息,存储,目录,安全性,和程序码管理。最后说明本发明在人们工作和家里的日常生活中如何方便了改善的协作和通信。
本发明的分布式计算服务平台方便了在客户设备和服务器联盟之间,以及和服务器联盟的服务器之间的通信。例如服务器联盟可以包括服务器和在因特网和/或公司企业网上的服务器。客户和服务器在维持一定程度的独立的同时,通过有意义的通信和信息交换而集成一体,借助穿过与传输协议无关的消息底层结构的公共模式的信息交换使得能做这样的有意义的交换。
平台包括一系列分布的而又集成的技术组件和服务,包括编程模型,模式,用户界面,事件,发消息,存储,目录,安全,和程序码管理。编程模型确定一个应用的结构,该应用能灵活地分布在客户和服务器联盟之间。跟随编程模型的应用包括页面,密度(emissary),和封地(fiefdom)组件。页面组件包容通常用于反映与服务器联盟通信的特定客户设备的用户界面的控制。密使组件一般将客户描述给服务器联盟。封地(fiefdom)组件拥有组成应用的主要资源的数据。这些组件一般通过发异步消息互相通信。这些消息可由组件内部的逻辑产生,由组件内部产生的事件产生,或响应于从其他组件接收的消息而产生。
平台依赖于模式使通信有意义。模式是一组规则或标准,它们确定如何能构造特定的数据类型。因此,联盟的计算机系统使用模式来识别,符合特定结构的数据表示出整个联盟中使用的特定典型的项。因而,数据的意义而非数据本身可以在各计算机系统之间通信。例如,计算机设备可以识别遵循特定地址模式的数据结构表示一个地址,使计算机能“理解”地址的组成部分。然后,根据该数据结构表示一个地址的理解,计算机设备完成智能的动作。例如,那样的动作能包括向用户提出活动菜单,它表示用地址要做的事。模式可以存储在设备本地和/或全局地存入联盟的“海量存储器”。设备能保持本地存储的并由预约事件通知服务(在此情况是模式更新服务)更新的模式,当模式更新时,事件通知服务自动地将消息送到该设备。访问全局存储的模式由安全性底层结构所控制。
用户与设备的交互主要通过用户界面发生。本发明的用户界面(UI)是多模态,智能和应答式的。用户界面近似地缩放各种客户和服务器设备的技术能力。用户界面还记住不同设备用户的状态,会话和偏爱情况。因此,因此,用户可以从一个设备切换到另外的中间会话(mid-session)而所有的状态和偏爱信息保持一致,或者不同用户可以共享同样设备,并根据他们的偏爱用不同的界面表示。在用户通过安全性底层结构认证他们自己以后,用户的偏爱信息能通过目录服务访问,而目录服务存储由模式指定的用户特定信息(如爱好,联系等)。用户界面也是多模态的,意味着用户能通过多种模式与UI互动。例如,用户的输入能通过如键盘输入或鼠标点击那样“传统”方式进行,UI也允许其他输入方法,如对装有麦克风的设备的声频/语音输入或对装有触摸屏或垫的设备的触针/接触输入。
在平台中的事件用于同步,报告或提供有关某些活动的通知。平台的事件组件包括事件源,它产生通信到遍及联盟的事件汇点的事件。系统包括事件组合机构,它将原子事件转换成渐进的高级事件,甚至包括推理机制,它通过有关输入事件的逻辑或概率推理,将输入事件转换成更高级事件。事件组合机构使一组可用的原子事件调整成与软件组件信息需求相匹配的观察,为这些组件提供恰当抽象水平的信息,以便作出好的决策。事件通过下列若干机构能被软件组件访问1、软件组件对一个或多个事件源提供的某类事件的订阅;2、对一个或多个源的间歇性轮询;或3、事件源听取事件的广泛广播。对任何这些访问事件的方法,事件通过发消息的底层结构可以被应用软件访问,尽管消息传输类型可能依赖于事件类型。例如事件能与等待时间的不同容忍度相关,使得事件的通信受与发送延迟相关的代价的指导。为此原因,关键任务(mission-critical)服务器关闭的事件通知需要保证即时送到目的地。如用户大致位置的改变那样的事件可以与较低的延迟代价相关。而且,用户界面能以正比于通知紧迫性的方式通知用户特定的事件。例如,网络管理员可以接收服务器关闭的紧急弹出消息,或年青人可以通过即时消息或聊天界面接收他的一个朋友在某区域的通知。事件通知也由认证及授权机构控制。
消息发送组件160是可以经过平台交换事件和其他信息的机构。消息发送服务使用包括HTTP的各种传输协议的任一种,在因特网上提供有效及可靠的消息发送。消息发送底层结构为应用开发者建立标准界面,用于编写利用消息发送服务的整体结构和与本发明有关的其他特征的应用软件。消息发送可以异步地发生,使得能持续更新网页而不必要求用户起动网页刷新。
存储服务考虑遍及服务器联盟的分布存储。如上讨论,用户的偏爱和文件可以存入联盟中的“海量存储”中,但在适当认证之后用户能使用任何设备从任何位置访问此信息。“海量存储”不需要全放在单个服务器上,存储可以根据效率,存储器分配,访问频率等在联盟的各服务器分布。存在服务器联盟中的信息也能本地复制,使用户能离线工作。当用户回到在线时,产生一个事件,触发离线和在线数据的自动同步。存储服务包括建立在传统文件系统基础上的数据引擎。优先化本地缓存的信息的方法以及允许根据上下文的改变和/或缓存信息的时效擦除缓存信息的方法能被用来使缓冲信息的价值最大化。
为了支持能借助各种服务容易地知道或识别用户的概念,提供了目录组件。本发明的目录服务通过包括每个企业或每个网站的元目录以及在诸元目录之间的同步支持联盟。借助用于目录之间的通信的标准化模式使同步得到方便。这些元目录提供对特定调整的目录的引用,其中可以找到更详细的信息。例如,目录可以包含用户识别信息(名字,地址等),安全信息(该用户被授权访问什么信息)等。
本发明的安全性底层结构提供在服务器联盟之间改进的安全性。为保证用户的可移动性和隐私,为具有多个识别符的个人提供安全性底层结构。例如,一个人可以具有专业识别和个人识别,本发明方便于认证和授权,其中这些多个实体可以被处理成单个实体。此外,描述了改善的放火墙技术,其中个人防火墙,周边防火墙,和安全性网关互相独立地运作。可以通过如口令,智能卡,生物学表征(指纹、视网膜扫描等),密钥交换,加密等技术的任何组合实现安全性。
本平台的一个目的是保证用户透明地访问他们需要的最近更新的应用程序的程序代码。本发明的程序代码管理系统包括描述应用程序结构的清单,包括代码,资源,入口点和对应程序及其组成组件的配置信息。代码管理系统允许符合编程模型的应用程序以有效的方式在整个联盟中部署并更新。
本发明的另外特征和优点将在下面描述中列出,部分从描述中就显而易见,或者可以通过本发明的实践掌握。本发明的特征和优点,通过在附后的权利要求中特别指出的装置和组合实现和获得。本发明的这些或其他特征从下面描述和附后的权利要求变得更加明白,或可以通过下面列出的实践中掌握。
附图简述为了得到本发明的上述和其他优点和特征,将通过参考在附图中示出的特定实施例提出对上面简单描述的本发明的更具体的描述。应该理解,这些图只给出本发明的典型实施例,而不认为是对本发明的限制,将通过使用附图更具体详细地描述和解释本发明,附图是


图1示出为本发明提供合适操作环境的结构。
图2示出用于应用程序的编程模型,该应用程序能在图1的结构上以分布方式实现。
图3示出按本发明的模式存储和模式服务。
图4概略示出按本发明的用户界面。
图5概略示出事件系统,它按照本发明在多个事件源和事件汇点之间提供事件通知。
图6概略示出为使用本发明的消息发送结构。
图7概略示出为使用本发明的存储结构。
图8概略示出为使用本发明的目录结构。
图9示出使用图8目录结构的示例性通信流程。
图10概略示出为使用本发明的安全性服务。
图11示出显示全局识别符如何用于维持概况信息的数据结构。
图12示出为使用本发明的改善的防火墙配置。
图13示出为用于软件开发的代码管理清单。
发明详述A、引言本发明涵盖包括分布网络服务平台的方法,系统和计算机程序产品,该平台方便于更多的基于因特网的协作和网站之间的通信。本发明的各种结构组件可分布在各种专用或通用计算机设备上,包括各种硬件组件,如个人计算机,服务器,膝上型设备,手持设备,移动电话或类似设备,下面将作详细讨论。
在本发明范围内的实施例还包括计算机可读介质,用于携带或具有计算机可执行指令或存储在那里的数据结构。那样的计算机可读介质可以是能由通用或专用计算设备访问的任何可用介质。借助例子(但不限于此),那样的计算机可读介质可以是物理存储介质,如RAM、ROM、EEPROM、CD-ROM或其他光盘存储器,磁盘存储器或其他磁存储设备,或任何能用于以计算机可读指令或数据结构的形式携带或存储所希望的程序代码装置并能由通用或专用计算设备访问的其他介质。当信息经过网络或其他通信连结(无论是硬件连线,无线,或它们的组合)传输或提供给一个计算设备时,该计算设备把连结恰本地看作计算机可读介质。因此,任何那样的连结被恰本地称之为计算机可读介质。上述的组合也应包括在计算机可读介质的范围内。例如,计算机可执行指令包括使得任何通用或专用计算设备完成某个或一组功能的指令和数据。
在此描述中,本发明的可实现的总体结构首先在体系结构段落中描述。然后列出的段落描述该架构的若干技术组件的每一个,这些段落包括编程模型,模式,用户接口,事件,消息发送,存储,目录,安全性,和程序编码管理。最后,在情况景段落描述各种情况,说明了该架构和技术组件如何方便了改善的因特网通信和协作。
B、体系结构图1概略地示出可以实现本发明的操作环境100。客户设备110具有广泛的处理和存储能力。例如,客户设备110包括“胖-rich”客户端(如胖客户端112),它能完成高级数据处理,如台式个人计算机;和“瘦-thin”客户端114,它们有较小的处理数据能力,如移动电话和寻呼机。可以理解,胖客户端和瘦客户端之间的区分是一个范围;例如有许多设备(如手持或薄型PC)落在这些范围之间。
不管客户端的设备类型或处理能力,大多数客户设备能由用户以在线或离线状态操作。在线操作时,每个客户设备可以通过本发明的分布式计算服务平台115与服务器联盟120通信。概念上,服务器联盟120包括如通常称之为“因特网”125的计算机系统广域网,和一个或多个如公司企业网130那样的专用计算机网络。联盟中的服务器(即在因特网上的服务器140a,140b和在公司企业网130中的服务器140c,140d)也经平台115互相通信。
从概念上说,平台115包括若干包含技术和服务的平台组件,包括编程模型组件135,用户界面组件140,存储组件145,目录组件150,事件组件155,消息发送组件160,安全性组件165,模式组件170,和程序编码管理组件175。虽然在图1中示为概念上截然不同的,可以理解,每个平台组件135,140,145,150,155,160,165,170和175可以遍布服务器联盟120和客户设备110。而且许多平台组件向客户设备110和服务器联盟120提供服务。每个平台组件松散地连结到其他平台组件,如箭头180所示,使平台115能提供综合的技术和服务。平台115的分布式性质和支持服务以及平台组件的集成有助于并便于本发明的高级特征和优点。
服务器联盟120的服务器140和客户端110,在保持一定程度的自主性的同时,通过使用跨越与传输协议无关的消息发送底层结构的公共模式的有意义的通信和信息交换被集成,如由下面更详细讨论的模式平台组件170和消息发送平台组件160提供的那样。双向箭头190表示发生在服务器和客户端中的通信。双向通信使客户设备110能从服务器联盟120读,写到那里,以及与之互动。本发明可以使用任何能按照一个模式双向通信数据的通信机构实现。在一个例子中,通信经可扩展的标记语言(“XML”)格式发生,它能进行名字/数值对通信。
在某些情况,在客户设备110和服务器联盟120之间的通信也可以是单向或“只读”。单向通信是当今在因特网上主要的通信方式。在此类“只读”通信中,在发布者建立并发布了一个网页之后,因特网本质上用作表示工具,使用户能读出在网页上的信息。允许这样表示的技术包括允许和无限设备通信的无线应用协议“WAP”。而且称为超文本标记语言(“HTML”)的网页格式便于从网站下载信息。信息然后被分析,提交并在客户设备上表示。但是本发明的平台115扩展传统的网页表示模型以便于丰富的,交互式的双向通信。
平台115允许在联盟120中的服务器140合作地共享信息和/或完成功能。不是每个服务器必须自行收集和编译信息,相反服务器依赖容易得到信息的其他服务器来实现有效的工作分担。然后用户得到丰富的信息而不必考虑为产生此丰富的信息发生在服务器联盟中的错综复杂的服务器间通信。例如,服务器联盟120中的服务器140可以交换信息,使得从一个服务器来的股票价格表显示在客户设备110的用户界面的一部分中,从另一服务器来的新闻评论显示在客户设备的用户界面的另一部分,而从又一个服务器来的即时消息显示在客户设备的用户界面的另一部分。
在服务器联盟120中的服务器140使用标准的数据结构或由模式平台组件170提供的模式进行通信并共享信息。模式便于在服务器与应用之间进行更有意义的互动而不只是在服务器之间交换信息。此意义的识别使服务器能根据信息识别的意义完成功能。若应用软件将信息识别成意义,如给定实体的地址,则应用软件根据识别的意义完成某些功能。例如,应用程序能自动地用地址信息填入对应于特定实体的模板的地址字段。应用软件也能检测到邮编或州名在地址中丢失,因而自动地询问其他服务器有关丢失的信息,使得所有地址字段自动填满而不需要用户干预。由于每个服务器识别与数据有关的意义并随后根据该信息动作而不必人的干预,在此方面每个服务器是智能的,因此在服务器之间的合作更加有效。
C、编程模型图2示出平台115的多层编程模型组件135。编程模型描述,一个应用200如何能不同程度地在图1的客户设备110和服务器联盟120中分布。一个“应用”定义为一个软件体,它完成一个功能并可以包括一个网站。在分布式应用中,应用的组件能存在客户设备中,而其他组件是网站的部分。通常,应用200由一系列应用组件组成,包括页面组件210,密使组件220,和封地(fiefdom)组件230。页面组件210包括反映用户界面的控制或担当适当的客户设备110。密使组件220通常表示客户端到服务器联盟,因此充当客户端和服务器联盟之间的密使。封地组件230最直接地控制组成应用200的重要的资源的活动数据。单个应用可具有变化数目的组件(如多于一个页面组件)。而且有些应用可以没有所有组件。
根据客户端的能力,页面和密使组件可以在客户端或服务器联盟上运行。在只有少量或没有处理能力的瘦客户端,页面和密使组件更有可能在服务器联盟上运行。在具有较强处理能力的胖客户端,如台式个人计算机(PC),页面和密使组件更可能在客户端运行。
这些应用组件的每一个,如页面,密使和封地,包含逻辑240的本体(即计算机可执行指令),它们用于通过消息发送组件160从一个组件到另一个组件发送和接收异步消息。例如页面级逻辑240a用于从页面组件210通过消息发送队列到250a将消息异步发送到密使组件220。密使级逻辑240b用于将消息从密使组件220经消息发送队列250b异步发送到页面组件210。密使级逻辑240也用于将消息从密使组件220通过消息发送队列250c异步发送到封地组件230。封地级逻辑240c用于将消息从封地组件230通过消息发送队列250d异步发送到密使组件220。因此,异步信息交换在应用200的页面,密使,及封地组件之间发生。按照消息发送组件160,消息队列在组件之间为发送消息提供可靠的通道,并支持各种发送语义(即保证为只有一次提交,事务的提交和不保证的提交)。消息经模式(如XML模式)定义。
在每个应用组件中的逻辑240的本体也用于包容控制260。通常,控制表示能被程序组件访问的功能性,且可以是程序组件的功能性的一部分。例如,页面级逻辑240a包容控制260a,密使级逻辑240b包容控制260b,而封地级逻辑240c包容控制260c。每个控制260展现出可调用的方法,可同步读写的特性,以及可事件,这些事件可以异步地爆发,引起杂页面,密使和/或封地组件中的逻辑执行。通常,由控制触发的事件是低级事件,如引用在一个对象上的方法。因此,当组件接收到一个消息时它产生事件,引起执行组件中代码。
页面组件210使用页面级逻辑240a直接并同步地操纵控制260a以便反映用户界面或经历。依赖客户端用户界面的能力,页面组件可以安静地重定向引用到特定的与客户端兼容的页面的版本。例如,一个页面可能适合于胖客户端,另外的页面可以迫用于瘦客户端,如电话或其他那样的设备。页面组件210可以使用客户的统一资源定位符或URL识别客户的识别符,并因此重定向到合适的页面版本。但是不论哪个页面版本,用户界面对广泛的用户设备表现出一致性,虽然在该页面的较丰富的版本中某些特征将被呈现或更充分地开发,这将结合下面用户界面组件来讨论。
页面组件也能根据实现该页面组件的设备的处理能力调用不同的页面版本,而不管客户可用的用户界面。例如,若页面组件在具有很强处理能力的客户个人计算机或服务器上实现,则页面组件可以重新定向到使用户能与页面做广泛的交互活动的丰富的控制页面。相反,若页面组件在瘦的不太强壮的客户端实现,页面组件可以仅重新定向到HTML的页面版本,它通常包含很少(若有的话)控制特征,允许用户与该页面互动。
密使组件220封装一个逻辑240b的本体,它能同步地与控制260b互动。逻辑240b也设计成以标准的方式抽象地向服务器表示客户,而不管客户的设备是什么样的。密使组件可以访问由封地组件公布的只读数据,并将那样的数据存入复制数据存储271。密使组件还包含每个用户的读/写数据(R/W),如购物记录(cart)数据,那是存在R/W的每个用户的数据存储区272之中。逻辑240b的本体可以响应从消息队列250a或250b来的进入消息而执行。
封地组件230封装逻辑240c的本体,它逻辑上“拥有”存储在活动数据器280中的活动数据。逻辑240c的本体响应从与封地组件相关的如密使组件220那样的密使组件接收的消息而运行。封地组件230在请求访问服务的任何密使组件上实现安全性服务。
在应用软件中的每个组件维持有关直接用户和会话状态的状态信息。因此,每个组件支持用于那些用户和会话状态信息的复制的对象。此状态信息可以通过支持那样状态信息的通信的异步消息发送与在应用软件中的其他组件共享,因此,每个组件可以觉察用户界面在会话的任何给定点的状态。此外,每个组件可以觉察用户的偏爱。
现将描述编程模型组件135的优点。在应用软件中的组件能够异步消息发送。因此,为了接收消息,组件不必显式地请求信息。而且为了发送包含这样信息的消息,组件不必接收对该信息直接请求。因此,编程模型支持发送消息到页面组件(因此更新用户界面)而用户不必直接更新网站。因此,页面可以表示为异步用户界面,其中当页面组件从密使组件接收消息时,页面自动更新。而且在那样情况下,密使组件不需要访问复制数据,因为活动数据可通过封地组件得到。
此外,编程模型包括在发生定义的事件时可以异步触发的控制,从而导致执行在组件中的逻辑。此逻辑可以响应此事件发送异步消息到其他组件,使在应用软件中的任何组件能响应定义的事件而执行。因此,应用软件是高度事件驱动的。这些事件可以驱动在该应用程序的任何组件中的方法被异步执行。
例如,封地组件可以包容一个控制,它配置成在任何包含预定词的新的文章加入数据库时触发。事件的触发能引起封地组件通过密使组件发送一异步消息到页面组件。响应于此异步消息,页面组件可以提交通知消息用于在客户端表示,然后通知用户有新的文章。例如,若客户设备是瘦客户,用户界面可包括小的通知窗,指出存在那样新文章。若客户设备是胖客户,用户界面可以在屏幕上显示整个新文章。任何一个或所有的页面、密使、或封地组件可以根据同样事件进行其他动作,如组成电子邮件将文章发送到对包含此预定的词感兴趣的同事。因此,编程模型启用了用复杂的事件驱动的应用。
而且编程模型便于客户端和服务器联盟之间灵活地放置这些组件,并允许在线和离线使用该应用软件。例如,应用软件可以构造成允许在线或离线执行。这可以通过将页面组件直接包容在客户端,而直接与密使组件通信的那些页面组件也包容在客户端。在离线时,应用软件访问复制数据存储器271中的复制数据,而不是在活动数据存储器280中的活动数据。一旦在线,访问被恢复,密使组件发送排队的更新到封地组件,且更新复制数据以反映由封地组件管理的活动数据的现状。
应用软件也能如此构成,使得所有组件,页面,密使和封地都包容在服务器联盟中。在此情况,客户端必须与服务器联盟连线,使能访问页面,密使和/或封地组件的服务。
此外,在离线时,应用软件20某些部分可用(后面称为“离线部分”),而应用软件的其他部分仅当客户端在线时可用(以后称为“在线部分)。启用应用软件离线组件的页面和密使组件由客户端包容,而启用应用软件在线组件的组件由服务器联盟包容。
因此,本发明的分布式计算115服务平台的许多其他技术组件可以按照编程模型组件135实现。
D、模式使能进行更多基于因特网的合作和网站间通信的一个方法是经由更有意义的数据通信的方法。有意义或智能的通信提供了比单纯数据更多的内涵,还提出了数据为何通信及通信什么的暗示。这可以通过以标准方法或“模式”构造数据来实现,如通过标准数据结构,协议,通信传输,和其他结构化的数据交换。存储在客户设备110,服务器140中和/或按存储组件145存储的信息可以按照模式存储。当在服务器之间,在服务器联盟120之中,在服务器联盟120和客户端110之间,和在平台组件之间通信信息时也使用模式。此外,在图2的应用软件的各组件210,220,和230之间通信的异步消息可使用模式通信。
在许多情况下,用户希望使用从多个应用软件和数据源来的数据建立报表,分析进展,预测需求或检测操作环境的变化。不幸的是,此类数据虽然经常可用,但常被发现是完全不同的格式,因为每个应用软件通常使用它自己的模式组。换言之,虽然应用软件描述相类似的数据类型,如接触和时间,这些数据类型常常对不同的应用软件采用不同的词并具有不同的属性。因此,传统上需要专门的翻译或输入/输出功能,以允许遵循不同模式的应用软件进行通信。
为了促进在服务器联盟120中的通信和合作,本发明的模式和模式服务组件对包罗万象的数据结构提供在服务器联盟120上交互及合作的基础,这些数据结构如日期,地址,药方,上演时间,产品描述,价格,收据,偏爱,医疗记录,电影回顾,或其他有关数据类型。
通用模式可能是不现实的,因为不同的应用具有不同的需要和传统,而且需要支持跨平台的应用软件。取而代之的是,本发明的模式组件170试图定义“核心模式”,它们是只只定义大多数应用软件共同拥有的事物最小公共模式。核心模式可以扩展,可以定义描述对有利于数据交互及协作有用的重要数据的新模式并将其加到下述的核心模式中。此外,模式可以在网络的不同层上起作用,包括操作系统或客户端设备的用户界面以及图1中的服务器联盟。
有若干类核心模式,包括(I)基本类型,(II)社会类型,(III)商业类型,(IV)系统类型,和(V)应用类型。
(I)基本类型用作对其他类型的基本构成块。示例性的基本类型包括如对象,项目,容纳文件,数据库,文件夹,消息,文本,或其他基本数据结构的类型。将由不同的应用软件使用的各种模式翻译成基本类型模式可由下述翻译过滤器完成。
(II)社会类型表示或描述在日常任务及交往中使用的项目。示例性社会类型包括的项目如联系,简况,日历,任务,时间,位置,财务,和其他社会交换的信息或识别。类似于基本类型,可以建立翻译过滤器,将不兼容的数据结构改变成社会型模式。
(III)商业类型用于描述在商业环境和商业到商业(B2B)交易中的共同事物。示例性商业类型包括的类型如产品,帐单,客户,雇员,分销商,零售商,供货商,和其他业务数据。
(IV)系统类型定义用于管理系统的信息结构。示例性系统类型包括的类型如策略,时间表,服务,设备和其他与系统有关的信息。
(V)应用类型定义应用和服务的结构。示例性应用类型包括的类型如应用清单,组装件清单,和COM+类型描述。系统和应用类型是基于系统和硬件配置特有的信息。
模式组件170还提供若干模式服务292,用于存储,查找,咨询,发布和共享模式信息和数据。参考图3,模式存储器290是收集和共享模式信息的地方。例如,模式存储器290能包含核心模式类型的描述和在已知模式及核心模式之间的映射。在本发明的一个实施例中,模式是XML模式并在模式存储器290中由模式描述语言描述。(模式描述语言的一个例子是XSD,为了本发明使用可以扩展)。模式存储290是本发明的存储组件145的一个范例(在下面详述)。因此,模式存储290可以分布在整个服务器联盟120。虽然模式存储290不是应用软件存储模式的唯一的地方,但通过将模式存入此处,应用软件能保证,模式服务292和使用它们的应用能够发现该模式并用该模式工作。应用软件也能本地复制和存储模式,并使用下面更详细描述的模式存储290和模式服务292更新它们。对模式存储290和模式服务292的访问能受由安全性组件165提供的各种安全性认证,授权和防火墙服务的控制。
模式服务292通常包括模式登录服务,它是应用软件存储,寻找,查询和发布模式信息的机构。例如,模式存储290可以通过如模式登录服务收集和引用各种模式,而模式登录服务可以包括如模式登录API(应用编程界面)。模式登录服务允许应用软件从模式存储中增加或擦除模式信息。
模式服务292还包括模式更新服务,它允许管理员,操作系统,或其他背景模式调解器更新模式。模式服务292还可以包括分布式模式服务,以便通过遵循在范例数据中的引用而取得不是一直存储的模式。为便于此服务,模式可以按照存储组件145存入整个服务器联盟120,且能使用事件组件155通知应用软件何时发布新模式,从而允许全局的模式分布。模式服务292还可包括模式有效性服务以维持模式的完整性和一致性并映射到存储中。此服务提供模式描述语言的结构有效性,校验冗余的和冲突的实体,和在模式之间关联性的的一致性验证。模式存储290还依赖本发明的事件组件155,以便向模式提供改变的通知。模式存储290还可以依赖本发明的消息发送组件160,作为分布更新,事件,订阅和通知的传输。
例如,本地模式存储能订阅模式更新服务以更新核心类型和模式。一种配置使用对象管理器支持对模式事件的登录,允许感兴趣的用户检测何时发生某些相关模式的改变。本地模式存储能订阅一个或多个源用于更新。更新服务为模式存储预提供核心类型(如个人和时间),并映射如MAPI,vCard,LDAP和WMI那样的公共模式到这些核心类型。企业能包容类似的更新服务以维持在他们组织网络中的模式存储。
模式转换服务(也是模式服务292的部分)使得采用不同模式的应用能共享意义。示例的模式转换服务包括模式适配器服务,模式识别器服务,和模式映射服务。模式转换服务通过提供共享机制识别数据并通过将一个模式的数据转换到另外模式而允许应用程序动态地支持新的模式。模式转换服务使得应用软件更容易理解广泛的模式,增加各应用软件的强壮性和一致性,并通过提供共享机制来识别数据以及将一个模式的数据转换到另外模式的数据而允许应用动态地支持新模式。
例如,模式适配器服务使得可能用不是用如XML那样的标准化语言构造的数据工作。模式适配器服务接收非XML数据并将其转换成XML数据或用于与模式通信的任何其他类型数据。
模式识别器服务识别数据范例的模式类型,使得应用软件知道如何处理该数据。模式识别器服务接收XML数据或明文作为输入。对XML,模式识别器服务使用标准的存储询问服务294询问模式存储290,以确定模式类型,使用XML名字空间使可能性列表变窄。为了从明文推论出模式类型,模式识别服务依赖于自然语言服务,它们轮流使用模式存储290。一旦知道模式类型,应用软件可以使用此信息提供它自己的用户界面或启用系统范围的用户界面。
模式映射服务取出一个模式的XML数据,根据在模式存储290中定义的映射转换数据,并返回以另外模式的XML表示的数据。在一个配置中,由带有写入口和写出口功能的应用软件使用模式映射服务,并常常结合模式适配器服务。
驻留在模式存储290中的模式能描述应用,脚本,组件,方法绑定或数据源,它们能用于作用于或表示特定的模式类型。例如,一个应用软件可以提供标准的用户界面以显示特定模式类型的数据,而另一个应用软件可具有对那个数据操作的商业逻辑,对给定的情景哪个动作是合适的,这取决于用户的对前后情况的偏爱。这些模式服务与用户界面组件140合作使能得到若干终端用户特征,如动作菜单,自动完成,和智能剪贴板拖放(下面描述)。
动作菜单特征提供在任何应用程序中的一片数据上可采用的动作的选择。在一个配置中,这些可采用的动作以“factoid-事实id”的方式提供,允许用户选择或不管它们。一个应用软件使用存储询问服务294询问模式存储290有关特定数据类型的登录行动。检索到的动作被用于产生动作菜单,例如,当用户点击一个地址,应用软件询问类型“地址”,且模式存储290返回如“打印信封”或“画出此地址”之类的动作,这被提供在上下文菜单中。动作菜单API允许开发者列出此菜单和其他在他们应用软件中的应用软件专有的动作。对于在模式存储中每个核心类型预提供的行动菜单可以显示在操作系统,因特网浏览器和各种活动应用之中。
模式服务也能够增强现有的“自动完成”特征;它通过表示从数据源来的列出可能值的选择使得用户较容易填满网页表单和文档中的数据字段;向用户表示的可能值的列表可以根据在模式存储290中的登录。例如,当填了一张“Evite-电子邀请”邀请朋友参加一次聚会,电子邮件地址字段将从用户的联系表中提供地址表,它通过在模式存储290中的登录绑定到了电子邮件地址属性。同样的功能可通过起他应用软件列出以提供对书信,发货清单,电子表格,邮寄类表,数据库,或其他文档的自动完成。同样的值列表在任何选择列出此功能的应用软件中显示。
智能剪贴板拖放使用模式转换服务以允许数据在使用不同模式的各应用程序之间交换。因此,模式转换服务增强了现有的拖放和剪贴板例行程序以便在支持不同模式的各应用软件之间移动数据,而同时保持对数据表示什么的共有理解。
因此,与如事件,消息发送,存储,模式,安全性那样的其它平台115技术组件一起工作的模式组件提供在客户和服务器设备之间共享有意义的信息的机制。
E、用户界面图1的平台115的用户界面组件140提供了跨越各种客户设备的多模态的,应答的和智能的用户接口。图4概略地示出了用户界面组件140。
用户界面组件140提供多模态用户界面(UI)意味着用户能通过多种方式与UI交互,且这些方式能频繁地无缝地改变。用户界面组件140包括允许多模态输入输出的先进输入/输出组件400。输入/输出组件400能使用如键盘键入或鼠标点击那样的“传统”方法接收用户的输入。例如,输入/输出组件接收文本402。但是此外,UI也允许其他输入方法,如装有麦克风的设备的声频/语音输入(如声频/语音404),对装有触摸屏或触摸垫的设备的触针/触摸输入,对具有手写输入能力的设备的手写输入(如手写406)。如双向箭头408所示,输入/输出组件400也能提供如文本402的传统输出,和如声频/语音404及手写406那样的非传统的计算机化的输出。
输入/输出组件400还结合在将信息输入到设备中时特别有用的各种转换技术。那样的转换包括将用户的声频/语音输入转换成文本的语音到文本技术。例如当用户在开车或缺乏打字能力因而不能或不方便使用传统的打字输入文本时,此转换是有用的。对输入有用的其他转换包括手写到文本技术,它将用户的手写触针/触摸输入转换成文本。当如键盘那样的文本输入装置不包括在设备中时,这样的转换便于文本输入。
例如,是输入板形式的个人计算机(即“输入板PC”)是一种允许使用如触针直接在屏幕上书写的手写输入由设备。然后输入板PC使用输入/输出组件400将手写转换成文本,使文本能以纸面书写不可能的方法编辑。例如,在段落之间可以插入间隔以便加入注释。输入板PC可以按照需要显示手写体本身或手写体描述的文本。
除了“传统”文本和图形显示以外,输入/输出组件400还能以多种方式向用户表示数据。例如,UI可以引入文本到语音技术,将文本(如键入的电子邮件消息)转换成声频(在设备上通过扬声器“读”该消息)。而且语音邮件能与基于文本的电子邮件消息一起加入到统一的消息对象中,在需要时语音到文本的转换使此语音邮件转换成文本。
多模态用户界面使用户根据用户的现状和周围情况与各种设备交互。例如,在使用如PC那样胖客户端时,用户能选择让她的消息通过视频/声频显示并通过文本回答。但是,在她的车内,用户可选择使她的消息只用声频播放并用声频回答。
根据用户特定统一的用户界面门户概念使能进行自然语言通信。示例性统一的用户界面门户概念包括输入串的分析,经逻辑形式匹配的匹配概念,与结果一起的恰当的类似语言的句子的产生,根据对用户定制的搜索参数进行的有帮助的反馈,能在多个完全不同的数据库存储上智能执行的搜索底层结构(其中用户的传统存储位置设置有优先级)。
除了多模态以外,用户界面组件140是应答的,因为它能根据用户的状态和上下文在一系列客户设备110上作适应或改变工作。例如,用户界面可按照用户的偏爱和会话状态进行配置和加工,使得若用户在会话中从一个客户设备切换到另外一个,用户能使用带有用户界面的其他客户设备继续会话,用户界面在各客户装置上显现出一致性(管理可能作修改,这在下面讨论)。
参考图4,偏受信息可以存入在服务器联盟120中的MyState适配目录905中。当用户在客户设备上工作时,会话状态信息定期地在MyState目录905中更新,当用户在使用安全性组件适当认证以后切换到另一客户设备时,将偏爱和会话信息提供到新的客户设备。偏爱信息使得新的客户端的显示与老的客户端一致,此外,会话状态信息使新的客户设备继续该会话而放弃老的客户设备。
用户界面还适本地和平滑地缩放客户设备的技术能力。例如,移动电话由于在输入键和显示区域方面的空间限制,在它们的用户界面上是有明显的技术局限,这些移动电话的用户界面应降低,以强调此用户界面的最重要的特征。因此用户可以在会话中从胖客户个人计算机移到瘦的客户移动电话,虽然移动电话的用户界面提供更有限的用户会话感受。在客户设备之间的平滑缩放可以通过使用由编码管理组件175提供的清单实现,这在下面详述。例如,清单可以描述为在客户设备上显示所需的最小用户界面特征并描述当所有组件不能在该客户端显示时要显示的用户界面特征的优先级参考图4,有根据客户设备的能力而定的客户设备可用的用户界面的整个型谱412。此型谱对具有很好多模态能力和可得到处理能力的客户设备有很丰富的交互式UI页面组件(如页面组件R)。该库还包括对具有较差用户界面及较低处理能力的客户端的瘦页面组件(如页面组件T)。图4中示出的用户界面UI是从此型谱412某处的页面组件414取出的。
而且,用户界面智能地响应用户的动作,例如如上所述,用户界面组件140结合模式组件170(和模式服务292)向用户提供“智能标签”的动作菜单,若用户键入一个地址(在网页,文挡或联系表中),模式服务292使该地址被识别成地址并随即提供一个热标签,智能标签可以通过用如兰色下划虚线那样的明显标记标出被识别的项目来表示。
用户随后可以借助如点击鼠标右键来选择标出的地址,以得到适合于识别的项的类型的动作菜单。例如,对识别成地址的项的动作菜单可以提供看一个地图,打印地址标签,加到联系表等能力。一个合适的动作可以包括使用该地址找到如包括该地址的地图此类更多的信息。这样做时,用户界面可以通过目录服务组件150咨询可以得到的地址服务。
而且,用户界面可以检测到用户在键入,并因此将用户界面特征集中在文字处理活动,例如,键入可以触发事件,导致用户界面判定用户似乎试图进行文字处理,那样的事件触发和推理组合由事件组件155提供。
用户界面还能具有统一的命令行,它可用于完成搜索,导航到一个网站,访问文件系统中的文件,或完成自然语言的询问及命令。在较佳实例中,统一的命令行能在每种设备类型上以某种格式提供。在进行询问时,用户界面组件140使用智能的反馈过程对命令,控制或逻辑处理的执行引起说明或寻找确认。例如,用户将“How’s the market doing today?-今日市场在做什么?”键入统一命令行中,在此问题中有某些多义性和/或含糊处,然后用户界面组件140可以响应说“What index are you interested in?-你感兴趣什么指数?”用户随后在命令框中键入“Dow Jones-道·琼斯”。用户界面组件140然后具有足够信息说出答复。为了在命令行中返回请求的信息,用户界面组件140必须结合存储和消息发送组件来检索信息。
统一的命令行也能用于完成自然语言命令。例如,用户可以键入“Schedulea meeting with Joe Doe for 3:00-安排与Joe Doe在3点钟会面”。在用户界面组件140说明了会见日期,时间长度和地点后,用户界面随后咨询Joe Doe的日程表,那样的访问John Doe是否已接受。若由John Doe建立的规则和偏爱允许以请求的时间,地点和请求的时间长短安排会见,那么在将John Doe的日程表和请求者的日程表中安排该见面。
统一的命令/搜索行分析且公布(Brokers out)的对由本地及在网络上提供的服务询问或命令。它存在于用户界面中的一个地方,以同样方法访问,无论它们在哪里,所有输入形式(键盘键入,讲话,手写)都能由用户界面所接收。所有等级的情报—口令,布尔,和自然语言(摘录,名词,短语和/或很好形成的句子)也可由用户界面接收和处理。
用户界面组件140可以提供单个统一的对象,它识别一个终端用户是具有许多角色的人,如学生,雇员,经理,财经人员,病人,双亲,消费者和钢琴家。通过单个统一对象的用户界面将所有这些角色汇合在一起建立丰富无缝的感受。
用户界面组件140的统一门户允许终端用户定制和控制统一门户的设置,包括建立项目优先权,从而使在操作系统,文挡,和用于各种活动的应用软件之间的视觉差异最小化。
通过此种定制,用户界面组件140智能地提供和布置页面。此种定制以偏爱的形式存入MyState目录905。一旦用户登录到客户设备并对安全性组件165作了认证,服务器联盟120共同获得遵循这些偏爱的个性化信息(可能存在存储组件145的海量存储中),并经链路410向用户界面提供信息。
用户还允许定制和控制用户界面组件140的设置,以包括对用户的工作状态的觉察并相应地调节用户界面的样式。可能需要不同用户界面的示例性工作状态包括用户在PC上工作时,用户离开办公室时,用户通过PDA或无线电话访问数据时,用户在家里、或其他与服务器联盟120连接的地点或电子设备上工作时。
用户界面还使终端用户能指令设备收集有关用户优先级的数据,包括消息和优先级的查明。例如,用户可以设置这样一个偏爱,使得从他们老板来的消息总被给予高的优先级并打断他们来接收这些消息。因此,从事件组件155来的关于消息被收到的通知可以根据这些偏爱被过滤。统一的对象处理程序也使基于网络的通信能将数据从单台PC贡献给社区项目。这在工作社区中特别有用,因为它使经理具有从他的PC门户控制内容的能力。
还能启用视窗共享和文档共享,使得当一个用户与通信列表中的某人通信时,双方均能激活视窗共享或文档共享,使得其他人也能看到正在讨论的视窗或文档。那样的视窗共享能通过访问在服务器联盟中的海量存储的文档并通过配置安全性设置使得其他人能通过安全性组件165恰当地访问该文档来予以实现。
用户界面还建立临时的模板,它允许用户迅速地重新利用现有报表和其他数据结构。此模板可以发布,分配,或通过统一的门户与工作社区的其他成员共享,或在企业网或因特网上公布。当在电子工作社区内工作时,模板的产生是有用的特征,使每个参与者能贡献最终产品。某些模板从每个工作社区参与者请求特定信息以完成报表。
用户界面还能使用“伙伴(buddy)表”,它带有关于如何可以连接或达到列出的个人的预定设置。示例性连接包括电子邮件,电话,传真,地址信息,视频会谈需求,无线通信门户,或其他通信机制。这些“伙伴表”由事件组件155产生,当一个人登录到特定设备时它触发一个事件。用户界面组件140接收这些事件并向用户示出他们。最后,用户界面允许使用标准个人的和日程安排的模式,使得异种系统可以无缝地通信。
用户界面支持个人设备的使用、与相关安全性设置中的用户对象的会议觉察、与本地的及分布式参与者之间的文件共享、将在本地设备用于即时访问的文档在网上传输的能力、在统一的用户界面门户上作出的对手写记号的响应、和最后作为事件调度的结果的通知触发。
用户界面是用户在各应用软件和通信之间无缝移动的中心位置。单个,统一的编辑/控制或编辑和控制允许用同一地方来包容在特定结构数据库上的查询,系统得到应用软件状态的觉察和访问合适的应用软件模型的能力。
系统提供“个人门户”用于提供对在PC上的应用软件和服务的访问。例如,它使用用户模式的知识以智能地填充并布置页面。它提供用户需要的关键连结,用于导航个人的,共享的和全局的信息,并用于运行他们的计算机。
因此,用户界面是多模态的,提供了在从用户接收输入并提供输出给用户方面的灵活性。用户界面也是响应式的,它恰本地缩放客户设备的能力并允许用户在会话中切换客户设备。用户界面是智能的,这在于它推断出在用户动作背后的目的,并采取适当的动作,如当用户界面识别特定的项目时为智能标签提供适合于该特定项目的有关动作菜单。
F、事件本发明的事件组件155透明地方便了在任何发布或产生事件的软件组件(“事件源”)和任何预订或接收事件通知的软件组件(“事件汇点”)之间的事件分布式通信。在此说明书及权利要求中事件是有关一个或多个状态的观察,例如系统组件的状态,用户的活动,环境的测量等,事件系统使软件组件和结构能访问有关它们前后情况的不断更新的信息。
图5大致地示出了事件组件155,它提供在一个或多个事件源及一个或多个事件汇点之间的示例性事件通信。在事件源602以多种方式产生一个事件。事件可以由事件源602作为广播或作为到事件汇点604的直接通信而产生。事件汇点604能倾听或主动地轮询事件源602以接收事件。此外,事件汇点604能向事件源602预订或倾听从服务器联盟120中的中间点发送的事件。
事件组件155通过事件合成机构608将由事件源602提供的基本或原子事件606转换成渐进的高级事件。事件合成的过程是从一组观察到的事件和/或存储的事件数据构造新的事件或动作。事件合成可由规则,过滤器驱动,并由更先进的跨越复杂的型谱的样式识别到丰富的推理机构的模式识别器来驱动。因此,事件合成把可用的原子事件606的组改编成适本地匹配软件组件的信息需求的观察610,向它门提供正确抽象水平的信息,使其作出好的决策。
事件合成608汇集,过滤低级事件(原子事件606),并将其转换成高级事件612,并时常将事件直接映射成如世界活动614那样的活动。活动包括真实世界的活动614信息收集活动616,它用作经过主动地轮询或倾听来收集新的事件,事件合成608提供组合事件和数据的方法,而不管事件在接近的时间内观察到或在很不同的时间内观察到。可以使用事件专用的语言618和合成编译器620构筑合成组件,事件合成608可使用各种方法,包括从简单规则和过滤器来的复杂型谱到更丰富的瞬时样式匹配和直接的逻辑和概率推理以便组合事件和数据。
事件的使用者,如事件存储622,从低级(原子事件)或高级事件612进行推理624并根据这些推理采取动作,推理624的范围从简单的信息重新发送到逻辑的、符合贝叶斯判决规则的和决策论的推理,例如,有关用户的位置,活动,和活动设备的事件流能由Bayesian模型分析,以提供一组有关用户目标的概率,它们可轮流被用来作出有关最重要的服务及提供给用户的通知的理想决策。虽然图5将事件合成608示作与基于事件的推论624分开的,从低级事件合成高级事件的复杂合成机制在概念上与用于作决策的推论是溶合的。
事件组件155提出,事件能在整个服务器联盟120和客户设备100中分布、登录、和访问,并发生关于整个事件系统和子系统不同方面的“元推理”,它给系统赋予做自监控、控制和阻塞事件通信和接收的能力。元推理指的是保证事件系统健康和维护的方法和推理机制。
事件组件155允许任何事件源或汇点发布,预订或倾听正在广泛广播或在范围域内广播的事件。这需要在网络中间节点上的预订,分解和合成布局的智能分布及引导。事件组件使用安全性组件165的安全性服务以允许事件源,事件汇点和中间节点能够代表能力。
事件组件155设计成便于在其他情况下不相容的事件源和事件汇点中的互操作通信和优先化,同时保持高度的单个汇点/源的隐私和整个系统的安全性。事件组件155包括(但不限于)发布和预订系统,事件合成机构,事件引导机构,事件存储和登录机构,和事件系统元推理。事件组件155也使用模式和模式组件170提供的模式服务,以及通信协议和由消息发送组件160提供的服务质量。
事件模式是类别描述和定义物理事件结构的这些类别之间关系的集合。类别间关系包括事件类别,源,目标,语义,本体的内容信息,观察的可靠性,和事件源知道的服务质量属性。在较佳实施例中,类别描述是基于YML的模式类别。
事件描述使用表示其结构和约束的模式描述语言及表达时间安排行为及合成特征的描述样式语言。在模式语言中,事件结构是简单的。事件具有用于样式匹配和引导的公开外壳和私有的本体,本体用于私下传递端到端的数据。有了此结构,样式语言能使用范例数据和模式信息以便捕捉建立派生事件的高级语义和规则。
模式语言的使用允许比简单的基于名字的习惯更大范围的表示,单个事件被过滤及转换,而多个时间合成一起成为高级事件。样式语言包括一些操作符,用于合成和封装,临时关系,逻辑关系,字符串处理和XML操作,终点命名和拓扑描述,以及数学关系。该语言通过参数化方便了合成规范的重使用。
事件的模式是可扩展的。根据继承的较强的关系模型允许逆向可兼容的版本化。根据较强的可扩展类型系统,事件类型具有很好定义的特征。该模型是独立地使用标准的XML词汇描述的协议。除了事件模式以外,各种服务被模型化成包含分布式事件系统(如发布者能力模式,预订者能力模式,事件发送模式,拓扑,事件存储模式,合成和过滤等)。
模式化事件服务的服务/组件使得实现了互操作。发现,以及浏览事件服务所有组件的能力。模式化还使得具有统计上分析/优化合成情景的能力,审查/保存长时间运行的合成情景的状态的能力,监控事件服务的操作的能力,而且模式化用作为元推理的主要基础。
事件系统包括由基于模型的预定登录驱动的高度优化的发布和预定服务。事件系统提供了用于发布事件的服务的灵活性和选择,例如,使用核心驱动器编程模型的核心事件(如WDM驱动器事件),使用低级操作系统服务编程模型的用于发布事件的非COM API(如安全性审核事件,目录,服务控制管理器),对正常应用的典型COM接口,和使用本机的COM+编程模型的高级COM+类。
“事件预定”是当发生某个状态时事件底层结构通知预定组件的请求。那样状态的例子可以是“CPU的使用超过90%”,“过程A已停止”等。这些指令作为配置对象存入模式仓库。
每条指令包括两部分。第一部分规定关心的事件(过滤器)。第二部分规定响应此事件要进行的动作。过滤器包括确定关心的事件的语句。单个过滤器能触发多个动作。动作可以由一组用户定义的规则驱动。例如,用户可以规定,在电话谈话中的打断只能当她从某个高优先级发送者接收电子邮件时发生。这使用户能继续电话谈话而不被打断,除非用户要被打断。因此,用户可以通过规定工作时问侵入个人时间和相反情况的规则来平衡工作时间和个人时间。在打断是合适的情况,随后可以从海量存储提供电子邮件消息。以此方式,用户保持对她的信息和时间的控制。
根据租约的概念,预订具有可配置的有效时间。需要渡过系统重新起动的预订被存入模式仓库。但是,还支持短期廉价的事件预订。它们可以用简单的回叫和过滤配置,而不需要预订者实行可持续的绑定。
预订可以是点对点或点对组。在“当在区域X内的所有服务器失效时通知我”或“在区域X中安装应用软件Y的所有机器上登录所有安全插入件”的情景中,分布式服务是有用的。所以分布应用程序感兴趣的不是发生在单台机器上的事件而是发生在作为服务器联盟120的一部分的一组机器上的事件。这些情景需要预定被定义一次并自动分发到该组的某些或所有机器,并当新的机器加入该组时,预定自动应用于它。
在组中事件的分发预订由在目录组件150提供的分布式名字空间中的对象表示。那些对象也能包括路由配置,它命令转发服务应该把事件发送到什么地方,当新的机器进入该服务器联盟120,分布式名字空间的可用性保证完成了所有预订,且事件开始流向预订者。
预订建造者应能规定它们的预订需要的服务质量(“QOS”)。事件组件155结合消息发送组件160,以保证通过使用适当的传输参数和相应地引导业务的其余部分而满足QOS。(若规定了保证的提交,所有内部队列必须维持固定的QOS)。
在该环境中产生的事件数能够十分大。因此,事件提交的开销能造成很大的操作负担。为了使发布服务能缩放系统,无人期望的事件必须在事件的有效时间内尽可能早地丢弃。为此,有效的过滤服务针对突出的预订作事件的快速认证。但是现有预订的数目也可能很大。因此过滤服务根据如决策树那样的机构使用有效的逆向询问引擎。
除了过滤事件,事件过滤引擎对发布者提供预订分析服务。当预订者关心他们的事件以及当没有人再关心时,该服务通知发布者。对发布者作出规定使其完成它们能完成的任何过滤,而不提供无用的事件。
分布事件驱动的服务包括这样的情况,单独的事件不太重要,除非它们以某种顺序发生,或与某些数据状态一致。那样情况的例子是“当所有备份控制器关闭时发通知”,“当服务器在负载较轻时崩溃5次的情况下通知”或“识别下述情况用户在5秒范围内查询5个以上菜单而没有作出选择”。为检测这些组合,系统合成事件和数据。
事件合成服务608可以是由事件和数据状态驱动的状态机。在一个实施例中,每个合成服务在内部配置成描述状态转移的对象的组合。因为某些服务是十分复杂的,可提供合成语言或模板以简化设置合成服务的任务。下面是示例性情景聚集类似的事件(如“在我公司里的任何SQL服务器上发生任何交易失败事件时呼叫我,除非那些发生在服务器关闭后的5分钟之内的事件”);合成事件和数据(如“当我在读一个电子邮件时若另一个到达,不要显示出来”);从事件随时间的变化计算状态(如“在昨天我的电子邮件排队长度的趋势是什么?”);和计数和活动监视(如“若在5分钟内无鼠标移动及无按键则通知我”)。
G、消息发送本发明的消息发送组件160使客户设备110和服务器140能通信。术语“消息”推广到在应用软件或操作环境100的其他组件之间交换的结构化数据。消息发送的例子包括应用到应用的消息发送,个人到个人的消息发送(电子邮件),和合作的应用。按较佳实施例,消息发送组件160是启用HTTP的,且与包括DMZ的防火墙配置,负载平衡服务器,及NAT服务兼容。
为了便于互操作性,消息发送组件160提供公共的消息发送应用程序接口(API)和在HTTP,SMTP和/或其他传输协议顶层的一组服务,以便为消息发送应用提供公共的语义而不管底层的传输协议。以这样的方式,因特网及其他广域网被用于提供有效和普遍的消息发送,基本上不考虑与特定设备有关的传输协议,只要该传输是与公共消息发送API兼容即可。
此外,消息发送组件160在用户和它能支持的连接设备的数量以及它能使用的设备或网络的类型方面是可伸缩的。换言之,消息发送组件160很容易适用于从小的无线设备到“超大规模”网络及消息发送系统范围内的设备与系统。此可伸缩性特征表征为能够在允许小设备加入高服务质量(QOS)消息交换和复杂的分布式服务的消息发送平台上构筑消息发送应用。换言之,消息发送组件160在服务器上是高度可伸缩的,且能缩小到小的设备,这意味着有可能构筑合适的“小占地面积”子集。
与传统的消息发送系统相反,本发明的消息发送组件160使用平台消息发送结构。不是作为分层的产品,消息发送服务作为基本的平台基层存在,能由操作本发明的消息发送服务的实体或第三方对此平台写新的应用程序和基于消息的服务,一个例子是由事件组件155提供的分布式事件发送。消息发送组件160以这样一种方式定义,使得可以识别和包容基于因特网的协议并以共同的风格利用新的和现有的协议。此外,消息发送组件160将仅一次的依次消息提交提供给异步的,无连结的,存储和转发的可靠的消息发送。
消息发送组件160目标在于可靠地提交应用或服务定义的消息“点滴”,不同于觉察或取决于特定消息类型,消息内容,或服务协议的消息发送系统。消息发送组件160不直接应用取决于数据的路由模式,基于话题或主题的发布/预订底层结构,或其他消息转换服务的数据。
消息发送组件160为分布事件支持的传输层提供合适的基础。虽然消息发送服务还能用附加功能补充,本发明能在不需要消息发送服务确定完全的集成的事件系统的情况下实现。此外,消息发送服务不需要确定集成的高级发现消息的终点发现服务。
消息发送组件160的一个实施例现参考图6作更详细的描述。为了满足向应用软件,用户,硬件等对可靠和灵活的消息发送的要求,消息发送组件包括对所有消息发送活动的公共API702。API702展示了公共开发者界面并提供如认证,访问控制,和服务质量保证等的共享能力的共同实现。消息发送组件160最好还包括消息发送应用704,网关706,路由708,HTTP通信服务710,传输协议712,将在下面作详细描述。
在图6中被指定为基于队列的API及服务702的层(以后称为API702或层702)在不同的传输协议和共同的服务之中提供共同的界面。API702建立简单的编程模型,它使开发者能将消息提交给在若干URL名字空间中的一个的URL识别的目标。在较佳实施例中,基本的API702的目标结构可以是队列,这类似于由Redmond,Washington的微软公司开发的现有的基于队列的API的MICROSOFTMessage Queue(MSMQ)。
因为不同的传输协议712不是内在地具有内建的同样的服务级别,许多服务在层702中实现。因为不同的传输协议712具有不同层的集成服务,在层702和指定传输协议712之间的界面十分复杂,因为当传输协议具有内在的特征机制如认证或高质量服务,就希望使用它们。但是在简单地支持任意消息的最努力的提交的任何传输协议712的顶层还提供所有基本能力。
按照本发明的一个实施例,层702最好将一定范围的服务质量与消息提交相联系。例如,表示QOS定义为高性能基于存储器中的消息发送,它对消息宿主的重起动是不能复原的。永久性QOS是基于盘的消息发送,它提供至少一次提交保证,仅一次/依次的QOS与永久性消息发送有关,它提供仅一次排序的提交(复制被识别并删除,错误的到达信息被拒绝)。
层702的安全性服务使能做按照安全组件165认证,访问控制和/或保密服务。例如,认证可以根据按照端到端模型的证书,模型可以是基于用户的或基于机器的,或能按其他模型提供,包括XMLDSIG,MSMQ,SecureMultipurpose Internet Mail Extensions(S/MIME),或其他合适的认证系统。访问控制(即允许谁得到和处理队列)能根据在消息认证中建立的凭证以面向用户的风格控制。保密服务(即加密和解密)可以使用通过HTTPS使能的转发—到—转发(hop-to-hop)的保密建立,它意味着中间服务器是可靠的。端到端保密能通过密钥交换协议而启用。
本发明的消息发送组件160能适应于操作各种现有的及未来的传输协议。诚然,与不同传输协议的互操作能力是API设计和存在的主要目的。虽然其他传输协议也能被使用,图7具体示出结合4个传输协议712使用的API702,这些传输协议是最有影响和最多功能的传输协议的例子。HTTP/HTTPS712a是使用基于SOAP的消息表示的传输协议。MSMQ二进制传输协议712b支持丰富的QOS组。例如,MSMQ提供高度优化的二进制格式,它是压缩的,且能对消息内容作结构化访问。组播(Multicast)传输协议712c支持需要在接收者方面有大的适应能力的简单消息发送的应用。对很好适合传统的SMTP模型的应用提供SMTP传输协议712d,较大的消息和对电子邮件信息量典型的情况很适合于SMTP。此外,SMTP具有的特征(在协议和在使用实现中)使它对希望使用现有底层结构业务—对—业务(“B2B”)的应用是有用的。虽然SMTP支持基本的“至少一次”的服务质量和简单的认证,它具有好的性能但很低水平的附加能力。
网关706的处理与植入的传输协议712有些不同。传输协议712通常不支持第三方可以加入新组件的完全可插入模型。替代的是网关706为一部分URL名字空间接收消息通信量,然后网关706能连接其他类型的通信系统,如MQSERIES或GROUPWISE的电子邮件连结器。
消息发送组件160使消息能以可互操作,安全和透明的方式在多方之间交换,为此,共同的自描述语言包装消息发送的元数据和有效载荷,在一个较佳实施例中,XML被用作表达这些需要的描述语言。
可扩能力对于允许消息发送应用704以无缝的方式将值加到基础的消息发送组件160是重要的。例如,协议应具有通用机制以引入应用特有的模块。模块的例子是消息追踪,登录和数据转换。这能展示为用于将应用特有的单元插入包装一个消息的XML文档的标准。
在较佳实施例中,消息发送组件160使用HTTP作为传输协议,它保证本地的“HTTP代理”服务可用。类似地,消息发送组件160能使用标准的HTTP安全性能机制(SSL)。
为了可伸缩,消息发送组件160能利用可用的负载平衡服务。对较低的服务质量,消息发送主要是无状态(stateless)的,因此使用的基本的负载平衡机制是透明的。但是,由于较高QOS固有的是有状态的,消息发送服务提供消息交换时的状态保持的机制,包括外部机制(应用特有的)和内部机制(由消息发送低层结构产生的)。为此,消息发送组件160可以关于保存哪个端到端提交语义使用单个后端(back-end)消息存储,和从外部地址到内部消息存储地址的映射软件,注意到,映射软件能由“进入消息代理”服务提供,后者能与因特网一起使用并提供因特网的存在。
通常,使用HTTP作为传输协议的消息发送宿主需要有发送和接收消息的能力。这意味着兼有HTTP“听”和“讲”的服务。在较佳实施例中,通用的收听器提供基本的服务方HTTP协议支持。作为由机器上所有HTTP服务器共享的系统组件的通用收听器代表所有服务器应用管理端口80和经过通用收听器API(UL API)将进入请求提供给它们。服务和应用软件能使用ULAPI接收直接到它们的处理环境的请求。对于需要在系统管理过程中请求服务的服务器应用(如活动服务器页面)提供可选的过程管理软件。
通用的收听器在机器上提供由所有基于HTTP的服务器应用所共享的核心方式收听者。所有应用能有效地共享端口80。通用收听者也能请求分析并提供响应缓存,用于高性能提交静态内容和“稳定的”动态内容。应用软件能经过配置和ULAPI控制缓存,缓存的响应能不必进入用户方式而被提交。
通用收听器还能根据最长的匹配URL前缀进一步分派请求到用户方式的“工作器过程”,这些用户方式应用具有对核心收听器组件的完全隔离。工作器过程能使用“UL API”接收并响应请求。此外,工作器过程服务于URL名字空间的多个部分。多于一个工作器过程(“花园”)能服务同一组应用,用于增加可伸缩性,可用性和应用之间的隔离。
HTTP服务器过程管理器是系统组件,它能可选地结合UL使用以管理工作器过程。过程管理器提供工作过程的按需起动(如由进入的请求触发)。过程管理器还能建立工作器过程“健康监控”和工作器过程“循环”(关闭/重新起动)以便从遗漏,挂起的服务器等恢复。循环能由时间,接收的请求数,或作为健康监控的结果而被触发。此外,过程管理器能为配置,控制,和永久性配置提供管理界面。
在一个实施例中,HTTP客户端以核心方式实现。以核心方式实现的理由1,性能;2,与核心组件的通信;和3,收听器/讲话器的集成。收听器/讲话器集成的好处包括性能优化及共享的实现。
消息发送系统能可选地实现HTTP协议扩展,对其的支持在收听器及讲话器实现中建立。一个扩展关于“Webmux”,它提高了HTTP连接管理,支持更有效的连接多路复用,它在高容量B2B情况中尤其有价值。
如上所述,消息发送组件160使用包括HTTP的多种传输协议的任一种,提供有效可靠的消息发送。其他技术平台组件使用消息发送组件160来传输信息。消息发送组件160建立了标准接口,对它开发者能写应用程序,并利用消息发送服务的整体结构和与本发明相关的其他特征。
H、存储在描述分布式计算服务平台155存储组件145时,引用术语“数据引擎”,它指的是任何那样的介质,它们能用于携带或存储计算机可执行指令或数据结构形式的程序码手段,它们可由通用或专用计算设备访问。
数据引擎能与许多类型的设备相关。例如,数据引擎可以关系到任何客户设备110(台式PC,膝上计算机,个人数字助理(“PDA”),移动电话,寻呼机客户等(上面已结合图1列出))。例如,数据引擎也能与服务器设备相关,如应用软件,声频信号,数据库,传真,文件,企业网,邮件,商人,调制解调器,网络访问,打印,代理,远程访问,电话,终端,视频,或网络服务器等。这些服务器能位于服务器联盟120中。
图7示出存储组件145的示例性结构,它说明数据引擎的使用,数据的可访问性,和一个或多个应用的执行。存储组件145可以分成3个区域,一般按照使用每个特定区域的实体的类型来表征。这些区域在图7中示作802,804和806。例如,用户通常使用区域802,开发者通常使用区域804,管理员通常使用区域806。
存储组件145的基础是例如MICROSOFTWINDOWS操作系统之类的操作系统的文件系统。在图8中,该文件系统示作文件系统808。
数据引擎810是存储组件的心脏。在较佳实施例中,数据引擎810可以是基于微软公司的SQL Server的SQL Server Storage Engine。建立在数据引擎810顶层的是各种数据模型,例如XML数据模型,关系数据模型,消息发送数据模型(电子邮件,日程表,成组多产性)如基于微软公司的Exchange Server的数据交换模型(未示出)。数据引擎以最有效的格式存储数据。在数据引擎顶层的数据模型或引擎理解如何访问存储的数据并向开发者提供正确的画面。数据能以一系列格式表示,例如以表,层次,或一串名字/值的表示。数据模型可以包括一个或多个引擎。例如,XML数据模型包括XML引擎812。类似地,关系数据模型包括关系引擎814。
开发者使用数据库编程语言(“DBPL”)技术通过共同的询问系统与各种数据模型通信。DBPL技术包括数据访问应用程序接口(“API”)816,它是由应用程序与系统通信时使用的格式。该格式利用函数调用提供到为执行所需的子例程的连结。在较佳实施例中,DBPL技术是基于XML(XML818),可以利用关系模型(关系820),并使用对象技术(对象822)。
表示成区域802的顶层包括由用户/消费者使用的各种应用程序840a,840b等。应用程序造成下列事物的集成,如文档,邮件,日程表项,联系,股票有价证券,顾客,订单,基于介质的产品目录等。应用程序位于各种数据模型的顶层,并使用特定的协议824与系统通话。在较佳实施例中,协议824是简单对象访问协议(SOAP)824。
在较佳实施例中,在存储组件145的组件是根据将XML作为统一的技术,使得所有数据类型处理成XML文档。本发明的服务器联盟120和与分布式计算服务平台115相关的通信建筑在XML基础上。消息,方法调用,对象描述,和数据引擎都使用XML。询问语言在层次结构上工作,并返回分层的XML。因为存储组件145是基于XML,存储和询问操作在从表格式到文档的整个数据型谱中是相同的。
存储组件145是关键组件,它实现了这里称为“海量存储”的存储机构。在海量存储中,从终端用户的观点,图1的服务器联盟120起着如统一的存储机构那样的作用。海量存储用下面的情景说明。用户走到PC并登录。此登录用由安全性组件165提供的因特网认证服务认证用户。在用户被认证以后,可以使用目录组件150决定用户的信息存在哪里。然后存储组件145检索该数据并将其提供给用户界面组件140。于是,个性化信息出现在用户界面,如历史列表、收藏夹列表以及收件箱等,而不需要进一步的用户干预。因此当用户从一个设备到另一个设备时,他们的数据和应用跟着他们。
海量存储包括一个终端用户组件和一个开发者组件。终端用户简单地理解,当他们在一处登录时,可自动访问为他们存储的个人数据和信息。那样,用户不需要关心或理解他们的个人数据和信息是被存在如COOKIE文件中还是服务器联盟120中的某个服务器上。相反,用户只需要了解,他们走到哪里,是否在家,工作或其他地方,他们的个人数据和信息都可以被轻松地访问I、目录目录是传统的企业范围的命名管理机构,在数据实际上常常散布在整个企业时它建立了假象,好象数据按有组织的结构分隔。目录包含的数据例子包括如关于实体(如用户,计算机,和用户组)的联系信息之类的地址簿数据,用于认证实体的认证数据,用于在每个实体基础上控制对象访问的授权数据。两种目录包括适配目录和元目录。
适配目录是一个数据存储,它经常为了一个或多个特定的目的而被调整。目录的功能常常对一个应用是专有的。存在适配目录的信息是权威的数据,或“真”数据(即数据不与其他源同步),但是适应目录也可存储冗余数据(即与其他源同步的数据)。适应目录的例子将在下面作进一步列举。
元目录是数据存储,它包括或保持在适配目录或其他元目录中找到的对象的子集。对每个对象,元目录保持该对象的属性的子集。元目录还含有对包含有关该对象更完全的信息的目录的引用。元目录的例子也将在下面列出。
具有很好定义的结构的适配目录和元目录比那些没有很好定义的结构的那些目录更容易同步。同步适配目录及元目录是有用的,因为存储在元目录中的信息常常涉及在各种适配目录中有关条目之间的联系。存储在元目录中的数据常是为每个人可用或可读的。但是在某些情况,需要更多的安全性,且对元目录的访问受到更多控制。
为了使能在服务器联盟120内的合作和通信,目录组件150最好为每个门户或每个网站的元目录提供在元目录之间的同步。目录组件150包括使用适配目录和元目录。
图8示出按本发明的目录组件150。目录组件150包括适配目录905,它是针对个人或实体的,且这里称为“MyState”目录。MyState适配目录905用于存储有关个人或实体的信息,如名字,地址,电话号码等。
因为个人可具有多于一个的识别(如家庭/个人识别和工作/职业识别),对任何给定的用户MyState目录能包含多于一个识别的信息。例如,用户可以具有一个适配目录,它针对家庭或个人的识别,并具有另一个适配目录针对用户的工作或职业识别。针对家庭识别的适配目录的例子作为家用目录910示于图8中。
这些适配目录905和910按照一个模式构造。通过使用由模式组件170提供的服务,外部服务和应用能访问并扩展这些适配目录。模式与安全性组件165结合也使用户允许不同的实体访问该适配目录的特定或专门的部分。通过使用事件组件155和消息发送组件160,MyState目录也能通知其他实体有关MyState目录的改变和更新,并终止在实体和MyState目录之间的关系。
目录组件150还包含具有元目录的门户,如企业门户915和门户920。在一个例子中门户能看作工业范围的网站。因此,有关心健康门户,购物门户,音乐门户等。每个门户实现一个或多个元目录,以维持从有关业务和实体来的信息。例如,关心健康门户的某些元目录将包含有关实体或个人的信息,包括但不限于医生,诊所,药房,和病人。门户元目录对每个认证的用户保持或存储一个对象。例如每个对象可以包含由用户提供的授权信息,因为访问这些元目录的用户常常被认证。门户也同步在其他门户和适配目录之间的关系。例如,医生的适配目录可以通过相应的元目录或借助关心健康门户与一个病人的适配目录同步。
目录组件150最好包括各种企业。为了清楚起见,只有一个企业(即企业925)示于图9中。企业925包括一个内部元目录930和内部适配目录935,就象传统地由当前的企业所包含的那样。因此,企业的需求迁移到使用如企业门户925那样的门户,以切换到由目录组件150提供的许多目录服务。通过使一个内部企业能迁移到变成企业门户,第三方将能更容易地访问该实体的信息。
目录组件150还包括因特网元目录服务940。因特网元目录服务能搜索因特网,寻找具有特定模式的数据或文档。此目录能包括如公司出售的产品,公司提供的服务等那样的信息。每个文档(或其子集)与文档的URL一起加入到元目录。因此因特网元目录940能被应用软件和服务访问,将它们指引到它们需要的信息或服务。
目录组件150可使用因特网认证服务945(由安全性组件165提供),它如希望的那样提供对门户的认证服务。因特网认证服务845的一个例子称为护照(Passport),由微软公司提供。
图9例示了在各种适配和元目录之间的交互。此例不是作为本发明的范围限制而构造,而是由本发明启用的部分功能的例子。此例示出一个新的雇员开始与新的雇主一起工作。雇主具有包含雇主元目录1024的企业门户1022。当雇员开始工作时,该雇员的记录目录1002被加到适配目录1000,在此例中它也被雇主保存。因此,该雇员记录目录1002是适配目录,它按照一个模式包含有关该雇员的权威性数据。
雇员记录目录1002将该雇员加到雇主的元目录1024,并使得一系列属性加入到雇主的元目录1024。在这些目录之间的信息由自动属性协定(AAA-Automated Attribute Agreement)同步。因此,雇主的元目录1024具有带着相关属性1020的雇员对象1018,它包含与存储在雇员记录目录1002中的权威数据有关的冗余数据。雇主的元目录1024设置一个邮件目录(未示出),一个工作日程表目录1010和一个工作出勤目录1004,它们也是适配目录。
接着,新的雇员访问安全办公室以获得安全性标记。他使用个人数字助理(PDA)或其他设备以登录已存在的认证目录1008,它是例如具有护照密钥的另外的适配目录。然后认证目录1008连结到雇员的识别或在雇主元目录1024中的对象1018。
雇员命令PDA设备保持雇主对如地址,电话等个人信息更新。这通过在MyState目录1006和雇主的元目录1024之间建立AAA来实现。MyState目录1006也是适配目录。由于此连结,雇员的PDA能使用雇主的元目录1024寻找工作出勤目录1004的出勤服务器以及与那个出勤服务器或登录器的接口,使能访问该雇员的通用收件箱。
一旦已做出这些联系和连结,雇员可以从雇员记录目录1002接收电子邮件,要求该雇员选择健康提供者。雇员的选择存入雇主的元目录1024。接着,雇主的元目录1024与健康提供者门户1016及健康提供者元目录1026连结,以建立对雇员的入口。因此,健康提供者元目录具有对雇员的一个对象1012和属性1014。在雇主元目录1024和健康提供者元目录1026之间的AAA协定能包含不同的项。例如,协定能包括周期的审查以及由雇主的元目录将改变传送到健康提供者元目录的协定。
健康提供者元目录1026发送给雇员一个网页,请求雇员选择主要的车辆提供者。回过来,雇员请求健康提供者元目录1026供应医生表。在医生选定之后,健康提供者元目录1026将联系诊所和医生门户,并对在诊所元目录1028中的雇员建立条目。诊所元目录1028发送电子邮件给雇员,请求该雇员的医疗记录。该雇员只能将MyState目录1006的医疗信息部分发布到诊所元目录1028。这使雇员和诊所均能保持完整的记录组。同时,雇员可以赞成与医生共享他们的日程表,而医生可以交换他的日程表,最后,诊所元目录1028可以向工作流服务发信号,使用他们的互相可访问的日程表安排与该雇员第一次会面的时间。
而且,由适配目录存储的权威信息在此例中由元目录连结。可以理解,诊所,雇用者和健康提供者也具有各种适配目录。那些目录和它们与元目录的交互在图10中尚未示出。元目录能存储与权威信息相关的冗余信息或提示信息。适配目录的模式使其他元目录能访问适配目录的特定部分。权威和冗余信息是同步的,以保证数据是最新的。
在图9中,在适配目录1000中的每个适配目录具有某个目的或目的组。雇员记录目录1002表示工作识别,而MyState目录1006表示个人的或家庭的识别。认证目录1008适配目录能包含用于认证个人的如密码等那样的信息。工作日程表目录1010是日程表或联系表。使用在此例中示出的适配和元目录能得到在各实体之间改善的通信。在此例中通信被加强了,因为雇员不必与每个分别的门户交互。目录组件150使通信自动发生,因为它们均通过消息发送组件连接和链接。
J、安全性如上所讨论,在过去几年内消费者和业务已迅速采用因特网,引起因特网的服务的使用急剧增长。本发明由于增加了网站间的通信使得能有更大的因特网的互联性和合作。不幸的是当因特网用户数及基于因特网的服务数增加时,消费者和业务更加关心安全性与隐私的问题。例如,许多消费者与业务依赖各种因特网服务提供商(ISP),它们可以相当具体地跟踪消费者和业务的在线活动。许多消费者也使用多个服务提供商,他们与这些服务提供者具有广泛变化的业务关系和隐含的信任(预订,瞬时交易等)。此外,随着“永远在线-alwayson”因特网连结(数字用户线(DSL),电缆调制解调器),多个能访问因特网的设备(个人计算机(PC),移动电话,个人数字助理(PDA)),和多个能以与因特网交互十分不同的方法互相交互的家用网络设备等设备日渐增加的使用,消费者和业务得到更大的连结能力,同时对不道德的个人或业务增加了访问点的数目以使它们“获得”个人和/或机密的信息。
为了使上述限制降至最小,本发明可选地包括安全性组件165,它提供一系列安全保护工具,如认证,保密,和防火墙的安全边界。图10是本发明的安全组件165的实施例的概略表示。图10的概略表示是安全性组件165的可选功能的示意,但不限制应用其他功能,业内熟练人员在看到这里的教导后是能理解那些功能的。
按本发明的一个方面,安全性组件165包括认证模块1102,它包括各种硬件和/或软件组件,用于完成对访问在服务器联盟120和客户设备110(图1)中的信息和数据的实体的认证过程。例如,该实体在涉及多部分交互作用时访问存储的信息和数据,而不管交互作用是消费者到业务或业务到消费者,包括广泛的配置和交易参与者。
更具体地,在一个实施例中,认证模块1102包括硬件和/或软件模块,它们控制实体访问页面组件210,密使组件220,和/或封地组件230(图2),同时防止系统100的其他用户或实体“拒绝”或隐藏该实体的识别。这里使用的术语“实体”或“诸实体”不仅包括用户(个人或集体的),而且包括机器,授权的软件仲裁者,服务器和代理服务,各种其他硬件和/或软件模块和组件等。
为了确定实体是否其描绘的本身,是消费者,业务,硬件模块,或软件模块,每个实体具有一个识别符,称为“全局ID-GLOBAL ID”。每个全局ID对应于个人或其他实体可选择假设的各种“识别符”中一个。大多数人(包括其他实体)至少具有2个识别符一个与他们的职业有关识别符(学业、某组织的雇员等),在进行与业务有关的活动时使用;一个个人识别符用于其他的交互。为了保持隐私或考虑某些与他们的交互有关的高级保障需要,另外的识别可用于用户。
安全性组件165与系统100和/或应用软件200相结合管理这些识别和有关的认证凭证,以保证这些识别保持不相关,同时提供一个用户经验,允许终端用户完全控制如何使用他们的识别以及与每个识别相关的隐私和机密的级别。
现参考图11,画出在用户的全局ID和各种其他示范的服务和信息之间交互关系的概略表示。通常,安全性组件165可以与由各种个人,业务,机器等拥有的各种全局ID1220a-1220n通信。每个全局ID1220a-1220n用于对访问系统100的一部分的实体的认证。全局ID1220a-1220n不试图包括它们所表示的实体的概要特性。相反,在一个实施例中使用上面讨论并由目录组件150提供的“MyState”适配目录905存储简要特性。“MyState”适配目录905能可选地包括由参考号905a-905n表示的各种部分。MyState适配目录905按照一致的模式提供一个地方,存储包括用户数据的用户概要。通常,每个全局ID1220a-1220n给存储在MyState服务的单独部分,在应用软件中,或在专门位置的数据存储区中的概要信息提供一个索引。因此,一个实体可以具有多个全局ID1220a-1220n,每个具有相关的不同概要。
另外,在一个安全性组件165的实施例中,每个全局ID1220a-1220n可与另外的结构上不同的称之为“组成员Group Membership”服务1224的服务联结,服务1224可选地包括各个子部分,只展示了组成员服务1224的一部分并由参考号1224c指定。子部分1224c使一个全局ID(如全局ID1220b)在用户的每个类别1226c-1226n的概要表中具有一个或多个概要。可选地,每个类别1226a-1226n可以包括指向被请求或被定义的概要的一个或多个指针。例如,在业务对业务的情景中,可使用组成员服务1224以包含一个授权购买者的表,许多供应商能审查此表。在合作的情景中,组成员服务能包含另外公司的项目成员,他们被允许访问项目机密文档。在又一个示出的例子中,每个全局ID1220a-1220n能包括一个或多个数字签名,x.509凭证,可扩展的标记语言(XML)凭证或“许可证”,或其他将密钥绑定到一个识别并防止拒绝识别的凭证格式。在那样情况中,各种凭证授权(CA)能发行那样的凭证,例如但不限于Micrsoftpassport、MicrosoftHotmail和/或各种其他第三方业务。
再次参考图10,根据本发明的另外方面,安全性组件165包括授权模块1104。授权模块1104包括各种硬件和/或软件模块和组件,以判定授权的实体在动态环境中能完成什么动作,在动态环境中每个实体的组成员,作用和权利代表可以改变。这样,安全组件165的授权模块1104能以比传统“基于用户”的许可模型更复杂的方法控制实体对规定的内容的使用限制的加强,例如但不限于私有数据和“许可的内容”,如有版权的书,歌曲和电影。另外,授权模块1104的更广和更灵活的代表和控制机制扩展了授权的传统的作用。
授权模块1104,可选地与其他安全组件165的模块结合,实现在授权领域中的进步和技术的方式是通过数字权利机制。数字权利管理涉及(DRM)在信息和内容的使用和分配上自动地强加规则和条件。在DRM的核心是违背传统的系统安全性直觉而运行这一前提。在典型的系统安全性中,访问数据或信息的授权的来源是用户。一旦用户被认证,根据用户的识别,授权对服务的访问。这样,软件授权到那样的范围,使权利给予优先的用户。通常,一个认证的超级用户(或管理者)被赋予基本上对任何和所有资源的无限访问权限。DRM以不多的方法改变这些假设。在DRM中,授权的来源是内容或信息的拥有者。拥有者的权利(和授予用户的许可)以标准语言命名。权利由一个“设备”所强加,而“设备”是(但不限于)各种硬件和/或软件模块及组件,它们保证只有可信的软件(以前已被认证并有责任强加由拥有者规定的权利和限制的软件)被赋予对该信息的访问。这就允许内容拥有者把权利不是授给用户而是给一段软件,它将根据由拥有者定义的项目限制对内容的访问。
一个范例的DRM可以实现的“设备”是一个可信的设备,称之为启用Anthenticated Boot/Isolated Execution的个人计算机。该“设备”可以包括一个可信的(和防篡改的)硬件组件,它保持一个或多个对硬件组件是唯一的私有密钥。在启用Anthenticated Boot/Isolated Execution的个人计算机的操作中,客户程序段请求可信的设备认证其识别(例如通过由硬件散列其码并将此散列与命名该散列并由授权机构标记为“可信的”的凭证比较来进行)。作为认证的附属效果,由请求软件使用的物理地址是隔离的,其他程序(包括0S)随后被拒绝访问那个物理存储器。最后,对硬件是唯一的私有密钥的操作对(现是可信的)软件是可用的。业内技术人员得知,无论是硬件,软件或其组合,各种其他设备能实现为DRM所用的设备的希望的功能。
按照本发明另外方面,安全性模块165包括隐私模块1106。隐私模块1106包括各种硬件和/或软件模块及组件,它们保持由各种利用系统100和应用软件200的有利特征的实体发送和检索的信息的隐私性和保密性。通常,安全组件的隐私模块1106保证在共用网络上传输并存在服务器联盟120中的共享公共服务器上的个人的或高价值信息只对授权的实体开放。此外,隐私模块1106保持在共用服务器上传输和/或存储的所有类型的数据和信息的数据完整性,从而防止在一个或多个实体之间传输的传输数据的非授权的修改。虽然隐私模块1106示作安全性组件165的独立模块,业内技术人员得知,隐私模块1106的功能可以加入到认证模块1102,授权模块1104,形成安全性服务1100的一个或多个各种其他模块之中,或仅是安全性组件165的一个功能而不具有专门的独立模块形式。
根据上述和其他包含在此的教义,隐私模块1106的功能可以用各种方式实现。例如,在一个实施例中,通过使用数字签名和隐私模块1106和/或安全性组件165的能力能保持数字完整性,以管理识别的拒绝。在另外示出的实施例中,加密传输用于在多个主机或客户设备110的多个点和服务器联盟120之间发送数据和信息。加密传输是主机到主机还是点对点取决于通信否在线或离线(存储—和—发送)通信。本发明的一个实施例的加密传输过程的一个方面在于发送的数据和信息可选部分或整体加密。通过选择地在如对应用专用的事务的消息那样的数据和信息中进行加密,安全性组件165提供安全的隐私信息而不需加密整个网络通信量。
对主机对主机传输,需要一个称之为因特网协议安全性(IPSEC)的安全性协议来实现虚拟专用网(VPN)隧道和认证参与系统的网络连结。用于主机对主机传输的中间服务器(例如但不限于缓存器,空气流,基于内容的路由器等)被设计成使用选择的消息加密,因为低级网络服务通常不强制对每个应用是唯一的机密策略。选择的消息加密的使用是可选的,因为只有获得缓冲的性能优点或需要中间服务器过滤内容的应用内容从中得到好处。相反,个人的或高价值信息为机密性加密,通常不从如中间硬件和/或软件模块及组件那样的中间网络设备的服务中获益。
在点对点通信中使用安全套接层(SSL)协议,并继续作为最小公分母留给那些不设计成使用选择的基于消息的加密的应用。业内技术人员得知,IPSEC能有选择地用作点对点传输。通常传输的数据和信息的机密性和隐私性可使用已知方法的组合实现。
在本发明的又一个实施例中,安全性组件165可选地以加密形式保持所有经因特网发送的数据。目前而言,现在在因特网上发送的主要信息是不加密的。有足够的硬件和系统支持的情况下,本发明的安全性组件165能可选地将信息和数据的传输从当前的“按(有限的)需要加密”转变成“永远加密”的解决方案。虽然加密是有用的方式并借此保护了信息和数据,但对所有的安全性需求,它本身不是完全的解决方案。这样,本发明的安全性组件165可以在认证和/或授权的硬件和/或软件模块,组件,和功能的有益的特性和特征中组合可传输数据的总加密特征。
按本发明的另外方面,安全性组件165分布在整个服务器联盟120并从而提供分布式网络安全性。通常,安全性组件165的分布式特性提供了端到端的机密性和消息内容的完整性,无论它是主机到主机或点到点,同时允许中间代理服务器正确地路由事件和消息。整个网络安全性控制数据流,以防止对计算节点的蓄意干扰(如洪泛、破坏性病毒等)和敏感内容的非授权传播。通常,这些功能中许多由防火墙完成。不幸的是,随着在超文本传输协议(HTTP)上XML消息发送的出现,传统的防火墙在实体请求之间的区分方面不那么有效。如上所述在消息流中加密的选择使用允许消息内容过滤而不损失机密的个人的数据;但是这也限制了防火墙能承担的保护的类型。
当前,防火墙大多在传输层上操作,校验传输层信息,如源和目标的因特网协议(IP)地址,和传输控制协议/用户数据报协议(TCP/UDP)端口。虽然有用,许多传统的防火墙已经扩展到扫描访问的数据以寻找二进制的病毒,或扫描文本以寻找不合法的内容。因此典型的防火墙模型被两个独立的趋势上出现问题加密的使用防止了数据的审视,或甚至端口的审视;由共享单个TCP端口的基于XML的应用对HTTP的使用降低了TCP级过滤的价值。这样,当前的防火墙在其有效性方面受到限制,因为它们混合了两个功能保护免受外部的攻击和策略的强制性。这样,本发明包括防火墙模块1108,它通过在三个或更多不同模块和组件之间共享功能来增加防火墙的有效性,这些模块和组件可位于单个硬件和/或软件模块中或相反分布在服务器联盟120之中。
现参考图12,它画出防火墙模块1108的示范单元。改善的防火墙模块1108的一部分是个人的防火墙1310。个人的防火墙1310在解密以后完成本地的数据审视并完成各种其他保护功能。例如,个人的防火墙1310完成“病毒检查”系统的各种功能;但是当检测到新的攻击时,攻击的特征迅速传播到所有个人的防火墙,从而阻断了攻击而不必等待下一次系统或应用软件的升级。若个人防火墙安装在每个内部的主机上,主机能从其他主机或在如系统100那样的网络上检测特洛伊活动。从而降低了特洛伊攻击的可能性,这种攻击可以直接在本机上发起而不受周边防火墙监控。
改善的防火墙模块1108的第二部分是安全性网关1312,它对拥有特定硬件和/或软件模块和形成服务器联盟120的组件的实体强加实体的策略。每个安全性网关1312完成根据源和目标的统一资源定位符(URL)的检验和HTTP方法GET,POST,NOTIFY。安全性网关1312作为HTTP代理直接插入应用200,并可以确定例如在一天的什么时间容易访问什么外部网页,或什么用户可以接收外部通知。安全性网关1312是主机,因而能是IPSEC或SSL的终点。另外,每个安全性网关1312可以访问XML结构化数据,并因而能访问从特定主机发送的消息的内容。
安全性网关1312的一项可选功能是在周边或传输层防火墙1314(下面讨论)“打孔”,如授权一个端到端的媒介流。此流可以由安全性网关1312监控的HTTP或SIP交换来设置,但将使用User Datagram Protocol/Real-TimeTransport Protocol(用户数据报协议/实时传输协议—UDP/RTP)而非HTTP发送。安全性网关1312确定被授权的IP地址和TCP/UDP端口对。每个安全性网关1312也具有在两个IP地址对之间授权使用IPSEC的能力。
改善的防火墙的第三部分是周边(传输层)防火墙1314,它可能在安全性网关1312的控制下授于或拒绝对系统100局域网的访问。传输层防火墙1314具有控制哪个“外部的”信息量到达内部的机器的责任,并限制那样的只对那些管理很好的“外部的”源的访问。在一个默认的配置中,这些授权的机器包括安全性网关1312。
通常,将周边控制功能分成“传输层防火墙”和“安全性网关”允许系统100和/或应用200性能和伸缩性。本质上类似于路由器,传输层防火墙1314可以并行地连接实现伸缩,而作为应用服务器的安全性网关1312可以利用用于伸缩的网络服务器的伸缩技术。
虽然图12示出加入这里的防火墙模块1308的每个部分1310,1312,的和1314,可以理解,每个部分1310,1312,1314可以分布在整个服务器联盟120。此外,安全性服务组件165可以包括多个防火墙模块1108和多个部分1310,1312,1314。
按照本发明的另一方面,安全性组件165可以包括各种硬件和/或软件模块以及允许使用数字签名,时间标签,和公证服务的组件。使用数字签名以电子交易方式为用户提供许多物理签名的好处,如来源的检验,授权的检验,在随后的争议情况中的合法的依据等,但不限于此。而且,在信息经常途径不可靠通信及处理通道的电子世界中完整密封文档的能力(任何修改使此签名无效)也是有价值的。
本发明的安全性组件165能配置成支持当前用于电子签名的技术,如数字签名算法(DSA),和椭圆曲线,和由RSA Data Security Inc.(RSA)开发的加密技术,但不限于此。另外,安全性组件165在它们能被操纵产生用于XML和XML模式的安全电子签名方面是灵活的。例如,在典型的签名电子邮件系统中(Secure/Multipurpose Internet Mail Extensions(S/Mine)或Pretty GoodPrivacy(PGP)技术),用户隐含地信任他们的电子邮件程序签署一个他们编写的电子邮件的邮件编码。不幸的是,对涉及高的价值和潜在责任的文档,需要更大的保护。使用XML或一般的XML模式表示那样的重要文档允许建立提供XML文档的规范表示的通用工具。产生文档的规范表示是对建立和验证数字签名的需要。
安全性组件165还可以包括时间标签和公证服务,它们可选地加入到完成数字签名功能和服务的硬件和/或软件模块之中。类似于数字签名,时间标签服务提供该文档(在最普遍意义下)在某个时间点存在的强有力的证据。类似地,数字公证服务提供某人在一个时间点上数字签署了给定文档的证据。可以加入到安全性服务300的这些服务类型例子包括担保(Surety),熵(Entropic),电子时间标签(e-TimeStamp),以及正在使用的带有基于x.509和PGP的信任模型,但不限于此。此外,提出涵盖到那些服务的接口的标准时间印记协议草案。本发明的安全性服务允许现有服务的互操作性,同时提供与当前发展的有关服务一致的硬件和/或软件的灵活性。
通常,安全性组件165能加入到一个设备的平台核心操作系统(OS)中,从而影响到该平台的所有其他模块和OS,服务,应用,及工具的功能。另外,安全性组件165,模块1102,1104,1106和1108以及这里提供的功能可以放置在服务器联盟120,客户服务110和/或应用200的各种位置,或可以遍及分布。在又一个配置中,安全性组件165可以放置在应用200的密使组件220和封地组件230之间。而且如图10所示,安全性组件165的每个模块可以或可以不与包含在那里的一个或多个其他模块1102,1104,1106和1108通信,如图中虚线所示。
安全性组件165可以在各种通信情况中使用,借助增加的网站间通信有助于使消费者,业务,政府等得到更大的因特网的连接和合作。例如,第一情景是消费者到服务或业务的环境。本发明的安全性组件165允许更大的通信,通知,流媒介,游戏和合作服务,而不管它们是否用于“永远在线”的数字用户线)DSL)和/或电缆调制解调器系统的家用计算机的安全性和其他家庭网络的情况。安全性组件165从下面几个方面保护在消费者到服务的环境中的消费者(I)滥用因特网发出的如即时消息或因特网电话那样的消息,等同于在前门随意地按铃;(II)跟踪用户活动的活动,从而减少广告商和其他人“精确瞄准”用户;(III)通过使用个人的计算机作为向第三方发动攻击的一部分的特洛伊过程而滥用个人的资源;(IV)拒绝因特网服务;(V)犯罪活动,如非法访问个人计算机导致金钱转移,不需要的购买(严格说来是对消费者的盗窃)等。
另外的情景是对容纳应用服务提供者(ASP)的面向小业务的服务。本发明的安全性组件165提供对消息发送,文件和打印服务的增加的保护,包容企业资源计划(ERP)应用,在线业务活动,如集成的电子文档管理利在线业务服务,雇员个人网络存储等。而且,安全性组件165使各种业务具有包容的网络可用,授权的,基于角色的管理,和空的域。这样,本发明,尤其是安全性组件165,允许小的业务有能力安全地访问多个ASP,以满足他们所有的业务应用需求。
又一个情景是消费者—到—业务—到—业务的环境。此情景包括以前有关消费者—到—服务情景所描述的许多需求,同时包括业务—到—业务关系的问题和需求。这样,安全性组件165为在不均匀的环境内的多个实体提供安全性,安全性组件165提供线上的,永久性信息保护,同时提供对客户信息功能的不可拒绝性。此外,安全性组件165可以认证和授权中间层的事务,顾客—服务器活动,和协商对等信任。
最后的示范情景是业务—到业务环境。安全性组件165可以配置成支持提供链式应用,业务—到—业务的合作等。此外,提供与特定认证机制无关的企业间信任关系的管理。而且安全性组件165减少了下列事情的可能性(I)非授权的交易导致经济损失;(II)业务合作伙伴欺骗的声明,对一个交易的请求是不可信的,因为凭证被偶然地洩露。
(III)由未授权的个人非授权地访问服务器140或客户110;(IV)信息洩漏给竞争者,它观察数据访问请求并响应和获得机密数据;(V)攻击者在数据检索请求中佯装是业务合作者并返回不正确的数据;导致做出不正确的决定;(VI)在存储数据处的不可靠的系统操作员将有价值的数据经过网络发送并洩漏给同伙;(VII)使用因特网的内部成员发送不合适的信息到外部成员;(VIII)误解或误用的策略的建立,导致洩漏的信息,未授权的交易,或对授权交易的干扰。
K、程序码管理程序码管理组件175保证用户透明地访问他们需要的最新的应用软件和程序码。图13示出在程序码管理的各个方面对清单的使用。程序码管理主要考虑格式化在互操作的组件,服务,以及应用软件之间的抽象及交互作用。此格式化在用于管理包括这些基层组成块的软件的每一级上提供隔离层。一个清单本质上是数据库,它以一定的详细程度描述组件,服务或应用。通过描述程序码组件,各程序码组件之间的关系,和由它们组成的应用,清单使系统能理解,应用是什么,从而有效地管理此应用。应用或服务由一个根清单定义,它类似于程序码组件清单,不同处是根清单包括用于执行该应用或服务的起点。
清单1400包括用于描述与该清单有关的软件的各种信息类别。应该理解,识别的类别仅是示例性的,不是以任何方式对本发时的限制。类似地,在每个类别中的信息描述也是示例性的。在特定类别的上下文中信息的描述不能解释为要求该信息只出现在该类别中或出现在所有类别中。注意,结合图13使用于的术语“软件”,此术语应广义地解释为包括组件,服务器,应用等。
清单1400是信息的一个超级组,使它相关的软件能在一个或多个计算环境内可用。例如,清单1400识别可执行的程序码1410和作为软件一部分的资源1420。根据有关软件操作需要和需求,可执行的程序码1410和资源1420可以参考专有(本地)的或外部的依赖性。因为清单1400与所有软件有关且所有清单描述任何外部的依赖性,软件对象能是收集的垃圾而不管理对分享的DLL的参考记数,与现有技术实践的那样。
依赖的清单1430识别清单1400的外部依赖性。那是对软件和清单的参考,它们不是清单1400本地的。例如,清单可以是级联的,其中一个软件对象简单地是某些其他软件对象的扩展。这就便于简单的定制应用的直接构造。定制应用可以超越某些设置或由基本应用使用的资源,以改变该应用的外观和它们的行为。基本的应用可以对本身的哪些部分对此类的修改是开放的提供限制,以适本地将定制的范围限制到预定的区域。这些对其他软件的参考和对清单1400外部的清单的参考被存入依赖的清单1430。依赖清单1430也可以识别对清单1400是本地的但也是单独定义的清单。另外,依赖清单1430可以包括独立存储的清单,它们在逻辑上包括或连结清单1400。那样的安排可以是有益的,其中信息仅对有限的目的,如软件的开发是相关的,并在正常操作中不需要这样。
进入点1440展示对软件对象的公开名(如进入点,资源,和服务),清单1400和它相关的软件使得这些公开名对外部软件可用。清单1400本地的软件对象名也可以出现在进入点1440。使用名字和元数据识别特定的软件对象和所有由该软件使用的所有其他软件对象(元数据包括如版本,场所,和平台的信息)。连结是一个过程,通过它解析名字的依赖性。一旦名字被解析到它的最终对象,该对象能在应用中使用。在软件对象之间的所有绑定通过该清单并能受由计算机环境本身,管理者,或独立软件开发者施加到该清单的策略的影响。因此,名字解析提供插入策略和安全决策的机会。因为名字实际上不提供代码或数据,而是被解析到访问程序码和数据的间接途径,所以有可能在绑定过程中必要时重定向或限制访问。
例如,应用的清单1400可以请求使用元数据请求版本1的特定实时运行的软件对象。但是管理者可以设置策略,使得对所有请求使用特定实时运行软件对象的较新版本。注意,由于该元数据信息,若该应用使用较新版本停顿,管理员能改变策略,使得该应用使用已知对此应用可工作的实时运行版本。通过根据系统中的安全策略不允许某些名字的解析,名字解析还提供了将安全性插入过程的机会。
配置信息1450识别软件需要的数据表和平台服务。配置信息1450也可描述如何能使用与清单1400相关的软件,或它们的行为。例如,软件可提供信用卡清除服务。有两个选择用于管理信用卡交易(1)服务提供者保持对过程的控制,或(2)服务提供者允许开发者加入服务以管理开发者自己的信用卡交易。若服务提供者只执行这些选项中之一,在用于运行该服务的配置信息1450中可以捕捉那个信息。监视器也能包括在配置信息1450中以向开发者提供性能和排错信息。
如上所指出的,清单1400方便了维持软件的各种版本。此特征在开发新软件时特别有用。清单1400的本质保证了互相隔离的各种组件,服务,和应用的各式各样的状态和配置信息。此隔离意味着不同版本的组件,服务和应用能并排运行,允许其他软件对象访问被设计和测试的软件的特定版本。结果,可能有多层配置(从前端服务器到后端服务器),隔离和共享的配置,和使老版本结束工作而新版本开始的按计划进行的配置。
如清单1400那样的清单对程序码管理提供重要的益处。例如,清单(1)允许组件,服务和应用的自描述;(2)使能由开发者和管理者从组件,服务,或其他应用作应用合成;(3)便于组件/服务/应用的命名,发现,和实时运行的绑定;(4)使开发/设计时间的情景带有许可证,版本,分配和做文档等增加的问题;(5)启用老的系统的互操作性;(6)容易分配/安装组件,服务,和应用;(7)使能在进行中管理应用/服务/组件的健康。
上述程序码管理使用清单以允许开发者,管理员和终端用户穿过在图1和2中示出的客户及服务器层编写,消耗,配置,更新,命名和定位应用软件。下面的例子参考图1和2描述如何使用清单来安排和运行从客户来的应用。
在此例中,用户经过搜索引擎或其他命令解释程序使用图1中的客户110为特定的文字处理应用软件导航到统一资源定位器(URL),URL位于服务器联盟120之中。若该应用已被“安装”(即已经运行)在客户端,当该URL被导航时,该应用从本地的缓冲运行。若该应用未被“安装”在客户端(即当未在客户端运行),该应用将使用现在描述的过程被下载并运行。
安装程序模块下载与该应用相关的清单。然后,安装程序将清单与客户针对平台需要及已知的不可兼容的组装两方面所用的配置进行比较。在该应用不能在客户端运行的情况下,在客户端出现错误消息。若该应用能在客户端运行,安装程序使用URL连接到服务器联盟120中的网站。然后客户端显示某个用户界面,如购买/租用/认证决策和终端用户许可协定(EULA)。该应用随后根据命令或作为典型的功能包下载。该应用的自动服务将通过使用按本发明的异步消息发送从安装URL对清单的定期更新而被驱动。
L、情景下面情景表示了本发明的分布式计算服务平台115如何通过启用更容易的合作和通信而方便了用户。情景分成三类用户(1)知识职工;(2)消费者;和(3)开发者。
知识职工/商务情景Alex拥有一个称为7Cycles的小的商业自行车制造商。7Cycles刚设计了一种新的高端自行车并需要将新的自行车销售到体育用品分销店。此情景表示若干业务问题(如在任何时候/任何地方集成和访问信息)和技术问题(如基于模式的集成,下一代有效工具,设备之间的联盟)。
Alex的个人计算机(PC)显示她的个性化界面包括她的“起始页”或“主页”,它示出消息,日程表,联系/“合作伙伴表”等。用户界是多模态的,它在单个统一界面中包括了语音消息和电子邮件消息。语音消息可以转换成文本消息,而电子邮件消息在需要时能转换成语音消息。而且,用户界面不是基于应用而是基于内容的。例如,起始页包括传统上由各种应用提供信息(即语音邮件消息,日程表,联系等)。
Alex使用她的PC登录到设计成帮助管理商务的服务(如b CentralTM,由微软公司提供),并使用该服务将新的自行车加到7Cycles’的在线产品目录中。该服务引出一个产品目录条目的模板。然后她搜索7Cycles公司的企业内部网(包括个人数据存储及其他来源)寻找关于新自行车的信息(图片,市场估价,产品样本等)并将合适的信息拖放到产品目录模板。自行车的产品样本以公用的描述语言(即XML)提供,并符合一个模式(见上述模式段),使得产品目录模板服务理解杂样本中的信息并用适当的信息填入该模板。Alex预览并发布更新的产品目录页。新的自行车随即在7Cycles网站上列出。
然后Alex使用该服务询问列出其他网站/公司的目录,就能使此新自行车更具特色。因为目录服务(见上述目录段)通过企业级元目录的便于模式的同步提供整个因特网范围的目录服务,此类可靠的因特网范围的目录表是极大地方便了。然后Alex将有关新自行车的信息共享到这些其他公司。
Alex还使用该服务以自动地产生一个有关新自行车的关键词表,并将这些共享到若干搜索引擎,使得人们能立即找到有关新自行车的信息。
Alex从Sandra得到电子邮件,Sandra是体育用品分销店的雇员,她在网上看到7Cycles新自行车。她建议Alex在展销会上会见她。Alex在如移动电话那样的便携客户设备上接收了此消息。虽然此客户设备的用户界面比PC的要小,由用户界面提供的特征与由PC的用户界面提供的一致。例如,该电话显示具有定制高亮显示页面的Alex的起始页的缩小版本,示出如联系和紧急消息等。
Alex导航到联系管理页,它使Alex能连结到Sandra的时间安排表,并提供到她在展销会上的展台的地图。Sandra的时间表通过连结到Alex的MyState目录(见目录段)的适配目录可以访问到,该适配目录使得能发布那样的时间表。Alex使用语音到文本的转换回答Sandra的消息,使Alex能听写下电子邮件消息。她检查Sandra的日程表并建议她们在2:00左右见会。
Alex到达了展销会并使用邻近/位置警示服务在她的移动电话引出一张地图,示出她本人的位置和Sandra的展台的位置。当她接近该展台时地图跟踪她的位置。
当她见到Sandra时,Sandra问是否能看到新自行车的样本。Alex说,所有信息放在7cycle的公司企业内部网上。她借用Sandra的输入板PC并作为客人用户登入,显示她的起始页(很象在她工作PC上的那个),在底部附带有展台的地理相关信息(如Alex感兴趣的本地事物)。因此,上述的存储,目录和安全性组件使Alex能在新的客户设备上认证自己,并通过该客户设备得到她能得到的所有她的个性化信息。Alex找到自行车样本并从她当前的联系表请求将该信息共享给Sandra。在Sandra登录入以后,自行车样本通过联合的安全性范围以安全方式在她们的输入板PC上显示。
在Sandra从展销会返回以后,Sandra使用她的工作PC访问语音和电子邮件消息。Sandra的起始页混合显示个人的,职业的,和网上的信息。Sandra发送消息给她的同事,他们需要准备一个有关新自行车的建议给体育用品连锁零售商。当她打字时,系统识别某些内容适合于行动菜单,如另外同事的名和建议预定的日期。系统识别数据的相关性,使它们自动地和适本地连结到联系和日程表信息。此有意义的通信在模式段内描述。
然后Sandra为该建议建立项目页,它自动地使用在模式段中描述的自动完成特征来包括所有电子邮件的名字,并设置用于共享信息/合作以及将包括在该项目中的建议文档的网页。Alex(从不同的公司/安全范围)也被包括在该项目中。随后,Sandra开始写此建议,它与其他团队成员实时共享。这能使用在消息发送段中描述的异步消息发送完成。她们使用即时消息发送/聊天来讨论要作出的改变。建议是多媒体文档,它包括文本,图形,视频等。第三方内容(如从图像室来的照片)能直接加入到该对象处理程序。视谱内容能加注释。
从工作地驱车回家,当Sandra的车上PC通知她,她有关于该建议的消息(她规定,对此消息她应该被打断)时,她用她的车上电话与她的丈夫交谈。这些通知是响应在事件段中描述的预定事件发出的。部分这些预定事件包括用户定义的规则。例如,Sandra规定她在车上能被打断的条件。该电子邮件是从零售商来的消息,他们想要把附加图例信息包括在该建议中。到家后,Sandra使用她的家用PC(它在起始页上具有个人的“外表”,且其中她的简况略有不同)。形成个人“外表”的偏爱信息可以存入在目录段中讨论的Home Presence或MyState适配目录中。她将从外部网站和她公司的数据库来的信息过滤/合并/映射到该文档,从而将附加的图例信息加入到该建议中。通过模式,从不同网站来的信息的合并是方便了。
第二天,Alex收到从Sandra来的消息,他们需要改变他们的订单从连夜将自行车发货到30个不同的零售店,而不是象开始那样发到Sandra的业务点。Alex登录到业务服务,在那里Sandra为改变购买订单而填写模板的业务,服务也已经用通知形式对Alex表示过。Alex审视并点击工具栏上的“AcceptChang—接收改变”,导致系统使用模式认识到,它应询问Alex是否确认要通过UPS发货。她说是,且系统建立新的发货事件将Alex与安排发货的UPS联系起来。在UPS和7Cycle之间的日程协商设定取货时间,它自动地在Alex的日程表上示出。Sandra接收通知,改变订单已被处理。通过使用分布式事件系统,业务服务能为用户跟踪事件(定单接收,定单货运等)。业务服务经过通知管理程序发送通知给Sandra。为她提供对内容敏感的通知服务的整个通知系统的一部分的通知管理程序用作监控各种进入的通知。通知管理程序根据它对Sandra的当前情况,关注点,位置和设备可用性,将重要和对内容敏感的消息转送到Sandra。
消费者的情景此情景关注对普通用户或消费者而言本发明的优点。此情景描述去渡假的家庭和青年女生活中的一天。
此情景说明了由本发明提供的改善的消息发送,日常生活任务的简化,改善的娱乐。某些关键特征包括对到处存在的一个给定人的公共角色,设备空间之间互操作的一致的组,一致的数据捕捉,对数字纪元所有资源的访问(隐私,通过设备空间自然的双向通信,一致的用户经历,个性化娱乐,人们生活的自然部分的网络化)。
家庭的父亲(“Dad”)使用家用PC计划到洛杉机和圣地亚哥动物园的家庭渡假。使用一个服务,Dad给PC机很少的数据,通过仅输入一次信息系统建议并预订机票,旅馆,车辆并得到动物园门票。因为服务器是有在基于模式消息发送的情况下有意义的交换信息的能力,服务器能作为一个服务器联盟通信,以使用单个用户请求获得如机票,旅馆,汽车预定数据和动物园门票的可获得性等不同的数据,因此,父亲不必与每个服务器联系以独立地获得此信息。
系统还指出,通过提前一天可以节省钱,并检查每个人的日程表,看他们是否有空。因为日程表信息是以XML格式存储的,系统能同步每个人的日程表,看什么时候可行。系统还通过提出与折扣有关的信息(如Prime Card,AAA成员)进一步节省钱。根据存储的个人偏爱,该服务还停止报纸,发送电子邮件给邻居让她在全家度假时喂猫。这示出根据概况和规则自动处理日常任务的系统能力。在事件段中描述的事件发生可用于检测该事件,并根据该事件完成任务。
然后母亲和父亲在PC上得到对祖父母的周年纪念的提示。他们使用视频会议作出预订,并在饭店订了特别蛋糕。这证明了用户界面的多模态属性。祖父母收到邀请并接受之(通过他们的PC或WebTV(网络电视))。
乘车到学校去的孩子们得到计划旅行的通知。此通知可以经过在消息发送段中描述的异步消息发送完成。到动物园应用/服务的连结使孩子们能查出动物园地图,表演时间等。
当该家庭在飞机场得到租用的车时,他装有下载的每个家庭成员所喜欢的音乐/视频节目(父亲在订车时指定此选项并付款)。如在存储段中所述,对每个人的爱好信息从海量存储中获得。因此,可得到的喜爱在租得的车中容易得到。
当在汽车内,女儿饿了。并使用邻近/位置感知服务定位在汽车的一定半径范围内她喜爱的快餐店之一,给出方向并为家庭预订食品。邻近/位置感知应用通过在目录段内描述的目录结构访问适配目录。家庭可选择其最短的预定线路去取食品。他们用智能卡支付。
在动物园的入口,儿子下载动物园应用的拷贝到他的PDA。动物园应用包括地图,事件(动物喂食),有关在动物园内个体显示的数据(如黑猩猩的细节),促销等。他接收到他在学校的伙伴也在动物园中的通知,他们于是交换消息并计划在稍晚时会面。为了便于这样的通知,与PDA相关的位置感应器可以提供数据给位置感知应用。此应用提供在目录段中描述的到因特网范围目录结构的位置。伙伴也有一个应用,它将伙伴们的位置传输到因特网范围的目录服务。当伙伴们在儿子的某个距离范围内,或与儿子在共同区域(如动物园)中时,包括在位置感知程序中的事件被触发。此事件通过异步消息发送从应用的封地组件通信到应用的页面组件。此事件随后能发通知,并通过PDA的用户界面通知儿子。
母亲拍下家庭在动物园的数码照片,他们将其邮寄到他们社区的网站。祖父母在他们看电视时在他们的电视因特网浏览器上接到通知,说有新的照片。他们喜欢该照片并将它们下载到屋子的电子相片架中。祖父母运行一个应用,它具有包容监视网站有无新照片的事件的封地层。当新相片邮寄到时,事件被触发,导致给祖父母发送一个消息。例如,消息可以响应该事件由在封地组件中的程序码的本体产生(见编程模型段)从度假返回,青年女儿Jenna使用房间内的她的PC检索她离开时的消息。Jenna在她的用户界面上有“青年女孩”的外表。一个朋友留给她有关去音乐会的消息,但说票已售完。在听取消息时,她接受通知,她有一个有关的消息。她打开该消息,它通知她为她保留了两张票(幸运的是,Jenna向音乐服务预订了当她喜爱的乐队来到本镇时自动为她购买票)。此服务还从她的喜欢的乐队中提供新的音乐剪辑(Clips)。由于在事件段中描述的事件,Jenna能够自动的购买票子并获得新的音乐剪辑。
Jenna视频会见她的朋友讨论有关音乐会票子,因此证明了用户界面的多模态特性。然后他们在家庭作业分配上合作(做出有关雨林问题的视频报告)。他们还连接到项目网站并在视频会见期间实时编辑视频/文字。Jenna提供她在动物园期间制作的视频节目。当他们完成时,他们将他们的报告提交到学校的网站。
Jenna使用她的学校的网站下载她缺课的课程的视频,并上载任何家庭作业的分配。她得知,她必须在当前的环境问题上作报告。她命令智能新闻通信社从选定的来源找到最近的环境新闻剪辑,并在她醒来时可以得到它们。对环境新闻剪辑的搜索借助在目录段中描述的适配目录的因特网范围的同步而十分方便。
当Jenna起身时,她接收到通知,她的新闻剪辑已经就绪。此通知当新闻剪辑就绪时由一个触发事件产生,她开始扫视它们,但是时间已晚,将其声音传到她的汽车PC,所以她能在到学校的路上完成收听。当在汽车中时,她选择她的剪辑,并将其下载到她的输入板PC。这就证明Jenna使用在存储段中描述的海量存储将声音存入服务器联盟,并随后在不同的客户设备上,从该服务器联盟上重新获得声音。到达学校之后,Jenna在她的输入板PC上查阅学校网站以阅读学校报纸并查出午饭菜单。
放学以后,Jenna使用她的PC与她的朋友远程玩视频游戏。游戏包括面孔映射/扫描技术,其中Jenna的面孔出现在视频游戏人物上。在游戏期间,Jenna从她老师处接收一个即时消息,称赞她关于她的报告。Jenna还接收一个通知,一个她喜欢的电影已可下载。此通知是当喜欢的电影可用时响应一个触发事件而产生。
开发者此情景描述一个在工作旅途上易出事故的人(即Steve)。此情景的关键点是对在海量存储或“云”中的个人信息的普遍安全的访问,将用户访问联系到信息,并简化信息交换Steve在机场的租用电话亭,且非常激动,因为他将他的智能电话留在家里并需要访问他的信息。幸运的是,Steve带着他的智能卡,而且他能使用智能卡租用电话并从服务器联盟中的海量存储下载所有他的个人信息。这就展示了使用模式作为信息的单向访问方法,并使用在安全性段中描述的因特网认证,在任何地方访问从“海量存储”来的信息。智能卡认证了Steve,并告诉租用的电话,Steve的信息位于何处(即,日程表信息存在x处,联系信息存在y处等)。然后电话检索此信息并为Steve下载它。
在他离开机场的路上,Steve与一个自行车信使相撞,伤及他的踝骨。他是在陌生城市,不知道到哪里去求医。Steve呼叫他的家庭医生并询问可以接受他的保险的附近诊所。接收处使用诊所治疗安排服务用于更有效汇集信息,以定位靠近Steve的诊所和在他和他的妻子的现有健康计划下的百分比保险总额。她还是用日程表共享以将Steve安排为立即的约定并直接与该诊所交互。这解释了业务和个人模式的自动映射。而且,通过在目录段中描述的目录结构,使得可以获得列表或诊断和诊所的日程表。
接收处请求Steve同意与新的诊所共享他的医疗记录。Steve认证他自己并接收他的医疗记录的表(在他的智能电话上)。他然后检查,他想要使哪个记录对该诊所可用。这就说明了“联系的访问”—由位何应用作出基于规则的判断信息访问的合法性与否决,安全性建在系统级上并由丰富的模式及数据存储/访问支持。新的诊断说,Steve扭伤了踝骨。他们发通知给Steve的常规医生。他们还发出x光片,使得医生能确认此诊断M、结论分布式计算服务平台,包括编程模型,模式,用户界面,事件,消息发送,存储,目录,安全性,和程序码管理组件,方便了更多基于因特网的合作和更多网站间的通信。
本发明能以其他特定形式实施而不背离其精神或主要的特征。所描述的实施例在所有方面上应被认为是说明性的而不是限制性的。因此,本发明的范围由所附的权利要求指出而不是根据前面的描述。在权利要求的等价意义和范围内作出的所有改变被包括在它们的范围内。
希望保护的权利要求是
权利要求
1.一种软件应用,包括配置成在客户设备上映射一个用户界面的页面组件;配置成可以在由页面组件映射的用户界面上表示的主活动数据的封地组件;和表示页面组件到封地组件的密使组件。
2.按权利要求1的软件应用,其特征在于页面组件,密使组件,和封地组件在一台服务器上实现。
3.按权利要求1的软件应用,其特征在于页面组件在客户设备上实现,封地组件在服务器上实现。
4.一种在第一设备和第二设备之间通信的方法,包括下列步骤第一设备使用由第二设备识别的模式构造通信,其中通信的意义由模式隐含;并第一设备传递通信到第二设备。
5.一种用户界面,包括确定一个设备的用户界面能力的手段;提供与该设备的用户界面能力匹配的用户界面的手段。
6.按权利要求5的用户界面,其特征在于该设备是第一设备,用户界面还包括若用户切换到具有不同用户界面能力的第二设备时,伸缩到该用户界面能力的方法。
7.一种用户界面,包括用于确定用户的状态或周围情况的手段,和用于根据用户的状态或周围情况调节输入或输出方法的手段。
8.一种用户界面,包括用于将用户输入识别成符合模式的手段;用于将用户输入的意义识别成由模式隐含的意义的手段;和用于完成适合于用户输入的意义的功能的手段。
9.一种包含统一命令行的用户界面,该用户界面包括下列在统一命令行中接收用户输入的询问的手段;用于识别在询问中的多义性的手段;用于形成和通信给用户一个响应询问请求信息的手段,该信息至少部分地澄清该多义性。
10.软件包括一个配置成从多个预先存在的事件构造新的事件的事件合成机构;和一个配置成路由新的事件的事件路由机构。
11.一种第一设备与第二设备通信的方法,包括下列第一设备构造一消息;和第一设备使用与传输协议无关的机构传递消息到第二设备。
12.一种统一的存储机构,包括下列用于从远程用户界面接收对信息请求的手段;配置成确定信息被远程存储在何处的一个目录组件;和配置成检索信息并将该信息提供给用户界面的存储组件。
13.一种目录结构,包括包括有关对一个用户的多个识别的信息的适配目录;和存储对用户的认证信息并管理对适配目录的访问的门户。
14.一种清单,包括用于描述多个代码组件的手段;用于描述在各代码组件之间的关系的手段;和用于描述包括多个代码组件中至少某些的应用的手段。
15.在包括与多个客户设备通信的多个服务器的服务器联盟中,完成一个请求的方法包括下列多个服务器的第一服务器接收对一个服务的一个请求;第一服务器判定是否需要来自至少第二服务器的进一步信息,以便响应对该服务的请求;第一服务器利用由第一服务器和第二服务器共同识别的模式构成对进一步的信息的请求,其中对进一步信息的请求的意义被该模式所隐含;第一服务器使用与传输协议无关的信息发送底层结构传递对进一步信息的请求到第二服务器;第一服务器接收从第二服务器来的响应,该响应包括进一步的信息;和第一服务器使用进一步信息响应对服务的请求。
16.按权利要求15的方法,其特征在于第一服务器构成对进一步信息的请求包括第一服务器按可扩展标记语言(XML)构造请求。
17.按权利要求15的方法,其特征在于第一服务器从第二服务器接收响应包括第一服务器以按照可扩展标记语言(XML)构造的数据结构形式从第二服务器接收响应。
18.按权利要求15的方法,其特征在于第一服务器使用与传输协议无关的消息发送底层结构传递对进一步信息的请求到第二服务器包括第一服务器使用简单对象访问协议(SOAP)传递对进一步信息的请求。
19.按权利要求18的方法,其特征在于第一服务器构造对进一步信息的请求包括第一服务器按照可扩展标记语言(XML)构造请求。
20.按权利要求15的方法,其特征在于第一服务器从第二服务器接收响应包括第一服务器使用简单对象访问协议(SOAP)从第二服务器接收响应。
21.按权利要求20的方法,其特征在于第一服务器从第二服务器接收响应还包括第一服务器以按照可扩展标记语言(XML)构成的数据结构形式从第二服务器接收响应。
22.按权利要求15的方法,其特征在于第一服务器使用与传输协议无关的消息发送底层结构传递对进一步信息的请求到第二服务器包括下列一个消息发送组件与支持多个传输协议的公共应用程序接口通信。
23.按权利要求22的方法,其特征在于第一服务器使用与传输协议无关的消息发送底层结构传递对进一步信息的请求到第二服务器包括公共的应用程序界面与多个传输协议中的合适的一个通信以响应消息发送组件与公共应用程序接口的通信。
24.按权利要求23的方法,其特征在于公共应用程序接口与多个传输协议中的合适的一个通信包括公共应用程序接口与超文本传输协议(HTTP)传输通信。
25.按权利要求23的方法,其特征在于公共应用程序接口与多个传输协议中的合适的一个通信包括公共应用与MSMQ二进制传输通信。
26.按权利要求23的方法,其特征在于公共应用程序接口与多个传输协议中的合适的一个通信包括公共应用程序接口与组播传输通信。
27.按权利要求23的方法,其特征在于公共应用程序接口与多个传输协议中的合适的一个通信包括公共应用程序接口与SMTP传输通信。
28.按权利要求15的方法,其特征在于多个服务器的第一服务器接收对服务的请求包括多个服务器的第一服务器从第三服务器接收对服务的请求。
29.按权利要求15的方法,其特征在于多个服务器的第一服务器接收对服务的请求包括多个服务器的第一服务器从客户端接收对服务的请求。
30.用于服务器联盟的第一个服务器的计算机程序产品,服务器联盟包括与多个客户设备通信的多个服务器,计算机程序产品包括存储下列内容的计算机可读介质用于检测对服务请求的接收的计算机可执行指令;用于判断需要从至少第二服务器来的进一步信息以响应对服务的请求的计算机可执行指令;用于利用由第一服务器和第二服务器两者识别的模式构造对进一步信息的请求的计算机可执行指令,其中对进一步信息请求的意义由该模式隐含;使用与传输协议无关的消息发送底层结构使对进一步信息的请求传递到第二服务器的计算机可执行指令;用于检测从第二服务器来的响应的接收的计算机可执行指令;和用于使用进一步信息响应对服务的请求的计算机可执行指令。
31.按权利要求30的计算机程序产品,其特征在于计算机可读介质是物理存储介质。
32.按权利要求30的计算机程序产品,其特征在于用于利用由第一服务器和第二服务器两者识别的模式构造对进一步信息的请求的计算机可执行指令包括用于按照可扩展标记语言(XML)构造请求的计算机可执行指令。
33.按权利要求30的计算机程序产品,其特征在于使用与传输协议无关的消息发送底层结构使对进一步信息的请求传递到第二服务器的计算机可执行指令包括用于与支持多个传输协议的公共应用程序接口通信的计算机可执行指令。
34.按权利要求33的计算机程序产品,其特征在于使用与传输协议无关的消息发送底层结构使对进一步信息的请求传递到第二服务器的计算机可执行指令包括用于实现公共应用程序接口计算机可执行指令,使得公共应用程序接口与多个传输协议中的合适的一个进行通信以响应用于与公共应用程序接口通信的计算机可执行指令的执行。
35.在包括与含有第一客户设备和第二客户设备的多个客户设备进行通信的多个服务器的网络中,一种便于在会话中在第一客户设备与第二客户设备之间转移的方法,该方法包括下列步骤检索存储在至少一个服务器的状态信息;在与第一客户设备的会话中交互导致状态信息的更新;将更新后的信息存入至少一个服务器上;当会话在第二客户设备继续时,检索更新的状态信息;和根据更新的状态信息在继续的会话中与第二客户设备交互。
36.按权利要求35的方法,其特征在于还包括在响应在会话中与第一客户设备的交互而允许状态信息更新以前认证第一客户设备的用户。
37.按权利要求36的方法,其特征在于还包括在继续会话中与第二客户设备交互以前将第二客户设备的用户认证成与第一客户设备的用户相同的同户。
38.按权利要求35的方法,其特征在于使用遵循由多个服务器识别的模式的数据结构将状态信息存储在至少一个服务器上,其中状态信息的意义由该模式隐含。
39.按权利要求38的方法,其特征在于该数据结构是按可扩展的标记语言(XML)构造的。
40.按权利要求35的方法,其特征在于至少一个服务器包括服务器联盟。
41.按权利要求35的方法,其特征在于至少一部分状态信息包括用户界面信息,其中与第一客户设备会话中的交互包括下列步骤确定第一客户设备的第一用户界面特征;和提供第一组用户界面信息到第一客户设备,使第一组用户界面信息适合于第一用户界面特征。
42.按权利要求41的方法,其特征在于在与第二客户设备继续的会话中的交互包括下列步骤确定第二客户设备的第二用户界面特征;和提供第二组用户界面信息给第二客户设备,使第二组用户界面信息适合于第二用户界面特征。
43.按权利要求42的方法,其特征在于第一和第二客户设备具有相同的用户界面能力,其中第一和第二组状态信息包括基本相同的用户界面信息,从而允许第一和第二客户设备显示相同的信息。
44.按权利要求42的方法,其特征在于第一和第二客户设备具有不同的用户界面能力,其中第一和第二组用户界面信息是不同的。
45.按权利要求44的方法,其特征在于与第一客户设备会话中的交互包括与个人计算机的会话中的交互。
46.按权利要求45的方法,其特征在于个人计算机包括第一个人计算机,其中与第二客户设备的继续会话中的交互包括与第二个人计算机的继续会话中的交互。
47.按权利要求45的方法,其特征在于与第二客户设备的继续会话中的交互包括与移动电话的继续会话中的交互。
48.按权利要求44的方法,其特征在于与第一客户设备的会话中的交互包括与移动电话会话中的交互。
49.按权利要求48的方法,其特征在于移动电话包括第一移动电话,其中与第二客户设备的继续会话中的交互包括与第二移动电话的继续会话中的交互。
50.按权利要求48的方法,其特征在于与第二客户设备的继续会话中的交互包括与个人计算机的继续会话中的交互。
51.按权利要求35的方法,其特征在于还包括至少暂时地中止与第一客户设备的会话中的交互,其中与第二客户设备的继续会话中的交互发生在至少暂时地中止与第一客户设备的会话中的交互之后。
52.按权利要求35的方法,其特征在于检索存储在至少一个服务器上的状态信息包括检索存储在至少一个服务器上的偏爱信息。
53.按权利要求35的方法,其特征在于在至少一个服务器存储更新的信息包括在至少一个服务器上存储用于会话的会话状态信息。
54.按权利要求35的方法,其特征在于多个服务器包括服务器联盟,其中检索状态信息、与第一客户设备的会话中的交互、存储更新的信息、检索更新的状态信息和在继续的会话中的交互等动作由服务器联盟的二个或多个服务器合作完成。
55.一种用于包括与含有第一客户设备及第二客户设备的多个客户设备通信的多个服务器的网络中的计算机程序产品,该计算机程序产品用于实现便于在会话中在第一客户设备与第二客户设备之间转移的方法,该计算机程序产品包括计算机可读介质,其上存储下列内容用于检测接收到存储在至少一个服务器上的状态信息的计算机可执行指令;用于引起与第一客户设备的会话中的交互的计算机可执行指令;用于响应与第一客户设备的会话中的交互而引起状态信息更新的计算机可执行指令;用于引起将更新的信息存储在至少一个服务器的计算机可执行指令;用于当会话在第二客户设备上继续时检测接收到更新的状态信息的计算机可执行指令;和用于根据更新的状态信息引起与第二客户设备的继续会话中的交互的计算机可执行指令。
56.按权利要求55的计算机程序产品,其特征在于计算机可读介质是物理存储介质。
全文摘要
服务器联盟合作地交互,通过使用遵循一个模式的数据结构通信完成服务请求,通信数据的意义由该模式所包含。因此,除了被通信的数据外,还通信数据的意义以便根据数据的意义作出智能决策和推理。借助经支持多个传输机制的公共API的消息发送方便了在各种网络上的合作交互。而且借助模式及无关传输协议的消息发送结构便于会话中在客户设备之间的转移。即使客户设备具有不同的用户界面能力,客户设备的用户界面将显出一致性。
文档编号G06F9/44GK1524217SQ01811458
公开日2004年8月25日 申请日期2001年6月22日 优先权日2000年6月22日
发明者J·D·贝尔费奥雷, J D 贝尔费奥雷, D·G·坎贝尔, 坎贝尔, S·卡普斯, 账, S·M·切利尼, 切利尼, V·贡多特拉, 嗵乩, M·H·卢科夫斯基, 卢科夫斯基, P·A·玛瑞茨, 玛瑞茨, A·米特尔, 囟, E·D·鲁德, 鲁德, K·W·肖特, 肖特, K·辛格, 施皮罗, P·M·施皮罗, 特罗尔, T·W·特罗尔, 箍, D·瓦斯凯维奇, 菲茨杰拉德, C·T·菲茨杰拉德 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1