flowable camunda activiti 功能对比

flowable camunda activiti 功能对比flowablecamundaactiviti三个框架都是从jbpm框架诞生出来的,先是有jbpm4,然后出来了一个activiti5,activiti5发展一段时间,又出来了一个Camunda。activiti5发展了4年,紧接着出来了一个flowable。本文重点对flowablecamunda两个框架的功能对比。对比的camunda版本是7.10.0,flowable框架的版本…

大家好,又见面了,我是你们的朋友全栈君。

 

flowable camunda activiti 三个框架都是从jbpm框架诞生出来的,先是有jbpm4,然后出来了一个activiti5,activiti5发展一段时间,又出来了一个Camunda。activiti5发展了4年,紧接着出来了一个flowable。本文重点对flowable camunda两个框架的功能对比。对比的camunda版本是7.10.0,flowable框架的版本是6.4.1.

设计器对比

camunda有一个eclipse插件设计器,还有一个独立的modler设计器,有基于BS的,也有基于CS的。用于绘制BPMN/CMMN/DMN引擎需要的流程文档。

flowable只有个eclipse插件设计器,目前只能绘制5版本的流程,6版本新增加的节点以及属性无法绘制。本质上就是activiti5 eclipse插件,只是换了一个图标;在线web设计器基于angularjs1.x版本开发的。

camunda设计器如下:

flowable camunda activiti 功能对比flowable camunda activiti 功能对比

flowable设计器如下:

flowable camunda activiti 功能对比

小结

camunda设计器既可以面向业务人员,又可以面向开发人员。

flowable设计器仅面向专业开发人员。

支持的数据库对比

camunda支持的数据库

  • MySQL 5.6 / 5.7
  • MariaDB 10.0 / 10.2 / 10.3
  • Oracle 10g / 11g / 12c
  • IBM DB2 9.7 /10.1 / 10.5 / 11.1 (excluding IBM z/OS for all versions)
  • PostgreSQL 9.1 / 9.3 / 9.4 / 9.6 / 10.4
  • Microsoft SQL Server 2008 R2/2012/2014/2016 (see Configuration Note)
  • H2 1.4 (not recommended for Cluster Mode – see Deployment Note)

Flowable支持的数据库

  • MySQL 5.6 / 5.7
  • Oracle 10g / 11g / 12c
  • IBM DB2 9.7 /10.1 / 10.5 / 11.1 (excluding IBM z/OS for all versions)
  • PostgreSQL 9.1 / 9.3 / 9.4 / 9.6 / 10.4
  • Microsoft SQL Server 2008 R2/2012/2014/2016 (see Configuration Note)
  • H2 1.4 (not recommended for Cluster Mode – see Deployment Note)

小结

flowable暂时不支持MariaDB。

运行容器对比

camunda支持的运行容器

flowable支持的运行容器

小结

flowable框架不支持运行在JBoss、Wildfly之类的容器之上。官方目前也没有开发计划。

框架兼容其他workflow情况

camunda兼容其他workflow情况

  • 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

flowable兼容其他workflow情况

  • Alfresco Activiti5
  • Flowable5

小结

因为flowable去除了PVM,目前只有兼容activiti5的程序包,关于其他基于pvm开发的流程引擎统统不兼容。

 

功能对比

