APP下载

基于Web的多模式网络监控系统的设计与实现

2012-01-18靳建彬秦艺力

电子设计工程 2012年24期
关键词:网络拓扑网管前台

靳建彬,秦艺力,张 垚

(1.中国卫星海上测控部远望三号船通信部 江苏 江阴 214431;2.江南计算技术研究所 江苏 无锡 214083)

随着计算机网络在工业中的广泛应用,监视、控制网络设备的网络监控系统作用愈发重要。现有网管系统普遍存在如下不足:1)缺少兼容性,实际应用中的网络系统通常包含多种类型的网络产品,而网管系统一般是厂商为单类网络产品开发,如华为公司的IManager系统,不能兼容如Cisco交换机、天融信防火墙等其它公司的产品;2)模式单一,网管模式主要采用服务器后台进行周期性轮询机制,如华为网管,最小刷新间隔为1 min,网络状态监控与故障异常报告存在延时;3)系统复杂,需要提供独立网管服务器,耗费资源多,不方便使用。

远洋航天测量船通信IP网包含不同厂商的多种网络设备,需要兼容性强的网管系统。通信IP网对网络的可靠性、实时性要求很高,在特殊时刻需要实时查看网络状态,并及时报告网络异常。传统的网管系统不能满足测量船通信IP网的这些需求,为此文中开发了一种基于Web的多操作模式、兼容多种网络设备的网络监控系统。

1 相关技术原理

文中开发的网络系统基于Web模式,前台利用SVG技术绘制网络拓扑图形,通过JSON-RPC进行前台与后台的通信,后台使用PYTHON技术实现,采用JSON格式描述网络设备。

1.1 SVG

SVG是W3C(World Wide Web Consortium)制定的基于XML的可缩放矢量图形描述规范,可用于描述矢量图形、图像及文字等3类图形对象,与传统的图形格式相比,它不但占用空间小,可操作性好,并可以嵌入脚本语言以支持动画效果和交互能力,适合在网络上传输和显示。它基于XML,不但与现有的W3C其它开放标准有很好的兼容性,也能与其它组织的标准化技术很好的协同工作,在网络监控系统和很多其它实时系统中使用SVG[1]。

SVG特点:

SVG是矢量图,利用点和线等矢量化的数据描述图像,在图像中包含色彩和位置信息,图像品质不受设备分辨率影像,放大和缩小不影响图像品质。

SVG基于XML,不同于常规的图像格式,采用文本格式描述图像,完全支持DOM,可用程序语言动态生成。

SVG可以和Javascript结合,通过对SVG属性进行操作形成强大的显示效果。

1.2 JSON

JSON(JavaScipt Object Notation),JavaScript对象表示法。JSON是一种结构简单的序列化数据格式,容易与python和JavaScipt结合,解析方便。JSON格式如下示例:

Var router={“name”: “JY -Y3-AS-003”, “ip”:“30.70.0.45”,“manufacturer”:“huawei”}

JSON以一对花括号表示对象,通过列举以冒号分隔的名称和值来表示每一个属性,JavaScipt可以直接访问JSON对象的属性,eg:router.name,相比较XML不需要复杂的解析过程。

1.3 JSON-RPC

RPC(远程过程调用),运行于不同操作系统、不同环境中的软件通过网络发送基于消息的请求进行RPC,从而实现进程间通信。JSON-RPC,是在RPC概念上发展起来的一种规范和一组实现方案,采用HTTP作为底层通信协议、JSON为数据编码格式[2]。相比较以XML为数据编码格式的XML-RPC,JSON-PRC基于简单易用的JSON数据,具有执行效率高、解析简单、容易实现、平台无关等特点。

1.4 PYTHON

Python是一种很流行的程序语言,可以作为独立的程序和脚本在各种领域中应用。Python免费、可移植、功能强大,而且使用起来相当容易[3]。

开发者效率高:

相对于C、C++和Java等编译语言,Python的开发者效率提高了数倍。Python代码大小只有C++或Java的五分之一,意味着可以录入、调试和维护更少的代码。

Python程序可以立即运行,无需传统编译语言所必须的编译、链接等步骤,进一步提高了程序员的开发效率。

程序跨平台、可移植:

