999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

工作流引擎在工程項目管理系統中的應用與研究

2016-06-13 06:44:22韋瀛寰廣西軟件評測中心南寧530022
山東工業技術 2016年12期

韋瀛寰(廣西軟件評測中心,南寧 530022)

?

工作流引擎在工程項目管理系統中的應用與研究

韋瀛寰
(廣西軟件評測中心,南寧 530022)

摘 要:文章對工程項目管理系統的特點及設計要求進行分析,對工作流引擎應用于該類系統的必要性進行簡述。闡述了工作流管理系統結構及工作流引擎組成,著重介紹工作流組件、工作流表、工作流實例表、工作流相關類等關鍵要素的設計,并以一個典型流程模型為例,給出工作流模型定義數據庫的一個實現過程。對以工作流引擎為核心的工程項目管理系統功能模塊進行設計劃分。

關鍵詞:項目管理系統;工作流引擎;應用與研究

1 工程項目管理系統特點

工程項目管理系統中,項目管理通常為每個項目分為"項目銷售管理、招投標管理、合同與技術管理、施工準備管理、施工過程管理、竣工驗收管理、竣后服務管理"這七個業務階段[1],每業務階段均有可能需要交叉引用之前的數據,其中各個業務階段均涉及眾多的參與人員及角色,并且還需要考慮系統作為開放式平臺,為多個工程公司提供系統功能服務。在日常的工程項目管理中,各個業務階段的大部份環節屬于流程類工作,比如開工審批、采購審批等。一般過程是由基層業務人員發起申請,部門主管接受申請,審查后提交上一級領導,最終由某級主管審查通過后再返回給基層業務人員。

傳統工程項目管理系統是基于事務管理及MIS的方式設計,該方式未將應用軟件與業務流程相分離,只是把業務流程混合事務管理編寫到工程項目管理系統中,由此造成的弊端是當組織機構或業務流程發生變化時,整個系統可能需要重新設計,或者需要對系統編碼進行大幅修改,修改難度大、軟件維護周期長。所以若仍使用事務管理及MIS的設計方式,已經不能支撐當前項目管理內在的協作性、高效性、實用性等要求。

為此,必須采用業務驅動及流程管控的模式來提高工程項目管理系統效能,使用工作流技術可以很好地實現該目的。在基于工作流技術的工程項目管理系統中,設計時將流程的生成、流轉邏輯、執行、監控、管理等工作實現代碼從具體業務中剝離獨立出來,形成專門的“工作流引擎”,設計人員在設計業務流程時僅需要關注業務流程本身的業務邏輯,完成業務邏輯設計后再調用工作流引擎實現業務具體流轉。當項目所在公司的組織機構、人員角色或業務流程發生變化時,僅需要修改業務邏輯后再綁定工作流引擎即可完成業務流程的維護,大大降低維護難度及維護周期。

圖1

2 工作流管理系統

2.1 引言

工作流管理系統(Workflow Management System, WFMS)是一個軟件系統,它完成工作流的定義和管理,并按照在計算機中預先定義好的工作流邏輯推進工作流實例的執行。

通常,工作流管理系統是指運行在一個或多個工作流引擎上用于定義、實現和管理工作流運行的一套軟件系統,它與工作流執行者(人、應用)交互,推進工作流實例的執行,并監控工作流的運行狀態。工作注引擎負責處理工作流管理系統的邏輯與流程控制。因此,工作流引擎是工作流管理系統的核心部分[2]。

一般而言,工作流引擎有如下三個階段:

(1)建立階段:主要考慮工作流過程和相關活動的定義和建模功能。

(2)運行階段:在一定的運行環境下,執行工作流過程,并完成每個過程中活動的排序和調度功能。

(3)人機交互階段:實現各種活動執行過程中用戶與應用工具之間的交互[3]。

2.2 工作流引擎的體系結構

如圖1所示,工作流引擎系統可分為以下三個部分:

(1)數據庫:用于持久化保存用戶數據,工作流數據等。

(2)Web服務器:分為兩部分,第一部分視圖模塊用于向用戶提供交互的接口,第二部分控制模塊用于向工作流引擎傳遞用戶的動作與數據。

(3)工作流引擎:作為整個工作流系統的核心部分,其分為以下幾個部分:

1)數據庫接口:負責與數據庫交互,向數據庫中讀寫數據;

2)用戶管理模塊:負責管理用戶的個人信息等數據,以及處理用戶的登錄及注冊等動作;

3)組管理模塊:負責管理用戶組,以及組成員的管理;

4)工作流管理與控制模塊:負責管理工作流,及控制其執行等操作;

5)組件及業務邏輯模塊:工作流由組件構成,組件及業務邏輯模塊負責管理組件及其業務邏輯。

2.3 系統的設計原則

為了保證系統的正確性和高效性,系統遵循以下設計原則:

(1)用戶必須先創建好工作流并提交后,才能對其組件的屬性進行設置修改。

(2)每個組件都有一個唯一的編號,此編號由前端生成,在任何地方均一致。

