首页> 中国专利> 用于在分布式应用中最佳地权衡复制开销和一致性级别的系统和装置

用于在分布式应用中最佳地权衡复制开销和一致性级别的系统和装置

摘要

本发明提供了用于在分布式数据复制中最佳地权衡复制开销和一致性级别的方法和系统,其中各节点被组织为层次。根节点具有需要在所有其他节点处复制的原始数据,并且复制的副本具有必须被满足的新鲜度阈值。所述数据通过定期更新在层次中传播。每个节点定期将数据发送到其子节点。给定所述新鲜度阈值,算法及其分布式协议可以确定所述层次的每个链路的最优更新周期,以便对于每个节点都满足所述新鲜度阈值并且最小化总体复制开销。

著录项

  • 公开/公告号CN101490653A

    专利类型发明专利

  • 公开/公告日2009-07-22

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN200780026887.X

  • 发明设计人 刘震;仰颢;叶凡;夏红辉;

    申请日2007-06-15

  • 分类号G06F12/00;G06F17/30;

  • 代理机构北京市中咨律师事务所;

  • 代理人于静

  • 地址 美国纽约

  • 入库时间 2023-12-17 22:23:16

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2011-08-03

    授权

    授权

  • 2009-09-16

    实质审查的生效

    实质审查的生效

  • 2009-07-22

    公开

    公开

说明书

技术领域

本发明涉及信息技术系统的管理领域,具体地说,涉及信息技术系统内分布式数据复制的一致性维护。

背景技术

数据复制是一种广泛使用的技术,用于在多个位置处存储原始数据的副本以提高数据可用性和总体系统性能。数据复制用于各种信息技术系统,包括内容传送网络、对等存储和交换、应用级多播和分布式数据备份等。

在许多此类系统中,需要将位于一个节点处的原始数据复制到一组其他节点。所有这些节点通常被组织为树层次,并且具有原始数据的节点是层次的根。定期在层次的每个链路上复制数据。例如,根节点定期将其数据发送到其子节点,每个子节点定期将从其父辈接收的数据发送到其后代。通过此方式,在层次内的所有节点中全面刷新数据。

一种使用数据复制并需要维护数据一致性的信息技术系统是资源发现系统。为了在计算系统(如联网计算系统)中执行应用或服务,需要在这些应用之间分配计算系统内部以及计算系统外部的资源。这些资源包括计算硬件资源(例如,中央处理单元(CPU)资源)、存储容量(例如,物理机器以及数据收集器或数据传感器中的硬盘驱动器大小、存储器大小)。可用资源可以包括静态和动态资源两者。例如,给定机器的存储器大小或网络适配器速度通常是固定的,而可用存储器或带宽将随时间而频繁改变。

为了在各种同期资源需求之间分配资源,需要创建和维护可用资源储存库。此储存库的创建和维护包括发现可供分配的资源。资源发现可以查找符合给定资源需求的指定要求的远程资源,并且广泛用于许多分布式计算系统以实现各种应用。例如,在网格计算中,将发现或标识拥有所需CPU和存储器资源以运行应用的机器或节点,然后在这些所标识的机器上部署应用。

