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