工作流模型是組織機(jī)構(gòu)經(jīng)營(yíng)過程的模型表示,但由于工作流建模理論研究的相對(duì)滯后,現(xiàn)行工作流管理系統(tǒng)中普通存在語義不夠豐富、柔性不好、表示不直觀等問題。為此在開發(fā)UniFlow工組流管理系統(tǒng)時(shí),設(shè)計(jì)了一套基于有向圖理論的工作流模型,該模型有效的解決了這些問題。主要從工作流模型理論出發(fā)向讀者介紹了本模型的設(shè)計(jì)思想。文章首先詳細(xì)介紹了工作流模型的定義和組成關(guān)系,然后詳細(xì)介紹了基于有向圖理論的工作流模型的主要功能和設(shè)計(jì)思想。
關(guān)鍵詞:工作流 工作流模型 有向圖 過程
1 引言
工作流模型是對(duì)組織機(jī)構(gòu)業(yè)務(wù)過程的抽象表示。工作流模型是整個(gè)工作流管理系統(tǒng)的基礎(chǔ),它的確定性保證了系統(tǒng)內(nèi)各組成部分之間交互的一致性,也決定了一個(gè)工作流管理系統(tǒng)從設(shè)計(jì)開發(fā)到運(yùn)行實(shí)施的諸多環(huán)節(jié)。不同的工作流模型也就形成了不同的工作流管理系統(tǒng)。相對(duì)工作流產(chǎn)品的實(shí)現(xiàn)技術(shù)和發(fā)展而言,工作流建模理論的研究相對(duì)滯后,在建模方法上還沒有形成比較系統(tǒng)化的理論體系。目前已有的建模方法主要有:基于活動(dòng)網(wǎng)絡(luò)的建模方法、基于Petri網(wǎng)的建模方法、基于語言行為理論的建模方法、基于活動(dòng)與狀態(tài)圖的建模方法和基于擴(kuò)展事務(wù)模型的建模方法等。但這些工作流模型普遍都存在以下問題:(1)模型語義不夠豐富,表示復(fù)雜問題的能力不足;(2)模型的柔性不好,不容易處理在執(zhí)行過程中出現(xiàn)的不確定性問題;(3)表示方法不夠直觀等。
在信息管理自動(dòng)化的環(huán)境下,工作流模型必須采用簡(jiǎn)單、直觀、又具有較強(qiáng)描述能力的面向組織用戶的模型。因此,設(shè)計(jì)UniFlow工作流管理系統(tǒng)時(shí),在參照工作流管理聯(lián)盟(Workflow Manangement Coalition 簡(jiǎn)稱:WfMC)工作流理論的基礎(chǔ)上,博采眾長(zhǎng),建立了基于有向圖理論的UniFlow工作流管理系統(tǒng)工作流模型,該模型有效的解決了工作流模型中普通存在的問題。下文主要向讀者詳細(xì)介紹這一模型的相關(guān)理論與設(shè)計(jì)思想。
2 工作流模型概要
企業(yè)、政府機(jī)關(guān)等組織機(jī)構(gòu)是一個(gè)復(fù)雜的系統(tǒng),用過程的觀點(diǎn)來看待這些組織機(jī)構(gòu),組織機(jī)構(gòu)的組成元素就是過程,過程的組成元素就是活動(dòng);工作流模型就是對(duì)這些業(yè)務(wù)過程的抽象表示。
過程是指為了完成組織機(jī)構(gòu)的某個(gè)經(jīng)營(yíng)目標(biāo)或任務(wù),而按某種順序聯(lián)結(jié)在一起的一系列活動(dòng)。過程的主要屬性有:觸發(fā)事件、過程結(jié)果、執(zhí)行規(guī)律集。過程的執(zhí)行規(guī)律集用來描述過程內(nèi)部各活動(dòng)、子過程之間的控制流程。執(zhí)行規(guī)律集由順序、并發(fā)、與、或、循環(huán)等五種連接關(guān)系組成,通過這五種連接可以完整的描述活動(dòng)與活動(dòng)之間的邏輯關(guān)系。
活動(dòng)是指一種變換或操作,是組織機(jī)構(gòu)過程的最基本單元。一個(gè)活動(dòng)的屬性由功能輸入、輸出,資源輸入、輸出、控制輸入、輸出和活動(dòng)的描述等組成。功能輸入、輸出是指活動(dòng)中要運(yùn)作、產(chǎn)生的組織機(jī)構(gòu)對(duì)象,它們描述了組織機(jī)構(gòu)過程的物流,所以通常與上級(jí)過程的執(zhí)行規(guī)律集有緊密聯(lián)系。資源輸入、輸出是指活動(dòng)執(zhí)行所占用、釋放的資源,包括執(zhí)行活動(dòng)所必須的設(shè)備、物料、人員等,它們不僅可以在一定程度上描述不同活動(dòng)之間的競(jìng)爭(zhēng)關(guān)系,還可以用于實(shí)現(xiàn)對(duì)過程的分析和優(yōu)化;控制輸入是指對(duì)活動(dòng)進(jìn)行控制和限制的信息單位或?qū)ο;控制輸出是活?dòng)結(jié)束狀態(tài)的信息單位集合;活動(dòng)描述是與活動(dòng)執(zhí)行有關(guān)的具體信息,如活動(dòng)的編號(hào)、名稱、優(yōu)先級(jí)、成本核算單位、開始時(shí)間、完成期限、執(zhí)行者、負(fù)責(zé)人、所需資源等。
功能輸入、資源輸入、控制輸入統(tǒng)稱為活動(dòng)的前條件,前條件對(duì)活動(dòng)的發(fā)生有制約作用,只有所有的前條件都滿足了,活動(dòng)實(shí)例才能進(jìn)入“活動(dòng)”狀態(tài);功能輸出、資源輸出、控制輸出統(tǒng)稱為活動(dòng)的后條件,后條件影響著后繼活動(dòng)實(shí)例的發(fā)生。
一個(gè)完整的工作流模型主要有工作流表示方法、工作流元模型、工作流模型接口和建模工具組成。
3 工作流模型的有向圖表示
組織機(jī)構(gòu)的一個(gè)完整的業(yè)務(wù)流程是由一系列最基本的生產(chǎn)活動(dòng)按照一定的邏輯順序和規(guī)則組成的,這些生產(chǎn)活動(dòng)與他們之間的邏輯關(guān)系可以直觀的映射成為一個(gè)由節(jié)點(diǎn)和連接弧組成的有向圖。有向圖中的節(jié)點(diǎn)即表示一個(gè)可執(zhí)行的活動(dòng)單元,連接于兩個(gè)節(jié)點(diǎn)之間的有向弧即表示活動(dòng)間的先后順序關(guān)系。
3.1 有向圖理論基礎(chǔ)
對(duì)基于有向圖理論的工作流模型,我們作如下定義
1)有向圖G ={N, L}為一個(gè)二元組,N= {n1、n2、n3….ns } 為節(jié)點(diǎn)集合,L= {l1,l2,l3….ls}為連接弧集合,其中l(wèi)i=(nj, nk)為從nj指向nk的連接弧,nj,nk∈N。
2)對(duì)于任意ni,nj∈N.若有連接弧l = (ni ,nj) ∈L,則ni為nj的一個(gè)前驅(qū)節(jié)點(diǎn),nj為ni的一個(gè)后繼節(jié)點(diǎn),l稱為nj的一個(gè)輸入連接弧,或者ni的一條輸出連接弧。
3)若N’包含于N,且N’={n’|(n’ ,n) ∈L} ,則N’為節(jié)點(diǎn)n的前驅(qū)節(jié)點(diǎn)集,記為Pre (n);
4)若N’包含于N,且N’={n’|(n ,n’) ∈L} ,則N’為節(jié)點(diǎn)n的后繼節(jié)點(diǎn)集,記為Post (n);
5)節(jié)點(diǎn)狀態(tài):對(duì)于任意n∈N,有狀態(tài)函數(shù)State (n) = {0, 1},當(dāng)節(jié)點(diǎn)n處于非執(zhí)行狀態(tài)時(shí),State (n) = 0;當(dāng)節(jié)點(diǎn)n處于執(zhí)行狀態(tài)時(shí)State ( n )=1。初始時(shí)刻,任意State(n) = 0。
6)轉(zhuǎn)移函數(shù):對(duì)于任意l∈L,有轉(zhuǎn)移函數(shù)Trans ( l )={0,1};如果Trans ( l ) = 1,則連接弧l容許發(fā)生轉(zhuǎn)移(是否發(fā)生轉(zhuǎn)移,則要取決于后面的演進(jìn)規(guī)則):如果Trans ( 1 ) = 0,則連接弧不能發(fā)生轉(zhuǎn)移。
7)演進(jìn)規(guī)則:有向圖的演進(jìn)規(guī)則是由節(jié)點(diǎn)狀態(tài)的改變與連接弧發(fā)生轉(zhuǎn)移這兩個(gè)動(dòng)態(tài)因素相互作用而完成的,因此,規(guī)則包含如下兩個(gè)方面:
。1)對(duì)于任意n∈N
● 當(dāng)State(n) =0時(shí),若存在l=(n’,n)發(fā)生轉(zhuǎn)移,則State(n)=1;
● 當(dāng)State(n)=1時(shí),若節(jié)點(diǎn)n執(zhí)行完畢,則State (n)=0;
。2)對(duì)于任意l=(n,n’) ∈L
● 當(dāng)State(n) 從1變?yōu)?時(shí),若Trans(1)=1,則連接弧l發(fā)生轉(zhuǎn)移;
● 若Trans(1)=0,則連接弧l不發(fā)生轉(zhuǎn)移,直至下一次State(n)從1變?yōu)?的時(shí)候再使用此規(guī)則。
3.2 節(jié)點(diǎn)類別
在基于有向圖的工作流模型中有向圖的節(jié)點(diǎn)代表了具有如下特征的多種實(shí)體
1)與業(yè)務(wù)中實(shí)際存在的事件或活動(dòng)有著直接的對(duì)應(yīng)關(guān)系;
2)本身有著具體的或人為定義的含義;
3)能與其他節(jié)點(diǎn)形成一定的邏輯關(guān)系;
因此,區(qū)分不同類別的節(jié)點(diǎn)、對(duì)節(jié)點(diǎn)進(jìn)行具體的類別定義不僅可以明確節(jié)點(diǎn)的含義,同時(shí)也增強(qiáng)了模型的語義。在這里我們賦予節(jié)點(diǎn)有如下幾種類型的定義: 活動(dòng)、子過程、開始、結(jié)束、同步節(jié)點(diǎn)。
3.2.1 活動(dòng)
活動(dòng)是指在一個(gè)不間斷的時(shí)間間隔內(nèi)為實(shí)現(xiàn)某一目標(biāo)由人工或系統(tǒng)自動(dòng)完成的一個(gè)原子任務(wù),它是組成業(yè)務(wù)流程的基本單元。一個(gè)工作流管理系統(tǒng)的所有活動(dòng)的集合覆蓋了組織中各類業(yè)務(wù)流程的全部細(xì)節(jié);顒(dòng)按自動(dòng)化程度可分為兩類:人工型活動(dòng)和自動(dòng)型活動(dòng)。人工型活動(dòng)是通過工作表(任務(wù)表)的生成來通知相關(guān)人員,依靠人員手工或啟動(dòng)應(yīng)用的方式來完成。自動(dòng)型活動(dòng)則是在工作流的驅(qū)動(dòng)下直接驅(qū)動(dòng)應(yīng)用或利用自動(dòng)化設(shè)備來完成的活動(dòng);這種自動(dòng)型活動(dòng)充分體現(xiàn)了工作流管理系統(tǒng)所實(shí)現(xiàn)的組織內(nèi)部不同應(yīng)用間的過程集成。
3.2.2 子過程
作為組成業(yè)務(wù)流程的最基本單元,活動(dòng)是指不能被進(jìn)一步分解的原子單元。但在流程較復(fù)雜時(shí)活動(dòng)結(jié)點(diǎn)數(shù)也必然增加,且關(guān)系復(fù)雜,因此,我們引入了子過程的概念。子過程是一類能夠分解的節(jié)點(diǎn)類型,它的內(nèi)部可以包含所有元素類型,實(shí)質(zhì)上是一個(gè)子業(yè)務(wù)流程。子過程的引入大大增強(qiáng)了模型的表達(dá)能力,使模型具有了層次的概念,并支持自頂向下的建模過程。同時(shí),我們規(guī)定子過程可以出現(xiàn)在任何層次。
3.2.3 開始節(jié)點(diǎn)與結(jié)束節(jié)點(diǎn)
開始節(jié)點(diǎn)和結(jié)束節(jié)點(diǎn)是兩個(gè)標(biāo)志性的節(jié)點(diǎn),用來標(biāo)識(shí)流程的開始和結(jié)束。一個(gè)工作流程具有唯一開始點(diǎn)和結(jié)束點(diǎn)。
3.2.4 同步節(jié)點(diǎn)
在將一個(gè)實(shí)際的業(yè)務(wù)流程映射成為工作流模型時(shí),很重要的一點(diǎn),就是要保證活動(dòng)間的邏輯關(guān)系不變!芭c”和“或”是兩類最基本的邏輯關(guān)系,它是表達(dá)各種復(fù)雜關(guān)系的基礎(chǔ),工作流模型必須具備表達(dá)“與”和“或”關(guān)系的能力。
我們?cè)谇懊娑x的演進(jìn)規(guī)則,對(duì)于任意一個(gè)處于非執(zhí)行狀態(tài)的節(jié)點(diǎn)n,只要有一條輸入連接弧發(fā)生了轉(zhuǎn)移,那么該節(jié)點(diǎn)即可被執(zhí)行,這實(shí)際上就表達(dá)了“或”的關(guān)系。即∪{n’∈Pre(n),l=(n’,n) ∈L,Trans(l)=1且l發(fā)生轉(zhuǎn)移}。
對(duì)于“與”的關(guān)系增加同步節(jié)點(diǎn)S來表示,它對(duì)活動(dòng)起協(xié)調(diào)、同步的作用。我們規(guī)定,同步節(jié)點(diǎn)S的動(dòng)態(tài)行為完全遵循演進(jìn)規(guī)則,所不同的是,當(dāng)S處于執(zhí)行狀態(tài)時(shí),即State(S)=1時(shí),將判斷它的所有輸入連接弧是否發(fā)生轉(zhuǎn)移;若是,則S的狀態(tài)就由1變?yōu)?,即S執(zhí)行完畢;否則S仍處于等待狀態(tài),并繼續(xù)判斷,直至滿足上面的條件后才執(zhí)行完畢、發(fā)生轉(zhuǎn)移,State(S)=10。這意味著同步節(jié)點(diǎn)將使它的所有前驅(qū)節(jié)點(diǎn)都執(zhí)行完畢后才繼續(xù)推進(jìn)流程,這實(shí)際上就表達(dá)了“與”的關(guān)系∩{n’∈Pre(n),l=(n’,n) ∈L,Trans(l)=1且l發(fā)生轉(zhuǎn)移。