基于Net的工作流引擎的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
基于Net的工作流引擎的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
基于Net的工作流引擎的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
基于Net的工作流引擎的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
基于Net的工作流引擎的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 基于.Net的工作流引擎的設(shè)計(jì)與實(shí)現(xiàn)摘 要針對(duì)當(dāng)前大多數(shù)工作流管理系統(tǒng)在實(shí)際應(yīng)用中可集成能力差這個(gè)缺點(diǎn),決定利用Web Service技術(shù)來(lái)實(shí)現(xiàn)一個(gè)工作流管理系統(tǒng)。因?yàn)槟壳?Net平臺(tái)對(duì)WebServic的支持相對(duì)比較完善,所以決定實(shí)現(xiàn)一個(gè)基于.Net的工作流管理系統(tǒng)。這個(gè)工作流管理系統(tǒng)具有松散藕合、低進(jìn)入屏障、行業(yè)支持、高度可集成能力等優(yōu)勢(shì)。 工作流引擎是整個(gè)工作流管理系統(tǒng)的核心,其通信方式是提高工作流管理系統(tǒng)可集成能力的關(guān)鍵。在本系統(tǒng)中,分布在Internet的各個(gè)節(jié)點(diǎn)上的工作流引擎處在對(duì)等的地位,它們通過(guò)Web Service調(diào)用相應(yīng)的接口來(lái)實(shí)現(xiàn)它們之間的通信。正是這種通信方式使本工作

2、流管理系統(tǒng)的集成能力、互操作性有了顯著的提高。這個(gè)工作流管理系統(tǒng)的客戶端是一個(gè)Web應(yīng)用程序,用戶通過(guò)瀏覽器登錄并調(diào)用客戶端,然后客戶端程序通過(guò)調(diào)用工作流引擎所提供的相應(yīng)接口實(shí)現(xiàn)與工作流引擎的通信。以這種基于Web的方式實(shí)現(xiàn)本工作流管理系統(tǒng)可以增加系統(tǒng)的可擴(kuò)展性 從系統(tǒng)結(jié)構(gòu)上講,工作流引擎主要被分為了工作流邏輯、工作流支持系統(tǒng)和數(shù)據(jù)管理等 3個(gè)主要部分。其中,工作流邏輯這個(gè)部分負(fù)責(zé)處理引擎的邏輯功能,工作流支持系統(tǒng)和數(shù)據(jù)管理這兩個(gè)部分則負(fù)責(zé)工作流實(shí)例對(duì)象的存儲(chǔ)和讀取等功能。這樣,這個(gè)工作引擎就實(shí)現(xiàn)了控制邏輯與數(shù)據(jù)讀寫的分離。關(guān)鍵詞:工作流管理系統(tǒng),分布式平臺(tái),工作流引擎,工作流建模工具引 言1

3、.1 課題背景在計(jì)算機(jī)剛剛出現(xiàn)的時(shí)候,大多數(shù)與企業(yè)相關(guān)的文檔均以紙的形式在部門之間傳遞,無(wú)論是在信息的處理、組織方面,還是在存儲(chǔ)與查詢檢索方面紙的效率都相當(dāng)?shù)牡?。因此,人們希望出現(xiàn)一種無(wú)紙化的、由計(jì)算機(jī)操縱的工作環(huán)境。后來(lái)一些公司將組織中常用的一些業(yè)務(wù)功能結(jié)合在一起,形成了一種部分支持業(yè)務(wù)流程集成化的軟件包,這便是早期的工作流管理系統(tǒng)。限于當(dāng)時(shí)的計(jì)算機(jī)發(fā)展水平,這些軟件包所集成的功能都較簡(jiǎn)單。 1993年,國(guó)際I作流管理聯(lián)盟 (Workflow Management Coalition, WfMC)的成立,標(biāo)志著工作流技術(shù)開始進(jìn)入相對(duì)成熟的階段o WfMC的目標(biāo)是:提高客戶在工作流技術(shù)上的投資

4、價(jià)值;減少使用工作流產(chǎn)品的風(fēng)險(xiǎn);通過(guò)為工作流提高知名度而擴(kuò)展工作流市場(chǎng)。為了實(shí)現(xiàn)不同工作流產(chǎn)品之間的互操作,WfMC制定了關(guān)于相關(guān)術(shù)語(yǔ)、體系結(jié)構(gòu)與應(yīng)用編程接口等方面的一系列標(biāo)準(zhǔn)。正是WfMC所做的這些工作促使工作流管理成為近年來(lái)在計(jì)算機(jī)應(yīng)用領(lǐng)域中發(fā)展最為迅速的幾項(xiàng)新技術(shù)之一。目前其已經(jīng)廣泛地應(yīng)用于辦公自動(dòng)化、文件管理、電子、目錄管理、群件應(yīng)用、BP (Business Process Reengineering)與結(jié)構(gòu)系統(tǒng)定義I具等領(lǐng)域,這使得I作流管理系統(tǒng)越來(lái)越受到不同應(yīng)用領(lǐng)域的用戶重視。工作流管理系統(tǒng)在眾多CSCW應(yīng)用軟件中變得越來(lái)越流行,需求量不斷增大,同時(shí)工作流管理的思想已廣泛應(yīng)用于企

5、業(yè)管理和計(jì)算機(jī)應(yīng)用的各個(gè)方面1,2 隨著工作流技術(shù)的廣泛應(yīng)用,在工作流管理技術(shù)這個(gè)領(lǐng)域也出現(xiàn)了許多新的課題。分布式工作流管理系統(tǒng)就是這些課題之一。這是由于數(shù)據(jù)庫(kù)、計(jì)算機(jī)網(wǎng)絡(luò)的廣泛應(yīng)用使現(xiàn)代企業(yè)的信息資源表現(xiàn)出異構(gòu),分布和松散禍合的特點(diǎn),企業(yè)的分散性決策制定的分散性、Client/Server體系結(jié)構(gòu)和分布式處理技術(shù)的日益成熟,都說(shuō)明集中式信息處理的時(shí)代已經(jīng)過(guò)去,實(shí)現(xiàn)在大規(guī)模的異構(gòu)分布式執(zhí)行環(huán)境下使工作流中相互關(guān)聯(lián)的任務(wù)在系統(tǒng)監(jiān)控下高效運(yùn)作成為一種趨勢(shì)。材料與方法1.2 國(guó)外研究概況1.2.1工作流技術(shù)的研究現(xiàn)狀 在工作流技術(shù)的研究中,比較著名的有IBM公司Almaden研究中心的Exotica

6、、佐治亞大學(xué)計(jì)算機(jī)系的Meteor, WIDE& Meteor等研究項(xiàng)目1-6。其中Exotica和Meteor是完全分布式的工作流管理系統(tǒng),WIDE& Meteor則采用C/S結(jié)構(gòu)。 在國(guó)際市場(chǎng)上,以FileNet, Jeform, IBM和Action四家公司的產(chǎn)品比較有影響和代表性。以下是這四家公司的工作流產(chǎn)品的簡(jiǎn)要介紹: I.FileNet公司的產(chǎn)品:Visual WorkFow是FileNet公司集成文檔管理軟件的一部分,是建立在基于組件的軟件結(jié)構(gòu)上的,采用先進(jìn)的工作隊(duì)列處理方法它允許迅速地評(píng)價(jià)和改進(jìn)機(jī)構(gòu)工作方式,可隨時(shí)查看過(guò)程中關(guān)鍵的細(xì)節(jié),掌握過(guò)程的運(yùn)行情況。 2.

7、JetForm公司的產(chǎn)品:InTempo是JetForm公司的工作流產(chǎn)品,它基于C/S結(jié)構(gòu),其客戶端互相獨(dú)立,適合于管理型和設(shè)定型的經(jīng)營(yíng)過(guò)程,如合同管理、顧客問(wèn)題解決、銷售和預(yù)算審批等等。它可自動(dòng)將任務(wù)分配給相應(yīng)的人員,任務(wù)會(huì)自動(dòng)出現(xiàn)在用戶的信箱中,簡(jiǎn)化了任務(wù)的接收過(guò)程。 3.IBM公司的產(chǎn)品:IBM MQSeries WorkFow是該公司最新的工作流產(chǎn)品,它將經(jīng)營(yíng)流程從應(yīng)用邏輯中分離出來(lái),支持25種不同的操作系統(tǒng),可根據(jù)模型定義自動(dòng)分配任務(wù),提供圖形化的過(guò)程定義界面。4.Action公司的產(chǎn)品:Action Metro 4.0為工程師提供了一套基于Web的工作流管理軟件。它對(duì)經(jīng)營(yíng)過(guò)程中不可

