BPMN介绍

BPMN百科内容来自于: 互动百科


 概述  
      BPMN,即Business Process Modeling Notation,业务流程建模符号。是用一种类似于流程图的图表形式来描述业务流程的一种方法。BPMN最初是由业务流程管理计划组织(Business Process Management Initiative BPMI)制定和发展起来的,目前由对象管理组织(Object Management Group OMG)来维护管理。BPMN从2002开始制定,到2004年5月发布了第一个版本。目前版本是1.1,好像2.0正在制定中。

      在BPMN出现之前,关于流程设计的符号并没有统一的标准,各个大的流程模型设计公司都有自己流程定义符号。这样在理解和沟通上就给大家造成了不便。所以BPMI组织就推出了BPMN这个标准,来统一业务流程描述符号。BPMN为大家提供了一种标准的、易读的定义和分析公开的和隐私的业务流程的方法。同时,BPMN也为管理人员、分析人员和程序开发人员提供了一种简单易懂的标注符号标准。从而消除公司或企业内部各个部门以及公司与公司之间的沟通障碍,为大家建立起一道沟通的桥梁。同时,业务流程建模符号还能够通过对各个业务流程的运行而设计的XML(扩展标记语言)文档加上了一种普通的符号使得该文档更加的直观易读。
      BPMN是一种图形化的建模工具,它的使用者主要是不懂IT技术的业务人员,有点像我们使用的UML。XPDL是一种基于XML的过程定义语言,主要是为了不同系统间有一个统一的流程定义语言,它像接口。而BPEL是业务流程执行语言,它是给流程引擎去直接执行的。它更像一种编程语言,让机器去运行。三者之间具体的区别,有时间我会另写一篇文章的。总的说来,BPMN是建模的,XPDL,BPEL是模型的实现。BPMN比后两者有更高的抽象。

      基本元素

      BPMN是以业务流程图(business process diagram BPD)为核心的。每个BPD根据提供的模型类型不同可以有三种基本的类型:Collaborative (Global) B2B Processes 协作图,Internal (Private) Business Processes 独立图,Public (Abstract) Process 抽象图。前者主要用来描述两个以上的业务实体或者说是参与者之间的交互,协作的情况。而后者主要关注的是某一个参与者内部业务流程的流转。而抽象图则是用来描述内部业务流程与外界的交互,关注点在交互,内部流程中不与外界交互的活动将被忽略。

      BPMN是以BPD为中心,规定了一些统一的图形元素。BPMN有四种基本元素。Flow Objects,Connecting Objects,Swimlanes,Artifacts.

      Flow Objects是BPMN的核心元素。它又包括:Event,Activity,Gateway。

      Event:Start Event,Intermediate Event,End Event三种。Event是指业务流程的运行过程中发生的事件。这些event会影响到流程的状态。一个event通常会有某种trigger或result。Trigger就是触发器,当有个消息到来,或者某个事情发生,比如说时间到了,都可以是一个Trigger,来触发该event。而Result就是该event发生后的一个结果,比如说发出一个消息等等。

      Activity,活动。就是业务流程中基本的业务单元。每一个activity代表一个特定的业务,比如说登陆,注销等等都可以是一个activity。Activity有两种类型:Task,Sub-process。Task很明显就是单一的业务活动。而sub-process是一个复合的业务活动,在该活动中存在一个子业务流程。相信学编程的人都可以理解这个概念。

      Gateway,网关。用来表示流程的分支和聚合。Gateway在BPMN是个很复杂的概念。它包括好几个种类:Data-based exclusive,Event-based exclusive,Inclusive,Complex,Parallel。不同的gateway的组合使用有时候可能会产生合法性问题。所以在使用的时候我们要格外小心。



      连接对象Connecting Objects。在一个业务流程图中,是使用连接对象把图中的各个独立的业务活动连接起来组成一个完成的含有语义的业务流程的。有三种连接对象:Sequence Flow,Message Flow,Association。
      Sequence Flow 序列流。用来表示业务流程中被执行的业务单元的执行顺序。
      Message Flow 消息流。用来表示不同业务流程参与者之间的消息交互的信息流。
      Association 关联。用来把对某个业务活动的输入输出的描述与这个业务活动联系起来。


      Swimlanes 甬道(泳道?)呵呵,也不知道用那个中文词比较合适。Swimlanes是用来区分不同部门或者不同参与者的功能和职责的。Swimlanes也包含两种类型:Pool,Lane。

      Pool代表流程中的一个参与者。它可以作为一个容器来包含其他图形元素,用以和其他参与者(其他Pool)来区分。在一个业务流程图中使用Pool主要是为了显示一个业务中不同的参与者之间的交互情况。每个Pool中的activity通常都有自身的流程。所以,Sequence Flow是不能穿越Pool的边界,而Message Flow就可以。它被用来表示两个不同流程之间消息的交互。


      Lane是Pool的子划分。它可以垂直也可以水平,用来对活动进行组织和分类。Lane常被用来将活动按角色划分,流程可以在一个Pool里跨Lane流转,也就是说Sequence Flow可以穿过Lane的边界。这种情况下,Message Flow就不可以。


      Artifacts 怎么翻译呢?一直找不到确切的中文意思,这里就直接使用英文吧。Artifacts是流程图中的扩展符号。它提供方法使得流程图可以具有描述更加详细活动的上下文的途径。Artifacts包括Data Object,Group,Annotation。
      Data Object 用来描述业务活动所需或者产生的数据。他们可以用Association与Activity连接起来。
      Group 组。用来描述和解释的。
      Annotation 注释。提供一些附加的文本信息给流程图的使用者和阅读者。

     
      BPD的合法性
      BPMN是有向图,在绘制时,会因为不小心造成业务流程模型无效,或者说是个不合法的模型。更高级的,我们有时会要求业务流程有一些特性,比如说时间上的优化。所以我们要对BPMN图进行合法性和有效性检查。这也是个难题。有过很多方法,我就无法展开介绍了。就合法性,我举个小例子。比如说我们在使用Gateway时就有可能出错。在正常的线型业务流程中使用了Gateway,就会出现分支,出现了分支,就有可能会出现死结或者无限循环,使得流程无法正常结束。气死了,不知道如何从PPT中考图,这里就无法描述了。最简单的吧,就是出现了分支,这个分支又指向了Gateway的前面的业务活动,如果这个Gateway是无条件转向的,那就会造成无限循环。
      BPMN to BPEL
      BPMN是图形化来表示业务流程的,它主要是为了人们的阅读。要想让BPMN所画出来的流程图能够被工作流引擎,特别是BPEL引擎所执行。我们就需要把BPMN的BPD图转化成BPEL。这种转化在BPMN中的规范中已经有介绍了。这里就不多说了。但在具体的转化过程中,还存在很多问题。这主要是因为BPD是一种有向图,而BPEL是一种严格嵌套的块结构执行语言。它们的转化就是要把一个有向图转化成嵌套结构。学过图论的同学,都会知道,这有一定的难度。当然也会有不同的办法去解决它。以后有机会我会详细介绍这部分的。
