亚洲国产中文精品无码久久_亚洲妇女自偷自偷图片_亚洲第一国产毛片久久久_亚洲国产成人片在线观看无码_日本少妇被黑人粗大的猛激进

您當前的位置:首頁(yè) > 新聞資訊 > 產(chǎn)品動(dòng)態(tài) > 正文

【新東網(wǎng)技術(shù)大咖帶您走進(jìn)jBPM】從jBPM3、jBPM5到Activiti5:是繼承還是顛覆?

發(fā)布時(shí)間: 2017-02-06 12:25:26  
分享到:

 

文/陳繼先 通信研發(fā)部 華南-海南

 

 

 
專(zhuān)欄介紹

新東網(wǎng)自2001年成立以來(lái),掌握大數據、云計算、通信、物聯(lián)網(wǎng)及區塊鏈等領(lǐng)先信息技術(shù),擁有一支逾16年經(jīng)驗的強大IT團隊。為沉淀企業(yè)技術(shù)實(shí)力,繼續發(fā)揮行業(yè)優(yōu)勢,《東網(wǎng)快訊》特邀新東網(wǎng)技術(shù)大咖帶您走進(jìn)這些領(lǐng)先信息技術(shù),揭秘新東網(wǎng)16年來(lái)的技術(shù)成果,每周一發(fā)布。

 

 

從jBPM3發(fā)展到j(luò )BPM5再到Activiti5,jBPM(包括Activiti)的設計無(wú)不遵循一致的原則,即強調流程服務(wù)的可嵌入性和可擴展性。同時(shí),從各個(gè)版本之間的變化我們也能看見(jiàn)產(chǎn)品設計思路的變化:更加強調面向業(yè)務(wù)人員,增加BPMS(業(yè)務(wù)流程管理系統)特性。

 

回顧發(fā)展歷程前,首先我們來(lái)討論一下BPMS應該嵌入還是獨立部署的問(wèn)題,因為不管是jBPM還是Activiti,都強調了流程服務(wù)的可嵌入性。此外,我們還需要討論一下什么是BPMS的特性,它們所解決的問(wèn)題是什么。

 

 

一、嵌入式還是獨立部署
 

 

不管是jBPM還是Activiti,都強調了流程服務(wù)的可嵌入性。Tom Baeyens在其個(gè)人博客里稱(chēng)作為獨立部署的BPMS已死,原因有兩個(gè):一是獨立部署的BPMS需要很高的安裝使用成本,需要獨立部署、需要用戶(hù)支出大量的培訓成本和維護成本;二是獨立部署的BPMS與外部系統的交互方式是分布式,這使得很多問(wèn)題變得復雜,例如分布式事務(wù)。Tom Baeyens代表了相當一部分人特別是開(kāi)發(fā)人員的觀(guān)點(diǎn)。

 

Tom Baeyens沒(méi)有完全理解BPMS。什么是BPMS?BPMS最重要的目標就是需要打破各個(gè)應用系統(CRM、ECM、ERP、SCM)之間的界線(xiàn),將分散在這些系統中的流程集中管理,這是BPMS的實(shí)質(zhì)。一如流程再造,打破各個(gè)部門(mén)之間的壁壘,減少浪費,建立流程驅動(dòng)性的組織。如下圖1所示:

 

 

圖 1:BPMS打破應用系統之間的界線(xiàn)

 

BPMS所要解決的問(wèn)題要求其必然是獨立部署的。Tom Baeyens錯誤的根本原因在于其將BPMS與工作流系統的定義混為了一談,他如此定義BPMS:BPMS旨在簡(jiǎn)化對組織核心流程進(jìn)行支撐的軟件創(chuàng )建。也就是BPMS面向的是軟件開(kāi)發(fā)人員,旨在簡(jiǎn)化他們的開(kāi)發(fā),降低他們使用流程的門(mén)檻。而這正是工作流系統需要解決的問(wèn)題。BPMS面向企業(yè)用戶(hù),工作流面向開(kāi)發(fā)社區和系統集成商。

 

 

二、BPMS特性
 

 

jBPM4、jBPM5和Activiti5都增加了其BPMS特性,哪些特性能夠稱(chēng)為BPMS特性呢?我們先看一看BPMS需要解決的問(wèn)題,為解決這些問(wèn)題所增加的特性就是BPMS特性。

 

1. 如何設計流程,在組織中高效地對設計出的流程進(jìn)行溝通,取得共識?

· 提供跨越組織的流程標準標記符號與術(shù)語(yǔ)(BPMN已經(jīng)成為標準)