8、預(yù)見的問(wèn)題、要求和機(jī)遇也可進(jìn)行控制,還為用戶提供了相應(yīng)的管理工具。它更適合于基于知識(shí)的工作流,它支持用戶與信息之間的交互。1.2.2 當(dāng)前研究的熱點(diǎn)目前關(guān)于WfMS (Workflow Management System)的研究主要集中在以下9個(gè)方面:1.更為靈活的過(guò)程模型:人們對(duì)于WfMS批評(píng)最多的莫過(guò)于其“僵硬”的過(guò)程模型,這使得用戶在某些情況下(如發(fā)生某種特殊情況)不得不越過(guò)WfMS而用其它方法(如手工方式)來(lái)完成有關(guān)的工作。 2.面向?qū)ο蟮腤fmS: 面向?qū)ο?00)的思想反映了人類思維的一般特征(從特殊到一般與從一般到特殊)。進(jìn)入90年代,基于這一思想而發(fā)展起來(lái)的各種技術(shù),如OOA,

9、 OOD, OOP等在計(jì)算機(jī)領(lǐng)域得到了廣泛的應(yīng)用。隨著W fMS研究的不斷深入,00思想也被引入進(jìn)來(lái),逐漸形成了面向?qū)ο蟮腤fms(OOWfms)。 3智能化的WfMS: Ellis曾經(jīng)指出:人工智能(AI)所使用的經(jīng)常是啟發(fā)式或擴(kuò)性的方法。這種方法使得系統(tǒng)中的信息能夠隨人機(jī)交互過(guò)程的進(jìn)行而動(dòng)態(tài)增長(zhǎng)(學(xué)習(xí)過(guò)程)陰,而不是在一開始就將系統(tǒng)中所有的信息都定義好。4.對(duì)同步協(xié)作的支持: WfMS的基本功能是對(duì)異步的結(jié)構(gòu)化協(xié)作的支持,即將一個(gè)用戶工作完之后生成的結(jié)果數(shù)據(jù)自動(dòng)傳遞給下一個(gè)環(huán)節(jié)的用戶進(jìn)行處理。而同步協(xié)作則是各參與者實(shí)時(shí)地交流思想,最終得到某個(gè)結(jié)果的過(guò)程。5.對(duì)移動(dòng)用戶的支持: 商業(yè)社會(huì)的激

10、烈競(jìng)爭(zhēng)要求企業(yè)具有良好的反應(yīng)能力。移動(dòng)辦公正是為滿足此種要求而出現(xiàn)的一種新的工作方式,它使得員工能夠隨時(shí)隨地處理他們的業(yè)務(wù)。移動(dòng)計(jì)算設(shè)備(如筆記本與手持設(shè)備)的普與為這種辦公方式的實(shí)現(xiàn)提供了良好的硬件條件,而Wfms則為之提供了一種理想的軟件環(huán)境。但早期的WfmS系統(tǒng)一般都是基于LAN環(huán)境而構(gòu)造起來(lái)的,它一般要求用戶一直保持同WfMS的連接。 6.基于Web的WfMS: Web技術(shù)因其界面的一致、簡(jiǎn)單與與平臺(tái)的無(wú)關(guān)性而在其出現(xiàn)之后就得到了迅猛發(fā)展。Internet的發(fā)展與企業(yè)Intranet的建構(gòu)為人們提供了一個(gè)理想的協(xié)同工作環(huán)境同時(shí)也使得基于Web建立工作流管理系統(tǒng)成為可能。 這方面的研究是

11、最近些年來(lái)才開始的。在目前能夠見到的系統(tǒng)中,一般是使用HTML頁(yè)面通過(guò)Web瀏覽器向用戶表示W(wǎng)tMS中的各種信息,如用戶的工作項(xiàng)列表待處理的數(shù)據(jù)、過(guò)程的進(jìn)行狀態(tài)等。而在Web服務(wù)器端,則通過(guò)CORBA (CommoObject Request Broker Architecture),J2EE (Java 2 Enterprise Edition),.Net等技術(shù)完成工作流引擎與Web服務(wù)器之間的信息傳遞。 7.分布式WfMS: 為了支持跨企業(yè)的異構(gòu)計(jì)算環(huán)境下大規(guī)模工作流管理,現(xiàn)有的WfMS的能力必須從多個(gè)不同的方面加以擴(kuò)展,以提高系統(tǒng)的可靠性、可伸縮性與容錯(cuò)能力等。 8.事務(wù)型WfMS: 這

12、方面的研究主要是試圖將一些高級(jí)事務(wù)模型(如Saga, Flexible Transaction)等應(yīng)用到工作流系統(tǒng)的過(guò)程實(shí)例的執(zhí)行中,以提高WMIS的可靠性,如保證過(guò)程實(shí)例中各活動(dòng)執(zhí)行的完整性。9.工作流系統(tǒng)之間的互連:隨著大量各具特色的 WfMS產(chǎn)品涌入市場(chǎng),不同的企業(yè)或企業(yè)的不同部門可能會(huì)選用不同廠家的產(chǎn)品。而跨企業(yè)與企業(yè)間大型工作流應(yīng)用需求的增加要求能夠?qū)⑦@些異質(zhì)的WfMS互連起來(lái)(即在兩個(gè)或多個(gè)WfMS之間傳遞工作項(xiàng)和執(zhí)行控制)以協(xié)同完成復(fù)雜的業(yè)務(wù)過(guò)程。分布式結(jié)構(gòu)的WfmS本身就有一個(gè)如何將各工作流引擎互連起來(lái)的問(wèn)題WfMC一共定義了八種級(jí)別。在最后選定的互操作模型和級(jí)別下,可定義一組

13、操作集來(lái)實(shí)現(xiàn)之。1.3 課題主要研究工作本課題的主要研究工作是根據(jù)當(dāng)前對(duì)工作流產(chǎn)品的需求,設(shè)計(jì)與實(shí)現(xiàn)一個(gè)具有松散禍合、低進(jìn)入屏障、行業(yè)支持、高度可集成能力等特點(diǎn)的工作流管理系統(tǒng),并把重點(diǎn)放在分布式工作流引擎的設(shè)計(jì)與實(shí)現(xiàn)上。其主要工作集中在以下幾個(gè)方面:1 工作流引擎的通信方式與接口的設(shè)計(jì)。2 工作流引擎體系結(jié)構(gòu)的設(shè)計(jì)。3.工作流引擎的關(guān)鍵模塊的實(shí)現(xiàn)。4.分布式工作流日志管理的研究與實(shí)現(xiàn)。5.工作流引擎數(shù)據(jù)庫(kù)的實(shí)現(xiàn)。本文主要通過(guò)工作流引擎的通信方式與接口的設(shè)計(jì)、工作流引擎體系結(jié)構(gòu)的設(shè)計(jì)、工作流引擎的關(guān)鍵模塊的實(shí)現(xiàn)、工作流引擎數(shù)據(jù)庫(kù)的實(shí)現(xiàn)等四個(gè)方面具體討論分布式工作流引擎的設(shè)計(jì)與實(shí)現(xiàn)。2 工作流管

14、理系統(tǒng)體系結(jié)構(gòu)2.1 工作流管理系統(tǒng)體系結(jié)構(gòu) 為了能夠更好地支持企業(yè)經(jīng)營(yíng)過(guò)程建模、分析和實(shí)施,適應(yīng)世界市場(chǎng)的多元化趨勢(shì),需要建立工作流管理系統(tǒng)的相關(guān)標(biāo)準(zhǔn),從系統(tǒng)結(jié)構(gòu)、術(shù)語(yǔ)使用和接口實(shí)施等方面提供標(biāo)準(zhǔn)化與規(guī)化的定義,并以此為基礎(chǔ)實(shí)現(xiàn)不同工作流產(chǎn)品之間的互操作,以便于與其他應(yīng)用系統(tǒng)的集成。這個(gè)參考模型的體系結(jié)構(gòu)給出了抽象的工作流管理系統(tǒng)的功能組成部件和接口,它能夠滿足工作流管理系統(tǒng)和產(chǎn)品所應(yīng)該具有的主要功能特征,可為實(shí)現(xiàn)工作流產(chǎn)品之間的互操作提供公共的基礎(chǔ)。一般說(shuō)來(lái),工作流產(chǎn)品的提供商也不會(huì)將這些部件之間的所有接口完全對(duì)外開放,但是為了實(shí)現(xiàn)不同工作流產(chǎn)品之間的集成,它們會(huì)按照互操作和協(xié)作的不同要求

