摘要:本文在分析目前网络管理现状的前提下,采用面向对象技术,设计并实现了一个统一网管系统,并分析了系统的组成结构、功能特点及部分技术实现。最后分析了其不足,对网管系统的发展方向做了探讨。
关键词:电信管理网 简单网络管理协议 网管系统
1 网络管理的发展与现状
伴随Internet时代的到来,网络技术的迅猛发展,越来越多的、政府、学校、个人等都融入互联网当中,网络已经与人们的学习、工作及生活密不可分。而作为整个互联网的基础,电信网稳定、高效、准确的运行就显得极为重要。要做到这一点,除了要依靠网络设备本身和网络架构的可靠性之外,还必须依靠一套有效的网络管理手段来监测和管理整个网络,而传统的单层网络管理模式已经无法适应现代网络管理的需求。为了有效合理地管理现代网络,国际电信联盟电信标准化部门(ITU-T)于1988年,参考OSI系统管理框架提出了具有标准协议、接口和体系的管理网络--电信管理网(Telecommunication Management Net,TMN),作为管理现代电信网的基础。考虑将提供业务的电信网及其管理功能进行分离,使管理功能从电信网中独立出来单独组成一个网,即TMN。TMN制定了一系列的标准和管理功能,包括被管网元和网络管理系统之间的接口均被标准化了。只要被管网元和网络管理系统之间遵循TMN标准,完成一定的管理功能,就能够实现不同厂商的不同设备以及不同网络管理系统之间的互连互通操作。TMN体系按照不同的管理需求将整个电信网管理功能从低到高分作5层:网元层(NEL)、网元管理层(EML)、网络管理层(NML)、业务管理层(SML)、事务管理层(BML)。
目前,由于实际技术水平和应用条件的限制,网络管理主要集中在网元管理层和网络管理层,真正业务级的管理还只停留在理论研究阶段。网元管理层直接管理物理网络,是整个管理系统的基础。对电信网络运营商来说,随着通信业务量需求的成倍增长,网络规模的日益膨胀,网元设备的种类和数量不断增加,各个网元都有自己的管理系统,这给网络的管理维护带来了很多困难。为了提高网络管理的效率,很有必要对各网元进行集中管理,实现在一个统一的平台上管理各种设备。为了适应网络管理系统可扩展性的要求,我们将设计模式的思想融入网络管理框架设计中, 保证该框架具有良好的灵活性和可扩展性。

2 网络管理协议
当前最典型的网络管理协议有基于OSI七层模型的公共管理信息协议(CMIP)和基于TCP/IP的简单网络管理协议(SNMP)。OSI/CMIP系统管理模型是目前理论上最完备的网络管理模型,是其他网络管理模型的基本参考。但由于该模型比较复杂,实现代价高,因此并没有得到广泛的应用。相反,当初只是为了管理TCP/IP网络的SNMP却得到了迅速的发展和广泛应用。SNMP网络管理模型的突出特点是简单、易于实现,因而得到了厂商的支持。特别是在Internet上的成功应用,使得它的重要性越来越突出,已经成为事实上的工业标准。
SNMP 主要包括SMI (管理信息) 、MIB (管理信息库)和SNMP协议几部分。SMI 给出了管理对象定义的一般框架。MIB是设备所维护的全部被管理对象的集合。SNMP协议包括SNMP操作、SNMP信息的格式以及如何在应用程序和设备间交换消息。SNMP采用代理/ 管理站模型进行网络管理。
3 基于SNMP的统一网管框架设计
3.1 总体设计
统一网管平台提供一个高分布性,高扩展性的架构来保证应用的开发者可以用不同的方法来布置他们的网元管理系统。从横向分层的角度来看,平台可以分为支撑层(Support Layer)、框架层(Framework Layer)和应用层(Application Layer)。
统一网管平台从上讲仍是C/S,包括网管服务器和网管终端两大部分,通过网管服务器的级联构成多级网管,实现多级网管的无缝集成。其中框架层和支撑层位于服务器端,应用层位于客户端。
结构示意图 " hspace=12 src="http://www.studa.net/neteaseivp/resource/paper/doc/2005781120788011832/image002.gif" width=397 align=center u3:shapes="_x0000_s1027">
3.2 支撑层的设计
支撑层作为系统支撑平台为应用提供系统级的服务,包括消息服务、数据库访问和SNMP接口。支撑层是整个统一网管平台的基础。
3.2.1 消息服务
消息服务为系统中所有模块的交互提供支持,实现消息的路由转发,根据消息类型,转发到相应的处理模块。消息的格式如下所示:
消息头的定义如下:
typedef struct msg {
void *mlink; //指向的指针,形成消息链表
PID sender_pid; //发送进程标识
PID receiver_pid; //接收进程标识
BYTE msg_type; //消息类型(2或3,表示同步或异步进程消息)
WORD event_type; //事件类型
WORD msg_length; //消息长度,不包括头
}MSG_HEAD;
我们的系统使用的是非阻塞的异步消息机制,系统维护一个消息队列,这个消息队列用来存放系统各个模块产生的消息。程序中有一小段程序代码,叫做消息循环,用来从队列中取出消息,并且将它们发送给相应的消息处理程序。代码片断如下:
while (GetNmMessage (&msg, NULL, 0, 0))
{
TranslateNmMessage (&msg);
DispatchNmMessage (&msg);
}
3.2.2 数据库访问
数据库访问模块提供所有访问数据库的接口调用,并维护数据库连接池,其他模块只需向其申请数据库连接即可。