动态分布式环境中的自动拓扑形成方法、系统及程序产品的制作方法

文档序号:7949076阅读:192来源:国知局
专利名称:动态分布式环境中的自动拓扑形成方法、系统及程序产品的制作方法
技术领域
本发明一般涉及自治协作代理的动态分布式环境的控制和管理,更具体而言,涉及网格计算环境中资源的控制和管理。
背景技术
网格计算能够实现例如处理、网络带宽和存储容量之类的分布式计算和数据资源的虚拟化,以创建单系统映像,从而准许用户和应用无缝地访问大量IT功能。正如Internet用户通过Web观看内容的统一实例那样,网格用户实质上观看的是单个大型虚拟计算机。作为其核心,网格计算是基于例如开放网格服务结构(OGSA),www.qlobus.org,和网络服务资源框架(WS-RF),www.webservices.org的标准和协议开放集,这两者在此引作参考。这些标准使得能够在异构的、地理上分散的环境下进行通信。利用网格计算,企业组织能够优化计算和数据资源,将资源汇集成池以进行大量工作,并且在网络上共享资源以便进行协作。在芝加哥Argonne国家实验室&大学于2002年7月20日出版的Ian Foster的题为“The Physiology of the Grid”中可以寻找到与开放网格服务结构(OGSA)以及通常的网格计算有关的更多信息,www.globus.org/research/papers/osqa.pdf,其内容在此全文引作参考。
OGSA和WS-RF的基本前提是,任何事物都可以用服务来表示或者可以通过服务(即,能够通过交换消息来提供某些功能的支持网络的实体)访问和管理。计算资源、存储资源、网络、程序和数据库均为这类服务的例子。更具体而言,OGSA将每个事物都表示成网格服务(即,遵守一组约定并支持标准接口以进行生命期管理的Web服务)。用来实现所有网格服务的这个一致性接口核心集利于构造能够在各抽象层上以一致方式处理的高级服务。
目前有两种用于控制和管理独立实体集合的常用模式,即,“集中”模式和“分层”模式。在集中模式中,中央集权方直接控制集合内的所有实体。不过这种模式仅在集合规模有限时才具有可行性。另一方面,在分层模式中,将控制流程映射到树形结构上,其中内部树节点具有控制其直系子节点的职能。换言之,每个内部节点仅直接控制有限数量的实体(例如,其它内部节点或叶节点)。尽管该模式在集合规模方面更加灵活,不过其至少具有两个与之相关的限制。
首先,内部节点的故障会立即将该故障内部节点所控制的子树与集合的其余部分断开。其次,分层模式在静态环境下最有效,其中所有实体都被事先(a priori)了解,并且可设计和实现平衡树。不过,在动态环境下(其中实体经常加入和离开集合),平衡树的保持更加困难。例如,某些节点被迫控制数量日益增大的其它实体,并最终达到必须停止集合的操作并重新构建分层结构的程度。
因而,希望能实现一种管理结构,其提供可伸缩和富有弹性的机制,用于在整个集合,例如计算网格或移动节点的自组织网络上传播控制信息。

发明内容
通过在动态分布式环境下进行自动拓扑形成的方法,可克服或减轻上面所述的现有技术的缺陷和不足。在一个示例实施例中,该方法包括在活动拓扑中配置主节点,其中拓扑包括节点和节点之间的相互通信路径,并且节点包括仅具有输入边的一个或多个叶节点,和具有输入边和输出边的一个或多个基本节点(prime node),以及仅具有输出边的一个或多个根节点。主节点包括自动拓扑形成应用,其包括预先确定的拓扑策略定义和活动拓扑的表示。主节点从实体接收通信,所述通信包括表示影响活动拓扑的事件的拓扑事件通知。使用自动拓扑形成应用,基于拓扑事件通知确定拓扑事件通知影响活动拓扑的拓扑部分,并根据预先确定的拓扑策略定义修改活动拓扑的受影响拓扑部分的表示。
在另一实施例中,在动态分布式环境下进行自动拓扑形成的方法包括由具有最初拓扑角色的实体的应用从主节点接收拓扑信息,其中,该实体的初始拓扑角色是非节点(not-a-node)、根节点、基本节点或叶节点中的任何一个。当实体的拓扑角色要发生改变时,接收的信息包括接收实体将要担任的新拓扑角色。当实体的拓扑角色要改变并且新拓扑角色是基本节点或叶节点中的任何一个时,接收的信息包括拓扑中作为该实体的父节点的父实体的完整列表或父实体的改变列表中的任何一个。当实体的拓扑角色要改变并且新拓扑角色为根节点或基本节点中任何一个时,接收信息包括拓扑中作为该实体的下属的下属实体的完整列表或者下属实体的改变列表中的任何一个。从接收到的拓扑信息得出本地拓扑表示信息,其中,拓扑表示信息包括以下中的任何一个作为拓扑的非节点、根节点、基本节点或叶节点中任何一个的实体拓扑角色;拓扑中实体为其下属的实体的列表,或拓扑中作为实体的下属的实体的列表。于是在实体处设置本地拓扑表示信息。


