有道无术,术尚可求,有术无道,止于术。
本系列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年,
JBoss
被Red Hat
红帽公司收购,jBPM
获得了大量的社区和商业支持 - 2009年,
jBPM
发布4.0版本 - 2010年,创始人
Tom Baeyens
离开了JBoss
,jBPM
交由Kris Verlaenen
负责 - 2011年,
jBPM
基于Drools Flow
发布5.0的全新版本,完全抛弃了jBPM4
的代码。支持BPMN
、业务活动监控、流程可视化 - 2013年,
jBPM
发布6.0版本 - 2017年,
jBPM
发布7.0版本 - 当前,
jBPM
的最新版本为7.74.0
jBPM
各方面已经落后于其他同类型框架,目前已经不是主流,不推荐使用,但是当前主流的开源工作流框架都是基于jBPM4
:
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
Activiti5
、Activiti6
已经是历史版本,不再更新维护,而Activiti7
是在Activiti Core
基础上新增了云原生相关支持,即Activiti Cloud
。Activiti
目前各方面也已经慢慢迟暮,不太推荐使用。
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:基于组件,支持
BPMN
、CMMN
、DMN
- Camunda 8:基于云原生
SaaS
模式,但是开源的功能较少
近两年来,Camunda 7
凭借其⾼性能、⾼扩展性、⾼稳定性、优良的API
设计、技术生态丰富等优点,已经在国内渐渐流行起来,非常推荐使用。
2.5 compileflow
GitHub地址
compileflow Process
引擎是淘宝工作流TBBPM
引擎之一,是专注于纯内存执行,无状态的流程引擎,通过将流程文件转换生成java
代码编译执行,简洁高效。当前是阿里业务中台交易等多个核心系统的流程引擎。
compileflow
能让开发人员通过流程编辑器设计自己的业务流程,将复杂的业务逻辑可视化,为业务设计人员与开发工程师架起了一座桥梁。