摘要:為了實(shí)現(xiàn)工作流管理功能,必須將業(yè)務(wù)過程從現(xiàn)實(shí)世界中抽象出來,并用一種形式化方法對其進(jìn)行描述#65377;工作流模式是工作流建模的基本構(gòu)造單元#65377;π演算是一種移動(dòng)進(jìn)程代數(shù),可用于對并發(fā)和動(dòng)態(tài)變化的系統(tǒng)進(jìn)行建模#65377;首先提出以π演算作為工作流形式化的基礎(chǔ),然后利用π演算對工作流模式進(jìn)行詳細(xì)的描述#65377;
關(guān)鍵詞:π演算;ECA規(guī)則;工作流模式
中圖分類號:TP311
文獻(xiàn)標(biāo)識碼:A
1引言
π演算(π-calculus)是Robin Milner提出的以進(jìn)程間的移動(dòng)通信為研究重點(diǎn)的并發(fā)理論,它是對CCS (Calculus of Communication System) 的發(fā)展[1,2]#65377;π演算是系統(tǒng)交互行為建模的理論基礎(chǔ),適合描述動(dòng)態(tài)系統(tǒng)#65377;在工作流建模階段使用π演算有助于清楚地描述工作流;而在模型建立后,則可利用π演算來推演系統(tǒng)的行為,同時(shí)驗(yàn)證模型的正確性,如發(fā)現(xiàn)系統(tǒng)行為不完整#65380;死鎖#65380;缺少同步等;另外,π演算作為一種強(qiáng)大和成熟的形式化方法,π演算有支持其正確性驗(yàn)證和相關(guān)應(yīng)用的工具,所以π演算自然地成為工作流過程建模的理想工具,例如,文[3,4] 使用π演算對工作流進(jìn)行了初步的形式化#65377;
工作流模式(workflow patterns)是工作流建模的基本構(gòu)造單元,從控制流的角度系統(tǒng)地描述了過程定義語言需要滿足的業(yè)務(wù)需求,與特定的工作流語言無關(guān)#65377;本文著眼于對工作流過程建模中反復(fù)出現(xiàn)的模式即工作流模式進(jìn)行π演算形式化#65377;
2π演算
在π演算中,進(jìn)程是并發(fā)運(yùn)行實(shí)體的單位,并以名字來統(tǒng)一定義通道名以及在通道中傳送的消息,每個(gè)進(jìn)程都有若干與其他進(jìn)程聯(lián)系的通道, 數(shù)據(jù)結(jié)構(gòu)在這里被封裝為與特定通道相關(guān)的進(jìn)程,外部進(jìn)程通過這些通道來操作相關(guān)結(jié)構(gòu)#65377;其基本計(jì)算實(shí)體為名字和進(jìn)程,進(jìn)程之間的通信是通過傳遞名字來完成#65377; 由于π演算不但可以傳遞CCS 中的變量和值等,還可以傳遞通道名,并且將這幾種實(shí)體都統(tǒng)稱為名字而不再作區(qū)分,這使得π演算具有了建立新通道的能力#65377;
π演算有幾種不同的符號表示[1,2,5,6],下面介紹π演算的基本語法可由以下BNF范式給出:π演算中最簡單的實(shí)體是名字,名字的語法定義是標(biāo)識符#65377;上述
π演算語法定義中,x是單個(gè)名字,與x互為對偶名字(Co-names),進(jìn)程通過對偶名字進(jìn)行交互#65377;P是π演算中另一實(shí)體進(jìn)程的語法定義,而M是π演算中“和“(summations)的語法定義,用以表達(dá)選擇關(guān)系#65377;π的語法給出進(jìn)程能夠執(zhí)行的四種動(dòng)作,稱為前綴#65377;進(jìn)程通過執(zhí)行這些動(dòng)作而進(jìn)行演化#65377;π演算形式化π演算語法的形式語義運(yùn)用約簡關(guān)系和變遷關(guān)系定義,下面運(yùn)用自然語言給出它的直觀定義#65377;
(1)0表示非活動(dòng)進(jìn)程,即不做任何工作的進(jìn)程#65377;
(2)前綴π.P表示具有π表示的單一行為能力,該能力執(zhí)行后,執(zhí)行進(jìn)程P#65377;
輸出前綴
輸入前綴x(z).p表示通過名字x輸入名字,并用輸入的名字替換進(jìn)程P中z, 然后執(zhí)行替換后的進(jìn)程P#65377;
啞前綴τ.P 表示做啞動(dòng)作τ然后執(zhí)行P,一般來說,τ用于表示進(jìn)程外部不可見的內(nèi)部動(dòng)作#65377;匹配前綴[x=y]π.P 表示當(dāng)x 和y 是同一名字時(shí),執(zhí)行π.P,否則不做任何工作#65377;
(3)“和“M1+M2表示選擇執(zhí)行進(jìn)程M1#65380;M2中的一個(gè)#65377;
(4) 組裝P1|P2表示并行執(zhí)行P1和P2 #65377;
(5) 限制vzP表示名字z是P的局部名字,P在名字z上的外部動(dòng)作被禁止,但P通過名字z的內(nèi)部通信是允許的#65377;
(6) 復(fù)制! P表示無限多個(gè)P的組裝#65377;
3π演算形式化工作流模式
3.1工作流模式簡介
為了提供基本的工作流建模并評價(jià)工作流語言的描述能力, W.M.P. van der Aalst等借鑒設(shè)計(jì)模式的思想,對工作流模式[7,8]進(jìn)行了收集和研究#65377;工作流模式指在過程建模中反復(fù)出現(xiàn)的模式,與特定的工作流語言無關(guān)#65377;
工作流模式分為6 類,共包含20個(gè)模式,具體分類如表1所示#65377;
3.2工作流模式的π演算形式化方法
用π演算形式化工作流時(shí),將活動(dòng)模型化為進(jìn)程(process),讓每一個(gè)活動(dòng)對應(yīng)一個(gè)獨(dú)立的進(jìn)程,每一個(gè)進(jìn)程有前置條件和后置條件#65377;進(jìn)程P是進(jìn)程Q的前置條件表示P完成后,Q才能開始;進(jìn)程P是進(jìn)程Q的后置條件表示Q完成后,Q要給P發(fā)送消息#65377;對進(jìn)程定義時(shí)使用事件-條件-動(dòng)作(Event-Condition -Action,簡稱ECA)規(guī)則,ECA規(guī)則#65377;描述了觸發(fā)活動(dòng)的事件和內(nèi)部條件,實(shí)際上也描述了執(zhí)行活動(dòng)的執(zhí)行依賴關(guān)系#65377;ECA規(guī)則中的事件和條件對應(yīng)進(jìn)程的前置條件,事件模型化為π演算中的輸入前綴,條件模型化為π演算中的匹配前綴;ECA規(guī)則中的動(dòng)作分成兩種:分別對應(yīng)進(jìn)程的內(nèi)部動(dòng)作和進(jìn)程的后置條件#65377;顯然,如果一個(gè)進(jìn)程定義時(shí)沒有事件部分(即輸入前綴),則這個(gè)進(jìn)程表示一個(gè)開始活動(dòng);如果一個(gè)進(jìn)程定義時(shí)沒有后置條件,則這個(gè)進(jìn)程表示一個(gè)最后的活動(dòng)#65377;因此,定義一個(gè)基本活動(dòng)可用如下π演算形式:
其中,輸入前綴x對應(yīng)ECA規(guī)則中的事件,匹配前綴[a=b]對應(yīng)ECA規(guī)則中的條件,τ..0對應(yīng)ECA規(guī)則中的動(dòng)作#65377;
下面使用上述方法形式化表1中模式:
順序模式的解決辦法 對這種模式進(jìn)行π演算形式化時(shí),我們把一個(gè)活動(dòng)模型化為進(jìn)程A,另一個(gè)活動(dòng)模型化為進(jìn)程B,進(jìn)程A和進(jìn)程B通過通道b進(jìn)行通信,如圖1#65377;由上文介紹的π演算形式化工作流模式的基本思想,可得到如下的π演算形式化表示:A=τA..0表1工作流模式分類表其中,進(jìn)程B在完成內(nèi)部動(dòng)作τB后,激發(fā)后續(xù)進(jìn)程B′#65377; 圖1順序模式并行分支模式的解決辦法:這種模式進(jìn)行π演算形式化時(shí),我們把一個(gè)活動(dòng)模型化為進(jìn)程A,另外兩個(gè)活動(dòng)模型化為進(jìn)程B和進(jìn)程C,進(jìn)程并行分支為進(jìn)程B和進(jìn)程C,進(jìn)程A和進(jìn)程B通過通道b進(jìn)行通信,進(jìn)程A和進(jìn)程C通過通道c進(jìn)行通信,如圖2#65377;由上文介紹的π演算形式化工作流模式的基本思想,可得到如下的π演算形式化表示:
其中,進(jìn)程B在完成內(nèi)部動(dòng)作τB后,激發(fā)后續(xù)進(jìn)程B′;進(jìn)程C在完成內(nèi)部動(dòng)作τC后,激發(fā)后續(xù)進(jìn)程C′#65377;
并行分支模式同步模式的解決辦法:對這種模式進(jìn)行π演算形式化時(shí),我們把一個(gè)活動(dòng)模型化為進(jìn)程B,另外兩個(gè)活動(dòng)模型化為進(jìn)程C和進(jìn)程D,進(jìn)程B和進(jìn)程C同步為進(jìn)程D,進(jìn)程B和進(jìn)程D通過通道d1進(jìn)行通信,進(jìn)程C和進(jìn)程D通過通道d2進(jìn)行通信,如圖3#65377;由上文介紹的π演算形式化工作流模式的基本思想,可得到如下的π演算形式化表示: 其中,進(jìn)程D在完成內(nèi)部動(dòng)作τD后,激發(fā)后續(xù)進(jìn)程D′#65377;
圖3同步模式互斥模式的解決辦法 類似于并行分支模式的解決辦法,可得到如下的π演算形式化表示:簡單匯聚模式的解決辦法 類似于同步模式的解決辦法,可得到如下的π演算形式化表示:關(guān)于其它模式的π演算形式化可類似得到,由于篇幅原因,不再贅述#65377;
4總結(jié)
本文利用π演算對工作流模式進(jìn)行了詳細(xì)的描述,這種方法是完全形式化的,具有較強(qiáng)的語義表達(dá)能力#65377;基于工作流模式分析是從控制流的角度出發(fā),所以本文的分析結(jié)果也只是說明這種模型描述過程控制流的能力,通過使用數(shù)據(jù)和環(huán)境變量等方式,整個(gè)工作流管理系統(tǒng)能滿足更廣泛的需求#65377;另外需要說明的是,工作流模式所描述的業(yè)務(wù)需求雖然較廣泛和全面#65377;但是,并不能完全涵蓋實(shí)際應(yīng)用的所有場景#65377;
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文。