Camunda 7.x 系列【2】开源工作流引擎框架

news2024/12/23 22:26:37

有道无术,术尚可求,有术无道,止于术。

本系列Spring Boot 版本 2.7.9

本系列Camunda 版本 7.19.0

源码地址:https://gitee.com/pearl-organization/camunda-study-demo

文章目录

    • 1. 前言
    • 2. 开源工作流引擎框架
      • 2.1 jBPM
      • 2.2 Activiti
      • 2.3 Flowable
      • 2.4 Camunda
      • 2.5 compileflow

1. 前言

在软件系统中往往包含多种业务流程,在开发时,如果不借助工作流引擎,实现一个工作流是非常不靠谱的。每个流程都需要对应一套实现代码,十分冗余,而且一旦需要改动流程,就得改造代码。

而工作流引擎的出现,解决了上述问题,它和具体的业务无关,定义好流程规则后,可以通过引擎进行自动化的流程流转。

接下来我们介绍下比较常用的一个开源工作流引擎框架。

2. 开源工作流引擎框架

2.1 jBPM

GitHub地址

jBPM是一个用于实现业务流程决策自动化的工具包,目前由KIE社区进行开发维护,Red Hat提供支持。

jBPM的发展历程如下:

  • 2003年,jBPM的的创始人Tom Baeyens发布了1.0 版本
  • 2004年,jBPM发布了2.0版本,并加入JBoss组织,Tom Baeyens任该项目的Leader
  • 2005年,jBPM发布3.0版本
  • 2006年,JBossRed Hat红帽公司收购,jBPM获得了大量的社区和商业支持
  • 2009年,jBPM发布4.0版本
  • 2010年,创始人Tom Baeyens离开了JBossjBPM交由Kris Verlaenen负责
  • 2011年,jBPM基于Drools Flow发布5.0的全新版本,完全抛弃了jBPM4的代码。支持BPMN、业务活动监控、流程可视化
  • 2013年,jBPM发布6.0版本
  • 2017年,jBPM发布7.0版本
  • 当前,jBPM的最新版本为7.74.0

jBPM各方面已经落后于其他同类型框架,目前已经不是主流,不推荐使用,但是当前主流的开源工作流框架都是基于jBPM4
在这里插入图片描述
此外KIE社区基于DroolsjBPMOptaPlanner还开源了一个基于云原生的业务流程决策自动化框架,即Kogito。

2.2 Activiti

官网地址
GitHub地址

Activiti是一个面向业务人员、开发人员和系统管理员的轻量级工作流BPM业务流程管理平台。

核心特性:

  • 基于Java的高性能BPMN2流程引擎
  • Apache开源许可
  • Spring完美集成
  • 支持在任何Java应用程序、服务器、集群或云中运行

Activiti的发展历程如下:

  • 2010年,jBPM的的创始人Tom Baeyens离开了JBoos后,加入了Alfresco,并基于jBPM4开发了Activiti5
  • 2012年,Tom Baeyens离职,由Tijs Rademakers接手负责
  • 2015年,Activiti发布6.0版本
  • 2016年,Tijs Rademakers离开团队,Activiti交由Salaboy团队负责
  • 2019年,Activiti发布7.0版本,即Activiti Cloud ,定位云产品,完全面向云原生架构设计开发
  • 当前,Activiti的最新版本为7.11.0

Activiti5Activiti6已经是历史版本,不再更新维护,而Activiti7是在Activiti Core基础上新增了云原生相关支持,即Activiti CloudActiviti目前各方面也已经慢慢迟暮,不太推荐使用。

2.3 Flowable

官网地址
GitHub地址

2017年,Tijs Rademakers离开Activiti后,基于Activiti6开发了Flowable6,在其基础上修复了大量BUG,并添加了很多新功能,目前最新版本为6.8.0

Flowable分为开源和商业版,开源版提供了BPMN流程引擎、CMMN引擎、DMN引擎功能。

