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

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

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

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

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

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

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