基于P2P的分布式搜索技术研究与实现

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:xiaoxuan415315
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:该文将P2P技术引入到搜索引擎中,重点分析了P2P搜索算法对P2P搜索所带来的影响,并基于P2P架构的特点,提出了将广度优先搜索算法和本地索引搜索算法相结合,以增强节点间的交互能力,是解决目前P2P搜索技术中产生大量冗余数据包的一个行之有效的方法。在此基础上,论文针对小范围P2P搜索环境,提出了全新的P2P搜索模型。
  关键词:搜索引擎;对等网络;分布式搜索;广度优先
  中图分类号:TP393文献标识码:A文章编号:1009-3044(2011)01-0022-03
  Implement and Research of Distributed Search Technology Based on P2P
  CHEN Hui
  (College of Computer Science & Technology, Wuhan University of Technology, Wuhan 430063, China)
  Abstract: This paper brings P2P technology into search engine, With natural advantage under P2P network, the thesis Priority has analyzed the P2P algorithm searching for what be brought about effete to P2P, Suggest that the breadth-first search algorithm and elicitation method search for algorithm combine each other with extent, strengthen the node room interactive ability, be to resolve a effective scheme producing large amount of redundancy data bag at present in P2P search technique and owing to P2P frame characteristic,The thesis has searched for an environment here on the basis, specifically for small range P2P, has brought forward brand-new data synchronism mode.
  Key word: search engine; peer-to-peer; distributed search; the breadth-first search
  P2P是peer-to-peer的缩写,peer在英语中的解释是“伙伴”的意思,P2P可以理解为“伙伴对伙伴”的意思,或称为对等联网。P2P最初的起源是联网通信方式,是一种比较古老的技术,如产生于1979年的USENET/1984年的FidoNet都是基于P2P技术的,但是目前
  P2P己被赋予了新的含义,是旧有技术的新的应用模式。
  P2P的原意是一种通信模式,在这种通信模式中,每一个部分具有相同的功能,任意一个部分都可以开始一次通信。现在对P2P概念进行了扩展,如IBM公司认为:P2P系统由若干互联协作的计算机构成,且至少具有如下特征之一:系统依存于边缘化(非中央式服务器)设备的主动协作,每个成员直接从其他成员而不是从服务器的参与中受益;系统中成员同时扮演服务器与客户端的角色;系统应用的用户能够意识到彼此的存在,构成一个虚拟或实际的群体。
  对等网络尚无统一的标准。2000年8月成立了P2P工作组,成员包括Intel、IBM和HP公司等。发展对等网络的其他主要障碍还有版权问题、网络带宽问题、管理问题和安全问题等。如何连接电话、手机和家电、工业设备等,也是对等网络需要解决的问题。
  2 基于P2P的分布式搜索引擎原理
  基于P2P的分布式搜索引擎的系统原理就是在P2P网络中的任意Peer节点(搜索引擎服务器)都可以提交检索的请求,然后这些检索通过某种路由机制被路由到和检索相关的节点上去,存储有和该检索相关信息的节点将会响应请求,把本地相关的内容以对等的形式直接传回到请求节点上,流程图见图1。图中的检索过程分为以下几个阶段:每个节点在加入网络的时候,会对在本节点的索引库中进行检索,以满足本地内容检索的目的。然后按某种预定的规则选择一些节点作为自己的邻居,加入到P2P网络当中。.发起者P提出检索请求。,并将。发送给自己的邻居。P的邻居收到q后,再按照某种策略转发给它在网络中的其它邻居节点。这样,q就在整个网络中传播开来。收到请求q的节点如果存储有相应内容信息,则将对应的内容返回。
  3 P2P搜索技术及应用
  1) P2P搜索与传统搜索的比较
  传统搜索(如我们熟悉的Baidu、Google、Yahoo等)并不真正搜索Internet,它搜索的实际上是预先整理好的网页数据库的索引。传统意义上的搜索引擎工作过程大致可以分为以下三个步骤。
  (1) 从Internet上抓取网页资料
  (2) 建立Internet网页索引数据库
  (3) 在索引数据库中进行搜索
  P2P搜索和传统的搜索不同,P2P搜索是真正的去搜索Internet。在P2P网络中,用户将各自拥有的资源共享出来,而共享的资源就存储在用户的机器上。一台机器上的用户将搜索信息请求同时发给网络上另外的N台机器,如果搜索信息不能够得到满足,这N台机器中的每一台都会把搜索信息的请求转发给另外N台PC,不断重复这个过程。这样搜索的范围将会在几秒钟内以几何级数增长,一定时间内就可以搜遍百万台机器上的资源信息。
  相对于传统的搜索服务而言,P2P技术不仅仅节约了服务器的成本并提高了信息的搜索效率,更重要的意义在于促进了搜索的多元化和权利、义务的分解,使每一台机器都参与到了搜索过程中去,由普通的接受服务的客户端向可以提供服务的一方转变。通过合理可行的方法,将P2P技术与搜索服务结合在一起,在现有的建立统一搜索索引数据库的思路之外,还可以另外引进二条思路:一是在Internet上进行全面的分散备份和无机备份、分散索引和无机索引的思路,而是在互联网上进行至索引而无备份的思路。这样就可以使搜索技术大步向前迈进,走出搜索形式多样化的道路。
  2) 集中式P2P网络的搜索技术
  集中式P2P网络采取是集中索引结构,对等体(peer)发送一个查询信息到唯一的一个中央服务器,如图 2,中央服务器根据对等体发送来的查询信息,在服务器保存的索引信息进行本地搜索,然后将搜索结果发送给对等体。对等体根据服务器发送回来的消息与对应拥有资源的对等体建立连接,并在对等体之间传输所需内容。当对等体的资源发生变化时,比如资源的增加,修改,删除等,索引服务器将收到更新消息,并据此修改服务器缓存的资源索引信息。这种结构查询信息和更新消息只在服务器和对等体之间传播。
  3) 结构化P2P网络的搜索技术
  结构化P2P网络采用分布式哈希表(Distributed Hash,Table简称DHT)结构,使用对应到一个散列(Hash)空间,并且分布式哈希表索引对资源和节点进行搜索。分布式哈希表技术简介:首先将整个搜索空间对各个节点(基于节点的IP地址)也进行相应散列,每个节点各负责一部分散列空间。当一个节点发布一个资源(例如文件),需要对该资源的唯一标识(如文件名)进行散列,而根据该散列值可以确定负责管理该资源的节点。当一个节点要搜索该资源时,同样对该资源的唯一标识使用相同的散列函数进行散列得到散列值,通过有效地局部路由,找到负责该资源的节点从而可以找到要搜索的资源。在这类系统中,赋给每个节点的区域是动态的,依赖于每个时候加入和离开网络的节点数量。
  下面重点以Chord为例介绍使用DHT搜索技术的P2P网络。诞生于美国的麻省理工学
  院。它的目标是提供一个适合于P2P环境的Chord项目分布式资源发现服务,它通过使用DHT技术使得发现指定对象只需要维护O(logN)长度的路由表。在DHT技术中,网络节点按节点标识符(node ID),资源对象通过散列运算产生一个唯一的资源标识符(Object ID),且该资源将存储在节点ID与之相等或者相近的节点上。需要查找该资源时,采用同样的方法可定位到存储该资源的节点。因此,Chord的主要贡献是提出了一个分布式查找协议,该协议可将指定的关键字(Key)映射到对应的节点(Node)。从算法来看,Chord是相容散列算法的变体。
  在搜索的过程中(如图3所示),源节点将点上。收到查询请求的节点如果发现自身存储了被查询的信息,可以直接回应源节点(这与一致性哈希完全相同);如果被查询的信息不在本地,就根据查询表将请求转发到与键值最接近的节点上。这样的过程一直持续到找到相应的节点为止。不难看出,搜索过程实际上就是折半查找的过程。
  由于P2P模式具有的技术特点,很多IT公司和研究部门都认为该技术蕴涵着巨大的技术和商业潜在价值,并从不同的角度研究和应用该技术。目前P2P的应用主要有:文件交换、对等计算、协同工作、搜索引擎、即时通信、网络游戏软件、基于Internet的文件存储系统等。
  4) 非结构化P2P网络的搜索技术
  非结构化P2P网络是在重叠网络(Overlay Network)上使用了随机图的方式,搜索技术主要采取的是泛洪(Flooding)。非结构化P2P网络的典型代表就是Gnutella,Gnutella采取的是基于随机图的泛洪算法。Flooding的工作流程:当一台计算机要下载一个文件,它首先以文件名或者关键字生成一个查询,并把这个查询发送给与它相连的所有计算机,这些计算机如果存在这个文件,则与查询的机器建立连接,如果不存在这个文件,则继续在自己相邻的计算机之间转发这个查询,直到找到文件为止。为了控制搜索消息不至于永远这样传递下去,一般通过TTL(Time To Live)机制来控制查询的深度。随着联网节点的不断增多,网络规模不断扩大,通过这种Flooding方式定位对等点的方法将造成网络流量急剧增加,从而导致网络中部分低带宽节点因网络资源过载而失效。所以,后来许多研究人员在Flooding的基础上作了许多改进。主要有下面各种方法:
  (1) 迭代泛洪(Iterative Flooding)
  (2) 本地索引(Local Index)
  (3) 随机游走(Random Walk)搜索方法
  (4) 基于移动Agent的搜索方法
  5) 混合式P2P网络的搜索技术
  在混合P2P网络中,选择性能较高(处理、存储、带宽等方面性能)的节点作为超级节点,在各个超级节点上存储了系统中其他部分节点的信息,发现算法仅在超级节点之间转发,超级节点再将查询请求转发给适当的叶子节点。半分布式结构也是一个层次式结构,超级节点之间构成一个高速转发层,超级节点和所负责的普通节点构成若干层次。其代表就是Kazaa,其搜索过程如图4所示。虚线代表二个peer之间交流信息。
  混合式P2P网络搜索的优点是性能、可扩展性较好,较容易管理,但对超级节点依赖性大,易于受到攻击,容错性也受到影响,实现上比较困难,为了能够利用这种模式的优点,需要提供能够有效组织对等体间关系的搜索网络,这里所说的组织关系,包括超级节点间的组织模式、客户对等体与超级节点间的组织模式、超级节点间的负载平衡等。
  4 基于P2P网络的分布式广度优先搜索
  1) 广度优先搜索算法
  广度优先搜索算法(又称宽度优先搜索,即BFS)是最简便的图的搜索算法之一,为了减少冗余的搜索包,最简单的方法就是以源节点为根,建立网络图的广度优先生成树,源节点根据广度优先生成树将查询消息发送到每个节点。这样可以保证每个节点都收到查询消息,而且每个节点只收到一次查询消息,不会产生冗余。已知图G=(V,E)和一个源顶点s,广度优先搜索以一种系统的方式探寻G的边,从而“发现”S所能到达的所有顶点,并计算S到所有这些顶点的距离(最少边数),该算法同时能生成一棵根为S且包括所有可达顶点的广度优先树。对从S可达的任意顶点v,广度优先树中从S到v的路径对应于图G中从s到v的最短路径,即包含最小边数的路径。该算法对有向图和无向图同样适用。
  之所以称之为广度优先算法,是因为算法自始至终一直通过已找到和顶点之间的边界向外扩展,也就是说,算法首先搜索和s距离为k的所有然后再去搜索和s距离为k+1的其他顶点。
  2) 广度优先搜索弊端
  广度优先搜索能够确保搜索到网络中的每个节点的信息,同时每个节点只被搜索一次。但是,进行广度优先搜索需要事先知道P2P网络中关于所有节点的网络拓扑结构,这在P2P网络中几乎是不可能的。在P2P网络中,虽然可以通过节点之间相互交换信息来获得所有节点的网络拓扑结构,但是这需要大量的信息交换,会给网络带来很大的负载,特别是当网络的规模比较大时,要获得网络拓扑结构图所带来的负载是不可想象的。广度优先搜索在消除了网络中存在的环路,也即消除冗余数据包的同时,又带来了新的弊端。
  3) 分布式广度优先搜索
  结合广度优先搜索不会产生冗余的优点和P2P网络的动态特性,以及本地索引搜索、启发式搜索的优点,本文提出在小范围内进行广度优先搜索的方法,称为分布式广度优先搜索(DBFS)。分布式广度优先搜索可以在区域内部的范围内大量减少冗余的搜索包,同时,由于范围比较小,因此具有很好的可扩展性和健壮性,能够适应P2P网络的动态变化。那么,在多大范围内进行广度优先搜索是比较合适的呢? 很显然,范围越大就越能减少冗余,当范围是整个网络时,就相当于是对所有的节点进行广度优先搜索。但是,范围越大,为获得网络拓扑结构,节点之间就需要更大的信息交流。当信息交流的增加超过一定范围之后,将会比泛洪搜索中冗余数据包带来更大的网络流量,就达不到减少冗余数据包,减轻网络负载的目的;同时,范围越大,获得的网络拓扑结构就越难及时反映P2P网络的动态变化。
  4) 分布式广度优先搜索模型
  如图5所示,它是一个分布式广度优先搜索的原理图,同时一个被简化了的、理想化了的P2P网络图。在图中,在搜索信息没有收到之前,首先通过启发式搜索的统计方法发现节点A、B、C、D四个节点具有在线时间比较长,在以往的搜索中返回的搜索结果比较多,响应的时间比较快等特点,具有索引节点所应该具备的特点,同时它们相距4跳远,满足建立2跳远节点信息的条件,所以确定节点A、B、C、D四个节点为索引节点,其他节点为转发节点。
  这四个节点分别索引2跳节点内的节点信息,在图中四个节点索引的信息分别是四个椭圆中的所有节点中的信息。这一索引过程是通过广度优先搜索和启发式搜索相结合,分别在各自的区域内确立一棵广度优先生成树来完成的,这样就保证了在区域内部每个节点能够收到索引信息而且只能够一次收到索引信息。保证了所有节点的信息都存储到了索引节点上,即图中的节点A、B、C、D。
  在搜索信息到来时,其它所有节点都只转发这一搜索信息,只有节点A、B、C、D才响应搜索信息,同时返回与搜索信息相匹配的信息。由于所有节点的信息都存储到了索引节点上,所以,只查询节点A、B、C、D四个节点,就能达到查询图3中所有节点信息的目的,大大减少了搜索次数,同时大量减少了冗余的搜索数据包,减少了返回信息时多余的数据包。
  总之,通过分布式广度优先搜索,能大量减少搜索的次数,减少区域内部冗余的数据包,减轻搜索过程中网络的负载,提高了搜索效率和搜索速度,提高了搜索结果的准确率。
  5) 分布式广度优先搜索算法的理论证明
  因为源节点s会向它的所有邻居发送消息,所以距离s节点—跳远的节点都能收到消息。假设距离s节点N(N≥1)跳远的节点都能收到消息。下面证明距离s节点N+1跳远的节点也能收到消息。从距离s节点N+1跳远的节点中任意选出一个节点,假设为v,由于图是连通图,源节点s与v之间至少有一条路径,所以距离s节点N跳远的节点中至少有一个节点是v的邻居节点,假设在距离s节点N跳远的节点中v的邻居节点为{v1,v2,…,vm}。在距离s节点N-1跳远的节点进行广度优先遍历时,{v1,v2,…,vm}中至少有一个节点不是叶子节点,因此{v1,v2,…,vm}中至少有一个节点会被选做转发节点。所以v必定会收到消息。
  5 总结
  分布式广度优先搜索在一个给定的有限的空间内,基本能够保证所有节点上信息都能被搜索出来,而且在分布式广度优先搜索的区域内部,的确能大量减少冗余搜索包,能大量的减少查询的次数。而且由于索引节点的稳定性、快速性,也能提高查询的速度,从而达到提高系统的搜索速度,提高系统的搜索效率,减轻搜索过程中网络负载的目的。
  参考文献:
  [1] 林涨,何巍.利用JXTA平台实现P2P服务的研究[J].武汉理工大学学报,信息与管理版,2005(2).
  [2] Daniel, Brook shier. Java P2P程序设计[M].北京:中国电力出版社,2003.
  [3] 黄道颖,李祖鹏,庄雷,等.分布式Peer-to-Peer网络Gnutella模型研究[J].计算机与应用,2003(5).
  [4] 陈洪,刘双与,杨玉华. P2P技术发展与应用[J].计算机工程,2003,29(19):127-129.
  [5] 李祖鹏.P2P网络路由模型研究及其在MANET路由协议设计中的拓展[D].中国人民解放军信息工程大学,2004.
  [6] 张联峰,刘乃安,钱秀槟.对等网(P2P)技术[J].计算机工程与应用,2003(12).
  [7] 张景祥,张京嵋,李乐民.等.P2P网络安全的信任模型研究[J].计算机究,2003(3):78-79.
  [8] 孙波,王军宁.IPTV的组网及关键技术分析[J].中国有线电视,2006(2).
