JBPM與Spring集成開發(fā)指南_第1頁
JBPM與Spring集成開發(fā)指南_第2頁
JBPM與Spring集成開發(fā)指南_第3頁
JBPM與Spring集成開發(fā)指南_第4頁
JBPM與Spring集成開發(fā)指南_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、JBPM與與Spriing集成成開發(fā)指南南 1 術(shù)語語工作流:全部或者者部分,由由計算機(jī)支支持或自動動處理的業(yè)業(yè)務(wù)過程。工作流管理理系統(tǒng):工工作流管理理系統(tǒng)是這這樣的一個個系統(tǒng),詳詳細(xì)定義、管理并執(zhí)執(zhí)行“workkflowws”,系統(tǒng)通通過運(yùn)行一一些軟件來來執(zhí)行woorkfllows,這這些軟件的的執(zhí)行順序序由工作流流邏輯的計計算機(jī)表示示形式(計計算機(jī)化的的業(yè)務(wù)規(guī)則則過程定定義)驅(qū)動。工單:一次次申請的提提交記錄,該該記錄具有有唯一性。工單相關(guān)關(guān)的概念: l 工單單管理:對對投訴工單單、建議工工單、座席席建議工單單、業(yè)務(wù)受受理工單等等不同類型型的工單進(jìn)進(jìn)行派發(fā)、接收處理理、回復(fù)等等一系列工工單

2、處理操操作。 l 工單單統(tǒng)計:對對各種處理理工單的數(shù)數(shù)量,類型型進(jìn)行數(shù)據(jù)據(jù)統(tǒng)計和導(dǎo)導(dǎo)出、報表表打印。 l 工單單系統(tǒng)管理理:對工單單系統(tǒng)進(jìn)行行管理,設(shè)設(shè)置相應(yīng)的的處理部門門、處理人人員和相應(yīng)應(yīng)的權(quán)限,規(guī)規(guī)定處理流流程。 l 工單單日志:記記錄工單操操作日志,有有效管理日日志的處理理狀況和責(zé)責(zé)任。 2 背景景工作流管管理系統(tǒng)一一項(xiàng)快速發(fā)發(fā)展的技術(shù)術(shù),各種行行業(yè)漸漸的的采用工作作流技術(shù)。工作流技技術(shù)的主要要特點(diǎn)是:過程的自自動化處理理,這些過過程包含由由人與以機(jī)機(jī)器為基礎(chǔ)礎(chǔ)的活動相相結(jié)合;特特別是對那那些與ITT 應(yīng)用程程序、工具具交互的過過程,進(jìn)行行自動化處處理。雖然然,工作流流技術(shù)廣泛泛用于辦

3、公公環(huán)境中,例例如保險、銀行、法法院和行政政管理等,然然而工作流流技術(shù),也也可以應(yīng)用用于一些類類型的工業(yè)業(yè)和制造業(yè)業(yè)。 3 概述述在人們?nèi)杖粘I詈秃凸ぷ髦校级紝⑴c工作作流程發(fā)生生密切的關(guān)關(guān)系,“工作流”干預(yù)過程程、業(yè)務(wù)程程序的自動動化處理,文文檔、信息息或者任務(wù)務(wù)按照定義義好的規(guī)則則在參與者者間傳遞,來來完成整個個業(yè)務(wù)目標(biāo)標(biāo)或者對整整個業(yè)務(wù)目目標(biāo)的完成成做貢獻(xiàn)。應(yīng)用領(lǐng)域域廣泛,比比如: l 公司司或組織內(nèi)內(nèi)部請假或或休假流程程、通知分分發(fā)流程等等 l 政府府政策審批批流程、 l 網(wǎng)上上書店圖書書訂閱流程程、發(fā)送流流程等 l 駕照照學(xué)習(xí)流程程等等。同時,“工工作流”可能由手手工組織,實(shí)實(shí)際上

4、,多多數(shù)“工作流 ”都在ITT系統(tǒng)中進(jìn)進(jìn)行組織的的,從而對對過程自動動化提供計計算機(jī)支持持?!肮ぷ髁鳌辈捎糜嬎闼銠C(jī)化后,可可以大大提提高工作和和生活的效效率,而信信息化過程程中,對于于采用的技技術(shù)實(shí)現(xiàn)方方式的不同同,將直接接影響到信信息化的質(zhì)質(zhì)量,包括括:開發(fā)成成本、維護(hù)護(hù)成本等。好的工作作流解決方方案,可以以大大提高高業(yè)務(wù)流程程流轉(zhuǎn)效率率、容易擴(kuò)擴(kuò)展對新流流程的支持持等。JBPM是是當(dāng)前優(yōu)秀秀的開源工工作流引擎擎。本文檔檔是關(guān)于JJBPM與與Spriing框架架集成分析析文檔。包包括:基本本概念、設(shè)設(shè)計要點(diǎn)、常見問題題解答、參參考資源等等。本文主要介介紹了集成成開發(fā)的高高級內(nèi)容,基基礎(chǔ)知識參

