BPMN2.0规范简介

这篇具有很好参考价值的文章主要介绍了BPMN2.0规范简介。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 概述

BPMN(Business Process Model & Notation),中文名为业务流程模型与符号。BPMN2.0是OMG(Object Management Group,对象管理组织)制定的,其主要目的是既给用户提供一套简单的、容易理解的机制,以便用户创建流程模型;又能使用户能很好的处理不同流程模型内在的复杂性。

BPMN2.0提供了五种不同的元素,分别是Flow Objects 流对象、Data 数据、Connecting Objects 连接对象、Artifacts 描述对象。

BPMN2.0规范简介

图1-1 BPMN2.0元素

五种不同元素中,在保持基本图形相似的前提下,BPMN2.0规范通过适当的改变每个图形元素的外观,增加额外的信息,来生成基本的图形元素的变种,以支持实际业务中的复杂性。

2 元素简介

2.1 流对象

流对象包括事件(Events),活动(Activities),网关(Gateways)。

2.1.1 事件

事件是BPMN2.0执行语义中一个非常重要的概念,是流程运行过程中发生的事情,这些事情的发生会影响到流程的运转。对每个事件而言,一般会包含两个要素,触发事件的原因与事件发生导致的结果。

事件有不同的分类方法,首先先看一张图:

BPMN2.0规范简介

图2-1 事件全览图

按照位置分类: 开始事件(Start)、中间事件(Intermediate)、结束事件(End)。通过事件控制器为系统添加辅助功能,如与其他业务系统集成、活动预警等。

事件的图像符号是圆形。其中空心圆表示开始事件,嵌套的圆表示中间事件,嵌套圆且两圆之间为阴影表示结束事件。如下图所示。

BPMN2.0规范简介

图2-2 事件的一般表示

依据触发方式不同分类:我们可以分为抛出事件(Throw),捕获事件(Catch),抛出事件是流程走到某一步主动发生的事件,捕获事件是流程定义好的触发器被触发的时候,流程就开始执行,捕获事件是被动型。

按照定义分类:分为消息(Message)事件,定时器(Timer)事件,升级(Escalation)事件,条件(Conditional)时间,链接(Link)事件,错误(Error)事件,取消(Cancel)事件,补偿(Compensation)事件,信号(Signal)事件,多重(Multiple)事件,并行(Parallel multiple)多重事件。

按照是否会中断流程运转分类:分为中断(Interrupting)事件和非中断(non-interrupting)事件。中断事件用圆实线表示,非中断事件用圆虚线表示。

BPMN2.0规范简介

图2-3 中断事件与非中断事件

2.1.2 活动

活动是流程中需要执行的任务,一个流程通常由多个活动组成。活动包含任务、子流程、事务、调用活动。

BPMN2.0规范简介

 图2-4 活动全览图

任务是工作的基本单元,是参与者为了完成流程目标而一步一步完成的动作。任务的图标是一个方框,方框左上角不同图标表示不同的任务类型。和事件一样,任务也有多种,包括发送(Send Task)任务,接收(Receive Task)任务,用户(User Task)任务,手工(Manual Task)任务,业务规则(Busniess Rule Task)任务,服务(Service Task)任务。

名称 图标 描述
服务(Service Task)任务

BPMN2.0规范简介

服务任务被用作调用任务,工作一般由软件自动完成,
发送(Send Task)任务

BPMN2.0规范简介

发送任务用来给外部参与者发送消息
接收(Receive Task)任务

BPMN2.0规范简介

接收任务等待特定的消息到来,在任务启动到该节点的时候停下来等待信号。当任务接收到信号的时候,该流程就会继续往下执行。
用户(User Task)任务

BPMN2.0规范简介

需要人工参与的任务,比如审批需要领导签字确认
手工(Manual Task)任务

BPMN2.0规范简介

定义流程引擎外部的任务,用来对那些需要人来完成的工作进行建模,引擎不需要知道他是系统还是 UI接口。
对引擎而言,手动任务是作为直接通过的活动处理的,流程执行到此会自动继续流程的执行 
业务规则(Busniess Rule Task)任务

BPMN2.0规范简介

业务规则任务用于同步执行一个或更多规则。

                                                         图2-5 任务全览图                                                              

  其他三个活动所用较少,本次暂不做详细介绍。

2.1.3 网关 

网关用于表示流程的分支与合并,分为:

  • 排他网关:只有一条路径会被选择
  • 并行网关:所有路径会被同时选择
  • 包容网关:可以同时执行多条线路,也可以在网关上设置条件
  • 事件网关:专门为中间捕获事件设置的,允许设置多个输出流指向多个不同的中间捕获事件。当流程执行到事件网关后,流程处于等待状态,需要等待抛出事件才能将等待状态转换为活动状态。

BPMN2.0规范简介

图2-6 网关全览图

2.2 数据

数据有四种元素表示,数据对象(Data Objects),数据输入(Data Inputs),数据输出(Data Outputs),数据存储(Data Stores)。

BPMN2.0规范简介

图2-7 数据全览图

2.3 连接对象

