一种在p2p网络中基于兴趣社区的覆盖网络搜索架构的制作方法

文档序号:7764423阅读:514来源:国知局
专利名称:一种在p2p网络中基于兴趣社区的覆盖网络搜索架构的制作方法
技术领域
本发明涉及一种在P2P网络中设计基于兴趣组建虚拟社区,最终形成类似于人类关系网的新的覆盖网络搜索架构的方法。
背景技术
P2P(Peer to Peer)系统已经成为当前因特网多种服务架构 (ServiceArchitecture)中的相当成功的一类。各种P2P应用系统也是层出不穷。然而P2P 架构依然有些基本的问题并没有得到很好的解决,比如搭便车(free riding)以及内容搜索算法的效率问题(content search efficiency)、对等实体和数据的安全问题等等,这些问题共同构成P2P网络架构设计的关键。P2P系统中的覆盖网络(overlay network)指的就是各个参与到P2P网络中的结点,和结点之间在忽略中间设备(比如路由器、交换机)直接连接的情况下,所组成的网络。P2P系统按其组成的覆盖网络架构大致分为2类(1)结构化P2P网络架构大多数结构化P2P架构的覆盖网络拓扑是精心组织的一些拓扑,比如使用mesh 结构,环结构,D维空间结构,碟形结构等。这些结构通常使用离散哈希表技术(DHT, Distributed Hash Table),在结构化拓扑中逐渐查询。如果存在查询请求的资源的情况下,查询总能在确定的跳数内找到。在这种架构下,内容信息以一个即定的方式(如Hash) 被分配到所有参与到P2P网络的结点中。这类结构化架构对于标识唯一的精确查找极为有效。DHT技术的应用,实现了较好的扩展性,查询效率也得到了很好的提高。但是结构化对于模糊查找支持性很弱,而且在网络高动态的情况下,结点之间的维护负载会增大。此外, 这类结构中的结点实际上经常存储的是他们自身并不感兴趣的结点的内容索引信息。(2)无结构P2P网络架构早期的P2P系统Gnutella,就是无结构P2P网络的先驱。它采用基于洪泛 (flooding)的查找思想,每个结点在本地没有查询资源时,都只是简单的将查询复制, 转发自己所有的邻居结点。查询消息使用生存时间(TTL,time to live。通常用跳数 (hop-count)来度量)实现终止。虽然系统在实现上很简单,可是整个系统的扩展性却成为制约Gnutella发展的极大问题。因为简单的复制转发虽然操作容易,可是整个网络因查询所产生的消息负载将随着结点数的增加呈指数形式增长。然而,无结构网络架构的易配置和自组织性却成为了当前最为流行的多种P2P文件共享系统所采用的架构(比如BT,eMule等)。这类架构并不故意的组织结点,其维护的松散结构(loose structure)却可以让网络在面对结点失效和恶意结点攻击时,具有更强的回复力(flexibility)。无结构架构在查找热门资源时的效率极高,对于冷门资源的定位却相对缺乏。早期对于纯无结构架构(pure unstructured)的改进包括改善查询算法、对于查
3询添加更多的管理功能,比如让结点维护一些邻居结点的内容索引信息或者存储过去的查询历史以导向未来的查询等。到现在为此,无结构架构的演进有两种主流的研究趁势(1)利用网络中结点的异构性(包括结点处理能力、资源、以及结点的链路带宽等)。利用异构性通常根据所形成的overlay结构也通常被称为层次性结构。因为这类结构一方面以类似结构化网络的方式选出网络能力强而且资源多的结点,另一方面整个查询仍以无结构网络架构的方式来实现。通常形成两层overlay网络-越级结点(SP,Super-peer) 覆盖网和叶子结点覆盖网,其中前者将为后者执行查询。这类结构中有两个问题是关键选择什么样的结点作为SP结点和如何组织这两层overlay网络。这类层次结构的问题在于 超级结点之间很难选择一种很好的方式来连接(因为要保证很好的查询效率,超级结点要尽可能多维护与其它超级结点之间的连接,这对于减轻超级结点的负载又是矛盾的)。而且在动态拓扑下,超级结点上的维护负载将变得很大。KaZaA是一种典型的层次性结构,见附图1(a),其中包括如下网元101 超级结点 SuperPeer 简称 SP102 叶子结点 LeafPeer 简称 LP103 超级结点之间的强连接 Strong Connection between SP可以看到,这类发展趋势-利用异构性,将仅限于结点的能力,包括结点的处理能力,结点所处的连接可用带宽等,并没有考虑到结点拥有的资源的相关性。这样一来,对于相似资源的查询可能会经过多跳才能查询得到。(2)利用结点的小世界特性(即结点所拥有的资源的和结点想要下载的资源的相关性)组建语义覆盖网(semantic overlay) 0利用小世界特性组建语义覆盖网络见附图 1(b),(c),其中包括如下网元:104 普通 P2P 结点 GeneralPeer 简称 P105 短连接Shortcut106 兴趣簇簇头 Cluster Header 简称 Ch107 簇头间连接 Connection between Cluster Header108 兴趣簇Cluster with a specified interest 简称 IC109 兴趣簇中的普通结点 General Peer in IC 简称P图(b)显示的是通过添加shortcut方式组建的覆盖网架构。(c)显示的是一类试图将有着相同或者相似资源的结点组织起来形成簇或者群(cluster或者group)的覆盖网络架构设计。选择簇中处理能力强的结点担当簇头,簇头之间互连。簇头结点必须同时维护与其它多个簇头的连接。这类架构将有着相同兴趣的结点组成簇(group或者cluster),以提高查询的效率。很多现有的方法提出在直接有着关联的结点之间建立逻辑上的短连接(short-cut) (如图1(b)示)。显然这些短连接的添加将加快某些特定资源的查询过程,缩短查询时间。 但是短连接,只是逻辑上的短连接,却忽视了很多因素,比如结点的异构性还有结点之间的地理位置等。另一方面,显然每个节点都维护自己的短连接虽然可以加快查询,可是维护负载也因此增加,对网络拓扑的维护开销也会因此增大。此外,根据什么原则来添加这些短连接依然是很多研究的争论问题。对于图1(c)的结构,虽然也将结点组织起来形成簇,可是却是采用簇头相连的方式,这样只是层次性架构的一种改进,即对于簇内其它结点的相似资源的查询变成便捷。可是,对于不属于不属于本簇的资源查询,查询方式依然是以层次架构的方式。

