潘佳,邹仕祥,黄炳忠
(1.解放军理工大学 通信工程学院,南京210007; 2.中国人民解放军92126部队)
潘佳(硕士研究生),研究方向为通信与信息系统。
基于Web的网络管理(Web-Based Management,WBM),允许管理人员使用任何一种Web浏览器,在网络的任何节点上方便迅速地配置、控制,以及存取网络和它的各个部分。WBM有两种实现策略,它们之间平行发展而互不干涉。第一种是代理方案,也就是将Web服务器加到一个内部工作站(代理)上。这个设备轮流与端设备通信,浏览器用户通过HTTP协议与代理通信,代理通过SNMP协议与端设备通信。第二种方案是嵌入式方式,将Web能力真正嵌入到网络设备中。管理人员可以轻松地通过浏览器访问到该设备,从而实现网络管理功能。代理方式保留了现存的基于工作站的网络管理系统的全部优点,同时增强了访问的灵活性,适合大型机构进行全部网络的网络监测与管理,而嵌入式方式对于小规模的环境更为理想。本文讨论的就是以嵌入式方式实现WBM。
随着计算机技术的发展,嵌入式系统已成为计算机领域的一个重要组成部分。嵌入式系统可以通过各种无线和有线形式的网络连接,实现它们之间的相互连接,在网络通信市场上极具生命力。只要在嵌入式设备中加入一个微型服务器,就可以使用任何一种Web浏览器接收和发送信息,向Internet或内部网提供高效的管理接口,用户可以使用浏览器作为接口来访问设备进行配置管理。嵌入式方式给每个设备带来了图形化的管理,提供了简单易用的接口,操作简单而不损失功能,为管理者提供了真正的即插即用的安装方式。
嵌入式Web服务器是指,将Web服务器引入现场测试和控制设备中,在相应的硬件平台和软件系统的支撑下,以Web技术为核心的基于互联网的网络测试和控制设备。嵌入式Web服务器和传统Web服务器相比有其自身的特点:
①在嵌入式系统中,由于处理能力、存储器容量、内存等的限制,嵌入式Web服务器很难对占有大量系统资源的程序(如JAVA)提供支持。
②为了达到远程管理和监控设备的目的,用户必须能同服务器交互。交互可通过SSI、FORM、CGI等来实现。
③嵌入式系统对安全性有一定的要求,对动态应用内容的验证是它必须要解决的问题,最好能实现用户的分级访问。
系统服务器端硬件是以MPC8270为核心的HHPPC8270开发板。M PC8270为Freescale公司PowerQUICC系列新一代处理器,适合于集成控制和推进处理的高端网络和通信设备。每个芯片都集成了2个处理单元:1个嵌入式PowerPC603e核和1个精简指令集(RISC)的通信处理模块(CPM)。HHPPC8270开发板提供了3个高速的百兆以太网接口、16 MB的 Flash、128 MB的SDRAM 、1个 2线RS232串口,HDD(PCI接口)支持电子盘 、IDE、SATA 、SCSI硬盘(阵列)存储,同时提供 2个 PCI插槽可以方便扩展多种PCI接口卡,实现硬盘存储、无线通信、图像采集/显示等功能。服务器操作系统采用嵌入式实时操作系统VxWorks,系统中运行的Web服务器软件是GoAhead WebServer。它负责接收、处理和应答客户端提出的请求,传递用户请求的静态页面,或调用main.c中申明的Goform函数来调用具体的控制程序对设备进行管理,Goform函数处理后的结果以HTM L的方式返回客户端。系统的结构图如图1所示。
图1 系统结构图
系统用到的主要软件有:嵌入式操作系统VxWorks及其开发环境Tornado II,以及源码公开的Web服务器软件GoAhead WebServer。VxWorks系统运行环境支持的CPU 包括 Power PC、68K、CPU32、x86等。VxWorks的微内核是一个具有较高性能的、标准的嵌入式实时操作系统内核。其主要特点包括:抢占式任务调度,任务间通信手段多样化,任务间切换时间短,中断延迟小,网络流量大等。Tornado II是一个友好的开发环境,它可以运行在多种主机上(如 Sun、HP、Dec、Mips等)。主机操作系统则支持Unix、Windows NT、Windows XP等。系统的各项配置由于使用较为流行的图形界面,而方便使用者较快地理解和掌握。GoAhead WebServer功能强大,可以运行在Windows CE 、eCos、Linux 、MACOSX 、QNX、VxWorks 等多个平台上。GoAhead WebServer的主要特征有:支持ASP、嵌入式的javascript、标准的CGI执行、内存中的CGI处理GoForms和扩展的 API;如果不包含SSI仅要求60 KB内存,包含SSI则要求500 KB内存;Web页面可存在ROM或文件系统中。
进行GoAhead WebServer移植之前,要在开发板上移植好VxWorks操作系统。GoAhead WebServer的所有代码都是C语言编写的,所以在不同操作系统上都可以方便地移植。GoAhead WebServer的具体移植步骤如下:
步骤1 下载最新的GoAhead WebServer源码文件夹Webs218,即GoAhead2.1.8。
步骤2 运行 Tornado II建立一个Downloadable工程,编译GoAhead WebServer的源码。
①把Webs218文件夹下所有的源文件(*.c和*.h文件),以及VxWorks文件夹下的main.c文件添加到所建立的工程中。注意,要去掉WebSSL.c和Webcomp.c文件,否则会报错。WebSSL.c文件用在SSL上,如果需要使用SSL,还需要下载openSSL系列的文件。Webcomp.c文件用于Web文档压缩,步骤3中会具体说明。
②参考../VxWorks/makefile来修改工程的makefile。在工程中增加宏定义:
-DWEBS-DUEMF-DOS="VXWORKS"-DVXWORKS-g-mapcs-32-mlittle-endian-march=ar-mv4-ansi-fno-builtin-DA RMEL-I.-IG:/Tornado 2.0/target/h/-DCPU=ARM 7TDMI-DTOOL_FAMILY=gnu-DTOOL=gnu
如果需要增加用户管理、存取控制支持,则还需增加-DUSER_MANAGEM ENT_SUPPORT和-DDIGEST_ACCESS_SUPPORT。
③根据实际系统要求修改main.c文件。
设定根目录名,例如:
#define ROOT_DIR T("//");
设定Web页面的路径,例如:
Static char_t*rootWeb=T("");
设定安全密码,例如:
Static char_t*password=T("1234");
设定服务端口,例如:
Static int port=80;
设定默认访问的页面,例如:
WebsSetDefaultPage(wp,T("home.asp"));
利用搜索工具查找home.asp,将查到的都修改完成。
步骤3 压缩网页文件。HHPPC8270开发板没有标准的文件系统,所以要把所有网页文件压缩后存为静态全局数组,工程makefile中还要定义宏WEBS_PAGE_ROM。GoAhead WebServer专门为将网页文件打包成C语言的数组设置了文件合并程序。在../WIN/目录下,有个Webcomp.dsw工程,先编译得到可执行文件Webcomp.exe,然后运行Webcomp.exe../Web Websfile>Webrom.c。其中,Websfile是所有网页文件的文件列表;Webrom.c就是生成的网页数据文件,包含所有网页文件的内容,图像、文字以及页面文件之间的链接关系。然后替换掉原有的Webrom.c。
步骤4 编译工程生成*.out文件,下载运行。这样就完成了GoAhead WebServer的移植,在WindShell下加载WebServer:sp Websvxmain。
步骤5 在浏览器端键入目标板网口IP地址,就可以访问home.asp了。
GoAhead WebServer支持基本认证(Basic Access Authentication,BAA)。用户密码从客户端经过Base64方式加密后传到浏览器端,虽然不是以明文传输,但这种方法显然很容易被破译。实现BAA,需要对GoAhead WebServer源码中security.c的预定义部分进行修改。代码如下:
进行上述修改后,访问home.asp时服务器会自动返回一个登陆窗口,要求验证用户名和密码。
GoAhead WebServer还支持(Digest Access Authentication,DAA)。DAA应答中包含一个有效的校验和,即摘要。DAA假定客户方和服务器都知道一个有权使用资源的用户名和用户密码。相对于BAA,它不要求客户方向服务器端提供显式的用户密码,从而避免了密码被盗。系统管理员通过Web页面完全添加用户、用户组、用户访问权限的设置。在完成这些配置后,只有拥有相应操作权限的用户,才可以访问相应的服务器资源。
GoAhead WebServer支持 GoForms。GoForms是GoAhead公司自创的一种表单技术,它的任务直接运行在内存,而非像传统CGI程序那样,每一次和服务器连接都要产生新的任务。通过和Web服务任务共享地址空间,GoForms进程能直接访问所请求的内容。当GoAhead WebServer运行时,若解析到URL包含有“/goform”,则开始调用某个表单处理函数。URL字段中“/goform”之后的信息定义了该表单的名称和具体参数。下面是一个简单的goform处理程序,用于在客户端输出名字与年龄:
本文详细介绍了嵌入式Web服务器实现的关键技术,并对其以嵌入式方式实现WBM的应用做了简要分析。嵌入式Web服务器技术的广泛应用将会大大提高设备性能,从根本上改变设备维护、管理方式。基于嵌入式Web服务器技术建立的新型控制系统,可以有效地降低运行和维护费用,提高系统的管理水平。实验表明,基于HHPPC8270平台的Web服务器系统运行可靠,实现了用户访问权限配置。所述方法对嵌入式远程管理维护具有一定的参考价值。
[1]夏海涛,詹志强.新一代网络管理技术[M].北京:北京邮电大学出版社,2002.
[2]胡杰,王风茂.动态网页设计基础教程[M].北京:科学出版社,2005.
[3]李黎,郑成辉.基于B/S模式的分布式网管系统的设计与实现[J].铁路计算机应用,2004,13(9).
[4]李磊,杨柏林.嵌入式Web服务器软件的设计与实现[J].计算机工程与设计,2003,24(10).
[5]肖德宝,刘学超.一种基于Web的嵌入式设备网络管理的设计[J].计算机工程,2006,32(15).
[6]何力.移动代理技术在网络管理系统中的应用研究与部分实现[D].成都:电子科技大学,2005.
[7]李中健,等.基于 PC/104平台的VxWorks Web服务器研究与实现[J].仪表技术与传感器,2008(11).
[8]左明文,段怀敏,等.VxWorks中嵌入式Web服务器的应用研究.见:第十六届全国煤炭自动化学术年会、中国煤炭学会自动化专业委员会学术会议论文集[C],2006.