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