[摘 要] 規(guī)則的使用為異常處理提供了較大的靈活性,系統(tǒng)介紹了ECAA規(guī)則和工作流異常處理機(jī)制,提出了結(jié)合ECAA規(guī)則法來進(jìn)行工作流異常處理的新策略,構(gòu)造了基于規(guī)則法進(jìn)行異常處理的工作流參考模型,并研究了應(yīng)用ECAA方法處理工作流異常的機(jī)制。
[關(guān)鍵詞] ECAA規(guī)則 工作流異常 工作流異常處理
一、工作流異常
如何在適當(dāng)?shù)臅r間將適當(dāng)?shù)男畔鬟f給適當(dāng)?shù)娜擞眠m當(dāng)?shù)墓ぞ哌M(jìn)行處理。組織機(jī)構(gòu)為了適應(yīng)動態(tài)多變的業(yè)務(wù)環(huán)境和激烈的市場競爭需要經(jīng)常改變業(yè)務(wù)流程。工作流中預(yù)先定義的參數(shù)在執(zhí)行過程中很難適應(yīng)前后環(huán)境的變化。工作流對異常的處理需求日益迫切。工作流異常指沒有人工干預(yù)計算機(jī)就不能正確處理的情況,即任何對已有的協(xié)同處理過程的偏移。工作流異常處理是指在異常發(fā)生后,由工作流系統(tǒng)提供一套機(jī)制 ,通過人工和自動處理相結(jié)合的方式,使工作流重新回復(fù)到正常流程或預(yù)測狀態(tài)的方法。在業(yè)務(wù)流程出錯的情況下,異常處理是保證系統(tǒng)能有自我免疫防護(hù)功能,保證正常流程的繼續(xù)。異常處理包括了工作流中的錯誤處理,但更主要是對工作流執(zhí)行過程中出現(xiàn)的,各種與原工作流定義不一致的處理。
工作流異常有一種比較廣泛認(rèn)同的分類:基本故障、應(yīng)用故障、可預(yù)測的異常和不可預(yù)測的異常。目前,關(guān)于工作流異常處理的相關(guān)研究主要集中于三個方面:異常處理的體系結(jié)構(gòu)設(shè)計和功能模塊劃分;異常處理的處理策略及其在工作流建模中的描述方式;異常處理的實現(xiàn)方法:事務(wù)特性與程序設(shè)計結(jié)合法、知識庫法、ECA(Event-Condition-Action)規(guī)則法和工作流進(jìn)化法。本文結(jié)合ECAA(Event-Codition-ThenAction-Else Action)規(guī)則法來進(jìn)行工作流異常(其中包括可預(yù)測異常和不可預(yù)測異常)處理的新策略,構(gòu)造了基于ECAA規(guī)則法進(jìn)行異常處理的工作流參考模型,并結(jié)合實例應(yīng)用驗證此異常處理機(jī)制的靈活性別和有效性。
二、ECAA規(guī)則
規(guī)則在企業(yè)中是個靈活多變的因素。文獻(xiàn)中提出了JECA(Justified Event-Condition-Action)規(guī)則。我們可以將 ECAA 規(guī)則應(yīng)用到異常處理中來,在ECAA規(guī)則中,有action1和action2兩種反應(yīng)動作,如果滿足condition,則執(zhí)行action1,否則,執(zhí)行action2。
為了更好的解決異常:ECAA規(guī)則法的action可以根據(jù)活動的事務(wù)特性來描述;使用ECAA規(guī)則法時,某異常發(fā)生后,如果找到該異常對應(yīng)的規(guī)則,則直接去規(guī)則庫中調(diào)用相應(yīng)的異常;如果沒有找到對應(yīng)的規(guī)則,則找出最相似的一些案例,并根據(jù)這些案例的處理方法,按照一定的法則得到本次異常的處理方法,異常處理完成后,將本次異常處理用ECAA規(guī)則寫到規(guī)則庫中去,這樣,即可用ECAA規(guī)則法處理不可預(yù)測異常。
三、參考模型
上圖描述了采用ECAA規(guī)則進(jìn)行異常處理的工作流參考模型。由“工作流定義工具”定義的活動和這些活動所依賴或控制的數(shù)據(jù)存儲在工作流數(shù)據(jù)庫中;工作流引擎執(zhí)行工作流定義限制范圍內(nèi)的活動,該活動由人員通過“人員交互代理”產(chǎn)生或由應(yīng)用程序通過“應(yīng)用程序代理”產(chǎn)生;代理機(jī)構(gòu)監(jiān)視活動執(zhí)行,必要時向工作流引擎提交活動執(zhí)行的狀態(tài);當(dāng)代理檢測到有異常情況發(fā)生時就會向工作流引擎報告,工作流引擎與異常處理機(jī)構(gòu)進(jìn)行交互,根據(jù)異常處理機(jī)構(gòu)反饋的信息決定該異常的處理方式。異常處理器由3部分組成:異常案例庫、動態(tài)檢索推理模塊和ECAA規(guī)則判斷異常分類機(jī)制。異常案例庫由處理異常的案例組成,每個案例描述一種特定的異常類型的處理規(guī)則。動態(tài)檢索推理模塊負(fù)責(zé)相似案例的檢索。動態(tài)生成新的案例后把該不可預(yù)測的異常存儲入庫。
四、應(yīng)用舉例
下面用ECAA規(guī)則來模擬異常處理,工作流約束和聲明型異常處理程序都被定義為ECAA規(guī)則,ECAA規(guī)則判斷異常分類機(jī)制通過查看是異常事件的類型來確定異常處理程序。本文中ECAA規(guī)則被表為六元組:(Object,Event,Condition) (Executor,Action1,Action2);表示如果可執(zhí)行對象Object發(fā)生了Event異常事件,如果滿足Condition條件,則執(zhí)行對象Executor就執(zhí)行Action1所聲明的異常處理措施。如果不滿足Condition條件,則執(zhí)行對象Executor就執(zhí)行Action2所聲明的異常處理措施。
以專家門診系統(tǒng)為例,假設(shè),當(dāng)用戶向系統(tǒng)中輸入某種病所表現(xiàn)出的癥狀時,得不到用藥指導(dǎo)記錄,這時系統(tǒng)拋出異常。該異常屬于預(yù)測類的異常,通過判斷異常分類機(jī)制直接去調(diào)用異常案例庫中的異常即可,此時可以從案例庫中得到疑似病例的案例;但是當(dāng)發(fā)生非預(yù)測類的異常時,則要執(zhí)行動態(tài)檢索推理異常模塊,從異常結(jié)構(gòu)中抽象出異常的相關(guān)信息,然后檢索案例庫,找到類似的案例后,分析類似案例的解決辦法,并從中派生出異常的處理方法和新案例,最后把動態(tài)產(chǎn)生新案例存放到案例庫并使用派生的異常處理方法處理異常。在此過程中可以有人工參與,通過人機(jī)交互來處理非預(yù)測類異常。在判斷之前,加上與規(guī)則對應(yīng)的異常事件集,將規(guī)則引入異常流程的定義,并且在異常角色標(biāo)識內(nèi)部引入規(guī)則的編號。
通過對工作流異常和ECAA機(jī)制進(jìn)行了研究,提出了一種應(yīng)用ECAA規(guī)則進(jìn)行工作流異常處理的策略。明顯地提高工作流系統(tǒng)異常處理效率和可適用范圍,縮短處理異常的時間。該方法既適合于可預(yù)測的異常,更側(cè)重于對不可預(yù)測異常的處理。
參考文獻(xiàn):
[1]丁正國 許 煒 李 冰:工作流異常處理技術(shù)和方法[J].計算機(jī)與數(shù)字工程,2005,33(11):22~25
[2]王 遠(yuǎn) 范玉順:工作流系統(tǒng)時間異常處理研究[J].計算機(jī)集成制造系統(tǒng),2007,4(13):807~808
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文