下面参照附图,通过示例更详细地描述本发明的实施例,在附图中类似部分的编号相似,其中图1为可实现本发明的典型工作站或服务器硬件系统的示意图;图2为可实现本发明的数据处理网络的示意图;图3A,3B和3C所示的框图表示根据本发明实施例,在各种情形下,在动态分布式环境中进行自动拓扑形成的方法;图4和5所示的流程图表示执行包含在实体内、与拓扑相关的应用的示例实施例;图6为根据图3中所示的方法创建的一种示例拓扑的图例,其中具体说明了节点、基本节点和主节点之间的关系;以及图7为网格计算环境中创建的另一种示例分层拓扑的图例,其中具体说明了主机节点、基本节点和根基本节点之间的关系。
具体实施例方式
此处披露了一种在动态分布式环境下,对于独立但协作的实体集合的资源(例如网格计算环境中所包括的资源)进行控制和管理的机制。本发明实施例创建并且优选地利用无环图结构(取代树结构),使得其中的每个实体从多个父节点接收控制信息。此外,父节点的选择是动态的,从而允许当新实体加入集合或者现有实体离开集合时,在线地使无环图“改变”。本发明实施例所披露的方案提供了一种在整个集合上,例如在大型、分布式网格基础结构上传播控制信息的可伸缩和富有弹性的机制。此外,该图结构允许对分布式网格基础结构内的软件部署、策略管理、信息服务部署和查询进行配置。
正如此处进一步讨论的,优选地将实体(例如网格资源)组织成全局无环有向图,其中网络上的每个资源为图的一个节点。分布式环境基于预先确定的策略,自动将自己配置到拓扑中。将得益于该方案的分布式环境的例子包括但不限于计算网格,对等网络和自组织移动网络。从而,所产生的系统对于节点状态、位置的改变是高度动态和富有弹性的。如此配置后,可以使用不是具有1对n(主服务器和n个客户机)进行管理的结构,而是如此提供的分布式结构,在图内传播信息。资源可以为简单资源(叶节点)或“基本节点”,其中基本节点为图中作为“轻量管理”或辅助管理节点的资源。在这方面,基本节点沿图向下将管理请求传递到其它基本节点或简单资源。
参照图1,其中示出了可实现本发明的典型工作站或服务器硬件系统100。图1的系统100包括具有可选外设的典型计算机系统101,例如个人计算机,工作站或服务器。工作站101包括一个或多个处理器106,和用于根据已知技术将处理器106与系统101的其它部件相连并在处理器106与其它部件之间进行通信的总线。总线将处理器106与存储器105和长期存储器107相连,而长期存储器107包括例如硬盘驱动器,磁盘驱动器或磁带驱动器。系统101还可以包括用户接口适配器,其通过总线将微处理器106与一个或多个例如键盘104,鼠标103,打印机/扫描仪110和/或其它接口设备的接口设备相连,所述接口设备可以为任何用户接口设备,例如触摸敏感屏,数字式输入垫(entry pad)等。总线还通过显示适配器将例如LCD屏幕或监视器的显示设备102与微处理器106相连。
系统101可通过能够与网络109通信的网络适配器与其它计算机或计算机网络通信。示例性的网络适配器为通信信道,令牌环,以太网或调制解调器。或者,工作站101可使用无线接口,例如CDPD(蜂窝数字分组数据)卡进行通信。工作站101可以与局域网(LAN)或广域网(WAN)中的其它计算机相关联,或者工作站101可以是具有另一计算机等的客户机/服务器结构中的客户机。所有这些配置以及适当通信硬件和软件在本领域中都是公知的。
图2示出可实现本发明的数据处理网络200。数据处理网络200可包括多个单独的网络,例如无线网络和有线网络,每个网络可包括多个单独的工作站101。此外,如本领域技术人员可知的,可包括一个或多个LAN,而LAN可包括与主处理机连接的多个智能工作站。
依然参照图2,网络还可以包括大型计算机或服务器,例如网关计算机(客户机服务器206)或应用服务器(可访问数据库的远程服务器208)。网关计算机206作为每个网络207的入口点。当将一个联网协议与另一联网协议相连时,需要使用网关206。网关206优选地通过通信链路与另一网络(例如Internet 207)连接。网关206还可以使用通信链路直接与一个或多个工作站101连接。可利用可从IBM获得的IBMeServer zServer 900服务器来实现网关计算机。
通常,由系统101的处理器106从例如CD-ROM驱动器或硬盘驱动器的长期存储介质107访问实现本发明的软件程序代码。软件程序代码可以实现在数据处理系统使用的各种已知介质的任何一种上,例如磁盘,硬盘驱动器或CD-ROM。代码可以在这类介质上发布,或者可以从一个计算机系统的存储器或存储设备,经过网络发布给其它系统的用户,以供其它系统的用户使用。
或者,可以在存储器105中实现程序代码111,可使用处理器总线由处理器106访问该代码。该程序代码包括控制各个计算机部件的功能和交互的操作系统,以及一个或多个应用程序。通常将程序代码从高密度存储介质107调页到可通过处理器106处理的高速存储器105。在存储器中,物理介质上实现软件程序代码,和/或通过网络发布软件代码的技术和方法是公知的,在此将不再进一步讨论。
在优选实施例中,将本发明实现为一个或多个计算机软件程序111。本发明的软件的实现可以作为在请求时被调用的一个或多个模块或应用111(也称作代码子程序,或面向对象编程中的“对象”)在用户的工作站上操作。或者,软件可以在网络中的服务器上操作,或者可以在能执行实现本发明的程序代码的任何设备上操作。在不偏离此处所披露的本发明原理的条件下,可以将实现本发明的逻辑结合到应用程序代码中,或者将其实现为一个或多个可被该应用调用的分离的应用模块。可以在Web环境下执行应用111,其中Web服务器响应来自通过Internet连接的客户机的请求提供服务。在另一实施例中,可以在企业内部网或外部网中,或者可以在任何其它网络环境中执行该应用。用于该环境的配置包括客户机/服务器网络,对等网络(其中客户机通过执行客户机和服务器功能而直接交互)以及多层环境。这些环境和配置在本领域中是公知的。
本发明的应用领域是在由独立但协同的实体构成的动态分布式环境下创建拓扑的机制。这些拓扑在使实体相互连接的物理网络上可表示成覆盖。形成覆盖拓扑的目的是为了能够得到使实体之间更紧密协作和更好同步的有效机制。通过传播控制信息的有效机制,和收集和维护该信息的及时和可伸缩机制,实现更紧密的协作和更好的同步。
(本发明实施例尤其适用的)动态分布式环境的某些特性包括例如·实体的数量较大;·该环境下实体的参与动态改变;·该环境内的实体可能出人意料地变得不能达到;·各个实体对该环境只有有限的事先了解;·实体彼此没有事先了解;
·实体彼此具有有限的信任;以及·该环境中缺乏安全保证。
在计算网格的特定情况下,“实体”为组成网格的资源,并且形成拓扑的目的可以(例如)是提供分布式管理覆盖或信息搜集和分布覆盖。
与所涉及的特定类型的动态分布式环境无关,拓扑的形成是基于策略的。此外,在给定的分布式环境内可形成多个拓扑,每个拓扑遵守不同的策略。而且,这些拓扑可以共存,并且同时操作。例如,在自组织移动网络中,定义由最小生成树组成的拓扑对于传输语音数据可能是有用的,并且同时定义在每对节点之间具有至少两个独立路径的可靠拓扑对于传输重要文本数据可能是有用的。
拓扑特性如前所述,在全局有向无环图中将集合中的各个实体关联起来。在一个示例实施例中,集合的每个实体是图中的一个节点,其中图的两个节点如果它们在拓扑中的角色要求彼此之间进行直接通信,则在两者之间具有一条边。分布式环境中的特殊实体(此处称作主节点)完成拓扑形成。仅具有输入边的节点被称作叶节点,而同时具有输入和输出边的节点被称作基本节点。仅具有输出边的节点被称作根,其中该图中可包括不止一个根。
当负责创建图拓扑时,主节点在图中不必起特别的作用,并且可以为根节点,基本节点或叶节点。此外,每个拓扑具有与其相关的命名方案。这种命名方案的一个例子可以是将每个节点标注为将主节点与其相互连接的节点的路径。注意,命名本身并不是惟一的,因为在无环图中在主节点与任何其它给定节点之间可能存在多个路径。
拓扑形成和演变如前所述,由主节点执行活动拓扑形成的任务。分布式环境中的每个实体具有参与到拓扑形成过程中并成为拓扑本身一部分的固有机制。在基于服务的计算网格中,可将其实现为网格服务(例如拓扑形成服务),使得将每个网格资源配置成在启动时缺省部署。
参照图3A,其中示出根据本发明实施例在分布式环境中进行自动拓扑形成的方法的框图300(以要添加到拓扑的节点为具体示例)。如方框302中所示,准备好预定的拓扑策略,并据此将实体加入、将其保持在其中和/或从拓扑去除。最初,如方框304所示,利用拓扑形成应用在自动拓扑中配置主节点。如方框306所示,主节点从实体接收拓扑事件的通信(在本例中,为实体发出的加入拓扑的请求)。然后,主节点使用其自动拓扑应用更新拓扑(根据拓扑策略),将该新实体包含为该环境中的节点,如方框308所示。在这样做时,主节点可采取以下动作中的一个或多个(1)主节点确定一个或多个基本节点,这些节点将作为新实体的基本节点。
(2)主节点选择一个叶节点,将其提升至基本节点的状态,并分配该新基本节点作为新实体的基本节点。
(3)主节点将图的一部分改组(reshuffle),并针对这一部分确定包括新实体的新拓扑。
(4)主节点丢弃现有拓扑,构建包含该新实体的完全不同的拓扑。
基于针对特定拓扑的策略确定在选择新基本节点和更新拓扑时执行哪些具体动作。而拓扑信息策略所依赖的因素可包括下述因素中的一个或多个·由基本节点执行的预期任务;·节点的能力和潜力(其中,“能力”指节点提供的服务,“潜力”指硬件特征);·将节点相互连接的通信网络的能力;·所需的拓扑安全性;·所需的拓扑可靠性;以及·所需的拓扑性能。
例如,针对以下情形可提供用于动态分布式环境的一种示例性拓扑策略(1)基本节点将具有不超过10个子节点;(2)基本节点与其子节点之间的网络距离小于5个跳次;以及(3)使相关节点少于2个的基本节点解职(decommission),除非解职结果违反规则(2)。
再次参照图3A,如方框310所示,每次主节点向新实体分配基本节点时,其向该基本节点通知新实体的身份。主节点还向新实体通知基本节点的身份。然后,基本节点与新实体进行交互,以执行拓扑相关服务中所指定的任务。
参照图3B,其中示出根据本发明实施例在动态分布式环境中进行自动拓扑形成的方法的框图350(以节点故障或节点去除为具体示例)。如方框352中所示,准备好预定的拓扑策略,据此将实体加入、保持在拓扑中和/或从拓扑中去除。最初,如方框354所示,利用拓扑形成应用在自动拓扑中配置主节点。如方框356所示,在正常操作期间,当一个实体检测到另一实体的故障或缺席时,主节点从该实体接收该拓扑事件的通信,并将情况通知给它。然后,主节点使用其自动拓扑应用更新拓扑(根据拓扑策略),将所识别出的故障实体排除在环境之外,如方框358所示。在这样做的时候,主节点可采取以下动作中的一个或多个(1)如果故障节点为叶节点(a)主节点保持拓扑原样。
(b)主节点将图的一部分改组,并针对该部分确定将故障叶节点排除在外的新拓扑。
(d)主节点丢弃现有拓扑,构建排除故障叶节点的完全不同的拓扑。
(2)如果故障节点为基本节点(a)主节点确定将接管故障基本节点的职责的一个或多个基本节点。
(b)主节点选择一个叶节点,将其提升为基本节点的状态,并将故障基本节点的职责分配给该新基本节点。
(c)主节点将图的一部分改组,并针对该部分确定将故障实体排除在外的新拓扑。
(d)主节点丢弃现有拓扑,并构建将故障实体排除在外的完全不同的拓扑。
基于用于特定拓扑的策略来确定选择新基本节点和更新拓扑时所执行的具体动作。而拓扑形成策略所基于的因素可包括以下因素中的一个或多个·期望由基本节点执行的任务;·节点的能力和潜力(其中,“能力”指节点提供的服务,“潜力”指硬件特征);·将节点相互连接的通信网络的能力;·所需的拓扑安全性;·所需的拓扑可靠性;以及·所需的拓扑性能。
再次参照图3B,如方框360中所示,每次主节点改变拓扑时,其将改变以及新的关系通知给受影响的基本节点和叶节点。然后,节点进行交互,以执行与拓扑有关的服务中所指定的任务。
参照图3C,其中示出根据本发明另一实施例在动态分布式环境中进行自动拓扑形成的方法的框图370(以经历“过载”条件的节点作为具体示例,过载条件指的是与节点的其它职责相比,该节点维护拓扑所必须执行的工作量)。如方框372中所示,准备好预定的拓扑策略,并据此将实体加入、保持在拓扑中和/或从拓扑中去除。最初,如方框374所示,利用拓扑形成应用在自动拓扑中配置主节点。如方框376所示,在正常操作期间,当实体检测到过载条件时,主节点从该实体接收该拓扑事件的通信,并将情况通知给它。然后,主节点使用其自动拓扑应用更新拓扑(根据拓扑策略),以减轻环境的过载,如方框378所示。在这样做的时候,主节点可采取以下动作中的一个或多个(1)主节点确定一个或多个将分担过载基本节点的职责的基本节点。
(2)主节点选择一个叶节点,将其提升为基本节点的状态,并将过载基本节点的部分职责分配给该新基本节点。
(3)主节点将图的一部分改组,并针对该部分确定使负载平衡的新拓扑。
(4)主节点丢弃现有拓扑,构建使负载平衡的完全不同的拓扑。
基于用于特定拓扑的策略来确定选择新基本节点和更新拓扑时所执行的具体动作。而拓扑形成策略所基于的因素可包括以下因素中的一个或多个·期望由基本节点执行的任务;·节点的能力和潜力(其中,“能力”指节点提供的服务,“潜力”指硬件特征);·将节点相互连接的通信网络的能力;·所需的拓扑安全性;·所需的拓扑可靠性;以及·所需的拓扑性能。
再次按照图3C,如方框380中所示,每次主节点改变拓扑时,其将改变以及新的关系通知给受影响的基本节点和叶节点。然后,节点进行交互,以执行与拓扑有关的服务中所指定的任务。
在任何给定时刻,主节点都能够联系任何实体的拓扑形成服务,以将简单实体转换成基本节点。一旦实体被转换成基本节点,其就可以部署基本节点管理服务,并准备好充当基本节点。类似地,主节点可请求任何基本节点的拓扑形成服务取消部署基本节点管理服务。然而,在从拓扑中去除所选择的基本节点之前,主节点首先将以前向所选择的基本节点报告的实体重新分配给另一个基本节点。
分布式环境还具有监视拓扑形成服务的正常工作的能力。当系统检测到失效实体时,将更新拓扑,以满足策略要求。
图4和5进一步从其中包括应用软件的实体的角度观察的拓扑形成处理。图4的流程图400表示执行包含在实体内的应用的示例实施例。如方框402所示,实体从主节点接收消息,该消息可包括如方框404所示来自主节点的拓扑信息。在判断框406,如果从主节点接收的拓扑信息不包括拓扑的改变,则处理返回方框404。另一方面,如果从主节点接收的拓扑信息包含拓扑改变,则在判断框408判断相对于实体的初始拓扑角色是否为该实体分配新角色。在要将新角色分配给实体的情况下,处理前进到方框410,以进行新角色分配。如其所示,新角色可以为“非节点”,“根节点”,“基本节点”和“叶节点”之一。
当一个实体不是拓扑的一部分时,其被分配“非节点”拓扑角色(例如,其以前不是拓扑的一部分或者是新近从拓扑中去除的)。此外,可由不受该事件影响的实体启动拓扑影响事件通知。例如,一个实体发现另一实体没有对通信作出响应,其中所述另一实体可以不是将该事件通知给主节点的实体的父节点或下属。可通过现有技术中公知的方法来识别实体,这些公知方法包括但不限于MAC地址,IP地址,URL,全限主机名称或RFID。实体的拓扑部分地由拓扑角色和任何与其相关的父实体以及下属实体的标识来限定。
如果拓扑改变没有为该实体产生新(更新的)拓扑角色,则处理前进到判断框412,以检查拓扑改变是否引起了针对该实体的关系(例如父/子)的改变。如果不存在这种情形,那么处理返回框404。不过,如果存在相对于该实体的关系改变,则该实体的应用将反映这种改变,如方框414所示,处理最终将返回方框404。如图4中进一步示出的,在此也可以局部表示实体的角色和相对于拓扑的关系,如方框416和通信路径418所示。
除了从主节点接收通信以外,图5还根据检测拓扑事件并将其通知给主节点,说明了实体的另一功能500。如方框502中所示,将实体内的应用软件配置成检测拓扑事件(例如,拓扑添加,减少,过载条件或故障)。在检测到拓扑事件的情况下,实体访问关于与其相关的任何父节点、其任何下属(子节点)的状态,以及其自己的本地状态的信息。在方框504中形成拓扑事件通知消息,并在方框506中将消息发送给主节点,之后针对每个新拓扑事件重复该循环。
图6示出针对具有10个节点的分布式环境所创建的拓扑600的一个示例。在所示示例中,认为节点6,7,9和10为叶节点,而节点1,2,3,4,5和8为基本节点。此外,节点6是该示例拓扑的主节点。主节点6事先为所有其它节点所知,不过其在所形成的拓扑中不必承担特殊角色(如图6中具体表示出的,因为主节点6为叶节点)。命名方案是以主节点6为基础的。还注意到,节点1和2为根节点,从而在拓扑中承担特殊角色(即,支持与整个拓扑有关的查询)。
图7示出在基于OGSA(开放网格服务结构)的网格中所形成的拓扑700的一个更具体的示例。形成这种拓扑的目的是为了提供在整个网格上传播控制信息的可伸缩和富有弹性的机制。此外,使用其分布式结构,而不是1对n(一个服务器和n个客户机)的管理结构,在图中传播信息。在所描述的简单示例中,根基本节点702为同时起主节点(拓扑形成)和主管理节点作用的节点。其它基本节点(基本节点1-基本节点5)为图中的资源,其充当将管理请求沿图向下传送到其它基本节点或简单资源(主机)的“轻量管理”或“辅助管理”节点。对于在节点之间进行的通信,使用预约通知机制。在一个示例实施例中,可使用在OGSI(开放网格服务基础结构)中指定的预约通知机制。在另一实施例中,可利用由WS-Notification所指定的机制。每个资源预约到两个基本节点或一个根基本节点。
由于根基本节点702也是主节点,从而其执行拓扑形成处理。网格上的每个资源具有仅信任根基本节点702的拓扑形成服务。在启动时,新网格资源联系根基本节点,以确定在何处插入到树中。然后,根基本节点根据预定策略执行以下任务(1)根基本节点为新资源选择两个基本节点(或者仅选择一个,其本身)。
(2)根基本节点把将要预约到所选定基本节点的新资源的身份通知给所选定的基本节点。
(3)根基本节点将所选定基本节点的名称通知新资源。
在任何时刻,根节点都可以联系任何简单资源(其仅信任根基本节点)的拓扑形成服务,并命令其部署基本节点管理服务。然后,新指定的基本节点部署基本节点管理服务,并准备好充当基本节点。按照相同方式,根基本节点还可以联系拓扑形成服务,以取消部署基本节点管理服务。在从树中去除一个特定基本节点P之前,根基本节点首先去除P的所有子节点,并将其重新分配给一个或多个其它基本节点。然后,根基本节点从拓扑去除基本节点P,并提醒P之前的基本节点P的角色已经发生改变。
安全考虑图7拓扑的安全模式基于PKI(公开密钥基础结构)。网格上的每个资源信任根基本节点证书,并且仅允许根基本节点向树的每个节点分配用户。此外,资源将仅接受对根基本节点分配的基本节点的预约。相应地,基本节点将仅接受根基本节点告知接受的用户。
故障检测最后,提供一种用于监视系统和检测节点故障,过载情况以及其它不希望事件的机制。在一个示例实施例中,每个基本节点向其用户发送保持活动试通消息(keep-alive ping)。如果用户没有从其一个基本节点接收到试通消息,则通过联系故障服务向根基本节点作出提醒。如果用户从其一个基本节点而非另一个基本节点接收到通知,则其也向根基本节点作出提醒。一旦用户将故障提醒给根基本节点,则其相应地通过为资源选择新基本节点并根据活动策略更新拓扑,从而做出反应。在其它实施例中,该功能可通过不断论询基本节点的可靠性及其负载条件来实现。这例如可通过定期论询来完成。
正如将理解的,上述方法实施例可采取计算机或控制器实现的过程和实现这些过程的设备的形式。还可以用含有体现在有形介质(例如软盘,CD-ROM,硬盘驱动器或任何其它计算机可读存储介质)中的指令的计算机程序代码来实现所披露的内容,其中,当计算机或控制器装入并执行计算机程序代码时,计算机成为实现本发明的设备。还可以通过计算机程序代码或信号的形式体现所披露的内容,例如,无论是存储到存储介质中、由计算机或控制器加载和/或执行、还是在传输介质上(例如在电线或电缆上、通过光纤或通过电磁辐射)传输,在将计算机程序代码加载并由计算机执行时,计算机就成为实现本发明的设备。当在通用微处理器上执行时,计算机程序代码段配置该微处理器,以创建特殊逻辑电路。
虽然参照优选实施例描述了本发明,不过本领域技术人员可知,在不偏离本发明范围的条件下可对其进行多种改变,并且可同等地替代其要素。此外,根据本发明的教导,在不偏离其根本范围的条件下可做出多种变型,以适应具体情形或材料。从而,本发明不限于如实现本发明的最佳模式所披露的具体实施例,本发明将包括处于所附权利要求范围之内的所有实施例。
权利要求
1.一种在动态分布式环境中进行自动拓扑形成的方法,该方法包括步骤在活动拓扑中配置主节点,其中拓扑包括节点和处于节点之间的相互通信路径,并且所述节点包括一个或多个仅具有输入边的叶节点,一个或多个具有输入边和输出边的基本节点,以及一个或多个仅具有输出边的根节点,所述主节点包括自动拓扑形成应用,所述自动拓扑形成应用包括预先确定的拓扑策略定义和活动拓扑的表示;在所配置的主节点处从实体接收通信,所述通信包括拓扑事件通知,所述拓扑事件通知表示影响活动拓扑的事件;使用自动拓扑形成应用确定拓扑事件通知影响活动拓扑的拓扑部分;以及基于拓扑事件通知,根据预定的拓扑策略定义修改活动拓扑的受影响拓扑部分的表示。
2.根据权利要求1的方法,其中,所述修改步骤进一步包括步骤确定针对受影响拓扑部分的相应受影响节点的拓扑更新信息,其中所述拓扑更新信息是基于拓扑事件通知确定的;并且将拓扑更新信息发送给受影响拓扑部分的相应受影响节点。
3.根据权利要求1或权利要求2的方法,其中影响活动拓扑的所述事件包括以下中的一个或多个从实体发出关于将实体作为新节点添加到活动拓扑的询问;从活动拓扑去除现有节点;以及活动拓扑内现有节点的过载条件。
4.根据权利要求3的方法,其中,对于将实体作为新节点添加到拓扑、影响活动拓扑的所述事件,主节点为所述实体选择基本节点,将所述实体通知给所选择的基本节点,并将所选择的基本节点的身份通知给所述实体。
5.根据权利要求4的方法,其中,所述主节点通过在所述拓扑中选择一个或多个现有节点以作为所述实体的基本节点,来更新所述拓扑。
6.根据权利要求4所述的方法,其中,所述主节点通过将叶节点提升为基本节点并将所提升的基本节点分配给所述实体,来更新所述拓扑。
7.根据权利要求4到6中任何一个的方法,其中,进一步将所述主节点配置成重新分配所述拓扑的包含所述实体的部分中节点之间的关系。
8.根据权利要求4到7中任何一个的方法,其中,进一步将所述主节点配置成在将所述实体包含在所述拓扑中时重新配置所述拓扑。
9.根据权利要求3的方法,其中,针对所述检测到的从所述拓扑中去除现有节点的情况,所述主节点更新所述拓扑,并将此更新通知受影响的基本节点和其它实体。
10.根据权利要求9的方法,其中所去除的节点为基本节点,并且所述主节点通过选择一个或多个替代基本节点来执行所去除的基本节点的职责,来更新所述拓扑。
11.根据权利要求9的方法,其中,所去除的节点为基本节点,并且所述主节点通过将叶节点提升为基本节点以执行所去除的基本节点的职责,来更新所述拓扑。
12.根据权利要求9到11中任何一个的方法,其中,进一步将所述主节点配置成重新分配所述拓扑的以前包含所去除节点的部分中节点之间的关系。
13.根据权利要求9到12中任何一个的方法,其中,进一步将所述主节点配置成重新配置所述拓扑以排除所去除的节点。
14.根据权利要求3的方法,其中,针对所述检测到的所述拓扑内现有节点的过载条件的情况,所述主节点更新所述拓扑,并将更新通知给受影响的基本节点和其它实体。
15.根据权利要求14的方法,其中,所述过载节点为基本节点,所述主节点通过选择一个或多个替代基本节点以分担所述过载基本节点的至少一部分职责,来更新该拓扑。
16.根据权利要求14的方法,其中,所述过载节点为基本节点,所述主节点通过将叶节点提升为基本节点以分担所述过载基本节点的至少一部分职责,来更新该拓扑。
17.根据权利要求14到16中任何一个的方法,其中,进一步将所述主节点配置成重新分配所述拓扑的包含过载节点的部分中节点之间的关系,以减少过载节点的负载。
18.根据权利要求14到17中任何一个的方法,其中,进一步将所述主节点配置成通过平衡其中的负载来重新配置所述拓扑。
19.根据前面任一权利要求的方法,其中,所述预定拓扑策略基于以下中的一个或多个期望由节点执行的任务集,所述节点包括基本节点;节点所提供的服务,所述节点包括非节点、叶节点、基本节点或根节点中的任何一个;节点的硬件特性,所述节点包括非节点、叶节点、基本节点或根节点中的任何一个;将节点互相连接的一个或多个通信网络的功能,所述节点包括非节点、叶节点、基本节点或根节点中的任何一个;所述拓扑的所需安全性;所述拓扑的所需可靠性;以及所述拓扑的所需性能。
20.根据前面任一权利要求的方法,其中使用允许所述节点充当基本节点的基本节点管理服务来配置一个或多个节点,其中所述主节点能命令节点部署与其相关的所述基本节点管理服务。
21.根据权利要求20的方法,其中,所述主节点还能够命令节点取消部署与其相关的所述基本节点管理服务。
22.根据权利要求21的方法,其中,将所述主节点配置成,通过最初把向所指定的基本节点报告的一个或多个节点重新分配给一个或多个其它基本节点,从所述拓扑去除所述指定的基本节点。
23.根据前面任一权利要求的方法,其中,所述动态分布式环境包括网格计算环境。
24.根据权利要求23的方法,其中所述主节点包括根基本节点;所述一个或多个基本节点包括基本节点;以及所述一个或多个叶节点包括主机节点。
25.根据权利要求1到23中任何一个的方法,其中,所述主节点也是所述拓扑内的叶节点。
26.根据权利要求2的方法,还包括步骤由具有初始拓扑角色的第一实体的应用从主节点接收拓扑更新信息,其中,第一实体具有非节点、根节点、基本节点或叶节点中任何一个的初始拓扑角色,并且当第一实体的拓扑角色要改变时,接收的信息包括第一实体将要承担的新拓扑角色;当第一实体的拓扑角色要改变并且新拓扑角色为基本节点或叶节点中任何一个时,接收的信息包括拓扑中作为该实体的父节点的父实体的完整列表或父实体的改变列表中的任何一个;当第一实体的拓扑角色要改变并且新拓扑角色为根节点或基本节点中任何一个时,接收的信息包括拓扑中作为该实体的下属的下属实体的完整列表或下属实体的改变列表中的任何一个;从所接收的拓扑信息中导出本地拓扑表示信息,其中本地拓扑表示信息包括以下中的任何一个第一实体拓扑角色,作为拓扑的非节点、根节点、基本节点或叶节点中的任何一个;作为拓扑中第一实体的父节点的实体的列表;或作为拓扑中第一实体的下属的实体的列表;并且在第一实体处设置本地拓扑表示信息。
27.一种用于在动态分布式环境下进行自动拓扑形成的计算机程序,包括用于控制数据处理设备执行根据前面任一权利要求的方法的计算机程序代码。
28.一种用于在动态分布式环境中进行自动拓扑形成的系统,包括网络;与网络通信的第一计算机系统,其中,所述第一计算机系统包括用于执行根据权利要求1到26中任何一个的方法的数据处理部件。
29.根据权利要求28的系统,其中,所述数据处理部件包括自动拓扑形成应用的计算机程序实现。
30.一种用于在动态分布式环境中进行自动拓扑形成的方法,该方法包括步骤由具有初始拓扑角色的第一实体的应用从主节点接收拓扑信息,其中,第一实体具有非节点、根节点、基本节点或叶节点中任何一个的初始拓扑角色,并且当第一实体的拓扑角色要改变时,接收的信息包括第一实体将要承担的新拓扑角色;当第一实体的拓扑角色要改变并且新拓扑角色为基本节点或叶节点中任何一个时,接收的信息包括拓扑中作为该实体的父节点的父实体的完整列表或父实体的改变列表中的任何一个;当第一实体的拓扑角色要改变并且新拓扑角色为根节点或基本节点中任何一个时,接收的信息包括拓扑中作为该实体的下属的下属实体的完整列表或下属实体的改变列表中的任何一个;从所接收的拓扑信息中导出本地拓扑表示信息,其中本地拓扑表示信息包括以下中的任何一个第一实体拓扑角色,作为拓扑的非节点、根节点、基本节点或叶节点中的任何一个;作为拓扑中第一实体的父节点的实体的列表;或作为拓扑中第一实体的下属的实体的列表;并且在第一实体处设置本地拓扑表示信息。
31.根据权利要求30的方法,还包括在第二实体处在第二拓扑应用中确定已经发生潜在拓扑影响事件;并且向主节点发送有关潜在拓扑影响事件的通知,从而主节点通过向第一实体发送拓扑信息,对于潜在拓扑影响事件的通知做出响应。
32.根据权利要求30的方法,还包括在第一实体处在拓扑应用中确定已经发生潜在拓扑影响事件;并且向主节点发送潜在拓扑影响事件的通知,从而主节点通过向第一实体发送拓扑信息,对于潜在拓扑影响事件的通知做出响应。
33.根据权利要求30的方法,其中实体列表包括MAC地址,IP地址,URL,全限主机名称或RFID中的任何一个。
34.一种用于在动态分布式环境中进行自动拓扑形成的计算机程序,包括用于控制数据处理设备执行根据权利要求30到33的方法的计算机程序代码。
35.一种用于在动态分布式环境中进行自动拓扑形成的系统,包括网络;和与网络通信的第一计算机系统,其中,第一计算机系统包括用于执行根据权利要求30到33中任何一个的方法的数据处理部件。
36.根据权利要求35的系统,其中,所述数据处理部件包括自动拓扑形成应用的计算机程序实现。
全文摘要
一种在自动分布式环境中进行自动拓扑形成的方法,包括在具有节点和在节点之间的相互通信路径的活动拓扑中配置(304,354,374)主节点。该主节点包括具有预定拓扑策略定义和活动拓扑表示的自动拓扑形成应用。主节点从实体接收(306,356,376)通信,所述通信包括表示影响活动拓扑的事件的拓扑事件通知。使用自动拓扑形成应用,基于拓扑事件通知确定影响活动拓扑的拓扑部分的拓扑事件通知,并根据预定的拓扑策略定义修改(308,358,378)活动拓扑的受影响拓扑部分的表示。
文档编号H04L12/56GK101040486SQ200580034745
公开日2007年9月19日 申请日期2005年10月11日 优先权日2004年10月12日
发明者欧文·布特布尔, 迪克拉恩·梅利克塞蒂安, 简-皮埃尔·普罗斯特, 周年军 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1