· 流程及相關(guān)文檔的可視化(流程/內容存儲倉庫)

· 提供在組織結構內進(jìn)行不同層次之間的流程導航(流程存儲倉庫支持組織模型)

· 流程定義在各個(gè)層次/部門(mén)間的一致性,避免業(yè)務(wù)人員的流程建模轉換到IT系統時(shí)受到損耗(流程引擎支持基于圖的建模,支持擴展)

 

2. 如何更好地執行流程?

· 業(yè)務(wù)活動(dòng)的實(shí)時(shí)監控,預警與控制(BAM)

· 流程執行的仿真

· 流程執行的統計分析與反饋(報表)

 

3. 如何更好地管理流程?

· 打破各個(gè)應用系統之間的界線(xiàn),統一管理所有流程(EAI,與ESB的集成)

· 對業(yè)務(wù)人員友好的建模工具

 

4. 如何在執行流程過(guò)程中遵循業(yè)內最佳實(shí)踐和規則?

· 面向流程的知識管理

· 規則引擎

 

 

三、完整的工作流實(shí)現jBPM3
 

 

jBPM3的最新版本是3.2.7,包括了以下組件:基于Eclipse的流程設計器、用于監控案例(流程實(shí)例)和處理任務(wù)的Web控制臺以及jPDL核心庫。如下圖2所示:

 

 

圖 2:jBPM3組件

 

1. 基于Eclipse的流程設計器

提供給開(kāi)發(fā)人員繪制jPDL流程圖,因為該設計器基于Eclipse,所以生成的流程文件可以與開(kāi)發(fā)代碼一起組織管理,非常容易進(jìn)行單元測試。實(shí)現了工作流管理系統參考模型里的接口1。

 

2. Web管理控制臺

主要有兩個(gè)功能:一是作為工作流客戶(hù)端應用接口,給用戶(hù)提供一種手段,以處理案例運行過(guò)程中需要人工處理的任務(wù);二是對案例的狀態(tài)進(jìn)行監控與管理。實(shí)現了工作流管理系統參考模型里的接口2和5。

 

3. jPDL核心庫

jPDL核心庫是一個(gè)單獨的JAR包,可以嵌入到目標應用中執行,它包括了:

· 流程倉庫:解析jPDL流程定義文件并存儲讀??;

· 流程引擎:對流程定義進(jìn)行初始化和調度執行,節點(diǎn)的運行期行為與jPDL里定義的節點(diǎn)類(lèi)型一一綁定;

· 任務(wù)管理:生成任務(wù)節點(diǎn)所對應的工作項,管理工作項的生命周期(初始化、分配執行者、執行、掛起、結束、終止);

· 事件管理:發(fā)布案例和任務(wù)的開(kāi)始、結束事件,通過(guò)監聽(tīng)者模式調用相應的事件處理器;

· 異步執行機制:通過(guò)線(xiàn)程實(shí)現了Job Executor,進(jìn)行異步工作的處理,這些工作包括了時(shí)間處理、異步動(dòng)作。

· 身份組件模型:實(shí)現了一套簡(jiǎn)單的身份組件模型,包括了組、用戶(hù)和權限。

 

通過(guò)調用自定義Java代碼實(shí)現了對外部應用的調用,從而實(shí)現工作流管理系統參考模型里的接口3。

 

jBPM3是一個(gè)輕量級的嵌入式工作流系統。它在Java社區的成功得益于兩個(gè)方面:一是嵌入式,這降低了使用工作流的門(mén)檻;二是對開(kāi)發(fā)人員友好,這表現在易讀的jPDL、流程的可測試性(Eclipse插件)以及節點(diǎn)行為的可擴展性,我們可以非常容易的在流程運行中加入自己定制的行為(通過(guò)事件處理器和Action)。jBPM3面向開(kāi)發(fā)人員,它解決的問(wèn)題是流程的自動(dòng)化,它的影響力集中在Java開(kāi)發(fā)社區,是一個(gè)完整的工作流系統實(shí)現。

 

四、向BPMS努力的jBPM4
 

 

與jBPM3相比,jBPM4最大的變化是引入了流程虛擬機(PVM),同時(shí)增加了BPMS的特性。jBPM4不再滿(mǎn)足于工作流系統的定位,開(kāi)始向BPMS努力。

 

1. 為什么引入流程虛擬機