Python的标准实现方式是将源代码的语句编译(或者说是转换)为字节码的形式,之后再将字节码解释出来.由于字节码是一种与平台无关的格式,字节码具有可移植性.因此,Python语言具有跨平台和可移植的特性,绝大多数的Python程序不做任何改变即可在所有主流计算机平台上运行.例如,在Linux和Windows之间移植Python代码,只需简单地在机器间复制代码即可.

然而,因为Python没有将代码编译成底层的二进制代码(例如intel芯片的指令),一些Python程序将会比C这样的完全编译语言慢些。

1.5 Raphael库

Raphael是用一个小型的JavaScript库,符合W3C标准,用于绘制和编辑SVG矢量图形。利用Raphael创建的图形具有DOM结构,可以嵌入JavaScript脚本语言以支持动画效果和交互能力,并能够兼容不同浏览器[4]。

2 设计与实现

2.1 系统框架

文中设计基于Web方式的网络监控系统,包含前台和后台两部分,系统框架如图1所示。

图1 多模式网管系统总体框架图Fig.1 Structure diagram of the multi-mode network management system

用户登陆Web浏览器进入网络监控系统,通过前台界面交互按钮进行操作,对后台发出请求,利用JSON-RPC进行远程服务调用,后台执行相关业务处理模块并将网络实时状态信息返回给客户端。前台基于SVG技术和JavaScript脚本显示或更新网络拓扑图。

2.2 网管系统前台

前台是用户和综合网管系统进行交互操作的平台,包括用户交互模块和图形处理模块。用户交互模块的功能包括:实时查看网络拓扑、设置拓扑自动刷新间隔、重置拓扑等功能;图形处理模块的功能包括绘制拓扑图、更新拓扑图等功能。这些功能主要通过定义前台中的JavaScript脚本来实现。前台的逻辑运行框图如图2所示。

图2 前台逻辑运行框图Fig.2 Run block diagram of the front desk logic

用户操作界面,在JavaScript脚本中触发对服务端的服务请求,获取服务端的响应后,依据响应的网络状态信息调用SVG库函数绘制网络拓扑图或者更新网络拓扑图的链路状态,以图形界面的形式向用户呈现网络运行状态。下面是实时查看网络拓扑操作的客户端关键代码片段:

//点击界面中的立刻刷新按钮,触发相关联的脚本

$(“#refreshButton”).click(function(){…});

//在JavaScript脚本中对服务端的服务发起请求:获取网络接口状态,并设置回调函数为更新接口状态函数

ajaxRequest("getIfStatusJSONMT", updateIfStatus);

//在客户端脚本中定义更新接口状态的处理函数,根据服务端返回的接口状态信息进行更新处理。

updateIfStatus()

综合网管系统也能通过设置自动刷新间隔,实现自动拓扑刷新,如图3所示。

2.3 基于SVG的网络拓扑显示

网络拓扑可以看成是由网络设备(路由器、防火墙、交换机等)和连接这些网络设备的链路组成的[5]。在SVG文件中,我们可以分别用元素表示网络设备,用元素表示链路,用元素的相关属性stroke颜色表示链路的状态,green为正常,red为断开,gray为未知,如图4所示。下面是绘制拓扑图的关键流程代码:

图3 设置拓扑自动刷新间隔Fig.3 Set topology automatic refresh interval

1)初始化SVG图形

Var r =Raphael ("SVGHolder",SVGHolderWidth,SVGHolderHight);

2)设置结点设备初始位置、图像

var shape=r.image(entity.image, entity.x, entity.y, 32, 32);

3)绘制设备节点之间的链路

connection=r.connection (shapes[entity.shapeIndex],shapes[destEntity.shapeIndex],color,bgcolorwidth);

4)根据设备接口状态设置链路颜色

//0表示未知状态,1为连接,2为断开状态

if(1) connections[i].bg.attr({stroke:“green”});

else if(2) connections[i].bg.attr({stroke:“red”});

else connections[i].bg.attr({stroke:“gray”});

图4 网络拓扑显示图Fig.4 Network topology shown in figure

2.4 前台与后台的通信

由于文中的设备信息设计为JSON格式,因此前台与后台的通信方式采用JSON-RPC技术。JSON-RPC基于HTTP协议,能够获取前台的请求信息,传递给后台相应服务处理模块进行处理,并将响应信息以JSON-RPC的格式返回给客户 端 。 例 如 前 台 通 过 脚 本 ajaxRequest(“getTopoJSON”,topoResponseHandle),即可直接调用后台的函数getTopoJSON获取网络拓扑信息,中间的调用过程由JSON-RPC完成。

