您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

BPM流程引擎相关概念术语一网打尽

时间:2023-04-06 12:09:55  来源:今日头条  作者:数字说

本文重点介绍BPM业务流程管理中常常用到概念和术语,这些概念同样适用于JBPM、Activiti、Flowable、Camunda等主流的开源工作流引擎。

一、BPM模型符号协议

1、BPMN (业务流程模型和标记法)

BPMN:业务流程模型和标记法(BPMN, Business Process Model and Notation)是一套图形化表示法,用于以业务流程模型详细说明各种业务流程。它最初由业务流程管理倡议组织(BPMI, Business Process Management Initiative)开发,名称为"Business Process Modeling Notation",即“业务流程建模标记法”。

2、CMMN (案例管理模型符号)

Case Management Model Notation 案例管理模型符号。CMMN是一种图形符号,用于捕获基于处理需要各种活动的案例的工作方法,这些活动可能以不可预测的顺序执行以响应不断变化的情况。使用以事件为中心的方法和案例文件的概念,CMMN扩展了可以用BPMN建模的界限,包括结构化工作量减少和知识工作者推动的工作量。使用BPMN和CMMN的组合允许用户覆盖更广泛的工作方法。

3、DMN(决策模型符号)

DMN是决策模型和符号(Decision Model and Notation)的英文缩写,是由BMN背后的组织OMG管理的一个标准。DMN 是一种用于精确规范业务决策和业务规则的建模语言和符号。DMN 旨在与 BPMN 和/或 CMMN 一起工作,提供一种机制来对与流程和案例相关的决策进行建模。虽然 BPMN、CMMN 和 DMN 可以独立使用,但它们经过精心设计以相互补充。BPMN、CMMN和DMN真正构成了流程改进标准的“三冠王”。

二、流程引擎相关术语

1、流程定义(Process Definition)

Process Definition即流程定义,指通过建模生成的一个符合BPMN规范的完整流程模型定义文件。Process Definition定义了流程的结构,或者说定义了业务活动的执行过程。Camunda bpm使用bpmn2.0作为其流程定义的主要建模语言。

2、流向/顺序流(Flow):

顺序流是连接两个流程节点的连线。顺序流是一端带有箭头的实线,可在图中或单个池中链接流程内的各个元素,并显示各个元素的执行顺序。消息流是一端带有箭头的点线,可链接两个单独的池(或两个单独的池中的元素),并显示消息发送的方向。

3、流程实例(Process Instance)

Process Instance即流程实例。流程实例是流程定义的单独执行,流程定义和流程实例是一对多关系。流程实例与流程定义的关系与面向对象编程中对象与类的关系相同(在这种类比中,流程实例扮演对象的角色,流程定义扮演类的角色)。

流程定义设计完成后,发布到BPM,通过流程引擎解析流程定义,发起一次流程即创建了一个流程实例,比如:创建了一个“请假流程”,这是一个流程定义,张三发起了一次请假流程,即创建了一个流程实例,李四也发起了一次请假,就是创建了另一个流程实例,这两个实例均基于流程定义创建生成。

4、执行实例(Execution)

Execution即流程执行实例,如果流程实例包含多个执行路径(例如,在并行网关之后),则会同时产生多个执行实例,即execution, 通过excutionId能够区分流程实例内的当前活动路径。

Execution(执行)是分层的,流程实例中的所有Execution(执行)组成一个树,Process Instance(流程实例)是树中的根节点,Process Instance(流程实例)本身就是一个Execution(执行)。

5、活动实例(Activity Instance)

Activity Instance即活动实例,活动实例概念与执行概念类似,但采用了不同的视角。虽然可以将执行想象为在流程中移动的令牌,但活动实例表示活动(任务、子流程等)的单个实例。因此,活动实例的概念更面向状态。

6、任务(Task)

task 所有的任务都是活动,但是活动不全是任务,任务是一个流程的节点,但是并非所有流程节点都是任务。

用户任务: 就是需要用户参与触发的任务。

