基于CORBA组件的分布式网管软件设计
2012-01-14赵瑜,刘勇,孔捷
赵 瑜,刘 勇,孔 捷
(海军装备研究院,北京100161)
0 引言
随着新技术、新业务的不断引入,通信网的复杂性日益增大,传统的网络管理系统需要具有良好的跨平台性和可扩展性,支持灵活的业务扩充,以适应网络的不断发展。中间件技术能够屏蔽底层平台的异构性,具有良好的跨平台性;组件式软件架构提供组件的灵活组装配置,具有良好的可扩展性和重用性,能够满足网络不断发展对网络管理软件的灵活可变的要求。CORBA技术作为跨平台的中间件技术,可以屏蔽编程语言和操作系统等异质性;另外能够提供一致的接口,为组件式软件开发提供了组件封装和组件间互通手段,因此基于CORBA的组件式网管架构能够实现分布式、跨平台以及可扩展的能力。
1 CORBA组件结构分析
1.1 CORBA组件结构
组件是软件系统中具有独立功能、高内聚性的结构块单元,是软件功能设计和实现的承载体。一个软件组件是由契约性接口说明和明确性上下文相关的软件单元组成,软件组件区别于软件模块的最大特点是组件的功能独立性、高度的可重用性、与语言和平台的无关性等特点。
CORBA组件模型是基于对象组织管理(OMG)组织所提出的CORBA规范设计的组件模型,CORBA是分布式对象计算规范[2],将面向对象技术应用于分布式计算环境。CORBA规范中的接口定义语言(IDL)屏蔽了应用程序间开发环境的差异性,其良好的结构化定义规范为功能组件的快捷封装提供了手段;另外基于对象请求代理(ORB)的通信调用方式为组件的装配和信息交互提供了总线式的管理方法。基于CORBA的组件结构如图1所示。
图1 基于CORBA的组件结构
1.2 结构特点
通过CORBA组件结构的描述,可总结其主要特点如下:
①基于CORBA的组件设计中,ORB提供了软件总线管理机制,便于各功能组件间的透明交互;
②将分布式计算同面向对象的概念相互结合,提供了面向对象的组件式设计结构;
③组件的功能独立性提高了软件的可扩展性和可重用性,为提高软件开发效率奠定基础;
④CORBA提供了组件封装的统一接口标准,提高了软件的规范性。
2 基于CORBA组件的分布式网管软件设计
2.1 构建组件模型
基于CORBA进行组件式软件设计主要包括4个步骤:定义软件框架及组件构成、构建组件模型、定义封装接口和软件实现与集成。其中构建组件模型是组件式软件设计的关键,组件设计的原则如下:
①组件内部依据高内聚原则,由一系列小的紧耦合的功能单元组成独立程序[6];
②组件通常设计为独立运行的功能进程,采用统一的接口定义语言进行封装;
③组件间主要通过定义接口进行信息交互与操作调用;
④一个网管系统的各组件可以根据应用需求进行组装,提供组装配置手段;
⑤组件的版本变化后,可以单个组件更新版本,不影响整个系统软件架构。
基于TMN的网络管理体系架构[1],网络管理系统基本功能组件包括:故障综合与分析组件、性能采集与统计组件、参数配置与维护组件、安全日志审计组件和事务管理组件等,因为IDL具有平台无关性,各组件采用CORBA IDL进行外部接口封装。
根据组件内部高内聚的原则,组件内部功能单元采用面向对象语言(如:C++、Java)进行定义,功能单元间采用高效率的API调用接口进行交互。下面以C++语言定义故障综合与分析组件内部为例,说明组件内部功能模型的设计方法。故障综合与分析组件定义故障通用管理类(AlarmManager)、状态采集类(StateQuery)、故障等级过滤分析类(Alarm-Filter)、故障综合类(AlarmSynthesize)和故障变化上报类(AlarmReport),类之间关系如图2所示。
图2 组件内部对象类关系
2.2 组件关系及接口设计
根据组件功能模型,利用CORBA产品提供的IDL接口定义语音完成各组件的对外封装接口的定义,确定组件间接口关系。为了将便于组件的统一管理和组件间的信息交互,定义公共属性及功能组件,该组件中定义公共父接口Common_I接口,接口内定义各组件统一的注册方法和数据类型。各功能组件根据功能实现分别定义功能域(module)、子功能接口(interface)和接口中的方法(method),方法所用到的数据类型根据其使用范围定义在module或interface中。
以故障综合与分析组件为例说明组件外部接口的封装定义。首先定义故障管理为功能域,在该功能域中可以定义域中公共的数据类型,定义FaultManager_I子功能接口,主要完成故障信息采集、过滤设置与综合等方法;定义FaultInform_I子功能接口,主要完成故障上报和告警参数变化上报等方法;另外在每个接口内可以定义该接口用到的数据类型,子功能接口需派生于Common_I接口,用于完成统一注册。
2.3 软件实现
基于CORBA的网络管理软件通过IDL完成功能接口描述后,即可以通过CORBA产品平台实现各功能接口的方法及调用等处理。
2.3.1 生成IDL框架
通过CORBA产品的IDL编译器能够由已定义的IDL文件生成客户端存根代码和服务器端框架代码,2个部分代码为软件功能处理的实现提供基本框架,在此框架基础上实现各种操作的处理[3]。
2.3.2 服务端及客户端编码实现
根据IDL框架,分别编写服务端和客户端应用软件,其中服务端软件实现就是在服务端框架代码的基础上,根据应用需求设计服务端软件运行流程,实现服务对象接口类及其方法。服务端的应用软件包含IDL生成的框架程序、对象实现类程序和服务主程序。客户端软件实现是在客户方框架代码的基础上,根据应用需要设计ORB接口调用处理流程,实现客户端对服务端的方法调用的应用[5]。
2.3.3 功能接口对象注册及对象获取
服务端的功能接口及方法实现后,需通过Common_I公共接口中的注册方法,将服务端实现的接口注册到入口对象上,客户端可以通过命名服务得到服务端入口对象,进而通过入口对象提供的获取功能接口的方法,得到所需的功能接口对象。
2.3.4 获取服务端对象方法实现
客户端需要调用服务端服务对象方法时,能够通过获取到的服务对象,调用该对象提供的方法,从而完成服务端与客户端的服务调用,其请求调用通过ORB完成,可以由ORB定位所调用的服务对象,因此,客户端应用程序无需知道服务端应用程序用何种语言实现,运行于何种操作系统平台上。
3 工程应用
3.1 应用现状
电信管理论坛TMF多技术网络管理(Multi-Technology Network Management,MTNM)团 队 在CORBA技术方面,为解决多技术管理问题提出了专门的解决方案[4],定义了基于CORBA的NMS(网络管理系统)与EMS(网元管理系统)之间的标准接口,按此标准能够实现多厂商网络管理系统之间的互联互通,屏蔽了各厂家产品的底层差异性。但是,随着网络业务的增多及网络组织的复杂化,虽然基于TMF标准屏蔽了多厂商间的互通问题,仍然不能解决网络管理系统适应网络快速发展的问题,采用基于组件的快速设计开发方法,能够提高软件的可扩展性、灵活性和可重用性。
3.2 SDH网络管理系统
随着SDH网络业务的增多,传统的SDH网络管理系统已不能适应网络业务及结构不断发展变化的需求,在某SDH网络管理系统项目中,采用了基于CORBA组件的网络管理构建方法,通过分析被管对象模型和管理需求,设计了基本功能组件、业务管理组件和被管对象相关的系列管理组件,根据被管网络环境不同,可以进行组件的灵活组装配置,大大提高了软件的可扩展性和灵活性,实现了系统对被管网络的灵活管理。
3.2.1 被管对象模型
SDH网络管理系统的被管对象主要包括:网络系统、子网、网元、拓扑连接、设备和端口部件等,继承关系如图3所示。
图3 被管对象继承关系模型
3.2.2 网管系统组件结构
根据被管网络的对象模型、通信业务应用和管理需求,SDH网络管理系统的组件设计可分为特定管理业务组件设计和通用管理组件设计。特定管理业务组件往往是针对具体的对象管理应用,主要按照其管理对象模型,对不同对象的特有操作进行封装,例如网元配置管理组件和设备管理组件等;对于通用管理组件,如系统用户管理和告警采集分析等,在设计时可以多考虑重用性。基于CORBA组件的SDH管理系统可定义的组件及结构如图4所示。
图4 基于CORBA的SDH网络管理系统组件结构
3.2.3 接口关系
为了便于组件的统一注册、维护与管理以及接口间通用数据类型的统一定义,设计公共注册维护组件接口Common_I,其他管理组件包括:网络拓扑管理组件接口SubnetTopoMgr_I和故障管理接口FaultInfoMgr_I等,针对业务方面的组件:通信业务管理组件接口CommuServiceMgr_I、电路资源管理组件接口 EResourceMgr_I和链路管理组件接口TopoLinkMgr_I等作为可扩展组件接口,各管理组件接口均继承于Common_I,并基于Common_I的注册方法进行组件注册、启动和注销,实现组件的灵活配置。
4 结束语
CORBA提供了一种允许在分布式和异构环境中构建组件模型的框架,基于CORBA开发的组件式应用系统可以透明地进行互操作,屏蔽了异构环境下操作系统和开发语言等种种差异性,具有更高的灵活性、可扩展性和重用性,能够适应复杂的、异构的和分布式的应用系统。
[1]OMG编著.CORBA系统结构、原理与规范[M].韦乐平,薛君敖,孟洛明,译.北京:电子工业出版社,2000.
[2]邹三庚.基于组件的软件技术及其在信息系统建设中的应用[J].中国无线电,2009(3):39-40.
[3] ITU-T Q.816.CORBA-based TMN Services[S],2001.
[4]MICHI H,STEVE V.基于C++CORBA 高级编程[M].徐金梧,徐 科,吕志民,译.北京:清华大学出版社,2000.
[5]成玉荣,王聪丽.基于TAO的CORBA应用软件设计[J].无线电工程,2010,4(11):13-15.
[6] TMF814Av2.1 TM FORUM MTNM.Implementation Statement(IS)Template and Guidelines[S],2002.