基于 Java语 言的网络管理类别函数库的设计

2010-08-15 00:54李兴春
重庆高教研究 2010年6期
关键词:网络拓扑网络管理设计者

李兴春

(1.重庆文理学院 教务处,重庆 永川 402160;2.重庆大学 计算机学院,重庆 沙坪坝 400030)

网络管理工具已经变成了近来网络以及系统管理者必备的工具.在Web-Based的网络管理系统的设计与实现上[1-2],Java程序语言扮演着一个十分重要的角色.Java是个平台中立的程序语言,在任何支持Java虚拟机器的平台都能执行,具有高度的可移植性.Java能让浏览器可以执行网络管理的应用程序,对于实现 Web-Based的网络管理系统而言,是一个强而有力的技术[3-5].因此,目前设计 Web-Based网络管理系统的主流趋势便是以 Java作为系统组成的核心.

本文目的在于发展一套针对 Web-Based网络管理系统需要的 Java高级类别函数库(Class Library).在这套类别函数库(Class Library)中,将包含多种网络管理的高级功能,比如:网络拓扑结构的搜寻(Network Topology Discovery)、网络效能的监测(Network Performance Monitor),等等.另一方面,网络管理系统的程序设计者也不必花费许多的心力开发这些网络管理功能的程序,而可以直接地利用这套类别函数库(Class Library)中所发展出来的各式高级网络管理类别,可以更专注于系统的整合与使用者接口的设计.换句话说,这套类别函数库希望提供许多网络管理的程序组件,使用架构于这套类别函数库(Class Library)的程序设计者可以藉由组装这些程序组件,而简化网络管理系统的设计工作.

1 设计与实现

在所设计与实现的类别中,包含几个部分,分别是:高级网络管理信息类别、高级网络管理信息撷取类别、网络拓扑结构管理类别、网络效能监测类别以及网络管理档案存取类别.其中高级网络管理信息类别是最为基础的一个部份,因此也是我们首先加以设计以及实现的一个部分.

1.1 高级网络管理信息类别

这一类的高级类别,其目的在于包装各类的管理信息(Management Information).传统上,我们以MIB(ManagementInformation Base)来定义各类的管理信息[6],然而 MIB的定义方式对于开发网络管理系统的程序设计者来说,并不便利.而我们则将各种管理信息一一包装成为 Java程序语言中的类别.这样一来,将程序设计者原本必须直接操纵 OID的设计方式,转换成为以 Java类别的方式来思考,更贴近对象导向设计的哲学.每种管理信息,都被转换成为 JavaObject,程序设计者可以更容易地以对象导向的概念来操控这些管理信息.在MIB I(IManagement Information BaseII)中包括了数个 Group:System、Interface、IP、TCP、UDP、SNMP、ICMP,等等.

1.2 高级网络管理信息撷取类别

和高级网络管理信息类别息息相关的便是高级网络管理信息撷取类别.高级网络管理信息类别的目的在于封包、整理网络管理相关的类别并且将其转化成为 Java类别的形式.而高级网络管理信息撷取类别则实现了撷取这些网络管理信息的部分.这一类的类别,隐藏了以网络管理通讯协议去取得相关信息的部分,程序设计者只需轻易地呼叫相对应的方法(method)即可取得网络管理所需的信息.我们设计并实现了 3个高级网络管理信息撷取类别分别用来取得 MIB中的 object、column以及 table的值.它们的类别名称分别是:

MIBObjHunter

MIBColumnHunter

MIBTableHunter

事实上,当高级网络管理信息类别的对象实际被建构(construct)出来时,即会透过“高级网络管理信息撷取类别”来取得高级网络管理信息类别所代表的相关信息.因此,对于程序设计者而言,甚至不需接触到高级网络管理信息撷取类别,只需将高级网络管理信息类别建构出来,再透过高级网络管理信息撷取类别所提供的界面取得信息即可.

我们以实现的高级网络管理信息类别以及高级网络管理信息撷取类别作为基础,便十分轻易地为我们所开发的系统融入各种取得网管信息的模块.利用一个称为 InterfaceSummary的类别取得该被管理设备各个 interface的运作状态,程序设计者只需建构此类别的对象,传入欲取得被管理设备的 IP地址,类别内的建构机制即自动地利用 MIBColumnHunter来取得在MIB2中的一个 column,而将被管理设备各个 interface的运作状态取回.程序设计者只需利用 getSize()来取得该被管理设备究竟有多少 interafce,以及 getOper Status()来取得指定 interface的状态.可以说是相当地便利,可以为程序设计者节省许多宝贵的时间.

1.3 网络拓扑结构管理类别

