引言:最近公司在做工作流这一块相关的东西,我是技术主要负责人之一。想着既然在公司做,用的是开源框架做的二开,反正也不涉及公司保密协议,也不涉及其它相关的法律问题,所以这里将自己做的那一部分公开出来,让后来者可以借鉴一二,或者给我斧正一二。
Camunda 是一个免费、开源的工作流引擎和业务流程管理(BPM)平台。使用 Camunda,您可以定义、执行和监控各种业务流程,包括工作流、决策流和其他类型的自动化流程。Camunda 提供了丰富的功能和工具,如流程建模、任务分配、规则引擎等,使用户能够轻松地配置和管理其业务流程。
与其他商业 BPM 平台相比,Camunda 的最大优势在于其开源性和灵活性。它采用了流行的 BPMN 2.0 标准,与其他企业 IT 系统无缝集成,并支持云和本地部署。此外,Camunda 还提供了广泛的集成和扩展机制,可帮助用户定制其工作流解决方案,以满足其特定业务需求。
市场上比较有名的开源流程引擎有osworkflow、jbpm、activiti、flowable、camunda、n8n等,其中以activiti最为出名,而且用途也是最广泛的。activiti是基于jbpm框架衍生出来的产物,而flowable、camunda、n8n又是activiti扩展物。
OSWorkflow 是一个流程引擎框架,它定义了一个工作流和任务管理系统的基本构造块。然而,OSWorkflow 已经有一段时间没有更新和维护了,最新的版本发布于 2011 年,这可能是导致它不受欢迎的一个主要原因。
另外,相对于其他流行的 BPM 平台和工作流引擎,OSWorkflow 的功能相对简单,难以满足复杂业务流程和任务管理的需求。它也缺乏图形化建模工具和其他一些高级特性,这使得它与其他 BPM 平台相比,不是那么易用和用户友好。
总的来说,OSWorkflow 是一个成熟的流程引擎框架,但由于它缺乏一些高级特性和易用性方面的不足,以及长期没有更新和维护,使得它现在已经不太受开发者的欢迎了。
传送门:
jBPM 是一个开源的业务流程管理(BPM)系统和工作流引擎。尽管 jBPM 具有许多强大的功能,包括流程建模、任务分配、工作流控制和可视化管理界面等,但在使用方面却存在一些问题。
一方面,相对于其他商业化的 BPM 系统,jBPM 的易用性和用户体验相对较差,需要一定的学习曲线和专业知识才能进行开发和管理。另一方面,jBPM 的文档和社区支持相对较少,这对于新手而言是一种挑战。
与此同时,jBPM 在一些方面也存在一些局限性,例如对于某些业务场景的支持不够完善,或者与其他系统集成方面的复杂度较高等。这都可能导致开发者在实际应用中选择其他 BPM 系统或者自己手动开发流程管理系统。
总的来说,jBPM 被认为是一个功能强大的开源 BPM 系统,但由于它存在一些易用性和实际应用方面的挑战,以及竞争对手的存在,使得它相对而言不够普及。
传送门:https://www.jbpm.org/
Activiti 是一个开源的 BPM 平台和工作流引擎,支持各种类型的业务流程管理和自动化流程。在 Activiti 的发展过程中,发布了多个版本,下面是关于 Activiti 各个版本的简要介绍:
传送门:https://www.activiti.org/
Flowable 是一个轻量级的 Java BPMN (Business Process Model and Notation) 引擎,是 Activiti 引擎的一个分支。Flowable 完全遵循 BPMN 2.0 标准,并提供了一个用户友好和易于使用的流程设计器,同时支持多种工作流程的图形化建模和管理。Flowable 包含了工作流引擎、流程设计器、表单设计器、决策引擎等模块。
Flowable 的主要特点如下:
总体而言,Flowable 是一个功能强大而又易于使用的 BPMN 平台。它提供了完全遵循 BPMN 2.0 标准的流程引擎和图形化设计器,同时提供各种扩展和集成的方式,为开发者们提供了更为灵活、高效和优质的工作流引擎和管理体验。
传送门:https://www.flowable.com/
Camunda 是一个开源的 BPM (Business Process Management)平台,支持 BPMN 2.0 标准。它提供了一个用户友好的流程设计器和流程引擎,使得开发人员能够轻松地创建、管理和监控业务流程。同时,Camunda 也提供了广泛的 Workflows、Decisioning 和 RPA (Robotic Process Automation)的工具集成能力,可帮助开发者构建灵活、可扩展的应用程序,满足企业复杂和动态的业务流程需求。
下面是 Camunda 的主要特点:
总体而言,Camunda 提供了一个高度可靠、高性能、可扩展、用户友好的 BPMN 平台,具有广泛的 Workflows、Decisioning 和 RPA 的工具集成能力,帮助开发者打造更加智能化、高效的业务流程。
Camunda 有以下主要版本:
Camunda BPM 5.x 是 Camunda 的早期版本,主要包括了 Activiti 和 JBoss JBPM 引擎的升级。该版本提供完整的 BPMN 2.0 流程引擎并支持很多工作流和 BPMN 特性。
Camunda BPM 6.x 是 Camunda 的一个重要更新版本,它重新设计了流程引擎的内部架构,提高了性能和可扩展性,同时还引入了新的特性。该版本引入了 CMMN(Case Management Model and Notation)规范的支持,支持更加复杂的案例管理和解决方案。
Camunda BPM 7.x 是 Camunda 编排工作流引擎的一个大型升级。该版本改进了用户操作体验,引入了 Camunda Cockpit 的用户友好界面,提高了流程监控、商业规则管理等方面的支持。
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/
n8n 是一个免费、开源的工作流自动化工具,允许用户在多个服务之间创建工作流程(Worflow),自动化重复操作,链接Web应用程序和API,并从一个中央位置管理整个流程。=
n8n 提供了一个可视化的工作流程设计器,可以通过拖放方式构建自定义工作流,同时支持大量的集成,包括Google Drive、Slack、Trello、Salesforce 等 200 多个常用应用和服务。此外,n8n 还提供了一些预定义的模板和示例,方便用户快速创建和设置工作流程。
n8n 不需要编写代码,提供了一个简单的图形化界面,可帮助用户自动化他们的日常业务流程。同时,n8n 还提供了其他有用的功能,如日程安排、分支判断、循环、自定义脚本等,以及错误处理和故障排除功能,确保工作流程的高可靠性和可维护性。
总体而言,n8n 是一个强大的自动化工具,具有高度的灵活性和可扩展性,可帮助用户轻松构建自定义工作流,并自动化他们的日常任务和业务流程。同时,作为一个开源项目,n8n 还提供了广泛的社区支持和贡献,可帮助用户更好地了解和使用该工具。
传送门:https://n8n.io/
因为相对于其他流程引擎,Camunda 有以下优点:
为什么?因为 camunda 社区更活跃,构建成本比较低,支持云端部署,有丰富的使用经验可以借鉴。
因为camunda 8.x 已经是基于 Saas 化转型的产物,支持云端部署,多方同步等等。但是这些服务都需要用到国外服务器,需要收费。而且camunda 8.x已经相当于一个产品中台了,需要独立的团队去维护和部署,很多数据都需要三方企业(camunda开发公司)管理,很容易泄漏数据。(外国佬嘛,懂的都懂)总结,费用高昂,需要三方服务接入,平台并非完全自治。
camunda7的话,大部分组件开源,可免费使用,技术生态较好,程序员上手容易。总结,简单够用,没有额外的三方服务成本在内。
是 camunda 7 还是 camunda 8 这里给出几个我自己的想法:
当然,总结下来就就是,使用camunda8相当于服务外包,很多东西都在别人手中,但是上手简易,有专业的技术支持。camunda7相当于公司自研,只不过引进了一套开源框架而已,不过一切技术难题都需要自己着手解决而已。
下一篇,介绍 camunda 在实际生产中是如何协作开发的。传送门