当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]摘要:讨论了嵌入式系统中用Wind Web Server进行设备管理接口的开发,叙述了系统的结构和开发中的关键技术,介绍在ADSL汇接设备中的应用实例。 关键词:嵌入式系统 Wind W

摘要:讨论了嵌入式系统中用Wind Web Server进行设备管理接口的开发,叙述了系统的结构和开发中的关键技术,介绍在ADSL汇接设备中的应用实例。 关键词:嵌入式系统 Wind Web Server 设备管理 随着互联网络硬件、软件的迅猛发展,嵌入式系统被广泛应用到工作和生活的各个领域中,如何对这些设备进行管理成为嵌入式系统软件开发中的一个重要方面。用户只有通过设备所提供的管理接口对共进行配置、管理和监控,因些管理接易用程度和效率成为衡量设备优劣的重要标准之一。在嵌入式设备中加入HTTP服务能将其转化成Web Server,可以向Internet或内部网提供基于Web的图形化管理接口,用户可以使用浏览器作为接口来访问嵌入式设备。这样不仅使设备的易用性大大提高,而且可以省去专用管理软件,从而方便地进行统一管理。 1 Wind Web Server介绍 VxWorks是WindRiver公司开发的具有工业体体育场地位的高位能实时操作系统内核,它是一个运行在目标机上的高性能、可裁减的嵌入式实时操作系统,具有先进的网络功能,支持市面上逾90%的处理器。该公司的网络协议栈产品Wind Web Server提供了功能强大的基于Web方式的网络管理系统,可以无缝地集成到任何基于VxWorks的嵌入式应用中。 Wind Web Server具有以下特性: %26;#183;完全支持HTTP 1.1标准 %26;#183;不需要文件系统 %26;#183;支持Java Applets、图像文件、声音文件等 %26;#183;可通过标记支持SSI %26;#183;URL处理可定制 %26;#183;灵活配置的模块结构 %26;#183;脚本小(7~40KB) %26;#183;支持用户/用户组/密码认证 %26;#183;有IP过滤机制 %26;#183;支持CGI %26;#183;可记录日志 %26;#183;支持别名 %26;#183;支持服务器推送(Server push)技术。 Wind Web Server采用模块设计,可以方便地进行裁剪以满足应用的特殊要求。根据配置,Wind Web Server需要7~40KB的内存。在嵌入式系统中硬件资源宝贵,有时并不需要文件系统。Wind Web Server提供了一个工具Pagepack,可以在编译和连接时将Web内容放在程序代码中,从而可以存储在ROM中。 2 Wind Web Server结构 嵌入式系统的使用的资源是受限的,在许多飞速下甚至没有外部存储系统,这一点要求嵌入式系统的Web服务器与UNIX和Windows平台上的Web服务器有很大不同。Wind Web Server采用模块化和可伸缩的系统结构,允许用户进行裁剪以满足资源的不同限制。Wind Web Server的结构如图1所示。 Wind Web Server由以下关键部分组成: %26;#183;Web服务器核心 %26;#183;HTTP请求处理模块(RPM) %26;#183;RPM调度程序 %26;#183;服务器端符号表 %26;#183;API函数 2.1 Web服务器核心和RPM调度程序 Web服务器核心作为一个任务运行在目标系统中。提供网络服务绑定、Socket函数调用和初始化参数的设置等。RPM调度程序决定怎样响应HTTP请求,即决定了HTTP请求的地址和RPM的对应关系。 2.2 HTTP请求处理模块(RPM) HTTP请求处理模块分为两大类:系统RPM和用户RPM。其中系统RPM执行HTTP请求的基本处理,包括:记录日志、处理别名与MIME头、IP地址检查、密码验证和访问限制。而用户RPM处理具体的页面请求,包括:文件系统RPM、SSI(Server Side Include)RPM、CGI PRM、用户函数调用RPM、服务器推送RPM等。另外用户可以使用自定义RPM完成一些特殊的处理过程。 2.3 服务器端符号表 Wind Web Server主要通过符号表来支持Web存取目标机中的变量,每个符号表包含如下属性: %26;#183;Address 内存地址 %26;#183;Name 名称 %26;#183;Descrip 描述 %26;#183;Type 数据类型 %26;#183;Num Elems 变量个数 %26;#183;GET Routine 读加调函数 %26;#183;GET Param 调回调数数的参数 %26;#183;SET Routine 写回调函数 %26;#183;SET Param 写回调函数的参数 %26;#183;Access ID 变量的访问控制 将网页请求和符号表联系起来的方法有两种:扩展SSI和服务器推送。 (1)扩展SSI的实现 可以在HTML网页中使用标记,每个标记都与存在于Wind Web Server符号表中的一个读或写回调函数相对应。当网页为Wind Web Server请求时,包含变量值等动态信息的读或写回调函数输出替代了网页上的标记,从而动态显示或提交数据内容。这项技术同时提高了在HTML页中处理表单的能力。传统的Web Server只能处理事先确定的缺省的表单元素,在Wind Web Server,实际值可以从符号表中得以,然后在HTML页被提交到客户端前插入到表单中。Wind Web Server还提供了一个工具formpack,用于在包含表单的普通网页中加入标记。 Wind Web Server中已经包含标准的SSI实现,如输入框、下拉列表、复选框等。另外,用户可以加入自定义的SSI函数以处理特定的HTTP请求。 (2)服务器推送的实现 HTTP是一种请求响应协议,如果要对服务器端进行持续的监控,必须不断地发送请求刷新页面,这将大大加重服务器的负担。Wind Web Server能够使用内嵌的Linve Control模块在页面中的Java applet与服务器端的符号表之间建立一条持续的交线链路,使服务器端符号表变量的改变无需客户端请求而直接对客户端发布,从而实现了服务器推送的目的。

