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