5、參見:參考考資料本文檔適合合所有計算算機(jī)開發(fā)人人員。 4 基本本概念 44.1 什么是工工作流“工作流”干預(yù)過程程、業(yè)務(wù)程程序的自動動化處理,文文檔、信息息或者任務(wù)務(wù)按照定義義好的規(guī)則則在參與者者間傳遞,來來完成整個個業(yè)務(wù)目標(biāo)標(biāo)或者對整整個業(yè)務(wù)目目標(biāo)的完成成做貢獻(xiàn)。同時,“工作流”可能由手手工組織,實(shí)實(shí)際上,多多數(shù)“工作流 ”都在ITT系統(tǒng)中進(jìn)進(jìn)行組織的的,從而對對過程自動動化提供計計算機(jī)支持持,WFMMC把工作作定位在這這個方向上上?!肮ぷ髁鳌倍x:全全部或者部部分,由計計算機(jī)支持持或自動處處理的業(yè)務(wù)務(wù)過程。工作流經(jīng)常常與“過程重組組(BPRRBusiinesss Proocesss Re-

6、engiineerring)”聯(lián)系在一起。BPR 是關(guān)于企業(yè)(組織)核心業(yè)務(wù)過程的評估、分析、模擬、定義以及其后的操作實(shí)現(xiàn)。盡管,不是所有的BPR都是采用工作流實(shí)現(xiàn)的,但工作流技術(shù)是最佳的方法,主要因?yàn)?,工作流技術(shù)提供了業(yè)務(wù)過程邏輯與IT操作支持的分離,從而以后可以修改過程規(guī)則來重定義業(yè)務(wù)過程。相反,工作流技術(shù)并不只在BPR中采用,例如用于現(xiàn)有的業(yè)務(wù)過程中?!肮ぷ髁鞴芄芾硐到y(tǒng)(WWFMSWorkkfloww Mannagemment Systtem)”通過管理理工作活動動序列,調(diào)調(diào)用與各種種活動步驟驟相關(guān)的人人員、ITT資源,對對業(yè)務(wù)過程程提供自動動化處理?!肮ぷ髁鞴芄芾硐到y(tǒng)”定義:工工作流管

7、理理系統(tǒng)是這這樣的一個個系統(tǒng),詳詳細(xì)定義、管理并執(zhí)執(zhí)行“workkflowws”,系統(tǒng)通通過運(yùn)行一一些軟件來來執(zhí)行woorkfllows,這這些軟件的的執(zhí)行順序序由工作流流邏輯的計計算機(jī)表示示形式(計計算機(jī)化的的業(yè)務(wù)規(guī)則則過程定定義)驅(qū)動動。每個業(yè)業(yè)務(wù)過程都都有一個生生命周期,從從幾分鐘到到幾天(甚甚至數(shù)月),由由過程的復(fù)復(fù)雜性與組組成活動的的持續(xù)時間間來決定。有多種方方法實(shí)現(xiàn)工工作流管理理系統(tǒng),使使用多種IIT和通訊訊組件,運(yùn)運(yùn)行環(huán)境可可以從一個個小的本地地工作組到到企業(yè)間。因此,WWFMC參參考模型從從各種角度度考慮工作作流管理系系統(tǒng),希望望提供各種種不同的實(shí)實(shí)現(xiàn)技術(shù)、運(yùn)行環(huán)境境。盡管實(shí)現(xiàn)

8、的的方法多種種多樣,但但所有的WWFMS都都表現(xiàn)出某某種共同的的特性,這這為不同產(chǎn)產(chǎn)品間的集集成、協(xié)同同工作提供供了基礎(chǔ)。參考模型型描述了工工作流系統(tǒng)統(tǒng)的一個公公共模型,并并且指出參參考模型如如何能使其其與其他各各種不同的的實(shí)現(xiàn)方法法相關(guān)聯(lián)。在最高層,所所有的WFFMS都相相同的特性性,即為下下邊的3個個功能提供供支持: 建立時時期(Buuild-timee)功能,定定義、模擬擬工作流過過程,及其其組成活動動。 運(yùn)行時時期(Ruun-tiime)控控制功能,在在運(yùn)行環(huán)境境中管理工工作流過程程,管理不不同 運(yùn)行時時期與用戶戶、IT應(yīng)應(yīng)用程序(工工具)的交交互,來處處理各種活活動的執(zhí)行行。下圖描述

9、WWFMS的的基本特性性,以及上上述功能間間的關(guān)系: 4.2 JBPMM 4.2.1 介紹jBPM is aa plaatforrm foor exxecuttablee proocesss lannguagges rrangiing ffrom busiinesss proocesss mannagemment (BPMM) ovver wworkfflow to sserviice oorcheestraationn. Thhere are manyy proocesss lannguagges. Eachh onee is targgetedd towwardss a sspeciifi

10、c funcctionn andd a sspeciific enviironmment. jBPPM alllowss alll of thesse prrocesss laanguaages to bbe buuild natiivelyy on top of oone ssinglle teechnoologyy: thhe Prrocesss Viirtuaal Maachinne (PPVM). jBPPM allreaddy suupporrts 33 verry diifferrent proccess langguagees: jjPDL, WS-BPELL andd Seaa

11、m Paagefllow. Thiss migght eexpannd inn thee futture as nnew pproceess llanguuagess aree addded tto ouur pllatfoorm. jBPMM(JBooss BBusinness Proccess Manaagemeent業(yè)務(wù)務(wù)流程管理理),它是是覆蓋了業(yè)業(yè)務(wù)流程管管理、工作作流、服務(wù)務(wù)協(xié)作等領(lǐng)領(lǐng)域的一個個開源的、靈活的、易擴(kuò)展的的可執(zhí)行流流程語言框框架。 jPPDL是構(gòu)構(gòu)建于jBBPM框架架上的流程程語言之一一。在jPPDL中提提供了任務(wù)務(wù)(tassks)、待處理狀狀態(tài) (wwait sta

12、ttes)、計時器(ttimerrs)、自自動處理(aautommatedd acttionss)等術(shù)語,并并通過圖型型化的流程程定義,很很直觀地描描述業(yè)務(wù)流流程。 jPPDL可以以部署于JJava語語言的任何何應(yīng)用環(huán)境境下,JaavaSEE Appplicaationn(Swiing/SSWT)、JavaaEE AAppliicatiion(AAppliicatiion SServeer) 。 4.2.2 jPDLL分發(fā)包組組成目前jPDDL的最新新版本是33.2.22,您可以以在以下地地址:htttp:/jbosssjbppm/jppdl_ddownlloadss/獲得官官方下載包包。下載

