<b>1.6activiti與jbpm5比較</b>
目前流行的工作流引擎有activiti和jbpm5,而在jbpm5釋出以前大多數項目、平台都是基于jbpm3、jbpm4開發的。本節内容從技術和實際應用上對activiti和jbpm5進行比較。表1-2從技術層面比較了兩者的差別。
表1-2activiti與jbpm5的技術層面對比
技
術 組 成 activiti jbpm
orm架構 mybatis3 hibernate3
持久化标準 無 ejb jpa規範
事務管理 mybatis自帶/spring內建事務 bitronix,基于jta事務管理
資料庫連接配接方式 jdbc/datasource jdbc/datasource
spring支援 原生支援spring,在流程中可以使用spring代理的bean作為表達式的一部分,并且支援jpa及事務管理 預設沒有提供對spring的支援
支援的資料庫 oracle、sql server、mysql、h2、記憶體資料庫等 oracle、sql server、mysql、記憶體資料庫等
設計模式 指令模式、觀察者模式等
内部服務通信 service間通過api調用 基于apache mina異步通信
內建接口 soap、mule、restful 消息通信
支援的流程格式 bpmn2、xpdl、jpdl等(由pvm實作) 目前僅隻支援bpmn2 xml
引擎核心 pvm(流程虛拟機) drools
技術前身 jbpm3、jbpm4 drools flow
團隊成員 除了alfresco公司的雇員之外還有spring-source、mulesoft、salves、signavio、fusesource、nextlevel等公司的員工加入 有一個專門的團隊,此外還有一些個人參與者
附加工具 提供了基于eclipse插件的流程設計器—eclipse
designer,提供基于rest風格的activiti explorer,可以用來管理倉庫、使用者、組、啟動流程、任務辦理等 同樣提供eclipse插件和一個web應用管理流程
釋出周期 固定每兩個月釋出一版,其中包括:引擎、eclipse designer、activiti explorer、rest應用 jbpm的釋出周期相對來說不太固定,釋出内容包括引擎及基于eclipse的設計器
activiti是基于jbpm4設計的衍生版本,如果選擇activiti可以繼續沿用jbpm的思想理念設計、整合activiti到項目或平台中,這也是相對于jbpm5來說的一個優勢;相反,對于jbpm5來說要花點時間重新接受開發者的設計思想。
在各個流程引擎社群中有很多關于該如何選擇activiti和jbpm5的讨論,這兩者有着很多相似的地方,争論主要是對規則引擎的支援:jbpm5是基于drool flow所有自然深度繼承而來的規則引擎drools;早期的activiti功能比較簡單,後來陸續添加的新特性也支援規則引擎drools,開發人員隻要簡單配置規則接口即可達到與jbpm5一樣的效果。