已提出了各种用于资源发现的方法。这些所提出的方法包括域名系统(DNS),如P.Mockapetris与K.J.Dunlap的Delopment of the DomainName System(域名系统开发,SIGCOMM’88年报,加利福尼亚州斯坦福,第123-133页,1988年)中所述;轻量目录访问协议(LDAP/X.500),如M.Wahl、T.Howes与S.Kille的RFC 2551-Lightweight Directory AccessProtocol(v3)(RFC 2551-轻量目录访问协议(第3版),1997年12月)、ITU-T建议X.500(2001年1月)和D.W.Chadwick的Understanding X.500-The Directory(了解X.500-目录,1996年)中所述;以及java命名和目录接口(JNDI),如Sun Microsystems的Java命名和目录接口-JNDI文档(http://java.sun.com/products/indi/docs.html)中所述。所有这些系统都提供目录服务以发现资源;但是,这些对资源发现的先前尝试主要针对静态资源或变化非常缓慢的资源(例如,主机名到网际协议(IP)地址映射)而布置。使用这些系统对频繁变化(例如,按数十分钟或更短时间的频率)的动态资源的支持是非常有限的。此外,这些系统假设将可用资源的空间或领域全局地组织为以委派方式管理的预定义树层次。即,每个组织都同意此类层次并“拥有”树的一部分。

但是,资源的全局组织和管理可能并不存在。此外,全局组织会为资源的分配带来复杂性和限制。例如,如果将来要添加新的资源类型,则可能难以预定义资源层次。由于管理和信任原因,自主系统可能对于应如何组织资源具有不同的理解。已采用不同资源发现服务的系统需要针对公共任务进行协作,但是更改各自的旧式资源发现服务非常困难。

David Oppenheimer、Jeannie Albrecht、David Patterson和AminVahdat在Distributed Resource Discovery on PlanetLab with SWORD(使用SWORD在PlanetLab上的分布式资源发现;有关实际、大型分布式系统的第一专题研究小组,(WORLDS’04),2004年12月)中描述了一种可伸缩的广域资源发现工具(SWORD)。针对PlanetLab创建此资源发现服务,如Larry Peterson、Tom Anderson、David Culler和Timothy Roscoe在A Blueprint for Introducing Disruptive Technology into the Internet(将突破性技术引入因特网的蓝图,2002年7月)中所述。SWORD所采用的资源发现工具使用基于分布式散列表(DHT)的对等网络来支持针对动态资源的多维范围查询。使用对等网络的一个缺点是系统的管理是一个难题。对等网络被布置为允许各个节点的高度自主,从而非常难以促进(尤其是集中)系统中的控制和管理。此外,SWORD中的资源发现工具要求每个单个自主系统都将其完整的资源记录导出到对等网络。这会由于信任问题而变成问题。单个自主系统可能不愿意将其原始记录暴露于外部世界。

可用资源储存库的创建和维护将消耗开销,即系统资源。维护量越大,产生的系统开销成本就越大。此维护包括提供反映有关系统资源的最新和准确信息的可靠和一致的数据。但是,频繁更新将消耗更多的系统资源。当前用于维护可用系统资源储存库的方法并未在最新数据需求与最小化系统开销需求之间进行平衡。因此,需要提供资源储存库的创建、维护的系统和方法,以用于在各种资源需求之间分配这些资源,以便在优化系统开销消耗的同时,在储存库中提供可接受的新鲜度级别。

发明内容

根据本发明的系统和方法优化了用于复制层次中的数据复制一致性维护的开销量。由于原始数据可以是动态的并且可以不断地变化,因此希望确保所复制数据副本的特定一致性级别。在一致性级别和复制开销之间存在权衡。通常,每个链路上的更新越频繁,一致性就越好。但是,数据更新越频繁,消耗的开销就越多。给定期望的一致性级别,根据本发明的示例性系统和方法将确定层次中的多个链路中的每个链路上的最优更新频率,以便满足期望的一致性级别并且最小化复制开销。

本发明的实施例可以用于各种类型的信息技术系统,包括但不限于内容传送网络、对等数据交换和应用级多播。虽然此处给出的实例示出了使用本发明以确定联合资源发现系统的最优复制开销,但是本发明并不限于具有这些类型系统的应用。

根据本发明的示例性实施例的系统和方法最佳地权衡了其中节点被组织为树层次的分布式应用中的复制开销和一致性级别。层次的根节点具有需要复制到多个其他节点的原始数据。复制通过层次中的每个链路上的定期更新消息完成。每个节点定期将从其父辈接收的数据发送到其后代。通过此方式,将数据复制到层次中的每个其他节点。

由于原始数据随时间变化,因此与原始数据相比,在整个层次中分布的已复制数据副本需要特定的一致性级别。从给定原始节点到复制节点的树拓扑的一致性要求可以被形式化和公式化。可以使用用于计算层次的所有链路上的最优更新周期的算法来解决由此公式化表示的优化问题,以便在满足给定一致性要求的同时最小化总体消息开销。所述算法具有分布式实施方式,其可以在层次中运行并且可以使用常态最小化总体复制开销和每个节点处的消息开销。

根据本发明的系统和方法包括一种用于更新存储在组织为层次并通过网络链接的多个节点中的已复制数据的方法。所述节点包括服务器并且适合的层次包括树层次。针对存储在节点网络层次内的任何给定节点处的任何和所有数据定义新鲜度阈值。然后针对存储在每个节点处的数据确定跨所述网络层次内的各节点之间的多个链路中的每个链路的更新周期,以便对于存储在任何给定节点处的所有数据都满足所述新鲜度阈值并且最小化与更新数据关联的开销。根据所确定的更新周期来更新存储在所述节点处的数据。

为了确定所述更新周期,将节点层次中的每个节点的当前数据更新周期以及从其父节点到一个或多个叶节点的所有数据更新周期的总和从所述节点层次中的每个节点传送到父节点。所述当前数据更新周期包括其中给定节点的父节点应向此节点发送数据更新的时间段。调整所传送的当前数据更新周期以及更新周期总和,使得在所述节点层次内的每个叶节点处都满足所述新鲜度阈值。此外,确定所述更新周期还包括在所述节点层次内的每个节点处维护状态数据。给定节点处的所述状态数据包括:与此节点关联并且表示其父节点应发送数据更新的周期的当前数据更新周期;以及从其父节点到此节点的任何后代叶节点的数据更新周期的总和。在每个非叶节点处维护与所述非叶节点的每个子节点关联的比例因子。

在一个实施例中,将在每个节点处维护的所述状态数据向上通过所述节点层次传送到根节点。为了向上通过所述层次传送所述状态数据,如果在所述状态数据中传送的所有数据更新周期总和都相等,则在所述节点层次内的每个从其子节点接收所传送状态数据的节点处,计算使用所传送状态数据中的所述数据更新周期的接收节点的数据更新周期。备选地,如果确定给定节点处在所述状态数据中传送的所有数据更新周期总和不相等,则选择所述给定节点的任意子节点,并且使用与所述任意子节点关联的数据更新周期总和来计算每个其他子节点的比例因子。使用所计算的比例因子来计算所述给定节点的所有后代的更新后的状态数据,并且将所述更新后的状态数据从所述给定节点向上通过所述节点层次传送。

在根节点处接收来自此根节点的所有子节点的状态数据,并且对在所述根节点处接收的所述状态数据做出调整以确保在所述根节点的每个叶节点处都达到所述新鲜度阈值。对所述状态数据的调整包括调整每个叶节点处的更新周期总和以等于所定义的新鲜度阈值。此外,将与每个叶节点关联的更新周期总和调整为公共相等值,并且将所述公共相等值与所述新鲜度阈值相比较。获得作为所述新鲜度阈值与所述公共相等值的比率的比例因子,并且在每个叶节点处使用所述比例因子调整当前更新周期。将所述比例因子传送到所述根节点的每个子节点,并且使用所述比例因子来调整每个子节点的当前更新周期。

附图说明

图1是其中可以使用本发明的专用服务器层次和分布式计算系统的实施例的示意性表示;

图2是其中可以使用本发明的专用服务器层次的实施例的示意性表示;

图3是示出了根据本发明的查询处理的实施例的示意性表示;

图4是在复制和确保一致性中使用的节点的复制树层次的实施例的示意性表示;

图5是树层次中布置为根节点的节点的实施例的示意性表示;

图6是与本发明一起使用的资源发现服务器的实施例的示意性表示;

图7是示出了当索引不可用时作为查询选择性的函数的总响应时间的图;

图8是根据本发明的请求和回复查询交换的时间分解的实施例的示意性表示;

图9是示出了当维护索引时作为查询选择性的函数的响应时间的主要部分的图;

图10是示出了响应时间对选择性的图;

图11是通过树层次的汇总复制的示意性表示;

图12是示出了通过所复制的汇总跟踪原始汇总中的更改的图;以及

图13是与本发明一起使用的节点网络层次的另一个实施例的示意性表示。

具体实施方式

首先参考图1,其中示出了根据本发明的与示例性实施例一起使用的系统10的示例性实施例,其用于更新存储在组织为层次并通过网络链接的多个节点中的已复制数据,以便在最小化系统开销的同时维持期望的数据一致性级别。如所示出的,系统10是根据本发明的示例性实施例的联合资源发现系统。所述联合资源发现系统是一种示例性信息技术系统,其中可以应用用于在最优开销的情况下维护一致性级别的方法。但是,用于在最优开销的情况下维护一致性级别的方法的应用并不限于联合资源发现系统,而是可以应用于各种信息技术系统和关联的层次。

首先开始讨论根据本发明的示例性实施例的联合资源发现系统的组织和使用,所述联合资源发现系统包括多个根据预定层次布置的专用服务器12(D服务器)。所述专用服务器通过此层次相互通信并且可以交换文件或数据。适合的服务器在本领域中是公知和可用的,并且包括任何类型的能够处理命令、存储数据以及与其他服务器通信的处理器或处理单元。适合的层次包括但不限于树层次和金字塔层次。优选地,所述服务器被布置为树层次,并且包括多个叶节点D服务器20、多个中间节点D服务器16以及一个根节点D服务器14。所有D服务器都可以位于单个位置,例如作为专用服务器农场的一部分。备选地,所述服务器分布在各种位置并且跨一个或多个网络通信。例如,每个D服务器可以位于单独的域或组织中。所述服务器可以严格专用于层次,或者可以是在层次之外提供其他服务或功能的多用途服务器。

所述系统还包括多个与特定域或组织关联并且被称为O服务器22的资源发现服务器。每个O服务器可以与单独的域关联,或者两个或更多个O服务器可以与公共域关联。适合的O服务器类型与D服务器类型相同。在一个实施例中,所有O服务器是独立的并且不同于D服务器。备选地,至少一个O服务器和一个D服务器是公共服务器。通常,O服务器被布置为广泛分布的服务器系统。每个O服务器跨一个或多个网络与至少一个D服务器通信。例如,分布式O服务器跨广域网18(例如,因特网)与D服务器通信。此外,其他O服务器组还可以通过一个或多个局域网24(例如,与给定域或因特网服务提供商关联的局域网)与D服务器通信。如在此所使用的,各种服务器之间的通信是双向通信,因为每个服务器都可以向任何其他服务器传送数据和从任何其他服务器接收数据。虽然每个O服务器都可以与任何一个D服务器通信,但是优选地,使用代表树层次中的叶节点的D服务器之一来标识每个O服务器并与每个O服务器通信。因此,所述O服务器在树层次中成为该D服务器的子节点。

每个O服务器可以是给定域或组织内的单个服务器或分布式服务。每个O服务器能够在其组织内发现资源、能够更新所存储的资源数据、能够根据所需的粒度级别汇总资源数据、能够将资源数据传送到其他服务器以及能够从其他服务器接收资源数据。根据给定组织的特定或专用格式来组织该组织内包含的资源,并且在O服务器内获取和维护以该格式描述这些资源的数据或属性。用于描述资源的属性的特定或本机格式包括用于命名特定资源类型的约定。属性格式的变化源自使用不同的名称描述完全相同的资源(例如,存储器对RAM),以及使用具有相同基本功能的不同资源。例如,一个组织可以使用RAM作为其主要存储源,而另一个组织可以使用闪速存储器作为其主要存储源。这两种存储器都为其各自组织提供相同的基本功能,但是具有不同的属性来描述资源。

由于每个O服务器都与层次结构内包含的一个或多个分布式专用服务器(D服务器)通信并且能够与之交换数据,因此每个O服务器根据其组织的特定格式或协议将存储在此O服务器上的资源属性数据导出到一个D服务器。此D服务器是该O服务器的父辈D服务器。因此,各种组织不必根据通用格式进行格式化。

使用与任何给定资源关联并且以资源属性数据表示的多个属性来提供对该资源的描述(包括该资源的标识、位置和能力)。这些属性可以采取定性或定量描述符的形式。在一个实施例中,属性以定量数字的形式提供,例如实数或整数、分类数据和数字区间等。每个与给定资源关联的属性都可以被视为它所关联的资源的维度。更大量的数据或属性与更大或更高的维度相关。更大的维度需要更多的存储空间以存储关联数据。但是,除了与资源所在组织关联的O服务器之外,不必在层次内的每个服务器处维护每个资源的全部维度。实际上,在任何给定D服务器处,只需足以将查询从此D服务器路由到包含资源的所有属性数据的O服务器的信息量。因此,任何给定D服务器仅需任何给定资源的属性的汇总或聚合表示。

参考图2,图2中示出了根据本发明的用于资源发现和分配的D服务器26的树层次的示例性实施例。此树层次资源发现系统包括多个单独的D服务器,其中包括根D服务器14、中间节点D服务器16和叶节点D服务器20。每个叶节点D服务器20包含从一个或多个O服务器传送到它的资源属性数据。这些资源属性数据包括定量数据26(例如,数字范围)和定性数据28(例如,组件列表或集合)。

为了改进在任何给定D服务器处的资源属性数据的存储,使用聚合函数创建与资源关联并且传送到此D服务器的资源属性数据的汇总或聚合。通常,聚合函数生成具有比原始数据更粗粒度(例如,更低维度)的汇总数据。通过减少属性数或通过减少与给定属性关联的数据或信息量来获得更低维度。在一个实施例中,聚合包括减少与给定属性关联的数据量。因此,对于给定属性,使用具有与此属性关联的数据的所有资源来应用聚合函数,并且聚合涉及针对给定属性的聚合。例如,对于使用可接受的数值范围描述并且针对此范围具有上下限形式的属性,使用与每个资源(与此属性关联)关联并传送到给定D服务器的上下限来应用聚合函数。每个资源对于此属性都具有上下限。对于一组给定资源,所有资源的所有可接受数值范围将落入由与所有资源关联的最小下限以及与所有资源关联的最大上限定义的范围。因此,聚合的属性包含最小总体下限和最大总体上限。将不在D服务器处维护每个资源的单独属性。将仅维护包含总体上下限的聚合属性。将此聚合属性向上通过D服务器层次传送并最终到达根D服务器。层次中接收该聚合属性的D服务器将获得其下资源的就该属性而言的更精细或更广泛的视图。此D服务器可能不知道与任何资源关联的范围,但是此D服务器将知道与其子节点关联的任何资源对于此属性具有上下限,并且此上下限落入其聚合属性的上下限。当给定D服务器(例如,一个中间D服务器)从其后代接收聚合属性数据时,此D服务器进一步沿每个维度聚合数据。再次地,对于定量或数字属性,D服务器采用所有下限的较小者以及所有上限的最大者,从而获得新的上下限。将此进一步聚合的属性传送到D服务器的父辈。将针对每个D服务器重复此过程,直至到达层次中的根服务器。

对于分类属性28,使用集合或列表来表示该属性中包括的成员或类别。例如,属性可以是给定资源可以支持的通信协议类型的标识,并且属性由包含所支持通信协议的标识的集合来表示。聚合包括获得与资源关联并且从O服务器或子D服务器接收的所有属性集的组合或联合。代表所有集合的联合的属性集被向上通过层次传送,在每个级别处被进一步聚合或组合。如图2中所示,从底部的叶节点D服务器20向上直到顶部的根D服务器14,在每个服务器处重复聚合。根D服务器维护包含所有可用资源的所有属性类别的标识的超集。根D服务器接收和聚合所有发现并可供分配给一个或多个资源需求(例如,在给定计算系统中运行的应用)的资源的属性数据。虽然在实例中使用上下限和集合联合聚合函数,但是也可以使用其他形式的聚合函数,只要聚合函数减小数据大小并有助于将搜索导向可用资源。

在一个实施例中,聚合函数适于与位置属性(例如,街道地址、城市、县、州)一起使用。例如,在叶节点级别D服务器的级别,位置属性包含足够的信息量以描述或限定给定资源(例如,摄影机)位于其中的长方形城市街区。如图2中所示,每个叶节点D服务器处的位置集合在位置集合{L}中给出,此集合可以提供与准确街道地址或准确地图网格一样多的详细信息。在位置属性被聚合并传送到中间D服务器16时,将以减少的确切性(例如,城市名{C}和州名{S})给出位置信息中提供的详细信息量。城市名集合包含从其后代传送到此中间D服务器的所有位置属性集合中包含的所有城市。在根D服务器级别处,位置属性将仅指定所有资源位于给定的州内。

通常,聚合过程用于向上通过层次传送属性数据,如箭头A的方向所示。复制用于向下通过层次将聚合数据传送到叶节点D服务器或中间D服务器,如箭头B所示。复制用于通过整个层次结构传送更多的信息以便更有效地对查询做出响应。在一个实施例中,给定D服务器的同辈以及此D服务器的父辈的同辈的汇总数据被定期在层次中自上而下从此D服务器发送到接收者D服务器并且由接收D服务器缓存。例如,如图2的扩展列表30中所示,给定叶节点D服务器D1包含其自己的聚合资源属性数据,以及叶节点D服务器D2(其同辈)、中间D服务器C1(其父辈)、中间D服务器C2(其父辈的同辈)、中间D服务器B1(其祖父辈)、中间D服务器B2和B3(其祖父辈的同辈)和根D服务器A的复制后的聚合资源数据。因此,在D服务器层次内的单个叶节点处维护与所有提交到此层次的资源分配数据有关的足够信息,以便可以在此叶节点处接收和处理资源分配查询,而不必将此查询传送到根D服务器以进行处理。即,叶节点具有所有可用或已标识资源的足够详细的图。

因此,每个服务器向上通过层次转发其汇总和聚合的数据,并且将层次中位于上游的服务器的聚合数据向下通过层次传播到叶节点。例如,D服务器节点B1从根D服务器A接收D服务器B2和B3的聚合属性数据,并且将此聚合属性数据转发到D服务器C1和C2两者。D服务器C1和C2在接收到聚合属性数据时,继续在层次中将其向下传播到叶级别服务器。

使用复制在层次内的各种D服务器之间传送资源信息,每个D服务器都包含至少部分并且可能全部的全局资源集合的汇总或聚合副本,这加速了资源发现并且缩短了查询时间。通常,给定D服务器具有的有关任何特定资源的详细信息量与距离(例如,此D服务器和该资源之间的中间节点D服务器和O服务器的数量)成比例。D服务器和资源之间的距离越短,在此D服务器中维护的有关资源的确切性或详细信息的程度就越高。随着距离的增长,D服务器将仍维护有关该资源的信息,但是粒度将粗得多。例如,D服务器节点D1知道存储在城市街区确切性级别的D服务器节点D2处的相片的位置;但是,D服务器节点D1仅知道州确切性级别的D服务器节点B2和B3的相片的位置。随距离而减小确切性级别并增大粒度确保了总体存储和消息开销不会变得过大。在一个实施例中,对于包含n个服务器的层次中的k度节点,每个服务器处的存储复杂性大约是lognk。

复制还允许将查询发送到层次内的任何D服务器而不仅仅是根D服务器。参考图3,显示了示出使用给定D服务器层次来处理资源查询的示例性实施例。客户机34将查询36提交到层次中的一个D服务器a1。此D服务器a1搜索存储在此D服务器处的汇总或聚合数据,包括它自己的汇总数据以及已被传送到它的任何复制数据。根据此搜索,D服务器a1确定其同辈D服务器c1和其父辈D服务器b2包含与查询所需的资源有关的信息。D服务器a1将查询38、40转发到其同辈和父辈D服务器c1和b2。这些D服务器c1和b2然后搜索其D服务器后代的数据,将查询转发到这些拥有相关资源信息46、48的后代D服务器。将重复在后续后代中搜索资源属性数据的过程,以便将查询路由到一个或多个O服务器42、44、50。O服务器在树层次中是叶节点D服务器的子节点。每个O服务器响应于查询,搜索其自己的数据库以查找详细资源记录并将结果返回到客户机52、54、56。如所示出的,初始查询34未被提交或转发到根D服务器14,而是被提交到中间节点D服务器。从此,查询被处理并转发到O服务器,即包含响应查询的资源的域或计算机系统。

除了减少响应时间之外,复制还提高了层次系统的健壮性或弹性,例如当一个或多个D服务器(包括根D服务器)出现故障时。如果根D服务器14出现故障或崩溃,提交到层次的查询仍可以由剩下的可用D服务器处理和应答。在一个实施例中,层次内的每个D服务器沿每个通信链路维护与其子服务器和父服务器的定期“心跳”消息。这些心跳消息测试通信链路和服务器的可用性。如果给定心跳消息指示例如与父D服务器关联的服务器或通信链路不可访问,则D服务器选择一个父辈D服务器作为其新的父辈。可以随机或者根据一个或多个预定选择准则做出此选择。如果所述父D服务器是层次系统的根D服务器,则选择后代之一作为新的根。用于选择新的根D服务器的适合方法包括但不限于选择具有最小IP地址的子D服务器、考虑每个子D服务器上的当前负载或它们的组合。通常,不需要将每个查询提交或转发到单个根D服务器将缓解关联的瓶颈并在整个层次中分配计算负载,缩短了查询响应时间。

由于复制的汇总用于发现哪些其他服务器具有所需的资源数据,因此重要的是按时更新复制的汇总。复制的汇总优选地准确表示可用资源(包括当前不可用的资源或最近添加的资源)的当前状态。否则,过时的汇总会将查询导向错误的服务器。在一个实施例中,汇总数据是软状态(soft-state)。例如,每个D服务器都针对汇总数据的每个维度维护生存时间(TTL)值。通常,在从后代或父辈接收到新数据时将定期刷新数据。只要依照规定的TTL值接收刷新数据,便将汇总数据维护为当前的和可靠的。但是,当资源被移除或子D服务器离线时,将不会在由TTL值设置的约束内接收到刷新数据。因此,当这些数据依照TTL值而到期时,将从给定D服务器中删除与其关联的汇总数据。因此,过时的数据、层次拓扑的更改以及可用资源的更改都不会干扰或破坏响应查询的资源发现。

通常,复制过程会产生开销,因为将消耗存储器、处理器和通信资源。因此,根据本发明的示例性实施例还包括一种在复制数据中保留所需更新级别的同时,最小化此开销对总体系统性能和资源分配的影响的方法和系统。在一个实施例中,使用针对每个链路设置最优更新周期的分布式算法。

除了层次拓扑和可用资源集合的丢失之外,还将考虑对层次拓扑和可用资源集合的添加和更正。例如,给定D服务器在丢失其先前的父D服务器并且与其新的父D服务器后续重新连接之后,将重新加入重新格式化的层次拓扑。与新的父D服务器连接时,子D服务器将其聚合或汇总数据转发到新的父辈。

在一个实施例中,数据复制执行到最后的叶D服务器节点;但是,O服务器并未涉及任何数据的复制。O服务器仅以D服务器可以理解的适当形式(例如,汇总或聚合形式)导出其数据。使用各种方法(包括定期或自动方法)将O服务器数据转发到D服务器。数据转发可以由O服务器启动或响应于来自D服务器的查询。在一个实施例中,使用集成到D服务器或O服务器中或独立于这两个服务器运行的例程以及不在系统管理员的直接控制下在后台自动运行的例程(例如,包装器守护程序)将数据更新从O服务器转发到D服务器。在一个实施例中,所述例程定期查询给定O服务器、提取所需的汇总数据并将提取的数据转发到父D服务器。除了仅提供检索和转发之外,所述例程还可以将由O服务器搜索返回的结果重新格式化为客户机所理解的常用格式。

D服务器层次不限于使用任何特定的属性格式来监视和管理各种不同组织或域中所包含的资源的分配。此外,对于施加于分布式计算系统的资源标识不存在通用或标准化的属性格式。每个计算系统确定并使用其自己的属性格式。因此,用于每种资源类型的模式(即,属性列表)不需要对于不同的组织都完全相同。叶级别处的D服务器可以将与从各种O服务器接收的给定资源类型有关的属性映射到一个或多个在层次中的D服务器之间使用的公共属性,即使各种接收的属性并不相同。在一个实施例中,一个或多个D服务器(例如,叶节点D服务器)向O服务器传送要用于层次中的资源属性数据的预定公共属性格式。所传送的公共属性包含足够的信息量以允许每个O服务器将其资源的资源数据属性映射到所述公共属性。此映射连同资源属性数据一起被传送到D服务器。因此,每个自主组织在选择资源发现系统时具有更大的自由,并且层次系统可以结合更多种类的旧式自主系统。不会对单个的计算系统施加外部属性格式或层次。

在根据本发明的用于分布式系统中的联合资源发现的方法的一个示例性实施例中,与布置在多个分布式计算系统中的多个资源关联的资源属性数据被从这些分布式计算系统传送到根据预定层次布置的多个专用服务器中的一个或多个服务器。通常,资源属性数据包含与分布式计算系统中包含的资源有关的足够数据量,以便于标识和分配在多个分布式计算系统内布置的关联资源。标识和分配资源以响应来自客户端(例如,在计算系统中或层次内的一个服务器上运行的应用)的资源需求查询。包括计算资源的任何布置或联网布置的适当计算系统包括但不限于信息技术(IT)计算系统。

在一个实施例中,为了将资源属性数据传送到D服务器,将从每个使用D服务器的计算系统主动获取资源数据。备选地,布置在多个计算系统内的O服务器获取所述O服务器所在的计算系统内包含的资源的资源属性数据。在一个实施例中,每个计算系统包含两个或更多个用于获取资源属性数据的O服务器。优选地,每个计算系统包含一个用于资源属性数据获取和传送的O服务器。资源属性数据可以被传送到层次内的任何D服务器。优选地,对于叶层次,资源属性数据被传送到层次内包含的一个叶节点D服务器。在一个实施例中,针对每个O服务器标识一个适当的叶节点D服务器,并且O服务器将资源属性数据传送到关联的叶节点D服务器。

每个O服务器或资源发现服务器针对其计算系统内包含的资源获取此计算系统的本机属性格式的资源属性数据。对于多个计算系统,可以存在多种本机属性格式,并且每个格式可以是唯一的。这些本机格式改变了解释和描述资源的方式,包括但不限于分配给特定资源的名称以及用于计算系统内给定函数的资源类型。每个计算系统的每种本机属性格式由分布式计算系统之一确定并与其关联。不会针对各种计算系统施加一般或通用属性格式。相反,在D服务器级别将所传送的资源属性数据从多个本机属性格式映射到公共属性格式。由所述多个专用服务器中的至少一个服务器提供此公共属性格式。可以在D服务器级别或O服务器级别进行公共格式与本机格式之间的映射。在一个实施例中,将公共属性格式传送到每个O服务器,并且在将资源属性数据传送到D服务器时,O服务器将传送的资源属性数据从多种本机格式映射到由D服务器提供的公共属性格式。因此,将映射信息与资源属性数据一起传送到D服务器。

将分布式计算系统内的所有当前可用资源的资源属性数据传送到层次内的D服务器之后,在专用服务器层次内的任何给定专用服务器处都维护了足够的资源属性数据量。因此,资源查询可以被提交到任何D服务器并由其处理,并且这些D服务器可以将这些查询通过专用服务器层次路由到相应的分布式计算系统,或路由到计算系统内包含适当查询资源的相应O服务器。使用聚合和复制来完成每个D服务器处的所需资源属性数据量的维护。在一个实施例中,在从多个计算系统向其传送资源属性数据的每个D服务器处聚合资源属性数据。将这些聚合资源属性数据通过一个或多个中间D服务器传送到层次的根D服务器。当向上通过层次传送数据时,除了在叶节点D服务器处聚合资源属性数据之外,还在每个中间专用服务器处聚合资源属性数据。

在一个实施例中,在层次内的一个或多个其他专用服务器(例如,层次内的同辈和父辈)处复制在层次内的每个专用服务器处维护的资源属性数据。由于任何给定资源的状态和可用性(即,与此资源关联的资源属性数据)随时间变化,因此将定期更新在D服务器中维护的资源属性数据。例如,为每个传送到专用服务器的资源属性数据确定生存时间值。这是其中必须接收更新或此数据到期的规定条件或时间段。当未依照确定的生存时间值接收到更新时,将从专用服务器删除资源属性数据。

根据本发明的用于确保一致性的示例性实施例包括一种更新存储在多个通过网络层次链接的节点中的数据(例如,汇总或数据聚合)的方法。资源的动态属性(例如,数据速率和可用带宽)以及生成的包含这些动态资源的汇总不断地随时间变化。由于聚合汇总在整个节点或服务器层次中复制并且用于指导搜索,因此优选地将足够快速地更新汇总以反映资源的当前状态。用于更新存储在多个节点上的数据的方法确保了复制汇总和原始汇总之间的给定一致性级别。

汇总在整个节点层次中的传播定期沿着层次中的每个链路发生。这些链路是层次中两个节点之间的连接或路径,并且可以被视为代表层次中的分支或干线。每次通过层次传播汇总时,都会产生诸如通信开销之类的开销。传播越频繁(即,更新越频繁),消耗的开销就越多,而不太频繁的更新会负面地影响当前汇总与这些汇总的传播副本之间的一致性。因此,在一致性级别和复制开销之间存在权衡。沿着链路复制汇总越频繁,一致性就越好。但是,这是以复制开销增加为代价实现的。根据本发明的系统和方法优化了一致性和开销消耗之间的这种平衡。

使用新鲜度的概念来量化一致性。如在此所使用的,复制汇总的新鲜度是自生成原始汇总以来的经过时间或延迟时间。此类度量代表复制副本的新鲜或过时程度,并且还可以反映自从原始汇总获取复制汇总以来,可能已发生的原始汇总值的任何变化的重要或显著程度。对于存储在任何给定节点处的任何数据或复制汇总,这还可以被表示为新鲜度阈值或者在刷新数据之前的最大持续时间或使用周期。例如,对于原始节点或服务器A和复制服务器B,可以使用具有自相关函数RXX(τ)的平稳随机过程X(t)来表示在A处维护的数据汇总。在B处的此数据汇总(表示为X’(t))的副本是X(t-δ),其中δ是经过时间。这两个随机过程之间的平均值差可以表示为:

因此,复制汇总和原始汇总之间的值差是经过时间δ的函数。可以将此经过时间变换为值差并且反之亦然,通过指定经由节点层次传送或复制的给定复制汇总或任何其他类型数据的新鲜度、延迟时间或最大持续时间来实现有关此值差的任何限制或要求。

参考图4,其中示出了布置为联网层次100的多个节点。虽然被示为树层次,但是如在此所述的,根据本发明的方法可以与其他类型的层次一起使用。每个层次包括至少一个根节点110、一个或多个中间节点120以及一个或多个叶节点130。在此网络层次内,各种服务器或节点创建汇总并将这些汇总通过例如上述的层次传播到给定节点的父辈、同辈及其同辈的后代。例如,如所示出的,将节点D 140的汇总传播并复制到其父节点E 150、其同辈节点C 160及其同辈的后代节点(叶节点)A和B 170。对于任何给定联网节点层次中的每个节点,都存在复制树,其中此节点是根,在下一级别具有其父辈而更下面具有其同辈及它们的后代(图5)。可以为每个节点确定一个复制树,并且在同一联网层次内存在多个此类复制树。

此源自给定节点的树包含具有n个节点的集合V,此集合V包括其父辈、其同辈及其同辈的后代。对于每个节点vi∈V,T(vi)表示vi的父节点将更新数据或其当前原始汇总发送到节点vi的周期。对于具有基本相同大小的更新消息,此链路(即,父节点和vi之间的链路)上的复制开销由1/T(vi)给出。节点vi的最大经过时间(由δ(vi)表示)是节点vi的所有父辈的更新周期的总和。当每个父辈在v的更新周期T(v)之后更新其下一跃点后代v时,便会出现此情况。例如(图4),δ(A)=T(C)+T(E)+T(A)。

根据本发明的一个实施例,针对存储在网络层次内的任何给定节点处的任何数据(例如,复制汇总),定义了目标新鲜度界限或最大持续时间C。给定此最大持续时间,为存储在每个节点处的数据确定跨网络层次中各节点之间的多个链路中的每个链路的复制周期或更新周期T(vi),以便对于存储在任何给定节点处的所有数据都满足新鲜度阈值并且最小化与更新数据(即,复制)关联的总体开销。然后根据所确定的更新周期来更新数据。这可以针对最优一致性确保问题以数学方式表示如下:为每个节点vi选择T(vi),使得

通常,此优化问题具有带有线性约束的非线性凸目标函数,并且可能没有闭合形式解。但是,通过观察若干约束,可以得到闭合形式解结构。第一约束是叶节点约束,其中对于任何叶节点w,延迟时间界限都是紧的,即δ(w)=C。这可以通过矛盾法证明。例如,假设在最优解x中,在叶节点w处的延迟时间界限不是紧的,则我们使δ(w)<C。让ε=C-δ(w)>0。T(w)的值可以增加到T(w)+ε。所有约束仍满足,但是目标函数更小。因此,x不是最优的。

第二约束是公共父辈约束,并且声明对于两个共享公共父辈u的叶节点w1和w2,沿着从u到w1的路径与沿着从u到w2的路径具有相同的更新周期总和。这提供如下。叶节点约束得到δ(w1)=δ(w2)=C。沿着从u到w1的路径,更新周期的总和是δ(w1)-δ(u)=C-δ(u),并且对于从u到w2的路径也是如此。

使用叶节点约束,通过将不等式约束更改为等式约束:叶节点w,δ(w)=C而改写原始优化问题。从此约束中排除非叶节点,因为对于任何非叶节点u,δ(u)严格小于其叶后代的δ(u)。应用标准的拉格朗日方法(Lagrangian method)以求解优化问题,得到以下解结构,其是父-子约束。父-子约束声明当对于任何非叶节点u及其后代集合Child(u),1/T(u)2=ΣvChild(u)1/T(v)2(2)时,将达到最小的总体复制或更新开销。

基于这三种约束,使用简单和轻量的分布式算法以实现最优解。在一个实施例中,所述算法的实现在以下伪代码中示出。

Algorithm:Optimal consistency assurance algorithm

Require:ParentP,children listC[1,...,k]

1://Initialization

2:t=1;s=1;α[1]=...=α[k]=1

3://Bottom-up phase

4:if I am a leaf node then

5:        Send t and s to P

6:else

7:        Wait until I rcccive rcports from C[1],...,C[k]

8:        rt[1,...,k]=values of t in the receivcd reports

9:        rs[1,...,k]=values of s in the received reports

10:       //Applying common ancestor constraint

11:       for i=2 to k do

12:               α[i]=rs[1]/rs[i]

13:               rs[i]=rs[1]

14:               rt[i]=rt[i]×rs[1]/rs[i]

15:               //Applying parent-child constraint

17:              s=rs[1]+t

18:             Sendt ands to P

19:        end for

20:  end if

21:  //Top-down phase

22:  ifI am the root then

23:       //Applying the leaf node constraint

24:       scale=C/rs[1]

25:  else

26:       Wait until I receives scale from P

27:  end if

28:  t=t×scale

29:  for i=1 tok do

30:      α[i]=α[i]×scale

31:     Send α[i]as scale to C[i]

32:  endfor

在上述算法中,任何给定节点都存储或维护数种类型的状态数据。状态数据包括t,其是与该给定节点关联的当前更新周期并且表示该给定节点的父节点应将数据更新汇总发送到该给定节点的周期,以及包括s,其是沿着从该给定节点的父节点到该给定节点的任何子叶节点(即,该给定节点的任何子叶后代)的路径的复制周期或数据更新周期的总和(s对于所有叶后代都相同)。状态数据还包括比例因子α,并且针对该给定节点的每个子节点都维护一个比例因子。在除叶节点之外的所有节点处维护比例因子,因为叶节点没有任何子节点。在一个实施例中,每个节点都将其状态数据初始化为值1。

用于更新存储数据的方法的示例性实施例以两个不重叠的阶段运行。第一阶段是将存储在每个节点处的当前状态数据通过节点层次自下而上报告到根节点。例如,每个节点例如从叶节点开始将其当前t和s转发或报告到其父节点。在给定节点(即,非叶节点)从至少一个并且优选地所有其子节点接收t值之后,此节点判定在状态数据中传送的所有s值是否都相同,如公共父辈约束所要求的那样。如果所有s值都相同,则该给定节点使用父-子约束并结合在状态数据中传送的数据更新周期来计算接收节点的t。例如(图4),节点C 160将其tC165计算为1/1/tA2+1/tB2=1/20.7.

当判定s值不同并且不相等时,所述给定节点将s值调整为相等。在一个实施例中,所述给定节点选择一个任意子节点,其s值为s0。所述给定节点然后使用与此任意子节点关联的数据更新周期总和(即,s0)来计算所述给定节点的每个其他子节点的比例因子。此比例因子表示为αi=s0/sl。所述给定节点然后使用这些所计算的比例因子来计算所述给定节点的所有后代的更新状态数据,即ti=tiαi,si=Siαi=s0

将所有s值调整为相等之后,所述给定节点使用父-子约束将其自己的t以及其自己的s计算为t+s0。所述给定节点然后将其状态数据{t,s}重新发送或传送到其父节点。例如,节点E从节点C接收{0.7,1.7},并且从节点D接收{1,1}。s值不相等,因此节点E将节点D的状态数据调整为{1.7,1.7},然后将其自己的tE计算为1/1/0.72+1/1.720.65.节点E将{0.65,2.35}发送到其父节点F。

最终,根节点F从所有其后代接收到状态数据报告,并且根节点调整状态数据中的值,使得所有叶节点恰好具有延迟时间界限的已定义最大持续时间C。在一个实施例中,根节点在所有子节点之间将s调整为相等(如果必要)之后,将s的值与C相比较并获取根比例因子C/s。根节点然后将每个子节点的t更新为tα。例如,给定最大数据持续时间C=10,根节点F计算α=10/2.35≈4.26。因此,根节点将tE更新为0.65×4.26=2.77,这是根节点应以之更新其子节点E的周期。

将状态数据从底部(即,叶节点)向上报告到顶部(即,根节点)并且在根节点处应用任何比例因子之后,将执行第二阶段。第二阶段是自上而下阶段,其中从根节点开始,将相应的比例因子发送到每个后代。从其父辈接收到比例因子之后,节点将比例因子与其子节点的调整后的t值相乘以获取最终的数据更新周期。例如,节点E从父节点F接收4.26并更新tC=4.26×0.7=2.98和tD=4.26×1.7=7.24。它们是节点E应以之将数据更新发送到其子节点C和D的数据更新周期。如果所述节点是非叶节点,此节点还通过将比例因子α与从其父节点接收的比例因子相乘来为其子节点更新α。所述节点然后将更新后的比例因子发送到相应的子节点。例如,节点E针对C和D将4.26与旧α1和1.7相乘并获得4.26和7.24。节点然后将这些值分别发送到C和D。最终,所有非叶节点都接收到比例因子并获得对其子节点的更新周期。例如,节点C知道其应以4.26×1=4.26更新节点A和B。

根据本发明的示例性实施例的分布式算法使用非常少的开销量。例如,它在每个节点或服务器处仅产生O(k)状态,其中k是给定节点的子节点数并且沿着每个链路产生O(1)消息开销,其中在每个链路上发送一个自下而上以及一个自上而下的消息。

实例

使用两个度量,查询响应时间和消息开销,来进行根据本发明的系统和方法的示例性性能评估。响应时间是从客户机发送查询到客户机接收所有匹配记录的时间。消息开销是所有控制消息的总大小。

使用Java实现资源发现服务器和解析器。如图6中所示,服务器200维护4种类型的汇总,即其后代的汇总202、复制汇总204、直接连接资源的汇总206以及其分支汇总208。使用两种类型的消息REQUEST 210和REPLY 212发现资源。客户机联系或调用解析器214以发现资源。从解析器接收REQUEST之后,服务器检查连接资源的汇总,并且如果发现任何匹配,则进一步查询连接资源216以获得详细记录。服务器还检查其后代的汇总和复制汇总。将匹配作为引用包括在返回客户机的REPLY消息中。

为了避免循环,解析器214针对每个客户机请求维护两个队列,即针对它已查询的服务器的“已访问”218以及针对它尚待查询的引用服务器的“要访问”220。解析器检查引用服务器是否已在队列中。仅当引用服务器未在任一队列中时才将引用服务器添加到“要访问”队列,并且在解析器查询该服务器之后将其移动到“已访问”队列。由于解析器可以接收多个引用,因此解析器将生成多个线程并且针对“要访问”队列中的每个服务器启动一个线程。

资源发现在具有5台SuSe 9 SP2 Linux机器的试验台中运行,每台机器具有Xeon 3.4GHz CPU和6GB内存。使用DB2数据库模拟连接资源。每个资源记录具有120个属性,包括整数、双精度型、时间戳、字符串、分类类型。针对数字、时间戳和字符串(使用字典顺序)类型实现上下限和直方图汇总,并且针对分类类型实现集合联合。使用随机生成的数据和实际数据(例如,城市和州的位置以及人名)填充每个数据库。每个数据库具有200K个记录,并且服务器可以使用Java数据库连接性(JDBC)接口来查询数据库以获得详细资源记录或生成汇总。对于基准测试,将资源发现与其中所有记录都存储在一个中央数据库中的集中化方法相比较。

解析器负载是一组多维查询。查询根据其选择性(即,满足查询的资源记录的百分比)被分组。存在6个选择性组,即0.01%、0.03%、0.1%、0.3%、1%和3%,每个组具有20个查询。

总响应时间是解析器和资源发现服务器之间所有REQUEST-REPLY交换循环的总和。由于多线程解析器,客户机可以并行地搜索层次中的多个分支。因此,总响应时间由最长的搜索路径决定。在最坏的情况下,最长路径从根服务器或任何入口点服务器开始并在下面最深的叶服务器处结束(假设这些服务器具有匹配记录)。此类路径以及因此REQUEST-REPLY交换循环的长度是O(logN),其中N是层次中的服务器总数。实际上,这些服务器可能没有任何匹配记录,并且搜索可能在到达此类深度之前早已停止。因此平均响应时间将更小。

将资源发现响应时间(多线程和单线程解析器两者)与集中储存库相比较。设置对于资源发现而言始终是最坏情况,即查询所有服务器。已针对两种情况进行试验,即没有索引和具有索引的资源所有者。取决于每个资源所有者,某些所有者可能使用简单目录服务实施方式而无需索引支持。

参考图7,多线程版本222使响应时间缩短50-70%(与单线程224相比)以及20-50%(与集中储存库226相比)。根据本发明的资源发现优于集中储存库,因为没有正确的索引,大多数时间将花费在各个目录服务扫描资源记录和发送匹配记录上。多线程解析器允许多个目录服务同时扫描和发送其记录,这将比一个目录服务处理所有记录更早地完成。

如图8所示,其中示出了解析器228和服务器230之间的REQUEST-REPLY交换期间的详细时间分解。打开套接字232、加载JDBC驱动器234和检查汇总236这三个部分与其他部分相比小得多(<1毫秒)。因此,这些部分未包括在图9的图中,图9示出了作为查询选择性的函数的每个步骤的平均时间。它确认主要部分是查询执行238和REPLY发送时间240。

当资源所有者使用具有索引支持的目录服务时,响应时间比较在图10中示出。此时多线程版本242仍优于单线程244 50-70%,但是当选择性较低时,集中储存库246更快。但是,随着选择性增加,将发送更多记录并且资源发现的性能再次变得相当。当选择性为0.3%时,资源发现的响应时间加倍,在1%时大致相同,并且当选择性变为3%时,再次优于中央储存库25%。从上述比较可以得出结论,根据本发明的资源发现的性能与中央储存库相当。

对于消息开销,资源发现使用控制消息,包括自下而上和自上而下的一致性控制消息。这些控制消息仅包含少数状态数据变量并且具有固定大小。REQUEST消息包含查询,而查询包含限定符并且受限于资源记录中的属性总数,而且还具有固定大小。REPLY消息的大小与返回的引用或记录的数量成比例。

其余的消息是复制消息。将根据本发明的资源发现的复制开销与中央储存库的复制开销相比较。假设存在N个记录,每个记录具有n个数字属性和c个分类属性。数字属性针对汇总使用下/上限或直方图,它们都具有固定大小。假设此类汇总的大小为s1,并且数值的大小为s2,对于每个分类属性,假设使用集合联合,每个值的大小为s3,并且N个记录中存在k个不同的值。因此,所有N个记录的汇总为S汇总=ns1+cks3,并且原始数据大小为S原始=N(ns2+cs3)。

给定记录中的属性,当n、c是常数时,S汇总是O(1)。S原始是O(N),它随复制记录的总数成比例增长。因此,无论资源记录的数量为何,资源发现都可以保持复制开销不变,而中央储存库具有线性开销。

对于一致性控制,根据本发明的资源发现能够将一致性保持在给定界限内。图11示出了包括9个资源发现服务器248和12个单独资源所有者250的演示设置。允许数据速率(所有者D4 252的资源的动态属性)的汇总上限每秒增加1。目标新鲜度界限设置为250秒,并且跟踪6个其他服务器处的复制汇总的上限。图12示出了原始上限及其复制副本作为时间函数的变化。如所示出的,所有6个复制副本的延迟时间始终在预定界限250254之内。

根据本发明的资源发现系统将服务器布置为树层次,且可能具有多个根服务器。但是,可以将这些资源发现系统扩展为更通用的模型,其中父辈选择更灵活。例如,每个服务器或节点可以同时选择多个父辈。因此,服务器260形成可以相互共享分支264的树262(图13)。此层次布置支持更灵活的协作情况。一个资源所有者265可能参与若干个组,每个组需要协作以实现组用途。每个组可以形成其自己的服务器树结构。因此,此所有者的连接点服务器可以加入不同的树,并且仅传播目标为相应树内的每个组的资源汇总。

资源所有者之间的协作可以采取各种形式,并且根据本发明的资源发现可以支持许多不同的形式。资源所有者可以为所有其他方提供同等的服务。在此情况下,它仅导出其资源并且允许每个人搜索和使用它们。所有者还可能区分各用户并且仅为指定方提供特定资源。可以将资源发现服务器扩展为根据用户标识来搜索汇总。资源所有者还可以将其资源的不同视图导出到多个连接点,并且这些连接点仅接受来自各自用户的查询。

根据本发明的覆盖构造允许服务器复制来自其同辈、其父辈和父辈的同辈的汇总。资源所有者可能希望限制其汇总传播的范围,可能指示连接点不要进一步传播其汇总,或者可能要求连接点在传播的汇总中使用最粗的形式(例如,下/上限)。

根据本发明的示例性实施例的方法和系统可以采取完全硬件实施例、完全软件实施例或包含硬件和软件元素两者的实施例的形式。在一个优选实施例中,本发明以软件实现,所述软件包括但不限于固件、驻留软件和微代码。此外,示例性方法和系统可以采取可从计算机可用或计算机可读介质访问的计算机程序产品的形式,所述计算机可用或计算机可读介质提供了可以被计算机、逻辑处理单元或任何指令执行系统使用或与计算机、逻辑处理单元或任何指令执行系统结合的程序代码。出于此描述的目的,计算机可用或计算机可读介质可以是任何能够包含、存储、传送、传播或传输由指令执行系统、装置或设备使用或与所述指令执行系统、装置或设备结合的程序的装置。适合的计算机可用或计算机可读介质包括但不限于电、磁、光、电磁、红外线或半导体系统(或装置或设备)或传播介质。计算机可读介质的实例包括半导体或固态存储器、磁带、可移动计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前实例包括光盘-只读存储器(CD-ROM)、光盘-读/写(CD-R/W)和DVD。

适合于存储和/或执行程序代码的数据处理系统包括但不限于至少一个通过系统总线直接或间接连接到存储器元件的处理器。所述存储器元件包括在程序代码的实际执行期间采用的本地存储器、大容量存储装置以及提供至少某些程序代码的临时存储以减少必须在执行期间从大容量存储装置检索代码的次数的高速缓冲存储器。输入/输出或I/O设备(包括但不限于键盘、显示器和指点设备)可以直接或通过中间I/O控制器与系统相连。根据本发明的方法和系统的示例性实施例还包括网络适配器,所述网络适配器连接到系统以使所述数据处理系统能够通过中间专用或公共网络变得与其他数据处理系统或远程打印机或存储设备相连。适合的当前可用的网络适配器类型包括但不限于电话调制解调器、电缆调制解调器、DSL调制解调器、以太网卡以及它们的组合。

在一个实施例中,本发明涉及包含机器可执行或计算机可执行代码的机器可读或计算机可读介质,当由机器或计算机读取时,所述机器可执行或计算机可执行代码将导致所述机器或计算机执行根据本发明的示例性实施例的用于分布式信息技术系统中的联合资源发现的方法,或用于更新存储在组织为层次并通过网络链接的多个节点中的已复制数据的方法,并且本发明还涉及计算机可执行代码本身。所述机器可读或计算机可读代码可以是能够由所述机器或计算机读取和执行的任何类型的代码或语言,并且可以以本领域中公知和可用的任何适合的语言或语法(包括机器语言、汇编语言、高级语言、面向对象语言和脚本编制语言)表示。所述计算机可执行代码可以存储在任何适合的存储介质或数据库(包括布置在根据本发明的系统内、与根据本发明的系统通信以及可由根据本发明的系统使用的计算机网络访问的数据库)上,并且可以在本领域中公知和可用的任何适合的硬件平台(包括用于控制本发明的呈现的控制系统)上执行。

虽然在此披露的本发明的示意性实施例实现本发明的目标是显而易见的,但应理解的是,本领域的技术人员可以设计许多修改和其他实施例。此外,任何实施例中的一个或多个功能和/或元素可以单独使用或与一个或多个其他实施例结合,并且根据本发明的方法中的步骤或元素可以以任何适当的顺序执行。因此,将理解的是,所附权利要求旨在覆盖所有此类在本发明的精神和范围之内的修改和实施例。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号