工作流參考規範概述

工作流參考規範概述


【摘  要】工作流管理系統被稱爲下一代的企業業務操作系統。人們在普遍重視工作流應用的需求滿足度和柔性驅動能力的同時,卻很少關注工作流應用的規範及應用過程的本質。本文結合WfMC的規範對工作流參考模型作一概述。

【關鍵字】    WfMC    活動執行者    流程建模    業務組     動作
 

§1 工作流管理系統的主要構成

        工作流管理系統(Workflow Management System,WfMS)主要由下列部件構成。
(1)過程定義工具
        過程定義工具被用來創建計算機可處理的業務過程描述。它可以是形式化的過程定義語言或對象關係模型,也可以是簡單地規定用戶間信息傳輸的一組路由命令。
(2)過程定義
        過程定義(數據)包含了所有使業務過程能被工作流執行子系統執行的必要信息。這些信息包括起始和終止條件、各個組成活動、活動調度規則、各業務的參與者需要做的工作、相關應用程序和數據的調用信息等。
(3)工作流執行子系統(WES)和工作流引擎
        工作流執行子系統也稱爲(業務)過程執行環境,包括一個或多個工作流引擎。工作流引擎是WfMS的核心軟件組元。它的功能包括:解釋過程定義;創建過程實例並控制其執行;調度各項活動;爲用戶工作表添加工作項;通過應用程序接口(API)調用應用程序;提供監督和管理功能等。工作流執行子系統可以包括多個工作流引擎,不同工作流引擎通過協作共同執行工作流。
(4)工作流控制數據
        指被WES和工作流引擎管理的系統數據,例如工作流實例的狀態信息、每一活動的狀態信息等。
(5)工作流相關數據
        指與業務過程流相關的數據。WfMS使用這些數據確定工作流實例的狀態轉移,例如過程調度決策數據、活動間的傳輸數據等。工作流相關數據既可以被工作流引擎使用,也可以被應用程序調用。
(6)工作表和工作表處理程序
        工作表列出了與業務過程的參與者相關的一系列工作項,工作表處理程序則對用戶和工作表之間的交互進行管理。工作表處理程序完成的功能有:支持用戶在工作表中選取一個工作項,重新分配工作項,通報工作項的完成,在工作項被處理的過程中調用相應的應用程序等。
(7)應用程序和應用數據
        應用程序可以直接被WfMS調用或通過應用程序代理被間接調用。通過應用程序調用,WfMS部分或完全自動地完成一個活動,或者對業務參與者的工作提供支持。與工作流控制數據和相關數據不同,應用數據對應用程序來講是局部數據,對WfMS的其他部件來說是不可見的。

 

§2 工作流管理系統的參考規範

        國際工作流管理聯盟(Workflow Management Coalition,WfMC)定義了一套完整的參考規範,主要由5個接口構成。

        構建工作流管理系統的過程是一個遵循規範和標準的過程,也是一個不斷創新的過程。
 

§2-1工作流定義交換

一、工作流定義交換模型
        模擬和定義工具與工作流管理軟件之間的接口被稱爲過程定義輸入/輸出接口。接口的本質是一個交換格式和一組API調用,它通過一系列物理或電子的媒介進行處理過程定義的交換。定義交換可以完整的或部分的(如只改變某個定義中的某個活動的屬性)。
 
        使用這種標準化的形式有明顯的好處:

        (1)它在build-Time和runtime之間定義了一個分隔點,使一個工具產生的定義可以用於多個不同的工作流產品,這樣,用戶可以自由地選擇工作流產品。

        (2)它可以將一個過程定義用於幾個協作的工作流產品,實現分佈的工作流服務(交換過程定義只是這種分佈服務的一個方面)。
 

工作流定義交換接口

        WfMC在這一領域作了兩項工作  
        (1)引出一個元模型,它用於在一個處理過程定義中表示對象及其關係和屬性,也可以形成用於產品之間信息交換格式的基礎。 
        (2)工作流系統之間或工作流系統與定義工具之間的API調用,提供了一個訪問工作流過程定義的公共途徑,訪問方式可以是隻讀、讀寫或只寫,並且在元模型或一個特定的產品集(如註冊產品)中操作標準對象的定義。  
二、一個基本的元模型
        WfMC開發了一個處理過程定義的元模型,它用來確定一組(簡單的處理過程定義中初始水平的交換的)基本的對象模型,其他的對象模型由供應商提供或作進一步的探討。
 

工作流元模型

 
假定下面的類型有這樣一些屬性:
工作流類型定義
       工作流處理過程名稱
       版本號
       處理過程的開始和結束條件
       安全、審計和其他控制數據
活動
       活動名稱
       活動類型(子流、自動流等等)
       活動的開始和結束條件
       其他時序的約束
