发明内容
本发明的目的是针对现有技术中维护成本高和通讯链路开销大的问题,提出一种自组织P2P架构的服务共享方法及其系统,用于跨虚拟企业的服务发现。
一种自组织P2P架构的服务共享方法,用于在服务共享系统中提供共享的服务,包括步骤:
按照所提供服务的相似度将参加所述服务共享系统的企业节点分为至少一个节点组;
从每个节点组中选出一个企业节点作为超节点,本节点组中其他企业节点作为叶节点;
为每个节点组的超节点建立一个可信的友超节点指针表,在节点组之间路由服务请求。
所述按照所提供服务的相似度将参加所述服务共享系统的企业节点分为至少一个节点组,进一步包括步骤:
1)从所有参加所述服务共享系统的企业节点中随机选出K个企业节点作为初始中心企业节点;
2)计算每个企业节点与选出的K个中心企业节点的相似度,并将其加入到相似度最大的那个中心企业节点所对应的节点组;
3)重新计算每个节点组的新中心点,使得该中心点和组中其他企业节点的平均相似度最大;
4)判断是否符合收敛条件,如果符合则分组完成,否则返回到步骤2)。
其中,所述其中Tv为企业节点总数,所述收敛条件为所有节点组的中心点不再变化或达到最大重复次数。通过上述步骤将提供相似服务的企业节点划分为一个企业节点组,将参加虚拟企业的所有企业划分为多个企业节点组,节点组之间自组织成为P2P架构的虚拟企业系统。
进一步地,所述计算每个企业节点与选出的K个中心企业节点的相似度,即计算两个企业节点间的相似度,假设PSa和PSb为两个企业节点,分别具有m和n个服务,假设m≤n,相似度计算包括步骤:
计算PSb的所有子集PSb′和PSa的相似度Si,其中PSb′的服务数量与PSa的的服务数量相等;
选取Si的最大值作为PSa和PSb相似度的值。
进一步地,所述从每个节点组中选出一个企业节点作为超节点,以及为每个节点组的超节点建立一个可信的友超节点指针表,均采用多准则信用评价方法,评估企业节点u的信誉度包括步骤:
a、评估企业节点作为服务提供者的节点信誉度Rprov(u),所述其中I表示节点u提供给其它节点v执行的服务总数量;F(u,i)表示节点u从其它节点收到的第i个服务执行的反馈评价;C(v,i)表示提交服务执行反馈评价的服务消费节点v的信用度;Cmax表示所有相关节点信用度的最大值;
b、评估企业节点作为服务推荐者的节点信誉度R
recom(u),所述
其中J表示节点u推荐给邻居节点的服务总数量,P(u,j)表示节点u第j次推荐给邻居节点的服务相关性,H(u,j)表示节点u在第j次服务推荐中所经过的跳数,H
max表示生存期内服务发现过程中最大节点跳数;
c、评估企业节点作为反馈评价者的信誉度R
rater(u),所述
其中L表示节点u消费的、由其它节点提供的服务总数量,其中K个服务收到节点u反馈的评价等级,K≤L,Q(u,k)表示节点u在执行第k个服务后反馈的评价等级,
表示历史上其它节点v在执行第k个服务后反馈的平均评价等级;
d、综合评价企业节点的信誉度值Rtotal(u)=α*Rprov(u)+β*Rrecom(u)+γ*Rrater(u),其中α、β和γ为权重值。
进一步地,所述历史上其它节点v在执行第k个服务后反馈的平均评价等级
其中Q(v
m,k)表示历史上第k个服务在第m次执行后收到的其它节点v
m反馈的评价等级,C(v
m,k)表示反馈评价等级的服务消费节点v
m的信用度,M表示历史上第k个服务收到的其它企业节点反馈的评价总数。
进一步地,所述从每个节点组中选出一个企业节点作为超节点,是指选取本节点组中信誉度值最大的企业节点作为超节点。所述为每个节点组的超节点建立一个可信的友超节点指针表是指选取历史上联系过的信誉度最好的A个企业节点作为可信友超节点,A取值如下:
其中Tv为节点总数,所述α∶β∶γ=企业节点u提供服务次数∶企业节点u推荐服务次数∶企业节点u反馈评价次数,α+β+γ=1。
本发明还同时提出了一种自组织P2P架构的服务共享系统,所述服务共享系统至少包括一个提供相似服务的节点组,所述节点组包括至少一个企业节点,所述节点组设置有一个超节点,所述超节点设置有可信友超节点指针表。
进一步地,所述企业节点包括分组管理器,用于动态地将提供相似服务的企业节点聚集成一个节点组,所述分组管理器包括:
初始点设置单元,用于从所有参加所述服务共享系统的企业节点中随机选出K个企业节点作为初始中心企业节点;
相似度分组单元,用于计算每个企业节点与选出的K个中心企业节点的相似度,并将其加入到相似度最大的那个中心企业节点所对应的节点组;
节点组中心重新计算单元,用于重新计算每个节点组的新中心点,使得该中心点和组中其他企业节点的平均相似度最大;
判断单元,用于判断是否符合收敛条件,如果符合则分组完成,否则返回继续进行分组。
其中,所述其中Tv为企业节点总数;所述收敛条件为所有节点组的中心点不再变化或达到最大重复次数。
进一步地,所述相似度分组单元还包括相似度计算模块,用于计算两个企业节点间的相似度。
所述企业节点还包括信誉管理器,用于管理企业节点的信誉度值,所述信誉管理器包括:
提供服务信誉度单元,用于评估企业节点作为服务提供者的节点信誉度;
推荐服务信誉度单元,用于评估企业节点作为服务推荐者的节点信誉度;
反馈服务信誉度单元,用于评估企业节点作为反馈评价者的信誉度;
综合信誉度单元,用于综合评价企业节点的信誉度值。
进一步地,所述信誉管理器还包括超节点选取单元,用于选取本节点组中信誉度值最大的企业节点作为超节点;所述信誉管理器还包括友超节点选取单元,用于为每个节点组的超节点建立一个可信的友超节点指针表,所述友超节点选取单元选取历史上联系过的信誉度最好的A个企业节点作为可信友超节点,A取值如下:
其中Tv为节点总数。
进一步地,所述企业节点还包括节点管理器,用于注册、启用或停用节点,加入和离开节点组,如果当前节点为超节点还可管理其友超节点指针表;所述企业节点还包括查询管理器,用于检索拥有所请求服务的企业节点;所述企业节点还包括发布管理器,用于发布企业节点提供的服务。
本发明的自组织P2P架构的服务共享方法及其系统,采用了自组织P2P架构,按照企业节点提供服务的相似度将参加服务共享系统的企业节点分为多个节点组,每个节点组选取一个超节点,其他企业节点作为叶节点,超节点维护一个可信的友超节点指针表,在节点组之间路由服务请求。本发明自组织P2P架构,通过划分节点组和设置超节点,服务发现通讯链路开销小;同时企业节点的加入和离开不会影响到所有的企业节点,超节点相对稳定,不会产生昂贵的网络维护成本。
具体实施方式
下面结合附图和实施例对本发明技术方案做进一步详细说明,以下实施例不构成对本发明的限定。
本发明以图1为例提出的一种自组织P2P架构的服务共享系统,包括至少一个节点组,每个节点组至少包括一个企业节点。该系统中每个企业均显示为一个节点,对外提供可共享的服务。每个节点组把提供相似服务的企业节点动态地聚集在一起,并通过多准则信用评价选出信誉度最好的节点作为核心节点,也称为超节点,节点组中其他企业节点称为叶节点。在服务发现过程中,将服务请求首先路由到合适的超节点,再以广播方式进一步路由到其下的叶节点,从而支持了高效率的服务发现。
如图1所示,有三个节点组分别为节点组PG1,节点组PG2和节点组PG3。节点组PG1包括叶节点企业节点P1-1、企业节点P1-2和企业节点P1-3,以及超节点SP1;节点组SP2包括叶节点企业节点P2-1和企业节点P2-2,以及超节点SP2;节点组SP3包括叶节点企业节点P3-1、企业节点P3-2和企业节点P3-3,以及超节点SP3。
各企业节点之间通过互联网连接,节点组之间构成P2P架构,通过P2P覆盖网相连,形成一个自组织P2P架构的服务共享系统。每个企业节点都包括一个私有服务注册中心,用来发布该企业节点提供的服务,以供该企业节点或其他企业节点共享。如果企业节点内的用户想请求一个服务,首先将对本地企业节点的私有服务注册中心发布的服务进行匹配和检索,如果本地没有匹配的服务,则将用户请求路由到本企业节点所属的节点组中的超节点,由超节点以广播的方式在节点组中其他企业节点中匹配和检索服务;如果本节点组其他企业节点都没有匹配的服务,则由超节点将用户请求路由到可信的其他节点组的超节点。
具体地,每个超节点维护有可信的友超节点指针表,当在本节点组没有发现匹配的服务时,将用户请求路由到可信的其他节点组的超节点,该超节点控制在其节点组中其他企业节点中匹配和检索服务。
每个企业节点包括节点管理器、查询管理器、发布管理器、分组管理器和信用管理器。节点管理器用于注册、启用或停用节点,加入和离开节点组,如果当前节点为超节点还可管理其友超节点指针表;查询管理器用于检索拥有所请求服务的企业节点;发布管理器用于发布企业节点提供的服务;分组管理器用于动态地将提供相似服务的企业节点聚集成一个节点组;信用管理器用于管理企业节点的信誉度值,并选出组内信誉度最好的节点作为超节点。
其中,分组管理器包括初始点设置单元,用于从所有参加服务共享的企业节点中随机选出K个企业节点作为初始中心企业节点;相似度分组单元,用于计算每个企业节点与选出的K个中心企业节点的相似度,并将其加入到相似度最大的那个中心企业节点所对应的节点组;节点组中心重新计算单元,用于重新计算每个节点组的新中心点,使得该中心点和组中其他企业节点的平均相似度最大;判断单元,用于判断是否符合收敛条件,如果符合则分组完成,否则返回继续进行分组。需要说明的是,参加服务共享的企业节点会在一个中心服务器进行登记,在进行分组时,可以随机由一个企业节点发起选举K个企业节点作为初始中心企业节点,或者由企业节点登记的服务器发起选举K个企业节点作为初始中心企业节点。
具体地,分组管理器动态地把提供相似服务的企业节点聚集成一个节点组,如图2所示,包括如下步骤:
步骤201、从所有参加共享服务系统的企业节点中随机选出K个企业节点作为初始中心企业节点,K值可由用户设置,建议取
其中T
v为企业节点总数。
步骤202、计算每个企业节点与选出的K个中心企业节点的相似度,并将其加入到相似度最大的那个中心企业节点所对应的组;
步骤203、重新计算每个节点组的新中心点,使得该中心点和组中其他企业节点的平均相似度最大;
步骤204、判断是否符合收敛条件,如果符合则分组完成,否则返回到步骤202。
具体地,常用的收敛条件有重复次数判断法和中心点比较法,前者是设定一个最大重复次数,当重复分组次数达到该值后,分组完成;后者是判断所有新的中心点是否与前一次找到的所有中心点一致,如果一致则停止分组。本发明不限定采用哪种收敛条件,这里不再赘述。
相似度分组单元还包括相似度计算模块,用于计算两个企业节点间的相似度,具体地,这里企业节点间的相似度计算方法如下:
为了计算两个企业节点间的相似度,假设PSa和PSb为两个企业节点,分别具有m和n个服务,假设m≤n,PSa和PSb间相似度Si计算(即Si(PSa,PSb))可以转化为求解PSb的子集PSb′,使得PSa和PSb′的服务数量相等,且PSa和PSb′(即Si(PSa,PSb′))之间相似度最大。PSa和PSb相似度可以表示为下面的方程式:
Si(PSa,PSb)=Maximize Si(PSa,PSb′)
假设PSa和PSb′分别表示为PSa=(MSa1,MSa2,...,MSam)和PSb′=(MSb1,MSb2,...,MSbm)。Si(PSa,PSb′)表示相关匹配的服务的相似度,其方程式如下:
其中Si(MSak,MSbk)表示两服务MSak,和MSbk的相似度,这个在现有技术中已经有成熟的计算方法,都采用了本体概念的形式化定义,即把包含服务能力(如服务类别、服务目标、制造特征、制造设备、输入参数和输出参数等)的服务本体作为相似度比较的基础,本发明不再赘述。
其中,信誉管理器,用于管理企业节点的信誉度值,具体包括:提供服务信誉度单元,用于评估企业节点作为服务提供者的节点信誉度;推荐服务信誉度单元,用于评估企业节点作为服务推荐者的节点信誉度;反馈服务信誉度单元,用于评估企业节点作为反馈评价者的信誉度;综合信誉度单元,用于综合评价企业节点的信誉度值。在完成节点自组织分组后,通过多准则信用评价将信誉度最好的节点推选为超节点,本节点组中其他企业节点为叶节点。超节点还维护有可信友超节点的指针表,可信友节点也是通过多准则信用评价来进行选择的。
在基于P2P的分布式制造环境下,企业节点会动态地加入或离开,其属性也会无规律地频繁变化。因此,需要动态选择信用最好的节点作为超节点,并且需要动态地维护超节点的可信友超节点指针表,以便能把路由请求发给其友超节点,而该友超节点或其下的叶节点可能驻留了所请求的服务。动态的基于信誉的信用模型需要通过评估与节点相关的信用参数的历史信誉情况,对节点信誉度值进行动态量化比较。
具体的,多准则信用评价方法评估某企业节点信誉度值如图3所示,包括步骤:
步骤301、评估企业节点作为服务提供者的节点信誉度Rprav(u)。
每当节点为服务消费者提供所需服务时,应用系统会要求服务消费者在执行服务的基础上对服务提供节点履行服务协议的好坏情况给出反馈评价。给定某一段时期,I表示节点u提供给其它节点v执行的服务总数量;F(u,i)表示节点u从其它节点收到的第i个服务执行的反馈评价;C(v,i)表示提交服务执行反馈评价的服务消费节点v的信用度;Cmax表示所有相关节点信用度的最大值;作为服务提供者的节点信誉度Rprov(u)可表示为如下方程:
以上方程是历史上节点u从服务消费者那里收到的服务执行反馈评价的累加,其中使用服务消费节点的信用度进行了权重处理。
F(u,i)值在[0,1]区间,0代表最差,1代表最好。
步骤302、评估企业节点作为服务推荐者的节点信誉度Rrecom(u)。
每当节点向邻居节点推荐一个来自其它节点的合适的服务,系统会计算服务的相关性以评价推荐服务的节点满足邻居节点请求的好坏情况。给定某一段时期,J表示节点u推荐给邻居节点的服务总数量;P(u,j)表示节点u第j次推荐给邻居节点的服务相关性;H(u,j)表示节点u在第j次服务推荐中所经过的跳数。Hmax表示生存期内服务发现过程中最大节点跳数。作为服务推荐者的节点信誉度Rrecom(u)可表示为如下方程:
以上方程是历史上节点u向其邻居节点所推荐服务的相关性的累加,其中使用节点u所经过的跳数进行了权重处理。服务相关性可以通过各种有关的服务属性(如服务名称、服务类别、服务成本、服务目标、服务接口、服务位置、服务输入和输出)与其各自权重进行多准则决策问题求解来进行全面评估。通过把当前值与最优值进行数值比较(如服务成本的相关性),或通过把当前概念与最优概念进行语义计算(如服务类别的相关性),可以对服务属性的相关性进行量化处理。服务属性相关性位于[0,1]区间,0代表相关性最低,1代表相关性最高。所有服务属性的权重相加等于1,因此通过多准则决策服务相关性的总数值会位于[0,1]区间。本发明把H(u,j)作为权重来使用,因为所推荐服务经过的跃点数量越少,其效率和重要性越高,所以权重越大。H(u,j)除以生存期值内服务发现的最大跃点数,可以把H(u,j)值规范化在[0,1]区间。
步骤303、评估企业节点作为反馈评价者的信誉度Rrater(u)。
每当节点发现并执行所请求的服务时,应用系统会为该节点作为服务消费者如实反馈所执行服务的评价意见进行激励。给定某一段时期,L表示节点u消费的、由其它节点提供的服务总数量,其中有K(K≤L)个服务收到节点u反馈的评价等级。Q(u,k)表示节点u在执行第k个服务后反馈的评价等级。
表示历史上其它企业节点v在执行第k个服务后反馈的平均评价等级。作为反馈评价者的节点信誉度R
rater(u)可表示为如下方程:
以上方程是历史上节点u在执行其它节点所提供的服务后反馈的评价等级的累加。Q(u,k)和
其值在[0,1]区间,0代表最差,1代表最好。节点u在执行第k个服务后的反馈质量反映了Q(u,k)和
之间的相对差异,在除以Q(u,k)和
中的最大值后,其值规范化为[0,1]区间。Q(u,k)和
间差异越小,表明反馈质量越好,R
rater(u)值则增大。
假设M表示历史上第k个服务收到的其它企业节点反馈的评价总数,Q(v
m,k)表示历史上第k个服务在第m次执行后收到的其它节点v
m反馈的评价等级,则平均评价等级
为:
其中C(v
m,k)表示反馈评价等级的服务消费节点v
m的信用度。
步骤304、综合评价企业节点的信誉度值。
本文提出的基于信誉的信用模型通过某一段时期内节点的历史信誉情况来评估节点信誉度值。为了使信用评估更具广泛性,本文采用了多指标决策数学方法来处理以上三部分之间的权衡关系。
Rtotal(u)=α*Rprov(u)+β*Rrecom(u)+γ*Rrater(u)
其中,α、β和γ分别为三部分的权重值,以体现其各自的重要性,α∶β∶γ=企业节点u提供服务次数∶企业节点u推荐服务次数∶企业节点u反馈评价次数,α+β+γ=1。
进一步地,信誉管理器还包括超节点选取单元,用于选取本节点组中信誉度值最大的企业节点作为超节点。信誉管理器还包括友超节点选取单元,用于为每个节点组的超节点建立一个可信的友超节点指针表,所述友超节点选取单元选取历史上联系过的信誉度最好的A个企业节点作为可信友超节点,具体地A取值如下:
其中Tv为企业节点总数。
在建立了本发明的基于自组织P2P架构的服务共享系统后,本发明进行服务发现的流程如图4所示,用户发布服务请求SR,本地企业节点收到服务请求,首先检查该服务请求SR以前是否受到并处理过,由于重复路由而产生的冗余消息将被不做进一步处理而直接丢弃。如果未处理过,则在本地企业节点的私有服务注册中心进行服务匹配检索,若服务请求SR和私有服务注册中心驻留的发布服务AS间的相似度大于服务-服务相似度临界值SSST,即Si(SR,AS)>SSST,则将该服务返回给发出服务请求的企业节点以进一步执行服务,否则进行下一步。
如果服务请求SR和私有服务注册中心驻留的发布服务AS间的相似度不大于服务-服务相似度临界值SSST,将服务请求路由到超节点,判断是否已经收到过服务请求,如果收到过,则丢弃该服务请求,否则判断服务请求SR和节点组PG之间的相似度是否大于服务-组相似度临界值SGST,若大于,即Si(SR,PG)>SGST,则把该节点组确定为目标节点组,其成员节点很可能驻留了所请求的服务,节点组中的超节点在其服务注册中心检索匹配的制造服务,同时把服务请求广播到其下的所有叶节点,并在所有叶节点的服务注册中心检索匹配的制造服务;如果Si(SR,PG)≤SGST,服务请求将从当前超节点继续路由到其友超节点,并搜索那些满足Si(SR,PG)>SGST条件的节点组。
需要说明的是,因为节点组是由提供语义相似服务的企业节点聚合而成的,所以服务请求与节点组的相似度计算可以简化为服务请求与节点组中超节点之间的相似度计算。为了计算服务请求(SR)与节点组中超节点(SP)的相似度,假设SP由m个制造服务构成,则SR和SP的相似度计算可以转化为查找SP的一个服务(MS),使得SR和MS之间的相似度Si(SR,MS)值最大,如下述方程所示:
Si(SR,SP)=Maximize Si(SR,MS)
以下以企业节点P1-1发布服务请求到同一节点组PG1的超节点SP1为例,介绍发现匹配服务的过程:
企业节点P1-1中的用户输入制造服务请求后,首先把服务请求形式化为基于OWL-S的语义规范,并对节点P1-1私有注册中心发布的服务进行逐一匹配。节点P1-1计算出服务请求(SR)和所有发布的服务(AS)之间的相似度,但是没有服务满足条件Si(SR,AS)>SSST。
于是节点P1-1把服务请求路由到同一节点组PG1的超节点,即企业节点SP1。超节点SP1计算服务请求(SR)和当前节点组PG1之间的相似度,但是不满足条件Si(SR,PG1)>SGST。然后,超节点SP1通过其指针表依次把服务请求路由到它的友节点,即节点组PG2的超节点SP2。超节点SP2计算服务请求(SR)和当前节点组PG2之间的相似度,但是仍然不满足条件Si(SR,PG2)>SGST。
然后,超节点SP2通过其指针表再依次把服务请求路由到它的友节点,即节点组PG3中的超节点SP3。超节点SP3计算服务请求(SR)和当前节点组PG3之间的相似度,发现满足条件Si(SR,PG3)>SGST。于是,把节点组PG3确定为目标节点组,其成员节点很可能驻留了所请求的服务。
接下来,超节点SP3在其服务注册中心逐一检索匹配的制造服务,同时把服务请求广播到它的叶节点P3-1、P3-2和P3-3,并在其各自的服务注册中心检索匹配的制造服务。超节点SP3计算服务请求(SR)和其发布中心发布的所有服务之间的相似度,但是没有发现服务满足条件Si(SR,AS)>SSST。叶节点P3-1和P3-2的情况也是如此。然而,叶节点P3-3在计算服务请求(SR)和其发布中心发布的所有服务之间的相似度时,发现有一个服务满足条件Si(SR,AS)>SSST,于是把该服务返回给节点P1-1中的用户以便进一步执行该服务。
以上实施例仅用以说明本发明的技术方案而非对其进行限制,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。