推荐几个好用的开源工作流引擎系统

news/2024/11/13 9:02:01/文章来源:https://www.cnblogs.com/hibpm/p/18301703

目前基于Java语言开发的主流开源工作流引擎有osworkflow、jbpm、activiti、flowable、camunda。其中osworkflow、jbpm技术较老已经过时,activiti包括activiti5、activiti6、activiti7三个版本,flowable分开源版和商业版,camunda包括camunda7和camunda8两个系列的版本。这么多版本的开源流程引擎,哪个功能完善、性能最好,该如何选型呢?

流程引擎选型

1、Camunda

Camunda有Camunda7和Camunda8两个版本。

(1)Camunda7: Camunda7基于activiti5发展来来,所以其保留了PVM,最新版本Camunda7.18,BPMN标准模型,保持每年发布2个小版本的节奏,除了开源版本同时也提供了商业版,不过对于一般企业应用,开源版本也足够了。camunda7在功能方面比flowable、activiti流程引擎强大,性能和稳定性更突出。

(2)Camunda8:2022年4月,官方发布了Camunda8新版本,Camunda7和Camunda8在技术架构方面有本质区别。Camunda8定位于云架构SaaS模式,基于Zeebe流程引擎内核,采用gRPC API接口技术,不再使用关系型数据库。在开源和商业授权方面,Camunda8有诸多限制,Camunda8仅有Zeebe、modeler、elastic组件是开源的,可以免费使用,其它的组件Camunda Operate、Camunda Tasklist 、 Camunda Optimize等组件是需要商业授权才能使用。

私有化部署流程引擎需求的推荐选择camunda7,大部分组件开源,可免费使用,技术生态较好,程序员上手容易。

官方网站:https://docs.camunda.org/manual/7.18/

3-流程中心

体验系统:http://www.yunchengxc.com

2、Activiti

Activiti的源头是由JBPM4流程引擎发展而来,activiti的版本比较复杂,有activiti5、activiti6、activiti7几个版本。

(1)activiti5和activiti6:activiti5以及ativiti6的核心开发团队是Tijs Rademakers团队,activiti6最终版本由Salaboy团队发布的,因为Tijs Rademakers团队后来去开发flowable流程引擎了。activiti5和activiti6的代码在github上已经4年没有更新了,官方已经停止维护和发展,新开发项目不建议选择activiti5以及ativiti6。

(2)activiti7即Activiti Cloud:定位云产品,完全面向云原生架构设计开发,依赖k8s等多个CNCF云原生组件,开发、集成、部署和运维均比较复杂,对团队技术人员能力要求高,一般中小型项目,不建议选择Activiti7,其它大型项目需谨慎选择Activiti7。

官方网站:https://www.activiti.org/

3、flowable

flowable基于activiti6衍生出来的版本,Flowable除了提供开源版本flowable-engine,它还提供了商业收费版本:Flowable Work、Flowable Orchestrate和Flowable Engage 。

(1)Flowable开源版最新版本是Flowable-7.0.0-M1,开源版本仅仅提供了流程引擎、CMMN引擎、DMN引擎功能,其它功能需要扩展开发。Flowable开源版本目前仍在持续发展,其github上源码工程较多,有技术能力的团队,可用选择Flowable进行扩展开发。

(2)Flowable Orchestrate除了支持Flowable开源版本的功能,还支持Automation Models、Case & Process Instances、High Availability & Scalability等功能。

(3)Flowable Work是一个功能强大的低代码自动化平台。它建立在我们引擎的开源版本上,但通过将三个开放标准BPMN、CMMN和DMN的强大功能与低代码功能相结合,将业务流程管理提升到了一个新的水平。  Flowable Work是一个基于SaaS化的商业收费版本。

官方网站:https://flowable.com/open-source/

二、流程设计器选型

基于activiti、flowable、camunda开源工作流引擎,如何选择一个开源免费的流程设计器,进行集成和扩展开发,快速交付项目使用。

1、bpmn-js专业流程设计器

