基于Web的网络管理远程控制系统设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于Web的网络管理远程控制系统设计与实现
摘要:基于web的网管远程控制系统是以web作为通信平台的网络管理监控系。本文分析了基于Web的网管远程控制系统工作原理及,建立了相应的模型及其数据交换机制,并提出了控制系统在实现过程中的一些改进措施。
关键词:网络管理远程控制Web
1、基于Web的网管远程控制系统工作原理
基于Web的网管远程控制系统是一个由被控端、服务器、主控端三层组成的体系结构。被控端程序安装成功之后便会自动收集被控端计算机的资料,包括IP地址、网络环境、操作系统环境(甚至超级用户口令)等,然后将获得的数据经加密处理后反复发往服务器,申请被控连接。
服务器程序安装成功之后会在网络上收集被控端程序发回的信息,并按照这些信息中的环境参数选择和配置适当的网络协议,最后向被控端计算机发出连接、控制指令。被控端程序则根据指令完成一系列进程操作和数据传输。主控端的网络管理员在远程控制中心通过Internet或Intranet连接到服务器,当服务器接收到远程控制中心设备的登录请求后,核查网络管理员的操作权限(验证身份和密码),并将有关登录信息添加到访问日志中,如果为无效登录则断开连接,否则自动建立连接并启动有关被控端设备的控制模块,准备接受远程控制中心的控制命令。这样远程控制中心就可以对被控端设备发送控制命令。对于远程控制中心所发送的每一条控制命令,现场被控设备在作出响应之后都将执行结果反馈给远程控制中心,从而保证控制动作的有效完成。
2、基于Web的网管远程控制系统模型
综合上述基于Web的网管远程控制系统工作原理,本文设计了如下的系统模型。
整个系统采用这样的处理逻辑:首先网络管理员通过浏览器向远程控制服务器方Web服务器提出HTTP请求。然后,Java Applet(包含CORBA客户方程序)随同HTML文件下载到主控端并由浏览器解释执行,Java Applet与控制服务器建立连接,通过IIOP协议进行通信。Applet与服务器交互进行用户认证(Authentication)、授权(Authorization)、建立会话等操作。控制服务器根据请求的内容查询被控端是否处于可控状态,基于查询结果向浏览器作出回应。如果被控端处于可控状态,则控制服务器在主控端计算机上再现被控端计算机屏幕状态,否则,提示出错信息。网络管理员进行监控操作只要通过Applet的界面就可以进行。控制服务器保存每一个客户的连接信息,根据这些信息可以较容易地实现数据的实时传输服务。
在该系统中,实时数据库服务器与Web服务器在逻辑上是相互独立的,它们可
以位于同一台机器上,也可以在不同的机器上。由于数据库服务器独立于Web服务器,一些高级的应用就可以运行而不影响系统的性能。例如对实时数据库的原始数据进行数据挖掘,提取有用知识,为单位资源规划提供有用信息,促进单位实现管控一体化的目标,并且通过Web服务器还可以发布这些加工后的信息。
3、数据交换
数据交换是基于Web的网管远程控制系统模型的关键,网络管理员要查看控制服务器采集的原始信息,数据需要经过三种主要的变换:(1)控制服务器中的数据采集程序通过SNMP代理或者发送信息浏览Agent采集原始管理信息,再由SNMP代理通过网络管理协议平台变换为SNMP的MIB格式数据,存入SQL数据库。完成该变换需要数据采集程序、SNMP代理和网络管理协议平台协同工作。
(2)主控端管理界面所输出的数据是通过浏览器访问web服务器,再经web服务器访问SQL数据库的数据得到的。访问SQL数据库可通过使用开放数据库互连ODBC或使用JDBC实现。本文是通过JDBC实现的。(3)为了实现在线监控和配置远程被控设备,控制服务器通过管理界面接收网络管理员输入的控制指令。而由于在线监控和配置数据不存入SQL数据库,故需要将从管理界面接收的命令通过远程管理程序作解释后交给SNMP代理,由其实时完成控制过程。
4、基于Web的网管远程控制系统的实现
4.1 线程的使用
为了实现对被控端计算机的有效控制,需要在主控端计算机上再现被控端计算机屏幕状态。每秒中需要多次更新屏幕,才能够达到像操作本地计算机一样操纵被控端设备。在实现过程中,系统创建了一个线程来循环地捕捉被控端设备的屏幕,这个循环要跟踪当前帧并响应周期性的屏幕更新要求。实现该线程的程序框架如下:
(1)定义Applet对象的同时定义Runnable接口,这样就可以继承线程的run()方法。(2)在Applet对象的stan()方法中创建一个屏幕捕捉线程并启动。(3)屏幕捕捉线程自动启动run()方法,将控制屏幕捕捉的循环放在这里。(4)run()方法每循环一次就调用一次repaint()方法,绘制被控端屏幕的一幅图像。(5)在Applet对象的stopO方法中,可以终止屏幕捕捉线程的执行。
4.2 消除远程控制窗口中被控端屏幕的闪烁
每帧图像消失后在人的视觉里只能保持几十毫秒的时间,而在上述屏幕捕捉线程实现时,如果从前一帧图像消失到下一帧图像绘制完成这一段时间超过了这几十毫秒,就会让人产生闪烁感。本文采用了重载update()方法来减少闪烁。
当远程控制系统的屏幕捕捉线程接收到一个重绘请求时,它就调用该应用程序的update()方法。在缺省的情况下,叩date()会清除整个应用程序所用的背景,然后再调用paint()方法。而在实际情况中,没有必要把整个背景完全消除,只需将前
一帧与即将显示的当前帧的不同之处清除就可以了。在远程控制窗口图形界面与前一帧的差别不太大时,可以通过重载update()方法来实现这一点。重载uPdate()方法,则应完全接管远程控制窗口图形界面的清除和显示工作。也就是说,将原来的update()方法的清除代码和在paint()方法中的绘图方法都包含在新的uPdate()方法中,从而避免了每次重绘时将整个区域清除。以下是重载叩date()方法的实现过程。
public void paint(GranhieSremoteGraphiCS){//调用paint方法
update(remoteGraphies):}
public void update(Graphics remoteGraphics){//重载update()方法
……//在重载后的update()方法中完成绘图操作}
4.3 加载MIB过程的改进
在传统网络管理系统设计中,当Java Applet需要加载MIB文件时,加载过程和语法分析是直接进行的,这是一件非常耗时的工作,甚至影响到系统的性能。本文在系统设计的过程中也注意到了这一点,因此采用了Advent公司提供的新的MIB语法分析器。新的语法分析器允许加载编译后的MIB文件。直接加载编译后的MIB文件可以缩短加载时间,提高系统性能。为了存储编译后的MIB文件信息,引入了两新的文件类型:cmi—这种文件类型用来存储MIB信息;cdS—这种文件类型用来存储MIB中节点的描述和索引。
参考文献:
[1]谢希仁.计算机网络[M].电子工业出版社, 2008.1
[2]王芬,赵梗明.基于SNMPv3网络管理系统的研究和应用[J].计算机技术与发展,2009(4)
[3]肖碗蓉,杨生举,杨灵歌.基于Web的集成化网络服务管理系统的研究与实现[J].现代图书情报技术,2009(11)