基于XML的网络管理设计与实现

时间:2011-08-31

  随着计算机网络的爆炸性发展,其规模不断扩大,复杂性不断增长,传统的基于SNMP的网络管理系统及基于Web的网络管理系统在网络管理方面的局限性日益突出,因此迫切需要新的网络管理系统。新的网络管理系统需要新技术的支持。XML(Extensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言)。Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows、Mac OS, Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析他,并以XML格式输出结果。

  1  背景及相关技术

  1.1 基于SNMP的网络管理

  1990年,IETF提出了简单网络管理协议(Simple Network Management Protocol,SNMP),SNMP(Simple Network Management Protocol,简单网络管理协议)的前身是简单网关监控协议(SGMP),用来对通信线路进行管理。随后,人们对SGMP进行了很大的修改,特别是加入了符合Internet定义的SMI和MIB:体系结构,改进后的协议就是着名的SNMP。SNMP的目标是管理互联网Internet上众多厂家生产的软硬件平台,因此SNMP受Internet标准网络管理框架的影响也很大。现在SNMP已经出到第三个版本的协议,其功能较以前已经大大地加强和改进了。使用SNMP进行网络管理需要下面几个重要部分:管理基站,管理代理,管理信息库和网络管理工具。管理基站通常是一个独立的设备,它用作网络管理者进行网络管理的用户接口。基站上必须装备有管理软件,管理员可以使用的用户接口和从MIB取得信息的数据库,同时为了进行网络管理它应该具备将管理命令发出基站的能力。

  1.2 基于Web的网络管理

  基于Web的网络管理(Web-based Management,WBM)就是将Web技术运用到网络管理中,将浏览器作为客户端与用户进行交互,将Web技术的优势充分用于网络管理。目前,WBM的实现方式主要有2种。(1)代理方式:将Web服务器与Manager集成到一台服务器上。(2)嵌入方式:直接将Web服务器嵌入网络设备,浏览器可以利用HTML通过HTTP直接和网络设备中的Web服务器进行通信。

  当前,WBM的开放标准主要有2个。(1)基于Web的企业管理(Web-based Enterprise Management,WBEM):1996年由微软公司提出,目前已经得到了多家厂商的支持。它实际是一个面向对象的Web应用,其真正目标是实现现有的网络管理标准和协议的集成。(2)Java管理应用程序接口(Java-Management Application Programming Interface,JMAPI):是Sun公司作为它的Java标准扩展API结构而提出的,实际是一个完整的网络管理应用程序开发环境,充分利用了Java语言的跨平台、面向对象、适于分布式等特点,通过增加媒体间应用接口来实现Web浏览器与网络设备之间协议的转换。

  1.3 XML及相关技术

  XML是一种元标记语言,于1998年由World Wide Web Consortium(W3C)标准化,用于在WWW上进行文档交换。它具有SGML和HTML的双重优点,可以方便地在多种协议上传输结构化数据。XML本身具有很多优点:分离了文档的内容和显示格式,利用层叠样式单(Cascading Style Sheets,CSS)或可扩展样式单语言(eXtensible Stylesheet Language,XSL)来多样化显示同一个XML文档;运用文档类型定义(Document Type Definition,DTD)和XML模式(XML Schema)来支持文档的结构化定义;利用XLink、XPointer、XML Base扩展了链接功能;利用XML Encryption、XML Signature提高安全性;利用文档对象模型(Document Object Model,DOM)和XML简单应用程序接口(Simple APIs for XML,SAX)为XML文档的处理提供标准接口。XML是一个底层构建模块,其他技术都是建立在XML之上,因此XML完全适合于网络管理。在网络管理方面,XML也具有很多优点:管理信息易于模型化;把SNMP MIB的结构信息或Telnet(SSH,SSL)命令转换为XML文档非常容易;在信息传输时只要支持HTTP的设备就可支持XML;可以性传输大量数据;保证管理信息的高安全性等。

  2  用XML表示管理信息

  2.1 XML对SNMP管理信息的表示

  XML Schema的作用是定义一份XML文档的合法组件群,就像DTD的作用一样,一份XML Schema:定义了可以出现在文档里的元素;定义了可以出现在文档里的属性;定义了哪些元素是子元素;定义了子元素的顺序;定义了子元素的数量;定义了一个元素应是否能包含文本,或应该是空的;定义了元素和属性的数据类型;定义了元素和属性的默认值和固定值 ;XML Schema与SNMP MIB的对应转换关系如表1所示。

  根据表1的对应规则,可以将SNMP MIB2转换成的XML Schema如下:

  <?xml version=″1.0″ encoding=″utf-8″?>

  <xsd:schema xmlns:xsd=″Http://www.w3.org/2000/10/

  XMLSchema″>

  <xsd:element name=″Mgmt″>

  <xsd:complexType>

  <xsd:sequence>

  <xsd:element ref =″Mib-2″/>

  </xsd:sequence>

  <xsd:attribute name=″oid″type=″xsd:string″use=″fixed″

  value=″1.3.6.1.2″/>

  </xsd:complexType>

  </xsd:element>

  <xsd:element name=″Mib-2″>

  <xsd:complexType>

  <xsd:sequence>

  <xsd:element ref=″NodeName″/> …

  </xsd:sequence>

  <xsd:attribute name=″oid″type=″xsd:string″use=″fixed″

  value=″1.3.6.1.2.1″/>

  </xsd:complexType>

  </xsd:element>

  <xsd:element name=″NodeName″>

  <xsd:complexType>

  <xsd:simpleContent>

  <xsd:restriction base=″xsd:string″>

  <xsd:sequence>

  <!--下MIB子对象的XML Schema定义-->

  <xsd:element ref=″NodeName″/> …

  </xsd:sequence>

  <xsd:attribute name=″oid″type=″xsd:string″use=

  ″fixed″value=″OidValue″/>

  <xsd:attribute name=″Access″type=″xsd:string″use=

  ″fixed″value=″AccessType″/>

  <xsd:attribute name=″Status″type=″xsd:string″use=

  ″fixed″value=″StatusType″/>

  <xsd:attribute name=″Description″type=″xsd:string″

  use=″fixed″value=″DescriptionText″/>

  <xsd:attribute name=″Reference″type=″xsd:string″

  use=″fixed″value=″ReferenceType″/>

  <xsd:attribute name=″Index″type=″xsd:string″use=

  ″fixed″value=″IndexList″/>

  <xsd:attribute name=″DefaultValue″type=″xsd:string″

  use=″fixed″value=″DefaultValue″/>

  </xsd:restriction>

  </xsd:simpleContent>

  </xsd:complexType>

  </xsd:element>

  </xsd:schema>

  2.2 用XML表示Telnet(SSH,SSL)管理信息

  它初是由ARPANET开发的,但是现在它主要用于Internet会话。它的基本功能是,允许用户登录进入远程主机系统。起初,它只是让用户的本地计算机与远程计算机连接,从而成为远程主机的一个终端。它的一些较新的版本在本地执行更多的处理,于是可以提供更好的响应,并且减少了通过链路发送到远程主机的信息数量。Telnet服务虽然也属于客户机/服务器模型的服务,但它更大的意义在于实现了基于Telnet协议的远程登录(远程交互式计算),那么就让我们来认识一下远程登录。

  Telnet(SSH,SSL)命令的一般格式如下:

  #CommandName  options  parameters

  其中CommandName是命令名,options是命令选项,parameters是命令操作参数。Telnet(SSH,SSL)命令与XML Schema的对应转换关系如表2所示。

  根据表2中的对应关系,Telnet(SSH,SSL)命令转换成的XML Schema如下所示:

  <?xml version=″1.0″encoding=″utf-8″?>

  <xsd:schema xmlns:xsd=″Http://www.w3.org/2000/10/

  XMLSchema″>

  <xsd:element name=″CommandName″>

  <xsd:attribute name=″options″type=″xsd:string″value=

  ″optionsValue″/>

  <xsd:attribute name=″parameters″type=″xsd:string″

  value=″parametersValue″/>

  </xsd:element>

  </xsd:schema>

  除了可以用XML表示命令,还可以表示返回结果。

  3  基于XML的网络管理系统模型

  基于XML的网络管理是在基于Web的网络管理环境下用XML来表示、传输、处理、存储和显示管理信息。它用XML文档来定义管理信息,以XML文档的形式交换和处理管理信息。但XBM(XML-based Management)必须能管理当前广泛使用的基于SNMP Agent的网络设备及传统的基于Telnet(SSH,SSL)的网络设备,才具有真正的实用价值。为了在XBM中集成对多种网络设备的管理,可以根据嵌入Agent的种类把当前的网络设备分为3类:(1)基于SNMP代理的网络设备。它可以通过SNMP协议与基于SNMP的Manager通信,这是当前广泛使用的网络设备。(2)基于Web代理的网络设备。它以XML/HTTP的方式直接与基于XML的Manager通信,这是当前正在研究的网络设备。(3)基于Telnet(SSH,SSL)代理的网络设备,可以通过Telnet(SSH,SSL)命令行的方式来收集这类网络设备的信息或对其进行配置管理。根据基于XML的网络管理的基本要求,如图1所示。

  图1中的XBM模型采用了分层的结构,主要分为4层:第1层以Web浏览器作为客户端,与用户进行数据交互,并通过HTTP协议与下一层交换XML格式的管理信息。利用CSS或XSL来实现用XML文档表示的管理信息的多样化显示,真正实现“同一数据,多样显示”。第2层是一个服务器工作站,其中的Web服务器主要负责与上一层的客户端通信。管理服务器不但实现传统网络管理的功能,而且还负责管理下一层的转换网关。发出XML格式的Request,接收XML格式的Response,以处理XML文档的标准方法进行分析处理。利用XML Encryption和XML Signature技术保证用XML表示的管理信息的传输安全性;利用HTTP的Get方法实现SNMP的3种操作(Set、Get和Trap)及传统的Telnet(SSH,SSL)的命令行操作。第3层包括2个转换网关:(1)XML-SNMP转换网关实现XML文档和SNMP信息的互相转换。解析来自上一层的XML格式的Request,生成SNMP格式的Request,并通过SNMP协议传送到下一层基于SNMP代理的网络设备;解析来自下一层的SNMP格式的Response,生成XML格式的Response,并通过HTTP协议传送到上一层。(2)XML-Telnet(SSH,SSL)网关实现XML文档和Telnet(SSH,SSL)命令及命令执行结果的互相转换;解析来自上一层的XML格式的Request,生成Telnet(SSH,SSL)格式的Request,并通过Telnet(SSH,SSL)协议发送到下一层基于Telnet(SSH,SSL)代理的网络设备;解析来自下一层的命令执行返回的Telnet(SSH,SSL)格式的Response,生成XML格式的Response,并通过HTTP协议传送到上一层。第4层是3种被管网络设备,其中的Agent负责接收来自上一层的Request,收集所需管理信息,给出Response。

  XBM不但可以实现传统的基于SNMP网络管理系统的所有功能,而且解决了SNMP的2个比较突出的局限性。在效率方面,管理服务器可以发出命令,Agent执行多次,但通过网关的整合后返回的仅是一个XML文档。这样会大大减少要传输的数据量,并且使XML-SNMP网关越靠近SNMP Agent,传输的网络流量就越少。因为XBM是在基于Web的环境下使用XML技术的,所以它还继承了WBM的所有优点。此外,XBM还具有其他许多优点:(1)在系统设计上具有标准化的数据结构、清晰的定义、准确的编码方式和统一的访问接口。(2)在系统性能上,数据传输可靠性高,可传输大量管理信息,互操作性好,网络负载低,延迟小。(3)具有平台无关性,可以运行在多种操作系统之上,可以管理异构复杂网络。(4)用XML本身的安全机制来提高管理信息传输的安全性。(5)能管理多种网络设备,能以基于Web的方式对网络设备进行配置管理。

  4  结论及进一步的研究

  本文提出了一种新的XBM模型,它使用XML来表示、传输、处理和显示网络管理信息。该模型除可以直接管理基于Web的网络设备外,还利用2个网关实现了对传统的基于SNMP的网络设备和基于Telnet(SSH,SSL)网络设备的管理。但仍然有一些工作需要进一步深入研究。在该系统模型中若加入一层网关,当性请求大量管理信息时,可提高效率。


  

参考文献:

[1]. MIB datasheet https://www.dzsc.com/datasheet/MIB_2043408.html.


上一篇:浅谈Web服务的个人网页资源管理组件设计
下一篇:Web在上机作业管理系统中的应用

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料