目录
- 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 ” />为什么选 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 是一个成熟的流程引擎框架,但由于它缺乏一些高级特性和易用性方面的不足,以及长期没有更新和维护,使得它现在已经不太受开发者的欢迎了。
传送门:
- OSWorkflow GitHub 存储库:https://github.com/osworkflow/osworkflow
- 开源软件基金会的 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 各个版本的简要介绍:
- Activiti 5.x:这是最早的稳定版本,它提供了基本的 BPMN 2.0 引擎和工作流功能。Activiti 5.x 版本支持 Java 和 REST API,以及基于流程模型创建的图形化管理工具。它的主要优点是稳定性和性能,但功能相对较少。
- Activiti 6.x:这是一个全新的版本,基于 Activiti 5.x,引入了许多新特性和改进。Activiti 6.x 版本包括 Activiti Cloud(提供了一套微服务工具和基础设施),Activiti Core(基于 BPMN 2.0,可以轻松地定义、执行和管理工作流),Activiti Designer(图形化的流程建模和编辑工具),Activiti Admin(管理和监控工作流应用程序)等。它的主要优点是全面性和灵活性,但在某些方面还需要改进和完善。
- 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 的主要特点如下:
- 完全兼容 BPMN 2.0 标准:Flowable 可以完全兼容 BPMN 2.0 标准,支持流程流转节点、事件、网关以及其它 20 多个类型的构建元素。
- 易于使用的流程设计器:Flowable 提供了一个用户友好的流程设计器,能够轻松创建和修改流程图。
- 高适应性:Flowable 可以适应各种环境,从一台服务器到高度分布式云解决方案,都可以很容易实现。
- 灵活的架构:Flowable 的分离式架构使得整个数据库存储的数据都可以独立部署在不同的机器上。
- 支持多语言和平台:Flowable 可以通过 REST API 支持 Java、.NET、Ruby、PHP 和 Python 等其他语言和平台。
- 可扩展性: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 的主要特点:
- 可靠性、高性能:Camunda 是一个可靠性和高性能的平台,可以处理数量巨大的交易和流程。
- BPMN 标准兼容性:Camunda 支持 BPMN 2.0 标准,包括流程建模、模拟和执行。
- 单独的 Workflow 和 Decisioning 引擎:Camunda 分别提供了 Workflow 和 Decisioning 引擎,可以分别管理和优化这两种引擎。
- 高度可视化和用户友好性:Camunda 提供了一个用户友好的流程设计器,同时提供了可视化的数据仪表板,使得开发人员和业务人员能够更好地跟踪和管理业务流程。
- 可扩展、集成性强:Camunda 可以轻松地与其他组织系统集成,如用户身份验证、消息传递、Web 服务等。
- 开源、灵活性高:Camunda 是一个开源项目,可以免费使用和修改,同时还具有强大的扩展性。
总体而言,Camunda 提供了一个高度可靠、高性能、可扩展、用户友好的 BPMN 平台,具有广泛的 Workflows、Decisioning 和 RPA 的工具集成能力,帮助开发者打造更加智能化、高效的业务流程。
主流版本介绍
Camunda 有以下主要版本:
- Camunda BPM 5.x
Camunda BPM 5.x 是 Camunda 的早期版本,主要包括了 Activiti 和 JBoss JBPM 引擎的升级。该版本提供完整的 BPMN 2.0 流程引擎并支持很多工作流和 BPMN 特性。
- Camunda BPM 6.x
Camunda BPM 6.x 是 Camunda 的一个重要更新版本,它重新设计了流程引擎的内部架构,提高了性能和可扩展性,同时还引入了新的特性。该版本引入了 CMMN(Case Management Model and Notation)规范的支持,支持更加复杂的案例管理和解决方案。
- Camunda BPM 7.x
Camunda BPM 7.x 是 Camunda 编排工作流引擎的一个大型升级。该版本改进了用户操作体验,引入了 Camunda Cockpit 的用户友好界面,提高了流程监控、商业规则管理等方面的支持。
- 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 有以下优点:
- 强大的 BPMN 标准支持
Camunda 采用的 BPMN 引擎是当前最好的之一,并且支持 BPMN 2.0 标准,相比其他竞争对手,具有更好的可扩展性、可靠性和精准性。BPMN 的使用方便度和可读性也更高,可以为流程可视化的部分提供非常细致、清晰的信息。 - 灵活的流程设计
Camunda 的工作流设计器支持多种视图模式,包括流程图和树形图等,可以帮助用户更好地定义自己的业务流程,自定其流程定义。Camunda 还支持流程的多级子流程、任务路由以及并行处理审批等多种复杂流程设置,使用户可以更好地设计自己的业务流程。 - 流程引擎的可扩展性
Camunda 提供开放式的 API,并包含所需的工具和库,以便开发人员轻松扩展、定制化流程引擎。这些API可以允许其他应用程序与 Camunda 进行集成。 - 高效的执行引擎
Camunda 的流程执行引擎是高速处理,并发量极高的。除此之外,它还拥有较好的妥协机制,以保证业务流程的高可用性和高性能。 - 开源、免费的使用模式
Camunda 是一个免费、完全开源的工作流引擎,无论是个人还是企业用户,都可以轻松地开展流程管理和工作流自动化项目,不需要安装任何特殊软件或付费成本。
为什么?因为 camunda 社区更活跃,构建成本比较低,支持云端部署,有丰富的使用经验可以借鉴。
camunda7.x 还是 camunda 8.x ?
因为camunda 8.x 已经是基于 Saas 化转型的产物,支持云端部署,多方同步等等。但是这些服务都需要用到国外服务器,需要收费。而且camunda 8.x已经相当于一个产品中台了,需要独立的团队去维护和部署,很多数据都需要三方企业(camunda开发公司)管理,很容易泄漏数据。(外国佬嘛,懂的都懂)总结,费用高昂,需要三方服务接入,平台并非完全自治。
camunda7的话,大部分组件开源,可免费使用,技术生态较好,程序员上手容易。总结,简单够用,没有额外的三方服务成本在内。
是 camunda 7 还是 camunda 8 这里给出几个我自己的想法:
- 如果公司的业务需求量大,而且有钱,也不在乎数据泄漏,强稳定性等,不要犹豫,camunda 8值得你拥有。
- 如果公司的业务需求量大,对数据有严格管控,建议做 camunda 7 平台的二次开发与维护。
- 如果公司的业务需求量小,但对数据有严格管控,建议不要使用 camunda。因为接入也是需要一定成本的,还不如直接做硬编码编程。
当然,总结下来就就是,使用camunda8相当于服务外包,很多东西都在别人手中,但是上手简易,有专业的技术支持。camunda7相当于公司自研,只不过引进了一套开源框架而已,不过一切技术难题都需要自己着手解决而已。
下一篇,简单介绍 camunda 在实际生产中是如何与Spring boot 集成开发的。传送门