服务任务: 服务任务又可以划分为各种各样的服务任务。

7、服务任务(Service Task)

Camunda中的Service Task(服务任务)用于调用服务。在Camunda中,可以通过调用本地JAVA代码、外部工作项、web服务形式实现的逻辑来完成的。

8、脚本任务(Script Task)

在Camunda中,脚本任务是一个自动活动,当流程执行到脚本任务时,相关的脚本自动执行。camunda支持大多是兼容JSR-223的脚本引擎实现,比如Groovy, JavaScript, JRuby and Jython。

9、定时任务(Job and Job Definition)

Job and Job Definition即作业执行器,Camunda流程引擎包含一个名为Job Executor的组件。作业执行器是一个调度组件,负责执行异步后台工作。考虑一个计时器事件的例子:每当流程引擎到达计时器事件时,它将停止执行,将当前状态保存到数据库,并创建一个作业以在将来继续执行。部署流程时,流程引擎会为流程中的每个活动创建作业定义,这些活动将在运行时创建作业。

10、事件(event)

event 事件是BPMN流程建模元素,表示在流程过程中“发生”的事情,事件会影响流程的走向。BPMN定义了不同的事件类型。事件包含开始(Start)、中间(Intermediate)、边界(Boundary)和结束(End)四种类型。根据触发方式不同,可以分为捕获事件(Catching Event)和抛出事件(Throwing Event)。

详细参考:​​https://lowcode.blog.csdn.net/article/details/122886122​

11、流程变量(Process Variable)

Process Variable即流程变量,流程变量在整个工作流中扮演很重要的作用,是业务和流程引擎之间交互信息的载体,业务可以把数据放到流程变量里传递给流程引擎,流程引擎也可以把信息放到流程变量给传递给业务,流程变量最常见的用途有路由条件表达式、流程执行事件参数等。例如:请假流程中有请假天数、请假原因等一些参数都为流程变量的范围。流程变量的作用域范围是流程实例,也就是说各个流程实例的流程变量是不相互影响的。

12、网关(Gateways)

Gateway是BPMN2规范中的流程定义元素,中文可称为“网关”、“决策”、“判断”。网关用来控制流程的执行流向,当在拆分路径时产生令牌,在合并路径时消费令牌。常用网关可分为排他网关(XOR)、并行网关(AND)和包容网关(OR)。BPMN2.0规范中提供了bpmn:exclusiveGateway排他网关标签、bpmn:parallelGateway并行网关标签来定义,activiti、flowable、camunda等开源工作流引擎均支持该标签。

13、泳道(Swimlanes):

BPMN中的泳道对象(也称为泳道)是表示业务流程参与者的矩形框。泳道可能包含由该泳道(参与者)执行的流对象,除了必须有一个空体的黑盒子。泳道可以水平排列,也可以垂直排列。它们在语义上是相同的,只是表示不同。对于水平泳道,流程从左到右流动,而垂直泳道中的流程从上到下流动。泳道的例子包括客户、客户部门、支付网关和开发团队。

池(Pools):pool代表业务流程中的参与者。它可以是一个特定的实体(如部门)或一个角色(如助理经理、医生、学生、供应商)。

游道(Lanes):lane是池的子分区。例如,当您有一个池部门时,您可以将部门主管和普通职员作为泳道。与池一样,您可以使用lane来表示流程中涉及的特定实体或角色。

14、子流程(SubProcess)

子流程是包含其他活动、网关、事件等的活动,其本身形成的流程是更大流程的一部分。子流程完全在父流程中定义(这就是为什么它通常被称为嵌入式子流程)。

BPMN 2.0区分了嵌入式子流程(Embedded Subprocess)和调用活动(Call Activity)。从概念上看,当流程执行到达活动时,两者都将调用子流程。

不同之处在于,调用活动引用流程定义外部的流程,而子流程嵌入在原始流程定义中。调用活动的主要用例是拥有可重用的流程定义,可以从多个其他流程定义调用该定义。子流程的流程定义是在运行时解析的。如果需要,也可以独立调用子流程。

