Activiti和Flowable对比(未完)

186 阅读3分钟
对比项\引擎Activiti-7.xFlowable-6.xCamunda-
商业化
路线(Roadmap)工具型轻量&工具型
PVM引擎××
BPMN2引擎
CMMN引擎××
DMN引擎×√(开源版支持不太好)
建模工具选型√(AngularJS)√(AngularJS)√(Bpmn.js&Camunda Provider)
建模工具内容BPMN2BPMN2/CMMN/DMNBPMN2/CMMN/DMN
扩展节点(Mule/Http等)×
Spring Boot
Spring Cloud××
Web控制台
Rest接口
历史异步归档××
异步任务全局锁××

activiti7:核心只支持BPMN2协议,流程方面较activiti6没有太大变更,近期重心放到了商业版和云上面,只用BPMN2协议,可以考虑。

flowable:功能和代码层面,是这三个里面最重的。更注重功能、扩展性和性能。也是因此与activiti分家。Flowable比较臃肿,它支持了太多的东西,以致于如果想做POC或者Demo,环境搭建这一步都够呛。但是如果你本身就想做一个扩展性强的,性能高的工作流平台(SaaS\PaaS),Flowable是不二的选择。大而全。

协议

BPMN

案例:请假流程是一个有严格流程顺序定义的执行流程,这种就类似我们项目中大部分工作流了,有严格执行顺序,并且根据任务类型,进行顺序执行等,这种就非常适合采用 BPMN 去创建

CMMD

案例:大人白天需要上班,想监控孩子每天在家里都干什么了?写作业、看电视、玩游戏、做家务,这种没有固定的顺序的就不适合采用BPMN协议去实现了,因此 CMMN协议就出来了,通过定义阶段(stage) 开始、结束事件、包含哪些任务 的形式进行流程定义 ,当规定在早上9点到晚上5点这个出发点内,阶段任务里面都执行了哪些进行定义,当孩子执行了某个事件就下发对应通知,这样就更符合我们的要求了

DMN

案例:学校的升旗手招聘,需要招聘3名符合身高180185的,体重 7580KG 的气质男生当升旗手,于是大家踊跃报名,那么此刻通过 DMN 决策流程进行条件筛选,只有符合条件的同学会进入下一轮筛选

工作流引擎使用场景

工作流在企业管理系统中是高频使用的功能,一个最常见的例子是请假加班申请与审批的过程。事实上,工作流引擎能支持的业务场景远远不止单据审批,几乎所有涉及到业务流转、多人按流程完成工作的场景背后都可以通过工作流引擎作为支撑。

基于工作流引擎,可以搭建客户关系管理系统(CRM)、运输管理系统(TMS)、仓储管理系统(WMS)、财务费用系统等多种复杂业务系统。对于达到一定规模的企业,良好的 BPM(业务流程管理,Business Process Management)体系可以支持创建公司内横跨不同部门的复杂业务流程,既提高工作效率、又可推动企业规范化发展。