解析UML工作流程管理系統

來源:互聯網
上載者:User

解析UML工作流程管理系統

1 工作流程概述

對工作流程的研究起源於二十世紀七十年代,受網路的局限性,最初的工作流程系統主要以企業內部的文檔處理為主。到了二十世紀九十年代,隨著Internet 技術的發展及應用,促進了電子商務應用的極大發展,使得公司與公司之間、公司內部部門之間以及子公司之間的業務相互處理成為可能,這為工作流程的發展帶來了很大的機遇和挑戰。

根據國際有關組織的預測,隨著電子商務的發展,以資料處理為中心的資料庫產品已經進入穩定發展期,以業務過程處理為中心的工作流程產品將進入高速發展期。在國內,隨著企業管理的正常化和規模的不斷擴大,企業的電腦管理將不僅僅停留在資訊資源管理上,而將向更複雜的業務過程管理邁進。

為了實現組織目標,有關商務活動依時序或邏輯關係相互串連構成商務程序。在業務開展過程中,文檔、資訊或任務,依據組織規範在參與者之間傳遞、處理或執行。總體商務程序中,實現了基於電腦輔助處理而達到自動化的全部或部分稱為工作流程。也就是說,工作流程是在電腦輔助下全部或部分自動執行的工作過程,該過程可運行於異質、分布的運行環境中,供多人協同工作。工作流程伺服器是供商務程序可視化設計、管理和控制商務程序的運行、並在實際執行過程中可動態修改商務程序的一種電腦軟體平台。它使得快速開發、部署和運行企業業務管理系統、電子商務系統等成為可能。它也使得企業在複雜多變的市場環境中,為了快速適應市場的變化,在儲存現有投資,現有系統不變的情況下,迅速調整業務或商務流程成為可能。如它可應用在:採購處理、各種申請、訂單與報價處理、員工績效考核、人事變動、貸款審批、索賠處理、B2B、電子商務等。

2 工作流程管理系統概述

工作流程管理系統是定義、建立和執行工作流程的系統,它是一種特殊的電腦支援的協同處理(CSCW,Computer Supported CooperativeWork)軟體系統。

工作流程管理系統的產生

工作流程管理系統(WfMS,WorkflowManagementSystem)是以電腦支援的分布式、協同工作商務程序的自動或半自動化為研究目標的軟體系統。隨著電腦網路,特別是Internet/Intranet 的迅猛發展和應用,電腦支援的分布式、協同工作的工作流程系統在企、事業單位中的地位顯得越來越重要,也有著廣闊的前景。

工作流程管理系統是定義、建立、執行工作流程的系統。開發這類軟體系統就是要協調分布式、協同處理的各個節點上的活動,按照預定義的控制流程程進行執行,以達到對它們的自動執行和有效管理。開發這類軟體有很大的重複性,工作流程管理系統就是將這類軟體的公用的流程式控制制部分(工作流程運行服務、引擎)、管理部分和其他公用部分抽象出來,形成一種軟體開發平台,使用者只需要將它們的控制流程程描述出來,該平台軟體就可對它們的控制流程程進行自動執行和有效地管理,而不需要對每次不同的應用重複地開發。

不同工作流程管理系統可以有不同的實現方法,不同的底層通訊機制,應用的範圍也可能有很大的差距,但所有的工作流程管理系統從使用者的應用程式層上來看,通用工作流程管理系統應該能夠提供以下三個方面的功能支援:

首先是建造功能,即對工作流程的商務程序及組成這些商務程序的活動進行定義和建模。

其次是運行控制功能,即在一定的運行環境下,負責建立、執行和控制工作流程執行個體,啟用相應的資源和應用,並完成過程中從一個活動到另一個活動的控制轉移。它是整個工作流程管理系統的核心部分。

最後是運行互動功能,即在工作流程執行個體的運行中,工作流程管理系統與工作流程參與者(業務工作的參與者或控制者)及外部應用程式進行互動的功能。