Flowable 6.4.1版本后,重点放在了商业版产品,很多新特性已经不在开源版中发布,开源版目前更新维护并不及时,截止当前,最新的版本还是去年12月份发布的,所以也不太推荐使用。

2.4 Camunda

官方网站
中文文档

Camunda是基于Activiti5开发的一个用于工作流框架,由德国一家工作流程自动化软件开发商提供,也提供了开源版和商业版。

Camunda主要分以下两个版本:

  • Camunda 7:基于组件,支持BPMNCMMNDMN
  • Camunda 8:基于云原生SaaS模式,但是开源的功能较少

近两年来,Camunda 7凭借其⾼性能、⾼扩展性、⾼稳定性、优良的API设计、技术生态丰富等优点,已经在国内渐渐流行起来,非常推荐使用。

2.5 compileflow

GitHub地址

compileflow Process引擎是淘宝工作流TBBPM引擎之一,是专注于纯内存执行,无状态的流程引擎,通过将流程文件转换生成java代码编译执行,简洁高效。当前是阿里业务中台交易等多个核心系统的流程引擎。

compileflow能让开发人员通过流程编辑器设计自己的业务流程,将复杂的业务逻辑可视化,为业务设计人员与开发工程师架起了一座桥梁。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/861693.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

综合技巧练习 - Packet Tracer 简介

1.7.1:综合技巧练习 - Packet Tracer 简介 拓扑图: 以基本完成的逻辑拓扑为起点。 设备 接口 IP 地址 子网掩码 默认网关 R1-ISP Fa0/0 192.168.254.253 255.255.255.0 不适用 S0/0/0 10.10.10.6 255.255.255.252 R2-Central Fa0/0 17…

DTC服务(0x14 0x19 0x85)

DTC相关的服务有ReadDTCInformation (19) service,ControlDTCSetting (85) service和ReadDTCInformation (19) service ReadDTCInformation (19) service 该服务允许客户端从车辆内任意一台服务器或一组服务器中读取驻留在服务器中的诊断故障代码( DTC )信息的状态…

并发——ThreadPoolExecutor 类简单介绍

文章目录 1 ThreadPoolExecutor 类分析2 推荐使用 ThreadPoolExecutor 构造函数创建线程池 线程池实现类 ThreadPoolExecutor 是 Executor 框架最核心的类。 1 ThreadPoolExecutor 类分析 ThreadPoolExecutor 类中提供的四个构造方法。我们来看最长的那个,其余三个…

P15 电路定理——巧妙-灵性-智慧

1、戴维南定理 2、戴维南定理的证明 对于线性含源的一个结构, 右边接一个支路N,再用电流源替代N 情况一:A没有独立源,那么A可以等价于一个电阻 情况二:A有独立源,例证法: 使用叠加法&#xf…

获取 Android 的 SHA1 值

1、调试版,可以直接在 Android studio 中的 gradle 中查看。也可以用下面方法进行 前提要先确定签名文件所在的路径:调试版默认使用的签名文件是debug.keystore,文件处于 C 盘用户目录下的.android文件夹下。打开命令行工具, 1、…

分析为何科研转化率低

最近这两天,[广西审计:高校1.31亿科研经费成果转化率为0] 话题引发热议。据报道,广西壮族自治区审计厅近日公布的《关于2022年度自治区本级预算执行和其他财政收支的审计工作报告》披露了广西在科教振兴资金审计方面 9 所高校开展科研的相关情况。报告发…

Flutter:文件上传与下载(下载后预览)

Dio dio是一个强大的Dart Http请求库,提供了丰富的功能和易于使用的API,支持文件上传和下载。 这个就不介绍了,网上有很多的封装案例。 background_downloader 简介 适用于iOS,Android,MacOS,Windows和L…

使用 prometheus client SDK 暴露指标

