小白学流程引擎-FLowable(一) —FLowable是什么

小白学流程引擎-FLowable(一) | FLowable是什么

一、什么是流程引擎?

通俗的说,流程引擎就是多种业务对象在一起合作完成某件事情的步骤,把步骤变成计算机能理解的形式就是流程引擎。

流程引擎,用来驱动业务按照设定的固定流程去流转的东西,在复杂多变的业务情况下,使用既定的流程能够大大降低我们设计业务的成本,并且保证了我们业务执行的准确性。

流程引擎应用广泛,在由流程驱动的各种系统中都有应用,例如OA、CRM、ERP、ECM、BI等。在企业应用中还有很多产品或平台集成流程引擎,用来处理系统运行过程中发起的业务流程。

Flowable是一个使用Java编写的轻量级业务流程引擎。

OA流程审批系统就是用到了流程引擎。
在这里插入图片描述

二、流程引擎框架有哪些?

常见的开源流程引擎有Osworkflow,JBPM,Activiti,Flowable,Camunda等。

其中:Jbpm4、Activiti、Flowable、camunda四个框架同宗同源,祖先都是Jbpm4,开发者只要用过其中一个框架,基本上就会用其它三个。开发低代码平台、OA系统、BPM软件均需要流程可视化功能,而流程可视化核心是流程引擎和流程设计器,对于市场上如此多的开源流程引擎,哪个功能和性能好,该如何选型呢?

三、常见的流程引擎对比

Osworkflow
是一个轻量级的流程引擎,提供的工作流构成元素有:步骤(step)、条件(conditions)、循环(loops)、分支(spilts)、合并(joins)等,但不支持会签、跳转、退回、加签等这些操作,需要自己扩展开发,有一定难度。如果流程比较简单,可以使用,但笔者不推荐。
官方网站:http://www.opensymphony.com/osworkflow/

JBPM
JBPM是一套灵活的商业进程管理 (BPM) 套件。轻量、开源(基于Apache License 2.0) 、使用Java实现。你可以用于商业进程与案例整个生命周期中的建模、执行与监控。
官方网站:https://www.jbpm.org/

Activiti
activiti由Alfresco软件开发,目前最高版本activiti 7。
activiti的版本比较复杂,有activiti5、activiti6、activiti7几个主流版本,选型时让人晕头转向,有必要先了解一下activiti这几个版本的发展历史。
由于团队内部分歧,在2017年时Tijs Rademakers离开团队,创建了后来的flowable, activiti6以及activiti5代码已经交接给了 Salaboy团队, activiti6以及activiti5的代码官方已经暂停维护了, Salaboy团队目前在开发activiti7框架,activiti7内核使用的还是activiti6,并没有为引擎注入更多的新特性,只是在activiti之外的上层封装了一些应用。结论是activiti谨慎选择。
官方网站:https://www.activiti.org/
github地址:https://github.com/Activiti/Activiti

Flowable
flowable基于activiti6衍生出来的版本,是一个使用Java编写的轻量级业务流程引擎,使用 Apache V2 license 协议开源。
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/
github地址:https://github.com/flowable/flowable-engine

Camunda
Camunda基于activiti5,所以其保留了PVM,开发团队也是从activiti中分裂出来的,发展轨迹与flowable相似,同时也提供了商业版,不过对于一般企业应用,开源版本也足够了。
相对开源流程引擎来说,Camunda的功能和性能表现的更好更稳定。在性能和稳定性表现好,功能也是对比其他开源流程引擎来说更丰富和完善。
官方网站:https://docs.camunda.org/manual/7.15/
github地址:https://github.com/camunda/camunda-bpm-platform

更多
Activiti,Flowable,Camunda的详细对比可以翻阅文章末的参考文献。

四、总结

流程引擎没有最优的一个,只有更适合的一个。选择符合自己业务发展的需要来选择对于的流程引擎。

以上的常见的开源流程引擎,Osworkflow功能简单,很多功能不支持;JBPM可能需要大量的扩展开发,才能实现中国特色的复杂流程需求,因此JBPM不是最佳选择;Activiti的版本比较复杂,有多个主流版本,选型复杂,当然Activiti也还不错,是后续Flowable和Camunda的前身;Flowable和Camunda相比Activiti,功能更完善,性能更好,当然Camunda会更优。
当然,Activiti,Flowable和Camunda这三个选择任意一个作为业务的流程引擎,都是能够满足大多是场景需求的,还要结合业务难易需求,系统架构等方面来综合考虑。

题外话,笔者在公司主要负责公司内部的流程引擎系统的开发,使用的是Flowable,后续会记录学习Flowable的笔记,一是让自己的知识形成体系化,二是让更多想要学习Flowable的同学们得到一点点帮助也好。

【参考文献】
1,Flowable用户手册v6.3.0
https://tkjohn.github.io/flowable-userguide/
2,CSDN博主「大龄码农有梦想」的原创文章“osworkflow、jbpm、activiti、flowable、camunda开源流程引擎哪个好?”
https://lowcode.blog.csdn.net/article/details/116405594
3,CSDN博主「分享牛」的原创文章“flowable camunda activiti 功能对比”
https://blog.csdn.net/qq_30739519/article/details/86682931
4,CSDN博主「分享牛」的原创文章“Camunda/Flowable/Activiti技术发展史/盘古BPM框架对比最新版”
https://blog.csdn.net/qq_30739519/article/details/105050776

猜你喜欢

转载自blog.csdn.net/weixin_44143114/article/details/128048613