用于分布式系统中联合资源发现服务的方法和系统的制作方法

文档序号:6454937阅读:161来源:国知局
专利名称:用于分布式系统中联合资源发现服务的方法和系统的制作方法
技术领域
本发明涉及信息技术系统的经营和管理领域,并尤其涉及在受到 不同管理权限管理并可能已经有其自身、个体、传统的资源发现服务 的多个信息技术系统中的资源发现和分配。
背景技术
现代应用程序和服务将在属于不同机构并受不同管理权限管理 的多个计算系统上运行。为了执行跨越多个计算系统的这种应用程序 或服务,需要为这些应用程序发现和分配所有计算系统中的资源。这
些资源包括例如中央处理单元(CPU)资源的计算硬件资源,例如物理
机器中的硬盘容量、存储器容量的存储容量和采集例如空气或气象数 据和视频或音频数据的各种类型数据的数据采集器或数据传感器。可 用的资源可以是静态和动态资源两者。例如,给定机器的存储器容量 或网络适配器速度通常是固定的,但可用的存储器或带宽随时间不断 变化。
为了在多种当代资源需求中分配资源,需要产生和维护来自属于 所有有关机构的各种计算系统的可用资源的知识库。产生和维护这种 知识库包括发现可用于分配的资源。资源发现可以为给定资源要求的 特定需求定位远程资源对象,并且广泛用于针对多种应用程序的许多
分布计算系统中。例如,在网格计算中,发现或识别拥有所需CPU
和存储器资源来运行应用程序的机器或节点,接着将该应用程序配置 在这些被识别的机器上。
已经提出了多种资源发现的方法。这些提出的方法包括在p .
MockaPetris & K. ! DunlaP, Deve/W服"f 狄c Do附fl/" iVa附c 5^s,e附,Proceedings of SIGCOMM,88, Stanford, Califonia,pp.l23-133(1988)中介绍的域名系统(DNS),在M.Wahl, T. Howes & S. Kille,及尸C 225/-Z//g/^e/g/f《D/re"o^j /4cc柳jPrCoo /fV", December (1997), ITU誦T, Recommendation X.500, January (2001)和 D.W.Chadwick, f/M&ra似w力"g 乂5卯-The Directory(1996)中介绍的 轻量级目录访问协议(LDAP/X.500),以及在Sun Microsystems, Java Naming and Directory Interface—JNDI Documentation http:〃iava.sun.com/Droducts/indi/docs.html中介绍的Java命名和目 录接口(JNDI)。所有这些系统都提供目录服务来发现资源、并通常被 用做"本机(native)"资源发现服务而用于在每个机构/t发现资源。不 过,当具有其自己的传统资源发现服务的每个多个机构都希望为了应
用程序而跨越机构界限来共享其资源时,就需要能找到所需资源而不 论这些资源驻留的机构的联合资源发现,其中所述应用程序需要利用 来自这种共享全局池的资源。所有这些方法都不能提供联合搜索。首 先,这些对资源发现的在先尝试大都安排用于静态资源或改变相当慢 的资源,例如用于因特网协议(IP)映射的主机名。对于使用这些系统 的例如程度为数十分钟或更少的频繁改变的动态资源的支持是非常 有限的。更重要的是,这些系统假设可用资源的空间或领域被全局组 织成以委托方式进行管理的预定义的树型层级结构(tree hierarchy)。 即,每个机构都赞同这种层级结构并"拥有,,一部分,通常是树的子分 支或节点,而每个资源属于树型层级结构中的某个节点。
由于管理和信任的原因,关于资源应该怎样组织自治系统可能具 有不同的概念。因此对于多个才几构而言,每个机构对资源应该怎样组 织具有其自己的偏好或传统定义,被共同接受的资源的全局组织和经
营可能不存在。另外,全局机构将复杂性和约束带入资源分配中。例 如,如果新类型的资源或新机构要在未来被加入,则预先定义资源层 级结构是困难的。基本上,已经采用不同资源发现服务的系统需要为 共同任务而合作,但是改变个体、传统的资源发现服务是不可能和有 困难的。
由David Oppenheimer, Jeannie Albrecht, David Patterson和Amin Vahdat在2>/自'6",^/及,"/re 2)/scove/j e w尸/"wdff6 w/幼 5WO及D, First workshop on Real, Large Distributed Systems (WORLDS'04 ), December 2004中介绍过One scalable wide-area resource discovery tool ( SWORD )。该资源发现服务为PlanetLab产 生,如由Larry Peterson, Tom Anderson, David Culler和Timothy Roscoe在爿必/MeiV/zif /b, /",ro^/w"iVig Z)/srw/;,/ve rec/wCo^y iVi似
July 2002中介绍的那样。SWORD所采用的资源发现工具利 用基于分布式散列表(DHT)表的对等网络来支持对动态资源的多维范 围查询。使用对等网络的一个缺点在于系统难于管理。对等网络被安 排成允许各节点的高度自治,这使得很难以在系统中帮助、特别是集 中化的控制和管理。另外,SWORD中的资源发现工具需要每个个体 自治系统将其完整的资源记录输出给对等网络,可能是任意任意的节 点。这需要所有自治系统都高度相互信任,这在实际中成为问题。个 体自治系统可能不希望将它们的原始记录输出给外部世界中的任意 节点。