轉換條件
       流或執行條件
工作流相關數據
       數據名稱和路徑
       數據類型
角色
       角色名稱和組織實體
調用的應用程序
       應用程序類型和名稱
       參數
       位置或訪問路徑
       
        在分佈的服務中,工作流引擎中的活動的分配要在處理過程定義中指定(作爲活動的一個屬性)。處理過程的定義涉及到安全和管理,如過程中受特權控制和超級用戶管理的活動,同時也要考慮其他方面。
       
        在定義交換格式中,假定可以將一個模糊的符號命名方案映射到runtime核心服務的真實名稱和地址。這可能需要動態地址機制來處理(如通過目錄服務),或通過其他處理過程定義之外的機制處理。有其他的工業組織正在從事這方面的工作,如處理的模擬和CASE交換工具;WfMC的方案是同其他組織共同努力下產生的。
三、訪問處理過程定義的API
WAPI中的一組API是用來訪問處理過程定義數據的。期望這些規範能覆蓋下面的普通類型。操作一個列表、單獨的對象或屬性的命令沒有提供。
會話的建立
       在參與的系統之間建立/斷開會話
工作流定義操作
       從一個倉庫或其他資源列表中獲取工作流處理過程定義的名稱的清單
       從提供給會話處理的處理過程定義清單中,選擇/排除一個定義
       讀寫最高層的工作流處理過程定義對象
工作流定義對象操作
       在工作流定義中創建、獲取和刪除對象
       獲取、設置和刪除對象的屬性
 
工作流客戶端功能
 
        工作隊列處理程序直接同系統的使用者打交道,它可能會作爲一個工作流產品一部分來提供,或由用戶自己編寫,也可能與辦公室服務一起集成在一個桌面環境中,如郵件和work-in-progress文件夾,以提供一個任務管理系統。因此,在工作流核心服務與工作流客戶端應用程序之間需要一個靈活的通訊機制,以支持由不同操作系統構成的工作流系統。
 
        在工作流模型中,客戶端應用程序於工作流引擎之間通過一個接口進行交互操作,這個接口使用了工作隊列的概念。

        有工作流引擎賦給特定用戶的工作單元的隊列。最簡單的情況下,工作隊列可以被工作流引擎訪問,以便賦給用戶待處理的工作單元並獲取用戶處理的結果。工作隊列的交互也有其他不同的產品實現途徑。

        從工作隊列中激活一個工作單元可能在工作流客戶端應用程序或用戶的控制之下進行。在工作流客戶端應用程序和工作流核心服務之間定義了一組過程,可以用來向隊列中添加工作單元、從隊列中移走完成的工作單元或掛起正在活動的工作單元等等。

        工作隊列處理程序也處理應用程序的調用,這些處理或是直接進行或是在用戶參與下進行。由工作隊列處理程序直接調用的應用程序最好放在本地環境中,雖然沒有強制性的約束。

        工作隊列中,一部分活動的相關數據可以幫助工作隊列處理程序調用應用程序。如果一個應用程序的數據類型非常固定,工作隊列中就會存儲一個關聯。其他情況下,工作隊列處理程序與工作流引擎之間需要完整的(應用程序名稱和路徑的)交換,這時,工作流客戶端應用程序可以通過應用程序調用接口(接口3)實現一些功能,以獲取必要的信息。

        一個工作隊列中可能包含了多個不同的活動實例,這些實例可能來自不同的處理過程。(根據不同的產品實現途徑,每種類型的處理過程使用單獨的物理工作隊列,或者由工作隊列處理程序將不同的工作隊列的單元以統一的形式表達給用戶。)
 
        因此,客戶端工作流應用程序與工作流引擎之間的接口必須在以下方面具有足夠的靈活性:
       處理過程和活動的標識符
       資源的名稱和位置
       數據的引用和數據結構
       可選的通訊機制


§2-2工作流客戶端應用程序接口

        滿足上面要求的途徑包含多個標準的API集(WAPI),這些API以統一的方式被應用程序、工作流引擎和工作隊列訪問,而不管實際的產品是如何實現的。

        這些API及其參數將映射到不同的通訊機制以適應不同的工作流實現機制。(在基於電子郵件的通訊中,工作隊列處理程序可以通過如何本地郵箱訪問接口直接訪問收件箱,而不是通過WAPI調用。這種情況下,工作隊列處理程序將負責過濾所有非工作單元的郵件,並作適當的處理。同樣,對工作流引擎的命令或響應可以直接放到發件箱中。這樣,通過郵件交換格式實現了一個簡單的交互,而沒有完全使用WAPI。)
 
 
