基于UML的工作流管理系統分析_第1頁
基于UML的工作流管理系統分析_第2頁
基于UML的工作流管理系統分析_第3頁
基于UML的工作流管理系統分析_第4頁
基于UML的工作流管理系統分析_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于UML的工作流管理系統分析引言隨著社會生產的流程化,工作流起著越來越重要的作用。根據WFMC的定義,工作流(Workflow)就是自動運作的業(yè)務過程部分或整體,表現為參與者對文件、信息或任務按照規(guī)程采取行動,并令其在參與者之間傳遞。簡單地說,工作流就是一系列相互銜接、自動進行的業(yè)務活動或任務。本文將詳細介紹基于UML的工作流管理系統分析與建模。1工作流概述對工作流的研究起源于二十世紀七十年代,受網絡的局限性,最初的工作流系統主要以企業(yè)內部的文檔處理為主。到了二十世紀九十年代,隨著Internet技術的發(fā)展及應用,促進了電子商務應用的極大發(fā)展,使得公司與公司之間、公司內部部門之間以及子公司之

2、間的業(yè)務相互處理成為可能,這為工作流的發(fā)展帶來了很大的機遇和挑戰(zhàn)。根據國際有關組織的預測,隨著電子商務的發(fā)展,以數據處理為中心的數據庫產品已經進入穩(wěn)定發(fā)展期,以業(yè)務過程處理為中心的工作流產品將進入高速發(fā)展期。在國內,隨著企業(yè)管理的規(guī)范化和規(guī)模的不斷擴大,企業(yè)的計算機管理將不僅僅停留在信息資源管理上,而將向更復雜的業(yè)務過程管理邁進。為了實現組織目標,有關業(yè)務活動依時序或邏輯關系相互連接構成業(yè)務流程。在業(yè)務開展過程中,文檔、信息或任務,依據組織規(guī)范在參與者之間傳遞、處理或執(zhí)行。總體業(yè)務流程中,實現了基于計算機輔助處理而達到自動化的全部或部分稱為工作流。也就是說,工作流是在計算機輔助下全部或部分自動

3、執(zhí)行的工作過程,該過程可運行于異質、分布的運行環(huán)境中,供多人協同工作。工作流服務器是供業(yè)務流程可視化設計、管理和控制業(yè)務流程的運行、并在實際執(zhí)行過程中可動態(tài)修改業(yè)務流程的一種計算機軟件平臺。它使得快速開發(fā)、部署和運行企業(yè)業(yè)務管理系統、電子商務系統等成為可能。它也使得企業(yè)在復雜多變的市場環(huán)境中,為了快速適應市場的變化,在保存現有投資,現有系統不變的情況下,迅速調整業(yè)務或商務流程成為可能。如它可應用在:采購處理、各種申請、訂單與報價處理、員工績效考核、人事變動、貸款審批、索賠處理、B2B、電子商務等。2工作流管理系統概述工作流管理系統是定義、創(chuàng)建和執(zhí)行工作流的系統,它是一種特殊的計算機支持的協同處

4、理(CSCW,Computer Supported Cooperative Work)軟件系統。工作流管理系統的產生工作流管理系統(WFMS,Workflow Management System)是以計算機支持的分布式、協同工作業(yè)務流程的自動或半自動化為研究目標的軟件系統。隨著計算機網絡,特別是Internet/Intranet的迅猛發(fā)展和應用,計算機支持的分布式、協同工作的工作流系統在企、事業(yè)單位中的地位顯得越來越重要,也有著廣闊的前景。工作流管理系統是定義、創(chuàng)建、執(zhí)行工作流的系統。開發(fā)這類軟件系統就是要協調分布式、協同處理的各個節(jié)點上的活動,按照預定義的控制流程進行執(zhí)行,以達到對它們的自動

5、執(zhí)行和有效的管理。開發(fā)這類軟件有很大的重復性,工作流管理系統就是將這類軟件的公共的流程控制部分(工作流運行服務、引擎)、管理部分和其他公共部分抽象出來,形成一種軟件開發(fā)平臺,用戶只需要將它們的控制流程描述出來,該平臺軟件就可對它們的控制流程進行自動執(zhí)行和有效地管理,而不需要對每次不同的應用重復地開發(fā)。不同工作流管理系統可以有不同的實現方法,不同的底層通訊機制,應用的范圍也可能有很大的差距,但所有的工作流管理系統從用戶的應用層上來看,通用工作流管理系統應該能夠提供以下三個方面的功能支持:首先是建造功能,即對工作流的業(yè)務流程及組成這些業(yè)務流程的活動進行定義和建模。其次是運行控制功能,即在一定的運行

