趙興濤, 王斌君
(1.中國人民公安大學安全防范系,北京 102614;2.中國人民公安大學信息安全工程系,北京 102614)
人類社會已踏入“21世紀”的信息時代,信息時代的核心是利用計算機技術(shù)和網(wǎng)絡(luò)技術(shù),快速處理和存儲大量的信息,通過信息技術(shù)規(guī)范人們行為,提高辦事效率,提高人們管理信息的能力。信息化是業(yè)務(wù)系統(tǒng)的電子化處理,是人們某個時期對業(yè)務(wù)系統(tǒng)的理解的結(jié)果。然而,隨著時間的推移,人們對業(yè)務(wù)系統(tǒng)的認識不斷深入,以及業(yè)務(wù)系統(tǒng)自身的發(fā)展和完善,系統(tǒng)需要不斷地維護[1]。其中,最平凡的是業(yè)務(wù)流程的變化,而業(yè)務(wù)流程的微小變化將對信息系統(tǒng)帶來巨大的改變,以至于不得不重新設(shè)計和實現(xiàn)相關(guān)的信息系統(tǒng)。例如,車輛管理系統(tǒng)中的審批流程、調(diào)度流程、維修流程等等。隨著國家對各單位用車的政策性變化,這些流程已發(fā)生了變化,今后仍然會發(fā)生變化。這就需要構(gòu)建符合業(yè)務(wù)不斷變化的軟件體系結(jié)構(gòu)。另外,目前的信息系統(tǒng)應(yīng)用最多的是事務(wù)處理,其中難免有公文審批等功能,每個應(yīng)用系統(tǒng)都須開發(fā),軟件的重用問題嚴重,造成資源的浪費。工作流中間件可以很好地解決上述的兩類問題。
根據(jù)國際工作流管理聯(lián)盟(Workflow Management Coalition,WFMC)的定義,工作流就是“一類能夠完全或者部分自動執(zhí)行的業(yè)務(wù)過程,它根據(jù)一系列過程規(guī)則、文檔、信息或任務(wù)能夠在不同的執(zhí)行者之間進行傳遞與執(zhí)行”。簡而言之,工作流就是一系列相互銜接、自動進行的業(yè)務(wù)活動或任務(wù)。為實現(xiàn)某個業(yè)務(wù)目標,在多個參與者之間,利用計算機,按某種預(yù)定規(guī)則自動傳遞文檔、信息或者任務(wù)。工作流技術(shù)可以提高企業(yè)的工作效率,節(jié)約工作成本,同時較好地解決了資源共享和辦公協(xié)作問題。
本文結(jié)合公安部車輛管理系統(tǒng)的研制,研究和探討了工作流管理系統(tǒng)及其應(yīng)用問題。
文獻[2]開發(fā)了基于工作流技術(shù)的管理信息系統(tǒng),該系統(tǒng)以Lotus Domino作為工作流引擎,集成了文檔型數(shù)據(jù)庫Domino和關(guān)系型數(shù)據(jù)庫DB2。該系統(tǒng)采用Intranet模式將企業(yè)網(wǎng)與后臺數(shù)據(jù)庫系統(tǒng)相連,使流程應(yīng)用者能方便地參與企業(yè)的業(yè)務(wù)過程,并簡化了企業(yè)辦公,便于系統(tǒng)的維護和升級。但是該系統(tǒng)完全依賴于Lotus Domino平臺,部署成本較高。文獻[3]研究了.NET組件技術(shù),并利用該技術(shù)開發(fā)了基于B/S模式的車輛調(diào)度系統(tǒng),根據(jù)功能需求將系統(tǒng)劃分為以下5個組件:身份驗證組件、用車申請組件、車輛調(diào)度安排組件、車輛查詢組件和系統(tǒng)維護組件。該系統(tǒng)可實現(xiàn)計算機輔助車輛調(diào)度,但是缺乏審批環(huán)節(jié),還無法實現(xiàn)在正確的時間將正確的信息傳遞給正確的執(zhí)行者。文獻[4]闡述了基于角色的訪問控制(RBAC)的總體思想和模型,以及RBAC的實現(xiàn)機制。文獻[5]基于.NET三層架構(gòu)技術(shù)提出并實現(xiàn)了稿件的整體管理解決方案。該文根據(jù)用戶功能需求,將系統(tǒng)劃分為三個層次:用戶界面層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層。提高了系統(tǒng)的可控性、擴展性、穩(wěn)定性和安全性,較好的滿足了用戶的需求。
目前,車輛管理處仍然采用手工方式進行車輛調(diào)度管理。由于出車任務(wù)緊,駕駛?cè)藛T和車輛出勤狀況不明,經(jīng)常導(dǎo)致調(diào)配和管理困難。隨著國家經(jīng)濟的高速發(fā)展,加之業(yè)務(wù)增長的需求,車輛的數(shù)量和種類還會不斷增長,急需開發(fā)車輛管理信息系統(tǒng),以便對車輛和人員進行管理,科學調(diào)度,滿足業(yè)務(wù)需要,提高工作效率。本文通過分析車管處車輛管理過程中的數(shù)據(jù)需求、角色需求、功能需求和審批流程需求,設(shè)計并實現(xiàn)了以.NET框架的三層架構(gòu)技術(shù)為基礎(chǔ)、集成了基于角色訪問控制、內(nèi)置工作流引擎的B/S模式車輛管理系統(tǒng)。
某單位車輛管理處擁有50多名在職員工和100多輛各類大、中、小型運營車輛,平均每年為開會、接待和其他業(yè)務(wù)局的日常工作提供車輛服務(wù)70余團次、近萬車次,出車里程約200萬公里。車輛管理處的主要工作包括維修保養(yǎng)公安部各機關(guān)業(yè)務(wù)局的所有機動車;調(diào)派各業(yè)務(wù)局的用車申請;為部機關(guān)的機動車制定用油標準,并審批特殊情況下的用油申請;為部機關(guān)所有機動車定期辦理保險;同時車輛管理處還負責本處駕駛員和營運車輛的出勤考核,負責管理本處各種費用支出的登記、查詢和統(tǒng)計等。
車輛管理系統(tǒng)除了要實現(xiàn)信息的采集、查詢、統(tǒng)計輸出等傳統(tǒng)功能外,還要實現(xiàn)用車審批功能和維修審批功能,具體闡述如下:
車輛管理部門為各業(yè)務(wù)部門提供車輛租賃服務(wù),其業(yè)務(wù)流程為:首先,業(yè)務(wù)部門提出用車申請,經(jīng)用車單位領(lǐng)導(dǎo)審批同意后送交給車輛管理處。其次,車管處調(diào)度管理員根據(jù)車輛可用情況和駕駛員任務(wù)安排審批該用車申請,同意后轉(zhuǎn)呈給車管處領(lǐng)導(dǎo);車管處領(lǐng)導(dǎo)根據(jù)本處當前任務(wù)安排,最終決定是否同意該申請。再次,若車管處領(lǐng)導(dǎo)同意該申請,則車管處調(diào)度管理員安排合適的車輛和駕駛員執(zhí)行該任務(wù)。最后,駕駛?cè)税凑照{(diào)度安排,具體實施車輛接送任務(wù)。
車輛管理部門負責部機關(guān)所有車輛的維修保養(yǎng),其業(yè)務(wù)流程為:首先,業(yè)務(wù)局用戶要撰寫維修申請,并取得該車輛隸屬部門的領(lǐng)導(dǎo)同意。然后,向車管處提交維修保養(yǎng)申請;再次,車管處領(lǐng)導(dǎo)對申請的內(nèi)容進行核實,審批同意后,送交車輛維修廠進行維修。最后,維修完成后,維修廠將該車送返車輛管理處。車管處負責維修登記,并通知車輛隸屬單位取回車輛。
針對車輛管理的業(yè)務(wù)需求,并考慮到減少軟件開發(fā)的重用和流程易變等問題,系統(tǒng)采用B/S結(jié)構(gòu)的三層體系架構(gòu),即用戶接口層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層,如圖1所示。用戶接口層是系統(tǒng)的直接展示,通過客戶端的Web應(yīng)用程序和服務(wù)器端的控件為用戶提供友好的、可直接操縱的用戶界面,并通過用戶接口層與系統(tǒng)交互。業(yè)務(wù)邏輯層包括所有的業(yè)務(wù)規(guī)則和校驗規(guī)則,為用戶接口層提供支持,并且當業(yè)務(wù)規(guī)則發(fā)生變化時,僅僅將這種變化局限在業(yè)務(wù)邏輯層,不會影響用戶接口層的使用。數(shù)據(jù)訪問層實現(xiàn)對不同數(shù)據(jù)庫平臺的訪問,為業(yè)務(wù)邏輯層提供數(shù)據(jù)支持。雖然.Net Framework提供了操縱數(shù)據(jù)庫的簡便方式,但是數(shù)據(jù)訪問層通常不直接與用戶接口層交互。數(shù)據(jù)訪問層主要是通過調(diào)用存儲過程,或者執(zhí)行SQL語句創(chuàng)建、讀取、更新和刪除數(shù)據(jù)庫中的數(shù)據(jù)。
圖1 車輛管理系統(tǒng)的體系結(jié)構(gòu)
圖2 工作流引擎數(shù)據(jù)模型
工作流引擎是實現(xiàn)業(yè)務(wù)流程以及應(yīng)對業(yè)務(wù)流程變化的關(guān)鍵。工作流引擎的核心是其數(shù)據(jù)模型,見圖2。其中Workflow表是最主要的數(shù)據(jù)結(jié)構(gòu)表,它包含工作流的名稱和工作流處理對象的全對象名。下一個主要的數(shù)據(jù)表是WFOwnerGroup表,主要表示每個工作流不同階段(狀態(tài))的所有人。WFState表主要定義每個工作流的多個不同狀態(tài)。包括工作流每個狀態(tài)的名稱,簡單描述,以及負責審批該狀態(tài)的工作流用戶組(WFOwnerGroup)。WFStateProperty表主要定義每個工作流狀態(tài)關(guān)聯(lián)對象的不同屬性??梢詾槊總€屬性設(shè)置“必須”和“只讀”選項。這樣,在工作流對象的不同階段,必須提供某些項目,不能修改某些項目。WFTransition表定義不同狀態(tài)之間可能存在的狀態(tài)轉(zhuǎn)換。WFItem表定義了用戶提交的每一個申請,包含提交申請的用戶、當前申請的狀態(tài)等。WFItemOwner表定義了每個工作流申請?zhí)幱谔囟顟B(tài)時的審批者。WFItemStateHistory表定義了工作流申請從一個狀態(tài)到另一個狀態(tài)的審批歷程,可由此推算每個工作流申請的審批時間。
工作流引擎的數(shù)據(jù)訪問層利用.Net Framework中的對象-關(guān)系映射(Object/Relation Mapping,簡稱ORM)方式實現(xiàn)對數(shù)據(jù)庫的訪問。業(yè)務(wù)邏輯層則包括工作流的校驗規(guī)則和狀態(tài)轉(zhuǎn)移機制。工作流的用戶接口層主要實現(xiàn)了用車審批和維修審批兩種工作流。其中用車審批工作流參與角色較多、審批過程比較復(fù)雜。
用車審批工作流是車輛管理系統(tǒng)的重要流程,其狀態(tài)包括:呈報部門領(lǐng)導(dǎo)審批、呈報車管處調(diào)度管理員、呈報車管處領(lǐng)導(dǎo)、拒絕、取消、重新申請和安排出車。用戶角色包括:申請人、部門領(lǐng)導(dǎo)、車管處調(diào)度管理員和車管處領(lǐng)導(dǎo)。用戶角色和工作流狀態(tài)之間的關(guān)系:當申請?zhí)幱凇俺蕡蟛块T領(lǐng)導(dǎo)審批”狀態(tài)時,部門領(lǐng)導(dǎo)負責審批此申請;當申請?zhí)幱凇俺蕡筌嚬芴幷{(diào)度管理員”狀態(tài)時,車管處調(diào)度管理員負責審批此申請;當申請?zhí)幱凇俺蕡筌嚬芴庮I(lǐng)導(dǎo)”狀態(tài)時,車管處領(lǐng)導(dǎo)負責審批此申請;當申請?zhí)幱凇爸匦律暾垺睜顟B(tài)時,申請人負責此申請;當申請?zhí)幱凇鞍才懦鲕嚒睜顟B(tài)時,車管處調(diào)度管理員負責此申請。用車審批工作流的狀態(tài)轉(zhuǎn)換如圖3。
圖3 用車審批工作流的狀態(tài)轉(zhuǎn)換
圖4 維修審批工作流的狀態(tài)轉(zhuǎn)換
維修審批工作流的狀態(tài)包括:呈報部門領(lǐng)導(dǎo)審批、呈報車管處領(lǐng)導(dǎo)審批、拒絕、取消、重新申請和送修。用戶角色包括:申請人、部門領(lǐng)導(dǎo)、車管處領(lǐng)導(dǎo)和車管處助理管理員。用戶角色和工作流狀態(tài)之間的關(guān)系:當申請?zhí)幱凇俺蕡蟛块T領(lǐng)導(dǎo)審批”狀態(tài)時,部門領(lǐng)導(dǎo)負責審批此申請;當申請?zhí)幱凇俺蕡筌嚬芴庮I(lǐng)導(dǎo)審批”狀態(tài)時,車管處領(lǐng)導(dǎo)負責審批此申請;當申請?zhí)幱凇爸匦律暾垺睍r,申請人負責此申請;當申請?zhí)幱凇八托蕖睜顟B(tài)時,車管處助理管理員負責此申請。維修審批工作流的狀態(tài)轉(zhuǎn)換如圖4。
ASP.NET是Microsoft公司推出的新一代Web應(yīng)用開發(fā)模型,是目前最流行的一種建立動態(tài)Web應(yīng)用程序的技術(shù)。本項目采用Visual C#語言作為ASP.NET Web應(yīng)用程序開發(fā)語言,以Microsoft Vis-ual Studio 2008和.NET Framework 3.5為開發(fā)工具,后臺數(shù)據(jù)庫采用SQL Server Express 2005。系統(tǒng)運行在IIS Web服務(wù)器上,并訪問后端Microsoft SQL Server服務(wù)器??蛻舳丝赏ㄟ^Internet Explorer瀏覽器訪問系統(tǒng)。圖5和圖6是本項目在上述平臺上實現(xiàn)的車輛管理系統(tǒng)的部分界面。
圖5 用車申請的人機界面
圖6 用車審批的人機界面
車輛管理是很多企事業(yè)單位日常管理的重要內(nèi)容。本文以某車輛管理部門為例,深入分析了用戶的業(yè)務(wù)流程需求,并在此基礎(chǔ)上,提出并實現(xiàn)了基于工作流技術(shù)的車輛管理系統(tǒng)。該系統(tǒng)采用基于.NET框架的三層體系結(jié)構(gòu),即將系統(tǒng)劃分為數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層和用戶接口層,提高了系統(tǒng)的可伸縮性、擴展性和可維護性。同時采用基于角色的訪問控制模型,不同角色的用戶登錄系統(tǒng)后,僅可執(zhí)行該角色所賦予的功能,不僅提高了系統(tǒng)的易用性,而且提高了系統(tǒng)的安全性?;诠ぷ髁骷夹g(shù)的用車審批和維修審批,不僅使流程應(yīng)用者能方便地參與審批的全過程,了解審批的進度,而且節(jié)約辦公成本,提高了辦事效率,也為今后應(yīng)對業(yè)務(wù)流程的變化提供了快速修改軟件系統(tǒng)的可能性。該系統(tǒng)的成功應(yīng)用,既提高了車管部門的信息化水平,同時也為其它業(yè)務(wù)審批系統(tǒng)提供了借鑒和經(jīng)驗。
[1] 馮玉林,趙寶華.軟件工程——方法、工具和實踐[M].合肥:中國科技大學出版社.
[2] 高晉生,郭連水.基于工作流技術(shù)的管理信息系統(tǒng)研究與開發(fā)[J].計算機與數(shù)字工程,2005,33(6):41-44.
[3] 羅凌.基于.NET組件的車輛調(diào)度系統(tǒng)[J].計算機工程,2008,34(11):275-277.
[4] 汪厚祥,李卉.基于角色的訪問控制研究[J].計算機應(yīng)用研究,2005(4):125-127.
[5] 劉鈺紅,趙麒.基于.net三層架構(gòu)技術(shù)的在線稿件管理系統(tǒng)的設(shè)計與實現(xiàn)[J].南昌大學學報:理科版,2008,32(6):596-600.