基于P2P兴趣簇的个人数字图书馆复本策略研究
2018-08-29张红伟陈玲许萍
张红伟 陈玲 许萍
摘 要 针对个人数字图书馆可用性和可靠性低的问题,提出一种基于P2P兴趣簇的个人数字图书馆复本策略,为构建个人数字图书馆共享系统提供参考。论文引入P2P兴趣社区思想搭建个人数字图书馆共享模型,在该模型中,系统从文件访问次数和个人数字图书馆负载两个层面检测是否需要创建复本,一旦启动复本创建程序,系统将热点文件复本创建在与该文件兴趣相似度较大、综合能力较强的个人数字图书馆中。仿真结果显示,该策略能有效提高系统的搜索成功率,平衡系统负载,提高系统的可用性和可靠性。
关键词 个人数字图书馆 P2P 复本 兴趣簇 共享
分类号 G250.72
DOI 10.16810/j.cnki.1672-514X.2018.05.013
Abstract In view of the low availability and reliability of personal digital libraries, a duplicate strategy of personal digital libraries based on P2P interest clusters is proposed, which provides reference for constructing personal digital library sharing system. This paper introduces the idea of P2P interest community to build a personal digital library sharing model. In this model, the system checks whether there is a need to create duplicates from two aspects of the number of file accesses and the personal digital library load. Once the duplicate creation program is started, the system creates a duplicate of the hotspot file in a personal digital library with a similar affinity to the file and a comprehensive ability. Simulation results show that the strategy can effectively improve the search success rate, balance the system load and improve the availability and reliability of the system.
Keywords Personal digital libraries. P2P. Duplicates. Interest cluster. Sharing.
个人数字图书馆是公共数字图书馆服务的发展和延伸,个人数字图书馆不仅可以管理和使用个人信息资源,而且可以共享个人信息资源[1],促进资源的有效利用和知识再生。针对个人数字图书馆共享问题,很多学者做了大量研究[2-7],他们通过研究认为传统的C/S模式已经不适用于個人数字图书馆,分布式的P2P技术即将成为个人数字图书馆新的技术支撑。但是P2P技术也给个人数字图书馆共享体系带来了新的问题,复本问题就是其中之一。笔者就此问题曾在《基于P2P技术的个人数字图书馆复本策略》 一文中提出一种基于P2P技术的复本策略[8],但是该策略没有考虑到个人数字图书馆的负载,容易造成网络拥塞。由此本文在前文的基础上进一步提出一种基于P2P兴趣簇的个人数字图书馆复本策略,该策略将有助于提高系统的可靠性和可用性,有利于负载均衡和提高资源搜索成功率。
1 基于P2P兴趣簇的个人数字图书馆模型
1.1 个人数字图书馆兴趣模型
P2P网络有4种典型的体系结构:集中式P2P网络、全分布式非结构化P2P网络、全分布式结构化P2P网络和混合式P2P网络。全分布式非结构化P2P网络是一种纯粹的分布式网络,具有良好的容错性、可扩展性和负载均衡,是四种体系结构中最受欢迎的一种,应用范围最广[9]。本文采用全分布式非结构化P2P网络构建个人数字图书馆模型。
目前,常用的兴趣模型表示方法主要有基于向量空间模型(Vector Space Model, VSM) 表示法[10]、主题表示法、关键词表示法等,VSM模型使用简单、方便,是最常用的兴趣模型[11]。本文采用经典的向量空间模型作为个人数字图书馆(以下简称PDL)的兴趣表示模型。PDL的兴趣往往不止一个,并且随着时间的推进而不断发生变化,VSM模型将这些抽象的、动态的兴趣转化为可以计算彼此相似度的向量,比如PDLi的兴趣向量{PDLi1, PDLi2,…,PDLik,…, PDLin}表示PDLi共有n个兴趣,其中PDLik是PDLi中第k(1≤k≤n)个兴趣向量。VSM模型中,兴趣相似度采用夹角余弦表示,兴趣和兴趣、兴趣和PDL、PDL和PDL之间都可以计算兴趣相似度,比如,兴趣PDLik和兴趣PDLjr之间的相似度如公式(1) 所示:
Sim(PDLik,PDLjr)越大,PDLik和PDLjr之间的兴趣相似度越大,反之,PDLik和PDLjr之间的兴趣相似度越小。PDLi的第k个兴趣PDLik和PDLj之间的兴趣相似度如公式(2)所示:
其中,Lj是PDLj的兴趣数量,PDLik和PDLj的兴趣逐一进行相关度计算,其中最大值就是PDLik和PDLj的兴趣相似度。
相应地,一个文档向量f与PDLi之间的兴趣相似度如公式(3)所示:
1.2 个人数字图书馆兴趣覆盖网络的构建
每个PDLi要维护以下三方面的内容。一是PDLi共享文档集合;二是PDLi的兴趣向量集合;三是簇内邻居列表Ni,针对每个兴趣PDLik,PDLi维护一个邻居列表Nik,Nik中存储与兴趣PDLik相似度较高的PDLs,簇内邻居信息包含一组(ip(PDLj), PDLjr) 信息,其中ip(PDLj)是PDLi簇内邻居PDLj的IP地址,PDLjr是与PDLi的第k个兴趣。PDLi中含有多个兴趣,针对每个兴趣PDLik,大量兴趣相近的PDLs聚集在PDLi周围形成一个兴趣簇。
图1是PDLi的兴趣簇示意图,其中左侧是PDLi的n个兴趣,每个兴趣都链接一个簇内邻居列表,簇内邻居依据与PDLi相应兴趣相似度降序排列。例如,PDLi1链接簇内邻居列表Ni1,簇内邻居列表Ni1存储与兴趣PDLi1相似度较高的PDLs(包括PDLs的ip地址和相应兴趣),这些簇内邻居相应兴趣按照与PDLi1相似度降序排列,PDLi依据兴趣PDLi1与簇内邻居列表Ni1中的PDLs结合在一起形成兴趣簇,同样,PDLi依据其他的每一个兴趣与兴趣相似的PDLs结合在一起形成兴趣簇,大量的PDLs依据兴趣结合在一起形成一个逻辑上的兴趣覆盖网。当PDLi进行资源搜索时,路由转发策略利用公式(3) 计算出查询消息所携带的查询向量与PDLi的相似度最高的兴趣PDLik,查询消息依次转发到邻居列表Nik中的PDLs,直到查询到所需资源或遍历完邻居列表中的PDLs。
1.3 个人数字图书馆网络拓扑重构过程
在个人数字图书馆系统运行过程中,个人数字图书馆的兴趣可能发生改变,随着时间的变化,原来兴趣相似度较高的PDLs可能变得兴趣相似度较低,原来兴趣相似度较低的PDLs可能变得兴趣相似度较高。为了适应个人数字图书馆兴趣的动态变化,使兴趣相似度较高的PDLs始终聚集在一起,每个PDL定期启动一个检测程序,针对每个兴趣PDLik,检测程序计算聚合度Dik,如公式(4) 所示。
其中,PDLjr是PDLik的簇内邻居PDLj相对应的兴趣,n是PDLik对应的簇内邻居数量。针对兴趣PDLik,聚合度Dik的大小是PDLi与所有簇内邻居兴趣相似度的平均值,如果Dik高于或等于某一临界值η,说明PDLi与簇内邻居兴趣相似度较高,一些具有与兴趣PDLik相似的PDLs聚集在PDLi周围,为了减少消息数量,提高系统效率,PDLi不需要搜寻新的簇内邻居;反之,如果Dik低于某一临界值η,说明PDLi与簇内邻居关于PDLik的兴趣相似度较低。此时,PDLi会产生一个查询消息,该消息包含以下信息:PDLi的IP地址和兴趣PDLik,该消息按照随机漫步机制发送到P2P网络中。当网络中的PDLj收到查询消息时,PDLj根据公式(2) 计算自己与PDLik的兴趣相似度,并把计算结果以及相应的PDLjr和PDLj的IP地址附加到消息中。当TTL=0时,该消息返回PDLi,PDLi将消息中附带的PDLs信息按照兴趣相似度降序的顺序添加到邻居列表Nik中,如果邻居列表Nik过长,则将后面的PDLs信息删除。
2 个人数字图书馆复本策略
相比纸本资源,个人数字图书馆的复本问题更为复杂,其主要问题主要集中在两个方面。一是哪些资源需要创建复本。个人數字图书馆系统中存储海量资源,系统不可能为所有资源都创建复本,只能有选择性的对那些访问量较大、负载较重的文件创建复本,因此系统需要筛选出哪些资源创建复本。二是在哪里创建复本。在P2P领域,常用的创建复本的方法有两种:一种是在下载该资源的PDL中创建复本,称为宿主复本策略;另一种是按照一定的概率随机选取PDL创建复本,也称为随机复本策略[12]。针对个人数字图书馆共享系统的特点,笔者认为复本应起到分担网络负载、提高数据访问效率的作用,所以复本尽量要创建在资源请求者容易搜索到且综合能力较好的PDLs中。
针对上述第一个问题,可从文件访问次数和个人数字图书馆负载两个维度来确定哪些文件需要创建复本。这两种策略不是独立排他的,而是可以相互配合,同时进行的,两种策略分别从单个文件和整个PDL两方面的负载考量是否需要创建复本。
2.1 基于文件访问次数的复本策略
为了便于确定热点文件,系统中每个PDL都将自己共享文件的访问量记录下来。在一定时间段T内,文件的访问次数记为v。文件访问总次数应突出时间因素,时间越近的访问次数所占权重较大,时间越久的访问次数所占权重越小,文件访问总次数计算方法如公式(5) 所示。
(5)
系统将最近n个时间段内文件的访问次数加权之和作为文件的访问总次数,其中0<<<…<<1,++…+=1。假设文件在时间段TK内创建了一个复本,为了避免大量创建不必要的复本,访问总次数计算方法中将复本创建前的访问次数乘以一个衰减系数(0<<1),复本创建前的访问次数所占比重应减小,复本创建后的访问次数比重应增加,访问总次数计算方法如公式(6)所示,如果创建多个复本则将衰减系统嵌套使用。
针对上述第二个问题,为了选择文件F创建复本的PDL,定义PDL的综合能力。PDL的综合能力(CA)主要考虑以下因素: PDL与文件F的兴趣相似度(S),PDL的在线时间(O),网络带宽(B) 以及磁盘容量(D)。PDL综合能力的计算方法如公式7所示。
为了有效控制各个因素取值大小,采用类似文献[13]中的方法,使各个因素在[0,1]范围内取值。其中S利用公式(5) 计算。
PDL与文件F的兴趣相似度越大,在线时间越长,带宽和磁盘空间越大,PDL的综合能力就越大,系统创建复本时,选择综合能力最大的PDL创建。
当系统中PDLi的某一文件F被访问时,PDLi计算文件F的总访问量,如果F的总访问量超过阈值,系统将启动复本创建程序,复本创建过程如下。
(1) 初始化文件F的兴趣向量f,利用公式(3) 计算出PDLi中与f相似度最高的兴趣PDLik。
(2) 在与兴趣PDLik相关联的簇内邻居列表Nik中,根据公式(7) 计算出各PDLs的综合能力,并按降序排列。
(3) 在PDLs综合能力序列中取出第一个PDL,如果该PDL中没有文件F的复本,则选中该PDL创建文件F的复本;否则,依次取出后面的PDL,直到PDL中没有文件F的复本,则选中该PDL创建文件F的复本(PDL的簇内邻居较多,不考虑所有簇内邻居都已创建复本的情况)。
(4) 在选中的PDL中创建复本。
2.2 基于个人数字图书馆负载均衡的复本创建策略
系统根据PDL的负载确定是否启动复本创建程序。PDL的当前负载为CL,最大负载为。系统中每个PDL定期检测自己的当前负载,如果当前负载与最大负载的比值pr大于一定比例γ(比如80%),说明该PDL负载过重,需要创建共享文件复本,从而分担负载,该PDL将选择其共享文件中访问总次数最多的文件进行创建复本。PDL利用公式(5) 或公式(6) 计算出访问总次数最多的共享文件F,系统将为文件F创建复本,复本创建过程与基于文件访问次数的复本策略一致,复本创建流程图如图2所示。
3 仿真实验及分析
3.1 实验设置
共享文件从中国知网期刊论文中选取,在“信息科技”“农业科技”等中国知网10个顶层文献分类中选出100个等底层分类(如“数字图书馆”等),在这些底层分类中分别下载50篇兴趣相似的期刊論文。文章选取PeerSim作为模拟工具,在PeerSim中实现基于P2P兴趣簇的个人数字图书馆网络模型。网络中设置1000个PDLs,并将选中的5000个文档散布在这些PDLs中,每个PDLs所涉及的文件兴趣不超过3个。设置PDLs的离线率、带宽和磁盘空间。主要实验参数如表1所示。
3.2 性能分析
为了验证本文复本策略的有效性,笔者将本文的复本策略与无复本策略、宿主复本策略和随机复本策略进行比较,分析4种策略下个人数字图书馆的搜索成功率、负载和平均搜索路径长度。
3.2.1 搜索成功率
系统开始运行后,PDLs间的兴趣相似度较低,每个PDL都试图寻找兴趣相关度较高的PDLs,为了不在同一时刻启动检测程序,避免系统中查询消息爆炸式增长,所有PDL在一段时间内随机选择某一时刻启动检测程序。第一次启动检测程序后,系统设定PDLs定期启动一次检测程序,运行10个周期,搜索成功率测试结果如图3所示。
无复本策略中,虽然一些PDLs退出系统导致其存储的资源无法获取到,但是随着大量兴趣相似的PDLs聚集在一起形成兴趣簇,搜索成功率依然有所增加。宿主复本策略和随机复本策略中,由于对一些热点文件热点文件创建了复本,即使存储这些热点文件的PDLs退出系统,其他PDLs依然能够搜索到这些热点文件的复本,相比无复本策略,这两种策略的搜索成功率显著提高。本文复本策略中,热点文件复本创建在与源文件兴趣相似度较高且综合能力较强的PDLs中,这些PDLs往往与对该热点文件感兴趣的PDLs处于同一兴趣簇,因此,当PDLs对该文件发起搜索时,很容易搜索到复本文件,相比其他三种复本策略,本文复本策略的搜索成功率显著提高,满足了个人数字图书馆系统最主要的需求,同时也提高了系统的可用性和可靠性。
3.2.2 负载
本文负载只统计资源请求数。为了测试PDLs负载情况,在系统中选中某一PDL及其存储的共享文件F,系统持续不断地发出对文件F的请求(70%的请求出自与文件F兴趣相似度较高的PDLs),不同复本策略下的负载情况如图4所示。
无复本策略下,系统中没有创建文件F的复本,所有请求都发往存储F的PDL。系统中产生的资源请求数一旦超过了PDL的处理能力,负载就会一直处于增加的状态,PDL在系统中就不会正常运行。开始阶段,宿主复本策略、随机复本策略和本文复本策略中,负载呈现增加的趋势,当负载增加到一定程度时,这三种策略都创建了复本,其中,根据系统检测文件访问量和PDL负载负载两个维度,一旦任何一个因素达到阈值即可启动复本创建程序。本文复本策略中,复本创建于兴趣簇中,相比其他两种复本策略,复本的位置更接近于资源请求者,资源请求者更容易搜索到复本,为源文件减轻负载,所以本文复本策略下,负载较低,整个系统的负载较为均衡,同时也提高了系统的可用性和可靠性。
4 结语
针对P2P技术带来的复本问题,本文提出了一种基于P2P兴趣簇的个人数字图书馆复本策略,该策略在复本创建触发条件方面,系统对文件访问次数和个人数字图书馆负载两个方面同时进行监测,其中任一因素满足条件,系统立即启动复本创建程序。在复本创建位置方面,系统将热点文件的复本创建在与该文件兴趣相似度较高的个人数字图书馆中,即复本处于一个兴趣簇中,一旦周围个人数字图书馆发起查询,该复本很容易被其他兴趣相近的个人数字图书馆搜索到,有利于提高系统搜索成功率、平衡系统负载,提高系统可靠性和可用性。
参考文献:
王小立.网站知识传播系统动力学建模与启示:关于个人数字图书馆资源共享服务[J].图书馆杂志, 2016, 35(6):24-30.
王小立.百度"知道"知识传播对个人数字图书馆资源共享的启示:基于系统动力学方法[J]. 图书馆, 2016(2):83-87.
张银犬,朱庆华.网格环境下个人数字图书馆信息检索策略[J].中国图书馆学报, 2007,33(3):56-59.
张银犬,朱庆华.国内外个人数字图书馆研究述评[J]. 图书与情报,2008(3):18-21.
王春梅,张银犬.基于P2P技术的个人数字图书馆资源共享策略[J]. 情报杂志, 2008,27(4):125-127.
Ge G Z ,WANG H.An Architecture Design and Prototype Client Implementation for a P2P Personal Digital Library[EB/OL].[2017-07-23].https://core.ac.uk/display/21630286.
XU Y.A P2P based personal digital library for community[C]//Sixth International Conference on Parallel and Distributed Computing Applications and Technologies (PDCAT'05). IEEE, 2005: 796-800.
张红伟.基于P2P技术的个人数字图书馆复本策略[J]. 济宁医学院学报, 2015(1):54-56.
何明.基于用户需求的内容分发P2P网络资源定位搜索模型研究[D]. 北京:北京邮电大学, 2015.
贾欣.基于用户兴趣模型的元搜索结果排序算法研究[D].武汉:华中科技大学, 2012.
肖瑜.基于用户兴趣模型的个性化搜索算法研究[D]. 太原:太原科技大学, 2013.
张永红.无结构P2P网络文件副本自适应分布研究[D].大连:大连理工大学, 2013.
钱晔蕾,董健全.基于非结构化P2P的副本技术的研究和应用[J].计算机工程与应用,2007,43(10):148-153.