BPMN2.0解析

一、BPMN简介

BPMN(Business Process Model and Notation),业务流程建模和标注。 Notation是BPMN的核心,即使用图形来表达业务流程。另外,BPMN是由OMG组织维护的一个公开的标准,与任何特定商业组织或工具是没有关系,无需为此付费。
BPMN和传统的流程图的区别如下:
MN是一个正式的规范,各种图标、元件是有准确的含义和使用规范。
BPMN可以描述基于事件触发的行为,比如响应超时、外部系统无法提供服务等。
BPMN 标准发展版本历史如下。BPMN2.0在1.x基础上新增了元模型、存储、交互、执行。

BPMN1.x被大多数的建模工具和BPMS厂商所支持。但是, BPMN1.x只是一些建模符号,不支持元模型,不支持存储和交换,也不支持执行。那么围绕着BPMN1.x的存储、交换和执行,必然会产生新的竞争,所以主角换成了XPDL、BPEL和BPDM。
XPDL作为WfMC(工作流管理联盟)提出的流程定义语言规范,本身就是一个元模型,可以存储,并且具备执行语义。如今有超过80个的不同公司的产品使用XPDL来交换流程定义,同时也有一些厂商在自己提供的BPMN工具中使用了XPDL作为交换和存储格式。
为了抗衡XPDL,OASIS组织(包括几个大的平台公司,Microsoft、 BEA、 IBM、 SAP 、Sun、Oracle)开发了BPEL规范。但BPMN到BPEL的转换存在着先天上的缺陷,原因是BPMN是基于图的,而BPEL是基于块的。这个缺陷导致有些BPMN建模的流程无法映射到BPEL,两者的双向工程更是存在问题。这个缺陷成为人们反复诟病的对象。许多支持BPEL的产品为了解决这一问题,不得不在用户建模时做出种种限制,让用户绘制不出无法转换的模型。
而BPDM(业务流程定义元模型)则是OMG组织自己提出来解决BPMN存储和交换问题的规范。于2007年7月形成初稿,2008年7月被OMG最终采用。BPDM是一个标准的概念定义,用来表达业务流程模型。元模型定义了用来交换的概念,关系和场景,可以使得不同的建模工具所建模出来的流程模型进行交换。BPDM超越了BPMN和BPEL所定义的业务流程建模的要素,它定义了编排和编制。
三者的竞争关系似乎还将继续,但BPMN2.0出现了。BPMN2.0相比BPMN1.x,最重要的变化在于其定义了流程的元模型和执行语义,即它自己解决了存储、交换和执行的问题,BPMN由单纯的业务建模重新回归了它的本源,即作为一个对业务人员友好的标准流程执行语言的图形化前端。BPMN2.0一出手,竞争就结束了,XPDL、BPEL和BPDM各自准备回家钓鱼。看起来胜利者似乎是BPMN,但看看BPMN2.0的领导者,就会发现最后的胜利者还是IBM,Oracle和SAP这些大厂商们,他们提交的草案明确要赋予BPMN2.0以执行语义,这迫使BPDM团队撤回了其提交,并将他们的提议与BPDM团队想法合并,这就是BPMN2.0最后内容的由来。

BPMN官网: http://www.bpmn.org

二、BPMN示例

使用一个简单的订单处理的业务流程为例,简要的说明BPMN的作用。
基本形状:

  • 网关(gateway)
    网关用来控制业务流程走向。分为如下四个之类,每个类型网关都需要设置gateway direction属性。下面的值可以使用:
    converging:网关必须拥有多个进入顺序流, 但是只能有一个外出顺序流。
    diverging:网关必须拥有一个进入顺序流, 和多个外出顺序流。

  • 唯一网关(Exclusive Gateway)
    用一个内部包含X的菱形表示。

    表示只有一个外向顺序流被执行。在执行时,必须确保至少一个外向顺序流上面的条件为true。

    Converging(会聚)
    每个入口顺序流执行完成之后,都会触发一次唯一网关后面的顺序流。

    并行网关(Parallel Gateway)