王 庚
(遼寧邊防總隊營口邊防檢查站八級工程師,遼寧營口,115000)
我國邊防檢查機關(guān)隸屬于國家公安部,是人民警察的一個警種,其職責(zé)主要是對出入境人員及其攜帶的行李物品、交通運輸工具、以及載運貨物等進(jìn)行檢查與監(jiān)護(hù),嚴(yán)厲打擊各種違反國家出入境和邊防檢查法律、法規(guī)的犯罪活動?;贛VC模式的邊檢遠(yuǎn)程監(jiān)控系統(tǒng)可以幫助邊檢人員對其檢查范圍進(jìn)行全天候的監(jiān)控管理,同時還可以使邊檢內(nèi)網(wǎng)其他管理領(lǐng)導(dǎo)進(jìn)行遠(yuǎn)程實時觀看與指導(dǎo),并操作監(jiān)控系統(tǒng)。
MVC模式是“Model—view--Controller”的縮寫,即“模式--視圖--控制器”,它是一種通用化的設(shè)計框架模式,每個程序包含輸入、輸出和邏輯執(zhí)行控制部分,MVC模式中,模式、視圖、控制器各自承擔(dān)不同的任務(wù):
(1)模型:持有所有的數(shù)據(jù)、狀態(tài)和程序邏輯,它獨立于視圖和控制器。
(2)視圖:用來呈現(xiàn)模型,它通常直接從模型中取得它需要顯示的狀態(tài)與數(shù)據(jù),對于相同的信息可以有多個不同的顯示形式或視圖。
(3)控制器:位于視圖和模型中間,負(fù)責(zé)接受用戶的輸入,將輸入進(jìn)行解析并反饋給模型,通常一個視圖具有一個控制器。
MVC模式實現(xiàn)了模型和視圖的分離,其優(yōu)勢主要體現(xiàn)在三點:一是模型提供的視圖表現(xiàn)形式可以是多種的,同時還可以為某一模型創(chuàng)建新的視圖,但是并不用進(jìn)行模型重寫。當(dāng)模型數(shù)據(jù)變化時,模型可以通知有關(guān)視圖,并使其進(jìn)行刷新。二是模型可復(fù)用,由于模型與視圖之間是相互獨立的,所以可將模型在新的平臺中進(jìn)行獨立移植。三是提高了開發(fā)效率。在開發(fā)界面顯示部分時,僅需要考慮如何布局一個好的用戶界面;開發(fā)模型時,僅需要考慮業(yè)務(wù)邏輯和數(shù)據(jù)維護(hù),這樣能使開發(fā)者專注于某一方面的開發(fā),提高開發(fā)效率。MVC組件類型關(guān)系如圖1所示:
圖1 MVC組件類型關(guān)系
在系統(tǒng)設(shè)計過程中,首先要進(jìn)行架構(gòu)設(shè)計,架構(gòu)設(shè)計對于系統(tǒng)的實現(xiàn)具有很大的指導(dǎo)意義,要做好系統(tǒng)架構(gòu)并非易事,應(yīng)在熟練掌握設(shè)計模式的基礎(chǔ)上,進(jìn)行相應(yīng)的項目驗證。架構(gòu)設(shè)計是骨架,設(shè)計模式是支撐架構(gòu)的重要組件。本研究結(jié)合邊防檢查站遠(yuǎn)程監(jiān)控系統(tǒng)實際需求,以及系統(tǒng)需求的實現(xiàn)方式,提出基于MVC模式的Struts架構(gòu),并運用Hibernate數(shù)據(jù)持久化技術(shù)進(jìn)行有效的數(shù)據(jù)處理。將整個系統(tǒng)分成五個層次,即View層、Model層、Controller層、數(shù)據(jù)持久層以及數(shù)據(jù)庫層。其中,前三層是MVC結(jié)構(gòu)的經(jīng)典模型,而Struts在Model模型的基礎(chǔ)上進(jìn)行了一定的改進(jìn),進(jìn)一步完善了MVC模式,Struts各層為:
(1)V(視圖層):包含JSP頁面和Action FormBean,所有的JSP頁面都屬于View層范圍,借助于發(fā)送與接受請求命令,View層將所需內(nèi)容呈現(xiàn)到工作人員的瀏覽器上。
(2)C(控制層):包含Actionservlet類和Action類,主要用來對JSP頁面和Model層發(fā)出的請求進(jìn)行邏輯分配,并指定對其進(jìn)行處理的Action對象。
(3)M(模型層):表示一個應(yīng)用程序的數(shù)據(jù)并且包含訪問和管理這些數(shù)據(jù)的業(yè)務(wù)邏輯,本系統(tǒng)的相關(guān)業(yè)務(wù)邏輯均在此層中。
系統(tǒng)配置映射信息全部在特定的XML文件struts-config.xml中進(jìn)行存儲,在內(nèi)存中,每一個Action元素都與一個相應(yīng)的Action Mapping類實例進(jìn)行對應(yīng),運用Struts框架的Web應(yīng)用,在Web應(yīng)用啟動時就會加載并初始化Actionservlet,Actionservlet在接收到請求之后,會對與該請求相匹配的Action Mapping實例進(jìn)行檢索,并根據(jù)Action Mapping實例包含的映射信息來確定將請求轉(zhuǎn)發(fā)送到相應(yīng)的Action。
Hibernate數(shù)據(jù)持久層對數(shù)據(jù)封裝的實現(xiàn)方法為:首先,讀取指定的Hibernate配置文件Hibernate Config.xml,創(chuàng)建Session Factory實例。然后以Model層發(fā)出的請求為依據(jù)創(chuàng)建Session實例,并通過該實例對數(shù)據(jù)執(zhí)行保存、更新、刪除、加載和查詢持久化對象操作,創(chuàng)建Transaction實例,進(jìn)行事務(wù)管理,通過創(chuàng)建的Query或Criteria實例實現(xiàn)數(shù)據(jù)查詢。
數(shù)據(jù)庫設(shè)計是整個系統(tǒng)設(shè)計十分重要的環(huán)節(jié),數(shù)據(jù)庫是實現(xiàn)監(jiān)控數(shù)據(jù)管理的核心,數(shù)據(jù)庫設(shè)計的優(yōu)劣將對整個監(jiān)控管理系統(tǒng)建設(shè)的成敗造成最直接的影響。一個好的數(shù)據(jù)庫系統(tǒng)設(shè)計既能夠?qū)崿F(xiàn)對系統(tǒng)監(jiān)控數(shù)據(jù)的有效管理,同時也為程序代碼的編寫提供便利。對此,本研究中MVC模式下的邊防檢查站遠(yuǎn)程監(jiān)控管理系統(tǒng)的數(shù)據(jù)庫設(shè)計,本著操作便捷,支持Hibernate數(shù)據(jù)持久化技術(shù)的原則,盡量按照三大范式的要求進(jìn)行設(shè)計。本系統(tǒng)的數(shù)據(jù)庫由若干個基礎(chǔ)表組成,在盡量不產(chǎn)生數(shù)據(jù)冗余的前提下,通過DAO類和數(shù)據(jù)處理模塊進(jìn)行邏輯整合,從而更有利于進(jìn)行于Hibernate類的封裝,同時實現(xiàn)了數(shù)據(jù)庫視圖關(guān)系的簡化。
本系統(tǒng)需要實現(xiàn)以下六項功能:(1)用戶管理:主要是進(jìn)行用戶注冊、查詢、增加刪除,設(shè)置對系統(tǒng)的訪問權(quán)限等;(2)設(shè)備管理:增加、刪除、修改設(shè)備屬性、查詢設(shè)備和啟/停用設(shè)備,對設(shè)備進(jìn)行統(tǒng)一登記與管理;(3)安全管理:實現(xiàn)認(rèn)證機制,數(shù)據(jù)、網(wǎng)絡(luò)、設(shè)備及系統(tǒng)安全;(4)業(yè)務(wù)管理:完成與業(yè)務(wù)相關(guān)的各項管理工作,如前端管理、客戶端管理、用戶管理、權(quán)限設(shè)置等,從而實現(xiàn)對監(jiān)控平臺中的各個站點和用戶的管理及用戶權(quán)限的分配等;(5)權(quán)限管理:對系統(tǒng)的管理,攝像機、視頻瀏覽器的遠(yuǎn)程控制,以及錄像的刪除、復(fù)制、瀏覽等操作行為進(jìn)行權(quán)限設(shè)置,權(quán)限可以被賦予,也可以被收回;(6)認(rèn)證功能:使用戶通過身份認(rèn)證及授權(quán)后方可使用遠(yuǎn)程監(jiān)控平臺進(jìn)行瀏覽。
綜上所述,邊防檢查工作作為國家出入境管理體系的重要環(huán)節(jié),作為執(zhí)行國家出入境檢查職能的一項專門工作,對于國家治安秩序的維護(hù)及人民的安全具有重要意義。本文中的MVC模式下的邊防檢查站遠(yuǎn)程監(jiān)控管理系統(tǒng),結(jié)合了MVC模式的優(yōu)勢及遠(yuǎn)程監(jiān)控系統(tǒng)成熟的設(shè)計經(jīng)驗而設(shè)計,可以幫助邊檢人員更好的執(zhí)行邊檢任務(wù),對邊檢范圍進(jìn)行全方位、全天候的監(jiān)控。
[1]林莉,李兆萬.基于3S技術(shù)的邊防檢查監(jiān)管系統(tǒng)及船舶出入境服務(wù)平臺[J].廣東科技,2011,14:66-68.
[2]周楠.上海機場出入境邊防檢查站服務(wù)體系建設(shè)研究[D].華東理工大學(xué),2013.
[3]曾志宏.MVC模式下企業(yè)遠(yuǎn)程監(jiān)控管理系統(tǒng)的設(shè)計[J].子技術(shù)與軟件工程,2013,24:78.