15、在一定層次上開放其接口X27-281。工作流管理系統(tǒng)主要由以下三類構(gòu)件組成:1.軟件構(gòu)件:完成工作流管理系統(tǒng)不同組成部分功能的實(shí)現(xiàn)。 2.系統(tǒng)控制數(shù)據(jù):工作流管理系統(tǒng)中的一個(gè)或多個(gè)軟件構(gòu)件使用的數(shù)據(jù)。 3.其他應(yīng)用與應(yīng)用數(shù)據(jù):對(duì)于工作流管理系統(tǒng)來(lái)說(shuō),他們不是工作流管理系統(tǒng)的組成部分,而是屬于外部系統(tǒng)和數(shù)據(jù),它們被工作流系統(tǒng)調(diào)用來(lái)完成整個(gè)和部分工作流管理的功能。2.2 工作流參考模型圖2.2給出了WFMC提出的工作流參考模型。本節(jié)首先介紹工作流參考模型中涉與到的幾種數(shù)據(jù),在以后的各節(jié)對(duì)參考模型中的幾個(gè)部分進(jìn)行描述。1.工作流控制數(shù)據(jù):工作流執(zhí)行服務(wù)/工作流引擎通過(guò)部的工作流控制數(shù)據(jù)來(lái)辨別每個(gè)過(guò)程

16、活動(dòng)實(shí)例的狀態(tài)。這些數(shù)據(jù)由工作流執(zhí)行服務(wù)/工作流引擎進(jìn)行控制用戶、應(yīng)用程序或其他的工作流引擎/工作流執(zhí)行服務(wù)不能對(duì)其直接進(jìn)行讀寫操作,它們可以通過(guò)向工作流執(zhí)行服務(wù)/工作流引擎發(fā)消息請(qǐng)求來(lái)獲得工作流控制數(shù)據(jù)的容。2工作流相關(guān)數(shù)據(jù):工作流管理系統(tǒng)通過(guò)工作流相關(guān)數(shù)據(jù)來(lái)確定過(guò)程實(shí)例狀態(tài)轉(zhuǎn)換的條件,并選擇下一個(gè)將執(zhí)行的活動(dòng)。3工作流應(yīng)用數(shù)據(jù):這種數(shù)據(jù)是指那些由應(yīng)用程序操作的數(shù)據(jù)。它們是針對(duì)應(yīng)用程序的,是企業(yè)完成具體的業(yè)務(wù)功能所需要的數(shù)據(jù),工作流管理系統(tǒng)無(wú)法也不需要對(duì)它們進(jìn)行訪問(wèn)。2.3 工作流模型與建模工具工作流模型包含了一個(gè)能夠由工作流執(zhí)行服務(wù)軟件執(zhí)行過(guò)程實(shí)例所需要的所有信息。這些信息包括過(guò)程的開始和

17、完成條件、構(gòu)成過(guò)程的活動(dòng)以與進(jìn)行活動(dòng)間導(dǎo)航的規(guī)則、用戶所需要完成的任務(wù)、可能被調(diào)用的應(yīng)用、 過(guò)程建模工具以計(jì)算機(jī)能夠處理的形式進(jìn)行過(guò)程的定義。它可以用基于形式化的過(guò)程定義語(yǔ)言、對(duì)象一關(guān)系模型來(lái)進(jìn)行過(guò)程模型定義。對(duì)于比較簡(jiǎn)單的系統(tǒng),可以采用一組路徑選擇命令的方式來(lái)描述信息或文檔在不同參與者之間的傳遞過(guò)程。 工作流建模工具應(yīng)輸出一個(gè)能被工作流引擎解釋并執(zhí)行的過(guò)程。不同的工作流產(chǎn)品的建模工具輸出模型的存儲(chǔ)格式是不同的,參考模型中接口1的定義不僅是為了實(shí)現(xiàn)工作流的定義階段和運(yùn)行階段的分離,使用戶可以分別選擇建模和工作流執(zhí)行的軟件產(chǎn)品,而且是為了使不同的工作流產(chǎn)品能夠?qū)崿F(xiàn)協(xié)作運(yùn)行,從而為過(guò)程定義的執(zhí)行提

18、供良好的運(yùn)行服務(wù)環(huán)境。在工作流建模上,WFMC開展了兩個(gè)方面的工作: 1.定義了一個(gè)元模型:所謂元模型一般是指描述模型的模型。這里的工作流模型的元模型是用來(lái)描述工作流模型在聯(lián)系的模型。它用于描述工作流模型部包含的各個(gè)對(duì)象、對(duì)象之間的關(guān)系與對(duì)象的屬性。這個(gè)元模型有利于建立可以在多個(gè)工作流產(chǎn)品之間交換信息的模型。2.定義了一套可以在工作流管理系統(tǒng)之間、管理系統(tǒng)與建模工具之間交互過(guò)程模型定義的 工作流管理聯(lián)盟定義的過(guò)程元模型口該模型包含以下各基本實(shí)體:1.工作流定義 (過(guò)程模型):它一般包含諸如工作流模型名稱、版本號(hào)、過(guò)程啟動(dòng)和終止的條件、系統(tǒng)安全、監(jiān)控和控制信息等一系列基本屬性。這個(gè)過(guò)程模型反映了

19、企業(yè)中一個(gè)經(jīng)營(yíng)過(guò)程的目的,即這個(gè)過(guò)程要實(shí)現(xiàn)的目的和最終達(dá)到的目標(biāo)是什么。 2.活動(dòng):主要屬性有活動(dòng)名稱、活動(dòng)類型、活動(dòng)的前后條件、調(diào)度約束參數(shù) (如最長(zhǎng)處理時(shí)間、排隊(duì)等待時(shí)間)等。當(dāng)工作流運(yùn)行在分布式環(huán)境下時(shí),在活動(dòng)的屬性中還應(yīng)該包括執(zhí)行該活動(dòng)的工作流引擎的位置?;顒?dòng)對(duì)應(yīng)于企業(yè)經(jīng)營(yíng)過(guò)程中的任務(wù),主要反映了完成企業(yè)經(jīng)營(yíng)過(guò)程需要執(zhí)行哪些功能操作。 3轉(zhuǎn)換條件:主要負(fù)責(zé)為過(guò)程實(shí)例的推進(jìn)提供導(dǎo)航依據(jù),主要參數(shù)包括工作流過(guò)程條件(Flow condition,過(guò)程實(shí)例向前推進(jìn)的條件)、執(zhí)行條件(Execution condition執(zhí)行某個(gè)活動(dòng)的條件)和通知條件 (Notification condit

20、ion,通知不同用戶的條件)轉(zhuǎn)換條件對(duì)應(yīng)于企業(yè)經(jīng)營(yíng)過(guò)程中的業(yè)務(wù)規(guī)則和操作的順序。如在訂單處理完成之后執(zhí)行生產(chǎn)計(jì)劃的制定工作。 4.工作流相關(guān)數(shù)據(jù):工作流引擎根據(jù)相關(guān)數(shù)據(jù)和轉(zhuǎn)換條件進(jìn)行推進(jìn)。工作流相關(guān)數(shù)據(jù)的屬性包括數(shù)據(jù)名稱、數(shù)據(jù)類型和數(shù)據(jù)值等。它是工作流執(zhí)行任務(wù)推進(jìn)的依據(jù)如在銀行貸款申請(qǐng)表處理后,根據(jù)申請(qǐng)貸款的值 (如是否大于10萬(wàn)元)決定下一個(gè)執(zhí)行的活動(dòng)是什么,比如,大于10萬(wàn)元的申請(qǐng)交業(yè)務(wù)經(jīng)理處理,小于10萬(wàn)元的申請(qǐng)交給業(yè)務(wù)員處理。 5.角色:角色屬性主要包括角色的名稱、組織實(shí)體、角色的能力等。角色或組織實(shí)體決定了參與某個(gè)活動(dòng)的人員或組織單元。它主要描述企業(yè)經(jīng)營(yíng)過(guò)程中參與操作的人員和組織單位

21、。 6.需要激活的應(yīng)用程序:主要屬性包括應(yīng)用程序的類型、名稱、路徑與運(yùn)行參數(shù)等。應(yīng)用主要描述用于完成企業(yè)經(jīng)營(yíng)過(guò)程所采用的工具或手段,如采用ERP軟件或決策支持軟件完成某個(gè)操作的具體企業(yè)業(yè)務(wù)功能。2.4 工作流執(zhí)行服務(wù)與工作流引擎工作流執(zhí)行服務(wù)是工作流管理系統(tǒng)的核心。實(shí)際上它是企業(yè)經(jīng)營(yíng)過(guò)程的任務(wù)調(diào)度器,在某種程度上還是企業(yè)資源分配器。工作流執(zhí)行服務(wù)由一個(gè)或多個(gè)工作流引擎(Workflow engine)組成 (在分布式環(huán)境下由多個(gè)工作流引擎組成),它提供了過(guò)程實(shí)例執(zhí)行的運(yùn)行環(huán)境,主要完成以下功能: 1.實(shí)例化與執(zhí)行過(guò)程模型:解釋企業(yè)經(jīng)營(yíng)過(guò)程的過(guò)程定義,根據(jù)過(guò)程執(zhí)行需要初始條件和執(zhí)行參數(shù)生成過(guò)程實(shí)

22、例,運(yùn)行過(guò)程實(shí)例并管理其運(yùn)行過(guò)程。這里要指出的是,一個(gè)過(guò)程模型實(shí)際上是企業(yè)經(jīng)營(yíng)過(guò)程的一個(gè)模板,它可以被執(zhí)行多次,也可以有多個(gè)有關(guān)這個(gè)過(guò)程模型的實(shí)例在同時(shí)運(yùn)行。 2.為過(guò)程和活動(dòng)的執(zhí)行導(dǎo)航:根據(jù)過(guò)程定義和工作流相關(guān)數(shù)據(jù),為過(guò)程實(shí)例的運(yùn)行進(jìn)行導(dǎo)航,如根據(jù)過(guò)程的進(jìn)入和退出條件啟動(dòng)和終止一個(gè)過(guò)程實(shí)例;根據(jù)活動(dòng)之間的關(guān)聯(lián)和活動(dòng)的執(zhí)行條件,決定并行或串行執(zhí)行后續(xù)活動(dòng);給用戶提供需要操作的工作流任務(wù)項(xiàng)信息;或者根據(jù)所需激活的應(yīng)用程序信息啟動(dòng)相應(yīng)的應(yīng)用程序等等。 3.與外部資源交互完成各項(xiàng)活動(dòng):工作流執(zhí)行服務(wù)通過(guò)兩種途徑完成與外部資源和用戶的交互 客戶應(yīng)用接口和直接調(diào)用應(yīng)用接口方式。 4.維護(hù)工作流控制數(shù)據(jù)和

23、工作流相關(guān)數(shù)據(jù):工作流在執(zhí)行過(guò)程中要維護(hù)不同過(guò)程和活動(dòng)實(shí)例的部狀態(tài)信息,以與用于協(xié)調(diào)和恢復(fù)的各種檢查數(shù)據(jù)與恢復(fù)/重啟信息,還包括用戶傳送的必要的相關(guān)數(shù)據(jù)。2.5 客戶端功能工作流管理系統(tǒng)的客戶端功能是指用戶操作工作流管理系統(tǒng)分配的任務(wù)或者活動(dòng)的功能。它由工作流任務(wù)管理器和用戶操作共同完成。在實(shí)際應(yīng)用中,經(jīng)常需要將工作流管理系統(tǒng)集成到用戶的其他桌面應(yīng)用 (如辦公自動(dòng)化系統(tǒng)、電子系統(tǒng))環(huán)境中,從而為最終用戶提供一個(gè)集成化的統(tǒng)一任務(wù)管理系統(tǒng)。2.6 本章小結(jié)本章首先介紹了wfmc提出的工作流管理系統(tǒng)的體系結(jié)構(gòu)、工作流參考模型。然后,詳細(xì)介紹了工作流參考模型中的幾個(gè)重要部分 工作流建模工具、工作流引擎

24、和客戶端以與這些部分的相關(guān)信息。3 基于.Net的工作流引擎的實(shí)現(xiàn)技術(shù)3.1 .Net框架3.1.1.Net框架概述(Framework)是許多基本結(jié)構(gòu)的重要組成部分,如J2EE、CORBA等技術(shù)都涉與框架的概念。設(shè)計(jì)框架的主要目的就是屏蔽具體的實(shí)現(xiàn)過(guò)程,人員展現(xiàn)一個(gè)透明的使用和開發(fā)平臺(tái)??蚣艹L峁┝嗽S多實(shí)用工具以與相關(guān)服務(wù),開發(fā)人員使用這些工具可以很容易的在此平臺(tái)上進(jìn)行開發(fā)。3.1.2 公共語(yǔ)言運(yùn)行時(shí)公共語(yǔ)言運(yùn)行時(shí)即公共語(yǔ)言運(yùn)行平臺(tái)。它在組件的開發(fā)以與運(yùn)行過(guò)程中,都扮演著非常重要的角色。在組件運(yùn)行過(guò)程中,運(yùn)行時(shí)負(fù)責(zé)管理存分配、啟動(dòng)或取消線程和進(jìn)程、實(shí)施安全性策略、同時(shí)滿足當(dāng)前組件對(duì)其它組件的

25、需求。3.1.3 統(tǒng)一的編程類庫(kù). Net框架為開發(fā)人員提供了一個(gè)統(tǒng)一的、面向?qū)ο蟮?、層次化的、可擴(kuò)展的類庫(kù)集合。目前,不同語(yǔ)言的開發(fā)人員使用的是各不一樣的類庫(kù),如C+程序員使用。3.2 Web Service技術(shù)3.2.1 什么是Web ServiceWeb Service是松散禍合的、可復(fù)用的軟件模塊,從功能上看,它封裝了離散的功能,在Internet上發(fā)布后能夠通過(guò)標(biāo)準(zhǔn)的Internet協(xié)議在程序中訪問(wèn)。具體來(lái)說(shuō),可以分為以下幾點(diǎn):3.2.2 Web Service的協(xié)議結(jié)構(gòu)實(shí)現(xiàn)一個(gè)完整的 Web Service體系需要有一系列的協(xié)議規(guī)來(lái)支撐Web Servic體系呈現(xiàn)一種棧的結(jié)構(gòu)。3.

26、3 本章小結(jié)本章詳細(xì)介紹了實(shí)現(xiàn)基于.Net的工作流引擎的關(guān)鍵技術(shù)。其中包括了對(duì).Net框架的介紹和對(duì)Web Service技術(shù)的介紹。值得一提的是,利用Web Service技術(shù)實(shí)現(xiàn)的工作流引擎可以較為方便的解決分布式工作流引擎間互連所存在的一些問(wèn)題,從而實(shí)現(xiàn)一個(gè)易于集成、低進(jìn)入屏障的工作流引擎。4 基于.Net的工作流引擎的分析與設(shè)計(jì)4.1 本工作流管理系統(tǒng)的系統(tǒng)結(jié)構(gòu)目前我們?cè)O(shè)計(jì)的工作流管理系統(tǒng)包括:過(guò)程定義工具、管理和監(jiān)控工具、用戶和組織機(jī)構(gòu)、普通用戶、數(shù)據(jù)庫(kù)表、工作流引擎等6個(gè)模塊。本工作流管理系統(tǒng)采用三層架構(gòu)和兩層架構(gòu)相混和的模式來(lái)實(shí)現(xiàn):1.客戶層:管理和監(jiān)控工具、普通用戶模塊放在客戶