由于Flowable与Camunda好多功能都是类似的,因此在这里重点罗列差异化的功能

  1. camunda支持流程实例的迁移,比如同一个流程有多个实例,多个流程版本,不同流程实例运行在不同的版本中,camunda支持任意版本的实例迁移到指定的流程版本中,并可以在迁移的过程中支持从哪个节点开始。
  2. camunda基于PVM技术,所以用户从Activii5迁移到camunda基本上毫无差异。flowable没有pvm了,所以迁移工作量更大(实例的迁移,流程定义的迁移、定时器的迁移都非常麻烦)。
  3. camunda对于每一个CMD命令类都提供了权限校验机制,flowable没有。
  4. camunda继续每一个API都有批处理的影子,flowable几乎没有。比如批量挂起流程、激活流程等,使用camunda可以直接使用API操作,使用Flowable则只能自己去查询集合,然后循环遍历集合并操作。
  5. camunda很多API均支持批处理,在批量处理的时候可以指定是异步方式操作或者是同步方式操作。异步的话定时器会去执行。Flowable没有异步批处理的机制。比如批量异步删除所有的历史数据。
  6. camunda启动实例的时候支持从哪个节点开始,而不是仅仅只能从开始节点运转实例。Flowable仅仅只能从开始节点运转实例。
  7. camunda支持任意节点的跳转,可以跳转到连线也可以跳转到节点,并且在跳转的过程中支持是否触发目标节点的监听器。flowable没有改原生API需用户去扩展。
  8. camunda支持链式生成流程,比如
     Bpmn.createExecutableProcess(PROCESS_KEY)
      .camundaHistoryTimeToLive(5)
      .startEvent()
        .userTask()
      .endEvent().done(); flowable不支持。
  9. camunda支持双异步机制,第一个异步即节点可以异步执行,第二个异步方式是:完成异步任务后,还可以继续异步去执行任务后面的连线。所以称之为双异步机制,flowable只有第一种异步方式。
  10. camunda支持多种脚本语言,这些脚本语言可以在连线上进行条件表达式的配置,开箱即用。比如python、ruby、groovy、JUEL。flowable仅仅支持JUEL、groovy。开箱即用的意思就是如果想用python直接引入jython包就可以用了,不需要额外配置。
  11. camunda支持外部任务,比如我们有时候想在一个节点中执行调用第三方的API或者完成一些特定的逻辑操作,就可以使用外部任务,外部任务有两种表,并支持第三方系统定期来抓取并锁定外部任务,然后执行业务完毕之后,完成外部任务,流程实例继续往下执行。外部任务的好处就是解决了分布式事物的问题。在flowable中我们可以使用httpTask任务,我个人更倾向于camunda外部任务,因为这个外部任务有外部系统决定什么时候完成,httpTask是不等待任务,实例走到这个节点之后,调用一个api就直接往下跑了,外部任务不会继续往下跑,有外部系统去决定啥时候往下跑。
  12. camunda支持为用户定制一些个性化的偏好查找API,比如张三每次查询任务的时候,一般固定点击某某三个查询条件过滤数据,使用camunda就可以将这三个查询条件进行持久化,下次张三来了,就可以直接根据他的偏好进行数据的过滤,类似机器学习。
  13. camunda支持历史数据的批量删除或者批量迁移到其他介质,比如批量迁移到es,flowable没有该机制。
  14. camunda支持在高并发部署流程的时候,是否使用锁机制,flowable没有该机制。
  15. camunda支持单引擎多组合、多引擎多库。flowable仅仅支持单引擎多组合。
  16. camunda支持流程实例跨流程定义跳转,flowable没有该机制。
  17. camunda支持分布式定时器,flowable没有该机制。
  18. flowable支持nosql,camunda只有nosql的解决方案。
  19. camunda支持优化流程,以及了解流程引擎的瓶颈所在和每个环节的耗时,flowable没有该机制。
  20. camunda修改了流程模板xml解析方式,相比flowable性能更好。
  21. camunda在解析流程模板xml的时候,去除了activiti5的双解析机制,相对而言耗时时间更短。flowable没有了pvm所以规避了双解析机制。关于双解析机制可以参考《Activiti权威指南》一书。
  22. camunda可以在任意节点添加任意的属性,flowable原生API没有,需要自己扩展。
  23. camunda框架没有为流程生成图片的API(所有流程图展示以及高亮均在前端动态计算),activiti5/6/flowable5/flowable6有图片生成以及高亮的API.
  24. camunda可以在节点中定义定时作业的优先级,也可以在流程中进行全局优先级的定义。当节点没有定义优先级的时候可以使用全局的优先级字段。activiti5/6/flowable5/flowable6没有改功能。
  25. camunda可以再流程中定义流程的tag标记,activiti5/6/flowable5/flowable6没有改功能。
  26. camunda/activiti5/6/flowable5/flowable6 均不支持国产数据库,比如人大金仓 和 达梦。
  27. flowable6支持LDAP,openLDAP,camunda不支持。activiti5不支持。

