当前位置:技术文章首页 >> 嵌入式技术 >> 嵌入式系统 >> 基于Web的嵌入式设备管理

基于Web的嵌入式设备管理

2008-08-29 22:26:50  作者:不详  来源:互联网  浏览次数:386  文字大小:【】【】【

基于Web的嵌入式设备管理

发表时间:2007-12-11 09:25:08    来源:网络整理    责任编辑:Mentlely    阅读数:

  随着互联网络硬件、软件的迅猛发展,嵌入式系统被广泛应用到工作和生活的各个领域中,如何对这些设备进行治理成为嵌入式系统软件开发中的一个重要方面。用户只有通过设备所提供的治理接口对共进行配置、治理和监控,因些治理接易用程度和效率成为衡量设备优劣的重要标准之一。在嵌入式设备中加入HTTP服务能将其转化成Web Server,可以向Internet或内部网提供基于Web的图形化治理接口,用户可以使用浏览器作为接口来访问嵌入式设备。这样不仅使设备的易用性大大提高,而且可以省去专用治理软件,从而方便地进行统一治理。 字串5

1 Wind Web Server介绍 ARM

VxWorks是WindRiver公司开发的具有工业体体育场地位的高位能实时操作系统内核,它是一个运行在目标机上的高性能、可裁减的嵌入式实时操作系统,具有先进的网络功能,支持市面上逾90%的处理器。该公司的网络协议栈产品Wind Web Server提供了功能强大的基于Web方式的网络治理系统,可以无缝地集成到任何基于VxWorks的嵌入式应用中。 ARM

Wind Web Server具有以下特性:

字串4

·完全支持HTTP 1.1标准

http://www.armforum.cn

·不需要文件系统

ARM开发论坛

·支持Java Applets、图像文件、声音文件等

字串5

·可通过<WINDWEB>标记支持SSI http://www.armforum.cn

·URL处理可定制

字串5

·灵活配置的模块结构 字串5

·脚本小(7~40KB) http://www.armforum.cn

·支持用户/用户组/密码认证 字串5

·有IP过滤机制 字串5

·支持CGI

ARM

·可记录日志

ARM开发论坛

·支持别名

字串5

·支持服务器推送(Server push)技术。

ARM开发论坛

Wind Web Server采用模块设计,可以方便地进行裁剪以满足应用的非凡要求。根据配置,Wind Web Server需要7~40KB的内存。在嵌入式系统中硬件资源宝贵,有时并不需要文件系统。Wind Web Server提供了一个工具Pagepack,可以在编译和连接时将Web内容放在程序代码中,从而可以存储在ROM中。

字串4

 实例应用 M开发论坛

在ADSL汇接器系统软件的开发过程中,使用Wind Web Server开发了基于Web的图形化设备治理接口,用户在任何地点只需使用浏览器就可以对设备进行全面的治理,包括: ARM开发论坛

·可以对系统用户认证和治理,不同的用户具有不同的操作权限; 字串5

·可以对系统进行实时监控,页面依照机柜布局设计。设备面板和页面上的各种信号灯同步变化,一目了然。同时可以在页面上直接使用设备面板上的各种按键,操作方便。采用了服务器推送技术,降低了网络通信量和系统负担;

ARM

·可以对初如化数据进行修改和保存; http://www.armforum.cn

·可以远程更新整个软件系统; M开发论坛

·可以随时获取和清除计费信息。 http://www.armforum.cn

整个程序(含页面代码)共200K字节左右,任务的优先级设为最低,不影响原系统的正常运行,达到了很好的效果。

ARM

2 Wind Web Server结构 ARM

嵌入式系统的使用的资源是受限的,在许多飞速下甚至没有外部存储系统,这一点要求嵌入式系统的Web服务器与UNIX和Windows平台上的Web服务器有很大不同。Wind Web Server采用模块化和可伸缩的系统结构,答应用户进行裁剪以满足资源的不同限制。Wind Web Server的结构如图1所示。 http://www.armforum.cn

Wind Web Server由以下要害部分组成:

http://www.armforum.cn

·Web服务器核心 http://www.armforum.cn

·HTTP请求处理模块(RPM)

字串5

·RPM调度程序 ARM

·服务器端符号表

M开发论坛

·API函数 字串4

2.1 Web服务器核心和RPM调度程序 字串8

Web服务器核心作为一个任务运行在目标系统中。提供网络服务绑定、Socket函数调用和初始化参数的设置等。RPM调度程序决定怎样响应HTTP请求,即决定了HTTP请求的地址和RPM的对应关系。 ARM

2.2 HTTP请求处理模块(RPM)

http://www.armforum.cn

