背景技术
随着互联网络的发展,分布在世界各地的计算机的信息可以被互联网上的用户共享,人们可以在互联网上可以随时获取各种信息,极大方便了人们的生活。目前在互联网中,文件共享采用的网络架构大致有两种,一种是以服务器/客户机(Server/Client)方式实现的网络架构,用户即客户机需要获取信息时,先连接到服务器,并从服务器获取所需的信息;另一种是对等网络(Peer-to-PeerNetwork),对等网络与传统的服务器/客户机模式不同,对等网络中没有明确的服务器和客户机之分,每个对等结点(Peer)既作为服务器为对等网络提供服务,又作为客户机从对等网络获得服务。目前,对等网络在文件共享、数据检索、协同计算、即时通讯、数据分散存储以及网络游戏等方面有着广泛的应用。
根据拓扑结构可以将对等网络分为:中心化拓扑式对等网络、全分布非结构化对等网络、全分布结构化对等网络和半分式拓扑式对等网络。下面列举这几种对等网络中文件共享的通常做法。
以Napster为代表的中心化拓扑式对等网络中,一群高性能的中央服务器(中央索引服务器)保存着网络中所有活动对等结点共享资源的目录信息。当需要检索某个文件时,对等结点向中央服务器发出检索请求,中央服务器进行相应的检索后,会返回符合检索要求的对等结点地址列表。检索发起结点接收到应答后,会根据网络流量和延迟等信息进行选择,与合适的对等结点建立连接,并开始传输文件。
全分布式非结构化对等网络中没有中央服务器,它采用了基于完全随机的洪泛(Flooding)发现和随机转发(Random Walker)机制。为了控制搜索消息的传输,通过TTL(Time To Live)的减值来实现。为了检索某个文件,源对等结点向与之相邻的所有活动对等结点发送一个检索请求包(Query),其他对等结点在接收到该检索请求包后,检查本地是否有符合检索请求的文件内容,如果有,则按检索请求包的发送路径返回一个检索响应包(QueryHit)。无论本地是否存在符合检索请求的文件内容,其他对等结点都会向所有邻居结点转发检索请求包,直至检索请求包中TTL属性值递减为0时停止继续转发。
全分布式结构化对等网络中采用分布式哈希表(Distributed Hash Table,DHT)可以精确、高效的检索信息。DHT基本思想为:首先为网络中的每一个结点分配虚拟地址(VID),也叫结点ID,同时用一个关键字(KEY)来表示其提供的共享内容。取一个散列函数H,这个函数可以将KEY转换成一个散列值H(KEY)。网络中结点相邻的定义是散列值相邻。结点发布信息的时候就把(KEY,VID)二元组发布到具有和H(KEY)相同或相近虚拟地址的结点上去,其中VID指出了文档的存储位置。资源定位的时候,就可以快速根据H(KEY)到索引存放结点上获取二元组(KEY,VID),从而获得文档的真实存储位置。
半分布式拓扑对等网络中通常选择性能较高(处理、存储、带宽等方面性能)的结点作为超级结点(SuperNodes,Hubs),在各超级结点上存储其负责的普通结点的信息,如共享文件信息等。普通结点向其超级结点提交检索请求,发现算法仅在超级结点之间转发,超级结点最终将检索请求转发给适当的普通结点。半分布式结构是一个层次式结构,超级结点之间构成一个高速转发层,超级结点和所负责的普通结点构成若干层次。
另外,对等网络中基于内容的检索是一个重要的研究领域。目前主要采用以下两种技术,对于第一种技术,用户在发布文件时,先将本地共享文件根据其内容进行处理,每个文件被表示成一个文件向量,将文件向量存储在本地或者中心索引服务器上。用户进行检索时,通过将检索请求表示成一个检索向量,计算检索向量和共享文件向量的相似度,将相似度较大的文件作为结果返回源检索发起结点。这种技术的缺点是文件发布和检索时,文件向量和检索向量需要在对等网络上路由,而文件向量和检索向量都是多维的,因此会造成一定的网络流量;检索时需要实时计算检索向量和共享文件向量间的相似度,这导致了相应的计算量和时延。对于第二种技术,用户在发布文件时,先将本地共享文件根据其内容采用分类器进行分类,将文件分类结果存储在本地或者中心索引服务器上。用户进行检索时,通过对检索的内容进行分类(或者检索内容本身就是类别名),对等网络返回与检索请求具有相同类别的共享文件最为检索结果。第二种技术的缺点是由于只是基于检索内容与共享文件两者的类别名进行匹配,粒度太大,无法区分共享文件与检索内容的匹配程度。
现有技术公开了一种应用于内容寻址网络(Content Addressable Network,CAN)的文件检索方法。CAN是一种全分布式结构化对等网络,每个对等结点拥有唯一的结点ID。
请参考图1,为该技术方案内容寻址网络示意图,图中右上角的某个对等结点在对等网络100中共享了文件DOC A,通过隐含语义索引变换,得到了该文件的索引[V(Doc A),Y]。该索引在空间中对应的点在对等结点134负责的区域134a内,因此对等网络将该文件索引[V(Doc A),Y]存储在对等结点134中。图中左上角某个用户结点提交了一个检索QUERY,经过隐含语义索引变换,得到了该检索对应的语义向量V(QUERY)。该语义向量在空间中对应的点属于对等结点130负责的区域130a。对等结点130以及其邻居结点进行相应的本地检索与匹配运算,获知结点135中保存了与检索语义向量V(QUERY)相似度满足要求的文件索引。对等结点135将相应文件索引返回源检索发起结点,源检索结点根据需要向文件宿主结点发出请求,进行相应文件的下载。
虽然上述技术方案能够实现基于内容的检索,但是在用户在检索文件时,需将检索语义向量路由至相应的用户结点,并在该用户结点及其邻居结点进行本地检索和匹配运算,由于语义向量一般有50-350维,因此会造成较大的网络流量和计算负担,从而影响了检索效率。综上所述,有必要提供一种对等网络中效率较高的文件发布和检索的方法。
发明内容
本发明要解决的问题在于提供一种对等网络中效率较高的文件发布和检索的方法及其系统。
为解决上述技术问题,本发明的目的是通过以下技术方案实现的:
本发明提供一种文件发布方法,适用于各种对等网络,所述方法包括步骤:
对发布的文件进行分类,生成分类结果,所述分类结果包括文件格式、文件类别以及文件相似度向量;
根据分类结果生成对应的文件关键字;
制作包含文件关键字的文件索引;
将文件索引发布到对等网络中进行存储。
优选地,由待发布文件的对等结点对发布的文件进行分类、生成文件关键字、制作文件索引以及将文件索引发布到对等网络中。
优选地,所述对发布的文件进行分类具体为:针对不同的文件格式,采用不同的分类器模型对文件进行分类。
优选地,所述生成对应的文件关键字为:将文件相似度向量与从配置服务器获得的类别加权向量进行数量积运算,去掉结果的小数部分,将整数部分作为文件关键字。
优选地,所述生成对应的文件关键字为:将文件相似度向量与该文件关键字范围进行乘积运算,去掉结果的小数部分,将结果作为文件关键字。
优选地,对于中心拓扑式对等网络,所述待发布文件的对等结点将文件索引发布到中央索引服务器中进行存储。
优选地,对于全分布式结构化对等网络,所述待发布文件的对等结点将文件索引发布到ID值与所述文件关键字相同或近似的对等结点中进行存储。
优选地,在对发布的文件进行分类之前,由配置服务器对待发布文件的对等结点进行参数配置。
本发明还提供一种文件检索方法,适用于各种对等网络,所述方法包括步骤:
对检索请求的内容进行分类,生成分类结果,所述分类结果包括文件格式、文件类别以及文件相似度向量;
根据分类结果生成对应的检索关键字;
制作包含检索关键字的检索索引;
将检索索引路由到对等网络;
在对等网络中进行关键字匹配运算,得到检索结果,并将检索结果返回提出检索请求的对等结点。
优选地,由提出检索请求的对等结点对检索请求的内容进行分类、生成关键字、制作检索索引以及将检索索引路由到对等网络。
优选地,所述对检索请求的内容进行分类为:针对不同的文件格式,采用不同的分类器模型进行分类。
优选地,所述生成对应的检索关键字为:将文件相似度向量与从配置服务器获得的类别加权向量进行数量积运算,去掉结果的小数部分,将整数部分作为检索关键字。
优选地,所述生成对应的检索关键字为:将文件相似度向量与该文件关键字范围进行乘积运算,去掉结果的小数部分,将结果作为文件关键字。
优选地,所述在对等网络中进行关键字匹配运算为判断文件关键字与检索关检字之间是否符合下列条件:
|共享文件关键字-检索关键字|≤阈值,其中阈值是由配置服务器设定的一个较小值。
优选地,对检索请求的内容进行分类前,由配置服务器为各功能单元进行参数配置。
本发明还提供一种文件发布和检索系统,适用于各种对等网络,所述文件发布和检索系统包括至少一个对等结点,每一对等结点包括分类单元、关键字生成单元、发布单元和检索单元,其中:
所述分类单元将对等节点发布的文件或者检索的内容进行分类,生成分类结果,所述分类结果包括文件格式、文件类别以及文件相似度向量;
所述关键字生成单元根据分类单元生成的分类结果生成对应的文件关键字或检索关键字,并将所述关键字存储在分类单元中;
所述发布单元据分类单元中的文件关键字生成文件索引,并发送到对等网络中进行存储;
所述检索单元根据分类单元中的检索关键字生成检索索引,并将检索索引发布到对等网络中进行检索。
优选地,全分布式结构化对等网络中,所述文件发布和检索系统进一步包括路由单元,用于将文件索引或检索索引路由到对等网络中。
优选地,所述分类单元包括分类器和分类目录,所述分类器根据文件的内容对共享文件或检索内容分类,所述分类目录存储分类结果。
优选地,所述关键字由文件相似度向量与类别加权向量进行数量积运算得到的结果去掉小数部分所得。
优选地,所述关键字由文件相似度向量与该文件关键字范围进行乘积运算,去掉结果的小数部分所得。
优选地,所述文件发布和检索系统还包括配置服务器,为各对等结点提供配置参数和系统升级服务。
优选地,对于中心拓扑式对等网络,所述文件发布和检索系统还包括中央索引服务器,用于存储对等结点发布的文件索引。
优选地,对于全分布式结构化对等网络,所述文件发布和检索系统还包括结点索引库,用于存储对等结点发布的文件索引。
综上所述,本发明中进行文件发布和检索时,只需将关键字路由到对等网络,而不需进行对等结点间语义向量的传输,因此减轻了网络的流量;而且在检索文件时,只需进行关键字匹配运算,而不需进行文件向量之间相似度的计算,减轻了对等网络中其他结点的计算负担,因此本发明所提供的文件发布和检索的方法提高了文件发布和检索的效率。
具体实施方式
本发明提供了一种对等网络中文件发布和检索方法及其系统。为使本发明更加清楚明了,以下结合实施方式和附图,并针对不同拓扑结构的对等网络对本发明进行详细描述。
请参照图2,为中心拓扑式对等网络中文件发布和检索的系统结构图。该文件发布和检索系统包括多个对等结点R1、R2等,以及一个配置服务器17。每个对等结点包括一个分类单元10,一个关键字生成单元11,一个发布单元13,一个检索单元14,一个路由单元15以及一个中央索引服务器16。分类单元10包括一个分类器101和一个分类目录102,分类器101用于对共享文件以及检索内容进行分类。分类目录102存储分类结果。关键字生成单元11根据分类结果为共享文件以及检索内容生成对应的文件关键字以及检索关键字。发布单元13将共享文件的信息制作成文件索引并通过路由单元15发布到中央索引服务器16中进行存储。检索单元14将检索内容制作成检索索引并通过路由单元15将检索索引发送到中央索引服务器16中检索是否有符合要求的文件索引。
下面针对中心拓扑式对等网络进行文件发布和检索的工作过程进行说明。
请参阅图3,中心拓扑式对等网络中文件的发布过程包括:
步骤101:待发布文件的对等结点加入对等网络并发出文件发布请求。配置服务器验证本地配置参数的有效性,如果配置服务器上的参数与对等结点本地保存的参数版本不一致,则配置服务器将最新的配置参数传送给对等结点,对等结点根据获得的参数对本地各功能单元进行配置。配置参数中包括分类器参数和其它相关参数。
步骤102:分类器针对不同的文件格式(文本、音频、视频、图像等),采用不同的分类器模型对对等结点本地的共享文件进行分类。
步骤103:共享文件的分类结果以一定的记录格式保存在分类目录中。
步骤104:关键字生成单元根据共享文件的格式以及分类结果对其进行关键字计算操作,为每一共享文件生成相应的文件关键字,该文件关键字被分类目录进行记录。
步骤105:发布单元调用分类目录中的文件关键字生成相应的文件索引<共享文件关键字,共享文件格式,共享文件路径名,对等结点IP>。
步骤106:路由单元将文件索引发送到中心索引服务器。
步骤107:中心索引服务器将文件索引进行保存,发布结束。对于具有多个类别的共享文件,将其对应的多个索引分别发送到中心化索引服务器上进行保存。
上述实施例中,分类目录的存储结构如表1所示。
记录号 |
文件名 |
文件格式 |
文件类别 |
文件相似度向量 |
关键字 |
1 |
中国.txt |
文本 |
类别a |
(s<sub>11</sub>,s<sub>12</sub>,...s<sub>1k</sub>) |
Key1 |
2 |
Love.doc |
文本 |
类别b |
(s<sub>21</sub>,s<sub>22</sub>,...s<sub>2k</sub>) |
Key2 |
3 |
Panther.jpg |
JPEG图像 |
类别c |
(s<sub>31</sub>,s<sub>32</sub>,...s<sub>3x</sub>) |
Key3 |
4 |
Tiger.mp3 |
MP3音频 |
类别d |
(s<sub>41</sub>,s<sub>42</sub>,...s<sub>4p</sub>) |
Key4 |
5 |
无极.rmvb |
RMVB视频 |
类别e |
(s<sub>51</sub>,s<sub>52</sub>,...s<sub>5q</sub>) |
Key5 |
... |
... |
... |
... |
... |
... |
表1分类目录存储结构
其中,记录号为记录标识,用来区分分类目录中的不同记录;文件名包括共享文件的路径与文件名;文件格式为共享文件对应的格式,比如文本、音频、视频、图像等;文件类别由分类器根据文件内容从预先定义的类别集合中选择;文件相似度向量的维数与分类器中预先定义的类别集合的维数相同,其每一维代表文件与对应类别的相似度,值越大说明相似度越大,文件相似度向量可由分类器计算所得;关键字由关键字生成单元根据本地共享文件的格式、文件类别以及文件相似度向量计算所得。针对不同的文件格式,可以采用不同的分类器模型对其进行分类。比如文本分类模型中存在k个预先定义的类别,每个类别对应一个相应的类别向量;JPEG图像分类模型中存在x个预先定义的类别,每个类别对应一个相应的类别向量。分类器所需的相关参数可以直接从配置服务器获得。分类器模型如表2所示,分类器模型包括类别及每一类别对应的类别向量。
类别 |
类别向量 |
c<sub>1</sub> |
(c<sub>11</sub>,c<sub>12</sub>,K,c<sub>1n</sub>) |
c<sub>2</sub> |
(cX,c<sub>22</sub>,K,c<sub>2n</sub>) |
... |
... |
c<sub>k</sub> |
(c<sub>k1</sub>,c<sub>k2</sub>,K,c<sub>kn</sub>) |
表2分类器模型
另外,文件相似度的计算公式如下所示:
其中di为文件向量,k表示类别数目,n表示特征数目。文件相似度向量(si1,si2,...,sik)即为计算结果,代表该文件与相应类别的相似度,数值范围落在0~1之间。上述计算文件相似度向量的方法采用的是TFIDF算法,也可以用其它算法替代,比如简单贝叶斯算法等,其所需相应分类器模型参数同样可以从配置服务器获得。
步骤104中的关键字由文件相似度向量计算所得,因此具有相近的文件相似度向量的文件被分配的关键字也相近,从而可以提高对等网络中基于内容检索的有效性。本发明为每一类别的文件预先分配一个关键字范围[startr,endr],各类别的关键字范围可以从配置服务器获得,各类别关键字范围互不重叠,且内容相近或相关的类别所分配关键字范围也相邻,这样可以减少文件关键字越界造成的影响,或者不同类别关键字范围之间间隔大于某一阈值,阈值是由配置服务器设定,这样也可以排除文件关键字越界的可能性。文件关键字的计算公式如下所示:
其中,Keyi为文件关键字,(Si1,Si2,...,Sik)为文件相似度向量,(wi1,wi2,,...,wik)为类别加权向量,每一类别都分别对应一个类别加权向量。如果文件属于单个类别,则文件被分配一个关键字,如果文件属于多个类别,则文件被分配多个关键字。
上述文件关键字的计算方法中,类别加权向量可以从配置服务器获得。通过将文件相似度向量与该文件所属类别对应的类别加权向量进行数量积运算,去掉结果的小数部分,将结果作为文件关键字。
类别加权向量应该保证各类别的文件经过计算得到的关键字落在各类别预先分配的关键字范围内,同时保证同类别中内容相近的文件其关键字也比较相近。因此各类别cr对应的类别加权向量中的wrr应设置为一个合理的,相对较大的数值,其余维设置为相对较小的数值。可以对属于同一类别的不同文件起到较好的内容相似性区分作用。而且应对不同类别赋予不同的类别加权向量。
另外,文件关键字还可以由如下计算公式得出:
Keyi=startr+(endr-startr)×sir
该计算方法是将文件相似度向量与该文件关键字范围进行乘积运算,去掉结果的小数部分,将结果作为文件关键字,计算所得的关键字范围同样互不重叠,且内容相似的文件所分配的关键字也相近。
请继续参阅图4,中心拓扑式对等网络中文件的检索过程包括:
步骤201:提出检索请求的对等结点加入对等网络并发出检索请求。配置服务器验证本地配置参数的有效性,如果配置服务器上的参数与对等结点本地保存的参数版本不一致,则配置服务器将最新的配置参数传送给对等结点,对等结点根据获得的参数对本地各功能单元进行配置。配置参数中包括分类器参数和其它相关参数。
步骤202:分类器针对不同的检索格式(文本、音频、视频、图像等),采用不同的分类器模型对检索内容进行分类。
步骤203:分类单元将检索分类结果以一定的记录格式保存在分类目录中。
步骤204:关键字生成单元根据分类结果对其进行关键字计算操作,为每一检索生成相应的检索关键字,该检索关键字被分类目录进行记录。
步骤205:检索单元调用分类目录中的检索关键字生成相应的检索索引<检索关键字,检索文件格式>。
步骤206:路由单元将检索索引发送到中心索引服务器。
步骤207:中心索引服务器进行关键字向提出检索请求的对等结点返回满足如下条件的共享文件的索引:
检索文件格式与共享文件格式相同,且|共享文件关键字-检索关键字|≤阈值1,阈值1是由配置服务器设定的一个较小值。
步骤208:检索结束。
接下来请参阅图5,为全分布式结构化对等网络文件发布和检索系统的结构图。该文件发布和检索系统包括多个对等结点P1、P2等,一个配置服务器27,一个分类单元20,一个关键字生成单元21,一个发布单元23,一个检索单元24,一个路由单元25以及一个结点索引库26。分类单元20包括一个分类器201和一个分类目录202,分别对共享文件以及检索内容进行分类和存储分类结果。关键字生成单元21根据分类结果为共享文件以及检索内容生成相应的文件关键字以及检索关键字。发布单元23将共享文件的信息制作成文件索引并通过路由单元25发布到对等网络中进行存储。结点索引库26用于存储对等网络中其他相关结点所发布的文件索引。检索单元24将文件检索内容制作成检索索引。路由单元25将检索索引发送到对等网络中其他对等结点检索是否有符合要求的文件索引。
下面对全分布式结构化对等网络中共享文件的发布和检索的工作过程分别进行说明:
请参阅图6,全分布式结构化对等网络中文件的发布过程包括:
步骤301:待发布文件的对等结点加入对等网络发出文件发布请求。配置服务器验证本地配置参数的有效性。如果配置服务器上的参数与对等结点本地保存的参数版本不一致,则配置服务器将最新的配置参数传送给对等结点,对等结点根据获得的参数对本地各功能单元进行配置。配置参数中包括分类器参数和其它相关参数。
步骤302:分类器针对不同的文件格式(文本、音频、视频、图像等),采用不同的分类器模型对对等结点本地的共享文件进行分类。
步骤303:共享文件的分类结果以一定的记录格式保存在分类目录中。
步骤304:关键字生成单元根据共享文件的格式以及分类结果对其进行关键字计算操作,为每一共享文件生成相应的文件关键字。该文件关键字被分类目录进行记录。
步骤305:发布单元调用分类目录中的文件关键字生成相应的文件索引<共享文件关键字,共享文件格式,共享文件路径名,对等结点ID,对等结点IP>。
步骤306:路由单元将文件索引发布到对等网络其他对等结点,最终在结点ID值与共享文件关键字相同或近似的对等结点的结点索引库中进行保存。
步骤307:发布结束。
上述实施例中分类目录的结构以及关键字的计算方法等与中心拓扑式对等网络中文件发布和检索系统介绍的相同,故不做详细描述。
请继续参阅图7,全分布式结构化对等网络中共享文件的检索过程包括:
步骤401:提出检索请求的对等结点加入对等网络。向配置服务器发送请求验证本地配置参数有效性的请求。如果配置服务器上的参数与对等结点本地保存的参数版本不一致,则配置服务器将最新的配置参数传送给对等结点,对等结点根据获得的参数对本地各功能单元进行配置。配置参数中包括分类器参数和其它相关参数。
步骤402:分类器针对不同的检索格式(文本、音频、视频、图像等),采用不同的分类器模型对检索内容进行分类。
步骤403:检索内容分类结果以一定的记录格式保存在分类目录中。
步骤404:关键字生成单元根据分类结果对其进行关键字计算操作,为每一检索生成相应的检索关键字,该检索关键字由分类目录记录。
步骤405:检索单元调用分类目录中的检索关键字生成相应的检索索引<检索关键字,检索文件格式>。
步骤406:路由单元将检索单元生成的检索索引路由到满足下列条件的对等网络中的其他对等结点:
|对等结点ID值-检索关键字|≤阈值2,阈值2是由配置服务器设定的一个较小值。
步骤407:满足下列条件的对等结点向提出检索请求的对等结点返回检索结果(即满足条件的对等结点的IP地址):
检索文件格式与共享文件格式相同,且|共享文件关键字-检索关键字|≤阈值3,阈值3是由配置服务器设定的一个较小值。
步骤408:检索结束。
本发明还可应用于全分布式非结构化对等网络与半分布式对等网络,其原理与上述实施例相同,这里不再做进一步描述。
从上述实施例可以看出,使用本发明中的技术方案进行文件发布和检索时,只需将关键字路由到对等网络,而不需进行对等结点间语义向量的传输,因此减轻了网络的流量;而且在检索文件时,只需进行关键字匹配运算,而不需进行文件向量之间相似度的计算,减轻了对等网络中其他结点的计算负担,因此本发明所提供的文件发布和检索的方法提高了文件发布和检索的效率。
以上对本发明所提供的对等网络中文件发布和检索的方法及其系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。