基于开源组件自主开发工作流引擎系统

目前基于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,大部分组件开源,可免费使用,技术生态较好,程序员上手容易。

官方网站:Camunda Platform 7 documentation | docs.camunda.org

体验系统: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 ,这两个开源组件的源代码比较复杂,一般前端开发人员很难搞定,功能和样式扩展修改比较费劲。

官方网站:Web-based tooling for BPMN, DMN, CMMN, and Forms | bpmn.io

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

2、仿钉钉流程设计器

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

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

开源地址:GitHub - StavinLi/Workflow-Vue3: 仿钉钉审批流程设置vue3版本

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

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

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

开源地址:GitHub - guozhaolong/wfd-vue: flowable workflow designer for Vue base on @antv/g6

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

强化学习AI构建实战 - 基于“黄金点”游戏(二)

服务端接口 为了让大家的AI可以顺利地进行游戏,并验证我们对策略和AI的一些实现,我们需要一些基础设施来帮助我们完成一些工作。这些工作包括游戏回合的控制、参与者之间的数据同步、游戏数据的储存等功能。 为了简化这些基础工作,以便大家…

旧路由重置新路由设置新路由设置教程|适用于PPPoE拨号

前言 前几天朋友说路由器想要重置,但不知道怎么弄。所以就想着只帮忙重置路由器的话,只能帮到一个人。但把整个过程写成图文,就可以帮助更多人。 本文章适合电脑小白,请注意每一步哦! 注意事项 开始之前需要确认光猫…

TAX个税小知识

人:个人,非居民个人 种类:工资薪金,劳务报酬所得,特许使用费,稿酬所得 工资按月支付扣税,不用个人提供发票,有签劳动合同; 其他三项按月或按次扣税,需要开发…

TTL篇-TtlAgent的使用

接上篇&#xff0c;TTL篇-TTL的使用-CSDN博客 TtlAgent是什么 ttl使用的典型代码是如下所示&#xff0c; DataAllArgsConstructorpublic static class Bean {private String name;}Testpublic void testBean() throws InterruptedException {TransmittableThreadLocal<Be…

10、Kafka ------ 消费者组 和 消费者实例,分区 和 消费者实例 之间的分配策略

目录 消费者组 和 消费者实例★ 消费者组★ 分区 和 消费者实例★ 分配分区&#xff08;分区 和 消费者实例 之间的分配策略&#xff09;3种分配策略★ range策略★ round-robin策略 &#xff08;轮询&#xff09;★ stick策略 如何指定分配分区的策略&#xff1a; 消费者组 和…

Git 基本使用

Git Git是一种分布式版本控制系统&#xff0c;它可以帮助开发团队更好地管理代码并进行协同开发。 gitee,github,gitlab&#xff0c;是基于git的代码托管平台。 官方文档地址(中文)&#xff1a;Git - Git 是什么&#xff1f; 安装和配置 官网下载地址&#xff1a;Git - Downl…

面试官心声:个个都说会自动化,结果面试一问细节全露馅了

今年我们部门计划招聘几名自动化测试工程师&#xff0c;为此我进行了面试和培训&#xff0c;发现了一个让我感到担忧的趋势&#xff0c;许多候选人可以轻松地回答有关脚本编写、元素定位、框架API等问题。然而一问到实际项目&#xff0c;比如 “如何从0开始搭建自动化体系”、“…

k8s---pod控制器

pod控制器发的概念&#xff1a; 工作负载&#xff0c;workload用于管理pod的中间层&#xff0c;确保pod资源符合预期的状态。 预期状态&#xff1a; 1、副本数 2、容器重启策略 3、镜像拉取策略 pod出故障的出去等等 pod控制器的类型&#xff1a; 1、replicaset&#xf…

from表单通过遍历的方式显示

当我们绘制表单数据的时候&#xff0c;有时候知道需要绘制的内容&#xff0c;但是不想在页面一条一条写数据&#xff0c;如果通过遍历显示呢 下面是在uniapp中写h5的方法&#xff0c;直接上代码 <view><view classitem v-for(item,index) in arr :keyindex><v…

【学习资源】分享三个文献互助平台(科研通 / 谷粉 / 纬度)

最近博主准备阅读一些专业相关的文献&#xff0c;有一些可以从博主所在单位购买的数据中直接下载&#xff0c;然而有一些论文数据库是没有购买的&#xff0c;所以要博主自己想办法去下载。 一般来说&#xff0c;两年以前的SCI论文&#xff0c;基本上都可以借助Scihub下载的到&…

pc端微信QQ使用代理解决方案

背景 多数金融类公司都会限制QQ和微信访问&#xff0c;但某些情况导致不得不使用&#xff0c;时不时使用手机会让你的老板感觉你在摸鱼&#xff0c;所以站在技术的角度上研究一下如果在pc端使用 代理开启 以微信举例&#xff0c;如果你用的clash&#xff0c;这里的地址可以设…

2024 解决matplotlib中文字体问题

第一种代码&#xff08;失败代码&#xff09; import matplotlib as mpl import matplotlib.pyplot as plt from matplotlib.font_manager import FontPropertiesfont_path /Users/huangbaixi/Desktop/SimHei.ttfdef plot_demo():#print(mpl.get_cachedir())# 绘制折线图font…

人脸考勤技术,这个隐藏功能太好用了!

随着科技的不断发展&#xff0c;人脸识别技术在各个领域得到了广泛的应用。其中&#xff0c;三维人脸考勤系统作为一种高级的人脸识别技术&#xff0c;不仅提高了考勤系统的准确性&#xff0c;还增强了安全性。 客户案例 制造企业 山东某大型制造企业引入了泛地缘科技推出的三…

【excel密码】Excel中如何使部分单元格区域实现加密

Excel文件可以设置保护工作表&#xff0c;那么可以只保护工作表中的部分单元格&#xff0c;其他地方可以正常编辑吗&#xff1f;当然是可以的&#xff0c;今天我们学习&#xff0c;如何设置保护部分单元格。 首先&#xff0c;我们先将整张工作表选中&#xff08;Ctrl A&#…

【KMP】【二分查找】【C++算法】100207. 找出数组中的美丽下标 II

作者推荐 【矩阵快速幂】封装类及测试用例及样例 本文涉及的基础知识点 二分查找算法合集 LeetCode100207. 找出数组中的美丽下标 II 给你一个下标从 0 开始的字符串 s 、字符串 a 、字符串 b 和一个整数 k 。 如果下标 i 满足以下条件&#xff0c;则认为它是一个 美丽下标…

主流浏览器设置代理IP之QQ浏览器

给浏览器设置代理IP是目前代理IP的主流使用场景之一&#xff0c;接下来小编就手把手教你如何对QQ浏览器进行代理IP设置 注&#xff1a;本次使用IP来源于携趣代理平台QQ浏览器内设置IP代理 1、首先需要进入浏览器【设置】 2.点击【工具】选择【lnternet选项】然后进行点击。 3.…

零基础精酿啤酒,这款智能啤酒酿造机掀起啤酒消费的DIY热潮

破壁机、台式单烤、空气炸锅……回顾2023年&#xff0c;小家电行业在高端、智能等趋势下迎来了新一轮的消费迭代热潮&#xff0c;越来越多契合消费者细分需求的“新兴家电”正在成为市场新宠。比如&#xff0c;此前很少有消费者会关注的啤酒酿造机。 啤酒如何酿造&#xff1f;…

Unity ComputeShader 使用GPU快速计算复杂问题

Unity ComputeShader 使用GPU快速计算复杂问题 前言项目创建ComputeShader编写CompturShader创建Unity代码场景布置运行场景 参考 前言 遇到一个问题&#xff0c;需要大量的计算&#xff0c;在Unity中直接写会长时间的阻塞主线程&#xff0c;正好使用ComputeShader让GPU来帮我…

Windows 下 QT开发环境的搭建:

下载QT:Index of /archive/qt/5.14 下载Cmake :CMake - Upgrade Your Software Build System (1)QT在windows,C, 打包exe&#xff1a; step1:window上安装QT软件&#xff1a; Windows下的QT系统开发环境搭建_qt windows-CSDN博客. step2:新建一个界面工程&#xff1a; (1)打…