摘要:對(duì)基于Petri網(wǎng)的建模對(duì)象進(jìn)行分析,并提出將具有強(qiáng)大的圖形建模、可視化操作和空間數(shù)據(jù)分析功能的GIS技術(shù)應(yīng)用到工作流建模之中,建立一個(gè)基于空間對(duì)象的工作流建模與模型檢驗(yàn)的可視化建模系統(tǒng),為解決傳統(tǒng)建模軟件開(kāi)發(fā)中的關(guān)鍵問(wèn)題提出了一種新的解決方案。
關(guān)鍵詞:工作流建模;地理信息系統(tǒng);Petri網(wǎng);模型檢驗(yàn)
中圖分類(lèi)號(hào):TP391 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1001—3695(2007)09—0201—04
工作流建模是工作流管理系統(tǒng)應(yīng)用的初始環(huán)節(jié),同時(shí)也是最重要的環(huán)節(jié)。工作流建模就是用模型表達(dá)的方法對(duì)企業(yè)和組織的工作流程進(jìn)行的形式化或非形式化的描述,實(shí)現(xiàn)業(yè)務(wù)流程到計(jì)算機(jī)定義的映射,是工作流管理系統(tǒng)中build-time階段的核心任務(wù)。目前在工作流建模理論方面已經(jīng)提出了很多方法,比較典型的包括流程圖、狀態(tài)圖、活動(dòng)網(wǎng)絡(luò)圖、IDEF系列、ECA(事件—條件—?jiǎng)幼饕?guī)則)、EPC(事件驅(qū)動(dòng)的過(guò)程鏈模型)、Petri網(wǎng)等建模方法。其中圖形化建模方法是應(yīng)用中的主流。在目前主要的工作流應(yīng)用軟件中,如MQSefies work—flow(IBM)、action workflow(actlon technologies)以及Visualworkflow(filenet)等,均在系統(tǒng)中集成了圖形化的建模工具。其中模型對(duì)象的可擴(kuò)展功能、對(duì)象及結(jié)構(gòu)數(shù)據(jù)的自定義功能、建模結(jié)果的檢驗(yàn)功能是工作流軟件開(kāi)發(fā)商強(qiáng)調(diào)的重點(diǎn)。從技術(shù)角度上來(lái)說(shuō),就是要設(shè)計(jì)和實(shí)現(xiàn)一個(gè)具有高效的圖形管理、數(shù)據(jù)存儲(chǔ)和模型檢驗(yàn)的建模工具。
1 圖形化建模軟件開(kāi)發(fā)中的關(guān)鍵問(wèn)題分析
由于圖形化建模在用戶交互方面的突出優(yōu)勢(shì),圖形化建模軟件已成為工作流軟件開(kāi)發(fā)商的主要選擇,然而以下的四個(gè)關(guān)鍵問(wèn)題一直是系統(tǒng)開(kāi)發(fā)中所不能忽視的。
1)開(kāi)發(fā)圖形化建模軟件需要有完善的建模理論予以支持
為了適應(yīng)不同復(fù)雜度的業(yè)務(wù)流程,模型對(duì)象需要有很強(qiáng)的代表性,建模結(jié)果需要有很好的可檢驗(yàn)性和通用性。
2)開(kāi)發(fā)圖形化建模軟件需要有強(qiáng)大的圖形組件予以支持
由于模型對(duì)象和業(yè)務(wù)流程的復(fù)雜性和多變性,圖形組件需要具有很強(qiáng)的繪圖功能及對(duì)圖形對(duì)象的分類(lèi)管理功能。
3)開(kāi)發(fā)圖形化建模軟件需要有高效的工作流數(shù)據(jù)存儲(chǔ)模式予以支持
工作流模板不僅要存儲(chǔ)模型對(duì)象的圖形數(shù)據(jù),同時(shí)更重要的是要存儲(chǔ)其相關(guān)的業(yè)務(wù)和邏輯信息,以通過(guò)工作流引擎實(shí)現(xiàn)過(guò)程的自動(dòng)化運(yùn)行。這就要求設(shè)計(jì)的數(shù)據(jù)存儲(chǔ)模式可以對(duì)模型對(duì)象的圖形數(shù)據(jù)和屬性數(shù)據(jù)進(jìn)行統(tǒng)一管理,并建立它們之間的對(duì)應(yīng)關(guān)系。
4)開(kāi)發(fā)圖形化建模軟件需要有良好的模型檢驗(yàn)方法和工具予以支持
為了保證建模結(jié)果的正確性和高教性,需要利用模型檢驗(yàn)工具對(duì)工作流模板及其運(yùn)行結(jié)果進(jìn)行分析,從而實(shí)現(xiàn)工作流程的結(jié)構(gòu)和效率的改進(jìn)與優(yōu)化。同時(shí)考慮到一般的模型檢驗(yàn)方法和過(guò)程是相對(duì)復(fù)雜的,因此對(duì)于普通用戶來(lái)說(shuō),模型檢驗(yàn)工具必須具備易操作、易分析和可視化的特點(diǎn)。
這幾個(gè)方面是設(shè)計(jì)和開(kāi)發(fā)圖形化工作流建模軟件的重點(diǎn)也是難點(diǎn)所在,從很大程度上限制了許多非工作流專(zhuān)業(yè)軟件開(kāi)發(fā)商對(duì)工作流技術(shù)的應(yīng)用。隨著工作流建模語(yǔ)言如WPDL和XPDL的發(fā)展和統(tǒng)一,工作流引擎越來(lái)越面向于通用化的需求,滿足企業(yè)不同業(yè)務(wù)流程需求的任務(wù)逐漸轉(zhuǎn)移到作為客戶端的工作流建模軟件上來(lái),必須要設(shè)計(jì)一種高教的解決方案以滿足不同用戶的應(yīng)用和開(kāi)發(fā)需求。本文提出采用Petri網(wǎng)的建模理論,引入GIS空間對(duì)象的建模和模型檢驗(yàn)方法所設(shè)計(jì)的圖形化建模軟件可就以很好地解決上述問(wèn)題。
2 GIS及基于空間對(duì)象的Perri網(wǎng)建模方法概述
地理信息系統(tǒng)(geographic information system,GIS)是一種以地理空間實(shí)體及其空間拓?fù)潢P(guān)系。包含空間數(shù)據(jù)和非空間數(shù)據(jù)為管理對(duì)象的計(jì)算機(jī)應(yīng)用系統(tǒng),具有強(qiáng)大的圖形建模、存儲(chǔ)和管理功能。GIS的一個(gè)重要特點(diǎn)是利用空間數(shù)據(jù)庫(kù)的存儲(chǔ)方法和對(duì)空間元數(shù)據(jù)的操作,實(shí)現(xiàn)對(duì)空間實(shí)體對(duì)象的建模和管理。
在空間模型中,一般所有的空間對(duì)象(features)均被歸結(jié)為三類(lèi)簡(jiǎn)單基本對(duì)象,即點(diǎn)對(duì)象、線對(duì)象和面對(duì)象。這三種類(lèi)型可以作為所有空間對(duì)象的超類(lèi)。空間對(duì)象不僅與數(shù)據(jù)庫(kù)中的屬性數(shù)據(jù)相關(guān)聯(lián),同時(shí)還包括對(duì)象的空間位置和拓?fù)湫畔?,通過(guò)空間查詢(xún)語(yǔ)句和空間操作方法,可以得到對(duì)象之間的連接、包含以及可達(dá)性和連通性等關(guān)系。目前GIS系統(tǒng)中普遍采用統(tǒng)一型的空間數(shù)據(jù)庫(kù)管理模式,空間對(duì)象的圖形數(shù)據(jù)和其屬性數(shù)據(jù)通過(guò)索引關(guān)聯(lián),存儲(chǔ)在集中的空間數(shù)據(jù)庫(kù)中,從而很好地保證空間與非空間數(shù)據(jù)的一致性以及空間查詢(xún)和分析的高效性。
本文基于的Petri網(wǎng)理論是一種圖形化建模語(yǔ)言,可以直觀地反映活動(dòng)的路由結(jié)構(gòu)和節(jié)點(diǎn)間的邏輯關(guān)系。它具有精確的語(yǔ)義和嚴(yán)格的數(shù)學(xué)基礎(chǔ),避免了許多建模方法的模糊性、不確定性和矛盾性。很多學(xué)者都認(rèn)為Petri網(wǎng)將是工作流建模的最終趨勢(shì)。傳統(tǒng)的Petri網(wǎng)建模理論主要包括三個(gè)模型對(duì)象,即標(biāo)記、庫(kù)所和變遷。為了增強(qiáng)Petri網(wǎng)的描述能力和分析能力,本文把連接弧,和觸發(fā)也作為建模的基本對(duì)象。
標(biāo)記(token)表示工作流中的運(yùn)行對(duì)象;庫(kù)所(place)表示工作流中的工作單元;變遷(transition)表示工作流中的邏輯和判斷條件;連接弧(rink)是工作流中連接庫(kù)所與變遷的對(duì)象,它描述了工作流的結(jié)構(gòu);觸發(fā)(trigger)是工作流系統(tǒng)所處外部環(huán)境發(fā)出的對(duì)工作流執(zhí)行產(chǎn)生影響的信號(hào),主要包括三種類(lèi)型,即資源主導(dǎo)、外部事件和時(shí)間信號(hào)。
要將Petri網(wǎng)模型建立在CIS的圖形組件建模和管理功能之上,就必須對(duì)Petri網(wǎng)的基本模型對(duì)象進(jìn)行空間分類(lèi)。按照簡(jiǎn)單空間對(duì)象的分類(lèi)方法對(duì)Petri網(wǎng)建模對(duì)象進(jìn)行分析得到的分類(lèi)結(jié)果是,標(biāo)記:點(diǎn)對(duì)象;庫(kù)所:面對(duì)象(可以包含標(biāo)記);變遷:點(diǎn)對(duì)象;連接?。壕€對(duì)象;觸發(fā):點(diǎn)對(duì)象。下面結(jié)合面向?qū)ο蟮腉IS開(kāi)發(fā)理論,討論系統(tǒng)核心對(duì)象的屬性和方法。
3 系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)
3.1 系統(tǒng)開(kāi)發(fā)平臺(tái)及框架
筆者設(shè)計(jì)開(kāi)發(fā)的系統(tǒng)是一個(gè)集工作流建模和工作流檢驗(yàn)功能為一體的圖形化建模軟件。系統(tǒng)開(kāi)發(fā)采用目前主流的基于NET的WebGIS開(kāi)發(fā)模式,主要工具采用MicrosoftVisual StudioNET開(kāi)發(fā)平臺(tái),MapInfo公司基于,NET的MapXtreme控件。后臺(tái)數(shù)據(jù)庫(kù)采用支持空間數(shù)據(jù)模型的Oracle 9i和MapInfo公司的空間數(shù)據(jù)中間件spmialWare。系統(tǒng)采用B/S模式,無(wú)須下載客戶端控件,用戶可以直接利用瀏覽器在Web頁(yè)面中進(jìn)行工作流建模操作,同時(shí)可以應(yīng)用圖形化模型分析工具對(duì)工作流的正確性和有效性進(jìn)行分析。建模完成后系統(tǒng)支持用戶直接將工作流模板轉(zhuǎn)換成標(biāo)準(zhǔn)的WPDL文件,通過(guò)Web提交給工作流引擎執(zhí)行,實(shí)現(xiàn)了分布式工作流系統(tǒng)的建模。系統(tǒng)框架如圖1所示。