27、層。普通用戶的實(shí)現(xiàn)可以視具體應(yīng)用而定,只要其通過(guò)SOAP協(xié)議訪問(wèn)工作流引擎的接口即可正常工作;管理和監(jiān)控模塊采用Windows應(yīng)用程序來(lái)實(shí)現(xiàn)。而Windows應(yīng)用程序則通過(guò)SOAP協(xié)議來(lái)實(shí)現(xiàn)對(duì)Web Service (T-作流引擎)的訪問(wèn)。 2.數(shù)據(jù)層:我們可以將其設(shè)計(jì)為兩個(gè)數(shù)據(jù)庫(kù):引擎數(shù)據(jù)庫(kù)和組織機(jī)構(gòu)數(shù)據(jù)庫(kù)、其具體實(shí)現(xiàn)將在下面進(jìn)行介紹。 3.中間層:分布式工作流引擎放在中間層。其是利用Web Service技術(shù)來(lái)實(shí)現(xiàn)的。這樣,工作流引擎之Ifal就可以方便的利用Web Service技術(shù)實(shí)現(xiàn)互訪。 4.2 工作流引擎相關(guān)模塊的分析與設(shè)計(jì)4.2.1 過(guò)程定義規(guī) 建模工具采用基于圖形的建模方法。

28、此方法包括以下兩種基本圖符,節(jié)點(diǎn)符和流向符。下面將介紹這兩種圖符,與其相應(yīng)的應(yīng)用規(guī)。1.節(jié)點(diǎn)符 本工作流模型中的節(jié)點(diǎn)可分為初始節(jié)點(diǎn)、終止節(jié)點(diǎn)、選擇分支節(jié)點(diǎn)、一般節(jié)點(diǎn)、子過(guò)程節(jié)點(diǎn)、并行分支節(jié)點(diǎn)、并行匯集節(jié)點(diǎn)和選擇匯集節(jié)點(diǎn) 8種,相應(yīng)的節(jié)點(diǎn)符號(hào):(1)初始節(jié)點(diǎn):初始節(jié)點(diǎn)表示一個(gè)工作流過(guò)程的開始。對(duì)于一個(gè)工作流過(guò)程只能有一個(gè)初始節(jié)點(diǎn),初始節(jié)點(diǎn)沒(méi)有具體的執(zhí)行動(dòng)作。 (2)終止節(jié)點(diǎn):終止節(jié)點(diǎn)表示一個(gè)工作流過(guò)程的結(jié)束,一個(gè)工作流過(guò)程只能有一個(gè)終止節(jié)點(diǎn),它與初始節(jié)點(diǎn)相對(duì)應(yīng),終止節(jié)點(diǎn)也沒(méi)有具體的執(zhí)行動(dòng)作。 (3)選擇分支節(jié)點(diǎn):選擇分支節(jié)點(diǎn)用于表示選擇分支路由結(jié)構(gòu)的開始。該節(jié)點(diǎn)也沒(méi)有具體的執(zhí)行動(dòng)作。 (4)選擇

29、匯集節(jié)點(diǎn):選擇匯集節(jié)點(diǎn)用于表示選擇分支路由結(jié)構(gòu)的結(jié)束,它沒(méi)有具體的動(dòng)作(選擇分支節(jié)點(diǎn)和選擇匯集節(jié)點(diǎn)必須成對(duì)使用)。 (5)并行分支節(jié)點(diǎn):并行分支節(jié)點(diǎn)用來(lái)表示并行路由的開始,也就是說(shuō)此節(jié)點(diǎn)只能在并行路由中使用 (其無(wú)條件啟動(dòng)其所有后繼節(jié)點(diǎn))。 (6)并行匯集節(jié)點(diǎn):并行匯集節(jié)點(diǎn)用來(lái)表示并行路由的結(jié)束,也就是說(shuō)此節(jié)點(diǎn)只能在并行路由中使用。它收集來(lái)自并行路由各分支的執(zhí)行結(jié)果,并按給定的判別條件決定該節(jié)點(diǎn)的執(zhí)行結(jié)果 (通過(guò)或不通過(guò))。 (7)子過(guò)程節(jié)點(diǎn):其本身就是一個(gè)定義好的工作流模型,在子過(guò)程節(jié)點(diǎn)中還可以定義子過(guò)程節(jié)點(diǎn),從而形成了一個(gè)層次化的階梯工作流模型。 (8)一般節(jié)點(diǎn):一般節(jié)點(diǎn)是一個(gè)工作流模型中

30、出現(xiàn)得最多的節(jié)點(diǎn),也是最常用的節(jié)點(diǎn)。一般節(jié)點(diǎn)表示工作流過(guò)程中的一個(gè)具體活動(dòng),可用一個(gè)九元組來(lái)表示 (節(jié)點(diǎn)名稱,節(jié)點(diǎn)類型,處理實(shí)體,觸發(fā)信息,執(zhí)行結(jié)果,主動(dòng)作,前置活動(dòng),后置活動(dòng),返回活動(dòng))。 其中,節(jié)點(diǎn)名稱是該節(jié)點(diǎn)的名字,一般是該節(jié)點(diǎn)活動(dòng)的概括性表述,節(jié)點(diǎn)編號(hào)是該工作流過(guò)程中唯一用來(lái)表示該節(jié)點(diǎn)的標(biāo)識(shí)。節(jié)點(diǎn)名稱為字符串類型,如 “教授評(píng)審。 節(jié)點(diǎn)類型任原子節(jié)點(diǎn),非原子節(jié)點(diǎn)。原子節(jié)點(diǎn)表示該節(jié)點(diǎn)的活動(dòng)不可再分解非原子節(jié)點(diǎn)表示該節(jié)點(diǎn)包括另一個(gè)工作流過(guò)程 (即子流)。 處理實(shí)體任人,軟件模塊,另一工作流過(guò)程。為人時(shí),又可以有兩種方式表示,一種是指明具體的人員,另一種則是指定組織單元和角色,在工作流運(yùn)行的

31、過(guò)程中再動(dòng)態(tài)地確定具體執(zhí)行的人員;當(dāng)該節(jié)點(diǎn)為軟件模塊時(shí),為WEBSERVICE的調(diào)用。 觸發(fā)信息任消息觸發(fā),人工觸發(fā)。觸發(fā)信息為該節(jié)點(diǎn)主活動(dòng)執(zhí)行前所必須滿足的信息條件。觸發(fā)信息分為兩種類型:一種是具體的消息:另一種是時(shí)間信息,如必須等到特定時(shí)刻的到來(lái)才能觸發(fā)主活動(dòng)的執(zhí)行。人工觸發(fā)是消息觸發(fā)的一種特殊形式 (人工觸發(fā)在工作流監(jiān)控工具中實(shí)現(xiàn)。在工作流正常停止,或故障時(shí),使用工作流管理工具恢復(fù)或取消一個(gè)工作流實(shí)例)。 執(zhí)行結(jié)果通過(guò),不通過(guò)。執(zhí)行結(jié)果為該節(jié)點(diǎn)主活動(dòng)的執(zhí)行結(jié)果,只有“通過(guò)和“不通過(guò)”兩種。缺省值為“通過(guò)”。執(zhí)行結(jié)果的數(shù)據(jù)類型為布爾型“True”表示“通過(guò)”,F(xiàn)alse表示“不通過(guò)”。 主

32、活動(dòng)為該節(jié)點(diǎn)所要執(zhí)行的活動(dòng),主活動(dòng)不可為空。在實(shí)際的定義中,用戶不需定義主活動(dòng),它是一個(gè)標(biāo)準(zhǔn)活動(dòng),其返回結(jié)果只有 “通過(guò)”和 “不通過(guò)”兩種。主活動(dòng)的容由處理實(shí)體決定:當(dāng)處理實(shí)體為人時(shí),直接交給人執(zhí)行該活動(dòng);當(dāng)處理實(shí)體為軟件模塊時(shí),則調(diào)用該軟件模塊;當(dāng)處理實(shí)體為另一工作流過(guò)程時(shí),則將控制權(quán)交與另一工作流過(guò)程。4.2.2 過(guò)程定義工具的設(shè)計(jì) 目前我們所設(shè)計(jì)的流程定義模塊的主要功能有流程定義者登錄校驗(yàn)、創(chuàng)建一個(gè)新的流程、修改已有的流程、保存當(dāng)前流程以與流程的合法性檢查等。流程定義工具由流程定義者使用,其所有的動(dòng)作都是由流程設(shè)計(jì)人員發(fā)起。登錄校驗(yàn)是系統(tǒng)對(duì)登錄本模塊的人員的進(jìn)行身份驗(yàn)證,只有具有流程設(shè)

