■ 文/公安部第一研究所 年福星 王毅
隨著網(wǎng)絡(luò)應(yīng)用的快速增加,MVC模式至今已被廣泛使用,并被推薦為公司平臺(tái)的設(shè)計(jì)模式,是非常先進(jìn)的Web應(yīng)用的開(kāi)發(fā)設(shè)計(jì)思想,受到越來(lái)越多的用戶和開(kāi)發(fā)者的歡迎。
隨著公安部社會(huì)公共安全產(chǎn)品行業(yè)綜合信息服務(wù)網(wǎng)(簡(jiǎn)稱公安部行業(yè)網(wǎng))需求的日益復(fù)雜,簡(jiǎn)單的分層己經(jīng)不能滿足種類繁多的商務(wù)應(yīng)用需要。以前的開(kāi)發(fā)模式,不僅開(kāi)發(fā)周期長(zhǎng),而且可維護(hù)性差,開(kāi)發(fā)和維護(hù)人員的工作量大。MVC模式將后臺(tái)模塊和業(yè)務(wù)邏輯完全隔離,能夠簡(jiǎn)化公安部行業(yè)網(wǎng)的系統(tǒng)開(kāi)發(fā)流程,提高開(kāi)發(fā)效率,降低維護(hù)成本。
MVC是一種軟件設(shè)計(jì)模式,它將復(fù)雜的Web應(yīng)用程序分成模型(Model)、視圖(View)和控制器(Controller)三個(gè)部分,使應(yīng)用程序的輸入、處理和輸出分開(kāi),從而實(shí)現(xiàn)Web應(yīng)用的職能分工。MVC模型結(jié)構(gòu)如圖1所示。
圖1 MVC模型結(jié)構(gòu)
視圖負(fù)責(zé)界面數(shù)據(jù)和用戶請(qǐng)求的采集和顯示,將接收到的模型處理結(jié)果顯示給用戶,一個(gè)模型可以對(duì)應(yīng)一個(gè)或者多個(gè)視圖??刂破魇悄P团c視圖的聯(lián)系紐帶,負(fù)責(zé)用戶請(qǐng)求的接收和轉(zhuǎn)發(fā)。模型封裝了系統(tǒng)的核心流程和業(yè)務(wù)規(guī)則,是MVC模式的核心,其接收來(lái)自視圖的用戶請(qǐng)求或數(shù)據(jù),并將處理結(jié)果返回給視圖。為滿足公安部行業(yè)網(wǎng)復(fù)雜的業(yè)務(wù)需求,技術(shù)架構(gòu)設(shè)計(jì)方面充分考慮了前瞻性、開(kāi)放性,針對(duì)未來(lái)可能情況預(yù)留了設(shè)計(jì)空間,滿足易于擴(kuò)展的需求,使之能適應(yīng)公安行業(yè)的變化。同時(shí)系統(tǒng)還考慮了實(shí)用性、可維護(hù)性,保證架構(gòu)的成熟和系統(tǒng)安全穩(wěn)定可靠,適應(yīng)公安行業(yè)管理應(yīng)用的復(fù)雜性和全面性需求。
根據(jù)MVC的設(shè)計(jì)思想,基于MVC設(shè)計(jì)公安部行業(yè)網(wǎng)主要工作是根據(jù)業(yè)務(wù)需求構(gòu)建MVC模型,將網(wǎng)站功能分離成模型層、視圖層和控制層。
目前在社會(huì)公共安全行業(yè),雖然已有一些相關(guān)的行業(yè)網(wǎng)站,但大部分只涉及到社會(huì)公共安全行業(yè)中的某一行業(yè),如安防、消防、警用裝備等,而面向整個(gè)社會(huì)公共安全行業(yè)的綜合性網(wǎng)站并不多。因此開(kāi)發(fā)公安部行業(yè)網(wǎng)的主要目的是為各級(jí)公安單位和廣大公共安全行業(yè)企事業(yè)單位全面細(xì)致地提供公安科技政策、科技成果、技術(shù)標(biāo)準(zhǔn)、檢測(cè)認(rèn)證、技術(shù)機(jī)構(gòu)等方面的信息查詢,以及新產(chǎn)品新技術(shù)專家評(píng)價(jià)、產(chǎn)品圖文報(bào)道、多媒體宣傳、業(yè)務(wù)技術(shù)培訓(xùn)、行業(yè)信息交流、招投標(biāo)信息介紹、基地產(chǎn)品展示等方面的信息服務(wù),服務(wù)范圍涉及警用裝備、安全防范、道路交通、刑事技術(shù)、警用通訊、信息安全、消防技術(shù)等公安領(lǐng)域。
通過(guò)對(duì)公安部行業(yè)網(wǎng)的用戶及相關(guān)管理工作人員的需求進(jìn)行深入溝通分析,總結(jié)出公安部行業(yè)網(wǎng)的主要功能為:
(1)網(wǎng)站前端功能。包括為社會(huì)公共全行業(yè)相關(guān)的企事業(yè)單位提供用戶登錄、資源檢索(如網(wǎng)員信息、標(biāo)準(zhǔn)信息、產(chǎn)品信息及政策法規(guī)的查詢檢索)、在線瀏覽(如電子雜志、視頻演示)、資料下載、在線互動(dòng)(如留言、點(diǎn)贊、轉(zhuǎn)發(fā)微信和微博)等功能。
(2)網(wǎng)站后端功能。包括為公安部行業(yè)網(wǎng)的管理人員提供上述功能板塊的后臺(tái)管理(如成果信息、政策法規(guī)等資源發(fā)布與更新)、權(quán)限管理(如角色管理、管理員管理)、網(wǎng)員管理(如續(xù)費(fèi)管理、網(wǎng)員等級(jí)、資質(zhì)管理)、后臺(tái)用戶視圖管理、字段的控制能力等功能。
根據(jù)MVC的設(shè)計(jì)思想,我們建立以下數(shù)學(xué)模型來(lái)表示公安部行業(yè)網(wǎng):
S=(M,V,C,R)
C=(C1,C2,……,Ci)
M=(M1,M2,……,Mj)
V=(V1,V2,……,Vk)
R=(R1,R2,……,Rl)
S表示公安部行業(yè)網(wǎng),M、V、C分別表示公安部行業(yè)網(wǎng)的模型、視圖和控制器,R則表示公安部行業(yè)網(wǎng)的用戶及相關(guān)管理工作人員的請(qǐng)求集合,R集合將M、V、C聯(lián)系成一個(gè)有機(jī)整體。
依照該數(shù)學(xué)模型,將公安部行業(yè)網(wǎng)的功能進(jìn)行分層,得到行業(yè)網(wǎng)的MVC軟件模型。
(1)模型層(M集合)包括所有數(shù)據(jù)庫(kù)以及對(duì)數(shù)據(jù)庫(kù)的邏輯處理,具體為數(shù)據(jù)庫(kù)的連接處理、數(shù)據(jù)檢索(包括資源檢索、數(shù)據(jù)查詢)邏輯以及數(shù)據(jù)更新(包括新資源導(dǎo)入、上傳、刪除、數(shù)據(jù)庫(kù)備份與恢復(fù)等)邏輯等。
(2)視圖層(V集合)包括直接與用戶(企業(yè)或行業(yè)網(wǎng)管理人員)交互的模塊。
(3)控制器層(C集合)包括所有控制流程,具體為用戶各種請(qǐng)求的接受處理并轉(zhuǎn)化為對(duì)相應(yīng)業(yè)務(wù)邏輯的控制,將業(yè)務(wù)邏輯的處理結(jié)果返回給相應(yīng)的頁(yè)面顯示的控制等。
基于MVC模式,我們對(duì)現(xiàn)有“公安部社會(huì)公共安全產(chǎn)品行業(yè)綜合信息服務(wù)網(wǎng)站”進(jìn)行改版升級(jí)。本文選擇了PHP語(yǔ)言作為研發(fā)工具,Mysql Server 5.3版本數(shù)據(jù)庫(kù)及Redis緩存數(shù)據(jù)庫(kù)。同步開(kāi)發(fā)了公安部行業(yè)網(wǎng)的網(wǎng)站,以及手機(jī)版和微信公眾號(hào),基于這個(gè)三個(gè)平臺(tái),充分提高公安部行業(yè)網(wǎng)用戶的粘性、互動(dòng)性、轉(zhuǎn)化率,有助于將網(wǎng)站打造為公共安全行業(yè)公安信息服務(wù)及應(yīng)用的品牌大平臺(tái)。公安部行業(yè)網(wǎng)的部分功能如圖2所示。
圖2 公安部行業(yè)網(wǎng)功能頁(yè)面
基于MVC模式開(kāi)發(fā)公安部行業(yè)網(wǎng),更好地實(shí)現(xiàn)了公安科技政策管理、行業(yè)動(dòng)態(tài)管理、科技成果管理、技術(shù)標(biāo)準(zhǔn)管理、網(wǎng)員信息查詢及繳費(fèi)管理、產(chǎn)品展示管理、招投標(biāo)信息管理、技術(shù)專題管理、基地展示管理、視頻演示管理、電子雜志管理、系統(tǒng)管理等功能。實(shí)現(xiàn)了系統(tǒng)開(kāi)發(fā)的預(yù)期目標(biāo),并增加了科技成果評(píng)價(jià)、科技查新、知識(shí)產(chǎn)權(quán)分析等信息服務(wù)應(yīng)用,滿足了各級(jí)公安單位及其所屬科研單位、科研院所、高校和廣大公共安全行業(yè)企事業(yè)單位的信息服務(wù)需求,加快了供需對(duì)接,更好地促進(jìn)了公安科技成果轉(zhuǎn)化推廣。
MVC模式將公安部行業(yè)網(wǎng)的數(shù)據(jù)層、業(yè)務(wù)邏輯處理層與數(shù)據(jù)表示層清晰分離,所以最終實(shí)現(xiàn)的公安部行業(yè)網(wǎng)具有更好的擴(kuò)展性和可維護(hù)性。另外,利用MVC模式還便于團(tuán)隊(duì)協(xié)作,提高設(shè)計(jì)文檔的編寫(xiě)能力,大大提高團(tuán)隊(duì)開(kāi)發(fā)效率。
[1]戴一平.MVC設(shè)計(jì)模式在PHP開(kāi)發(fā)中的應(yīng)用[J].計(jì)算機(jī)與現(xiàn)代化,2011(03):33-37,43.
[2]侯順亞. 基于MVC模式的電子商務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 東北財(cái)經(jīng)大學(xué), 2010.
[3]焦夢(mèng)姝, 劉波. 基于.NET的MVC網(wǎng)站多層架構(gòu)分析與設(shè)計(jì)[J]. 軟件, 2012, 33(11):14-17.
[4]李海峰.MVC模式架構(gòu)的應(yīng)用研究[J].自動(dòng)化與儀器儀表,2013(01):4-5,7.
[5]秦瑾若. 基于MVC模式的新聞發(fā)布與管理系統(tǒng)設(shè)計(jì)與分析[J]. 廣西民族大學(xué)學(xué)報(bào)(自然科學(xué)版), 2014, 20(1):79-83.