由於資訊技術的發展和日趨激烈的商業競爭,人們不再滿足於獨立、零散的辦公自動化和電腦應用,而是需要綜合的、整合化的解決方案。作為一種對常規性事務進行管理、整合的技術,WfMS 的出現是必然的。它可以改進和最佳化商務程序,提高業務工作效率;實現更好的業務過程式控制制,提高顧客服務品質;提高商務程序的柔性等。

3 工作流程管理系統的組成

一個完整的工作流程管理系統中主要包括如下七個部分的組件和資料。

a.流程定義工具

流程定義工具被用來建立電腦可處理的業務流程說明。它可以是形式化的流程定義語言或對象關聯式模式,也可以是簡單地規定使用者間資訊傳輸的一組路由命令。

b.流程定義

流程定義(資料)包含了所有使業務過程能被工作流程執行子系統執行的必要資訊。這些資訊包括起始和終止條件、各個組成活動、活動調度規則、各業務的參與者需要做的工作、相關應用程式和資料的調用資訊等。

c.工作流程執行子系統和工作流程引擎

工作流程執行子系統也稱為(業務)過程執行環境,包括一個或多個工作流程引擎。工作流程引擎是WfMS 的核心軟體組元。它的功能包括:解釋流程定義,建立過程執行個體並控制其執行,調度各項活動,為使用者工作表添加工作項目,通過應用程式介面(API,Application Program Interface)調用應用程式,提供監督和管理功能等。工作流程執行子系統可以包括多個工作流程引擎,不同工作流程引擎通過協作共同執行工作流程。

d.工作流程控制資料

指被工作流程執行子系統和工作流程引擎管理的系統資料,例如工作流程執行個體的狀態資訊、每一活動的狀態資訊等。

e.工作流程相關資料

指與業務過程相關的資料。WfMS 使用這些資料確定工作流程執行個體的狀態轉移,例如過程調度決策資料、活動間的傳輸資料等。工作流程相關資料既可以被工作流程引擎使用,也可以被應用程式調用。

f.工作表和工作表處理常式

工作表列出了與業務過程的參與者相關的一系列工作項目,工作表處理常式則對使用者和工作表之間的互動進行管理。工作表處理常式完成的功能有:支援使用者在工作表中選取一個工作項目,重新分配工作項目,通報工作項目的完成,在工作項目被處理的過程中調用相應的應用程式等。

g.應用程式和應用資料

應用程式可以直接被WfMS 調用或通過應用程式代理程式被間接調用。通過應用程式調用,WfMS 部分或完全自動地完成一個活動,或者對商務參與者的工作提供支援。與工作流程控制資料和相關資料不同,應用資料對應用程式來講是局部資料,對WfMS 的其他組件來說是不可見的。

術語解釋

4 工作流程管理系統功能分析

前面已經介紹過,一個完整的通用工作流程管理系統應當包括七個組件,這裡限於篇幅的原因,只對工作流程管理系統的核心部分:工作流程執行子系統和工作流程引擎進行分析。

工作流程管理系統核心功能

工作流程管理系統的核心組成部分稱為工作流程執行子系統,它為建立、初始化和執行過程執行個體提供了一個運行環境。

在一個工作流程執行子系統中可以包括一個或多個工作流程引擎,前者是一種集中式的實現方式,而後者是一種分布式的實現方式。分布式的實現方式又可以分為同構和異構兩種不同的情況。所謂同構是指在一個運行服務系統中包含了多個相容的工作流程引擎;所謂異構是指在工作流程管理系統中包含了兩個以上異構的工作流程執行子系統。

工作流程引擎是工作流程管理系統的核心軟體組件。它的主要功能有:解釋流程定義,控制過程執行個體(建立、啟用、掛起、終止等),按照流程定義已確定的商務邏輯調用各項活動,為使用者工作表添加工作項目,維護工作流程控制資料和工作流程相關資料,調用應用程式,提供監督,管理和審計功能。

工作流程執行子系統涉及四種資料:工作流程控制資料、工作流程相關資料、組織/角色模型資料和工作表。

第一種,工作流程控制資料。指只由工作流程執行子系統維護的內部控制資料,主要用於表示過程執行個體與活動執行個體的狀態資訊。