发明内容
本发明要解决的技术问题是,将当前的P2P覆盖网络结点以某种更好的方式组织成新的架构,总体上提高查询效率。为了解决上述问题,本发明提出以模拟人类社会中“六度空间”现象,在P2P网络中基于兴趣(即结点所拥有的资源和表现出来的兴趣)组建虚拟社区,形成新的覆盖网络架构的方法。社区可以理解为有着相似资源多个实体(peer)的一个子网,这个子网是一个基于overlay的P2P对等实体网络。那么可以看到,在overlay网络上,社区内的实体结点
fenTii (one-hop reachable)的。在人类社会中,有着相同兴趣的人会形成他们自己的一个圈子。当然有的人会因为兴趣或者知识广博,会有着属于他的几个不同的圈子。这样,如果他的某个圈子里有某人要得到某种资源,那么这个人只需要将自己的需求向这个圈子里交际关系广的那些人诉求,由这些人帮忙来查找资源。这个过程其实是“六度空间”理论的一个实现。基于兴趣社区的架构在附图2中显示,其中包括如下网元110 CommuSearch 兴趣社区 Interest Community 简称 ICC111 CommuSearch 中的跨社区结点 Cross-community Node 简称 CN112 CommuSearch 中的普通社区结点 General Node简称 GN我们侧重分析图1 (c)和图2两种架构的区别。显而易见的是,两者有着类似的设计思想,即将有着相似资源的结点组织成群体(我们的架构中称为虚拟社区)。但是不同于簇头或者超级结点的是,我们提出跨社区结点,它的位置是处于几个兴趣社区之上的。这就极大改进了图1(c)中让簇头相连的方式,避免了簇头结点必须同时维护与其它多个簇头连接的问题。因为查询可以像人类社会中传递的方式,进行中继(即模拟了人类社会中的 “熟人”关系)。而且是向着兴趣相关的方向上传递,这样就保证了查询的快速收敛。新的架构支持许多现有的搜索算法,改善了查询效率。该方法包括1)本发明给出了一种基于兴趣社区的架构。该方法包括1. 1在P2P网络中,具备相同或者相近兴趣资源的节点组成兴趣社区;1. 2具有多种兴趣资源而且异构能力突出的结点,将被选举成为跨社区结点。跨社区结点将连接多个社区,最终全网形成一个兴趣社区交叠的拓扑结构;1.3跨社区节点的出现,方便社区内相似资源的查询、跨社区资源的查询。一方面,同于以往利用小世界特性将有着相似资源的结点组织形成群(或簇), 方便群组内相似资源的查询;另一方面,也是极不同于其它利用小世界特性组建Semantic Overlay方法的特点-引入跨社区结点(而不是以往的簇结点或者超级结点)。跨社区结点特殊的地理位置-同时处于不同的兴趣社区,将带来以下好处(1)增加了社区内查询的范围。因为跨社区结点还有着不属于查询发起结点的其它社区的资源信息(比如在附图4中,GN —次查询,将获得三个社区的资源信息);(2)跨社区结点在实现查询导向时,不像簇头结构或者超级结点结构,只能获知与自己直接相连(一跳内)的簇头或者超级结点上的信息。而我们的架构中,一个CN可以获悉的其它结点数将又是几个相邻CN所有社区的结点数(这个数目又是簇结构或者超级结点结构的一个倍数)。(3)由于兴趣的关联性,CN的查询导向将更加容易和有方向性。不会也不需要像超级结点或簇结构那样,需要在超级结点或者簇头之间洪泛。(4)就算是CN要存储其它CN的索引,也只是存储一个其它CN所属社区的兴趣主题,这个索引很小,并不会增加CN多大负担。进一步地,对于跨社区节点的选择社区中的跨社区结点和普通结点的选定综合考虑到结点的兴趣和结点的异构性(包括结点所拥有的资源多少、类别,以及结点的愿意分享的带宽和处理能力等)。我们的跨社区结点将执行类似于超级结点的功能,但是不同于以往选择超级结点的标准的是首先是有着多个兴趣主题且有着多个相关资源的结点;其次我们考虑的是异构性中表现突出的结点,即有着较多空闲处理能力和可用带宽的结点;再者跨社区结点担当的是多个社区之间的代表,允许数目上有一定冗余,以保障连接。进一步地,上述架构的设计方法还可具有以下特点整个架构中,兴趣社区以模拟人类社会中熟人关系的方式产生交叠,从而产生跨社区结点CN。跨社区结点将代表着其所跨接的多个兴趣社区的普通结点GN,实现查询。进一步地,上述架构的设计方法还可具有以下特点选择跨社区结点的原则是_选择兴趣多而且愿意分享的带宽和处理能力大的结点。进一步地,上述架构的设计方法还可具有以下特点社区组建的方式可大致从以下两种方式进行,(1)可以自组织的形式,即结点之间通过Gossip闲谈协议来实现兴趣交互,自组织形成兴趣社区。跨社区结点CN以选举的形式出现。(2)可提供额外的索引服务器来辅助初始化工作。服务器存储结点提交的兴趣主题关键字,根据一定的原则,由服务器甄选出跨社区结点CN(实际上很多现在的P2P系统, 比如BT就是有一个专门的Tracker服务器存储着种子列表)。进一步地,上述架构的设计方法还可具有以下特点跨社区结点CN上将维护一个索引信息表,以分类的方式存储CN所处的多个兴趣社区结点的索引信息(如附图3示)。 索引信息包括,结点的资源关键字、资源信息(比如文件类型、大小)、结点信息(包括地址
寸乂 O2)本发明给出了基于兴趣社区的架构的搜索方法在内容搜索上,可兼容无结构架构的多种搜索算法。整个架构其实仍然是个无结构形式的,因为没有像结构化架构那样将结点固定分配索引。进一步地,上述架构设计还具有以下特点因为结点之间并非以唯一值Key值的形式组织起来,所以对于模糊查找的兼容性很好。另一方面,对于查询,匹配查询关键字和兴趣主题的思想本身也是模糊匹配。