6、環(huán)境下,負責創(chuàng)建、執(zhí)行和控制工作流實例,激活相應的資源和應用,并完成過程中從一個活動到另一個活動的控制轉移。它是整個工作流管理系統的核心部分。最后是運行交互功能,即在工作流實例的運行中,工作流管理系統與工作流參與者(業(yè)務工作的參與者或控制者)及外部應用程序進行交互的功能。由于信息技術的發(fā)展和日趨激烈的商業(yè)競爭,人們不再滿足于獨立、零散的辦公自動化和計算機應用,而是需要綜合的、集成化的解決方案。作為一種對常規(guī)性事務進行管理、集成的技術,WFMS的出現是必然的。它可以改進和優(yōu)化業(yè)務流程,提高業(yè)務工作效率;實現更好的業(yè)務過程控制,提高顧客服務質量;提高業(yè)務流程的柔性等。3工作流管理系統的組成一個完整

7、的工作流管理系統中主要包括如下七個部分的部件和數據。a.過程定義工具過程定義工具被用來創(chuàng)建計算機可處理的業(yè)務過程描述。它可以是形式化的過程定義語言或對象關系模型,也可以是簡單地規(guī)定用戶間信息傳輸的一組路由命令。b.過程定義過程定義(數據)包含了所有使業(yè)務過程能被工作流執(zhí)行子系統執(zhí)行的必要信息。這些信息包括起始和終止條件、各個組成活動、活動調度規(guī)則、各業(yè)務的參與者需要做的工作、相關應用程序和數據的調用信息等。c.工作流執(zhí)行子系統和工作流引擎工作流執(zhí)行子系統也稱為(業(yè)務)過程執(zhí)行環(huán)境,包括一個或多個工作流引擎。工作流引擎是WFMS的核心軟件組元。它的功能包括:解釋過程定義,創(chuàng)建過程實例并控制其執(zhí)行

8、,調度各項活動,為用戶工作表添加工作項,通過應用程序接口(API,Application Program Interface)調用應用程序,提供監(jiān)督和管理功能等。工作流執(zhí)行子系統可以包括多個工作流引擎,不同工作流引擎通過協作共同執(zhí)行工作流。d.工作流控制數據指被工作流執(zhí)行子系統和工作流引擎管理的系統數據,例如工作流實例的狀態(tài)信息、每一活動的狀態(tài)信息等。e.工作流相關數據指與業(yè)務過程相關的數據。WFMS使用這些數據確定工作流實例的狀態(tài)轉移,例如過程調度決策數據、活動間的傳輸數據等。工作流相關數據既可以被工作流引擎使用,也可以被應用程序調用。f.工作表和工作表處理程序工作表列出了與業(yè)務過程的參與者

9、相關的一系列工作項,工作表處理程序則對用戶和工作表之間的交互進行管理。工作表處理程序完成的功能有:支持用戶在工作表中選取一個工作項,重新分配工作項,通報工作項的完成,在工作項被處理的過程中調用相應的應用程序等。g.應用程序和應用數據應用程序可以直接被WFMS調用或通過應用程序代理被間接調用。通過應用程序調用,WFMS部分或完全自動地完成一個活動,或者對業(yè)務參與者的工作提供支持。與工作流控制數據和相關數據不同,應用數據對應用程序來講是局部數據,對WFMS的其他部件來說是不可見的。術語解釋表1工作流管理系統術語解釋術語縮寫解釋過程定義由過程定義工具所定義的一個工作流過程過程實例過程定義運行之后轉化

10、為過程實例,一個過程定義可以產生多個過程實例活動一個相對獨立的工作的描述,它是過程定義的一個重要組成部分活動實例活動運行之后的一個實例工作項在一個活動實例中,工作流參與者所需執(zhí)行的工作工作項列表一個參與者所負責的所有工作項的詳細描述信牌箱活動之間傳遞信息的驛站轉移從活動到信牌箱或從信牌箱到活動,描述信牌箱與活動之間關系的連接工作流控制數據表示過程實例、活動實例的狀態(tài)信息工作流相關數據與業(yè)務過程相關的數據,工作流引擎根據它們來確定過程實例的狀態(tài)轉移日志數據系統中所有發(fā)生的事件及相應數據的記錄運行服務器負責整個過程的運行、調度、查詢及日志的記錄等過程定義狀態(tài)表示過程定義目前所處的狀態(tài),如:是否已發(fā)

