摘要:工作流管理系統和協同技術的結合將推動新的應用的發展,如協同電子商務、協同文檔管理等。文章在分析此類應用工作模型的基礎上,提出了一個新的支持協同工作的工作流模型;然后給出了一個支持此模型的系統框架,分析了其設計原則,并對其關鍵部件和工作過程進行剖析;最后給出了此框架的一個應用實例,驗證了此框架的設計。
關鍵詞:協同工作;工作流管理系統;協同工作流模型;應用代理
0引言
工作流技術應用已經非常廣泛,它為各領域的工作流程自動化作出了貢獻。但從目前來看,工作流技術主要著眼于管理或者商業流程的自動化,它對工作流程的開始和結束進行協調和管理。但工作流管理系統并不適合于需要多人協作和頻繁交互的工作流程中的任務,例如多人協同設計或者協同商務談判等。目前,IBM MQ Series Workflow,Lotus Notes等系統都只支持工作組的概念,但不支持群體協作活動。其中Notes利用消息機制和郵件服務器支持了松散的異步協同工作,但并不真正支持交互式協同工作。標準化組織WFMC(工作流管理聯盟)也缺少相關對群體協作支持的標準。
協同工作系統在當前的單任務環境中已經比較成熟,但缺少對業務邏輯的支持,如大型群件系統BSCW。若將協同工作技術和工作流技術相結合,則可同時發揮兩者優勢,支持一類全新的應用,例如,企業內部的協同工作,以及用于電子商務系統的實時協調和交互等。本文將首先針對這類應用提出一個工作模型,并給出了基于WFMC工作流元模型的支持協同工作的工作流模型;接著給出支持此模型的系統框架并分析其關鍵技術;最后給出一個應用實例,并對本文進行總結。
1支持協同工作的工作過程模型
在傳統的工作流工作模型中,工作任務分配由過程定義及其和角色的對應來完成,各任務之間只在時間上有基于某個條件的同步或者先后關系,它并不支持多人進行同步交互協作來完成同一個任務。但隨著效率要求的提高以及一些先進的協同設計和并行工程系統的出現,迫切需要支持多用戶同步交互。例如,在一個設計企業內部,分配設計工作的時候可能需要根據內部組織結構進行頭腦風暴式的討論,而每一個設計子任務需要一個組的設計人員來完成,各設計小組內部需要進行協作和討論,同時對最終設計結果還需要進行評價。

我們可以用圖1所示的工作過程模型來描述此類應用。圖中,圓形部分為工作流系統的流程定義,與工作流定義一致。但在每一個任務內部所進行的活動與通常的工作流系統不同,每一個任務由多個活動組成,每一個活動由—個或者多個組成員來協作完成。這種協作在任務內部進行,組內部成員間通過協同工具進行同步交流與合作,而任務間的異步協作則通過工作
2 支持協同工作的工作流元模型
這里,我們提出一個新的工作流模型來支持上述工作過程。此工作流模型須增加對如下兩方面的支持:一是對工作組概念的支持,二是對協同工具等資源的支持?;赪FMC的工作流元模型,我們給出了如圖2所示的支持協同工作的工作流模型。

