前面已經介紹過,一個完整的通用工作流管理系統應當包括七個部件,這里限于篇幅的原因,只對工作流管理系統的核心部分:工作流執行子系統和工作流引擎進行分析。
工作流管理系統核心功能
工作流管理系統的核心組成部分稱為工作流執行子系統,它為創建、初始化和執行過程實例提供了一個運行環境。
在一個工作流執行子系統中可以包括一個或多個工作流引擎,前者是一種集中式的實現方式,而后者是一種分布式的實現方式。分布式的實現方式又可以分為同構和異構兩種不同的情況。所謂同構是指在一個運行服務系統中包含了多個兼容的工作流引擎;所謂異構是指在工作流管理系統中包含了兩個以上異構的工作流執行子系統。
工作流引擎是工作流管理系統的核心軟件部件。它的主要功能有:解釋過程定義,控制過程實例(創建、激活、掛起、終止等),按照過程定義已確定的業務邏輯調用各項活動,為用戶工作表添加工作項,維護工作流控制數據和工作流相關數據,調用應用程序,提供監督,管理和審計功能。
工作流執行子系統涉及四種數據:工作流控制數據、工作流相關數據、組織/角色模型數據和工作表。
第一種,工作流控制數據。指只由工作流執行子系統維護的內部控制數據,主要用于表示過程實例與活動實例的狀態信息。
第二種,工作流相關數據。指與業務過程相關的數據,他們由應用程序或由用戶通過工作項處理來產生和更新,工作流引擎根據相關數據來確定過程實例的狀態轉移,例如過程調度決策數據、活動間的傳輸數據等。
第三種,組織/角色模型數據。是描述組織結構的數據,主要用于確定工作項的執行者。
第四種,工作表。列出了與工作流參與者相關的一系列工作項。
5 建模實例
5.1 創建用例視圖
用例視圖從外部用戶的角度捕獲系統的行為。它將系統功能劃分為對活動者(系統的理想用戶)具有意義的事務。這些功能片被稱為用例。用例通過系統與一個或多個活動者之間的一系列消息描述了與活動者的交互。其活動者包括人員、其它的計算機系統和進程。
活動者用一個小人表示,活動者的名字標在這個小人的下方。用例用一個橢圓表示,用例的名字標在橢圓中或下方,用實線與同自身通信的活動者相連接。用例視圖對活動者,所感知的系統功能進行建模,目的是列舉活動者和用例,顯示活動者在每個用例中的參與情況。
a. 工作流執行子系統

圖1表示工作流執行子系統的用例圖;顒诱甙╓fClient(工作流客戶端)、Monitor(工作流監控端)、DefinitionDB(工作流定義數據庫)、EnactmentDB(工作流運行數據庫)、OrganizationDB(組織機構數據庫)、ApplicationDB(應用程序數據庫)、WorkItemDB(工作項數據庫)、ConfigFile(工作流系統配置文件)。這里,WfClient 作為接收用戶交互的界面部分,將用戶所作的行為,依照固定的規則,將請求送給工作流執行子系統進行處理。Monitor 作為接收系統管理員交互的界面部分,將系統管理員對系統作出的調整,發送給工作流執行子系統進行處理。其余的DefinitionDB 等活動者,負責將工作流執行子系統每一步的操作與狀態記錄到數據庫中,以永久保存。用例包括ResourceLocate ( 資源定位)、EngineContainer ( 引擎容器)、ProcessDefLoad(定義裝載)、ProcessMonitor(過程監控)、Util(公用程序)。其中,EngineContainer 通過ResourceLocate 定位所有系統所用到的資源,表EngineContainer 用例使用ResourceLocate 用例,用帶有箭頭的實線表示。EngineContainer 不直接與用戶交互,活動者對工作流的參與都是通過ProcessMonitor 這個工作流執行子系統的入口來進行的。EngineContainer 通過ProcessDefLoad 將現有的工作流定義裝入,這樣才能運行該工作流,EngineContainer 用例與ResourceLocate 用例之間是使用關系。