盡管jBPM3在Java社區取得了很大的成功,但是有一件事始終被人們詬病,那就是它不支持流程語(yǔ)言規范,從最開(kāi)始的XPDL、BPEL到后來(lái)的BPMN,它采用了自定義的jPDL。在jBPM3中,節點(diǎn)的運行期行為與jPDL里定義的節點(diǎn)類(lèi)型是一一綁定的,這造成了流程引擎與特定流程語(yǔ)言的綁定,要支持其他的流程語(yǔ)言變得困難。于是在jBPM4中,jBPM提出了流程虛擬機的概念,即流程引擎與流程語(yǔ)言解耦,通過(guò)一套通用的流程模型并配以可定制的節點(diǎn)運行期行為實(shí)現了對多流程語(yǔ)言的支持。流程虛擬機帶來(lái)的好處是多方面的:第一也是最重要的是jBPM4支持了BPMN。

 

第二是實(shí)現了基于流程組件的流程引擎,流程圖(語(yǔ)言)與實(shí)現解耦,我們使用通用編程語(yǔ)言實(shí)現節點(diǎn)運行期行為,稱(chēng)之為流程組件,通過(guò)將流程圖與流程組件掛接,避免了圖的損耗。在這一點(diǎn)上,Tom Baeyens對BPMN到BPEL的轉換提出了一針見(jiàn)血的批評:BPMN和jPDL以及XPDL都是基于圖的,而B(niǎo)PEL是基于塊的,這造成了當將業(yè)務(wù)人員使用BPMN所建立的流程模型向BPEL執行模型進(jìn)行轉換時(shí),出現許多的不匹配,最初的流程模型會(huì )扭曲變形。而扭曲的后果就是業(yè)務(wù)人員與開(kāi)發(fā)人員之間的協(xié)作困難,這影響了流程從業(yè)務(wù)到技術(shù)的實(shí)現。

 

第三個(gè)好處是我們可以定義領(lǐng)域特定語(yǔ)言(DSL),在特定的應用里,采用DSL約定并隱藏了大部分的技術(shù)細節可能做到業(yè)務(wù)人員對執行流程的直接修改,例如企業(yè)文檔管理里的審批流程。

 

2. BPMS特性的加入

 

這表現在以下三個(gè)方面:第一是支持了BPMN,BPMN已經(jīng)成為業(yè)務(wù)人員的流程建模標準;第二是引入了Signavio作為面向業(yè)務(wù)人員的Web建模器;第三是在已有的Web管理控制臺加入了對案例和任務(wù)的統計功能。jBPM4的組件如下圖3所示:

 

圖3:jBPM4組件

 

和jBPM3一樣,jBPM4依然是輕量級的、可嵌入的工作流系統。相比jBPM3,它將業(yè)務(wù)人員作為最終用戶(hù)之一,增加了部分BPMS特性,同時(shí)PVM的引入使得它的可擴展性得到了極大的增強,我們甚至可以定義自己的DSL。

 

在BPMS特性里我們提到了應該避免業(yè)務(wù)人員的流程建模轉換到IT系統時(shí)受到損耗,最理想的情況是業(yè)務(wù)人員與開(kāi)發(fā)人員共用一個(gè)流程模型,業(yè)務(wù)人員能夠直接對流程進(jìn)行調整(在特定應用中,通過(guò)DSL是可以做到的);其次是通過(guò)BPMS將業(yè)務(wù)人員的模型與實(shí)際執行的技術(shù)模型關(guān)聯(lián)起來(lái)(很多商業(yè)產(chǎn)品已經(jīng)做到了這一點(diǎn),在A(yíng)ctiviti5中我們也會(huì )看到這一點(diǎn)),業(yè)務(wù)人員、開(kāi)發(fā)人員以及運營(yíng)團隊之間能夠做到很好的協(xié)調;最差是業(yè)務(wù)人員與開(kāi)發(fā)人員各自為政,獨立維護各自的流程模型,并且模型之間存在極大的不匹配,此時(shí)流程的迅速變化基本上是奢望。

 

五、鳩占鵲巢的Drools Flow與jBPM5
 

 

目前jBPM5剛剛發(fā)布了第一個(gè)候選發(fā)布版本,jBPM5基本上完全拋棄了jBPM4的代碼,所有代碼全部來(lái)自原先的Drools Flow。Drools Flow最初被用來(lái)解決規則執行順序的問(wèn)題。其實(shí)從Drools Flow開(kāi)始支持BPMN時(shí)起,我們已經(jīng)預感到它與jBPM的競爭關(guān)系。

 

