【正文】
C系統(tǒng)配置框架轉(zhuǎn)換 : P S M → 配置文件BC 模型靜態(tài)配置模型BO 模型角色模型G enerato r/ T ra nsf orm.T ra nsf orm.過程定義文件基于 BO 的工作流模型( 即過程模型 )可執(zhí)行工作流模型( 動(dòng)態(tài)配置模型 )工作流引擎程序生成器 : P S M → Co de自動(dòng)映射建立階段運(yùn)行階段ICE CIMICEMDA 框架 ICEMDA 工作流系統(tǒng)P I M 層工作流模型定義P S M 層可執(zhí)行工作流模型定義 圖 21 基于 ICEMDA的工作流系統(tǒng) Figure 21 The workflow system based on ICEMDA ICEMDA 分為四層架構(gòu) ICECIM(Computing Independent Model)、 ICEPIM(Platform Independent Model)、 ICEPSM(Platform Specific Model)和 ICECode 層 四層架 構(gòu) 。每一個(gè)模型描述了 由企業(yè)業(yè)務(wù)到企業(yè)軟件應(yīng)用這一過程抽象中某一個(gè)階段的成果 , 每一個(gè)視圖描述了某一特定模型的某個(gè)側(cè)面。 其中BO[27]是融數(shù)據(jù)和方法于一體的,具有一定生命周期的對象。 ICEPSM 是 平臺(tái)相關(guān) 模型。該構(gòu)件被稱為 業(yè)務(wù)構(gòu)件 (Business Component, BC)[28],其模型被稱為 BC 模型 。 ICEMDA 的 Code 層是在平臺(tái)基礎(chǔ)上的,基于框架 和工作流引擎 的可配置的構(gòu)件化系統(tǒng) 。訂單、報(bào)表、設(shè)備、員工等都可以稱為業(yè)務(wù)對象。 業(yè)務(wù)活動(dòng)是一個(gè)角色處理表單全部或者部分?jǐn)?shù)據(jù)項(xiàng)的一系列業(yè)務(wù)操作的集合。 模型需求 業(yè)務(wù)對象的概念來源于 企業(yè)日常業(yè)務(wù)處理的 單據(jù) 和 報(bào)表,對單據(jù) 和 報(bào)表的處理過程使業(yè)務(wù)對象的狀態(tài)不斷發(fā)生變化。 (1)確定業(yè)務(wù)活動(dòng)的時(shí)序關(guān)系 業(yè)務(wù)對象所包含的 業(yè)務(wù)活動(dòng)之間的時(shí)序關(guān)系不一定都是順序的,所以工作流模型需要描述業(yè)務(wù)對象內(nèi)部以及業(yè)務(wù)對象之間各業(yè)務(wù)活動(dòng)間的時(shí)序關(guān)系。因此,這些約束 條件 也該在圖形化的工作流模型中表達(dá)出來 。 除 以上 三 個(gè)方面, ICEPIM 工作流模型還應(yīng)該 能夠向下轉(zhuǎn)換成 ICEPSM 工作流執(zhí)行模型 。如圖 22所示,圖中詳細(xì)描述了 PIM 層工作流模型包含的元素以及元素之間的關(guān)系。同樣,不同業(yè)務(wù)活動(dòng)之間的關(guān)系都可以用工作流的基本組成元素 —— 控制流來統(tǒng)一地進(jìn)行描述。下面分別介紹 PIM 工作流元模型中的各個(gè)元素。 業(yè)務(wù)活動(dòng)一般 表示某崗位對一個(gè)表單、文檔或者報(bào)表中的部分或者全部的數(shù)據(jù)項(xiàng)進(jìn)行的一次處理。 (2)事件 業(yè)務(wù)活動(dòng)執(zhí)行完畢后,由執(zhí)行人發(fā)出事件 , 用于觸發(fā)下一個(gè)活動(dòng), 充當(dāng)了 業(yè)務(wù)活動(dòng)的 觸發(fā)器 。 根據(jù)事件源可將事件分為兩類:時(shí)間事件和人工事件。從形式上,連接了活動(dòng)與活動(dòng)、 活動(dòng)與連接器、決策節(jié)點(diǎn)和連接器、決策節(jié)點(diǎn)和業(yè)務(wù)活動(dòng)等之間的關(guān)系,最終使整個(gè)工作量模型形成一個(gè)有向圖 事件和功能或業(yè)務(wù)過程之間的執(zhí)行順序關(guān)系。常見的邏輯連接符包括:異或XOR、與 AND、或 OR。 在順序模式下,活動(dòng)只產(chǎn)生一個(gè)事件,一個(gè)事件只觸發(fā)一個(gè)活動(dòng)。 OR 表示多選多控制模式,在多選多模式下,可能有多個(gè)滿足條件的控制流分支 被選中執(zhí)行。 (5)角色 角色是對能夠區(qū)分不同責(zé)任的一類用戶的抽象描述,在軟件系統(tǒng)中,角色往往體現(xiàn)的是權(quán)限。 在 PIM 層工作流模型中,對角色的復(fù)雜信息并不定義,因?yàn)檫@些信息會(huì)在角色模型中描述。 哈爾濱工業(yè)大學(xué)工學(xué)碩士學(xué)位論文 12 (6)條件表達(dá)式 條件表達(dá)式根據(jù)應(yīng)用的位置可分為三類:轉(zhuǎn)移條件、前置條件和后置條件。 前置條件是業(yè)務(wù)活動(dòng)執(zhí)行前需要滿足的條件。 (7)業(yè)務(wù)活動(dòng)輸入輸出數(shù)據(jù) 每個(gè)業(yè)務(wù)活動(dòng)都包含一個(gè)輸入數(shù)據(jù)或者輸出數(shù)據(jù),例如采購訂單需要根據(jù)采購需求或者采購計(jì)劃制定,輸出結(jié)果是采購訂單。 為了便于 PIM 層各個(gè)模型間的互操作, ICEPIM 層模型用 UML+圖表示。 圖 23 ICEPIM 工作流元模型元 素圖形化 Figure 23 The graph of the ICEPIM workflow metamodel 示例 采購需求單有制定和審批兩個(gè)活動(dòng),但根據(jù)審批金額的不同,所需要的審批人員也不同,圖 24 描述了采購需求單的內(nèi)部業(yè)務(wù)流程。 哈爾濱工業(yè)大學(xué)工學(xué)碩士學(xué)位論文 13 圖 24 采購需求單的制定審批流程 Figure 24 Making and auditing process of the purchase requirement order ICEPIM 工作流元模型的形式化定義 PIM 層工作流模型以業(yè)務(wù)活動(dòng)為中心,通過控制流和連接器描述業(yè)務(wù)活動(dòng)時(shí)序關(guān)系,從而表示一個(gè)業(yè)務(wù)流程。 PIM 層工作流模型 可由 一個(gè)二十三元組描述 。 哈爾濱工業(yè)大學(xué)工學(xué)碩士學(xué)位論文 14 (2)每一個(gè)業(yè)務(wù)活動(dòng) BusinessActivity 是一個(gè)五元組 : ? ?, , , , ,B usine ss A c ti v it y I D Name D e sc ripti on P re E x e c Ct rl P ostE x e c Ct rl D e adline? 其中, ID 是業(yè)務(wù)活動(dòng)的唯一標(biāo)識; Name 是業(yè)務(wù)活動(dòng)的名稱; Description是業(yè)務(wù)活動(dòng)的描述性文字; PreExecCtrl 是業(yè)務(wù)活動(dòng)的 執(zhí)行前控制模式,描述了活動(dòng)的執(zhí)行是需要人工干預(yù)還是自動(dòng)啟動(dòng); PreExecCtrl 是業(yè)務(wù)活動(dòng)的 執(zhí)行前控制模式; Deadline 是業(yè)務(wù)活動(dòng)的期限,描述業(yè)務(wù)活動(dòng)被執(zhí)行的最大次數(shù)或者最后時(shí)間。 (4)Flows 是 PIM 層工作流模型的控制流集合 。 (6)Decisions 是 PIM 層工作流模型的決策集合。 其中, n 表示 Decision 包含的條件表達(dá)式的個(gè)數(shù); DeciCond 是一個(gè)函數(shù):? ?1 , 2 , ,D e c iCon d n Con d it ion s?? (8)Conditions 是 PIM 層工作流模型的約束條件集合。而 每一個(gè)連接器只有取值: XOR、 OR、 AND。 (11)Finish 是 PIM 層工作流模型的結(jié)束節(jié)點(diǎn)。 (13)ActBOID 是一個(gè)為業(yè)務(wù)活動(dòng)指定其所對應(yīng)的業(yè)務(wù)對象 ID 的函數(shù): PA c t B O I D B u s i n e s s A c t i v i t i e s S t r i n g? ??? 上式中是一個(gè)部分函數(shù),表明了業(yè)務(wù)活動(dòng)也可不與任何業(yè)務(wù)對象相關(guān)聯(lián),此為可選項(xiàng)。 (15)ActPreCond 也是一個(gè)函數(shù),為業(yè)務(wù)活動(dòng)指定前置條件,類似的,前置條件是業(yè)務(wù)活動(dòng)的可選項(xiàng),因此也是一個(gè)部分函數(shù) : 哈爾濱工業(yè)大學(xué)工學(xué)碩士學(xué)位論文 15 PA c t P r e C o n d B u s i n e s s A c t i v i t i e s C o n d i t i o n s? ??? (16)ActPostCond 與 ActPreCond 類似,是一個(gè)為業(yè)務(wù)活動(dòng)指定后置條件的函數(shù),類似的,后置條件也是業(yè)務(wù)活動(dòng)的可選項(xiàng),因此也是一個(gè)部分函數(shù) : PA c t P o s t C o n d B u s i n e s s A c t i v i t i e s C o n d i t i o n s? ??? (17)EventType 描述 event 類型的函數(shù): ? ?,E v e n t T y p e E v e n t s a r t i f i c a l t i m e?? (18)FlowType 是將每一個(gè)控制流 Flow 指定類型的函數(shù) , 控制流有三種類型:附加事件型、附加條件型以及無任何附加型 。 因此, SourceFlow 和 TargetFlow 兩個(gè)函數(shù)如下所示: ? ? ? ?? ?? ? ? ?? ?? ?PPSour c e F low F low s B us iness A c ti v it ies T ar ge tF low F low s C onne c tor sSour c e F low F low s C onne c tor s T ar ge tFlow F low s B us iness A c ti v it iesSour c e F low F low s B us iness A c ti v it ies T ar ge tF low F low s C? ??? ? ? ??? ?? ??? ? ? ??? ?? ??? ? ? ???? ?? ?? ? ? ?? ?? ? ? ?? ?PPondit ionsSour c e F low F low s C ondit ions T ar ge tFlow F low s C onne c tor sSour c e F low F low s B us iness A c ti v it ies T ar ge tF low F low s B us iness A c ti v it ies?????? ??? ? ? ??? ?? ? ??? ? ? ??? ??? (20)FlowEvent 為一個(gè)函數(shù),它為附加事件型的控制流指定附加的事件,只有在產(chǎn)生相應(yīng)的事件后,控制流才能被經(jīng)過執(zhí)行: PF l o w E v e n t F l o w s E v e n t s? ??? (21)FlowResult 為變遷附加決策結(jié)果的函數(shù),從而可以根據(jù)決策中心的結(jié)果判斷出可執(zhí)行的分支: ? ?1 , 2 , 3 ,PF lo w R e s u lt F lo w s? ??? (22)FlowCond 也為一個(gè)函數(shù),它為附加條件型的控制流指定附加的條件,只有在滿足指定的條件后,控制流才能被經(jīng)過執(zhí)行: PF l o w C o n d F l o w s C o n d i t i o n s? ??? (23)DeciCond 是一個(gè)函數(shù),它為每一個(gè)決策中心指定其所包含的條件表達(dá)式。 ? ?S t a r t A c t S t a r t B u s i n e s s A c t i v i t i e s?? (25)FinishAct 是一個(gè)將活動(dòng)或者連接器映射到結(jié)束節(jié)點(diǎn)的函數(shù),描述了模哈爾濱工業(yè)大學(xué)工學(xué)碩士學(xué)位論文 16 型的結(jié)束業(yè)務(wù)活動(dòng)。 ? ?? ?? ? ? ?? ?? ?111( 2)( 1 )(0xx C on ne c t or s c ar d So ur c e Fl ow xx D e c i si on s x Bus i ne ss Ac t i v i t i e s c ar d So ur c e F l ow xc ar d So ur c e Fl ow x??????? ? ? ???????? ? ? ? ? ???????????? (2)只有連接器可 以擁有多個(gè)進(jìn)入控制流 , 而業(yè)務(wù)活動(dòng)和決策點(diǎn)只能有一個(gè)進(jìn)入控制流;開始節(jié)點(diǎn)和其他元素都沒有進(jìn)入控制流。 ? ?? ?x De c i si onsy C onn e c t ors y XO Rx z Flo w s Sou rc e Flo w z xyz T arg e t Flo w z y??????? ? ? ?? ? ?? ? ????? ???????? ICEPSM 層可執(zhí)行工作流模型 ICEPSM 層可執(zhí)行工作流模型是以業(yè)務(wù)構(gòu)件 ( Business Component, 簡稱BC) 的業(yè)務(wù)活動(dòng)為中心的,描述了一個(gè)業(yè)務(wù)構(gòu)件間的業(yè)務(wù)活動(dòng)的流轉(zhuǎn)次序以及業(yè)務(wù) 構(gòu)件之間的時(shí)序執(zhí)行關(guān)系。 而 XPDL 作為一種工作流過程定義之間的公共交互格式,它的通用性和可轉(zhuǎn)換性符合現(xiàn)代軟件開發(fā)的形式,為工作流過程定義互相轉(zhuǎn)換提供了規(guī)范。 通過以上分析, ICEPSM 層可執(zhí)行工作流模型采用 XML 語言描述,并且采用的 XML 語言遵循 XPDL 規(guī)范,對于 XPDL 不能描述的信息,通過擴(kuò)展屬性的方式描述,這樣通過擴(kuò)展的 XPDL 形成了可執(zhí)行工作流模型。 WfMC 為工作流系統(tǒng)制定了 5 類功能接口,其中接口 1(過程定義輸入 /輸出接口 )包含了一個(gè)用于描述工作流過程定義的公共元模型,以及過程定義間進(jìn)行相互轉(zhuǎn)換的 XML Schema。 XPDL 不可能支持所有模型的附加屬性,依靠一系列有限的描述工作流過程定義的實(shí)體, XPDL可以支持一些不同的擴(kuò)展屬性處理方法。無論 PIM 層的工作流哈爾濱工業(yè)大學(xué)工學(xué)碩士學(xué)位論文 18 模型采用什么圖形描 述,只要 PSM 層可執(zhí)行工作流模型符合 XPDL 規(guī)范,那么就可以保持相同的表示形式。圖 25 是 XPDL 的元模型以及上層實(shí)體。 過程定義 (WorkflowProcessDefinition) 過程定義詳細(xì)說明了構(gòu)成工作流的元素,包括活動(dòng)、轉(zhuǎn)移、應(yīng)用程序和相關(guān)數(shù)據(jù)等實(shí)體的定義或者聲明。 在表 21 中詳細(xì)描述了工作流過程定義的屬性以及包含的子元素,并對這些屬性和子元素作了語