13、包包分為兩種種,一種是是標(biāo)準(zhǔn)包(jbpmm-jpddl-3.2.2.zip)只有200M左右;一種是套套件包(jjbpm-jpdll-suiite-33.2.22.zipp)將近880M。兩兩者最大的的區(qū)別是套套裝包自帶帶一個已經(jīng)經(jīng)配置好的的jbosss服務(wù),下下載解壓縮縮后,可直直接運(yùn)行。 4.2.3 jPDDL的核心心程序包(jbpmm-jpddl.jaar) 它是一個典典型的jaar文件,它它涵蓋對流流程定義和和運(yùn)行時流流程實(shí)例上上下文環(huán)境境的操作AAPI。在在最簡化的的業(yè)務(wù)流程程樣例中,jjPDL將將流程定義義存儲與XXML格式式的定義文文件中,在在運(yùn)行時載載入內(nèi)存,在在內(nèi)存里記記錄完

14、整的的業(yè)務(wù)實(shí)例例和執(zhí)行過過程的環(huán)境境變量,并并完成全部部操作。顯顯然,在實(shí)實(shí)際應(yīng)用中中,流程信信息必須被被持久化的的存儲于數(shù)數(shù)據(jù)庫中。jPDLL使用了HHiberrnatee作為其對對象持久化化的APII。 4.2.4 Graaphiccal PProceess DDesiggner插插件(jbbpm-jjpdl-desiignerr-3.11.2.zzip) 它是一個基基于Ecllipsee的圖型編編輯插件。使用它可可以對業(yè)務(wù)務(wù)流程進(jìn)行行可視化的的定制,而而無須手動動編輯XMML文件。該插件還還提供了流流程定義上上傳功能,可可以將新定定義的流程程發(fā)布到在在線運(yùn)行的的jPDLL系統(tǒng)上。 4.2

15、.5 jPDLL身份包(jbpmm-ideentitty.jaar) 它是jjPDL的的一個輕量量級擴(kuò)展包包,簡單實(shí)實(shí)現(xiàn)了組GGroupp、用戶UUser、許可權(quán)PPermiissioon等用戶戶身份認(rèn)證證和鑒權(quán)機(jī)機(jī)制。如果果您的應(yīng)用用環(huán)境只需需要簡單的的用戶認(rèn)證證鑒權(quán)管理理,那么它它十分適合合您。 4.2.6 jPDDL Weeb控制臺臺(jbppm-coonsolle.waar) 它是一個標(biāo)標(biāo)準(zhǔn)Webb應(yīng)用(使使用了JSSF技術(shù)),提提供了對jjPDL平平臺執(zhí)行情情況的監(jiān)控控程序(對對jPDLL數(shù)據(jù)庫的的監(jiān)控)。管理員可可以通過該該程序方便便的維護(hù)jjPDL的的數(shù)據(jù)庫,管管理流程定定義和流

16、程程實(shí)例的執(zhí)執(zhí)行情況。同時,它它還提供了了一個簡單單的Getttingg staartedd DEMMO,方便便初學(xué)者了了解jPDDL。 4.2.7 靜態(tài)的流流程定義模模型 4.2.7.1 流程定義義實(shí)體(PProceess DDefinnitioon)編號 PD-0001 對象 流程定義義實(shí)體(PProceess DDefinnitioon) 描述 流程定義義實(shí)體是對對一個流程程抽象的對對象化定義義,如圖-002。一套系統(tǒng)統(tǒng)中,用戶戶可以定義義保存多個個流程定義義實(shí)體,如如:報銷流流程定義、請假流程程定義、人人事錄用流流程定義等等。每個流流程定義還還可以有多多個不同的的版本,如如:針對同同樣

17、的報銷銷流程可以以有修訂前前和修訂后后的兩個流流程定義,同同時存儲于于jPDLL數(shù)庫中。用戶可以以通過流程程名稱和版版本號獲取取相應(yīng)的流流程定義。在默認(rèn)請請況下,系系統(tǒng)啟用最最新的流程程定義。 Java對對象 org.jbpmm.graaph.ddef.PProceessDeefiniitionn 數(shù)據(jù)庫表 JBPMM_PROOCESSSDEFIINITIION該表表存儲流程程定義的通通用信息,如如:流程名名稱、版本本號 表關(guān)聯(lián)說明明 JBPMM_PROOCESSSDEFIINITIION表中中,每條記記錄有自己己的數(shù)據(jù)庫庫流水號 ID_JJBPM_PROCCESSDDEFINNITIOON的

18、外鍵鍵(Forreignn Keyys):starttstatte_ 同同JBPMM_NODDE(流程程結(jié)點(diǎn))表表關(guān)聯(lián)。此此外鍵指向向流程定義義中的起始始結(jié)點(diǎn)IDD 4.2.7.2 流程結(jié)結(jié)點(diǎn)(Noode)編號 PD-0002 對象 流程結(jié)點(diǎn)點(diǎn)(Nodde) 描述 流程結(jié)點(diǎn)點(diǎn)是對流程程中的過程程環(huán)節(jié)/行行為的抽象象對象化定定義,如圖圖-0022中的每個個方框即代代表一個結(jié)結(jié)點(diǎn)。結(jié)點(diǎn)點(diǎn)有兩個主主要職責(zé):一,實(shí)現(xiàn)現(xiàn)某個指定定行為,這這在jBPPM中就是是執(zhí)行一段段制定的JJava代代碼;二,轉(zhuǎn)轉(zhuǎn)遞、維持持流程的延延續(xù),直至至達(dá)到最終終結(jié)點(diǎn)。在在jPDLL的結(jié)點(diǎn)設(shè)設(shè)計中,系系統(tǒng)開放了了充分的用用戶行

