Activiti、Flowable和Camunda选型和对比
https://camunda.com/
https://www.jianshu.com/p/5942c4ee513c
https://zhuanlan.zhihu.com/p/484107368
https://www.jianshu.com/p/1fbbb5f1760f
https://www.ithere.net/article/1454000794869297153
https://blog.csdn.net/ztx114/article/details/123549773
https://blog.csdn.net/xiaolong2230/article/details/128291393
http://www.javashuo.com/article/p-hccwoxde-cq.html
https://www.bbsmax.com/A/n2d9Nb6ozD/
选型的几个标准:
- 社区活跃,至少在Github上能排上名的
- 至少支持BPMN2协议的
- 免费、开源
根据上面的标准,目前几大工作流引擎就只有Activiti、Flowable和Camunda了,有些人会问为什么没有AirFlow相关的呢?很明显,AirFlow属于编排类流程引擎,跟工作流没太大关系,他们的共同点就是流程控制,工作流引擎>=编排类引擎。先给一个表格,下面给一些具体解释。
| 对比项\引擎 | Activiti-7.x | Flowable-6.x | Camunda- |
|---|---|---|---|
| 商业化 | √ | √ | √ |
| 路线(Roadmap) | 云 | 工具型 | 轻量&工具型 |
| PVM引擎 | × | × | √ |
| BPMN2引擎 | √ | √ | √ |
| CMMN引擎 | × | √ | × |
| DMN引擎 | × | √(开源版支持不太好) | √ |
| 建模工具选型 | √(AngularJS) | √(AngularJS) | √(Bpmn.js&Camunda Provider) |
| 建模工具内容 | BPMN2 | BPMN2/CMMN/DMN | BPMN2/CMMN/DMN |
| 扩展节点(Mule\Http等) | × | √ | √ |
| Spring Boot | √ | √ | √ |
| Spring Cloud | √ | × | × |
| Web控制台 | √ | √ | √ |
| Rest接口 | √ | √ | √ |
| 历史异步归档 | × | √ | × |
| 异步任务全局锁 | × | √ | × |
上面的对比可能不完全,笔者在工作中选用的是Flowable核心+Camunda的编辑器,但并不是说Flowable一定好,下面做一些简单说明和一些选型的指导。
- Activiti:Activiti在目前来看有点不思进取,核心功能和内核的优化并没有太大进步,着力点全在商业版和云上面,核心只支持BPMN2协议,跟6版本没有什么区别。如果你是一个老的Activiti使用者,并且只是用BPMN2协议,可以选用Activiti(非Cloud版本)。
- Flowable:Flowable不管是功能层面还是在代码层面来讲,都是这3个中最重的,当初跟Activiti分道扬镳的原因也是因为理念不一样,Flowable更注重其功能性、扩展性和性能。在上面表格中,历史异步归档和异步任务全局锁都是对性能的极大优化,特别是异步任务这一项,当年在使用Activiti的使用是一个极大的困扰,因为异步任务的吞吐反而会随着实例数的增加而加速恶化。Flowable比较臃肿,它支持了太多的东西,以致于如果想做POC或者Demo,环境搭建这一步都够呛。但是如果你本身就想做一个扩展性强的,性能高的工作流平台(SaaS\PaaS),Flowable是不二的选择。
- Camunda:Camunda是这3个里面比较轻量的一个,但是它并没有去掉PVM这个性能较差的流程推动引擎,所以如果你对性能要求很高的话,PVM肯定是不能满足的(Activiti已经在6.X版本的时候放弃了PVM,Flowable亦是如此)。但是Camunda有一个好东西就是它的编辑器,它是基于http://bpmn.io的bpmn.js,cmmn.js,dmn.js来开发的,并且开源了自己的组件库,所以,如果你想做一个轻巧的、灵活的、定制性强的编辑器,工作流是嵌入式的,那么Camunda是一个好选择。
一、简介
Activiti 是一个针对业务人员、开发人员和系统管理员的轻量级工作流和业务流程管理 (BPM) 平台。 它的核心是一个用于 Java 的超快速和坚如磐石的 BPMN 2 流程引擎。 它是开源的,并在 Apache 许可下分发。 Activiti 可以在任何 Java 应用程序、服务器、集群或云中运行。 它与 Spring 完美集成,非常轻量级,基于简单的概念。
Activiti Cloud 现在是新一代的业务自动化平台,提供一组旨在在分布式基础架构上运行的云原生构建块。
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
RuntimeService runtimeService = processEngine.getRuntimeService();
RepositoryService repositoryService = processEngine.getRepositoryService();
TaskService taskService = processEngine.getTaskService();
ManagementService managementService = processEngine.getManagementService();
IdentityService identityService = processEngine.getIdentityService();
HistoryService historyService = processEngine.getHistoryService();
FormService formService = processEngine.getFormService();
DynamicBpmnService dynamicBpmnService = processEngine.getDynamicBpmnService();
Flowable是一个使用Java编写的轻量级业务流程引擎。Flowable流程引擎可用于部署BPMN 2.0流程定义(用于定义流程的行业XML标准), 创建这些流程定义的流程实例,进行查询,访问运行中或历史的流程实例与相关数据
- Alfresco Activiti5
- Flowable5
Camunda 是一个基于 Java 的框架,支持用于工作流和流程自动化的 BPMN、用于案例管理的 CMMN 和用于业务决策管理的 DMN。
- Active BPEL
- Alfresco Activiti
- Appian BPM
- Bonitasoft
- JBoss jBPM
- IBM WPS / IBM BPM / IBM MQ Workflow / IBM Lotus Notes
- Oracle BPM
- Software AG Webmethods
- Pega BPM
二、支持DB对比
三、功能对比
- Flowable VS Activiti
- Flowable VS Camunda
四、社区活跃度对比
Activiti、Flowable和Camunda选型和对比的更多相关文章
- 开源流程引擎osworkflow、jbpm、activiti、flowable、camunda哪个好?
市场上比较有名的开源流程引擎有osworkflow.jbpm.activiti.flowable.camunda.其中:Jbpm4.Activiti.Flowable.camunda四个框架同宗同源, ...
- flowable与camunda性能测试对比分析
前言 目前主流的Java开源流程引擎有Activiti.Flowable.Camunda,笔者在进行流程引擎技术选型时,除了功能方面,性能和稳定性是尤其关注的指标,是选择Flowable?还是Camu ...
- 开源流程引擎该如何选择flowable还是camunda
市场上比较有名的开源流程引擎有osworkflow.jbpm.activiti.flowable.camunda.现在国内用的最多的是activiti.flowable.camunda,下面主要从功能 ...
- Spring Cloud Config、Apollo、Nacos配置中心选型及对比
Spring Cloud Config.Apollo.Nacos配置中心选型及对比 1.Nacos 1.1 Nacos主要提供以下四大功能 2.Spring Cloud Config 3.Apollo ...
- Oozie和Azkaban的技术选型和对比
1 两种调度工具功能对比图 下面的表格对上述2种hadoop工作流调度器的关键特性进行了比较,尽管这些工作流调度器能够解决的需求场景基本一致,但在设计理念,目标用户,应用场景等方面还是存在区别 特性 ...
- RabbitMQ 选型和对比
背景 这个纯粹是记下知识点,知道自己在这个时候了解过这个技术.技术点网上很多,就不多说了.只是想起多年前做过的一次项目,是多个项目整合,各种数据库,java和c#项目,互相调来调去,甚至直接链接对方数 ...
- 工作流选型专项,Camunda or flowable or?
1. 名词解释 1.1. BPM Business Process Management,业务流程管理,“通过建模.自动化.管理和优化流程,打破跨部门跨系统业务过程依赖,提高业务效率和效果”. 1.2 ...
- 我为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比(转载)
转载自:https://www.sojson.com/blog/48.html 前言: MQ 是什么?队列是什么,MQ 我们可以理解为消息队列,队列我们可以理解为管道.以管道的方式做消息传递. 场景: ...
- 为什么要选择RabbitMQ ,RabbitMQ简介,各种MQ选型对比
原文:https://www.sojson.com/blog/48.html 前言: MQ 是什么?队列是什么,MQ 我们可以理解为消息队列,队列我们可以理解为管道.以管道的方式做消息传递. 场景: ...
- flowable如何适配国产数据库达梦
前言 flowable6.4.1流程引擎官方支持的数据库有:MySQL.hsql.Oracle.DB2 .postgres.SQL Server.H2.对于其他类型的数据库如何支持,尤其是国产数据库的 ...
随机推荐
- docker bulid tag push到自己的docker hub 仓库
-t(或 --tag)参数:用于给构建的镜像指定标签(tag).标签的格式通常是 [仓库名/][用户名/]镜像名:版本号 -f(或 --file)参数: 指定构建镜像所使用的 Dockerfile 的 ...
- 3.9 Linux查看目录中的文件(ls命令)
通过学习cd 和 pwd 命令,相信读者已经能够在庞大的 Linux 文件系统中,随心所欲地游荡并确定自己所在的位置了.本节继续来学习,如何知道某目录中存放了哪些文件或子目录. ls 命令,list ...
- .NET Core 委托底层原理浅谈
简介 .NET通过委托来提供回调函数机制,与C/C++不同的是,委托确保回调是类型安全,且允许多播委托.并支持调用静态/实例方法. 简单来说,C++的函数指针有如下功能限制,委托作为C#中的上位替代, ...
- 斯坦福大学推出线性前沿LLM技术,训练模型成本仅为20美元
序言:当前基于 Transformer 架构的大语言模型人工智能技术,由于投入大.成本高.人才需求苛刻,导致许多企业望而却步.动辄几千万甚至上亿的成本,现实中有几家企业能够承担?真正具有竞争力的技术应 ...
- CAD Build 隐私说明
该App不会收集任何用户隐私数据.
- golang之Time时间函数
在编程中,我们经常会遭遇八小时时间差问题.这是由时区差异引起的,为了能更好地解决它们,我们需要理解几个时间定义标准. GMT(Greenwich Mean Time),格林威治平时.GMT 根据地球的 ...
- Django之开发restful接口
django中的开发接口有两种模式FBV和CBV,分别是基于函数视图和基于类视图,详细的可以看看菜鸟教程的Django 视图 - FBV 与 CBV,由于本文的用户管理是一个restful风格的api ...
- Java设计模式——适配器模式的精妙应用:探秘 JDK 源码中的 Set 类
在 Java 编程的世界里,JDK 源码犹如一座神秘的宝藏,其中的 Set 类更是我们日常开发中频繁使用的利器.今天,就让我们像勇敢的探险家一样,深入 JDK 源码,揭开 Set 类的神秘面纱,重点剖 ...
- Typroa主题替换
Typroa主题替换 从这里下载主题 1.解压后: 2.拷贝到typroa的主题目录下(打开typroa -> 偏好设置 -> 外观 -> 打开主题文件夹) 3.拷贝后: 4.重新打 ...
- git gitignore文件不生效
配置了 .gitigore 文件不生效,是刚开始将那些过滤的文件加到了版本控制.后续增加的,没有进入到版本控制 解决办法就是从版本控制移除,重新更新下gitignore文件 执行以下命令: 根据情况自 ...