03-14
### BPMN 介绍 BPMN(Business Process Modeling Notation)是指业务流程建模与标记,这是一种标准化的图形化表示方法,用于描述业务流程的操作和逻辑结构。该标准最初由 BPMI Notation Working Group 经过两年的努力,在2004年5月发布了1.0版本[^5]。随后,随着 BPMI 并入 OMG(Object Management Group),OMG 推出了更完善的 BPMN 2.0 标准,并于2011年正式发布。 BPMN 提供了一种基于流程的技术,能够帮助用户通过可视化的形式构建业务流程模型。这些模型通常包括活动(即工作)、事件以及定义操作顺序的流控制。因此,BPMN 不仅适用于业务分析师和技术开发人员之间的沟通,还广泛应用于企业内部的需求分析阶段[^3]。 --- ### Vue 中使用 BPMN 的工具及其教程 #### Vue BPMN Modeler 使用教程 Vue BPMN Modeler 是一个专门为 Vue.js 开发者设计的开源项目,它集成了 bpmn.io 的核心功能,使开发者能够在 Vue 应用程序中轻松实现 BPMN 流程的创建、编辑和管理。要开始使用此工具,需先安装必要的依赖项[^1]: ```bash npm install vue-bpmn-modeler ``` 之后可以通过以下方式引入组件并初始化: ```javascript import { BpmnModeler } from 'vue-bpmn-modeler'; new BpmnModeler({ container: '#canvas', }); ``` 以上代码片段展示了如何在 Vue 环境下加载 `BpmnModeler` 实例,并指定画布容器的位置。 --- #### Vue-BPMN 使用教程 另一个流行的解决方案是 **Vue-BPMN**,这是一个专注于表展示的轻量级库。它的主要目标是在 Vue 项目中快速集成 BPMN 2.0 标准的支持能力[^2]。同样地,需要完成基础环境配置: ```bash npm install @process-engine/vue-bpmn --save ``` 接着可以在页面上渲染 BPMN 图形实例: ```html <template> <div id="app"> <bpmn-diagram :xml="diagramXml"></bpmn-diagram> </div> </template> <script> export default { data() { return { diagramXml: '<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL">...</definitions>', }; }, }; </script> ``` 上述示例说明了如何将 XML 数据绑定至 `<bpmn-diagram>` 自定义标签以呈现完整的流程视。 --- ### 如何深入学习 BPMN? 对于希望进一步掌握 BPMN 技能的学习者来说,推荐访问一些高质量资源网站获取更多信息。例如掘金社区分享的一篇关于 BPMN 工作流中文落地实践的文章[^4],或者 Ops Coffee 博客中的系列教程链接,它们都提供了详尽的实际案例解析和支持文档下载服务。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值