流程引擎概述及组成

news/2024/5/17 19:11:05 标签: BPM, 流程引擎, activiti, 敏捷流程, 经验分享

一、流程引擎概述

流程,可以理解为步骤,一个有序的活动或动作;

引擎,可以理解为驱动,是一个程序或者一套系统。

所以,字面意思可以理解为,流程引擎是一套(或一个)用来驱动业务的系统或程序。

加深一层理解,流程引擎是一套专门提供流程设计、运转、审核的底层支撑平台,驱动业务按照设定的步骤进行流转。

再深一层理解,流程引擎是一套低代码系统,它可以帮助我们全程可视化的设计、修改业务流程。

二、流程引擎的组成

既然流程引擎是帮助我们设计业务流程的,那它的组成核心可以分为两部分,流程与业务,即流程设计器与业务表单设计器。

2.1流程设计器

流程设计器主要用于流程编排,并提供包括流程干预、流程监控、任务统计等辅助功能。

目前主流的设计器有Camunda(包括Activiti、Flowable,3家之前都属于一家)设计器、Worflow设计器(仿钉钉版)以及国产的开源软件ccflow设计器。

Camunda版:

Worflow仿钉钉版:

CCFlow版:

以上3个版本的设计器,都有一个共同点,在图形化流程设计的时候,都利用标准的图元描述定义了流程的执行规则与规范,像Task(流程步骤)、Line(流转方向)、Gateways(网关、运行时的判断条件)等。

所以一个流程设计器需要定义一套标准化的规则与规范,按照这些规则与规范驱动流程执行,并且能真实描述业务的发生过程。这套规则与规范,目前最主流的也是使用最多的就是BPMN2.0协议(想了解的请访问:https://blog.csdn.net/jflows/article/details/126766737)。

当然,并不是所有的流程设计器都去使用、适配BPMN2.0协议,但是无论是自己开发或者改造,都必须标准定义流程的执行语义与格式。无论执行xml或者json,节点是都需要解析的,不同类型的节点的解析规则与逻辑,就是流程的执行语义与格式,如果这些都无法实现,那么流程的运行将会是混乱的,无法按照既定的流程步骤运行。

2.2表单设计器

其实表单于流程是两个相互独立的存在,流程关注运行步骤,表单关注业务数据。有些流程不需要表单,像生产工序,只需要关注目前已经处在什么阶段即可;有些又需要表单,像收发文、请假等等,需要进行审批。所以,在国内复杂的业务场景下,表单设计器是流程引擎中必不可少的一部分。

表单设计器的设计与使用,以可视化操作、低代码的方式实现最好,与流程耦合度越低越好。可视化操作、低代码,可以快速实现表单的搭建、修改及维护;与流程耦合度低,可以实现按需绑定,同时表单设计器可以独立运行,使之成为一个低代码配置工具。

表单设计器可以通过字段建模,按照一定的规则与格式形成表单,也可以通过封装字段控件,以拖拉拽的方式形成表单,设计方式、使用方式多种多样,可以根据自身需求定制开发。


http://www.niftyadmin.cn/n/5075215.html

相关文章

String、StringBuffer和StringBuilder类的区别

在 java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串。String 类是不可变类,即一旦一个 String 对象被创建以后,包含在这个对象中的字符序列是不可改变的,直至这个对象被销毁。 Java 提供了两个可变字符串类 Stri…

区块链技术的飞跃: 2023年的数字革命

随着时代的推进和技术的不断创新,2023年成为区块链技术飞跃发展的一年。区块链,一个曾经只是数字货币领域的技术,现在已经逐渐渗透到各个行业,成为推动数字经济发展的重要力量。在这个数字革命的时代,我们探讨区块链技…

layui laydate实现日期选择并禁用指定的时间

最终实现禁用2023-9-26这天的效果 官网地址 日期和时间组件文档 - layui.laydate 下面是实现的代码 <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>layDate快速使用</title><link rel"stylesheet"…

express-generator快速构建node后端项目

express-generator是express官方团队开发者准备的一个快速生成工具&#xff0c;可以非常快速的生成一个基于express开发的框架基础应用。 npm安装 npm install express-generator -g初始化应用 express my_node_test 创建了一个名为 my_node_test 的express骨架项目通过 Exp…

【C++心愿便利店】No.7---C++之运算符重载

文章目录 前言一、运算符重载的引用二、运算符重载三、赋值运算符重载四、日期类的实现五、const成员六、取地址及const取地址操作符重载 前言 &#x1f467;个人主页&#xff1a;小沈YO. &#x1f61a;小编介绍&#xff1a;欢迎来到我的乱七八糟小星球&#x1f31d; &#x1f…

linux如何删除最近操作的日志

Linux系统下&#xff0c;不同的应用程序可能会生成不同的日志文件。如果你想要删除最近一段时间内的操作日志&#xff0c;可以使用一些命令来完成。 以下是一些常见的命令&#xff1a; dmesg&#xff1a;该命令用于显示内核环境下的运行信息和警告信息。如果你需要清空dmesg缓…

codesys 控制轴组程序

//轴组使能允许 IF AxisGroupControl.bPower AND NOT AxisGroupStatus.bPowerError THEN bPowerAllow:TRUE; ELSE bPowerAllow:FALSE; END_IF //轴组有效允许 IF AxisGroupControl.bEnable AND NOT AxisGroupControl.bDisable THEN bEnableAllow:TRUE; ELSE b…

桌面文件不见了怎么恢复?4招轻松找回!

桌面文件不见了怎么恢复&#xff1f;4招轻松找回&#xff01; 不知道桌面文件不见了怎么恢复&#xff1f;阅读本文找到答案&#xff0c;这里向你介绍了桌面文件恢复的4种方法&#xff0c;并说明了详细的操作步骤&#xff0c;赶紧来试试&#xff01; 桌面文件突然不见了&…