当流程执行到达调用活动时,将创建一个新的流程实例,该实例用于执行子流程,可能会像在常规流程中那样创建并行子执行。主流程实例将一直等待,直到子流程完全结束,然后继续原始流程。

子流程允许分层建模。许多建模工具允许折叠子流程,隐藏子流程的所有细节,并显示业务流程的高级端到端概述。

15、特别流程(Ad-hoc)

临时流程是一组业务活动和相应的工件(例如,信息,决策和产品),只能在高级别的聚合中进行标准化。实际的活动种类及其排序因个案而异。临时流程在国内也被称为“任意流”。以下是Ad-hoc流程的特征:

虽然可以预测某些活动,但是一开始就无法完全指定大部分过程,因为它需要的信息只能以某种方式进入项目。

如果我们假设在ad-hoc流程的上下文中永远不会确定下一步,则它们的执行不能由传统的基于流程的信息系统控制,在大多数情况下,知识工作者可以控制流程。

似乎不可能在设计时考虑临时过程的所有可能性,这样的过程模型将变得复杂且难以管理。

16、部署(deployment)

Deployment(部署)是指将流程定义发布到工作量引擎中之后称为deployment。

17、身份管理(IDM)

提供SSO功能凭证管理工作,可以用来管理权限、用户、组

18、流程设计器(Modeler)

模型管理工具,用于定义流程模型、表单及应用定义。在Camunda BPM中,提供了C/S流程建模工具(Modeler)和B/S流程建模工具(bpmn.io),用户通过拖拉拽的方式设计流程图,这个设计完的xml文件就是流程定义。

19、表单(Form)

form 表单配置给每个流程节点使用,如请假申请中需要用户填写请假天数事由,审批节点中需要审批人填写审批意见等。

20、BPM(Business Process Management,业务流程管理)

BPM是指通过对业务流程进行分析、设计、实施、监控和优化来实现组织目标的一种管理方法和技术。以下是一些BPM相关的概念和术语:

21、流程(Process)

流程指在特定环境下,为完成一定的目标,按照特定的规则和流程活动所构成的一系列行为的集合。

22、流程图(Process Diagram)

流程图(Process Diagram):是用来表示流程的图形化工具,通常采用流程图、数据流图等。

23、流程建模(Process Modeling)

流程建模(Process Modeling):指将现实中的业务流程抽象出来,用流程图等模型表示出来的过程。

23、流程设计(Process Design)

流程设计(Process Design):指在流程建模的基础上,进一步优化流程,以实现组织目标。

24、流程实施(Process Implementation)

流程实施(Process Implementation):指将流程设计落实到实际的业务中,并确保其按照设计要求执行。

25、流程监控(Process Monitoring)

流程监控(Process Monitoring):指对流程进行实时监测,及时发现问题并进行调整。

26、流程优化(Process Optimization)

流程优化(Process Optimization):指根据实际情况,对流程进行调整,以提高效率、降低成本等。

27、自动化流程(Automated Process)

自动化流程(Automated Process):指利用计算机技术将流程自动化,实现自动化的业务流程。

28、流程引擎(Process Engine)

流程引擎(Process Engine):是一种计算机软件,用于管理和执行流程,支持流程自动化和流程优化。

29、业务规则(Business Rule)

业务规则(Business Rule):指组织中制定的一些规则和标准,用于指导业务流程的执行。

30、业务活动(Business Activity)

业务活动(Business Activity):指流程中的具体操作或任务,是实现流程目标的基本单位。

31、业务事件(Business Event)

业务事件(Business Event):指对业务流程的状态变化或重要事件的观察和记录,可以用来驱动流程执行。

三、中国特色流程操作概念

1、会签