2.5 系统后台业务处理

综合网管系统后台的主要工作是对网络设备进行监控,获取网络状态信息,通过提供服务的方式接收并处理前台的请求,完成与前台的交互,实现网络监视功能。后台采用层次化结构设计,其分层结构如图5所示。

不同于常见的XML表示方法,文中提出一种新的方法来定义网络设备,即采用JSON文件的格式,通过设置包括设备名称、IP、接口、类型等属性来描述网络设备。这种表示方法数据结构清晰,层次简单,省去了复杂的XML文件DOM解析,既降低了开发的复杂度,又提高了网络反应速度。

图5 后台分层结构图Fig.5 Structure diagram of the background layers

JSON文件定义设备实例:

结点3{

“name”:“JY-Y3-AS-003”,

“ip”:“30.70.0.45”,

“interfaces”:{

“GigabitEthernet0/1/1”:{

“destEntity”:“JY-Y3-DS-001”,

“destInterface”:“GigabitEthernet1/0/5”

},

}}}

设备模块读取设备定义文件,定义操作设备的基本方法。设备管理模块管理底层设备,将设备数据提供给上层模块。服务处理模块封装并提供常见服务,供前台调用。

系统后台基于SNMP协议,获取网络设备状态信息,能够读取不同产品的私有MIB(管理信息数据库),兼容性强[6]。

为提高系统工作效率,后台通过多线程并行处理技术,并行获取设备参数、状态,大大提高了网络检索效率。

2.6 网管系统的实现

图6是文中开发的网络监控系统的初始界面。

图6 网管系统初始界面Fig.6 Initial interface of the network management system

从上图可见,综合网管系统提供了用户操作界面,用户可以通过刷新界面来获取实时网络信息,也可设定刷新间隔来自动进行网络监管。

网络拓扑图基于SVG绘制,可以通过缩放图像和拖动结点来显示美观的界面,反应网络实时状态,便于用户及时发现并处理网络故障。

此网管系统的主要功能是显示网络设备的连接拓扑图、网络设备间的链路通断状态、链路两端的接口信息和网络设备的在线情况等。

3 结 论

文中分析了目前网管系统的不足,研究了相关开发技术的原理,针对航天远洋测控船通信IP网的实际需求,设计并实现了一种网络监控系统,在实际中得到应用和验证。

此系统具有如下特点:兼容性强;实时性强;具有实时操作和自动监管两种模式;跨平台、效率高、易部署;界面美观友好,易操作。

[1]Ola Andersson ZOOMON AB,Phil Armstrong Corel Corporation,Henric Axelsson Ericsson AB,et al.Scalable Vector Graphics(SVG) 1.1 Specification.[EB/OL]. (2005).http://www.w3.org/TR/SVG/.

[2]李德贤,李嵩山,李志勇.JSON-RPC协议分析、扩展及其应用[EB/OL].(2007-10-02).http://www.paper.edu.cn/index.php/default/releasepaper/content/.

[3]Mark Lutz.Python学习手册[M].机械工业出版社,2009.

[4]Dmitry Baranovskiy.Small fix to glow and animation[EB/OL].(2011)http://github.com/DmitryBaranovskiy/raphael/raw/master/paphael-min.js.

[5]熊齐邦,鲁成茂.SVG和XML_RPC实现的Web方式网络拓扑显示[J].计算机工程,2005,31(12):220-223.XIONG Qi-bang,LU Cheng-mao.Web-based visualization of network topologies using SVG and XML-RPC[J].Computer Engineering,2005,31(12):220-223.

[6]杨妮妮,赵新慧.基于Web的SNMP网络管理[J].微计算机信息,2006(2-3):72,110-111.YANG Ni-ni,ZHAO Xin-hui.Web-based SNMP network management[J].Microcomputer Information,2006(2-3):72,110-111.

猜你喜欢

网络拓扑网管前台
基于通联关系的通信网络拓扑发现方法
能量高效的无线传感器网络拓扑控制
庞鲜、周衍耀室内设计作品
公路电助力 从幕后走向前台
孟晚舟:从前台打杂到华为副总裁
给水网管的优化布置研究
劳斯莱斯古斯特与魅影网络拓扑图
网站前台设计分包合同中应注意的问题
基于多任务异步处理的电力系统序网络拓扑分析
“五制配套”加强网管