第二種,工作流程相關資料。指與業務過程相關的資料,他們由應用程式或由使用者通過工作項目處理來產生和更新,工作流程引擎根據相關資料來確定過程執行個體的狀態轉移,例如過程調度決策資料、活動間的傳輸資料等。

第三種,組織/角色模型資料。是描述組織圖的資料,主要用於確定工作項目的執行者。

第四種,工作表。列出了與工作流程參與者相關的一系列工作項目。  

5 建模執行個體

 

5.1 建立用例視圖

用例視圖從外部使用者的角度捕獲系統的行為。它將系統功能劃分為對活動者(系統的理想使用者)具有意義的事務。這些功能片被稱為用例。用例通過系統與一個或多個活動者之間的一系列訊息描述了與活動者的互動。其活動者包括人員、其它的電腦系統和進程。

活動者用一個小人表示,活動者的名字標在這個小人的下方。用例用一個橢圓表示,用例的名字標在橢圓中或下方,用實線與同自身通訊的活動者相串連。用例視圖對活動者,所感知的系統功能進行建模,目的是列舉活動者和用例,顯示活動者在每個用例中的參與情況。

a. 工作流程執行子系統

圖1表示工作流程執行子系統的使用案例圖。活動者包括WfClient(工作流程用戶端)、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 用例的注釋,不在使用案例圖上標識,只作為系統詳細設計時的要點。對其餘用例的分析方法與之類似。

過程監督伺服器作為引擎容器的一部分,主要提供外部對引擎容器的健全狀態的監督,即對引擎當前健全狀態的查詢。

譬如,當用戶端或管理端需要瞭解引擎的健全狀態時,首先發出一個訊息請求,Message Service器接受到該訊息後對訊息進行解釋,如果屬於查詢引擎的健全狀態,則調用監督服務部分提供的API(應用程式介面)對引擎進行查詢,然後將結果返回至要求者。

監督伺服器處理的查詢請求根據請求對象的不同主要有如下內容:

引擎容器健全狀態的查詢;各引擎健全狀態的查詢;流程定義資訊的查詢;過程執行個體資訊的查詢;活動執行個體資訊的查詢;工作項目資訊的查詢;同步命令請求的響應。

b.工作流程引擎

圖2表示工作流程引擎的使用案例圖。其中的活動者包括EngineManager(引擎管理器)與LogFiles(記錄檔)。

EngineManager 負責控制工作流程中所有元素的狀態,是工作流程調度的核心。LogFiles 階段性將固定格式的文字記錄為日誌,用以儲存。這裡的用例有ProcessControl(控制過程執行個體)、TransitionControl(控制轉移)、ActivityControl(控制活動)、WorkItemControl(控制工作項目)、DanamaticModify(動態修改流程)、CreateLogfile(建立記錄檔)。EngineManager 根據一定的條件,通過ProcessControl、TransitionControl、ActivityControl、WorkItemControl 與DanamaticModify,控制工作流程各個組成元素的狀態,以達到控制工作流程的目的。

c.過程監督

圖3表示過程監督使用案例圖。其中的活動者包括EnactmentDB(工作流程運行資料庫)與engineContainer(引擎容器)。用例有EngineQuery(對引擎的查詢)、ProcessDefQuery(對流程定義資訊的查詢)、EngineContainerQuery(引擎容器健全狀態的查詢)、ProcessInstanceQuery(對過程執行個體進行查詢)、ActivityInstanceQuery(對活動執行個體進行查詢)、WorkItemQuery(對工作項目進行查詢)、TransitionQuery(對轉移資訊查詢)。

這裡僅對用例ProcessInstanceQuery 進行詳細功能分析,對其餘用例的分析方法與之類似。

ProcessInstanceQuery 是對系統中的過程執行個體進行查詢,主要包含如下內容:取得過程執行個體列表:得到系統中的所有過程執行個體的一個列表;從過程執行個體列表中取得一個過程執行個體的資訊;根據給定的過程執行個體編號得到該過程執行個體的詳細資料;關閉已經開啟的過程執行個體列表;取得系統中過程執行個體的各種狀態的一個列表;根據給定的過程執行個體編號查詢其狀態;關閉開啟的過程執行個體列表;取得系統中過程執行個體的各種屬性資訊的列表。

