1. 程式人生 > 其它 >開源流程引擎osworkflow、jbpm、activiti、flowable、camunda哪個好?

開源流程引擎osworkflow、jbpm、activiti、flowable、camunda哪個好?

市場上比較有名的開源流程引擎有osworkflow、jbpm、activiti、flowable、camunda。其中:Jbpm4、Activiti、Flowable、camunda四個框架同宗同源,祖先都是Jbpm4,開發者只要用過其中一個框架,基本上就會用其它三個。開發低程式碼平臺、OA系統、BPM軟體均需要流程視覺化功能,而流程視覺化核心是流程引擎和流程設計器,對於市場上如此多的開源流程引擎,哪個功能和效能好,該如何選型呢?

一、流程引擎選型

1、Osworkflow

Osworkflow是一個輕量化的流程引擎,基於狀態機機制,資料庫表很少,Osworkflow提供的工作流構成元素有:步驟(step)、條件(conditions)、迴圈(loops)、分支(spilts)、合併(joins)等,但不支援會籤、跳轉、退回、加簽等這些操作,需要自己擴充套件開發,有一定難度,如果流程比較簡單,osworkflow是很號的選擇,筆者在2008年給某大型國企集團開發OA系統,就是基於Osworkflow,至今仍穩定執行,效能也很高。官方網站:http://www.opensymphony.com/osworkflow/

2、JBPM

JBPM由JBoss公司開發,目前最高版本JPBM7,不過從JBPM5開始已經跟之前不是同一個產品了,JBPM5的程式碼基礎不是JBPM4,而是從Drools Flow重新開始,基於Drools Flow技術在國內市場上用的很少,所有不建議選擇jBPM5以後版本,jBPM4誕生的比較早,後來JBPM4建立者Tom Baeyens離開JBoss後,加入Alfresco後很快推出了新的基於jBPM4的開源工作流系統Activiti, 另外JBPM以hibernate作為資料持久化ORM也已不是主流技術。筆者在2012年開發某集團BPM平臺時,選擇的就是JBPM4.4版本,也是4系列的最後一個版本,進行了大量的擴充套件開發,才實現中國特色的流程需求。現在時間節點選擇流程引擎,JBPM不是最佳選擇。官方網站:https://www.jbpm.org/

3、Activiti

activiti由Alfresco軟體開發,目前最高版本activiti 7。activiti的版本比較複雜,有activiti5、activiti6、activiti7幾個主流版本,選型時讓人暈頭轉向,有必要先了解一下activiti這幾個版本的發展歷史。activiti5和activiti6的核心leader是Tijs Rademakers,由於團隊內部分歧,在2017年時Tijs Rademakers離開團隊,建立了後來的flowable, activiti6以及activiti5程式碼已經交接給了 Salaboy團隊, activiti6以及activiti5的程式碼官方已經暫停維護了, Salaboy團隊目前在開發activiti7框架,activiti7核心使用的還是activiti6,並沒有為引擎注入更多的新特性,只是在activiti之外的上層封裝了一些應用。結論是activiti謹慎選擇。官方網站:https://www.activiti.org/

4、flowable

flowable基於activiti6衍生出來的版本,flowable目前最新版本是v6.6.0,開發團隊是從activiti中分裂出來的,修復了一眾activiti6的bug,並在其基礎上研發了DMN支援,BPEL支援等等,相對開源版,其商業版的功能會更強大。以flowable6.4.1版本為分水嶺,大力發展其商業版產品,開源版本維護不及時,部分功能已經不再開源版釋出,比如表單生成器(表單引擎)、歷史資料同步至其他資料來源、ES等。Flowable 是一個使用 Java 編寫的輕量級業務流程引擎,使用 Apache V2 license 協議開源。2016 年 10 月,Activiti 工作流引擎的主要開發者離開 Alfresco 公司並在 Activiti 分支基礎上開啟了 Flowable 開源專案。基於 Activiti v6 beta4 釋出的第一個 Flowable release 版本為6.0。Flowable 專案中包括 BPMN(Business Process Model and Notation)引擎、CMMN(Case Management Model and Notation)引擎、DMN(Decision Model and Notation)引擎、表單引擎(Form Engine)等模組。官方網站:https://flowable.com/open-source/

