王維列
摘 要: CORBA提供面向對象的互操作,作為實現分布管理對象訪問的處理方式,是很有應用前景的系統集成標準。在EMS北向CORBA接口功能的基礎上提出了接口的總體結構,并詳細討論了總體結構中通道模塊和業務模塊的設計和實現。系統運行表明,所設計的功能達到了預期要求。
關鍵詞: CORBA; 網元管理系統; 網管; 同步數字體系統
中圖分類號:TN915 文獻標志碼:A 文章編號:1006-8228(2013)05-13-02
Design of north CORBA interface for EMS network management
Wang Weilie
(Zhejiang Guangxin Research Institute of intelligent building, Hangzhou, Zhejiang 310012, China)
Abstract: The CORBA, as a means of implementation of distributed object management, is a promising standard for system integration, and provides an interoperation standard for object-oriented application. The overall structure of the interface is proposed based on the functions of EMS North CORBA interface, and the design and implementation of channel module and business related modules are carefully discussed. The running system shows that the designed functions are satisfactory as expected.
Key words: CORBA; EMS; NMS; SDH
0 引言
CORBA是由OMG( Object Management Group)負責制定和維護的一組規范。與過去面向過程的RPC(Remote Procedure Call)不同,CORBA基于面向對象技術,能解決遠程對象之間的互操作問題,是對象管理組織所定義的用來實現硬件、軟件之間互操作的解決方案,是邁向面向對象標準化和互操作的重要一步[1]。目前,國內外對CORBA技術的研究是朝著更高效、更實時、更多對象的方向發展?;谝陨显颍峁┗贑ORBA技術的多廠商接口已成為解決多廠商環境問題最理想的方法之一。在基于CORBA技術的多廠商接口中,EMS北向接口是實現整個多廠商接口的前提和關鍵,是SMN管理體系中網元管理層和網絡管理層之間的橋梁。它為NMS端提供各種預定義的操作,支持網管人員通過NMS系統對SDH設備直接進行操作。
1 EMS網管北向CORBA接口設計
1.1 總體結構
如圖1所示,EMS北向CORBA接口軟件處于廠商設備原有的EMS系統和綜合網管NMS之間,完成網管信息從網元管理層到網絡管理層的傳遞,它的數據主要來源于SDH設備和系統數據庫。從功能上看,EMS北向CORBA接口由通道模塊和業務處理模塊兩大部分組成。
[網管][通道模塊][業務處理模塊] [網絡單元數據] [NML][EML] [NorthBound][Socket] [數據庫][SQL]
圖1 EMS北向CORBA接口體系結構
1.2 通道模塊設計
在整個CORBA北向接口中,通道模塊封裝了所有與CORBA技術相關的操作,同時向其他模塊提供各種必要的接口。通道模塊中涉及到的主要問題有CORBA服務對象POA策略的選擇、CORBA通知服務的應用、大容量數據包的發送等。
⑴ POA策略的選擇
可移植對象適配器POA是基本對象適配器BOA的替代方式,提供大量可擴展的接口,來處理一些對于BOA來說不合理的要求。因此在北向CORBA項目中我們決定選擇POA作為對象適配器。
可以根據不同的應用背景在程序中設置多個不同的POA,每個POA根據在其上注冊對象的多少,訪問頻率,以及生命周期的不同選擇不同的策略。為一般管理接口對象和迭代器接口對象分別建立了一個POA,并為它們設置不同的策略,詳細描述如表1所示。
表1 POA策略的選擇
[ 策略 使用對象\&一般管理接口對象\&迭代器接口對象\&線程策略\&ORB_CTRL_MODEL\&ORB_CTRL_MODEL\&生命周期策略\&PERSISTENT\&TRANSIENT\&對象ID惟一性策略\&UNIQUIE\&UNIQUIE\&ID分配策略\&SYSTEMID\&SYSTEMID\&服務對象保留策略\&RETAIN\&RETAIN\&請求處理策略\&USE_ACTIVE_MAP_ONLY\&USE_ACTIVE_MAP_ONLY\&隱式激活策略\&NO_IMPLICIT\&IMPLICIT\&]
⑵ CORBA通知服務的應用
在基于CORBA的SMN體系結構中,一般采用CORBA標準的C/S調用模式來完成不同廠商系統之間信息的交換。這時,CORBA北向接口相當于CORBA服務器端,提供不同的接口對象供NMS端調用[2]。
但是另外有一類信息必須由被管理者主動地上報給管理者,使得管理端能夠及時進行處理。這類信息主要包括告警信息、性能越界信息,以及設備配置的改變信息等等[3]。對于這類信息,我們考慮采用CORBA通知服務來實現主動上報功能。這樣既能使被管理端信息實時主動地到達管理端,又能大大降低開發的復雜度。
上述類型的信息定義了以下的事件類型,基本上涵蓋了SMN中常見的應用:
NT_OBJECT_CREATION 對象創建;
NT_OBJECT_DELETION 對象刪除;
NT_ATTRIBUTE_VALUE_CHANGE 屬性值變化;
NT_STATE_CHANGE 狀態變化;
NT_ROUTE_CHANGE 路由變化;
NT_PROTECTION_SWITCH 保護倒換;
NT_TCA 性能門限突破;
NT_ALARM 告警上報。
當發生上述事件時,EMS主動地調用CORBA通知服務上報事件,而NMS端則可以根據自己的需要對這些事件進行過濾或預訂,以獲取自己感興趣的事件類型。
⑶ 大容量數據包的處理策略
在NMS和EMS交互的過程中涉及到大量大容量數據包的交換和傳遞。在設計的過程中,我們引入了迭代器的概念。迭代器是一個封裝了大容量數據包的對象,該對象提供獲取任意長度數據包的功能。通過迭代器的使用可以使大容量數據包分批傳送和處理,變串行過程為并行過程,增加了傳送和處理過程的靈活性和可控制性。
1.3 業務模塊設計
業務模塊完成與SDH相關以及其他的輔助功能,它除了要和通道模塊打交道之外,還要與系統數據庫和EMS網管系統進行交互。
1.3.1 日志處理子模塊
日志操作子模塊的主要任務是完成操作日志的顯示、打印和保存功能。根據面向對象的設計原則,為日志操作模塊設計了一個類TLog,向其他管理模塊提供日志的顯示、打印和保存接口。
1.3.2 數據采集子模塊
⑴ 實時數據的獲取
實時數據的獲取都要求與SDH設備進行通信。但是北向CORBA接口不可能與SDH設備直接通信,否則就成了另一個網元管理系統了。因此在設計的過程中,決定通過與EMS網管系統交互來間接獲取實時數據。北向CORBA接口與EMS網管系統交互的過程如圖2所示。
[網管][北向接口] [CORBA][網絡管理層][網元管理層][操作界面][管理代理][TCP/IP] [TCP/IP] [同步數字系統設備][EMS] [網絡單元層][Q3]
圖2 通過與管理代理交互獲取SDH設備上的實時數據
從圖2中可以看到,EMS系統由GUI和MANAGER兩部分構成,其中GUI是網管系統的操作界面,而MANAGER是管理代理,通過Q3接口與網元層的SDH設備直接進行通信,GUI和MANAGER之間通過TCP/IP協議進行交互。數據采集子模塊通過向EMS系統的管理代理MANAGER下發SOCKET命令來間接獲取實時數據。MANAGER收到SOCKET命令后通過Q3接口取得SDH設備上的數據再返回給數據采集子模塊??梢钥吹?,數據采集子模塊與MANAGER之間的交互過程和GUI與MANAGER之間的交互過程類似,因此可以采用相同的通信方式。
⑵ 數據庫數據的獲取
對于CORBA北向接口來說,數據庫操作主要是進行數據的獲取。可以使用C++BUILDER自帶的控件TDatabase通過BORLAND數據庫引擎BDE連接SQL Server數據庫,然后使用TBDEClientDataSet控件作為數據集來最終訪問數據庫[4]。
由于某一時刻可能有多個線程訪問數據庫,因此數據采集子模塊中將提供5個TBDEClientDataSet控件作為數據集池,每個線程必須先獲得當前空閑的數據集方能訪問數據庫,否則程序彈出無空閑數據集的異常。訪問數據庫采用直接寫SQL語句的方式,這樣可以使開發時有盡可能大的靈活性[5]。
⑶ 常量數據的獲取
對于常量數據,數據采集子模塊使用宏定義的方法,便于以后數據的修改和更新。當數據采集模塊從不同的數據源獲得了所需的數據之后必須按照約定的規則格式化數據,以便NMS能夠在獲得數據之后通過分析數據獲得所需的信息。
1.3.3 通知轉發子模塊
EMS北向CORBA接口是提供給網絡層管理系統NMS的一個接口,NMS可以通過該接口對SDH網絡進行各種預定義的操作。另一方面,EMS網元管理系統也可以對SDH網絡進行各種操作。這就涉及到一個網絡同步的問題,具體地說,當EMS網元管理系統對網絡設備進行了某項操作,并且這項操作將會影響到NMS系統的管理時,那么北向CORBA接口必須及時地把操作結果以通知的形式發送到NMS端;同樣的道理,當NMS對SDH網絡進行了某項操作,而這項操作將會影響到EMS端GUI界面的顯示時,則北向CORBA接口必須主動地把操作結果轉發給EMS系統,以及時刷新界面顯示。通知轉發子模塊即完成這部分功能。
因此,通知轉發子模塊可以直接使用數據采集子模塊中建立的命令發送通道,剩下來要做的只是命令字的定義而已。
2 結束語
本文對EMS網管北向CORBA接口的設計進行了詳細的探討。目前,CORBA技術還存在著一些缺點,如:對實時性能支持不太理想;對海量對象的支持不夠完善。這些都是我們今后研究的方向[6]。隨著CORBA3.0規范的推出和更多的CORBA服務規范和基礎設施規范的制定,這些問題將得到一定程度的解決。
參考文獻:
[1] 李玲,劉巖,林君.CORBA技術與TMN技術集成研究[J].長春郵電學
院學報,2001.19(4):1-6
[2] 吳軍等,盧正鼎.CORBA在傳輸網網絡管理系統中的應用[J].光通信
研究,2003.29(5):25-28
[3] 周文生,王學睿,胡維華.CORBA通知服務在TMN中的應用[J].計算
機應用,2003.23(12):132-134
[4] Borland/Inprise公司.C++ BUILDER 5開發人員指南[M].機械工業
出版社,2000.
[5] Konrad King著,杜大鵬譯.SQL編程實用大全[M].中國水利水電出
版社,2003.
[6] 朱其亮,鄭斌.CORBA原理及應用[M].北京郵電大學出版社,2001.