会签是一种联合审批的特殊审批流程,可理解为一种多人投票机制,一个任务需要多个人同时处理,然后汇总多个人的意见,决定流程下一步该如何执行。流程设计时,若会签审批节点中设置多个参与人,流程运行时,会签节点任务需要多人共同处理,然后汇总多人的处理意见,决定会签节点的处理结果。

会签分并行会签和顺序会签两种:

并行会签:指同一个审批节点设置多个人,如A、B、C三人,三人会同时收到待办任务,需全部同意之后,审批才可到下一审批节点。

顺序会签:指同一个审批节点设置多个人,如A、B、C三人,三人按顺序依次收到待办,即A先审批,A提交后B才能审批,需全部同意之后,审批才可到下一审批节点。

2、或签

一个流程审批节点里有多个处理人,任意一个人处理后就能进入下一个节点。

例如:员工发起采购申请,提交给多名领导审批,只要有一名领导同意即可提交到下一节点。

BPMN2.0规范中提供了
bpmn:multiInstanceLoopCharacteristics多实例循环的模型定义,并通过bpmn:completionCondition标签定义多实例完成条件,activiti、flowable、camunda等开源工作流引擎均支持该属性。

3、抄送

抄送:将审批结果通知给抄送列表对应的人。

4、驳回

驳回:将审批重置发送给某节点,重新审批。驳回也叫退回,也可以分退回申请人、退回上一步、任意退回等。

退回申请人: 直接把流程退回给申请节点

退回上一步: 退回流程上一节点

退回任意节点: 退回到流程走过任意一个节点

5、转办

转办:A转给其B审批,B审批后,进入下一节点。

6、委派

委派:A转给其B审批,B审批后,转给A,A审批后进入下一节点。

7、跳转

跳转:可以将当前流程实例跳转到任意办理节点

8、拿回

拿回:在当前办理人尚未处理文件前,允许上一节点提交人员执行拿回

9、撤销

撤销:流程发起者可以对流程进行撤销处理

10、催办

催办:可以给当前办理人员发送催办通知消息

11、加签

加签:允许当前办理人根据需要自行增加当前办理节点的办理人员

12、减签

减签:在当前办理人操作之前减少办理人

在线体验系统:http://www.yunchengxc.com



