《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計應(yīng)用 > 水利設(shè)計圖檔的工作流管理及實現(xiàn)技術(shù)
水利設(shè)計圖檔的工作流管理及實現(xiàn)技術(shù)
薛海燕 于永玲
鄭州航空工業(yè)管理學(xué)院計算機科學(xué)系(450000)
摘要: 提出利用基于有向圖的工作流模型來管理圖檔的動態(tài)流轉(zhuǎn)過程,給出了利用Visio作為建模工具快速建立工作流模型的實現(xiàn)過程。
關(guān)鍵詞: 工作流模型
Abstract:
Key words :

摘   要: 提出利用基于有向圖的工作流模型來管理圖檔的動態(tài)流轉(zhuǎn)過程,,給出了利用Visio作為建模工具快速建立工作流模型的實現(xiàn)過程。
關(guān)鍵詞: 水利工程設(shè)計  工作流  工作流模型  Visio

  在水利工程設(shè)計項目中,,大量設(shè)計圖檔需要經(jīng)過校對、校驗,、審查,、審定、歸檔等一系列的流程,。對圖檔設(shè)計流程的有效管理是提高工程進度的一個關(guān)鍵因素,。目前圖檔的設(shè)計流程是通過手工完成的,而手工管理圖檔不僅效率低,,且難以實現(xiàn)諸如版本管理,、設(shè)計流程跟蹤等工程設(shè)計中必須解決的問題。為了實現(xiàn)水利工程設(shè)計流程的自動化,,人們采用了許多辦法,,如利用現(xiàn)有的辦公自動化軟件,或者采用為特定部門開發(fā)的專用圖檔管理系統(tǒng),,但是仍然存在問題,。前者僅僅在設(shè)計和保存這一小部分實現(xiàn)自動化,根本沒有實現(xiàn)對流程的自動化控制,;后者的專用性太強,,不能靈活定義設(shè)計流程以滿足不同工程、不同項目的要求,。
  工作流管理技術(shù)致力于業(yè)務(wù)流程的自動化,。由于可降低成本和流程執(zhí)行時間,提高工作效率,,所以被業(yè)界廣泛使用并迅速發(fā)展,。其最大的特點是可以方便地描述業(yè)務(wù)流程,并對業(yè)務(wù)的實施進行監(jiān)控,。這一特點恰恰解決了當(dāng)前水利設(shè)計圖檔管理中所存在的問題,。本文提出一種基于工作流管理技術(shù)的水利設(shè)計圖檔動態(tài)管理模型。該模型不僅使得設(shè)計流程自動化,,而且用戶可以根據(jù)實際需要靈活地制定任意的設(shè)計流程,,實現(xiàn)設(shè)計流程之間的無縫連接,縮短設(shè)計周期。
1  工作流管理
1.1 工作流的有關(guān)定義
  近年來,,不同的研究者對工作流分別提出了不同的定義,,它們分別從不同的角度對工作流概念進行了描述,使人們對工作流的一些基本特征有了一定的理解,。這里列舉如下二種:
  (1)工作流管理聯(lián)盟的定義
工作流是一類能夠完全或者部分自動執(zhí)行的經(jīng)營過程,。它根據(jù)一系列過程、規(guī)則,、文檔、信息或任務(wù)在不同的執(zhí)行者之間進行傳遞與執(zhí)行,。
  (2)W.M.P. Van der Aalst 的定義
  工作流是一切工作的偏序集,,工作的序列可以有多種方式,例如工作X與Y,,滿足X<Y,,當(dāng)且僅當(dāng)X在Y開始之前已經(jīng)就緒。
  以上這些對工作流的定義雖然表達方式略有不同,,但都說明了一個問題,,即工作流是經(jīng)營過程的一個計算機實現(xiàn),而工作流管理系統(tǒng)則是這一實現(xiàn)的軟件環(huán)境,。
  工作流管理聯(lián)盟給出的工作流管理系統(tǒng)的定義是:工作流管理系統(tǒng)是一個軟件系統(tǒng),,它完成工作流的定義和管理,并按照在計算機中預(yù)先定義好的工作流邏輯推進工作流實例的執(zhí)行,。
  工作流管理系統(tǒng)在實際系統(tǒng)中的應(yīng)用一般分為三個階段,,即模型建立階段、模型實例化階段和模型執(zhí)行階段,。圖1給出了工作流管理系統(tǒng)應(yīng)用的三個階段,。

  由圖1 可以看出,在工作流管理系統(tǒng)中工作流建模是最基礎(chǔ)也是最核心的模塊之一,,為系統(tǒng)提供了描述實際業(yè)務(wù)流程的方法,、數(shù)據(jù)和信息,是實施工作流管理系統(tǒng)中其他部分的前提,。
