CN105095602B - 一种基于Petri网的Web服务组合演化方法 - Google Patents
一种基于Petri网的Web服务组合演化方法 Download PDFInfo
- Publication number
- CN105095602B CN105095602B CN201510563353.7A CN201510563353A CN105095602B CN 105095602 B CN105095602 B CN 105095602B CN 201510563353 A CN201510563353 A CN 201510563353A CN 105095602 B CN105095602 B CN 105095602B
- Authority
- CN
- China
- Prior art keywords
- evolution
- service
- web service
- atomic
- library
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 239000011159 matrix material Substances 0.000 claims description 63
- 230000008569 process Effects 0.000 claims description 19
- 239000000203 mixture Substances 0.000 claims description 18
- 239000002131 composite material Substances 0.000 claims description 16
- 230000007704 transition Effects 0.000 claims description 16
- 238000001514 detection method Methods 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 13
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 239000002243 precursor Substances 0.000 claims description 7
- 230000003247 decreasing effect Effects 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 3
- 230000029087 digestion Effects 0.000 claims description 2
- 238000004886 process control Methods 0.000 claims description 2
- 230000001502 supplementing effect Effects 0.000 claims description 2
- 230000001360 synchronised effect Effects 0.000 claims description 2
- 150000001875 compounds Chemical class 0.000 claims 2
- 238000007781 pre-processing Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 239000000654 additive Substances 0.000 description 1
- 230000000996 additive effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提出一种基于Petri网的Web服务组合演化方法,能够在原子Web服务全局依赖Petri网模型与Web服务组合控制结构Petri网模型的基础上,根据演化需求对Web服务组合执行演化操作,再从各演化点出发执行正向演化推理与反向演化推理,生成最终的Web服务组合演化结果。本发明能够提高软件开发效率,快速响应用户多变的需求。
Description
技术领域
本发明专利涉及一种基于Petri网的Web服务组合演化方法。首先基于Web服务接口间依赖关系建立原子服务全局依赖Petri网模型与Web服务组合控制结构Petri网模型;其次,给出了Web服务演化需求的形式化描述方法,将演化需求转换为对Web服务间接口的演化操作;再次,在演化操作进行冲突分析和消解后,对演化点执行演化操作,并更新原子服务全局依赖Petri网模型;最后,从各演化点开始执行正向与反向演化推理,生成最终的Web服务组合演化结果。
背景技术
在使用Web服务组合构建应用系统时,这些应用系统难以对外部环境的变化作出快速反应,仅依靠实例层面的自适应并无法满足要求。服务组合的演化旨在当外部环境和用户需求发生变化时,开发人员能够对服务组合进行适应性变更、并保持服务与相关应用有效性的过程。
Web服务组合作为服务组合演化的基础,对于Web服务组合演化的研究有着非常关键的作用。国内外许多学者和研究机构对Web服务组合的方法进行了研究。Schinz等人(Proceedings of the 2nd International Conference on Software Engineering andFormal Methods,2004)采用Pi-演算对Web服务组合进行分析和验证,并讨论了Pi-演算与Web服务协议栈的对应关系,建立了Web服务组合的建模规则。倪悦(清华大学学报,2010)提出一种语义Web服务组合模型到着色Petri网组合模型的转换方法,不仅能清晰表示服务组合中各子过程之间的逻辑关系,而且能用着色Petri网的形式化方法进行服务组合正确性验证。何丰(东华大学,2008)提出了一种基于接口匹配的Web服务组合方法,先根据服务间的接口依赖得到Web服务关系依赖图,然后使用两阶段推理算法得到Web服务组合演化结果。而关于软件演化以及Web服务组合演化的研究,Plessers等人(ISWC,2005)使用多版本技术来进行变化侦测,提出了一个五阶段的本体演化方法,将一些不必要的本体变化回溯,从而能够更好地反映开发人员的本体改进意图。鲍爱华(清华大学,2009)以机器辅助处理为目标,进一步提出了一种语义Web环境下组合服务演化方法EM4CS,将组合服务演化分为6大步骤,从根据开发人员提供的演化需求生成基于演化本体的维护请求脚本开始,经过语法和语义一致性维护工作后生成演化结果,最后将其进行发布与传播。陈洪龙等人(小型微型计算机系统,2010)使用扩展Bigraph这种基于图形的形式化语言来描述面向方面的体系结构模型,使用Bigraph反应系统来描述模型的动态演化,对软件演化中的特性进行研究。另外,还有一些学者通过面向服务编排(燕山大学,2014)和使用Pi-演算建立相应的服务组合演化技术框架或模型。
Web服务组合演化的目标是在已有Web服务组合的基础上进行演化,以适应用户多样性需求以及适应复杂多变的运行环境,希望以此降低Web服务组合成本。分析已有的文献可知,目前的服务组合演化方法在演化需求的形式化描述上过于复杂,并且使用的语义本体单一,使得其对演化操作的预处理效率较低且让之后的校验工作十分繁琐,对其运行的环境要求比较高。因此,降低演化成本以及提高演化效率是Web服务组合演化的关键技术。
发明内容
本发明要克服现有技术的上述缺点,提供一种预处理效率高且之后的校验工作简便、对运行环境要求低的Web服务组合演化方法。
本发明专利在原子Web服务全局依赖Petri网模型与Web服务组合控制结构Petri网模型的基础上,根据演化需求对Web服务组合执行演化操作,再从各演化点出发执行正向演化推理与反向演化推理,生成最终的Web服务组合演化结果。
一种基于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;
对于控制结构Petri网模型,需要将其表示在全局环境中,因此将其关系矩阵中的P与T与全局依赖Petri网关系矩阵中的P与T作相同设置。
(2)Web服务组合演化需求的形式化表示与预处理。
(2.1)将Web服务组合中的复合服务分解为原子服务。
一个Web服务组合结果即可能包含原子服务,也可能包含复合服务。在演化之前,需要将组合结果中的复合服务分解为原子服务,使Web服务组合完全由原子服务构成。将复合服务分解为原子服务的算法如下:
输入:设Web服务组合关系矩阵为A=[aij]m×n,其中m和n分别为矩阵A的行数与列数,aij(1≤i≤m,1≤j≤n)是矩阵A中的元素,复合服务P的关系矩阵为B=[bxy]s×t,其中s和t分别为矩阵B的行数与列数,bxy(1≤x≤s,1≤y≤t)是矩阵B中的元素。若Web服务组合中存在复合服务P,其输入库所为Pi,输出库所为Po;
输出:完全由原子服务构成的Web服务组合关系矩阵。
算法步骤:
步骤2.1.1:对于矩阵A,先移除P所在行{ai1,ai2,…,aij}。
步骤2.1.2:将矩阵B插入到A中。A中新增B中相应的行列数量,其中{am+1n+1,am+1n+2,…,a m+1n+t}中的值与{b11,b12,…,b1t}对应,依此类推,
{am+s n+1,am+s n+2,…,a m+s n+t}中的值与{bs1,bs2,…,bst},aij(i∈[1,m],j∈[n+1,n+t])=0,aij(i∈[m+1,m+s],j∈[1,n])除了组合服务的输入库所与输出变迁的值为-1和输出库所与输入变迁的值为1,其余值都为0。
步骤2.1.3:若Web服务组合中仍旧含有复合服务,返回步骤1;否则,算法结束。
(2.2)服务组合演化需求的形式化表示。
服务组合演化需求可表示为一个二元组ER=<POS,NOS>,其中,POS表示正向操作集合(Positive Operation Set),代表演化需求希望对相应原子服务做出变化的演化操作集合;NOS(Negative Operation Set)表示反向操作集合,代表演化过程中需要避免实现的演化操作集合;POS与NOS都由一系列演化操作集合{op1,op2,…,opn}组成。
根据演化操作对原子服务接口的影响,可以将演化的基本操作分为三大类:增性操作、减性操作、内部操作;其基本操作可以表示为一个四元组OPT=<WS,OP,I,O>;其中,WS是指演化点;OP是指基本操作类型;I是指演化点需要变化的输入集合;O是指演化点需要变化的输出集合;
(2.3)演化操作的冲突检测处理。
在定义了服务组合演化需求并得到其相应的演化操作集合之后,需要对其进行冲突检测处理,包括互逆、相似、覆盖、触发四种冲突关系,一旦检测到冲突,需要进一步执行消解操作;以正向操作集合POS为例,给出以下演化操作冲突检测与消解算法:
输入:设存在于POS中的任意两个演化操作EOx=<WSi,OPx,Ix,Ox>与EOy=<WSj,OPy,Iy,Oy>,其中演化操作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;否则,返回步骤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;否则,返回步骤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服务演化结果。
本发明的优点是:
本发明能够以Web服务组合演化的方式更加快速地构建新的软件系统,降低服务重新组合的成本,提高软件开发效率,快速响应用户多变的需求。下面结合旅游信息系统应用实例,对具体的实施方式进行详细阐述。
附图说明
图1原子服务全局依赖关系Petri网模型
图2Web服务组合实例W0及其控制结构Petri网模型
图3原子服务全局依赖Petri网和Web服务组合控制结构Petri网的关系矩阵图4对W0执行演化操作后的原子服务全局依赖Petri网模型
图5对W0执行演化操作后的Web服务组合控制结构Petri网模型
图6更新后的原子服务全局依赖Petri网模型
图7更新后的原子服务全局依赖Petri网模型的关系矩阵
图8反向演化推理后的Web服务组合控制结构Petri网及其关系矩阵
图9输入关联矩阵D-与输出关联矩阵D+
图10正向演化推理后的Web服务组合控制结构Petri网及其关系矩阵
具体实施方式
结合旅游行程计费实例对本发明提出的基于Petri网的Web服务组合演化方法的具体实施方式进行说明,步骤如下。
(1)构建Web服务Petri网模型及其关系矩阵。
(1.1)建立原子Web服务库。
表1旅游信息系统原子Web服务库
表1列出了旅游信息系统原子Web服务库,包括Web服务标识、名称、功能和接口的信息,这些原子服务是后续演化的基础。
(1.2)建立原子服务全局依赖Petri网模型。
根据表1中原子服务的接口间依赖关系,建立原子服务全局依赖Petri网模型,如图1所示。
(1.3)建立Web服务组合控制结构Petri网模型。
设已存在一个Web服务组合W0,其功能是输入两地的地名和个人信息,查找出旅行的费用,W0的Petri网模型和控制结构Petri网模型分别如图2(a)和2(b)所示。
(1.4)分别将全局依赖Petri网模型和W0的控制结构Petri网模型转换为关系矩阵。
根据关系矩阵转换方法,将图1的全局依赖Petri网模型与图2(b)W0的控制结构Petri网模型转换为对应的关系矩阵,分别如图3(a)与图3(b)所示。
(2)Web服务组合演化需求的形式化表示与预处理。
(2.1)将Web服务组合中的复合服务分解为原子服务。
由于W0服务组合中所有Web服务均为原子服务,因此无需执行此步骤。
(2.2)服务组合演化需求的形式化表示。
演化需求描述:由于某些火车车次由于效益太低导致停止运行,导致某些路段只能乘坐长途汽车,且因临近出行高峰导致火车票价的折扣被取消,因此需要对现有的W0服务组合进行演化操作,对于无火车相通的两地以汽车通行代替,使其能通过输入两地的地名和个人信息,分别计算出火车出行与汽车出行的费用,最终能得出出行的费用。
表2需要演化的原子Web服务
表3演化操作集合
根据上述演化需求,需要进行演化的原子服务如表2所示,形式化表示的结果为ER=<{op1,op2,op3,op4,op5,op6,op7,op8,op9,op10,op11,op12,op13},φ>。其中,POS演化操作集合如表3所示。
(2.3)演化操作的冲突检测处理。
在对演化需求形式化描述为ER之后,需要对其进行冲突检测处理,并将潜在的冲突操作进行消解。其中,ER中的POS操作集合通过演化操作冲突检测与消解算法,可以检测到演化操作op11,op12,op13中存在相似冲突,因此将这3个演化操作进行合并得到一个新的演化操op14=<N,add,{Start,End},{TrainNumber,BusNumber}>。
最终处理得到的ER=<{op1,op2,op3,op4,op5,op6,op7,op8,op9,op10,op14},φ>。
(3)基于演化需求对演化点执行演化操作。
(3.1)对演化点执行演化操作。
首先,执行减性操作。对于演化点A、D、F和I,由于op1,op2,op5,op6对其接口进行了减性操作,因此需要将接口对应的连接弧消除。
其次,执行增性操作。对其他演化点执行增性操作,因此将代表相应Web服务的库所添加到原子服务全局依赖Petri网和Web服务组合控制结构Petri网模型中。
最后,演化操作执行完毕,最终得到的原子服务全局依赖Petri网模型和Web服务组合控制结构Petri网模型如图4和图5所示。其中,蓝色的库所代表执行演化操作后的演化点,在Web服务组合控制结构Petri网中O,为起始库所,N为终止库所。
(3.2)更新原子服务全局依赖Petri网模型。
对演化点A、D、K、L、M和N执行服务依赖关系更新算法:
输入:设W={A,D,K,L,M,N,O},集合Pre表示前驱服务集合,Next表示后继服务集合。
输出:更新后的原子服务全局依赖Petri网模型。
通过服务依赖关系更新算法最终得到的原子服务全局依赖Petri网模型如图6所示,转换为关系矩阵如图7所示。
(4)Web服务组合演化推理。
对图5所示的Web服务组合控制结构Petri网执行演化推理。
(4.1)反向演化推理。
执行以下反向推理算法。
输入:初始值i=1,初始库所向量A(0)=(1,0,0,1,0,0,0,0,1,1,1,1,1),初始变迁向量B(0)=(0,0,0,0,0,0,0),原子服务全局依赖Petri网关系矩阵为D,对演化点进行演化操作后Web服务组合库所向量为W。
输出:得到Web服务组合起始库所到所有演化点之间的通路。
该过程执行完后得到的Web服务组合控制结构Petri网及其关系矩阵如图8(a)和图8(b)。
(4.2)正向演化推理。
执行以下正向推理算法。
输入:初始值i=1,初始库所向量A(0)=(1,0,0,1,0,0,0,0,1,1,1,1,1),初始变迁向量B(0)=(0,0,…,0),对演化点进行演化操作后Web服务组合库所向量为W,反向演化过程得到的关系矩阵Dw,原子服务全局依赖Petri网关系矩阵为D,输出关联矩阵为D+,输入关联矩阵为D-。其中,D-与D+分别如图9(a)和图9(b)所示。
输出:得到所有演化点到Web服务组合终止库所之间的通路。
该过程执行完后得到的Web服务组合控制结构Petri网及其关系矩阵如图10(a)和图10(b),图10即为在计算机辅助下得到的Web服务组合演化后的结果。
Claims (1)
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,NOS>,其中,POS表示正向操作集合(Positive Operation Set),代表演化需求希望对相应原子服务做出变化的演化操作集合;NOS(Negative Operation Set)表示反向操作集合,代表演化过程中需要避免实现的演化操作集合;POS与NOS都由一系列演化操作集合{op1,op2,…,opn}组成;
根据演化操作对原子服务接口的影响,可以将演化的基本操作分为三大类:增性操作、减性操作、内部操作;其基本操作可以表示为一个四元组OPT=<WS,OP,I,O>;其中,WS是指演化点;OP是指基本操作类型;I是指演化点需要变化的输入集合;O是指演化点需要变化的输出集合;
(2.3)演化操作的冲突检测处理;
在定义了服务组合演化需求并得到其相应的演化操作集合之后,需要对其进行冲突检测处理,包括互逆、相似、覆盖、触发四种冲突关系,一旦检测到冲突,需要进一步执行消解操作;以正向操作集合POS为例,给出以下演化操作冲突检测与消解算法:
输入:设存在于POS中的任意两个演化操作EOx=<WSi,OPx,Ix,Ox>与EOy=<WSj,OPy,Iy,Oy>,其中演化操作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服务演化结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510563353.7A CN105095602B (zh) | 2015-09-08 | 2015-09-08 | 一种基于Petri网的Web服务组合演化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510563353.7A CN105095602B (zh) | 2015-09-08 | 2015-09-08 | 一种基于Petri网的Web服务组合演化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105095602A CN105095602A (zh) | 2015-11-25 |
CN105095602B true CN105095602B (zh) | 2018-11-02 |
Family
ID=54576027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510563353.7A Active CN105095602B (zh) | 2015-09-08 | 2015-09-08 | 一种基于Petri网的Web服务组合演化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105095602B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105759615B (zh) * | 2016-04-06 | 2018-09-07 | 浙江工业大学 | 一种基于可协作Petri网的可容错柔性小件装配控制方法 |
CN107479893B (zh) * | 2017-08-21 | 2020-12-22 | 淮阴师范学院 | 一种适应需求变更的形式化Petri网模型自动演化方法 |
CN107678964B (zh) * | 2017-09-29 | 2020-12-29 | 云南大学 | 一种构件动态演化内部一致性保证方法 |
CN108519769A (zh) * | 2018-04-09 | 2018-09-11 | 电子科技大学 | 一种基于规则的飞控系统故障诊断方法 |
CN109005049B (zh) * | 2018-05-25 | 2021-10-15 | 浙江工业大学 | 一种互联网环境下基于Bigraph一致性算法的服务组合方法 |
CN109358582B (zh) * | 2018-10-22 | 2020-02-21 | 西安科技大学 | 基于大数据的大采高综采工作面多设备协同作业控制方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345541A (zh) * | 2013-06-04 | 2013-10-09 | 华南理工大学 | 一种基于扩展Petri网模型的语义Web服务组合方法 |
-
2015
- 2015-09-08 CN CN201510563353.7A patent/CN105095602B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103345541A (zh) * | 2013-06-04 | 2013-10-09 | 华南理工大学 | 一种基于扩展Petri网模型的语义Web服务组合方法 |
Non-Patent Citations (3)
Title |
---|
一种基于有色Petri网的语义Web服务组合验证机制;罗楠等;《计算机集成制造系统》;20071130;第13卷(第11期);第2203-2210页 * |
一种基于逻辑Petri网的web服务簇组合方法;吴洪越等;《计算机学报》;20150131;第38卷(第1期);第204-217页 * |
基于逻辑Petri网的Web服务簇模型;邓式阳等;《计算机应用》;20120801;第32卷(第8期);第2328-2237页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105095602A (zh) | 2015-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105095602B (zh) | 一种基于Petri网的Web服务组合演化方法 | |
Zhang et al. | Long short-term memory network based on neighborhood gates for processing complex causality in wind speed prediction | |
Dai et al. | Preview, attend and review: Schema-aware curriculum learning for multi-domain dialog state tracking | |
CN113641819A (zh) | 基于多任务稀疏共享学习的论辩挖掘系统及方法 | |
Liu et al. | A concurrent fault diagnosis method of transformer based on graph convolutional network and knowledge graph | |
CN113780002A (zh) | 基于图表示学习和深度强化学习的知识推理方法及装置 | |
CN114547611A (zh) | 一种基于多模态特征的智能合约庞氏骗局检测方法及系统 | |
CN107103363A (zh) | 一种基于lda的软件故障专家系统的构建方法 | |
Liu et al. | Lang2ltl: Translating natural language commands to temporal specification with large language models | |
CN117851610A (zh) | 基于预训练大语言模型的知识图谱构建方法、装置 | |
Li et al. | Stg-mamba: Spatial-temporal graph learning via selective state space model | |
CN117275609A (zh) | 一种基于变分自编码器和Transformer模型的分子设计方法 | |
CN109005049B (zh) | 一种互联网环境下基于Bigraph一致性算法的服务组合方法 | |
Pan et al. | Conv-coa: Improving open-domain question answering in large language models via conversational chain-of-action | |
CN101894325A (zh) | 一种基于工作流网的语义web服务行为匹配方法 | |
Li | Findkg: Dynamic knowledge graph with large language models for global finance | |
Tarasyuk et al. | Performance analysis of concurrent systems in algebra dtsiPBC | |
CN117235276A (zh) | 基于gpt模型统一多模态数据结构化处理的数据管理系统 | |
CN115994668A (zh) | 智慧社区资源管理系统 | |
Alievich | Using artificial neural networks in assessing the cost of construction projects | |
Falcou et al. | Formal semantics applied to the implementation of a skeleton-based parallel programming library | |
CN112541059B (zh) | 一种应用在税务问答系统的多轮智能问答交互方法 | |
Zhang et al. | Hierarchical network-based safety assessment decision support system for thermal power plants | |
Ma et al. | Contemporary Concepts, Descriptions and Language of Systems Using SBC Process Algebra | |
CN110489430A (zh) | 一种基于数据块签名和校验的溯源方法及其系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |