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

下載本文檔

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

文檔簡(jiǎn)介

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

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

3、工作作流技術(shù),也也可以應(yīng)用于于一些類型的的工業(yè)和制造造業(yè)。 3 概述在人人們?nèi)粘I罨詈凸ぷ髦?,都都將與工作流流程發(fā)生密切切的關(guān)系,“工作流”干預(yù)過(guò)程、業(yè)業(yè)務(wù)程序的自自動(dòng)化處理,文文檔、信息或或者任務(wù)按照照定義好的規(guī)規(guī)則在參與者者間傳遞,來(lái)來(lái)完成整個(gè)業(yè)業(yè)務(wù)目標(biāo)或者者對(duì)整個(gè)業(yè)務(wù)務(wù)目標(biāo)的完成成做貢獻(xiàn)。應(yīng)應(yīng)用領(lǐng)域廣泛泛,比如: l 公司或組組織內(nèi)部請(qǐng)假假或休假流程程、通知分發(fā)發(fā)流程等 l 政府政策策審批流程、 l 網(wǎng)上書(shū)店店圖書(shū)訂閱流流程、發(fā)送流流程等 l 駕照學(xué)習(xí)習(xí)流程等等。同時(shí),“工作流流”可能由手工工組織,實(shí)際際上,多數(shù)“工作流 ”都在IT系系統(tǒng)中進(jìn)行組組織的,從而而對(duì)過(guò)程自動(dòng)動(dòng)化提供計(jì)算算機(jī)

4、支持?!肮ぷ髁鳌辈捎糜?jì)算機(jī)機(jī)化后,可以以大大提高工工作和生活的的效率,而信信息化過(guò)程中中,對(duì)于采用用的技術(shù)實(shí)現(xiàn)現(xiàn)方式的不同同,將直接影影響到信息化化的質(zhì)量,包包括:開(kāi)發(fā)成成本、維護(hù)成成本等。好的的工作流解決決方案,可以以大大提高業(yè)業(yè)務(wù)流程流轉(zhuǎn)轉(zhuǎn)效率、容易易擴(kuò)展對(duì)新流流程的支持等等。JBPM是當(dāng)前前優(yōu)秀的開(kāi)源源工作流引擎擎。本文檔是是關(guān)于JBPPM與Sprring框架架集成分析文文檔。包括:基本概念、設(shè)設(shè)計(jì)要點(diǎn)、常常見(jiàn)問(wèn)題解答答、參考資源源等。本文主要介紹了了集成開(kāi)發(fā)的的高級(jí)內(nèi)容,基基礎(chǔ)知識(shí)參見(jiàn)見(jiàn):參考資料料本文檔適合所有有計(jì)算機(jī)開(kāi)發(fā)發(fā)人員。 4 基本概念念 4.1 什么是工作作流“工作流”干預(yù)

5、預(yù)過(guò)程、業(yè)務(wù)務(wù)程序的自動(dòng)動(dòng)化處理,文文檔、信息或或者任務(wù)按照照定義好的規(guī)規(guī)則在參與者者間傳遞,來(lái)來(lái)完成整個(gè)業(yè)業(yè)務(wù)目標(biāo)或者者對(duì)整個(gè)業(yè)務(wù)務(wù)目標(biāo)的完成成做貢獻(xiàn)。同同時(shí),“工作流”可能由手工工組織,實(shí)際際上,多數(shù)“工作流 ”都在IT系系統(tǒng)中進(jìn)行組組織的,從而而對(duì)過(guò)程自動(dòng)動(dòng)化提供計(jì)算算機(jī)支持,WWFMC把工工作定位在這這個(gè)方向上?!肮ぷ髁鳌倍x義:全部或者者部分,由計(jì)計(jì)算機(jī)支持或或自動(dòng)處理的的業(yè)務(wù)過(guò)程。工作流經(jīng)常與“過(guò)程重組(BBPRBusinness PProcesss Re-enginneerinng)”聯(lián)系在一起起。BPR 是關(guān)于企業(yè)業(yè)(組織)核核心業(yè)務(wù)過(guò)程程的評(píng)估、分分析、模擬、定定義以及其后后

6、的操作實(shí)現(xiàn)現(xiàn)。盡管,不不是所有的BBPR都是采采用工作流實(shí)實(shí)現(xiàn)的,但工工作流技術(shù)是是最佳的方法法,主要因?yàn)闉?,工作流技技術(shù)提供了業(yè)業(yè)務(wù)過(guò)程邏輯輯與IT操作作支持的分離離,從而以后后可以修改過(guò)過(guò)程規(guī)則來(lái)重重定義業(yè)務(wù)過(guò)過(guò)程。相反,工工作流技術(shù)并并不只在BPPR中采用,例例如用于現(xiàn)有有的業(yè)務(wù)過(guò)程程中。“工作流管理系系統(tǒng)(WFMMSWorkfflow MManageement Systeem)”通過(guò)管理工工作活動(dòng)序列列,調(diào)用與各各種活動(dòng)步驟驟相關(guān)的人員員、IT資源源,對(duì)業(yè)務(wù)過(guò)過(guò)程提供自動(dòng)動(dòng)化處理?!肮ぷ髁鞴芾硐迪到y(tǒng)”定義:工作作流管理系統(tǒng)統(tǒng)是這樣的一一個(gè)系統(tǒng),詳詳細(xì)定義、管管理并執(zhí)行“workfflo

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

8、成、協(xié)協(xié)同工作提供供了基礎(chǔ)。參參考模型描述述了工作流系系統(tǒng)的一個(gè)公公共模型,并并且指出參考考模型如何能能使其與其他他各種不同的的實(shí)現(xiàn)方法相相關(guān)聯(lián)。在最高層,所有有的WFMSS都相同的特特性,即為下下邊的3個(gè)功功能提供支持持: 建立時(shí)期(BBuild-time)功功能,定義、模模擬工作流過(guò)過(guò)程,及其組組成活動(dòng)。 運(yùn)行時(shí)期(RRun-tiime)控制制功能,在運(yùn)運(yùn)行環(huán)境中管管理工作流過(guò)過(guò)程,管理不不同 運(yùn)行時(shí)期與與用戶、ITT應(yīng)用程序(工工具)的交互互,來(lái)處理各各種活動(dòng)的執(zhí)執(zhí)行。下圖描述WFMMS的基本特特性,以及上上述功能間的的關(guān)系: 4.2 JBBPM 4.2.1 介紹jBPM iss a p

9、llatforrm forr execcutablle proocess languuages rangiing frrom buusinesss proocess managgementt (BPMM) oveer worrkfloww to sservicce orcchestrrationn. Theere arre manny proocess languuages. Eachh one is taargeteed towwards a speecificc funcction and aa speccific envirronmennt. jBBPM alllows all oof

10、theese prrocesss langguagess to bbe buiild naativelly on top oof onee singgle teechnollogy: the PProcesss Virrtual Machiine (PPVM). jBPM alreaady suupportts 3 vvery ddifferrent pprocesss lannguagees: jPPDL, WWS-BPEEL andd Seamm Pageeflow. Thiss mighht exppand iin thee futuure ass new proceess laangu

11、agges arre addded too our platfform. jBBPM(JBBoss BBusineess Prrocesss Manaagemennt業(yè)務(wù)流程程管理),它它是覆蓋了業(yè)業(yè)務(wù)流程管理理、工作流、服服務(wù)協(xié)作等領(lǐng)領(lǐng)域的一個(gè)開(kāi)開(kāi)源的、靈活活的、易擴(kuò)展展的可執(zhí)行流流程語(yǔ)言框架架。 jPDL是是構(gòu)建于jBBPM框架上上的流程語(yǔ)言言之一。在jjPDL中提提供了任務(wù)(ttasks)、待待處理狀態(tài) (waitt stattes)、計(jì)計(jì)時(shí)器(tiimers)、自自動(dòng)處理(aautomaated aactionns)等術(shù)語(yǔ),并并通過(guò)圖型化化的流程定義義,很直觀地地描述業(yè)務(wù)流流程。 jP

12、DL可可以部署于JJava語(yǔ)言言的任何應(yīng)用用環(huán)境下,JJavaSEE Appllicatiion(Swwing/SSWT)、JJavaEEE Appllicatiion(Appplicaation Serveer) 。 4.2.2 jPDL分分發(fā)包組成目前jPDL的的最新版本是是3.2.22,您可以在在以下地址:http:/labbs.jbooss.coom/jboossjbppm/jpddl_dowwnloadds/獲得官官方下載包。下下載包分為兩兩種,一種是是標(biāo)準(zhǔn)包(jjbpm-jjpdl-33.2.2.zip)只只有20M左右;一種是套件件包(jbppm-jpddl-suiite-3.2

13、.2.zzip)將近近80M。兩者者最大的區(qū)別別是套裝包自自帶一個(gè)已經(jīng)經(jīng)配置好的jjboss服服務(wù),下載解解壓縮后,可可直接運(yùn)行。 4.2.3 jPDLL的核心程序序包(jbppm-jpddl.jarr) 它是一個(gè)典型的的jar文件件,它涵蓋對(duì)對(duì)流程定義和和運(yùn)行時(shí)流程程實(shí)例上下文文環(huán)境的操作作API。在在最簡(jiǎn)化的業(yè)業(yè)務(wù)流程樣例例中,jPDDL將流程定定義存儲(chǔ)與XXML格式的的定義文件中中,在運(yùn)行時(shí)時(shí)載入內(nèi)存,在在內(nèi)存里記錄錄完整的業(yè)務(wù)務(wù)實(shí)例和執(zhí)行行過(guò)程的環(huán)境境變量,并完完成全部操作作。顯然,在在實(shí)際應(yīng)用中中,流程信息息必須被持久久化的存儲(chǔ)于于數(shù)據(jù)庫(kù)中。jjPDL使用用了Hibeernatee作

14、為其對(duì)象象持久化的AAPI。 4.2.4 Grapphicall Proccess DDesignner插件(jbpm-jpdl-desiggner-33.1.2.zip) 它是一個(gè)基于EEclipsse的圖型編編輯插件。使使用它可以對(duì)對(duì)業(yè)務(wù)流程進(jìn)進(jìn)行可視化的的定制,而無(wú)無(wú)須手動(dòng)編輯輯XML文件件。該插件還還提供了流程程定義上傳功功能,可以將將新定義的流流程發(fā)布到在在線運(yùn)行的jjPDL系統(tǒng)統(tǒng)上。 4.2.5 jPDL身身份包(jbbpm-iddentitty.jarr) 它它是jPDLL的一個(gè)輕量量級(jí)擴(kuò)展包,簡(jiǎn)簡(jiǎn)單實(shí)現(xiàn)了組組Groupp、用戶Usser、許可可權(quán)Permmissioon等用戶身

15、身份認(rèn)證和鑒鑒權(quán)機(jī)制。如如果您的應(yīng)用用環(huán)境只需要要簡(jiǎn)單的用戶戶認(rèn)證鑒權(quán)管管理,那么它它十分適合您您。 4.2.6 jPDLL Web控控制臺(tái)(jbbpm-coonsolee.war) 它是一個(gè)標(biāo)準(zhǔn)WWeb應(yīng)用(使使用了JSFF技術(shù)),提提供了對(duì)jPPDL平臺(tái)執(zhí)執(zhí)行情況的監(jiān)監(jiān)控程序(對(duì)對(duì)jPDL數(shù)數(shù)據(jù)庫(kù)的監(jiān)控控)。管理員員可以通過(guò)該該程序方便的的維護(hù)jPDDL的數(shù)據(jù)庫(kù)庫(kù),管理流程程定義和流程程實(shí)例的執(zhí)行行情況。同時(shí)時(shí),它還提供供了一個(gè)簡(jiǎn)單單的Gettting sstarteed DEMMO,方便初初學(xué)者了解jjPDL。 4.2.7 靜態(tài)的流程程定義模型 流程定義實(shí)實(shí)體(Prooc

16、ess Definnitionn)編號(hào) PD-0011 對(duì)象 流程定義實(shí)體體(Proccess DDefiniition) 描述 流程定義實(shí)體體是對(duì)一個(gè)流流程抽象的對(duì)對(duì)象化定義,如如圖-0022。一套系統(tǒng)統(tǒng)中,用戶可可以定義保存存多個(gè)流程定定義實(shí)體,如如:報(bào)銷流程程定義、請(qǐng)假假流程定義、人人事錄用流程程定義等。每每個(gè)流程定義義還可以有多多個(gè)不同的版版本,如:針針對(duì)同樣的報(bào)報(bào)銷流程可以以有修訂前和和修訂后的兩兩個(gè)流程定義義,同時(shí)存儲(chǔ)儲(chǔ)于jPDLL數(shù)庫(kù)中。用用戶可以通過(guò)過(guò)流程名稱和和版本號(hào)獲取取相應(yīng)的流程程定義。在默默認(rèn)請(qǐng)況下,系系統(tǒng)啟用最新新的流程定義義。 Java對(duì)象 org.jbbpm.gr

17、raph.ddef.PrrocesssDefinnitionn 數(shù)據(jù)庫(kù)表 JBPM_PPROCESSSDEFIINITIOON該表存儲(chǔ)儲(chǔ)流程定義的的通用信息,如如:流程名稱稱、版本號(hào) 表關(guān)聯(lián)說(shuō)明 JBPM_PPROCESSSDEFIINITIOON表中,每每條記錄有自自己的數(shù)據(jù)庫(kù)庫(kù)流水號(hào) ID_JBPPM_PROOCESSDDEFINIITION的的外鍵(Fooreignn Keyss):startsttate_ 同JBPMM_NODEE(流程結(jié)點(diǎn)點(diǎn))表關(guān)聯(lián)。此此外鍵指向流流程定義中的的起始結(jié)點(diǎn)IID 流程結(jié)點(diǎn)點(diǎn)(Nodee)編號(hào) PD-0022 對(duì)象 流程結(jié)點(diǎn)(NNode)

18、描述 流程結(jié)點(diǎn)是對(duì)對(duì)流程中的過(guò)過(guò)程環(huán)節(jié)/行行為的抽象對(duì)對(duì)象化定義,如如圖-0022中的每個(gè)方方框即代表一一個(gè)結(jié)點(diǎn)。結(jié)結(jié)點(diǎn)有兩個(gè)主主要職責(zé):一一,實(shí)現(xiàn)某個(gè)個(gè)指定行為,這這在jBPMM中就是執(zhí)行行一段制定的的Java代代碼;二,轉(zhuǎn)轉(zhuǎn)遞、維持流流程的延續(xù),直直至達(dá)到最終終結(jié)點(diǎn)。在jjPDL的結(jié)結(jié)點(diǎn)設(shè)計(jì)中,系系統(tǒng)開(kāi)放了充充分的用戶行行為模型,程程序員可以基基于這些行為為接口,實(shí)現(xiàn)現(xiàn)自定義的業(yè)業(yè)務(wù)功能。在在jPDL中中,系統(tǒng)預(yù)定定義了一系列列的Nodee類型,同時(shí)時(shí)也允許程序序員開(kāi)發(fā)定義義自己的Noode類型。 Java對(duì)象 org.jbbpm.grraph.ddef.Noode 數(shù)據(jù)庫(kù)表 JBPM_N

19、NODE該表表存儲(chǔ)結(jié)點(diǎn)的的定義信息。 表關(guān)聯(lián)說(shuō)明 JBPM_NNODE表中中,每條記錄錄有自己的數(shù)數(shù)據(jù)庫(kù)流水號(hào)號(hào) ID_JBPPM_NODDE的外鍵(FForeiggn Keyys):processsdefinnitionn_ - 此此外鍵說(shuō)明該該Node從從屬的流程定定義對(duì)象IDD subproccessdeefinittion_- 此外鍵指指定了一個(gè)由由該Nodee發(fā)起的子流流程。在主流流程離開(kāi)當(dāng)前前結(jié)點(diǎn)之前,該該子流程必須須完成執(zhí)行過(guò)過(guò)程。acttion_ - 此外鍵鍵指定該結(jié)點(diǎn)點(diǎn)動(dòng)作類的IID supersttate_ - 該外鍵鍵是一個(gè)自關(guān)關(guān)聯(lián)鍵,指向向結(jié)點(diǎn)的上級(jí)級(jí)父結(jié)點(diǎn)IDD。一個(gè)

20、子流流程中的多個(gè)個(gè)結(jié)點(diǎn)從屬于于同一個(gè)父流流程結(jié)點(diǎn)。 decisioondeleegatioon_ 該外鍵指指定了結(jié)點(diǎn)委委派的判定類類ID(所謂謂委派判定類類是指根據(jù)用用戶的業(yè)務(wù)邏邏輯,判定流流程的下一個(gè)個(gè)流向的Jaava Cllass) 流程轉(zhuǎn)轉(zhuǎn)向(Traansitiions)編號(hào) PD-0033 對(duì)象 流程轉(zhuǎn)向(TTransiitionss) 描述 流程轉(zhuǎn)向是描描述流程中從從一個(gè)結(jié)點(diǎn)到到另一個(gè)結(jié)點(diǎn)點(diǎn)的狀態(tài)轉(zhuǎn)換換過(guò)程,因此此一個(gè)轉(zhuǎn)向一一定有一個(gè)源源結(jié)點(diǎn)和一個(gè)個(gè)目標(biāo)結(jié)點(diǎn)。 在jPDLL中trannsitioon的命名是是通產(chǎn)是唯一一的,結(jié)點(diǎn)依依靠trannsitioon的命名來(lái)來(lái)

21、區(qū)別到下一一結(jié)點(diǎn)的路徑徑,當(dāng)一個(gè)NNode中存存在有多個(gè)同同名的traansitiion的時(shí)候候,第一個(gè)ttransiition將將會(huì)被選中。結(jié)結(jié)點(diǎn)轉(zhuǎn)向的過(guò)過(guò)程中,排在在transsitionn列表第一位位置的即是默默認(rèn)的traansitiion。 Java對(duì)象 org.jbbpm.grraph.ddef.Trransittion 數(shù)據(jù)庫(kù)表 JBPM_TTRANSIITION該該表存儲(chǔ)流程程定義中的轉(zhuǎn)轉(zhuǎn)向?qū)ο蟆?表關(guān)聯(lián)說(shuō)明 JBPM_TTRANSIITION表表中,每條記記錄有自己的的數(shù)據(jù)庫(kù)流水水號(hào) ID_JBPPM_TRAANSITIION的外鍵鍵(Foreeign KKeys):proce

22、sssdefinnitionn_ - 該該外鍵指向ttransiition所所屬的流程定定義對(duì)象IDD from_ - 該外鍵指指向trannsitioon的源結(jié)點(diǎn)點(diǎn)ID to_ -該外外鍵指向trransittion的目目標(biāo)結(jié)點(diǎn)IDD 動(dòng)作(AActionns)編號(hào) PD-0044 對(duì)象 動(dòng)作(Acttions) 描述 Actionns是指一系系列的在流程程事件中運(yùn)行行的Javaa代碼。流程程圖是軟件需需求的傳達(dá)的的重要手段,但但它只是軟件件需求的一個(gè)個(gè)投影,隱藏藏了很多技術(shù)術(shù)實(shí)現(xiàn)的細(xì)節(jié)節(jié)。Actiions則是是向流程圖添添加技術(shù)實(shí)現(xiàn)現(xiàn)細(xì)節(jié)的一種種機(jī)制,它可可以很好的補(bǔ)補(bǔ)充和

23、修飾流流程圖。這意意味著在不改改變流程圖結(jié)結(jié)構(gòu)的情況下下,可以將JJava的代代碼與之關(guān)聯(lián)聯(lián)。Actiions通過(guò)過(guò)事件(Evvents)同同流程綁定,常常用的主要事事件包括:進(jìn)進(jìn)入結(jié)點(diǎn)、離離開(kāi)結(jié)點(diǎn)、進(jìn)進(jìn)行轉(zhuǎn)向。請(qǐng)請(qǐng)注意,同EEventss關(guān)聯(lián)的Acctionss和處于Noode中的AActionns是有不同同的。處于EEventss中的Acttions是是通過(guò)事件觸觸發(fā)執(zhí)行的,它它是典型的觀觀察者模式,是是無(wú)法影響流流程控制的流流向。而處于于Node中中的Actiion則要承承擔(dān)起流程傳傳遞的責(zé)任。此此外,Acttions是是可以命名的的??梢酝ㄟ^(guò)過(guò)Actioons的命名名在任何地方方引用該

24、Acctionss。命名的AActionns可以作為為主流程定義義的公用子元元素。這個(gè)功功能可以提高高對(duì)Actiions定義義的復(fù)用。 Java對(duì)象 org.jbbpm.grraph.ddef.Acction 數(shù)據(jù)庫(kù)表 JBPM_AACTIONN該表存儲(chǔ)流流程定義中的的動(dòng)作對(duì)象。 表關(guān)聯(lián)說(shuō)明 JBPM_AACTIONN表中,每條條記錄有自己己的數(shù)據(jù)庫(kù)流流水號(hào)ID_ JBPM_AACTIONN的外鍵(FForeiggn Keyys):processsdefinnitionn_ - 指指明actiion所屬的的流程定義IID event_ - 指明aactionn綁定的evvent IID act

25、ionddelegaation_ - 指明明actioon的委派對(duì)對(duì)象ID exceptiionhanndler_ - 指定定actioon的異常處處理ID referenncedacction_ - 指向向當(dāng)前acttion引用用的actiion的IDD timeracction_ - 指向向當(dāng)前acttion引用用的計(jì)時(shí)器aactionn 事件(Evvents)編號(hào) PD-0055 對(duì)象 事件(Eveents) 描述 事件表示流程程執(zhí)行中的某某個(gè)特定的時(shí)時(shí)刻。在流程程執(zhí)行的過(guò)程程中,通過(guò)jjBPM的引引擎觸發(fā)事件件,這通常發(fā)發(fā)生在jbppm計(jì)算后續(xù)續(xù)狀態(tài)的時(shí)候候。事件總是是

26、和流程中的的元素綁定,這這些元素包括括:流程定義義(proccess ddefiniition)、流流程結(jié)點(diǎn)(nnode)、流流程轉(zhuǎn)向(ttransiition)和和任務(wù)(taask)。不不同的元素會(huì)會(huì)觸發(fā)不同的的事件,拿nnode元素素來(lái)說(shuō),有 node-enterr事件和noode-leeave事件件。事件是aactionn的鉤子,一一個(gè)事件可以以回調(diào)一系列列的actiion。當(dāng)jjBPM引擎擎觸發(fā)事件的的時(shí)候,事件件中綁定的aactionn就會(huì)被執(zhí)行行。在jBPPM中,事件件模型是可傳傳播的。一個(gè)個(gè)子元素觸發(fā)發(fā)的事件,將將逐層向上傳傳播到頂層的的流程定義元元素。這樣的的設(shè)計(jì)使得事事件可以

27、被集集中化處理。 Java對(duì)象 org.jbbpm.grraph.ddef. EEvent 數(shù)據(jù)庫(kù)表 JBPM_EEVENT該該表存儲(chǔ)流程程定義中的事事件對(duì)象,這這些事件與相相關(guān)的acttion綁定定。 表關(guān)聯(lián)說(shuō)明 JBPM_EEVENT表表中,每條記記錄有自己的的數(shù)據(jù)庫(kù)流水水號(hào)ID_ JBPM_EEVENT的的外鍵(Fooreignn Keyss):processsdefinnitionn_ - 指向eveent所屬的的流程定義IID node_ - 指向eevent所所屬的nodde ID transittion_ - 指向向eventt所屬的trransittion IID task_

28、- 指向向eventt所屬的任務(wù)務(wù)ID 任務(wù)(Taask)編號(hào) PD-0066 對(duì)象 任務(wù)(Tassk) 描述 任務(wù)作為流程程定義中的一一部分,定義義了如何創(chuàng)建建任務(wù)實(shí)例(TTask iinstannces)以以及任務(wù)分配配。任務(wù)可以以在任務(wù)結(jié)點(diǎn)點(diǎn)(Taskk-Nodee)和流程定定義(proocess-definnitionn)兩個(gè)地方方定義。通常常會(huì)在一個(gè)任任務(wù)結(jié)點(diǎn)中定定義一個(gè)或多多個(gè)的任務(wù)。在在這種情況下下,任務(wù)結(jié)點(diǎn)點(diǎn)表示在流程程中等待用戶戶處理的交互互操作。業(yè)務(wù)務(wù)流程會(huì)停留留在任務(wù)處,等等待用戶完成成相應(yīng)的操作作之后繼續(xù)。任任務(wù)也可在流流程定義中聲聲明。通過(guò)任任務(wù)名,可

29、以以找到相應(yīng)的的任務(wù)定義,并并引用他們。實(shí)實(shí)際上任何有有命名的任務(wù)務(wù)都可以通過(guò)過(guò)名字被引用用。在整個(gè)的的流程定義中中,任務(wù)名必必須是唯一的的。此外,還還可以給任務(wù)務(wù)設(shè)定優(yōu)先級(jí)級(jí),這些優(yōu)先先級(jí)屬性將成成為任務(wù)實(shí)例例化時(shí)的默認(rèn)認(rèn)設(shè)置。任務(wù)務(wù)實(shí)例可以在在之后的運(yùn)行行中改變優(yōu)先先級(jí)。. Java對(duì)象 org.jbbpm.taaskmgmmt.deff.Taskk 數(shù)據(jù)庫(kù)表 JBPM_TTASK該表表存儲(chǔ)流程定定義中聲明的的任務(wù)對(duì)象。 表關(guān)聯(lián)說(shuō)明 JBPM_TTASK表中中,每條記錄錄有自己的數(shù)數(shù)據(jù)庫(kù)流水號(hào)號(hào)ID_JBPM_TAASK的外鍵鍵(Foreeign KKeys):processsdefinn

30、itionn_ -指指向taskk所屬的流程程定義ID taskmgmmtdefiinitioon_ - 指向tassk引用的TTaskMggmtDeffintioon對(duì)象IDD tasknodde_ - 指向tassk所屬的任任務(wù)結(jié)點(diǎn)IDD startsttate_ -指向taask所屬流流程的起始結(jié)結(jié)點(diǎn)ID assignmmentdeelegattion_ - 指定ttask委派派處理的cllass對(duì)象象的ID swimlanne_ - 指定tassk要授權(quán)的的swimllane(角角色)ID taskconntrolller_ - 指定一個(gè)個(gè)task賦賦值的委托類類 4.2.8 具體化的

31、流流程實(shí)例模型型流程實(shí)例中最重重要的三個(gè)對(duì)對(duì)象:流程實(shí)實(shí)例(Proocess Instaance)、令令牌(Tokken)、任任務(wù)實(shí)例(TTask IInstannce). 流程實(shí)例(PProcesss Insstancee)編號(hào) PI-0011 對(duì)象 流程實(shí)例(PProcesss Insstancee) 描述 流程實(shí)例是流流程定義的運(yùn)運(yùn)行時(shí)狀態(tài),它它記錄了一個(gè)個(gè)流程運(yùn)行的的起始時(shí)間、結(jié)結(jié)束時(shí)間等狀狀態(tài)信息 Java對(duì)象 org.jbbpm.grraph.eexe.PrrocesssInstaance 數(shù)據(jù)庫(kù)表 JBPM_PPROCESSSINSTTANCE該該表存儲(chǔ)運(yùn)行行時(shí)的

32、流程對(duì)對(duì)象信息。 表關(guān)聯(lián)說(shuō)明 JBPM_PPROCESSSINSTTANCE表表中,每條記記錄有自己的的數(shù)據(jù)庫(kù)流水水號(hào) ID_JBPMM_PROCCESSINNSTANCCE的外鍵(FForeiggn Keyys):processsdefinnitionn_ - 該該流程實(shí)例對(duì)對(duì)應(yīng)的流程定定義的ID roottokken_ - 該流程實(shí)實(shí)例引用的跟跟令牌 superprrocessstokenn_ - 如如果當(dāng)前流程程是某個(gè)流程程實(shí)例的子流流程,則指向向該父流程的的ID 令牌(Tooken)編號(hào) PI-0022 對(duì)象 令牌(Tokken) 描述 令牌代表一個(gè)個(gè)流程執(zhí)行的的路徑,

33、它維維護(hù)著流程定定義中各個(gè)結(jié)結(jié)點(diǎn)的指針,同同時(shí)記錄了流流程當(dāng)前執(zhí)行行的位置。 Java對(duì)象 org.jbbpm.grraph.eexe.Tooken 數(shù)據(jù)庫(kù)表 JBPM_TTOKEN該該表存儲(chǔ)運(yùn)行行時(shí)令牌對(duì)象象信息,它表表示當(dāng)前流程程執(zhí)行到的位位置。 表關(guān)聯(lián)說(shuō)明 JBPM_TTOKEN表表中,每條記記錄有自己的的數(shù)據(jù)庫(kù)流水水號(hào)ID_ JBPM_TOKENN的外鍵(FForeiggn Keyys):processsinstaance_ - 指指向該令牌所所屬的流程實(shí)實(shí)例的ID。 subproccessinnstancce_ - 指向該令牌牌所屬的子流流程實(shí)例IDD。 node_ - 令牌所所在(

34、所指向向的)的當(dāng)前前節(jié)點(diǎn)ID. parent_ - 如果果當(dāng)前令牌是是一個(gè)分支流流程或子流程程的令牌,則則該值指向其其父令牌IDD。 任務(wù)實(shí)例例(Taskk Insttance)編號(hào) PI-0033 對(duì)象 任務(wù)實(shí)例(TTask IInstannce) 描述 一個(gè)任務(wù)實(shí)例例對(duì)象可以分分配給指定的的操作者處理理,當(dāng)任務(wù)完完成后,將觸觸發(fā)流程繼續(xù)續(xù)下行。任務(wù)務(wù)實(shí)例的生命命周期很簡(jiǎn)單單,生成實(shí)例例-開(kāi)始始處理-任務(wù)結(jié)束。從從彈性設(shè)計(jì)考考慮出發(fā),任任務(wù)的分配不不屬于實(shí)例生生命周期的一一部分,任務(wù)務(wù)是否被分配配是不會(huì)影響響其生命周期期過(guò)程的。當(dāng)當(dāng)流程進(jìn)入一一個(gè)任務(wù)結(jié)點(diǎn)點(diǎn)的時(shí)候,結(jié)結(jié)點(diǎn)上任務(wù)

35、被被實(shí)例化;用用戶通過(guò)訪問(wèn)問(wèn)系統(tǒng)的界面面組件,獲取取自己的任務(wù)務(wù)列表,可以以進(jìn)行任務(wù)委委派、處理或或直接結(jié)束任任務(wù)。任務(wù)實(shí)實(shí)例記錄著任任務(wù)創(chuàng)建的時(shí)時(shí)間、結(jié)束時(shí)時(shí)間,這些信信息可以通過(guò)過(guò)TaskIInstannce對(duì)象中中的gettter方法獲獲取。一個(gè)任任務(wù)實(shí)例的結(jié)結(jié)束時(shí)間標(biāo)識(shí)識(shí)它的完成,在在后緒的任務(wù)務(wù)查詢中,該該實(shí)例不會(huì)被被取出,但實(shí)實(shí)例的記錄仍仍保留于數(shù)據(jù)據(jù)庫(kù)中。 Java對(duì)象 org.jbbpm.taaskmgmmt.exee.TaskkInstaance 數(shù)據(jù)庫(kù)表 JBPM_ TASKIINSTANNCE該表存存儲(chǔ)運(yùn)行時(shí)任任務(wù)實(shí)例信息息。 表關(guān)聯(lián)說(shuō)明 JBPM_ TASKIINSTA

36、NNCE表中,每每條記錄有自自己的數(shù)據(jù)庫(kù)庫(kù)流水號(hào)IDD_JBPMM_ TASSKINSTTANCE的的外鍵(Fooreignn Keyss):task_ - 指向定義義該實(shí)例的任任務(wù)ID token_ - 指向任任務(wù)實(shí)例對(duì)應(yīng)應(yīng)的令牌IDD swimlanneinsttatncee_ - swimllane 實(shí)實(shí)例,表示處處理該任務(wù)的的角色 taskmgmmtinsttance_ - 管理該任務(wù)務(wù)的模塊實(shí)例例ID 4.3 SppringSpring Frameework 是一個(gè) JJava/JJava EEE/.NEET 的分層層應(yīng)用程序框框架。該框架架基于 Exxpert One-oon-On

37、ee Javaa EE DDesignn and Devellopmennt(ISBBN 0-77645-44385-77)一文中的的代碼,并最最初由 Rood Johhnson 和 Jueergen Hoelller ett al 開(kāi)開(kāi)發(fā)。Sprring FFramewwork 提提供了一個(gè)簡(jiǎn)簡(jiǎn)易的開(kāi)發(fā)方方式,這種開(kāi)開(kāi)發(fā)方式,將將避免那些可可能致使底層層代碼變得繁繁雜混亂的大大量的屬性文文件和幫助類類。 Sprring 中中包含的關(guān)鍵鍵特性: 強(qiáng)大的基于于 JavaaBeanss 的采用控控制翻轉(zhuǎn)(IInverssion oof Conntrol,IIoC)原則則的配置管理理,使得應(yīng)用用程序

38、的組建建更加快捷簡(jiǎn)簡(jiǎn)易。 一個(gè)可用于于從 appplet 到到 Javaa EE 等等不同運(yùn)行環(huán)環(huán)境的核心 Bean 工廠。 數(shù)據(jù)庫(kù)事務(wù)務(wù)的一般化抽抽象層,允許許插件式事務(wù)務(wù)管理器,簡(jiǎn)簡(jiǎn)化事務(wù)的劃劃分使之與底底層無(wú)關(guān)。 內(nèi)建的針對(duì)對(duì) JTA 和 單個(gè) JDBC 數(shù)據(jù)源的一一般化策略,使使 Spriing 的事事務(wù)支持不要要求 Javva EE 環(huán)境,這與與一般的 JJTA 或者者 EJB CMT 相相反。 JDBC 抽象層提供供了有針對(duì)性性的異常等級(jí)級(jí)(不再?gòu)腟SQL異常中中提取原始代代碼), 簡(jiǎn)簡(jiǎn)化了錯(cuò)誤處處理, 大大大減少了程序序員的編碼量量. 再次利利用JDBCC時(shí),你無(wú)需需再寫(xiě)出另一一

39、個(gè) 終止止 模塊. 并且面向向JDBC的的異常與Sppring 通用數(shù)據(jù)訪訪問(wèn)對(duì)象 (Data Accesss Objject) 異常等級(jí)相相一致. 以資源容器器,DAO 實(shí)現(xiàn)和事務(wù)務(wù)策略等形式式與 Hibbernatte,JDOO 和 iBBATIS SQL MMaps 集集成。利用眾眾多的翻轉(zhuǎn)控控制方便特性性來(lái)全面支持持, 解決了了許多典型的的Hiberrnate集集成問(wèn)題. 所有這些全全部遵從Sppring通通用事務(wù)處理理和通用數(shù)據(jù)據(jù)訪問(wèn)對(duì)象異異常等級(jí)規(guī)范范. 靈活的基于于核心 Sppring 功能的 MMVC 網(wǎng)頁(yè)頁(yè)應(yīng)用程序框框架。開(kāi)發(fā)者者通過(guò)策略接接口將擁有對(duì)對(duì)該框架的高高度控制,因

40、因而該框架將將適應(yīng)于多種種呈現(xiàn)技術(shù),例例如 JSPP,F(xiàn)reeeMarkeer,Vellocityy,Tilees,iTeext 以及及 POI。值值得注意的是是,Spriing 中間間層可以輕易易地結(jié)合于任任何基于 MMVC 框架架的網(wǎng)頁(yè)層,例例如 Strruts,WWebWorrk,或 TTapesttry。 提供諸如事事務(wù)管理等服服務(wù)的面向方方面編程框架架。 4.4 Sppring ModullesSpring Modulles iss a suub-prooject of Sppring intennded tto easse inttegrattion wwith 33rd paar

41、ty pproduccts wiithoutt overrloadiing thhe corre fraameworrk witth addditionnal deependeenciess.The moddules incluuded iin thee 0.9 releaase arre:Ant inttegrattion. Flux suuite oof prooductss inteegratiion. HiveMinnd inttegrattion. Lucene integgratioon. Apache OJB iintegrrationn. O/R Brooker iintegr

42、rationn. OSWorkfflow iintegrrationn. Tapestrry inttegrattion. Supportt for declaarativve cacching serviices iincludding EEHCachhe, JCCS, OSSCachee, GiggaSpacces annd othhers. Supportt for db4o Supportt for JSR-994 Rulles Ennginess suchh as DDroolss and Jess Supportt for varioous Jaakartaa Commmons c

43、componnents such as Coonfiguuratioon, Laang, CChain and CCommonns Vallidatoor Supportt for JavaSSpacess, inccludinng Giggaspacces annd Bliitz. Supportt for jBPM 3.0.xx and 3.1.xx Supportt for JSR-1170 (JJava CContennt Reppositoory) iincludding JJackraabbit and JJeceirra. Supportt for web ttemplaate

44、ennginess likee Freeemarkeer, Grroovy, Veloocity, WebMMacro and XXSLT. Valang: Valiidatioon Lannguagee. Bean Vaalidattion FFramewwork. Spring MVC aadd-onns. XT Frammeworkk: Dommain-DDrivenn Desiign orrienteed fraameworrk andd Spriing MVVC AJAAX suppport for ddevelooping richeer dommain mmodelss and

45、richeer useer intterfacces. 5 集成 55.1 Introoductiionj jBPM modulle offfers iintegrrationn betwween tthe Sppring and jjBPM aallowiing foor reuuse off Spriings Hiberrnate suppoort allong wwith tthe IooC conntaineer. Thhe moddule aallowss jBPMMs unnderlyying HHibernnate ssessioonFacttory tto be confiig

46、uredd throough SSpringg and jBPM actioons too acceess Spprings conntext. 5.2 CoonfiguuratioonUsers ffamiliiar wiith Sppring will see tthat tthe jBBPM moodule struccture resemmbles with the oorm paackagee fromm the main Sprinng disstribuution. The modulle offfers aa centtral ttemplaate cllass ffor wo

47、orkingg withh jBPMM, a ccallbaack too acceess thhe nattive JJbpmCoontextt and a loccal faactoryy beann for confiigurattion aand crreatinng a jjBPM iinstannce. . cllasspaath:/oorg/sppringmmodulees/worrkfloww/jbpmm31/soomeOthherWorrkfloww.xml sett The exaample abovee showws howw (exiistingg) Sprring-m

48、manageed Hibbernatte SesssionFFactorries aand trransacction managgementt can be reeused with jBPM. 5.3 LoocalJbbpmConnfigurrationnFactooryBeaanThe maiin eleement is LoocalJbbpmConnfigurrationnFactooryBeaan whiich shhould be faamiliaar to userss acusstomedd to SSpringg. Bassed onn the jbpm confiigura

49、ttion ffile aand thhe givven SeessionnFactoory, iit willl creeate aa jBPMM conffiguraation whichh can be ussed foor worrking with the ggiven proceess deefinittions. It iis posssiblee to rreplacce jBPPM xmll conffiguraation with jBPM 3.1.xx newlly addded ObbjectFFactorry - nnote tthat iif botth aree

50、pressent tthe xmml connfigurrationn is ppreffeered. LocallJbpmCConfigguratiionFacctoryBBean aallowss the creattion oof thee undeerlyinng schhema bbased on thhe proocess definnitionns loaaded aautomaaticallly att starrtup.Note thhat thhe sesssionFFactorry proopertyy is nnot maandatoory - Hiberrnate S

51、essiionFacctory can bbe reuused wwith jjBPM oor jBPPM cann workk by iitselff withhout aany inntegraation with the eexistiing innfrasttructuure. HHoweveer, inn mostt scennarioss, usiing LoocalJbbpmConnfigurrationnFactooryBeaan alllows oone too takee advaantagee of SSpringg trannsactiion maanagemment

52、iinfrasstructture sso its posssiblee withhout aany coode chhange to usse jBPPM, Hiibernaate annd jdbbc-bassed coode innside the ssame ttransaactionnal coontextt, be it maanagedd locaally oor glooballyy (JTAA). Mooreoveer, itt is ppossibble too use threaad-bouund seessionn or OOpenSeessionnInVieew pa

53、ttternss withh jBPMM.LocalJbbpmConnfigurrationnFactooryBeaan is also awaree of tthe ennclosiing appplicaationCContexxt liffecyclle - jjBPM wwill bbe iniitialiized oonce tthe coontextt is sstarteed (ussuallyy appllicatiion sttartupp) andd willl be cclosedd propperly when the ccontexxt is destrroyed (

54、appllicatiion iss shuttdown).Note thhat LoocalJbbpmConnfigurrationnFactooryBeaan cann be cconfiggured progrramatiicallyy and can bbe useed staandaloone onnly too builld an jBPM conteext whhich ccan bee usedd indeependeently of Sppring Modulles jBBPM suupportt. 5.4 Innversiion off Conttrol: JbpmTTemp

55、laate annd JbppmCalllbackAnotherr impoortantt featture oof Sprring MModulees jBPPM suppport is JbbpmTemmplatee. Thee tempplate offerrs verry connvientt wayss of wworkinng dirrectlyy withh proccess ddefiniitionss as wwell aas jBPPM APII takiing caare off handdling excepptionss (be it jBBPM orr Hibeer

56、natee baseed) inn resppect tto thee ongooing ttransaactionn (if its preseent), the uunderllying Hiberrnate sessiion (iif pessistennt serrvicess are used) and the jjBPM ccontexxt. jBBPM exxceptiions (and tthe unnderlyying HHibernnate iinformmationn) aree trannslateed intto Sprringss DAO excepption hi

57、eraarchy. Everrythinng happpens in a transsparennt andd conssistennt mannner.TThis iis posssiblee, as with everyy Spriing-sttyle ttemplaate,evven whhen diirect accesss to the nnativee JbpmmConteext iss desiired, throuugh thhe JbppmCalllback:public ProceessInsstancee finddProceessInsstancee(finaal Lo

58、nng proocessIInstannceId) returrn (PrrocesssInstaance) execuute(neew JbppmCalllback() ppublicc Objeect dooInJbppm(JbppmConttext ccontexxt) / ddo sommethinng reeturn conteext.geetGrapphSesssion().loaddProceessInsstancee(proccessInnstancceId.llongVaalue(); ); As welll, as LocallJbpmCConfigguratiionFac

59、ctoryBBean, the JJbpmTeemplatte cann be cconfiggured progrramatiicallyy and can bbe useed staandaloone onn a prre-exiistingg jbpmmConteext (cconfiggured throuugh LoocalJbbpmConnfigurrationnFactooryBeaan or not) and ccan bee usedd indeependeently of Sppring Modulles jBBPM suupportt. 5.5 PProcesssDefi

60、initioonFacttoryBeeanProcesssDefinnitionnFactooryBeaan is a simmple rreaderr thatt loadds jBPPM proocess definnitionn usinng Sprringss ResoourceLLoaderrs. Thhus, tthe xmml filles caan be load usingg the classspath, relaative or abbsolutte fille patth or even from the SServleet Conntext. See the ooff

溫馨提示

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

評(píng)論

0/150

提交評(píng)論