发明内容
本发明目的是:针对现有Chord协议和算法中存在的网络的绕路问题,提出一种基于区域的Chord环和区域Chord环内节目收集方法。通过此种方法,能够解决上述不足之处,有效改善P2P在Internet网中的应用。在一定范围内发挥出P2P技术的最大优势。
本发明技术方案是:基于Chord环和区域Chord环内节目收集方法,其特征是在P2P系统中设有基本Chord环和多个区域Chord环;区域Chord环是由基本Chord环上区域相同的节点组成,各区域Chord环上的节点互不重叠;每个节点都加入到基本Chord环和本区域Chord环两个Chord环;每个区域Chord环的节点的类型除了基本节点,还包含节目收集服务器节点;此服务器具有较好的带宽性能,计算性能和磁盘性能,能缓存大量的节目
节目收集服务器节点是一台服务器,节目(固有节目、新片节目、热点节目)收集服务器节点具有基本的节点功能、节目的存储和维护、区域Chord环的节目信息全景表及维护、对区域Chord环的节目信息搜索
每个节点在执行Chord算法中的节目信息中,增加三段信息,一是区域信息,区域信息是节点的IP和所属区域信息;二是节目类型,有新节目、热点和固有等类型;三是节目访问次数,是对其进行汇总统计,用于热点排行;
在节目收集服务器节点上通过接口进行固有节目的维护(通过此接口方便运营商的管理员对固有节目的增加和删除操作),监控固有节目的变化,通知到本区域Chord环和基本Chord环的每个节点,做相应信息的更新;
节目收集服务器节点收集区域Chord环的节目信息全景表,对区域Chord环的节目信息全景表的维护,周期的将区域Chord环中的所有节点上的节目信息表进行汇总与统计,形成节目收集服务器节点上的区域Chord环的节目信息全景表及更新;
节目收集服务器节点在节目存储时将存储空间分出三种类型空间:固有节目、新节目和热点节目三个空间;
节点节目搜索的顺序:先在节目收集服务器节点上搜索,再到区域Chord环内搜索,最后到基本Chord环上搜索,另一方面解决Chord环绕路的问题(由于大部分节点在区域内进行数据交互,不影响到区域以外的网络带宽)。
节目收集服务器节点对节目的增加与删除步骤如下:
固有节目的增加与删除是通过固有节目维护功能来完成的,对固有节目进行增加或是删除;
新节目的增加是通过新节目维护功能中节目缓存功能将该节目增加到新节目空间;而删除则是通过新节目维护功能中节目清除功能,将该节目从新节目空间中删除;
新节目就是相对本区域Chord环而言,不在本区域Chord环中而在基本Chord环中的节目。当节点把新节目缓存到本区域Chord环中,节点在该区域Chord环中的节目信息表中把该节目的类型标记为新节目;
热点节目的增加是通过热点节目维护功能中节目缓存功能将该节目增加到热点空间;而删除则是通过热点节目维护功能中节目清除功能,将该节目从热点节目空间中删除;
热点节目的数目,根据热点节目空间的磁盘大小来计算热点节目的数目;
热点节目就是将一段时间内节目访问次数排行从大到小,排行前x(x=热点节目的数目)的节目。
节点节目搜索的顺序:先在节目收集服务器节点上搜索,再到区域Chord环内搜索,最后到基本Chord环上搜索,另一方面解决Chord环绕路的问题(由于大部分节点在区域内进行数据交互,不影响到区域以外的网络带宽)。
1.区域划分,根据节点所在的物理位置所属的地区和接入服务供应商构成子区域,如果该子区域的节点数量比较多,就直接构成区域,如果该子区域节点数量少,可以把几个子区域合并成一个区域。
下面举例来说明,但对本发明不构成限制:新疆自治区用户数量较少,将整个省只划着一个区域;江苏省用户数量较多,可能要分多个区域,如南京电信划着一个区域,南京网通划着一个区域,扬州电信和扬州网通划着一个区域等等。
2.节点加入,先获得本节点的区域信息,再加入基本Chord环,最后加入本区域Chord环上。
3.节点退出,先从区域Chord环退出,再从基本Chord环退出。
4.普通节点节目管理包括:当节点管理新节目时,需要该节点设置节目类型为新节目;当节点管理不是新节目时,不需要设置节目类型,节目的节目类型为默认类型。
5.节目收集服务器节点中新节目信息的维护功能,此功能包括如下几个部分:
A.变更通知
当节目信息变更(添加或删除)时,通知到本区域Chord环和基本Chord环进行相关信息的修改。
B.监控新节目失效
检查新节目表,当发现新节目超过新节目保护期,如果该节目类型还是热点节目,则不做处理,否则,可置新节目失效,把该节目类型设置为固有节目类型。
C.新节目信息的增加
通过区域Chord环的节目信息全景表,发现节目类型是新节目的节目,而该节目又不在新节目表中,则将此节目信息加入到新节目表中。发送变更通知。
D.新节目信息的删除
检查新节目表,同时通过区域Chord环的节目信息全景表检查节目的节目类型,发现在新节目表中但不是新节目的节目,则将此节目信息从新节目表中删除,同时把节目文件从新节目空间中删除。发送变更通知。
6.节目收集服务器节点中热点节目信息的维护功能,此功能包括如下几个部分:
A.变更通知
通知到本区域Chord环和基本Chord环进行相关信息的修改。
B.监控热点排行
根据节目访问次数,进行从大到小的热点排行,得到热点节目。
把原来不是热点节目,现在是热点节目的节目设置节目类型为热点节目,把原来是热点节目,现在不是热点节目的节目设置节目类型为固有节目。
C.新节目转化为热点节目
通过区域Chord环的节目信息全景表,发现既是新节目又是热点节目的节目,将新节目空间下的该节目复制一份到热点节目空间下。将此节目信息加入到热点节目表中,同时把该节目类型设置为仅热点节目类型。
D.热点节目信息的增加
通过区域Chord环的节目信息全景表,发现热点节目同时又不在热点节目表中的节目,则将此节目信息加入到热点节目表中。发送变更通知。
E.热点节目信息的删除
检查热点节目表,同时通过区域Chord环的节目信息全景表,发现在热点节目表中但不是热点节目的节目,则将此节目信息从热点节目表中删除,同时删除相应节目文件。发送变更通知。
7.节目缓存功能,当一个节目信息被加入到新节目表中或热点节目表中,节目收集服务器节点就会向拥有该节目的节点请求节目数据,并将数据存储在相应的空间中。
8.节目收集服务器节点对节目的增加与删除功能如下:
A.增加
固有节目的增加是通过固有节目维护功能来完成的,对固有节目进行增加。
新节目的增加是通过新节目维护功能中节目缓存功能将该节目增加到新节目空间。热点节目的增加是通过热点节目维护功能中节目缓存功能将该节目增加到热点空间。
B.删除
固有节目的删除是通过固有节目维护功能来完成的,对固有节目进行删除。
新节目的删除则是通过新节目维护功能中节目清除功能,将该节目从新节目空间中删除。
热点节目的删除则是通过热点节目维护功能中节目清除功能,将该节目从热点节目空间中删除。
9.节目信息的搜索功能为,此功能包括如下几个部分:
A.提供搜索的要求
在节目收集服务器节点空闲(通过预设值来控制)时提供搜索服务。好处是保障节目收集服务器节点的基本功能的正常运行。
B.搜索的顺序
先从热点节目表中搜索,再到新节目表中搜索,再到区域Chord环中搜索,最后到基本Chord环中搜索。好处是提高节目搜索命中率。
C.获取数据的原则
当查询到节目存放位置信息时,优先选用节目收集服务器节点以外的节点提供节目数据的下载。好处是保证节目收集服务器节点的带宽尽量大。
本发明的有益效果是,本发明在原Chord基础之上,提供了一种区域性的P2P解决方案,解决现有Chord算法存在网络的绕路问题,达到了发明的目的。
具体实施方式
下面详细说明本发明的具体实施方式,此实施方式仅作为对本发明的解释,而并非是对本发明的限制。
本发明的具体实施方式的步骤如下:
1.构建基本Chord环和区域Chord环
先部署节目收集服务器节点,构建基本Chord环和区域Chord环。
普通用户节点根据位置所属区域,加入到相应区域Chord环和基本Chord环。
节目收集服务器节点维护区域Chord环信息(全景表,热点节目表,新节目表)。
如图1所示,基本Chord环与区域Chord环的节点和节目关系。
2.节目收集服务器节点表的初始化工作
节目收集服务器节点将建立区域Chord环的节目信息全景表、热点节目表、新节目表。确定三种节目(固有节目、新片节目、热点节目)的空间分布,构成整个节目的分布。
热点节目的数目,就可以根据热点节目空间的磁盘大小来计算出来。
3.节目收集服务器节点的区域Chord环的节目信息全景表维护工作
节目收集服务器节点周期将区域Chord环中的所有节点上的节目信息表进行汇总与统计,形成节目收集服务器节点上的区域Chord环的节目信息全景表。周期保存这张表到本地文件。此表如图3区域Chord环的节目信息全景表所示。
4.节目收集服务器节点的固有节目管理工作
节目收集服务器节点的固有节目,由运营商的管理员通过节目收集服务器节点上提供的接口,通过此接口对固有节目的增加和删除操作。并且监控固有节目的变化,当发生变化时通知到本区域Chord环和基本Chord环,做相应信息的更新。
5.普通用户节点加入
当一个普通用户A加入时,首先根据此普通用户A的IP地址区域的划分,取得区域信息、基本Chord环的入口节点、区域Chord环的入口节点。将普通用户节点加入到基本Chord环和自己的区域Chord环后。将其所拥有的节目加入到基本Chord环中,同时也加入到查得的区域Chord环中,并初始化节目信息表,如图2所示的节目信息表。
6.普通用户节点节目搜索
当普通用户A,开始观看节目1时,通过区域Chord环的节目信息搜索功能进行查询(先查询热点节目表,再查询新节目表,最后查询区域Chord环),如果查得,查询结束,进行区域内(在节目文件选用上,优先选用节目收集服务器节点以外的节点)的数据交互,观看节目1。
如果是在区域Chord环中查得,则节目信息表中二级访问次数就会加一;如果是在节目收集服务器节点中查得(热点节目和新节目),则区域Chord环的节目信息全景表中一级访问次数就会加一。
如果在区域Chord环中没有查得,到基本Chord环中查询,如果查得,查询结束,进行区域外的数据交互,观看节目1,此时节目1将加入到普通用户A所属的区域Chord环中,普通用户A将该节目的节目信息表中的节目类型设置为新节目。
如果在基本Chord环中没有查得,返回查询失败。
查询节目的顺序如图4节目搜索时序图所示。
7.节目收集服务器节点的新节目缓存工作
区域Chord环中的节目收集服务器节点新节目管理时,发现新节目1,它就会向普通用户A请求节目1的数据进行新节目缓存。
8.节目收集服务器节点的新节目中删除工作
新节目维护周期检查新节目表,发现有过期(节目类型中没有新节目类型,就认为过期)新节目,就直接从新节目(包括节目信息和节目文件)中删除。
9.节目收集服务器节点的热点节目缓存工作
随着普通用户在不断的访问节目,区域Chord环的节目信息全景表中的访问次数就会发生不同的变化,当一段时间内节目访问次数排行从大到小,排行前热点节目的数目的就是热点节目。热点节目缓存,周期对热点节目表进行检查,发现有新的热点节目,就开始缓存这些热点节目。
10.节目收集服务器节点的热点节目维护工作
热点节目维护通过监控热点排行,来改变一个节目的节目类型。符合热点节目标准就将区域Chord环的节目信息全景表的节目类型中增加热点节目;不符合热点节目标准就将区域Chord环的节目信息全景表的节目类型中的热点节目类型删除。
11.节目收集服务器节点的热点节目清除工作
热点节目维护通过清除功能,周期检测热点节目表,发现节目类型中没有热点节目时,就对其空间下的相应热点节目进行删除,同时删除热点节目表中的信息。
12.节目收集服务器节点的新节目转化为热点节目工作
热点节目维护通过新节目转化为热点节目,周期检查区域Chord环的节目信息全景表中节目类型,发现既是新节目又是热点节目的节目,就将新节目空间下的该节目复制一份到热点节目空间下。再将此节目信息加入到热点节目表中,同时把该节目类型设置为仅热点节目类型。
13.节目收集服务节点节目信息更新通知
当新节目与热点节目进行缓存或清除时,就要通知到本区域Chord环和基本Chord环进行相关信息的修改。
14.普通节点的非正常退出
普通节点的非正常退出,将被节目收集服务器节点检测到,通过对比会发现节点的退出和其拥有的节目也会被发现,此节目是非新节目,非热点节目,非固有节目,因为这些节目在节目收集服务器节点上都有缓存,相应的节目节点依然存在。首先将区域Chord环的节目信息全景表中的退出节点相关内容删除,通知到区域Chord环和基本Chord环,进行相关信息的修改;再将节目信息统计表中的退出节目的相应节目信息进行删除,并通知到区域Chord环和基本Chord环,进行相关信息的修改。
15.节目收集服务节点非正常退出
节目收集服务节点非正常退出,通过管理员的维护进行修复,当节目收集服务器节点启动后,固有节目从固有节目空间中加载,新节目则从新节目空间中加载,同样热点节目也从热点节目空间中加载。区域Chord环的节目信息全景表从本地加载,进行节目收集服务器节点的恢复。