4.4.2.1 BPEL
BPEL是一种用于自动化商业流程的形式化规约语言,是专为整合Web服务而定制的一项规范标准[129,177,178]。BPEL的作用是将一组现有的Web服务组合起来,从而定义一个新的Web服务。BPEL给定了一组形式化规约,用于定义商业流程行为和商业交互协议。BPEL语言的基本单位是活动,且BPEL的流程主体由一系列的基本活动和结构活动组成。
BPEL中的基本活动是BPEL商业流程与外界进行交互最简单的形式,它们是与服务进行交互、操作、传输数据或者处理异常的无序的个别步骤,活动内部不会嵌套其他活动。在BPEL中主要包括如下几类基本活动。
(1)Receive:和外界进行交互的基本活动之一,用于等待匹配消息的到来。
(2)Reply:用于对收到的消息发送一个回复消息,即发送消息给合作者来应答通过Receive活动所接收到的消息。
(3)Invoke:和外界进行交互的基本活动之一,用于在一个合作者提供的端口上,调用单向的(One-Way)或者请求/响应(Request-Response)操作。
(4)Assign:用于传输数据的基本活动,把数据从一处复制到另一处。
(5)Wait:暂停流程执行,使流程等待一段时间或到达某个截止期限后再执行。
(6)Throw:表明发生了某个故障,用于发出故障信号。
(7)Empty:不执行任何的动作。
BPEL中的结构活动规定了一组活动发生的顺序,描述了商业流程是如何通过执行组合后的基本活动而被创建的。这些结构活动表达了商业流程实例间的控制形式、数据流程、故障和外部事件的处理以及消息交换的协调。BPEL中主要包括如下几类结构活动。
(1)Sequence:定义一组按顺序执行的活动。
(2)Switch:根据条件选择一个相应的分支活动执行。
(3)While:循环执行一组特定的活动,直至终止循环条件被满足。
(4)Flow:定义一组并发或同步执行的活动。
(5)Pick:定义一种基于外部事件的不确定选择,依据某个事件的发生选取相关活动执行。
4.4.2.2 Petri网
为了便于诊断推理,在诊断系统中Web服务行为往往需要用一种形式化的方法来表示。然而,服务行为的转换比较复杂,往往无法用常规数学方法来描述,因此,研究人员一般采用能够描述行为状态和转移的各种形式化表示方法来对服务系统建模,如Petri网、进程代数和自动机。这里我们使用Petri网来描述服务行为,更具体地说是BPEL进程,其中主要有以下几个原因:①为了表示组合服务的执行流程,Petri网中描述过程的形式化语义是必不可少的;②库所和变迁之间的因果关系有助于描述和分析活动及其输入、输出之间的关系;③Petri网特别适用于描述系统的并发、异步和分布式特征;④图形化的表示形式有助于对整个模型的理解。
Petri网是一个构建并行分布式系统的基本建模工具,它起源于1962年Carl Adam Petri的博士论文,在论文中Petri网是用于描述化学过程的。Petri网的基本思想是在带有状态变迁的系统中描述系统状态的改变。Petri网是一种对于描述和研究信息处理系统非常有前途的工具,这些系统一般具有并发、异步、分布、并行、不确定性和(或)随机等特性[179,180]。(www.xing528.com)
Petri网包含库所和变迁两种元素,这两种元素通过有向弧连接。通常,变迁表示行为,而库所表示在一个行为被执行前需要满足的状态或条件。库所还可能包含标码(Token),通过所执行的行为,这些Token可以从一个库所移动到其他库所。
定义4.10 一个Petri网是一个三元组N=(P,T,F),则
(1)P是库所的有限集;
(2)T是变迁的有限集;
(3)F⊆(P×T)∪(T×P)是变迁与库所的流关系;
(4)P∩T=∅;
(5)P∪T≠∅;
(6)dom(F)∪cod(F)=S∪T;
(7)dom(F)={x|∃y:(x,y)∈F};
(8)cod(F)={y|∃x:(x,y)∈F}。
定义4.11 设x是Petri网N=(P,T,F)中的任意元素,则:
(1)若(p,t)∈F,那么库所p是变迁t的一个输入库所;
(2)若(t,p)∈F,那么库所p是变迁t的一个输出库所;
(3)令x,y∈P∪T,那么·y={x|(x,y)∈F}称为y的前向集,x·={y|(x,y)∈F}称为x的后向集;
(4)由前向集和后向集可引出x·={x}。
图4.4给出了一个Petri网示例,图中的3个圆圈表示库所P={p1,p2,p3},长方形表示变迁T={t},流关系F={(p1,t),(p2,t),(t,p3)},变迁t的前向集·t={p1,p2},后向集t·={p3},库所p2中的黑点表示Token。
图4.4 一个Petri网示例
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。