《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 設(shè)計應(yīng)用 > 水利設(shè)計圖檔的工作流管理及實現(xiàn)技術(shù)
水利設(shè)計圖檔的工作流管理及實現(xiàn)技術(shù)
薛海燕 于永玲
鄭州航空工業(yè)管理學院計算機科學系(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)控。這一特點恰恰解決了當前水利設(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,當且僅當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ī)則的可視化工作量較大,且當規(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)缺點。總體上,基于有向圖的建模方法簡單直觀、容易理解,尤其適用于流程較為固定、異常情況較少的工作流,因而比較具有吸引力。一個完整的工作流過程由一個無自環(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é)點之間沒有嚴格的約束關(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},當節(jié)點n處于未執(zhí)行狀態(tài)時,State(n)=0;當節(jié)點n處于正在執(zhí)行狀態(tài)時,State(n)=1;當節(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。
  ②當節(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í)行者可以是一段程序,也可以是某一個人。工作流模型并不負責活動的執(zhí)行,而是密切監(jiān)視活動狀態(tài)的變化。開始節(jié)點是一個業(yè)務(wù)過程開始的標志,開始節(jié)點并不對應(yīng)實際的操作。每一個工作流過程有且僅有一個開始節(jié)點。結(jié)束節(jié)點是一個業(yè)務(wù)過程結(jié)束的標志,它并不對應(yīng)實際的操作。每一個工作流過程有且僅有一個結(jié)束節(jié)點。
流程圖中的有向弧用來定義二個活動之間的執(zhí)行順序。當有向弧的起始節(jié)點執(zhí)行完畢后,工作流管理系統(tǒng)根據(jù)流程推進規(guī)則進行活動導航,使有向弧的終止節(jié)點能夠被執(zhí)行。
  (3)將流程圖中的屬性信息導出到數(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ù)綜述.軟件學報,2000;11(7)
2   董章震,潘捷.工作流建模工具.計算機輔助設(shè)計與制造,2002;(1)
3   汪濤,黃力芹,吳耿峰.工作流管理的發(fā)展歷程與趨勢.計算 機工程與科學,2001;23(1)
4   奚偉,周羽.基于工作流的過程文檔動態(tài)管理模型.清華大學 學報,2001;41(10)
5   范玉順.工作流管理技術(shù)基礎(chǔ).北京:清華大學出版社,2001
6   Microsoft公司.開發(fā)Microsoft Visio解決方案.北京:北京大 學出版社,2002

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