jBPM5依舊定位為輕量級的可嵌入的工作流系統。在jBPM5的特性里,有這么兩條引人關(guān)注:一是引入了Guvnor作為流程倉庫,這解決了流程的可視化問(wèn)題,流程定義作為資源被管理,我們可以對流程定義進(jìn)行可視化管理以及全文檢索(Guvnor使用了Jackrabbit作為了其存儲實(shí)現,但我們的經(jīng)驗表明Jackrabbit在大數據量情況下性能存在嚴重問(wèn)題);第二是規則引擎(Drools Expert)、事件處理引擎(Drools Fusion)與流程引擎的合三為一,這是jBPM5最讓人期待的地方。jBPM5的組件如下圖4所示:

 

圖 4:jBPM5組件

 

規則引擎在流程中的應用已經(jīng)非常廣泛了,我們這里說(shuō)說(shuō)事件處理引擎。

 

事件處理引擎是業(yè)務(wù)活動(dòng)監控(BAM)的基礎,BAM的功能及執行過(guò)程,如下:

· 捕獲:BAM捕獲各種事件(通過(guò)消息監聽(tīng)器、適配器、代理等)。這些事件來(lái)自應用、系統軟件、外部交易伙伴。消息是BAM的核心——它們反應底層業(yè)務(wù)流程的狀況。

· 過(guò)濾:BAM過(guò)濾掉沒(méi)有直接后果的事件,在很多情況下由支持事件流處理(Event Stream Processing,簡(jiǎn)稱(chēng)ESP)或復雜事件處理(Complex Event Processing,簡(jiǎn)稱(chēng)CEP)引擎來(lái)進(jìn)行過(guò)濾。

· 分析:BAM根據分析模型和規則將相關(guān)事件聯(lián)系起來(lái)。

· 警告:BAM向用戶(hù)提出警告,以便用戶(hù)在必要時(shí)進(jìn)行控制。

 

如上所示,BAM的執行過(guò)程包含四個(gè)步驟,而前三個(gè)步驟都是對事件進(jìn)行相關(guān)的處理(捕獲事件、過(guò)濾事件、分析事件、關(guān)聯(lián)事件),因此在大多數BAM的技術(shù)實(shí)現方案中,都基于CEP和ESP的引擎來(lái)實(shí)現BAM的功能。

 

與jBPM4相比,jBPM5對PVM的放棄也帶來(lái)了幾個(gè)不小的問(wèn)題:第一是對開(kāi)發(fā)人員來(lái)說(shuō)只支持BPMN,不再支持jPDL(當然提供了遷移工具);第二是流程執行的可擴展性回到了jBPM3的年代,僅僅支持自定義動(dòng)作(相當于jBPM3里的Action)。此外,Web建模器由Signavio替換為了Oryx Designer。

 

總而言之,jBPM5通過(guò)引入流程倉庫和BAM繼續向BPMS邁進(jìn)(目前的進(jìn)展是與流程倉庫的集成還未完成,BAM基于日志進(jìn)行分析),同時(shí),由于不再支持PVM和jPDL,帶來(lái)了流程擴展性的降低和社區開(kāi)發(fā)人員的未來(lái)流失。

 

 

六、Activiti5的反擊
 

 

Activiti5是Tom Baeyens加入Alfresco后推出的新的基于jBPM4的開(kāi)源工作流系統,已發(fā)布第一個(gè)版本。Activiti的開(kāi)發(fā)團隊相比與jBPM強大了許多,有23位核心開(kāi)發(fā)者。當然這也是由于activiti規劃的功能所致:包括核心引擎、Web的流程建模器、協(xié)作工具Activiti Cycle、Activiti Probe、Activiti Explorer、與Spring的集成、與Mule的集成等。

 

 

圖 5:Activiti5的組件

 

如上圖所示,Activiti5由三種類(lèi)型的組件組成,分別是:專(zhuān)用工具(Dedicated Tools)、內容存儲工具(Stored Content)和協(xié)作工具(Collaboration Tool)。

專(zhuān)用工具包括以下:

 

· Alfresco—Alfresco公司的企業(yè)級內容管理產(chǎn)品

 

Alfresco 是一個(gè)開(kāi)源的、企業(yè)級的內容管理系統,功能包括:文檔管理、協(xié)作、記錄管理、知識庫管理、Web內容管理等功能。Alfresco與Activiti的深入集成實(shí)現了流程及相關(guān)文檔的可視化。更重要的是Alfresco支持組織模型,能夠提供在組織結構內進(jìn)行不同層次之間的流程導航。

 

· Activiti Modeler—建模器

 

