簡(jiǎn)單介紹一下Activiti背景
Activiti的出現(xiàn):
Activiti的創(chuàng)始人Tom Baeyens是JBPM的創(chuàng)始人,,由于與合作伙伴在JBPM的未來(lái)架構(gòu)上產(chǎn)生意見(jiàn)分歧,,Tom Baeyens在2010年離開(kāi)了JBoss并加入Alfresco公司。Tom Baeyens的離開(kāi)使得JBPM5完全放棄了JBPM4的架構(gòu),,基于Drools Flow重新開(kāi)發(fā),。而在2010年的5月,Tom Baeyens發(fā)布了第一個(gè)Activiti版本(5.0alphal),,由此看來(lái),,Activiti更像是JBPM4的延續(xù),也許是為了讓其看起來(lái)更像JBPM4的延續(xù),,Activiti團(tuán)隊(duì)直接將Activiti的第一個(gè)版本定義為5.0,。
選擇Activiti還是JBPM
對(duì)于我們來(lái)說(shuō),JBPM5和Activiti同樣支持BPMN2.0規(guī)范,,但是實(shí)際上JBPM5已經(jīng)推翻了JBPM3和JBPM4的架構(gòu),,使用了Drools Flow作為工作流架構(gòu),這對(duì)于原來(lái)使用JBPM3和JBPM4的用戶來(lái)說(shuō)是非常郁悶的一件事(從零開(kāi)始重新學(xué)習(xí)JBPM5),。而Activiti更像是原來(lái)JBPM4的延續(xù),,因此對(duì)于原來(lái)使用JBPM3和JBPM4的用戶來(lái)說(shuō),推薦使用Activiti,。但是由于JBoss中有一些優(yōu)秀的項(xiàng)目,,JBPM5與這些項(xiàng)目進(jìn)行整合具有先天的優(yōu)勢(shì),因?yàn)槿绾芜x擇還需要權(quán)衡,。
Activiti5與jBPM5技術(shù)組成對(duì)比
Activiti5使用Spring進(jìn)行引擎配置以及各個(gè)Bean的管理,,綜合使用IoC和AOP技術(shù),,使用CXF作為WebServices實(shí)現(xiàn)的基礎(chǔ),使用MyBatis進(jìn)行底層數(shù)據(jù)庫(kù)ORM的管理,,預(yù)先提供Bundle化包能較容易的與OSGi進(jìn)行集成,,通過(guò)與MuleESB的集成和對(duì)外部服務(wù)(Web Service、RESTful等)的接口可以構(gòu)建全面的SOA應(yīng)用,; jBPM5使用jBoss.org社區(qū)的大多數(shù)組件,,以DroolsFlow為核心組件作為流程引擎的核心構(gòu)成,以Hibernate作為數(shù)據(jù)持久化ORM實(shí)現(xiàn),,采用基于JPA/JTA的可插拔的持久化和事務(wù)控制規(guī)范,,使用Guvnor作為流程管理倉(cāng)庫(kù),能夠與Seam,、Spring,、OSGi等集成。 需要指出的是Activiti5是在jBPM3,、jBPM4的基礎(chǔ)上發(fā)展而來(lái)的,,是原jBPM的延續(xù),而jBPM5則與之前的jBPM3,、jBPM4沒(méi)有太大關(guān)聯(lián),,且舍棄了備受推崇的PVM(流程虛擬機(jī))思想,轉(zhuǎn)而選擇jBoss自身產(chǎn)品DroolsFlow作為流程引擎的核心實(shí)現(xiàn),,工作流最為重要的“人機(jī)交互”任務(wù)(類(lèi)似于審批活動(dòng))則由單獨(dú)的一塊“Human Task Service”附加到DroolsFlow上實(shí)現(xiàn),,任務(wù)的查詢(xún)、處理等行為通過(guò)Apache Mina異步通信機(jī)制完成,。 優(yōu)劣對(duì)比: 從技術(shù)組成來(lái)看,,Activiti最大的優(yōu)勢(shì)是采用了PVM(流程虛擬機(jī)),支持除了BPMN2.0規(guī)范之外的流程格式,,與外部服務(wù)有良好的集成能力,,延續(xù)了jBPM3、jBPM4良好的社區(qū)支持,,服務(wù)接口清晰,,鏈?zhǔn)紸PI更為優(yōu)雅;劣勢(shì)是持久化層沒(méi)有遵循JPA規(guī)范,。 jBPM最大的優(yōu)勢(shì)是采用了ApacheMina異步通信技術(shù),,采用JPA/JTA持久化方面的標(biāo)準(zhǔn),以功能齊全的Guvnor作為流程倉(cāng)庫(kù),,有RedHat(jBoss.org被紅帽收購(gòu))的專(zhuān)業(yè)化支持,;但其劣勢(shì)也很明顯,對(duì)自身技術(shù)依賴(lài)過(guò)緊且目前僅支持BPMN2。 再結(jié)合項(xiàng)目(hibernate4.3)來(lái)說(shuō)為什么從JBPM4.4轉(zhuǎn)變?yōu)槭褂?/span>Activiti JBPM4.4與Hibernate4.3結(jié)合出現(xiàn)不兼容問(wèn)題,。那么hibernate3和hibernate4有什么區(qū)別,? http://hi.baidu.com/austincao/item/fc9907da3d854e44fa576861 附:Hibernate3的配置: 總結(jié) 以上只是將JBPM與Activiti簡(jiǎn)單進(jìn)行對(duì)比,然后大家可以根據(jù)需要選擇,,雖然是比較,,但不一定要有勝負(fù),只有適合自己的才是最好的,,而且無(wú)論是JBPM5還是Activiti來(lái)說(shuō)都了解不是很深的我們,,也沒(méi)有太多的發(fā)言權(quán),還需要在實(shí)踐中慢慢體會(huì),。 對(duì)于不兼容的問(wèn)題,,也是這次我們項(xiàng)目將jbpm轉(zhuǎn)換為Activiti的主要原因,說(shuō)到底我們還是要深入理解一下各個(gè)框架的原理,,對(duì)于不兼容問(wèn)題,,后續(xù)我們可以嘗試重寫(xiě)方法實(shí)現(xiàn)。 資料:(jBPM(三):Spring 集成 jBPM4.3 (jBPM4+Hibernate4))
|
|
來(lái)自: 昵稱(chēng)34195792 > 《工作流》