在对等网络中搜索资源的方法和设备的制作方法

文档序号:7916505阅读:117来源:国知局

专利名称::在对等网络中搜索资源的方法和设备的制作方法
技术领域
:本发明涉及计算机网络,更具体地说,本发明涉及在计算机网络中进行快速搜索的方法和设备。
背景技术
:随着网络技术的发展,在互联网(Internet),特别是在对等(P2P)网络中进行资源搜索、共享变得越来越普遍。在P2P网络中进行资源搜索、共享的常见软件包括迅雷、bt、emule等。但是,目前,在这些软件中进行搜索的速度通常不理想。图1示意性地表示了一个P2P网络100。该P2P网络100包括多个节点,每个节点间为对等关系。如果其中一个节点(例如,节点101)存在希望从其他节点获得特定的资源的请求,该节点101作为请求者向其邻居节点(例如,图1中的节点102-105)多播搜索消息。在收到来自请求者节点101的搜索消息后,每个节点102-105将在自身中进行搜索,同时将接收到的搜索消息传送给其邻居(为了简明起见,图1中只示出了节点101的其中一个邻居节点103将请求转发给其邻居节点106-108)。节点106-108类似地进行本地搜索和消息多播。这样的操作模式将继续下去,直到达到一定的搜索半径为止。收到搜索消息的每个对等节点在进行了本地搜索后,如果该节点搜索到相关资源,则生成P2P搜索响应并将相关资源发回给请求者(路径如图1中的虚线所示)。在这种搜索模式下,请求者盲目地发送请求,而且请求逐层传递。如果过多的请求者同时发送搜索消息,大量查询消息在网络中泛滥,必然会导致信息爆炸;同时,搜索效率低而且计算量大。因此,需要一种能快速提供更有用的搜索结果,从而帮助用户迅速找到所需内容的方法和设备。
发明内容鉴于现有技术中的上述问题,提出根据本发明的技术方案。本发明的技术方案称为元数据引导对等搜索(MetadataDirectedPeertoPeerSearch)或MDPPS,其由P2P技术驱动,是基于本地索引和P2P网络的快速资源搜索引擎。根据本发明的一个方面,提供一种由对等节点在对等网络中搜索资源的的方法,包括预先从其他对等节点接收元数据,所述元数据包含其他对等节点中可供共享的文件信息;响应于从其他对等节点请求特定的资源的需求,根据接收的元数据判断哪个对等节点声称具有所述特定的资源;只向声称具有所述特定资源的对等节点发送资源传输请求。根据本发明的另一个方面,提供一种用于对等网络中的设备,所述设备构成对等网络中的多个对等节点之一,所述设备包括通信装置,预先从其他对等节点接收元数据,每个节点的元数据包含该对等节点中可供共享的文件信息;判断装置,响应于从其他对等节点请求特定的资源的需求,根据接收的元数据判断哪个对等节点声称具有所述特定的资源,其中所述通信装置还用于响应于判断装置的判断,只向声称具有所述特定的文件的对等节点发送请求。根据本发明的优选实施方式,本发明的技术方案具有轻量级本地资源索引服务,可以通过它索引本地资源。然后,借助所述索引生成含有本地共享文件信息的元数据。此外,每个对等体还具有伙伴列表(例如,列表可以包含团队成员、朋友等),各对等体可同所述伙伴列表中的对等体交换和共享生成的元数据(metadata)和查询服务。由于各对等节点在网络中散播含有本地共享文件信息的元数据,所以当一个节点在请求资源时能很快作出判断该向谁发送请求。根据本发明的优选实施方式,在P2P网络中,每个节点与周围节点保持信息交流,所述信息交流优选是在网络空闲时发生,交流的信息可以是完整的元数据、元数据的一部分或者元数据的更新。元数据是一种包含资源关键字信息的数据结构,P2P网络中的节点可以根据搜索关键字和周围节点的元数据,来判断周围节点是否占有其所需资源。一个节点保存着周围P2P网络中节点的元数据(所述元数据可周期性地更新),当这个节点希望在P2P网络中查找某资源时,他先利用周围节点发送过来的最新的元数据来判断,周围节点中哪些节点占有它所需要的资源、哪些没有。这些计算都在本地完成,不需要使用网络。当节点通过元数据对周围节点进行过滤之后,他只发送资源请求消息给那些"声称自己占有这种资源的节点"。"声称自己占有这种资源的节点"即含有所请求关键字的那些元数据的源节点。当进行请求的节点发送后查询请求,其某个邻居节点将接收请求,然后接收节点可以充当发送者并将请求发送给第三方节点,依此类推。快速地,查询请求将在查询半径内遍布整个P2P网络。根据本发明的优选实施方式,使用BloomFilter算法从关键字索引生成元数据。由于BloomFilter算法的空间效率很高,因此可以显著减小对等节点之间的查询消息通信量。由于在本发明中各对等节点预先交换资源信息,并且只向"声称自己占有某种资源的节点"发送资源请求,因此查询的针对性、有效性较强,并加快了返回查询响应结杲的速度(例如,在针对LAN进行的实验例子中,几乎请求者刚刚结束键入搜索请求,系统就返回了搜索结果)。另外,本发明优选将一部分网络通信量从忙时转移到空闲时间,从而降低了搜索资源时的网络通信量,这可以避免消息爆炸或者忙时的消息延迟。通过结合附图阅读下述详细说明,将能够更全面地理解本发明并且更了解本发明的很多优点。图1示意性地表示了一个P2P网络。图2是例示根据本发明的优选实施方式生成与发送元数据的示意图。图3示出了根据本发明的优选实施方式在网络中发送搜索请求、返回响应的示意图。图4描述根据本发明的优选实施方式生成元数据的方法的流程图。图5A和5B示出以关键字"patent"为例来说明形成元数据的方式。图6描述根据本发明的优选实施方式使用元数据的方法的流程图。图7示出根据本发明的优选实施方式的方法的流程图。图8示出根据本发明的优选实施方式的P2P网络中的节点的结构框图。具体实施例方式以下将参考附图对本发明的工作方式进行说明。图2是例示根据本发明的优选实施方式生成与发送元数据的原理的示意图。图2的P2P网络200包括若干对等节点(分别由201-206表示)。应当理解,图2中示出P2P网络包括6个节点,但本发明不局限于此,实际的P2P网络可以包含任意数量的节点。网络200中的每个节点可以预先(优选地,是在网络空闲时间)向其邻居发送元数据M(为了简明起见,图中只示出节点201向其邻居节点202-206发送所述元数据M,而其他节点向邻居节点发送的情况未示出),以表明或声称该节点201具有哪些可以与邻居共享的内容。通过每个节点与周围节点保持信息交流,每个节点都知道其邻居节点具有哪些可共享的内容。这样,如果一个节点(例如节点201)有希望请求特定的资源的请求,其先用请求关键字与本地收集到的元数据进行匹配,即通过来自邻居的元数据过滤邻居,以便请求者知道哪些邻居拥有资源。然后,将请求发送给那些拥有资源的邻居。同样,当邻居接收到搜索请求时,也使用请求关键字与它所收集到的元数据进行匹配,资源请求者只向声称具有请求者想要的内容的邻居发送搜索查询消息,以此类推。图3示出了根据本发明的优选实施方式在网络中发送资源请求、返回响应的示意图。图3的P2P网络的构成与图1的P2P网络相同。不同之处在于,在图3的网络中,请求者节点(如图3中的节点301)不是向每个邻居都发送资源请求,而只向标记为"是,,的节点303、305发送资源请求。同样,标记为"是"的邻居303收到请求后,也只转发给他的标记为"是"的邻居308(应当理解,为了简明起见,未示出节点305的转发操作)。这里,标记为"是"的节点即为通过元数据表明具有请求者想要的内容的邻居。由图3可见,在使用本发明的情况下,在P2P网络中发送资源请求、返回响应的通信量显著低于图1中的通信量。由此可见,在本发明中,网络中的各对等节点预先交换元数据,从而每个节点可以根据其邻居的元数据来判断其邻居是否包含特定的资源,并在需要请求资源时只向"声称自己占有某种资源的节点"发送资源请求。因此,查询的针对性、有效性较强,并加快了返回查询响应结果的速度。由于元数据占用空间4艮小(特别是当只需发送元数据的更新时),即便各节点在网络繁忙的时期发送/接收这样的元数据,也不会对网络通信量造成负担。不过,根据本发明的一种优选实施方式,各对等节点是在网络空闲时期向其邻居节点发送元数据信息。根据本发明的另一种优选实施方式,当一个节点接收到其他节点(可以是邻居节点、也可以不是邻居节点)的元数据后,可以触发该节点向所述其他节点发送元数据。所述网络空闲时间可由用户指定(例如,在网络通信量相对较小的夜间),也可以使用网络流量测量工具(NTMT)或算法来侦测网络的空闲或非高峰时期。网络流量测量工具可以侦测路由器和个人电脑上的网络带宽,这在本领域中已经有成熟技术,因此不在此进行详细描述。相关内容例如可参见http:〃en.wiki。edia.org/wiki/Networktrafficmeasurement或http:〃en.wikipedia.org/wiki/Packetsniffer。本发明中使用的术语"邻居"或"邻居节点"的含义在本领域中是已知的。当每个节点(工作站)加入对等网络时,他会从保存对等体群的更新信息的web高速緩存中提取一个伙伴列表,或者也可以自定义伙伴列表,这个伙伴列表中包括的各对等体即为该加入网络的节点的邻居或邻居节点。一个节点的邻居节点可以通过一个固定的列表初始化,然后逐步在接收、发送资源的过程中调整,最终目的是使当前节点能更快更好地获得所需要的资源。每个对等体的伙伴列表可以由类似伙伴列表和收藏伙伴列表等组成。包含类似资源的伙伴将被添加到类似伙伴列表,而总是能提供有价值资源的伙伴将被添加到收藏伙伴列表。而且,如果一个对等体经常从收藏伙伴那里获得资源,则该对等体可以成为该收藏伙伴的类似伙伴。图4示出根据本发明的优选实施方式生成元数据的方法的流程图。该方法从步骤400开始,随后进入步骤410。在步骤410中,作为网络中一个对等节点的计算机对希望共享给网络中其它计算机的本地资源编制文件索引。接着,在步骤420中,通过在步骤"0中产生的文件索引来生成元数据。随后,该方法在步骤430中结束。"文件索引,,是指对计算机文件编制反向索引,形成某个单词在一个文档或一组文档中的存储位置的映射,它是文件检索中最常用的数据结构,通过文件索引(反向索引),用户可以快速查找含有某关键字的本地资源。用于编制索引的工具例如GoogleDesktop、Lucene、Beagle等。有关如何对资源或文件编制索引在本领域中已经有成熟技术。这里以英文为例简单介绍如何编制文件索引,下面是要被索引的文本TO="itiswhatitis"Tl="whatisit"T2"itisabanana"这些文本可以包含在文件的名称、内容、描述中,假设T1是计算机中某个文件的名称,如"D:Whatisit.doc",而TO是F:\hello.doc文件中的某一行。文件索引程序首先对被索引的文本进行分词,"whatisit,,将被分成三个单词"what,,,"is","it",这些单词就是本发明提到的索引关键词;然后对单词与它所在的文本建立映射关系;通过文件索引程序,可以得到下面的文件索引(其中W表示文本T1,其它类似)"a":{2}',ba瞧a',{2}"is":{0,1,2}"it":{0,1,2}"what":{0,1}索引程序会记录T0、Tl、T2对应资源的位置,如Tl对应"D'Awhatisit.doc"。这样用户当用户输入查询关键词"what"的时候,文件索引程序就可以很快的定位到包含这个关键词的文件的位置D:\whatisit.doc。当用户搜索关键词"whatisit,,时,索引程序会将关键词映射取交集返回{0,1拜,1,2拜,1,2}={0,1},索引程序会通知用户可以在D:\whatisit.doc(Tl)或者F:\hello.doc(TO)找到所查询的关键词。在对本地文件或资源进行索引后,再从文件或资源索引生成索引元数据,以在适当的时间(优选地是在网络空闲时)将该索引元数据分发到相邻对等体。可以有多种示例方式来生成索引元数据,如下所述。一种方式是直接将生成的资源索引作为元数据。生成的资源索引可以包括资源关键字以及有关资源位置等的信息。通过这种方式生成的元数据为请求资源的节点提供了与资源相关的丰富信息,便于请求资源的节点进行判断。另一种方式是将资源索引中的关键字作为元数据。这时,可通过将资源索引中的各关键字列入一个文件中来形成元数据。相比于前一种方式,由于只发送索引关键字,因而可以减少一部分网络通信量。再一种方式是使用Bloomfilter算法生成元数据。Bloomfilter(简称bl)是一种空间效率很高的随机数据结构,它利用位数組很简洁地表示一个集合,并能判断一个元素是否属于这个集合。本发明的优选实施方式利用bl的特性,使用比特数组表示本地计算机上(文件索引)关键字集合。对于任意用户输入的关键字,用bl方法可以判断这个关键字是否包含在已经生成的比特数组中,从而确定计算机中是否含有对应的资源。这样,将本地计算机A生成的比特数组发送给网络中计算机B,使用bl方法,B就能判断,A是否占有它所需要的资源。BloomFilter的这种高效是有一定代价的在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元素误认为属于这个集合(falsepositive)。因此,BloomFilter不适合那些"零错误"的应用场合。而在能容忍低错误率的应用场合下,BloomFilter通过极少的错误换取了存储空间的极大节省。下面描述BloomFilter用位数组表示集合的方式。在初始状态时,BloomFilter是一个包含m位的位数組,每一位都置为O。…|g|o|o|Q|ft|0|d|t|Q:|tf|^|f|…用S^A,义2,...^11}这样一个11个元素的集合,在本专利中S就是关键字集合。有一个初始状态全O的比特数组,长度为m。BloomFilter使用k个相互独立的哈希函数(HashFunction),它们分别将集合中的每个元素映射到U,...,m)的范围中。对任意一个元素x,第i个哈希函数映射的位置hi(x)就会被置为l(lSSk)。注意,如果一个位置多次被置为l,那么只有第一次会起作用(也就是做或操作),后面几次将没有任何效果。在下表中,k=3,且有两个哈希函数选中同一个位置(从左边数笫五位)。最终形成的0,l比特数组就是这里提到的元数据。<table>tableseeoriginaldocumentpage12</column></row><table>表查询时,在判断y是否属于这个集合时,我们对y应用k次哈希函数,如果所有hj(y)的位置都是l(l^i^k),那么我们就认为y是集合中的元素,否则就认为y不是集合中的元素。下表中》就不是集合中的元素。y2或者属于这个集合,或者刚好是一个错误肯定(falsepositive).亚00000表b为进一步说明如何用Bloomfilter生成、使用元数据,假设计算机A上有文件CAHello一world.txt,其内容为空白。通过文件索引程序,可以得到含有类似如下信息的索引文件"Hello"->C:\Hello_world.txt"world"醫>C:\Hello—world.txt可以认为,"Hello"关键词就是上表a中的A,"world"关键词就是表a中的&。选取三种不同的哈希函数,它们将Xi映射到比特数组位置2,5,9上,于是粑比特数组的2,5,9位置置为"1";函数将X2映射到比特数组位置5,7,ll上,也将比特数组的5,7,ll位置置为"l",5位置被两次置"l",结果仍为"l"。完成后,这个比特数组就是包含"Hello"、"world"关键词的元数据。A将它分发给周围的邻居节点。假设B是A的邻居之一,并且收到了A发送来的元数据。在本发明中,当B用户希望查找含有"Hello"关键词(yj的资源时对关键词"Hello,,使用预先设置好的三种哈希函数(这三种哈希函数与A节点上生成元数据的函数一致),如表b,则关键词"Hello"也一定会被映射到比特数組2,5,9上,那么我们就认为A节点上含有B用户想要的资源(A节点C:\Hello—world.txt),随后B会发资源请求给节点A。有关bloomfilter的更多内容,可参见http:〃en.wikipedia.org/wiki/Bloomfilter、http:扁og.csdn.iiet/Haomen2/archive/2007/01/27/149550(Us])x或h加〃www.googlechinablog.com/2007/07/bloom-filter.html。图5A和5B以关键字"patent"为例来说明形成元数据的方式。比特数组(Array),假定其长度为m(m为自然数),并且每个比特均设置为0。必须定义k个不同的哈希函数,每个哈希函数都将关键字值映射到m个数组位置之一。为了将诸如"patent,,的元素添加到元数据中,需要将其应用于k个哈希函数中的每一个,以获得k个数组位置,然后将所有这k个位置的比特值设置为"1",这样"patent"关键词的元数据就形成了。将针对每个索引关键字执行上述步骤,以形成m个比特长度的数组,其每一位为1或0。另外,本领域技术人员能够理解,k值越大、数组长度越长,所生成的元数据越精确。将所有可共享资源生成元数据之后,P2P网络中的对等节点会将自己的元数据在用户指定的时间或在网络空闲时,不断分发到周围网络中,如图2所示。网络中的每个对等节点都具有元数据,所述元数据是包括资源索引关键字哈希代码(hashcode)的比特数组。每个对等节点用资源索引生成它的元数据,并将该元数据发送到所有相邻节点。每个对等节点保持所有邻居的更新的元数据。每个对等节点可以根据其邻居的元数据知道其邻居是否具有他想要的资源(这是在本地完成的,不需发送任何消息)。优选地,在生成元数据后,一个节点只在首次与邻居节点进行元数据交换时发送整个索引元数据,此后只发送更新的数据包,从而能够进一步减少网络中的通信量。如本领域技术人员所知,诸如Google地资源进行索引,从而知道有哪-些资源:化(例如:增加或删除了资源),并对这些资源变化生成更新的索引。随后,再通过BloomFilter生成更新的元数据,以向邻居节点发送。另外,元数据是在本地计算机中生成然后分发到周围节点上,因此元数据内容可以由用户定制,从而用户可以隐藏不希望他人知道的私密数据。P2P网络中的每个节点可以包含本地索引编制引擎和元数据生成器(未示出),分別用于对其本地资源编制文件索引和用于从该索引生成元数据。以下参照图6描述根据本发明的优选实施方式使用元数据的方法的流程图。该方法从步骤600开始,随后进入步骤610。在步骤610中,当用户希望搜索含有某个关键字的资源时,输入关键字,若元数据是4吏用Bloomfilter方法生成的,则对用户输入的关键字使用Bloomfilter,Bloomfilter中使用的哈希方法要与生成元数据时的方法保持一致(应当指出,在对等网络中使用怎样的哈希函数以及哈希函数的个数k可以由方法预先定义,一个对等网络中的每个节点只要遵从该定义即可)。接着,在步骤620中,将步骤610中的关键字与从各个邻居节点获得的元数据依次进行对比,对于Bloomfilter方法生成的元数据,要使用从搜索关键词生成的数据与从各个邻居节点获得的元数据依次进行对比,以在步骤630中判断是否与某些邻居节点发送来的元数据相符。如果在步骤630中的判断为"是"(即与某些邻居节点发送来的元数据相符),则认为这些邻居节点拥有当前用户所需要的资源(步骤640)。随后,在步骤660中,发送资源请求消息给这些拥有所请求资源的邻居节点。随后,在670判断是否所有收集到的元数椐都已经比较结束,若已经比较结束则该方法在步骤680中结束;若还有尚未比较的元数据则返回步骤630继续执行。如果在步骤630中的判断为"否,,(即不与某些邻居节点发送来的元数据相符),则不认为这些邻居节点拥有当前用户所需要的资源并且不对其发送资源请求(步骤650),随后转到步骤670。对于步骤650,可能存在如下情况。进行资源请求的节点先前并未从所有邻居收集到元数据。于是,当步骤630的判断为"否"的情况下,在执行步骤650后,进行资源请求的节点可以转而向尚未收集到其元数据的那些节点联系,以查看他们是否有所需的资源。图7示出根据本发明的优选实施方式的方法的总体流程图。该方法从步骤700开始,随后进入步骤710。在步骤710中,网络中的对等节点预先接收其他对等节点的元数据,每个节点的元数据包含该对等节点中可供共享的文件信息。然后,在步骤720中,如果有从其他对等节点请求特定的资源的需求,响应于该需求根据接收的元数据判断哪个对等节点声称具有所述特定的资源。接着,在步骤730中,只向声称具有所述特定资源的对等节点发送请求。该方法在步骤740中结束。图8示出根据本发明的优选实施方式的P2P网络中的节点(例如,如图2的节点201)的结构框图。该节点包括通信装置810和判断装置830。其中,通信装置810用于预先接收其他对等节点的元数据,每个节点的元数据包含该对等节点中可供共享的文件信息。判断装置830用于响应于从其他对等节点请求特定的资源的需求,根据接收的元数据判断哪个对等节点声称具有所述特定的资源。通信装置810还用于响应于判断装置830的判断,只向声称具有所述特定的文件的对等节点发送请求。根据本发明的优选实施方式,如图8所示的节点201还可以包括一个通信控制装置(如图8中的虚线框820所示),用于控制所述通信装置810主动向其他对等节点发送节点201的元数据。例如,通信控制装置820可以在用户指定的时间(如夜间)或者在网络空闲时间命令所述通信装置810向其他对等节点发送元数据,或者在通信装置810从其他节点接收了元数据的情况下,命令所述通信装置810向其他对等节点发送元数据。具体对等节点201的通信装置810、通信控制装置820和判断装置830之间如何协作,与本发明的方法描述是一致的,本领域技术人员根据本发明的描述和本领域技术知识,是可以理解的,这里不再赘述。在本发明中,将发送或者交换有关资源的消息与发送实际的资源请求分离,并且只向"声称自己占有某种资源的节点"发送资源请求,从而改善了查询的针对性、有效性,并加快了返回资源请求响应的速度。另外,本发明优选在网络空闲时间发送或者交换有关资源的消息。这样,通过将一部分网络通信量从忙时转移到空闲时间,降低了搜索资源时的网络通信量,这可以避免消息爆炸或者忙时的消息延迟。应当理解,尽管图8中将通信装置810示为一个组件,但是本领域技术人员能够理解,所述通信装置810可由分立的接收装置和发送装置构成。本领域技术人员会认识到,可以以方法、系统或计算机程序产品的形式提供本发明的实施例。因此,本发明可采取全硬件实施例、全软件实施例,或者组合软件和硬件的实施例的形式。硬件和软件的典型的结合可以是带有计算机程序的通用计算机系统,当程序被加载并被执行时,控制计算机系统,从而可以执行上述的方法。本发明可以嵌入在计算机程序产品中,它包括使此处描述的方法得以实施的所有特征。所述计算机程序产品被包含在一个或多个计算机可读存储介质(包括,但不限于,磁盘存储器、CD-ROM、光学存储器等)中,所述计算机可读存储介质具有包含于其中的计算机可读程序代码。已参考根据本发明的方法、系统及计算机程序产品的流程图和/或方框图说明了本发明。流程图和/或方框图中的每个方框,以及流程图和/或方框图中的方框的组合显然可由计算机程序指令实现。这些计算机程序指令可被提供给通用计算机、专用计算机、嵌入式处理器或者其他可编程的数据处理设备的处理器,以产生一台机器,从而指令(所述指令通过计算机或者其他可编程数据处理设备的处理器)产生用于实现在流程图和/或方框图的一个或多个方框中规定的功能的装置。这些计算机程序指令也可保存在一个或多个计算机的读存储器中,每个这种存储器能够指挥计算机或者其他可编程数据处理设备按照特定的方式发挥作用,从而保存在计算机可读存储器中的指令产生一种制造产品,所述制造产品包括实现在流程图和/或方框图的一个或多个方框中规定的功能的指令装置。计算机程序指令也可被加载到一个或多个计算机或者其他可编程数据处理设备上,使得在所述计算机或者其他可编程数据处理设备上执行一系列的操作步骤,从而在每个这样的设备上产生计算机实现的过程,以致在该设备上执行的指令提供用于实现在流程图和/或方框图的一个或多个方框中规定的步骤。以上结合本发明的优选实施方式对本发明的原理进行了说明,但这些说明只是示例性的,不应理解为对本发明的任何限制。本领域技术人员可以对本发明进行各种改变和变形,而不会背离由随附权利要求所限定的本发明的精神和范围。权利要求1.一种在对等网络中搜索资源的方法,包括预先从其他对等节点接收元数据,每个对等节点的元数据包含该对等节点中可供共享的文件信息;响应于从其他对等节点请求特定的资源的需求,根据接收的元数据判断哪个对等节点声称具有所述特定的资源;只向声称具有所述特定的资源的其他对等节点发送请求。2.根据权利要求1所述的方法,其中预先从其他对等节点接收元数据的步骤是在网络空闲时接收的。3.根据权利要求2所述的方法,其中通过下述至少一种方式确定网络空闲时间a)利用网络流量测量工具侦测,和/或b)由用户指定。4.根据权利要求1所述的方法,其中所述生成元数据使用以下方式之一对希望共享给网络中其它对等节点的本地资源编制文件索引,将文件所索引作为元数据;将上述文件索引的关键字作为元数据;或者使用Bloomfilter算法对上述文件索引的关键字进行处理,生成元数据。5.根据权利要求4所述的方法,其中根据接收的元数据判断哪个对等节点声称具有所述特定的资源的步骤包括当用户希望搜索含有某个关键字的资源时,如果元数据是文件索引或文件索引的关键字,将所述文件索引的关键字与从各个邻居节点获得的元数据依次进行对比,判断各邻居节点是否为声称拥有所请求资源的邻居节点。6.根据权利要求4所述的方法,其中根据接收的元数据判断哪个对等节点声称具有所述特定的资源的步骤包括当邻居节点的元数据是使用Bloomfilter方法生成时,对用户输入的关键字使用Bloomfilter算法;将从关键字生成的数据与从各个邻居节点获得的元数据进行对比,以判断各邻居节点是否可能为声称拥有所请求资源的邻居节点。7.根据权利要求1所述的方法,还包括将元数据发送到网络中的其他对等节点。8.—种用于对等网络中的设备,所述设备构成对等网络中的多个对等节点之一,所述设备包括通信装置,预先从其他对等节点接收元数据,每个节点的元数据包含该对等节点中可供共享的文件信息;判断装置,响应于从其他对等节点请求特定的资源的需求,根据接收的元数据判断哪个对等节点声称具有所述特定的资源;其中所述通信装置还用于响应于判断装置的判断,只向声称具有所述特定的文件的对等节点发送请求。9.根据权利要求8所述的方法,其中所述通信装置从其他对等节点接收所述其他对等节点在网络空闲时发送的元数据。10.根据权利要求9所述的方法,还包括通过下述方式之一确定网络空闲时间的装置a)利用网络流量测量工具侦测,和b)由用户指定。11.根据权利要求8所述的设备,还包括通信控制装置,用于控制所述通信装置预先将元数据发送到网络中的其他对等节点。12.根据权利要求8的设备,其中所述生成元数据使用以下方式之一对希望共享给网络中其它对等节点的本地资源编制文件索引,将文件所索引作为元数据;将上述文件索引的关键字作为元数据;或者使用Bloomfilter算法对上述文件索引的关键字进行处理,生成元数据。13.根据权利要求12所述的设备,其中所述判断装置根据接收的元数据判断哪个对等节点声称具有所迷特定的资源的步骤包括当用户希望搜索含有某个关键字的资源时,如果元数据是文件索引或文件索引的关键字,将所述文件索引的关键字与从各个邻居节点获得的元数据依次进行对比,判断各邻居节点是否为声称拥有所请求资源的邻居节点。14.根据权利要求12所述的设备,其中所述判断装置根据接收的元数据判断哪个对等节点声称具有所述特定的资源的步骤包括当邻居节点的元数据是使用Bloomfilter方法生成时,对用户输入的关键字使用Bloomfilter算法;将从关键字生成的数据与从各个邻居节点获得的元数据进行对比,以判断各邻居节点是否可能为声称拥有所请求资源的邻居节点。15.—种对等网络,包括多个如权利要求8-l4中任一项所述的设备。全文摘要本发明提供一种在P2P网络中进行搜索的方法,包括预先从其他对等节点接收元数据,每个节点的元数据包含该对等节点中可供共享的文件信息;响应于从其他对等节点请求特定的资源的需求,根据接收的元数据判断哪个对等节点声称具有所述特定的资源;只向声称具有所述特定的资源的对等节点发送请求。通过使用本发明,可以显著降低在P2P网络中的通信量,减少或避免网络流量高峰消息延迟和消息爆炸现象。文档编号H04L12/46GK101640623SQ20081012945公开日2010年2月3日申请日期2008年7月31日优先权日2008年7月31日发明者吴晓岛,皮光明,东谢,贾燕蕾,迟承敏申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1