天天看點

java工作流引擎:jbpm和activiti對比分析

目前流行的工作流引擎有Activiti和jBPM5,而在jBPM5釋出以前大多數項目、平台都是基于jBPM3、jBPM4開發的。

jbpm

JBPM,全稱是Java Business Process Management(業務流程管理),它是覆寫了業務流程管理、工作流、服務協作等領域的一個開源的、靈活的、易擴充的可執行流程語言架構。jBPM是公開源代碼項目,使用它要遵循 ASL(Apache License Version 2.0)和EULA(JBoss End User License Agreement)協定。

Activiti5是在jBPM3、jBPM4的基礎上發展而來的,Activiti5使用Spring進行引擎配置以及各個Bean的管理,綜合使用IoC和AOP技術,使用CXF作為Web Services實作的基礎,使用MyBatis進行底層資料庫ORM的管理,預先提供Bundle化包能較容易的與OSGi進行內建,通過與Mule ESB的內建和對外部服務(Web Service、RESTful等)的接口可以建構全面的SOA應用。

Activiti5與jBPM5技術組成對比:

java工作流引擎:jbpm和activiti對比分析

Activiti5與jBPM5優劣對比:

從技術組成來看,Activiti最大的優勢是采用了PVM(流程虛拟機),支援除了BPMN2.0規範之外的流程格式,與外部服務有良好的內建能力,延續了jBPM3、jBPM4良好的社群支援,服務接口清晰,鍊式API更為優雅;劣勢是持久化層沒有遵循JPA規範。

jBPM最大的優勢是采用了Apache Mina異步通信技術,采用JPA/JTA持久化方面的标準,以功能齊全的Guvnor作為流程倉庫,有RedHat(jBoss.org被紅帽收購)的專業化支援;但其劣勢也很明顯,對自身技術依賴過緊且目前僅支援BPMN2。

總結:雖然是比較,但不一定要有勝負,隻有适合自己的才是最好的,要針對具體的項目差別對待。對我們自己的項目,其實我更關注的是流程引擎的執行效率以及性能,每小時幾十萬甚至上百萬的流程需要執行,需要多少個服務,叢集、負載的政策是什麼,會不會有沖突?目前這方面的資料還是比較少的,很多問題隻有實際遇用到的時候才會去想辦法解決。不過就我個人的感覺而言,Activiti上手比較快,界面也比較簡潔、直覺。

java工作流引擎:jbpm和activiti對比分析

如果java底子不好的話,可以試試XJR快速開發平台的工作流。XJR快速開發平台的工作流是整合activiti工作流引擎的圖形化流程設計器,通過可視化配置界面。基于B/S結構,純浏覽器應用,隻需要拖拽元件,拼接流程,就能實作各層的審批。