工作流框架flowable6与activiti7的选择

flowable与activiti的历史渊源

Activiti和Flowable都是来自于一个叫JBPM的开源工作流。在早期Jboss(现已被ReHat收购)发行JBPM4的时候,因为合作伙伴关系闹的不开心。于是其中一个核心人员离职。加入了Alfresco(Activiti所在的公司)。并在同一年发布了Activiti的第一个版本即Activiti5.0.alpha1。这个版本号直接从5.0开始就很有意思了。表示其为携带了JBPM4的所有特性。正式叫板JPBM4。
JBPM4也是被使用的最广的一个版本之一其中正有我的老东家(工作流只是个辅助业务的,我老东家在上面自己做了很多东西,故升级版本是不现实的)。也在同一年,Jboss对JBPM4进行了重构,使用了自己公司新研发的一套规则引擎Drools进行重构。将JBPM4升级到了JBPM5。但是那时候国内更多软件基于Tomcat上进行部署,JBoss所用甚少。故JBPM后续版本在国内占据市场远远不如Activiti。
Activiti就一直在5.0这个版本一直迭代开发。 国外的开源软件有个好习惯就是:在当前开发的这个版本趋于稳定的时候,会开始陆陆续续构建下一个大版本。Activiti那时候也想的很美好。5.0这个版本这么稳定了,6.0应该没什么问题。但是,天要下雨,娘要嫁人。Activiti的创作者,也因为和合作伙伴关系闹的不开心。又一次上演了离家出走,先后开办了Camunda和Flowable。导致了Activiti最后5.0的问题修复不过来了,官方放弃了这个版本。但是Activiti5可以说的上在工作流的标杆版本之一。至今仍被N多公司进行使用。工作流毕竟只是一个辅助业务的东西,故版本的大升级对于一个公司来说,是代价巨大的。
Flowable在开办之初,比Activiti当初直接继承JBPM的版本更为直接。直接继承了他的小版本。直接就从Flowable5.22这个版本开始。和当时的Activiti的小版本一致。真是冤冤相报何时了。。。
几者的关系以及热门度如下图所示。颜色越深表示使用者越多。
在这里插入图片描述

下面将着重介绍下Activiti7和Flowable6的选型。Camunda是商业收费并且不开源。故此处就不做介绍。。。
为什么不介绍Activiti5? 因为本着用新不用旧,更好更高吹牛逼的原则。新研发的东西基本不会基于Activiti这个官方已经放弃了维护的版本进行初次开发符合自己业务的系统。但是老系统建议沿用,不建议进行任何所谓的升级的骚包操作。。。版本差距巨大。
为什么不介绍Activiti6? 如上文所说,国外的开源软件有个好习惯就是:在当前开发的这个版本趋于稳定的时候,会开始陆陆续续构建下一个大版本。但是中途核心人员的离开使得Activiti无法继续进行。不知道是不是出于版本的衔接,还是KPI的考量?直接就发布Activiti并在短短时间之内,开始构建Activiti7。

主流flowable6与activiti7的比较

由于当前微服务和敏捷开发之风盛行。Flwoable和Activiti为了这块的技术市场。分别推出了基于SB(SpringBoot)上所做的SpringBootStarter。来支持微服务。更推出自己的docker镜像并对Jeckins和Kubernates做了良好的支持。但是由于Activiti7正式的release版本较晚,以及刚开始发布的GA版本居然不支持JDK8这个广为使用的JDK版本而是直接就到JDK11。这使得众多的开发者,不得不转到Flowable。Activiti7从SR1版本才开始支持JDK8,并在现在陆陆续续在构建7.1。但是大部分市场已经转型到了Flowable。但是也靠着忠实的fans拉回了不少市场。
如下图是在Activiti7对GA版本的截图:其更多是为了支持微服务和镜像服务编排以及发布了新的一款流程Modeler(基于Camunda的bpmn.js做的开发)。Flowable的Modeler也正在往此处转型。更多请到官网去看其ReleaseNote。

自由式流程的支持
因为基于BPMN2.0的规范来讲,对自由式流程,比如任意加减流程节点,跳回任意节点在设计规范之初就是不支持的。这也是我很好奇国外的领导人的风格?难道不为所欲为么???这种设计很明显的在国内是不太符合的。。。任意驳回跳转到任意节点是在正常不过的一种(骚包)操作了。。。2者都需要一定性的定制开发。不复杂,后续会对这块进行详细的讲解。
对数据库结构版本变化的追溯

Activiti7和Flowable都基于Liquibase上做了数据库版本更新的统一追溯。

对CMMN/DMN的支持

这个其实在我看来,这个没啥比较的意义。无论与CMMN还是DMN都还处于太过于简单的业务上进行决策。实际使用中,对于任何一个东西的系统做自动决策,肯定都需要大量的广而复杂的规则进行验证。而非简单的类似BPMN2.0的Gateway的如此简单。建议此块使用Drool上进行规则的规划以及验证

flowable6与activiti7 GitHub社区活跃度比较

在这里插入图片描述
在这里插入图片描述
根据GitHub上的更新评论,社区讨论程度来看,两者并无明显差别。

总结

工作流引擎往往只是个辅助业务进行实现的东西。这也是Activiti7和Flowable中IDM模块被称为鸡肋的原因所在。框架的选择只是初步。更重要的是针对自己业务的封装。工作流上的节点对于用户来说,是处于灰黑色地带的。如果让我再次重新选择工作流,我大概率会偏向于A7。但是已经基于Flowable上已经做了业务封装的,不建议替换。。。

  • 8
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Flowable是一套由原Activiti团队开发的工作流框架,它支持cmmn引擎和dmn引擎,并对Activiti的源码进行了重构,以提升性能和流畅度。Flowable可以帮助零基础的学员逐步学习并掌握工作流的应用。Flowable还提供了一个可操作界面的Web应用,称为Flowable UI,通过该应用可以进行流程的设计和操作。 Flowable提供了多种方式进行流程的设计,包括手动编写BPMN文件、使用Eclipse Designer、Idea actiBPM和Flowable UI等工具。此外,Flowable还提供了详细的文档和教程来帮助用户快速上手和理解框架的使用方法。 Flowable的表结构是其基础操作和整合Spring Boot的重要组成部分。用户可以根据具体需求配置依赖和文件,并通过编写代码来实现Flowable的各种功能。 总之,Flowable是一个功能强大的工作流框架,通过它可以实现复杂的流程管理和控制,并且提供了丰富的文档和工具来帮助用户快速上手。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Flowable工作流实战课程](https://download.csdn.net/download/hnmwykka/85399850)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [工作流框架Flowable](https://blog.csdn.net/m0_37583655/article/details/123899994)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值