11、布等過程實例狀態(tài)表示過程實例目前所處的狀態(tài),如:運行、掛起等活動實例狀態(tài)表示活動實例目前所處的狀態(tài),如:運行、掛起等工作項狀態(tài)表示工作項目前所處的狀態(tài),如:運行、掛起等引擎運行服務器的核心,負責過程實例的執(zhí)行、調度引擎容器包含了多個引擎,并提供多引擎管理功能4工作流管理系統功能分析前面已經介紹過,一個完整的通用工作流管理系統應當包括七個部件,這里限于篇幅的原因,只對工作流管理系統的核心部分:工作流執(zhí)行子系統和工作流引擎進行分析。工作流管理系統核心功能工作流管理系統的核心組成部分稱為工作流執(zhí)行子系統,它為創(chuàng)建、初始化和執(zhí)行過程實例提供了一個運行環(huán)境。在一個工作流執(zhí)行子系統中可以包括一個或多個工作

12、流引擎,前者是一種集中式的實現方式,而后者是一種分布式的實現方式。分布式的實現方式又可以分為同構和異構兩種不同的情況。所謂同構是指在一個運行服務系統中包含了多個兼容的工作流引擎;所謂異構是指在工作流管理系統中包含了兩個以上異構的工作流執(zhí)行子系統。工作流引擎是工作流管理系統的核心軟件部件。它的主要功能有:解釋過程定義,控制過程實例(創(chuàng)建、激活、掛起、終止等),按照過程定義已確定的業(yè)務邏輯調用各項活動,為用戶工作表添加工作項,維護工作流控制數據和工作流相關數據,調用應用程序,提供監(jiān)督,管理和審計功能。工作流執(zhí)行子系統涉及四種數據:工作流控制數據、工作流相關數據、組織/角色模型數據和工作表。第一種,

13、工作流控制數據。指只由工作流執(zhí)行子系統維護的內部控制數據,主要用于表示過程實例與活動實例的狀態(tài)信息。第二種,工作流相關數據。指與業(yè)務過程相關的數據,他們由應用程序或由用戶通過工作項處理來產生和更新,工作流引擎根據相關數據來確定過程實例的狀態(tài)轉移,例如過程調度決策數據、活動間的傳輸數據等。第三種,組織/角色模型數據。是描述組織結構的數據,主要用于確定工作項的執(zhí)行者。第四種,工作表。列出了與工作流參與者相關的一系列工作項。5建模實例5.1創(chuàng)建用例視圖用例視圖從外部用戶的角度捕獲系統的行為。它將系統功能劃分為對活動者(系統的理想用戶)具有意義的事務。這些功能片被稱為用例。用例通過系統與一個或多個活動

14、者之間的一系列消息描述了與活動者的交互。其活動者包括人員、其它的計算機系統和進程。活動者用一個小人表示,活動者的名字標在這個小人的下方。用例用一個橢圓表示,用例的名字標在橢圓中或下方,用實線與同自身通信的活動者相連接。用例視圖對活動者,所感知的系統功能進行建模,目的是列舉活動者和用例,顯示活動者在每個用例中的參與情況。a.工作流執(zhí)行子系統圖1表示工作流執(zhí)行子系統的用例圖?;顒诱甙╓F Client(工作流客戶端)、Monitor(工作流監(jiān)控端)、Definition DB(工作流定義數據庫)、Enactment DB(工作流運行數據庫)、Organization DB(組織機構數據庫)、Ap

15、plication DB(應用程序數據庫)、WorkItem DB(工作項數據庫)、ConfigFile(工作流系統配置文件)。這里,WF Client作為接收用戶交互的界面部分,將用戶所作的行為,依照固定的規(guī)則,將請求送給工作流執(zhí)行子系統進行處理。Monitor作為接收系統管理員交互的界面部分,將系統管理員對系統作出的調整,發(fā)送給工作流執(zhí)行子系統進行處理。其余的Definition DB等活動者,負責將工作流執(zhí)行子系統每一步的操作與狀態(tài)記錄到數據庫中,以永久保存。用例包括Resource Locate(資源定位)、Engine Container(引擎容器)、Process DefLoad(

16、定義裝載)、Process Monitor(過程監(jiān)控)、Util(公用程序)。其中,Engine Container通過Resource Locate定位所有系統所用到的資源,表Engine Container用例使用Resource Locate用例,用帶有箭頭的實線表示。Engine Container不直接與用戶交互,活動者對工作流的參與都是通過Process Monitor這個工作流執(zhí)行子系統的入口來進行的。Engine Container通過Process DefLoad將現有的工作流定義裝入,這樣才能運行該工作流,Engine Container用例與Resource Locate

