基于工作流管理系統(tǒng)的回退方法_第1頁
基于工作流管理系統(tǒng)的回退方法_第2頁
基于工作流管理系統(tǒng)的回退方法_第3頁
基于工作流管理系統(tǒng)的回退方法_第4頁
基于工作流管理系統(tǒng)的回退方法_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

基于工作流管理系統(tǒng)的回退方法

1流程回退的實現(xiàn)工作流是計算機(jī)自動執(zhí)行的一個完整或部分的過程。在這一過程中,文檔、信息或任務(wù)按照規(guī)定的規(guī)則執(zhí)行,員工和現(xiàn)有軟件之間的協(xié)調(diào)工作實現(xiàn)了公司業(yè)務(wù)的總體目標(biāo)。回退是工作流管理系統(tǒng)的重要功能。傳統(tǒng)的回退方法一般是回退至上一步活動,或通過逐級回退,一步步回退至發(fā)生錯誤的活動上,這樣很容易造成流程的混亂和回退的繁瑣;現(xiàn)有的回退機(jī)制不能很好地解決跨and合并和跨and分支模式的回退,在處理此類模式的回退時往往容易造成流程的死鎖和數(shù)據(jù)的不一致。因此,為了增強(qiáng)工作流管理系統(tǒng)的柔性和靈活性,實現(xiàn)工作流管理系統(tǒng)流程的多步回退、跨and合并、跨and分支回退機(jī)制,在工作流管理系統(tǒng)中,有必要對流程的回退方法進(jìn)行詳細(xì)的研究。文獻(xiàn)[1]通過動態(tài)改變流程實例定義,將后續(xù)指定的回退目標(biāo)活動作為流程的起始活動開始執(zhí)行,并刪除“當(dāng)前活動”和“后續(xù)指定回退活動”之間的工作項,從而實現(xiàn)流程的回退。但該方法沒有給出具體回退所遵循的規(guī)則和數(shù)據(jù)、事務(wù)的恢復(fù)方案。文獻(xiàn)[2]提出采用補(bǔ)償機(jī)制,向后恢復(fù)實現(xiàn)工作流產(chǎn)品的回退,但對于一些無法用補(bǔ)償機(jī)制來實現(xiàn)的事務(wù)工作流則未予考慮。文獻(xiàn)[3]提出一種基于靜態(tài)策略集和動態(tài)策略集的方法實現(xiàn)工作流的回退。該方法能實現(xiàn)流程的正確回退,但是回退時只能回退至其直接前驅(qū)活動,不能一次多步回退。文獻(xiàn)[4]通過設(shè)計回退規(guī)則和回退算法獲取可回退的目標(biāo)活動集,通過選取可回退的目標(biāo)活動進(jìn)行回退。該方法能實現(xiàn)流程的正確回退,也不會產(chǎn)生流程死鎖和數(shù)據(jù)不一致的問題,但回退的過程中禁止跨and合并和跨and分支,對回退的行為進(jìn)行了嚴(yán)格的限制。本文在以上回退方法的基礎(chǔ)上進(jìn)行了改進(jìn),修改了回退規(guī)則和回退算法,設(shè)計了一種回退應(yīng)用模型。改進(jìn)的模型能較好地支持流程的多步回退、跨and合并和跨and分支回退機(jī)制,最后在開源工作流引擎shark上進(jìn)行了驗證。2工作流模式分析根據(jù)WFMC的XPDL所允許的工作流拓?fù)淇刂平Y(jié)構(gòu)可知,常用的工作流模式主要有5種:順序(線性),并行分支(and分支),同步(and合并),排它選擇(xor分支),簡單合并(xor合并),下面分別對以上5種常用工作流模式回退進(jìn)行介紹。(備注:灰色代表正在執(zhí)行的活動,白色代表已完成的活動)。2.1排它選擇方式順序模式的回退最為簡單,如圖1中從活動2回退到活動1等,因為沒有其他支路,所以可以直接回退,而且回退時不會造成流程死鎖及數(shù)據(jù)不一致,回退時數(shù)據(jù)恢復(fù)也容易實現(xiàn)。排它選擇方式是指流程在運行時,當(dāng)前活動的完成可以觸發(fā)多個后繼活動中滿足條件的一個活動的執(zhí)行,如圖1中活動2的完成可觸發(fā)活動3或活動4中滿足條件的一個活動執(zhí)行。簡單合并方式是指多個活動只要有一個正確完成就可觸發(fā)后繼活動的執(zhí)行,如圖1中活動5的完成觸發(fā)活動7的執(zhí)行。由于在運行時以上2種工作流模式都僅有一條支路在執(zhí)行,因此這2類可參照順序模式的回退,回退時按照流程從哪來回哪去的原則,這樣既可省略回退路徑選擇的問題又可避免因回退時選擇了一條未執(zhí)行的路徑從而目標(biāo)現(xiàn)場無法恢復(fù)的問題。2.2根據(jù)其他油路的影響并行分支工作流模式時,由于流程在運行時觸發(fā)了多條支路后繼活動的執(zhí)行,因此當(dāng)其中一條支路回退時,需要考慮對其他支路的影響。如圖2中活動4欲回退到活動2,結(jié)果導(dǎo)致流程的重新執(zhí)行,但由于活動7并未回退,活動也未終止,這樣就造成活動7前后數(shù)據(jù)的不一致。要解決跨and分支節(jié)點回退產(chǎn)生的數(shù)據(jù)不一致問題,可以考慮采用先終止活動7,再回退活動4的方法,讓流程從活動2重新執(zhí)行。2.3流程上看回退流程同步工作流模式是指工作流在運行時,需要各分支活動都完成才能觸發(fā)后繼活動的執(zhí)行,如圖3所示。同步工作流模式回退時,如活動7回退至活動4,被回退的活動4將永遠(yuǎn)等待另一條未被回退觸發(fā)的活動6,這種回退將導(dǎo)致流程無法執(zhí)行,最終會停留在and合并節(jié)點,產(chǎn)生流程死鎖。對于此類模式有3種處理辦法:(1)設(shè)置活動處理期限,當(dāng)在規(guī)定的時間內(nèi)存在未執(zhí)行的活動時,則由流程調(diào)度器負(fù)責(zé)觸發(fā)此類活動;(2)活動7同時回退到活動4和活動6;(3)直接跨越and合并區(qū),回退到活動2或活動1。本文采用方法3。3循環(huán)屬性和回歸方向規(guī)則的定義3.1活動實例的定義為了更好地描述流程的形式化定義,本文在文獻(xiàn)[5-6]提出的形式化描述流程的方法基礎(chǔ)上進(jìn)行了擴(kuò)展,制定了以下5個定義來描述流程的相關(guān)概念。定義1(流程定義)流程P可由二元組<A,D>表示,其中,A表示流程中活動的集合;D表示活動之間依賴關(guān)系的集合。定義2(活動間依賴關(guān)系)依賴關(guān)系d(d∈D)可以表示為四元組<activityx,activityy,conditionc,typet>,其中,x、y∈A;條件c表示活動x、y之間的依賴關(guān)系;t表示活動之間依賴關(guān)系的類型。為了更好地表述各元素間的關(guān)系,先設(shè)定如下表示意義:?x,y表示從活動x到y(tǒng)存在一條通路,y依賴于x;?y,x表示從活動y到x存在一條通路,x依賴于y;null表示活動x,y無關(guān)。依據(jù)上述表示意義,則各元素存在如下表達(dá)式關(guān)系:定義3(活動定義)?a∈A,其中每個活動a又是一個三元組<Split_Flag,Join_Flag,SC>。其中,Split_Flag/Join_Flag可取的值有null、and、xor。null表示活動是線性關(guān)系,and表示and分支和and合并關(guān)系的總稱,xor表示xor分支和xor合并關(guān)系的總稱。SC表示活動的觸發(fā)條件。如果Join_Flag為空,SC則為該活動的前驅(qū)活動;如果Join_Flag不為空,SC則為該活動的多個前驅(qū)的交集。定義4(流程實例定義)流程實例PI可用二元組<AI,PS>來表示。AI是活動實例的集合,定義見定義5;PS表示流程實例的狀態(tài),有4種類型,如下所示:定義5(活動實例定義)活動實例的集合用AI表示,每個AI又是一個二元組<id,state>。id唯一標(biāo)識了這個活動實例;state表示這個活動的狀態(tài),狀態(tài)取值同定義4的PS。3.2基于預(yù)期的回退控制通過對現(xiàn)有基本工作流模式的分析,本文制定了以下回退規(guī)則集:規(guī)則1流程實例必須是正在運行的;當(dāng)前回退活動必須是正在運行的,已完成或已終止或已掛起或未啟動的活動不能執(zhí)行回退操作;回退目標(biāo)活動必須是已完成的。規(guī)則2流程中所有活動回退均采取從哪來回哪去的原則。規(guī)則3同步區(qū)里當(dāng)活動的任一同級活動已被執(zhí)行,則其他同級活動不允許回退。4控制流程回退為了實現(xiàn)工作流流程的多步回退以及支持跨and合并和跨and分支回退,本文在以上研究的基礎(chǔ)上對現(xiàn)有回退算法進(jìn)行了改進(jìn),改進(jìn)后的算法首先將構(gòu)造流程的活動集和依賴集(A,D),以及流程實例<AI,PS>,最后根據(jù)前面的結(jié)果利用回溯算法獲取可回退的目標(biāo)活動列表,獲取可回退列表之后再調(diào)用回退執(zhí)行算法,實現(xiàn)流程的回退。其中,流程的活動集A可以通過遍歷該流程活動節(jié)點得到;活動依賴集D可以通過構(gòu)造活動間的依賴關(guān)系得出,如d(x,y).c=d(y,z).c=“>”,則可推導(dǎo)出d(x,z).c=“>”;限于篇幅,本節(jié)重點介紹獲取可回退目標(biāo)活動列表的回溯算法以及回退執(zhí)行算法。算法1用于獲取可回收目標(biāo)的跟蹤算法5實現(xiàn)和驗證可重復(fù)的應(yīng)用程序模型5.1基于業(yè)務(wù)一致性的回退環(huán)境設(shè)計為了實現(xiàn)回退機(jī)制,本文在開源工作流引擎shark原模型的基礎(chǔ)上增添了一個流程回退管理器,如圖4所示?;赝斯芾砥髦饕P吞幚砥?、事務(wù)處理器、數(shù)據(jù)恢復(fù)器、流程場景恢復(fù)器以及回退調(diào)度器。其中,模型處理器是通過分析工作流回退模型,獲取可回退目標(biāo)活動列表,以供用戶選擇回退目標(biāo)活動。事務(wù)處理器與數(shù)據(jù)恢復(fù)器是工作流回退保證事務(wù)、數(shù)據(jù)一致性的關(guān)鍵部分,其中,事務(wù)處理器用來確保工作流中的事務(wù)和外部業(yè)務(wù)數(shù)據(jù)事務(wù)的統(tǒng)一,從而保證回退的總體事務(wù)性。數(shù)據(jù)恢復(fù)器與應(yīng)用數(shù)據(jù)庫相關(guān)聯(lián),從應(yīng)用數(shù)據(jù)庫中獲取回退所需的數(shù)據(jù)和狀態(tài),從而確保回退執(zhí)行時數(shù)據(jù)的完整性;其中對于無法在數(shù)據(jù)庫級別進(jìn)行數(shù)據(jù)恢復(fù)的活動,如審批過程中發(fā)送的確認(rèn)郵件,由于郵件是工作流系統(tǒng)調(diào)用外部郵件服務(wù)執(zhí)行的,因此工作流本身無法回退,此時只能通過重發(fā)一份郵件的方式進(jìn)行替換。流程場景恢復(fù)器是用來確保工作流流程回退時業(yè)務(wù)場景的一致性,參與者在選擇目標(biāo)活動進(jìn)行回退時,如果選擇了一條未執(zhí)行的路徑,則回退后的目標(biāo)場景無法恢復(fù),因此,可以調(diào)用流程場景恢復(fù)器從應(yīng)用數(shù)據(jù)庫中獲取流程執(zhí)行的上下文環(huán)境?;赝苏{(diào)度器負(fù)責(zé)調(diào)用以上各模塊完成整個回退操作。5.2shark擴(kuò)展經(jīng)過分析,上述回退管理器需要實現(xiàn)的功能概括為以下3點:5.3流程回退校驗為了驗證改進(jìn)后的工作流引擎回退執(zhí)行效果,使用JAWE建模構(gòu)造了一個流程圖,如圖5所示。其中,“組長審核”、“經(jīng)理審核1”為AND分支類型的活動,“總審”為AND合并類型的活動,流程圖中其他活動的類型均為xor合并/分支。將構(gòu)造的流程圖加載到改進(jìn)后的shark引擎中,由引擎負(fù)責(zé)實例化流程,并執(zhí)行活動。進(jìn)行回退校驗時,獲取了如表1所示的當(dāng)前活動的所有可回退目標(biāo)活動的集合。從集合中選擇任一個目標(biāo)活動跨多步進(jìn)行回退時,流程數(shù)據(jù)和狀態(tài)也同時跟著回退,實現(xiàn)了流程的正確回退。如圖5中從經(jīng)理審核1節(jié)點回退到擬稿節(jié)點,正在運行的經(jīng)理審核2節(jié)點將被關(guān)閉,回退開始點經(jīng)理審核1和回退目標(biāo)點擬稿都有狀態(tài)記錄,回退后重新執(zhí)行時,經(jīng)理審核1、經(jīng)理審核2都被重新執(zhí)行,實現(xiàn)了流程的正確回退。其他節(jié)點在校驗時也都實現(xiàn)了正確回退,此處不再詳細(xì)闡述。6流程回退應(yīng)用模型本文對工作流管理系統(tǒng)回退機(jī)制進(jìn)行了研究,實現(xiàn)了一個基于shark的回退應(yīng)用模型,解決了流程的多步回退、跨and合并和跨and分支回退的問題。今后的工作將集中于完善回退算法,使其對一些特殊工作流模式提供更好的回退支持。流程回退處理(1)獲取當(dāng)前活動的所有可回退目標(biāo)活動。(2)終止當(dāng)前活動以及撤銷回退目標(biāo)活動和當(dāng)前活動中間已執(zhí)行的活動實例和操作。(3)回退至目標(biāo)活動以及完成數(shù)據(jù)和流程場景的恢復(fù)。因此,為了實現(xiàn)上述功能,本文對shark引擎進(jìn)行了擴(kuò)展,其中,在shark內(nèi)核類WfProcessWrappe里增加了:(1)StopCurrentActivity(Activityact,SharkTransactiont)和(2)RunTargetActivity(Activitytarget,SharkTransactiont)2個方法,分別實現(xiàn)功能(2)和功能(3),參數(shù)SharkTransaction是為了確?;赝诉^程中工作流操作和業(yè)務(wù)操作處于一個事務(wù)中;同時新建了一個ProcessRollBack類用以對流程回退進(jìn)行處理,該類中主要包含以下2個處理

溫馨提示

  • 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

提交評論