发明内容
依据本发明的系统和方法使用在广域网中用于发现静态和动态 资源两者的联合结构。每个都具有其自身和可能的专有资源发现服务 的多个自治系统被互连且合并到全局统一 的资源发现系统中。不需要 预先存在的全局组织的和普遍约定的资源空间,且诸如给定机构或域 的每个自治系统可以自治地组织它的资源。这种灵活性使每个系统都 能够在没有任意预定义的全局资源层级结构的约束或复杂化的情形 下工作。
依据根据本发明的用于资源发现的适当结构的一个示例性实施 例,被称为D-服务器的多个专用服务器被安排在例如树型层级结构的 层级结构中,该层级结构用于回答用户关于资源的查询。例如,每个
服务器是该层级结构内的一个点或节点并用于在层级结构中以自下 向上的方式从它的子代集合数据。每个子代还是层级结构内的服务器。布置在包含可发现资源的每个域或机构内的一个或多个服务器与
D-服务器之一通信。每个个体机构的服务器被称为O-服务器。在一 个实施例中,每个O-服务器将层级结构中定位为叶节点的D-服务器 之一选择为它的父代。O-服务器将它的资源记录集合成一个汇总并将 汇总数据周期性转发给它所选择的父代D-服务器。在从一个或多个 O-服务器接收到这种汇总数据之后,每个D-服务器例如使用更粗的 粒度(granularity)进一步集合被汇总的数据,并通过层级结构将另 外集合的数据进一步向上转发给它的父代和祖父。在层级结构的每个 级别处重复用可能增加的粒度来集合并转发,直到层级结构的根服务 器从所有它的后代(desendent),即,所有O-服务器和D-服务器接 收和集合被汇总的数据。从叶节点到根节点的集合给层级结构内每个 父代节点提供在该父代处有根的子树的总体观察,而复制覆盖给每个 节点提供对层级结构的其他部分的伸缩式观察。通过确保层级结构内 的一致性,可以在给定一致性边界内使用最小化开销(overhead)。
在例如层级结构的根节点处接收到查询之后,集合的汇总数据用 于在包含关于所期望资源的位置和其他属性的数据或信息的层级结 构内识别到根服务器的子代服务器。这些子代服务器被识别,并且查 询被转发给子代。每个子代类似地通过层级结构将查询进一步向下转 发,直到查询到达各个O-服务器。O-服务器通过搜索其数据库并将 搜索结果返回给提出查询的用户来响应查询。在根服务器处进行查询 需要每个查询经过整个层级结构, 一个消耗时间和资源的过程。通过 在层级结构内的各服务器之间复制汇总数据,可以缩短查询响应时 间、保护资源和避免瓶颈。因此,不必总是将查询定位到层级结构中 的根D-服务器。例如,每个D-服务器存储其自己的汇总数据和来自 其兄弟及其祖先的兄弟的汇总数据。接收到查询时,给定D-服务器搜 索复制的汇总数据并将查询直接转发给适当的D-服务器而不通过根 D-服务器发送查询。
依据本发明示例性实施例的系统和方法可以回答关于位于许多 自治系统中的静态和动态资源两者的多维度查询。在层级结构的每个
9节点中只需要汇总数据而非完整的资源记录,使得系统管理更加容易 并在每个自治系统必须相信谁方面具有最小要求。
依据在根据本发明的分布式系统中用于联合资源发现的方法的 一个示例性实施例,与布置在多个分布式计算系统内的多个资源相关 的资源属性数据从分布式计算系统被传递到在依据例如树型层级结 构的层级结构中安排的多个专用服务器中的一个或多个。资源属性数 据足以帮助识别和分配布置在多个分布式计算系统中的相关资源。在
一个实施例中,以多个本机属性格式获得资源属性数据,而每个本;^L 属性格式由分布式计算系统之一判定并与其相关。当以这种本机格式 传递资源属性数据时,将被传递的资源属性数据从多个本机属性格式 映射到由多个专用服务器的至少一个提供的公共属性格式。在一个实 施例中,多个资源发现服务器用于获得资源属性数据,而每个资源发 现服务器与多个分布式计算系统之一有关。为了安排将数据格式化成 层级结构中支持的公共格式,公共属性格式被传递给每一个资源发现 服务器,而至少专用服务器之一或资源发现服务器之一用于将被传递 的资源属性数据从多种本机格式映射到由专用服务器提供的公共属 性格式。这种映射连同资源属性数据一起被传递给专用服务器之一。
为了将资源属性数据传递给专用服务器,在专用服务器的层级结 构内的任意给定专用服务器处保持足量的资源属性数据以处理资源 查询并通过专用服务器层级结构将这些查询传送给包含用于查询的 适当的资源的分布式计算系统。在一个实施例中,在将资源属性数据 从多个计算系统传递给的每个专用服务器处集合资源属性数据。通过 一个或多个中间专用服务器将这些集合的数据传递给层级结构的根 专用服务器。除了在最初接收资源属性数据的专用服务器处集合数据 之外,还可以在每一个中间专用服务器处进一步集合资源属性数据。
在一个实施例中,为了在每个专用服务器处保持足量的资源属性 数据,在层级结构内每个专用服务器处保持的资源属性数据和集合数 据被复制在层级结构内一个或多个附加专用服务器处。当专用服务器 层级结构是树型层级结构时,传递该资源属性数据涉及在树型层级结构内将资源属性数据从多个计算系统之一传递给多个叶节点专用服 务器之一。在一个实施例中,保持该资源属性数据包括对保持在专用 服务器中的资源属性数据进行周期性更新。通过为传递给专用服务器
的数据,并从未收到符合被识别的生存时间值的更新的专用服务器删 除资源属性数据。