客戶端應用接口

        客戶端應用程序API的全部的實現途徑如圖。

        API的規範出版在另一個WfMC文檔中;下面只提供一個關於客戶端應用程序使用的API的概要。一起提供的還有操作處理過程或活動實例以及操作工作隊列的命令。 

        會話的建立 
                在參與的系統之間建立/斷開會話 

        工作流定義操作 
                獲取或查詢工作流處理過程定義的名稱或屬性 

        處理過程的控制功能 
                創建/啓動/終止一個處理過程實例 
                掛起/喚醒一個處理過程實例 
                在一個處理過程實例或活動實例內部強制狀態的轉換 
                修改或查詢一個處理過程實例或活動實例的屬性(如優先級) 
 
        處理過程狀態功能 
                打開/關閉一個處理過程或活動實例的查詢,設置過濾標準 
                獲取處理過程或活動實例的詳細資料,並按指定的條件過濾 
                獲取指定的處理過程或活動實例的詳細資料   

        工作隊列/工作單元處理功能 
                打開/關閉一個工作隊列查詢,設置過濾標準 
                獲取工作隊列單元,,並按指定的條件過濾 
                選擇/重賦值/完成一個工作單元的通知 
                修改或查詢工作單元的屬性   

        處理過程的超級用戶功能   
                下面的功能面向所有的處理過程或活動實例,並且是在超級用戶的特權下才能獲得的,或許需要特定的應用程序和用戶登錄。) 
                改變正在運行的工作流處理過程定義及其實例 
                改變所有指定類型的處理過程或活動實例的狀態 
                改變所有指定類型的處理過程或活動實例的屬性 
                終止所有過程實例   

        數據處理功能 
                獲取或返回工作流相關數據或應用程序數據   

        管理功能 
                可以通過某種客戶端應用程序實現由WAPI支持的附加的管理功能。

        應用程序調用
                通過工作隊列處理程序的功能(如提供對處理過程/活動/工作單元屬性和工作流相關數據的訪問)實現了基本的應用程序調用支持。其中一些應用程序調用功能與客戶端應用程序環境有關。
 
        然而,許多工作流系統限制了它們能處理的應用程序的範圍,這些應用程序的數據必須是強類型的而且必須能夠直接訪問(如通過目錄),例如字處理或電子表格程序。其它情況下,可以通過標準的金礦機制來調用應用程序,如OSI TP協議或X.400。有些系統的實現中使用了“應用程序代理”的概念,它將應用程序的調用方法同工作流核心服務隔開。也可以通過使用標準API開發工作流應用程序工具於工作流核心服務通訊(接收應用程序數據、發出或接收活動事件等)。這些API可能直接被應用程序工具或應用程序代理使用,作爲沒有工作流知識的開發者的一個前端。
 
        一些可以用於應用程序調用的接口類型
 
接口類型
工作流相關數據訪問
參考標準
本地處理過程調用
本地文件
沒有
Shell腳本
本地文件
XML/XPDL?
ORB調用
通過引用(調用參數)
遠程執行調用
通過引用(調用參數)
消息傳送
內置或通過引用
交易
內置或通過引用

        進一步討論將要涉及應用程序調用的所有可能的範圍了。WfMC初始的工作着重考慮開發一組接口類型和一些將來用於工作流專用應用程序的API。


§2-3應用程序調用接口


        下圖顯示了接口的框架,適用於應用程序代理和工作流應用程序。 
        在簡單的情況下,應用程序調用都在本地發生,並且使用處理程序定義中的信息(應用程序類型和相關數據)。調用的應用程序可能在本地,也可能在網絡上能訪問到的其他位置。處理過程定義中包含了足夠的應用程序類型和位置信息(工作流引擎需要的)。此時,應用程序命名和地址對處理過程定義和工作流引擎來說是本地的。
應用程序調用API的語法將由WfMC研究並作爲規範收入文檔。操作將通過幾個接口進行(包括上表中的),有些是同步的、有些是異步的。下面提供了應用程序調用可能會用到的命令集。
 
應用程序調用接口

        會話的建立 
                建立/斷開應用程序(或應用程序代理)會話 

        活動管理功能 
                (工作流引擎到應用程序) 
                啓動活動(工作流引擎到應用程序) 
                掛起/喚醒/終止活動(用於異步應用程序接口) 
                (應用程序到工作流引擎) 
                活動完成通知 
                產生事件(如同步) 
                查詢活動屬性 

        數據處理功能 
                給出工作流相關數據(應用程序的前驅和後繼活動) 
                給出應用程序數據或數據地址 

        在更復雜的情況下,包括在不同類型的工作流引擎之間的交互操作,可能需要在工作流引擎之間傳誦應用程序調用信息,或者是在運行時通過交換獲得,或者是在導入過程定義時獲得。


§2-4協作能力抽象規範

