摘要:介紹了SNMP技術和 CORBA技術,探討了CORBA/SNMP網(wǎng)關的設計,討論了CORBA技術在分布式網(wǎng)絡管理中的應用問題。
關鍵詞:CORBA;SNMP;網(wǎng)關
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2008)30-0594-01
1 背景
目前我們在開發(fā)SNMP應用時,會遇到很多不同平臺不同語言的開發(fā)包。很多時候,做兩個不同應用有很多重復的工作,而這些工作僅僅是由于開發(fā)包的不同造成的。如果采用CORBA/SNMP網(wǎng)關,那么至少在同一種語言時不用重復工作了。而且因為CORBA的通用性,各個平臺語言都可以使用該網(wǎng)關,調(diào)用方法也大致一致,減少了一定的工作量。同時,開發(fā)人員在不太熟悉SNMP協(xié)議的情況下也可以進行應用的開發(fā)。
2 SNMP簡單網(wǎng)絡管理協(xié)議體系結構
SNMP,即Simple Network Management Protocol,是TCP/IP協(xié)議組中的應用層協(xié)議。雖然SNMP也可以在TCP之上工作,但一般來說,由于被管理網(wǎng)絡的不穩(wěn)定性,它是工作在用戶數(shù)據(jù)報協(xié)議(UDP)之上的。SNMP在體系結構分為被管理的設備(Managed Device)、 SNMP管理器(SNMP Manager)和SNMP代理(SNMP Agent)三個部分。被管理的設備是網(wǎng)絡中的一個節(jié)點,有時被稱為網(wǎng)絡單元(Network Elements),被管理的設備可以是路由器、網(wǎng)管服務器、交換機、網(wǎng)橋、集線器等。每一個支持SNMP的網(wǎng)絡設備中都運行著一個SNMP代理,它負責隨時收集和存儲治理信息,記錄網(wǎng)絡設備的各種情況,網(wǎng)絡治理軟件再通過SNMP通信協(xié)議查詢或修改代理所記錄的信息。對一獨立管理者來說,一個管理進程(manager process)在管理者控制對中央MIB(管理信息數(shù)據(jù)庫)的接入,并向網(wǎng)絡管理者提供接口。管理進程使用SNMP完成網(wǎng)絡管理,而SNMP在UDP、IP及相應特定于網(wǎng)絡的協(xié)議(如以太網(wǎng)、FDDI和X。25)之上實現(xiàn)。每一代理也必須實現(xiàn)SNMP、 UDP和IP。而且,存在一代理進程,它解釋SNMP消息并控制對代理MIB的遠端接入。對于支持其他應用(如FTP)的代理設備,除UDP之外還要求TCP。
管理者和代理間使用網(wǎng)絡管理協(xié)議聯(lián)系起來。網(wǎng)絡管理協(xié)議應包含下列能力:
1) 取Get:使管理者能檢索代理中的對象值;
2) 設置Set:使管理者能設置代理中的對象值;
3) 陷阱Trap:使代理能向管理者報告重要事件。
管理者可為管理應用發(fā)出3種SNMP消息:GetRequest, GetNextRequest和SetRequest。前兩個是get功能的變形。對這3種消息,代理都以GetResponse消息來確認,該消息將被傳送到管理應用。而且,當發(fā)生影響MIB及下端資源的事件時,代理可以發(fā)送陷阱消息。SNMP依賴于無法連接的UDP,而其本身也是無連接的。管理者與其代理間沒有實時連接,相反,每一交換都是管理者與一代理間分散的事務處理。
3 CORBA公共對象請求代理體系結構
簡單地說,CORBA(Common Object Request Broker Architecture)是一個面向?qū)ο蟮姆植加嬎闫脚_,它允許不同的應用程序之間可以透明地進行互操作,而不用關心對方位于何地、由誰來設計、運行于何種硬軟件平臺以及用何種語言實現(xiàn)。它提供建立一個面向?qū)ο蟮耐ㄓ弥虚g件的規(guī)范,該中間件允許軟件開發(fā)者編寫一些對象,這些對象可以與其他對象交互而不必知道那些對象具體如何,在何處實現(xiàn)。它支持在分布環(huán)境中構造、集成面向?qū)ο蟮能浖嫾?,由于CORBA在分布式環(huán)境中利用了面向?qū)ο蠹夹g,就允許將分布應用設計為一組相互合作的對象,并能在新的應用中重用這些己有對象。
CORBA的核心是ORB(Object Request Broker)。ORB扮演了經(jīng)紀人的角色,允許對象透明的發(fā)出請求,接收本地的或是遠端對象的響應。ORB可以使對象實時地發(fā)現(xiàn)對方,激活它們的各自的服務。ORB存儲構件注冊的接口信息,響應構件的實現(xiàn)(獨立的接口庫,實現(xiàn)庫)。ORB負責以下這些機制:為請求尋找相應的對象實現(xiàn),準備對象實現(xiàn)以接收請求,與構成請求的數(shù)據(jù)通訊。從客戶的觀點出發(fā),接口完全獨立于對象位置,語言實現(xiàn)以及其他在對象接口中所不反映的方面。ORB通過IDL框架或動態(tài)框架,定位適當?shù)膶崿F(xiàn)代碼、發(fā)送參數(shù)以及轉載控制到對象實現(xiàn)。框架特定于接口和對象適配器。在執(zhí)行請求時,對象實現(xiàn)可以通過對象適配器獲得一些來自于ORB的服務。當請求完成后,控制和輸出值返回給客戶。
4 CORBA/SNMP網(wǎng)關
4.1 CORBA/SNMP網(wǎng)關的優(yōu)點
在被管對象和管理者之間建立了一個CORBA/SNMP網(wǎng)關。其作用就是把SNMP操作和數(shù)據(jù)(包括監(jiān)聽陷阱信息)與CORBA對象之間進行一個映射和轉換,這樣,以前管理者直接對協(xié)議的操作就可以轉換為對CORBA對象的操作。這就形成了一個管理者/網(wǎng)關/代
理的三層結構。首先,對于管理者而言,他不需要了解SNMP管理管理資源的操作原語,不用了解具體的管理細節(jié),他要做的只是將它需要的管理功能用IDL進行描述,然后轉化成相應的對象服務。他只關心自己的應用就可以了,這樣網(wǎng)關就將SNMP操作原語屏蔽掉了;其次,ORB負責管理者和網(wǎng)關之間的通信。這樣可以屏蔽管理者和網(wǎng)關所處的平臺和所實現(xiàn)的語言,即管理者和網(wǎng)關可以處于不同平臺上,可以用不同的編程語言來開發(fā)。這樣可以利用現(xiàn)有的程序,增強代碼的可重用性;再次,通過利用CORBA,可以實現(xiàn)多個網(wǎng)關和多個管理者的共存,任何一個管理者都可以向任何一個網(wǎng)關發(fā)出管理請求。對于同一個管理資源,我們可以定義多個網(wǎng)關。這樣當某個網(wǎng)關中的CORBA服務程序由于某種原因不能正常工作時,CORBA可以自動查找其它網(wǎng)關中的CORBA服務程序來完成管理工作。
4.2 CORBA/SNMP網(wǎng)關的設計
CORBA在SNMP中的應用有兩種實現(xiàn)方法,一種是直接將SNMP中的操作原語直接包裝成CORBA對象,這樣管理者(CORBA客戶端)可以直接管理管理資源。另外一種是CORBA/SNMP網(wǎng)關。在本文中作者重點討論第二種方法。
圖1表示了CORBA/SNMP網(wǎng)關實現(xiàn)的框架。它包括:管理者(CORBA客戶端/服務端)、網(wǎng)關(CORBA服務端/客戶端/SNMP管理者)、SNMP代理。管理者發(fā)出管理請求,網(wǎng)關中的CORBA的服務端在接收到請求后,將管理請求轉換成SNMP操作原語的形式(Set/Get/GetNext),然后向管理資源發(fā)出操作命令,同時網(wǎng)關接收SNMP代理發(fā)回的結果(GetResposne)并生成相應的CORBA服務的請求,將結果傳回管理者。在這種實現(xiàn)框架中,管理者和網(wǎng)關互為客戶端和服務端,當管理者發(fā)送管理請求時,網(wǎng)關中的CORBA對象就作為服務端,提供轉換成相應的SNMP操作原語的服務;而當網(wǎng)關需要將代理返回的結果傳送給管理者時,管理者中的對象就作為服務端,提供接收結果并作相應處理的服務。
5 結束語
本文分別簡介了SNMP和CORBA技術,探討了在SNMP中應用CORBA技術的優(yōu)點以及CORBA/SNMP網(wǎng)關的設計。隨著Internet的發(fā)展,網(wǎng)絡的規(guī)模越來越廣泛,結構越來越復雜,因此分布式網(wǎng)絡管理成為今后發(fā)展的方向,而CORBA技術可以在分布式網(wǎng)絡管理中充分發(fā)揮它的跨平臺性,異構系統(tǒng)的集成性等特點.希望本文能對研究SNMP以及分布式網(wǎng)絡管理的同學有所幫助。
參考文獻:
[1] 朱其亮,鄭斌.CORBA原理及應用[M].北京:北京郵電學院出版社,2001.
[2] 肖科.SNMP網(wǎng)管系統(tǒng)關鍵問題的研究與實現(xiàn)[D].江蘇大學,2007.
[3] 仲兆祥,范戈.一個基于JIDM規(guī)范的CORBA/SNMP網(wǎng)關設計與實現(xiàn)[J].計算機工程,2000(09):89-91.
[4] 胡谷雨.網(wǎng)絡管理技術教程[M].北京:北京希望電子出版社,2002.
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文