其他文献
随着我国经济的持续快速发展和居民生活水平的不断改善,社会对营养的需求正大幅增加,百姓对营养概念的理解、生活中的应用、治病防病等方面的知识需求越来越迫切,我国营养工作面
松下X300手机大胆地采用了直板机身加DV(数码摄像机)造型的设计,开创了手机DV造型的先河。92×49×21mm的尺寸和187g的体积使松下X300显得较为小巧,亮银色搭配上神秘感十
期刊
在整个卫生标准制(修)订环节中,标准立项是第一步。为把好标准立项关,把科学的、合理的、可行的标准纳入标准的制(修)订计划.为标准选择技术水平高的起草单位,保证标准的研制进度和标
<正> 宝玉石行业的调查研究,涉及面很广,包括宝玉石资源的探查、采矿、工艺、贸易、科技、教育等各个方面,本文只从资源的探查现状,提出一些对策建议,以供参考。一、宝玉石资
我国实行国家、地方、学校三级课程管理,是开发与实施地方课程直接的政策依据。《房山文化》课程的开发与实施,进一步完善了北京市房山区基础教育课程体系,结束了房山区高中
目的分析糖尿病合并心肌梗死患者的护理措施。方法选择82例在本院住院治疗的糖尿病合并心肌梗死患者,随机分为两组,对照组患者实施常规护理,观察组患者实施舒适护理。结果对
目的观察锁骨钩钢板内固定治疗肩锁关节脱位和锁骨远端骨折的手术效果。方法切开复位后,按左右侧选择不同锁骨钩钢板内固定及韧带修补技术治疗锁骨远端骨折和肩锁关节脱位118
三星在推出一系列的滑盖手机后,市场的目光纷纷集中在它身上,虽然说其它品牌的滑盖手机已有数款,但是均没有三星的滑盖手机那么受欢迎。在三星E808上市数月之后,又相继推出了E818