3.2 系統(tǒng)核心對(duì)象的方法和屬性設(shè)計(jì)
基于GIS的建模系統(tǒng),其設(shè)計(jì)思想是在充分繼承空間對(duì)象的屬性和方法的基礎(chǔ)上集成工作流模型的特點(diǎn),建立具有空間對(duì)象性質(zhì)的工作流建模對(duì)象。本文將空間對(duì)象的超類(lèi)feature和工作流模型對(duì)象的超類(lèi)process進(jìn)行融合與擴(kuò)展,得到基于GIS的工作流模型對(duì)象的超類(lèi)processFeature。它是五個(gè)主要工作流模型對(duì)象token、place、transition、link和trigger的共同父類(lèi)。具有空間對(duì)象和工作流模型對(duì)象的基本屬性和方法。圖2是核心建模對(duì)象的模型圖。系統(tǒng)中的頂層對(duì)象是workFlowTemplate(工作流模板)。它是圖形化工作流建模最后得到的結(jié)果。(點(diǎn)對(duì)象)、featureCurve(線對(duì)象)和featurePolygon(面對(duì)象)。Feature類(lèi)主要定義和實(shí)現(xiàn)了建模對(duì)象在圖形結(jié)構(gòu)、定位信息、拓?fù)湫畔⒌确矫娴拿枋龊涂刂?,為圖形化建模在工作流路由和工作流模型對(duì)象的圖形定義和空間操作方面提供了實(shí)現(xiàn)基礎(chǔ)。Process是工作流模型對(duì)象的超類(lèi),其子類(lèi)包括工作流模型的主要建模對(duì)象。Process類(lèi)主要定義和實(shí)現(xiàn)了建模對(duì)象在工作流運(yùn)行中要涉及的時(shí)間、數(shù)據(jù)、約束條件、調(diào)用資源和參與者等方面的描述和控制,為建模得到的workFlowTemplate的實(shí)際運(yùn)行提供了所需的內(nèi)外部數(shù)據(jù)資源、服務(wù)資源以及運(yùn)行所需的知識(shí)。

