表1 工作流管理系統術語解釋
術語/縮寫 |
解 釋 |
過程定義 |
由過程定義工具所定義的一個工作流過程 |
過程實例 |
過程定義運行之后轉化為過程實例,一個過程定義可以產生多個過程實例 |
活動 |
一個相對獨立的工作的描述,它是過程定義的一個重要組成部分 |
活動實例 |
活動運行之后的一個實例 |
工作項 |
在一個活動實例中,工作流參與者所需執行的工作 |
工作項列表 |
一個參與者所負責的所有工作項的詳細描述 |
信牌箱 |
活動之間傳遞信息的驛站 |
轉移 |
從活動到信牌箱或從信牌箱到活動,描述信牌箱與活動之間關系的連接 |
工作流控制數據 |
表示過程實例、活動實例的狀態信息 |
工作流相關數據 |
與業務過程相關的數據,工作流引擎根據它們來確定過程實例的狀態轉移 |
日志數據 |
系統中所有發生的事件及相應數據的記錄 |
運行服務器 |
負責整個過程的運行、調度、查詢及日志的記錄等 |
過程定義狀態 |
表示過程定義目前所處的狀態,如:是否已發布等 |
過程實例狀態 |
表示過程實例目前所處的狀態,如:運行、掛起等 |
活動實例狀態 |
表示活動實例目前所處的狀態,如:運行、掛起等 |
工作項狀態 |
表示工作項目前所處的狀態,如:運行、掛起等 |
引擎 |
運行服務器的核心,負責過程實例的執行、調度 |
引擎容器 |
包含了多個引擎,并提供多引擎管理功能 |
4 工作流管理系統功能分析
前面已經介紹過,一個完整的通用工作流管理系統應當包括七個部件,這里限于篇幅的原因,只對工作流管理系統的核心部分:工作流執行子系統和工作流引擎進行分析。
工作流管理系統核心功能
工作流管理系統的核心組成部分稱為工作流執行子系統,它為創建、初始化和執行過程實例提供了一個運行環境。
在一個工作流執行子系統中可以包括一個或多個工作流引擎,前者是一種集中式的實現方式,而后者是一種分布式的實現方式。分布式的實現方式又可以分為同構和異構兩種不同的情況。所謂同構是指在一個運行服務系統中包含了多個兼容的工作流引擎;所謂異構是指在工作流管理系統中包含了兩個以上異構的工作流執行子系統。
工作流引擎是工作流管理系統的核心軟件部件。它的主要功能有:解釋過程定義,控制過程實例(創建、激活、掛起、終止等),按照過程定義已確定的業務邏輯調用各項活動,為用戶工作表添加工作項,維護工作流控制數據和工作流相關數據,調用應用程序,提供監督,管理和審計功能。
工作流執行子系統涉及四種數據:工作流控制數據、工作流相關數據、組織/角色模型數據和工作表。
第一種,工作流控制數據。指只由工作流執行子系統維護的內部控制數據,主要用于表示過程實例與活動實例的狀態信息。
第二種,工作流相關數據。指與業務過程相關的數據,他們由應用程序或由用戶通過工作項處理來產生和更新,工作流引擎根據相關數據來確定過程實例的狀態轉移,例如過程調度決策數據、活動間的傳輸數據等。
第三種,組織/角色模型數據。是描述組織結構的數據,主要用于確定工作項的執行者。
第四種,工作表。列出了與工作流參與者相關的一系列工作項。
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 用例之間是使用關系。
這里僅給出用例ProcessMonitor 的具體功能分析。這些功能分析作為對ProcessMonitor 用例的注釋,不在用例圖上標識,只作為系統詳細設計時的要點。對其余用例的分析方法與之類似。
過程監督服務器作為引擎容器的一部分,主要提供外部對引擎容器的運行狀況的監督,即對引擎當前運行狀況的查詢。
譬如,當客戶端或管理端需要了解引擎的運行狀況時,首先發出一個消息請求,消息服務器接受到該消息后對消息進行解釋,如果屬于查詢引擎的運行狀況,則調用監督服務部分提供的API(應用程序接口)對引擎進行查詢,然后將結果返回至請求者。
監督服務器處理的查詢請求根據請求對象的不同主要有如下內容:
引擎容器運行狀況的查詢;各引擎運行狀況的查詢;過程定義信息的查詢;過程實例信息的查詢;活動實例信息的查詢;工作項信息的查詢;同步命令請求的響應。
文章來源于領測軟件測試網 http://www.kjueaiud.com/