5.2 建立互動視圖

 

互動視圖描述了實現系統行為角色之間的訊息交換序列。分類角色是對互動中充當特殊角色的對象的描述。互動視圖提供了系統中行為在全域的描述,顯示了多個角色間的控制流程程。互動視圖用側重點不同的兩種圖來顯示:順序圖和共同作業圖表。

訊息指角色間的單向通訊,從寄件者到接收者的攜帶資訊的控制流程。訊息可能帶有角色間傳遞值的參數。

順序圖和共同作業圖表均顯示了互動,但它們強調了不同的方面。順序圖顯示了時間順序,但角色間的關係是隱式的。共同作業圖表表現了角色之間的關係,並將訊息關聯至關係,但時間順序由於用順序號表達,並不十分明顯。每一種圖應根據主要的關注焦點而使用。

a.順序圖

順序圖表示了隨時間安排的一系列訊息。每個分類角色顯示為一條生命線,代表整個互動期間上的角色。訊息則顯示為生命線之間的箭頭。順序圖可以表達情境,即一項事務的特定曆史。

順序圖以平面圖表來顯示互動。縱向是時間軸,時間自上而下。橫向顯示了代表協作中單個對象的分類角色。每個對象用方框表示,對象的名字在方框內部,並在名字的下方加底線。每個分類角色表現為垂直列-生命線。在角色存在的時間內,生命線顯示為虛線;在角色的過程啟用時間內,生命線顯示為雙線。

訊息顯示為從一個角色生命線出發至另一個角色生命線的箭頭,箭頭用從上而下來的時間順序來安排。順序圖的一個用途是顯示用例的行為序列。當行為被實現時,每個順序圖中的訊息同對象的操作或狀態機器中遷移上的事件觸發相一致。

圖4 表示處理請求用例的順序圖。圖中五個方框分別表示五個對象:ProcessMonitor、EngineManager、Engine、EntactmentDB、Logfiles。這個用例是由ProcessMonitor 接收使用者操作,再將這些操作轉換成固定的請求,發送給引擎執行而產生的。

當ProcessMonitor 接收到使用者在介面上所作的操作後,將這些操作轉換為固定的命令請求,發送給EngineManager。EngineManager 再根據接收到命令的類別,將命令分發給不同的Engine。Engine 則具體執行相應的命令。Engine 執行完命令後,通知EntactmentDB 修改相應的資料。接下來,Engine 再通知Logfiles 將所作的操作記錄下來,以供以後查詢。最後,Engine 直接將結果返回給ProcessMonitor,由ProcessMonitor將結果封裝,顯示給使用者。

b.共同作業圖表

共同作業圖表對互動中存在意義的對象和鏈建模。對象和鏈僅在提供的上下文中存在意義。分類角色描述了對象,關聯角色描述了協作中的鏈。共同作業圖表通過圖形的幾何排布顯示互動中的角色。訊息顯示為附屬在串連分類角色的關係直線上的箭頭。訊息的順序由訊息描述前的順序號來表示。

共同作業圖表的一個用途是表現操作的實現。協作顯示了操作的參數和局部變數,以及更永久性的關聯。當行為被實現時,訊息的順序與程式的嵌套調用結構和訊號傳遞一致。

圖5表示對應於處理請求用例的共同作業圖表。這個用例是由ProcessMonitor 接收使用者操作,再將這些操作轉換成固定的請求,發送給引擎執行而產生的。這個共同作業圖表表現了處理請求用例所涉及的五個相關對象之間相互協作的關係。

5.3 建立狀態機器視圖

狀態機器視圖通過對一種對象的可能生命曆史進行建模,描述了對象在時間序列上的動態行為。每個對象被認為是通過檢測事件並對之響應來與外界進行通訊的孤立實體。事件表達了對象可以檢測的變動-對象間的調用或顯示訊號、某個值的改變或時間的推移。任何影響對象的事物可以被描述成事件。真實世界發生的事情被建模成外部世界至系統的訊號。

