呂太之
(江蘇海事職業(yè)技術(shù)學(xué)院信息工程系,江蘇 南京 211170)
基于web2.0的網(wǎng)絡(luò)管理平臺(tái)是企業(yè)網(wǎng)絡(luò)管理集成平臺(tái),實(shí)現(xiàn)對(duì)企業(yè)網(wǎng)絡(luò)的管理。系統(tǒng)采用基于JAVA EE四層體系架構(gòu),即用戶層、Web表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)信息層。采用了中間件、組件技術(shù),在開發(fā)中利用面向?qū)ο蟪绦蜷_發(fā)的建模技術(shù),程序的編寫使用 EJB、Servlet、JSP、AJAX、Web Service技術(shù),增強(qiáng)了系統(tǒng)與用戶的交互性。在數(shù)據(jù)庫(kù)設(shè)計(jì)上,采用了MYSQL數(shù)據(jù)管理理念,保證了數(shù)據(jù)管理的經(jīng)濟(jì)性。
系統(tǒng)是一個(gè)N層體系結(jié)構(gòu),包括瀏覽器層、Web服務(wù)器層、數(shù)據(jù)庫(kù)層、數(shù)據(jù)采集層、被管設(shè)備層。服務(wù)器負(fù)責(zé)系統(tǒng)的業(yè)務(wù)處理,包括配置管理、安全管理、故障管理、計(jì)費(fèi)管理和性能管理。該層采用當(dāng)前主流的J2EE框架,使用Tomcat作為Web服務(wù)器。數(shù)據(jù)庫(kù)層采用了MySQL作為后臺(tái)數(shù)據(jù)庫(kù),部署在Linux服務(wù)器上面,降低了使用成本。數(shù)據(jù)采集系統(tǒng)負(fù)責(zé)從被管理設(shè)備中獲得管理所需的原始數(shù)據(jù)。
MVC(Model-View-Controller,模型—視圖—控制器模式)是軟件工程中的一種軟件架構(gòu)模式。它把軟件系統(tǒng)分為三個(gè)基本部分:模型(Model,視圖(View)和控制器(Controller)。本系統(tǒng)采用MVC模式實(shí)現(xiàn),下面將按照MVC模式分層介紹Web服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn)。
3.1.1 模型層
本系統(tǒng)業(yè)務(wù)模型的實(shí)現(xiàn)主要由Spring和Hibernate集成的持久層來(lái)完成。本系統(tǒng)采用Hibernate中實(shí)體類和數(shù)據(jù)庫(kù)表映射的關(guān)系通過(guò)Hibernate Annotation(注解)的方式來(lái)實(shí)現(xiàn)。數(shù)據(jù)庫(kù)的操作通過(guò)spring+hibernate的集成來(lái)實(shí)現(xiàn)。系統(tǒng)中,所有數(shù)據(jù)庫(kù)的操作都封裝到相應(yīng)的dao類中,dao通過(guò)繼承HibernateDaoSupport來(lái)簡(jiǎn)化操作,只需要幾條簡(jiǎn)單的幾條語(yǔ)句就能完成數(shù)據(jù)庫(kù)的增加、刪除、修改、查找等操作。
3.1.2 控制層
控制(Controller)可以理解為從用戶接收請(qǐng)求,將模型與視圖匹配在一起,共同完成用戶的請(qǐng)求。本系統(tǒng)采用struts2框架,控制層由核心控制器FilterDispatcher和用戶編寫的業(yè)務(wù)控制器組成。核心控制器FilterDispatcher是Struts2框架的基礎(chǔ),包含了框架內(nèi)部的控制流程和處理機(jī)制。業(yè)務(wù)控制器Action和業(yè)務(wù)邏輯組件是需要用戶自己實(shí)現(xiàn)的。用戶在開發(fā)Action和業(yè)務(wù)邏輯組件的同時(shí),還需要編寫相關(guān)的配置文件,供核心控制器FilterDispatcher來(lái)使用。struts.xml文件是整個(gè)Struts2框架的核心。Struts2框架的核心配置文件就是struts.xml配置文件,該文件主要負(fù)責(zé)管理Struts2框架的業(yè)務(wù)控制器Action。整個(gè)項(xiàng)目的控制都配置在整個(gè)文件中。
3.1.3 表示層
視圖(View)代表用戶交互界面,對(duì)于Web應(yīng)用來(lái)說(shuō),可以概括為HTML界面,但有可能為XHTML、XML和Applet。本系統(tǒng)使用JSP實(shí)現(xiàn)視圖層,在JSP中沒(méi)有任何業(yè)務(wù)邏輯代碼。通過(guò)使用struts2標(biāo)簽庫(kù),簡(jiǎn)化JSP開發(fā)的難度,解決了在JSP頁(yè)面中,避免使用Java代碼的情況,能夠極大的簡(jiǎn)化頁(yè)面開發(fā)。
數(shù)據(jù)庫(kù)采用了開源的Mysql數(shù)據(jù)庫(kù),對(duì)數(shù)據(jù)庫(kù)的操作統(tǒng)一采用了JDBC的方式,并且使用數(shù)據(jù)庫(kù)連接池技術(shù)。數(shù)據(jù)庫(kù)連接池技術(shù)是指:在系統(tǒng)初期或者是初次使用時(shí),完成數(shù)據(jù)庫(kù)的連接,而后不再釋放此連接而是在處理后面的請(qǐng)求時(shí),反復(fù)使用這些已經(jīng)建立的連接。這種方式可以大大減少數(shù)據(jù)庫(kù)的處理時(shí)間,有利于系統(tǒng)的整體性能;連接池一般比直接連接更有優(yōu)越性,因?yàn)樗谔岣吡诵阅艿耐瑫r(shí)還保存了寶貴的資源。本系統(tǒng)的數(shù)據(jù)庫(kù)連接池的實(shí)現(xiàn)通過(guò)在spring的appliation.xml的配置DBCP來(lái)實(shí)現(xiàn)。
采集數(shù)據(jù)有兩種方式:主動(dòng)訪問(wèn)被管對(duì)象和被動(dòng)接收告警信息。本系統(tǒng)采用主動(dòng)訪問(wèn)被管對(duì)象的方式,首先從數(shù)據(jù)庫(kù)中配置的表中獲取設(shè)備的配置信息和對(duì)應(yīng)的IP地址,然后向協(xié)議適配器申請(qǐng)驅(qū)動(dòng)程序,協(xié)議適配器從自己管理的協(xié)議棧中找到合適的協(xié)議驅(qū)動(dòng)程序給采集器,目前本系統(tǒng)只支持SNMP協(xié)議,接著當(dāng)采集器接收到報(bào)警信息或采集數(shù)據(jù)發(fā)生異常時(shí),采集器將產(chǎn)生不同的事件,并通過(guò)事件處理通道提交給事件處理器,事件處理器得到事件后,根據(jù)用戶事先設(shè)定的處理策略進(jìn)行處理。最后將獲取的這些數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中。采集頻率的確定需要綜合網(wǎng)絡(luò)帶寬權(quán)衡網(wǎng)絡(luò)安全過(guò)程。采集頻率過(guò)低,占用網(wǎng)絡(luò)資源相對(duì)較少,但是數(shù)據(jù)的更新周期相對(duì)較大,不能反映參數(shù)的真實(shí)變化情況;采集頻率過(guò)高,數(shù)據(jù)更新自然較快,但是在采集周期內(nèi)所占用的網(wǎng)絡(luò)資源就會(huì)很大,增加網(wǎng)絡(luò)設(shè)備的負(fù)擔(dān),甚至有可能會(huì)影響到正常的網(wǎng)絡(luò)通信。因此在確定數(shù)據(jù)采集的頻率時(shí),必須根據(jù)實(shí)際的網(wǎng)絡(luò)帶寬資源進(jìn)行考慮,同時(shí)還要考慮被管設(shè)備中被管對(duì)象的數(shù)量。本系統(tǒng)采用多態(tài)采集頻率,根據(jù)被管理的設(shè)備和網(wǎng)絡(luò)帶寬情況實(shí)時(shí)調(diào)整采集頻率。
Ajax(Asynchronous JavaScript and XML)技術(shù)是目前深受Web用戶歡迎的一項(xiàng)技術(shù),它利用JavaScript、DOM、XMLHttpRequest實(shí)現(xiàn)客戶端與服務(wù)器的異步交互。本系統(tǒng)中設(shè)備分組樹、設(shè)備監(jiān)控信息動(dòng)態(tài)更新等功能的實(shí)現(xiàn)需要客戶端向服務(wù)器發(fā)出HTTP請(qǐng)求,服務(wù)器收到請(qǐng)求后進(jìn)行驗(yàn)證、訪問(wèn)數(shù)據(jù)庫(kù)等處理,處理完畢后刷新頁(yè)面顯示出結(jié)果給用戶,該技術(shù)大大提高了顯示效率。
為了能在web瀏覽器上顯示,要求用戶界面使用HTML以及圖片的方式來(lái)展現(xiàn)數(shù)據(jù),而傳統(tǒng)的一些利用操作系統(tǒng)本身的控件來(lái)開發(fā)的用戶界面無(wú)法適應(yīng)琳瑯滿目的客戶端,因此在這里也變得無(wú)能為力。為了創(chuàng)建一個(gè)可以在web瀏覽器上查看到圖表,可以直接在web服務(wù)器端生成圖表圖片文件后發(fā)送給瀏覽器。在本系統(tǒng)中我們采用JAVA的圖表引擎JFreeChart來(lái)產(chǎn)生基于WEB的圖表。它主要用來(lái)產(chǎn)生各種各樣的圖表,這些圖表包括:餅圖、柱狀圖(普通柱狀圖以及堆棧柱狀圖)、線圖、區(qū)域圖、分布圖、混合圖、甘特圖以及一些儀表盤等等。這些不同式樣的圖表基本上可以滿足目前的要求。在本系統(tǒng)中,我們使用JFreeChart來(lái)顯示各設(shè)備的使用情況,讓用戶可以對(duì)設(shè)備的大致情況一目了然。
本文討論基于Web2.0中小企業(yè)網(wǎng)管平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)。該系統(tǒng)采用了“集中管理,分布處理”的策略來(lái)設(shè)計(jì)中小企業(yè)網(wǎng)絡(luò)管理平臺(tái),并給出了一個(gè)比較靈活的設(shè)計(jì)方案。本系統(tǒng)采用了MVC模式來(lái)進(jìn)行系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。隨著web應(yīng)用程序的不斷發(fā)展,使用MVC模式可以很好地將web系統(tǒng)分為三層,使得程序開發(fā)人員更清楚的掌握項(xiàng)目的進(jìn)度從而對(duì)系統(tǒng)進(jìn)行更好的管理,在這種規(guī)范下設(shè)計(jì)出的web應(yīng)用程序大大提高了軟件的可擴(kuò)展性和重用性,保證了系統(tǒng)的穩(wěn)定性、靈活性、易維護(hù)性。
[1]陳春紅.基于SNMP的層次化網(wǎng)絡(luò)管理體系結(jié)構(gòu)的研究[D].華中師范大學(xué)學(xué)位論文,1999,7.
[2]朱非、肖德寶.基于Web/CORBA的網(wǎng)管關(guān)鍵技術(shù)的研究[J].小型微型計(jì)算機(jī)系統(tǒng),2000.
[3]袁嘉 基于Struts+Spring+Hibernate的Web開發(fā)框架[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用2008,04:210-214.
[4]何瑕,肖德寶.基于Web的網(wǎng)管中間層分布式對(duì)象建模策略及其實(shí)現(xiàn)[A].第十一屆中國(guó)計(jì)算機(jī)學(xué)會(huì)網(wǎng)絡(luò)與數(shù)據(jù)通信專業(yè)學(xué)術(shù)會(huì)議論文集[C].北京,2000.09.