1.2 工作流建模
  工作流建模對現(xiàn)實世界中的業(yè)務(wù)流程進行分析,,將之抽象為能被計算機處理的模型。這一模型中包括工作流的一系列活動,、活動之間的邏輯關(guān)系,、工作流參與者、可能被調(diào)用的應(yīng)用以及所有與工作流相關(guān)的數(shù)據(jù),。其中工作流活動指的是業(yè)務(wù)流程中的每一個業(yè)務(wù)環(huán)節(jié),,工作流活動和活動之間的邏輯關(guān)系組成了工作流模型的核心部分。這樣,在進行工作流活動的定義時,,需要指明活動擁有的轉(zhuǎn)換條件,、實施工作流的組織實體、需要激活的應(yīng)用程序等相關(guān)數(shù)據(jù),。圖2為工作流管理聯(lián)盟定義的工作流活動元模型,。

  目前,工作流管理領(lǐng)域中存在多種不同的建模方法,,常用的建模方法可以歸納為5大類:腳本語言,、基于有向圖的方法、基于規(guī)則的方法,、基于邏輯的方法和代數(shù)方法,。針對不同的建模方法所生成的工作流模型表現(xiàn)形式也不同,可以表現(xiàn)為文字形式,、圖形形式或者一種形式化的語言符號等,。
  (1)腳本語言
  腳本語言中有描述控制流和數(shù)據(jù)流的語句結(jié)構(gòu),它提供了一種簡明的描述方法,,對于有經(jīng)驗的設(shè)計者來說更易于使用,。它的主要缺點是缺乏流程本身的形式化語義。語言的語義主要是供語言解釋器使用,。
  (2)基于有向圖的方法
  使用狀態(tài)變遷圖,,流程中的活動用節(jié)點表示,控制流用邊表示,。該方法的主要問題在于是否有形式化的語義,。在具有形式化語義的狀態(tài)變遷圖中,使用最多的是Petri網(wǎng)和狀態(tài)圖,。具有形式化語義的基于有向圖的方法可以轉(zhuǎn)換成其他建模方法,,如基于規(guī)則的、時序邏輯的和腳本語言的方法,。
  (3)基于規(guī)則的方法
  目前使用最多的是ECA規(guī)則,。ECA規(guī)則最早用于AOODBS,而后被用于工作流管理領(lǐng)域,。它具有形式化基礎(chǔ),,也可轉(zhuǎn)換為其他建模方法,如Petri網(wǎng),、時序邏輯等,。但ECA規(guī)則的可視化工作量較大,且當(dāng)規(guī)則集較大時難以管理,。
  (4)基于邏輯的方法
  該方法適合于描述系統(tǒng)的動態(tài)性,,其中時序邏輯是一種常用的方法,,它具有很好的形式化基礎(chǔ),驗證工作流模型的屬性比較方便,。缺點是很難實現(xiàn)可視化,,不容易轉(zhuǎn)換成其他描述方法,描述業(yè)務(wù)流程的系統(tǒng)行為太復(fù)雜,。
  (5)基于代數(shù)的方法
  代數(shù)過程(process algebra)目前還局限在理論探討上,,只有一種基于過程代數(shù)的描述語言LOTOS被用于工作流管理領(lǐng)域。代數(shù)方法的主要缺點類似于基于邏輯的方法,,并且在自動執(zhí)行和形式化驗證方面表現(xiàn)得比基于邏輯的方法更差,,建模方法缺乏直觀性,難以理解,。
  由以上分析可知,,各種建模方法各有優(yōu)缺點??傮w上,基于有向圖的建模方法簡單直觀,、容易理解,,尤其適用于流程較為固定、異常情況較少的工作流,,因而比較具有吸引力,。一個完整的工作流過程由一個無自環(huán)的有向圖構(gòu)成。有向圖中的節(jié)點表示可執(zhí)行的步驟或任務(wù),,節(jié)點間的有向弧代表了節(jié)點間的邏輯關(guān)系,。