图1例示的是各类架构的一个示意图;其中(a)显示的利用结点能力异构性组织的层次架构示意图,(b)(c)都是利用小世界特性来组织覆盖网络拓扑的架构,其中(b)通过添加一些逻辑上的短连接(shortcut),(c)组建兴趣簇;图2例示的是本发明提出的基于兴趣社区的CommuSearch架构(有三类结点CN、 SN, GN);图3例示的是CN结点上的树形索引;图4例示的是CommuSearch架构上实现搜索的一个过程。采用的是改进的洪泛算法。
具体实施例方式结点组建基于兴趣社区的覆盖网络的方法如下结点首次加入P2P网络中(不管是以Gossip方式,还是中间件辅助的方式),通过一个Push消息进行交互。其内容格式为PUSH :<Keyword set, Capability set>关键字集(Keyword set)指的是结点愿意分享的资源的关键字;能力集 (Capability set)用于标示结点的异构性特征。关键字集可以是下面的一种方式 <keyword1,keyword2, ... , keywordm>。而能力集反映结点作为服务提供者(我们的架构中CN结点代表的就是服务提供者)的能力,方便选择出CN结点。定义为Cai = β !Rbandwith+^2Rprocess0 Cai代表结点的处理能力,由实体所能提供的带宽等级和实体主机愿意提供的处理资源等级衡量。CN上索引目录的建立在选举出了 CN之后,CN将要求各个社区的结点上传资源信息以组成索引目录。这个索引目录将由各社区结点上传各自愿意分享的资源的信息组成。目录的形式可以是树形形式,即每个分枝存储CN所处的一个社区结点的资源信息索引。附图3例示一个CN(跨三个社区)的索引目录这个CN的兴趣主题为“最近热播的美国大片”,作为三个所辖社区的上层主题;而下面的三个分支分别为三个社区兴趣主题,分别为“最近热播的美国科幻大片”、“最近热播的美国动作大片”、“最近热播的美国动画大片”。然后各个分支下面,将详细的存储各社区结点的资源索引信息。查询实现过程一旦兴趣社区组建起来,那么查询实现变得简单得多。对于社区内部对于相似资源的查询,将变得一跳可达。可以直接向CN结点查询,由CN返回查询结果;也可以直接以轻洪泛(Little flooding,即随机的选择一些结点做查询)的方式,直接查询本社区其它的结点。比如某个结点加入到一个兴趣主题为最近热播的美国大片的社区中(因为自己有《先知2》的资源),那么他想得到《2012》的资源将是相当简单直接的。而且得到这个资源的可能性也是很大的,因为社区主题的原因。至于跨社区的资源查询,将通过跨社区结点CN来实现。可以援用以往无结构架构中的多种搜索算法,并作以下改进查询消息主要在CN之间复制转发;
7
由于社区相互交叠的结构形式,查询消息很容易出现冗余。因此每次当查询消息经过某个社区之后,CN即打上标记。图4例示的是在新的架构下,采用简单的洪泛算法(结合了新的架构下的消息冗余抑制)的一个示意图。假定查询由某社区中的普通结点发起(当然这个结点已经查询过本社区),对于跨社区资源的查询资源查询步骤如下步骤301,查询节点提交查询到本社区的跨社区结点CN,查询消息包括查询关键字和消息生存时间TTL(TTL > 0)。步骤302,CN结点收到查询消息,执行本地资源匹配,即查询其所跨接的多个社区 (除了查询结点所在社区)的索引表,如果是树形索引,那么查询相应的树分支;如果查询到资源,将查询结果回复给查询节点;如果没有查询到资源,当TTL大于0时,将TTL减1, 并将查询消息转发到所属多个社区其他的CN ;如果TTL为0,退出查询操作。步骤302,CN再次转发查询消息,直到TTL为0。以上,基于洪泛的查询思想是以前不同于无结构Gnutella的洪泛的是,我们洪泛的范围仅限于网络中的跨社区结点CN之间。而且如果采用消息冗余抑制机制,将进一步减少消息的冗余数。因为整个架构的是一个环环相扣的结构,所以消息的冗余将是一个很大的开销。
权利要求
1.一种用于在对等网络(P2P)中,基于兴趣组建虚拟社区,形成新的覆盖网络搜索架构的方法,其特点在于,在对等网络(P2P)中,以结点所拥有的资源和表现出来的兴趣,将结点以社区的形式组织起来,那些有着多个兴趣资源,而且在异构性表现突出的结点将成为兴趣社区的交叠点,称为跨社区结点CN,最终形成一个新的P2P覆盖网络搜索架构。社区组建的方法可以是Gossip自组织交互,也可以是通过中间服务器来完成。
2.根据权利要求1中所述的方法,其特征在于,整个架构将是一个平坦的结构,而跨社区结点将作为服务提供者结点。
3.根据权利要求1至2中任一项所述的方法,其特征在于,跨社区结点的选择,将综合考虑到结点的兴趣其所拥着的资源、愿意分享的带宽和处理能力等因素。
4.根据权利要求1至3中任一项所述的方法,其特征在于,社区依兴趣而组建,那么社区内对于相似资源的查询将变得简单容易(因为社区内结点一跳可达);而跨社区资源的查询,将通过CN结点,以模拟“六度分离”的中继方式,进行遍历。
5.根据权利要求1至4任一项所述的方法,其特征在于,由于架构的兼有无结构和结构化P2P架构的特性,所以,查询算法上可以很好的应用以往无结构的查询算法,同时考虑到架构的特殊性(即环环相扣),采用一些消息冗余的抑制机制来减少消息的冗余带来的网络负载。
6.根据权利要求1至5任一项所述的方法,其特征在于,由于兴趣的提出,而且架构的相对松散性,对于模糊查找也能很好的支持。因为查询的过程,本身就可以是匹配查询关键字和兴趣主题的过程。
全文摘要
本发明涉及一种在用于在对等网络(P2P)中,基于兴趣组建虚拟社区的覆盖网络搜索架构的设计方法,其中虚拟社区中,提到一类新的结点-跨社区结点CN,是各兴趣社区的交叠点,拥有着多个兴趣主题的资源,而且在异构性方面表现突出。这类结点将代表其所跨的多个兴趣社区的其它结点实现查询。因为社区依兴趣资源而组建,对于相似资源的查询,将在社区内部一跳可达。对于跨社区资源的查询,将通过跨社区结点,以模拟人类社会中“六度分离”的中继接力方式,进行查询。
文档编号H04L29/08GK102469115SQ201010534268
公开日2012年5月23日 申请日期2010年11月8日 优先权日2010年11月8日
发明者冯钢, 薛飞腾 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1