图1是用于本发明的专用服务器层级结构和分布式计算系统的
实施例的示意图2是用于本发明的专用服务器层级结构的实施例的示意图;和 图3示出依据本发明的查询处理的实施例的示意图。
具体实施例方式
先参考图1 ,示出了依据本发明使用的系统10的示例性实施例。 该系统包括依据预定层级结构安排的多个专用服务器12(D-服务器)。 专用服务器通过该层级结构相互通信并能够交换文件或数据。适当的 服务器是本领域已知和可用的,并且包括能够处理命令、存储数据和 与其他服务器通信的任意类型的处理器或处理单元。在一个实施例 中,每个服务器是在任意适当机器或处理器上的运行的软件程序。因 此,可以由愿意成为主机服务器的任意机器或域来提供服务器或服务 器功能。用于服务器的适当资源包括但不限于资源所有者或其他自愿 实体。这些实体可以被称为服务器提供者。
可以将专用服务器安排于其中的适当层级结构包括但不限于树 形和金字塔形层级结构。优选地,这些服务器被安排在树型层级结构 中并包括多个叶节点D服务器20、多个中间节点D-服务器16和根节点 D-服务器14。全部D-服务器都可以位于单一位置中,例如作为专用服 务器群的一部分。可选地,服务器被分布在不同位置处并跨越一个或 多个网络进行通信。例如,每个D-服务器都可位于单独的域中或属于不同机构。该层级结构可通过D-服务器中的自愿联合形成。每个D-服务器基于它最信任的哪个附加D-服务器、或通信带宽或最小延迟来 判定其他哪个D-服务器可加为其父代。服务器严格地专用于层级结构 或可以是多目的服务器,该多目的服务器除层级结构之外还提供其他 服务或功能。
在一个实施例中,被提供给定D-服务器的实体从例如相同或不同 的实体中选择另一个服务器作为父代。每个服务器通常具有至少一个 父代。服务器可以用这种方式组织成层级结构。确切地说选择哪个服 务器可能涉及两个实体之间的协商并且由每个实体来判定。因此,层 级结构内关于服务器安排的判定由自愿或提供这些服务的不同域或 机构制定,而不是由集中化的实体或第三方来制定。通常,给定服务 器不从其自己的后代中选择父代,由此避免了循环。为了避免将后代 选择为父代,在每个服务器处保持一张后代列表。在一个实施例中, 以导致平衡的层级结构的顺序或安排来选择父代服务器,同时提高效 率。例如,保持用于每个服务器的子-分支的最大深度,而只有那些具 有更大最深深度的服务器才被选为父代。
该系统还包括与指定域或机构有关并被称为0-服务器22的多个 资源发现服务器。每个O-服务器可以与单独的域相关,或两个或多个 O-服务器可以与公共域相关。适当类型的O-服务器与用于D-服务器的 相同。在一个实施例中,所有O-服务器都是单独的并与D-服务器不同。 可选地,至少一个O-服务器和一个D-服务器是公共服务器。通常, O-服务器被安排作为服务器的广泛分布式系统(widely distributed system)。每个O-服务器跨越一个或多个网络与至少一个D-服务器通 信。例如,分布式0-服务器跨越例如因特网的广域网18与D-服务器通 信。另外,其他组的0-服务器还可以通过一个或多个局域网24与D-服务器通信,该局域网例如是与给定域或因特网服务提供商相关的局 域网。正如这里所使用的,多个服务器之间的通信是双向通信,该双 向通信是在于每个服务器都可以将数据发送给任意其他服务器并从 任意其他服务器接收数据。在一个实施例中,每个O-服务器选择一个D-服务器,每个O-服务器将输出数据给该D-服务器。虽然每个O-服务 器都能够与任意一个D-服务器通信,但是优选地,每个O-服务器只被 表示树型层级结构中叶节点的D-服务器之一识别并与其通信。因此, O-服务器在树型层级结构中变成该D-服务器的子节点。
每个O-服务器是单个服务器或在给定域或机构中的分布式服 务。每个O-服务器能够在其机构内发现下列资源更新存储的资源数 据、依据期望级别的粒度汇总资源数据、将资源数据传递给其他服务 器和从其他服务器接收资源数据。可以用原始格式或集合的汇总格式 对资源数据进行传递。给定机构中包含的资源依据机构的特殊格式或 专有格式进行组织,并且在O-服务器中获得和保持用该格式描述这些 资源的数据或属性。用于描述资源的属性的特殊格式或本机格式包括 用于命名特殊类型资源的惯例。适当的属性类型包括但不限于整数、 双、字符串、时间戳记、分类、二进制大对象及其组合。由使用不同 名称来描述实际相同的资源,例如储存器与RAM比较,以及使用具有 相同基本功能的不同资源而产生属性格式的变化。例如, 一个机构可 以使用RAM作为其首要存储源,而另一个机构可以使用闪存作为其首 要存储资源。两者都向其各自机构提供相同的基本功能,但是具有描 述资源的不同属性。适当的资源包括处理资源和通信资源,其可以分 配给应用程序和传感器或其他数据资源,例如提供可由多个机构使用 的数据的摄像机和其他监视设备。
由于每个O-服务器都与层级结构中包含的一个或多个分布式专 用服务器、D-服务器通信并能够与其交换数据,所以每个O-服务器将 依据其机构的特殊格式或协议存储在该O-服务器上的资源属性数据 输出给D-服务器之一。这种D-服务器是O-服务器的父代D-服务器。因 此,不同机构不必依据通用格式而进行格式化。
使用与资源有关并以资源属性数据表达的多个属性提供了包括 任意给定资源的识别、位置和性能的该资源的描述。这些属性可以采 用定性或定量描述的形式。在一个实施例中,以例如实数或整数、分 类数据和数字间隔等的定量数字格式提供属性。可以将与给定资源相关的每个属性认为是与其有关的资源的维度。更大量的数据或属性与 更大或更高的维度相关。更大的维度需要更大的存储空间来存储相关
数据。但是,除了与资源位于其中的机构相关的o-服务器之外,不需
要在层级结构内的每个服务器处保持用于每个资源的全部维度。实际
上,在任意给定D-服务器处,只需要足量的信息在包含用于资源的所 有属性数据的O-服务器的方向上从该D-服务器发送查询。因此,任意 给定D-服务器只需为任意给定资源汇总或集合属性的表达。
参考图2,在图2中示出了依据本发明用于资源发现和分配的D-服务器26的树型 层级结构 的示例性实施例。该树型层级结构资源发现 系统包括多个单独的D-服务器,包括根D-服务器14、中间节点D-服务 器16和叶节点D-服务器20。每个叶节点D-服务器20包含从一个或多个 O-服务器传递给该叶节点D-服务器的资源属性数据。这些资源属性数 据包括例如数字范围的定量数据26和例如成分列表或集的定性数据 28。
为了提高在任意给定D-服务器处的资源属性数据的存储,使用集 合函数产生与资源相关且传递给该D-服务器的资源属性数据的汇总 或集合。通常,集合函数产生比原始数据更粗粒度的汇总数据。这通 常通过减少与给定属性有关的数据或信息的量来获得。在一个实施例 中,集合包括减少与给定属性相关的数据的量。因此,对于给定属性, 对具有与该属性相关的数据的一组资源应用集合函数,而集合涉及关 于给定属性的集合。适当的集合函数包括减少数据量而同时仍支持资 源查询的任意类型的集合。这些集合函数包括但不限于数值、整数或 实数、单柱或多柱(柱状图)和分类,即集合并。可以将单个集合函数 应用到全部属性,或单独的或区别的集合函数可以用于每个属性。例 如,对于使用数字值来描述的例如网络适配器的可用带宽的属性,通 过计算给定资源集的属性的上边界和下边界来产生集合结果。将该集 合结果传递到给定D-服务器。针对该属性的每个集合结果具有上下边 界,而集合结果可以被进一步集合。对于给定集的集合结果,所有集 合结果的所有可接受的数字值范围,将落入由与所有集合结果相关的最小下边界和与所有集合结果相关的最大上边界定义的范围。因此, 集合的属性包含总最小下边界和总最大上边界。针对每个资源的单独
属性没有保持在D-服务器处。只有集合属性包含总上下边界。该集合 属性通过D-服务器的层级结构向上传递并且最终到达根D-服务器。接 收集合属性的层级结构中的D-服务器获得对在其下面的资源的该属 性方面的更多层面(grainier)或更宽的观察。该D-服务器可能不知 道与任意资源的属性相关的实际值,但是D-服务器会知道与其子节点 相关的任意资源,具有落入其集合属性的上下边界内的该属性值。当 给定D-服务器,例如中间D-服务器之一,从其子代接收集合属性数据 时,该D-服务器沿着每个维度进一步集合数据。对于定量和数字属性, D-服务器再次采用所有下边界中最小的和所有上边界中最大的,由此 获得新的上下边界。该进一步集合的属性被通信给该D-服务器的父 代。该过程从D-服务器到D-服务器进行重复,直到达到层级结构中的 根服务器。
对于分类属性28,使用集或列表来表示包括在属性中的成员或分 类。例如,属性可以是给定资源能支持的通信协议类型的识别,并且 可以由用包含所支持通信协议的识别的集来表示属性。集合包括采用 与资源相关并从O-服务器或子代D-服务器接收的所有属性集的组合 或联合。代表所有集的联合的属性集通过层级结构向上传递,在每个 级别处被进一步集合或组合。如图2中所示,从叶节点D-服务器20由 底部向上到顶部根D-服务器14,集合在每个服务器处重复。根D-服务 器保持所有可用资源的属性的所有分类的识别的扩展集(superset)。 根D-服务器为所有资源接收和集合属性数据,该资源被发现并且可用 于分配给例如在给定计算系统中运行的应用程序中的一个或多个资 源需求。虽然上下边界以及集合并的集合函数在例子中使用,但是只 要集合函数减少数据大小并帮助将搜索引向可用资源,则也可以使用 其他形式的集合函数。
在一个实施例中,集合函数适用于位置属性,例如,街道地址、 城市、国家、州。例如,在叶节点级别D-服务器的级别处,位置属性
15包含足量的信息来描述或限定出矩形尺寸的城市块,例如视频摄像机
的给定资源位于其中。如图2所示,每个叶节点D-服务器处的位置集 以一组位置(L)的方式给出, 一组位置(L)可给出尽可能详细的实际街 道或实际地图网格。当位置属性被集合并传递给中间D-服务器16时, 位置信息中提供的细节量以减少的特性给出,例如城市名称(C)和州 名称(S)。城市名称集包含从中间D-服务器的子代传递给该中间D-服 务器的所有位置属性集中包含的所有城市。在根D-服务器级别处,位 置属性仅指定所有资源都位于给定州内。
通常,以通过层级结构向上传递属性数据的方式使用集合的过 程,如由箭头A方向所指示。复制被用于通过层级结构将集合数据向 下传递到叶节点D-服务器或中间D-服务器,如由箭头B所指示。复制 被用于贯穿层级结构的整体结构以传递更多信息,以使对查询的响应 更有效。在一个实施例中,如果给定D-服务器的兄弟、该D-服务器的 祖先的兄弟和该D-服务器的祖先自己具有数据,则其汇总数据在层级 结构中从该D-服务器到接收者D-服务器周期性地上下发送,并由接收 D-服务器高速緩存。例如在图2中扩展列表30中所示,给定叶节点D-服务器Di包含其自己的集合资源属性数据和叶节点D-服务器D2的复 制的集合资源数据,后者是它的兄弟,中间D-服务器d是其父代,中 间D-服务器C2是其父代的兄弟,中间D-服务器Bt是其祖父,中间D-服务器B2和B3是其祖父的兄弟,和根D-服务器A。因此,关于发送给 D-服务器层级结构的所有资源分配数据的充分信息保持在层级结构 内的单个叶节点处,使得在该叶节点处能够接收和处理资源分配查 询,而不必将该查询传递给根D-服务器用于处理。即,叶节点具有所 有可用或被识别资源的足够详细的描述。
因此,每个服务器通过层级结构向上转发其汇总和集合的数据并 且通过层级结构将位于层级结构上游的服务器的集合数据向下朝向 叶节点传播。例如,D-服务器节点Bi从根D-服务器A接收D-服务器B2 和B3的集合属性数据,并将该集合属性数据转发到D-服务器Q和C2 两者。D-服务器d和C2在接收到集合属性数据时继续沿层级结构向下朝向叶级别服务器传播。
使用复制而在层级结构内多个D-服务器之间传递资源信息,每个 D-服务器包含至少 一部分且有可能是全部集的全局资源的汇总或集 合拷贝,加速资源发现和查询次数。通常,给定D-服务器具有关于任 意特殊资源的细节量与距离成比例,例如D-服务器与资源之间的中间 节点D-服务器和O服务器的数量。对于D-服务器与资源之间的更短距 离,更高程度的特性(specificity)或细节保持在关于资源的该D-服务 器中。随着距离增加,D-服务器将仍保持关于资源的信息,但是以更 粗的粒度保持。例如,D-服务器节点D1知道以城市块级别的特性在 D-服务器节点D2处存储的摄像机记录的位置;但是,D-服务器节点 Dl仅知道以州级别的特性对D-服务器节点B2和B3的摄像机记录的位 置。随距离减少特性级别和增加粒度确保总存储和消息开销不会变得 极大。在一个实施例中,对于包含n个服务器的层级结构中的k级节点, 存储复杂性是每个服务器处大约为klogn。
复制还允许在层级结构中将查询发送给任意D-服务器而不仅仅 是根D-服务器。参考图3,示出使用D-服务器的给定层级结构的资源 查询的处理的示例性实施例。客户34在层级结构中将查询36发送给D-服务器之一al。该D-服务器al搜索存储在该D-服务器的汇总或集合的 数据,包括其自己汇总的数据和已经传递给其的任意复制的数据。基 于这种搜索,该D-服务器al判定其兄弟D-服务器d和其伯父D-服务器 b2包含关于查询所需资源的信息。D-服务器al将查询38、 40转发给其 兄弟和伯父D-服务器d和b2。这些D-服务器d和b2接着搜索通过其D-服务器子代的数据,将该查询转发给拥有相关资源信息46、 48的那些 子代D-服务器。重复在后续的子代中搜索资源属性数据的过程,以将 查询发送给0-服务器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-服务器上的当前负载(load)和其组合。通 常,消除将每个查询发送或转发到单个根D-服务器的需求减轻了相关 瓶颈并贯穿该层级结构分配计算负载,减少查询响应时间。
通过确保存储在任意给定D-服务器处的集合或汇总数据尽可能 是最新的将附加刚性提供给层级结构系统,并且该附加刚性准确表示 可用资源的当前状态,其中可用资源包括当前不可用的资源和最近已 加入的资源。在一个实施例中,汇总数据是软状态。例如,每个D-服 务器为汇总数据的每个维度保持生存时间(TTL)值。通常,当从子代 或父代接收新数据时数据被周期性刷新。只要符合规定的TTL值来接 收刷新数据,则将汇总数据保持为当前和可靠的数据。但是,在资源 被去除或子代D-服务器离线时,刷新的数据将不会被接收在TTL值的 约束集之中。因此,当依据TTL值与这些相关的汇总数据期满时,将 这些数据从给定D-服务器去除。因此,过时数据、对层级结构布局的 改变和可用资源中的改变不干扰响应于查询的资源发现或使其恶化。
通常,当存储、处理器和通信资源被消耗时,复制过程导致开销。 因此,使用方法来最小化对整个系统性能和资源分配的这种开销的影 响,同时保持复制数据中更新的所需水平。在一个实施例中,使用为每个链路设置优化更新周期的分配算法。在题目为"A distributed algorithm for minimum overhead replication in a tree hierarchy subject to consistency constraints,由IBM摘要号Y0R920060281US1
标识的共同未决申请的美国专利申请中可找到这种算法实施例的介 绍。
除了损耗以外,还要考虑对层级结构布局和可用资源采集的增加 和修正。例如,在给定D-服务器失去其之前的父代D-服务器之后,将 再次加入重定格式的层级结构布局和与其新父代D-服务器的随后的 重新连接。在与新父代D-服务器连接之后,子代D-服务器将集合或汇 总的数据发送给新父代。
在一个实施例中,将数据复制贯彻执行到最终叶D-服务器节点; 但是,O-服务器不涉及任意数据的复制。O-服务器只以例如可被D-服务器理解的汇总或集合形式的适当形式输出其数据。包括周期或自 动方法的多种方法用于将O-服务器数据转发给D-服务器。数据的转发 可以通过O-服务器或对来自D-服务器的响应而被初始化。在一个实施 例中,程序(routine)用于将数据更新从O-服务器转发到D-服务器, 该程序集成到D-服务器或O-服务器中或与任意服务器分开并且不受 例如包进程的系统管理器直接控制而在后台进程(background)中自 动运行。在一个实施例中,程序周期性查询给定O-服务器,提取所需 的汇总数据并将提取的数据转发给父代D-服务器。除了仅提供检索和 转发之外,程序还可以将通过O-服务器搜索返回的结果重定格式为客 户理解的通用格式。
D-服务器层级结构不限于使用任意特殊属性格式来监控和管理 多个不同机构或域中包含的资源的分配。另外,没有施加于分布式计 算系统的用于资源识别的统一或标准的属性格式。每个计算系统判定 和使用其自己的属性格式。因此,用于每种类型资源的属性列表的图 表不需要在不同机构内的完全相同。叶级别处的D-服务器可以将从多 个O-服务器接收的关于给定类型资源的属性映射到在层级结构中D-服务器之间使用的一个或多个公共属性,即使多个接收到的属性是不
19同的也是如此。在一个实施例中,例如叶节点D-服务器中的一个或多 个D-服务器将要用于层级结构中的资源属性数据的预定公共属性格 式传递给O-服务器。被传递的公共属性包含足够量的信息来允许每个 O-服务器将用于其资源的资源数据属性映射到公共属性。该映射与资 源属性数据一起被传递给D-服务器。因此,每个自治机构在选择其本 机资源发现系统中具有增大量的自由度,而联合层级结构系统可以并 入更宽变化的传统自治系统。外来属性格式或层级结构没有施加给各 计算系统。
在依据本发明的分布式系统中用于联合资源发现的方法的一个 示例性实施例中,与布置在多个分布式计算系统中的多个资源相关的 资源属性数据从这些分布式计算系统传递给依据预定层级结构安排 的多个专用服务器中的一个或多个。通常,资源属性数据包含关于含 在分布式计算系统中的资源的足量的数据,用以帮助识别和分配布置 在多个分布式计算系统中的相关资源。响应于来自客户的资源需求查 询对资源进行识别和分配,该资源需求查询是例如在计算系统中或层 级结构内的服务器之一上运行的应用程序。适当的计算系统包括计算 资源的任意安排或网络安排,包括但不限于信息技术(IT)计算系统。
在一个实施例中,为了将资源属性数据传递给D-服务器,使用 D-服务器主动获得来自每个计算系统的资源数据。可选地,多个计算 系统中布置的O-服务器获得用于资源的资源属性数据,所述资源包含 在O-服务器位于其中的计算系统中。在一个实施例中,每个计算系统 包含用于获得资源属性数据的两个或多个O-服务器。优选地,每次计 算包含用于资源属性数据获取和传递的一个O-服务器。可以在层级结 构内将资源属性数据传递给任意D-服务器。优选地,对于叶服务器, 资源属性数据被传递给含在层级结构中的叶节点D-服务器之一。在一 个实施例中,为每个O-服务器识别适当的叶节点D-服务器,而O-服务 器将资源属性数据传递给相关的叶节点D-服务器。
每个O-服务器或资源发现服务器为计算系统以本机属性格式获 得包含在计算系统内的资源的资源属性数据。对于多个计算系统,多个本机属性格式是可能的,并且每个格式可以是唯一的。这些本机格 式改变对资源进行说明和解释的方式,包括但不限于在计算系统内分 配给特殊资源的名称和用于给定函数的资源类型。用于每个计算系统 的每个本机属性格式由分布式计算系统之一判定并与其相关。共有或 通用的属性格式不施加给不同计算系统。而是,被传递的资源属性数
据在D-服务器级别从多个本机属性格式映射到公共属性格式。该公共 属性格式由多个专用服务器的至少一个提供。公共格式和本机格式之 间的映射可以在D-服务器级别或在O-服务器级别进行。在一个实施例 中,将公共属性格式传递给每一个O-服务器,而O-服务器在将资源属 性数据传递给D-服务器的过程中将被传递的资源属性数据从多个本 机格式映射到由D-服务器提供的公共属性格式。因此,映射信息连同 资源属性数据两者 一起被传递给D-服务器。
在层级结构中将分布式计算系统内用于所有当前可用资源的资 源属性数据传递给D-服务器之后,足量的资源属性数据被保持在专用 服务器层级结构内的任意给定专用服务器处。因此,可以将资源查询 发送给任意D-服务器并由其进行处理,而这些D-服务器可以通过专用 服务器层级结构将这些查询转发给适当的分布式计算系统或转发给 含有用于查询的适当资源的计算系统内的适当的O-服务器。使用集合 和复制实现在每个D-服务器处维护所需量的资源属性数据。在一个实 施例中,在将资源属性数据从多个计算系统传递给的每个D-服务器处 对资源属性数据进行集合。将这些集合的资源属性数据通过一个或多 个中间D-服务器传递给层级结构的根D-服务器。除了在叶节点D-服务 器处集合资源属性数据以外,还在数据通过层级结构向上传递时,在 每一个中间专用服务器处进一步集合资源属性数据。
在一个实施例中,保持在层级结构内每个专用服务器处的资源属 性数据在例如层级结构内中的一个或多个其他专用服务器处被复制, 其他专用服务器例如是层级结构内的兄弟和祖先。由于任意给定资源 的状态和可用性,即,与该资源相关的资源属性数据随时间而改变, 因此D-服务器中保持的资源属性数据被周期性更新。例如,为传递给专用服务器的每个资源属性数据识别生存时间值。这是更新要被接收 或该数据期满的预定条件或时间周期。当符合识别的生存时间值没接 收到更新时,将资源属性数据从专用服务器删除。
在一个实施例中,请求(即资源请求)被发送给包括叶节点D-服务器、中间D-服务器和根节点D-服务器的层级结构中的D-服务器之 一。适当的查询包括结构化查询语言(SQL)选择查询。由于每个节点 都包含集合和复制的数据,因此查询可以在层级结构中被转发到其他 节点D-服务器、并甚至能够跨越服务器之间的相对长跳越进行转发, 而非仅转发给邻居,即父代-子代、D-服务器。接收者D-服务器响应 于该查询能够将匹配的记录返回给查询源,即客户,或能够将该查询 转发给层级结构内的其他D-服务器。最后,查询被转发给能够响应于 查询返回资源记录的一个或多个服务器。在一个实施例中, 一个或多 个D-服务器将查询从查询的本机格式映射到层级结构内使用的公共 查询格式。优选这种映射或移动在D-服务器级别进行处理。在一个实 施例中,查询格式例如从例如O-服务器或其他查询源转发给D-服务 器。D-服务器产生必要的映射关系从而以本机格式响应于给定查询的 接收,该查询可以映射到由层级结构使用的公共查询格式以便由D-服 务器层级结构处理。
在一个实施例中,解算器模块能够代表客户行动来发送查询和接 收结果。解算器能够减轻客户与D-服务器层级结构和O-服务器的交互 负担。由于客户可能是不知道从O-服务器返回结果的本机格式的外部 应用程序,所述本机格式可能从一个机构变到另一个机构,所以解算 器可以进行适当的格式化并以通用格式将结果返回给客户。
在一个实施例中,以迭代过程处理客户查询,即,每个服务器使 客户重新改向去查询其他服务器。优选地,不以递归方式处理客户查 询,其中服务器转发查询并将结果接替返回给客户。使用迭代过程允 许客户可在需要时停止搜索。例如,客户可能不需要响应于其查询的
详尽的搜索,并可以在接收到第一合格资源的记录时或在接收到足够 的数量或记录时停止查询过程。在递归模式中,客户难以通知服务器和停止搜索。使用迭代模式将复杂性和责任转移给客户,而客户在进 行判定停止时处于有利位置。
依据本发明的系统和方法可以用于具有各种安排的分布式机构 的各种应用。适当的应用包括但不限于基于因特网的流处理系统和富
源传感器(resourcerichsensor)和执行器网络。在这些系统中,本发明 使前述孤立和潜在的应用程序专用网络和资源统一 ,同时支持跨越多 个网络运行的应用程序。另外,依据本发明的示例性方法和系统可以 结合企业目录服务一起使用,以提供对分别发现和配置的目录服务的 统一访问、以及通过统一每个都可能使利用不同目录服务的多个网格 来提供对网格计算系统的统一访问。
依据本发明示例性实施例的方法和系统可以釆用全部硬件实施 例、全部软件实施例或包含硬件和软件元素两者的实施例的形式。在 优选实施例中,本发明被实施成软件,其包括但不限于固件、驻留软 件和微码。另外,示例性方法和系统可以采用计算机可用或计算机可 读媒体可访问的计算机程序产品的形式,所述媒体提供由计算机、逻 辑处理单元或任意指令执行系统使用的或与它们一起使用的程序代 码。出于说明的目的,计算机可用或计算机可读媒体可以是包含、存 储、通信、传播或传输程序以由指令执行系统、装置或设备使用或与 其一起使用的任意装置。适当的计算机可用或计算机可读媒体包括但 不限于电、磁、光学、电磁、红外或半导体系统(或装置或设备)或传 播媒体。计算机可读媒体的例子包括半导体或固态存储器、磁带、可 拆卸计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、刚性 磁盘和光盘。光盘的当前例子包括致密盘-只读存储器(CD-ROM)、致 密盘-读/写(CD-R/W)和DVD。
用于存储和/或执行程序代码的适当数据处理系统包括但不限于 通过系统总线直接或间接连接到存储器元件的至少一个处理器。存储 器元件包括在程序代码实际执行过程中使用的本地存储器、大容量存 储和高速緩冲存储器,其提供至少一些程序代码的临时存储以便减少 在执行期间必须从大容量存储取回代码的时间量。包括但不限于键盘、显示器和指示设备的输入/输出或i/o设备可以直接与系统相连或
通过中间1/0控制器与系统相连。依据本发明的方法和系统的示例性
实施例还包括网络适配器,其与系统相连以使数据处理系统能够通过 加入私有或公共网络成为与其他数据处理系统或远程打印机或存储 设备相连。适当的当前可用类型的网络适配器包括但不限于调制解调
器、电缆调制解调器、DSL调制解调器、以太网卡及其组合。
在一个实施例中,本发明指向包含机器可执行或计算机可执行代 码的机器可读或计算机可读媒体,当所述代码被机器或计算机读出 时,使机器或计算机执行在依据本发明示例性实施例的分布式信息技 术系统中用于联合资源发现的方法,还指向计算机可执行代码本身。 机器可读或计算机可读代码可以是符合下列条件的任意类型的代码 或语言能够由机器或计算机读出和执行、并能够以任意适当的已知 语言或语法表达、并在包括机器语言、汇编程序语言、更高等级语言、 面向对象语言和脚本语言的技术领域中是可用的。计算机可执行代码 可以存储在任意适当的存储媒体或数据库上,包括布置在由依据本发 明的系统使用的计算机网络中、与该计算机网络通信并由该计算机网 络访问的数据库,并可以在已知的、在包括用于控制本发明的陈述内 容的控制系统的技术领域中可用的任意适当硬件平台上执行。
虽然这里公开的本发明的示例性实施例可实现本发明的目的是 显而易见的,但是要理解本领域技术人员可提出多种更改和其他实施 例。另外,来自任意实施例的特征和/或元素可以单独使用、或与来自 依据本发明方法的其他实施例和步骤或元素相结合使用而能以任意 适当顺序执行或实施。因此,要理解所附如权利要求希望覆盖在本发 明的精神和范围内的所有这种更改和实施例。
权利要求
1、一种用于在分布式系统中进行联合资源发现的方法,该方法包括将与布置在多个分布式计算系统内的多个资源相关的资源属性数据从所述分布式计算系统传递到依据层级结构安排的多个专用服务器中的一个或多个,资源属性数据足以帮助识别和分配布置在所述多个分布式计算系统中的相关资源;在专用服务器的所述层级结构内的任意给定专用服务器处保持足量的资源属性数据以处理资源查询,并且通过专用服务器的所述层级结构将那些查询路由给包含用于所述查询的适当资源的分布式计算系统。
2、 如权利要求l所述的方法,进一步包括以多个本机属性格式获 得资源属性数据,每个本机属性格式由分布式计算系统之一判定并与 其相关。
3、 如权利要求2所述的方法,其中所述传递资源属性数据的步骤 进一步包括将所述被传递的资源属性数据从所述多个本机属性格式 映射到由多个专用服务器的至少一个提供的公共属性格式。
4、 如权利要求2所述的方法,其中所述获得资源属性数据的步骤 包括使用多个资源发现服务器来获得所述资源属性数据,每个资源发 现服务器与所述多个分布式计算系统之一相关。
5、 如权利要求4所述的方法,其中该方法进一步包括将公共属性格式传递给每一个所述资源发现 服务器;并且所述传递资源属性数据的步骤进一步包括使用所述专用服务器和资源发现服务器的至少一个来把所述 被传递的资源属性数据从所述多种本机格式映射到由所述多个专用服务器的至少一个提供的公共属性格式;和 将这种映射连同所述资源属性数据一起传递给所述专用服务器之一。
6、 如权利要求l所述的方法,其中所述保持足量资源属性数据的 步骤进一步包括在所述资源属性数据从所述多个计算系统被传递给 的每个专用服务器处集合所述资源属性数据,并且通过一个或多个中 间专用服务器将所述被集合的资源数据传递给所述层级结构的根专 用服务器。
7、 如权利要求6所述的方法,进一步包括在每一个所述中间专用 服务器处集合资源数据。
8、 如权利要求l所述的方法,其中所述保持足量资源属性数据的 步骤进一步包括将所述层级结构内每个专用服务器处保持的资源属 性数据复制在所述层级结构内 一个或多个附加专用服务器处。
9、 如权利要求l所述的方法,其中所述预定义层级结构包括树型 层级结构。
10、 如权利要求9所述的方法,其中所述传递资源属性数据的步 骤进一步包括在所述树型层级结构内将所述资源属性数据从所述多 个计算系统之一传递给多个叶节点专用服务器之一 。
11、 如权利要求l所述的方法,其中所述保持足量资源属性数据 的步骤进一步包括周期性更新保持在所述专用服务器中的所述资源 属性数据。
12、 如权利要求l所述的方法,其中所述保持足量资源属性数据 的步骤进一步包括为传递给所述专用服务器的每个资源属性数据识别生存时间值;和从未收到符合所述被识别的生存时间值的更新的专用服务器删 除资源属性数据。
13、 一种计算机可读媒体,包含计算机可读代码,其在由计算机 读取时使计算机执行在分布式系统中用于进行联合资源发现的方法, 该方法包括将与布置在多个分布式计算系统内的多个资源相关的资源属性 数据从所述分布式计算系统传递到依据所述层级结构安排的多个专 用服务器中的一个或多个,所述资源属性数据足以帮助识别和分配布 置在所述多个分布式计算系统中的相关资源;在专用服务器的所述层级结构内的任意给定专用服务器处保持 足量的资源属性数据以处理资源查询,并且通过专用服务器的所述层 级结构将那些查询路由给包含用于查询的适当资源的分布式计算系 统。
14、 如权利要求13所述的计算机可读媒体,其中该方法进一步包 括以多个本机属性格式获得所述资源属性数据,每个本机属性格式由 所述分布式计算系统之一判定并与其相关。
15、 如权利要求14所述的计算机可读媒体,其中所述通信资源属 性数据的步骤进一步包括将所述被传递的资源属性数据从所述多个 本机属性格式映射到由所述多个专用服务器的至少一个提供的公共属性格式。
16、 如权利要求14所述的计算机可读媒体,其中所述获得资源属 性数据的步骤包括使用多个资源发现服务器以获得所述资源属性数 据,每个资源发现服务器与所述多个分布式计算系统之一相关。
17、 如权利要求16所述的计算机可读媒体,其中 该方法进一步包括将公共属性格式传递给每一个所述资源发现服务器;并且所述传递资源属性数据的步骤进一步包括使用所述专用服务器和资源发现服务器的至少一个来把所述 被传递的资源属性数据从所述多个本机格式映射到由所述多个专 用服务器的至少一个提供的公共属性格式;和 将这种映射连同所述资源属性数据一起传递给所述专用服务器之一。
18、 如权利要求13所述的计算机可读媒体,其中所述保持足量资 源属性数据的步骤进一步包括在所述资源属性数据从多个计算系统 被传递给的每个专用服务器处集合所述资源属性数据,并且通过一个 或多个中间专用服务器将所述被集合的资源数据传递给所述层级结 构的根专用服务器。
19、 如权利要求13所述的计算机可读媒体,其中所述保持足量资 源属性数据的步骤进一步包括将所述层级结构内每个专用服务器处 保持的所述资源属性数据复制在所述层级结构内一个或多个附加专 用服务器处。
20、 如权利要求13所述的计算机可读媒体,其中所述预定义层 级结构包括树型层级结构。
全文摘要
本发明提供了用于识别和分配布置在多个分布式和自治的计算系统中的资源的方法和系统,每个系统可能有其自己的传统资源发现服务。布置在每一个分布式计算系统内的资源识别服务器将资源属性数据传递给专用服务器的树型层级结构。资源属性数据以本机格式保持在分布式计算系统中并被映射到由专用服务器提供的公共格式。资源属性数据在树型层级结构内的每个节点处集合、通过树型层级结构向上传递到一个或多个根节点并通过所有节点向下复制。通过周期性资源检查和资源属性数据更新来提供额外的系统稳健性。资源分配查询被发送给层级结构内的任意级别节点并传送给适当的计算系统进行处理。
文档编号G06F7/00GK101454747SQ200780019075
公开日2009年6月10日 申请日期2007年6月6日 优先权日2006年6月21日
发明者颢 仰, 震 刘, 凡 叶 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1