市场上比较有名的开源流程引擎有osworkflow、jbpm、activiti、flowable、camunda 。其中:Jbpm4、Activiti、Flowable、camunda四个框架同宗同源,祖先都是Jbpm4,开发者只要用过其中一个框架,基本上就会用其它三个 。低代码平台、办公自动化(OA)、BPM平台、工作流系统均需要流程引擎功能,对于市场上如此多的开源流程引擎,哪个功能和性能好,该如何选型呢?
文章插图
一、主流开源流程引擎介绍1、Osworkflow
Osworkflow是一个轻量化的流程引擎,基于状态机机制,数据库表很少,Osworkflow提供的工作流构成元素有:步骤(step)、条件(conditions)、循环(loops)、分支(spilts)、合并(joins)等,但不支持会签、跳转、退回、加签等这些操作,需要自己扩展开发,有一定难度,如果流程比较简单,osworkflow是很好的选择,但该开源组件已过时,长时间没有版本升级了 。
官方网站:
http://www.opensymphony.com/osworkflow/
2、JBPM
JBPM由JBoss公司开发,目前最高版本JPBM7,不过从JBPM5开始已经跟之前不是同一个产品了,JBPM5的代码基础不是JBPM4,而是从Drools Flow重新开始,基于Drools Flow技术在国内市场上用的很少,所有不建议选择jBPM5以后版本,jBPM4诞生的比较早,后来JBPM4创建者Tom Baeyens离开JBoss后,加入Alfresco后很快推出了新的基于jBPM4的开源工作流系统Activiti, 另外JBPM以hibernate作为数据持久化ORM也已不是主流技术,现在时间节点选择流程引擎,JBPM不是最佳选择 。
官方网站:https://www.jbpm.org/
3、Activiti
activiti由Alfresco软件开发,目前最高版本activiti 7 。activiti的版本比较复杂,有activiti5、activiti6、activiti7几个主流版本,选型时让人晕头转向,有必要先了解一下activiti这几个版本的发展历史 。activiti5和activiti6的核心leader是Tijs Rademakers,由于团队内部分歧,在2017年时Tijs Rademakers离开团队,创建了后来的flowable, activiti6以及activiti5代码已经交接给了 Salaboy团队, activiti6以及activiti5的代码官方已经暂停维护了, Salaboy团队目前在开发activiti7框架,activiti7内核使用的还是activiti6,并没有为引擎注入更多的新特性,只是在activiti之外的上层封装了一些应用 。结论是activiti谨慎选择 。
官方网站:https://www.activiti.org/
4、flowable
flowable基于activiti6衍生出来的版本,flowable目前最新版本是v6.6.0,开发团队是从activiti中分裂出来的,修复了一众activiti6的bug,并在其基础上研发了DMN支持,BPEL支持等等,相对开源版,其商业版的功能会更强大 。以flowable6.4.1版本为分水岭,大力发展其商业版产品,开源版本维护不及时,部分功能已经不再开源版发布,比如表单生成器(表单引擎)、历史数据同步至其他数据源、ES等 。Flowable 是一个使用 JAVA 编写的轻量级业务流程引擎,使用 Apache V2 license 协议开源 。
2016 年 10 月,Activiti 工作流引擎的主要开发者离开 Alfresco 公司并在 Activiti 分支基础上开启了 Flowable 开源项目 。基于 Activiti v6 beta4 发布的第一个 Flowable release 版本为6.0 。Flowable 项目中包括 BPMN(Business Process Model and Notation)引擎、CMMN(Case Management Model and Notation)引擎、DMN(Decision Model and Notation)引擎、表单引擎(Form Engine)等模块 。
官方网站:
https://flowable.com/open-source/
5、Camunda
Camunda基于activiti5,所以其保留了PVM,最新版本Camunda7.15,保持每年发布2个小版本的节奏,开发团队也是从activiti中分裂出来的,发展轨迹与flowable相似,同时也提供了商业版,不过对于一般企业应用,开源版本也足够了,强烈推荐camunda流程引擎,功能和性能表现稳定 。
选择camunda的理由:
(1)通过压力测试验证Camunda BPMN引擎性能和稳定性更好 。
(2)功能比较完善,除了BPMN,Camunda还支持企业和社区版本中的CMMN(案例管理)和DMN(决策自动化) 。Camunda不仅带有引擎,还带有非常强大的工具,用于建模,任务管理,操作监控和用户管理,所有这些都是开源的 。
官方网站:
https://docs.camunda.org/manual/7.15/introduction/
二、flowable与Camunda对比分析1、功能方面对比
由于Flowable与Camunda好多功能都是类似的,因此在这里重点罗列差异化的功能
(1)camunda支持流程实例的迁移,比如同一个流程有多个实例,多个流程版本,不同流程实例运行在不同的版本中,camunda支持任意版本的实例迁移到指定的流程版本中,并可以在迁移的过程中支持从哪个节点开始 。
推荐阅读
- 广告策划的写作技巧与流程 广告策划案格式
- 网店开店流程是怎样的?
- 更改抚养权的办理流程 变更抚养权
- 一般的婚礼流程是怎样的?
- 密室逃脱17通关流程是什么?
- 大型活动组织工作流程模板 活动组织
- 虚幻引擎|饭制虚幻5《恐龙危机》概念预告 美女大战恐龙
- 游戏引擎|担心Unity、虚幻无法使用:俄罗斯讨论自研游戏引擎
- smt是什么岗位?
- 一个公司财务工作流程 房地产财务管理制度