2  水利設(shè)計圖檔工作流管理
2.1 水利圖檔設(shè)計流程
  水利設(shè)計圖檔工作流管理是指對圖檔的設(shè)計、校對,、校核,、審查、審定,、修改,、歸檔等一系列流轉(zhuǎn)操作的總稱。這里稱每一個操作為一個工作流活動節(jié)點,。如圖3所示,,單個設(shè)計圖檔的流轉(zhuǎn)過程相對比較簡單固定,且流轉(zhuǎn)過程中各活動節(jié)點之間屬于松散耦合結(jié)構(gòu),,活動節(jié)點之間沒有嚴(yán)格的約束關(guān)系,,僅以時序關(guān)系約束為主。
 

  因此,,在水利設(shè)計圖檔工作流管理中,,應(yīng)采用基于有向圖的建模方法,將一系列的活動及其之間的時序關(guān)系直觀地映射成一個由節(jié)點和有向弧組成的有向圖。有向圖中的節(jié)點表示一個可執(zhí)行的活動,,連接2個節(jié)點的有向弧表示活動之間的時序關(guān)系,,可定義如下:
  (1)有向圖G=(N,L)為一個二元組,,N={n1,,n2,……nr}是節(jié)點的集合,;L={l1,,l2,……ls}是有向弧的集合,,其中l(wèi)i=(nj,,nk)為從節(jié)點nj到節(jié)點nk的有向弧,nj,,nk∈N,。
  (2)對于ni,nj∈N,,若有l(wèi)=(ni,,nj)∈L,則ni為nj的一個前驅(qū)節(jié)點,,nj為ni的一個后繼節(jié)點,。
  (3)節(jié)點狀態(tài)。對于n∈N,,有狀態(tài)函數(shù)State(n)={0,,1,2},,當(dāng)節(jié)點n處于未執(zhí)行狀態(tài)時,,State(n)=0;當(dāng)節(jié)點n處于正在執(zhí)行狀態(tài)時,,State(n)=1,;當(dāng)節(jié)點n處于完成執(zhí)行狀態(tài)時,State(n)=2,。初始時刻,,對任意n,State(n)=0,。
  (4)推進規(guī)則,。有向圖的推進規(guī)則由節(jié)點狀態(tài)的改變和有向弧發(fā)生轉(zhuǎn)移二個因素決定。其步驟為:
 ?、偈紫燃せ钇鹗脊?jié)點,,假設(shè)為n1,,并將節(jié)點狀態(tài)State (n1)置為2。
 ?、诋?dāng)節(jié)點ni執(zhí)行完畢,,節(jié)點狀態(tài)State(ni)=2時,搜索節(jié)點ni的所有后繼節(jié)點,,并根據(jù)節(jié)點ni的完成情況選擇出將要被激活的后繼節(jié)點(可以是一個,,也可以是多個)。這里假設(shè)將要被激活的后繼節(jié)點為nj,。
 ?、蹖⒐?jié)點nj的節(jié)點狀態(tài)State(ni)置為1,然后,,進行有向?。╪i,nj)的轉(zhuǎn)移,,將執(zhí)行權(quán)從節(jié)點ni 轉(zhuǎn)移到節(jié)點nj上,,開始執(zhí)行節(jié)點 nj。反復(fù)執(zhí)行②,,③,,直至整個流程完成。
2.2  利用Visio進行建模
  目前,,基于有向圖的建模工具大多是用戶自己從頭開發(fā)的,,這種自制的工具往往使用不靈活,、不方便,,對用戶的操作有很大限制。而且,,現(xiàn)有建模工具不便于對復(fù)雜流程的建模,。另外,這種建模工具對所建模型難以實現(xiàn)驅(qū)動,,往往流于形式,。綜上所述,本文力求找到一種建模工具,,不僅使用方便,,能夠處理復(fù)雜流程,而且最重要的是能夠?qū)λP瓦M行開發(fā)使用,。
  Visio是一種用于建模的工具,,通過組合Microsoft Visio繪圖和程序來實現(xiàn)現(xiàn)實世界的模型化。和現(xiàn)有的工作流建模工具相比,,利用Visio建模的優(yōu)點在于:
  (1)極大地縮短開發(fā)時間,。開發(fā)人員不需要從頭開發(fā)所有功能,,使用在內(nèi)置產(chǎn)品中的現(xiàn)有功能即可實現(xiàn)工作流建模,這使得開發(fā)人員可以將精力放在工作流引擎的研究與開發(fā)上,。
  (2)建模過程簡單,、清晰,用戶可以方便地畫出類型各異,、線條流暢的圖形,。
  (3)開發(fā)人員還可以編寫程序來控制圖形以及繪圖過程。程序可以幫助創(chuàng)建繪圖,、分析繪圖,,或者在繪圖和外部數(shù)據(jù)源之間傳輸信息。自定義程序可以使用任意一種支持將Automation作為客戶的編程語言來編寫,,例如VBA,、VB或C++等。
  (4)Visio繪圖與數(shù)據(jù)庫可以同步,,提高了開發(fā)模型的靈活性,。開發(fā)人員可以從Visio圖形中自動提取數(shù)據(jù)保存到數(shù)據(jù)庫中,也可以從外部數(shù)據(jù)創(chuàng)建圖形,。