基于開(kāi)源Signavio Web流程編輯器的一個(gè)定制版本,提供了對BPMN2.0圖形化規范的支持,建模后的流程以文件格式進(jìn)行存儲。

 

· Activiti Designer—Eclipse插件形式的建模器

· Activiti probe—管理及監控組件

 

對流程引擎運行期實(shí)例提供管理及監控的Web控制臺。包含部署的管理、流程定義的管理、數據庫表的檢視、日志查看、事務(wù)的平均執行時(shí)間、失敗多次的工作等功能。

 

· Activiti Explorer—任務(wù)管理組件

提供任務(wù)管理功能和對案例、任務(wù)基于歷史數據的統計分析(報表)功能。Web應用程序。

 

內容存儲工具:包括了文檔倉庫、模型倉庫、SVN倉庫、MVN倉庫和Activiti引擎。其中文檔倉庫、SVN倉庫和MVN倉庫三個(gè)組件為協(xié)作工具(Activiti Cycle)提供底層的支撐。Activiti引擎則是以前的PVM。

 

協(xié)作工具:與jBPM4相比,Activiti5最令人矚目的特性就在于它的協(xié)作工具組件。

 

Activiti Cycle完全是一種新類(lèi)型的BPM組件。它是一個(gè)用來(lái)促進(jìn)業(yè)務(wù)人員、開(kāi)發(fā)人員和IT運營(yíng)人員協(xié)作的Web應用程序。 在現實(shí)的場(chǎng)景中,業(yè)務(wù)文檔有業(yè)務(wù)人員所持有,而軟件程序由開(kāi)發(fā)團隊所管理,被部署的軟件應用則被IT管理人員所管理,三者之間不能很好的協(xié)作。我們可以想象這樣一個(gè)場(chǎng)景,業(yè)務(wù)經(jīng)理用文檔來(lái)維護需求和visio格式的流程圖,開(kāi)發(fā)人員管理可執行的流程和大量的Java源文件而IT維護人員則管理部署在Tomcat中的.war文件和存儲在A(yíng)ctiviti數據庫中的流程。

 

圖 6:Activiti cycle協(xié)作組件邏輯示意圖

 

Activiti Cycle通過(guò)BusinessLink將與流程相關(guān)的業(yè)務(wù)人員、開(kāi)發(fā)團隊與IT維護人員關(guān)聯(lián)起來(lái),實(shí)現他們之間的協(xié)作。

 

總而言之,與jBPM4相比,Activiti5目前最重要的增強就是實(shí)現了流程的可視化以及創(chuàng )新的Activiti Cycle協(xié)作組件,此外,通過(guò)與Mule的集成加強了其集成能力。其對PVM的保留使其繼承了jBPM4強大的可擴展能力,對jBPM的老用戶(hù)來(lái)說(shuō),這是向其遷移的重要理由。

 

 

七、總結
 

 

jBPM3是一個(gè)完整的工作流系統實(shí)現,面向開(kāi)發(fā)人員,目的在于簡(jiǎn)化對組織核心流程進(jìn)行支撐的軟件創(chuàng )建,不支持標準。

 

jBPM4引入PVM,使其擁有更強大的擴展性,同時(shí)增加BPMS特性,這些特性包括了對BPMN的支持、面向業(yè)務(wù)人員的Web建模器和簡(jiǎn)單統計分析功能的加入。

 

jBPM5基于原先的Drools Flow,支持BPMN,通過(guò)與Drools的合并支持BAM,通過(guò)內容倉庫增加對流程可視化的支持。由于放棄了jBPM4的PVM,引擎的可擴展性受到損害,并且不再支持jPDL。

 

Activiti5基于jBPM4,與Alfresco的集成增加了其流程可視化與管理能力,同時(shí)通過(guò)創(chuàng )新的Activiti Cycle協(xié)作組件支持流程相關(guān)人員之間的協(xié)調,最后,它加強了集成能力。

 

對于工作流應用或者jBPM3、jBPM4的老用戶(hù),建議轉向Activiti5。

 

分享到:
地址:福建省福州市銅盤(pán)路軟件大道89號軟件園A區26號樓 電話(huà):0591-83519233 傳真:0591-87882335 E-mail:doone@doone.com.cn
版權所有 新東網(wǎng)科技有限公司 閩ICP備07052074號-1 閩公網(wǎng)安備 35010202001006號
亚洲国产中文精品无码久久_亚洲妇女自偷自偷图片_亚洲第一国产毛片久久久_亚洲国产成人片在线观看无码_日本少妇被黑人粗大的猛激进