HTTP请求处理模块分为两大类:系统RPM和用户RPM。其中系统RPM执行HTTP请求的基本处理,包括:记录日志、处理别名与MIME头、IP地址检查、密码验证和访问限制。而用户RPM处理具体的页面请求,包括:文件系统RPM、SSI(Server Side Include)RPM、CGI PRM、用户函数调用RPM、服务器推送RPM等。另外用户可以使用自定义RPM完成一些非凡的处理过程。

字串5

2.3 服务器端符号表 http://www.armforum.cn

Wind Web Server主要通过符号表来支持Web存取目标机中的变量,每个符号表包含如下属性: ARM

·Address 内存地址 字串4

·Name 名称

M开发论坛

·Descrip 描述 ARM

·Type 数据类型

字串4

·Num Elems 变量个数 M开发论坛

·GET Routine 读加调函数

http://www.armforum.cn

·GET Param 调回调数数的参数

M开发论坛

·SET Routine 写回调函数

http://www.armforum.cn

·SET Param 写回调函数的参数 http://www.armforum.cn

·Access ID 变量的访问控制

http://www.armforum.cn

将网页请求和符号表联系起来的方法有两种:扩展SSI和服务器推送。 M开发论坛

(1)扩展SSI的实现

M开发论坛

可以在HTML网页中使用<WINDWEB>标记,每个标记都与存在于Wind Web Server符号表中的一个读或写回调函数相对应。当网页为Wind Web Server请求时,包含变量值等动态信息的读或写回调函数输出替代了网页上的标记,从而动态显示或提交数据内容。这项技术同时提高了在HTML页中处理表单的能力。传统的Web Server只能处理事先确定的缺省的表单元素,在Wind Web Server,实际值可以从符号表中得以,然后在HTML页被提交到客户端前插入到表单中。Wind Web Server还提供了一个工具formpack,用于在包含表单的普通网页中加入<WINDWEB>标记。

http://www.armforum.cn

Wind Web Server中已经包含标准的SSI实现,如输入框、下拉列表、复选框等。另外,用户可以加入自定义的SSI函数以处理特定的HTTP请求。 字串5

(2)服务器推送的实现 http://www.armforum.cn

HTTP是一种请求响应协议,假如要对服务器端进行持续的监控,必须不断地发送请求刷新页面,这将大大加重服务器的负担。Wind Web Server能够使用内嵌的Linve Control模块在页面中的Java applet与服务器端的符号表之间建立一条持续的交线链路,使服务器端符号表变量的改变无需客户端请求而直接对客户端发布,从而实现了服务器推送的目的。

2.4 HTTP请求处理过程 http://www.armforum.cn

一个典型的HTTP请求处理包含以下步骤:

M开发论坛

(1)接收到HTTP请求后,服务器取出包含目的URL的请求地字符串,将其存入描述HTTP请求的数据结构中; M开发论坛

(2)假如该请求是页面提交,即如下形式:http://target/xxx.xxx.htm?para1=xxx&para2=xxx,则将提交参数存入环境变量QUERY_STRING中。

字串4

(3)调用所有已配置的系统RPM,假如返回正确,则继续; ARM开发论坛

(4)调用页面对应的用户PRM,假如该页面中包含SSI标记,则调用SSI RPM;

ARM

(5)查找<WINDWEB>标记,例如:<WINDWEB FUNC=ShowValue SYMBOL=usersymbol></WINDWEB>则调用标准SSI函数ShowValue()对符号表中的变量usersymbol进行处理,然后将得到的变量值插入要返回的HTML页面中,传送至客户端。

字串5

3 并发中的要害技术

ARM开发论坛

3.1 自定义用户RPM ARM

通过调用函数httpRomConfAdd(HTTP_M_GET,"/user_rpm/"User_rpm),把形如http://x.x.x.x/user_rpm/*.htm?para1=xxx&para2=xxx的请求用函数框架如下: ARM