19、為模模型,程序序員可以基基于這些行行為接口,實(shí)實(shí)現(xiàn)自定義義的業(yè)務(wù)功功能。在jjPDL中中,系統(tǒng)預(yù)預(yù)定義了一一系列的NNode類類型,同時時也允許程程序員開發(fā)發(fā)定義自己己的Nodde類型。 Java對對象 org.jbpmm.graaph.ddef.NNode 數(shù)據(jù)庫表 JBPMM_NODDE該表存存儲結(jié)點(diǎn)的的定義信息息。 表關(guān)聯(lián)說明明 JBPMM_NODDE表中,每每條記錄有有自己的數(shù)數(shù)據(jù)庫流水水號 ID_JJBPM_NODEE的外鍵(FForeiign KKeys):proceessdeefiniitionn_ - 此外鍵說說明該Noode從屬屬的流程定定義對象IID subprrocess

20、sdeffinittion_- 此外外鍵指定了了一個由該該Nodee發(fā)起的子子流程。在在主流程離離開當(dāng)前結(jié)結(jié)點(diǎn)之前,該該子流程必必須完成執(zhí)執(zhí)行過程。actiion_ - 此外外鍵指定該該結(jié)點(diǎn)動作作類的IDD superrstatte_ - 該外鍵鍵是一個自自關(guān)聯(lián)鍵,指指向結(jié)點(diǎn)的的上級父結(jié)結(jié)點(diǎn)ID。一個子流流程中的多多個結(jié)點(diǎn)從從屬于同一一個父流程程結(jié)點(diǎn)。 decissionddeleggatioon_ 該外鍵鍵指定了結(jié)結(jié)點(diǎn)委派的的判定類IID(所謂謂委派判定定類是指根根據(jù)用戶的的業(yè)務(wù)邏輯輯,判定流流程的下一一個流向的的Javaa Claass) 4.2.7.3 流程程轉(zhuǎn)向(TTranssitio

21、ons)編號 PD-0003 對象 流程轉(zhuǎn)向向(Traansittionss) 描述 流程轉(zhuǎn)向向是描述流流程中從一一個結(jié)點(diǎn)到到另一個結(jié)結(jié)點(diǎn)的狀態(tài)態(tài)轉(zhuǎn)換過程程,因此一一個轉(zhuǎn)向一一定有一個個源結(jié)點(diǎn)和和一個目標(biāo)標(biāo)結(jié)點(diǎn)。 在jPDDL中trransiitionn的命名是是通產(chǎn)是唯唯一的,結(jié)結(jié)點(diǎn)依靠ttranssitioon的命名名來區(qū)別到到下一結(jié)點(diǎn)點(diǎn)的路徑,當(dāng)當(dāng)一個Noode中存存在有多個個同名的ttranssitioon的時候候,第一個個trannsitiion將會會被選中。結(jié)點(diǎn)轉(zhuǎn)向向的過程中中,排在ttranssitioon列表第第一位置的的即是默認(rèn)認(rèn)的traansittion。 Java對對象

22、org.jbpmm.graaph.ddef.TTranssitioon 數(shù)據(jù)庫表 JBPMM_TRAANSITTION該該表存儲流流程定義中中的轉(zhuǎn)向?qū)ο蟆?表關(guān)聯(lián)說明明 JBPMM_TRAANSITTION表表中,每條條記錄有自自己的數(shù)據(jù)據(jù)庫流水號號 ID_JJBPM_TRANNSITIION的外外鍵(Fooreiggn Keeys):proceessdeefiniitionn_ - 該外鍵指指向traansittion所所屬的流程程定義對象象ID from_ - 該該外鍵指向向trannsitiion的源源結(jié)點(diǎn)IDD to_ -該外鍵指指向traansittion的的目標(biāo)結(jié)點(diǎn)點(diǎn)ID 4.2

23、.7.4 動作作(Acttionss)編號 PD-0004 對象 動作(AActioons) 描述 Actiions是是指一系列列的在流程程事件中運(yùn)運(yùn)行的Jaava代碼碼。流程圖圖是軟件需需求的傳達(dá)達(dá)的重要手手段,但它它只是軟件件需求的一一個投影,隱隱藏了很多多技術(shù)實(shí)現(xiàn)現(xiàn)的細(xì)節(jié)。Actiions則則是向流程程圖添加技技術(shù)實(shí)現(xiàn)細(xì)細(xì)節(jié)的一種種機(jī)制,它它可以很好好的補(bǔ)充和和修飾流程程圖。這意意味著在不不改變流程程圖結(jié)構(gòu)的的情況下,可可以將Jaava的代代碼與之關(guān)關(guān)聯(lián)。Acctionns通過事事件(Evventss)同流程程綁定,常常用的主要要事件包括括:進(jìn)入結(jié)結(jié)點(diǎn)、離開開結(jié)點(diǎn)、進(jìn)進(jìn)行轉(zhuǎn)向。請注意,同

