败,向子网的边缘节点发消息,通知边缘节点需要向外查询。
4)边缘节点在主干网络中利用Chord路由表小的优点进行向外的扩展查询,这里需要特别说明的是,在Chord主干网络中只有各个子网的边缘节点参与查询过程。查询成功返回关键值以及关键值代表资源所在地址给子网的边缘节点。查询失败则返回查询失败信息。
5)最后边缘节点把所收到的信息返回给查询调用节点。查询节点根据信息判断如果成功,根据信息中的资源地址进行连接下载,并且所在子网对所查到的关键值进行拷贝(Replication),使得子网的查询效率进一步提高。如果查询失败则返回失败信息。
3.5 关键值匹配过程描述
HMPN是一个多 网络共存的体系结构,在不同的网络模型中所使用的关键值匹配技术也不完全相同。例如Napster的集中目录式网络中,查询的要求都被直接送到中央服务器,通过服务器的索引功能查询很容易使用简单的文字模糊比对和存在信息返回技术。非结构化的网络也有同样的功能,只是把这些索引分布在各个独立的节点之上。虽然以Chord为代表的分布式P2P协议具有高性能的特性,但结构化的分布式协议中,查询过程却是通过定位关键值的存储节点的精确匹配算法。因此在Napster和Gnutella中可以容易完成的查询过程,在Chord中却无法完成。假设节点查找一个关键值“music”,在Gnutella和Napster网络中查询返回结果“tvmusic”,“radiomusic”,而在Chord网络中只会返回查找失败。为了在HMPN中使处于子网的用户得到所期望的结果,并且对用户屏蔽子网与主干网的差异,所以这种在查找结果上的差异是新型网络架构的一个关键问题,本文将会提出一个解决这种差异的 方法。
2)解决方案设计:
这个问题的关键之处在于提高Chord协议的资源可搜索性,即是系统要把用户所提出的查询定位到具有相似性的结果集合上。在本系统中我们将使用一种组合的方法来达到这个目的。由于主流P2P网络里时常运用文件名和Metadata作为共享文件的描述方式,所以下面将对共享信息是文件名或Metadata的情况作分别讨论。
◆共享信息为文件名
假设一个资源文件的文件名叫做“beijing radio music ”,系统把此文件名分成单个的词存储在网络中,每个词就当作这个文件的关键值,每个关键值还带有一串附属词汇(context)用来说明这个文件名的具体 内容。最后资源文件将会分成如下的的几种关键值形式进行存储:
a.Key:beijing context:radio ,music
b.Key:radio context:beijing ,music
c.Key:music context:beijing , radio
很显然在Chord这种根据关键值存储的系统中,以上每个关键值将会存储在不同的节点中,无论用户是利用文件的全名进行查询还是文件名的一部份进行查询,查询的过程将是一样的。例如:当用户查询“beijing music”的时候,系统将会查询下列关键值。
a.Key:beijing context:music
b.Key:music context:beijing
存储关键值的节点将会返回以下结果:
a.Key:beijing context:radio ,music
b.Key:music context:beijing , radio
用户可以通过这些返回的关键值进行连接下载资源。其中的附属字段可以给用户用来 计算查询结果与查询目标的相近值。比如上述示例里面查询返回的第一个结果,其中的关键值与附属字串就与用户的查询目标更为接近,用户就可以通过第一个结果进行连接下载。在不成功的情况下用户也可以用第二个结果进行下载。附属字串的另外一个好处就在于当用户查询的目标非常的简短时,附属字串可以给用户 参考的空间决定是否进行连接。如果不使用这种方法的话,在Chord主干网中要查询上述文件只能用文件的全名进行查找,否则查询不能成功。为了增加结果发现的机会,所有的关键值都被转化为小写字母并且所有的停止词(stop-word)都被删掉。但限制词的删除有一点的限度否则关键值会导致为空值。
◆共享信息为Metadata
同样的过程可以用于对Metadata(一种经常用于P2P系统中描述文件属性的文件)作为关键值进行查找。系统把Metadata中某些属性的描述符作为关键值,把其它的一些字段作为附属字串。由于Metadata文件中可能描述的文件属性比较多,系统把其中的一部份属性值作为文件的描述符并不作为查询中的关键值,这些描述符使得用户可以对资源进行更深入的了解,以确定这次查询返回的结果是否是用户所真正的需要。比如一个 音乐文件的Metadata如下所示:
Style:Popular
Composer:Robert Lee
medium:panic
title:Going Downtown
country:Vienna
artist:Jenny F. L.
由于country,style和media属性非常的平常,查找返回结果将会过于巨大,用户将需要很多的时间去进行判断,因此这两个属性值作为文件的描述符。其他属性作为可进行查找的关键值,关键值将会调整成以下形式:
a. Key:Composer:Robert Lee
Context:title:Going Downtown,artist:Jenny F. L.
b.Key:title:Going Downtown
Context:Composer:Robert Lee,artist:Jenny F. L.
c.Key:artist:Jenny F. L.
Context:title:Going Downtown,Composer:Robert Lee
在系统运行过程中,属于主干网和Chord子网中的文件名或Metadata关键值都会被解析成数字存储于网络节点中,但在Gnutella和Napster子网中只有要在主干网进行查询过程时才需要这个过程,也就是说边缘节点会完成这个过程。
4 结论与下一步研究方向
综上所述,在 分析集中目录式、非结构化和结构化对等网络模型弊端的基础上,本文提出了一种新型P2P网络模型-基于混合模式对等网络模型(HMPN)。通过引入网络分层的思想,在P2P网络中实现了多种网络结构并存的网络模型设计,提高了网络的可扩展性和透明性,并降低了主干网络通信流量。在此基础上提出的管理节点模式和关键值匹配方案进一步改善了P2P网络不可管理现状,并为该模型从 理论到实用的转化奠定了基础。
目前,我们的研究正处于P2P网络建模阶段,下一步工作将在网络仿真实验基础上,进一步提出管理节点对网络的多方面管理和安全 应用的实现,并着手建立应用系统
1 Geoffrey Fox, “Peer-to-Peer Networks”[J], Web Computing, Vol. 3, No. 3, pp. 75–77,May/June 2001.
|