2008年5月19日星期一

SOA_020:BPMN介绍 (摘录+整理)

【BPMI】:Business Process Management Initiative 业务流程管理促进会
【OMG】:Object Management Group 对象管理组
【BPMN】:Business Process Modeling Notation 业务流程建模符号
BPMN提供了一套标准的图形符号来描述业务流程,即业务流程建模语言。
所有人员(业务分析人员、业务开发人员、业务管理人员)都使用BPMN来描述业务流程,最大程度地消除了理解上可能存在的歧义,保证业务流程的实现完全忠于设计。BPMN最初由BPMI制定,现在由OMG管理,目前版本是1.1。更多信息请访问:
http://www.bpmn.org/

以往的业务流程模型和真正的系统设计实现往往是脱节的,而使用BPMN创建的模型可以转换成XPDL或BPEL,从而保证了二者的完美统一。

BPMN标准的图形符号如下:
1. 四种基本元素
(1)Flow Objects:包括Event,Activity,Gateway。
(2)Connecting Objects:包括Sequence Flow,Message Flow,Association。
(3)Swimlanes:包括Pool,Lane。
(4)Artifacts:包括Data Objects,Group,Annotation。

2. 流对象 (Flow Objects)
流对象是核心元素。

2.1 事件 (Event)
业务流程中发生的事件。用圆圈表示。事件会影响流程的状态。
一个事件一般有一个触发器或一个结果。
事件有三种类型:开始、中间、终止。

2.2. 活动 (Activity)
业务流程中的某个特定的业务,如登录,注销。用圆角矩形表示。
活动有两种类型:Task 任务,Sub-process 子流程。

2.3 网关 (Gateway )
业务流程的分支与合并。用菱形表示。
3. 连接对象 (Connecting Objects)连接对象将流对象连接起来以组成业务流程。
3.1 顺序流 (Sequence Flow)用实线实心箭头表示,代表流程中将被执行的活动的执行顺序。
3.2. 消息流 (Message Flow)用虚线空心箭头表示,用来表示2个分开的流程参与者(业务实体或业务角色)之间发送或者接收到的消息流。
3.3 结合关系 (Association)用点状虚线表示,用于显示活动的输入输出。
4. 泳道 (Swimlanes)
用以区分不同的功能和职责。

4.1 Pool
代表流程中的一个参与者。主要用于2个独立的实体或者参与者之间的物理划分,通常在B2B的交互流程中出现。

各个Pool中的活动通常是有自身的流程的。因此,顺序流通常不会越过多个Pool的,而消息流是可以的,如下图就是一个带Pool的业务流程图。
4.2 Lane
Pool的子划分,用来对活动的组织和分类。

Lane常用来将活动按照角色划分,流程可以在一个Pool中跨Lane流转,但是在同一个Pool中消息流通常不跨Lane流转。


5. 描述对象 (Artifacts)
用来描述流程中的对象。


5.1 Data Object
Data Objects are用于描述活动所需或者产生的数据。他们用连线与活动连接起来。

5.2 Group
用于描述和解释目的,不会影响流程的流转。

5.3 Annotation
提供一些附加性的文本信息给流程图的阅读者。




问题1:如何把BPMN能否转化成XPDL?
//TODO


问题2:如何把BPMN能否转化成BPEL?
参见BPMN规范中的
Mapping BPMN to BPEL Example

参考文献
1.
http://en.wikipedia.org/wiki/BPMN
2. 《BPMN规范简介》作者:
http://gocom.primeton.com/blog11165_19935.htm
3. 《BPMN 简介》作者:
http://grid-qian.javaeye.com/blog/148620

没有评论: