Java spring boot 全解Camunda 7,从 0 到 1 构建工作流平台——第一节:各个开源框架对比

news2025/1/16 3:57:21

在这里插入图片描述

目录

  • 1. Camunda 介绍
  • 2. Camunda 选型说明
    • 2.1 osworkflow
    • 2.2 jbpm
    • 2.3 Activiti
      • Activiti介绍
      • 各个版本的优缺点
    • 2.4 flowable
    • 2.5 camunda
      • camunda介绍
      • 主流版本介绍
    • 2.6 n8n.io
    • 2.7 为什么选 camunda ? camunda7.x 还是 camunda 8.x ?
      • 为什么选 camunda?
      • camunda7.x 还是 camunda 8.x ?

引言:最近公司在做工作流这一块相关的东西,我是技术主要负责人之一。想着既然在公司做,用的是开源框架做的二开,反正也不涉及公司保密协议,也不涉及其它相关的法律问题,所以这里将自己做的那一部分公开出来,让后来者可以借鉴一二,或者给我斧正一二。

1. Camunda 介绍

Camunda 是一个免费、开源的工作流引擎和业务流程管理(BPM)平台。使用 Camunda,您可以定义、执行和监控各种业务流程,包括工作流、决策流和其他类型的自动化流程。Camunda 提供了丰富的功能和工具,如流程建模、任务分配、规则引擎等,使用户能够轻松地配置和管理其业务流程。
与其他商业 BPM 平台相比,Camunda 的最大优势在于其开源性和灵活性。它采用了流行的 BPMN 2.0 标准,与其他企业 IT 系统无缝集成,并支持云和本地部署。此外,Camunda 还提供了广泛的集成和扩展机制,可帮助用户定制其工作流解决方案,以满足其特定业务需求。

2. Camunda 选型说明

市场上比较有名的开源流程引擎有osworkflow、jbpm、activiti、flowable、camunda、n8n等,其中以activiti最为出名,而且用途也是最广泛的。activiti是基于jbpm框架衍生出来的产物,而flowable、camunda、n8n又是activiti扩展物。

2.1 osworkflow

OSWorkflow 是一个流程引擎框架,它定义了一个工作流和任务管理系统的基本构造块。然而,OSWorkflow 已经有一段时间没有更新和维护了,最新的版本发布于 2011 年,这可能是导致它不受欢迎的一个主要原因。
另外,相对于其他流行的 BPM 平台和工作流引擎,OSWorkflow 的功能相对简单,难以满足复杂业务流程和任务管理的需求。它也缺乏图形化建模工具和其他一些高级特性,这使得它与其他 BPM 平台相比,不是那么易用和用户友好。
总的来说,OSWorkflow 是一个成熟的流程引擎框架,但由于它缺乏一些高级特性和易用性方面的不足,以及长期没有更新和维护,使得它现在已经不太受开发者的欢迎了。


传送门:

  1. OSWorkflow GitHub 存储库:https://github.com/osworkflow/osworkflow
  2. 开源软件基金会的 OSWorkflow 页:https://sourceforge.net/projects/osworkflow/

2.2 jbpm

jBPM 是一个开源的业务流程管理(BPM)系统和工作流引擎。尽管 jBPM 具有许多强大的功能,包括流程建模、任务分配、工作流控制和可视化管理界面等,但在使用方面却存在一些问题。
一方面,相对于其他商业化的 BPM 系统,jBPM 的易用性和用户体验相对较差,需要一定的学习曲线和专业知识才能进行开发和管理。另一方面,jBPM 的文档和社区支持相对较少,这对于新手而言是一种挑战。
与此同时,jBPM 在一些方面也存在一些局限性,例如对于某些业务场景的支持不够完善,或者与其他系统集成方面的复杂度较高等。这都可能导致开发者在实际应用中选择其他 BPM 系统或者自己手动开发流程管理系统。
总的来说,jBPM 被认为是一个功能强大的开源 BPM 系统,但由于它存在一些易用性和实际应用方面的挑战,以及竞争对手的存在,使得它相对而言不够普及。


