flowable camunda activiti 功能對比


原文地址:https://blog.csdn.net/qq_30739519/article/details/86682931

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設計器既可以面向業務人員,又可以面向開發人員。

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支持的運行容器
Apache Tomcat 7.0 / 8.0 / 9.0
JBoss Application Server 7.2 and JBoss EAP 6.1 / 6.2 / 6.3 / 6.4 / 7.0 / 7.1
Wildfly Application Server 8.2 / 10.1 / 11.0 / 12.0 / 13.0 / 14.0
IBM WebSphere Application Server 8.5 / 9.0 (Enterprise Edition only)
Oracle WebLogic Server 12c (12R1,12R2) (Enterprise Edition only)
Spring Boot application with embedded Tomcat (see Supported versions and Deployment scenarios)
flowable支持的運行容器
Apache Tomcat 7.0 / 8.0 / 9.0
Oracle WebLogic Server 12c (12R1,12R2) (Enterprise Edition only)
小結
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好多功能都是類似的,因此在這里重點羅列差異化的功能

camunda支持流程實例的遷移,比如同一個流程有多個實例,多個流程版本,不同流程實例運行在不同的版本中,camunda支持任意版本的實例遷移到指定的流程版本中,並可以在遷移的過程中支持從哪個節點開始。
camunda基於PVM技術,所以用戶從Activii5遷移到camunda基本上毫無差異。flowable沒有pvm了,所以遷移工作量更大(實例的遷移,流程定義的遷移、定時器的遷移都非常麻煩)。
camunda對於每一個CMD命令類都提供了權限校驗機制,flowable沒有。
camunda繼續每一個API都有批處理的影子,flowable幾乎沒有。比如批量掛起流程、激活流程等,使用camunda可以直接使用API操作,使用Flowable則只能自己去查詢集合,然后循環遍歷集合並操作。
camunda很多API均支持批處理,在批量處理的時候可以指定是異步方式操作或者是同步方式操作。異步的話定時器會去執行。Flowable沒有異步批處理的機制。比如批量異步刪除所有的歷史數據。
camunda啟動實例的時候支持從哪個節點開始,而不是僅僅只能從開始節點運轉實例。Flowable僅僅只能從開始節點運轉實例。
camunda支持任意節點的跳轉,可以跳轉到連線也可以跳轉到節點,並且在跳轉的過程中支持是否觸發目標節點的監聽器。flowable沒有改原生API需用戶去擴展。
camunda支持鏈式生成流程,比如
Bpmn.createExecutableProcess(PROCESS_KEY)
.camundaHistoryTimeToLive(5)
.startEvent()
.userTask()
.endEvent().done(); flowable不支持。
camunda支持雙異步機制,第一個異步即節點可以異步執行,第二個異步方式是:完成異步任務后,還可以繼續異步去執行任務后面的連線。所以稱之為雙異步機制,flowable只有第一種異步方式。
camunda支持多種腳本語言,這些腳本語言可以在連線上進行條件表達式的配置,開箱即用。比如python、ruby、groovy、JUEL。flowable僅僅支持JUEL、groovy。開箱即用的意思就是如果想用python直接引入jython包就可以用了,不需要額外配置。
camunda支持外部任務,比如我們有時候想在一個節點中執行調用第三方的API或者完成一些特定的邏輯操作,就可以使用外部任務,外部任務有兩種表,並支持第三方系統定期來抓取並鎖定外部任務,然后執行業務完畢之后,完成外部任務,流程實例繼續往下執行。外部任務的好處就是解決了分布式事物的問題。在flowable中我們可以使用httpTask任務,我個人更傾向於camunda外部任務,因為這個外部任務有外部系統決定什么時候完成,httpTask是不等待任務,實例走到這個節點之后,調用一個api就直接往下跑了,外部任務不會繼續往下跑,有外部系統去決定啥時候往下跑。
camunda支持為用戶定制一些個性化的偏好查找API,比如張三每次查詢任務的時候,一般固定點擊某某三個查詢條件過濾數據,使用camunda就可以將這三個查詢條件進行持久化,下次張三來了,就可以直接根據他的偏好進行數據的過濾,類似機器學習。
camunda支持歷史數據的批量刪除或者批量遷移到其他介質,比如批量遷移到es,flowable沒有該機制。
camunda支持在高並發部署流程的時候,是否使用鎖機制,flowable沒有該機制。
camunda支持單引擎多組合、多引擎多庫。flowable僅僅支持單引擎多組合。
camunda支持流程實例跨流程定義跳轉,flowable沒有該機制。
camunda支持分布式定時器,flowable沒有該機制。
flowable支持nosql,camunda只有nosql的解決方案。
camunda支持優化流程,以及了解流程引擎的瓶頸所在和每個環節的耗時,flowable沒有該機制。
camunda修改了流程模板xml解析方式,相比flowable性能更好。
camunda在解析流程模板xml的時候,去除了activiti5的雙解析機制,相對而言耗時時間更短。flowable沒有了pvm所以規避了雙解析機制。關於雙解析機制可以參考《Activiti權威指南》一書。
camunda可以在任意節點添加任意的屬性,flowable原生API沒有,需要自己擴展。
camunda框架沒有為流程生成圖片的API(所有流程圖展示以及高亮均在前端動態計算),activiti5/6/flowable5/flowable6有圖片生成以及高亮的API.
camunda可以在節點中定義定時作業的優先級,也可以在流程中進行全局優先級的定義。當節點沒有定義優先級的時候可以使用全局的優先級字段。activiti5/6/flowable5/flowable6沒有改功能。
camunda可以再流程中定義流程的tag標記,activiti5/6/flowable5/flowable6沒有改功能。
camunda/activiti5/6/flowable5/flowable6 均不支持國產數據庫,比如人大金倉 和 達夢。
flowable6支持LDAP,openLDAP,camunda不支持。activiti5不支持。
以上方方面的對比均來自flowable camunda activiti三個框架源碼的對比。關於更多的更詳細的性能對比,后續文章會持續更新
————————————————
版權聲明:本文為CSDN博主「分享牛」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_30739519/article/details/86682931


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM