




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
工作流模式和JBPM
WorkflowPatterns&JBPM趙慧2010/08/03目錄jBPM4介紹來自國外的20種工作流模式5種基本控制流模式(BaseControlFlowPatterns)4種高級分支同步模式
(AdvancedBranchingandSynchronizationPatterns)2種結(jié)構(gòu)化模式(SturcturalPatterns)4種包含多實例的模式(PatternsinvolvingMultipleInstances)3種基于狀態(tài)的模式(State-basedPatterns)2種取消模式(CancellationPatterns)具有中國特色的工作流模式2jBPM4介紹jBPM簡介jBPM,全稱是JavaBusinessProcessManagement(業(yè)務(wù)流程管理),它是覆蓋了業(yè)務(wù)流程管理、工作流、服務(wù)協(xié)作等領(lǐng)域的一個開源的、靈活的、易擴展的可執(zhí)行流程語言框架。目前最新版本是jBPM4.4BusinessanalystjBPM架構(gòu)jBPM的使用35種基本控制流模式Pattern1順序流(Sequence)定義描述:在流程中,活動按照預(yù)先設(shè)定的順序一個接著一個的往下執(zhí)行例子:比如申請后進(jìn)行審批,接著往下一個一個的進(jìn)行任務(wù)流程圖:Pattern2并行分叉(ParallelSplit)定義描述:流程在某個活動之后產(chǎn)生多個分支例子:比如用戶付款后,認(rèn)為分叉為“通知用戶款已收到真正送貨”和“送貨”2個動作流程圖:Task1Task2Task2Task1Task2Task3Task21Task3145種基本控制流模式Pattern3同步(Synchronization)定義描述:在流程中的某個點,多個并行的子流程或者活動,合并成一個流程。
流程必須等待所有的分支都執(zhí)行完成后,才能激活后續(xù)活動,這就是“同步”的意思。例子:比如“數(shù)據(jù)歸檔”在“發(fā)票”和“付款”都完成后才被激活流程圖:
Task1Task2Task3Task3155種基本控制流模式Pattern4獨占式選擇(ExclusiveChoice)定義描述:一個活動完成后,只能在后面的多個分支中激活一個,即獨占式分支例子:比如用戶下單后,可以有N中付款方式,但是只能選擇其中一種流程圖:Task1Task2Task3Task21Task31Pattern5簡單聚合(SimpleMerge)定義描述:在流程中有2個以上的分支中某一點處被合并成一個分支,只要分支中的一條完成,即可繼續(xù)進(jìn)行。而其他分支自動結(jié)束例子:比如“發(fā)貨”在“銀行卡支付”和“貨到付款”等支付方式中的一個完成后才被激活流程圖:Task1Task2Task3Task31任一6基本控制流模式
–jBPM中的綜合實現(xiàn)5種基本控制流模式在JBPM4中的綜合實現(xiàn)流程圖:(JPDL)順序并行分叉同步排他選擇簡單聚合74種高級分支同步模式Pattern6多重選擇(MultipleChoice)定義描述:在流程中,當(dāng)一個活動完成后,有多個分支進(jìn)行選擇,可以選擇執(zhí)行其中的一個或者N個分支例子:去世博園玩轉(zhuǎn)門口檢票后可以選擇A~E個片區(qū)中的N個進(jìn)行觀光流程圖:JBPM中的支持情況:JPDL方式不支持先定義好這里的幾種,然后根據(jù)條件去篩選其中的幾種進(jìn)行,但是JBPM4.4之后支持一種叫foreach的節(jié)點,允許我們在運行時制定幾種特定的任務(wù),比如上面例子中的片區(qū),我們可以在選定后再去循環(huán)BPMN方式支持根據(jù)條件執(zhí)行多個子分支Task1Task2Task3Task5Task484種高級分支同步模式Pattern7同步聚合(SynchronizingMerge)定義描述:在流程中的某個聚合點,流程會等待所有的分支到來,才能激活后續(xù)的活動,如果分支只有一個那么就變成Pattern5的簡單聚合模式;如果存在2個以上的分支那就是Pattern3的同步模式;這種模式的關(guān)鍵在于能夠動態(tài)的根據(jù)分支的多少進(jìn)行聚合。例子:游客觀光完N個片區(qū)后,系統(tǒng)能夠?qū)⒂慰驮贜個片區(qū)的信息記錄到庫,無論N為多少流程圖:JBPM中的支持情況:可以通過設(shè)置JBPM的Join節(jié)點的屬性multiplicity的值為某個變量,并在程序中動態(tài)的去修改該變量的值來制定分支的數(shù)量Task1Task2Task5Task3Task494種高級分支同步模式Pattern8多重聚合(MultipleMerge)定義描述:在流程中的多個分支,都可以激活后續(xù)的活動,也就是會產(chǎn)生多個實例例子:游客觀光完N個片區(qū)后,每個片區(qū)各自的系統(tǒng)可以對游客在自己片區(qū)的信息進(jìn)行存儲流程圖:JBPM中的支持情況:可以通過設(shè)置JBPM的Join節(jié)點的屬性multiplicity的值為某個變量,并在程序中動態(tài)的去修改該變量的值來制定分支的數(shù)量Task1Task2Task5Task3Task4Task1Task5Task3Task4Task5104種高級分支同步模式Pattern9鑒別器(Discriminator)定義描述:在流程的某個聚合點,N個分支的第一個分支到達(dá)后,就立刻激活后續(xù)活動;與此同時,流程仍然要等待其余的分支完成并忽略完成。注意:在其余分支未全部完成前,第一個到達(dá)的分支所激活的后續(xù)節(jié)點是無法執(zhí)行的例子:“個人申請?zhí)峤弧焙?,并行提交給“第一導(dǎo)師審批”、“第二導(dǎo)師審批”、“第三導(dǎo)師審批”,他們中只要有一個完成了,那么就可以提交給學(xué)院做“學(xué)院審批”,但是學(xué)院要等這三個都完成之后才能夠執(zhí)行“學(xué)院審批”。N-out-of-M鑒別器模式跟鑒別器模式一樣的,只是這種模式是N個到達(dá)后,激活后續(xù)節(jié)點,而剩下的M-N個節(jié)點到達(dá)后忽略掉這些節(jié)點。另外這M-N個節(jié)點未完成前,新激活的后續(xù)節(jié)點一樣無法被執(zhí)行JBPM中的支持情況:沒有直接支持這種模式,但是如果通過自定義節(jié)點,應(yīng)該是可以處理這種模式的個人理解:對于里面的N-1個,如果會被忽略掉,會顯得沒有什么價值,浪費?112種結(jié)構(gòu)化模式Pattern10任意循環(huán)(ArbitraryCycles)定義描述:某一個或多個活動可以反復(fù)執(zhí)行例子:用戶“付款”,然后“拿到汽水”,然后中了“再來一瓶”,然后就重復(fù)做了一次“拿到汽水”動作流程圖:Task1Task3Task2Pattern11隱式終止(ImplicitTermination)定義描述:指著一個流程中,如果沒有活動可以執(zhí)行力,那么流程就會自動終止例子:比如用戶買了汽水后,中了50元小獎,但是沒有地方可以兌獎,于是這個流程終止了流程圖:Task1Task2Task3Task4122種結(jié)構(gòu)化模式–JBPM中的綜合實現(xiàn)2種結(jié)構(gòu)化模式在JBPM4中的綜合實現(xiàn)流程圖:(JPDL)循環(huán)隱式退出134種包含多實例的模式Pattern12無同步的多實例(MIwithout)定義描述:在流程中,一個活動可以激活多個實例,每個實例相互獨立,并不需要在后面進(jìn)行同步例子:比如用戶購買了N本書,于是后續(xù)的“支付賬單”“更新客戶”可以以書本為單位各自執(zhí)行流程圖:JBPM中的支持情況:支持這種模式,但是不允許在后面進(jìn)行結(jié)束動作Task1Task2Task1Task2-1Task2-2Task2-3Foreach節(jié)點144種包含多實例的模式Pattern13設(shè)計時確定的的多實例(MIwithaPrioriDesignTimeKnoledge)定義描述:在流程中,被激活的多個實例需要在某個聚合點聚合,而實例的個數(shù)在設(shè)計的時候就已經(jīng)知曉率例子:比如流程圖:JBPM中的支持情況:對于設(shè)計時已經(jīng)知道實例數(shù)量的,最簡單的就是使用多個Task節(jié)點來實現(xiàn)多個實例Task1Task2Task1Task2-1Task2-2Task2-3X3154種包含多實例的模式Pattern14運行時確定的的多實例(MIwithaPrioriRunTime
Knoledge)定義描述:在流程中,被激活的多個實例需要在某個聚合點聚合,而實例的個數(shù)在設(shè)計的時候并不知道,只有在運行時根據(jù)條件來決定需要激活多少個實例例子:比如流程圖:JBPM中的支持情況:對于運行時可以知曉實例數(shù)量的,可以通過設(shè)置JOIN節(jié)點的multiplicity來實現(xiàn)Task1Task2Task1Task2-1Task2-2Task2-3Foreach節(jié)點JOIN節(jié)點164種包含多實例的模式Pattern15運行時無法確定的的多實例(MIwithoutaPrioriRunTime
Knoledge)定義描述:在流程中,被激活的多個實例需要在某個聚合點聚合,而實例的個數(shù)在設(shè)計的時候并不知道,該模式與上一個模式的區(qū)別就是,在產(chǎn)生的實例執(zhí)行時或者已經(jīng)執(zhí)行完時,仍然有新的實例產(chǎn)生例子:比如訂購100臺電腦,涉及多個供應(yīng)商,但那時每個供應(yīng)商供應(yīng)多少臺電腦是不知道的,因此供應(yīng)商的數(shù)量實現(xiàn)也不確定,但是每次供應(yīng)商送貨來后,就會將現(xiàn)在所擁有的電腦數(shù)量和所需的100臺進(jìn)行比較,來決定是否要下一個供應(yīng)商進(jìn)行送花Pattern15的實現(xiàn)產(chǎn)生多個實例JOIN節(jié)點在產(chǎn)生的實例中執(zhí)行的時候產(chǎn)生新的實例Pattern15的實現(xiàn)主要也是通過Pattern14的方式來做的流程圖:(JPDL)在這里修改計算實例的數(shù)量并付給JOIN節(jié)點的multiplicity173種基于狀態(tài)的模式Pattern16延遲選擇(DeferredChoice)定義描述:流程中某個點可以有多個分支進(jìn)行選擇。與Pattern4相比較:不是基于簡單的數(shù)據(jù)或者決定就可以很明顯地作出選擇,而是會向系統(tǒng)或者執(zhí)行環(huán)境提供多種可選擇的分支;但是又不同于AND-Split模式,延遲選擇只能選擇一個分支執(zhí)行,一旦選擇了其中第一個分支,那么其他分支就會被撤銷。這種延遲一直會持續(xù)到第一個選擇分支開始實際運行。例子:收到的一批商品運送到各個部門,到底選擇什么樣的運行方式,要看資源的可用性183種基于狀態(tài)的模式Pattern17交叉存取并行路由(InterleavedParallelRouting)定義描述:或者叫任意順序,指幾個活動必須按順序執(zhí)行,不能同時進(jìn)行,但是這種順序又是不定的例子:體檢的時候有很多項目,這些項目不能同時進(jìn)行,但是可以以隨意順序進(jìn)行我的理解:這種任意順序的模式,有一種情況下是可以運用的,就是通過資源多少來判斷優(yōu)先執(zhí)行哪個活動,比如若A的資源剩余最少,那么就先做A的順序,通過JBPM的實現(xiàn)如下:193種基于狀態(tài)的模式Pattern18里程碑(Milestone)定義描述:一個活動的激活需要一種具體的狀態(tài),比如活動A,B,C,只有在AB都執(zhí)行完了的情況下才能執(zhí)行C我的理解:這種模式有點類似于順序模式?或者是同步模式?202種取消模式Pattern19取消模式(CancelActivity)定義描述:簡單的理解,就是將某個活動取消例子:比如下好訂單后,“支付貨款”活動正在運行中,此時用戶取消訂單個人理解:取消某個活動,會引起幾種后續(xù)情況:
1.整個流程結(jié)束;比如訂單取消后,訂單的這個流程結(jié)束。
2.退回上一個節(jié)點;比如付款后,用戶取消付款,重新下訂單。Pattern20取消實例(CancelCase)定義描述:如果一個活動產(chǎn)生了多個實例,那么僅僅撤銷這個活動是不夠的要將他所引起的所有實例都移除才行21具有中國特色的工作流模式Pattern1回退(Reject)定義描述:工作流的某個活動執(zhí)行后,在下一個活動又被轉(zhuǎn)回來例子:比如申請后進(jìn)行審批,審批沒有通過,被退回來流程圖:Pattern2
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中考英語歷年真題試卷及解析
- 12CrMoV鋼材焊接施工技術(shù)方案
- 八年級數(shù)學(xué)角平分線幾何應(yīng)用題
- 衛(wèi)生間防水施工工藝流程詳解
- 電力行業(yè)非計劃停機預(yù)防措施
- 建筑結(jié)構(gòu)安全檢測與維護(hù)策略解析
- 小學(xué)語文公開課教學(xué)設(shè)計實例分析
- 幼兒語言啟蒙階段教學(xué)指導(dǎo)方案
- 小微企業(yè)財務(wù)管理與稅務(wù)籌劃實務(wù)
- 譯林版六年級英語全冊課堂教學(xué)課件
- 微生物學(xué)檢驗技術(shù) 課件 16項目十六:細(xì)菌生物化學(xué)試驗
- 光的反射定律教案及反思
- 高溫熔融金屬企業(yè)安全知識培訓(xùn)
- 醫(yī)院培訓(xùn)課件:《直腸癌中醫(yī)護(hù)理查房》
- 二年級上冊勞動《洗紅領(lǐng)巾》課件
- 深靜脈血栓臨床路徑表單
- 光影中國學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 中國中車股份有限公司
- DLT 572-2021 電力變壓器運行規(guī)程
- 宅基地轉(zhuǎn)讓協(xié)議書
- 十年(2015-2024)高考真題數(shù)學(xué)分項匯編(全國)專題25 新定義綜合(數(shù)列新定義、函數(shù)新定義、集合新定義及其他新定義)(教師卷)
評論
0/150
提交評論