bpmn-js 是 BPMN 2.0 渲染工具包和 Web 模型。bpmn-js 正在努力成为 Camunda BPM 的一部分。bpmn-js 使用 Web 建模工具可以很方便的构建 BPMN 图表,可以把 BPMN 图表嵌入到你的项目中,容易扩展。bpmn-js是基于原生js开发,支持集成到vue、react等开源框架中,集成起来也比较简单,而且与activiti、flowable、camunda开源工作流引擎无缝集成。使用bpmn-js也有缺点,由于bpmn-js底层依赖了画图工具diagram-js 和bpmn模型解析组件bpmn-moddle ,这两个开源组件的源代码比较复杂,一般前端开发人员很难搞定,功能和样式扩展修改比较费劲。

官方网站:https://bpmn.io/

01-bpmn.js流程设计器

建议:专业的BPM项目选择bpmn-js流程设计器,因为bpmn-js包含了全部BPMN 2.0的元素配置,设计的流程图可以很复杂,尤其是流程事件和协作,非钉钉流程设计器或OA类工作流设计器可取代。

2、仿钉钉流程设计器

阿里钉钉作为中国协同办公的主流平台,其中表单设计器和流程设计器的功能及交互风格,对国内的企业和用户影响很大,一部分专业的低代码平台/BPM厂商也推出了仿钉钉版流程设计器,也有一部分客户提出流程设计器要改造程钉钉类的。在开源社区里也有vue和react版本的仿钉钉流程设计器框架。

仿钉钉版流程设计器不能与activiti、flowable、camunda等开源流程引擎无法集成,因为钉钉版流程设计器生成的模型不是bpmn2.0标准规范,需要中间做转化才可以,转化可以是前端JS处理,也可以是后端Java处理,大部分公司是基于BPMN模型的工具类在Java后端进行处理的,这个处理相当于做一个适配器,把A模型转化成B模型,其工作量不小,而且复杂的模型转化很容易出错。

04-仿钉钉流程设计器

开源地址:https://github.com/StavinLi/Workflow-Vue3

建议:钉钉流程设计器尤其明显的优点和缺点。优点是更符合业务人员操作习惯,使用起来比较容易理解,更适合简单的人工审批流程,缺点是不能设计复杂的BPMN流程。如果系统的定位是简单的办公类需求,仿钉钉流程设计器是可取的,反之需要谨慎考虑。

3、基于G6开发流程设计器

Antv G6本是阿里Antv团队开源的一个可视化图形框架。G6 是一个简单、易用、完备的图可视化引擎,它在高定制能力的基础上,提供了一系列设计优雅、便于使用的图可视化解决方案。能帮助开发者搭建属于自己的图可视化、图分析、或图编辑器应用。G6是绘图方面也是可以选择的,可以使用 canvas 或 svg 渲染,默认是Canvas,在可视化及交互方面,G6是比较突出的,比jsplumb 更好用。

开源地址:https://github.com/guozhaolong/wfd-vue

05-g6版本流程设计器

建议:bpmn-js 版流程设计器太专业太复杂,仿钉钉流程设计器太简单使用场景太局限,有没有折中的方案?选择一个好的图画工具自行开发流程设计器,即选择Antv G6开源框架开发流程设计器就是好的方案,优点是画图功能比较强大,可按业务需求灵活定制。缺点是Antv G6的生成的流程图模型与bpmn2.0模型不一致,也需要自己开发适配器进行模块转换。

4、基于mxGraph开发流程设计器

mxGraph是一个强大的JavaScript流程图前端库,可以快速创建交互式图表和图表应用程序,国内外著名的ProcessOne和draw.io都是使用该库创建的强大的在线流程图绘制网站. 由于mxGraph是一个开放的js绘图开发框架,我们可以开发出很炫的样式,或者完全按照项目需求定制。官方网站:http://jgraph.github.io/mxgraph/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/743583.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

添加友情链接~

欢迎添加友链本文介绍下友情链接 ‍ 什么是友情链接 引自百度百科:友情链接也称为友链、交换链接、互惠链接、互换链接等,是具有一定互补优势的网站之间的简单合作形式,即分别在自己的网站上放置对方网站的 LOGO 或网站名称并设置对方网站的超级链接,使得用户可以从合作网站…