17、用例之間是使用關系。這里僅給出用例Process Monitor的具體功能分析。這些功能分析作為對Process Monitor用例的注釋,不在用例圖上標識,只作為系統詳細設計時的要點。對其余用例的分析方法與之類似。過程監(jiān)督服務器作為引擎容器的一部分,主要提供外部對引擎容器的運行狀況的監(jiān)督,即對引擎當前運行狀況的查詢。譬如,當客戶端或管理端需要了解引擎的運行狀況時,首先發(fā)出一個消息請求,消息服務器接受到該消息后對消息進行解釋,如果屬于查詢引擎的運行狀況,則調用監(jiān)督服務部分提供的API(應用程序接口)對引擎進行查詢,然后將結果返回至請求者。監(jiān)督服務器處理的查詢請求根據請求對象的不同主要有如下內容

18、:引擎容器運行狀況的查詢;各引擎運行狀況的查詢;過程定義信息的查詢;過程實例信息的查詢;活動實例信息的查詢;工作項信息的查詢;同步命令請求的響應。b.工作流引擎圖2表示工作流引擎的用例圖。其中的活動者包括Engine Manager(引擎管理器)與LogFiles(日志文件)。Engine Manager負責控制工作流中所有元素的狀態(tài),是工作流調度的核心。LogFiles階段性將固定格式的文字記錄為日志,用以保存。這里的用例有Process Control(控制過程實例)、Transition Control(控制轉移)、Activity Control(控制活動)、WorkItem Cont

19、rol(控制工作項)、Dynamitic Modify(動態(tài)修改流程)、Create Logfile(創(chuàng)建日志文件)。Engine Manager根據一定的條件,通過Process Control、Transition Control、Activity Control、WorkItem Control與Dynamitic Modify,控制工作流各個組成元素的狀態(tài),以達到控制工作流的目的。c.過程監(jiān)督圖3表示過程監(jiān)督用例圖。其中的活動者包括Enactment DB(工作流運行數據庫)與engine Container(引擎容器)。用例有Engine Query(對引擎的查詢)、Process

20、DefQuery(對過程定義信息的查詢)、Engine Container Query(引擎容器運行狀況的查詢)、Process Instance Query(對過程實例進行查詢)、Activity Instance Query(對活動實例進行查詢)、WorkItem Query(對工作項進行查詢)、Transition Query(對轉移信息查詢)。這里僅對用例Process Instance Query進行詳細功能分析,對其余用例的分析方法與之類似。Process Instance Query是對系統中的過程實例進行查詢,主要包含如下內容:取得過程實例列表:得到系統中的所有過程實例的一個列

21、表;從過程實例列表中取得一個過程實例的信息;根據給定的過程實例編號得到該過程實例的詳細信息;關閉已經打開的過程實例列表;取得系統中過程實例的各種狀態(tài)的一個列表;根據給定的過程實例編號查詢其狀態(tài);關閉打開的過程實例列表;取得系統中過程實例的各種屬性信息的列表。5.2創(chuàng)建交互視圖交互視圖描述了實現系統行為角色之間的消息交換序列。分類角色是對交互中充當特殊角色的對象的描述。交互視圖提供了系統中行為在全局的描述,顯示了多個角色間的控制流程。交互視圖用側重點不同的兩種圖來顯示:順序圖和協作圖。消息指角色間的單向通信,從發(fā)送者到接收者的攜帶信息的控制流。消息可能帶有角色間傳遞值的參數。順序圖和協作圖均顯示

22、了交互,但它們強調了不同的方面。順序圖顯示了時間順序,但角色間的關系是隱式的。協作圖表現了角色之間的關系,并將消息關聯至關系,但時間順序由于用順序號表達,并不十分明顯。每一種圖應根據主要的關注焦點而使用。a.順序圖順序圖表示了隨時間安排的一系列消息。每個分類角色顯示為一條生命線,代表整個交互期間上的角色。消息則顯示為生命線之間的箭頭。順序圖可以表達場景,即一項事務的特定歷史。順序圖以二維圖表來顯示交互??v向是時間軸,時間自上而下。橫向顯示了代表協作中單個對象的分類角色。每個對象用方框表示,對象的名字在方框內部,并在名字的下方加下劃線。每個分類角色表現為垂直列生命線。在角色存在的時間內,生命線顯