传送门:https://www.jbpm.org/


2.3 Activiti

Activiti介绍

Activiti 是一个开源的 BPM 平台和工作流引擎,支持各种类型的业务流程管理和自动化流程。在 Activiti 的发展过程中,发布了多个版本,下面是关于 Activiti 各个版本的简要介绍:

  1. Activiti 5.x:这是最早的稳定版本,它提供了基本的 BPMN 2.0 引擎和工作流功能。Activiti 5.x 版本支持 Java 和 REST API,以及基于流程模型创建的图形化管理工具。它的主要优点是稳定性和性能,但功能相对较少。
  2. Activiti 6.x:这是一个全新的版本,基于 Activiti 5.x,引入了许多新特性和改进。Activiti 6.x 版本包括 Activiti Cloud(提供了一套微服务工具和基础设施),Activiti Core(基于 BPMN 2.0,可以轻松地定义、执行和管理工作流),Activiti Designer(图形化的流程建模和编辑工具),Activiti Admin(管理和监控工作流应用程序)等。它的主要优点是全面性和灵活性,但在某些方面还需要改进和完善。
  3. Activiti 7.x:这是一个正在开发中的最新版本,业界普遍认为它将包括许多新特性和改进。其中包括推出了完全重写了的 Activiti Engine,在性能和稳定性方面有了很大提升,并增强了与其他系统集成的能力。此外,Activiti 7.x 还将推出 Activiti Cloud Hyperledger(一个基于区块链的工作流解决方案),以及 Activiti Cloud Connectors(连接器和适配器,可以与其他企业系统和云服务进行集成)等。

各个版本的优缺点

  • Activiti 5.x 版本的优点是稳定性和性能,但功能相对较少。缺点是功能不够完善,缺少一些高级特性。
  • Activiti 6.x 版本的优点是全面性和灵活性,同时具备稳定性和性能。缺点是某些细节方面还需要改进和完善,还需要更加简化和优化工作流程的开发和管理体验。
  • Activiti 7.x 版本的优点是性能和稳定性有了显著改进,集成能力和扩展性也大幅提升。同时在区块链和云集成等领域进行了深化。缺点是该版本目前仍然在开发中,可能还存在一定的风险和尚未解决的问题。

传送门:https://www.activiti.org/


2.4 flowable

Flowable 是一个轻量级的 Java BPMN (Business Process Model and Notation) 引擎,是 Activiti 引擎的一个分支。Flowable 完全遵循 BPMN 2.0 标准,并提供了一个用户友好和易于使用的流程设计器,同时支持多种工作流程的图形化建模和管理。Flowable 包含了工作流引擎、流程设计器、表单设计器、决策引擎等模块。
Flowable 的主要特点如下:

  1. 完全兼容 BPMN 2.0 标准:Flowable 可以完全兼容 BPMN 2.0 标准,支持流程流转节点、事件、网关以及其它 20 多个类型的构建元素。
  2. 易于使用的流程设计器:Flowable 提供了一个用户友好的流程设计器,能够轻松创建和修改流程图。
  3. 高适应性:Flowable 可以适应各种环境,从一台服务器到高度分布式云解决方案,都可以很容易实现。
  4. 灵活的架构:Flowable 的分离式架构使得整个数据库存储的数据都可以独立部署在不同的机器上。
  5. 支持多语言和平台:Flowable 可以通过 REST API 支持 Java、.NET、Ruby、PHP 和 Python 等其他语言和平台。
  6. 可扩展性:Flowable 其中流量、加密和安全等核心技术可以轻松扩展,并且可以方便地搭配各种技术、库和框架使用。

总体而言,Flowable 是一个功能强大而又易于使用的 BPMN 平台。它提供了完全遵循 BPMN 2.0 标准的流程引擎和图形化设计器,同时提供各种扩展和集成的方式,为开发者们提供了更为灵活、高效和优质的工作流引擎和管理体验。


传送门:https://www.flowable.com/


2.5 camunda

camunda介绍

Camunda 是一个开源的 BPM (Business Process Management)平台,支持 BPMN 2.0 标准。它提供了一个用户友好的流程设计器和流程引擎,使得开发人员能够轻松地创建、管理和监控业务流程。同时,Camunda 也提供了广泛的 Workflows、Decisioning 和 RPA (Robotic Process Automation)的工具集成能力,可帮助开发者构建灵活、可扩展的应用程序,满足企业复杂和动态的业务流程需求。
下面是 Camunda 的主要特点:

  1. 可靠性、高性能:Camunda 是一个可靠性和高性能的平台,可以处理数量巨大的交易和流程。
  2. BPMN 标准兼容性:Camunda 支持 BPMN 2.0 标准,包括流程建模、模拟和执行。
  3. 单独的 Workflow 和 Decisioning 引擎:Camunda 分别提供了 Workflow 和 Decisioning 引擎,可以分别管理和优化这两种引擎。
  4. 高度可视化和用户友好性:Camunda 提供了一个用户友好的流程设计器,同时提供了可视化的数据仪表板,使得开发人员和业务人员能够更好地跟踪和管理业务流程。
  5. 可扩展、集成性强:Camunda 可以轻松地与其他组织系统集成,如用户身份验证、消息传递、Web 服务等。
  6. 开源、灵活性高:Camunda 是一个开源项目,可以免费使用和修改,同时还具有强大的扩展性。

总体而言,Camunda 提供了一个高度可靠、高性能、可扩展、用户友好的 BPMN 平台,具有广泛的 Workflows、Decisioning 和 RPA 的工具集成能力,帮助开发者打造更加智能化、高效的业务流程。

主流版本介绍

Camunda 有以下主要版本:

  1. Camunda BPM 5.x

Camunda BPM 5.x 是 Camunda 的早期版本,主要包括了 Activiti 和 JBoss JBPM 引擎的升级。该版本提供完整的 BPMN 2.0 流程引擎并支持很多工作流和 BPMN 特性。

  1. Camunda BPM 6.x

Camunda BPM 6.x 是 Camunda 的一个重要更新版本,它重新设计了流程引擎的内部架构,提高了性能和可扩展性,同时还引入了新的特性。该版本引入了 CMMN(Case Management Model and Notation)规范的支持,支持更加复杂的案例管理和解决方案。

  1. Camunda BPM 7.x

Camunda BPM 7.x 是 Camunda 编排工作流引擎的一个大型升级。该版本改进了用户操作体验,引入了 Camunda Cockpit 的用户友好界面,提高了流程监控、商业规则管理等方面的支持。

  1. Camunda BPM 8.x

Camunda BPM 8.x 是 Camunda 只支持 JDK8+ 的版本。该版本引入了很多新特性,如支持 DMN 1.2、扩展 CMMN 的支持、BPMN 的简化和增强等。此外,该版本还引入了许多针对开发人员和系统管理员的新功能以提高可扩展性和性能。Camunda 8.x 开始,就已经走Saas化了,支持云端服务。
在技术架构层面上,Camunda BPM 7.x 和 8.x 的底层流程引擎是不同的。Camunda BPM 8.x 引入了全新的基于事件流的流程引擎,名为 Camunda Run。而Camunda BPM 7.x 则使用传统的基于线程池模型的流程引擎。


传送门:https://camunda.com/


2.6 n8n.io

n8n 是一个免费、开源的工作流自动化工具,允许用户在多个服务之间创建工作流程(Worflow),自动化重复操作,链接Web应用程序和API,并从一个中央位置管理整个流程。=
n8n 提供了一个可视化的工作流程设计器,可以通过拖放方式构建自定义工作流,同时支持大量的集成,包括Google Drive、Slack、Trello、Salesforce 等 200 多个常用应用和服务。此外,n8n 还提供了一些预定义的模板和示例,方便用户快速创建和设置工作流程。
n8n 不需要编写代码,提供了一个简单的图形化界面,可帮助用户自动化他们的日常业务流程。同时,n8n 还提供了其他有用的功能,如日程安排、分支判断、循环、自定义脚本等,以及错误处理和故障排除功能,确保工作流程的高可靠性和可维护性。
总体而言,n8n 是一个强大的自动化工具,具有高度的灵活性和可扩展性,可帮助用户轻松构建自定义工作流,并自动化他们的日常任务和业务流程。同时,作为一个开源项目,n8n 还提供了广泛的社区支持和贡献,可帮助用户更好地了解和使用该工具。


传送门:https://n8n.io/


2.7 为什么选 camunda ? camunda7.x 还是 camunda 8.x ?

为什么选 camunda?

因为相对于其他流程引擎,Camunda 有以下优点:

  1. 强大的 BPMN 标准支持
    Camunda 采用的 BPMN 引擎是当前最好的之一,并且支持 BPMN 2.0 标准,相比其他竞争对手,具有更好的可扩展性、可靠性和精准性。BPMN 的使用方便度和可读性也更高,可以为流程可视化的部分提供非常细致、清晰的信息。
  2. 灵活的流程设计
    Camunda 的工作流设计器支持多种视图模式,包括流程图和树形图等,可以帮助用户更好地定义自己的业务流程,自定其流程定义。Camunda 还支持流程的多级子流程、任务路由以及并行处理审批等多种复杂流程设置,使用户可以更好地设计自己的业务流程。
  3. 流程引擎的可扩展性
    Camunda 提供开放式的 API,并包含所需的工具和库,以便开发人员轻松扩展、定制化流程引擎。这些API可以允许其他应用程序与 Camunda 进行集成。
  4. 高效的执行引擎
    Camunda 的流程执行引擎是高速处理,并发量极高的。除此之外,它还拥有较好的妥协机制,以保证业务流程的高可用性和高性能。
  5. 开源、免费的使用模式
    Camunda 是一个免费、完全开源的工作流引擎,无论是个人还是企业用户,都可以轻松地开展流程管理和工作流自动化项目,不需要安装任何特殊软件或付费成本。

为什么?因为 camunda 社区更活跃,构建成本比较低,支持云端部署,有丰富的使用经验可以借鉴。


camunda7.x 还是 camunda 8.x ?

因为camunda 8.x 已经是基于 Saas 化转型的产物,支持云端部署,多方同步等等。但是这些服务都需要用到国外服务器,需要收费。而且camunda 8.x已经相当于一个产品中台了,需要独立的团队去维护和部署,很多数据都需要三方企业(camunda开发公司)管理,很容易泄漏数据。(外国佬嘛,懂的都懂)总结,费用高昂,需要三方服务接入,平台并非完全自治。

camunda7的话,大部分组件开源,可免费使用,技术生态较好,程序员上手容易。总结,简单够用,没有额外的三方服务成本在内。


是 camunda 7 还是 camunda 8 这里给出几个我自己的想法:

  1. 如果公司的业务需求量大,而且有钱,也不在乎数据泄漏,强稳定性等,不要犹豫,camunda 8值得你拥有。
  2. 如果公司的业务需求量大,对数据有严格管控,建议做 camunda 7 平台的二次开发与维护。
  3. 如果公司的业务需求量小,但对数据有严格管控,建议不要使用 camunda。因为接入也是需要一定成本的,还不如直接做硬编码编程。

当然,总结下来就就是,使用camunda8相当于服务外包,很多东西都在别人手中,但是上手简易,有专业的技术支持。camunda7相当于公司自研,只不过引进了一套开源框架而已,不过一切技术难题都需要自己着手解决而已。


下一篇,介绍 camunda 在实际生产中是如何协作开发的。传送门

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

碳排放预测模型 | Python实现基于机器学习回归分析的碳排放预测模型——数据可视化和探索

文章目录 效果一览文章概述研究内容环境准备源码设计学习总结参考资料效果一览 文章概述 碳排放预测模型 | Python实现基于机器回归分析的碳排放预测模型——数据可视化和探索 目标是测试所选特征对分析的重要性,检测异常值的存在并准备数据以供进一步分析。 </

