Camunda、Activiti、Flowable 等各大工作流对比选择
目前,市场上比较有名的开源流程引擎有osworkflow、jbpm、activiti、flowable、camunda等。其中:Jbpm4、Activiti、Flowable、camunda 四个框架同宗同源,祖先都是 Jbpm4。
对于比较简单的流程,OsWorkFlow 会是一个比较好的选择,对于复杂的流程就不推荐了。OsWorkFlow是一个轻量化的流程引擎,基于状态机机制,数据库表很少,Osworkflow 提供的工作流构成元素有:步骤、条件、循环、分支、合并等,但不支持会签、跳转、退回、加签等这些操作。
2.JBPM
JBPM 目前最高版本 JPBM7,不过,从 JBPM5 开始已经跟之前不是同一个产品了,JBPM5 的代码基础不是 JBPM4,而是从Drools Flow重新开始,基于 Drools Flow 技术在国内市场上用的很少,所以不建议选择 jBPM5 以后的版本。jBPM4 诞生的比较早,且 JBPM4 以 hibernate 作为数据持久化 ORM 也已不是主流技术,所以,当下选择流程引擎,JBPM 不是最佳的选择。
3.Activiti
Activiti 目前最高版本是Activiti7。Activiti 的版本比较复杂,有 Activiti5、Activiti6、Activiti7 几个主流版本,选型时让人晕头转向,有必要先了解一下 Activiti 这几个版本的发展历史。
Activiti5 和 Activiti6 的核心 leader 是 Tijs Rademakers,由于团队内部分歧,在 2017 年时 Tijs Rademakers 离开团队,创建了后来的 Flowable。Activiti6以及Activiti5代码已经交接给了 Salaboy 团队,Activiti6 以及 Activiti5 的代码官方已经暂停维护了,所以,新开发项目不建议选择 activiti5 以及 ativiti6。
Salaboy 团队目前在开发Activiti7框架,activiti7 内核使用的还是 Activiti6,并没有为引擎注入更多的新特性,只是在 Activiti 之外的上层封装了一些应用。activiti7 定位为云产品,完全面向云原生架构设计开发,依赖 k8s 等多个 CNCF 云原生组件,开发、集成、部署和运维均比较复杂,对团队技术人员能力要求高。所以,activiti 应谨慎选择。
activiti的两个最大优点:
1、 最大的优点就是免费开源,这也是很多人选择的原因
2、 小项目中应用简单的串行并行流转基本能满足需求。
activiti 的最大缺点:
Activity 需要经过大量的扩展才能应用起来,直接从官网下载下来的 Activity 要达到企业级应用还需要一段痛苦的改造之路要走。Activity 的扩展非常依懒事件监听和 AOP 切面事件,代码执行到处乱跳,非常的不好维护,可读性差,维护人员的技术门槛要求也非常高,越到后面代码越难维护,久而久之就会把项目拖垮掉。
4.Flowable
Flowable 基于 activiti6 衍生出来的版本,开发团队是从 Activiti 分裂出来的,修复了一众 Activiti6 的 bug,并在其基础上研发了 DMN 支持,BPEL 支持等,相对开源版,其商业版的功能会更强大。以flowable6.4.1版本为分水岭,开始大力发展其商业版产品,开源版本变得维护不及时,部分功能已经不再对开源版发布了。
Flowable是一个使用 Java 编写的轻量级业务流程引擎,使用 Apache V2 license 协议开源。Flowable Work 版本是一个功能相当强大的低代码自动化平台,通过将三个开放标准 BPMN、CMMN 和 DMN 的强大功能与低代码功能相结合,将业务流程管理提升到了一个新的水平。
5.Camunda
Camunda 基于 Activiti5,所以其保留了 PVM,其开源团队也是从 activiti 中分裂出来的,发展轨迹与 flowable 相似,同时也提供了商业版。不过对于一般企业应用,开源版也足够了,camunda7在功能方面比 flowable、activiti 流程引擎强大,性能和稳定性更突出。
2022 年 4 月,Camunda 官方发布了Camunda8新版本,Camunda8 和 Camunda7 在技术架构方面有着本质的区别。Camunda8 定位于云架构 SaaS 模式,基于 Zeebe 流程引擎内核,采用 gRPC API 接口技术,在开源和商业授权方面,Camunda8 有诸多限制。Camunda8仅有 Zeebe、modeler、elastic 组件是开源的,可以免费使用,其它的组件 Camunda Operate、Camunda Tasklist 、Camunda Optimize 等组件是需要商业授权才能使用。
6.Snaker
snaker 是一个基于 Java 的轻量级工作流引擎,适用于企业应用中常见的业务流程,定位于简单集成,多环境支持。snaker的主要优缺点如下:
优点:
1.只需要 9 张表,即可开始业务流程的驱动使用,主要针对中小型项目需要增加工作流特性的系统;相比于UFLO2、Activti十几张以上表,上手和使用的难度很低。
2.核心代码少,源码只有 7000 多行,设计、编写非常规范,易懂、易改造。对于学习工作流原理或者二次开发,都很友好;
3.对外提供了可扩展的接口,支持流程设计器,节点自定义,属性自定义,表单自定义等;
缺点:
1.受限于轻量级限制,支持的业务场景不够丰富;
2.流程设计器不支持 IDEA 插件;
3.稳定版为 2.4 版本,目前已停止更新维护。
以上就是对几个常用工作流的一个基础介绍,更多了解请点击选择:osworkflow、jbpm、activiti、flowable、camunda、snaker。
评论