摘要:傳統(tǒng)的工程項(xiàng)目管理系統(tǒng)普遍存在業(yè)務(wù)應(yīng)用邏輯和流程固化的問題,已經(jīng)無法滿足目前房地產(chǎn)開發(fā)企業(yè)需求。該文重新設(shè)計(jì)支持協(xié)同設(shè)計(jì)的工作流項(xiàng)目管理系統(tǒng),采用JaWE組件規(guī)范設(shè)計(jì)XPDL工作流模型文檔,設(shè)計(jì)實(shí)現(xiàn)工作流引擎對其進(jìn)行解釋執(zhí)行,消除了由于業(yè)務(wù)流程遷移而對信息系統(tǒng)產(chǎn)生的不利影響,可以實(shí)現(xiàn)快速改變業(yè)務(wù)流程而無需改變系統(tǒng)主程序。
關(guān)鍵詞:XPDL;工作流;工作流引擎;項(xiàng)目管理
中圖分類號:TP315 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2012)33-7936-03
隨著我國經(jīng)濟(jì)建設(shè)的發(fā)展和人民生活水平的提高,房地產(chǎn)行業(yè)也獲得了健康發(fā)展的契機(jī),而房地產(chǎn)項(xiàng)目的成敗主要取決于設(shè)計(jì)理念是否先進(jìn)、施工質(zhì)量是否達(dá)到預(yù)期目標(biāo)等等,這些都直接關(guān)系到開發(fā)商的經(jīng)濟(jì)收益和社會效益。隨著計(jì)算機(jī)應(yīng)用日益普及,開發(fā)商普遍采用工程項(xiàng)目管理軟件來幫助企業(yè)提高項(xiàng)目管理效率,企業(yè)業(yè)務(wù)規(guī)模的不斷擴(kuò)大,對并行項(xiàng)目的管理也變得越來越困難,同時(shí)由于當(dāng)前很多的工程經(jīng)過層層分包和轉(zhuǎn)包,加上施工管理人員缺乏系統(tǒng)化、規(guī)范化流程控制管理理念,項(xiàng)目的管理比較混亂,設(shè)計(jì)方和建筑方溝通不徹底,項(xiàng)目協(xié)同設(shè)計(jì)能力較差,容易偏離初始設(shè)計(jì)目標(biāo),后期反饋導(dǎo)致項(xiàng)目修改負(fù)擔(dān)重。同時(shí)各項(xiàng)目管理系統(tǒng)平臺缺乏統(tǒng)一規(guī)劃,各自形成“信息孤島”無法進(jìn)行數(shù)據(jù)的共享和交換,從而大大降低了企業(yè)項(xiàng)目管理的科學(xué)性與效率。
目前傳統(tǒng)的工程項(xiàng)目管理系統(tǒng)一般是將現(xiàn)有業(yè)務(wù)的應(yīng)用邏輯和業(yè)務(wù)流程固化到一起[1],通過人工操作處理業(yè)務(wù)流程信息。房地產(chǎn)項(xiàng)目運(yùn)作的環(huán)境錯綜復(fù)雜,地區(qū)經(jīng)濟(jì)發(fā)展水平、政府宏觀、微觀金融政策的調(diào)整、消費(fèi)對象和消費(fèi)意愿以及房地產(chǎn)市場的變化等,都可能直接影響到房地產(chǎn)項(xiàng)目的開發(fā)和銷售。房地產(chǎn)項(xiàng)目的經(jīng)營者迫切需要提高能夠適應(yīng)激烈的市場競爭,迅速對復(fù)雜、高風(fēng)險(xiǎn)的投資活動作出正確決策的能力。由于人工處理信息時(shí)效性差,使得房地產(chǎn)開發(fā)項(xiàng)目管理方無法做出及時(shí)準(zhǔn)確的計(jì)劃和控制。與此同時(shí),當(dāng)遇到外界環(huán)境發(fā)生改變,就不得不對已有的規(guī)劃設(shè)計(jì)進(jìn)行修改,甚至已經(jīng)建成的建筑需要拆除重建,往往這種方式在時(shí)間上又是不被允許的,就會導(dǎo)致項(xiàng)目遭受巨大損失。
傳統(tǒng)的工程項(xiàng)目管理系統(tǒng)實(shí)現(xiàn)信息流和業(yè)務(wù)流的流轉(zhuǎn)一般通過菜單驅(qū)動方式,該方式只能機(jī)械地處理系統(tǒng)包含的數(shù)據(jù)和文檔資料,難以應(yīng)對市場快速變化做出相應(yīng)設(shè)計(jì)上的修改和靈活管理業(yè)務(wù)邏輯變遷,無法實(shí)現(xiàn)開發(fā)商、建筑商、設(shè)計(jì)院之間的多方協(xié)同設(shè)計(jì)項(xiàng)目管理工作[2]。工程項(xiàng)目管理系統(tǒng)由于涉及到很多資源、進(jìn)度、收入、設(shè)計(jì)、合同的變化,這些數(shù)據(jù)始終處于流動變化狀態(tài),業(yè)務(wù)流程也隨之發(fā)生改變。比如增加一個審批流程,由于傳統(tǒng)系統(tǒng)不能適應(yīng)業(yè)務(wù)處理流程改動,除非修改系統(tǒng)源代碼,這又需要大量時(shí)間和費(fèi)用,還能導(dǎo)致整個項(xiàng)目管理的業(yè)務(wù)流程無法正常進(jìn)行。因此這類系統(tǒng)在設(shè)計(jì)時(shí)就要考慮到如何實(shí)現(xiàn)業(yè)務(wù)流程的快速變更或重建,其中包括改變工作流程流向、增加新工作流程環(huán)節(jié)、減少老工作流程環(huán)節(jié)、合并工作流程環(huán)節(jié)等。傳統(tǒng)的工程項(xiàng)目管理系統(tǒng)處理工作流程是通過開發(fā)人員人工編寫固定操作流程,并由人工觸發(fā)轉(zhuǎn)入下一步驟,這顯然難以適應(yīng)現(xiàn)代工程項(xiàng)目管理需求靈活多變的現(xiàn)狀。
1相關(guān)技術(shù)
JaWE(JavaWorkflowEditor)是一種全新的圖形化工作流過程定義編輯器,它嚴(yán)格遵循工作流管理聯(lián)盟(WorkflowManagementCoalition,WfMC)的接口規(guī)范,輸出一個標(biāo)準(zhǔn)的過程定義文本描述XPDL(XMLProcessDefinitionLanguage)文件。工作流過程定義接口定義了一個公共接口模式,不同工作流產(chǎn)品的過程定義是可以通過XPDL標(biāo)準(zhǔn)來進(jìn)行交互的。由JaWE定義的工作流過程模型,能夠在不同的工作流軟件產(chǎn)品上進(jìn)行運(yùn)行和通訊。基于元模型框架的XPDL過程定義接口規(guī)范定義了在一個過程定義中常用的實(shí)體以及它們之間的關(guān)系和實(shí)體屬性。按照元模型定義,JaWE通過XPDL規(guī)范的公用接口模式能夠?qū)崿F(xiàn)多個模型間的轉(zhuǎn)換和過程定義的內(nèi)部描述。
2支持協(xié)同設(shè)計(jì)的工作流項(xiàng)目管理系統(tǒng)模型
圖1給出了用統(tǒng)一建模語言(UnifiedModelingLanguage,UML)設(shè)計(jì)的體系結(jié)構(gòu)模型,新模型采用工作流技術(shù)來解決目前項(xiàng)目管理信息系統(tǒng)的強(qiáng)耦合與弱柔性的問題。該系統(tǒng)結(jié)構(gòu)包含5個層次,自上而下分別是表示層、訪問控制層、模型層、數(shù)據(jù)訪問層、數(shù)據(jù)庫。表示層包含所有用戶服務(wù)接口,直接為用戶提供信息服務(wù);訪問控制層主要負(fù)責(zé)對用戶身份進(jìn)行核實(shí),按照身份服務(wù)權(quán)限表賦予相應(yīng)服務(wù)模塊的訪問權(quán)限;模型層封裝系統(tǒng)所有的服務(wù)器組件、邏輯業(yè)務(wù)功能接口和XPDL流程定義文件,它結(jié)構(gòu)復(fù)雜,任務(wù)繁重是整個系統(tǒng)協(xié)作運(yùn)行的核心層;數(shù)據(jù)訪問層為以上各層提供數(shù)據(jù)庫訪問服務(wù)接口;數(shù)據(jù)庫主要存放各種相關(guān)應(yīng)用數(shù)據(jù),包括XPDL工作流模型定義文件、工程設(shè)計(jì)CAD文件、企業(yè)業(yè)務(wù)文檔數(shù)據(jù)、系統(tǒng)訪問控制數(shù)據(jù)及其他相關(guān)數(shù)據(jù)。
3設(shè)計(jì)實(shí)現(xiàn)
該文設(shè)計(jì)的Web應(yīng)用框架采取目前主流.NET開發(fā)技術(shù)設(shè)計(jì),程序開發(fā)語言為VisualC#2010,開發(fā)環(huán)境為VisualStudio2010。工作流過程定義語言采用XPDL規(guī)范,它是工作流管理聯(lián)盟提出的一種基于XML的工作流過程定義語言,它負(fù)責(zé)定義工作流參考模型中的過程定義交換接口。工作流過程設(shè)計(jì)組件使用JaWE圖形化設(shè)計(jì)工具,工程設(shè)計(jì)組件使用AutoCAD,它是目前世界各國工程設(shè)計(jì)人員的首選設(shè)計(jì)軟件,簡便易學(xué)、精確無誤。數(shù)據(jù)庫使用SQLServer2005,它是一個全面的數(shù)據(jù)庫平臺,使用集成的商業(yè)智能?(BusinessIntelligence,BI)工具提供了企業(yè)級的數(shù)據(jù)管理,為關(guān)系型數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更安全可靠的存儲功能,可以構(gòu)建和管理用于業(yè)務(wù)的高可用和高性能的數(shù)據(jù)應(yīng)用程序。下面逐層進(jìn)行闡述。
3.1表示層
表示層為系統(tǒng)用戶提供對項(xiàng)目管理系統(tǒng)的訪問接口,由ASP.NETWeb窗體和代碼隱藏文件組成。Web窗體可以提供多種多樣的用戶操作接口;信息格式檢驗(yàn)?zāi)_本對輸入信息格式是否合法進(jìn)行驗(yàn)證,若用戶輸入格式不正確則提醒讀者輸入正確格式;訪問控制根據(jù)用戶組信息賦予當(dāng)前用戶相應(yīng)的系統(tǒng)使用權(quán)限;而代碼隱藏文件是.NetFramework用來實(shí)現(xiàn)各種控件的事件響應(yīng)處理程序。本架構(gòu)同時(shí)支持B/S模式和C/S模式設(shè)計(jì),用戶可以通過IE瀏覽器或WindowsForm來獲取系統(tǒng)提供的功能服務(wù),為安全性考慮工作流設(shè)計(jì)員與系統(tǒng)管理員采用C/S模式設(shè)計(jì)。本系統(tǒng)涉及到四類角色,工程設(shè)計(jì)人員、項(xiàng)目管理人員、工作流設(shè)計(jì)人員、系統(tǒng)管理員。
3.2訪問控制層
用戶登錄系統(tǒng)時(shí),系統(tǒng)對用戶名、密碼進(jìn)行驗(yàn)證,確定當(dāng)前用戶具備系統(tǒng)相關(guān)服務(wù)使用權(quán)限后,允許訪問相應(yīng)模塊。由于本系統(tǒng)存儲的數(shù)據(jù)信息具有極高的商業(yè)價(jià)值,為了保證系統(tǒng)及數(shù)據(jù)的安全性,需要嚴(yán)格管理系統(tǒng)的訪問控制權(quán)限,可以采取基于角色對象身份的訪問控制技術(shù)[3]。角色權(quán)限分組管理是對系統(tǒng)的全部資源建立獨(dú)立的訪問權(quán)限管理,根據(jù)系統(tǒng)使用人員情況設(shè)定所需要的角色分組類型,同時(shí)為其分配相應(yīng)的權(quán)限。為方便系統(tǒng)管理員管理,預(yù)先按照用戶職務(wù)對訪問權(quán)限進(jìn)行預(yù)分組,從而實(shí)現(xiàn)了用戶與訪問權(quán)限的邏輯分離。系統(tǒng)實(shí)施過程中再將具體用戶分配到相關(guān)的角色分組,極大地方便了管理員進(jìn)行權(quán)限管理。同時(shí)允許系統(tǒng)管理員對角色分組權(quán)限進(jìn)行微調(diào),實(shí)現(xiàn)靈活的訪問控制。
3.3模型層
模型層由XPDL流程定義文件、JaWE流程定義工具、工作流引擎和AutoCAD組件構(gòu)成,為用戶提供工作流流程定義和工作流業(yè)務(wù)實(shí)例的建立、管理、協(xié)調(diào)控制和協(xié)同設(shè)計(jì)功能等。下面逐一進(jìn)行詳細(xì)說明。
XPDL語言是工作流管理聯(lián)盟提出的一種基于XML的工作流過程定義語言,它定義工作流參考模型中的過程交換接口。任何業(yè)務(wù)流程都能使用XPDL工作流模型設(shè)計(jì),XPDL過程模型由一系列活動(Activity)以及這些活動在具體的執(zhí)行過程中需要使用的資源和角色按照一定的約束關(guān)系組成。XPDL工作流過程定義就是將這一系列的活動、活動之間的關(guān)系按照業(yè)務(wù)需求定義,并對相應(yīng)的活動安排活動的起止日期、活動相關(guān)角色、資源等,然后將XPDL工作流過程定義模型發(fā)送給工作流引擎,通過引擎觸發(fā)任務(wù)項(xiàng)即在“合適的時(shí)間發(fā)送到合適的人員”。
系統(tǒng)引入工作流流程建模工具(JaWE)目的是為了便于定義工作流過程模型,直接生成XPDL過程定義文件。JaWE提供了制定工作流過程模型的圖形化建模工具。每建立一個業(yè)務(wù)流程,需要的基本節(jié)點(diǎn)有起始節(jié)點(diǎn)、執(zhí)行節(jié)點(diǎn)和結(jié)束節(jié)點(diǎn),執(zhí)行節(jié)點(diǎn)是為了執(zhí)行任務(wù)或批量執(zhí)行任務(wù),系統(tǒng)將通過工作流引擎來執(zhí)行前面生成的XPDL文件,并把新的節(jié)點(diǎn)模型號、節(jié)點(diǎn)類型、節(jié)點(diǎn)號、節(jié)點(diǎn)名稱、處理者權(quán)限等信息寫入數(shù)據(jù)庫,新建流向時(shí)將模型號、當(dāng)前節(jié)點(diǎn)號、前導(dǎo)節(jié)點(diǎn)號和后續(xù)節(jié)點(diǎn)號讀入引擎,任務(wù)完成,工作流程結(jié)束或觸發(fā)其他工作流程。JaWE作為一種柔性工作流技術(shù)可以通過圖形化的設(shè)計(jì)界面進(jìn)行工作流業(yè)務(wù)的設(shè)計(jì),比如設(shè)置節(jié)點(diǎn)屬性,修改流程結(jié)構(gòu)、修改節(jié)點(diǎn)、修改路徑、創(chuàng)建子流程等;能夠修改流程結(jié)構(gòu)和對相關(guān)屬性進(jìn)行設(shè)置[4]。工作流流程的設(shè)計(jì)是有著嚴(yán)格技術(shù)要求的,一般應(yīng)由系統(tǒng)分析員級別的研發(fā)人員承擔(dān),這關(guān)系到系統(tǒng)能否正確運(yùn)行的核心關(guān)鍵,用戶在自行進(jìn)行修改、添加時(shí)應(yīng)嚴(yán)格按照系統(tǒng)使用說明書進(jìn)行,并做好原流程的備份工作,方便必要時(shí)可以恢復(fù)。
工作流過程的定義分為兩個維度,模型級和過程級。模型級:一個模型可能包含若干個工作流過程定義,這些過程共享相同的應(yīng)用程序(Applications)、參與者(Participants)、相關(guān)數(shù)據(jù)(RelevantData)。模型就是一個容器,容納多個獨(dú)立的過程和他們的實(shí)體數(shù)據(jù)。過程不能單獨(dú)創(chuàng)建,只有先創(chuàng)建一個模型,才能創(chuàng)建模型所有的過程以及相關(guān)的工作流應(yīng)用程序、參與者、相關(guān)數(shù)據(jù)。在模型中定義工作流的過程定義、應(yīng)用程序、參與者和相關(guān)數(shù)據(jù)實(shí)體是全局的,他們能夠被模型中所有的過程定義所引用。過程是工作流業(yè)務(wù)過程實(shí)體的圖形化表示,只要含有活動(Activity)和變遷(Transition),進(jìn)行具體的業(yè)務(wù)過程定義時(shí),首先要創(chuàng)建業(yè)務(wù)過程的所有參與者,控制相關(guān)的活動。接著定義業(yè)務(wù)過程的所有活動,一個過程必須有一個開始活動和結(jié)束活動。最后用變遷來連接這些活動,表示出活動之間的聯(lián)系[5]。
工作流引擎的設(shè)計(jì)是為了解釋XPDL過程定義,并調(diào)用相應(yīng)的業(yè)務(wù)處理應(yīng)用程序來幫助執(zhí)行活動。工作流引擎被劃分為執(zhí)行器和監(jiān)視器兩個功能。執(zhí)行器實(shí)現(xiàn)了絕大多數(shù)的復(fù)雜工作流流程的運(yùn)行功能、工作流實(shí)體對象的實(shí)例化、工作流事務(wù)處理等方面。監(jiān)視器主要判斷是否有超時(shí)的過程實(shí)例或者節(jié)點(diǎn)實(shí)例存在,但監(jiān)視器并不對發(fā)現(xiàn)的超時(shí)對象進(jìn)行處理,而是采用消息通信的方式,通過引擎消息隊(duì)列通知執(zhí)行器來處理這些超時(shí)的對象[6]。工作流實(shí)例運(yùn)行時(shí),引擎要使用工作流引擎管理器提供的服務(wù)來創(chuàng)建和管理工作流實(shí)例的運(yùn)行,相關(guān)服務(wù)可以通過函數(shù)接口向引擎提供,具體設(shè)計(jì)方法篇幅較多,可以參考我的論文《基于業(yè)務(wù)流程可視化的工作流引擎設(shè)計(jì)》。
3.4數(shù)據(jù)訪問層與數(shù)據(jù)庫
數(shù)據(jù)訪問層可以封裝幾種常用的數(shù)據(jù)庫訪問方法,如事務(wù)提交、事務(wù)開始、事務(wù)回滾、建立連接、斷開連接等,供上層復(fù)用或調(diào)用。訪問層獨(dú)立設(shè)計(jì)的優(yōu)點(diǎn)就是可以針對用戶特點(diǎn)選用不同數(shù)據(jù)庫的訪問程序和SQL程序,實(shí)現(xiàn)對多種數(shù)據(jù)庫的支持,擴(kuò)展該框架的適用范圍。
數(shù)據(jù)庫存儲系統(tǒng)涉及到的工程設(shè)計(jì)數(shù)據(jù)庫、項(xiàng)目數(shù)據(jù)庫(包含工作流數(shù)據(jù)模型庫)、文檔數(shù)據(jù)庫和角色權(quán)限數(shù)據(jù)庫,它是表示層與模型層邏輯運(yùn)算的數(shù)據(jù)來源。在該系統(tǒng)中涉及到的數(shù)據(jù)是與具體業(yè)務(wù)有關(guān)的數(shù)據(jù),它只對數(shù)據(jù)訪問層開放,對于其他各層它是透明的,不可直接訪問的,這樣做的好處就是統(tǒng)一管理,提高安全性。
4結(jié)束語
該文通過對傳統(tǒng)的工程項(xiàng)目管理系統(tǒng)進(jìn)行研究,發(fā)現(xiàn)它們普遍存在將現(xiàn)有業(yè)務(wù)的應(yīng)用邏輯和業(yè)務(wù)流程固化,通過人工操作處理業(yè)務(wù)流程信息,已經(jīng)無法滿足目前房地產(chǎn)開發(fā)企業(yè)需求。該文將工作流、協(xié)同設(shè)計(jì)技術(shù)引入,重新設(shè)計(jì)出靈活的工作流項(xiàng)目管理系統(tǒng),采用JaWE組件規(guī)范設(shè)計(jì)XPDL工作流模型文檔,設(shè)計(jì)實(shí)現(xiàn)工作流引擎對其進(jìn)行解釋執(zhí)行,改進(jìn)了傳統(tǒng)工程項(xiàng)目管理系統(tǒng)的設(shè)
計(jì)模式,消除了由于業(yè)務(wù)流程遷移而對信息系統(tǒng)產(chǎn)生的不利影響,可以實(shí)現(xiàn)快速改變業(yè)務(wù)流程而無需改變系統(tǒng)主程序。數(shù)據(jù)訪問層采用策略模式可以支持目前常用大部分?jǐn)?shù)據(jù)庫,基本實(shí)現(xiàn)了協(xié)同設(shè)計(jì)的工作流管理信息系統(tǒng)。
參考文獻(xiàn):
[1]林闖,田立勤.工作流系統(tǒng)模型的性能等價(jià)分析[J].軟件學(xué)報(bào),2002,13(8):1472-1480.
[2]張益林.工作流技術(shù)的研究及在工程項(xiàng)目管理中的設(shè)計(jì)與實(shí)現(xiàn)[D].長沙:湖南大學(xué),2005.
[3]SandhuR,CoyneE,F(xiàn)einsteinH.Role-basedaccesscontrolmodels[J].IEEEComputer,1996,29(2):38-47.
[4]楊磊,戴金海,陳琪鋒.柔性工作流的可視化方法研究[J].計(jì)算機(jī)仿真,2008,25(7):223-227.
[5]唐邦志,魏生民,景韶宇,周欣.工作流網(wǎng)XPDL映射[J].計(jì)算機(jī)工程與應(yīng)用,2003(36):41-44.
[6]吳宏森.基于業(yè)務(wù)流程可視化的工作流引擎設(shè)計(jì)[J].鎮(zhèn)江高專學(xué)報(bào),2012,25(3):43-46.