??? 隨著網(wǎng)絡的迅速發(fā)展,NMS(network management system網(wǎng)絡管理系統(tǒng))出現(xiàn)和發(fā)展起來?,F(xiàn)有 NMS實現(xiàn)了連接各個專用的異構網(wǎng)絡,對不同地理區(qū)域的網(wǎng)絡運營中心實現(xiàn)集中管理、控制和監(jiān)控。實時監(jiān)控是網(wǎng)絡管理系統(tǒng)中一個基礎的功能?,F(xiàn)有的網(wǎng)管系統(tǒng)中實時監(jiān)控的實現(xiàn)是系統(tǒng)直接訪問設備,設備將系統(tǒng)需要的各項指標一一上報。這就存在以下兩個主要問題。問題一:如果有m個用戶需要同時對同一個指標進行監(jiān)控,系統(tǒng)就需要執(zhí)行m次命令,這增加了網(wǎng)絡流量和系統(tǒng)開銷。問題二:對新加入系統(tǒng)的 設備,網(wǎng)絡管理系統(tǒng)不能對它立即進行管理,增加完配置文件后,還要重啟系統(tǒng),相應的監(jiān)控指標才能開始工作。
??? 如果在用戶監(jiān)控指令和設備之間增加一個中間層,將多用戶需要監(jiān)控的所有指標進行列表,然后后臺根據(jù)列表實時的提供當前指標的最新值給每一個用戶,那么第一個問題就可以很好的解決。對新加入的設備,采用JMX技術的m-let服務,能從遠端或本地下載設備的管理程序,很好的對設備進行配置和管理,新加入的設備的指標就能立即上報,這樣第二個問題就能很好的解決。而且,用JMX技術來實現(xiàn)中間層是非常好的,JMX就是SUN公司為Application Management提出的解決方案。
二、?JMX技術簡介
??? JMX(java management extension)是一個說明了遠程或本地的java應用程序管理模式和接口的java標準。JMX 的目標只是定義構成 JMX 體系結構內(nèi)系統(tǒng)的接口,而不在不必要時指定實現(xiàn)和策略。根據(jù)JMX規(guī)范,JMX分為四層結構:

???? 對上圖的說明:JMX分為設備層,代理層,分布層和管理層。設備層是提供管理接口和JMX可管理資源的應用組件。設備層的組件有MBean,通知類,接口,宏數(shù)據(jù)類。
??? 代理層:通過管理接口直接訪問資源,應用MBean服務器暴露資源,提供很多的一般服務。服務包括:m-let 或管理 Applet 服務、監(jiān)視器服務、計時器服務、關系服務。
??? 分布層:提供接口給JMX管理應用程序來訪問代理層和在代理層登記的MBean。分布層的關鍵組件有:代理層的協(xié)議適配器、RMI、CORBA接口。
??? 管理層:監(jiān)視和管理被管理組件的應用程序??梢允翘貏e設計的工具或者通常的應用接口。關鍵組件有:管理應用程序。
這里特別強調(diào)一下代理層提供的服務。m-let 或管理 Applet 服務:動態(tài)設備的管理文件用m-let的方式從遠端或本地動態(tài)的裝入,m-let放在XML文件里,XML文件動態(tài)更新。設備裝入運行中的系統(tǒng),系統(tǒng)不重啟。監(jiān)視器服務:將代價高昂的遠程輪詢操作轉換成本地操作;監(jiān)控 MBean 屬性的特定更改并在觀察到更改時發(fā)送事件。這個功能管理已裝入系統(tǒng)的設備,當設備不可用,或發(fā)生任何故障,監(jiān)視器服務就會把消息發(fā)出。計時器服務:經(jīng)歷了指定的時間量后發(fā)送事件,或以指定時間間隔定期發(fā)送事件。輪詢、定時查看系統(tǒng)現(xiàn)有設備的運行狀況等方面得到大量的運用。關系服務:支持 MBean 之間的關系定義,并強制關系的完整性。這樣,整個MBean就是一個相互聯(lián)系的整體,系統(tǒng)事先定義好這種聯(lián)系,在運行中管理這些關系,在其他服務的支持下為動態(tài)管理提供基礎。
??? 被管理資源將屬性,對外能提供的服務以MBean(XMBean)接口的方式提供給MBean server,在MBean實現(xiàn)的類(X,即去掉MBean后綴)中必須要有一個沒有任何參數(shù)的構造函數(shù),這使得在MBean server端創(chuàng)建一個X類成為可能(如果有參數(shù),參數(shù)的類型,參數(shù)的具體值都不得而知)。MBean Server通過調(diào)用getAttribute(ObjectName,屬性名)返回一個對象,這個對象就是屬性的當前值;MBean Server通過調(diào)用invoke(ObjectName,方法名,方法的參數(shù)值,參數(shù)值的類型)來實現(xiàn)被管理資源的方法調(diào)用。
三、 將JMX技術應用到網(wǎng)絡管理系統(tǒng)的實時監(jiān)控中
??? 實時監(jiān)控的指標分為兩類:一是設備指標,設備指標是通過向設備發(fā)出指令,設備向系統(tǒng)匯報的指標,比如某個設備的CPU利用率,二是業(yè)務指標,計算業(yè)務指標首先要確保業(yè)務范圍內(nèi)的每個設備都在正常工作,然后從每個設備上獲得子指標,將這些指標運用相應的計算公式,從而得到業(yè)務指標,比如某個小區(qū)的網(wǎng)絡流量。下圖是系統(tǒng)的包結構:

