




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、分類號:分類號:TP315TP315 U U D D C C:D10621-408-(2007)5816-0D10621-408-(2007)5816-0 密密 級:公級:公 開開 編編 號號: : 20030321332003032133 X X X X 科科 技技 大大 學(xué)學(xué) 學(xué)學(xué) 位位 論論 文文 基于工作流引擎的系統(tǒng)框架設(shè)計(jì)開發(fā)基于工作流引擎的系統(tǒng)框架設(shè)計(jì)開發(fā) 工作流引擎子系統(tǒng)工作流引擎子系統(tǒng) 論文作者姓名:論文作者姓名:肖波肖波 申請學(xué)位專業(yè):申請學(xué)位專業(yè):網(wǎng)絡(luò)工程網(wǎng)絡(luò)工程 申請學(xué)位類別:申請學(xué)位類別:工學(xué)學(xué)士工學(xué)學(xué)士 指指導(dǎo)導(dǎo)教教師師姓姓名名(職職稱稱) :方睿(副教授)方睿(副教
2、授) 論文提交日期:論文提交日期:20062006 年年 6 6 月月 4 4 日日 基于工作流引擎的系統(tǒng)框架設(shè)計(jì)開發(fā)基于工作流引擎的系統(tǒng)框架設(shè)計(jì)開發(fā) 工作流引擎子系統(tǒng)工作流引擎子系統(tǒng) 摘摘 要要 工作流就是一系列相互銜接、自動進(jìn)行的業(yè)務(wù)活動或任務(wù)。工作流引擎是 工作流管理系統(tǒng)的核心,它的主要功能是通過計(jì)算機(jī)技術(shù)的支持去定義、執(zhí)行 和管理工作流,協(xié)調(diào)工作流執(zhí)行過程中工作之間以及群體成員之間的信息交互。 論文主要講述了工作流引擎的基本功能及設(shè)計(jì)方法,介紹工作流引擎的基 本原理,具體分析了工作流引擎所包含的內(nèi)容,詳細(xì)介紹了相關(guān)的信息模型和 控制模型。系統(tǒng)采用關(guān)系結(jié)構(gòu)的理念來設(shè)計(jì)工作流引擎,給出了用
3、 Microsoft Visual Studio 2005 和 Microsoft SQL Server2000 實(shí)現(xiàn)系統(tǒng)的方法。論文中 利用本工作流引擎構(gòu)建系統(tǒng)能適應(yīng)大多數(shù)業(yè)務(wù)流程的扭轉(zhuǎn),大大縮短常見信息 系統(tǒng)的項(xiàng)目開發(fā)周期,提高效率。 關(guān)鍵詞:關(guān)鍵詞:工作流引擎;關(guān)鍵業(yè)務(wù);關(guān)系 The design of information system frame based on workflow engine - The subsystem of workflow engine Abstract Workflow is a series of interlocking, automatic bu
4、siness activities or tasks. Workflow engine is the work flow management system in the core, and its main function is to define, implement and manage work flow through the support of computer technology as well as co-ordinate work flow process of working implementation and groups of information betwe
5、en members of interaction. The thesis has mainly described basic functions and design of the workflow engine, introduced the basic theories, and specifically analyzed the content included in the work flow and the details of the relevant information model and control model. The idea of relation struc
6、ture has been used to design this system and the method to achieve the system function with Microsoft Visual Studio 2005 and Microsoft SQL Server2000 has been given out. Constructing system with the workflow engine can adapt to the majority of the business process reversing that significantly reduce
7、 the development cycle of the common information system and improve efficiency. Key words: Workflow engine; Critical business; Relationship 目目 錄錄 論文總頁數(shù):21 頁 1引言.1 2開發(fā)概述.1 2.1VISUAL C# 語言概述.1 2.2工作流引擎概述.2 2.3工作流引擎現(xiàn)狀分析.3 3需求分析.4 3.1用戶需求.4 3.2工作流引擎的分析.4 3.3業(yè)務(wù)流程.5 3.4開發(fā)運(yùn)行環(huán)境.6 4工作流引擎的設(shè)計(jì).6 4.1模塊的劃分.6 4.2功
8、能描述.6 4.3工作流引擎的詳細(xì)設(shè)計(jì).7 4.4數(shù)據(jù)庫結(jié)構(gòu)的設(shè)計(jì).9 5工作流引擎的實(shí)現(xiàn).12 5.1狀態(tài)圖管理的設(shè)計(jì).12 5.1.1功能描述.12 5.1.2界面設(shè)計(jì).12 5.1.3工作流程和部分代碼.13 5.2任務(wù)管理窗體.14 5.2.1功能描述.14 5.2.2界面設(shè)計(jì).14 5.2.3工作流程和部分代碼.15 5.3任務(wù)指派窗體.16 5.3.1功能描述.16 5.3.2界面設(shè)計(jì).16 5.3.3工作流程和部分代碼.17 6測試結(jié)果.18 結(jié) 論.18 參考文獻(xiàn).18 致 謝.20 聲 明.21 第 1 頁 共 21 頁 1 1引言引言 隨著信息技術(shù)的高速發(fā)展,越來越多的企業(yè)
9、需要建設(shè)各種各樣的信息系統(tǒng), 為每個系統(tǒng)重復(fù)構(gòu)建框架是一種浪費(fèi)。這些系統(tǒng)的共性是基于分布式網(wǎng)絡(luò)環(huán)境 下的多級別、多用戶的數(shù)據(jù)庫系統(tǒng),每個級別、用戶可能擁有不同的權(quán)限,需 要對不同的業(yè)務(wù)進(jìn)行操作,各個業(yè)務(wù)之間的耦合也不盡相同。并且企業(yè)或者部 門的計(jì)算機(jī)應(yīng)用已不僅僅停留在諸如文檔處理、公文流轉(zhuǎn)以及信息發(fā)布等這些 簡單的業(yè)務(wù)層面上。越來越多的企業(yè)或部門要求將信息技術(shù)的應(yīng)用擴(kuò)展到關(guān)鍵 業(yè)務(wù)中。例如,產(chǎn)品的設(shè)計(jì)和制造過程,銀行的借貸和劃賬業(yè)務(wù),還有物資部 門的采購、審批和出入庫業(yè)務(wù)等等,都屬于相應(yīng)企業(yè)或部門的關(guān)鍵業(yè)務(wù)。 基于工作流引擎的系統(tǒng)框架設(shè)計(jì)開發(fā)工作流引擎子系統(tǒng)是采用 Visual C#以及 Mi
10、crosoft SQL Server2000 來開發(fā)的。系統(tǒng)主要由四個模塊組 成,他們分別是:狀態(tài)圖管理模塊、任務(wù)列表模塊、任務(wù)指派模塊、任務(wù)提交 模塊。本系統(tǒng)主要包括了一下四個功能:狀態(tài)圖管理:對任務(wù)流程進(jìn)行添加、 刪除、修改。任務(wù)列表:可以查看任務(wù)狀態(tài)、未完成任務(wù)列表及已完成任務(wù)列 表。任務(wù)指派:指派人員去完成任務(wù)。任務(wù)提交:完成任務(wù)后,進(jìn)行提交,激 活下一個任務(wù)。 由于信息技術(shù)的發(fā)展和日趨激烈的商業(yè)競爭,人們不再滿足于獨(dú)立、零散 的辦公自動化和計(jì)算機(jī)應(yīng)用,而是需要綜合的、集成化的解決方案。作為一種 對常規(guī)性事務(wù)進(jìn)行管理、集成的技術(shù),工作流管理系統(tǒng)的出現(xiàn)是必然的。它可 以改進(jìn)和優(yōu)化業(yè)務(wù)流程
11、,提高業(yè)務(wù)工作效率;實(shí)現(xiàn)更好的業(yè)務(wù)過程控制,提高 顧客服務(wù)質(zhì)量;提高業(yè)務(wù)流程的柔性等。 2 2開發(fā)概述開發(fā)概述 2.12.1VisualVisual C#C# 語言概述語言概述 Visual C#(讀作“C sharp”)是 Visual Studio .NET 中引入的一種新 的編程語言。C# 從 C 和 C+ 演變而來,是一種簡單、現(xiàn)代、類型安全和面向 對象的語言。設(shè)計(jì) C# 是為了建立運(yùn)行于 .NET 平臺上的、范圍廣泛的企業(yè)級 應(yīng)用程序。用 Visual C# 編寫的代碼被編譯為托管代碼,這意味著它將受益于 公共語言運(yùn)行庫的服務(wù)。這些服務(wù)包括:語言互操作性、垃圾回收、增強(qiáng)的安 全性以及
12、改進(jìn)的版本支持。 在 Visual Studio .NET 中,Visual C# 完全得到 項(xiàng)目模板、設(shè)計(jì)器、屬性頁、代碼助理、對象模型和其他開發(fā)環(huán)境功能的支持。 Visual C# 編程的庫是 .NET Framework。 C#語言是一門簡單,現(xiàn)代,優(yōu)雅,面向?qū)ο?,類型安全,平臺獨(dú)立的一門 新型組件編程語言。其語法風(fēng)格源自 C/C+家族,融合了 Visual Basic 的高效 第 2 頁 共 21 頁 和 C/C+強(qiáng)大。其優(yōu)雅的語法風(fēng)格,創(chuàng)新的語言特性,因而深受世界各地程序 員的好評和喜愛。C#起源于 C 語言家族,因此,C,C+和 Java 的程序員能很快 熟悉它。C#獲得了 ECM
13、A 和 ISO/IEC 的國際標(biāo)準(zhǔn)認(rèn)證,它們分別是 ECMA-334 標(biāo) 準(zhǔn)和 ISO/IEC 23270 標(biāo)準(zhǔn)。Microsoft 用于.NET 框架的 C#編譯器就是根據(jù)這兩 個標(biāo)準(zhǔn)實(shí)現(xiàn)的。 2.22.2工作流引擎概述工作流引擎概述 工作流技術(shù)起源于二十世紀(jì)七十年代中期辦公自動化領(lǐng)域的研究,由于當(dāng) 時計(jì)算機(jī)尚未普及,網(wǎng)絡(luò)技術(shù)水平還很低以及理論基礎(chǔ)匱乏,這項(xiàng)新技術(shù)并未 取得成功。1983 年至 1985 年間,在圖像處理領(lǐng)域和電子郵件領(lǐng)域出現(xiàn)了早期 的含有工作流特征的商用系統(tǒng)。 進(jìn)入九十年代以后,隨著個人計(jì)算機(jī)、網(wǎng)絡(luò)技術(shù)的普及和推廣,以及信息 化建設(shè)的日益完善,使得工作流技術(shù)的研究與開發(fā)進(jìn)入
14、了一個新的熱潮。1993 年,國際工作流管理聯(lián)盟(WfMC)的成立標(biāo)志著工作流技術(shù)開始進(jìn)入相對成熟 的階段。為了實(shí)現(xiàn)不同工作流產(chǎn)品之間的互操作,WfMC 在工作流管理系統(tǒng)的相 關(guān)術(shù)語、體系結(jié)構(gòu)及應(yīng)用編程接口等方面制定了一系列標(biāo)準(zhǔn)。工作流管理聯(lián)盟 給出的工作流定義是:工作流是指整個或部分經(jīng)營過程在計(jì)算機(jī)支持下的全自 動或半自動化。在應(yīng)用中可以把由計(jì)算機(jī)軟件系統(tǒng)(工作流管理系統(tǒng))控制其 執(zhí)行的過程都稱為工作流。在工作流參考模型中,工作流引擎是工作流管理系 統(tǒng)的核心。工作流引擎是為工作流管理系統(tǒng)在定義提供支持、同時在運(yùn)行時提 供解釋和執(zhí)行服務(wù)的一組數(shù)據(jù)模型和軟件。 工作流引擎(Workflow En
15、gine, WfE)的主要功能是通過計(jì)算機(jī)技術(shù)的支 持去定義、執(zhí)行和管理工作流,協(xié)調(diào)工作流執(zhí)行過程中工作之間以及群體成員 之間的信息交互。工作流需要依靠工作流引擎來調(diào)度、實(shí)現(xiàn)。作為工作流的核 心應(yīng)能提供以下幾個方面的功能支持:解釋過程定義;創(chuàng)建過程實(shí)例并控制其 執(zhí)行;調(diào)度各項(xiàng)活動;為用戶工作表添加工作項(xiàng);通過應(yīng)用程序接口(API)調(diào) 用應(yīng)用程序;提供監(jiān)督和管理功能等。 國際工作流管理聯(lián)盟對工作流的過程模型提出了 8 種基本單元和 6 種控制 結(jié)構(gòu)。 8 種基本單元分別是:開始活動、結(jié)束活動、原子活動、子過程、活動塊、 或節(jié)點(diǎn)、與節(jié)點(diǎn)、弧。 6 種控制結(jié)構(gòu)分別是:順序結(jié)構(gòu)、與分叉、與合并、或分叉
16、、或合并、重復(fù)。 對于 8 種基本單元中,開始活動和結(jié)束活動本身沒有實(shí)際意義,只是用來 標(biāo)識過程的開始和結(jié)束;子過程和活動塊也可以分解為原子活動和各種控制結(jié) 第 3 頁 共 21 頁 構(gòu)的組合。這樣下來,8 種基本活動單元可以提煉出核心的是原子活動節(jié)點(diǎn)、 與節(jié)點(diǎn)、或節(jié)點(diǎn)和弧四個基本單元。而 6 種控制結(jié)構(gòu),則可以看成是原子活動 節(jié)點(diǎn)、與節(jié)點(diǎn)、或節(jié)點(diǎn)和弧的各種組合關(guān)系。進(jìn)一步分析可以得出:6 種控制 結(jié)構(gòu)是兩個原子活動節(jié)點(diǎn)之間,由與節(jié)點(diǎn)、或節(jié)點(diǎn)和弧構(gòu)成的控制單元。 所以,可以將原子活動單元單獨(dú)提出來,我們把它稱之為活動節(jié)點(diǎn) (Activity),將原子活動之間的各種連接方式(與節(jié)點(diǎn)、或節(jié)點(diǎn)和弧的
17、組合) 稱之為基于計(jì)算機(jī)算法控制的由計(jì)算機(jī)自主完成的控制節(jié)點(diǎn)(ControlNode)。 近一步,我們可以在兩個相鄰的控制節(jié)點(diǎn)之間插入“啞活動”節(jié)點(diǎn)(是虛 擬的,不做任何動作,但在計(jì)算機(jī)中創(chuàng)建活動實(shí)例)。這樣任何一個工作流圖 就可以分解為活動節(jié)點(diǎn)和控制節(jié)點(diǎn)的前后連接。 這樣,在一個流程實(shí)例的所有節(jié)點(diǎn)的狀態(tài)圖中,活動節(jié)點(diǎn)(包括“啞活動” 節(jié)點(diǎn))就是控制節(jié)點(diǎn)的流轉(zhuǎn)算法的輸入條件,控制節(jié)點(diǎn)查詢狀態(tài)圖,與預(yù)制條 件對比,就可以激活它的后續(xù)節(jié)點(diǎn),從而達(dá)到工作流流轉(zhuǎn)。 綜上所述,它構(gòu)建了一般信息系統(tǒng)的框架,在傳統(tǒng)的關(guān)系數(shù)據(jù)庫基礎(chǔ)之上 定義工作流數(shù)據(jù)模型;它利用 DBMS 內(nèi)嵌的編程語言來實(shí)現(xiàn)工作流引擎的控
18、制邏 輯;開發(fā)者可以在此框架的基礎(chǔ)上搭建自己的具有工作流特性的信息系統(tǒng)?;?于工作流引擎的信息系統(tǒng)框架的適用對象并非應(yīng)用系統(tǒng)的最終用戶,而是利用 專用開發(fā)工具構(gòu)造相應(yīng)應(yīng)用系統(tǒng)的專業(yè)開發(fā)人員。 2.32.3工作流引擎現(xiàn)狀分析工作流引擎現(xiàn)狀分析 近幾年國家非常重視企業(yè)的信息化建設(shè),在電子商務(wù)(EC),企業(yè)資源計(jì)劃 (ERP), 產(chǎn)品數(shù)據(jù)管理(PDM),客戶關(guān)系管理(CRM),計(jì)算機(jī)集成制造(CIMS)等領(lǐng)域 投入了大量的人力和物力,力圖盡快達(dá)到國際先進(jìn)水平。然而,電子商務(wù)(EC),企 業(yè)資源計(jì)劃(ERP),產(chǎn)品數(shù)據(jù)管理(PDM),客戶關(guān)系管理(CRM),計(jì)算機(jī)集成制造 (CIMS),辦公自動化(O
19、A)等信息系統(tǒng)的發(fā)展又都離不開工作流技術(shù)的支持,它是 企業(yè)實(shí)現(xiàn)管理信息化和技術(shù)信息化的關(guān)鍵技術(shù)。我國政府充分認(rèn)識到工作流技 術(shù)的重要性。本文針對目前國內(nèi)企業(yè)信息化過程中,最重要的兩個領(lǐng)域(產(chǎn)品數(shù) 據(jù)管理,企業(yè)資源計(jì)劃)研究工作流管理功能建模、工作流安全、工作流實(shí)例監(jiān) 控、以及工作流與 PDM,ERP 系統(tǒng)的集成應(yīng)用等問題。 隨著社會生產(chǎn)的流程化,工作流(Workflow)起著越來越重要的作業(yè),工 作流管理系統(tǒng)的核心是工作流引擎。對于企業(yè)來說,其生產(chǎn)經(jīng)營活動就是由各 種各樣業(yè)務(wù)流程交織在一起組成的。然而,在企業(yè)管理中,許多流程在日常操 作過程中已被習(xí)慣,而不被人們所重視,更不能被有效的管理起來。
20、另外,客 戶的需求瞬息萬變,而產(chǎn)品的生命周期也是在不斷縮短,技術(shù)在不斷創(chuàng)新。企 業(yè)要在這樣一個競爭和變換的外部環(huán)境中求得生存,就必須要有隨需而變的能 第 4 頁 共 21 頁 力,不斷地調(diào)整和優(yōu)化自身的各種業(yè)務(wù)流程,對流程進(jìn)行重構(gòu)和再造。 當(dāng)前工作流管理系統(tǒng)在全國范圍尤其是大中城市的各種企業(yè)都得到廣泛應(yīng) 用。隨著企業(yè)的不斷發(fā)展,充分利用電腦的先進(jìn)管理方式,將企業(yè)管理推向 “無紙化”、“現(xiàn)代化”已經(jīng)成了解決當(dāng)前企業(yè)管理問題的當(dāng)務(wù)之急。 總結(jié):先說明工作流管理系統(tǒng)的對當(dāng)今企業(yè)的重要性,然后再說明工作流 管理系統(tǒng)的核心是工作流引擎,最后分析目前我國企業(yè)管理的現(xiàn)狀,更體現(xiàn)出 有一套完善的工作流引擎系統(tǒng)
21、對企業(yè)管理的重要性。 3 3需求分析需求分析 3.13.1 用戶需求用戶需求 用戶通過工作流管理系統(tǒng)可以更便捷的進(jìn)行業(yè)務(wù)管理,而工作流引擎是工 作流管理系統(tǒng)的核心部分,所以有必要對工作流引擎進(jìn)行設(shè)計(jì)。用戶需要通過 工作流系統(tǒng)進(jìn)行任務(wù)流程的定制,包括添加、刪除、修改流程,并且可以直觀 的查看出任務(wù)的狀態(tài),可以通過任務(wù)列表察看未完成任務(wù)和已完成任務(wù),可以 進(jìn)行任務(wù)指派,任務(wù)指派需要確認(rèn)指派的基準(zhǔn)和群體。用戶在完成任務(wù)后,需 要提交任務(wù)。 3.23.2 工作流引擎的分析工作流引擎的分析 我們把基于工作流引擎的信息系統(tǒng)框架定義為:數(shù)據(jù)模型和控制模型。其 中基于工作流引擎信息系統(tǒng)框架的數(shù)據(jù)模型又分為框架
22、模型、機(jī)構(gòu)模型和信息 模型三類??刂颇P蛯⑿畔⒛P汀C(jī)構(gòu)摩型和框架模型有機(jī)的結(jié)合在一起,它 根據(jù)其中定義的業(yè)務(wù)規(guī)則來流轉(zhuǎn)業(yè)務(wù)流程,控制模型是工作引擎的控制中心。 圖 1 是基于工作引擎的信息系統(tǒng)通用框架的結(jié)構(gòu)圖。 圖 1 工作引擎的信息系統(tǒng)通用框架的結(jié)構(gòu)圖 其中調(diào)度中心接受從個性化界面(外部接口)發(fā)送過來流程控制的請求(如 業(yè)務(wù)初始化、獲取任務(wù)以及結(jié)束任務(wù)等),根據(jù)不同的請求類型調(diào)用相應(yīng)的處 第 5 頁 共 21 頁 理模塊完成與本次請求相關(guān)的操作并將結(jié)果返回。該操作是基于 DBMS 的并發(fā)機(jī) 制和鎖機(jī)制來實(shí)現(xiàn)工作流引擎的控制模型,不需要諸如請求隊(duì)列等形式的數(shù)據(jù) 結(jié)構(gòu)。從而實(shí)現(xiàn)了多個外部請求之
23、間的獨(dú)立性。調(diào)度中心在收到活動節(jié)點(diǎn)狀態(tài) 變化觸發(fā)之后,根據(jù)其后繼控制節(jié)點(diǎn)的類型,調(diào)用不同的算法,計(jì)算并設(shè)置控 制節(jié)點(diǎn)后繼節(jié)點(diǎn)的狀態(tài),來生成狀態(tài)圖。所涉及到狀態(tài)圖中活動節(jié)點(diǎn)的各種狀 態(tài),他們之間的轉(zhuǎn)換關(guān)系見圖 2。 圖 2 狀態(tài)轉(zhuǎn)換圖 任務(wù)管理主要根據(jù)調(diào)度中心的指示完成諸如任務(wù)創(chuàng)建、任務(wù)狀態(tài)的轉(zhuǎn)換以 及相關(guān)數(shù)據(jù)的維護(hù)等工作。每次“結(jié)束任務(wù)”的外部請求將觸發(fā)調(diào)度中心調(diào)用 “任務(wù)管理”為后繼活動(如果存在的話)創(chuàng)建新的實(shí)例;同時,其他不同的 外部請求也將觸發(fā)“任務(wù)管理”實(shí)施任務(wù)狀態(tài)的切換。 任務(wù)指派處理只是針對常規(guī)交互活動活動,通常情況下,在任務(wù)狀態(tài)由 “睡眠狀態(tài)”切換到“就緒狀態(tài)”過程中完成任務(wù)的
24、指派工作,即處于就緒狀 態(tài)的任務(wù)在通常情況下都確定了其執(zhí)行者。任務(wù)指派過程首先根據(jù)任務(wù)指派基 準(zhǔn)確定可以執(zhí)行此任務(wù)的群體人員,通常情況下這是一個包含多個人員的集合; 然后根據(jù)任務(wù)指派方法確定由這個群體中的哪些個體來執(zhí)行任務(wù),執(zhí)行任務(wù)的 個體標(biāo)識記錄在相應(yīng)任務(wù)記錄的UserID字段中。 任務(wù)完成過后,需要將任務(wù)提交給調(diào)度中心,任務(wù)由“執(zhí)行狀態(tài)”切換到 “處理結(jié)束通過狀態(tài)”或“處理結(jié)束未通過狀態(tài)”,同時激活下一個任務(wù)。 3.33.3 業(yè)務(wù)流程業(yè)務(wù)流程 管理員或者超級用戶定制工作流程,詳見圖 3。 圖 3 狀態(tài)圖管理流程圖 第 6 頁 共 21 頁 管理員或者超級用戶進(jìn)行任務(wù)指派,詳見圖 4。 圖
25、4 任務(wù)指派流程圖 個人、隊(duì)列或者團(tuán)隊(duì)通過查看任務(wù)列表了解任務(wù)。 完成任務(wù)后提交。 執(zhí)行下一個任務(wù)。 3.43.4 開發(fā)運(yùn)行環(huán)境開發(fā)運(yùn)行環(huán)境 安裝此系統(tǒng)所需的基本軟、硬件環(huán)境為: Windows98 或 WindowsNT/2000/XP。 Microsoft Visual Studio 2005。 Microsoft SQL Server2000 數(shù)據(jù)庫。 512M 以上內(nèi)存。 5G 以上可用硬盤空間。 VGA 顯示器。 本程序在 Windows XP 操作系統(tǒng)下,以 Microsoft Visual Studio 2005 為 前臺開發(fā)工具,用 Microsoft SQL Server20
26、00 為后臺數(shù)據(jù)庫開發(fā)實(shí)現(xiàn)的。 總結(jié):以一個某省電信部門的物流信息系統(tǒng)為分析對象,確定該部門的組 織結(jié)構(gòu)和業(yè)務(wù)流程后最后確定工作流引擎系統(tǒng)應(yīng)該具備的功能,以確定系統(tǒng)的 主要模塊,也簡單介紹了該系統(tǒng)的開發(fā)環(huán)境和運(yùn)行條件。 4 4工作流引擎的設(shè)計(jì)工作流引擎的設(shè)計(jì) 4.14.1模塊的劃分模塊的劃分 通過對用戶需求調(diào)研并分析,確定系統(tǒng)應(yīng)具備的功能,所需模塊包括:狀 態(tài)圖管理,任務(wù)管理,任務(wù)指派,任務(wù)提交。 4.24.2功能描述功能描述 這個系統(tǒng)主要涉及到狀態(tài)圖管理、任務(wù)管理、任務(wù)指派、任務(wù)提交。 狀態(tài)圖管理:包括添加、刪除、修改流程。對流程進(jìn)行控制,包括無條件 轉(zhuǎn)移、與分支控制、與合并控制、或分支控制
27、、或合并控制、投票合并控制。 第 7 頁 共 21 頁 查看任務(wù)的狀態(tài),包括了睡眠狀態(tài)、就緒狀態(tài)、執(zhí)行狀態(tài)、完成通過狀態(tài)以及 完成未通過狀態(tài),不同的任務(wù)狀態(tài)顯示為不同的顏色。 任務(wù)管理:從數(shù)據(jù)庫中讀取出任務(wù)列表,其中包括未完成任務(wù)和已完成任 務(wù),任務(wù)列表中包括了任務(wù)建立的時間,預(yù)計(jì)完成任務(wù)的時間,完成任務(wù)人員, 任務(wù)完成時間。同時可以添加新任務(wù)。 任務(wù)指派:包括等待指派的任務(wù),任務(wù)指派的基準(zhǔn)以及任務(wù)指派的人群。 其中任務(wù)指派的基準(zhǔn)包括基于部門進(jìn)行任務(wù)指派、基于團(tuán)隊(duì)進(jìn)行任務(wù)指派、基 于角色進(jìn)行任務(wù)指派、基于自定義的方式進(jìn)行任務(wù)指派。任務(wù)指派的人群包括 將任務(wù)分配指定的所有人員,將任務(wù)分配給指定群
28、體中的工作量最少的人員, 將任務(wù)隊(duì)列中最早創(chuàng)建的任務(wù)分配給相應(yīng)群體中最先提出執(zhí)行任務(wù)請求的個體, 基于優(yōu)先數(shù)分配。 任務(wù)提交:任務(wù)結(jié)束后提交系統(tǒng)。 4.34.3工作流引擎的詳細(xì)設(shè)計(jì)工作流引擎的詳細(xì)設(shè)計(jì) 根據(jù)工作流引擎的工作流程,綜合上述的各功能模塊,設(shè)計(jì)出的系統(tǒng)模塊 圖如圖 5 所示: 圖 5 系統(tǒng)模塊圖 狀態(tài)圖管理如圖 6: 第 8 頁 共 21 頁 圖 6 狀態(tài)圖管理 用戶通過對活動節(jié)點(diǎn)進(jìn)行操作,主要操作動作有以下表 1 所示: 表 1 控制節(jié)點(diǎn)類型 控制類型名中文名說明 DIRECT無條件轉(zhuǎn)移不做任何動作,直接激活下一個節(jié)點(diǎn)。 AND_BRANCH與分支控制 流經(jīng)此處的任務(wù)將進(jìn)行與分支,
29、通過查找 TaskStatus 表來決定下一動作。 AND_MERGE與合并控制 流經(jīng)此處的任務(wù)將進(jìn)行與合并同步,通過查找 TaskStatus 表來決定下一動作。 OR_BRANCH或分支控制 流經(jīng)此處的任務(wù)將進(jìn)行或分支,通過查找 TaskStatus 表來決定下一動作。 OR_MERGE或合并控制 流經(jīng)此處的任務(wù)將進(jìn)行或合并同步,通過查找 TaskStatus 表來決定下一動作。 VOTE_MERGE投票合并控制通過查找 TaskStatus 表來決定投票結(jié)果。 上面所定義的 6 種控制類型的節(jié)點(diǎn),若不能滿足業(yè)務(wù)要求,可以自定義其 他的控制節(jié)點(diǎn)類型。 一個流程實(shí)例產(chǎn)生之時一并產(chǎn)生所有活動節(jié)
30、點(diǎn)的初始狀態(tài),生成以后則由 控制節(jié)點(diǎn)來動態(tài)修改其狀態(tài)。任務(wù)狀態(tài)主要有 6 種:睡眠狀態(tài)、就緒狀態(tài)、執(zhí) 行狀態(tài)、完成通過狀態(tài)以及完成未通過狀態(tài)。睡眠狀態(tài):流程實(shí)例創(chuàng)建時統(tǒng)一 設(shè)置所有活動節(jié)點(diǎn)為該狀態(tài),等待喚醒。就緒狀態(tài):前趨控制節(jié)點(diǎn)將活動喚醒, 等待人工處理。執(zhí)行狀態(tài):表示正在進(jìn)行人工處理,等待處理結(jié)果。完成通過 狀態(tài):表示人工處理結(jié)束,移交給控制節(jié)點(diǎn)繼續(xù)下一步處理。完成未通過狀態(tài): 表示人工處理結(jié)束,處理意見為“否決”,同時移交給控制節(jié)點(diǎn)繼續(xù)下一步處 理。 任務(wù)列表用于記錄那些已經(jīng)創(chuàng)建但尚未完成的任務(wù)以及已完成的任務(wù),它 們之間用 CompletionFlag 標(biāo)記。 第 9 頁 共 21 頁
31、 任務(wù)指派是指依照某種規(guī)則將任務(wù)分配給具體人員來執(zhí)行。只有常規(guī)交互 活動才涉及到任務(wù)指派的問題;其他活動要么在前臺不具備實(shí)際的應(yīng)用邏輯, 要么由工作流引擎自動調(diào)用,因此與任務(wù)指派無關(guān)。任務(wù)指派的基準(zhǔn)是:基于 部門進(jìn)行任務(wù)指派、基于團(tuán)隊(duì)進(jìn)行任務(wù)指派、基于角色進(jìn)行任務(wù)指派、基于自 定義的方式進(jìn)行任務(wù)指派。任務(wù)指派的基準(zhǔn)確定以后,再確定執(zhí)行任務(wù)的群體, 具體指派到哪些實(shí)際人員還取決于任務(wù)指派方法。指派方法有四種:ALL:表示 任務(wù)將分配給由 BasedOn 指定的群體中的所有人員。LEAST_WORKING_LIST:表 示任務(wù)將分配給指定群體中的工作量最少的人員,工作量的多少可以通過 ToDoTa
32、skList 的統(tǒng)計(jì)數(shù)據(jù)得到。FCFA:表示先來先分配, 即將任務(wù)隊(duì)列中最早 創(chuàng)建的任務(wù)分配給相應(yīng)群體中最先提出執(zhí)行任務(wù)請求的個體,任務(wù)的創(chuàng)建時間 由 DateCreated 指示。PRIORITY:表示基于優(yōu)先數(shù)分配, 只適合于 ROLE_BASED 任務(wù)指派基準(zhǔn)。在表 UserInRole 中有個字段 PriorityNo 用于指定相應(yīng)人員的 優(yōu)先級。用戶也可以根據(jù)具體需要來添加新的任務(wù)指派方法。 4.44.4數(shù)據(jù)庫結(jié)構(gòu)的設(shè)計(jì)數(shù)據(jù)庫結(jié)構(gòu)的設(shè)計(jì) 根據(jù)前面的模塊功能設(shè)計(jì),系統(tǒng)所需要的數(shù)據(jù)庫應(yīng)包括“活動節(jié)點(diǎn)表”, “業(yè)務(wù)過程表”,“控制節(jié)點(diǎn)表”,“任務(wù)指派規(guī)則表”,“任務(wù)狀態(tài)表”, “任務(wù)列表”
33、等,各部分各自作為一個表存在。 具體設(shè)計(jì)如下: 1活動節(jié)點(diǎn)表 用于存放活動節(jié)點(diǎn)信息,具體設(shè)計(jì)如表 2 所示: 表 2 活動節(jié)點(diǎn)表 字段名數(shù)據(jù)類型說明 ActIDInt活動編號 ProcIDInt業(yè)務(wù)編號 ActNameVarchar(20)活動名稱 ActTypeVarchar(20)活動類型 TimeAllowedDatatime接受時間 PreCtrNodelistvarchar(20)前面的控制結(jié)點(diǎn)表 NextCtrNodelistvarchar(20)后面的控制結(jié)點(diǎn)表 2業(yè)務(wù)過程表 用于存放業(yè)務(wù)過程,具體設(shè)計(jì)如表 3 所示: 表 3 業(yè)務(wù)過程表 字段名數(shù)據(jù)類型說明 ProcIDInt業(yè)
34、務(wù)編號 第 10 頁 共 21 頁 ProcNamevarchar(20)業(yè)務(wù)名稱 ProcDescvarchar(20) 3控制節(jié)點(diǎn)表 用于存放控制節(jié)點(diǎn),具體設(shè)計(jì)如表 4 所示: 表 4 控制節(jié)點(diǎn)表 字段名數(shù)據(jù)類型說明 CtrNodeIDInt控制節(jié)點(diǎn)編號 ActIDInt活動編號 ProcIDInt項(xiàng)目編號 CtrNodeNamevarchar(20)控制節(jié)點(diǎn)名 CtrNodeTypeVarchar(20)控制節(jié)點(diǎn)類型 CtrNodeDescvarchar(20) PreActNodelistvarchar(20)前次的活動結(jié)點(diǎn)目錄 NextActNodelistvarchar(20)下次
35、的活動結(jié)點(diǎn)目錄 ExecCtrFuncvarchar(20)實(shí)行的控制關(guān)系 PassedPercentagefloat通過的百分率 Parameterlistvarchar(20)參數(shù)目錄 4任務(wù)指派規(guī)則表 用于存放任務(wù)指派規(guī)則,具體設(shè)計(jì)如表 5 所示: 表 5 任務(wù)指派規(guī)則表 字段名數(shù)據(jù)類型說明 TeamIDInt團(tuán)隊(duì)編號 DeptIDInt部門編號 ActIDInt活動編號 BasedONvarchar(20)任務(wù)指派的基準(zhǔn) MethodVarchar(20)任務(wù)指派的群體 ExeFuncIDInt可執(zhí)行的關(guān)系編號 5任務(wù)狀態(tài)表 用于存放任務(wù)狀態(tài),具體設(shè)計(jì)如表 6 所示: 表 6 任務(wù)狀態(tài)
36、表 字段名數(shù)據(jù)類型說明 SerialNoInt流水號 TaskIDInt任務(wù)編號 第 11 頁 共 21 頁 ActIDInt活動編號 ProcIDInt業(yè)務(wù)編號 TaskStatusvarchar(20)任務(wù)狀態(tài) EntityIDInt實(shí)體編號 6 任務(wù)列表 用于存放為完成任務(wù)和已完成任務(wù),具體設(shè)計(jì)如表 7 所示: 表 7 任務(wù)列表 字段名數(shù)據(jù)類型說明 SerialNoInt流水號 TaskIDInt任務(wù)編號 EntityIDInt實(shí)體編號 UserIDInt用戶號 TaskStatusvarchar(20)任務(wù)狀態(tài) DateCreatedDatatime創(chuàng)建時間 DateAcceptedD
37、atatime開始執(zhí)行時間 DateCompletedDatatime完成時間 CompletionFlagInt任務(wù)的狀態(tài) 數(shù)據(jù)庫關(guān)系圖如圖 7 所示: 圖 7 數(shù)據(jù)庫關(guān)系圖 總結(jié): 對整個工作六引擎系統(tǒng)的功能??斓脑敿?xì)設(shè)計(jì)和所運(yùn)用的 第 12 頁 共 21 頁 Microsoft SQL Server2000 數(shù)據(jù)庫表的詳細(xì)介紹。 5 5工作流引擎的實(shí)現(xiàn)工作流引擎的實(shí)現(xiàn) 授銜做了個登陸界面,以方便測試用,然后添加了一個窗體,使用了一個 tabControl 控件,將 tabPage1、tabPage2、tabPage3、tabPage4、tabPage5 分別命名為:公司簡介、狀態(tài)圖管理、
38、任務(wù)管理、任務(wù)指派、提交任務(wù)。其中 狀態(tài)圖管理、任務(wù)管理、任務(wù)指派是工作流引擎的核心部分,狀態(tài)圖管理中主 要完成的是任務(wù)的定制,包括的功能有添加、刪除、合并和分支,可以直接察 看任務(wù)的狀態(tài)。任務(wù)管理部分主要完成的是對任務(wù)的添加、刪除,同時可以查 看任務(wù)列表。任務(wù)指派部分主要完成的是對指派的基準(zhǔn)和指派的群體進(jìn)行確定。 下面我們將主要對狀態(tài)圖管理、任務(wù)管理、任務(wù)指派進(jìn)行介紹。 5.15.1 狀態(tài)圖管理的設(shè)計(jì)狀態(tài)圖管理的設(shè)計(jì) .1 功能描述功能描述 這個窗體主要用來定制工作流程和察看任務(wù)狀態(tài),包括添加流程,刪除流 程,流程合并,流程拆分,狀態(tài)統(tǒng)計(jì)以及詳細(xì)狀態(tài)顯示。 .
39、2 界面設(shè)計(jì)界面設(shè)計(jì) 在這個窗體上用了 4 個 ComboBox 控件,6 個 GroupBox 控件,17 個 label 控件,5 個 Button 控件,1 個 DataGridView 控件,1 個 TextBox 控件,1 個 panel 控件。添加完畢后的窗體運(yùn)行后如圖 8 所示: 圖 8 狀態(tài)圖管理頁面截圖 第 13 頁 共 21 頁 .3 工作流程和部分代碼工作流程和部分代碼 在該窗體加載時進(jìn)行數(shù)據(jù)庫的連接,同時在左邊表格中顯示出數(shù)據(jù)。輸入 流程名,點(diǎn)確認(rèn)添加。下拉列表將自動讀取數(shù)據(jù)庫中的流程名,選中一個流程 名,單擊確認(rèn)刪除,出現(xiàn)“刪除任務(wù)流程成功”的對話框,
40、點(diǎn)確定關(guān)閉。將鼠 標(biāo)光標(biāo)移到流程拆分的文本框中,單擊選中左邊任務(wù),然后確定拆分。先選中 左邊的任務(wù),點(diǎn)添加流程到列表可以將要合并的任務(wù)移到列表中,也可點(diǎn)從列 表中刪除將任務(wù)移出,將要合并的任務(wù)移動到列表后,單擊確認(rèn)合并即可。狀 態(tài)圖統(tǒng)計(jì)和下面的狀態(tài)顯示是根據(jù)數(shù)據(jù)中的信息變化的。點(diǎn)最下面的退出系統(tǒng) 按鈕可直接退出系統(tǒng)。 部分代碼如下: string sql = select top 1 count0=(select count(*) from TaskList where CompletionFlag=0 ),count1=(select count(*) from TaskList where
41、 CompletionFlag=1 ),count2=(select count(*) from TaskList where CompletionFlag=2 ),count3=(select count(*) from TaskList where CompletionFlag=3 ),count8=(select count(*) from TaskList where CompletionFlag=8 ),count9=(select count(*) from TaskList where CompletionFlag=9 ),maxcount=(select count(*) fr
42、om TaskList) from TaskList; read = SqlHelper.SqlHelpDao.ExecuteReader(ContClass.Constants.ConnectionString, CommandType.Text, sql); while (read.Read() this.Fettle0 = double.Parse(read0.ToString(); this.Fettle1 = double.Parse(read1.ToString(); this.Fettle2 = double.Parse(read2.ToString(); this.Fettle
43、3 = double.Parse(read3.ToString(); this.Fettle4 = double.Parse(read4.ToString(); this.Fettle5 = double.Parse(read5.ToString(); this.Fettle6 = double.Parse(read6.ToString(); this.label13.Text = 任務(wù)流程未通過的有: + Fettle0. ToString() + 個; this.label14.Text = 任務(wù)流程處理中的有: + Fettle1. ToString() + 個; this.label1
44、5.Text = 任務(wù)流程已通過的有: + Fettle2. ToString() + 個; this.label16.Text = 任務(wù)流程啞狀態(tài)的有: + Fettle3. ToString() + 個; this.label17.Text = 任務(wù)流程睡眠狀態(tài)有: + Fettle4. ToString() + 個; this.label18.Text = 任務(wù)流程等待狀態(tài)有: + Fettle5. ToString() + 個; this.label19.Text = 合計(jì)任務(wù)流程數(shù)共有: + Fettle6. 第 14 頁 共 21 頁 ToString() + 個 this.lbl
45、0.Height = (int)(this.lbl0.Height * (Fettle0 / Fettle6) = 1) ? 2 : (int)(this.lbl0.Height * (Fettle0 / Fettle6); this.lbl1.Height = (int)(this.lbl1.Height * (Fettle1 / Fettle6) = 1) ? 2 : (int)(this.lbl1.Height * (Fettle1 / Fettle6); this.lbl2.Height = (int)(this.lbl2.Height * (Fettle2 / Fettle6) =
46、1) ? 2 : (int)(this.lbl2.Height * (Fettle2 / Fettle6); this.lbl3.Height = (int)(this.lbl3.Height * (Fettle3 / Fettle6) = 1) ? 2 : (int)(this.lbl3.Height * (Fettle3 / Fettle6); this.lbl4.Height = (int)(this.lbl4.Height * (Fettle4 / Fettle6) = 1) ? 2 : (int)(this.lbl4.Height * (Fettle4 / Fettle6); this.lbl5.Height = (int)(this.lbl5.Height * (Fettle5 / Fettle6) = 1) ? 2 : (int)(this.lbl5.Height * (Fettle5 / Fettle6); 5.25.2 任務(wù)管理窗體任務(wù)管理窗體 .1 功
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)院產(chǎn)品保障方案(3篇)
- 安全生產(chǎn)許可證適用范圍
- 車間安全生產(chǎn)隱患排查治理制度
- 國家對建筑施工企業(yè)實(shí)行安全生產(chǎn)
- 廠房防風(fēng)防寒方案(3篇)
- 叉車考試題目組成及答案
- 世界卒中日健康宣教
- 采樣考試題及答案
- 校服項(xiàng)目配送方案(3篇)
- 病區(qū)管理考試題及答案
- 卓越績效評價(jià)準(zhǔn)則概述(專業(yè)性權(quán)威性實(shí)用性)
- GB/T 30142-2013平面型電磁屏蔽材料屏蔽效能測量方法
- GB/T 29894-2013木材鑒別方法通則
- 國資進(jìn)場交易工作流程講座
- 當(dāng)代法律英語翻譯全
- 制冷操作證培訓(xùn)教材制冷與空調(diào)設(shè)備運(yùn)行操作作業(yè)培訓(xùn)教程課件
- 湖南省長沙市望城區(qū)2020-2021學(xué)年八年級下學(xué)期期末考試歷史試卷
- 煙葉烘烤調(diào)制理論考試試題
- DB23-T 3336-2022懸掛式單軌交通技術(shù)標(biāo)準(zhǔn)-(高清最新)
- 服刑人員心理健康教育課件
- 湖南省長郡中學(xué)“澄池”杯數(shù)學(xué)競賽初賽試題(掃描版含答案)
評論
0/150
提交評論