发展历史
-
目前开源主流的工作流框架有三个:Activiti 7.x,Camunda 7.x,Flowable 6.x,这三个框架同宗同源,都是从JBPMN4衍生出来的,并且都是遵照BPMN2.0规范,基于ApacheV2.0许可的开源BPM平台。
-
发展历程图:
Activiti5
- Activiti5是有Alfresco软件在2010年发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理、工作流、服务协等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。
- Activiti基于Apache许可的开源BPM平台,创始人Tom Baeyens是JBoss JBPM的项目架构师,它特色是提供了Eclipse插件,开发人员可以通过插件直接绘画出业务流程图。
- Activiti5于2010年至2019年期间发布的版本范围为:5.0.0~5.23.0,最后5.23.0更新时间为:2019.8.15
- 核心开发人员:Tom Baeyens、Tijs Rademakers、Joram Barrez
Activiti6
- Activiti6是Activiti5的升级版本,前期由Tijs Rademakers团队开发维护,后来交由Salaboy团队开发维护,不过Salaboy团队并没有实际对Activiti6进行迭代开发,而是基于Activiti6版本开始开发Activiti7,所以目前Activiti6版本还有大量BUG未修复,并且Alfresco公司已宣布暂停Activiti6的维护
Activiti7
- 由Salaboy团队基于由Activiti6核心迭代的新版本,但是没有给引擎注入更多的新特性,只是在Activiti6之外的上层封装了一些应用。
- 从2017开始截至到2022年5月,Activiti7迭代到的最新版本为:7.3.0
注意:2019年6月中旬Salboy已从Alfresco公司离职,所以Activiti7开发动向不明确
Flowable
- 由Tijs Rademakers团队开发维护,是基于Activiti6初始版本迭代带。Flowable 6.4.1 以上版本修复了大量Activiti6版本BUG
- 从2017开始截至到2022年5月,Flowable迭代到的最新版本为:6.7.2
- flowable以6.4.1版本为分水岭,大力发展其商业版产品。开源版本维护不是很及时,并且部分功能已经不再开源版发布,比如表单生成器(表单引擎)、历史数据同步至其他数据源、es等等
Camunda
- 2012年基于Activiti5.x分裂出来的一个新的开源流程引擎,称为:Camunda BPM
- 从2012开始截至到2022年5月,迭代到的最新版本为:7.18.0-alpha1,最新稳定版本为:7.17.0
- 2022年4月,Camunda云原生工作流引擎Camunda Cloud升级为:Camunda Platform 8
Activiti/Flowable/Camunda比较
对比项\引擎类型 | Activiti5.x | Activiti-7.x | Flowable-6.x | Camunda |
---|---|---|---|---|
商业化 | × | √ | √ | √ |
路线(Roadmap) | 工具型 | 云 | 工具型 | 轻量&工具型 |
PVM引擎 | √ | × | × | √ |
BPMN2引擎 | × | √ | √ | √ |
CMMN引擎 | × | √ | √ | √ |
DMN引擎 | × | × | √(开源版支持不太好) | √ |
流程设计器 | Eclipse/IDEA 插件 | Eclipse/IDEA 插件 | Eclipse/IDEA 插件 | Camunda Modeler |
流程设计器Web | × | Activiti-explorer | flowable-modeler | Web Modeler |
建模工具内容 | BPMN2 | BPMN2 | BPMN2/CMMN/DMN | BPMN2/CMMN/DMN |
扩展节点(HttpTask等) | × | × | √ | √ |
Spring Boot | √ | √ | √ | √ |
Spring Cloud | × | √ | × | √ |
Web控制台 | × | √ | √ | √ |
Rest接口 | × | √ | √ | √ |
历史异步归档 | × | × | √ | × |
异步任务全局锁 | × | × | √ | √ |
流程调度 | 需二次开发 | 需二次开发 | 原生API部分支持 | 原生API支持 |
流程实例的迁移 | 需二次开发 | 需二次开发 | 需二次开发 | 原生API支持 |
双异步机制 | × | × | × | √ |
多种脚本语言 | JUEL、groovy | JUEL、groovy | JUEL、groovy | python、ruby、groovy、JUEL |
nosql支持 | × | × | √ | 不原生支持,提供解决方案 |
外部任务 | × | × | × | √ |
流程图片生成API | √ | √ | √ | × |