架构在高级网络管理信息类别以及高级网络管理信息撷取类别之上,我们再发展了网络拓扑结构管理类别.这一类的类别,其目的在于依循一套完整自动化的网络拓扑结构搜寻的演算方法,将其设计成 Java程序语言中的类别,以对象导向的方式提供给程序设计者使用.这一类的类别包括了两类:第一类是各种网络拓扑中会出现的基本元素以及数据结构.我们以类别的方式加以定义,提供程序设计者以抽象高级的方式来处理这些在拓扑结构中会出现的元素,包括了这些类别:

Ether netAdd ress

Inter face

IpAddress

IpRange

Topology

TopologyLink

TopologyNode

Layer 3Device

Segment

Subnet

另一类则是实现搜寻网络拓扑结构算法的类别.这些类别将原本十分复杂而且繁琐的网络拓扑结构搜寻算法包装起来,成为一个自动化的机制,程序设计者只需呼叫所提供的方法(method),便可以轻易地取得网络拓扑结构的信息,包括了:

Discover

TopologyDiscover

因此,我们所实现的网络拓扑结构管理类别提供了极为实用,而且几乎是每个网络管理系统都必须提供的重要组件.不仅如此,更以极易使用的方式来加以呈现.

1.4 网络效能监测类别

网络效能监测类别的发展,则提供了另一个在一般网络管理系统中同样必备的效能监测功能.我们在计划中所设计的网络效能监测类别中,主要提供了一个监测器(Monitor)类别.程序设计者只需指定监测参数,并且建构监测器对象,即可由监测器对象自动地进行监测的动作[7].程序设计者在建构监测器对象时,可以同时指定多个欲监测网络效能信息(传入欲监测的“高级网络管理信息类别”即可),并且分别指定相对应的监测周期.在监测器对象被建构完成后,分别为每个监测的标的建立监测用的执行绪(thread).不同的执行绪之间相互独立.另外,还设计了一个称作“监测观察者(MonitoringObserver)”的界面(interface).使用监测者类别的系统,必须另外提供一个实现(implement)此界面的类别,并且以 addObserver()这个方法,使此类别的对象成为监测者的一个观察者.那么当各监测用的执行者取得网络效能信息时,便会将结果传递交予观察者.这种设计的模式在Java核心的类别库中也屡见不鲜.透过这种设计的模式,可以将接收监测结果的模块和实际监测的模块确实分离,避免各模块之间耦合过强.

1.5 网络管理档案存取类别

网络管理档案存取类别可以解决网络管理应用系统储存以及加载网管信息的需求.网络管理档案存取类别提供了程序设计者将网络管理信息储存在文件案之中的界面,也提供了由档案中加载的界面.它能协助程序设计者维护网管信息的永续性(Persistence).程序设计者需要储存对象状态时,即可将对象交予此永续对象管理者(利用 put()这个方法),而在下次取出时(利用get()这个方法),仍旧可以取得相同状态的对象.此永续性的维护乃是利用 Java程序语言的“Object Serialization”的特性,配合我们以档案系统实作一个允许存入档案的杂凑表(hashtable)来达成快速地存取以及取出物件的目的.

这类的类别使网络管理系统的设计者免于费心于信息存取的细节,只需专注于物件的处理即可.

2 结语

本文设计了各种类别协助程序设计者解决所会遭遇到的复杂问题.这些类别,可以大幅地缩短网管系统的开发周期,同时因为我们遵循对象导向的设计典范,因此更可使程序本身易于维护.

[1]Y Yemini.The OSI network management model[J].IEEECommunication Magazine,1993,31(5):20-29.

[2]Anonymous.ISO 9596/CCITT X 711[C].Common Management Information Protocol-CMIP,1991:32-26.

[3]Case JD,Fedor M S,Schoffstall M L,et al.Simp le network management protocol[M].RFC 1157,1990:32-29.

[4]T Berners-Lee.World-wide web:the Information universe[J].Elect.Networking,1992,1(1):13-16.

[5]James W-K Hong,J-Y Kong,T-H Yun,et al.Web-based intranet services and network management[J].IEEE Communications Magazine,1997,35:100-110.

[6]Muller N J.Web-accessible network management tools[J].International Journal of Network Management,1997,2:288-297.

[7]Arnold K,Gosling J.The Java programming language[C].Addison-Wesley,1996:32-36.

猜你喜欢
网络拓扑网络管理设计者
基于通联关系的通信网络拓扑发现方法
2020德国iF设计奖
基于OpenStack虚拟化网络管理平台的设计与实现
2019德国IF设计大奖
能量高效的无线传感器网络拓扑控制
电动汽车充电服务网络管理初探
劳斯莱斯古斯特与魅影网络拓扑图
基于EOC通道的SHDSL网络管理技术
基于多任务异步处理的电力系统序网络拓扑分析
杨敬:深水区医改设计者