(3)在所有的組件中,只有choose組件能夠回退到工作流已執行過的結點。

3 工作流引擎關鍵要素設計

3.1 工作流組件

工作流中共有8種重要的組件:開始、結束、任務、子模塊、和匯聚、或匯聚、選擇觸發、并行觸發。

(1)開始組件(start):表示一個工作流程的開始,在(系統或者人為)激活后,直接引起下一個工作的開始。

(2)結束組件(end):表示一個工作流程的結束。通知項目負責人或者相關人員項目已經到達了完成狀態。

(3)任務組件(task):用于定義工作流的單個工作項。任務組件對應單個輸入和單個輸出。

(4)子模塊組件(submodule):用于定義工作流中的某個子過程,該子過程同樣可以看作是一個完整的工作流。子過程模塊的輸入將作為子過程中工作流的“起始”組件的輸入,子過程的輸出即其中的工作流的“結束”組件所傳遞的消息。

(5)和匯聚組件(and):和匯聚組件允許多個消息來源的同時輸入,并在處理了多個消息來源后,來決策后續任務的執行與否。“和匯聚”組件只有在所有輸入的消息完全到達之后才能啟動后續步驟的執行。

(6)或匯聚組件(or):該組件接受多個消息來源的同時輸入。當其中有一個消息到達的時候即可啟動后續任務。通常情況下,啟動后續任務之前,該模塊要主動停止其他沒有匯聚的任務。

(7)選擇觸發組件(choose):接受一個消息來源,并產生多個潛在的后繼消息走向。選擇觸發有多個消息輸出路徑,其通常只能選擇后繼路徑中的一條路徑。

(8)并行觸發組件(parallel):該組件一旦觸發,則可以同時開啟多個后續路徑同時執行操作??赏瑫r開啟的路徑數目沒有限制,潛在的限制是系統運行時的承載能力和數據庫中相關字段的定義。

3.2 核心數據庫表設計

表1 工作流表(WorkFlow_Table)

表2 工作流實例表(Entity_Table)

圖2

表3 運行實例表(Entity_Table)

圖3

在工作流引擎中最重要的數據表為工作流表(WorkFlow_ Table),見表1及工作流實例表(Entity_Table)見表2,分別設計如下。

3.3 工作流運行實例樣例

以圖2所示典型流程模型,其工作流模型定義數據庫的一個實現樣例如表3:運行實例表Entity_Table(僅列出部份重要字段)

3.4 工作流相關類的設計

根據工程項目管理需求和數據庫表的結構,在系統中需要創建以下工作流引擎重要類。

3.4.1 組件類

組件類用來描述組件在內存中的實例(對象),與數據庫中的Entity_Table相對應,它的每一個實例都對應著Entity_Table中的一行。采用繼承的方式對組件類進行設計,所有組件及其繼承關系如圖3所示。

工作流中共有8種重要的組件:開始、結束、任務、子模塊、和匯聚、或匯聚、選擇觸發、并行觸發。其中子模塊組件是一個特殊的組件,是為強化工作流的邏輯視覺效果而添加的功能組件,因此在工作流引擎可不進行設計。為其它的7種組件設計了一個共同的基類BaseComponent。

(1)基類BaseComponent其成員變量與成員函數定義如下:

組件ID:組件的唯一標識符。

組件名稱:組件的名稱。

組件描述:對該組件的簡單描述。

觸發方式:組件開始的觸發方式(默認為自動開始)。

前驅后繼:記錄組件的前驅結點與后繼結點,用來描述工作流中的“箭頭”。

完成狀態:此組件所對應的實例的執行狀態,包含以下四種狀態:不滿足開始條件,滿足條件等待開始、正在運行、已完成。

Start():若組件的開始條件已滿足,則調用此函數將其狀態改成正在運行。

Over():若組件已執行完成,則調用此函數將其狀態改成已完成,同時觸發其后繼結點(若后繼結點是自動觸發,則調用其Start函數,若為手動觸發,則將其狀態修改為滿足條件等待開始)。

(2)終端組件類

終端組件類TermComponent 是BaseComponent類的派生類,它派生了StartComponent 和EndComponent兩個子類。TermComponent類采用自動開始的觸發方式,沒有任何的成員變量和成員函數。StartComponent類中有一個開始時間變量,用來記錄此組件(即整個工作流)的開始執行時間;EndComponent類中有一個結束時間變量,用來記錄此組件(即整個工作流)的完成時間。

(3)邏輯組件類

邏輯組件類LogicComponent是BaseComponent類的派生類,它派生了AndComponent、OrComponent和ParrelComponent三個子類。LogicComponent類及其子類的實例表示的是工作流中的邏輯關系,因此采用自動開始的觸發方式,沒有任何的成員變量和成員函數。

(4)操作組件類

操作組件類OperComponent是BaseComponent類的派生類,它派生了ChooseComponent和TaskComponent兩個子類。OperComponent類采用自動/手動開始的觸發方式。

3.4.2 工作流類

