发明名称 P2P内存资源共享网络中基于信誉的服务匹配方法
摘要 本发明公开了一种P2P内存资源共享网络中基于信誉的服务匹配方法,目的是解决现有P2P-RAM网络无法有效区分节点服务质量差异,导致计算任务成功率低下的问题。技术方案是指定P2P-RAM网络中一个节点为信誉管理节点,对所有节点的信誉值初始化;用户节点通过代理节点查找内存服务,向信誉管理节点查询可用节点的信誉值,计算所有做出响应节点的服务推荐值;代理节点选择可用节点中服务推荐值最高的节点,构造并发送服务预约消息;内存服务结束后,用户节点就内存服务向信誉管理节点提交服务评价;信誉管理节点收到服务评价后,更新所有节点的信誉值。采用本发明可选择高质量的内存服务,避免计算任务失效率高的问题,提高系统整体可用性。
申请公布号 CN101860574B 申请公布日期 2012.08.01
申请号 CN201010215892.9 申请日期 2010.07.02
申请人 中国人民解放军国防科学技术大学 发明人 王怀民;唐扬斌;褚瑞;王意洁;李东升;金晗婧
分类号 H04L29/08(2006.01)I 主分类号 H04L29/08(2006.01)I
代理机构 国防科技大学专利服务中心 43202 代理人 郭敏
主权项 1.一种P2P内存资源共享网络中基于信誉的服务匹配方法,其特征在于包括以下步骤:第一步,采用EigenTrust信誉管理系统的设计方案指定P2P-RAM网络中一个节点为信誉管理节点,信誉管理节点不参与任何提供或使用内存服务的行为,而是为P2P-RAM网络内其他所有节点提供三类服务:(1)接收用户节点提交的服务评价信息,并加以存储;(2)存储并定时更新所有节点的信誉值;(3)为所有节点提供信誉值的查询功能;第二步,信誉值初始化:信誉管理节点将所有节点的初始信誉值设置为0.5;第三步,查找内存服务:3.1用户节点在P2P-RAM网络中随机选择某个代理节点,向其发送需要请求的内存容量M<sub>U</sub>和最小的内存服务持续时间T<sub>1</sub>;3.2代理节点以M<sub>U</sub>和T<sub>1</sub>为参数,采用广播方式向P2P-RAM网络中不包括第一步所述信誉管理节点和3.1所述用户节点和代理节点的其他节点发送服务查询,然后设置最大接收等待时间,开始倒计时并等待接收响应;3.3其他节点收到消息后,根据自身状态和当前内存使用情况选择相应操作:3.3.1如果节点当前状态不是“可用节点”,转3.3.3;3.3.2如果节点当前状态为“可用节点”,则判断当前自身可用内存容量是否大于等于用户节点请求的内存容量;如果结果为否,转3.3.3;反之,继续判断能否提供超过最小服务时间的持续服务,如果结果为否,转3.3.3;否则,转3.3.4;3.3.3丢弃消息,不做出任何响应;3.3.4节点以自身标识ID<sub>p</sub>、内存响应时间t<sub>p</sub>、所能提供的内存共享容量M<sub>share</sub>及最大服务持续时间T<sub>2</sub>为参数,向代理节点发送响应;3.4接收倒计时结束即等待时间超过最大接收等待时间后,代理节点终止接收过程,检查是否有可用节点对服务查询做出响应,并采取相应操作:3.4.1如果代理节点没有收到任何响应消息,则通知用户节点当前没有满足要求的可用节点,然后终止查询过程;3.4.2如果代理节点收到了可用节点的响应消息,则转3.5;3.5代理节点以发回响应的可用节点的标识为参数,向信誉管理节点查询该可用节点的信誉值T<sub>p</sub>,然后使用如下公式计算所有做出响应的可用节点的服务推荐值:<maths num="0001"><![CDATA[<math><mrow><mi>&phi;</mi><mrow><mo>(</mo><msub><mi>t</mi><mi>p</mi></msub><mo>,</mo><msub><mi>T</mi><mi>p</mi></msub><mo>,</mo><msub><mi>M</mi><mi>U</mi></msub><mo>,</mo><msub><mi>M</mi><mi>share</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><msup><mi>e</mi><msub><mi>T</mi><mi>p</mi></msub></msup><mo>-</mo><mi>&delta;</mi></mrow><msub><mi>t</mi><mi>p</mi></msub></mfrac><mo>&CenterDot;</mo><mfrac><msub><mi>M</mi><mi>share</mi></msub><mrow><msub><mi>M</mi><mi>U</mi></msub><mo>+</mo><msub><mi>M</mi><mi>share</mi></msub></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow></math>]]></maths>其中:0.8<δ<1为常数,t<sub>p</sub>为该可用节点的内存响应时间,M<sub>share</sub>为该可用节点所能提供的内存共享容量,M<sub>U</sub>为用户节点需要请求的内存容量;第四步,预约内存服务:代理节点选择发回响应的可用节点中服务推荐值最高的节点,构造并发送服务预约消息,服务预约消息包含的信息为一个四元组(ID<sub>U</sub>,M<sub>U</sub>,T<sub>1</sub>,T<sub>2</sub>),其中:ID<sub>U</sub>为用户节点的标识,M<sub>U</sub>为用户节点需要请求的内存容量,T<sub>1</sub>为用户节点请求的最小内存服务持续时间,T<sub>2</sub>为可用节点能够提供的最大服务持续时间;可用节点收到消息后,与用户节点建立连接,开始提供内存服务;设t为内存服务的实际持续时间,则此次内存服务的总量为<img file="FDA0000152928450000021.GIF" wi="1159" he="136" />其中M<sub>0</sub>为最小内存容量单位,T<sub>0</sub>为最小服务持续时间单位,<img file="FDA0000152928450000022.GIF" wi="69" he="64" />表示对x进行上取整;第五步,提交服务评价:内存服务结束后,用户节点就内存服务向信誉管理节点提交服务评价,服务评价为一个二元组E=&lt;S,F&gt;,其左侧值S表示用户节点对内存服务的满意值,右侧值F表示用户节点对内存服务的不满意值,E的具体取值方式如下:5.1如果内存服务被用户节点终止,E=&lt;C(M<sub>share</sub>,max(t,T<sub>1</sub>)),0&gt;;5.2如果内存服务被内存节点终止,则:5.11如果t<T<sub>1</sub>,E=&lt;0,C(M<sub>share</sub>,T<sub>1</sub>)&gt;;5.1.2如果t≥T<sub>2</sub>,E=&lt;C(M<sub>share</sub>,T<sub>2</sub>),0&gt;;5.1.3如果T<sub>1</sub>≤t<T<sub>2</sub>,E=&lt;0,0&gt;;5.3如果内存服务终止,但不属于5.1和5.2两种情况,E=&lt;0,C(M<sub>share</sub>,max(t,T<sub>1</sub>))&gt;;第六步,信誉管理节点收到服务评价后,更新所有节点的信誉值,方法如下:6.1对于有n个节点的P2P-RAM网络,对节点以数字1,2,...,n编号;6.2对每个节点i,计算向量c<sub>i</sub>=[c<sub>i1</sub>,c<sub>i2</sub>,...,c<sub>in</sub>]<sup>T</sup>,其中<maths num="0002"><![CDATA[<math><mrow><msub><mi>c</mi><mi>ij</mi></msub><mo>=</mo><mfrac><mrow><mi>max</mi><mo>{</mo><msub><mi>w</mi><mi>ij</mi></msub><mo>,</mo><mn>0</mn><mo>}</mo></mrow><mrow><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><mi>max</mi><mo>{</mo><msub><mi>w</mi><mi>ij</mi></msub><mo>,</mo><mn>0</mn><mo>}</mo></mrow></mfrac><mo>,</mo></mrow></math>]]></maths>w<sub>ij</sub>为节点i对节点j的所有服务评价的左侧值S之和减去右侧值F之和;1≤i≤n,1≤j≤n;当i=j时,取w<sub>ii</sub>=0;<img file="FDA0000152928450000031.GIF" wi="476" he="105" />使用如下公式迭代计算每个节点的信誉值t<sup>(k+1)</sup>=C<sup>T</sup>t<sup>(k)</sup>,其中<img file="FDA0000152928450000032.GIF" wi="412" he="59" />为第k次迭代后每个节点的信誉值所构成的向量,k为正整数,C<sup>T</sup>=[c<sub>1</sub>,c<sub>2</sub>,...,c<sub>n</sub>];迭代终止条件为<maths num="0003"><![CDATA[<math><mrow><munder><mi>max</mi><mrow><mn>1</mn><mo>&le;</mo><mi>j</mi><mo>&le;</mo><mi>n</mi></mrow></munder><mo>|</mo><msup><mi>t</mi><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow></msup><mo>-</mo><msup><mi>t</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></msup><mo>|</mo><mo>&lt;</mo><mi>&epsiv;</mi><mo>,</mo></mrow></math>]]></maths>其中ε为最大可接受误差,ε=0.01;迭代终止后,最终的t<sup>(k+1)</sup>的各分量即为每个节点的信誉值。
地址 410073 湖南省长沙市开福区德雅路109号