劉彥姝 李志勇 易 燦
[摘 要]基于WebForm的工作流系統(tǒng)是采用MVC設(shè)計(jì)模式,數(shù)據(jù)存儲(chǔ)介質(zhì)為SQL Server2000和XML文件,在DOTNET環(huán)境下開發(fā)的B/S系統(tǒng),從軟件工程的角度對(duì)系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)進(jìn)行介紹。
[關(guān)鍵詞]WebForm 業(yè)務(wù)流 系統(tǒng)設(shè)計(jì)
[中圖分類號(hào)]TP309[文獻(xiàn)標(biāo)識(shí)碼]A[文章編號(hào)]1007-9416(2009)11-0023-03
1 系統(tǒng)功能與結(jié)構(gòu)分析
作為一個(gè)完整的基于WebForm的工作流系統(tǒng),主要包含以下幾個(gè)功能模塊:表單管理、流程管理、工作管理和人員管理。其中,表單管理主要負(fù)責(zé)工作流表單的維護(hù)和更新以及多個(gè)模板的設(shè)計(jì);流程管理主要負(fù)責(zé)工作流過程定義和流程變更的維護(hù)工作;人員管理主要負(fù)責(zé)公司組織機(jī)構(gòu)的信息維護(hù),包括單位信息、部門信息、角色權(quán)限、員工信息等;工作管理主要負(fù)責(zé)工作的創(chuàng)建、辦理、查詢、監(jiān)控等。系統(tǒng)功能結(jié)構(gòu)圖如圖1所示。
在圖1中,系統(tǒng)的四個(gè)功能模塊,包括子模塊是相互協(xié)作來工作的。
在角色層,最重要的是設(shè)置每種角色在工作流系統(tǒng)中的參與權(quán)限,以方便系統(tǒng)管理和權(quán)責(zé)明確,本系統(tǒng)定義了嚴(yán)格細(xì)致的權(quán)限。通過人員管理,流程定義便可根據(jù)具體需要選取流程監(jiān)控角色和活動(dòng)執(zhí)行角色。
2 系統(tǒng)用例分析
本系統(tǒng)的參與者主要有四種:高級(jí)管理員、管理人員、工作人員和工作流引擎。高級(jí)管理員主要負(fù)責(zé)系統(tǒng)設(shè)置以及管理人員、工作人員的權(quán)限分配;管理人員主要負(fù)責(zé)各個(gè)流程工作環(huán)境的搭建和資源配給,按照不同的權(quán)限可分為信息管理員、表單管理員、流程管理員和工作管理員;工作人員按照具體的流程操作權(quán)限共同協(xié)作來完成各項(xiàng)具體工作;流程引擎負(fù)責(zé)流程的啟動(dòng)和路由,協(xié)同工作人員工作。系統(tǒng)的用例圖如圖2所示。
3 系統(tǒng)組織結(jié)構(gòu)與類描述
DOTNET提出了用戶控件的概念,在系統(tǒng)開發(fā)過程中,可以把一些通用的頁面模板做成用戶控件,使用時(shí)只需引用到主頁面即可。用戶控件的引入,不但大大提高了軟件開發(fā)效率和代碼的復(fù)用性,也大大方便了系統(tǒng)功能的擴(kuò)展。
在系統(tǒng)中,用戶界面層套用框架和用戶控件;業(yè)務(wù)邏輯層按照系統(tǒng)功能模塊進(jìn)行打包,向外提供各類操作接口;數(shù)據(jù)訪問層按照面向?qū)ο蟮乃枷虢M織實(shí)體,與數(shù)據(jù)庫和XML文件進(jìn)行合理的映射。系統(tǒng)的組織結(jié)構(gòu)圖如圖3所示。
從圖3可以看到,當(dāng)一個(gè)頁面請(qǐng)求到來時(shí),首先被事件監(jiān)測器捕獲,事件監(jiān)測器根據(jù)請(qǐng)求類型和內(nèi)容調(diào)用相應(yīng)的業(yè)務(wù)邏輯接口,最后對(duì)頁面請(qǐng)求作出應(yīng)答。各個(gè)層次的具體類實(shí)現(xiàn)如圖4所示。
從圖4中可以清楚地看到系統(tǒng)的模塊劃分,每個(gè)模塊都是高內(nèi)聚低耦合的。在DOTNET機(jī)制下,頁面請(qǐng)求業(yè)務(wù)邏輯必須經(jīng)由控制器(事件監(jiān)測器)。每個(gè)模塊的邏輯實(shí)現(xiàn)類對(duì)外提供訪問接口,圖中僅列出了部分類方法。邏輯實(shí)現(xiàn)類與數(shù)據(jù)存儲(chǔ)媒體之間的交互必須通過數(shù)據(jù)訪問類,數(shù)據(jù)訪問類調(diào)用統(tǒng)一的數(shù)據(jù)訪問接口,在這里可以處理所有的SQL語句、存儲(chǔ)過程和事務(wù)等。通過數(shù)據(jù)訪問類進(jìn)行數(shù)據(jù)查詢時(shí),返回的不是數(shù)據(jù)集,而是實(shí)體對(duì)象,同樣,外部傳遞給數(shù)據(jù)訪問類的參數(shù)也是實(shí)體對(duì)象。實(shí)體與數(shù)據(jù)存儲(chǔ)媒體或流程控制信息存在映射關(guān)系,比如流程處理過程中,活動(dòng)對(duì)應(yīng)Action實(shí)體,數(shù)據(jù)域?qū)?yīng)Field實(shí)體;實(shí)體之間也存在相互映射關(guān)系。
4 本系統(tǒng)的評(píng)議與改進(jìn)
本系統(tǒng)是一個(gè)基于WebForm的工作流系統(tǒng),它整合了Web智能表單設(shè)計(jì)器和流程定義工具,可以很方便地設(shè)計(jì)表單和定義流程。由于這兩個(gè)部件是相對(duì)獨(dú)立的,所以可以很方便地重用到其他相關(guān)系統(tǒng)中,比如,Web智能表單設(shè)計(jì)器可以集成到辦公軟件中,讓辦公人員自己來設(shè)計(jì)業(yè)務(wù)表單。由于過程定義工具采用可視化的流程定義,并且自動(dòng)生成的過程定義文件遵循WFMC制定的XPDL規(guī)范,所以可以方便地與一些遵循WFMC規(guī)范的工作流系統(tǒng)進(jìn)行集成,生成的過程定義文檔也具有很強(qiáng)的通用性,最可貴的是,它是純Web方式的,不需要用戶安裝任何插件即可輕松完成流程定義。
當(dāng)然,本系統(tǒng)不可避免的具有一些局限性和不完備性。主要表現(xiàn)在以下方面:
(1)本系統(tǒng)是基于WebForm的,它的主要操作對(duì)象是WebForm,并沒有提供訪問外部資源的接口;
(2)目前Web智能表單設(shè)計(jì)器只提供單行文本框、多行文本框、單選框和下拉列表四種客戶端控件,雖然足以滿足一般業(yè)務(wù)表單的需求,但是由于沒有提供特定用途的控件,往往對(duì)用戶輸入的信息格式需要進(jìn)行復(fù)雜的有效性校驗(yàn),比如日期的輸入等,所以設(shè)計(jì)器有必要對(duì)客戶端控件類型進(jìn)行擴(kuò)充;
(3)在過程定義工具中,設(shè)定轉(zhuǎn)移條件只能根據(jù)表單字段的輸入值,而不能通過時(shí)間觸發(fā)或事件觸發(fā)的方式來驅(qū)動(dòng)轉(zhuǎn)移。
[參考文獻(xiàn)]
[1] 李維.面向?qū)ο髮?shí)踐之路(C#版),電子工業(yè)出版社,2005-03-01.
[2] Christian Thilmany [譯]張曉昆,湯濤,譚立平.NET模式:架構(gòu)、設(shè)計(jì)與過程,中國電力出版社,2005.6.
[3] [美] Eric Bell,Hao"Howard"Feng,Edward L.W.Soong等?[譯]夏江,用.NET和XML構(gòu)建WEB應(yīng)用程序,清華大學(xué)出版社,2003.9.
[4] 曾月,范玉順.工作流管理技術(shù)Web客戶端的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2002,38(2):130-133
[作者簡介]
劉彥姝(1976-) 湖南大眾傳媒職業(yè)技術(shù)學(xué)院,副教授。
[基金項(xiàng)目]
湖南省教育廳科學(xué)研究項(xiàng)目,基于Web表單的工作流關(guān)鍵技術(shù)研究。
數(shù)字技術(shù)與應(yīng)用2009年11期