23、示為虛線;在角色的過程激活時間內,生命線顯示為雙線。消息顯示為從一個角色生命線出發(fā)至另一個角色生命線的箭頭,箭頭用從上而下來的時間順序來安排。順序圖的一個用途是顯示用例的行為序列。當行為被實現時,每個順序圖中的消息同對象的操作或狀態(tài)機中遷移上的事件觸發(fā)相一致。圖4表示處理請求用例的順序圖。圖中五個方框分別表示五個對象:Process Monitor、Engine Manager、Engine、Enactment DB、Logfiles。這個用例是由Process Monitor接收用戶操作,再將這些操作轉換成固定的請求,發(fā)送給引擎執(zhí)行而產生的。當Process Monitor接收到用戶在界面上

24、所作的操作后,將這些操作轉換為固定的命令請求,發(fā)送給Engine Manager。Engine Manager再根據接收到命令的類別,將命令分發(fā)給不同的Engine。Engine則具體執(zhí)行相應的命令。Engine執(zhí)行完命令后,通知Entactment DB修改相應的數據。接下來,Engine再通知Logfiles將所作的操作記錄下來,以供以后查詢。最后,Engine直接將結果返回給Process Monitor,由Process Monitor將結果包裝,顯示給用戶。b.協作圖協作圖對交互中存在意義的對象和鏈建模。對象和鏈僅在提供的上下文中存在意義。分類角色描述了對象,關聯角色描述了協作中的鏈

25、。協作圖通過圖形的幾何排布顯示交互中的角色。消息顯示為附屬在連接分類角色的關系直線上的箭頭。消息的順序由消息描述前的順序號來表示。協作圖的一個用途是表現操作的實現。協作顯示了操作的參數和局部變量,以及更永久性的關聯。當行為被實現時,消息的順序與程序的嵌套調用結構和信號傳遞一致。圖5表示對應于處理請求用例的協作圖。這個用例是由Process Monitor接收用戶操作,再將這些操作轉換成固定的請求,發(fā)送給引擎執(zhí)行而產生的。這個協作圖表現了處理請求用例所涉及的五個相關對象之間相互協作的關系。5.3創(chuàng)建狀態(tài)機視圖狀態(tài)機視圖通過對一種對象的可能生命歷史進行建模,描述了對象在時間序列上的動態(tài)行為。每個對

26、象被認為是通過檢測事件并對之響應來與外界進行通訊的孤立實體。事件表達了對象可以檢測的變動對象間的調用或顯示信號、某個值的改變或時間的推移。任何影響對象的事物可以被描述成事件。真實世界發(fā)生的事情被建模成外部世界至系統的信號。狀態(tài)指就某個特定類而言,對于發(fā)生的事件具有相同性質響應的一系列對象值。換言之,同一狀態(tài)的所有對象以相同的方式響應某個事件,即對于給定的所有對象在接收到同一事件時執(zhí)行相同的動作。而不同狀態(tài)的對象可能對相同事件具有不同的響應,執(zhí)行不同的動作。狀態(tài)機包含由事件連接的狀態(tài)。每個狀態(tài)對對象生命期中的一段時間建模,該時間內對象滿足一定的條件。當事件發(fā)生時,它可能導致遷移的激發(fā),使對象改變

27、至新狀態(tài)。當遷移激發(fā)時,附屬于遷移的動作可能被執(zhí)行。狀態(tài)機在UML中顯示為狀態(tài)圖。在狀態(tài)機視圖中,狀態(tài)用帶圓角的長方形表示,初始狀態(tài)用實心填充的圓表示,結束狀態(tài)用實心填充的圓外套一個圓圈表示。圖6表示過程實例的狀態(tài)機視圖。從圖中可以看出,一個工作流定義的過程實例,在運行時可能有五種不同的過程,分別為初始狀態(tài)、就緒狀態(tài)、運行狀態(tài)、掛起狀態(tài)與結束狀態(tài)。一個過程實例在初始時,均為初始狀態(tài)(initial state)。根據需要,某個過程實例被創(chuàng)建(create),成為就緒狀態(tài)(Ready)。隨后,用戶可以根據需要,選擇就緒狀態(tài)的過程實例進行啟動(start),被啟動的過程實例的狀態(tài)就變?yōu)檫\行狀態(tài)(Running)。處于就緒狀態(tài)和運行狀態(tài)的過程實例都可以通過取消操作(abort)轉變?yōu)榻Y束狀態(tài)(end state)。處于運行狀態(tài)的過程實例,通過掛起操作(hold),可以轉變?yōu)闀簳r停止的掛起狀態(tài)(Holded),同時處于掛起狀態(tài)的過程實例也可以通過運行操作(run)轉變?yōu)檫\行狀態(tài)。掛起狀態(tài)與結束狀態(tài)的區(qū)別在于掛起狀態(tài)并不釋放所占用的資源,因而是可以

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論