上述模型與WFMC的工作流模型的差異在于支持了組的概念,同時提供了對協同工具的支持,從而能夠支持各小組的協同工作。組是為了完成工作流程中某一任務而設置的,是資源的集合,通常包括人及其完成任務所需的其他資源。例如,一個組包含一個管理者,三個圖案設計師,一個軟件工程師,以及某些資源,這個組可以完成某個圖案設計任務。這些組可以是固定的,也可以是為了完成某個活動而臨時產生的。一個組必然屬于某一種組類型。組類型是工作流系統和組之間相互聯系的紐帶,它是根據工作流程中的任務要求而產生的,包含了一系列的任務角色,提供了組和具體資源的動態映射。
此模型中的資源既包括了人,也包括了協同工具和其他資源。與傳統的支持組概念的工作流系統不同,傳統的系統中支持組成員在流程定義完畢后單獨完成一個子任務,而在此模型中,則支持多人在某一活動中的橫向協作。因此該模型提供了多人協作交流的支持工具,如群體協作工具和群體決策工具,如圖2(3)所示。
3 支持協同工作的工作流系統框架
3.1設計原則
支持協同工作的工作流系統框架將為工作流管理系統和協同工作系統的結合提供公共基礎服務,以便在此框架上快速構建應用系統。Le Pallec等人使用多重繼承方式的工作流系統DARE和協作系統COW集成在一起,但存在類的二義性問題和命名問題,而且該方法只針對兩個面向對象系統:Selmin Nurean提出了一個簡單的工作流和群件系統相結合的描述性的框架結構,但對其部件缺少深入闡述。本框架的設計將支持上述工作流元模型,綜合考慮工作流系統和協同系統結合的特點,最終使兩者無縫集成。
框架設計將遵循如下原則:
(1)框架必須適應協同工作系統的動態變化。協同工作系統與應用有關,而且隨著協同工作的進行,協同工具的種類,功能都可能動態變化,此框架必須能夠適應這種變化。
(2)工作流系統和協同工作系統功能上協調。工作流系統強調的是在流程上的自動化,而協同工作強調的是在工作過程中的協作和共享,這兩者之間可自由切換。
(3)工作流系統和協同工作系統的數據交換的快速和一致性。工作流系統和協同工作系統的互操作必然涉及到這兩者的數據交換,協同工作系統需要實時取得工作流系統的當前數據,同時協同工作系統的修改數據必須能及時正確地反饋給工作流系統。
3.2系統框架
根據以上設計原則,我們采用組件設計的思想,把整個框架劃分為應用系統、應用代理和協同工作流引擎三大組件模塊,如圖3所示。其中,應用系統分為兩類:一類是工作流應用系統,它是工作流系統本身運行過程所需的應用;另一類是協同應用系統,它是支撐協同應用的工具。
工作流應用系統和協同應用系統都通過各自的應用代理創建起與協同工作流引擎之間的會話,其中工作流應用代理還完成工作流應用系統和工作流引擎之間的數據交換。在協同工作流引擎內部,工作流引擎和協同系統服務引擎通過數據交換接口進行協同工作。工作流引擎則封裝了WFMS的基本功能,并增加了組管理等內容。
3.3關鍵技術
(1)協同應用代理。它負責創建并監視協同會話。為了適應多種協同應用,協同應用代理必須支持多種接口,如Java類、基于Web的協同應用、基于COM組件的應用等,并且將各種協同應用及其對應的協同工具位置、類型等信息在協同服務引擎中進行注冊。當用戶在工作過程中啟動某個協同任務時,協同應用代理首先查找該任務對應的注冊信息,并判斷該協同工具對于該工作組是否可用;然后根據不同的類型調用相應的接口以啟動指定的協同工具,創建一個新的協同會話。協同服務引擎則通過協同應用代理獲取會話信息,并監視整個會話過程的進行。這種結構的優點是可擴展性非常強,對于一類新的協同應用,只需簡單地加入相應的接口,便可納入此框架。
(2)系統中的數據交換。從圖3中可以看出,系統中的數據流動都是雙向的,其過程分為三個步驟:當工作流應用系統在運行時,若進行協同工作,則首先通過工作流應用代理將數據傳輸給工作流引擎,以保證工作流系統保持最新的數據拷貝;然后通過數據交換適配器傳輸給協同服務引擎;最后,多個協同用戶從協同服務引擎中取得最新數據,完成協同工作。反之,當協同工作結束時,對工作對象的數據進行了修改,工作流應用系統此時也需要得到最新數據,數據流以相反的方向傳給應用系統。
從上述數據交換過程中可以看出,工作流應用代理和數據交換適配器是支持整個數據交換過程的兩個關鍵部件。工作流應用代理的設計只需為多種不同的應用提供一個公共數據接口,即可支持多種應用系統與工作流引擎之間的雙向數據流動。然而,工作流引擎和協同系統服務器之間的數據交換接口是發生在不同系統之間的,因此我們引入代理技術設計了一個數據交換適配器,以實現這一雙向的數據傳輸。

(3)數據交換適配器。它由兩個接口、服務層、XML處理器、JMS等組成,其結構如圖4所示。數據交換適配器代理工作流引擎接收XML消息;代理內部的XML處理器將協同系統服務器的數據請求轉化為XML消息;并且將調用結果解析以后返回給協同工作服務器。它對工作流管理系統的接口負責接收工作流數據,對協同工作服務器的接口負責接收協同數據。服務層則擔任執行者的角色,負責管理XML請求或者響應。XML消息分為請求消息、響應消息和通知消息三類,工作流系統和協同系統之間的數據交換通過這些消息得以實現。各協同客戶端與協同服務的數據交換通過它們本身的協議進行,對本框架透明,從而能支持各類協同應用。
4 應用實例
我們以一個基于上述框架的協同設計系統來說明其如何支持這一大類應用的,如圖5所示。在本系統中,一個新產品復雜的設計過程將以工作流程的方式加以描述,其過程包括設計方案的制定和論證、設計任務的分工、設計成果的組裝等。其中,每一個環節則由協同系統對人和資源進行協調組織,各組成員將使用協同設計工具進行協同設計和交流。例如,在方案制定的過程中需要使用協同編輯和電子白板進行寫作和討論,在方案論證過程中需要使用視頻會議和投票系統,所有將在該任務階段使用的協作工具都將成為該組資源的一部分。
支撐整個系統的框架對與工作流管理和協同系統都具有開放性。每一個設計任務及其相應工作組類型在流程定義中完成,組和協同工具等資源的關系在生成流程實例過程中動態綁定。這樣,工作流程定義和實際的協同工具之間相互獨立。我們完全可以定義一個與圖中所示完全不同的設計流程,每一任務所分配的組類型可以根據實際需要動態改變,而組類型則代表著不同的角色和協同工具的資源組合。因此,在工作流程運行過程中,可以通過組定義的改變來增加或者刪除該組所使用的協同工具。

5 結束語
本文首先分析了工作流管理系統和協同工作系統相結合的必要性。有一大類實際應用需要群體協作,但現代工作流管理系統中,缺少對協同工作的支持。例如,WFMC雖然有—個工作組(WG9)在研究資源模型,但并沒有考慮群體共同參與的活動。同時在協同工作領域,很多軟件和系統雖然支持群體工作,卻忽略了對工作和商業流程以及組織結構的建模,因而不支持群體活動按業務流程進行運作。
在此背景下,本文提出了將兩者進行結合的構想。首先描述了此類應用的一般工作過程模型,并分析了其特點,并在此基礎上給出了將兩者結合的工作流參考模型,此模型結合了工作流的常用概念,明確提出了對組概念和協同工具的支持。然后,描述了一個支持工作流協同系統的框架,分析了其中的一些關鍵技術和部件。最后,給出了一個建立與本框架之上的協同設計原型系統,驗證了此框架對此類應用的良好支持。