[发明专利]一种基于Petri网的Web服务组合演化方法有效

专利信息
申请号: 201510563353.7 申请日: 2015-09-08
公开(公告)号: CN105095602B 公开(公告)日: 2018-11-02
发明(设计)人: 张元鸣;倪宽;肖刚;陆佳炜;徐俊;高飞 申请(专利权)人: 浙江工业大学
主分类号: G06F17/50 分类号: G06F17/50
代理公司: 杭州天正专利事务所有限公司 33201 代理人: 王兵;黄美娟
地址: 310014 浙*** 国省代码: 浙江;33
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明提出一种基于Petri网的Web服务组合演化方法,能够在原子Web服务全局依赖Petri网模型与Web服务组合控制结构Petri网模型的基础上,根据演化需求对Web服务组合执行演化操作,再从各演化点出发执行正向演化推理与反向演化推理,生成最终的Web服务组合演化结果。本发明能够提高软件开发效率,快速响应用户多变的需求。
搜索关键词: 一种 基于 petri web 服务 组合 演化 方法
【主权项】:
1.一种基于Petri网的Web服务组合演化方法,包括以下步骤:(1)构建Web服务Petri网模型及其关系矩阵;(1.1)建立原子Web服务库;建立不可再分的Web服务,简称原子服务,将原子服务的集合称为原子服务库,它是本发明专利中Web服务组合演化的基本构成单元;(1.2)建立原子服务全局依赖Petri网模型;Web服务间接口依赖关系是指若存在两个原子服务WSi与WSj,若WSi的输出包含了WSj的输入,则称WSi为WSj的前驱服务,WSi为WSj的后继服务;根据Web服务间的接口依赖关系,针对所有的原子服务建立Petri网模型,称为原子服务全局依赖Petri网模型;(1.3)建立Web服务组合控制结构Petri网模型;Web服务组合中的过程控制结构主要包括顺序结构、并发结构、同步结构、选择结构和循环结构;依据这五种控制结构,对于任意一个Web服务组合,建立与其相对应的Web服务组合控制结构Petri网模型;(1.4)分别将全局依赖Petri网模型和控制结构Petri网模型转换为关系矩阵;根据以下转换方法,将全局依赖Petri网模型和控制结构Petri网模型分别转换为关系矩阵;关系矩阵转换方法:设aij为关系矩阵中第i行第j列的元素,分别将Petri网模型中的库所与变迁设为P与T,以P1~Pm为行,T1~Tn为列;aij值由以下规则确定,其中1≤i≤m,1≤j≤n:若Pi为Ti的输入库所,aij为1;若Pi为Ti的输出库所,aij为‑1;其他则为0;(2)Web服务组合演化需求的形式化表示与预处理;(2.1)将Web服务组合中的复合服务分解为原子服务;一个Web服务组合结果即包含原子服务,也包含复合服务;在演化之前,需要将组合结果中的复合服务分解为原子服务,使Web服务组合完全由原子服务构成;将复合服务分解为原子服务的算法如下:输入:设Web服务组合关系矩阵为A=[aij]m×n,其中m和n分别为矩阵A的行数与列数,aij是矩阵A中的元素,其中1≤i≤m,1≤j≤n;复合服务P的关系矩阵为B=[bxy]s×t,其中s和t分别为矩阵B的行数与列数;bxy是矩阵B中的元素,其中1≤x≤s,1≤y≤t;若Web服务组合中存在复合服务P,其输入库所为Pi,输出库所为P;输出:完全由原子服务构成的Web服务组合关系矩阵;算法步骤:步骤2.1.1:对于矩阵A,先移除P所在行{ai1,ai2,…,aij};步骤2.1.2:将矩阵B插入到A中;A中新增B中相应的行列数量,其中{am+1n+1,am+1n+2,…,am+1n+t}中的值与{b11,b12,…,b1t}对应,依此类推,{am+s n+1,am+s n+2,…,am+s n+t}中的值与{bs1,bs2,…,bst},aij=0,其中i∈[1,m],j∈[n+1,n+t],aij除了组合服务的输入库所与输出变迁的值为‑1和输出库所与输入变迁的值为1,其余值都为0,其中i∈[m+1,m+s],j∈[1,n];步骤2.1.3:若Web服务组合中仍旧含有复合服务,返回步骤2.1.1;否则,算法结束;(2.2)服务组合演化需求的形式化表示;服务组合演化需求可表示为一个二元组ER=,其中,POS表示正向操作集合(Positive Operation Set),代表演化需求希望对相应原子服务做出变化的演化操作集合;NOS(Negative Operation Set)表示反向操作集合,代表演化过程中需要避免实现的演化操作集合;POS与NOS都由一系列演化操作集合{op1,op2,…,opn}组成;根据演化操作对原子服务接口的影响,可以将演化的基本操作分为三大类:增性操作、减性操作、内部操作;其基本操作可以表示为一个四元组OPT=;其中,WS是指演化点;OP是指基本操作类型;I是指演化点需要变化的输入集合;O是指演化点需要变化的输出集合;(2.3)演化操作的冲突检测处理;在定义了服务组合演化需求并得到其相应的演化操作集合之后,需要对其进行冲突检测处理,包括互逆、相似、覆盖、触发四种冲突关系,一旦检测到冲突,需要进一步执行消解操作;以正向操作集合POS为例,给出以下演化操作冲突检测与消解算法:输入:设存在于POS中的任意两个演化操作EOx=与EOy=,其中演化操作EOx中各参数的含义为:WSi表示需要执行操作的演化点,OPx表示基本操作类型,Ix与Ox表示执行EOx操作中需要变化的输入与输出的集合;演化操作EOy中的参数与EOx中的参数含义相同;设消解集合CS的初始值为φ,冲突判定参数hasConflict为0;输出:消解后的演化操作;算法步骤:步骤2.3.1:对POS进行遍历,对于任意两个演化操作EOx与EOy,进行操作冲突检测;步骤2.3.2:若WSi与WSj相同,OPx与OPy分别为增性操作和减性操作,Ix∩Iy≠φ或Ox∩Oy≠φ,则两者为互逆冲突,hasConflict=1;Ix=Ix‑Ix∩Iy,Iy=Iy‑Ix∩Iy,Ox=Ox‑Ox∩Oy,Oy=Oy‑Ox∩Oy,CS=CS∪{EOx,EOy},若EOx中Ix,Ox∈φ,则不并入集合CS,EOy同理;步骤2.3.3:若WSi与WSj相同,OPx为减性操作且Ix和Oy与WSi中的输入和输出集合相同,则两者为覆盖冲突,hasConflict=1;CS=CS∪{EOx};步骤2.3.4:若WSi与WSj相同,OPx与OPy同时为增性操作或减性操作,则两者为触发冲突,hasConflict=1;CS=CS∪{EOy};步骤2.3.5:若WSi与WSj相同,OPx与OPy同时为增性操作或减性操作,Ix∩Iy=φ或Ox∩Oy=φ,则两者为相似冲突,hasConflict=1;将WSi与WSj进行合并,得到EOxy={WSi,OPx,Ix∪Iy,Ox∪Oy},CS=CS∪{EOxy};步骤2.3.6:遍历完成后,若hasConflict=1,则令POS=CS,CS=φ,hasConflict=0,重新执行步骤2.3.1;否则执行步骤2.3.7;步骤2.3.7:算法结束,CS为冲突消解后得到的演化操作集合;(3)基于演化需求对演化点执行演化操作;(3.1)对演化点执行演化操作;首先,执行减性操作;删除指定的输入输出接口或Web服务,即消除原子服务全局依赖Petri网模型和Web服务组合控制结构Petri网模型中的失效连接弧以及需删除Web服务对应的库所;失效的连接弧是指与由演化操作而产生变化的库所输入端或输出端相邻的连接弧;其次,执行增性操作;在原子服务全局依赖Petri网和Web服务组合控制结构Petri网模型中加入新增的演化点;最后,演化操作执行完毕;(3.2)更新原子服务全局依赖Petri网模型;Web服务演化点执行完演化操作之后,需要更新全局依赖Petri网模型,更新算法如下;输入:设W为演化点集合,集合为原子服务库中除演化点以外的原子服务集合;Pre表示前驱服务集合,Next表示后继服务集合;输出:原子服务全局依赖Petri网模型的更新结果;算法步骤:步骤3.2.1:开始遍历W,对于服务WSi,W=W‑{WSi},步骤3.2.2:执行服务反向匹配方法,得到其前驱服务集合Prei,W中去除Prei元素中的Web服务,而将这些服务则并入其含义如上所述;步骤3.2.3:对于Prei所有元组中的任意Web服务WSa,若存在且存在与其输入参数相匹配的Web服务则对WSa执行步骤3.2.2;若Prei∈φ,φ表示空集,执行步骤3.2.4;步骤3.2.4:在范围内,搜索输入参数与WSi中输出参数匹配的Web服务,得到集合S;步骤3.2.5:遍历集合S,对于WSj∈S,S=S‑{WSj},对其执行服务反向匹配方法;若WSi在Prej元素的元组中,Nexti=Nexti∪{WSj},W=W‑{WSj},若S∈φ,执行步骤3.2.7;步骤3.2.6:若存在与WSj输出参数相匹配的Web服务,对WSj执行步骤3.2.4;否则,重新执行步骤3.2.6;步骤3.2.7:Nexti为WSi的后继服务集合;若返回步骤3.2.1;否则,算法结束;其中,服务反向匹配方法为原子服务全局依赖Petri网模型生成算法子步骤,其作用为选定WSi的输入参数与中元素进行匹配,最终得到WSi的前驱结构Petri网及其前驱服务集合Prei;(4)Web服务组合演化推理;对演化点执行演化操作完成了单个原子服务的演化,除此之外,由于增性操作与减性操作会导致Web服务组合初始服务与终止服务之间并不相通,甚至产生一些无效的支路;为此,需补全Web服务组合初始服务与终止服务之间断开的通路和剔除无效的支路,为此需要从演化电开始进行演化推理,包括反向演化推理和正向演化推理两个阶段,反向演化推理用于补全Web服务组合初始库所到演化点之间断开的通路并剔除无效的支路;正向演化推理则用于补全演化点到Web服务组合终止库所之间断开的通路并剔除无效的支路;(4.1)反向演化推理;执行以下反向推理算法;输入:设反向推理循环变量为i,其初始值为1,初始库所向量A(0)为(a1,a2,…,an),其中演化点库所的值为1,初始变迁向量B(0)为(0,0,…,0),原子服务全局依赖Petri网关系矩阵为D,对演化点进行演化操作后Web服务组合库所向量为W;输出:得到Web服务组合起始库所到所有演化点之间的通路;算法步骤:步骤4.1.1:执行反向推理通路补全过程:计算其中A(i)和B(i)分别为第i次通路补全过程后通路中的库所向量与变迁向量;步骤4.1.2:i=i+1,若Web服务组合起始库所在A(i)中的值为1时,执行步骤4.1.3;否则,返回步骤4.1.1;步骤4.1.3:将W映射到D上得到矩阵Dw,即只保留D中W元素所代表的行;步骤4.1.4:执行剔除无效支路过程:删除Dw中全为0和除0以外全为1或者‑1的列;遍历Dw中的行,若存在不为输入输出库所的行,其中值除0以外全为1或者‑1,则删除该值对应的行,重新执行步骤4.1.4;若不存在以上条件的行,则算法结束;(4.2)正向演化推理;执行以下正向推理算法;输入:设正向推理循环变量为i,初始值为1,初始库所向量A(0)为(a1,a2,…,an),其中演化点库所的值为1,初始变迁向量B(0)为(0,0,…,0),对演化点进行演化操作后Web服务组合库所向量为W,反向演化推理得到的关系矩阵Dw,原子服务全局依赖Petri网关系矩阵为D,输出关联矩阵为D+,输入关联矩阵为D‑;其中,输出:得到所有演化点到Web服务组合终止库所之间的通路;算法步骤:步骤4.2.1:执行正向推理通路补全过程:计算其中A(i)和B(i)分别为第i次通路补全过程后通路中的库所向量与变迁向量;步骤4.2.2:i=i+1,若Web服务组合终止库所在A(i)中的值为1时,执行步骤4.2.3;否则,返回步骤4.2.1;步骤4.2.3:将W映射到D上得到矩阵Dw,即只保留D中W元素所代表的行;步骤4.2.4:执行剔除无效支路过程:删除Dw中全为0和除0以外全为1或者‑1的列;遍历Dw中的行,若存在不为输入输出库所的行,其中值除0以外全为1或者‑1,则删除该值对应的行,重新执行步骤4.2.4;若不存在以上条件的行,则算法结束;经过以上Web服务组合演化算法,可以得到机器辅助处理得出的Web服务组合演化结果关系矩阵Dw;该结果经开发人员进行一定的分析处理后,就成为最终的Web服务演化结果。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江工业大学,未经浙江工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201510563353.7/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top