3  應(yīng)用實例
  現(xiàn)在以一個水利設(shè)計項目為實例來詳細說明利用Visio建模的具體過程,。
  (1)根據(jù)實際需要創(chuàng)建流程圖模板
  流程圖模板中包含水利設(shè)計中常用的活動節(jié)點,如設(shè)計,、校對,、審定、歸檔等主圖形,。拖動主圖形到繪圖頁即可生成相應(yīng)圖形,。在創(chuàng)建主圖形時,根據(jù)工作流管理聯(lián)盟定義的活動元模型,,為它們添加自定義屬性,,如活動的起止日期、活動的參與人員,、活動需要激活的應(yīng)用程序,、活動的狀態(tài)等,如圖4所示,。

  (2)利用流程圖模板畫出所需流程圖
  流程圖中的節(jié)點分為三種節(jié)點:開始節(jié)點,、活動節(jié)點和結(jié)束節(jié)點?;顒庸?jié)點代表的是業(yè)務(wù)流程中的原子級活動環(huán)節(jié),,對應(yīng)于實際的操作?;顒拥膱?zhí)行者可以是一段程序,,也可以是某一個人,。工作流模型并不負責(zé)活動的執(zhí)行,而是密切監(jiān)視活動狀態(tài)的變化,。開始節(jié)點是一個業(yè)務(wù)過程開始的標(biāo)志,,開始節(jié)點并不對應(yīng)實際的操作。每一個工作流過程有且僅有一個開始節(jié)點,。結(jié)束節(jié)點是一個業(yè)務(wù)過程結(jié)束的標(biāo)志,,它并不對應(yīng)實際的操作。每一個工作流過程有且僅有一個結(jié)束節(jié)點,。
流程圖中的有向弧用來定義二個活動之間的執(zhí)行順序,。當(dāng)有向弧的起始節(jié)點執(zhí)行完畢后,工作流管理系統(tǒng)根據(jù)流程推進規(guī)則進行活動導(dǎo)航,,使有向弧的終止節(jié)點能夠被執(zhí)行,。
  (3)將流程圖中的屬性信息導(dǎo)出到數(shù)據(jù)庫中
   這時建模工作已經(jīng)完成,與之對應(yīng)的數(shù)據(jù)庫也同樣能夠反映整個流程,。開發(fā)人員既可以直接對流程圖進行推進,,也可以基于結(jié)構(gòu)化的關(guān)系數(shù)據(jù)庫進行操作,以降低開發(fā)應(yīng)用的難度,。
4  結(jié)束語
  工作流是辦公自動化,、并行工程、經(jīng)營過程重構(gòu)等研究領(lǐng)域的熱點技術(shù),。本文針對水利設(shè)計項目提出的基于有向圖的工作流模型實現(xiàn)了對簡單流程的快速建模,。利用Visio建模的方法,還可以實現(xiàn)對復(fù)雜流程的描述,,例如,,利用UML中的活動圖(Activity Diagram)可以實現(xiàn)多個約束條件的相與、相或,、異或等操作,,具有極大的實用價值,。
參考文獻
1   羅海濱,,范玉順,吳澄.工作流技術(shù)綜述.軟件學(xué)報,,2000,;11(7)
2   董章震,潘捷.工作流建模工具.計算機輔助設(shè)計與制造,,2002,;(1)
3   汪濤,黃力芹,,吳耿峰.工作流管理的發(fā)展歷程與趨勢.計算 機工程與科學(xué),,2001,;23(1)
4   奚偉,周羽.基于工作流的過程文檔動態(tài)管理模型.清華大學(xué) 學(xué)報,,2001,;41(10)
5   范玉順.工作流管理技術(shù)基礎(chǔ).北京:清華大學(xué)出版社,2001
6   Microsoft公司.開發(fā)Microsoft Visio解決方案.北京:北京大 學(xué)出版社,,2002

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。