Netty实战(十二)

预置的ChannelHandler和编解码器&#xff08;二&#xff09;HTTPS、WebSocket的添加使用和大型数据写入以及几种常见的序列化 一、基于Netty的HTTPS程序1.2 使用HTTPS2.3 WebSocket 二、空闲连接和超时三、 解码基于分隔符的协议和基于长度的协议3.1 基于分割符的协议3.2 基于长…

策 略 模 式「指 鼠 为 鸭」

前言 大家好&#xff0c;我是 god23bin&#xff0c;今天我们来介绍下设计模式中的一个重要的设计模式——策略模式。 当涉及到某个行为或算法有多个变体时&#xff0c;策略模式是一种常见的设计模式。它允许在运行时选择使用不同的策略&#xff0c;而无需修改现有代码。 现在…

OneFormer:规则通用图像分割的一个Transformer

文章目录 OneFormer: One Transformer to Rule Universal Image Segmentation摘要本文方法实验结果 OneFormer: One Transformer to Rule Universal Image Segmentation 摘要 通用图像分割并不是一个新概念。过去统一图像分割的尝试包括场景解析、全景分割&#xff0c;以及最…

【工具】SecureCR-8.5下载、安装激活和使用教程(包含常用设置)

目录 一、安装包下载 二、安装教程 三、激活操作 四、使用教程 五、常用设置 一、安装包下载 SecureCRT8.5安装包&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1yy677I99ln_3evoHc5dMXg 提取码&#xff1a;9tyj 二、安装教程 1. 解压、双击进行安装 2. 安装进…

【LeetCode】136. 只出现一次的数 python

目录 题目描述 第一次刷题 第二次刷题 异或运算的规则 题目描述 给你一个 非空 整数数组 nums &#xff0c;除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题&#xff0c;…

[LeetCode周赛复盘] 第 106 场双周赛20230611

[LeetCode周赛复盘] 第 106 场双周赛20230611 一、本周周赛总结6461. 判断一个数是否迷人1. 题目描述2. 思路分析3. 代码实现 6425. 找到最长的半重复子字符串1. 题目描述2. 思路分析3. 代码实现 6426. 移动机器人1. 题目描述2. 思路分析3. 代码实现 6463. 找到矩阵中的好子集…

DHCP是什么?它有什么作用?其工作模式?工作原理?

目录 一、DHCP是什么&#xff1f;二、DHCP的作用&#xff1f;1. 在没有DHCP服务的网络中2. 在有DHCP服务的网络中 三、DHCP的工作模式简介四、DHCP的工作原理五、参考资料 一、DHCP是什么&#xff1f; DHCP是动态主机配置协议&#xff08;Dynamic Host Configuration Protocol…

Vue 封装ajax请求[接口]函数

在Vue项目开发当中&#xff0c;当有了后端提供的数据接口之后呢&#xff0c;就需要来为接口定义接口的请求函数&#xff0c;那么在去定义接口函数之前可以先来封装一个ajax请求函数&#xff1b;可能有的初学者在之前的一些篇目当中看到这个vue发起数据请求的不是使用axios的吗&…

3.MySQL表的增删改查(基础)

文章目录 ☕️1. CRUD☕️&#x1f375;2. 新增&#xff08;Create&#xff09;&#x1f375;&#x1f37c;2.1 单行数据 全列插入&#x1f37c;&#x1f37a;2.2 多行数据 指定列插入&#x1f37a;&#x1f378;2.3关于时间的插入格式(homework数据表)&#xff1a;&#x1f…

串口RS232、RS485最本质区别

由下图可看出不管是RS232还是RS485&#xff0c;其本质都是串口通信&#xff0c;只不过是串口通信电平上的变种而已。所以&#xff0c;我们首先从串口通信讲起。 1、串口通信 任何一种通信都要有物理接口和通信协议。串口通信物理接口如下图&#xff1a; 串口通信协议首先要约…

