李志恒
(武漢郵電科學(xué)研究院湖北武漢430074)
基于MVC設(shè)計(jì)模式的運(yùn)維管理系統(tǒng)設(shè)計(jì)
李志恒
(武漢郵電科學(xué)研究院湖北武漢430074)
隨著我國信息化建設(shè)的快速發(fā)展,各個(gè)企事業(yè)單位對(duì)信息化的需求也不斷增加,傳統(tǒng)的人工運(yùn)維方式已滿足不了龐大、緊迫的業(yè)務(wù)需求。為了保障信息化服務(wù)長期、高效、穩(wěn)定的運(yùn)轉(zhuǎn),本文根據(jù)運(yùn)維行業(yè)現(xiàn)狀和管理流程,設(shè)計(jì)并實(shí)現(xiàn)了運(yùn)維管理系統(tǒng)。本文首先介紹了運(yùn)維管理系統(tǒng)的實(shí)現(xiàn)目標(biāo),然后給出了系統(tǒng)的架構(gòu)設(shè)計(jì)、模塊設(shè)計(jì),以及重點(diǎn)模塊的詳細(xì)設(shè)計(jì),并進(jìn)行了總結(jié)。系統(tǒng)基于MVC設(shè)計(jì)模式,使用Java語言進(jìn)行開發(fā)。實(shí)踐表明,該系統(tǒng)基本能夠滿足用戶需求。
信息化;運(yùn)維管理系統(tǒng);MVC;Java
運(yùn)維管理系統(tǒng)主要為通信系統(tǒng)的日常運(yùn)營及維護(hù)做支撐。其中,需要進(jìn)行管理的通信系統(tǒng)主要包括站點(diǎn)、分布式系統(tǒng)及鐵塔[1]。該系統(tǒng)能有效的提高運(yùn)維人員的工作效率,優(yōu)化工作方式,從而保證通信系統(tǒng)的正常運(yùn)行。
運(yùn)維管理系統(tǒng)旨在開發(fā)一個(gè)可以進(jìn)行通信系統(tǒng)設(shè)備資源管理;企業(yè)及運(yùn)維人員管理以及運(yùn)維任務(wù)的制定、下發(fā)、完成并能夠查看任務(wù)數(shù)據(jù)的系統(tǒng)[2]。將傳統(tǒng)通過紙質(zhì)文檔的運(yùn)維流程利用信息化手段讓通信系統(tǒng)的運(yùn)維工作更高效的運(yùn)行,達(dá)到優(yōu)化通信系統(tǒng)的目的,并且讓通信管理人員能夠更方便、可靠的進(jìn)行通信系統(tǒng)的覆蓋、搭建及管理工作[3]。
本系統(tǒng)使用MVC設(shè)計(jì)模式,將系統(tǒng)分為模型(Model)、視圖(View)、控制器(Controller)三層,將業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離,降低了模塊間的耦合性,增加了代碼重用性及可維護(hù)性[4]。如圖1所示。
圖1 MVC結(jié)構(gòu)模型
MVC設(shè)計(jì)模式是使用基于Java語言的SpringMVC框架實(shí)現(xiàn)的。其中,View(視圖層)為前端頁面,主要用于顯示系統(tǒng)界面及運(yùn)維相關(guān)數(shù)據(jù)。頁面發(fā)起http請(qǐng)求后,會(huì)被SpringMVC控制器DispatcherServlet獲取并解析,然后通過HandlerMapping尋找處理器,找到對(duì)應(yīng)的Controller類后,Controller類通過調(diào)用后臺(tái)服務(wù)執(zhí)行相應(yīng)的業(yè)務(wù)邏輯[5]。待處理完成業(yè)務(wù)邏輯后,會(huì)把數(shù)據(jù)返回并封裝到ModelAndView類里。最后通過DispatcherServlet處理返回的數(shù)據(jù)并返回給相應(yīng)的View,填充到前端頁面元素中。此時(shí),用戶便獲取到http請(qǐng)求的處理結(jié)果。
同時(shí),系統(tǒng)后臺(tái)服務(wù)也分為了Service(服務(wù))層,Dao(持久)層以及Bean(Java實(shí)體對(duì)象)層。系統(tǒng)使用MyBatis框架實(shí)現(xiàn)Java代碼與數(shù)據(jù)庫的連接,通過配置XML文件的映射關(guān)系,將Dao層的接口方法映射為SQL語句,將數(shù)據(jù)庫處理結(jié)果映射到JavaBean對(duì)象中,這樣就把數(shù)據(jù)庫的數(shù)據(jù)轉(zhuǎn)化為了Java對(duì)象[6]。再通過Service對(duì)各種返回情況做進(jìn)一步的封裝處理,并把接口暴露給Controller層。
這樣分層的開發(fā)模式可以做到最大化的解耦,避免牽一發(fā)而動(dòng)全身。各層只需要關(guān)心本層的邏輯操作,并把封裝好的方法暴露給上層,供其調(diào)用,實(shí)現(xiàn)模塊化開發(fā),增加開發(fā)效率。
本系統(tǒng)將Spring與MyBatis框架整合,讓Dao層(持久層)與數(shù)據(jù)庫進(jìn)行交互,實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的增刪改查操作[7]。首先通過配置spring.xml文件,實(shí)現(xiàn)系統(tǒng)與數(shù)據(jù)庫的連接。再根據(jù)mapper.xml文件,配置命名空間對(duì)應(yīng)的Dao類,以及java對(duì)象,將數(shù)據(jù)庫中的字段映射為對(duì)象的屬性[8]。接著,便可以在該xml文件中寫sql語句,映射到Dao層的方法,通過spring的注解以及配置文件,讀取對(duì)應(yīng)的配置及屬性,實(shí)現(xiàn)動(dòng)態(tài)sql的拼接及對(duì)數(shù)據(jù)庫的的增刪改查操作[9]。
根據(jù)運(yùn)維人員的實(shí)際任務(wù)需求,確立了系統(tǒng)的總體業(yè)務(wù)流程及功能模塊。
首先需要錄入基礎(chǔ)資源信息,包括代維企業(yè)以及企業(yè)的運(yùn)維人員,系統(tǒng)會(huì)自動(dòng)為運(yùn)維人員分配賬號(hào),以供他們登錄該系統(tǒng),從而接收、完成任務(wù)。然后錄入通信系統(tǒng)中的站點(diǎn)、分布式系統(tǒng)及基站的各項(xiàng)基本信息。之后,需要為維護(hù)任務(wù)錄入待檢查的項(xiàng)目,即檢查項(xiàng),抽檢還需要為每個(gè)檢查項(xiàng)分配對(duì)應(yīng)的分?jǐn)?shù)。檢查項(xiàng)錄入完畢后,還需根據(jù)檢查項(xiàng)生成任務(wù)模板。由于維護(hù)任務(wù)的檢查項(xiàng)數(shù)量繁多,本系統(tǒng)為了減輕員工工作量,避免重復(fù)性工作,便設(shè)置了任務(wù)模板功能,在此配置好模板之后,下發(fā)任務(wù)時(shí),直接選擇對(duì)應(yīng)的任務(wù)模板即可。
如上基礎(chǔ)數(shù)據(jù)及檢查項(xiàng)及任務(wù)模板都配置好后,便可下發(fā)任務(wù)[10]。任務(wù)可以手動(dòng)指派或自動(dòng)下發(fā)。待任務(wù)執(zhí)行完畢后,系統(tǒng)數(shù)據(jù)欄就可以看到任務(wù)數(shù)據(jù),以便員工能夠更加清晰、快速的發(fā)現(xiàn)問題,解決通信系統(tǒng)的故障。系統(tǒng)流程如圖2所示。
圖2 系統(tǒng)流程圖
根據(jù)系統(tǒng)需求、流程、用戶角色及對(duì)應(yīng)權(quán)限的分析,確立了8個(gè)主要功能模塊,包括用戶管理、資源管理、代維企業(yè)管理、檢查項(xiàng)與模板、任務(wù)管理、數(shù)據(jù)管理、告警管理、系統(tǒng)管理[11]。
1)用戶管理:用戶管理主要對(duì)使用該系統(tǒng)的用戶進(jìn)行管理和維護(hù),包括添加新用戶、修改用戶信息、查詢用戶、刪除用戶等操作。
2)資源管理:對(duì)站點(diǎn)、分布式系統(tǒng)及鐵塔等資源的基礎(chǔ)信息進(jìn)行管理和維護(hù)。包括對(duì)以上3個(gè)系統(tǒng)相關(guān)信息的新增、修改查看以及刪除等。
3)代維企業(yè)管理:對(duì)代維企業(yè)及員工的基礎(chǔ)信息的錄入、修改、查看及刪除等等。
4)檢查項(xiàng)與模板管理:為不同通信設(shè)備的巡檢、年檢及抽檢任務(wù)制定需要檢查的項(xiàng)目,并制定任務(wù)模板。其中,抽檢任務(wù)需要為每個(gè)檢查項(xiàng)目分配分?jǐn)?shù),進(jìn)一步保障通信系統(tǒng)的正常運(yùn)行。
5)任務(wù)管理:主要為創(chuàng)建并分配任務(wù),包括自動(dòng)任務(wù)的創(chuàng)建。同時(shí)可以查看任務(wù)進(jìn)行狀態(tài)及任務(wù)分配記錄,以保證責(zé)任主體明確。
6)數(shù)據(jù)管理:分別對(duì)站點(diǎn)、分布式系統(tǒng)及鐵塔的巡檢、年檢及抽檢任務(wù)數(shù)據(jù)結(jié)果進(jìn)行記錄、統(tǒng)計(jì)、分析。
7)告警管理:對(duì)存在問題的任務(wù)數(shù)據(jù)進(jìn)行展示、分析,同時(shí)提供快捷入口消除告警,以快速恢復(fù)故障[12]。
8)系統(tǒng)管理:對(duì)整個(gè)系統(tǒng)的菜單、角色等進(jìn)行管理,同時(shí)分配角色權(quán)限,以支撐整個(gè)系統(tǒng)的正常使用[13]。
前面展示了系統(tǒng)架構(gòu)及數(shù)據(jù)庫設(shè)計(jì),接下來將介紹運(yùn)維管理系統(tǒng)的模塊設(shè)計(jì)。主要介紹運(yùn)維管理系統(tǒng)最核心的3個(gè)模塊,檢查項(xiàng)與模板模塊、任務(wù)管理模塊及數(shù)據(jù)管理模塊的詳細(xì)設(shè)計(jì)。這里由于篇幅有限,只對(duì)這兩部分做介紹。
檢查項(xiàng)與模板模塊分為檢查項(xiàng)管理,模板管理兩個(gè)部分。根據(jù)系統(tǒng)需求和業(yè)務(wù)邏輯,運(yùn)維人員需要在現(xiàn)場根據(jù)生產(chǎn)管理員制定的檢查任務(wù)中的檢查項(xiàng)逐項(xiàng)的進(jìn)行檢查維護(hù)工作,待完成全部檢查項(xiàng)后,提交作業(yè)任務(wù)。而任務(wù)實(shí)際上與任務(wù)模板相關(guān)聯(lián),并最終關(guān)聯(lián)到一項(xiàng)項(xiàng)的檢查項(xiàng)目。因此運(yùn)維檢查任務(wù)是基于檢查項(xiàng)及模板的。這一模塊的功能就是供生產(chǎn)管理員自定義制定巡檢項(xiàng)和模板,以靈活、動(dòng)態(tài)的創(chuàng)建檢查任務(wù)。模塊總體功能流程如圖3所示。
圖3 檢查項(xiàng)與模板流程圖
檢查項(xiàng)與模板兩個(gè)二級(jí)模塊都分別設(shè)置了站點(diǎn)、分布式系統(tǒng)及鐵塔類別,將不同的待檢查系統(tǒng)區(qū)分開[13]。檢查項(xiàng)管理主要用來錄入待檢查的系統(tǒng)中需要檢查的項(xiàng)目,編輯檢查項(xiàng)時(shí),需要輸入檢查項(xiàng)類型以及輸入類型,包括下拉、填寫、單選、自動(dòng)獲取等等,同時(shí)根據(jù)輸入類型填寫對(duì)應(yīng)的額外參數(shù)。例如,如果是下拉類型,則需要編輯下拉選項(xiàng),填寫選項(xiàng)名稱以及該選項(xiàng)是否是正確選項(xiàng);如果是填寫類型,則需要填寫測試值單位、正常范圍以及告警范圍等指標(biāo)。當(dāng)檢查項(xiàng)錄入完畢后,任務(wù)模板可以選擇剛才錄好的檢查項(xiàng),供創(chuàng)建任務(wù)時(shí)使用。
系統(tǒng)最終要實(shí)現(xiàn)的目的之一,就是完成運(yùn)維管理任務(wù),該模塊便是創(chuàng)建、制定并指派檢查任務(wù)。并可以查看任務(wù)分配記錄,以保證責(zé)任主體清晰、明確。同時(shí),為了降低任務(wù)制定人員的工作量,避免過多重復(fù)性操作,本系統(tǒng)設(shè)置了創(chuàng)建自動(dòng)任務(wù)功能,可根據(jù)不同通信設(shè)施的巡檢周期自動(dòng)創(chuàng)建任務(wù),減少員工的工作負(fù)擔(dān)。
任務(wù)管理分為作業(yè)任務(wù)管理任務(wù)的分配記錄兩個(gè)部分。其中,作業(yè)任務(wù)管理主要用于任務(wù)的創(chuàng)建與下發(fā)。巡檢員選擇任務(wù)類別,任務(wù)模板,任務(wù)執(zhí)行天數(shù)以及待檢查的通信系統(tǒng),便可以創(chuàng)建任務(wù)。然后選擇該任務(wù)的任務(wù)執(zhí)行人,將任務(wù)下發(fā)給他,待運(yùn)維人員成功執(zhí)行完任務(wù)后,便完成了整個(gè)系統(tǒng)的運(yùn)維流程。創(chuàng)建任務(wù)流程如圖4所示。
圖4 創(chuàng)建任務(wù)流程
其中,自動(dòng)任務(wù)的創(chuàng)建使用了spring與quartz的整合,以實(shí)現(xiàn)定時(shí)任務(wù)的調(diào)度[14]。關(guān)鍵代碼如下:
任務(wù)分配記錄可以查看所有任務(wù)的創(chuàng)建人、執(zhí)行人、創(chuàng)建時(shí)間以及完成時(shí)間,讓運(yùn)維的責(zé)任主體更加清晰,保證責(zé)任到人。
該模塊主要功能是查看提交的各項(xiàng)任務(wù)數(shù)據(jù),包括任務(wù)各項(xiàng)基本信息以及每項(xiàng)檢查的項(xiàng)目情況。并設(shè)置數(shù)據(jù)統(tǒng)計(jì)查詢的功能,便于分析各個(gè)時(shí)間段、各個(gè)地區(qū)內(nèi)的整體的通信設(shè)施的運(yùn)行情況,以讓生產(chǎn)管理員統(tǒng)籌分析,從而有針對(duì)性的優(yōu)化通信系統(tǒng)。
數(shù)據(jù)管理的二級(jí)模塊分為站點(diǎn)、分布式系統(tǒng)、鐵塔的巡檢、年檢、抽檢數(shù)據(jù)查詢以及3個(gè)通信設(shè)施的業(yè)務(wù)數(shù)據(jù)統(tǒng)計(jì)查詢等模塊。
數(shù)據(jù)查詢相關(guān)模塊主要記錄任務(wù)的執(zhí)行結(jié)果。詳細(xì)記錄了任務(wù)檢查對(duì)象的基本信息、每個(gè)檢查項(xiàng)的檢查情況以及告警記錄等,能夠非常全面的了解該任務(wù)的所有相關(guān)數(shù)據(jù)。
同時(shí),因?yàn)槊總€(gè)分布式系統(tǒng)含有多個(gè)點(diǎn)位,運(yùn)維任務(wù)需要分別測出每個(gè)點(diǎn)位的場強(qiáng)值,并根據(jù)閾值來判斷該場強(qiáng)是否符合條件,故分布式系統(tǒng)的數(shù)據(jù)查詢額外包括了場強(qiáng)查詢?nèi)?jí)模塊。為了便于顯示,該模塊結(jié)合了HighChart前端顯示圖表工具,通過折現(xiàn)圖的形式顯示出各個(gè)點(diǎn)位的場強(qiáng)值。并設(shè)置了正常值以及告警值的范圍,以求能夠清晰、明確的判斷點(diǎn)位的運(yùn)行情況,如圖5所示。
圖5 分布式系統(tǒng)點(diǎn)位場強(qiáng)圖
業(yè)務(wù)統(tǒng)計(jì)查詢二級(jí)模塊可以查詢各個(gè)系統(tǒng)的故障統(tǒng)計(jì)數(shù)據(jù)。故障統(tǒng)計(jì)數(shù)據(jù)需要根據(jù)省份、時(shí)間、類型等查詢條件查詢站點(diǎn)系統(tǒng)的故障率。系統(tǒng)通過集成MyBatis框架,在持久層mapper.xml文件中使用#{data}動(dòng)態(tài)拼接SQL語句,并關(guān)聯(lián)查詢站點(diǎn)表和任務(wù)數(shù)據(jù)表,返回了根據(jù)條件查詢的站點(diǎn)故障率數(shù)據(jù)[15-19]。代碼書寫簡便,且運(yùn)行效率較高。
本文針對(duì)目前通信系統(tǒng)日常運(yùn)營及維護(hù)系統(tǒng)的不足,設(shè)計(jì)出了基于MVC設(shè)計(jì)模式的運(yùn)維管理系統(tǒng)。通過MVC分層,實(shí)現(xiàn)了模塊化開發(fā),不僅加快了開發(fā)效率,并且能提高系統(tǒng)的可擴(kuò)展性,方便系統(tǒng)的后期維護(hù)或二次開發(fā)。運(yùn)維管理系統(tǒng)能提高運(yùn)維人員的工作效率,為通信系統(tǒng)的正常運(yùn)行及信息化的高速發(fā)展提供支持。
[1]李倫,宋勇.網(wǎng)絡(luò)運(yùn)維規(guī)范化管理的實(shí)施與展望[J].經(jīng)營管理,2012(2):75-76.
[2]胡平.基于云計(jì)算技術(shù)的運(yùn)營商運(yùn)維體系探究[J].電信科學(xué),2011(1):97-102.
[3]馬銳.基于監(jiān)控平臺(tái)的信息化運(yùn)維管理平臺(tái)設(shè)計(jì)[J].信息網(wǎng)絡(luò)安全,2013(10):161-163.
[4]李新良,羅戈夕.MVC設(shè)計(jì)模式的改進(jìn)研究[J].北京電子科技學(xué)院學(xué)報(bào),2009,17(4):33-37.
[5]徐雯,高建華.基于Spring MVC及MyBatis的Web應(yīng)用框架研究[J].微型電腦應(yīng)用,2012(7):1-4.
[6]孫祿,盧瀟,張強(qiáng).基于Java Bean組件技術(shù)的模型表示研究[J].電子設(shè)計(jì)工程,2010(10):9.
[7]張俐,張維璽.改進(jìn)的JDBC框架在數(shù)據(jù)持久層的應(yīng)用[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(8):1746-1749.
[8]陳錦偉.基于MySQL的空間數(shù)據(jù)庫關(guān)鍵技術(shù)研究[D].南京:南京郵電大學(xué),2013.
[9]母俐麗,劉一鳴,劉偉.適合中小企業(yè)的IT運(yùn)維系統(tǒng)架構(gòu)設(shè)計(jì)[J].現(xiàn)代計(jì)算機(jī),2012(2):66-69.
[10]郭劍,企業(yè)IT運(yùn)維系統(tǒng)流程設(shè)計(jì)[J].科技創(chuàng)新與生產(chǎn)力,2012(5):87-91.
[11]米林.軟件開發(fā)周期中的需求分析[J].軟件工程師,2013(3):42-43.
[12]張曉明.IT運(yùn)維自動(dòng)化技術(shù)在電力系統(tǒng)內(nèi)的應(yīng)用[J].數(shù)字技術(shù)與應(yīng)用,2012(11):105.
[13]林碧芬.基于信息類型的信息網(wǎng)站設(shè)計(jì)模式研究[J].福建電腦,2009(11):34-35.
[14]耿淵,張衛(wèi)濱.Spring實(shí)戰(zhàn)[M].3版.北京:人民郵電出版社,2013.
[15]曾令祝.MyBatis3用戶指南中文版[S].2010.06.15.
[16]Adam Freeman,Steven Sanderson.Pro ASP.NET MVC3 Framework[M].Apress,2011.
[17]張斌,張達(dá)敏,曾成.基于Spring MVC的公共設(shè)施巡查系統(tǒng)設(shè)計(jì)[J].電子科技,2016(5):145-148.
[18]盛泉,荊心,楊洪波,等.工業(yè)石灰窯MVC架構(gòu)的PLC控制系統(tǒng)[J].西安工業(yè)大學(xué)學(xué)報(bào),2015(11):877-882.
[19]王勇.基于Zigbee無線網(wǎng)絡(luò)的配網(wǎng)防誤管理系統(tǒng)的研究與應(yīng)用[J].電子設(shè)計(jì)工程,2017(3):128-132.
Design of the operation and maintenance management system based on MVC design patterns
LI Zhi-heng
(Wuhan Research Institute of Post&Telecommunications,Wuhan430074,China)
With the rapid development of informatization construction in China,enterprises and institutions show an increasing demand for informatization,especially for internet service and communication system.To guarantee permanent,efficient and steady informatization service,this paper reviews current status of operations industry in China and designs and then develops a system for operation management.This paper first introduces the operation and maintenance management system to achieve the goal,and then gives the system architecture design,module design,and focus on the detailed design of the module,and a summary.This system based on MVC design patterns and use Java language to develop.Practice shows that the system can basically meet the needs of users.
informatization;operation and maintenance management system ;MVC;Java
TN99
A
1674-6236(2017)23-0069-04
2016-11-16稿件編號(hào):201611127
李志恒(1991—)男,湖北武漢人,碩士研究生。研究方向:互聯(lián)網(wǎng)。