33、計(jì)者角色的人員刁能進(jìn)入本模塊進(jìn)行流程設(shè)計(jì)。創(chuàng)建流程是流程設(shè)計(jì)者創(chuàng)建一個(gè)新的流程。流程設(shè)計(jì)者通過(guò)對(duì)上述流向符和節(jié)點(diǎn)符進(jìn)行布局與對(duì)他們的屬性進(jìn)行設(shè)置來(lái)創(chuàng)建一個(gè)新的業(yè)務(wù)流程。修改流程與創(chuàng)建流程基本一樣,只是修改是針對(duì)預(yù)先定義好的流程,而創(chuàng)建是針對(duì)一個(gè)新的流程。刪除流程則是將己有的流程刪除。 保存流程則是將對(duì)流程的創(chuàng)建、修改或刪除的結(jié)果進(jìn)行保存。4.2.3 管理和監(jiān)控工具的設(shè)計(jì)管理和監(jiān)控工具實(shí)現(xiàn)對(duì)整個(gè)工作流管理系統(tǒng)的管理,其主要的功能有流程模板的管理、實(shí)例的管理和監(jiān)控、用戶角色管理、歸檔數(shù)據(jù)管理、日志管理與自動(dòng)資源的管理等。流程模板管理是對(duì)流程定義工具定義的流程模板進(jìn)行管理。其中包括流程模板的實(shí)例化許

34、可和禁止以與刪除模板等。 實(shí)例的管理和監(jiān)控主要是對(duì)二種實(shí)例的管理和監(jiān)控:流程實(shí)例、行為實(shí)例和工作項(xiàng)。其中主要包括流程和行為實(shí)例的掛起、恢復(fù)、終止、任務(wù)的重指派以與修改實(shí)例屬性等。 用戶角色管理是管理員為用戶設(shè)置角色,如普通用戶、流程設(shè)計(jì)者等。歸檔數(shù)據(jù)管理主要是對(duì)運(yùn)行完成的流程的數(shù)據(jù)進(jìn)行歸檔后的查詢與其查詢權(quán)限的管理。而自動(dòng)資源的管理則是對(duì)一些自動(dòng)資源的增加、刪除和修改處理。日志管理是管理和監(jiān)控的重要一環(huán),引擎每次處理都會(huì)寫日志到持久化存儲(chǔ)器運(yùn)行時(shí)的日志信息是非常重要而且龐大的,實(shí)現(xiàn)對(duì)日志的妥善處理將對(duì)系統(tǒng)的效率產(chǎn)生很大的影響。日志管理主要包括設(shè)置日志文件大小、查看日志、備份日志以與清空日志等。

35、4.2.4 用戶和組織機(jī)構(gòu)的設(shè)計(jì)用戶和組織機(jī)構(gòu)模塊描述的是一個(gè)單位或部門的組織關(guān)系。其可以是一個(gè)被工作流管理系統(tǒng)引用而獨(dú)立于系統(tǒng)之外的模塊。流程定義工具在定義流程時(shí)需要對(duì)用戶和組織機(jī)構(gòu)圖進(jìn)行引用,因而用戶和組織機(jī)構(gòu)模塊須提供一些被引用的功能,這些功能主要有獲取所有組織機(jī)構(gòu)引用;按標(biāo)識(shí)獲取組織機(jī)構(gòu)的描述;創(chuàng)建、修改和刪除組織機(jī)構(gòu)以與用戶;增加、修改和刪除用戶角色等。4.2.5 普通用戶的設(shè)計(jì) 普通用戶模塊相對(duì)工作流管理系統(tǒng)中的其它模塊來(lái)說(shuō),是相對(duì)獨(dú)立的一個(gè)模塊一般來(lái)說(shuō),它是在工作流管理系統(tǒng)具體應(yīng)用時(shí)完成其全部功能。一般來(lái)說(shuō)這個(gè)模塊的主要功能有普通用戶登錄、任務(wù)處理、啟動(dòng)流程、普通用戶監(jiān)控以與對(duì)歸

36、檔數(shù)據(jù)的查詢等。 用戶登錄是最基本的功能,只有用戶在輸入登錄名和密碼并通過(guò)系統(tǒng)驗(yàn)證后才能進(jìn)行下一步的處理,普通用戶也可以對(duì)自己的登錄密碼進(jìn)行修改。 任務(wù)處理是普通用戶最主要的功能,用戶登錄系統(tǒng)的目的是為了進(jìn)行任務(wù)處理用戶的任務(wù)處理主要包括對(duì)任務(wù)列表進(jìn)行查詢、排序、過(guò)濾、刷新以與任務(wù)的執(zhí)行等。普通用戶可對(duì)自己處理過(guò)的流程進(jìn)行監(jiān)控,查看流程的執(zhí)行情況,如果流程已完成并歸檔則可對(duì)相應(yīng)的歸檔數(shù)據(jù)進(jìn)行查詢處理。4.2.6 數(shù)據(jù)庫(kù)表的設(shè)計(jì)根據(jù)前面的體系結(jié)構(gòu)所介紹的,本工作流系統(tǒng)可分為兩個(gè)數(shù)據(jù)庫(kù);引擎數(shù)據(jù)庫(kù)和組織機(jī)構(gòu)圖數(shù)據(jù)庫(kù)。引擎數(shù)據(jù)庫(kù)將在下一章中介紹。組織機(jī)構(gòu)圖數(shù)據(jù)庫(kù)由組織機(jī)構(gòu)模塊通過(guò)ADO. Net進(jìn)行

37、訪問(wèn),主要包括組織機(jī)構(gòu)用戶表、組織機(jī)構(gòu)元素表、用戶角色映射表、角色表和崗位表、用戶崗位映射表與用戶權(quán)限關(guān)系表等。組織機(jī)構(gòu)元素表:存儲(chǔ)組織元素信息,其中主要包括元素標(biāo)識(shí)、實(shí)體標(biāo)識(shí) (與類型配合使用,如類型為角色則為角色標(biāo)識(shí))、實(shí)體類型 (必須是已定義類型,如人員、崗位、子單元等)以與所屬組織機(jī)構(gòu)標(biāo)識(shí)等字段。用戶表:保存相關(guān)用戶信息,其中主要包括的字段有用戶標(biāo)識(shí)、名稱、是否遠(yuǎn)程流程與口令等字段 (注意,這里的用戶可以是一個(gè)遠(yuǎn)程的工作流)。組織用戶角色映射表:存儲(chǔ)映射信息,包括用戶標(biāo)識(shí)和角色標(biāo)識(shí)。角色表:存儲(chǔ)角色信息,其中包括角色表示和描述字段。組織崗位表:存儲(chǔ)崗位信息,包括崗位標(biāo)識(shí)、名稱和描述字段

38、。用戶崗位映射表;存儲(chǔ)用戶和崗位的映射信息;包括崗位標(biāo)識(shí)和用戶標(biāo)識(shí)字段。用戶 權(quán)限關(guān)系表:包括權(quán)限和用戶標(biāo)識(shí)字段。4.3 工作流引擎的分析與設(shè)計(jì)4.3.1 工作流引擎的通信接口與通信方式的設(shè)計(jì)l.工作流引擎與客戶端之間的互訪根據(jù)本工作流管理系統(tǒng)的體系結(jié)構(gòu)可知,本工作流引擎就是一個(gè) XML Webservices程序,因此普通用戶模塊可以通過(guò)SOAP來(lái)調(diào)用工作流引擎提供給客戶端訪問(wèn)的接口,從而實(shí)現(xiàn)了與本工作流引擎的通信。在這種模式下,客戶端應(yīng)用程序可以分布在Internet的任意一個(gè)節(jié)點(diǎn)上,而且可以是運(yùn)行在任何操作系統(tǒng)上,用任何語(yǔ)言編寫的、使用任何組件模型來(lái)實(shí)現(xiàn)的客戶端應(yīng)用程序。本工作流引擎和普

