(燕山大學 信息科學與工程學院, 河北 秦皇島 066004)
摘 要:針對目前工作流管理系統(tǒng)在表達能力和適應性方面存在的問題,在給出三層工作流過程元模型的基礎上,提出了基于擴展UML活動圖的工作流建模方法,擴展了多實例、條件路由和協(xié)調節(jié)點等建模元素,描述了擴展建模元素的定義、路由結構和建模規(guī)則。應用模型實例表明,此方法增強了模型描述能力,在模型適應性和柔性方面具有明顯的優(yōu)勢。
關鍵詞:元模型;統(tǒng)一建模語言;活動圖;工作流建摸;適應性
中圖分類號:TP391 文獻標志碼:A
文章編號:10013695(2009)02058704
Research of workflow modeling based on extended UML activity diagrams
SHEN Limin, SUI Feng, BAI Lian, LI Feng
(College of Information Science Engineering, Yanshan University, Qinhuangdao Hebei 066004, China)
Abstract:In order to solve the problems of poor description ability and adaptation existed in present workflow management system. Firstly,provided the three layers metamodel of workflow processing,put forward a new workflow modeling method based on extended UML activity diagrams.The proposed method extended the traditional activity model and introduced the new modeling elements definition, route configuration and modeling rules, such as multiple instance node, constrain route node and coordinating node. Research results of modeling instance show, the proposed method has significant advantages in enhancing description ability, and improving system flexibility and adaptability.
Key words:metamodel; UML; activity diagrams; workflow modeling; adaptability
根據工作流管理聯盟(WfMC)[1,2]的定義,工作流是一類能夠完全或者部分自動執(zhí)行的經營過程,它根據一系列過程規(guī)則、文檔、信息或任務能夠在不同的執(zhí)行者之間進行傳遞與執(zhí)行。隨著信息技術的蓬勃發(fā)展和市場競爭的日趨激烈,要求企業(yè)管理從運作中分離出來,進行業(yè)務過程重組,進而實現提高企業(yè)業(yè)務能力和經濟效益的目標。這就促使工作流技術受到了越來越多的關注和研究。
工作流模型是對業(yè)務過程的抽象表示,是工作流理論研究和實際應用的基礎。工作流理論研究相對于產品的實現技術和應用速度來說,顯得相對滯后。在工作流建模方式上,沒有形成統(tǒng)一的規(guī)范體系。各種研究或者開發(fā)機構提出各種各樣的工作流過程模型,其中比較典型的模型主要是基于活動圖、PetriNet、語言行為理論(speechaction theory)、基于形式化語言、UML等[3,4]。大多數工作流模型存在柔性定義不足和對環(huán)境的適應性弱等缺點,究其根本原因是無法對業(yè)務流程進行實質性的描述。主要表現在以下幾個方面:
a)缺乏反饋和協(xié)調機制[5]。無法描述復雜的具有市場和人性化協(xié)調策略的業(yè)務邏輯,通常采用如下假設:一個活動在完成之后,其后續(xù)活動必須執(zhí)行,缺乏靈活性。
b)缺乏多實例活動。一次活動的觸發(fā)只能完成一個活動實例的執(zhí)行,不允許多個實例同時執(zhí)行。例如需要一個機構或部門人員都要參與的活動就難以實現。
c)條件路由描述繁瑣。按照六種原語路由結構可實現與或路由,但如果活動有多條輸入邊,恰巧其中多條滿足條件需要同時觸發(fā)下一個活動時,實現比較麻煩,條件越多越繁瑣。
d)模型適應性不強。針對環(huán)境的變化無法靈活地作出調整,只能硬性地修改模型,主要是因為模型描述不具備柔性和缺乏協(xié)調規(guī)則。
1 三層工作流過程元模型
工作流過程元模型應包含活動、轉移、條件、組織結構、應用程序和相關數據等元素。本著“高內聚、低耦合”的原則,研究人員開始把那些本身并不完整、依附于過程模型,且為之提供支持的數據、組織、功能、資源等信息分離出來或加以補充, 從而形成具有相對獨立性的模型。
根據軟件工程的“問題分離”原則,為了靈活地表達復雜的過程功能邏輯并實現變化影響的局部化,進一步把開放式分布系統(tǒng)中隱含在傳統(tǒng)元模型中的非功能行為分離出來,本文中過程元模型分為三層,即過程活動層(process layer,過程模型)、資源層(resource layer,資源模型)和協(xié)調層(coordinator layer,協(xié)調模型),如圖1所示。其中,資源模型包括三個子模型:組織模型、數據模型和轉移模型。之所以將工作流模型劃分層次,是因為這幾個子模型是相互獨立且密切聯系的,它們分別刻畫了工作流中某一個方面。分層結構可以使工作流模型的概念更加清晰,更易于理解,使其開發(fā)的工作流管理系統(tǒng)更具實用性。各個子模型刻畫的主要內容如下:
a)過程模型(process model)。它是整個工作流模型的核心與基礎,主要包括模型中各種類型的節(jié)點及其描述,其他模型均為其提供技術支持。
b)組織模型(organization model)。主要描述活動執(zhí)行實體以及活動執(zhí)行實體之間的層次和隸屬關系。包括組織結構、角色、參與者等信息。
c)轉移模型(transition model)。描述了各個活動之間的執(zhí)行順序和轉移信息。
d)數據模型(data model)。主要刻畫在活動中訪問的數據的類型、結構等特性。數據分為工作流控制數據、工作流相關數據、應用程序數據。
e)協(xié)調模型(coordinator model)。主要負責系統(tǒng)全局的協(xié)同行為和策略的頒發(fā),可用規(guī)則驅動實現體系結構的動態(tài)演化;描述協(xié)調過程活動層與資源層的交互及適應環(huán)境變化的柔性規(guī)則。包括動態(tài)修改機制、規(guī)則調用機制和異常處理機制等。
采用三層過程模型結構設計之后,系統(tǒng)中每個模型的任務將更加簡單、明確,系統(tǒng)的非功能行為如過程層與資源層之間的信息調用、約束關系、協(xié)調層與過程層和資源層規(guī)則調用,能夠真正從系統(tǒng)管理層次獨立出來,更加容易重新配置。本章從概念層面上描述了三層過程模型結構,以下主要對過程模型進行詳細的說明。
2 基于擴展UML[6]活動圖建模方法
2.1 UML和UML活動圖
統(tǒng)一建模語言(UML)是軟件界的一個統(tǒng)一的建模語言, 有豐富的基于面向對象概念的模型元素及其圖形表示元素, 為不同領域的用戶提供了統(tǒng)一的交流標準。其中,UML活動圖[7]是UML用于對系統(tǒng)的動態(tài)行為建模的圖形工具之一。UML活動圖的建模技術思想主要來源于Jim Odell的事件圖、SDL狀態(tài)建模技術和PetriNet技術,適合于描述工作流和并發(fā)處理行為。UML2.0活動圖功能更加強大,提供了擴展機制,其中構造型是在一個已定義的模型元素的基礎上構造的一種新的模型元素。構造型的信息內容和形式與已存在的基本模型元素相同,但是含義和使用不同,構造型用雙尖括號內的文字字符串表示,它可以放在表示基本模型元素的符號的里邊或旁邊。活動圖可以為特殊的構造型創(chuàng)建一個符號,替代了原來的基本模型元素的符號。本章將從UML活動圖的基本建模元素、擴展元素、路由結構、建模規(guī)則等幾個方面來介紹。
2.2 UML活動圖建模基本元素
UML活動圖本身反映了傳統(tǒng)的流程圖,其具備最基本的流程建模元素(圖2)。本文給出基本元素的定義和描述。
a)活動(activity):是活動圖的核心,表示執(zhí)行某項任務的狀態(tài)。業(yè)務過程都是由一系列相關的活動組成。
b)動作流(active flow):也稱控制流或轉移,用一個表達式e[g]描述,e為事件表達式,[g]為布爾型數據,表示守衛(wèi)條件。
c)泳道(swimlane):將活動圖的邏輯描述與順序圖、合作圖的責任描述結合起來。泳道用矩形框來表示,屬于某個泳道的活動放在矩形框內,將對象名放在矩形框的頂部,表示泳道中的活動由該對象負責。
d)對象流(object flow):可將對象放在活動圖中,用依賴關系將對象的產生、破壞或修改該對象的活動連接起來,代表對象在控制流中的參與,用虛線箭頭表示對象與活動間的關系。
e)控制節(jié)點(control node):即能夠表達順序流程控制,也能表達并發(fā)流程控制和分叉流程控制。
2.3 定義擴展元素
UML活動圖具有很強的形式化描述能力、表達能力豐富等優(yōu)點。但是建模元素類型有限,面對復雜的外界環(huán)境, UML活動圖基本元素不足以充分地描述業(yè)務流程。本文根據UML活動圖的構造型擴展功能,給出了構造型的聲明和使用,如圖3所示。
本節(jié)給出了基于UML活動圖的工作流建模方法中的六種擴展元素。
a)人工活動:表示需要人員參與的活動;
b)自動活動:表示自動執(zhí)行的活動,可以執(zhí)行過程定義中的被調應用,如應用程序或Web服務等;
c)子流程:描述一個獨立的流程,可以作為完整流程中的一個獨立的活動;
d)條件路由:是指提供多選對一、一對多選和多對多的路由節(jié)點;
e)協(xié)調活動:是指應對環(huán)境變化,來提高模型柔性引入的,可以在執(zhí)行過程中動態(tài)地操作,來滿足環(huán)境的變化需要;
f)工作項:用來描述過程執(zhí)行中需要用戶交互的信息,并記錄了流程執(zhí)行過程中的處理結果等,工作項對用戶可以有選擇的可見;
g)等待活動:可適應市場運作的特殊情況,需要時間或條件事件的觸發(fā)來使能下一個活動,對節(jié)點的執(zhí)行具有協(xié)調功能;
h)多實例:實現一次活動的觸發(fā)能夠完成多個活動實例的執(zhí)行,提高系統(tǒng)的描述能力和協(xié)調機制。
擴展元素的定義涉及了構造型、基類和父類等信息,如表1所示。
表1 工作流過程模型擴展元素
構造型基類父類構造型基類父類
人工活動對象活動節(jié)點協(xié)調活動對象活動節(jié)點
自動活動對象活動節(jié)點工作項對象N/A
子流程對象N/A 等待活動對象活動節(jié)點
條件路由偽狀態(tài)與/或路由 多實例對象N/A
本文擴展了如圖4所示的幾種模型元素。
2.4 活動圖的形式化定義
定義1 節(jié)點定義為集合node={BN,AN,RN}。其中:BN表示端節(jié)點集合,包括開始節(jié)點和結束節(jié)點兩個元素;AN表示活動集合,包括人工活動(MA)、自動活動(AA)、協(xié)調活動(CA)、等待活動(WA)和子流程(SF);RN表示路由節(jié)點,包括順序結構、與連接、與選擇、或連接、或選擇、循環(huán)結構和條件路由(Con_Rou)。
定義2 事件定義為集合event={{ME},{TE},{CE},{EE}}。其中:event可以為空;event集合分為以下子集:ME(消息事件):指外部環(huán)境發(fā)送給系統(tǒng),能夠影響工作流實例路由消息的到來所觸發(fā)的事件;TE(時間事件),指在定義好的某個絕對或相對時刻由系統(tǒng)內部事件管理器所觸發(fā)的事件;CE(條件事件),為工作流運行過程中,轉移模型所依據有向邊的條件表達式觸發(fā)的事件;EE(異常事件),指系統(tǒng)中出現可預測或不可預測的錯誤產生的事件。
定義3 活動圖邊上的條件表達式定義為集合condition,永真條件用true表示,1表示條件不成立。
定義4 活動圖中的邊定義為edge={startNode×event×condition×endNode}。其中:“×”為笛卡爾積;startNode、event、condition、endNode為四個集合元素。StartNode∪endNodenode,source(edge)= startNodenode為邊的源節(jié)點集合;target(edge)=endNodenode為邊的目的節(jié)點集合;event(edge)event表示邊上的事件;condition(edge)condition表示邊上由邏輯和數學運算符組成的表達式。
定義5 工作項定義為workItem={flow,node,otems}。其中:flow為工作流名稱;node為節(jié)點實例;items為工作項集合。
定義6 活動圖(activity diagram)定義為元組:AD={state,node,edge,event,condition,workItem}。其中子集合定義已經給出。
定義7 流程狀態(tài)定義為flowState={initiated,executing,suspended,active,terminated,completed}。其中各個元素分別表示初始化、執(zhí)行、掛起、激活、中斷、完成。流程狀態(tài)結構如圖5所示。
定義8 活動實例狀態(tài)定義為nodeState={initiated,active,suspended,completed}。其中各個元素分別表示初始化、激活、掛起、完成。活動實例狀態(tài)結構如圖6所示。
2.5 路由結構
本文在WfMC定義的四種基本路由結構的基礎上,擴展了條件路由結構。具體結構如圖7所示。
a)順序結構:串行結構定義了按固定順序串行執(zhí)行的活動,B必須在A執(zhí)行完成后執(zhí)行,而C必須在B完成后執(zhí)行,表示的是活動間的因果關系。
b)循環(huán)結構:當活動A完成后,根據判斷條件[g]和[h]進行不同的路由,當條件[h]成立時,活動A回到活動狀態(tài)重新執(zhí)行。
c)并行結構:包括兩種并行結構,分別為與分支和與連接。與分支(and_split):在條件成立時,所有分支活動同時被觸發(fā);與連接(and_join):所有經過與連接路由到來的活動都完成后轉移下一狀態(tài),與連接通常用來表示同步。
d)選擇結構:包括兩種選擇結構,分別為或分支(or_split)和或連接(or_join)。條件選擇結構,邊上的條件哪條先成立則路由首選哪條。
e)條件路由:本文考慮到了利用原語路由來實現多對多路由的困難,引入了條件路由,即有多個輸入邊和輸出邊,且每條輸入邊和輸出邊的條件都必須經過判斷,實現多對多條件選擇。
2.6 建模規(guī)則
以下規(guī)則針對一個有效的工作流活動圖AD={node,edge,event,condition,workItem},建模規(guī)則是驗證工作流模型最基本的約束條件和格式規(guī)范,保障了模型的正確性和邏輯性。
2.6.1 針對節(jié)點的要求(前提條件為n∈node)
a)具有惟一的開始節(jié)點和結束節(jié)點,即滿足(type(n))==initial)sum(n)==1或(type(n))==end)sum(n)==1。其中:type(node)表示節(jié)點類型;sum(node)表示節(jié)點的總數。
b)不存在孤立節(jié)點,即滿足!(In(n)==0∧Out(n)==0)。其中in(node)和out(node)分別計算節(jié)點入度和出度。
c)與/或分支節(jié)點只有一個輸入邊和多個輸出邊;與/或連接節(jié)點只有一個輸出邊和多個輸入邊;條件路由節(jié)點存在多個輸入邊和輸出邊,即滿足:(type(n))==and_split∨
(type(n))==or_split)
(in(n))==1∧out(n)≥2;
(type(n))==and_join∨
(type(n))==or_join)
(in(n))≥2∧out(n)==1;
(type(n))==con_rou)
(in(n))≥1∧out(n)≥1∧
(in(n))≠1∧out(n)≠1。
d)開始節(jié)點沒有輸入邊且結束節(jié)點沒有輸出邊,即滿足(type(n)==inital)in(n)==0;(type(n)==end)out(n)==0。
e)不能存在死循環(huán),即滿足source(b)==n∧target(a)==na≠b。其中a和b分別為節(jié)點n的輸入和輸出邊。
2.6.2 針對有向邊的規(guī)則
a)開始節(jié)點的輸出邊和結束節(jié)點的輸入邊不能有事件e,而且其守衛(wèi)條件為true。這樣保證了工作流開始執(zhí)行就可以進入具體過程,即滿足
(e∈edge)∧(source(e)==initial)(event(e))==1)∧(condition(e))==true);(e∈edge)∧(target(e)==end)(event(e))==1)∧(condition(e))==true)
其中source(e)和target(e)表示邊e的源節(jié)點和目的節(jié)點。
b)人工、自動和協(xié)調節(jié)點的輸出邊不存在事件,表示活動狀態(tài)的節(jié)點不會被其他事件中斷執(zhí)行,即滿足
(e∈edge)∧(source(e)∈{MN,AN,CN})
(event(e))==1)
c)等待活動的輸入邊必須等待事件的觸發(fā)來執(zhí)行下一步,即滿足
(e∈edge)∧(source(e)∈{WN})(event(e))≠Null)
d)與分支節(jié)點的所有輸出邊不存在事件且守衛(wèi)條件均為True,即滿足
({e1,e2,…,ei,…,en}edge∧i∈{1,2,…,n}∧
{source(ei)∈and_split}
{event(ei)==1}∧
(ni=1condition(ei)==True)
與連接同與分支類似。
e)或分支節(jié)點的所有輸出邊必須有事件且守衛(wèi)條件的析取為true,即滿足
({e1,e2,…,ei,…,en}edge∧i∈{1,2,…,n}∧
{source(ei)∈or_split}
{event(ei)≠1}∧
(ni=1condition(ei)==true)
或連接同或分支類似。
f)條件路由的所有輸入或輸出邊必須有事件且輸入或輸出邊的守衛(wèi)條件的析取均為true,即滿足
({e1,e2,…,ei,…,en}edge∧i∈{1,2,…,n}∧
{source(ei)∈con_rou}∨
{target(ei)∈con_rou}
(event(ei)≠1}∧(ni=1condition(ei)==true)
3 實例應用
以上對基于擴展UML活動圖的工作流建模方法進行了介紹,圖8給出了實際項目中計量標準器具考核工作流模型。該模型主要活動包括申請、受理、資料審核、制定審核標準、專家審核、綜合審核、發(fā)放證書。
通過對圖8工作流模型的分析和傳統(tǒng)基于UML的工作流模型的比較,得出本文提出的工作流建模方法具有以下特性:
a)描述能力得到增強。本文擴展了條件路由、多實例、等待活動和工作項等節(jié)點,提高了對業(yè)務過程的描述能力,而且易于理解。如例子中用到多實例,如果需要多個專家進行審核時,不必每個人都要用一個活動來描述,可以根據多實例中描述的參與者個數,自動地執(zhí)行多個活動實例,傳統(tǒng)模型在這方面描述困難,實例數量越多效果越明顯;條件路由本例中沒有涉及,它同樣可以簡化模型的設計;工作項雖然在圖中沒有體現出來,但是它存在于流程開始到結束整個過程,存在于每一個活動的執(zhí)行過程中,例如描述了考核的內容和審核結果等信息,為每一個節(jié)點提供了必要的參考和依據。另外,等待活動的引入使得模型可以描述復雜的具有市場和人性化協(xié)調策略的業(yè)務邏輯。
b)具有一定的動態(tài)修改能力。一方面利用三層模型中的協(xié)調模型來實現異常處理機制、條件事件處理機制(如超時處理)和反饋與協(xié)調機制;另一方面利用協(xié)調活動進行動態(tài)處理,如例子中用虛線連接的活動,對其本身來說,可以是人工活動、自動活動、子流程和多實例中任意一個。根據實際業(yè)務情況添加適合自己的活動類型并且設置有關的協(xié)調規(guī)則,如數據的來源與輸出等。
c)簡化了建模過程。條件路由、多實例、工作項和協(xié)調活動的引入,簡化了建模步驟,增強了模型的可讀性和形式化,更適應業(yè)務過程邏輯。
d)模型具有一定的適應性和柔性。適應性表現在通過協(xié)調層動態(tài)地調用模型中的動態(tài)數據。例如,需要動態(tài)地修改“節(jié)點5”資料審核的時間,可以通過協(xié)調層對該活動進行動態(tài)的修改;柔性表現在建模系統(tǒng)的復用性,引入了擴展的建模元素、工作項的自定義、條件的動態(tài)設定,提高了模型的柔性。
4 結束語
本文根據傳統(tǒng)的工作流建模方法存在的適應性、柔性和描述能力不強等問題,給出了三層工作流過程元模型,在此基礎上提出了基于擴展UML活動圖的工作流建模方法,引入了協(xié)調模型,擴展了新的建模元素。通過對計量標準器具考核工作流模型的分析表明,本文提出的建模方法在建模能力、動態(tài)修改性和適應性方面具有優(yōu)勢,建立在該模型的基礎上,實現工作流管理系統(tǒng)具有一定的應用前景。該模型也存在不足,接下來的工作就是要完善三層工作流過程模型,使基于擴展UML活動圖的工作流建模方法充分發(fā)揮它的優(yōu)勢。
參考文獻:
[1]
WfMC.WfMC TC 1011,The workflow reference model[S]. 1999.
[2]WfMC.WfMC TC1016P,Interface1:process definition interchange process model[S].1999.
[3]RUMBAUGH J,JACOBSON I,BOOCH G.UML參考手冊[M].姚淑珍,唐發(fā)根,譯.北京:機械工業(yè)出版社,2001.
[4]汪文元,沙基昌,譚東風.基于Petri網和UML活動圖工作流建模比較[J].系統(tǒng)仿真學報,2006, 18(2):504507,510.
[5]范玉順,吳澄.一種提高系統(tǒng)柔性的工作流建模方法研究[J]. 軟件學報,2002,13(4):833839.
[6]KO E J,LEE S Y,NOH H M,et al.Workflow modeling based on extended activity diagram using ASM semantics[M].Berlin:Springer,2005:945953.
[7]CALINADRIAN C, LIVIUONORIU M, NICOLAE G,et al.Business process management with unified modeling language[J].WSEAS Trans on Computers,2007,6(2):361366.