[摘要] 目前大多數工作流管理系統都是獨立地管理單個工作流,而忽視了工作流之間的資源約束關系,基于Agent的工作流管理系統能夠有效地解決這個問題。本文討論了基于Agent的工作流管理系統,包括Agent技術、工作流參考模型、基于Agent技術工作流管理系統模型以及系統實現方案的設計思想。
[關鍵詞] Agent 工作流管理系統 參考模型
工作流管理系統是利用計算機技術和信息技術作支持,使企業等組織機構的業務流程實現自動化。當前,大多數工作流管理系統都是獨立地管理單個工作流,忽視了工作流之間的資源約束關系,而基于Agent的工作流管理系統能夠有效地解決這個問題。
Agent具有某種程度的類人性,其本意就是要代替人(或協助人)完成某些工作。工作流管理系統作為一種群件系統與Agent系統有著某種相似的特點,都滿足分布式的協同工作系統,因此Agent系統非常適合應用于工作流管理系統,尤其是設計分布式工作流控制結構。
一、Agent技術
關于Agent目前還沒有統一的明確定義,一般來說,Agent是指可以代替用戶完成簡單、重復的操作,具有一定代理性的智能化軟件。基于Agent的工作流管理系統,組織機構內的每個資源(包括人員、設備和數據庫等)都有一個Agent與之相關聯。按其實現的功能不同,Agent可以分為以下3類:
1.接口Agent:其主要功能是管理人員資源,在其他Agent看來,它是代表用戶參與活動的主體。
2.任務Agent:其主要功能是解釋過程定義、控制過程實例的執行(包括創建、激活、暫停和終止等)、活動的調度、工作流控制數據的維護,以及與執行中的管理和監控等等。當啟動一個工作流時,與之相對應就創建一個任務Agent。
3.資源Agent:與除人員資源以外的其他資源相關聯,如打印機、數據庫。當接口Agent或任務Agent要訪問數據資源或使用某個設備時,它就向與之相關的資源Agent發送請求,資源Agent負責管理該項資源,它執行請求并將操作結果返回給請求者。
利用Agent可以有效地解決工作流系統中的資源沖突、執行中的模式僵化,以及用戶被動地處理工作項問題
二、工作流管理系統模型
一個工作流管理系統主要有兩個組成模塊:業務流程建模模塊和工作流執行控制模塊。在業務流程建模階段,工作流管理人員使用過程建模工具對實際業務流程進行分析、建模,將業務流程表示為計算機可處理的形式化表示。
工作流管理系統的體系結構可以是集中式,也可以是分布式。
集中式工作流控制結構主要由一個工作流引擎和多個客戶應用組成,另外還有其它部件如建模工具、管理和監控工具等,這種控制結構較為簡單,適用于小規模的群體協作活動。
分布式工作流控制結構是由分布在不同站點的多個工作流引擎組成,多個工作流引擎共同解釋執行一個過程定義,這種控制結構比較復雜,工作流引擎之間在執行過程中要交換應用數據和控制信息,當數據分布存儲于不同地點時涉及到數據表示和數據一致性維護問題。
盡管如此,現有的工作流系統仍然存在著適用范圍窄、靈活性差、擴展能力不足,以及對意外的情況不能及時處理等問題,因此,具有自組織、自學習和協同工作能力的智能工作流系統是工作流的一個發展方向。由于Agent具有自主性、交互性、主動性等智能特點。因此將Agent技術結合到工作流管理中將解決工作流的上述不足,非常適合構造結構復雜、靈活、智能的工作流管理系統。
三、基于Agent的工作流管理系統
1.在工作流管理系統中引入Agent
工作流系統的開發中可在兩方面引入Agent技術:
(1)利用Agent技術開發工作流的管理者。工作流管理者要能夠向每個工作站下達工作流程和進度計劃,主動引導各個工作站按照工作流程和進度計劃推動工作,并受理和評價個工作站進展情況的報告,以及集中管理各類數據。
(2)利用Agent開發工作流行為的執行者。工作流中,人和Agent共同完成一個行為的情況是較多的,人是在Agent輔助下完成工作,給人提供相關的重要信息。即開發一種能給各環節設計人員提供指導和幫助功能的軟件Agent。
2.基于Agent的工作流管理系統模型
基于Agent 的工作流管理系統模型主要由四部分組成:工作流服務器,Agent服務器,工作表服務器和多個具體的Agent組成的Agent族。其結構如圖所示。
四、系統模型實現方案的設計思想
1.Agent的表示
基于Agent 的工作流管理系統模型中,Agent可以表示為一個五元組描述的實體,即Agent=
N為Agent的名稱,具有惟一性,并可描述Agent的類型。
I為Agent的界面定義,描述呈現在用戶面前的人機界面和通信接口(包括通信協議和I/O接口),一般應遵循界面與Agent功能相分離的原則。
S為Agent的狀態集,是描述Agent內部狀態的集合,Agent的行為實際上是由一狀態轉移到另一狀態的過程。
T為Agent的事務集,定義Agent的行為,體現Agent的職能,并包含推理機制。
K為Agent的知識源,描述Agent行為所需要的知識、數據、推理規則以及有關資源,體現為數據結構、數據庫和知識庫等。
2.工作流管理系統的表示
在Agent定義的基礎上,可以用一個四元組描述工作流管理系統,即WfMS =< Agents,Goals,KnowledgeBase,Relations>。其中:
Agents為Agent集合,每個Agent具有一定解決問題的能力;Goals為目標集,描述所需要完成的共同任務;KnowledgeBase為知識庫,描述協同工作完成任務所需要的知識;Relations為關系集,描述Agent之間的協作關系及其他關系。實際上,設計一個基于Agent的工作流管理系統核心就是定義一組Agent,建立它們之間的聯系,確定它們的共同目標的過程。
3.Agent的通信機制
與傳統的分布式計算中各計算實體間的通信不同,Agent通信是建立在知識級別的,而實現這種通信手段便是使用Agent通信語言,可使Agent間的通信效率大大高于傳統的分布式計算中的通信。KQML(Knowledge Query and Manipulation Language)是一種用于信息和知識交換的語言和協議,KQML從形式、內容、語義、實現和可靠性等方面對Agent間通信給予保證,在Agent間交換含有語義的控制信息和知識,從而在基于知識的層次上描述訪問請求,提高了對象的定址方式和能力。目前,KQML是獲得最為廣泛應用的Agent通信語言,被稱為事實上的標準。因此可選用KQML作為Agent間的通信方式。
4.系統模型的實現環境
基于Agent的工作流管理系統模型實現的環境可以在基于J2EE體系下采用java技術作為主要的實現語言,這是因為java“一次編譯,到處運行”的平臺無關性特點非常適合用來進行工作流管理系統的開發。還可以選擇一個支持移動Agent的執行環境,如選擇IBM公司的Aglet。Aglet是由IBM日本公司用純java開發的移動Agent平臺,供人們開發或執行移動Agent系統。到目前為止,Aglet是最為成功和全面的系統,主要表現在提供了一個簡單而全面的移動Agent編程模型,并為Agent間提供了動態和有效的通信機制,還提供了一套詳細且易用的安全機制。
五、結束語
工作流管理系統必須是一個開放的系統,具有很強的互操作能力。Agent技術將會成為工作流管理系統的關鍵技術。Agent作為代理能夠協助或替代用戶或系統執行某些功能。Agent技術的應用,將會給工作流管理系統帶來更好的發展前景。
參考文獻:
[1]The Workflow Management Coalition:Workflow Standard-Interoperability Abstract Specification, DocumentNumber WFMC-TC-1012, 20 October 1996, Version 1.0
[2]范玉順:工作流管理技術基礎[M].清華大學出版社,施普林格出版社,2001~4
[3]史美林等:計算機支持的協同工作理論與應用[M],電子工業出版社,2000~12
[4]朱云龍薛勁松李紅信等:基于Agent的工作流協調模型的研究.小型微型計算機系統,2000,21(7):737~739