嵌入式Web网管系统及其交互方法
技术领域
本发明涉及网络管理系统,特别涉及在嵌入式设备中实现网管的技术。
背景技术
在嵌入式设备的Web网管领域,Web网管的根本目的是实现管理员通过与Web网页交互的方式,达到对设备控制和状态监视的目的。嵌入式设备的Web网管系统的基本组成包括一组web网页,用于通过Web浏览器显示网管信息并接受管理员的操作;一个在设备中实现的Web服务器,用于提供网管所需要的设备信息;一个通信协议,用于传输交互数据。其交互过程通常包含以下步骤:网管员通过与Web网页的交互,其信息通过通信协议传送到Web服务器,Web服务器得到设备信息处理请求之后,其结果再通过通信协议传回到Web浏览器,在Web网页中展现结果给网管员。
目前嵌入式设备的Web网管系统主要的实现方案有两种,一种是Web服务器由多个CGI(公共网关接口)构成,Web网页为标准HTML网页和脚本,通信协议为HTTP。这种方案的特点是,Web服务器的CGI程序代码,直接调用设备程序代码执行来自网管员的网管命令,其结果通过动态生成的Web网页返回给Web浏览器。这种方案的缺点是,需要在嵌入式设备中进行开发调试,CGI程序代码与嵌入式系统耦合比较紧密,升级网管程序时需要中断运行的业务,且开发调试难度比较大,开发周期较长。
另一种现有实现方案是,Web服务端提供一个可以传递设备Shell命令和结果的CGI,Web网页以Applet(Java小程序,一种嵌入到web中执行的Java组件)或者ActiveX(Microsoft公司的活动组件技术,也是一种可以嵌入到web中执行的程序组件)为主,通信协议也为HTTP。这种技术的特点是Web服务器的CGI,通过设备Shell执行来自网管员的网管命令,Web网页中的Applet(或者ActiveX)通过Web服务端CGI与设备Shell交互,完成网管功能返回给Web浏览器。这种技术的缺点是,需要占用较大的存储空间来存放Applet或者ActiveX,这对于嵌入式设备来说影响比较大。同时它可能还要求Web浏览器需要安装Java虚拟机。
发明内容
本发明所要解决的技术问题,就是针对现有嵌入式设备Web网管开发周期长、占用存储空间大、无法灵活裁减和升级的缺点,提供一种占用存储空间小、开发周期短、可以灵活裁减升级的嵌入式Web网管系统。
本发明解决所述技术问题,采用的技术方案是,嵌入式Web网管系统,包括Web浏览器,Web服务器及设备的Shell接口;其特征在于,还包括一组Web网页和脚本;
所述Web服务器包含一个可以传递设备Shell命令和执行结果的CGI;
所述Web网页采用标准HTML标签构成,所述脚本用于与所述CGI交互;
所述Web浏览器用于支持标准HTML和脚本的显示和执行。
进一步的是,所述Web网页和脚本能够将网管员操作转变为设备Shell命令的处理脚本,以及将设备执行Shell命令结果进行解析,并将解析后的内容展现在Web网页中。
进一步的是,所述Web浏览器可以从Web服务器下载Web网页和脚本。
进一步的是,所述脚本嵌入到Web网页中执行。
再进一步的是,所述Web网页和脚本以压缩方式存储在设备中。
再进一步的是,所述Web网页和脚本能够以文件为单位单独升级。
嵌入式Web网管交互方法,包括以下步骤:
a.Web浏览器从Web服务器下载Web网页和脚本,然后进行解释和执行,供网管员浏览;
b.网管员通过Web浏览器浏览该Web网页,执行网管操作;
c.Web浏览器Web网页的脚本获取网管员的网管操作后,将网管操作转换为对应的设备Shell命令,调用Web浏览器中的HTTP通信组件传递到Web服务器中的指定CGI;
d.Web服务器接收到请求之后,调用CGI程序,将请求的Shell命令通过Shell接口传递给设备的Shell进程,Shell进程执行该命令后将执行结果返回,CGI程序接收到执行结果之后,通过Web服务器传递到Web客户端;
e.Web浏览器接收到执行结果,通过脚本解析后,将执行结果显示在浏览器的Web网页中供网管员查看。
本发明的有益效果是,网管开发的工作完全移到了Web网页中,设备端的工作变得单一和通用,Web网页和脚本可以在PC机上直接调试,加快了开发进度,由于Web网页和脚本均为文本文件,文本文件的高压缩比使得网管程序占用设备存储空间非常小,基于Web网页的功能组织使得Web网管可以灵活的裁减和升级。
附图说明
图1是本发明的Web网管体系结构示意图。
具体实施方式
下面结合附图及实施方式,详细描述本发明的技术方案。
如图1所示,本发明包含如下组件:嵌入式设备中的Web服务器、设备的Shell接口、用于传送Shell命令和结果的CGI、Web浏览器、一组用于网管的Web网页和脚本。
其中,Web服务器在设备中实现,提供标准的HTTP服务功能,且能够读取以压缩方式保存在Web服务器上的Web网页和脚本,并且提供相关接口对Web网页进行单独升级。
嵌入式设备中的Shell接口(又简称Shell)是设备中提供出来的文字方式的配置接口,一般提供给管理员配置设备和查看设备状态时使用,通常对Shell的操作方式有两种,其一是通过设备提供的配置口(一般称之为Console口)连接到PC上,管理员通过PC上的终端程序连接到设备的Shell中直接进行配置操作;其二是采用Telnet或者是SSH方式通过网络远程登录到设备Shell中,对设备进行操作。本发明中对Shell的操作是另外一种方式,管理员不再通过上面两种方式与Shell进行交互,而是通过设备中的Web服务器模块传递,利用Web浏览器中脚本完成对设备Shell的交互,这种交互方式因为属于图形用户界面,更加直观方便。
执行Shell命令的CGI,可以供Web服务器调用,属于Web服务器的扩展部分,是Web服务器与设备Shell交互的接口,它接收到Web服务器传入的Shell命令,然后将命令传递到设备中的Shell进程,由Shell进程执行Shell命令,这个过程就与通过设备配置口对设备配置是一样的,Shell执行命令之后,会返回执行结果的一些字符信息,该CGI将这些字符信息完整的捕获并通过HTTP返回给Web浏览器。
Web浏览器,用于提供对Web网页和脚本的显示和执行,Web浏览器需要支持HTML和脚本的相关标准,支持脚本通过XMLHTTP组件与Web服务器进行通信。
用于网管的Web网页和脚本,由标准的HTML标签和脚本构成。本发明中脚本除了要支持网管员与Web网页的交互过程外,还需要完成将用户操作翻译为设备对应Shell命令,然后通过Web浏览器的XMLHTTP通信组件传递到Web服务器的相关CGI,在接收到相关CGI返回的执行结果之后,脚本需要解析返回的执行结果,然后通过对Web网页动态的修改,将最终操作结果以Web网页的形式展现给网管员。
Shell一般是设备直接与管理员交互的接口,采用可以直接阅读的文本方式表示命令和执行结果,这种文本方式有利于阅读,但不利于程序解析。由于这种文本格式固定,因此在脚本中可以把它当作一种格式字符串来处理,这种处理的常见方法就是“正则表达式”,这种方式目前被Web浏览器中的脚本所支持。
为了达到减少开发周期的目的,本发明中涉及的大部分部件采用已有部件以减少开发工作量,Web浏览器采用标准浏览器(IE、FireFox、Netscape等),Web服务器采用标准HTTP服务器,在其上增加一个在Web浏览器端与设备Shell(是设备提供出来的文本形式的交互接口)之间透明传送Shell命令和结果的CGI,数据交互协议采用设备已经提供的Shell文本接口,通信协议采用标准的HTTP协议。
由于绝大多数的嵌入式设备都支持Shell接口,本发明正是利用设备现有Shell接口,利用标准的Web浏览器,仅需要在标准Web服务器上一次性的开发一个透传Shell的CGI,将网管命令翻译为Shell命令,以及Shell命令执行结果返回到Web网页中处理,这个处理和展现过程完全依赖于标准HTML标签和嵌入到Web网页中执行的脚本。因此采用这种结构网管开发的主要工作重点就是标准Web网页和脚本的开发。对于这些标准Web网页和脚本的开发,完全可以不需要在设备中进行开发调试,大大提高了开发速度。
另一方面,由于Web网页和脚本都是文本方式的内容,而文本的压缩比非常高,因此占用存储空间可以控制到很小,可以大大减少网管内容所占用的存储空间。由于一个Web网页一般完成一项管理功能,不像现有的Web网管是一个编译后的整体,这些Web网页都是单独的个体,因此这些Web网页也可以任意裁减来适应不同嵌入式设备的要求。
Web网页和设备程序是互相独立的,因此可以独立升级,升级网管的时候不需要停止正在运行的设备。
以下对系统典型网管交互过程的实现过程做进一步的说明。
网管员通过Web浏览器初次访问设备Web服务器的时候,Web服务器根据访问路径将相关HTML网页以及相关脚本解压出来,返回给Web浏览器。
网管员与Web浏览器中显示的Web页面进行交互操作,然后Web浏览器通过执行脚本把网管员的配置操作“翻译”成对应的设备Shell命令。
脚本调用Web浏览器提供的XMLHTTP通信组件,将Shell命令通过HTTP通信协议传输给设备上的Web服务器。
Web服务器接收到请求之后,调用执行通用Shell命令的CGI,CGI将请求的Shell命令传递给设备的Shell进程,Shell进程执行该命令后将执行结果返回给CGI,CGI程序接收到执行结果之后,通过Web服务器传递到Web浏览器。
Web浏览器将Shell执行的结果通知给脚本,脚本采用正则表达式解析Shell执行结果,然后通过对Web网页动态的修改,将最终操作结果以Web网页的形式展现给网管员。