short User_rpm(HTTP_REQ_ID reqId{

字串8

char* para;

http://www.armforum.cn

httpStatusSet (reqId,HTTP_OK);

字串8

httpHeaderGenerate (reqId); /*产生THHP头*/ ARM

para=httpGetEnv(reqId,"QUERY_STRING"); /*得到输入参数*/

http://www.armforum.cn

…… /*处理输入参数及预备输出结果*/

ARM

httpStringPut (reqId,"<HTML>..."); /*开始输出*/

http://www.armforum.cn

…… /*输出全部HTML语句*/ 字串8

httpStringPut(reqId,"...</HTML>"); /*结束输出*/

ARM

return(RPM_DONE); 字串5

} ARM

3.2 自定义SSI处理函数

M开发论坛

通过调用函数httpSsiFnConfAdd("user ssi",User_ssi)建立自定义SSI处理函数User_ssi。当而面中包含如下<WINDWEB>标记时:<WINDWEB FUNC=user_ssi para></WINDWEB>,服务器将调用函数User_ssi(参数为para),并将输入插到预备返回的HTTP页面中。函数User_rpm的实实框架如下:

ARM开发论坛

short User_ssi(HTTP_REQ_ID redid,char * szArg){ ARM

char *para;

字串8

parg=szArg; /*得到输入参数*/

ARM

…… /*处理输入参数及预备输出结果*/ M开发论坛

httpStringPut (reqId,"…"); /*输出全部HTML语句*/

字串5

return(HTTP_OK);

字串5

} 字串4

3.3 et Java applet实现服务器推送 http://www.armforum.cn

Live Control模块的API提供如下Java类的实现:

ARM

·DirectRegistry Applet与符号表进行通讯的基本部件 字串8

·DirectReadProxy 从DirectRegistry中获取符号表变量的改变 http://www.armforum.cn

·DirectWriteProxy 更新DirectRegistry中符号表变量的值 ARM开发论坛

·DataObjectChangeListenet、DataObjectStatusListener用于监听的容器

http://www.armforum.cn

用Java applet实现服务器推送的框架如下:

ARM

(1)创建用于连接服务器端的DirectRegistry类的实例: M开发论坛

myServerURL=new URL(http://" getDocumentBase().getHost() "/lc/");

字串8

myRegistry=new DirectRegistry(myServerURL);

M开发论坛

(2)创建用于监听符号表变量的Java部件:

字串4

myWidget=new TextWidget("0",10);

http://www.armforum.cn

(3)创建DirectReadProxy和DirectWriteProxy的实例用于读写符号表变量mySymbol: 字串8

myReadProxy=new DirectReadProxy("mySymbol"); http://www.armforum.cn

myWriteProxy=new DirectWriteProxy("mySymbol");

ARM

(4)将Java部件myWidget加入myReadProxy和my Write Proxy,成为监听容器: 字串5

myReadProxy.addDataObjectChangeListener(myWidget);

ARM

myWriteProxy.addDataObjectChangeListener(myWidget);

字串8

(5)将已创建的监听容器myReadProxy、myWriteProxy加入myRegistry中,完成Applet与服务器端Live Control模块的连接:

ARM

myRegistry.addPropertyChangeListener(myReadProxy); http://www.armforum.cn

myRegistry.addPropertyChangeListener(myWriteProxy);

ARM

另外,用户可以创建自己的Java部件和DataObject ChangeListener方法,以完成更高级的应用。

字串5

3.4 配置HTTP服务

字串4

Wind Web Serrver可进行裁剪用于不同的应用环境,可配置的参数较多,同时参数之间相互影响。因此参数的配置是否妥当将直接影响HTTP服务的性能,甚至导致HTTP服务不能正常工作。其中对Web Server内存池的配置使用尤为要害,需要进行仔细调整和多次测试。另外整个系统的网络内存池的容量也直接影响HTTP服务的性能,需要结合系统规模进行配置。 字串4

责任编辑:


相关文章
 

最新文章

更多

· 嵌入式LwIP协议栈的内存管理
· 基于Web的嵌入式设备管理
· Java在嵌入式系统中的应用
· 开发嵌入式系统选择分析
· 在嵌入式系统中的内存压...
· 一种嵌入式便携汽油标号...
· 嵌入式中FPGA的被动串行配置
· 一种低成本的Ehternet嵌...
· 嵌入式静止图像编码系统设计
· 在嵌入式Linux下ARM处理...

推荐文章

更多

· 嵌入式LwIP协议栈的内存管理
· 基于Web的嵌入式设备管理
· Java在嵌入式系统中的应用
· 开发嵌入式系统选择分析
· 在嵌入式系统中的内存压...
· 一种嵌入式便携汽油标号...
· 嵌入式中FPGA的被动串行配置
· 一种低成本的Ehternet嵌...
· 嵌入式静止图像编码系统设计
· 在嵌入式Linux下ARM处理...

热点文章

更多

01-01·[接口与通讯] 红外遥控系统原理及单片机软... (3804)
01-01·[单片机技术] 温度传感器PT100的应用 (2424)
09-17·[可编程逻辑] 基于VHDL语言的智能密码锁设计 (1984)
09-08·[可编程逻辑] 基于FPGA的QPSK调制解调电路... (1973)
09-08·[单片机技术] AT89S52的中文简介及资料下载 (1909)
11-24·[电子基础] 与初学者谈电子制作(电子入门) (1789)
09-09·[电源技术] 基于DSP的三相SPWM波发生软件... (1789)
10-24·[传感与控制] MODBUS RTU通讯协议在S7-200... (1612)
12-01·[单片机技术] 基于ARM智能家居控制器设计与... (1612)
11-24·[单片机技术] 常用LED数码管驱动电路2(单 ... (1601)
09-08·[电源技术] 能延长电池寿命的单节电池升... (1537)
09-11·[仪器与仪表] 应用ADuC847芯片设计压力及温... (1520)