39、通用戶的通信模式如圖4.5所示。下面將具體描述本工作流引擎提供給客戶端訪問(wèn)的接口。本工作流引擎針對(duì)客戶端的接口是面向一般的用戶和系統(tǒng)管理員兩類用戶來(lái)開發(fā)的。系統(tǒng)為一般的用戶設(shè)計(jì)的接口如下:(1)身份驗(yàn)證使用的接口:保證系統(tǒng)安全并獲得用戶ID以便提取該用戶的任務(wù)表。(2)提取任務(wù)使用的接口:針對(duì)每個(gè)用戶從任務(wù)表庫(kù)中提取屬于它的任務(wù)并按任務(wù)名稱、容、時(shí)間顯示。(3)操作每項(xiàng)任務(wù)使用的接口:提供“開始執(zhí)行”、“掛起”、“繼續(xù)”、“完成”等執(zhí)行任務(wù)的命令。(4)實(shí)例化并啟動(dòng)一個(gè)過(guò)程實(shí)例的接口:從模型庫(kù)中選擇已定義的工作流模型,根據(jù)模型生成過(guò)程實(shí)例,設(shè)定初始的過(guò)程參數(shù),并命令工作流引擎開始推進(jìn)過(guò)程的執(zhí)行

40、口本系統(tǒng)為系統(tǒng)管理員設(shè)計(jì)的接口如下:(1)身份驗(yàn)證使用的接口:保證系統(tǒng)安全并獲得用戶m.(2)對(duì)系統(tǒng)工作流引擎配置情況進(jìn)行監(jiān)視使用的接口:收集并顯示系統(tǒng)中正在運(yùn)行的工作流引擎的信息,包括名稱、EP地址、工作狀態(tài)和負(fù)荷情況等。(3)監(jiān)控過(guò)程實(shí)例,強(qiáng)制改變過(guò)程或活動(dòng)的某些屬性的接口:以圖形方式顯示系統(tǒng)中各個(gè)過(guò)程當(dāng)前的狀態(tài) (進(jìn)展情況),提供修改屬性的命令按鈕,使管理員可以根據(jù)需要重新設(shè)置過(guò)程的某些參數(shù)或某些步驟的屬性,包括活動(dòng)的執(zhí)行者、活動(dòng)的執(zhí)行時(shí)間等。利用上述兩類接口,就可以為不同用戶開發(fā)所需要的客戶端應(yīng)用程序(包括前面所設(shè)計(jì)的普通用戶模塊和管理與監(jiān)控工具),從而實(shí)現(xiàn)一個(gè)完整的工作流管理系統(tǒng)。2

41、.工作流引擎之間的互訪工作流引擎之間的通信采用了如下模式:分布在各個(gè)節(jié)點(diǎn)上的工作流引擎處在完全平等的地位。每個(gè)工作流引擎負(fù)責(zé)本節(jié)點(diǎn)上的所有用戶與應(yīng)用的相關(guān)工作流任務(wù)管理。同時(shí),這些分布的工作流引擎之間通過(guò)相互調(diào)用以XML Web服務(wù)的形式提供給工作流引擎調(diào)用的接口來(lái)實(shí)現(xiàn)它們之間通信。采用這種通信模式,各個(gè)分布式工作流引擎可以分布到Intemet的任意節(jié)點(diǎn)上來(lái)協(xié)作完成一個(gè)流程的導(dǎo)航。同時(shí),在集成其它異構(gòu)平臺(tái)上的分布式工作流系統(tǒng)時(shí),異構(gòu)的工作流管理系統(tǒng)只需要提供相應(yīng)的互操作接口,并能發(fā)送和接收對(duì)應(yīng)的XML。4.3.2 工作流引擎的系統(tǒng)結(jié)構(gòu)的設(shè)計(jì)工作流引擎被劃分為了兩個(gè)功能子系統(tǒng):Executor和

42、 Monitor. Executor實(shí)現(xiàn)了絕大多數(shù)的復(fù)雜工作流程的流轉(zhuǎn)功能,該部分不僅要完成流轉(zhuǎn)這一基本功能,還牽涉到工作流實(shí)體對(duì)象的持久化,工作流事務(wù)等方面。Monitor主要判斷是否有超時(shí)的過(guò)程實(shí)例或者節(jié)點(diǎn)實(shí)例存在,但Monitor不對(duì)發(fā)現(xiàn)的超時(shí)對(duì)象進(jìn)行處理,而是采用消息通信的方式,通過(guò)引擎消息隊(duì)列通知Executor來(lái)處理這些超時(shí)的對(duì)象。如圖4.7所示,Executor部分的軟件體系結(jié)構(gòu)如下:1.工作流邏輯:是本工作流引擎的邏輯實(shí)現(xiàn)部分。處理接口發(fā)來(lái)的引擎消息,完成對(duì)應(yīng)的過(guò)程創(chuàng)建與刪除、節(jié)點(diǎn)的創(chuàng)建與刪除以與工作項(xiàng)的創(chuàng)建與刪除等一系列操作,實(shí)現(xiàn)工作流程的流轉(zhuǎn)控制和管理功能。管理過(guò)程定義、節(jié)

43、點(diǎn)定義、過(guò)程實(shí)例化等,并對(duì)節(jié)點(diǎn)實(shí)例、工作項(xiàng)和相關(guān)數(shù)據(jù)等工作流實(shí)體對(duì)象的狀態(tài)變化與各個(gè)對(duì)象之間的關(guān)系進(jìn)行管理。2.工作流支持系統(tǒng):是工作流邏輯對(duì)象的運(yùn)行與支持平臺(tái)。處理工作流實(shí)體對(duì)象的持久化,管理工作流邏輯對(duì)象的創(chuàng)建、更新和存儲(chǔ):管理工作流持久化服務(wù)對(duì)象的創(chuàng)建與分配。給工作流邏輯運(yùn)行提供一個(gè)持久化支持系統(tǒng),并對(duì)運(yùn)行在其上的工作流邏輯屏蔽了對(duì)象持久化的實(shí)現(xiàn)細(xì)節(jié)。3數(shù)據(jù)管理:管理工作流邏輯對(duì)象數(shù)據(jù)的存儲(chǔ),為工作流支持系統(tǒng)提供一個(gè)統(tǒng)一的接口,屏蔽下層的數(shù)據(jù)存儲(chǔ)的實(shí)現(xiàn)細(xì)節(jié),支持多種關(guān)系數(shù)據(jù)庫(kù)和文件格式的存儲(chǔ)。4.輔助管理:處理工作流引擎中的輔助功能,包括時(shí)鐘、應(yīng)用程序代理、群件代理等。Monitor部分

44、由一個(gè)掃描進(jìn)程組成,它不停的掃描正在運(yùn)行的過(guò)程實(shí)例,判斷是否有過(guò)程實(shí)例或者節(jié)點(diǎn)實(shí)例的存在時(shí)間超過(guò)了定義的生命周期。Monitor進(jìn)程與Executor進(jìn)程在服務(wù)器上并發(fā)運(yùn)行。本工作流引擎的邏輯功能主要集中在Executor部分,正是這個(gè)部分保證了整個(gè)工作流引擎的順利執(zhí)行。所以Executor這個(gè)模塊是整個(gè)工作流引擎的核心。4.4 本章小結(jié)本章首先介紹了基于.Net的工作流管理系統(tǒng)中與工作流引擎相關(guān)的各個(gè)部分的分析與設(shè)計(jì)。這些組成部分包括了過(guò)程定義工具的設(shè)計(jì)、管理和監(jiān)控工具的設(shè)計(jì)、用戶和組織機(jī)構(gòu)的設(shè)計(jì)、普通用戶的設(shè)計(jì)、數(shù)據(jù)庫(kù)表的設(shè)計(jì)。本章通過(guò)對(duì)這些部分的介紹,為詳細(xì)的介紹工作流引擎的分析與設(shè)計(jì)做

