鄭云翔,鄭天翔
(1.華南師范大學(xué)教育 信息技術(shù)學(xué)院,廣東 廣州 510631;2.暨南大學(xué) 深圳旅游學(xué)院,廣東 深圳 518053)
工作流是由計(jì)算機(jī)支持或自動(dòng)處理的全部或者部分業(yè)務(wù)過程,其中,文檔、信息或任務(wù)根據(jù)一系列程序規(guī)則在不同的參與者之間傳遞與執(zhí)行[1]。工作流模型是對(duì)業(yè)務(wù)過程的抽象表示,其最大的優(yōu)點(diǎn)是將業(yè)務(wù)邏輯和過程邏輯分離開來,因此可以在不修改具體功能實(shí)現(xiàn)的情況下,通過修改過程模型來改變系統(tǒng)功能,完成對(duì)生產(chǎn)經(jīng)營(yíng)部分過程或全部過程的集成管理,有效地把人、信息和應(yīng)用工具合理地組織在一起。在工作流參考模型中,工作流引擎是工作流管理系統(tǒng)的核心,它為工作流實(shí)例提供運(yùn)行時(shí)的執(zhí)行環(huán)境。從技術(shù)角度來說,對(duì)工作流引擎的設(shè)計(jì)是工作流建模技術(shù)的關(guān)鍵。當(dāng)前,對(duì)工作流建模的研究取得了很多研究成果,因此出現(xiàn)了不少工作流產(chǎn)品,這些產(chǎn)品主要以通信、文檔或過程為中心[2]。隨著企業(yè)對(duì)工作流技術(shù)的需求日益增加,未來產(chǎn)品的規(guī)模和功能趨向于大型化、復(fù)雜化發(fā)展,在不同程度上集成了各種外部開發(fā)工具。但是,具有工作流特征的應(yīng)用形態(tài)千變?nèi)f化,很難在工作流系統(tǒng)中對(duì)不同的應(yīng)用(包括應(yīng)用數(shù)據(jù))進(jìn)行統(tǒng)一地表示,利用這種所謂靈活的工作流系統(tǒng)開發(fā)出來的應(yīng)用系統(tǒng)在實(shí)際運(yùn)作過程中反而表現(xiàn)不靈活[3]。另外,應(yīng)用系統(tǒng)的可靠性、可擴(kuò)展性、實(shí)用性等方面也不能完全滿足企業(yè)實(shí)際應(yīng)用的需求。本文在工作流管理聯(lián)盟所提出的工作流規(guī)范上進(jìn)行了剪裁,提出了一個(gè)基于有限狀態(tài)機(jī)和元層次軟件結(jié)構(gòu)的工作流模型,由于其敏捷[4]、快速、有效、靈活、簡(jiǎn)單和適應(yīng)變化的特性,稱之為敏捷工作流模型(AWM)。AWM表示了一個(gè)特定環(huán)境所采取的解決方案,因此它可以抽象成為一種敏捷工作流模式(AWP)。
工作流模式(Workflow Pattern)是近年來許多組織、機(jī)構(gòu)、學(xué)者研究的熱點(diǎn),其中一些主要的研究成果如下:工作流模式是在一個(gè)指定的非任意的上下文中不斷重現(xiàn)的具體形式的抽象[5]。從該文所討論的內(nèi)容可知,他們的模式應(yīng)稱為工作流業(yè)務(wù)過程流程模式更為合適。文獻(xiàn)[6]對(duì)工作流模式又有不同的定義,Meszaros等學(xué)者將工作流模式分為三個(gè)主要部分:需求、結(jié)構(gòu)和實(shí)現(xiàn)。本文稱這種模式為工作流綜合模式。Lee等學(xué)者提出一種分布式工作流模式的具體細(xì)節(jié)[7]。顯然,單個(gè)模式不能完成一個(gè)完整的軟件體系結(jié)構(gòu)的詳細(xì)構(gòu)造——它僅僅用于設(shè)計(jì)應(yīng)用程序的某個(gè)方面。為了達(dá)到軟件體系結(jié)構(gòu)的需求,需要一套豐富的涵蓋各個(gè)設(shè)計(jì)面的模式,并且在適當(dāng)?shù)臅r(shí)候結(jié)合運(yùn)用各個(gè)層次的不同模式來滿足設(shè)計(jì)開發(fā)的需求。本文所討論的敏捷工作流模式正是一個(gè)模式系統(tǒng),對(duì)應(yīng)的是文獻(xiàn)[6]中的結(jié)構(gòu)和實(shí)現(xiàn)部分的軟件系統(tǒng)方面,是快速構(gòu)造柔性工作流系統(tǒng)的基線。
采用自適應(yīng)的軟件結(jié)構(gòu)——元層次體系結(jié)構(gòu)模式,該體系結(jié)構(gòu)為動(dòng)態(tài)改變軟件系統(tǒng)的結(jié)構(gòu)和行為提供了一種對(duì)用戶透明的機(jī)制。在這種模式中,應(yīng)用程序可分成兩部分:一個(gè)元層次提供所選系統(tǒng)屬性的相關(guān)信息并使軟件含自描述信息;一個(gè)基本層次包括應(yīng)用程序邏輯。它的實(shí)現(xiàn)建立在元層次之上,改變保存在元層次上的信息會(huì)影響其后的基本層次的行為。因而該模式為系統(tǒng)的柔性和功能演變提供了一種實(shí)現(xiàn)的途徑。
工作流的元層次軟件體系結(jié)構(gòu)(BL,ML,MOP),其中:BL由構(gòu)件所組成,稱為基本層次集,該層次模擬并實(shí)現(xiàn)了應(yīng)用程序邏輯,其包含的構(gòu)件表示了系統(tǒng)提供的服務(wù)以及下面的數(shù)據(jù)模型。ML由一組元對(duì)象所組成,稱為元層次集,它提供了一個(gè)軟件的自表示并且給出軟件的自身結(jié)構(gòu)和行為的知識(shí)。元對(duì)象的知識(shí)來源于以下3點(diǎn):1)系統(tǒng)運(yùn)行期間提供的;2)根據(jù)用戶定義的模型;3)運(yùn)行期間基本層次檢索到的。其中描述系統(tǒng)靜態(tài)信息的元對(duì)象集稱為結(jié)構(gòu)元對(duì)象集,描述系統(tǒng)整體策略的元對(duì)象集稱為行為元對(duì)象集。MOP是元對(duì)象協(xié)議,作為元層次的外部接口,并使系統(tǒng)的實(shí)現(xiàn)以一種已定義的方式來獲得,其為描述對(duì)元層次的變更提供一個(gè)接口,執(zhí)行已描述的變更。MOP被設(shè)計(jì)成一組獨(dú)立的構(gòu)件,這些構(gòu)件稱為元層次體系結(jié)構(gòu)的解析器(MI)。于是得出敏捷工作流的體系結(jié)構(gòu),如圖1所示。
文獻(xiàn)[8]提出一種基于知識(shí)的工作流系統(tǒng)模型,并使用框架來作為模型的描述形式。這種方法將工作流視為一組基于知識(shí)表示模式的業(yè)務(wù)規(guī)則集,通過激活相應(yīng)的規(guī)則來實(shí)現(xiàn)工作流的控制。文獻(xiàn)[9]提出一種基于“事件化狀態(tài)遷移圖”(SNE)的工作流模型,并以數(shù)據(jù)項(xiàng)集合來描述工作流模型的知識(shí),體現(xiàn)了以數(shù)據(jù)流動(dòng)為核心的工作流思想。本文采用有限狀態(tài)機(jī)理論描述工作流模型,并參照文獻(xiàn)[3]把工作流引擎的結(jié)構(gòu)分成3個(gè)部分,分別是組織機(jī)構(gòu)模型、信息模型和過程控制模型,其中前兩者合稱工作流引擎的數(shù)據(jù)模型。
1.2.1 數(shù)據(jù)模型
圖2給出了敏捷工作流引擎數(shù)據(jù)模型結(jié)構(gòu)圖,其中信息模型由狀態(tài)機(jī)的主要元素刻畫,具體地說:1)FSM是描述有限狀態(tài)機(jī)的類;2)State是描述有限狀態(tài)機(jī)狀態(tài)的類;3)Transition是描述有限狀態(tài)機(jī)轉(zhuǎn)換的類;4)Action描述有限狀態(tài)機(jī)的動(dòng)作;5)Parameter是描述有限狀態(tài)機(jī)動(dòng)作的參數(shù)的類;6)Guard是描述有限狀態(tài)機(jī)狀態(tài)轉(zhuǎn)換的監(jiān)護(hù)條件;7)Event是描述觸發(fā)轉(zhuǎn)換的事件的類。組織機(jī)構(gòu)模型由以下元素刻畫:1)Department、Team是描述組織機(jī)構(gòu)模型中的部門和團(tuán)隊(duì)信息的類;2)User是描述人員(用戶)個(gè)體信息的類;3)Role是描述角色的類,可以進(jìn)行權(quán)限控制,這擴(kuò)展了工作流系統(tǒng)進(jìn)行任務(wù)指派、權(quán)限分配的能力。
1.2.2 過程控制模型
過程控制模型將信息模型和組織機(jī)構(gòu)模型有機(jī)地結(jié)合起來,負(fù)責(zé)完成工作流實(shí)例的流轉(zhuǎn)、控制和協(xié)調(diào)。它基于有限狀態(tài)機(jī)理論,是對(duì)完整狀態(tài)機(jī)模型的剪裁,并參考了工作流管理聯(lián)盟給出的通用框架(參考模型)。在狀態(tài)機(jī)的向前推進(jìn)過程中,引擎接收從外部接口發(fā)送過來的請(qǐng)求,負(fù)責(zé)相關(guān)規(guī)則依賴的檢查,根據(jù)狀態(tài)圖進(jìn)行狀態(tài)推導(dǎo),維護(hù)各種控制數(shù)據(jù),處理任務(wù)的指派和調(diào)度,并根據(jù)需要調(diào)用各種應(yīng)用程序接口與用戶、事件處理模塊等交互。在實(shí)際應(yīng)用中,可以動(dòng)態(tài)地創(chuàng)建多個(gè)工作流引擎(工作流機(jī)),并發(fā)地執(zhí)行不同的工作流實(shí)例。模型需要提供相關(guān)機(jī)制(如特殊的協(xié)議、信息轉(zhuǎn)換格式、WAPI網(wǎng)關(guān)等)來同步工作流引擎的操作、過程交換和活動(dòng)控制信息,在引擎之間傳遞相關(guān)數(shù)據(jù)等。因此,過程控制模型是描述模式的核心部分,可以看作通用模型中的工作流執(zhí)行服務(wù)器[10]。
使用有限狀態(tài)機(jī)作為模型的描述模式,其好處是顯然的:1)有限狀態(tài)機(jī)的執(zhí)行過程是業(yè)務(wù)流程的抽象,它用一種形式化方法較精確的描述了軟件系統(tǒng)的業(yè)務(wù)邏輯,即可工程化部分,把數(shù)據(jù)和程序、說明性邏輯和過程性邏輯分離;2)狀態(tài)機(jī)用于對(duì)系統(tǒng)的動(dòng)態(tài)方面建模,以狀態(tài)機(jī)為工作流的核心部件,使得具體業(yè)務(wù)邏輯可以以組件的形式被調(diào)度,其調(diào)度策略可以顯式的進(jìn)行配置,其效果是,業(yè)務(wù)邏輯具有“plug and play”(即插即用)的特征。因此這種描述形式可以實(shí)現(xiàn)業(yè)務(wù)流程的可配置,從而提高工作流模型描述能力和柔性;3)狀態(tài)推導(dǎo)引擎既可作為動(dòng)作引擎中間件,也可作為用戶界面智能導(dǎo)航、流程控制中間件。
本文提出的敏捷工作流引擎使用有限狀態(tài)機(jī)進(jìn)行描述,對(duì)有限狀態(tài)機(jī)的表示模式的研究,大致經(jīng)歷了以下幾個(gè)階段[11]:1)用鄰接矩陣來描述,并以此完成了一個(gè)電話呼叫中心的項(xiàng)目。雖然鄰接矩陣用高級(jí)語言編寫比較方便,但這種方法描述的狀態(tài)機(jī)不直觀、難以閱讀,而且擴(kuò)展性差;2)用邏輯更新語言來描述,但這種方法的描述能力和推導(dǎo)能力有限;3)用可擴(kuò)展標(biāo)記語言XML來描述,即本文提出的表示模式。這種表示模式最大的好處就是統(tǒng)一了描述語言,同時(shí)具有可擴(kuò)展性。使得各種不同的軟件之間可以方便進(jìn)行數(shù)據(jù)讀取和數(shù)據(jù)交換,大大提高了各種軟件之間的無縫集成。
元層次和基本層次之間主要考慮了兩方面的映像,結(jié)構(gòu)映像和行為映像。這兩種映像都通過元解析器 (Meta Interpreter)實(shí)現(xiàn)由結(jié)構(gòu)元對(duì)象和行為元對(duì)象到基對(duì)象的映射。由圖3可見,為了操縱系統(tǒng)的信息(結(jié)構(gòu)信息和行為信息),系統(tǒng)的元實(shí)體僅需要與元解析器進(jìn)行交互,同時(shí),元實(shí)體通過元解析器獲取基本層次的結(jié)構(gòu)、狀態(tài)和行為。
在系統(tǒng)運(yùn)行時(shí),元解析器作為事件的調(diào)配者(Event Dispatcher),根據(jù)系統(tǒng)的結(jié)構(gòu)信息和行為信息觸發(fā)構(gòu)件連接器的交互事件,構(gòu)件連接器響應(yīng)交換事件并遞歸的觸發(fā)構(gòu)件對(duì)應(yīng)的構(gòu)件端口事件從而使構(gòu)件相互協(xié)作完成系統(tǒng)的業(yè)務(wù)邏輯。同時(shí),為了實(shí)現(xiàn)這種透明的元層次到基本層次的映像,元解析器根據(jù)元對(duì)象所提供的系統(tǒng)抽象信息進(jìn)行解析,利用元程序設(shè)計(jì)方法動(dòng)態(tài)地在構(gòu)件中織入代碼的同時(shí)生成相應(yīng)的構(gòu)件連接器,實(shí)現(xiàn)構(gòu)件之間交互和協(xié)作。
結(jié)構(gòu)元對(duì)象通過元解析器具體化系統(tǒng)的結(jié)構(gòu),而不直接與系統(tǒng)的組件和連接器發(fā)生交互。同時(shí)結(jié)構(gòu)元實(shí)體通過元解析器隨時(shí)了解系統(tǒng)結(jié)構(gòu)信息的變化。此時(shí),元解析器完成3個(gè)工作:1)創(chuàng)建新的類型和實(shí)體;2)根據(jù)現(xiàn)有類型創(chuàng)造實(shí)體;3)析構(gòu)實(shí)體。分別定義如下:Define{Component|Connector},Instantiate {Component|Connector},Destroy {Component|Connector|Attachment}。
系統(tǒng)的行為元對(duì)象同時(shí)與元解析器進(jìn)行交互,其目的是在觀察系統(tǒng)行為的同時(shí)對(duì)系統(tǒng)的行為進(jìn)行必要的修改。具體化系統(tǒng)行為必須完成2個(gè)方面:1)獲得有限狀態(tài)機(jī)的知識(shí);2)通過元解析器獲取系統(tǒng)狀態(tài)。元對(duì)象具有規(guī)則的知識(shí)并可以通過元解析器的getstate原語(或類似的機(jī)制)實(shí)現(xiàn)。例如:當(dāng)規(guī)則觸發(fā),但其后置條件沒滿足 (某構(gòu)件沒滿足某種條件),通過元對(duì)象協(xié)議可以獲得這種信息反饋給行為元實(shí)體。而行為元對(duì)象選擇適當(dāng)?shù)牟呗?。由于系統(tǒng)的行為由有限狀態(tài)機(jī)模型所指導(dǎo),因此修改系統(tǒng)的行為意味修改系統(tǒng)的有限狀態(tài)機(jī)模型。同時(shí)有限狀態(tài)機(jī)的轉(zhuǎn)換描述為規(guī)則觸發(fā)后的狀態(tài)遷移,修改系統(tǒng)的行為意味要修改這些描述信息。定義了以下的操作原語:1)Config:根據(jù)有限狀態(tài)機(jī)配置策略;2)ConfigFSMStates:實(shí)例化和初始化具體的狀態(tài)集合;3)ConfigFSMTransitions:實(shí)例化和初始化具體的轉(zhuǎn)換集合;4)ConfigFSMState:實(shí)例化和初始化具體的某個(gè)狀態(tài);5)ConfigTransition:實(shí)例化和初始化具體的某個(gè)轉(zhuǎn)換。
本文所討論的敏捷工作流模式在廣東省長(zhǎng)途電信資源管理系統(tǒng)(二期)的軟件開發(fā)實(shí)踐中得到了應(yīng)用。這是一個(gè)資源調(diào)度子系統(tǒng),作為廣東省長(zhǎng)途資源管理系統(tǒng)的一個(gè)組成部分,其基本流程主要包括3個(gè):電路調(diào)度流程,資源確認(rèn)流程和割接調(diào)度流程。通過引入狀態(tài)機(jī)建模,克服了原有系統(tǒng)(一期)工作流程固定不可配置的缺點(diǎn),并且與集團(tuán)公司原有的調(diào)度系統(tǒng)無縫連接,形成完整的閉環(huán)流程。
應(yīng)用效果:1)大大提高系統(tǒng)的柔性和適應(yīng)性:企業(yè)實(shí)際業(yè)務(wù)流程并非固定不變,可能需要增加、刪除或調(diào)整某項(xiàng)任務(wù)。傳統(tǒng)的工程方法是“非預(yù)見性的”,很難適應(yīng)這種變化。本文提出的敏捷工作流模型基于有限狀態(tài)機(jī)理論和自適應(yīng)的軟件結(jié)構(gòu),因此能允許改變自身來適應(yīng)變化,具有較強(qiáng)的適應(yīng)性和靈活性;2)軟件結(jié)構(gòu)的分層更合理,軟件對(duì)象的分解更徹底:基于元層次的體系結(jié)構(gòu),系統(tǒng)的表示層和業(yè)務(wù)邏輯層、業(yè)務(wù)邏輯和過程邏輯分離,通過狀態(tài)推導(dǎo)引擎聯(lián)系。這種體系結(jié)構(gòu)有效地分離了業(yè)務(wù)對(duì)象狀態(tài)的描述性知識(shí)和狀態(tài)動(dòng)作的過程性知識(shí);3)大大增強(qiáng)系統(tǒng)模型的表達(dá)能力:工作流模型基于模式理論,采用了XML的知識(shí)表示方法,并通過建立元層次的體系結(jié)構(gòu),使得模型對(duì)企業(yè)的業(yè)務(wù)流程定義、用戶視圖定制、機(jī)構(gòu)人員管理等能夠進(jìn)行更好的描述。
敏捷工作流模式的研究和應(yīng)用取得了預(yù)期的效果,應(yīng)用實(shí)例表明,有了敏捷工作流模式的支持,該項(xiàng)目整個(gè)開發(fā)過程有機(jī)的分為用戶界面設(shè)計(jì)、業(yè)務(wù)邏輯設(shè)計(jì)和系統(tǒng)配置等幾部分,提高了軟件開發(fā)的效率,使軟件體系結(jié)構(gòu)更為清晰,模塊之間的耦合度低且具有模塊連續(xù)性,達(dá)到敏捷開發(fā)的目的。基于此工作流模式可以快速構(gòu)造出具有工作流特征的大型信息系統(tǒng)。
還需要進(jìn)一步研究和完善這一模型,其中包括:加強(qiáng)狀態(tài)機(jī)模型的推理能力,引入斷言機(jī)制和推理規(guī)則庫(kù);工作流的運(yùn)行是一個(gè)反復(fù)迭代、不斷尋優(yōu)的過程,引入?yún)f(xié)調(diào)、反饋機(jī)制有利于增強(qiáng)工作流的適應(yīng)能力。
[1]Workflow Management Coalition.Workflow management coalition:Terminology&Glossary[R].WFMC TC00-1011.Winchester:Workflow Management Coalition,1999.
[2]范玉順,吳澄.工作流管理技術(shù)研究與產(chǎn)品現(xiàn)狀及發(fā)展趨勢(shì) [J].計(jì)算機(jī)集成制造系統(tǒng),2000,6(1):1-7.
FAN Yu-shun,WU Cheng.Current state and development trends of workflow management research and products[J].Computer Integrated Manufacturing Systems,2000,6(1);1-7.
[3]何清法,李國(guó)杰,焦麗梅,等.基于關(guān)系結(jié)構(gòu)的輕量級(jí)工作流引擎[J].計(jì)算機(jī)研究與發(fā)展,2001,38(2):129-137.
HE Qing-fa,LI Guo-jie,JIAO Li-mei,et al.Relation based lightweight workflow engine[J].Journal of Computer Research and Development,2001,38(2):129-137.
[4]Constantine L L.Process agility and software usability:Toward lightweight usage-centered design[R].Sydney:University of Technology,2001.
[5]AALST W M P V D,HOFSTEDE A H M T,KIEPUSZEWSKI B,et al.Workflow patterns [J].Distributed and Parallel Databases,2003,14(1):5-51.
[6]Meszaros G,Brown K.A Pattern Language for Workflow Systems[R].USA:Washington University,1997.
[7]Lee S I,Han D,Lee D.A pattern for managing distributed workflows[R].USA:Washington University,2000.
[8]舒斌,殷國(guó)富,戈鵬,等.面向敏捷企業(yè)的工作流系統(tǒng)建模方法 [J].計(jì)算機(jī)集成制造系統(tǒng),2002,8(2):105-110.
SHU Bin,YIN Guo-fu,GE Peng,et al.Method of workflow system modeling for agile enterprise[J].Computer Integrated Manufacturing Systems,2002,8(2):105-110.
[9]鄧達(dá)強(qiáng),胡健,呂昱.一種新的工作流模型及其在產(chǎn)品開發(fā)過程中的應(yīng)用[J].系統(tǒng)仿真學(xué)報(bào),2001,13(4):426-429.
DENG Da-qiang,HU Jian,LU Yu.A new model of workflow and its application in the process of product development[J].Acta Simulata Systematica Sinica,2001,13(4):426-429.
[10]Workflow Management Coalition.Workflow reference model[S].WFMC TC00-1003.Winchester:Workflow Management Coalition,1994.
[11]黃倚霄.基于狀態(tài)推導(dǎo)引擎的柔性工作流管理系統(tǒng)模型、模式的研究和應(yīng)用[D].廣州:中山大學(xué),2003.