2.4 HTTP请求处理过程 一个典型的HTTP请求处理包含以下步骤: (1)接收到HTTP请求后,服务器取出包含目的URL的请求地字符串,将其存入描述HTTP请求的数据结构中; (2)如果该请求是页面提交,即如下形式:http://target/xxx.xxx.htm?para1=xxx%26;amp;para2=xxx,则将提交参数存入环境变量QUERY_STRING中。 (3)调用所有已配置的系统RPM,如果返回正确,则继续; (4)调用页面对应的用户PRM,如果该页面中包含SSI标记,则调用SSI RPM; (5)查找标记,例如:则调用标准SSI函数ShowValue()对符号表中的变量usersymbol进行处理,然后将得到的变量值插入要返回的HTML页面中,传送至客户端。 3 并发中的关键技术 3.1 自定义用户RPM 通过调用函数httpRomConfAdd(HTTP_M_GET,"/user_rpm/"User_rpm),把形如http://x.x.x.x/user_rpm/*.htm?para1=xxx%26;amp;para2=xxx的请求用函数框架如下: short User_rpm(HTTP_REQ_ID reqId{ char* para; httpStatusSet (reqId,HTTP_OK); httpHeaderGenerate (reqId); /*产生THHP头*/ para=httpGetEnv(reqId,"QUERY_STRING"); /*得到输入参数*/ …… /*处理输入参数及准备输出结果*/ httpStringPut (reqId,"..."); /*开始输出*/ …… /*输出全部HTML语句*/ httpStringPut(reqId,"..."); /*结束输出*/ return(RPM_DONE); } 3.2 自定义SSI处理函数 通过调用函数httpSsiFnConfAdd("user ssi",User_ssi)建立自定义SSI处理函数User_ssi。当而面中包含如下标记时:,服务器将调用函数User_ssi(参数为para),并将输入插到准备返回的HTTP页面中。函数User_rpm的实实框架如下: short User_ssi(HTTP_REQ_ID redid,char * szArg){ char *para; parg=szArg; /*得到输入参数*/ …… /*处理输入参数及准备输出结果*/ httpStringPut (reqId,"…"); /*输出全部HTML语句*/ return(HTTP_OK); } 3.3 et Java applet实现服务器推送 Live Control模块的API提供如下Java类的实现: %26;#183;DirectRegistry Applet与符号表进行通讯的基本部件 %26;#183;DirectReadProxy 从DirectRegistry中获取符号表变量的改变 %26;#183;DirectWriteProxy 更新DirectRegistry中符号表变量的值 %26;#183;DataObjectChangeListenet、DataObjectStatusListener用于监听的容器 用Java applet实现服务器推送的框架如下: (1)创建用于连接服务器端的DirectRegistry类的实例: myServerURL=new URL(http://"+getDocumentBase().getHost()+"/lc/"); myRegistry=new DirectRegistry(myServerURL); (2)创建用于监听符号表变量的Java部件: myWidget=new TextWidget("0",10); (3)创建DirectReadProxy和DirectWriteProxy的实例用于读写符号表变量mySymbol: myReadProxy=new DirectReadProxy("mySymbol"); myWriteProxy=new DirectWriteProxy("mySymbol"); (4)将Java部件myWidget加入myReadProxy和my Write Proxy,成为监听容器: myReadProxy.addDataObjectChangeListener(myWidget); myWriteProxy.addDataObjectChangeListener(myWidget); (5)将已创建的监听容器myReadProxy、myWriteProxy加入myRegistry中,完成Applet与服务器端Live Control模块的连接: myRegistry.addPropertyChangeListener(myReadProxy); myRegistry.addPropertyChangeListener(myWriteProxy); 另外,用户可以创建自己的Java部件和DataObject ChangeListener方法,以完成更高级的应用。 3.4 配置HTTP服务 Wind Web Serrver可进行裁剪用于不同的应用环境,可配置的参数较多,同时参数之间相互影响。因此参数的配置是否妥当将直接影响HTTP服务的性能,甚至导致 HTTP服务不能正常工作。其中对Web Server内存池的配置使用尤为关键,需要进行仔细调整和多次测试。另外整个系统的网络内存池的容量也直接影响HTTP服务的性能,需要结合系统规模进行配置。 4 实例应用 在ADSL汇接器系统软件的开发过程中,使用Wind Web Server开发了基于Web的图形化设备管理接口,用户在任何地点只需使用浏览器就可以对设备进行全面的管理,包括: %26;#183;可以对系统用户认证和管理,不同的用户具有不同的操作权限; %26;#183;可以对系统进行实时监控,页面依照机柜布局设计。设备面板和页面上的各种信号灯同步变化,一目了然。同时可以在页面上直接使用设备面板上的各种按键,操作方便。采用了服务器推送技术,降低了网络通信量和系统负担; %26;#183;可以对初如化数据进行修改和保存; %26;#183;可以远程更新整个软件系统; %26;#183;可以随时获取和清除计费信息。 整个程序(含页面代码)共200K字节左右,任务的优先级设为最低,不影响原系统的正常运行,达到了很好的效果。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