24、同Evennts關(guān)聯(lián)聯(lián)的Acttionss和處于NNode中中的Acttionss是有不同同的。處于于Evennts中的的Actiions是是通過事件件觸發(fā)執(zhí)行行的,它是是典型的觀觀察者模式式,是無法法影響流程程控制的流流向。而處處于Nodde中的AActioon則要承承擔(dān)起流程程傳遞的責(zé)責(zé)任。此外外,Acttionss是可以命命名的??煽梢酝ㄟ^AActioons的命命名在任何何地方引用用該Acttionss。命名的的Actiions可可以作為主主流程定義義的公用子子元素。這這個功能可可以提高對對Actiions定定義的復(fù)用用。 Java對對象 org.jbpmm.graaph.ddef.AA

25、ctioon 數(shù)據(jù)庫表 JBPMM_ACTTION該該表存儲流流程定義中中的動作對對象。 表關(guān)聯(lián)說明明 JBPMM_ACTTION表表中,每條條記錄有自自己的數(shù)據(jù)據(jù)庫流水號號ID_ JBPMM_ACTTION的的外鍵(FForeiign KKeys):proceessdeefiniitionn_ - 指明acctionn所屬的流流程定義IID eventt_ - 指明acctionn綁定的eeventt ID actioondellegattion_ - 指指明acttion的的委派對象象ID excepptionnhanddler_ - 指指定acttion的的異常處理理ID referre

26、nceedacttion_ - 指指向當(dāng)前aactioon引用的的actiion的IID timerractiion_ - 指向向當(dāng)前acctionn引用的計計時器acctionn 4.2.7.5 事件(EEventts)編號 PD-0005 對象 事件(EEventts) 描述 事件表示示流程執(zhí)行行中的某個個特定的時時刻。在流流程執(zhí)行的的過程中,通通過jBPPM的引擎擎觸發(fā)事件件,這通常常發(fā)生在jjbpm計計算后續(xù)狀狀態(tài)的時候候。事件總總是和流程程中的元素素綁定,這這些元素包包括:流程程定義(pproceess ddefinnitioon)、流流程結(jié)點(diǎn)(nnode)、流程轉(zhuǎn)向向(traans

27、ittion)和和任務(wù)(ttask)。不同的元元素會觸發(fā)發(fā)不同的事事件,拿nnode元元素來說,有有 nodde-ennter事事件和noode-lleavee事件。事事件是acctionn的鉤子,一一個事件可可以回調(diào)一一系列的aactioon。當(dāng)jjBPM引引擎觸發(fā)事事件的時候候,事件中中綁定的aactioon就會被被執(zhí)行。在在jBPMM中,事件件模型是可可傳播的。一個子元元素觸發(fā)的的事件,將將逐層向上上傳播到頂頂層的流程程定義元素素。這樣的的設(shè)計使得得事件可以以被集中化化處理。 Java對對象 org.jbpmm.graaph.ddef. Evennt 數(shù)據(jù)庫表 JBPMM_EVEENT該

28、表表存儲流程程定義中的的事件對象象,這些事事件與相關(guān)關(guān)的acttion綁綁定。 表關(guān)聯(lián)說明明 JBPMM_EVEENT表中中,每條記記錄有自己己的數(shù)據(jù)庫庫流水號IID_ JBPMM_EVEENT的外外鍵(Fooreiggn Keeys):proceessdeefiniitionn_ - 指向eeventt所屬的流流程定義IID node_ - 指向evvent所所屬的noode IID transsitioon_ - 指向向evennt所屬的的trannsitiion IID task_ - 指向eeventt所屬的任任務(wù)ID 4.2.7.6 任務(wù)(TTask)編號 PD-0006 對象 任務(wù)

29、(TTask) 描述 任務(wù)作為為流程定義義中的一部部分,定義義了如何創(chuàng)創(chuàng)建任務(wù)實(shí)實(shí)例(Taask iinstaancess)以及任任務(wù)分配。任務(wù)可以以在任務(wù)結(jié)結(jié)點(diǎn)(Taask-NNode)和和流程定義義(proocesss-deffinittion)兩兩個地方定定義。通常常會在一個個任務(wù)結(jié)點(diǎn)點(diǎn)中定義一一個或多個個的任務(wù)。在這種情情況下,任任務(wù)結(jié)點(diǎn)表表示在流程程中等待用用戶處理的的交互操作作。業(yè)務(wù)流流程會停留留在任務(wù)處處,等待用用戶完成相相應(yīng)的操作作之后繼續(xù)續(xù)。任務(wù)也也可在流程程定義中聲聲明。通過過任務(wù)名,可可以找到相相應(yīng)的任務(wù)務(wù)定義,并并引用他們們。實(shí)際上上任何有命命名的任務(wù)務(wù)都可以通通過名字

30、被被引用。在在整個的流流程定義中中,任務(wù)名名必須是唯唯一的。此此外,還可可以給任務(wù)務(wù)設(shè)定優(yōu)先先級,這些些優(yōu)先級屬屬性將成為為任務(wù)實(shí)例例化時的默默認(rèn)設(shè)置。任務(wù)實(shí)例例可以在之之后的運(yùn)行行中改變優(yōu)優(yōu)先級。. Java對對象 org.jbpmm.tasskmgmmt.deef.Taask 數(shù)據(jù)庫表 JBPMM_TASSK該表存存儲流程定定義中聲明明的任務(wù)對對象。 表關(guān)聯(lián)說明明 JBPMM_TASSK表中,每每條記錄有有自己的數(shù)數(shù)據(jù)庫流水水號ID_JBPM_TASKK的外鍵(FForeiign KKeys):proceessdeefiniitionn_ -指向taask所屬屬的流程定定義ID taskm

