張 斌,張達(dá)敏,曾 成
(貴州大學(xué) 大數(shù)據(jù)與信息工程學(xué)院,貴州 貴陽(yáng) 550025)
?
基于Spring MVC的公共設(shè)施巡查系統(tǒng)設(shè)計(jì)
張斌,張達(dá)敏,曾成
(貴州大學(xué) 大數(shù)據(jù)與信息工程學(xué)院,貴州 貴陽(yáng)550025)
摘要針對(duì)公共設(shè)施出現(xiàn)異常而無(wú)法及時(shí)發(fā)現(xiàn)處理的問(wèn)題,研究開(kāi)發(fā)了基于Spring MVC技術(shù)的公共設(shè)施巡查系統(tǒng)。系統(tǒng)采用分層開(kāi)發(fā)的方法,下層作為服務(wù)的提供者,上層作為服務(wù)的使用者。層次劃分遵循"層內(nèi)高內(nèi)聚,層間松耦合"的思想。介紹了系統(tǒng)的功能和組成。通過(guò)對(duì)該系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn),可以實(shí)現(xiàn)公共設(shè)施異常早發(fā)現(xiàn)、早解決的要求,確保公共設(shè)施的正常運(yùn)轉(zhuǎn)。
關(guān)鍵詞巡查系統(tǒng);Spring MVC技術(shù);異常;SOA體系
公共設(shè)施是否健全直接反映了一個(gè)地區(qū)經(jīng)濟(jì)發(fā)展程度的快慢,而公共設(shè)施是否完好則能夠反映出這個(gè)城市的文明程度與公民素質(zhì)的高低,因此保證城市公共設(shè)施的健全具有重要意義。然而由于各種原因,眾多城市公共設(shè)施均遭到了不同程度的破壞。為實(shí)現(xiàn)公共設(shè)施異常的早發(fā)現(xiàn)、早解決,確保公共設(shè)施正常運(yùn)轉(zhuǎn)的要求,設(shè)計(jì)開(kāi)發(fā)一套公共設(shè)施巡檢系統(tǒng),提升公共設(shè)施巡查工作的智能化水平就顯得尤為必要。通過(guò)公共設(shè)施巡檢系統(tǒng)的開(kāi)發(fā)設(shè)計(jì),可實(shí)現(xiàn)公共設(shè)施異常早發(fā)現(xiàn)、早解決的問(wèn)題。這對(duì)于確保公共設(shè)施的正常運(yùn)轉(zhuǎn),降低發(fā)生事故的可能性,具有重要的作用。
1Spring MVC
通常情況下,企業(yè)輕量級(jí)的開(kāi)發(fā)通常用SSH(Spring+Struts2+Hibernate)框架進(jìn)行開(kāi)發(fā)[1],在使用該框架進(jìn)行設(shè)計(jì)時(shí)通常在表示層體現(xiàn)MVC的開(kāi)發(fā)思想。MVC即模型(Model)、視圖(View)、控制器(Controller)[2-3]。而SpringMVC本身就是MVC框架的體現(xiàn),在一般的系統(tǒng)開(kāi)發(fā)中可實(shí)現(xiàn)Hibernate與Struts的功能,其實(shí)現(xiàn)了模型、控制器、視圖三者之間的分離。視圖層負(fù)責(zé)將數(shù)據(jù)轉(zhuǎn)換成用戶可接受的頁(yè)面;控制器可讀取和發(fā)送數(shù)據(jù)以及實(shí)現(xiàn)業(yè)務(wù)邏輯,主要是和模型與視圖建立聯(lián)系;模型層則是將數(shù)據(jù)統(tǒng)一管理。
Spring MVC的框架[4]如圖1所示。
圖1 Spring MVC 框架圖
其工作原理是[5]:用戶在瀏覽器上進(jìn)行的一系列操作會(huì)以請(qǐng)求的形式提交到DispatcherServlet(前置控制器),然后DispatcherServlet控制器會(huì)負(fù)責(zé)查詢HandlerMapping(處理器映射),并找到相應(yīng)的處理請(qǐng)求的Controller(控制器);DispatcherServlet再將請(qǐng)求提交到對(duì)應(yīng)的Controller,并由Controller調(diào)用業(yè)務(wù)邏輯處理后返回ModelAndView(模型與視圖);DispatcherServlet通過(guò)查詢一個(gè)或多個(gè)ViewResoer視圖解析器,找到ModelAndView指定的視圖。最后由視圖負(fù)責(zé)將結(jié)果顯示到客戶端。
2公共設(shè)施巡查系統(tǒng)設(shè)計(jì)方案
2.1系統(tǒng)組成
為高效、高質(zhì)量地解決公共設(shè)施的異常問(wèn)題,本文采用面向服務(wù)的SOA體系,用戶可直接從服務(wù)提供者那里得到自身想要解決的問(wèn)題。系統(tǒng)主要由4部分組成,分別為管理員模塊、用戶模塊、服務(wù)臺(tái)模塊和技術(shù)部模塊。這4個(gè)模塊的工作流程如圖2所示。
圖2 系統(tǒng)組成
各模塊的功能描述如下:
用戶模塊。該模塊的主要功能是對(duì)公共設(shè)施的異常情況進(jìn)行上報(bào)。用戶通過(guò)手持終端設(shè)備上報(bào)異常時(shí)可選擇使用圖片、文字或者兩者結(jié)合的方式。
服務(wù)臺(tái)模塊。該模塊主要功能是進(jìn)行異常的分派。首先,服務(wù)臺(tái)人員根據(jù)客戶提交的信息進(jìn)行預(yù)覽并查詢?cè)搯?wèn)題所處的狀態(tài)(未處理、已處理)。對(duì)于已處理但未進(jìn)行狀態(tài)更新的則可直接反饋給用戶;若問(wèn)題未處理,則服務(wù)臺(tái)人員可將用戶的問(wèn)題按優(yōu)先級(jí)進(jìn)行分類,然后將異常分派給相應(yīng)的技術(shù)部門進(jìn)行處理。在問(wèn)題得到處理后可進(jìn)行回訪,并將異常關(guān)閉。
技術(shù)部模塊。該模塊主要功能是異常的解決,根據(jù)客服人員分派的任務(wù)類別派出相應(yīng)的工程師去解決問(wèn)題,問(wèn)題解決后反饋給服務(wù)臺(tái)。
管理員模塊。該模塊的主要功能是對(duì)數(shù)據(jù)庫(kù)的管理以及對(duì)系統(tǒng)進(jìn)行維護(hù)。例如對(duì)部門和人員的信息管理,可增加、修改或者刪除用戶的信息;另外客服人員和工程師的流動(dòng)情況,離職或者增加員工時(shí),可對(duì)數(shù)據(jù)庫(kù)信息進(jìn)行修改。管理員模塊還可將異常問(wèn)題產(chǎn)生的原因及解決辦法記入數(shù)據(jù)庫(kù),以方便以后進(jìn)行查詢。
2.2系統(tǒng)的整體設(shè)計(jì)
本文的總體方案建立在Eclipse 面向 J2EE 3層模型的開(kāi)發(fā)平臺(tái)[6-7]、B/S 架構(gòu)[8](瀏覽器/服務(wù)器)和SpringMVC 設(shè)計(jì)模式的基礎(chǔ)上。
系統(tǒng)主要分為3層,分別是表示層、控制層和模型層。其中表示層通過(guò)瀏覽器給用戶呈現(xiàn)所要了解的信息,主要是一些采用 JSP 開(kāi)發(fā)的Web 頁(yè)面;控制層主要是對(duì)一些具體的問(wèn)題進(jìn)行處理,也就是直接對(duì)數(shù)據(jù)進(jìn)行一些管理,實(shí)現(xiàn)系統(tǒng)業(yè)務(wù)邏輯;模型層是控制層的數(shù)據(jù)支撐,主要是一些底層數(shù)據(jù)庫(kù)[9]。
系統(tǒng)的工作流程是:用戶在瀏覽器的Web頁(yè)面上進(jìn)行的一系列操作,會(huì)通過(guò)表示層以消息的形式傳遞給控制層。由于控制層主要是實(shí)現(xiàn)業(yè)務(wù)邏輯的,所以控制層可連接表示層和模型層??刂茖訉谋硎緦拥玫降挠脩舨僮鬟M(jìn)行相應(yīng)解析,從而分析出用戶操作所對(duì)應(yīng)的數(shù)據(jù)對(duì)象。然后控制層會(huì)根據(jù)這些業(yè)務(wù)邏輯關(guān)系來(lái)查詢模型層中的數(shù)據(jù)庫(kù),從而得到用戶的數(shù)據(jù)對(duì)象。模型層可對(duì)這些數(shù)據(jù)對(duì)象進(jìn)行一系列調(diào)整,以便消息的傳送。模型層再把調(diào)整后的結(jié)果返回給控制層,控制層根據(jù)得到的數(shù)據(jù)來(lái)對(duì)表示層的Web頁(yè)面進(jìn)行相應(yīng)的調(diào)整,從而將用戶所要了解的信息在Web頁(yè)面上顯示出來(lái)。
本文在系統(tǒng)整體設(shè)計(jì)的基礎(chǔ)上,分別從表示層、控制層和模型層對(duì)系統(tǒng)的設(shè)計(jì)方法進(jìn)行描述[10],從而使得該系統(tǒng)的功能結(jié)構(gòu)更加清晰。其設(shè)計(jì)巡查系統(tǒng)架構(gòu)如圖3所示。
(1)表示層(View)。是應(yīng)用程序的外在表現(xiàn),是系統(tǒng)與用戶進(jìn)行信息交換的媒介。其主要是一些JSP頁(yè)面,通過(guò)用戶可直觀的了解自身需要的信息。這些JSP頁(yè)面主要由HTML及JSP標(biāo)簽和嵌入其中的Java腳本代碼組成,并以*.jsp作為頁(yè)面文件的擴(kuò)展名。JSP引擎通過(guò)執(zhí)行JSP對(duì)應(yīng)的Servlet程序代碼,包括創(chuàng)建Servlet對(duì)象實(shí)例,調(diào)用jspInit()、jspService()等方法。最后完成對(duì)瀏覽器頁(yè)面的請(qǐng)求處理、并向?yàn)g覽器輸出處理后的信息結(jié)果;
(2)控制層(Controller)。主要由異常上報(bào)、異常分派、處理關(guān)閉、人員管理、部門管理等幾部分組成,具體如圖3所示。
Controller可看做是系統(tǒng)的核心,通常情況是由Servelet組成,Servelet可視為控制器,管理訪問(wèn)服務(wù)器端資源和客戶機(jī)端的請(qǐng)求。Control Servlet主要從Http Servlet繼承,實(shí)現(xiàn)Init()、doPost()、doGet()、processRequest()等方法。doPost()和 doGet()用于接收用戶請(qǐng)求,并交由 processRequest()方法進(jìn)行統(tǒng)一處理;
圖3 巡查系統(tǒng)架構(gòu)
(3)模型層(Model)。主要包括一些數(shù)據(jù)庫(kù)如異常信息庫(kù)、人員庫(kù)、部門庫(kù)、公共設(shè)施庫(kù)等和一些起支撐作用的組件如權(quán)限管理、認(rèn)證管理、參數(shù)管理等。除此之外模型層中的核心架構(gòu)部分在整個(gè)系統(tǒng)中的作用至關(guān)重要,特別是服務(wù)總線,其是總體架構(gòu)的核心部分,貫穿于架構(gòu)的數(shù)據(jù)層、應(yīng)用層和表示層,各層提供的服務(wù)都通過(guò)服務(wù)的統(tǒng)一管理進(jìn)行服務(wù)的發(fā)布注冊(cè)和監(jiān)控管理,各層對(duì)其他層服務(wù)的調(diào)用都通過(guò)服務(wù)總線進(jìn)行發(fā)現(xiàn)、綁定和調(diào)用,模型層的組成如圖3所示。
當(dāng)管理員對(duì)系統(tǒng)信息進(jìn)行維護(hù)時(shí)要頻繁的對(duì)數(shù)據(jù)可進(jìn)行訪問(wèn),這樣會(huì)增加系統(tǒng)負(fù)擔(dān),使系統(tǒng)運(yùn)行效率下降。為有效地保存數(shù)據(jù),在設(shè)計(jì)時(shí)使用MySQL數(shù)據(jù)庫(kù)來(lái)有效的存儲(chǔ)數(shù)據(jù)。為避免管理員對(duì)系統(tǒng)頻繁訪問(wèn)帶來(lái)的諸多問(wèn)題,本文采用JDBC連接池技術(shù)對(duì)系統(tǒng)進(jìn)行優(yōu)化,提高運(yùn)行效率[11-12]。數(shù)據(jù)庫(kù)與驅(qū)動(dòng)程序建立連接時(shí),可由DriverManager來(lái)查找數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序,DriverManage還可根據(jù)數(shù)據(jù)庫(kù)的URL、用戶名和密碼來(lái)創(chuàng)建數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)對(duì)象JDBC Connection。當(dāng)數(shù)據(jù)庫(kù)建立完成之后,便可用JSP連接MySQL,從而獲得所需的數(shù)據(jù)信息。
3系統(tǒng)測(cè)試
3.1手機(jī)終端測(cè)試
系統(tǒng)的一般用戶通過(guò)手機(jī)終端向服務(wù)臺(tái)發(fā)送服務(wù)請(qǐng)求,服務(wù)臺(tái)根據(jù)用戶的請(qǐng)求進(jìn)行事件的處理。為檢驗(yàn)用戶發(fā)送服務(wù)請(qǐng)求的功能是否可用,在測(cè)試時(shí)用手機(jī)終端向服務(wù)臺(tái)發(fā)送請(qǐng)求,請(qǐng)求發(fā)送之后在手機(jī)界面會(huì)有相應(yīng)的顯示。因手機(jī)界面的限制,只選取其中的5次進(jìn)行說(shuō)明,用戶請(qǐng)求信息列表界面如圖4(a)所示??煽吹接脩舭l(fā)送的全部請(qǐng)求均可在用戶界面上顯示出來(lái),另外通過(guò)“雙擊”具體的請(qǐng)求則可顯示出用戶請(qǐng)求的詳細(xì)信息,如圖4(b)所示。
經(jīng)檢驗(yàn)發(fā)現(xiàn),手機(jī)客戶端用戶發(fā)送請(qǐng)求的功能得以實(shí)現(xiàn)。
圖4 用戶信息發(fā)布界面
3.2服務(wù)端測(cè)試
因服務(wù)端主要由服務(wù)臺(tái)、技術(shù)部和管理部3個(gè)模塊組成,三者之間有較大的相似性,在進(jìn)行測(cè)試時(shí),主要以服務(wù)臺(tái)模塊為重點(diǎn)來(lái)進(jìn)行檢測(cè)。
當(dāng)用戶的請(qǐng)求發(fā)送后,首先會(huì)在服務(wù)臺(tái)“未分派”處顯示出來(lái),如圖5所示。此時(shí)客服人員可將信息進(jìn)行分派、初步處理或關(guān)閉。當(dāng)客服將信息進(jìn)行分派并將其關(guān)閉后便可在“已關(guān)閉”處顯示客服已經(jīng)處理過(guò)的用戶請(qǐng)求,如圖6所示。在客服處理過(guò)的用戶請(qǐng)求列表處,通過(guò)“雙擊”任意一條用戶請(qǐng)求,不僅可了解到用戶請(qǐng)求的具體信息,還可獲得客服對(duì)該信息的處理過(guò)程與處理時(shí)間,如圖7所示。
通過(guò)對(duì)系統(tǒng)檢測(cè)可知,服務(wù)端的功能完全可實(shí)現(xiàn)。
圖5 未分派信息顯示
圖6 已關(guān)閉信息顯示
圖7 處理信息顯示
在系統(tǒng)的設(shè)計(jì)過(guò)程中用到的圖表眾多,為了驗(yàn)證系統(tǒng)的可靠性,只選取其中最典型的一個(gè)圖表來(lái)進(jìn)行說(shuō)明。該圖標(biāo)可將接收的業(yè)務(wù)量的詳細(xì)信息全部顯示出來(lái)。通過(guò)手機(jī)終端向服務(wù)端發(fā)送近70條請(qǐng)求,在網(wǎng)絡(luò)穩(wěn)定的情況下,所有請(qǐng)求全部發(fā)送成功,并在圖8所示的表中按時(shí)間順序顯示出來(lái)。
圖8 系統(tǒng)可靠性檢測(cè)圖
通過(guò)以上的驗(yàn)證可知,利用SpringMVC技術(shù)對(duì)系統(tǒng)進(jìn)行設(shè)計(jì),不僅可以實(shí)現(xiàn)系統(tǒng)所應(yīng)有的功能,而且可以保證系統(tǒng)的可靠性。另外在設(shè)計(jì)的過(guò)程中可發(fā)現(xiàn)利用MVC技術(shù)能提高系統(tǒng)開(kāi)發(fā)的效率,還可降低代碼的耦合度,提高代碼的復(fù)用率。本文設(shè)計(jì)的巡查系統(tǒng)不僅操作簡(jiǎn)單方便,且使得系統(tǒng)在進(jìn)行異常的上報(bào)、分派、處理、回訪、關(guān)閉等環(huán)節(jié)能高效穩(wěn)定的運(yùn)行。
4結(jié)束語(yǔ)
本系統(tǒng)以Eclipse為開(kāi)發(fā)平臺(tái),在系統(tǒng)的實(shí)現(xiàn)方式上選用B/S架構(gòu),在設(shè)計(jì)模式上采用MVC設(shè)計(jì)模式。通過(guò)對(duì)系統(tǒng)的組成和系統(tǒng)各模塊功能的描述,詳細(xì)介紹了公共設(shè)施巡查系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。系統(tǒng)基于Spring MVC模式開(kāi)發(fā),從而保證了系統(tǒng)訪問(wèn)和后臺(tái)維護(hù)的實(shí)用性。通過(guò)對(duì)該系統(tǒng)的研究與設(shè)計(jì),證明了SpringMVC在系統(tǒng)設(shè)計(jì)中靈活性高、可擴(kuò)展性強(qiáng)的優(yōu)點(diǎn)。當(dāng)然該系統(tǒng)還存在一些缺陷,針對(duì)不足之處,在后續(xù)工作中會(huì)對(duì)其進(jìn)行進(jìn)一步的完善與發(fā)展,以使系統(tǒng)功能更加完善。
參考文獻(xiàn)
[1]鄧子云,羅濤,黃友森,等.基于Struts2+Hibernate3+Spring2的物流數(shù)據(jù)交換平臺(tái)[J].計(jì)算機(jī)應(yīng)用與軟件,2009,26(10):88-100.
[2]王映輝,王英杰,王彥君,等.基于MVC的軟件界面體系結(jié)構(gòu)研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2004,21(9):188-190,193.
[3]趙偉,王志華,周兵.基于MVC的e-ERP系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2013,30(2):106-109.
[4]劉玲.基于Spring MVC的旅游電子商務(wù)平臺(tái)搭建[D].上海:復(fù)旦大學(xué),2009.
[5]薛峰,梁鋒,徐書勛,等.基于Spring MVC框架的Web研究與應(yīng)用[J].合肥業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2012,35(3):337-340.
[6]曹鳴鵬,趙偉,許林英.J2EE技術(shù)及其實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2001,21(10):20-23.
[7]Askar S Boranbayev.Defining methodologies for developing J2EE web-based information systems[J].Nonlinear Analysis,2009,71(12):1633-1637.
[8]孫柏松.Spring MVC設(shè)計(jì)模式和Eclipse在B/S架構(gòu)電子商城交易系統(tǒng)中的研究[D].北京:中國(guó)地質(zhì)大學(xué),2010.
[9]馮潤(rùn)民.基于SSH的高校學(xué)生管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2009,35(6):280-282.
[10]張宇,王映輝,張翔南.基于Spring的MVC框架設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2010,36(4):59-62.
[11]張俐,張維璽.改進(jìn)的JDBC框架在數(shù)據(jù)持久層的應(yīng)用[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(8):1746-1749.
[12]羅榮,唐學(xué)兵.基于JDBC的數(shù)據(jù)庫(kù)連接池的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2004,30(9):92-94.
Design of Public Facilities Patrol System Based on Spring MVC
ZHANG Bin,ZHANG Damin,ZENG Cheng
(College of Big Data and Information Engineering,Guizhou University,Guiyang 550025,China)
AbstractA mobile public facilities patrol system based on Spring MVC is developed by hierarchical method for timely disposal of faulty public facilities.In this system,the lower level is considered as a service provider and the upper as service users.The hierarchical division follows the principle that low coupling in layers and high cohesion between layers.The function and composition of this system are introduced in detail.The system realizes early discovery and disposal of abnormal public facilities.
Keywordspatrol system;Spring MVC;abnormal;SOA system
doi:10.16180/j.cnki.issn1007-7820.2016.05.039
收稿日期:2015-09-17
基金項(xiàng)目:黔科合計(jì)省合基金資助項(xiàng)目([2014]7002號(hào));貴州省合作計(jì)劃基金資助項(xiàng)目([2012]7002號(hào));貴州大學(xué)研究生創(chuàng)新基金資助項(xiàng)目(研理工2015078)
作者簡(jiǎn)介:張斌(1990—),男,碩士研究生。研究方向:計(jì)算機(jī)應(yīng)用技術(shù)。張達(dá)敏(1967—),男,博士,教授,碩士生導(dǎo)師。研究方向:計(jì)算機(jī)應(yīng)用技術(shù)等。
中圖分類號(hào)TP302
文獻(xiàn)標(biāo)識(shí)碼A
文章編號(hào)1007-7820(2016)05-145-04