业务流程建模标注(Business Process Modeling Notation,BPMN)详细介绍

1、基本信息

摘要:该文章的目的是对BPMN(Business Process Modeling Notation)的概要描述和介绍。描述基本的BPMN符号,包括这些图元如何组合成一个业务流程图(Business Process Diagram)

作者:张玥

2、BPMN简介

2.1概述

  该文章的目的是对BPMN(Business Process Modeling Notation)的概要描述和介绍。

  描述基本的BPMN符号,包括这些图元如何组合成一个业务流程图(Business Process Diagram);讨论BPMN的各种的用途,包括以何种精度来影响一个流程图中的模型;(Also discussed will be the different uses of BPMN, including how levels of precision affect what a modeler will include in a diagram.);BPMN作为一个标准的价值,以及BPMN未来发展的远景

2.2BPMN是什么

  由BPMI(The Business Process Management Initiative)开发了一套标准叫业务流程建模符号(BPMN)。在 BPMI Notation Working Group超过2年的努力,于2004年5月对外发布了BPMN 1.0 规范。BPMN的主要目标是提供一些被所有业务用户容易理解的符号,从创建流程轮廓的业务分析到这些流程的实现,直到最终用户的管理监控。BPMN也支持提供一个内部的模型可以生成可执行的BPEL4WS。因此BPMN的出现,弥补了从业务流程设计到流程开发的间隙。

  BPMN定义了一个业务流程图(Business Process Diagram),该业务流程图基于一个流程图(flowcharting),该流程图被设计用于创建业务流程操作的图形化模型。而一个业务流程模型(Business Process Model),指一个由的图形对象(graphical objects)组成的网状图,图形对象包括活动(acticities)和用于定义这些活动执行顺序的流程控制器(flow controls)

2.3BPMN基础

  业务流程图由一组图形元素构成。这些元素让我们很容易开发一个简单的,为大多数业务分析人员更熟悉的流程图。

  对于建模者来说,这些图形都是易于区分和识别的。比如活动是长方形,路由是菱形。

  需要强调的是,开发BPMN的一个动机就是创建一套简单的机制来创建业务流程模式,与此同时,还要能够应付业务流程内在的复杂性。

  寻找一个可以处理这些相互冲突的需求的途径,是将这些图形符号组织并分类。

  BPMN四种基本元素是:

• Flow Objects
• Connecting Objects
• Swimlanes
• Artifacts(人造物品)

2.4流对象(Flow Objects)

  流对象是BPD的核心元素。

  有三个流对象 Event, Activity, Gateway

Event, 事件
用一个圆圈代表事件(Event),它指的是在业务流程的运行过程中发生的事情。这些事件影响流程的流转,事件通常有一个cause (trigger)或者impact (result)。
有三种类型的事件:Start, Intermediate, and End

Activity,活动
用圆角矩形表示一个活动, is a generic term for work that company performs.一个活动可以由多个活动组成,活动的类型包括:Task 和 Sub-Process

Gateway,网关
菱形代表网关,用来控制流程的分支和聚合。

2.5连接对象Connecting Objects

  在一个图中,连接对象将流程对象连接起来组成业务流程的结构。三种连接对象:

Sequence Flow 序列流
用实线实心箭头表示,代表流程中将被执行的活动的执行顺序。

Message Flow 消息流
用虚线空心箭头表示,用来表示2个分开的流程参与者(业务实体或业务角色)之间发送或者接收到的消息流。

Association 结合关系
点状虚线表示,用于显示活动的输入输出。

2.6甬道Swimlanes

  用以区分不同的功能和职责。

  BPMN有2中类型的甬道:

Pool
代表流程中的一个参与者。它也可以用作一个图形容器来与其他的pool相分隔。通常在交互流程中出现(B2B)。

  Pool主要用于2个独立的实体或者参与者之间的物理划分。

  各个pool中的活动通常是有自身的流程的。因此,顺序流(the Sequence Flow)通常不会越过多个pool的,而消息流是可以的,如下图就是一个带pool的业务流程图

Lane
Pool的子划分,可以垂直或者水平的,用来对活动的组织和分类。

  Lane更加接近我们传统的甬道的概念。

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

  一个简单业务流程的例子

 

详细的部分业务流程图

2.7描述对象Artifacts

  为了扩展基本符号,提供描述额外的上下文,BPMN使用了描述对象artifact

BPMN

Data Object
Data Objects are用于描述活动所需或者产生的数据。他们用连线与活动连接起来。
Group
用于描述和解释目的,不会影响流程的流转。
Annotation
提供一些附加性的文本信息给流程图的阅读者。

                            

一个使用artifacts的例子:
 

2.8BPMN分类

  业务流程模型(Business process modeling )提供不同的模型,以面向不同的读者,使用BPD可以有2个基本的模型