RBAC权限管理,Shiro实践

概念介绍 RBAC是指基于角色的访问控制&#xff08;Role-Based Access Control&#xff09;&#xff0c;它是一种广泛应用于计算机安全领域的访问控制机制。RBAC通过将用户分配到不同的角色&#xff0c;来控制用户对系统中资源的访问权限。 在RBAC中&#xff0c;每个角色都被…

LVS-DR群集部署

目录 一、LVS-DR数据包流向分析 二、 DR 模式的特点 总结 三、LVS-DR中的ARP问题 1.在局域网中具有相同的IP地址&#xff0c;势必会造成各服务器ARP通信的紊乱 2.路由器根据ARP表项&#xff0c;会将新来的请求报文转发给RealServer&#xff0c;导致Director的VIP失效 3.解…

openGauss5 企业版之yum方式安装

文章目录 1. 支持的架构和操作系统版本2. 使用限制3. 安装方式4. 使用说明 本章节主要介绍在openEuler 22.03 LTS操作系统上&#xff0c;通过yum命令一键安装openGauss数据库。 1. 支持的架构和操作系统版本 x86-64 openEuler 22.03 LTSARM64 openEuler 22.03 LTS 仅在openEu…

【博学谷学习记录】超强总结,用心分享 | 架构师 Maven学习总结

文章目录 Maven基本1.什么是Maven2.为什么用Maven?&#xff08;1&#xff09;jar 包的规模&#xff08;2&#xff09; jar 包的来源&#xff08;3&#xff09;jar 包之间的依赖关系 3.Maven目录结构4.maven仓库配置 Pom层次Pom文件简介Super POM 依赖管理1 依赖传递2 传递性依…

基于51单片机的智能火灾报警系统温度烟雾光

wx供重浩&#xff1a;创享日记 对话框发送&#xff1a;火灾报警 获取完整源码源文件电路图仿真文件论文报告等 功能简介 51单片机MQ-2烟雾传感ADC0832模数转换芯片DS18B20温度传感器数码管显示按键模块声光报警模块 具体功能&#xff1a; 1、实时监测及显示温度值和烟雾浓度…

【Docker】docker部署springboot+vue+mysql+nginx前后端分离项目【部署实战篇】

文章目录 0、安装docker并准备一个springboot-vue前后端分离项目前后端打包放到服务器上1、docker 安装jdk2、docker 安装mysql通过Docker命令进入Mysql容器内部初始化数据sqlDbx连接查看 3、docker build构建后端镜像修改配置数据库JDBC链接IP为虚拟机服务器IPmaven clean pac…

【MySQL】一文带你掌握聚合查询和联合查询

文章目录 1. 聚合函数1.1 COUNT1.2 SUM1.3 AVG1.4 MAX&#xff0c;MIN 2. GROUP BY3. HAVING4. 联合查询4.1 内连接4.2 外连接4.3 自连接4.4 子连接 5.合并查询5.1 UNION5.2 UNION ALL 1. 聚合函数 概念&#xff1a; 聚合函数是一种用于处理数据集合的函数&#xff0c;它将多个…

Fiddler 抓包的八个实用技巧,你学会了吗?

目录 前言 1、双击Session时&#xff0c;使响应页始终显示到”json”tab页&#xff1b;使请求页始终显示到“webform”tab页 2、显示每个Session 的请求IP地址 3、修改响应Header中的Content-Type 4、右键session 直接使用浏览器打开url 5、Session列中&#xff0c;显示每…

电脑拷贝到u盘数据丢失原因分析|3种恢复方法

在电脑操作中&#xff0c;经常需要将数据拷贝到U盘中进行备份或传输。但有时候&#xff0c;我们可能会遇到数据在拷贝或传输过程中丢失的情况。这种情况下&#xff0c;我们该如何找回这些丢失的数据呢&#xff1f; 下面&#xff0c;为大家介绍一些恢复U盘数据的方法&#xff0c…