31、mgmtddefinnitioon_ - 指向ttask引引用的TaaskMggmtDeefinttion對對象ID tasknnode_ - 指指向tassk所屬的的任務(wù)結(jié)點(diǎn)點(diǎn)ID starttstatte_ -指向taask所屬屬流程的起起始結(jié)點(diǎn)IID assiggnmenntdellegattion_ - 指指定tassk委派處處理的cllass對對象的IDD swimllane_ - 指指定tassk要授權(quán)權(quán)的swiimlanne(角色色)ID taskccontrrolleer_ - 指定一一個tassk賦值的的委托類 4.2.8 具體化的的流程實(shí)例例模型流程實(shí)例中中最重要的的三個對

32、象象:流程實(shí)實(shí)例(Prrocesss Innstannce)、令牌(TTokenn)、任務(wù)務(wù)實(shí)例(TTask Insttancee). 4.2.8.1 流程實(shí)例例(Proocesss Insstancce)編號 PI-0001 對象 流程實(shí)例例(Proocesss Insstancce) 描述 流程實(shí)例例是流程定定義的運(yùn)行行時狀態(tài),它它記錄了一一個流程運(yùn)運(yùn)行的起始始時間、結(jié)結(jié)束時間等等狀態(tài)信息息 Java對對象 org.jbpmm.graaph.eexe.PProceessInnstannce 數(shù)據(jù)庫表 JBPMM_PROOCESSSINSTTANCEE該表存儲儲運(yùn)行時的的流程對象象信息。 表

33、關(guān)聯(lián)說明明 JBPMM_PROOCESSSINSTTANCEE表中,每每條記錄有有自己的數(shù)數(shù)據(jù)庫流水水號 ID_JBBPM_PPROCEESSINNSTANNCE的外外鍵(Fooreiggn Keeys):proceessdeefiniitionn_ - 該流程實(shí)實(shí)例對應(yīng)的的流程定義義的ID rootttokenn_ - 該流程實(shí)實(shí)例引用的的跟令牌 superrproccessttokenn_ - 如果當(dāng)前前流程是某某個流程實(shí)實(shí)例的子流流程,則指指向該父流流程的IDD 4.2.8.2 令牌(TTokenn)編號 PI-0002 對象 令牌(TTokenn) 描述 令牌代表表一個流程程執(zhí)行的路路

34、徑,它維維護(hù)著流程程定義中各各個結(jié)點(diǎn)的的指針,同同時記錄了了流程當(dāng)前前執(zhí)行的位位置。 Java對對象 org.jbpmm.graaph.eexe.TTokenn 數(shù)據(jù)庫表 JBPMM_TOKKEN該表表存儲運(yùn)行行時令牌對對象信息,它它表示當(dāng)前前流程執(zhí)行行到的位置置。 表關(guān)聯(lián)說明明 JBPMM_TOKKEN表中中,每條記記錄有自己己的數(shù)據(jù)庫庫流水號IID_ JJBPM_TOKEEN的外鍵鍵(Forreignn Keyys):proceessinnstannce_ - 指向該令令牌所屬的的流程實(shí)例例的ID。 subprrocesssinsstancce_ - 指向該該令牌所屬屬的子流程程實(shí)例IDD

35、。 node_ - 令牌所在在(所指向向的)的當(dāng)當(dāng)前節(jié)點(diǎn)IID. parennt_ - 如果當(dāng)當(dāng)前令牌是是一個分支支流程或子子流程的令令牌,則該該值指向其其父令牌IID。 4.2.8.3 任務(wù)實(shí)實(shí)例(Taask IInstaance)編號 PI-0003 對象 任務(wù)實(shí)例例(Tassk Innstannce) 描述 一個任務(wù)務(wù)實(shí)例對象象可以分配配給指定的的操作者處處理,當(dāng)任任務(wù)完成后后,將觸發(fā)發(fā)流程繼續(xù)續(xù)下行。任任務(wù)實(shí)例的的生命周期期很簡單,生生成實(shí)例開始始處理任務(wù)結(jié)結(jié)束。從彈彈性設(shè)計考考慮出發(fā),任任務(wù)的分配配不屬于實(shí)實(shí)例生命周周期的一部部分,任務(wù)務(wù)是否被分分配是不會會影響其生生命周期過過程的。

36、當(dāng)當(dāng)流程進(jìn)入入一個任務(wù)務(wù)結(jié)點(diǎn)的時時候,結(jié)點(diǎn)點(diǎn)上任務(wù)被被實(shí)例化;用戶通過過訪問系統(tǒng)統(tǒng)的界面組組件,獲取取自己的任任務(wù)列表,可可以進(jìn)行任任務(wù)委派、處理或直直接結(jié)束任任務(wù)。任務(wù)務(wù)實(shí)例記錄錄著任務(wù)創(chuàng)創(chuàng)建的時間間、結(jié)束時時間,這些些信息可以以通過TaaskInnstannce對象象中的geetterr方法獲取取。一個任任務(wù)實(shí)例的的結(jié)束時間間標(biāo)識它的的完成,在在后緒的任任務(wù)查詢中中,該實(shí)例例不會被取取出,但實(shí)實(shí)例的記錄錄仍保留于于數(shù)據(jù)庫中中。 Java對對象 org.jbpmm.tasskmgmmt.exxe.TaaskInnstannce 數(shù)據(jù)庫表 JBPMM_ TAASKINNSTANNCE該表表存儲

