一種面向對象工作流系統的實現_第1頁
一種面向對象工作流系統的實現_第2頁
一種面向對象工作流系統的實現_第3頁
一種面向對象工作流系統的實現_第4頁
一種面向對象工作流系統的實現_第5頁
已閱讀5頁,還剩22頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

一種面向對象工作流系統的實現

報告人:叢明指導老師:趙政教授項目背景介紹概述工作流技術是在上世紀九十年代發展起來的一門新興研究方向,是近來計算機應用技術與信息技術領域最具發展潛力的方向之一。從歷史發展的角度看,傳統的信息系統只能夠支持單個任務的執行,而如今的信息系統卻需要支持各種業務流程。信息系統不再只著眼于任務本身,而要能夠控制、監督和支持業務流程的邏輯層面??傊?,信息系統必須能夠管理一個企業或組織內部的工作的流動?;谶@樣的需求,“工作流管理”這一術語便產生了。

工作流管理的優點智能化

轉移過程自動進行處理和判斷,相關信息也不需要人工傳遞。工作人員只需專注于與其相關處理環節的具體工作,而不用再操心環節間的銜接。高效性

工作流減少了中間環節,所以可減少員工數量,降低成本。

可控性靈活性

事務處理流程可以根據實際情況隨時建立,隨時修改。

集成化

可將企業現有的多種管理工具和現有軟件系統納入工作流的處理環節中去。工作流系統模型1994年11月,工作流管理聯盟(WFMC)發布了工作流管理系統參考模型。本文提出的工作流系統模型即以此參考模型為基礎。本文提出的工作流系統分為3個層次。它們分別為用戶端層次,工作流引擎層次,數據庫層次。過程定義工具工作流引擎(分布式)DBMS數據庫任務表管理器系統模型(續)其中用戶端包括過程模型定義工具和參與活動的角色部分,也就是工作流聯盟提出的工作流參考模型中的任務表管理器。工作流引擎是解釋執行過程定義工具產生的表示業務流程的程序的解釋器。工作流引擎通過消息(如Java中的JMS)的形式向任務表管理器發送任務。數據庫層次則負責存儲過程定義和工作流系統運行中產生的一些中間數據。這樣工作流引擎可以通過與數據庫操作系統的接口來進行過程定義的解釋執行,還可以利用DBMS的一些特性來服務于工作流系統。體系結構本文重點對建模部分進行了分析,并用面向對象的方法給出了較為具體的模型實現。運用這些模型,就可以進行企業業務流程的定義。設計采用Java作為模型和過程定義的描述語言。得到的過程定義類似于一個大的分布式的Java程序,而工作流引擎就是一個對此Java程序解釋執行的系統。這也正好利用了Java的平臺無關性,較好的滿足了企業中執行任務單位的分布性要求。

模型模型是進行工作流過程定義所要用到的一系列元素。要較完善的對企業業務流程進行描述,需要定義的模型主要包括:過程模型,角色模型,資源模型等。其中過程模型就是描述企業業務流程的模型,是工作流的核心。本文重點放在介紹過程模型上面。本文的工作流系統模型采用面向對象的設計方法,可以方便的通過繼承,重載等面向對象的方法來開發符合具體情況的新模型。

過程模型目前比較流行的描述企業業務流程的方法有Petri網,狀態圖,活動網絡圖等?;顒泳W絡圖雖然描述能力不如Petri網強大,邏輯性也不如Petri網嚴謹,但通過一些具體的改進,也能較好的描述企業業務流程。而且更為重要的是,活動網絡圖符合人們的習慣,并在實現上難度也較小。本文即采用這種方法建立模型?;顒泳W絡圖活動網絡圖一般由節點,連接弧構成。規定節點代表工作流過程中的一個活動,而連接弧表示活動之間的關聯。在實際企業業務流程中,數據的流動和活動的流動并不是完全一致的,所以在本文中,連接弧分為兩種,分別是控制弧和數據弧。但這兩種連接弧在結構上是相同的,只是在過程定義時區分。本文提出的工作流模型采用面向對象的方法,把節點和連接弧都定義成類,即節點類(活動類),連接弧類,并通過類中的屬性方法實現相互之間的接口。這樣可以用面向對象的一些方法來開發工作流模型,維護工作流系統?;顒泳W絡圖(續)在過程定義工具中,根據具體活動設置活動類的屬性,編寫具體執行代碼;用連接弧類表示活動進行的路由。之所以把連接弧也定義成類,而不在節點類中直接指出前趨后繼節點,是出于面向對象方法中的封裝目的,把活動的內容完全封裝,這樣在維護中可以隨時改變流程的路由,而不必改動活動本身定義。此外,還可以在連接弧類中加入簡單屬性或方法派生出新類,豐富模型的描述能力。下面就此進行詳細的闡述。

路由方式圖1-2路由方式(續)圖1-2顯示了由工作流管理聯盟定義的工作流路由結構。,其中包含了以下四種路由方式:(1)