以上方方面的对比均来自flowable camunda activiti三个框架源码的对比。关于更多的更详细的性能对比,后续文章会持续更新

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/143338.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 服务器地址和端口号是什么怎么看_常见服务对应的端口号

    服务器地址和端口号是什么怎么看_常见服务对应的端口号常用端口号与对应的服务以及端口关闭端口简介:本文介绍端口的概念,分类,以及如何关闭/开启一个端口21端口:21端口主要用于FTP(FileTransferProtocol,文件传输协议)服务。

    2022年8月4日
  • 软件测试面试笔试题及答案(软件测试题库)

    1、软件测试的流程2、web测试和APP测试的区别仅仅从功能测试的层面上来讲的话,在流程和功能测试上是没有区别的。那么区别在哪里呢?由于载体不一样,所以系统测试和一些细节可能会不一样。那么我们就要先来了解,web和app的区别。web项目,一般都是b/s架构,基于浏览器的,而app则是c/s的,必须要有客户端。那么在系统测试测试的时候就会产生区别了。首先从系统架构来看的话,web测试…

    2022年4月13日
  • 分布式架构设计之电商平台

    分布式架构设计之电商平台何为软件架构?不同人的答案会有所不同,而我认为一个好的软件架构除了要具备业务功能外,还应该具备一定的高性能、高可用、高伸缩性及可拓展等非功能需求。而软件架构是由业务架构和技术架构两部分组成,因为有了业务结构才会催生出软件架构,进而来满足业务上的需求,所以,在做软件架构设计时,需要分为业务架构设计和技术软件架构设计,二者不可分离哦!那么,接下来就以本人实际工作中的电商平台为例,进行说明电商平台架构设计,因为不同行业产品系统不同业务不同,而催生的系统软件的实现要求及架构设计就不同了!

    2022年6月29日
  • Git clone的使用方法[通俗易懂]

    Git clone的使用方法[通俗易懂]使用Gitclone项目1.首先我们要确保我们的电脑上已经安装Git。桌面点击右键出现如下图所示的两个Git即Git已经安装。2.在电脑的任意一个磁盘里新建一个本地文件夹作为clone项目的保存文件夹。3.在码云上面打开我们要clone的项目。4.点击克隆/下载按钮出现项目地址的连接,点击后面的复制。5.进入我们创建的本地文件夹内,右击选择GitBash…

    2022年7月21日
  • 在线H5页面生成器(持续更新中)

    在线H5页面生成器(持续更新中)1、关键词搜索wysiwyg,staticsitegenerator,h5creator,h5edtitor,h5maker2、原理讲解(重点)https://github.com/CntChen/cntchen.github.io/issues/15https://github.com/CntChen/cntchen.github.io/issues/17https…

    2022年5月11日
  • office2016、office365和office其它版本JH[通俗易懂]

    office2016、office365和office其它版本JH[通俗易懂]Win10系统中会预安装Office,但是没有给JH,网上给了各种解决方案,如JH码、KMS等方式JH。但是效果差强人意。但是网上有一些大牛写的方法倒是立竿见影,下面分享给大家:CSDN现在被网安查的我都不敢修改了,自己原创被搞得涉及版权问题,文章中还不能有pojie和jihuoOJBK我将在JH中间遇到的问题,都罗列在这篇文章里了,也很感谢提出问题的C友们,此处我特别强调一下…

    2022年7月19日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号