查找的问题

问题:根据片区名称和项目名称找出右表中对应的数据函数公式解决:油腻套路 =VLOOKUP($B$2,$G$5:$S$7,ROW(A1)*4+COLUMN(A1)-3,) 清新套路 =WRAPROWS(XLOOKUP(B2,G5:G7,H5:S7),4)ROW(A1)*4+COLUMN(A1)-3右拉下拉生成第一行2、3、4、5第二行6、7、8、9第三行10、11、12、13的序列…

重复的第二行前插入一行

问题:在重复序列数的第二行前插入一行Countif+查找法: 使用以下公式返回每个值出现的次数=COUNTIF(A$3:A3,A3)选取B列》查找》查找内容:2》查找范围:值》查找全部Ctrl+A选取所有查找结果后关闭查找对话框 在单元格上方插入一行 纯公式法:=LET(x,A3:A13,y,SORT(VSTACK(UNIQ…

OpenFeign 服务调用与负载

需要建两个工程,一个是服务提供者,一个是服务调用者 服务提供者 一个普通的 nacos 服务,增加一个 controller 方法即可,上一篇文章刚说了,这里简单说下 <!-- 服务提供者不调用其他服务,所以只需要注册到 nacos 的依赖 --> <dependency><groupId>com.al…

STMF4串口通信使用

目录STMF4串口通信使用USART的使用流程注意 STMF4串口通信使用前提回顾: 串口通信概念介绍1 STM32串口通信概念介绍2 针对特定stm32F4板子的串口接线折叠文本 USART指的是通用同步异步收发器,是STM32中的串行通信设备,STM32F407ZET6一共提供了6个串行接口供用户使用,其中4个…

HarmonyOS NEXT 学习笔记3--登录页面(数据绑定)

HarmonyOS NEXT 学习笔记3--登录页面(数据绑定)1.代码: import { promptAction } from @kit.ArkUI@Entry @Component struct Page_textInput_onchange {// @State UI刷新测试 [注意:不是双向绑定]username: string = password: string = build() {Column({ space: 20 }) {Te…

vue.js下载安装

参考—— https://www.jb51.net/article/283884.htm注:使用的是vue2 进入官网  https://cn.vuejs.org/ 文档——》vue2文档 或者直接通过这里    https://v2.cn.vuejs.org/v2/guide/ 复制绿色部分,粘贴到浏览器https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js 在在项目…

PMP-组织结构类型

职能型、矩阵型(强、弱、均衡)、项目导向(复合型、混合型),最常考,矩阵型为主。矩阵型具有多重的的汇报关系,但是他有专门的项目目的,好处是更高的提升项目的资源使用效率,又让项目不至于太高的人力成本。 职能型组织 ▪ 层级型结构,横向沟通困难,项目一般在职能部…

STM32串口通信概念介绍2

STM32串口通信 (1) 硬件接线说明采用4针的串口(TXD、RXD、GND、VCC),然后通过CH340芯片进行转换,就可以直接通过USB口转串口的方式达到和计算机通信的目的。 如果采用有线方式与PC机进行通信,则需要用到CH340转换芯片,数据会通过USART1串口传输。(1) 串口通信参数串口通信…

扩展Windows Server 2022的远程桌面连接数

远程桌面服务 配置 激活一、添加远程桌面授权服务打开服务器管理器:登录到Windows Server 2022服务器。 点击“开始”菜单,搜索“服务器管理器”并打开它。启动“添加角色和功能”向导:在服务器管理器中,点击左侧菜单中的“管理”然后选择“添加角色和功能”。 点击“下一步…

针对特种stm32F4板子的串口接线

硬件接线说明直接采用4针的串口(TXD、RXD、GND、VCC),然后通过CH340芯片进行转换,就可以直接通过USB口转串口的方式达到和计算机通信的目的。如果采用有线方式与PC机进行通信,则需要用到CH340转换芯片,数据会通过USART1串口传输。如果采用无线方式与手机进行通信,则不需…

电信千兆宽带体验

用的路由器拨号。应该是千兆光猫瓶颈了,换成2.5G或10G光猫应该能突破1100M速率