一种实现corba与snmp转换的方法及中间件的制作方法

文档序号:7739638阅读:171来源:国知局
专利名称:一种实现corba与snmp转换的方法及中间件的制作方法
技术领域
本发明涉及无线通讯领域,尤其涉及一种实现CORBA与SNMP转换的方法及中间 件。
背景技术
目前,众多厂家都在生产用于组建网络的网络设备即网元,不同厂家所生产的不 同网元分别由自身的网元管理系统(EMS, Element Management System)进行控制和管理, 来实现针对各网元的网元管理层,而针对辖区内所有网元的网络管理层则由EMS之上的网 络管理系统来完成。其中,EMS为网络管理系统提供连接管理的"网络视图",网络管理系统 担任管理者的角色并且向各网元发送或从各网元中获取转发自EMS的信息。
简单网络管理协议(SNMP, Simple Network Management Protocol)是目前计算机 网络中应用最为广泛的网络管理协议。由于生产厂家不同,针对互联网上各网元的各EMS、 以及各网元之间的各接口,在开发SNMP应用时,往往需要针对各个不同网络平台所采用的 各种不同语言实现的开发包,做重复的处理工作。 公共对象请求代理体系结构(CORBA, Common Object Request BrokerArchitecture)是对象管理组织(OMG, Object Management Group)为解决分布式处 理环境(DCE, Distributed Computing Environment)中,硬件和软件系统的互连而提出的 一种解决方案,它在解决分布式异构环境系统之间的互操作性具有很大的优势,具有"软件 总线"的通用性,满足了分布式异构网络管理的需要。 因此,需要将CORBA与SNMP之间进行转换,才能实现对计算机网络的集中、统一的 网络管理。

发明内容
有鉴于此,本发明的主要目的在于提供一种实现CORBA与SNMP转换的方法及中间 件,能够将不同厂商的EMS纳入同一管理平台,实现计算机网络集中、统一的维护和管理。
为达到上述目的,本发明的技术方案是这样实现的 本发明提供了一种实现CORBA与SNMP转换的方法,所述方法包括调用已创建的 CORBA域中各网管的代理被管对象;由所述代理被管对象建立SNMP与CORBA之间的语法映 射;由所述代理被管对象建立SNMP域中各网元的SNMP消息与CORBA消息之间的映射。
在上述方案中,所述调用已创建的CORBA域中各网管的代理被管对象,具体包括
在代理被管对象域中创建代理被管对象;调用所创建的代理被管对象。在上述方案中,所述建立SNMP与CORBA之间的语法映射,具体为将CORBA中的接
口定义语言按照公共对象服务规范与SNMP中的管理信息库之间建立映射关系。在上述方案中,所述建立SNMP域中各网元的SNMP消息与CORBA消息之间的映射,
具体包括将SNMP中的名称、消息传送、事件传送映射为CORBA协议的命名服务、操作调用
和事件服务。
本发明还提供了一种网络管理方法,所述方法包括实现C0RBA与SNMP之间的转 换;根据所实现的转换,将接收的CORBA域中网管发出的请求转换为对SNMP接口的调用; 按照SNMP协议,将所述对SNMP接口的调用发送到SNMP域中的网元并接收SNMP域所返回 的消息;根据所实现的转换,将所述SNMP域所返回的消息转换成CORBA事件并向CORBA域 中的事件端口汇报。 本发明还提供了 一种实现CORBA与SNMP转换的中间件,所述中间件包括调用单 元、语法映射单元和消息映射单元,其中调用单元,用于调用已创建的CORBA域中各网管 的代理被管对象;语法映射单元,用于由所述调用单元所调用的代理被管对象建立SNMP与 CORBA之间的语法映射;消息映射单元,用于由所述调用单元所调用的代理被管对象建立 SNMP域中各网元的SNMP消息与CORBA消息之间的映射。 在上述方案中,所述中间件还包括创建单元,用于在代理被管对象域中创建代理 被管对象。 在上述方案中,所述语法映射单元具体用于将CORBA中的接口定义语言按照公 共对象服务规范与SNMP中的管理信息库之间建立映射关系。 在上述方案中,所述消息映射单元,具体用于将SNMP中的名称、消息传送、事件 传送映射为CORBA协议的命名服务、操作调用和事件服务。 本发明还提供了一种网络管理系统,所述系统包括中间件、CORBA处理单元、
SNMP处理单元,其中中间件,用于实现CORBA与SNMP之间的转换;CORBA处理单元,用于
根据所述中间件实现的转换,将接收的CORBA域中网管发出的请求转换为对SNMP接口的调
用;以及,用于根据所述中间件所实现的协议转换,将所述SNMP处理单元接收到的SNMP域
返回的消息转换成CORBA事件并向CORBA域中的事件端口汇报;SNMP处理单元,用于将所
述对SNMP接口的调用发送到SNMP域中的网元并接收SNMP域所返回的消息。 通过本发明所提供的CORBA与SNMP转换的方法及中间件,可以将用于管理各网元
的SNMP转换为跨网元、跨平台的CORBA,再由CORBA来管理各网管设备。这样,可以将存在
差异的各网元的EMS管理功能和接口标准,通过通用的CORBA协议实现其网络管理,从而能
够将各厂商的EMS纳入同一管理拼图,实现计算机网络集中、统一的维护和管理。 另夕卜,通过本发明将CORBA和SNMP转换,采用CORBA对网络管理系统中的各网元
进行管理,有利于减少各网元在开发其SNMP应用时的重复工作。另外,由于CORBA协议的
通用性,各网络管理平台都可以使用,且调用方法大致相同,有利于减少网络管理中协议开
发的工作量。


