工作流參考規範概述
【摘 要】工作流管理系統被稱爲下一代的企業業務操作系統。人們在普遍重視工作流應用的需求滿足度和柔性驅動能力的同時,卻很少關注工作流應用的規範及應用過程的本質。本文結合WfMC的規範對工作流參考模型作一概述。
【關鍵字】 WfMC 活動執行者 流程建模 業務組 動作
§1 工作流管理系統的主要構成
(1)過程定義工具
(2)過程定義
(3)工作流執行子系統(WES)和工作流引擎
(4)工作流控制數據
(5)工作流相關數據
(6)工作表和工作表處理程序
(7)應用程序和應用數據
§2 工作流管理系統的參考規範
構建工作流管理系統的過程是一個遵循規範和標準的過程,也是一個不斷創新的過程。
§2-1工作流定義交換
一、工作流定義交換模型
(1)它在build-Time和runtime之間定義了一個分隔點,使一個工具產生的定義可以用於多個不同的工作流產品,這樣,用戶可以自由地選擇工作流產品。
(2)它可以將一個過程定義用於幾個協作的工作流產品,實現分佈的工作流服務(交換過程定義只是這種分佈服務的一個方面)。
工作流定義交換接口
WfMC在這一領域作了兩項工作
(1)引出一個元模型,它用於在一個處理過程定義中表示對象及其關係和屬性,也可以形成用於產品之間信息交換格式的基礎。
(2)工作流系統之間或工作流系統與定義工具之間的API調用,提供了一個訪問工作流過程定義的公共途徑,訪問方式可以是隻讀、讀寫或只寫,並且在元模型或一個特定的產品集(如註冊產品)中操作標準對象的定義。
二、一個基本的元模型
工作流元模型
在分佈的服務中,工作流引擎中的活動的分配要在處理過程定義中指定(作爲活動的一個屬性)。處理過程的定義涉及到安全和管理,如過程中受特權控制和超級用戶管理的活動,同時也要考慮其他方面。
在定義交換格式中,假定可以將一個模糊的符號命名方案映射到runtime核心服務的真實名稱和地址。這可能需要動態地址機制來處理(如通過目錄服務),或通過其他處理過程定義之外的機制處理。有其他的工業組織正在從事這方面的工作,如處理的模擬和CASE交換工具;WfMC的方案是同其他組織共同努力下產生的。
三、訪問處理過程定義的API
有工作流引擎賦給特定用戶的工作單元的隊列。最簡單的情況下,工作隊列可以被工作流引擎訪問,以便賦給用戶待處理的工作單元並獲取用戶處理的結果。工作隊列的交互也有其他不同的產品實現途徑。
從工作隊列中激活一個工作單元可能在工作流客戶端應用程序或用戶的控制之下進行。在工作流客戶端應用程序和工作流核心服務之間定義了一組過程,可以用來向隊列中添加工作單元、從隊列中移走完成的工作單元或掛起正在活動的工作單元等等。
工作隊列處理程序也處理應用程序的調用,這些處理或是直接進行或是在用戶參與下進行。由工作隊列處理程序直接調用的應用程序最好放在本地環境中,雖然沒有強制性的約束。
工作隊列中,一部分活動的相關數據可以幫助工作隊列處理程序調用應用程序。如果一個應用程序的數據類型非常固定,工作隊列中就會存儲一個關聯。其他情況下,工作隊列處理程序與工作流引擎之間需要完整的(應用程序名稱和路徑的)交換,這時,工作流客戶端應用程序可以通過應用程序調用接口(接口3)實現一些功能,以獲取必要的信息。
一個工作隊列中可能包含了多個不同的活動實例,這些實例可能來自不同的處理過程。(根據不同的產品實現途徑,每種類型的處理過程使用單獨的物理工作隊列,或者由工作隊列處理程序將不同的工作隊列的單元以統一的形式表達給用戶。)
§2-2工作流客戶端應用程序接口
這些API及其參數將映射到不同的通訊機制以適應不同的工作流實現機制。(在基於電子郵件的通訊中,工作隊列處理程序可以通過如何本地郵箱訪問接口直接訪問收件箱,而不是通過WAPI調用。這種情況下,工作隊列處理程序將負責過濾所有非工作單元的郵件,並作適當的處理。同樣,對工作流引擎的命令或響應可以直接放到發件箱中。這樣,通過郵件交換格式實現了一個簡單的交互,而沒有完全使用WAPI。)
客戶端應用程序API的全部的實現途徑如圖。
API的規範出版在另一個WfMC文檔中;下面只提供一個關於客戶端應用程序使用的API的概要。一起提供的還有操作處理過程或活動實例以及操作工作隊列的命令。
會話的建立
在參與的系統之間建立/斷開會話
工作流定義操作
獲取或查詢工作流處理過程定義的名稱或屬性
處理過程的控制功能
創建/啓動/終止一個處理過程實例
掛起/喚醒一個處理過程實例
在一個處理過程實例或活動實例內部強制狀態的轉換
修改或查詢一個處理過程實例或活動實例的屬性(如優先級)
打開/關閉一個處理過程或活動實例的查詢,設置過濾標準
獲取處理過程或活動實例的詳細資料,並按指定的條件過濾
獲取指定的處理過程或活動實例的詳細資料
工作隊列/工作單元處理功能
打開/關閉一個工作隊列查詢,設置過濾標準
獲取工作隊列單元,,並按指定的條件過濾
選擇/重賦值/完成一個工作單元的通知
修改或查詢工作單元的屬性
處理過程的超級用戶功能
下面的功能面向所有的處理過程或活動實例,並且是在超級用戶的特權下才能獲得的,或許需要特定的應用程序和用戶登錄。)
改變正在運行的工作流處理過程定義及其實例
改變所有指定類型的處理過程或活動實例的狀態
改變所有指定類型的處理過程或活動實例的屬性
終止所有過程實例
數據處理功能
獲取或返回工作流相關數據或應用程序數據
管理功能
可以通過某種客戶端應用程序實現由WAPI支持的附加的管理功能。
應用程序調用
通過工作隊列處理程序的功能(如提供對處理過程/活動/工作單元屬性和工作流相關數據的訪問)實現了基本的應用程序調用支持。其中一些應用程序調用功能與客戶端應用程序環境有關。
接口類型
|
工作流相關數據訪問
|
參考標準
|
本地處理過程調用
|
本地文件
|
沒有
|
Shell腳本
|
本地文件
|
XML/XPDL?
|
ORB調用
|
通過引用(調用參數)
|
有
|
遠程執行調用
|
通過引用(調用參數)
|
有
|
消息傳送
|
內置或通過引用
|
有
|
交易
|
內置或通過引用
|
有
|
進一步討論將要涉及應用程序調用的所有可能的範圍了。WfMC初始的工作着重考慮開發一組接口類型和一些將來用於工作流專用應用程序的API。
§2-3應用程序調用接口
下圖顯示了接口的框架,適用於應用程序代理和工作流應用程序。
在簡單的情況下,應用程序調用都在本地發生,並且使用處理程序定義中的信息(應用程序類型和相關數據)。調用的應用程序可能在本地,也可能在網絡上能訪問到的其他位置。處理過程定義中包含了足夠的應用程序類型和位置信息(工作流引擎需要的)。此時,應用程序命名和地址對處理過程定義和工作流引擎來說是本地的。
會話的建立
建立/斷開應用程序(或應用程序代理)會話
活動管理功能
(工作流引擎到應用程序)
啓動活動(工作流引擎到應用程序)
掛起/喚醒/終止活動(用於異步應用程序接口)
(應用程序到工作流引擎)
活動完成通知
產生事件(如同步)
查詢活動屬性
數據處理功能
給出工作流相關數據(應用程序的前驅和後繼活動)
給出應用程序數據或數據地址
在更復雜的情況下,包括在不同類型的工作流引擎之間的交互操作,可能需要在工作流引擎之間傳誦應用程序調用信息,或者是在運行時通過交換獲得,或者是在導入過程定義時獲得。
§2-4協作能力抽象規範
一、簡述
工作流產品的特點是多種多樣的。在制定協同能力標準時,WfMC沒有要求工作流產品供應商放棄產品特有的功能性去提供交互能力。因此,WfMC致力於開發一系列交互方案,以滿足不同層次的交互(從簡單的任務傳遞到過程定義、工作流相關數據的交換以及完整的工作流應用程序交互)。這種情況下,初始的要求是要支持簡單的交互,隨着情況的複雜化,在作更多的工作。
二、一些基本概念
工作流引擎:一個爲工作流程實例提供運行時刻的執行環境的軟件服務(引擎)。
一個工作流流程定義實例:一個工作流流程定義的實例(包括其自動化部分在內),它是由工作流管理系統創建和管理的。
一個工作流管理系統:通過軟件的執行完整的定義,管理,執行工作流流程。此執行的軟件命令是由工作流流程邏輯的一個計算機表示來驅動的。
一個工作流管理系統是由一個或更多的工作流設定服務組成。
一個工作流設定服務是由一個或更多的工作流引擎組成的。
三、協作能力模型
(1)兩個或更多的工作流引擎直接協作
工作流引擎協作
(2)兩個或更多的工作流引擎在同一個設定服務裏的運作
工作流設定服務
(3)在一個工作流管理系統範圍內的兩個或更多的工作流設定服務的協作
工作流羣組設定服務
(4)協作能力的實現
兩個軟件工具的協作能力一般通過如下幾種方式實現:
工具間的直接作用
工具間的直接作用
消息傳遞
消息傳遞
此方式在工作協作能力上的應用:
工作流協作的消息傳遞
中介(bridging) (採用封裝,轉化及網關等形式)
中介
工作流協作的中介應用
共享存儲數據
工具間的共享數據存儲
四、工作流流程在兩個協作的引擎裏執行的不同方式
鏈式流程
嵌套子流程
嵌套子流程
同步並行
交叉執行
交叉執行
§2-5 WfMC審計數據規範
一、概述
系統管理和監控接口
二、審計數據
通過定義這種數據的語義規範可使接口5標準化,以達到和不同工作流產品工作的能力。
三、CWAD 命名協定
四、CWAD 數據信息
基礎數據是被記錄且對所有的審計功能有效。在這些信息裏,有些定義的元素被指定爲強制性的或者是可選擇的。如果事件被記錄,強制性的元素是必須有的。由於工作流商家的產品操作不同,有些審計信息將不適用且將被考慮作爲自由數據。除了一些必須信息之外,由私有數據信息組成的是未被定義且對商家和用戶的自身需要是有用的,它可以包括複雜的形式。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1759996