狀態指就某個特定類而言,對於發生的事件具有相同性質響應的一系列對象值。換言之,同一狀態的所有對象以相同的方式響應某個事件,即對於給定的所有對象在接收到同一事件時執行相同的動作。而不同狀態的對象可能對相同事件具有不同的響應,執行不同的動作。

狀態機器包含由事件串連的狀態。每個狀態對對象生命期中的一段時間建模,該時間內對象滿足一定的條件。當事件發生時,它可能導致遷移的激發,使對象改變至新狀態。當遷移激發時,附屬於遷移的動作可 能被執行。狀態機器在UML 中顯示為狀態圖。

在狀態機器視圖中,狀態用帶圓角的長方形表示,初始狀態用實心填充的圓表示,結束狀態用實心填充的圓外套一個圓圈表示。

圖6 表示過程執行個體的狀態機器視圖。可以看出,一個工作流程定義的過程執行個體,在運行時可能有五種不同的過程,分別為初始狀態、就緒狀態、運行狀態、掛起狀態與結束狀態。

 

一個過程執行個體在初始時,均為初始狀態(initial state)。根據需要,某個過程執行個體被建立(create),成為就緒狀態(Ready)。隨後,使用者可以根據需要,選擇就緒狀態的過程執行個體進行啟動(start),被啟動的過程執行個體的狀態就變為運行狀態(Running)。處於就緒狀態和運行狀態的過程執行個體都可以通過取消操作(abort)轉變為結束狀態(end state)。處於運行狀態的過程執行個體,通過掛起操作(hold),可以轉變為暫時停止的掛起狀態(Holded),同時處於掛起狀態的過程執行個體也可以通過運行操作(run)轉變為運行狀態。掛起狀態與結束狀態的區別在於掛起狀態並不釋放所佔用的資源,因而是可以恢複的。最後,一個處於運行狀態的過程執行個體如果運行完畢,通過完成操作(finish)轉變為結束狀態。

狀態機器可以用於描述使用者介面、裝置控制和其它互動式子系統。它們還可用於在生命期中經曆了若干特定階段,每個階段擁有特殊的行為的對象。

5.4 建立即時檢視

即時檢視是用於顯示執行某個計算過程中的運算活動的狀態機器的一種特殊形式。活動狀態代表了運算執行的狀態:流程的步驟或操作的執行。活動圖表描述了順序和並發活動分組。即時檢視表達為活動圖表。

活動圖表包含活動狀態。活動狀態表現了過程中語句的執行或工作流程中活動的運行。與一般等待狀態等待事件不同,活動狀態等待的是運算的結束。當活動結束時,執行處理到圖中的下一個活動。前一個活動結束時,活動圖表中的結束遷移被激發。活動狀態通常沒有外來事件的遷移,但它們可以由外圍狀態的事件而被取消。

在活動圖表中,用左右兩段是圓弧的長方形表示活動,用較粗的橫線表示活動的分發,用帶有箭頭的線表示活動處理的先後順序。

圖7 表示使用者的操作活動圖表。使用者在使用系統所提供的功能之前,首先應當登入系統,也就是說,操作的第一步是登入(login)。登入之後,使用者可以在三種操作中任選一個執行:選擇流程定義(choose process define)、選擇過程執行個體(choose process instance)以及選擇工作項目(choose workitem)。這三個活動的執行,沒有先後順序,完全由使用者進行選擇。

 

當使用者選擇了流程定義後,可以建立一個所選的流程定義的執行個體,也就是執行建立流程定義活動(create process define);當使用者選擇了一個過程執行個體後,根據這個過程執行個體狀態的不同,可以對這個過程執行個體進行終止(abort)、啟動(start)、掛起(hold)與運行(run)等操作,這些操作的執行是沒有先後順序的;當使用者選擇了一個工作項目後,可以執行這個工作項目,也就是做這個工作項目的內容(do workitem)。

根據以上使用用例視圖、互動視圖、狀態機器視圖以及即時檢視對工作流程管理系統所應具有的功能層次進行的分析,對通用工作流程管理系統要達到的目標,應當有了一個較為清晰的認識。而這些認識與理解,將為進一步的設計,奠定良好的基礎。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.