37、運(yùn)行行時任務(wù)實(shí)實(shí)例信息。 表關(guān)聯(lián)說明明 JBPMM_ TAASKINNSTANNCE表中中,每條記記錄有自己己的數(shù)據(jù)庫庫流水號IID_JBBPM_ TASKKINSTTANCEE的外鍵(FForeiign KKeys):task_ - 指指向定義該該實(shí)例的任任務(wù)ID tokenn_ - 指向任務(wù)務(wù)實(shí)例對應(yīng)應(yīng)的令牌IID swimllaneiinstaatncee_ - swiimlanne 實(shí)例例,表示處處理該任務(wù)務(wù)的角色 taskmmgmtiinstaance_ - 管理該該任務(wù)的模模塊實(shí)例IID 4.3 SpriingSprinng Frramewwork 是一個 Javaa/Javva

38、EEE/.NEET 的分分層應(yīng)用程程序框架。該框架基基于 Exxpertt Onee-on-One Javaa EE Desiign aand DDevellopmeent(IISBN 0-76645-44385-7)一文文中的代碼碼,并最初初由 Rood Joohnsoon 和 Juerrgen Hoelller et aal 開發(fā)發(fā)。Sprring Frammeworrk 提供供了一個簡簡易的開發(fā)發(fā)方式,這這種開發(fā)方方式,將避避免那些可可能致使底底層代碼變變得繁雜混混亂的大量量的屬性文文件和幫助助類。 SSprinng 中包包含的關(guān)鍵鍵特性: 強(qiáng)大的基基于 JaavaBeeans 的采用控

39、控制翻轉(zhuǎn)(IInverrsionn of Conttrol,IIoC)原原則的配置置管理,使使得應(yīng)用程程序的組建建更加快捷捷簡易。 一個可用用于從 aappleet 到 Javaa EE 等不同運(yùn)運(yùn)行環(huán)境的的核心 BBean 工廠。 數(shù)據(jù)庫事事務(wù)的一般般化抽象層層,允許插插件式事務(wù)務(wù)管理器,簡簡化事務(wù)的的劃分使之之與底層無無關(guān)。 內(nèi)建的針針對 JTTA 和 單個 JJDBC 數(shù)據(jù)源的的一般化策策略,使 Spriing 的的事務(wù)支持持不要求 Javaa EE 環(huán)境,這這與一般的的 JTAA 或者 EJB CMT 相反。 JDBCC 抽象層層提供了有有針對性的的異常等級級(不再從從SQL異異常中提

40、取取原始代碼碼), 簡簡化了錯誤誤處理, 大大減少少了程序員員的編碼量量. 再次次利用JDDBC時,你你無需再寫寫出另一個個 終止止 模塊塊. 并且且面向JDDBC的異異常與Sppringg 通用數(shù)數(shù)據(jù)訪問對對象 (DData Acceess OObjecct) 異異常等級相相一致. 以資源容容器,DAAO 實(shí)現(xiàn)現(xiàn)和事務(wù)策策略等形式式與 Hiibernnate,JJDO 和和 iBAATIS SQL Mapss 集成。利用眾多多的翻轉(zhuǎn)控控制方便特特性來全面面支持, 解決了許許多典型的的Hibeernatte集成問問題. 所所有這些全全部遵從SSprinng通用事事務(wù)處理和和通用數(shù)據(jù)據(jù)訪問對象象

41、異常等級級規(guī)范. 靈活的基基于核心 Spriing 功功能的 MMVC 網(wǎng)網(wǎng)頁應(yīng)用程程序框架。開發(fā)者通通過策略接接口將擁有有對該框架架的高度控控制,因而而該框架將將適應(yīng)于多多種呈現(xiàn)技技術(shù),例如如 JSPP,F(xiàn)reeeMarrker,VVeloccity,TTiless,iTeext 以以及 POOI。值得得注意的是是,Sprring 中間層可可以輕易地地結(jié)合于任任何基于 MVC 框架的網(wǎng)網(wǎng)頁層,例例如 Sttrutss,WebbWorkk,或 TTapesstry。 提供諸如如事務(wù)管理理等服務(wù)的的面向方面面編程框架架。 4.4 Spriing MModullesSprinng Moodulee

42、s iss a ssub-pprojeect oof Sppringg inttendeed too easse inntegrratioon wiith 33rd ppartyy prooductts wiithouut ovverlooadinng thhe coore fframeeworkk witth addditiionall deppendeenciees.The mmodulles iincluuded in tthe 00.9 rreleaase aare:Ant iinteggratiion. Flux suitte off prooductts inntegrratioo

43、n. HiveMMind inteegrattion. Lucenne inntegrratioon. Apachhe OJJB inntegrratioon. O/R BBrokeer inntegrratioon. OSWorrkfloow inntegrratioon. Tapesstry inteegrattion. Suppoort ffor ddeclaaratiive ccachiing sserviices inclludinng EHHCachhe, JJCS, OSCaache, GiggaSpaaces and otheers. Suppoort ffor ddb4o S

44、uppoort ffor JJSR-994 Ruules Engiines suchh as Droools aand JJess Suppoort ffor vvarioous JJakarrta CCommoons ccompoonentts suuch aas Coonfiggurattion, Lanng, CChainn andd Commmonss Vallidattor Suppoort ffor JJavaSSpacees, iincluudingg Giggaspaaces and Blittz. Suppoort ffor jjBPM 3.0.x annd 3.1.x Su

45、ppoort ffor JJSR-1170 (Javaa Conntentt Repposittory) inccludiing JJackrrabbiit annd Jeeceirra. Suppoort ffor wweb ttempllate engiines likee Freeemarrker, Grooovy, Vellocitty, WWebMaacro and XSLTT. Valanng: VValiddatioon Laanguaage. Bean Valiidatiion FFrameeworkk. Sprinng MVVC addd-onns. XT Frramewwo

