沈阳理工大学信息科学与工程学院 盛建家
基于模糊Petri网的语义Web服务组合
沈阳理工大学信息科学与工程学院 盛建家
【摘要】由于Web服务组合依赖关系图越来越庞大,耗费的代价也日益加重,所以提出了一种建立在模糊Petri网的基本结构上的反向搜索算法,通过建立邻接矩阵、矩阵命令来根据目标输出库所搜索与之相关的前驱库所。通过该算法的运行,不仅可以提高计算效率,同时也可以在模糊Petri网模型中抽取出一个子模型,从而把一个大的、复杂的系统转化为一个只与问题相关的小的系统来处理。
【关键词】模糊Petri;依赖关系;反向搜索;服务组合
随着Web服务技术的日益成熟,面对日益复杂的Web服务请求者的请求,这需要将许多功能相同或相似的Web服务通过一定的控制手段将其整合成能够满足服务请求者需求的Web服务组合。但是所有Web服务组合成的Web服务组合依赖关系图规模比较庞大,其中存在很多对满足Web请求服务者请求完全没用的Web服务。显然对于请求服务者来说,这种Web服务依赖关系图是不能直接被调用的。当请求服务者执行Web服务时,根据请求服务者输入和期望输出来对整个Web服务关系依赖图进行反向推理,去除和请求服务者请求无关的Web服务,然后将这个Web服务依赖关系子图返回给请求服务者,而后请求服务者按照该Web服务依赖关系子图进行Web服务调用。
2.1矩阵定义
在对得到的Web依赖关系图进行反向推理之前,首先要对Web服务依赖关系图矩阵化,然后根据矩阵表示法来进行反向搜索。
2.2运算定义
为了充分突出模糊Petri网的模糊推理能力,就必须用将Petri网用矩阵表示出来。在模糊推理之前,必须给出推理所需要的一些有关矩阵的运算。
定义3.1 定义矩阵PtoP[Pi][Pj]为Web服务依赖关系图中库所之间的邻接矩阵,矩阵的行与列都代表Petri网中的库所,在矩阵中的元素Pij’所代表的值若为1,则表示Pj’库所是Pi’库所的前驱库所;若为0,这表示两个库所间没关系。
定义3.2 定义矩阵命令deleteRow(i)是删除邻接矩阵中第i行的所有元素,并改变原矩阵的行维数。
定义3.3 定义矩阵命令deleteCol(i)是删除邻接矩阵中第i列的所有元素, 并改变原矩阵的列维数。
反向搜索算法步骤如下:
步骤1:根据定义2.13,得到邻接矩阵PtoP[Pi][Pj]。此时利用矩阵命令deleteRow和deleteCol删除全是0的行与列,得到新邻接矩阵PtoP[Pi][Pj]’。
步骤2:组合服务的目标输出库所是在分析请求信息的基础上得到的。现要求找到目标输出库所再邻接矩阵所在那一列,在此列中找到出元素值为1所对应的行,此时行代表的输入库所,加入其前驱库所集中。若没有找到,则算法结束。
步骤3:对步骤2得到的前驱库所集中每个前驱库所将其作为目标输出库所,按照步骤2的方法也分别找出其对应的前驱库所集,直到已经搜索至第一行结束。
步骤4:将以上所得到的所有库所保存起来,并在Web服务依赖关系图中删除那些无关的库所,得到反向搜索后的Web服务依赖关系子图,算法结束。
算法结束时,如果算法成功返回这代表已经从原来的Web服务依赖关系图中找到了一个符合Web服务请求者需求的且规模小的服务依赖关系图。
本文在模糊Petri网的基础上,使用矩阵这种数据结构来精确定义Petri网,其中包括Web服务依赖关系图的输入输出矩阵和等效输入输出矩阵,并介绍了基于描述Web服务依赖关系图的矩阵的基本运算的定义,可以进行数学上的计算和推理,而后介绍了用于服务依赖关系图生成的矩阵基本运算的反向搜索方法。其中反向搜索(推理)算法主要是先减小矩阵规模,减少计算量,从而达到优化算法的目的。
参考文献
[1]刘卫宁.面向多任务的制造云服务组合[J].计算机集成制造系统,2013,19(1):199-209.
[2]吴哲辉.Petri网导论[M].北京:机械工业出版社,2006: 1-58.
[3]曹利培,孔娟,刘静.Web服务组合形式化方法研究[J].计算机工程与应用,2009,45(25):48-70.
[4]Beth T,Borcherding M, Klein B.Valuation of trust in open network[C].Gollmann D,ed.Proe.of the European Symp.on Research in Security(F.SORICS).Brighton:Springer-Verlag,1994:3-18.
[5]Li Hai-hua,Du Xiao-yong,Tian Xuan.A capability enhanced trust evaluation model for web services[J].Chinese Journal of Computers,2008,31(8):1471-1477.