摘 要: 目前市場(chǎng)中直放站設(shè)備數(shù)量眾多、種類繁多,并且不同運(yùn)營(yíng)商使用不同供應(yīng)商提供的直放站設(shè)備,這種現(xiàn)狀增加了直放站網(wǎng)管的監(jiān)控管理難度。為了解決這一棘手的問(wèn)題,設(shè)計(jì)了一款基于J2EE平臺(tái)的分布式、多層次、擴(kuò)展性強(qiáng)的直放站網(wǎng)管;該網(wǎng)管整體采用B/S架構(gòu),利用Spring框架進(jìn)行代碼解耦和,以實(shí)現(xiàn)MVC三層松耦合設(shè)計(jì)模式, Hibernate數(shù)據(jù)持久化技術(shù),DWR消息推送技術(shù)等。該設(shè)計(jì)具有極好的高效可管理性以及可操作性,功能遠(yuǎn)優(yōu)于傳統(tǒng)的C/S架構(gòu)的直放站監(jiān)控網(wǎng)管。
關(guān)鍵字: B/S架構(gòu); MVC模式; 直放站網(wǎng)管; J2EE
中圖分類號(hào): TN711?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2014)01?0057?03
0 引 言
隨著我國(guó)移動(dòng)通信事業(yè)的快發(fā)發(fā)展,高層建筑不斷涌現(xiàn),嚴(yán)重影響了通信信號(hào)傳播效果,形成了許多移動(dòng)信號(hào)的弱區(qū)甚至盲區(qū),以至于城市中許多地方如停車場(chǎng),地鐵,隧道等一些比較封閉的地方都很難接收到較好的通信信號(hào),而直放站很好的解決了這一問(wèn)題,提供了優(yōu)質(zhì)純凈的通信信號(hào)。面對(duì)數(shù)量眾多、種類不一的直放站設(shè)備:如無(wú)線直放站、光纖直放站等;如何有效的管理與維護(hù),是運(yùn)營(yíng)商亟待解決的問(wèn)題。直放站網(wǎng)管是一個(gè)十分龐大復(fù)雜的系統(tǒng)工程,網(wǎng)管不僅管理與維護(hù)網(wǎng)絡(luò)中的直放站通信設(shè)備的正常工作,還要對(duì)網(wǎng)絡(luò)中資源的分配,系統(tǒng)安全以及網(wǎng)絡(luò)服務(wù)質(zhì)量等進(jìn)行綜合控制與衡量,所以基于Web直放站網(wǎng)管是對(duì)于直放站管理的長(zhǎng)期規(guī)劃,對(duì)用戶使用的成本控制起著十分重要的作用。
本文設(shè)計(jì)的直放站網(wǎng)管就是為了解決這一問(wèn)題。B/S架構(gòu),即Browser/Server(瀏覽器/服務(wù)器)[1]結(jié)構(gòu),主要是利用了不斷成熟的WWW瀏覽器技術(shù),客戶機(jī)上只要安裝一個(gè)瀏覽器(Browser),如Netscape Navigator或Internet Explorer,服務(wù)器安裝Oracle、Sybase、Informix或SQL Server等數(shù)據(jù)庫(kù),瀏覽器就可以通過(guò)Web Server 同數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交互。這樣在很大程度上簡(jiǎn)化了客戶端電腦載荷,減輕了系統(tǒng)維護(hù)與升級(jí)的成本和工作量[2]。
1 工作原理
1.1 Web網(wǎng)管模型
基于Web的分布式網(wǎng)管是一個(gè)多層次結(jié)構(gòu),包括:用戶界面層,控制層,應(yīng)用邏輯處理層,基礎(chǔ)服務(wù)層[3]。設(shè)計(jì)思想采用J2EE的一種主流軟件設(shè)計(jì)模式:MVC(Model?View?Controller)模式。MVC與J2EE架構(gòu)的對(duì)應(yīng)關(guān)系是:View處于Web Tier,是JSP實(shí)現(xiàn),即前端頁(yè)面顯示部分。Controller也處于Web Tier,用Servlet來(lái)實(shí)現(xiàn),即頁(yè)面顯示的邏輯部分實(shí)現(xiàn)。Model處于Middle Tier,使用服務(wù)端的javaBean實(shí)現(xiàn),即業(yè)務(wù)邏輯部分的實(shí)現(xiàn)[4]。整體模塊如圖1所示。
用戶界面層:主要有兩個(gè)功能,一是它通過(guò)HTTP協(xié)議向控制層發(fā)送請(qǐng)求,把用戶操作的具體指令傳遞到后臺(tái)程序;二是它需要把后臺(tái)系統(tǒng)響應(yīng)和設(shè)備響應(yīng)的數(shù)據(jù)實(shí)時(shí)地反饋回前臺(tái)顯示到用戶界面。
圖1 整體模塊
控制層:是連接用戶界面層和事務(wù)邏輯層的中樞神經(jīng),負(fù)責(zé)整個(gè)系統(tǒng)的配合運(yùn)轉(zhuǎn)。用來(lái)響應(yīng)用戶界面層傳送過(guò)來(lái)的各種HTTP請(qǐng)求,并且調(diào)用相應(yīng)的Servlet進(jìn)行處理,是通過(guò)調(diào)用應(yīng)用邏輯處理層的處理程序完成客戶的請(qǐng)求,還需要把處理的結(jié)果傳給用戶界面層。
應(yīng)用邏輯處理層:系統(tǒng)的核心功能是在這層實(shí)現(xiàn)的,例如被管理直放站設(shè)備信息的查詢,告警上報(bào)以及響應(yīng)等。業(yè)務(wù)的實(shí)現(xiàn)是被封裝成JavaBean等形式,提供給其他層調(diào)用。
基礎(chǔ)服務(wù)層:該層主要是存儲(chǔ)系統(tǒng)各個(gè)數(shù)據(jù),采用數(shù)據(jù)庫(kù)形式,用來(lái)保存大量且經(jīng)常變化的數(shù)據(jù)。
1.2 工作原理介紹
無(wú)線直放站網(wǎng)管監(jiān)控系統(tǒng)由網(wǎng)管中心、通信信道和直放站遠(yuǎn)端監(jiān)控單元三部分組成[5],如圖2所示。
圖2 工作原理示意圖
網(wǎng)管中心:即監(jiān)控平臺(tái)。網(wǎng)管中心可以實(shí)時(shí)的對(duì)每套直放站的當(dāng)前狀態(tài)進(jìn)行監(jiān)測(cè)、查詢、控制。
通信信道:數(shù)據(jù)包在數(shù)據(jù)鏈路層傳輸?shù)拿浇椤?/p>
直放站遠(yuǎn)端監(jiān)控單元:接收并解析網(wǎng)管中心發(fā)送的指令,并將網(wǎng)管請(qǐng)求的信息反饋回網(wǎng)管中心。
數(shù)據(jù)庫(kù)和監(jiān)控中心客戶端以及通信服務(wù)器可以不在同一臺(tái)計(jì)算機(jī)上,用戶需要配置通信服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器。多客戶端可以共用一個(gè)數(shù)據(jù)庫(kù)服務(wù)器和一個(gè)通信服務(wù)器。
2 技術(shù)分析
2.1 Web網(wǎng)管的優(yōu)勢(shì)所在
運(yùn)營(yíng)商所使用的直放站網(wǎng)管大多采用C/S結(jié)構(gòu),這種結(jié)構(gòu)有自己獨(dú)特的優(yōu)勢(shì),但隨著管理的直放站數(shù)目劇增,型號(hào)種類繁多,C/S結(jié)構(gòu)網(wǎng)管越來(lái)越力不從心。使用C/S結(jié)構(gòu)網(wǎng)管用戶要安裝的專業(yè)客戶軟件,移植困難,維護(hù)復(fù)雜,升級(jí)麻煩,擴(kuò)展性差等諸多缺點(diǎn),這種情況下直放站的供應(yīng)商與運(yùn)營(yíng)商都會(huì)迫切的需要一套基于B/S結(jié)構(gòu)的直放站網(wǎng)管平臺(tái),可以兼容不同廠家,不用型號(hào)的直放站設(shè)備。B/S結(jié)構(gòu)是Web興起后的一種網(wǎng)絡(luò)結(jié)構(gòu)模式,Web瀏覽器是客戶端最主要的應(yīng)用軟件,而且這種軟件可以說(shuō)是用戶免安裝的客戶端軟件,這種模式統(tǒng)一了客戶端,將系統(tǒng)功能實(shí)現(xiàn)的核心部分集中到服務(wù)器上,簡(jiǎn)化了系統(tǒng)的開發(fā)、維護(hù)和使用。
就目前的技術(shù)建立B/S結(jié)構(gòu)的網(wǎng)絡(luò)應(yīng)用,成本比較低且易于把握。它可以實(shí)現(xiàn)不同的人員,從不同的地點(diǎn),以不同的接入方式(比如LAN,WAN,Internet/Intranet等)訪問(wèn)和操作同一個(gè)數(shù)據(jù)庫(kù),系統(tǒng)的擴(kuò)展非常容易,只要能上網(wǎng),再由系統(tǒng)管理員分配一個(gè)用戶名和密碼,就可以使用了。甚至可以在線申請(qǐng),通過(guò)公司內(nèi)部的安全認(rèn)證(如CA證書)后,不需要人的參與,系統(tǒng)可以自動(dòng)分配給用戶一個(gè)賬號(hào)進(jìn)入系統(tǒng),這樣有效地保護(hù)數(shù)據(jù)平臺(tái)和管理訪問(wèn)權(quán)限,服務(wù)器數(shù)據(jù)庫(kù)也很安全。
2.2 本網(wǎng)管涉及到的關(guān)鍵技術(shù)
2.2.1 MVC思想在J2EE上的實(shí)現(xiàn)
本網(wǎng)管涉及到的關(guān)鍵技術(shù)是MVC思想在J2EE上的實(shí)現(xiàn),現(xiàn)在國(guó)內(nèi)日常生活中使用的網(wǎng)頁(yè)多數(shù)都是采用MVC模式設(shè)計(jì)。事務(wù)邏輯模塊(Model),用戶視圖模塊(View),控制器(Controller)工作過(guò)程如下:首先Controller接收用戶的請(qǐng)求,并決定應(yīng)該調(diào)用哪個(gè)模型來(lái)進(jìn)行處理,然后模型用Model模塊來(lái)處理用戶的請(qǐng)求并返回?cái)?shù)據(jù),最后Controller用相應(yīng)的視圖格式化模型(View)返回的數(shù)據(jù),并通過(guò)表示層呈現(xiàn)給用戶。MVC框架工作過(guò)程如圖3所示。
Model模塊表示狀態(tài)和核心業(yè)務(wù)邏輯;數(shù)據(jù)庫(kù)中的Data由Model映射,掌握核心邏輯;View模塊用來(lái)呈現(xiàn)Model的內(nèi)容;Controller模塊連接View模塊和Model模塊;Browser模塊發(fā)送請(qǐng)求,經(jīng)Controller模塊到達(dá)Model模塊,Model模塊與Database交互,在經(jīng)過(guò)View響應(yīng)返回給Browser模塊。
圖3 MVC框架工作過(guò)程圖
從依賴關(guān)系看,Model不依賴View和Controller,而View和Controller依賴Model。從Model中分離View,主要有三點(diǎn)考慮:一是Model關(guān)注內(nèi)在的不可視的邏輯,而View關(guān)注外在的可視的邏輯;二是同一個(gè)Model往往需要多種View表現(xiàn)形式,如文本、圖像;三是相對(duì)Model而言,View是不容易測(cè)試的。
把Model與Controller進(jìn)行了分離,這樣程序的開發(fā)主要就集中在事務(wù)處理、邏輯判斷等方面,提高了事務(wù)邏輯模塊在網(wǎng)絡(luò)應(yīng)用和非網(wǎng)絡(luò)應(yīng)用中的可重用性。如直放站參數(shù)信息的查詢與設(shè)置,告警上報(bào)等。能夠保證應(yīng)用程序每個(gè)模塊之間的相互整合、維護(hù)并及時(shí)的獲取業(yè)務(wù)數(shù)據(jù),支持事務(wù)工作流的協(xié)調(diào)和在已有的程序中集成新的應(yīng)用程序模塊等[6]。
2.2.2 Reverse Ajax實(shí)現(xiàn)服務(wù)器推技術(shù)
DWR(Direct Web Remoting)其實(shí)主要功能是改善Web頁(yè)面與Java類交互的遠(yuǎn)程服務(wù)器端Ajax開源框架,它允許在瀏覽器里的代碼使用運(yùn)行在Web服務(wù)器上的JAVA函數(shù),就像它就在瀏覽器里一樣。由于HTTP是無(wú)狀態(tài)協(xié)議,必須由客戶端主動(dòng)發(fā)送HTTP請(qǐng)求給服務(wù)器后,服務(wù)器響應(yīng)給客戶端就馬上關(guān)閉掉HTTP連接,這樣無(wú)法保證服務(wù)器主動(dòng)推送消息給瀏覽器。采用DWR可以實(shí)現(xiàn)服務(wù)器向客戶端的數(shù)據(jù)實(shí)時(shí)推送,同時(shí)又減輕對(duì)Web服務(wù)器輪詢壓力的前提下,實(shí)現(xiàn)了用戶操作界面上的數(shù)據(jù)實(shí)時(shí)更新。
DWR推送技術(shù)也叫做DWR Reverse Ajax(逆向Ajax)。Ajax即“Asynchronous JavaScript and XML”,可以讓JavaScript調(diào)用 XMLHttpRequest對(duì)象,發(fā)送HTTP請(qǐng)求,JavaScript根據(jù)后臺(tái)服務(wù)器回饋的數(shù)據(jù)對(duì)HTML頁(yè)面進(jìn)行相對(duì)的更新處理。采用逆向Ajax“消息推送”和傳統(tǒng)的Ajax應(yīng)用是不同的。DWR推送技術(shù)有三種實(shí)現(xiàn)模式:主動(dòng)模式polling和comet兩種以及被動(dòng)模式piggyback[7]。本設(shè)計(jì)采用comet模式,即HTTP長(zhǎng)連接模式,也就是客戶端發(fā)送第一次請(qǐng)求的時(shí)候服務(wù)器給予回應(yīng),當(dāng)服務(wù)端建立和瀏覽器的連接后,對(duì)應(yīng)的連接并不關(guān)閉,只是暫時(shí)掛起。然后,在這期間如果后面有什么新的數(shù)據(jù)更新需要推送到客戶端的時(shí)候,數(shù)據(jù)就會(huì)直接通過(guò)前面掛起的連接再次到瀏覽器去。DWR Comet長(zhǎng)連接模式如圖4所示。
圖4 DWR Comet長(zhǎng)連接模式
3 結(jié) 語(yǔ)
本文從直放站網(wǎng)管系統(tǒng)的實(shí)際需求出發(fā),采用了Web網(wǎng)絡(luò)管理模型,以J2EE為平臺(tái)來(lái)設(shè)計(jì)系統(tǒng),使其更加靈活,尤其是MVC設(shè)計(jì)模式,作為J2EE輕量級(jí)框架的代表,MVC模式大大降低了J2EE的開發(fā)難度,促進(jìn)的J2EE的應(yīng)用發(fā)展[8]。但是本設(shè)計(jì)也存在一些不足,界面處理可以做得更完美,其實(shí)可以嘗試使用HTML5和CSS3使界面更加生動(dòng),用戶體驗(yàn)會(huì)好,網(wǎng)管處理設(shè)備數(shù)量的性能還有待更大的提高,在數(shù)據(jù)使用上可以提供幾種主流數(shù)據(jù)庫(kù)給用戶選擇,提高擴(kuò)展性和靈活性。
參考文獻(xiàn)
[1] 黃文博,燕楊.C/S結(jié)構(gòu)與B/S結(jié)構(gòu)的分析與比較[J].長(zhǎng)春師范學(xué)院學(xué)報(bào),2006(8):56?58.
[2] 朱小毅.基于J2EE的三層B/S企業(yè)信息系統(tǒng)[J].太原理工大學(xué)學(xué)報(bào),2005,36(1):56?59.
[3] 段渭軍,李引娟,王福豹.基于Web的分布式網(wǎng)管及其實(shí)現(xiàn)技術(shù)[J].計(jì)算機(jī)應(yīng)用研究,2003(8):70?72.
[4] 袁梅冷,黃煙波,黃家林,等.J2EE應(yīng)用模型中MVC軟件體系結(jié)構(gòu)的研究與應(yīng)用[J].計(jì)算機(jī)應(yīng)用研究,2003(3):147?149.
[5] 中國(guó)移動(dòng)通信有限公司.中國(guó)移動(dòng)直放站監(jiān)控系統(tǒng)功能規(guī)范1.0.0[M].北京:中國(guó)移動(dòng)通信有限公司,2007.
[6] 丁賢明,劉志峰,謝川,等.基于MVC模式的模具網(wǎng)絡(luò)化制造平臺(tái)的研究[J].機(jī)械設(shè)計(jì)與制造,2008(10):210?211.
[7] 李健,郭宇明,石桂名.基于DWR的AJAX技術(shù)研究與實(shí)現(xiàn)[J].現(xiàn)代計(jì)算機(jī):專業(yè)版,2007(7):132?133.
[8] 李捷,王汝傳.基于Web平臺(tái)的分布式網(wǎng)絡(luò)廣利模型的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2003,39(36):134?137.