随着网络规模的扩大和技术的进步,通信网络结构也越来越复杂。目前国内大多数业务提供商分别建立了各自的网络管理系统,这些网管系统之间相互割裂,遗留下管理信息不能互通、网管协议互不兼容等问题。因此需要建立一个能够在混合网络环境下支持混合网络资源管理、网络运行监控、网络优化和业务调度的综合网络管理系统,从全网的角度提高网络资源综合利用率,加强全网维护能力。要实现对多专业网络的综合管理首先需要将各个专业网管系统采集来的数据进行统一整合适配,所以构建一个通用的接口适配器是构建综合网管系统的基础。
设计一个功能齐全、易于维护、便于“捆绑插拔”的接口适配器,必须有一套具有高度复用性和灵活性的系统设计方法。将设计模式引入到网管项目开发中,可以设计出一套易于维护、复用度高的系统。在接口适配器设计中遵循如下的软件设计原则:
1)“开-闭”原则。一个软件实体应对扩展开放,对修改关闭。做到“开-闭”原则的关键在于抽象化。给出一个或多个抽象类或接口,规定出所有的具体类必须提供的方法的特征作为系统设计的抽象层。
2)里氏代换原则。任何基类可以出现的地方,子类一定可以出现。里氏代换原则是对“开-闭”原则的补充,是对实现抽象化的具体步骤的规范。
3)依赖倒转原则。要依赖于抽象,不要依赖于实现。
4)接口隔离原则。为客户端提供尽可能小的单独的接口,而不要提供大的总接口,使一个软件系统在功能扩展的过程当中,不会将修改的压力传递到其他的对象。
5)软件可移植性。适配器(Adapter)设计的目标是整个程序几乎可不做任何修改,就可以在各种平台上运行。
1 接口适配业务流程
在大型网管系统中通常有多厂家协议接口,这些协议支持不同的厂商设备,或者它们可以处理由不同厂家对象产生的事件。为了保证网管系统之间的互通和互操作能力,提供协议发现功能模块来标识被管系统所支持的协议以及它们所能处理的操作和事件。一旦用户得到了协议的信息,就可以自动选择协议适配模块来适配命令和操作,并可以以统一的格式上报子系统的数据。
协议适配模块能够被发现,首先必须向平台框架登记。这通过该模块提供的两个接口方法注册和撤销注册来实现。这两个操作只作为组件功能的一部分,并不属于管理接口,从而可使服务与对象信息模型独立。一旦实现以后,协议发现模块不会因为对象信息模型的不同而发生改变,可用于Adapter平台集中管理系统中的所有协议模块。
2 协议发现功能模块
如图1所示,Adapter进程启动时首先读取配置文件config.xml,配置文件中描述接入平台的网管系统接口适配所采用的技术,利用虚拟工厂模式生成相应的接口适配对象实例,并向注册中心注册该实例。如果有新的接口适配接入,Adapter进程可以在运行中reload(Configcfg),FindService可以根据配置文件到对象池中发现该协议的接口类,生成相应的代理类,通过动态代理类实现协议发现。
协议发现模块控制对象的创建,隔离客户端与需求创建的对象。当客户端需要创建某个对象时,它必须先创建一个特定的工厂,然后触发工厂对应的方法去创建实际的对象。这个模块提供了创建关联对象与对象组两个功能,主要用于配置管理的对象工厂的实现。系统的设计目标是跨越多个操作系统平台,系统中有少部分功能需要针对不同操作系统平台作不同地实现。由于Adapter进程一启动就需要创建实例,然而当运行时,这些对象必须保证是同一个平台的实现,因此采用桥接模式和抽象工厂模式,为每一种平台提供一个工厂以创建所有对象,保证对象间的关联。
3 接口适配实现技术
在网管系统互操作的双方接口不一致的情况下,需要识别双方接口的差异,并针对具体的接口差异来定制接口适配器,最直接的定制方法就是直接编程实现接口之间的转换过程,包括通信协议、数据语法表示、语义表示各个层面上的转换。其中,专业网管系统的北向接口由各厂商提供,接口采用的通信协议和信息模型有很大差异。有新的接口接入就需要重新编程实现,重复性比较大,不利于统一管理。