順序路由工作流流程實例中的任務是順序執行的,即后一個任務在前一個任務執行完畢后才開始執行。在圖1-2(A)中,任務B在任務A完成以后被執行,同時在任務C啟動以前被執行。(2)

并行路由在圖1-2(B)中,任務B和任務C是并行執行的。這意味著B和C可以同時執行,也可以以任何順序執行。任務A執行完以后執行B和C。然后,在B和C都執行完以后,D才可以開始執行。路由方式(續)(3)

條件路由在圖1-2(C)中,無論是任務B,還是任務C都有可能被執行。假如任務A被執行了,會在任務B和C中做出一個條件性選擇。然后,任務D可以在B或C結束以后開始執行。(4)

反復路由有時,有必要多次執行同一個任務。在圖1-2(D)中,任務B可以被執行多次。節點活動網絡圖表示企業經營過程,節點則代表其中的各個活動。當然,為了結構的清晰方便,可以將若干活動定義為一個活動節點。作為表示活動的節點類,應該具有如下的屬性和方法。其中屬性包括(1)存儲所有以此節點為尾的連接弧數組,用來確定是否所有前趨節點已經完成或者在必要的時候對前趨節點進行反饋;(2)存儲所有以此節點為首的連接弧的數組,用于在此活動完成后,激活后繼節點;(3)存儲所有需要發送數據的節點方向(連接?。┑臄到M,用來向其發送必要的數據;

節點(續)(4)存儲所有要參與這個活動的角色數組,用來向這個角色的任務表管理器發送JMS(JavaMessageService);(5)存儲表示執行這個活動的工作流機的地址。由于工作流機一般處在分布式的環境中,因此要表明這個活動由分布式的工作流機組中的哪個來執行。這個地址的形式根據工作流機所在網絡環境來決定;(6)狀態標志。一個活動可以有許多狀態,工作流系統可以根據活動的狀態來決定下一步的動作。狀態標志的使用,彌補了活動網絡圖對于狀態及其轉換描述能力的不足。(7)除此之外,還應該有屬性來存儲要接收或發送數據,發送給參與角色的JMS內容以及表示這個活動的ID號等。

節點(續)除了上述屬性,一個活動節點類還應包括各種必要的方法(1)激活方法。這個方法可以由前趨活動在其完成后來調用,激活本活動;(2)從自己的數據空間中讀取數據的方法;(3)給需要的活動發送數據的方法;(4)具體的處理方法。這個方法是活動的核心,即這個活動所要做的操作,(5)此外,改變活動狀態的方法,給角色發JMS的方法也是需要的。

上述的屬性和方法是一個活動基本具備的。可以通過具有這些屬性方法的基類通過繼承或重載來派生出符合具體情況新的活動類,來更好的描述具體的企業業務流程。

連接弧連接弧是位于節點之間的有向線段,它從前驅節點指向后繼節點,表示活動的轉移或數據的流動。一個連接弧類應該具備的基本屬性方法為:這個連接弧的起始活動節點,后繼活動節點,狀態,ID號等。當然也可以通過繼承派生出新的更符合實際情況的連接弧,如加入一些條件的判斷等操作。

本文前面所提到的數據連接弧與控制連接弧在結構上是相同的,只是在過程定義時由用戶加以區分。角色模型角色模型所要描述的是一項活動的參與者的信息。用來被活動調用,獲得和設置它的內容。其基本屬性有ID號,所處地址,角色狀態等。必要的時候,也包括處理任務數,角色的說明等屬性。

當然,也可以通過繼承來派生新的角色類。其他模型一個企業業務流程是很復雜的,要完全準確地描述,還應該再定義集中模型類。如活動要調用的應用類,要用到的各種資源類,活動間傳遞的數據類等等。它們同樣可以用面向對象的方法,生成新的類。論文主要工作需要解決的問題

本文描述的工作流系統在應用中先進行建模,然后編寫Java程序得到過程定義,最后將過程定義送到工作流引擎對其解釋執行。具體步驟為:

建模將要建模的企業業務流程分解為一個個任務,并找出它們之間的邏輯關系,畫出相應的活動網絡圖。然后利用建模工具把每個任務定義為一個活動節點類的實例,根據具體任務來設置類的屬性。接著定義連接弧來表征這些活動的關系。還要根據實際情況決定活動之間的數據流向。將每兩個之間發生數據流動的活動之間定義一個數據連接弧類。最后根據企業業務流程各個任務所需要參與的人,定義角色模型。為每個不同的角色定義一個角色類,并設置其中的各個屬性。過程定義建模結束后,得到表示流程的各個對象。這些對象的業務邏輯封裝在節點類中,順序邏輯和數據流邏輯封裝在連接弧類中。然后,編寫Java程序實現過程定義。最后,就可以送到工作流引擎里解釋執行。在運行階段,激活初始活動,然后流程就可以按照

溫馨提示

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

評論

0/150

提交評論