工作流類用來描述工作流在內存中的表現形式,與數據庫中的WorkFlow_Table相對應,它的每一個實例都對應著WorkFlow_Table中的一行。工作流類的結構圖和成員變量的定義如圖4所示。

圖4

工作流ID:工作流的唯一標識

工作流名稱:工作流名稱

創建時間:工作流的創建時間

創建用戶:工作流的創建用戶

描述:工作流的簡單描述

是否開始運行:工作流是否已經開始執行

組件結點數組:工作流里面包含的所有組

件結點組成的數組

4 工程項目管理系統功能模塊設計

功能模塊劃分見圖5

(1)前端頁面:前臺創建、修改、顯示工作流頁面利用圖形化交互界面,通過拖拽方式,實現創建工作流和修改與項目相關的工作流。通過填寫表單和提交表單,執行某個工作流。組管理頁面對組進行創建和刪除,并對組內的組成員用戶進行添加、刪除管理。

(2)后臺服務:組件及其業務邏輯模塊為后臺服務實現組件操作及其業務邏輯。工作流的調度與控制模塊為后臺服務實現工作流的調度與控制功能。工作流及其校驗模塊主要功能是當用戶提交一個工作流的時候,后臺服務對其進行校驗,判斷其正確性。

5 結語

在工程項目管理系統設計中通過引入工作流引擎技術,實現項目管理系統的具體業務與工作流相分離,系統運行時通過業務與工作流程分別獨立設計,然后通過調用的方式來啟動工作流,提高了管理效率及可用性。此外,在工程項目管理系統中使用工作流引擎,提高了系統的適應性、可維護性,能降低整個工程項目管理系統在生命周期內的運行、維護成本。

圖5

參考文獻:

[1]苗蒲,趙霽.針織企業管理信息系統的設計及其優化研究[J].企業技術開發,2008,27(10):12-14.

[2]韓雪菲.工作流驅動的第三方物流系統設計與實現[D]. 哈爾濱:哈爾濱工程大學,2012:14.

[3] 趙文,袁崇義,張世琨,王立福.一種模型驅動的工作流過程定義途徑[J]. 計算機科學,2006,33(12):10-15.

DOI:10.16640/j.cnki.37-1222/t.2016.12.085

作者簡介:韋瀛寰(1971-),男,工程師,研究方向:軟件項目管理、工作流。

主站蜘蛛池模板: 国产91色| 视频一本大道香蕉久在线播放| 无码aaa视频| 国产精品一区二区在线播放| 色网站在线视频| 欧洲日本亚洲中文字幕| 91无码视频在线观看| 国产96在线 | 亚洲日韩精品无码专区| 无码免费视频| 91亚洲精选| 国产白浆视频| 国产99欧美精品久久精品久久| 激情综合婷婷丁香五月尤物| 欧美激情第一欧美在线| 婷婷开心中文字幕| 亚洲色欲色欲www网| 精品国产Av电影无码久久久| 丁香综合在线| 一级毛片无毒不卡直接观看| 国产亚洲精品精品精品| 精品国产成人高清在线| 高清免费毛片| 国产女人水多毛片18| 一级一级一片免费| 爱色欧美亚洲综合图区| 欧美精品在线观看视频| 国产福利一区在线| 亚洲午夜福利精品无码不卡| 欧美不卡二区| 在线观看亚洲成人| 天堂成人在线视频| 亚洲AV电影不卡在线观看| 凹凸国产分类在线观看| 四虎国产在线观看| 2018日日摸夜夜添狠狠躁| 99九九成人免费视频精品 | 丁香婷婷久久| 久久综合色播五月男人的天堂| 怡红院美国分院一区二区| 亚洲一区黄色| 人妻无码中文字幕一区二区三区| 91福利一区二区三区| 天天色天天操综合网| 欧美激情视频一区| 国产欧美专区在线观看| 香蕉蕉亚亚洲aav综合| 久久伊人操| 亚洲欧美日韩天堂| 午夜少妇精品视频小电影| 国产69精品久久久久孕妇大杂乱| 亚洲区第一页| 在线观看免费人成视频色快速| 国产在线91在线电影| 中文字幕av无码不卡免费| 国产在线观看一区精品| 欧美全免费aaaaaa特黄在线| 国产一区二区丝袜高跟鞋| 亚洲人成网址| 91久久精品国产| 国产福利一区在线| 欧美亚洲欧美| 亚洲综合专区| 久久这里只精品国产99热8| 亚洲一级毛片免费看| 国产一区二区三区在线观看视频| 国产嫖妓91东北老熟女久久一| 在线五月婷婷| 亚洲美女一区二区三区| 99草精品视频| 成年免费在线观看| 99久久精品美女高潮喷水| 国产亚洲高清视频| 91网站国产| 夜夜操狠狠操| 欧美成人影院亚洲综合图| 亚洲最新地址| 亚洲区一区| 又猛又黄又爽无遮挡的视频网站| 亚洲最大在线观看| 最新午夜男女福利片视频| 国产精品综合色区在线观看|