activiti与flowable的区别

原文地址:https://www.pianshen.com/article/3690508280/

在详细说明activiti与flowable的细节区别之前,我们需要说明一下这两个框架的发展史。

我在写Activiti权威指南的时候,大概是2016年7月份左右。给清华大学出版社交稿的时候大概在2017年3月份左右、最终出版是2017年5月份左右。其实在2016.7~2017.5期间activiti团队内部已经产生了重大的分歧。关于新的activiti新团队与原有的团队重要开发人员我们罗列一下,细节如下:

上图是Tijs Rademakers,算是activiti5以及6比较核心的leader了。现在是flowable框架的leader。

Joram Barrez  算是activiti5以及6比较核心的leader了。目前从事flowable框架开发。

Salaboy Activiti Cloud BPM leader(Activiti Cloud BPM 也就是目前的activiti7框架)

Tijs Rademakers以及Salaboy目前是两个框架的leader。

    特此强调一点:activiti5以及activiti6、flowable是Tijs Rademakers团队开发的。

Activiti7是 Salaboy团队开发的。activiti6以及activiti5代码目前有 Salaboy团队进行维护。因为Tijs Rademakers团队去开发flowable框架了,所以activiti6以及activiti5代码已经交接给了 Salaboy团队(可以理解为离职之前工作交接)。目前的activiti5以及activiti6代码还是原Tijs Rademakers原有团队开发的。Salaboy团队目前在开发activiti7框架。对于activiti6以及activiti5的代码官方已经宣称暂停维护了。activiti7就是噱头 内核使用的还是activiti6。并没有为引擎注入更多的新特性,只是在activiti之外的上层封装了一些应用。

    注意:activiti6的很多框架bug在flowable框架中已经修复的差不多了。

我们不妨看一下这两个框架的github分支情况,侧民印证下我上面说的结论。

Activiti框架情况

activiti的github地址;https://github.com/Activiti/Activiti

通过上面的一系列图,可以看出来。activiti5以及ativiti6的核心开发团队是Tijs Rademakers团队。activiti6最终版本由Salaboy团队发布的。

可能很多人有疑惑,activiti6核心代码是Tijs Rademakers团队开发的,为何是Salaboy团队发布的呢?很简单,因为这个时候Tijs Rademakers团队已经去开发flowable去了。flowable是基于activiti-6.0.0.Beta4 分支开发的。下面我们截图一些flowable的发展。

Flowable框架情况

flowable的github地址:https://github.com/flowable/flowable-engine

关于更多的Activiti6视频地址:https://ke.qq.com/course/package/11402?tuin=84de321b

关于更多的Flowable视频地址:https://ke.qq.com/course/package/11431?tuin=84de321b

目前Flowable已经修复了activiti6很多的bug,可以实现零成本从activiti迁移到flowable。

flowable目前已经支持加签、动态增加实例中的节点、支持cmmn、dmn规范。这些都是activiti6目前版本没有的。

1、flowable已经支持所有的历史数据使用mongdb存储,activiti没有。

2、flowable支持事务子流程,activiti没有。

3、flowable支持多实例加签、减签,activiti没有。

4、flowable支持httpTask等新的类型节点,activiti没有。

5、flowable支持在流程中动态添加任务节点,activiti没有。

6、flowable支持历史任务数据通过消息中间件发送,activiti没有。

7、flowable支持java11,activiti没有。

8、flowable支持动态脚本,,activiti没有。

9、flowable支持条件表达式中自定义juel函数,activiti没有。

10、flowable支持cmmn规范,activiti没有。

11、flowable修复了dmn规范设计器,activit用的dmn设计器还是旧的框架,bug太多。

12、flowable屏蔽了pvm,activiti6也屏蔽了pvm(因为6版本官方提供了加签功能,发现pvm设计的过于臃肿,索性直接移除,这样加签实现起来更简洁、事实确实如此,如果需要获取节点、连线等信息可以使用bpmnmodel替代)。

13、flowable与activiti提供了新的事务监听器。activiti5版本只有事件监听器、任务监听器、执行监听器。

14、flowable对activiti的代码大量的进行了重构。

15、activiti以及flowable支持的数据库有h2、hsql、mysql、oracle、postgres、mssql、db2。其他数据库不支持的。使用国产数据库的可能有点失望了,需要修改源码了。

16、flowable支持jms、rabbitmq、mongodb方式处理历史数据,activiti没有。

其他的后续再来总结、上述的新特性在我们的系列课程在基本都给大家讲解了。

原文地址:https://www.cnblogs.com/eyesfree/p/15500197.html