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