• Collaborative (Public) B2B Processes 协作流程模型
• Internal (Private) Business Processes 独立式流程模型

Collaborative B2B Processes 协作流程模型
  该模型描述了2个以上的业务实体之间的交互,不是从某一个特殊的参与者的角度,而是从一个全局的角度描述了这些流程的交互。描述的方式是使用活动的执行顺序和参与者之间的消息的流转。

2.9BPMN 的用途(通过 BPD 创建的业务流程种类)

<1>Collaborative(Public) B2B Processes
用 Pool 的方式描述两个或多个业务实体(流程)之间的互动(参与者之间的互动);主要描述业务实体之间可视(Public)的活动之间的互动
 
<2>Internal(Private) Business Processes
主要描述独立的业务实体(流程),也会描述出与外部参与者的互动关系,但主要描述业务实体之间不可见(Private,独立业务实体内部)的活动

(例子:泳道内的业务实体为 Internal,泳道之间的业务实体为 Collaborative)
 
 
2.10BPMN 与 BPEL4WS 的转换

(模型)
 
 
(例子)
 

使用BPMN建模的价值

  众多的成员保障了BPMN作为一个业务流程建模语言的标准。BPMN的发展也是减少现有过多的流程建模工具和语言的局面。同时,BPMI组织借鉴了很多已有建模语言的技术和经验,例如UML的活动图,UML EDOC的业务流程图,IDEF等等。推动BPMN发展的另一个因素是,以往的业务流程模型和系统设计开发从技术上被分开,这样就要手动的将业务流程模型转化为运行模型。这样会使流程所有者很容易出错,而且很难理解流程的升级和执行。

将一个BPMN图映射到BPEL4WF

  为了减少规范之间的不兼容性,BPMN的一个关键的目标就是在面向业务流程建模语言和实现该流程的编成语言之间建立一个桥梁。由于拥有丰富的对象属性,BPMN的图形化对象可以映射到BPEL4WS v1.1。

  下图标记了一个业务流程图的一部分是如何转化为BPEL4WS的。

 

BPMN的将来

  虽然BPMN规范当前版本是1.0,很多公司已经开始或即将开始支持该规范了。
大量应用经验的积累以及用户的反馈,提供了很多有价值的东西,尤其包括映射到BPEL4WS的部分。短期内不会有大版本发布,1.1版本将在1年之后发布。该版本会使BPMN更能满足有着更多上下文的高层业务模型,比如包括,业务规则业务策略的模型。BPMI是个非正式组织,它仍在不断发展,并且致力于开发BPM系统的核心规范。
BPMI和OMG组织正在讨论一些有意思的东西,如UML中的活动图(Activity Diagrams)可能会与BPMN的业务流程图合并。

补充概念

<1>Normal Flow/Normal Sequence Flow
开始于 Start Event,结束于 End Event,通过活动流转,不包括异常流程和回退补偿流程
 
<2>Link Event
可以用于 Off-Page Connectors(连接不同 BPMN 页面);作为 Go-To 对象
 
<3>Process Level
Sequence Flow 不能跨越子流程边界;Message Flow 和 Associations 可以跨越子流程边界
 
<4>Data Flow
Sequence Flow 和 Data Flow 可以合并,把 Data Flow 内的 Data Object 放置在 Sequence Flow 上即可
 
<5>Exception Handling
附属在活动上的 Intermediate Event 可以触发一个 Timer、Errors 或 Message作为一个异常 Trigger
 
<6>Compensation and Transactions
事务是有两个边界的活动,被事务协议所支持(如 WS-Transaction);异常处理不包括回退补偿
 
<7>Looping
   (1)活动:Do-While、While-Do 和 Multiple Instance
   (2)Sequence Flow:通过 Default Flow 循环执行
 
<8>Timer
   (1)延迟流程运行(活动之间用 Timer)
   (2)调用异常处理(活动边界用 Timer 作为条件触发其他流程)
 
<9>Ad-Hoc Process
流程内没有预先定义好的 Sequence Flow
 
Orchestration 和 Choreography
<1>Orchestration:Workflow、internal processes、private processes(定义流程并关联该流程到一个特定的机构,所以包含在一个 Pool 内)
<2>Choreography:Collaboration、global processes、B2B processes
   (1)描述两个或多个业务实体之间的互动,即定义不同 Pool 之间的互动
   (2)描述全局活动的互动序列
 
* BPMN v2 会更新如何对 Choreography 建模


另:本文译自< Introduction to BPMN >,原文见附件


附件:


rar Introduction to BPMN.rar 大小: 337.13 KB; 下载次数: 65
12月3日 8:50:25


posted on 2007-12-15 20:07  巍巍边疆  阅读(1938)  评论(1编辑  收藏  举报