图1为本发明实现CORBA与SNMP转换方法的流程示意图; 图2为创建代理被管对象的实现流程示意图; 图3为调用所创建的代理被管对象的实现流程示意图; 图4为本发明的一种网络管理方法的实现流程示意图; 图5为本发明的实现CORBA与SNMP转换的中间件的组成结构示意图; 图6为本发明的一种网络管理系统的组成结构示意图。
具体实施例方式
下面结合附图对本发明的技术方案进行详细说明。 本发明的一种实现C0RBA与SNMP转换的方法,参照图1所示,主要包括以下步骤 步骤101 :调用已创建的CORBA域中各网管的代理被管对象; 步骤102 :由所述代理被管对象建立SNMP与CORBA之间的语法映射; 步骤103 :由所述代理被管对象建立SNMP域中各网元的SNMP消息与CORBA消息
之间的映射。 具体地,步骤101中调用已创建的CORBA域中各网管的代理被管对象,具体可以包 括 在代理被管对象域中创建代理被管对象;调用所创建的代理被管对象。 这里,在代理被管对象域中创建代理被管对象,参照图2所示,具体可以通过以下
流程来实现 步骤201 :在网管和代理被管对象域建立会话后,生成CORBA协议中的代理对象 (ProxyAgent)的对象引用,获取对代理被管对象域的访问权限; 步骤202 :根据所生成ProxyAgent的对象引用,调用ProxyAgent的get_ domaines_factory_finder方法,得到代理被管对象域初始FactoryFinder的对象引用;
步骤203 :根据所得到FactoryFinder的对象引用,调用ProxyAgent的 CosLifeCycle: :FactoryFinder,由网管所发送的标识代理对象工厂集合(mo_factories) 的key值查找匹配的mo—factories,如果未找到,则转入步骤204 ;否则,直接转入步骤
205 ; 步骤204 :由FactoryFinder创建一个与所述key值对应的mo_factories ;
步骤205 :调用ProxyAgent的CosLifeCycle: :Ge證icFactory: :—narrow,根据网 管所发送的CORBA协议接口 ,在所找到的或所创建的mo—factories中找到所需要的代理被 管对象工厂my—factory 。 步骤206 :调用ProxyAgent的create_obj方法,在my_factory中创建代理被管 对象的对象引用; 步骤207 :返回代理被管对象的对象引用给CORBA域中的网管,使得网管可以根据 该代理被管对象的对象引用,调用该代理被管对象。 这里,调用所创建的代理被管对象,参照图3所示,具体可以通过以下流程来实 现 步骤301 :由CORBA协议中的ProxyAgentFinder,找到ProxyAgent的对象引用,以 获得对代理被管对象域的访问权限; 步骤302 :根据所得到的ProxyAgent的对象引用,调用ProxyAgent的get_ domain_naming_context,得至lj ProxyAgent的NamingContext对象弓l用; [OO44] 步骤303 :根据所得到的NamingContext对象引用,调用NamingContext的 resolve方法,查找代理被管对象的对象引用,如果找到,转到步骤305,否则转到步骤304 ;
步骤304 :如果未找到所述代理被管对象的对象引用,则生成新的 ProxyAgent, 并调用get_domaines_factory_finder、 CosLifeCycle: :FactoryFinder、 CosLifeCycle: :GenericFactory: :_narrow、 create_obj,仓'J建代理被管对象;
步骤305 :返回代理被管对象的对象引用给C0RBA域中的网管,使得CORBA域中的 网管通过所述代理被管对象的对象引用,调用所述代理被管对象的方法,例如调用由代理 被管对象完成各网元数据配置的方法等。 具体地,步骤102中建立SNMP与CORBA协议之间的语法映射,具体为
将CORBA中的接口定义语言(IDL, Interface Definition Language)按照公共对 象服务规范(COSS, Common Object Services Specifications)与SNMP中的管理信息库 (MIB, Management Information Base)之间建立映射关系。 在实际应用中,建立CORBA与SNMP之间的语法映射关系,主要是将SNMP中的MIB 信息以CORBA中IDL的形式来实现,算法如下所示 在SNMP产生的包含在MIB中的接口 、类型、和常量,均在CORBA中以IDL形式做相 应描述。 具体地,MIB中的import (入口 )的类型,在CORBA协议中定义为IDL中的typeof ;
如果MIB中的至少一个group中有表格变量,则在CORBA协议中以IDL语言声明 SmiEntryFactory接口 ; 如果MIB中至少有一个NOTIFICATION-TYPE宏,那么在CORBA的IDL中声明两个 接口 , 一个为Notifications,另一个为PullNotifications,分别用于Push和Pull事件通 信中; 如果MIB中至少有一个包含DEF-VAL子句的OBJECT-TYPE宏,在IDL中声明 一个 伪IDL接口,名为DefaultValues ; 如果MIB中至少有一个包含DISPLAY-HINT子句的TEXTUAL-CONVENTION宏,在IDL 中声明一个伪IDL接口,名为TextualConventions ;在IDL中映射MIB中TEXTUAL-CONVENTION宏的SYNTAX子句的数值声明。
在IDL中映射SNMP中MODULE-IDENTITY宏调用的值为IDL的字符串常量。
在IDL中映射SNMP中OBJECT-IDENTITY宏调用的值为IDL字符串常量。
对应于MIB中每一个组,在IDL中生成一个与之对应的接口 ;
映射MIB中NOTIFICATION-TYPE或者TRAP-TYPE宏到IDL中一个类型为ASN1_ Objectldentifier的常量字符串上; 由编译器在IDL中产生一个文件,名为〈ModuleName〉. oid,每一行按下面四个 元素排列IDL接口层次名,OID(对象标识符,Object Identifier),变量的SMI类型, MAX-ACCESS,以对应网元的SNMP信息结构; 〗f IDL中CosLifeCycle: :LifeCycleOb ject接 口 禾口 CosPropertyService: : PropertySet接口作为MIB中S證Mgmt: : SmiEntry接口的父接口 , 使得MIB中的SNMPMgmt: : SmiEntry接口包含IDL中CosLifeCycle: : LifeCycleOb ject接 口禾口 CosPropertyService: :PropertySet接口的共同特性; 将MIB表目的OB用CT-TYPE宏映射为IDL中的一个Iterator的操作;
将MIB表目的OBJECT-TYPE宏中的INDEX映射为IDL常量。 上述实现CORBA与SNMP之间语法映射的关系可以根据实际应用的需要来增减,本 领域技术人员可以根据上述算法的具体实例,得到对算法进行增减的实现方式,在此不再 赘述。
具体地,步骤103中将SNMP域中各网元的SNMP消息映射为C0RBA的消息,具体包 括将SNMP中的名称、消息传送、事件传送映射为CORBA协议中的命名服务、操作调用和事 件服务。 其中,消息传送具体是指由代理被管对象向SNMP域中网元的消息传送,事件传送 由SNMP域中网元向代理被管对象的事件传送。
在实际应用中,具体流程如下 首先,将SNMP中各名称映射到CORBA,就是由基于CORBA命名服务的 NamingContext接口标准化SNMP的层次命名方式; 这里,在CORBA协议中,已经包含了 SNMP的MIB表目/组所映射的IDL接口,因此, 可以根据SNMP中的名称通过CORBA的命名服务来获取SNMP中MIB对象的对象引用。另 外,SNMP中的名称可以被注册到CORBA的命名服务中,使得可以按照类似Get-Next的字典 序来根据SNMP名称获取对象值。 这里,具体地,由基于CORBA命名服务器的NamingContext接口标准化SNMP中各 网元的主机名称、变量名以及索引名等。 其次,将SNMP中各网元的各变量名按照网元的不同映射到基于CORBA命名服务的
不同层次命名树上,使得SNMP域中的变量实例名映射为CORBA域中的属性变量。 这里,基于CORBA命名服务的层次命名树的基本结构与SNMP中MIB信息的树状结
构相同,将SNMP中MIB条目的根节点映射为该层次命名树的根节点,将MIB中的主机名、
SNMP信息模块名、组或表条目映射为IDL接口名、IDL行索引,作为CORBA中层次命名树的
叶节点。 再次,将SNMP中的get (获取)消息、set (设置)消息映射到CORBA中; 其中,set消息即由代理被管对象设置SNMP域中网元属性的行为信息,get消息代
理被管对象向SNMP域中的网元获取配置属性、性能信息、告警消息等的行为信息。 这里,set消息和get消息包含于上文中的消息传送,而执行该set消息和get消
息的结果则包含于上文中的事件传送。 具体地,根据上述所定义的IDL中CosLif eCycle: : Lif eCycleOb ject接口和 CosPropertyService: : PropertySet接口作为MIB中S證Mgmt: : SmiEntry接口的父接口 , 建立CORBA域中接口与SNMP中get_a_variable(获取变量)方法之间的调用关系,CORBA 域中的相应接口调用SNMP API函数中的get函数,得到代理被管对象的MIB变量值,从而 实现SNMP中get消息到CORBA域的映射。 将SNMP中的set消息映射成CORBA协议中的SnmpGateway: : def ine_variable,对 应于SNMP中SNMPMgmt: :ProxyAgent中的set_a_variable (设置变量)方法。在SNMP的 set_a_variable方法实现中,由CORBA中的SnmpGateway: : def ine_variable调用SNMPAPI 函数中的set函数,来实现SNMP中set消息到CORBA域的映射。 基于上述CORBA与SNMP转换的方法,本发明还提供了一种网络管理方法,参照图 4所示,主要包括以下步骤 步骤401 :实现CORBA与SNMP之间的转换; 这里,实现CORBA与SNMP之间转换的具体流程如图l所示,已在上文中详述,在此 不再赘述。
步骤402 :根据所实现的转换,将接收的CORBA域中网管发出的请求转换为对SNMP接口的调用; 具体地,按照所实现的转换,根据CORBA域中网管发出的请求调用对应的代理被管对象,由该代理被管对象将所述请求对应的CORBA语法映射得到对应的SNMP语法,最后再由代理被管对象将所述请求对应的CORBA消息映射得到对SNMP接口的调用消息。
步骤403 :按照SNMP协议,将所述对SNMP接口的调用发送到SNMP域中的网元并接收SNMP域所返回的消息; 步骤404 :根据所实现的转换,将所述SNMP域所返回的消息转换成CORBA事件并向CORBA域中的事件端口汇报。 具体地,按照所实现的转换,将所述SNMP域所返回的消息映射得到对应的CORBA消息,再由SNMP域所返回消息对应的SNMP语法映射得到对应的CORBA语法、最后调用对应的代理被管对象得到对应的CORBA事件。 本发明的实现CORBA与SNMP转换的中间件,参照图5所示,主要包括调用单元51 、语法映射单元52、消息映射单元53,其中 调用单元51,用于调用已创建的CORBA域中各网管的代理被管对象; 语法映射单元52,用于由所述调用单元所调用的代理被管对象建立SNMP与CORBA
之间的语法映射; 消息映射单元53,用于由所述调用单元所调用的代理被管对象建立SNMP域中各网元的SNMP消息与CORBA消息之间的映射。 其中,所述中间件还可以包括用于在代理被管对象域中创建代理被管对象的创建单元54。 具体地,所述语法映射单元52用于,将CORBA中的IDL按照COSS与SNMP中的管理信息库之间建立映射关系;所述消息映射单元53用于,将SNMP中的名称、消息传送、事件传送映射为CORBA协议的命名服务、操作调用和事件服务。 基于上述中间件,本发明还提供了一种网络管理系统,参照图6所示,主要包括上述的中间件61、 CORBA处理单元62、 SNMP处理单元63,其中
中间件61 ,用于实现CORBA与SNMP之间的转换; CORBA处理单元62,用于根据所述中间件61实现的转换,将接收的CORBA域中网管发出的请求转换为对SNMP接口的调用;以及,用于根据所述中间件61实现的转换,将所述SNMP处理单元63接收到的SNMP域返回的消息转换成CORBA事件并向CORBA域中的事件端口汇报; SNMP处理单元63,用于将所述对SNMP接口的调用发送到SNMP域中的网元并接收SNMP域所返回的消息。 以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
9
权利要求
一种实现CORBA与SNMP转换的方法,其特征在于,所述方法包括调用已创建的CORBA域中各网管的代理被管对象;由所述代理被管对象建立SNMP与CORBA之间的语法映射;由所述代理被管对象建立SNMP域中各网元的SNMP消息与CORBA消息之间的映射。
2. 根据权利要求1所述的实现CORBA与SNMP转换的方法,其特征在于,所述调用已创建的CORBA域中各网管的代理被管对象,具体包括在代理被管对象域中创建代理被管对象;调用所创建的代理被管对象。
3. 根据权利要求1所述的实现CORBA与SNMP转换的方法,其特征在于,所述建立SNMP与CORBA之间的语法映射,具体为将CORBA中的接口定义语言按照公共对象服务规范与SNMP中的管理信息库之间建立映射关系。
4. 根据权利要求1至3任一所述的实现CORBA与SNMP转换的方法,其特征在于,所述建立SNMP域中各网元的SNMP消息与CORBA消息之间的映射,具体包括将SNMP中的名称、消息传送、事件传送映射为CORBA协议的命名服务、操作调用和事件服务。
5. —种网络管理方法,其特征在于,所述方法包括实现CORBA与SNMP之间的转换;根据所实现的转换,将接收的CORBA域中网管发出的请求转换为对SNMP接口的调用;按照SNMP协议,将所述对SNMP接口的调用发送到SNMP域中的网元并接收SNMP域所返回的消息;根据所实现的转换,将所述SNMP域所返回的消息转换成CORBA事件并向CORBA域中的事件端口汇报。
6. —种实现CORBA与SNMP转换的中间件,其特征在于,所述中间件包括调用单元、语法映射单元和消息映射单元,其中调用单元,用于调用已创建的CORBA域中各网管的代理被管对象;语法映射单元,用于由所述调用单元所调用的代理被管对象建立SNMP与CORBA之间的语法映射;消息映射单元,用于由所述调用单元所调用的代理被管对象建立SNMP域中各网元的SNMP消息与CORBA消息之间的映射。
7. 根据权利要求6所述实现CORBA与SNMP转换的中间件,其特征在于,所述中间件还包括创建单元,用于在代理被管对象域中创建代理被管对象。
8. 根据权利要求6或7所述实现CORBA与SNMP转换的中间件,其特征在于,所述语法映射单元具体用于将CORBA中的接口定义语言按照公共对象服务规范与SNMP中的管理信息库之间建立映射关系。
9. 根据权利要求6或7所述实现CORBA与SNMP转换的中间件,其特征在于,所述消息映射单元,具体用于将SNMP中的名称、消息传送、事件传送映射为CORBA协议的命名服务、操作调用和事件服务。
10. —种网络管理系统,其特征在于,所述系统包括中间件、CORBA处理单元、SNMP处理单元,其中中间件,用于实现CORBA与SNMP之间的转换;CORBA处理单元,用于根据所述中间件实现的转换,将接收的CORBA域中网管发出的请求转换为对SNMP接口的调用;以及,用于根据所述中间件所实现的协议转换,将所述SNMP处理单元接收到的SNMP域返回的消息转换成CORBA事件并向CORBA域中的事件端口汇报;SNMP处理单元,用于将所述对SNMP接口的调用发送到SNMP域中的网元并接收SNMP域所返回的消息。
全文摘要
本发明公开了一种实现CORBA与SNMP转换的方法,主要包括调用已创建的CORBA域中各网管的代理被管对象;由所述代理被管对象建立SNMP与CORBA之间的语法映射;由所述代理被管对象建立SNMP域中各网元的SNMP消息与CORBA消息之间的映射。另外,本发明还公开了一种实现CORBA与SNMP转换的中间件,通过本发明,能够将存在差异的各网元的EMS系统管理功能和接口标准,通过通用的CORBA协议实现其网络管理,从而能够将各厂商的EMS纳入同一管理平台,实现计算机网络集中、统一的维护和管理。
文档编号H04L29/06GK101778106SQ20101000122
公开日2010年7月14日 申请日期2010年1月13日 优先权日2010年1月13日
发明者夏平, 李东盛, 黄晓军 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1