BPMN到BPEL模型转换的研究

时间:2022-07-30 02:07:55

BPMN到BPEL模型转换的研究

【摘 要】业务流程执行语言BPEL的抽象级别并不适合业务流程分析与设计,相反,BPMN提供了更高级别的抽象模型。为了让编写业务流程既满足业务分析与设计人员的直观和可视化要求,又要使得设计的业务流程可以直接执行,那么从BPMN模型到BPEL的转换就变得很有必要了。本文首先对BPMN与BPEL的相关技术进行了简单的介绍,然后对BPMN中的基础元素进行了分类,并分别提出了各个类型中的元素到BPEL元素的映射。

【关键词】业务流程建模符号;业务流程执行语言;模型转换

1 前言

在现代的业务流程管理(BPM)中的一个很重要的特点是能够将各种Web服务按照既定的规则编排成可执行的业务流程,在这个过程中,业务流程规范是整个流程的基础和核心内容,目前有很多规范标准,主要分为两种,一种是基于有向图的,这个适合业务流程设计人员使用,比如BPMN;另一种是基于块结构语言的,这适合流程引擎解释执行,比如WS-BPEL。建立BPEL业务流程模型的最终目的是可以在引擎中执行,然而,BPEL的抽象级别并不适合业务流程分析与设计,相反,BPMN提供了更容易接受的更高级别的抽象模型。因此,为了让编写业务流程既满足业务分析与设计人员的直观和可视化要求,又要使得设计的业务流程可以直接执行,那么从BPMN模型到BPEL的转换就变得很有必要了。然而,它们之间的转换存在着诸多的问题,并且在转换过程中也会存在很多的限制,因此,本文只是对BPMN的基础元素和流程模型到BPEL的转换进行研究。

1.1 BPMN与BPEL介绍

以下对BPMN和BPEL两种建模语言进行简单的介绍,并分别给出基础的建模元素。

1.2 BPMN

业务流程建模与标注(BPMN, Business Process Modeling Notation)是对象管理组织(OMG, Object Management Group)维护的关于业务流程建模的行业性标准。BPMN的主要目标是通过提供一套既符合业务分析与设计人员直观和可视化需求,又能表现复杂流程语义的图形标注和建模方式,同时也为技术开发人员从事业务流程管理提供支持。BPMN基本上涵盖了业务流程建模以及工作流建模的所有的元素和应用需要,因此,它包含了许多不同的图形符号,总的来说可以将这些图形分为:流对象(Flow Objects)、任务(Task)、连接对象(Connecting Objects)、网关(Gateway)、容器(Container)等。

1.3 BPEL

BPEL是基于web服务的业务流程执行语言,是专门为整合Web Service而制定的一项标准规范。

BPEL基元活动是与外界进行交互的最简单的形式,与服务进行交互、操作、传输数据或者处理异常等,BPEL的基元活动包括如下:

流程用于和外界进行交互的基元活动:receive、invoke、reply;

流程用于传输数据的基元活动:assign;

通过throw活动发出故障信号;

通过terminate活动放弃所有流程实例的执行;

通过wait活动使流程等待一段时间或到达某个截止期限后再执行;

通过empty活动不执行任何的动作;

通过compensate活动做一些补偿动作,通常需要和scope联合使用;

结构活动主要是用来规定基元活动发生的顺序,BPEL4WS的结构化的活动包括如下:

活动之间的顺序控制由 sequence、switch 和 while来实现 ;

活动间的并发和同步由 flow 来实现;

基于外部事件的不确定的选择由 pick 来实现。

2 转换方法

目前,存在许多的BPMN到BPEL的映射方法,比如在文献中,Gao Yi提出了一种将GOTO结构消除的思路来解决BPMN到BPEL映射的问题,他认为BPMN是一种类似具有GoTo结构的程序语言,而BPEL则是不包含GoTo结构的程序语言;文献提出了一套完整的解决BPMN到BPEL映射问题的方案,在这个方案中,定义了一个BPD的核心子集,然后将BPD的子集转换成块结构,并用“component”来表示转换后的BPD的子集。

不同于以上提出的映射方法,本文认为BPMN是面向图形结构的而BPEL却是块结构的,并且BPMN流程的方向是可以任意的,而BPEL流程方向是固定的。同时,由于BPMN与BPEL的基本结构类似,并且在元素上都有相关的映射,因此本文提出的映射方式就是BPMN的元素一一对应的映射成BPEL元素,暂且不考虑更加复杂的流程关系。

BPMN模型元素主要分成两个类型,一个是用于流程控制的结构元素,另一个是其他的节点元素,其中子流程也算是节点元素,只不过是一种复合型节点。

2.1基本结构的映射

BPMN流程控制结构主要分为顺序、并行、选择和循环。这些对应BPEL中的,,, 元素。以下通过一些简单的例子来说明两者之间的转换。

(1)顺序结构(Sequence)

(2)并行结构(flow)

(3)选择结构(switch)

(4)循环结构(while)

以上四种流程结构是最常用的,除此之外还有其他的一些元素可以加入到这些结构中,并且这些结构可以混合着使用,这样可以构建功能更加强大的业务流程模型。

2.2 节点元素映射

下面给出了一些常见的BPMN节点元素以及子流程的映射过程

(1)流程开始事件:BPEL的”pick”或者是”receive”活动对象

(2)流程的终止事件:”terminate”元素

(3)收到消息并触发任务活动:

(4)定时任务或者是周期性触发任务:映射为”receive”,并且需要使用”wait”元素来表示等待的时间,然后再使用”invoke”元素向”receive”发送消息。

(5)错误产生:”throw”元素

(6)嵌入式子流程:BPEL中对立的流程。

(7)独立型的子流程:BPEL中对立的流程,下级对象本身会被映射成”invoke”元素,用于调用这个流程

除了以上给出的BPMN向BPEL映射的元素节点以外,还有其他可映射的元素。特别是在BPMN2.0中包含了更加丰富的元素,而能够转换或者转换之后有意义的元素只是占了BPMN元素集的一部分。

3 总结与展望

本文首先介绍了BPMN与BPEL这两种业务流程建模语言,并给出两者之间的不同之处,以及在实际建模过程中的互补作用,从而提出进行转换的必要性。然后在转换方法方面,将BPMN元素分成了流程控制元素和节点元素,并分别给出了这两类元素的映射方法。本文中的方法主要是针对基本元素和流程进行的,在今后的工作中,将会对更加复杂的业务过程提出转换方法,并以此实现相关的转换工具。

参考文献:

[1] 詹林,曹海燕.全程优化平台中BPMN与BPEL相互转换的研究[J]. 电脑与信息. 2008(06):65-66

[2] 魏明,夏永霖,魏峻. BPMN到BPEL2.0的模型转换方法[J]. 计算机应用研究. 2008(11): 89-90

[3] 李艳华,邱锦伦,宋炯. 基于BPMN辅助构建Web Services的研究[J]. 计算机工程. 2006(14): 125

[4] YiGao BPMN-BPEL Transformation and Round Trip Engineering http:///pdf/BPMN_BPEL_Mapping.pdf 2006.04

[5] Chun Ouyang, Marlon Dumas, Wil M.P.van der Aslst, Arthur H.M.ter Hofstede From Business Process Models to Process-oriented Software Systems:The BPMN to BPEL Way* BPM Center Report BPM-06-27, , 2006.06

上一篇:火电厂节能技术监督报表系统的设计与实现 下一篇:一种电磁感应摆的设计