一、簡述
        這是一個WfMC標準,它提供了一個抽象的規範用以定義要求不同的工作流引擎間的協作能力的功能。WfMC的一個主要目標是制定工作流系統的標準,以使不同的工作流產品之間可以平滑地交換工作單元。

        工作流產品的特點是多種多樣的。在制定協同能力標準時,WfMC沒有要求工作流產品供應商放棄產品特有的功能性去提供交互能力。因此,WfMC致力於開發一系列交互方案,以滿足不同層次的交互(從簡單的任務傳遞到過程定義、工作流相關數據的交換以及完整的工作流應用程序交互)。這種情況下,初始的要求是要支持簡單的交互,隨着情況的複雜化,在作更多的工作。
 
        雖然可以考慮開發非常複雜的交互方案,使不同供應商提供的引擎之間協作,提供統一的核心服務,這在目前似乎還不能實現,因爲這要求所有引擎都能解釋公共的處理過程定義,並且它們之間要共享工作流控制數據,以維護在不同的工作流控制引擎之間共享的處理過程狀態視圖。當前比較現實的目標是實現在不同的核心服務之間傳送處理過程。
 
二、一些基本概念
        工作流協作能力:兩個或更多的工作流引擎之間的通訊和協作能力。其目的是整理執行工作流程實例通過這些引擎。
        工作流引擎:一個爲工作流程實例提供運行時刻的執行環境的軟件服務(引擎)。
        一個工作流流程定義實例:一個工作流流程定義的實例(包括其自動化部分在內),它是由工作流管理系統創建和管理的。
        一個工作流管理系統:通過軟件的執行完整的定義,管理,執行工作流流程。此執行的軟件命令是由工作流流程邏輯的一個計算機表示來驅動的。
        一個工作流管理系統是由一個或更多的工作流設定服務組成。
        一個工作流設定服務是由一個或更多的工作流引擎組成的。
        業務組:在業務流轉過程中,執行相同業務動作/活動的業務執行者的集合(人/系統)
 
三、協作能力模型
        WfMC定義了大量的協同工作能力的模型,如:
        (1)兩個或更多的工作流引擎直接協作

工作流引擎協作

        (2)兩個或更多的工作流引擎在同一個設定服務裏的運作
 

工作流設定服務

        (3)在一個工作流管理系統範圍內的兩個或更多的工作流設定服務的協作
 

工作流羣組設定服務

        (4)協作能力的實現 

        兩個軟件工具的協作能力一般通過如下幾種方式實現: 

        工具間的直接作用

工具間的直接作用

        消息傳遞

消息傳遞

        此方式在工作協作能力上的應用:
 

工作流協作的消息傳遞

        中介(bridging) (採用封裝,轉化及網關等形式)
 

中介
        此方式在工作協作能力上的應用:
 

工作流協作的中介應用

 
        共享存儲數據
 

工具間的共享數據存儲
 
四、工作流流程在兩個協作的引擎裏執行的不同方式
        鏈式流程

鏈式流程

        嵌套子流程

嵌套子流程

        同步並行 
 
同步並行
 
        交叉執行

交叉執行
 

§2-5  WfMC審計數據規範

 
一、概述
       WfMC的最終目標是規範一個管理和監視功能的接口標準,通過這個接口,商家的管理應用程序可以同其他的引擎一起工作。這樣,幾個工作流服務可以在一定範圍內共享管理和系統監視功能。此接口試圖提供一個全局視圖,視圖中包括組織內部所有工作流動的完整的狀態信息;此接口還包括與管理有關的完整的功能集,包括安全、控制和授權的考慮。
       接口實現如圖所示。

系統管理和監控接口
 
二、審計數據
       審計數據:從發生在一個工作流設定服務期間的各種事件中捕捉和記錄的信息。此信息被稱爲通用工作流審計數據(CWAD). 
       通過定義這種數據的語義規範可使接口5標準化,以達到和不同工作流產品工作的能力。  
 
三、CWAD 命名協定    
       命名將遵循《WfMC的 WAPI命名協定》中的標準說明。另外,新的關於屬性的命名協定提議考慮屬性的抽象規範。 
 
四、CWAD 數據信息
       CWAD 審計數據由三類信息組成:基礎數據,自由數據,私有數據。

       基礎數據是被記錄且對所有的審計功能有效。在這些信息裏,有些定義的元素被指定爲強制性的或者是可選擇的。如果事件被記錄,強制性的元素是必須有的。由於工作流商家的產品操作不同,有些審計信息將不適用且將被考慮作爲自由數據。除了一些必須信息之外,由私有數據信息組成的是未被定義且對商家和用戶的自身需要是有用的,它可以包括複雜的形式。


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1759996


 
發佈了30 篇原創文章 · 獲贊 0 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章