CN1708026B - 用于构建对等系统的方法和设备以及相应的对等系统 - Google Patents

用于构建对等系统的方法和设备以及相应的对等系统 Download PDF

Info

Publication number
CN1708026B
CN1708026B CN2005100878055A CN200510087805A CN1708026B CN 1708026 B CN1708026 B CN 1708026B CN 2005100878055 A CN2005100878055 A CN 2005100878055A CN 200510087805 A CN200510087805 A CN 200510087805A CN 1708026 B CN1708026 B CN 1708026B
Authority
CN
China
Prior art keywords
node
tree
dht
data
zone
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2005100878055A
Other languages
English (en)
Other versions
CN1708026A (zh
Inventor
S·林
X·谢
Y·陈
Z·章
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN1708026A publication Critical patent/CN1708026A/zh
Application granted granted Critical
Publication of CN1708026B publication Critical patent/CN1708026B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Library & Information Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Small-Scale Networks (AREA)

Abstract

数据覆盖图被构造成在由对等网络中的分布式哈希表(DHT)确定的逻辑空间中的数据结构。数据覆盖图包括一个具有树节点的树,每个节点具有映射到DHT的逻辑空间中的相应DHT节点的一个区域。DHT的逻辑空间映射到机器,每个机器对主个或更多树节点区域。树节点由树节点区域的大小和可用资源分层次地布置,以便根据机器的各自性能在对等网络中执行任务,以满足任务的要求。树以与潜在的DHT相同的规模自组织和自结束,该树被用于使用树节点的层次,从DHT节点聚集信息,或向DHT节点散发信息。

Description

用于构建对等系统的方法和设备以及相应的对等系统
技术背景 
本发明涉及一种分布式数据结构以及一种技术,该技术用于利用上述数据结构而与一个对等系统相互作用,该技术还用于应用级多信道广播。
背景
对等(P2P)系统使用一个网络,该网络连接具有相等或相近性能和职责的参与者机器。上述系统执行任务时无需传统服务器的协调(或需要服务器最小限度的结构协调)。例如,附图1所示的P2P系统100的高级描述。系统100包括一个具有相等或相近性能和职责的对等实体(102-112)的集。在一个例子中,对等实体(102-112)相应于单独的个人计算机装置,这些个人计算机装置通过互联网或企业内部互联网连接在一起。对等实体(102-112)可以不需要服务器的帮助而在彼此之间直接传递文件或其它信息(如示例性通信路径114所示)。有关P2P系统的一般性介绍可以在技术报告HPL-2002-57 HP实验室2002的D.S.Milojicic,V.Kalogeraki,R.Lukose,K.Nagaraja,J.Pruyne,B.Richard,S.Rollins和Z.Xu的“对等运算”中找到。
P2P系统通常使用分布式哈希表(DHT)来促进对象的存储或检索,该对象来自参与系统的对等实体。如其名字所暗示的,分布式哈希表(DHT)涉及一个分布在多个位置上的哈希表,例如分布在与不同计算机装置联合的多个存储器之上。分布式哈希表指定了具有各自指定ID的多个DHT节点。DHT节点定义了抽象的DHT逻辑空间。通过用一个哈希函数支配一个对象,可以将对象插入DHT逻辑空间,或者从DHT逻辑空间中检索该对象,以产生一个关键字。然后使用该关键字,在将要接收上述对象或可以检索到上述对象的DHT逻辑空间中,定位特定目标节点ID。就是说,每个DHT节点与一定范围内的关键字相关联;一个对象是被添加到特定DHT节点或是从该节点检索一个对象,取决于该对象的关键字是否在与该特定DHT节点相关联的关键字的范围内。与非分布式哈希表的实现不同,DHT节点可以自由地加入或离开DHT逻辑空间(例
如,分别相应于计算机装置加入或离开P2P系统),所以必须提供功能性以对这些事件寻址。
已发展了各种各样的策略来管理P2P系统中的对象的存储和检索。附图2示出了内容可寻址网络(CAN)策略,例如在S.Ratnasamy,P.Francis,M.Handley,R.Karp和S.Shenker的“可升级内容可寻址网络”(ACM SigComm 2001,SanDiego,CA,USA,2001.08)中所描述的。该策略将DHT逻辑空间做成D维的笛卡尔空间200模型。该CAN策略将空间200划分成连接DHT空间200的节点。例如,当节点n1加入时,CAN策略将整个空间200分配给该节点。当加入节点n2时,CAN策略将空间200分成两半,并且将每一半分别分配到节点n1和n2。当加入节点n3时,CAN策略将右边的一半划分成上面的四分之一和下面的四分之一,将上面的四分之一分配给节点n2,并且将下面的四分之一分配给节点n3。当加入节点n4时,CAN策略将右下方的四分之一划分成左面的八分之一(其分配给节点n3)和右面的八分之一(其分配给节点n4)。该过程重复足够多的次数,以动态地证明添加或移除了节点。合成的分区将逻辑空间定义为用于向分布式哈希表插入对象,以及从分布式哈希表中检索对象。可以这么说,节点“拥有”映射到其空间的对象。
附图3示出了另一个涉及CHORD的策略(例如,I.Stoica,R.Morris,D.Karger,M.F.Kaashoek和H.Balakrishnan在“Chord:用于互联网应用的可升级的对等查找服务”,ACM SigComm2001,SanDiego,CA,USA,2001年8月)。在该策略中,DHT逻辑空间构造成循环空间300。DHT节点是分配的ID,并且基于其所分配的ID,被添加到循环DHT逻辑空间300。例如,附图3所示的示例性DHT节点n1、n2、n3、n4和n5所分配的ID管理它们在循环DHT逻辑空间300上的“布局”。如附图2中的情况,在添加DHT节点时,该节点划分DHT逻辑空间300,确定多个子空间或区域。上述区域确定了每个节点“拥有”的对象。例如,要向附图3所示的由DHT策略所管理的分布式哈希表中插入一个对象,该对象受一个哈希函数控制,而产生一个关键字。该对象随即存储在该DHT节点,该节点具有一个分配给该关键字的区域(例如,在包含一定范围的关键字的DHT节点,其中包括对象的关键字)。在附图2和附图3的情况中,可以使用多个查找策略以快速地在P2P系统中寻找一个特定节点。通常,查找策略包括在DHT逻辑空间中制造一些“网络段”,以在需要的目标DHT节点上收缩。一般提供 多种机制来加速该搜索。例如,CHORD策略中的每个DHT节点存储其它DHT节点的一组ID。上述其它的ID可以以指数的方式增长,建立所谓的“指针”,其探查逻辑空间300。这允许该查找程序用很少的网络段快速地定位想要的DHT节点。
附图2和附图3只提供了两个示例性公知DHT路由策略的高级概述。还有很多其它的策略。例如,另一个流行的路由策略是PSATRY路由策略,如A.Rowstron和P.Druschel的“Pastry:用于大规模对等系统的可升级的分布式对象定位和路由”中所描述的(关于分布式系统平台(中间设备)的18thFIFP/ACM国际会议,Heidelberg,德国,2001年11月)。
P2P系统为传统的客户端一服务器策略带来了很多好处。例如,P2P系统具有自动并且自由地扩展以及缩小的能力,而无需中心的协调。然而缺乏管理协调也引起了很多问题。例如,会期望P2P系统一致行动以完成某些整体功能。在很多例子中,会希望从P2P系统的参与者中聚集数据。或者会希望向P2P系统中的参与者散发信息。有了客户端一服务器方法,服务器可以简单地查询其客户端以从客户端聚集信息,或向其客户端传播信息以向客户端分散信息。然而在P2P系统中,数据的搜集和散发是有问题的,由于P2P系统是由相互连接的同位体的自由联盟组成的,这些同位体可以来去自由。添加集中化的传统的报告功能性,可以有使P2P系统变复杂的效果,并且因而降低了它的灵活性和实用性。
对于可以和P2P DHT相互作用的有效策略,现有技术中存在相应的示例性需求,其可以允许,例如,从其参与者聚集数据,以及向其参与者散发信息。此外,需要有效地组织该P2P DHT并且在操作中与其相互作用,这将会从其效能中受益,例如在应用级多信道广播操作中。
摘要
根据一个示例性实施列,将一个方法描述为一个数据覆盖图。该方法包括提供一个分布式哈希表(DHT),该表管理向一个对等系统插入对象,或从该系统移除对象,其中该分布式哈希表包括一个逻辑空间,该空间包括多个DHT节点,上述节点具有多个相关联的DHT区域。该方法还包括,通过联合数据结构中的对象和DHT节点,以及通过在数据结构中的对象之间建立连接,来构建数据覆盖图,作为分布式哈希表的逻辑空间之上的数据结构。该数据覆盖图具有 一个树状拓扑,其中该树具有与单独的DHT节点相关联的树节点。每个树节点具有与其相关闻的树节点区域,其相应于分布式哈希表的逻辑空间的一部分。
机器映射到DHT的逻辑空间。每个机器相应于树节点区域中的一个或更多个。每个机器从与其对应的一个或多个树节点区域中,选择其的一个代表性节点,该树节点相应于最大尺寸的树节点区域。每个代表节点选择具有更大尺寸的邻近树节点区域的代表性节点作为其父节点。
在机器映射到DHT的逻辑空间之后,可以在每台机器上搜集元数据。搜集的元数据可以从每台机器发送到其代表性节点,该代表性节点可以将接收到的元数据发送到它们各自的父节点。在树的最高节点(例如,根节点)接收到的元数据通过各自的父节点和代表性节点可以被处理并发送到每台机器。例如,元数据可以是有关每台机器的操作的信息,处理过的元数据可以是管理每台机器的操作的指令。
下面将描述另外的实施例和特征。
附图简述
结合附图参照下面的详细描述时,可以更彻底地理解实施例。其中:
附图1示出了传统的对等(P2P)系统。
附图2示出了传统的CAN路由策略。
附图3示出了传统CHORD路由策略。
附图4示出了一个传统技术,用于连接在局部机器环境范围中的数据结构的两个对象。
附图5示出了一个示例性技术,用于连接P2P分布式哈希表(DHT)环境中的数据结构的两个对象,其中上述两个对象与P2P DHT环境中的两个其它的节点相关联,并且其中该连接技术形成了位于DHT“顶端”的数据覆盖图的基础。
附图6示出了简单的P2P DHT,其中包括一个环、一个区域和一个基本路由表,其为每个边记录r邻近值,其中散列法将区域指定到DHT节点。
附图7示出了示例性树结构,该结构是使用附图5所示的数据覆盖图的原理而构建,其中该树结构涉及自组织元数据覆盖图(SOMO)。
附图8a-8c示出了自底向上构建SOMO的一个处理的渐进式示意图,其中附图8a示出了作为参考的一个帧的局部树,附图8b示出了寻找各自的虚拟节 点,附图8c逻辑树到物理机器的映射。
附图9a-9c示出了用于恢复附图8c中所示的自底向上SOMO的一个自缩放处理的渐进式示意图,其中附图9a示出了附图8c中的自底向上SOMO,附图9b示出了添加一台物理机器,该机器的一个相应代表虚拟节点在逻辑树中可以找到,附图9c示出了修正的逻辑树到所有物理机器的映射。
附图10a示出了用于合并资源的DHT的容量与自底向上SOMO之间的结合,共同地形成一个资源库。
附图10b示出了附图7的SOMO树结构的示例性应用,该应用是有关从P2P系统的参与者聚集信息,以及向P2P系统的参与者散发信息。
附图11a示出了应用级多信道广播的示意性配置,附图11b示出了通过使用资源库中的助手节点,对附图11a所示的配置的改进,其中圆圈代表应用级多信道广播的最初成员,矩形表示具有高度数的可用同位体。
附图12示出了用于排定单个应用级多信道广播对话的SOMO报告结构,其中每个节点发布其网络坐标,并且带宽包括在其发送到SOMO的报告中。
附图13示出了用于实现P2P系统的一个参与者的示例性计算机,其中P2P系统包括建立在其DHT顶端的数据覆盖图。
在公开和附图中间,使用相同的数字指代同样的组件和特征。系列100数字指的是附图1中可以初始地发现的特征,系列200数字指的是附图2中可以原始发现的特征,系列300数字指的是附图3中可以原始发现的特征,等等。
详细描述
这里描述的策略是关于构建在分布式哈希表(DHT)的“上面”的数据结构,该DHT用在对等系统中(P2P)。术语“对等(P2P)系统”可以描述参与者的任何相互连接,例如附图1所示的相互连接网络100。在一个实施例中,P2P系统不需要任何服务器类型实体的协助。参与者可以包括任意类型的实体,包括个人计算机、膝上型电脑、个人数字助理、特定应用计算装置等。参与者可以通过路由基础构造的任意组合而彼此互相通信,例如有线和/或无线通信路由机构、各种各样的路由器、网关等。进一步,参与者可以通过网络协议的任意组合而彼此互相通信,例如TCP/IP(例如,互联网或企业内部互联网提供的)。
更常见的,这里所描述的任何功能可以使用软件、固件(例如,固定逻辑 电路)、人工操作或上述工具的组合。这里使用的术语“逻辑”或“模块”一般代表软件、固件或软件和固件的组合。例如,在软件实现的情况下,术语“逻辑”或“模块”代表程序码,当在处理装置或装置(例如,一个CPU或多个CPU)上执行时,上述程序码实现特定的任务。程序码可以存储在一个或多个计算机可读存储装置中。
本公开包括以下部分:A部分描述了可以构建在P2P DHT“上面”的通用数据覆盖图结构;B部分描述了自组织元数据覆盖图,或“SOMO”;C部分描述了将SOMO应用于在P2P系统中聚集和散布信息;D部分描述了使用P2PDHT的应用级多信道广播;E部分描述了示例性P2P参与者,该参与者可以在P2P DHT系统的类型中与A-D部分中描述的ALM一起使用。
A.P2P DHT之上的数据覆盖图
数据覆盖图是由对象组成的数据结构。数据结构是在分布式哈希表的“上面”实现的。作为背景,DHT提供的技术是用于向P2P系统提供的分布式存储器插入对象、以及从上述存储器中移除对象。其通过在逻辑DHT空间中定义DHT节点的聚集来执行该任务。就是说,DHT技术将每个DHT节点分配到DHT逻辑空间的预定部分,这称为DHT节点的“区域”。例如,在CHORD技术中,一个特定DHT节点的区域可以解释为在环形DHT逻辑空间(例如,如附图3所示)中特定DHT节点和它的邻近节点之间确定的范围。通过散列法存储一个对象以产生一个关键字,随后使用该关键字,使用DHT逻辑空间中的特定节点ID来分配该对象。以相关的方式从DHT逻辑空间中检索该对象。相关联的区域最终映射到真实机器(例如,计算机装置和相关原文件存储系统),然而在节点和机器之间不需要存在一对一关系。
数据覆盖图实现在DHT的“上面”,在某种意义上它的对象与DHT逻辑空间中的节点相关联。进一步,一个应用使用下列P2P DHT的协议和服务,从数据覆盖图的数据结构中的一个对象遍历(或路由)到另一个对象。更具体地,对于参考的帧,考虑单机环境402的附图4的传统情况。在环境402中,数据结构包括两个对象,a404和b402,在由单机提供的存储器中实现。对象大致地表示任何类型信息的任何单元;在传统情况中,例如,一个对象可以对应于数据库记录,例如,一个文档。在附图4的例子中,对象a404包括一个指向对象b406的指针408。
相反,附图5示出了P2PDHT环境502的关联中的数据覆盖图的实现。在该环境502中,由于对象是构建在已由DHT提供的DHT节点构架“之上”,DHT逻辑空间中的单个节点是数据覆盖图中对象的“宿主”。例如,DHT节点x504是对象a506的寄主,DHT节点y508是对象b510的寄主。在上述例子中,对象a506引用对象b510。通常,对象a506可以通过存储用于访问对象b510的关键字来连接到对象b510。当创建对象b510时建立该关键字。然而,在附图5的情况中,引用方案包括两个域。第一域512包括一个从对象a506指向对象b510的硬连线地址。该域被称为a.foo.key。第二域514包括一个软状态引用,其标识作为对象b510的宿主的最后已知DHT节点(例如,节点y508)。该域被称为a.foo.host。因而第二域514作为访问对象b510的路由捷径。
由于数据覆盖图的节点可以分布在多个DHT节点上,该数据覆盖图本身可以看作是分布式数据结构。虽然数据结构是分布式的,仍然希望以一种方式存储它,即其对象不会在地理上过度广泛地分散。这可以通过生成a506和b510的关键字来实现,这样它们彼此接近。这样会更可能地造成,P2P DHT系统会使上述关键字与P2P系统的相同节点关联,或与P2P DHT系统中的紧密相关的节点关联。
数据覆盖图还提供了基元的集合,该基元用于操作其数据结构中的指针和对象。更具体地,上述基元包括一个程序(setref),用于建立从对象a到另一个对象b;一个程序(deref),用于返回由对象a所指向的对象;一个程序,用于册除(delete)由对象a所指向的对象。
由于数据覆盖图是在DHT系统的上面实现的,它的基元是DHT的服务。例如,该基元可以使用DHT_insert服务,用于将一个对象插入到DHT逻辑空间。该基元可以使用DHT_1ookup服务,用于使用一个预定的DHT路由程序来基于DHT逻辑空间中它的关键字而寻找寻找一个对象(例如由CHORD使用的指数指针查找结构。并且该基元还可以使用DHT_direct程序,用于如果预先已知存储对象的DHT节点时,访问该对象。换句话说,DHT_direct绕过通常的DHT_lookup路由程序,并且直接搜索节点,该节点作为已经出其关键字的对象的宿主。作为副作用,DHT_lookup和DHT_insert将会返回DHT中当前作为目标对象的宿主的DHT节点。
可以通过调整无论哪种用来创建对象的库存程序,使用数据覆盖图的潜在 服务,而实现一个数据覆盖图,以便使上述例行程序还建立如上所述作为对象的属性的指针。还可以调整上述库存程序来适应上述的基元以设置一个引用,通过引用返回一个被指向的对象,以及通过一个引用删除被指向的对象。
在DHT的上面构建数据覆盖图有很多优点。例如,当向DHT逻辑空间添加或删除DHT节点时(分别与真实的机器加入和离开P2P系统有关),DHT设计成自组织的。DHT还设计成响应于DHT节点添加到DHT逻辑空间或从DHT逻辑空间删除(例如重建节点间的连接,在节点间传送对象等),而自动地结束其自身。由于数据覆盖图是在DHT的上面实现的,其还可以采用自组织和自结束的特征。更具体地,数据覆盖图可以配置为以同样的比例自组织和自结束,作为潜在DHT。
进一步,可以输入多种应用程序以在P2P DHT的上面运行,给上述应用程序以无限大存储空间的效应(例如,给出这样的印象,即具有大尺寸包括DHT逻辑空间的节点的资源库)。该存储空间大致地包括参与P2P DHT系统的机器中的大量存储器。宿主路由捷径(例如,a.foo.host)利用数据覆盖图使应用程序的性能与下面的DHT系统无关。
在DHT中,假定一个非常大的逻辑空间(例如,160位)。节点以随机的ID加入该空间,并且因而均匀地分割该空间。例如ID可以是节点的IP地址上的MD5哈希信号。接下来,有规则的设置节点,允许依次严格地确定一个节点的负责的区域。设定p和q分别是节点x的前任和继任。一个节点的区域的确定就只是在其紧接的前任ID(不包括)和其自身的ID之间的空间。换句话说,zone(x)=[ID(p),ID(x)]。
附图6示出了将DHT看作一个逻辑空间的方法,其中每个节点在逻辑空间中占用一个逻辑位置,逻辑空间被分割了。同样地,每个节点需要记得它的一些邻近的邻居,以使该逻辑空间是连贯的。一台新机器选择一个随机ID并加入该DHT。该新机器联系任何一个节点,搜索以寻找一个位置,并且因而为自己分割了逻辑空间,以使树是自组织和自结束的。当一台机器的离开被其邻近的邻居机器监视到时,因此机器与DHT分离,该分离是当分离的机器不再发送“心跳”通信以表示它的存在时发生的,这时会发生自结束的情况。因而可以呈现一台新机器。
附图6还可以看作最基本地示出了相容的散列法如何指定区域到DHT节 点,其中使用了一个环、一个区域和一个基本路由表。为了靠着系统物力论加固该环,每个节点记录r个邻居到基本路由表的每个边,这通常称为叶集合。邻居们交换定期的通信以显示它们的存在(例如,“心跳”),以及当一个节点加入/离开或当有事件发生时,升级它们的路由表。在附图6中看到的基本环是一个简单的P2P DHT。如果想象该区域是常见哈希表中的哈希存储桶,那么该环就是一个DHT。给出一个空间中的关键字,通常可以解决正在负责的节点。在该简单环结构中的查找性能是O(N),其中N是系统中节点的数量。
根据上述内容建立的算法以O(1ogN)或者甚至常数状态(例如,路由表实体)达到O(logN)。代表性系统包括CAN分割方案、CHORD分割方案等。DHT的整个系统是以一个内务操作而自组织的,该内务操作代表性的顺序是O(logN)。并且,一个DHT是虚拟的空间,其中资源和其它实体(例如存储在DHT中的文档)相互依存。
B.SOMO树结构;数据覆盖图的实例
上述数据覆盖图提供了一个构架,用于在DHT之上建造一个任意的数据结构。该数据结构包括多个对象,组成了数据结构中的节点。该数据结构可以通过以不同方式将节点连接在一起,来假定任何形式的拓扑。进一步,该数据结构可以根据指定到其各个节点的操作,而实现不同的功能。下面的部分描述了被称为“自组织元数据覆盖图”,或简称为“SOMO”的数据覆盖图的例子。
SOMO数据结构是构建来假设一个树结构的拓扑。SOMO树结构具有根结点。该根节点可以具有一个或更多子节点,该节点依次分别具有其自身的子节点。SOMO树结构的末端节点称为叶节点。该叶节点分别与P2P DHT系统的DHT逻辑空间中各自的DHT节点相关联。
如下面要更详细地描述的,SOMO树结构的一个功能是从DHT节点提取元数据(其最终包括从实现P2P系统的机器提取数据),并且通过SOMO树传递该元数据到SOMO树结构的根节点。一个应用程序可以读取该元数据并且基于该元数据执行一些操作(元数据通常指与P2P系统中执行的操作相关闻的任何类型的信息,例如有关包括P2P系统的机器的性能的信息)。SOMO树结构还可以用于从SOMO树的根节点向下散发信息到P2P系统中的DHT节点以及相关的机器。因而,一般来说,SOMO树结构可以用作数据聚集(例如,集合)和数据广播。
附图7示出了构建在基础的DHT逻辑空间704之上的示例性SOMO树结构702。DHT逻辑空间704分割成很多区域,例如示例性区域706和示例性区域708。每个区域包括一个与其相关联的DHT节点,例如示例性DHT节点710。该DHT可以根据任何技术将DHT逻辑空间704分割成区域,例如由CAN分割方案、CHORD分割方案、PASTRY分割方案或任何类型的DHT分割方案提供的示例性技术。例如,使用CHORD分割方案,DHT逻辑空间704可以确定为一个环,该环具有分散在不同位置环绕它的节点,并且该区域可以相应于在环上分离相邻邻近DHT节点的跨度。
SOMO树结构702包括一个或更多在这里称为“SOMO节点”以将它们与DHT节点分辨开的节点。每个SOMO节点由符号s表示。附图7所示的示例性SOMO树结构702包括SOMO节点s712-726。节点s712-726形成一个反向的树形。也就是说,根节点712分叉成子节点714和子节点716。上述子节点分别具有它们自己的两个子节点;例如,子节点714包括子节点718和子节点720。虽然为了方便解说和讨论,简化了附图7中示例性SOMO树结构702的全部结构,SOMO树结构702最终结束在建立于DHT逻辑空间704中相应的DHT节点上的叶节点(例如,叶节点722、724、726)。通常,SOMO树结构702中SOMO节点之间的连接如附图7中的点线所示,其将SOMO节点连接在一起;该连接可以使用如前面“数据覆盖图”部分所述的引用方案来实现。
每个SOMO节点s具有一个与其相关联的区域。例如,根SOMO节点712包括区域728,其横越了整个DHT逻辑空间704。子节点716包括区域730,其横越了根节点712的区域728的一半。SOMO树结构702中更低的另一个子节点720具有区域732,该区域是根节点712的区域728的四分之一。相应地,添加到SOMO树结构702的体系中的相续节点s导致逐渐地密集分割根节点712的区域728。同样,由于展示密集(denser)分割空间704的DHT逻辑空间704的上述区域,SOMO树结构702的体系长得“更高”。通常,附图7通过横越SOMO节点的各自区域的长度的水平箭头,表现与各个SOMO节点相关联的区域。一个作为特定SOMO节点s的宿主的DHT节点由DHT host(s)表示。
如上所述,要实现P2P资源库,应当用系统内监视基础结构来增大DHT,这是因为对于一个大型系统来说,依赖外部监视服务是不切实际的。上述基础结构必须满足一些关键特性:(1)作为宿主DHT在相同规模上自组织;(2)完 全分布式以及自结束;以及(3)对于元数据的聚集和分散,要尽可能地精确。如下面描述的,这里被提议的SOMO是自下至上建造的。
上述监视基础结构可以有很多个拓扑。由于资源库的缘故,最重要的功能之一是聚集。因此,SOMO是一个k级的树,其叶子是种植在每个DHT节点。从末端聚集信息,并且向根部传播。因而,可以将SOMO看作从叶到根的“会聚记录”,并且随后(随意地)再次从根到叶返回传播。聚集和分散状态是由O(logkN)限制的,其中N是对象的总数。SOMO中的每个操作包括不多于k+1个相互作用,这使其充分地分布。通过使用软状态的原理,可以在O(logkN)时间生成数据。SOMO树在同样的时间范围内自组织和自结束。在某种程度上,SOMO可以看作响应的“新闻传播”,其结构和处理被所有节点共享。该实时全球“新闻”创造了资源库的效应。
B.1构建SOMO
SOMO的核心思想是,取代与多个单独机器中的每个共同工作并且将它们配置成一个体系,首先在一个逻辑空间中“绘制”一个树,随后制造从逻辑树到实际机器的映射。
如上所述,数据覆盖图可以生成和缩减,作为在基础DHT中制造的动态及无人管理调整的一个功能。由于SOMO树结构702是数据覆盖图的一个例子,这意味着SOMO树结构702也具有响应于基础DHT的调整而生成和缩减的能力。同样,SOMO树结构和其基础DHT一样,具有自我结束以平衡基础DHT中的调整的能力。下面的子部分描述了一种方式,其中SOMO树结构702的发展响应于其基础DHT中的改变。
B.2构建逻辑树
逻辑树的功能是作为引用框架,其帮助所有P2P库中的机器以完全分布式和自动方式组织成一个体系。其由一系列虚拟节点组成,每个节点具有附图8a所示的一个关键字,这还确定了它在一个有维DHT逻辑空间中的位置。
构建树的第一不变量是每个虚拟节点具有空间的一部分;虚拟节点的关键字是其具有的子空间的中心。假定DHT逻辑空间是[0,1],那么根虚拟节点的关键字是0.5。然后将根虚拟节点的空间(在该点的整个逻辑空间)均匀地划分成k个子空间,每个子空间在第一级有一个虚拟节点。递归地应用该划分方法,则构建了一个逻辑树。因此,第i级总共包括ki个虚拟节点,其中每个虚拟节点具 有1/ki大小的子空间。具体地,第i级的第j个(0<=j<2i)虚拟节点具有[j/ki,(j+1)/ki]的空间,并且关键/定位在(2j+1)/2ki,其中“k”是度而“i”是级。相应地,附图8a-8c所示的示例性过程是用于构建一个自底向上SOMO树结构。
B.3映射到A物理树
当每台机器在P2P环境中找到它的父机器时,就构建了物理树。这可以通过以如上所构建的逻辑树为杠杆以完全分布式的方式实现。由于所有机器具有逻辑树的全部知识,使用一个以级为次序树遍历算法,每台机器选择落入其区域的最高虚拟节点。该虚拟节点表示最终物理树中的该机器,并且同样地它可以称为机器x的代表性节点或repre(x)。逻辑树的确定性本性意味着x可以计算repre(x)的父虚拟节点的关键字。如附图8b所示,使用DHT查找,x作为该关键字的宿主的机器y,并且建立到y的连接。每台机器仅仅使用本地知识(区域和确定性局部树拓扑)执行同样的方法。通过一对局部关键字标识所有子一父连接:指向子机器的代表性虚拟节点和指向父机器的相应父虚拟节点。使用“心跳”保持该连接并且一直保持上述不变量。例如,如果由于新邻居的加入,x的区域分裂了,x会断开所有连接,其父一结束点不再属于该区域。在这时,该连接另一端的机器会通过执行早先概述的相同方法,重建它们的父机器,因而该拓扑自结束的一个例子见附图9a-9c所示的示例性方法。
上述方法可以理解为将机器映射到DHT的逻辑空间。每台机器对应于一个或更多树节点区域。每台机器从一个或更多与其对应的树节点区域,选择与最大尺寸的树节点区域相对应的树节点,作为其代表性节点。每个代表性节点选择另一个代表性节点作为其父节点,上述另一个代表性节点是对于相邻树节点区域来说具有最大尺寸的代表性节点。一个用于选择代表性和父节点,包括根节点的示例性方法,如附图8a-8c所示。如附图7所示,随着树的级数的减小,树节点区域的尺寸也减小,其中第一级是根节点,其具有相应于DHT逻辑空间的整个横越的树节点区域。
上述方法以完全分布式的方式将物理机器组织成一个树。进一步,树是以很高的概率作为k级并且对称的。代表性虚拟节点的确定在于它是落入机器区域的最高虚拟节点。由于父虚拟节点属于一些其它机器,每台机器都是连接着的。结果图没有任何的环,因为这会干扰代表性节点的确定。因而,它必须是一个树。逻辑树拓扑是确定性,只有一台机器的其它输入需要DHT空间中它自 己的区域。因而,树的构建是完全分布式的。逻辑树是k级对称树。物理树是否也是k级并且对称的,主要由区域分布所决定。由于DHT中机器的ID是随机生成的,结果树有很高的概率是k级并对称的。
SOMO可以自动地处理成员的变化,而且付出最小的代价,因为每个连接是由一对逻辑点决定的:第一点是代表性虚拟节点,并且是由其DHT节点确定的,第二点也是由于第一点的给出而是确定性的。因而,只要保持该不变量,可以在成员变化的任何时候重建拓扑。结果,当新成员加入该库时,SOMO树生长,当如附图9a-9c所示,同位体分离时,SOMO树缩减。相应地,用于结束自底向上SOMO树结构的示例性过程如附图9a-9c所示。
如果需要将一台具有最大容量的机器放置在逻辑树的顶端,节点ID可以改变,而不是随机地生成。随后通过SOMO制造向上的合并分类来标识最大容量的节点。于是该节点将自身ID改变成当前具有SOMO根逻辑点的节点(即,整个空间[0,1]的0.5),这有效地改变了作为根的机器,而不扰乱其它同位体。通过首先在逻辑空间中操作,该自最优化特性成为可能。
C.元数据集合和分散
作为基础结构的SOMO既不影响聚集的数据,也不影响被调用来处理聚集的数据的操作。由于建造资源库的缘故,每台机器只聚集自身的资源度量,使其资源度量与从其子节点接收到的相结合,然后将它们并入其父节点。传送的数据应当是软状态的。同样,作为最优化,报告可以是连续报告的“德尔塔”形式。
SOMO的特性是由物理树的高度决定的,这接下来是由逻辑数的参数(即k)和逻辑空间中DHT节点的分散所决定的。由于节点的ID是随机的,物理树的高度是O(logkN)。因而,给定一个数据报告间隔T,从SOMO叶和花到其根聚集信息的最大延迟是logkN·T。当SOMO的层级之间的流完全非同步时,导出该范围。如果SOMO的上部节点对报告的呼叫立即触发了其子节点的相同动作,那么等待时间可以减小到T+thop·logkN,其中thop是宿主DHT中一个往返的平均等待时间。非同步流的等待时间范围是logkN·T,因而实际中同步形式的范围是T(例如,5分钟)。注意O(thop·logkN)是绝对低的范围。对于2M节点并且k=8以及每DHT节点间路径200ms的代表性等待时间,SOMO根将具有1.6s延迟的全局浏览。
C.1应用SOMO树结构
如上所述,SOMO树结构702的示例性使用是从由DHT逻辑空间704表示的P2P系统的物理机器中聚集信息。SOMO树结构702的另一个示例性使用是散布信息到上述物理机器。所聚集的信息可以是元数据。元数据描述了关于P2P系统的操作的信息,例如反映了其物理机器的性能的信息。散布到物理机器的信息可以表现能够管理物理机器的操作的指令。因而可以将SOMO机制解释为从叶节点到SOMO根节点的聚集传送,以提供数据的聚集,并且执行一个返回到SOMO叶节点的多点传送以提供数据散布。
附图10a示出了DHT的聚集资源的能力与SOMO的结合,该结合共同地制造一个由一个DHT和一个SOMO组成的P2P资源库。简单来说,DHT不是用于共享数据,而是用作将大量资源采集到一起的有效方式,伴有极少或没有管理代价,以及没有可量测的阻碍。SOMO是在DHT上分层次的自组织“新闻广播”。随后O(logN)时间的聚集资源状态创建单个资源库的效应。附图10a所示的过程示出了资源对偶的登记、统计数字的聚集、将聚集的统计数字聚集成一个快照,然后确保结果动态数据库能够被应用程序查询。P2P资源的比例和组成需要每一层彻底地自组织、自扩展和自结束,以使实现很小的管理代价。
例如,附图10b表示一个方案1002,其中SOMO树结构1004用于通过DHT逻辑空间1008,从P2P系统中的物理机器1006聚集信息。更具体地,叶SOMO节点从其宿主DHT节点检索需要的信息(作为副作用,该方法还可以重启一个子SOMO节点,如果它由于其宿主DHT节点的崩溃而已经消失)。一个或更多应用程序1010可以为任何已确定的目的调用该聚集操作(例如为了性能监视的目的,也就是说,聚集有关包含P2P系统的物理基础结构的不同负载和容量的信息)。
更具体地,附图10b示出了SOMO树结构1004的配置,该配置通过示出具有箭头的线来采集信息,该箭头从每个SOMO节点指向其对应父SOMO节点。以这种方式,信息从SOMO树结构1004的叶SOMO节点向上传送到其根SOMO节点。应用程序1010可以从根SOMO节点提取从整个P2P系统挑选信息的全部报告。该报告可以包括原始未组织数据。可选地,该报告可以包括合成并经过分类的数据,证明SOMO节点已配置为在将它们聚集的信息传送到它们相应的父SOMO节点之前,先执行该功能。该SOMO节点可以配置为通过 配置“op”成分来执行该任务以执行合并及分类。例如,成分op可以确定一个操作,特定SOMO节点可以在传送经过它的信息上执行该操作(在数据聚集模式或数据散布模式中)。例如,参照附图7,op可以指定在使用SOMO树结构702聚集信息的过程中,可以执行合并分类操作。由于包括op成分,SOMO树结构702可以以分布方式或并行方式执行任何功能。因而,SOMO树结构702还可以看作一个机构,用于提供分布式并行处理框架以实现任何类型的功能性。这仅仅是示例性的例子。SOMO节点可以在信息通过SOMO节点到根SOMO节点的路径中,在该信息上执行其它操作,例如多种算术操作。
下面的伪码提供了一种技术,用于使用SOMO树结构1004来聚集信息:
伪码:SOMO聚集程序:
get_report(SOMO_node s){
Report_type rep[l..k]
for i∈[l..k]
if(s.child[i]≠NULL)//retrieving via DHT
rep[i]=deref9s.child[i]).report
s.report=s.op(rep[])
}
要聚集系统元数据,SOMO节点可以通过从其各自的子节点要求数据,周期地执行上述程序。该聚集程序可以从SOMO树结构1004返回到摘要特定信息。更具体地,SOMO树结构1004的分层次的本性有利于使用复杂范围的查询以发现与给定逻辑DHT空间区域相关的信息。例如,如果k是2,那么需要检索DHT逻辑空间的第一个四分之一部分的状态报告,应用程序1010只需要获取从第二级SOMO树结构1004的左边子SOMO节点1012的一个报告。另一个有用的实现包括在SOMO节点注册查询,这从本质上将SOMO机构转换成了公开预订(“pub-sub”)基础结构。
附图10b示出了方案1002,其中SOMO树结构1004用于通过DHT逻辑空间1008将信息散发到P2P系统中的物理机器1006。一个或更多应用程序1010可以为任何特定目的(例如到物理机器1006的散发指令)而调用该散发操作。在附图10b中通过示出了具有箭头的线而表示散发信息的SOMO树结构1004的配置,该箭头从父SOMO节点向下指向到其各自的子SOMO节点。如此, 信息从SOMO树结构1004的根SOMO节点向下传播到其叶SOMO节点。该信息可以通过SOMO树结构1004的分枝传播,而无需SOMO节点的调整。可选地,由于它们的op成分,SOMO节点可以在信息被传送到它们相关的子SOMO节点之前,在信息上执行任何类型的操作。同样,如同数据聚集的情况中已描述过的,有可能通过只调用选择的SOMO树结构1004的分枝,来将信息散发到DHT逻辑空间1008中的仅仅一部分。
D.应用级多点传送(ALM)
可以实现另外的应用程序和数据覆盖图的变化以及SOMO树结构。例如,在一个实施例中,SOMO机制可以通过提供算法用于应用级多信道广播(ALM),该算法作用于从SOMO树结构生成的元数据,或生成穿过SOMO树结构向下传播的信息。ALM技术可以通过在附图10b所示的应用程序1010中提供适合的功能性而实现。附图11a-11b通过例子示出了用于ALM的示意性安排。
P2P资源库的可用性提供了最优化的可能性。如附图11a-11b所示,当识别了另外空闲的但是适合于帮助的同位体时,可以做出最优化。一旦已识别了适合的同位体时,可以结合成具有更佳性能的拓扑。因而,附图11b示出了对于附图11a中的安排的改善。该改善是使用资源库中的帮助节点而作出的。在附图11a-11b中,环表示应用级多信道广播的原始成员,而矩形表示具有更高度数的可用同位体。最优化可以针对一个市场需求系统,以便由对等系统中具有最多可用资源的机器来执行最需要资源的任务。
D.1为ALM生成资源度量
对于很多P2P应用程序,资源统计数字不只包括CPU负载和网络活动性,还包括更复杂的资源统计数字,其不能局部地从机器导出。相关的例子是ALM。假定需要安排一个会话,并且通过查询SOMO已得到潜在帮助同位体的一个大的列表,随后必须选择一个在附近并且有足够带宽的同位体。如果只给出了该同位体的IP地址,在它们之上查询以寻找它们的近邻的过程既浪费时间又倾向于犯错。下面的讨论将集中在作为问题的缓和的IP地址和带宽的度量上。将会解释这些属性是如何通过调节DHT节点之间的相互作用而生成的,上述相互作用保持了逻辑空间的完整性。
D.2码坐标估计
为了寻找基于坐标的等待时间的估计,latency(x,y),必须计算distance(coord(x),coord(y)),其中coord是维数.欧几里得空间的网络坐标。每个节点必须提供它的“心跳”给其叶节点,以连续地保护DHT空间。如果每个节点随机地选择去肯定响应来自其叶集合的节点中的心跳讯息,那么随着时间过去它会具有一个到其叶集合邻居的测量的延迟向量dm。在心跳讯息中,每个节点还报告它的当前坐标。因而,一个预定延迟向量dp同样可用。节点x通过执行向下简化算法来升级其自身坐标,并且极小化函数: E ( x ) = Σ i = 1 , r | d p ( i ) - d m ( i ) | .  局部地实现最优化,并且只升级x自身的坐标,这将会在随后的心跳中散发到x的叶集合邻居。所有节点周期性地执行该方法,其中节点坐标和测量并预定的延迟向量被连续地升级。
D.3瓶颈带宽估计
一个同位体的网络带宽对于很多运行在P2P资源库上的应用程序来说是另一个重要的度量,因为瓶颈带宽和吞吐量之间有关联。因此,瓶颈带宽可以作为吞吐量的预报器。假定瓶颈连接在最后的节点间路径上。对于每个节点,其溯流的瓶颈带宽估计为从该节点到其叶集合成员的测量瓶颈带宽的最大值,这由叶集合成员的节点的向上连接带宽和向下连接带宽限定。基本思想是,如果一个邻居的向下带宽大于该节点的向上带宽,则估计值是精确的。因此叶集合节点越多,得到精确估计值的机会越大。同样的原因,节点的下游瓶颈带宽估计为从其叶集合节点到其自身的瓶颈带宽的最大值。
测量瓶颈带宽是公知的。例如,在包对偶技术中,两个尺寸为S的包从源节点紧接地发送。接收者测量其中的时间差量T,并且估计来自源的瓶颈带宽是S/T。
“心跳”之上的叶集合节点的合作使包对偶技术自然地展开。周期地,节点x紧接地发送两个心跳讯息到邻居y,填充每一个,以便使它们的尺寸足够大(比如说1.5KB)。“y”现在具有了从x到其自身在路径上的瓶颈带宽的估计值。该值将会在下一个到x的心跳中捎带确认。类似地,y进行与x相同的探查。在x从其叶集合成员聚集到足够的测量带宽后,可以以如上方式估计其自身的带宽。
D.4在P2P资源库中预定ALM会话
现在将证明如何为多样的同步ALM会话最好地利用P2P资源库。最终目 标是使会话达到最佳性能,并且有资源库中所有可用并且足够的同位体。会话的性能是由特定的QoS确定的。此外,高优先权的会话会适当地需要更多共享的资源。这里,重点放在从小到中等的会话尺寸上,其中认为QoS是一种需求(例如,视频会议)。还假定这里有静态的成员,其中参与者的原始集合为一个给定的会话“s”表示为M(s),然而该算法也可以扩展以适合动态成员。
会话的任务管理者要运行调整的启发式的算法以设计ALM的拓扑。要利用库中的空闲资源,任务管理者询问SOMO以得到候选者的列表。该列表的项目不仅包括可用的资源,还包括其网络坐标和带宽。当制定设计时,任务管理者向外联系帮助同位体,以预定它们的使用。竞争任务会只通过它们各自的优先权解决它们的竞争。
对于ALM,存在关于最优化的几个不同标准,象带宽瓶颈、最长等待时间或等待时间的变化。所有成员的最大等待时间在这里用作树构建算法主要对象,由于其可以大大地影响终端用户的感觉。每个节点在通信会话的数量上有一个其可以处理的范围,这里称其为“度”。这会导致有限的访问带宽或终端系统的工作量。执行最优化,以便由对等系统中具有最多可用资源的机器执行最需要资源的任务。
为一个给定会话定义QoS可以在形式上如下所规定:
定义1.度限制,最小高度树问题(DB-MHT)。给出一个无目标的完成图表G(V,E),一个度范围dbound(v),其中v∈V,每个边的等待时间函数l(e),e∈E。寻找G的一个横越树T,以便对于每个v∈T、v的每个度满足d(v)≤dbound(v),并且T的高度(测量为从根开始的聚集等待时间)是最小的。
使用资源库,可以扩展QoS的上述定义。帮助节点H的扩展集合添加到图表,其中对象通过添加最小数量的帮助节点,要达到与不使用H导出的最优化设计相关的最佳解决方案。
D.5安排一个单一ALM会话
下面将讨论安排一个单一ALM会话的方法,其作为当利用一个资源库时最优化单一ALM会话的算法。该算法具有O(N3)性能范围,并且能为数以百计的节点在不到一秒的时间内生成一个解决方案。例如,见下面的表格A,没有虚线框里的码。在这里称为“AMCast”的该算法,首先开始于根,并且将其添加到当前解决方案的集合中。接下来,其余节点的最小高度通过寻找它 们在解决方案中最近的潜在邻居而计算,并服从度的限制。该循环的返回通过吸引解决方案中具有最小高度的节点。继续该处理,直到所有节点最终包括在结果树中。要保证得到以其为开始的最佳可能树,可以通过进一步调整或调节量度标准来增加算法。例如,为近似一个全局最优算法,调整或调节可以包括以启发式的移动集合来调节树。上述移动包括:(a)为最高节点寻找新邻居;(b)用另一个叶节点交换该最高节点;以及(c)以另一个子树交换其根是最高节点的父节点的子树。
在搜索有益的帮助节点时,算法包括两点考虑:(1)触发该搜索的时间;以及(2)判断一个添加的标准。通用机构由表格A中标注为“A部分”的框中的pseudo码所描述,下面:
表格A
ALM(r,V){//v==M(s),ris the root
for all v∈V//initialization
height(v)=l(r,v);parent(v)=r
T=(W={r},Link={}
while(W<V){//loop until finish
find u∈{V-W}s.t.height(u)is minimum
========SectionA===============
if(d(parent(u))==dtbound(parent(u)-1)
h=find_helper(u)
if h≠NULL{ //integrate the helper node
W+={h};Link+={h,parent(u)};
W+={u};Link+={u,h};
}else
============================
W+={u};Link+={u,parent(u)};
for all v∈{V-W}{//re-adjust the height
height(r)=∞
for all w∈W
ifd(w)<dbound(w)&&height(v)>height(w)+1(w,v)
height(v)=height(w)+1(w,v);parent(v)=w
}
}
adjust(T)
returnT
}
假定u是AMCast算法要添加到解决方案中的节点,并且parent(u)是其父节点。当parent(u)的自由度减小到1时,触发用于附加节点h的搜索。如果该h存在于资源库中,那么h变成u的父节点,并且替代u作为原始parent(u)的子节点。不同的形式只在h的选择标准方面变化,但是最优化的该分类可以称为临界节点算法。“临界”意味着,对于一个特定节点,有根据原始算法改进的最后机会。
不同的算法可以用于搜索h。该算法的第一个改变是寻找一个另外的节点,其最接近父节点并且有足够的度(例如,可用“4”)。假定(a,b)是两个任意节点a和b之间的等待时间。下面启发式的收益甚至更好地导致如表格B所示:
1(h,parent(u)+max(1(h,v)))is mininmum
where v satisfies parent(v)=parent(u) &&\\条件1
dbound(h)≥4&&    \\条件2
1(h,parent(u))<R    \\条件3
这里,v可以是u的同属。这里的思想是,由于所有的上述v将会潜在地是h的未来子节点,l(h,parent(u))+max(l(h,v))最可能在h加入(条件1)后影响潜在的树高度。这样的一个帮助节点应当具有足够的度(条件2)。最后,要避免“垃圾”节点,它们很遥远,即使它们具有高的度,施加界限R:h必须在距离父节点parent(u)R以外的范围内(条件3)。要执行该处理所必需的输入参数包括网络坐标,以便我们可以计算任意对偶之间的等待时间,以及每个节点的度。通过使每个节点在发送往SOMO的报告中包含它们的网络坐标以及带宽,如附图12所示,使得上述处理成为可能,该报告是调度程序所使用的SOMO报告的清楚的呈现。因而,每个节点具有一个特定的负载(可用CPU循环)、一个特定存储器容量(RAM,磁盘空间,高速缓冲存储器),还具有一些网络 信息,类似节点的所在(IP地址)和该节点拥有多少可用带宽。附图10a示出了在附图12所示的SOMO报告中使用的数据的聚集。
D.6组织多种ALM会话
当上述的部分为一个ALM会话描述了单机时序安排算法,该会话讨论了如何处理多种现行会话,其中具有较高优先权的会话优先地指定更多资源,将资源库作为整体的利用被最大化。
所有会话在随机的时间开始和结束。每个会话具有1到3之间的整数值优先权。优先权1是最高一类。最大数量的同步会话从10到60变化,每个会话具有尺寸为20的未覆盖成员集合。因而,当有60个现行会话时,所有节点会属于至少一个会话。就是说,现行会话的原始成员的部分从17%到100%之间变化。计算帮助节点,一个会话代表性地不止使用原始成员。同样,具有较高度的节点会包括在不止一个会话中。
该最优化多种ALM会话的方法的潜在原则类似于一个组织良好的社会:以全局为条件,可以得到准时并且可信的知识,最好是让每个任务凭它们自己的证书(也就是,它们的优先权)竞争资源。该纯市场主导模式允许在不需要任何类型的全局调度程序的情况下实现该目标。
对节点上适当的优先权的设定要采取额外的考虑,上述节点包括在一个会话中。在合作的P2P环境中,如果一个节点需要运行一个包括其自身作为成员的任务,使该任务具有该节点中的最高优先权是公平的。因而,对于具有优先权L的会话s,其拥有对于M(s)中的节点的最高优先权(也就是1st优先权),并且L在别处(即,对于M(s)之外的任何帮助节点)。这保证了每个会话以相应于AMCast+adju算法的较低限度运行。假定s是系统中的唯一会话,得到上限(即Leafset+adju)。
在以前,ALM会话的根是任务管理者,其执行树拓扑的设计和调度。每个会话基于由SOMO提供的系统资源信息,使用叶集合调整算法来彻底地在其自身上调度。对于具有L优先权的会话,任何由具有比L低的优先权的任务所占用的资源都认为对它是可用的,类似地,当一个现行会话在其当前计划中丢失了资源,它需要再次执行调度。每个会话还会周期性地重新运行调度,以检查是否有更好的设计,该计划使用最近自由的资源,比当前的计划好,如果这样就转换到上述更好的设计。
要促使SOMO聚集和散布资源信息以帮助每个任务管理者的计划,像以前每个节点在它的发送到SOMO的报告中发布例如网络坐标等信息。然而,它的度被分解成现行会话带有的优先权。这概括在度数表格C的下面两个例子中:
度数表格C:
  Dbound(x)   4   Dbound(y)   2
  x.dt[1]   2(S4)   y.dt[1]   2(S5)
  x.dt[2]   0   y.dt[2]   0
  x.dt[3]   1S12   y.dt[3]   0
|------------x的度数表-----------------|-----------y的度数表-------|
在度数表格C中,示出了两个节点的度数表格。x的全部度是4,由会话s4采用为2度,s12采用为另一个1度,给x留下了一个自由度。另一方面,y只具有2度,它们都被会话s5采用。每当发生影响了节点的度分割的调度时,度数表会升级。度数表,如前面所述,是通过SOMO聚集的,并且对于任何运行的查询任务来说是可用的。度数表格C示出了对于一台机器来说,有可能在ALM会话的不同流中分割其自身,以便通过划分带宽,能够同步地完成某些事情。同样地,度数表格C示出了能拥有多少全部的度,以及通过在不同任务中划分容量可以拥有多少合计容量,以便可以将它们调度成不同的优先权会话。
当在应用级多信道广播中有更多的会话并且全部资源变得不足时,性能会下降。然而,较高优先级的任务可以比较低优先级的任务维持更好的性能。同样,当资源在激烈的竞争之下时,较低优先级的任务会丢失更多的帮助节点。
D.7具有ALM会话的资源库
要创建一个资源库,不可避免地采用分层次的结构以保证及时的集合。例如,在一个两级体系结构中,其中IP级多信道广播用于聚集一个位置上的统计数字,随后结果被聚集到一个中央地点,这里讨论因素以制造可行的广域资源库,也就是(1)P2P DHT的自组织能力的结合,以及(2)一个系统内部、自扩展监视基础结构。
D.8使用资源库最优化ALM
ALM是用于P2P DHT的有利应用程序。然而,要最优化ALM,应当利用资源库。给定一个资源库,最优化可以由一个单一ALM会话完成,也可以是不 插手的、市场主导的方法中多种同步的ALM会话的最优化。然而,注意ALM只是一个用于P2P资源库的应用程序。不过,对于与集中匹配机制相比较而言更为分布式的方法来说,提倡两个步骤的方法:(1)应用程序指定每个任务调度;以及(2)通过任务中的调整结合市场主导的公平竞争。
E.用于实现一个P2P参与者的示例性计算机环境
如上面A部分所述的数据覆盖图,是伸展在多台机器之上的数据结构,并且也许伸展在P2P系统中其它的基础结构之上。因而,P2P系统中每个参与者可以看作实现了数据覆盖图的一部分。要达到该效果,每个参与者可以存储要创建数据覆盖图以及与其相互影响所必需的码和数据。该码和数据可以存储在每个参与者的易失陛和/非易失性存储器中(将在下面描述)。
例如,附图13示出了作为计算机1342的一个示例性P2P参与者的高级视图。该计算机1342相应于一个通用计算机或服务器类型计算机,并且连接显示装置1374。然而,计算机1342可以使用其它类型的计算装备来实现。例如,虽然未示出,计算机1342可以包括手持或膝上型装置、设定的机项盒、大型计算机等。
示例性计算机1342可以用于实现上述的处理。计算机1342包括一个或更多处理器或处理单元1344、一个系统存储器1346和一个总线1348,其连接了不同的系统组件,包括系统存储器1346到处理器1344。计算机1342中的一个或更多存储器可以用于存储码和数据,该码和数据用于实现部分数据覆盖图,例如SOMO树结构的一部分。
总线1348表示一个或更多不同类型的总线结构,包括存储器总线或存储器控制器、外围总线、加速的图形端口和使用多种总线体系结构中任一种的处理器或本地总线。系统存储器1346包括只读存储器(ROM)1350和随机访问存储器(RAM)1352。一个基本输入/输出系统(BIOS)1354存储在ROM1350中,其包括帮助在计算机1342中传送信息的基本路由,例如在启动过程中。
计算机1342进一步包括一个硬盘驱动器1356,用于从一个硬盘(未示出)读出或写入,一个磁盘驱动器1358,用于从可移动磁盘1360中读出或写入,以及一个光盘驱动器1362,用于从一个可移动光盘1364中读出或写入,例如CDROM或其它光学媒介。硬盘驱动器1356、磁盘驱动器1358和光盘驱动器1362通过SCSI接口1366或其它适合的接口连接到总线1348。驱动器和与其连接的 计算机可读媒介提供了用于计算机1342的计算机可读指令、数据结构、程序模块和其它数据的非易失性存储器。虽然这里所述的示例性环境使用了硬盘、可移动磁盘1360和可移动光盘1364,本领域的技术人员可以理解其它类型的可存储计算机可读数据的计算机可读媒介也能够在该示例性操作环境中使用,例如磁带、flash存储卡、数码视频光盘、随机访问存储器(RAM)、只读存储器(ROM)等。
很多程序模块可以存储在硬盘1356、磁盘1360、光盘1364、ROM1350或RAM1352中,该模块包括操作系统1370、一个或更多应用程序1372(例如网页请求追踪应用程序140)、高速缓冲存储/其它模块1374,以及程序数据1376。操作系统1370可以包括这里所述的网页请示事件追踪工具(例如追踪基础结构144)。用户可以通过例如键盘1378和点击装置1380等输入装置,输入命令和信息到计算机1342。其它的输入装置(未示出)可以包括微型麦克风、操纵杆、游戏手柄、圆盘式卫星电视天线、扫描仪等。上述以及其它输入装置通过连接到总线1348的接口1382,连接到处理器单元1344。监视器1384或其它类型的显示装置也通过一个端口连接到总线1348,例如视频适配器1386。除了监视器外,个人计算机代表性地包括其它外围输出装置(未示出),例如扬声器和打印机。
计算机1342通常在网络环境中运转,其中使用逻辑连接到一个或更多远程计算机,例如远程计算机1388。远程计算机1388可以是个人计算机、另一个服务器、路由器、网络PC、同位体装置或其它常见网络节点,并且典型地包括很多或全部上述与计算机1342相关的组件。附图13所示的逻辑连接包括一个局域网(LAN)1390和一个广域网(WAN)1392。上述网络工作环境在办公室、企业范围计算机网络、企业内部互联网和互联网里是常见的。
当在LAN网络工作环境中使用时,计算机1342通过网络接口或适配器1394连接到局域网。当在WAN网络工作环境中使用时,计算机1342典型地包括调制解调器1396或其它用于在例如互联网等广域网络1392上建立通信的设备。调制解调器1396可以是内置的或外置的,通过串行端口接口1368连接到总线1348。在网络环境中,所示的与个人计算机1342相关的程序模块,或其一部分,可以存储在远程存储装置中。可以理解所示的网络连接是示例性的,可以使用其它在计算机之间建立通信连接的设备。
通常,计算机1342的数据处理器依靠指令来编程,该指令在不同时间存储在该计算机的不同计算机可读存储媒介。例如,程序和操作系统典型地分布在软盘或CD-ROM中。从这里,它们可以安装或装载进入计算机的第二个存储器。在运行时,它们至少部分地被装载入计算机的主要电子存储器。当上述媒介包括用于实现块的指令或程序时,这里所述的本发明包括上述和其它的不同类型的计算机可读存储媒介,将在下面结合微处理器或其它数据处理器来描述该块。当计算机被根据这里所述的方法和技术而编程时,本发明还包括计算机本身。
为了解释,程序和其它例如操作系统等可执行程序组件在这里被称为离散块,虽然上述程序和组件在不同时间驻留在计算机的不同部件中,以及由计算机的数据处理器执行。这里所述的任何功能可以由软件、固件(例如,固定逻辑电路)、手动处理或上述实施例的结合。这里使用的术语“逻辑”或“模块”一般代表软件、固件或软件和固件的结合。例如,在软件实现的情况中,术语“逻辑”或“模块”表示当在处理装置或装置(例如,一个CPU或多个CPU)中执行时,执行特殊任务的程序码。该程序码可以存储在一个或多个计算机可读存储装置中。将逻辑和模块示例性地分离成不同的单元,可以反映一个真实物理群和上述软件和/或硬件的分配,或者可以相应于由单一的软件程序和/或硬件单元执行的不同任务的概念的分配。该示例性的逻辑和模块可以位于一个地点(例如,由一个处理装置实现),或者可以分布在多个位置。
H.结论
要创建一个P2P系统资源库,P2P DHT的自组织容量与自扩展、分层的系统内监视基础结构相结合。要实现自扩展和稳定,基础结构必须是由DHT建立在虚拟空间中的逻辑系统,并且因而映射到参与者。这里已描述了与DHT结合的SOMO是如何有效地创建一个资源库。
可以利用资源库的能力以利用经由SOMO的准时精确的新闻广播,每个任务安装一个特定应用的调度程序,因而采用了无干涉、市场主导的方法以使用公平竞争调整任务。
描述了用于在P2P系统的DHT之上构建一个数据结构的实施例。特别地描述一个特定分层树结构,其用于在P2P系统中散发信息,并且用于从P2P系统中聚集信息。
这里将特定操作描述为以特定顺序执行的连续的不同步骤。上述实施例是示例性的,没有限定的作用。这里描述的特定步骤聚合在一起并且在单一的操作中执行,并且特定的步骤可以以一个顺序而执行,该顺序与本公开所提出的例子中使用的顺序不同。
进一步,本发明提供了二选一的很多例子(例如,情况A或情况B)。此外,本公开包括这样的情况,其中将选择结合在一个实施例中(例如,情况A和情况B),即使本公开没有特别地在每个例子中提到这样的结合例子。
本发明可以在不背离其精神和实质特征的情况下,以其它特定的形式实施。所述的实施例可以只看作示例性并且非限制性的。因而,本发明的范围由附加的权利要求而不是上面的描述界定。在权利要求的相等含义和范围中的所有改变都包括在它们的范围中。

Claims (24)

1.一种用于构建对等系统的方法,该方法包括:
构建一个数据覆盖图,该数据覆盖图作为对等网络的分布式哈希表(DHT)中所包括的逻辑空间之上的数据结构;其中,所述逻辑空间包括具有多个相关的DHT区域的多个DHT节点;
在所述数据覆盖图中构建具有多个级的树的拓扑,每个级包括与各自的DHT节点相关联的一个或多个树节点,其中:
树的第一级包括具有单一树节点区域的单一树节点,该单一树节点区域对应于DHT的逻辑空间的整个范围,并且被逻辑地划分成多个树节点区域,所述多个树节点区域分别相应于:
树的每一级的树节点;以及
DHT的逻辑空间的局部;
每个所述树节点包括一个关键字成分,所述关键词成分用于标识与其各自的树节点区域相关联的一个关键字;
将多台机器映射到DHT的逻辑空间,其中:
每台机器对应于树节点区域中的一个或更多;
每台机器从与其对应的一个或多个树节点区域中选择其代表性节点,所述代表性节点对应于最大尺寸的树节点区域;并且
每个所述代表性节点选择另一个代表性节点作为其父节点,所述另一个代表性节点是具有较大尺寸的邻近所述树节点区域的代表性节点;
所述方法还包括:
在每台所述机器处聚集元数据;
将在所述机器处聚集的元数据发送到相应的代表性节点;
聚集被每个所述代表性节点接收到的元数据;并且
将被每个所述代表性节点聚集到的元数据发送到相应的父节点;以及聚集在树的第一级的单一树节点处接收到的元数据;所述方法还包括:
对在树的第一级的单一树节点处聚集到的数据进行处理;并且
将处理后的数据从树的第一级的单一树节点并经由各自的父节点和代表性节点发送到每台所述机器。
2.如权利要求1所述的方法,其中:
元数据包括与每台所述机器的运作相关的信息;并且
处理过的数据包括能够管理每台所述机器的运作的指令。
3.如权利要求1所述的方法,其中:
对应于DHT的逻辑空间的全部范围的单一树节点区域被平均划分成k个树节点区域;并且
树的在第i级第j个的树节点具有一个树节点区域,其中:
尺寸为[j/ki,(j+1)/ki];并且
关键字为(2j+1)/2ki;其中0<=j<ki
4.如权利要求3所述的方法,其中:
每个所述关键字具有一个值,该值是坐标的函数,其标识了代表性树节点区域的中心;
i级的树包括ki个树节点;并且
每个树节点的树节点区域具有的尺寸是1/ki
5.如权利要求1所述的方法,进一步包括,对于每台所述机器,计算该机器的各自的代表性节点和父节点的关键字。
6.如权利要求5所述的方法,其中各自的关键字的计算进一步包括使用所述机器通过在DHT中的查找来获取信息,其中所述机器使用信息与相应于代表性节点的机器建立通信,所述信息具有相应的所述代表性节点的关键字。
7.如权利要求1所述的方法,进一步包括:
在每台所述机器,接收来自邻近的所述树节点区域中的每台所述机器的心跳传送;并且
当没有及时接收到任何所述心跳传送时,通过下列步骤证明邻近的所述树节点区域中相应的所述机器的消失:
重复DHT的提供;
重复构建数据覆盖图作为在DHT逻辑空间之上的数据结构;
在重建的数据覆盖图中重复构建多级树;并且
重复多台机器到DHT逻辑空间的映射。
8.如权利要求1所述的方法,其中每个所述代表性节点和每个所述父节点被选择为资源可用性的最优化函数。
9.如权利要求8所述的方法,其中最优化函数是基于从组中选择的标准的,该组是由网络坐标、带宽瓶颈、最大等待时间和等待时间的变化组成的,其中最需要资源的任务由对等系统中拥有最多可用资源的机器执行。
10.如权利要求1所述的方法,其中:
DHT管理将对象插入对等系统,以及从对等系统移除对象;以及
该逻辑空间包括具有相关的多个DHT区域的多个DHT节点;并且
DHT的数据覆盖图是通过下列步骤建立的:
将数据结构中的对象与DHT节点相关联;并且
在数据结构的对象之间建立连接。
11.如权利要求10所述的方法,其中每个连接包括:
第一域,其提供从第一对象指向第二对象的硬连线指针;并且
第二域,其提供从第一对象指向DHT节点的软状态指针,该DHT节点是第二对象的宿主。
12.如权利要求10所述的方法,其中数据覆盖图的建立使用了:
第一基元,用于设定一个引用,该引用建立了到DHT中一个对象的指针;
第二基元,用于返回由指针所引用的对象;以及
第三基元,用于删除由指针引用的对象。
13.如权利要求1所述的方法,其中数据覆盖图中的每个树节点包括一个操作成分,其确定了在经过该树节点的数据上执行的一个操作。
14.如权利要求1所述的方法,其中数据覆盖图中每个树节点包括一个报告成分,其确定了要使用该树节点生成的报告类型。
15.如权利要求1所述的方法,其中:
树的第一级包括作为树的根节点的树节点;以及
该根节点对应于一个树区域,该树区域对应于DHT的逻辑空间的全部范围。
16.一种对等系统,包括多个以对等方式相互作用的机器,包括:
一个DHT的逻辑空间,包括具有多个相关的DHT区域的多个DHT节点,其中DHT管理向对等系统插入对象,以及从对等系统移除对象;
数据覆盖图作为在DHT逻辑空间之上的数据结构,其中:
DHT的数据覆盖图:
具有与DHT节点相关的数据结构;以及
具有在数据结构的对象之间建立的连接;
数据覆盖图具有树的拓扑,该树包括多个级并且包括与各自的所述DHT节点相关的多个树节点;
树节点包括一个根节点,其具有相应于DHT逻辑空间的一个树节点区域;
根节点的树节点区域逻辑地划分成多个树节点区域,所述多个树节点区域分别对应于:
在树的每一级的树节点的数量;以及
分布式哈希表的逻辑空间的一部分;
每个所述树节点包括一个关键字成分,其标识与其各自的树节点区域相关的一个关键字;
将DHT的逻辑空间映射到多台机器;
每台机器对应于一个或更多树节点区域;
每台机器从其对应的一个或多个树节点区域中,选择其代表性节点,所述代表性节点对应于最大尺寸的树节点区域;并且
每个所述代表性节点选择另一个代表性节点作为其父节点,所述另一个代表性节点是具有较大尺寸的邻近所述树节点区域的代表性节点;
所述对等系统进一步包括路由逻辑,它被配置用于通过经由树节点传送数据的方式,来实现经由数据覆盖图路由数据;
其中,所述路由逻辑被配置用于通过从DHT节点聚集数据并经由所述树节点将所述数据向上传送到该树的根节点的方式,来实现经由所述数据覆盖图路由数据;以及
所述路由逻辑还被配置用于通过从树的根节点散发数据,通过数据覆盖图经由树节点,路由数据到DHT节点。
17.一种用于构建对等系统的设备,该设备包括:
用于构建数据覆盖图的装置,该数据覆盖图作为在对等系统的分布式哈希表(DHT)中所包括的逻辑空间之上的数据结构;其中:
DHT管理向对等系统插入对象,以及从对等系统移除对象;
该逻辑空间包括具有多个相关的DHT区域的多个DHT节点;并且DHT的数据覆盖图是通过下列步骤构建的:
将数据结构中的对象与DHT节点相关联;并且
在数据结构的对象之间建立连接;
用于构建数据覆盖图中的树的拓扑的装置,该树具有多个级并且包括多个与各自的所述DHT节点相关的树节点,其中:
树节点包括一个根节点,其具有相应于DHT逻辑空间的一个树节点区域;
根节点的树节点区域逻辑地划分成多个树节点区域,所述多个树节点区域分别对应于:
在树的每一级的树节点的数量;以及
分布式哈希表的逻辑空间的一部分;
每个所述树节点包括一个关键字成分,其标识与其各自的树节点区域相关的一个关键字;
用于将多台机器映射到DHT的逻辑空间的装置,其中每台机器相应于一个或多个树节点区域;
用于从对应于各个所述机器的一个或更多树节点区域中选择各个所述机器的代表性节点的装置,所述代表性节点相应于最大尺寸树节点区域;并且
用于为每个所述代表性节点选择其父节点的装置,该装置选择另一个所述代表性节点作为父节点,该另一个代表性节点是具有更大尺寸的邻近的所述树节点区域的代表性节点;
其中,所述设备还包括:
用于在每台所述机器上聚集元数据的装置;
用于将在所述机器处聚集到的元数据发送到相应的代表性节点的装置;
用于聚集被每个所述代表性节点接收到的元数据的装置;并且
用于将每个所述代表性节点所聚集到的元数据发送到相应的父节点的装置;以及
用于聚集在树的第一级的单一树节点处接收到的元数据的装置;所述设备还包括:
用于对在树的第一级的单一树节点处聚集到的数据进行处理的装置;并且
用于将处理后的数据从树的第一级的单一树节点并经由各自的父节点和代表性节点发送到每台所述机器的装置。
18.如权利要求17所述的设备,其中:
所述元数据包括与每台所述机器的运作相关的信息;并且
所述处理后的数据包括能够管理每台所述机器的运作的指令。
19.如权利要求17所述的设备,进一步包括:
用于在机器处接收来自邻近的所述树节点区域中的每台所述机器的心跳传送的装置;以及
当没有及时接收到任何所述心跳传送时,通过下列步骤证明邻近的所述树节点区域中相应的所述机器的消失的装置:
重复DHT的提供;
重复构建数据覆盖图作为在DHT逻辑空间之上的数据结构;并且
在重建的数据覆盖图中重复构建多级树。
20.如权利要求19所述的设备,其中:
所述用于证明的装置进一步包括用于重复多台机器到DHT逻辑空间的映射的装置;以及
该设备还包括用于选择每个所述代表性节点和每个所述父节点作为资源可用性的最优化函数的装置。
21.如权利要求20所述的设备,其中最优化函数是基于从组中选择的标准的,该组是由网络坐标、带宽瓶颈、最大等待时间和等待时间的变化组成的,其中最需要资源的任务由对等系统中拥有最多可用资源的机器执行。
22.如权利要求17所述的设备,该设备进一步包括用于通过经由树节点传送数据的方式来实现经由数据覆盖图路由数据的装置。
23.如权利要求22所述的设备,其中所述用于通过经由树节点传送数据的方式来实现经由数据覆盖图路由数据的装置包括:用于通过从DHT节点聚集数据并经由树节点将所述数据向上传送到该树的根节点的方式,来实现经由所述数据覆盖图路由数据的装置。
24.如权利要求22所述的设备,其中所述用于通过经由树节点传送数据的方式来实现经由数据覆盖图路由数据的装置包括:用于通过经由树节点将数据从树的根节点散发到DHT节点的方式,来实现经由所述数据覆盖图路由数据的装置。
CN2005100878055A 2004-04-16 2005-04-13 用于构建对等系统的方法和设备以及相应的对等系统 Expired - Fee Related CN1708026B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/826,674 2004-04-16
US10/826,674 US7418454B2 (en) 2004-04-16 2004-04-16 Data overlay, self-organized metadata overlay, and application level multicasting

Publications (2)

Publication Number Publication Date
CN1708026A CN1708026A (zh) 2005-12-14
CN1708026B true CN1708026B (zh) 2011-07-27

Family

ID=34939303

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005100878055A Expired - Fee Related CN1708026B (zh) 2004-04-16 2005-04-13 用于构建对等系统的方法和设备以及相应的对等系统

Country Status (7)

Country Link
US (1) US7418454B2 (zh)
EP (1) EP1587282B1 (zh)
JP (1) JP4750457B2 (zh)
KR (1) KR101120847B1 (zh)
CN (1) CN1708026B (zh)
AT (1) ATE369693T1 (zh)
DE (1) DE602005001883T2 (zh)

Families Citing this family (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8316088B2 (en) * 2004-07-06 2012-11-20 Nokia Corporation Peer-to-peer engine for object sharing in communication devices
JP4506387B2 (ja) * 2004-09-30 2010-07-21 ブラザー工業株式会社 情報通信システム、ノード装置、及びオーバーレイネットワーク形成方法等
FR2878673B1 (fr) * 2004-11-26 2007-02-09 Univ Picardie Jules Verne Etab Systeme et procede de sauvegarde distribuee perenne
US20080130516A1 (en) * 2004-12-21 2008-06-05 Electronics And Telecommunications Research Institute P2p Overplay Network Construction Method and Apparatus
US7428220B1 (en) * 2005-02-10 2008-09-23 Sun Microsystems, Inc. Method and apparatus for data aggregation in a distributed system
US7895270B2 (en) * 2005-04-21 2011-02-22 Microsoft Corporation Transport abstraction for multiparty replication
US20070011171A1 (en) * 2005-07-08 2007-01-11 Nurminen Jukka K System and method for operation control functionality
JP4544072B2 (ja) * 2005-07-20 2010-09-15 ブラザー工業株式会社 ノード装置、コンピュータプログラム、情報配信システム、及びネットワーク参加方法
US7489689B2 (en) * 2005-10-26 2009-02-10 Cisco Technology, Inc. Method, system and apparatus for scheduling a large pool of resources
JP2007235243A (ja) * 2006-02-27 2007-09-13 Brother Ind Ltd 情報通信システム、情報収集方法、ノード装置、及びノード処理プログラム
JP4692355B2 (ja) * 2006-03-30 2011-06-01 ブラザー工業株式会社 情報通信システム、情報通信方法、情報通信システムに含まれるノード装置および情報処理プログラム
US7516116B2 (en) * 2006-04-07 2009-04-07 Microsoft Corporation Range and cover queries in overlay networks
GB0607294D0 (en) * 2006-04-11 2006-05-24 Nokia Corp A node
JP2007280303A (ja) * 2006-04-11 2007-10-25 Brother Ind Ltd 情報通信システム、コンテンツカタログ情報配信方法、及びノード装置等
JP4862463B2 (ja) * 2006-04-11 2012-01-25 ブラザー工業株式会社 情報通信システム、コンテンツカタログ情報検索方法、及びノード装置等
JP4655986B2 (ja) * 2006-04-12 2011-03-23 ブラザー工業株式会社 ノード装置、記憶制御プログラム及び情報記憶方法
JP4539603B2 (ja) * 2006-04-13 2010-09-08 ブラザー工業株式会社 情報通信システム、情報通信方法、情報通信システムに含まれるノード装置および情報処理プログラム
TW200741493A (en) * 2006-04-18 2007-11-01 Benq Corp Systems and methods for discovering frequently accessed subtrees
JP4670726B2 (ja) * 2006-04-28 2011-04-13 ブラザー工業株式会社 ノード装置、情報処理方法及びノード装置用プログラム
US7523340B2 (en) 2006-05-31 2009-04-21 Microsoft Corporation Support self-heal tool
US7643459B2 (en) * 2006-06-16 2010-01-05 Alcatel-Lucent Usa Inc. Methods, devices and architectures for establishing peer-to-peer sessions
CN100525210C (zh) * 2006-06-26 2009-08-05 华为技术有限公司 域管理器系统、获知相邻域管理器及进行更新的方法
US8375141B2 (en) * 2006-09-29 2013-02-12 Microsoft Corporation Infrastructure to disseminate queries and provide query results
WO2008041173A2 (en) * 2006-10-02 2008-04-10 Nokia Corporation Method system and devices for network sharing or searching of resources
US7684352B2 (en) * 2006-11-02 2010-03-23 Nortel Networks Ltd Distributed storage of routing information in a link state protocol controlled network
CN101193032B (zh) * 2006-11-29 2012-03-21 曲锐 基于分布式哈希表的数据处理方法和网络
GB2446200A (en) * 2006-12-01 2008-08-06 David Irvine Encryption system for peer-to-peer networks which relies on hash based self-encryption and mapping
CN101005606B (zh) * 2006-12-31 2012-07-04 华为技术有限公司 一种减少媒体播放延时的方法和装置
US8018453B2 (en) * 2007-02-09 2011-09-13 International Business Machines Corporation Deferred acceleration data structure optimization for improved performance
US20080201335A1 (en) * 2007-02-20 2008-08-21 Nec Laboratories America, Inc. Method and Apparatus for Storing Data in a Peer to Peer Network
US8693392B2 (en) * 2007-02-21 2014-04-08 Avaya Canada Corp. Peer-to-peer communication system and method
JP5016063B2 (ja) * 2007-02-22 2012-09-05 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 整合性のとれた耐障害性分散ハッシュテーブル(dht)オーバレイネットワーク
US7630370B2 (en) * 2007-02-28 2009-12-08 Sharp Laboratories Of America, Inc. Overlay join latency reduction using preferred peer list
US20110047272A1 (en) * 2007-03-09 2011-02-24 Anne-Marie Bosneag Dissemination of Network Management Tasks in a Distributed Communication Network
US20080225780A1 (en) * 2007-03-13 2008-09-18 Nortel Networks Limited Use of distributed hashtables for wireless access mobility management
JP4172522B1 (ja) * 2007-04-12 2008-10-29 ヤマハ株式会社 マルチキャスト配信システム及びマルチキャスト配信方法
CN101291321B (zh) * 2007-04-19 2012-10-03 华为技术有限公司 发布内容的方法及系统、查找内容的方法及系统
US20080276091A1 (en) * 2007-05-04 2008-11-06 Annikki Welin Mobile Device File Sharing Method and Apparatus
JP4389964B2 (ja) * 2007-05-15 2009-12-24 ソニー株式会社 情報処理装置および情報処理方法、並びにプログラム
CN101350807B (zh) * 2007-07-20 2012-04-04 华为技术有限公司 多地址空间移动网络架构、主机信息注册及数据发送方法
US7970916B2 (en) * 2007-07-25 2011-06-28 Cisco Technology, Inc. Register clustering in a sip-based network
CN101399746B (zh) * 2007-09-26 2011-03-16 华为技术有限公司 报文路由方法、系统、设备和选择备份资源的方法、系统
US8582469B2 (en) * 2007-11-14 2013-11-12 Cisco Technology, Inc. Peer-to-peer network including routing protocol enhancement
JP4863973B2 (ja) * 2007-11-26 2012-01-25 日本電信電話株式会社 オーバーレイマルチキャスト配信ネットワーク構成方法とシステムおよびプログラム
CN101465796B (zh) * 2007-12-19 2012-10-31 中国移动通信集团公司 P2p系统元数据收集、分发方法及其装置和系统
JP5029373B2 (ja) * 2008-01-11 2012-09-19 日本電気株式会社 ノード、経路制御方法および経路制御プログラム
JP5151511B2 (ja) * 2008-01-30 2013-02-27 ソニー株式会社 検索サービス提供システム及び検索サービス提供方法
JP5058135B2 (ja) * 2008-02-08 2012-10-24 パナソニック株式会社 端末装置
US20090213754A1 (en) * 2008-02-26 2009-08-27 Roie Melamed Device, System, and Method of Group Communication
US8610673B2 (en) 2008-12-03 2013-12-17 Microsoft Corporation Manipulation of list on a multi-touch display
US8264988B2 (en) * 2009-01-30 2012-09-11 Nec Laboratories America, Inc. Method for inferring physical network topology from end-to-end measurement
US8078825B2 (en) * 2009-03-11 2011-12-13 Oracle America, Inc. Composite hash and list partitioning of database tables
US8019862B2 (en) 2009-03-17 2011-09-13 Microsoft Corporation Collaborative speed determination in distributed systems
EP2409456B1 (en) * 2009-03-18 2013-07-17 Panasonic Corporation Multicast communication method and apparatus for receiving and forwarding data via a network among a plurality of nodes
US7957385B2 (en) 2009-03-26 2011-06-07 Terascale Supercomputing Inc. Method and apparatus for packet routing
US7957400B2 (en) * 2009-03-26 2011-06-07 Terascale Supercomputing Inc. Hierarchical network topology
CN101534309B (zh) 2009-04-14 2013-03-13 华为技术有限公司 节点注册方法、路由更新方法、通讯系统以及相关设备
JP4818396B2 (ja) * 2009-05-22 2011-11-16 株式会社東芝 オーバーレイネットワークシステム及び同システムにおけるオブジェクト登録方法
CN101938509B (zh) * 2009-06-29 2015-11-25 日电(中国)有限公司 为p2p网络提供节点信息的服务器、方法及系统
CN101635645B (zh) * 2009-08-28 2012-01-11 中兴通讯股份有限公司 一种网络拓扑的管理方法及装置
CN101656618B (zh) * 2009-09-11 2012-09-05 中兴通讯股份有限公司 一种基于结构化对等网络的多媒体消息广播方法及系统
EP2484093A1 (en) * 2009-10-01 2012-08-08 Telefonaktiebolaget LM Ericsson (publ) Location aware mass information distribution system and method
US7716179B1 (en) 2009-10-29 2010-05-11 Wowd, Inc. DHT-based distributed file system for simultaneous use by millions of frequently disconnected, world-wide users
US9922331B2 (en) * 2009-11-04 2018-03-20 Blue Kai, Inc. Filter for user information based on enablement of persistent identification
DE102010006991A1 (de) * 2010-02-05 2011-08-11 Siemens Aktiengesellschaft, 80333 Verfahren und System zum Verwalten von verteilt in einem Rechnernetz gespeicherten Informationen
US9767475B2 (en) * 2010-08-20 2017-09-19 Blue Kai, Inc. Real time audience forecasting
CN103098015B (zh) 2010-09-30 2015-11-25 日本电气株式会社 存储系统
KR20120071576A (ko) * 2010-12-23 2012-07-03 한국전자통신연구원 분산 해쉬 테이블 기반의 rtps 디스커버리 방법, 장치 및 시스템
EP2477377A1 (en) * 2011-01-14 2012-07-18 Alcatel Lucent Peer node and method for improved peer node selection
WO2012124178A1 (ja) * 2011-03-16 2012-09-20 日本電気株式会社 分散記憶システムおよび分散記憶方法
CN102185935B (zh) * 2011-04-27 2013-07-31 北京交通大学 一种面向资源的分层名字解析系统
WO2013046667A1 (ja) * 2011-09-27 2013-04-04 日本電気株式会社 情報システム、その管理方法およびプログラム、データ処理方法およびプログラム、ならびに、データ構造
WO2013046664A1 (ja) * 2011-09-27 2013-04-04 日本電気株式会社 情報システム、管理装置、データ処理方法、データ構造、プログラム、および記録媒体
CA2897118A1 (en) * 2012-01-04 2013-07-11 Hongbing Fan System and method for providing p2p based reconfigurable computing and structured data distribution
JPWO2013132779A1 (ja) * 2012-03-09 2015-07-30 日本電気株式会社 オブジェクト配置装置及び方法、コンピュータ・プログラム
JP5818263B2 (ja) * 2012-05-10 2015-11-18 日本電信電話株式会社 データの分散管理システム及び装置及び方法及びプログラム
CN104272286A (zh) * 2012-07-20 2015-01-07 惠普发展公司,有限责任合伙企业 基于策略的网络资源缩放
WO2014022272A1 (en) * 2012-07-30 2014-02-06 Yahoo! Inc. Systems and methods for implementing a mobil application based online advertising system
JP6182861B2 (ja) * 2012-12-28 2017-08-23 富士通株式会社 情報処理装置、情報処理端末、情報検索プログラム及び情報検索方法
CN104063420B (zh) * 2014-03-25 2015-08-26 深圳市挪亚物联信息技术有限公司 一种统一动态数据模型实现的方法及系统
US9805392B2 (en) * 2014-07-02 2017-10-31 Oracle International Corporation Simulating online user activity to generate an advertising campaign target audience list
CN105488088B (zh) * 2014-12-31 2019-05-07 哈尔滨安天科技股份有限公司 基于树形结构的二维网络角度分配布局方法
US10652322B2 (en) * 2015-03-09 2020-05-12 International Business Machines Corporation Scalable parallel messaging process
EP3304303B1 (en) * 2015-06-03 2021-06-09 Telefonaktiebolaget LM Ericsson (PUBL) Allocating or announcing availability of a software container
CN105573836B (zh) * 2016-02-23 2018-12-28 中国农业银行股份有限公司 数据处理方法及装置
SG11201807289UA (en) * 2016-03-07 2018-09-27 Agency Science Tech & Res Method of facilitating distributed data search in a federated cloud and system thereof
WO2017201027A2 (en) * 2016-05-16 2017-11-23 Interdigital Patent Holdings, Inc. Enhancements for ieee 802.11ah relays
CN107453994A (zh) * 2016-05-30 2017-12-08 北京信威通信技术股份有限公司 基于dht网络的数据传输方法及装置
JP7129991B2 (ja) * 2016-11-19 2022-09-02 ウィリアムズ,ドミニク システムアーキテクチャ及びこの中のデータの処理方法
CN109962942B (zh) * 2017-12-22 2022-06-07 天翼云科技有限公司 副本更新方法和装置以及计算机可读存储介质
WO2020010270A1 (en) * 2018-07-04 2020-01-09 Neji, Inc. Dynamic routing using a distributed hash table
CN109274759A (zh) * 2018-10-19 2019-01-25 杭州和利时自动化有限公司 一种集散控制系统及其节点间的通信方法和装置
CN112216375B (zh) * 2020-09-03 2023-05-09 南京信息工程大学 一种自主构建医疗监测系统的方法
CN112187912B (zh) * 2020-09-24 2023-12-19 宜宾三江电子信息产业有限公司 一种基于分布式网络的数据漫游方法与装置
CN117785391B (zh) * 2024-02-28 2024-05-10 成都索贝视频云计算有限公司 一种服务操作逻辑结构化装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7272613B2 (en) 2000-10-26 2007-09-18 Intel Corporation Method and system for managing distributed content and related metadata
US7054867B2 (en) * 2001-09-18 2006-05-30 Skyris Networks, Inc. Systems, methods and programming for routing and indexing globally addressable objects and associated business models
US7644182B2 (en) * 2004-03-11 2010-01-05 Hewlett-Packard Development Company, L.P. Reconfiguring a multicast tree
US7730207B2 (en) * 2004-03-31 2010-06-01 Microsoft Corporation Routing in peer-to-peer networks
US20070079004A1 (en) * 2005-09-30 2007-04-05 Junichi Tatemura Method and apparatus for distributed indexing

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
.SOMO:self-organized metadata overlay forresource management in P2P DHT.SPRINGER VERLAG2735.2003,2735172-180.
.对等网络Chord分布式查找服务的研究.计算机应用23 11.2003,23(11),25-28.
Zheng Zhang et al
Zheng Zhang et al;.SOMO:self-organized metadata overlay forresource management in P2P DHT.SPRINGER VERLAG2735.2003,2735172-180. *
李振武,杨舰,白英彩.对等网络研究及其挑战.计算机应用与软件21 2.2004,21(2),54-56.
李振武,杨舰,白英彩.对等网络研究及其挑战.计算机应用与软件21 2.2004,21(2),54-56. *
董芳,费新元,肖敏
董芳,费新元,肖敏;.对等网络Chord分布式查找服务的研究.计算机应用23 11.2003,23(11),25-28. *

Also Published As

Publication number Publication date
EP1587282A2 (en) 2005-10-19
JP4750457B2 (ja) 2011-08-17
DE602005001883D1 (de) 2007-09-20
CN1708026A (zh) 2005-12-14
EP1587282A3 (en) 2006-05-24
ATE369693T1 (de) 2007-08-15
US7418454B2 (en) 2008-08-26
DE602005001883T2 (de) 2007-12-20
EP1587282B1 (en) 2007-08-08
KR20060045788A (ko) 2006-05-17
US20050243740A1 (en) 2005-11-03
JP2005353039A (ja) 2005-12-22
KR101120847B1 (ko) 2012-03-16

Similar Documents

Publication Publication Date Title
CN1708026B (zh) 用于构建对等系统的方法和设备以及相应的对等系统
US8380846B1 (en) Automatic clustering for self-organizing grids
Casanova Distributed computing research issues in grid computing
CN109873860B (zh) 一种卫星网络资源信息存储方法、发现方法及系统
Torkestani A distributed resource discovery algorithm for P2P grids
Kermarrec et al. Xl peer-to-peer pub/sub systems
Li et al. Efficient progressive processing of skyline queries in peer-to-peer systems
Cui et al. Efficient skyline computation in structured peer-to-peer systems
Konstantinidis et al. Intelligent search in social communities of smartphone users
Guo et al. PicPick: a generic data selection framework for mobile crowd photography
CN101442466A (zh) 一种叠加网络及实现方法
Triantafillou et al. NanoPeer networks and P2P worlds
Yoneki ECCO: Data centric asynchronous communication
Liu et al. Towards dynamic reconfiguration of composite services via failure estimation of general and domain quality of services
Abdollahi Nami et al. Data replication techniques in the mobile ad hoc networks: A systematic and comprehensive review
Hassan et al. Semantic-based grid resource discovery systems a literature review and taxonomy
Toure Local peer-to-peer mobile access to linked data in resource-constrained networks
Palmskog et al. Scalable metadata-directed search in a network of information
Liu et al. Neighbor selection in peer-to-peer overlay networks: a swarm intelligence approach
Ismail et al. Queries Routing In Super-Peer-Based System: Simulation and Evaluation.
Busnel et al. Solist: A lightweight multi-overlay structure for wireless sensor networks
Romero II et al. A hybrid recommendation scheme for delay-tolerant networks: The case of digital marketplaces
CN113326870A (zh) 一种基于大数据的多平台旅游数据融合系统
MollaMotalebi et al. C-HLRD: a category-based hierarchical localisation technique for resource discovery in grid environments
Aktas Information federation in grid information services

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150430

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150430

Address after: Washington State

Patentee after: MICROSOFT TECHNOLOGY LICENSING, LLC

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110727

CF01 Termination of patent right due to non-payment of annual fee