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

本文主要是介绍业务流程建模标注(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 建模


 

这篇关于业务流程建模标注(Business Process Modeling Notation,BPMN)详细介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/480014

相关文章

Java图片压缩三种高效压缩方案详细解析

《Java图片压缩三种高效压缩方案详细解析》图片压缩通常涉及减少图片的尺寸缩放、调整图片的质量(针对JPEG、PNG等)、使用特定的算法来减少图片的数据量等,:本文主要介绍Java图片压缩三种高效... 目录一、基于OpenCV的智能尺寸压缩技术亮点:适用场景:二、JPEG质量参数压缩关键技术:压缩效果对比

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

Python基础文件操作方法超详细讲解(详解版)

《Python基础文件操作方法超详细讲解(详解版)》文件就是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位,文件的核心操作就是读和写,:本文主要介绍Python基础文件操作方法超详细讲解的相... 目录一、文件操作1. 文件打开与关闭1.1 打开文件1.2 关闭文件2. 访问模式及说明二、文件读写1.

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

Oracle数据库常见字段类型大全以及超详细解析

《Oracle数据库常见字段类型大全以及超详细解析》在Oracle数据库中查询特定表的字段个数通常需要使用SQL语句来完成,:本文主要介绍Oracle数据库常见字段类型大全以及超详细解析,文中通过... 目录前言一、字符类型(Character)1、CHAR:定长字符数据类型2、VARCHAR2:变长字符数

Win11安装PostgreSQL数据库的两种方式详细步骤

《Win11安装PostgreSQL数据库的两种方式详细步骤》PostgreSQL是备受业界青睐的关系型数据库,尤其是在地理空间和移动领域,:本文主要介绍Win11安装PostgreSQL数据库的... 目录一、exe文件安装 (推荐)下载安装包1. 选择操作系统2. 跳转到EDB(PostgreSQL 的

Python3.6连接MySQL的详细步骤

《Python3.6连接MySQL的详细步骤》在现代Web开发和数据处理中,Python与数据库的交互是必不可少的一部分,MySQL作为最流行的开源关系型数据库管理系统之一,与Python的结合可以实... 目录环境准备安装python 3.6安装mysql安装pymysql库连接到MySQL建立连接执行S

将Mybatis升级为Mybatis-Plus的详细过程

《将Mybatis升级为Mybatis-Plus的详细过程》本文详细介绍了在若依管理系统(v3.8.8)中将MyBatis升级为MyBatis-Plus的过程,旨在提升开发效率,通过本文,开发者可实现... 目录说明流程增加依赖修改配置文件注释掉MyBATisConfig里面的Bean代码生成使用IDEA生

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1