46、rk: Dommain-Drivven DDesiggn orrientted fframeeworkk andd Sprring MVC AJAXX suppportt forr devvelopping richher ddomaiin moodelss andd riccher userr intterfaaces. 5 集成成 5.11 Intrroducctionnj jBPPM moodulee offfers inteegrattion betwween the Spriing aand jjBPM alloowingg forr reuuse oof Sppringgs HHi

47、berrnatee suppportt aloong wwith the IoC conttaineer. TThe mmodulle alllowss jBPPMs undeerlyiing HHiberrnatee sesssionnFacttory to bbe coonfigguredd thrroughh Sprring and jBPMM acttionss to acceess SSprinngs conttext. 5.2 ConffigurratioonUserss fammiliaar wiith SSprinng wiill ssee tthat the jBPMM mo

48、ddule struucturre reesembbles withh thee ormm pacckagee froom thhe maain SSprinng diistriibutiion. The moduule oofferrs a centtral tempplatee claass ffor wworkiing wwith jBPMM, a calllbackk to acceess tthe nnativve JbbpmCoontexxt annd a locaal faactorry beean ffor cconfiiguraationn andd creeatinng a

49、 jBPMM insstancce. cclassspathh:/orrg/sppringgmoduules/workkfloww/jbppm31/someeOtheerWorrkfloow.xmml sett The eexampple aabovee shoows hhow (exisstingg) Sppringg-mannagedd Hibbernaate SSessiionFaactorries and trannsacttion manaagemeent ccan bbe reeusedd witth jBBPM. 5.3 LocaalJbppmConnfiguuratiionFa

50、actorryBeaanThe mmain elemment is LLocallJbpmmConffigurratioonFacctoryyBeann whiich sshoulld bee fammiliaar too useers aacusttomedd to Spriing. Baseed onn thee jbppm coonfiggurattion filee andd thee givven SSessiionFaactorry, iit wiill ccreatte a jBPMM connfiguuratiion wwhichh cann be usedd forr wor

51、rkingg witth thhe giiven proccess defiinitiions. It is ppossiible to rreplaace jjBPM xml conffigurratioon wiith jjBPM 3.1.x neewly addeed ObbjecttFacttory - noote tthat if bboth are pressent the xml conffigurratioon iss preefferred. LocaalJbppmConnfiguuratiionFaactorryBeaan alllowss thee creeatioon

52、off thee undderlyying scheema bbasedd on the proccess defiinitiions loadded aautommaticcallyy at starrtup.Note thatt thee sesssionnFacttory proppertyy is not manddatorry - Hibeernatte SeessioonFacctoryy cann be reussed wwith jBPMM or jBPMM cann worrk byy itsself withhout any inteegrattion withh thee

53、 exiistinng innfrasstruccturee. Hooweveer, iin moost sscenaarioss, ussing LocaalJbppmConnfiguuratiionFaactorryBeaan alllowss onee to takee advvantaage oof Sppringg traansacctionn mannagemment infrrastrructuure sso itts ppossiible withhout any codee chaange to uuse jjBPM, Hibbernaate aand jjdbc-basee

54、d coode iinsidde thhe saame ttranssactiionall conntextt, bee it manaaged locaally or gglobaally (JTAA). MMoreoover, it is ppossiible to uuse tthreaad-boound sesssion or OOpenSSessiionInnVieww pattternns wiith jjBPM.LocallJbpmmConffigurratioonFacctoryyBeann is alsoo awaare oof thhe ennclossing applli

55、cattionCConteext llifeccyclee - jjBPM willl be inittialiized oncee thee conntextt is starrted (usuuallyy appplicaationn staartupp) annd wiill bbe cllosedd prooperlly whhen tthe cconteext iis deestrooyed (appplicaationn is shuttdownn).Note thatt LoccalJbbpmCoonfiggurattionFFactooryBeean ccan bbe coon

56、figguredd proogrammaticcallyy andd cann be usedd staandallone onlyy to builld ann jBPPM coontexxt whhich can be uused indeependdentlly off Sprring Moduules jBPMM suppportt. 5.4 Inveersioon off Conntroll: JbbpmTeemplaate aand JJbpmCCallbbackAnothher iimporrtantt feaaturee of Spriing MModulles jjBPM s

57、uppport is JJbpmTTempllate. Thee temmplatte offferss verry coonvieent wways of wworkiing ddirecctly withh proocesss deffinittionss as welll as jBPMM APII takking caree of handdlingg excceptiions (be it jjBPM or HHiberrnatee bassed) in rrespeect tto thhe onngoinng trransaactioon (iif itts ppreseent),

58、 thee undderlyying Hibeernatte seessioon (iif peesisttent servvicess aree useed) aand tthe jjBPM conttext. jBPPM exxcepttionss (annd thhe unnderllyingg Hibbernaate iinforrmatiion) are trannslatted iinto Spriingss DAOO excceptiion hhieraarchyy. Evverytthingg happpenss in a trranspparennt annd coonsis

59、stentt mannner.Thiss is posssiblee, ass witth evvery Spriing-sstylee temmplatte,evven wwhen direect aaccesss too thee nattive JbpmmConttext is ddesirred, throough the JbpmmCalllbackk:publiic PrrocesssInsstancce fiindPrrocesssInsstancce(fiinal Longg proocesssInsttanceeId) retuurn (ProccessIInstaance)

60、 exeecutee(neww JbppmCalllbacck() ppubliic Obbjectt doIInJbppm(JbbpmCoontexxt coontexxt) / doo sommethiing rreturrn coontexxt.geetGraaphSeessioon().loaddProccessIInstaance(proccessIInstaanceIId.loongVaalue(); ); As weell, as LLocallJbpmmConffigurratioonFacctoryyBeann, thhe JbbpmTeemplaate ccan bbe c

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論