天天看點

Activiti實戰. 1.6Activiti與jBPM5比較

<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一樣的效果。