??? 按照各自完成的職責,實時監(jiān)控模塊劃分成了三個包:gui,PNP,performance。圖中用虛線隔成上下兩個部分,下部分列舉當前支持的指標,上部分得到需要監(jiān)控的指標值。gui是前臺應用程序,它與用戶直接交互,負責把當前支持的設備指標和業(yè)務指標提交給用戶,用戶在其中選擇自己感興趣的指標,gui再把這些指標反饋給PNP。PNP是中間組織者,它擔負著把后臺的信息反應給前臺和得到前臺的需求,偵聽后臺結果的組織者角色。Performance是后臺的性能輪巡應用程序。它負責對被管理設備輪詢,和為前臺提供的服務指標輪巡和計算。?

?
??? ListChoices、DeviceParameterList、serviceMBeanList三個類在PNP包中。上圖說明了PNP向前臺提供的選擇服務。ListChoices是一個抽象接口,定義了三個函數(shù):listChoices(),listParameterByTarget(),listTargetByParameter()。DeviceParameterList和serviceMBeanList是實現(xiàn)listChoices的兩個函數(shù),這兩個具體實現(xiàn)是提供給用戶初選的。當用戶選定指標名(parameter)和目的地址(target)后,再加上該項監(jiān)控的監(jiān)控周期(interval),前臺將這三項通過RealTimeManagerSLSB傳到PNP。
??? RealTimeManagerSLSB在前臺的包中。SLSB是stateless session bean的意思,它是一個無狀態(tài)的事務bean,一個bean響應一個用戶調(diào)用。RealTimeManager是PNP的組件,

?? 它負責與前臺的RealTimeManagerSLSB打交道。它實現(xiàn)RealTimeManagerMBean接口,對外提供兩個方法getPollID(String
parameter,String target,int interval)其中,parameter是指標名稱,target是目的地址,interval是該項指標輪巡周期。前臺將當前支持的設備指標和業(yè)務指標進行選擇,把需要看到的指標信息交到PNP的RealTimeManager,RealTimeManager將根據(jù)每個target-parameter組合對生成一個RealTimeAdaptor,并返回一個pollID給前臺,前臺就根據(jù)這個ID號向PNP詢問當前這個target-parameter的輪巡值。
??? RealTimeAdaptor對servicePM和RealTimePoll進行偵聽,servicePM和RealTimePoll都是后臺應用程序組件,一個是對設備指標的輪詢,一個是對業(yè)務指標的輪詢、計算。

??? ServicePM和RealTimePoll的實現(xiàn)可以有多種方式,SNMP,CLI等等都行。上面提到的類都是繼承ServiceMBeanSupport類,這個類提供了比較完善的MBean功能支持。

?
四、?結束語
??? 現(xiàn)有網(wǎng)絡管理系統(tǒng)中網(wǎng)絡設備的實時監(jiān)控存在的網(wǎng)絡流量、系統(tǒng)開銷、對新設備的監(jiān)控等方面存在的問題利用JMX技術能很好的解決。在這個實時監(jiān)控模塊中,realtimeadaptor很好的攔截了相同任務的指標輪詢,從而使系統(tǒng)中對同一個監(jiān)控任務只執(zhí)行一次。M-let服務使得新加入設備可以立即提供對系統(tǒng)的服務,為動態(tài)網(wǎng)絡管理和監(jiān)控提供了基礎。目前,JMX規(guī)范只定義了設備層和代理層,在JMX規(guī)范完善后,JMX將在application management中發(fā)揮更大的作用。
參考文獻
1.Sing Li http://www-900.ibm.com/developerworks/cn/?? From black boxes to enterprises?????? 2003.4
2.Sunhttp://java.sun.com/products/JavaManagement/ Java Management Extension specification???? 1999.10
3.Benjamin G.Sullins?? Mark Whipple?? Ben G.Sullins?? JMX IN ACTION???? 2002.10