目录 1. 使用 prometheus client SDK 暴露指标1.1. How Go exposition works1.2. Adding your own metrics1.3. Other Go client features 2. Golang Application monitoring using Prometheus2.1. Metrics and Labels2.2. Metrics Types2.2.1. Counters:2.2.2. Gauges:2.2.3. …

【ECharts】树图

将3级改成4级 demo上是3层,如何实现4层。 initialTreeDepth: 4

【hello C++】特殊类设计

目录 一、设计一个类,不能被拷贝 二、设计一个类,只能在堆上创建对象 三、设计一个类,只能在栈上创建对象 四、请设计一个类,不能被继承 五、请设计一个类,只能创建一个对象(单例模式) C🌷 一、设计一个类&…

zynq复位管脚的方式

问:实际应用中,是不是PS_SRST_B必须,但是POR不是必须? 答:POR是必须有的,不然只能掉电复位,POR都是画上的。POR是整个芯片最高级复位,就是整个芯片都会复位。PS支持外部上电复位信号…

数据库新闻速递 -- POSTGRESQL 正在蚕食数据库市场 (翻译)

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请加 liuaustin3微信号 ,在新加的朋友会分到3群&#xff…

什么是DNS服务器的层次化和分布式?

DNS (Domain Name System) 的结构是层次化的,意味着它是由多个级别的服务器组成,每个级别负责不同的部分。以下是 DNS 结构的层次: 根域服务器(Root Servers): 这是 DNS 层次结构的最高级别。全球有13组根域…

开发命名规范

1项目命名规范 1、工程项目名,尽量想一些有意义、有传播价值的名称;比如星球、游戏、名人、名地名等;取名就跟给孩子取名一样,独特、有价值、有意义、好传播 2、所有的类都必须添加创建者和创建日期 3、所有代码:包括…

vteamled透明屏,在商业领域中的显示效果怎么样?高清、亮度

vteamled透明屏是一种新型的显示屏技术,它采用透明材料制成,可以实现透明显示效果。vteamled透明屏具有以下特点: 首先,vteamled透明屏具有高透明度。 它采用高透明材料制成,可以达到80%以上的透明度,使得…

Laravel 框架数据库配置构造器的查询.分块.聚合 ⑤

作者 : SYFStrive 博客首页 : HomePage 📜: THINK PHP 📌:个人社区(欢迎大佬们加入) 👉:社区链接🔗 📌:觉得文章不错可以点点关注 &#x1f44…

激活函数总结(四):Hard系列激活函数补充(HardSigmoid、HardTanh、Hardswish)

激活函数总结(四):Hard系列激活函数补充 1 引言2 激活函数2.1 HardSigmoid激活函数2.2 HardTanh激活函数2.3 Hardswish激活函数 3. 总结 1 引言 在前面的文章中已经介绍了过去大家较为常见的激活函数 (Sigmoid、Tanh、ReLU、Leaky ReLU、PRe…

ruoyi-cloud微服务新建子模块

ruoyi-cloud微服务新建子模块 1、复制system模块 直接复制 modules下面已有的system模块,改名为 test 2、在modules下的 pom.xml文件中添加子模块 3、进入 test模块修改 pom.xml 把原有的system 修改成test 4、修改对应的包名、目录名和启动应用程序为test 5、修…

zustand:基于 Flux 模型实现的小型、快速和可扩展的状态管理

目录 ReactStep 1:安装Step 2:Store 初始化Step3:Store 绑定组件,就完成了!效果图 VueStep 1: 安装Step 2: Store 初始化Step 3: Store 绑定组件,就完成了!效果图 微前端为什么你需要 zustand-pub ?安装ste…

使用基于jvm-sandbox的对三层嵌套类型的改造

使用基于jvm-sandbox的对三层嵌套类型的改造 问题背景 先简单介绍下基于jvm-sandbox的imock工具,是Java方法级别的mock,操作就是监听指定方法,返回指定的mock内容。 jvm-sandbox 利用字节码操作和自定义类加载器的技术,将原始方法…