對(duì)象featureCoUeetion是feature對(duì)象的集合。該方法的一個(gè)重要應(yīng)用在于它支持將常用的工作流模塊作為一個(gè)集合進(jìn)行存儲(chǔ)。通過(guò)將and-split、and-join、or-split、or-join等基本結(jié)構(gòu)以及用戶自定義的customModule和subPmeess等常用的業(yè)務(wù)工作流模塊進(jìn)行存儲(chǔ),充分利用這些結(jié)構(gòu)安全的buildingblock來(lái)提高工作流建模的效率和合理性。
對(duì)象templateToWPDL的功能是將工作流模板轉(zhuǎn)換成標(biāo)準(zhǔn)的WPDL文件。為了實(shí)現(xiàn)建模的通用性,一般建模系統(tǒng)采取的方式都是將工作流模板這種圖形化的非結(jié)構(gòu)化描述語(yǔ)言轉(zhuǎn)換成結(jié)構(gòu)化語(yǔ)言描述的文件,實(shí)際上就是對(duì)一系列原模型實(shí)體進(jìn)行描述。實(shí)現(xiàn)方法可以描述為:首先建立一個(gè)基本的WPDL描述文件的標(biāo)準(zhǔn)框架,包括文件聲明信息和基本的類(lèi)型元素聲明;接下來(lái)將工作流模板中各個(gè)模型對(duì)象的相關(guān)數(shù)據(jù)從數(shù)據(jù)庫(kù)中取出,以屬性值的形式填寫(xiě)到文檔中相關(guān)元素的位置,如(workflow participation specification>、(worktlow application list>、(workflow relevant data list)、 Feature類(lèi)為工作流建模完成了圖形化的工作,可以類(lèi)比數(shù)據(jù)庫(kù)建模中建立的業(yè)務(wù)流程圖,是外部的表現(xiàn)形式;而pmcess類(lèi)則是完成了內(nèi)部數(shù)據(jù)資源和控制信息的建模工作,可以類(lèi)比建立的數(shù)據(jù)流程圖,是內(nèi)部的實(shí)際聯(lián)系。在基于CIS的工作流建模方法中,筆者設(shè)計(jì)了一個(gè)新類(lèi)processFeatur,繼承和擴(kuò)展了feature和process類(lèi)的屬性與方法,集成兩者的圖形化和數(shù)據(jù)化建模功能,并引入空間對(duì)象建模和模型檢驗(yàn)的思想和方法。 ProeessFeature主要包括五個(gè)子類(lèi),即按照擴(kuò)展Petri網(wǎng)建模思想建立的token、place、transition、link和trigger。這五個(gè)子類(lèi)是工作流建模的主要模型對(duì)象,它們的組合可以完成傳統(tǒng)Petri網(wǎng)和擴(kuò)展的高級(jí)Petri(顏色擴(kuò)展、時(shí)間擴(kuò)展、層次擴(kuò)展)的建模工作,具有很強(qiáng)的建模和描述能力。表1所示是processFeature類(lèi)的主要屬性;表2所示是其方法的列表。由于篇幅的限制,僅對(duì)其中具有代表性的一些對(duì)象及其屬性和方法進(jìn)行闡述。 屬性table返回對(duì)象所在的表格信息。在空間數(shù)據(jù)庫(kù)中為了提高對(duì)象的操作和分析效率,不同類(lèi)型的空間對(duì)象是存儲(chǔ)在不同表格之中的。原因在于點(diǎn)、線、面存儲(chǔ)的數(shù)據(jù)復(fù)雜度是不同的,點(diǎn)可以只有一對(duì)XY值,而線則至少需要兩對(duì),面則由多線組成。 屬性inParameters和outParameters是工作流對(duì)象的輸入和輸出數(shù)據(jù),它返回的是一個(gè)數(shù)組或者指針對(duì)象。屬性applica—fionSet是參與活動(dòng)的可被調(diào)用的應(yīng)用集合。RoleSet返回的是活動(dòng)參與角色的集合。ObjecteDitor返回的是工作流模型的編輯界面,它繼承了空間對(duì)象編輯和工作流模型編輯的功能,既可以對(duì)模型的圖形顯示進(jìn)行設(shè)置,同時(shí)可以對(duì)工作流模型的相關(guān)數(shù)據(jù)進(jìn)行修改。屬性template返回的是對(duì)象所在的工作流模板的標(biāo)志。 方法done是對(duì)模型對(duì)象進(jìn)行的克隆(完全復(fù)制),是對(duì)模型對(duì)象的圖形信息和工作流數(shù)據(jù)以及運(yùn)行狀態(tài)的同步復(fù)制,doue生成的對(duì)象是其父對(duì)象的動(dòng)態(tài)投影。而方法copy只是對(duì)模型對(duì)象進(jìn)行一般意義上的復(fù)制,可以只拷貝圖形信息而不關(guān)聯(lián)數(shù)據(jù)。 對(duì)工作流運(yùn)行的控制主要通過(guò)以下三個(gè)方法:a)方法ac-tlvate是激活過(guò)程并加載所需的數(shù)據(jù)信息;b)方法halt是掛起當(dāng)前的操作,并同時(shí)保留和存儲(chǔ)當(dāng)前的運(yùn)行狀態(tài)數(shù)據(jù),等待條件滿足后再繼續(xù)執(zhí)行;c)方法terminate是對(duì)當(dāng)前對(duì)象的完全注銷(xiāo),清除與對(duì)象相關(guān)的所有信息。 方法attach、join等是對(duì)模型對(duì)象的關(guān)聯(lián)操作,通過(guò)這些操作將建立起標(biāo)記與庫(kù)所之間、連接弧與庫(kù)所之間、連接弧與變遷之間、觸發(fā)和變遷之間等模型對(duì)象間的連接關(guān)系。這些操作對(duì)應(yīng)的是模型之間的空間拓?fù)潢P(guān)系的變化,并通過(guò)這些操作建立起工作流的路由。方法contains是返回包含對(duì)象的集合,如庫(kù)所中包含的標(biāo)記對(duì)象的集合。 3.3 基于GIS的圖形化模型檢驗(yàn)方法的設(shè)計(jì) 完成了工作流程的建模之后,需要對(duì)得到的工作流模板進(jìn)行檢驗(yàn)。這對(duì)保證工作流運(yùn)行的效率是非常重要的。基于本文的分析和設(shè)計(jì),將GIS的圖形操作和分析方法應(yīng)用到工作流檢驗(yàn)中,主要包括以下三個(gè)方面: a)將GIS中drilldown圖層的概念和方法應(yīng)用到工作流父子過(guò)程的顯示中。 在GIS中經(jīng)常要用到driHdown圖層的概念,以實(shí)現(xiàn)在不同比例尺的地圖之間進(jìn)行切換瀏覽。而在工作流建模中經(jīng)常會(huì)出現(xiàn)某些子業(yè)務(wù)環(huán)節(jié)異常復(fù)雜的情況。為了便于建模和分析,筆者對(duì)Petri網(wǎng)進(jìn)行了層次擴(kuò)展,引人可以循環(huán)嵌套的子過(guò)程的概念。將父過(guò)程和子過(guò)程視為不同比例尺下的工作流模板,利用GIS中drilldown和rollup方法進(jìn)行圖層細(xì)化和基層綜合,可以將復(fù)雜的工作流模板變得結(jié)構(gòu)清晰和易于觀察,從而有利于直觀有效地對(duì)工作流的整體和局部結(jié)構(gòu)進(jìn)行分析。 b)將GIS中的animationLayer(動(dòng)態(tài)圖層)的概念和方法應(yīng)用到工作流動(dòng)態(tài)仿真中。 動(dòng)態(tài)圖層支持圖層的快速刷新,是為了顯示具有動(dòng)態(tài)實(shí)時(shí)更新數(shù)據(jù)的對(duì)象而建立的應(yīng)用方法。這種方法在基于GPS的車(chē)輛監(jiān)控系統(tǒng)中是最常用的,表示實(shí)際車(chē)輛的動(dòng)態(tài)圖元其定位信息來(lái)自數(shù)據(jù)庫(kù)中不斷更新的GPS衛(wèi)星定位數(shù)據(jù),這樣在圖層上就可以看出不斷變化位置的車(chē)輛圖元。在工作流模型仿真中,可以將token視為其中的動(dòng)態(tài)圖元。Token作為點(diǎn)對(duì)象具有XY的定位數(shù)據(jù),可以根據(jù)工作流的路由和控制條件,按照一定的概率進(jìn)行路徑選擇。如果工作流結(jié)構(gòu)正確,那么token可以從起始庫(kù)所最終移動(dòng)到終止庫(kù)所。通過(guò)這種仿真模擬,可以很容易地檢驗(yàn)出工作流的結(jié)構(gòu)性錯(cuò)誤。同時(shí)在仿真運(yùn)行過(guò)程中記錄下token在運(yùn)行中耗費(fèi)的時(shí)間成本、資源成本和選擇概率等數(shù)據(jù),利用排隊(duì)論和馬爾可夫鏈等數(shù)學(xué)方法對(duì)工作流的性能進(jìn)行分析,以對(duì)工作流的路由和資源的分配進(jìn)行優(yōu)化。 c)將GIS的圖形操作方法應(yīng)用到工作流檢驗(yàn)方法中。 有些學(xué)者提出了簡(jiǎn)易直觀的基于圖形操作的工作流結(jié)構(gòu)分析方法。其基本思想是利用圖形操作工具,在一定的規(guī)則之下直接對(duì)工作流進(jìn)行化簡(jiǎn)。Wosim Sadlq等人提出了五個(gè)基于結(jié)構(gòu)正確性的模型刪除規(guī)則,開(kāi)發(fā)基于這五個(gè)規(guī)則的圖形操作工具,可以直接在工作流模板上進(jìn)行分析。按照刪除理論,如果最終得到的工作流是結(jié)構(gòu)正確的。那么整個(gè)工作流也是結(jié)構(gòu)正確的,因此可直觀地分析出工作流模型是否存在死鎖(deadlock)和非同步(lack 0f synchronization)類(lèi)型的結(jié)構(gòu)錯(cuò)誤。 4 結(jié)束語(yǔ) 本文設(shè)計(jì)了一個(gè)基于GIS的圖形化工作流建模系統(tǒng),引入了空間對(duì)象的建模方法、GIS數(shù)據(jù)存儲(chǔ)模式以及GIS圖形操作方法,很好地解決了圖形化建模軟件開(kāi)發(fā)中的關(guān)鍵問(wèn)題,為圖形化的工作流建模和模型檢驗(yàn)提供了新的思路和方法。該系統(tǒng)的原型被作為Web客戶端功能的一部分集成到安徽省輸變電地理信息系統(tǒng)(ADGIS)中進(jìn)行應(yīng)用,以實(shí)現(xiàn)電力企業(yè)業(yè)務(wù)流程的建模和模型分析功能。初步實(shí)驗(yàn)結(jié)果證明取得了較好的應(yīng)用效果。 下一步的工作將圍繞著如何更好地提高系統(tǒng)在模型檢驗(yàn)和分析方面的功能來(lái)展開(kāi)。其中空間分析理論中的空間拓?fù)浞治龊涂臻g統(tǒng)計(jì)方法將是研究的重點(diǎn)。