Tags:BPM   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
BPM流程引擎相关概念术语一网打尽
本文重点介绍BPM业务流程管理中常常用到概念和术语,这些概念同样适用于JBPM、Activiti、Flowable、Camunda等主流的开源工作流引擎。一、BPM模型符号协议1、BPMN (业务流程模...【详细内容】
2023-04-06  Search: BPM  点击:(329)  评论:(0)  加入收藏
开源流程引擎BPM哪个好?activiti、flowable、camunda?
市场上比较有名的开源流程引擎有osworkflow、jbpm、activiti、flowable、camunda。其中:Jbpm4、Activiti、Flowable、camunda四个框架同宗同源,祖先都是Jbpm4,开发者只要用过其...【详细内容】
2022-07-18  Search: BPM  点击:(2418)  评论:(0)  加入收藏
eclipse安装配置jbpm6.3流程步骤
今天在eclipse下配置jbpm。从网上整理了一些步骤记录如下,供参考!1:去官网下载: http://www.jbpm.org/download/download.html,目前最新版本为7.52:下载j2ee版本eclispe,官网地址:...【详细内容】
2021-06-17  Search: BPM  点击:(392)  评论:(0)  加入收藏
「业务架构」介绍BPMN第二部分-泳道
游泳池里有专门为游泳者设计的泳道。游泳的人有自己的泳道,不用穿过另一条泳道。泳道的概念也存在于BPMN中。BPMN中的泳道对象(也称为泳道)是表示业务流程参与者的矩形框。泳...【详细内容】
2020-07-05  Search: BPM  点击:(642)  评论:(0)  加入收藏
▌简易百科推荐
Netflix 是如何管理 2.38 亿会员的
作者 | Surabhi Diwan译者 | 明知山策划 | TinaNetflix 高级软件工程师 Surabhi Diwan 在 2023 年旧金山 QCon 大会上发表了题为管理 Netflix 的 2.38 亿会员 的演讲。她在...【详细内容】
2024-04-08    InfoQ  Tags:Netflix   点击:(0)  评论:(0)  加入收藏
即将过时的 5 种软件开发技能!
作者 | Eran Yahav编译 | 言征出品 | 51CTO技术栈(微信号:blog51cto) 时至今日,AI编码工具已经进化到足够强大了吗?这未必好回答,但从2023 年 Stack Overflow 上的调查数据来看,44%...【详细内容】
2024-04-03    51CTO  Tags:软件开发   点击:(6)  评论:(0)  加入收藏
跳转链接代码怎么写?
在网页开发中,跳转链接是一项常见的功能。然而,对于非技术人员来说,编写跳转链接代码可能会显得有些困难。不用担心!我们可以借助外链平台来简化操作,即使没有编程经验,也能轻松实...【详细内容】
2024-03-27  蓝色天纪    Tags:跳转链接   点击:(13)  评论:(0)  加入收藏
中台亡了,问题到底出在哪里?
曾几何时,中台一度被当做“变革灵药”,嫁接在“前台作战单元”和“后台资源部门”之间,实现企业各业务线的“打通”和全域业务能力集成,提高开发和服务效率。但在中台如火如荼之...【详细内容】
2024-03-27  dbaplus社群    Tags:中台   点击:(9)  评论:(0)  加入收藏
员工写了个比删库更可怕的Bug!
想必大家都听说过删库跑路吧,我之前一直把它当一个段子来看。可万万没想到,就在昨天,我们公司的某位员工,竟然写了一个比删库更可怕的 Bug!给大家分享一下(不是公开处刑),希望朋友们...【详细内容】
2024-03-26  dbaplus社群    Tags:Bug   点击:(5)  评论:(0)  加入收藏
我们一起聊聊什么是正向代理和反向代理
从字面意思上看,代理就是代替处理的意思,一个对象有能力代替另一个对象处理某一件事。代理,这个词在我们的日常生活中也不陌生,比如在购物、旅游等场景中,我们经常会委托别人代替...【详细内容】
2024-03-26  萤火架构  微信公众号  Tags:正向代理   点击:(11)  评论:(0)  加入收藏
看一遍就理解:IO模型详解
前言大家好,我是程序员田螺。今天我们一起来学习IO模型。在本文开始前呢,先问问大家几个问题哈~什么是IO呢?什么是阻塞非阻塞IO?什么是同步异步IO?什么是IO多路复用?select/epoll...【详细内容】
2024-03-26  捡田螺的小男孩  微信公众号  Tags:IO模型   点击:(9)  评论:(0)  加入收藏
为什么都说 HashMap 是线程不安全的?
做Java开发的人,应该都用过 HashMap 这种集合。今天就和大家来聊聊,为什么 HashMap 是线程不安全的。1.HashMap 数据结构简单来说,HashMap 基于哈希表实现。它使用键的哈希码来...【详细内容】
2024-03-22  Java技术指北  微信公众号  Tags:HashMap   点击:(11)  评论:(0)  加入收藏
如何从头开始编写LoRA代码,这有一份教程
选自 lightning.ai作者:Sebastian Raschka机器之心编译编辑:陈萍作者表示:在各种有效的 LLM 微调方法中,LoRA 仍然是他的首选。LoRA(Low-Rank Adaptation)作为一种用于微调 LLM(大...【详细内容】
2024-03-21  机器之心Pro    Tags:LoRA   点击:(12)  评论:(0)  加入收藏
这样搭建日志中心,传统的ELK就扔了吧!
最近客户有个新需求,就是想查看网站的访问情况。由于网站没有做google的统计和百度的统计,所以访问情况,只能通过日志查看,通过脚本的形式给客户导出也不太实际,给客户写个简单的...【详细内容】
2024-03-20  dbaplus社群    Tags:日志   点击:(4)  评论:(0)  加入收藏
站内最新
站内热门
站内头条