45、了鋪墊。接著,本章通過(guò)工作流引擎的通信方式與通信接口的設(shè)計(jì)和工作流引擎的系統(tǒng)結(jié)構(gòu)的設(shè)計(jì)等兩個(gè)方面給出了本工作流引擎的設(shè)計(jì)思想。5 基于.Net的工作流引擎的實(shí)現(xiàn)5.1 工作流引擎的實(shí)現(xiàn) 由4.3.2節(jié)可知,本工作流引擎被分為了名為Monito:和Executor的兩個(gè)模塊。由于Monito:的實(shí)現(xiàn)較為簡(jiǎn)單,在此不再進(jìn)行描述。下面,我們將給出Executo:模塊的實(shí)現(xiàn)。 從工作流引擎的運(yùn)行流程上,我們將 Executor模塊分為了工作流實(shí)例的觸發(fā)、申請(qǐng)任務(wù)執(zhí)行、用戶執(zhí)行任務(wù)、任務(wù)提交處理、任務(wù)調(diào)度處理、任務(wù)就緒處理、工作流結(jié)束處理等7個(gè)主要模塊。這7個(gè)部分相互關(guān)聯(lián)、調(diào)用組合成了一個(gè)總的Execu

46、tor模塊。下面將詳細(xì)描述這7個(gè)模塊的實(shí)現(xiàn)。 1.工作流實(shí)例的觸發(fā) 在用戶(包括遠(yuǎn)程的工作流)調(diào)用相應(yīng)接口發(fā)出將要實(shí)例化某個(gè)模板的命令之后,工作流引擎將根據(jù)此用戶的權(quán)限,返回給用戶一個(gè)工作流模板的集合。然后,用戶選擇其中的某個(gè)模板,工作流引擎就將其實(shí)例化。 2.申請(qǐng)任務(wù)執(zhí)行 申請(qǐng)任務(wù)執(zhí)行就是某個(gè)普通用戶從任務(wù)表中提取出其所能執(zhí)行的任務(wù)并執(zhí)行的過(guò)程。 3用戶執(zhí)行任務(wù) 在用戶執(zhí)行任務(wù)時(shí),本模塊處于等待狀態(tài)。當(dāng)用戶發(fā)出掛起、激活和任務(wù)提交等命令時(shí),本模塊才進(jìn)行相應(yīng)處理。4.任務(wù)提交處理 當(dāng)工作流引擎接收到任務(wù)提交的命令之后,就開始了任務(wù)提交處理流程。 5.任務(wù)調(diào)度處理 當(dāng)實(shí)例表中節(jié)點(diǎn)達(dá)到 “完成”態(tài)

47、后,就進(jìn)行任務(wù)調(diào)度處理。 6任務(wù)就緒處理 任務(wù)就緒處理就是啟動(dòng)一個(gè)本地或遠(yuǎn)程節(jié)點(diǎn),使用戶可以完成相應(yīng)的任務(wù)。 7.工作流結(jié)束處理當(dāng)流程運(yùn)行到結(jié)束節(jié)點(diǎn)后就結(jié)束這個(gè)流程的運(yùn)行,將相關(guān)的信息作為日志記錄到歷史記錄表中。如果這個(gè)流程是一個(gè)子流程,還需要將其結(jié)束的信息通知其父節(jié)點(diǎn)。5.3 本章小結(jié)本章主要給出了工作流引擎中的 7個(gè)關(guān)鍵模塊的實(shí)現(xiàn)。結(jié)論與討論工作流引擎的設(shè)計(jì)與實(shí)現(xiàn)主要容包括: 1.分析了.Net技術(shù)、Web Service技術(shù),并詳細(xì)討論了這兩個(gè)技術(shù)在提高系統(tǒng)可集成性這個(gè)點(diǎn)上所能起到的作用,最后決定在.Net平臺(tái)下進(jìn)行本工作流引擎的升發(fā) 2.分析了基于,Net的工作流管理系統(tǒng)的系統(tǒng)結(jié)構(gòu),簡(jiǎn)

48、要給出了過(guò)程定義工具、管理和監(jiān)控工具、用戶和組織機(jī)構(gòu)、普通用戶、數(shù)據(jù)庫(kù)表等五個(gè)部分的設(shè)計(jì)。3.分析了基于.Net的工作流引擎。4.給出了基于.Net的工作流引擎與客戶端之間的通信方式與接口的設(shè)計(jì)。5給出了基于.Net的工作流引擎之間的通信方式與接口的設(shè)計(jì),利用這種設(shè)計(jì)就可以實(shí)現(xiàn)同種工作流引擎之間的通信并能方便的與異構(gòu)的工作流管理系統(tǒng)集成。6給出了工作流引擎的系統(tǒng)結(jié)構(gòu)的設(shè)計(jì)。7.給出了基于 Net的工作流引擎的7個(gè)關(guān)鍵模塊的實(shí)現(xiàn),通過(guò)這7個(gè)模塊,就可以實(shí)現(xiàn)對(duì)整個(gè)工作流管理系統(tǒng)的導(dǎo)航口8.給出了基于.Net的工作流引擎所需的數(shù)據(jù)庫(kù)的實(shí)現(xiàn)。9.給出了本工作流管理系統(tǒng)的一個(gè)應(yīng)用實(shí)例,并且具體的分析了這

49、個(gè)應(yīng)用實(shí)例中的一個(gè)具有代表性的工作流流程。雖然本文所給出的基于 Net的工作流引擎在實(shí)際應(yīng)用中運(yùn)行狀態(tài)良好,但是這個(gè)工作流引擎無(wú)論是在理論上還是在應(yīng)用上,都還存在一些問(wèn)題,需要進(jìn)一步的研究:1.作為一種松散的動(dòng)態(tài)集成的工作流管理系統(tǒng),事務(wù)處理和任務(wù)監(jiān)控成為一個(gè)棘手的難題。高性能分布合理的工作流引擎的設(shè)計(jì)和實(shí)現(xiàn)是解決這些問(wèn)題的關(guān)鍵。本文還沒(méi)有涉與這方面的問(wèn)題。2.安全性問(wèn)題是網(wǎng)絡(luò)通訊中的一個(gè)永恒話題,工作流管理系統(tǒng)也不例外。WebService作為一種部署在Internet上的對(duì)象.安全問(wèn)題尤其重要。現(xiàn)在關(guān)于Web Service與其相關(guān)技術(shù) (SOAP. UDDI等)的安全性研究正在如火如茶的

50、進(jìn)行?;赪ebService的工作流的安全性依賴于這些底層技術(shù)的發(fā)展和成熟。 3.工作流執(zhí)行對(duì)象之間的交互是通過(guò)SOAP進(jìn)行的。這涉與到SOAI本身的性能可靠性問(wèn)題?,F(xiàn)在有很多關(guān)于提高SOAP的可靠性和性能的研究。4.工作流管理系統(tǒng)根據(jù)相關(guān)的商業(yè)約定自動(dòng)完成企業(yè)間的商業(yè)活動(dòng)可以大大提高工作流管理系統(tǒng)的可集成性。商業(yè)約定是企業(yè)間動(dòng)態(tài)交互的基礎(chǔ)和根本,現(xiàn)在雖然有了一些標(biāo)準(zhǔn),但還不夠成熟,需要進(jìn)一步的研究。 5,我們所實(shí)現(xiàn)的工作流引擎還需要進(jìn)一步的標(biāo)準(zhǔn)化,盡量的與WFMC所提出的作流參考模型接軌。這樣就可以進(jìn)一步的提高本工作流管理系統(tǒng)的可集成性和可擴(kuò)展性。 6.需要進(jìn)一步的優(yōu)化系統(tǒng)中任務(wù)執(zhí)行的順序和資源分配的方法。這是因?yàn)樵诜质江h(huán)境下,在資源有限和任務(wù)完成時(shí)間約束的情況下,如何優(yōu)化系統(tǒng)中任務(wù)執(zhí)行的順序和資源分配的方法,對(duì)于工作流管理系統(tǒng)在大規(guī)模應(yīng)用中的運(yùn)行效率有著非常重要的影響。 由于時(shí)間倉(cāng)促和筆者水平有限,論文中存在錯(cuò)誤在所難免,敬請(qǐng)各位老師和同學(xué)指正。致 首先,衷心感尊敬的導(dǎo)師慶祥教授,在制作論文的這段時(shí)間中,我一直得到了老師的諄諄教誨、親切關(guān)懷和充分信任。老師指引我走上了計(jì)算機(jī)應(yīng)用的研究之路,并在許多關(guān)鍵的地方指明了工作的方向。同時(shí),老師嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度,廣博的學(xué)識(shí),親切隨和的為人也給我留下了深刻的印象

溫馨提示

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

評(píng)論

0/150

提交評(píng)論