5、Camunda

Camunda基於activiti5,所以其保留了PVM,最新版本Camunda7.15,保持每年釋出2個小版本的節奏,開發團隊也是從activiti中分裂出來的,發展軌跡與flowable相似,同時也提供了商業版,不過對於一般企業應用,開源版本也足夠了,詳細見:https://blog.csdn.net/wxz258/article/details/10904373。官方網站:https://docs.camunda.org/manual/7.15/。筆者強烈推薦camunda流程引擎,並在雲程低程式碼平臺中使用了camunda,功能和效能表現穩定。
選擇camunda的理由:
(1)通過壓力測試驗證Camunda BPMN引擎效能和穩定性更好。詳細見:https://blog.csdn.net/wxz258/article/details/109030329
(2)功能比較完善,除了BPMN,Camunda還支援企業和社群版本中的CMMN(案例管理)和DMN(決策自動化)。Camunda不僅帶有引擎,還帶有非常強大的工具,用於建模,任務管理,操作監控和使用者管理,所有這些都是開源的。詳細見:https://blog.csdn.net/wxz258/article/details/109121092

二、流程設計器選型

對於低程式碼平臺中的流程視覺化,流程設計器是重要的支撐工具,目前市場上比較主流的流程設計器有bpmn-js、mxGraph、Activiti-Modeler、flowable-modeler、easy-flow、bpmn2-modeler外掛等。

1、bpmn-js

bpmn-js 是 BPMN 2.0 渲染工具包和 Web 模型。bpmn-js 正在努力成為 Camunda BPM 的一部分。bpmn-js 使用 Web 建模工具可以很方便的構建 BPMN 圖表,可以把 BPMN 圖表嵌入到你的專案中,容易擴充套件。bpmn-js是基於原生js開發,支援整合到vue、react等開源框架中。
官方網站:https://bpmn.io/

2、mxGraph

mxGraph是一個強大的JavaScript流程圖前端庫,可以快速建立互動式圖表和圖表應用程式,國內外著名的ProcessOne和draw.io都是使用該庫建立的強大的線上流程圖繪製網站. 由於mxGraph是一個開放的js繪圖開發框架,我們可以開發出很炫的樣式,或者完全按照專案需求定製。官方網站:http://jgraph.github.io/mxgraph/

3、Activiti-Modeler

Activiti 開源版本中帶了web版流程設計器,在Activiti-explorer專案中有Activiti-Modeler,優點是整合簡單,開發工作量小,缺點是介面不美觀,使用者體驗差。

4、flowable-modeler

flowable開源版本中帶了web版流程設計器,展示風格和功能基本跟Activiti-Modeler一樣,優點是整合簡單,開發工作量小,缺點是介面不美觀,使用者體驗差。

5、easy-flow

碼雲上開源的流程設計器,沒有深入研究,感覺離真正的BPMN流程圖設計差距較大,不過至少有個框架。
https://gitee.com/xiaoka2017/easy-flow?_from=gitee_search

6、Eclipse外掛bpmn2-modeler

C/S版本的流程設計器,如果沒有強調基於瀏覽器設計流程圖,也可以考慮Eclipse外掛版流程設計器bpmn2-modeler。官方地址:http://www.eclipse.org/bpmn2-modeler/

三、選型推薦

推薦大家使用camunda(流程引擎)+bpmn-js(流程設計器)組合,筆者在雲程BPM和多個專案中經過實戰驗證,camunda在功能方面比flowable、activiti流程引擎強大,效能和穩定性更突出,詳細對比見本部落格其它文章。免費體驗測試系統:http://www.yunchengxc.com。