流对象彼此互相连接或者连接到其他信息的方法主要有三种。顺序流:用一个带实心箭头的实心线表示,用于指定活动执行的顺序。缺省流:默认流,即所有条件都不满足时,流程从此线出流过,进入下一阶段。条件流:依据线的条件,来判断业务流程是否能由此线流过。

BPMN2.0规范简介

 图2-8 连接对象全览图

2.4 泳道

泳池和泳道,泳池和泳道都表示活动的参与者,即表示过程中活动的执行者,它可以是一个组织、角色或系统。泳池可以划分成多个泳道,泳道具有分层结构。

BPMN2.0规范简介

图2-9 泳道全览图 

3 BPMN画图工具简介

 Camunda是一个工作流引擎,执行Bpmn2.0标准,因此依赖于基于bpmn的流程图(本质上是一个xml文件),下载地址为Download The Camunda BPMN / DMN Process Modeler | Camunda,基于 bpmn.io的面向 BPMN DMN和CMMN的集成建模解决方案,camunda-modeler是一款外部流程设计器,同普通安装软件一样安装完后双击.exe程序即可使用,也可以通过IDEA安装外部Tool使用。具体操作可参考这篇博文。这里给一个截图,以及生成的xml文档。

BPMN2.0规范简介

图3-1  Camunda工作台

对应的xml文档

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:flowable="http://flowable.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://bpmn.io/schema/bpmn" id="Definitions_0001">
  <process id="zgr-test1" name="测试条件走向" isExecutable="true">
    <startEvent id="Event_0a6bsya"></startEvent>
    <userTask id="Activity_0pfz1cb" name="第一"></userTask>
    <sequenceFlow id="Flow_0454chc" sourceRef="Event_0a6bsya" targetRef="Activity_0pfz1cb"></sequenceFlow>
    <exclusiveGateway id="Gateway_1q7504o" default="Flow_1wu0khg"></exclusiveGateway>
    <sequenceFlow id="Flow_02g6tt4" sourceRef="Activity_0pfz1cb" targetRef="Gateway_1q7504o"></sequenceFlow>
    <userTask id="Activity_19w1ng8" name="第二"></userTask>
    <sequenceFlow id="Flow_1wu0khg" sourceRef="Gateway_1q7504o" targetRef="Activity_19w1ng8"></sequenceFlow>
    <endEvent id="Event_14e42yk"></endEvent>
    <sequenceFlow id="Flow_1d0b1lk" sourceRef="Activity_19w1ng8" targetRef="Event_14e42yk"></sequenceFlow>
    <sequenceFlow id="Flow_0rdv9v5" sourceRef="Gateway_1q7504o" targetRef="Event_14e42yk">
      <conditionExpression xsi:type="tFormalExpression"><![CDATA[=${day>3}]]></conditionExpression>
    </sequenceFlow>
  </process>
  <bpmndi:BPMNDiagram id="BPMNDiagram_zgr-test1">
    <bpmndi:BPMNPlane bpmnElement="zgr-test1" id="BPMNPlane_zgr-test1">
      <bpmndi:BPMNShape bpmnElement="Event_0a6bsya" id="BPMNShape_Event_0a6bsya">
        <omgdc:Bounds height="36.0" width="36.0" x="222.0" y="202.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="Activity_0pfz1cb" id="BPMNShape_Activity_0pfz1cb">
        <omgdc:Bounds height="100.0" width="100.0" x="358.0" y="170.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="Gateway_1q7504o" id="BPMNShape_Gateway_1q7504o" isMarkerVisible="true">
        <omgdc:Bounds height="50.0" width="50.0" x="558.0" y="195.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="Activity_19w1ng8" id="BPMNShape_Activity_19w1ng8">
        <omgdc:Bounds height="100.0" width="100.0" x="708.0" y="170.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="Event_14e42yk" id="BPMNShape_Event_14e42yk">
        <omgdc:Bounds height="36.0" width="36.0" x="908.0" y="202.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge bpmnElement="Flow_0454chc" id="BPMNEdge_Flow_0454chc">
        <omgdi:waypoint x="258.0" y="220.0"></omgdi:waypoint>
        <omgdi:waypoint x="358.0" y="220.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="Flow_02g6tt4" id="BPMNEdge_Flow_02g6tt4">
        <omgdi:waypoint x="458.0" y="220.0"></omgdi:waypoint>
        <omgdi:waypoint x="558.0" y="220.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="Flow_1wu0khg" id="BPMNEdge_Flow_1wu0khg">
        <omgdi:waypoint x="608.0" y="220.0"></omgdi:waypoint>
        <omgdi:waypoint x="708.0" y="220.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="Flow_1d0b1lk" id="BPMNEdge_Flow_1d0b1lk">
        <omgdi:waypoint x="808.0" y="220.0"></omgdi:waypoint>
        <omgdi:waypoint x="908.0" y="220.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="Flow_0rdv9v5" id="BPMNEdge_Flow_0rdv9v5">
        <omgdi:waypoint x="583.0" y="245.0"></omgdi:waypoint>
        <omgdi:waypoint x="583.0" y="420.0"></omgdi:waypoint>
        <omgdi:waypoint x="926.0" y="420.0"></omgdi:waypoint>
        <omgdi:waypoint x="926.0" y="238.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
</definitions>

4 写在最后

本篇博客简单的介绍了一些BPMN2.0的基本概念,只是一个入门级别,BPMN 2.0 -业务过程模型和符号这张图详细介绍了这些基本信息,第二节的图都来自这张图,有兴趣的可以下载后好好研究。文章来源地址https://www.toymoban.com/news/detail-511806.html

到了这里,关于BPMN2.0规范简介的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ARINC825规范简介

    机载CAN网络通用标准 ARINC825规范全称为机载CAN网络通用标准(The General Standardization of CAN for Airborne Use)。顾名思义,ARINC825规范是建立在CAN物理网络基础上的高层规范。CAN网络使用共享的双绞电缆传输数据,在航空航天领域应用中能够有效地节省重量。同时,CAN物理层协议还

    2024年02月06日
    浏览(39)
  • FPGA-AMBA协议、APB协议、AHB规范、AXI4协议规范概述及它们之间的关系

    笔记记录,AMBA协议、APB协议、AHB规范、AXI4协议规范概述,只是概述描述,具体详细的协议地址传输、数据传输等内容将在下一章节详细说明。 AMBA(Advanced Microcontroller Bus Architecture)是一种由ARM公司提出的处理器总线架构,它定义了处理器、内存和外设之间的通信标准 。

    2024年02月04日
    浏览(35)
  • COM,Component Object Model 简介

    COM 的英文全称是,Component Object Model,中文译为,组件对象模型。它官方的概念是: 与其说 COM 是 System,更确切的说,应该叫做 Standard。因为它实际上是一套公共的 binary 标准,用于规定 software component 的接口的标准。也有人会把 COM 叫做 Common Object Model,但这其实是一种误传

    2024年02月14日
    浏览(40)
  • OCP浸没式液冷基本规范(概述和信号完整性部分)

    数据中心行业主要考虑两种类型的液体冷却技术来推动节能和可持续发展,分别是冷板式和浸没式,每一种技术里的液体又包含单相和双相两种规格: 冷板技术与浸没技术的主要区别之一是,在浸没的情况下,液体与 IT 设备直接接触。目前,有大量液体被用于单相和两相浸

    2024年02月08日
    浏览(43)
  • JavaWeb前端/后端开发规范——接口文档概述及YApi平台的使用

    整理下笔记,打好基础,daydayup!!! 什么是接口文档? 目前主流的开发模式为前后端分离式开发,为了方便前后端的对接,就需要使用接口文件进行统一规范。 接口文档记载什么信息? 1,基本信息:请求路径,请求方式,接口描述 2,参数信息:参数名,参数类型,参数样例

    2024年04月17日
    浏览(59)
  • 一、认识 JVM 规范(JVM 概述、字节码指令集、Class文件解析、ASM)

    JVM : Java Virtual Machine ,也就是 Java 虚拟机 所谓虚拟机是指:通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的计算机系统。 即:虚拟机是一个计算机系统。这种计算机系统运行在完全隔离的环境中,且它的硬件系统功能是通过软件模拟出来的。 JVM 通

    2024年01月23日
    浏览(54)
  • 【PyTorch简介】4.Building the model layers 生成模型层

    神经网络是按层连接的 神经元 的集合。每个神经元都是一个小的计算单元,执行简单的计算来共同解决问题。神经元分为 3 种类型的层:输入层、隐藏层和输出层。隐藏层和输出层包含许多神经元。神经网络模仿人脑处理信息的方式。 activation function 激活函数 决定神经元是

    2024年01月18日
    浏览(41)
  • [SIGIR23]生成式推荐论文Diffusion Recommender Model算法/理论/代码简介

    论文链接:https://arxiv.org/abs/2304.04971         本文涉及大量贝叶斯概率、变分推理(VI)和扩散模型的应用,为了更好地理解本文,可以先阅读以下文章: https://arxiv.org/abs/1312.6114 (VAE的开山之作) Variational Autoencoders for Collaborative Filtering | Proceedings of the 2018 World Wide Web

    2024年02月14日
    浏览(51)
  • 卡尔曼滤波器简介——概述

    关于卡尔曼滤波器         大多数现代系统都有许多传感器,可以根据一系列测量来估计隐藏(未知)状态。例如,GPS接收器提供位置和速度估计,其中位置和速度是隐藏状态,卫星信号到达的差分时间是测量值。         跟踪和控制系统的最大挑战之一是在存在不确

    2024年02月01日
    浏览(73)
  • 【前端框架】NPM概述及使用简介

    npm之于Node,就像pip之于Python,gem之于Ruby,composer之于PHP。 npm是Node官方提供的包管理工具,他已经成了Node包的标准发布平台,用于Node包的发布、传播、依赖控制。npm提供了命令行工具,使你可以方便地下载、安装、升级、删除包,也可以让你作为开发者发布并维护包。 npm是随

    2024年02月03日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包