文档详情

嵌入式Web服务器的设计研究_终端与服务器_基础信息化_5079.doc

发布:2018-06-10约7.18千字共11页下载文档
文本预览下载声明
嵌入式Web服务器的设计研究_终端和服务器_基础信息化 引言 ??? 高端嵌入式设备快速发展,硬件成本显著下降,有的嵌入式系统硬件已经与通用计算机接近。同时随着Internet的迅速发展,网络化的嵌入式产品已经成为IE产业的最大增长点,将嵌入式设备接入Internet将成为一种必然,嵌入式设备中运用Web技术也是一种必然,但一个稳定好的、适应性强的、安全性高的、可以适合多嵌入式操作系统的和有自己知识产权的嵌入式Web服务器软件也还是一个市场的需求。因此本课题主要研究和实现了一个模块化的、通过模块配置可以适合几种嵌入式操作系统、屏蔽目标平台的异构性的嵌入式Web服务器,并对安全性问题也给出了详细的研究和解决方案。 1 嵌入式Web服务器的体系结构 ??? 嵌入式Web服务器系统的体系结构如图1所示,Web浏览器与嵌入式系统的嵌入式Web服务器底层通过TCP/IP协议,项层由HTTP协议进行通信,Web浏览器通过Script解析器解析浏览器脚本,通过HTML解析器解析HTML语言,由客户端Java虚拟机来解析Java applet,并且同时由Form生成器生成动态Form发送给嵌入式Web服务器,嵌入式Web服务器解析HTTP请求,然后由Form解析器解析这个动态Form要求处理的功能,同时与嵌入式设备的应用管理程序通信,完成配置和控制嵌入式设备。当嵌入式设备有数据采集数据及需要监测的数据时,与嵌入式Web服务器端应用程序接口通信,由它的HTML生成器生成HTML文档传送到Web浏览器显示出来。通过如此工作过程,嵌入式Web服务器在嵌入式系统中完全可以实现对嵌入式设备起到配置、监测和控制等作用,而且有了嵌入式Web服务器的存在也方便了应用程序的开发。 ??? 图1 嵌入式Web服务器系统体系结构 2 嵌入式Web服务器程序的组件视图 ??? 嵌入式Web服务器程序的组件视图如图2所示。整个程序首先由main.c主程序发起,初始化所有环境变量(由于各平台不同,初始化过程也不同),然后采用委托方式来创建安全handier、GoForms handler、CGI进程handler和Default Web处理。初始化过程完成后,进入主循环,在主循环中进行Socket、CGI和各种事件处理,并且程序在编程处理时已经预留了SSL处理的接口。 ??? 接下来程序按委托方式顺序处理安全handler、GoFormshandler、CGI进程handler和Default Web hadndler。程序安全模块的配置得知要求的安全身份认证情况,由委托调用安全处理,按照Emfdb.c处理的数据库和UM.c处理角色管理的情况来进行基本身份认证还是数字签名的摘要身份认证。认证身份后,可以进行进一步的处理,进一步判断URL是GoForms、CGI Process还是Default的HTML或.asp文件。GoForms(模拟CGI的内存处理程序),进行此类处理,要求源程序开放源码或提供Library文件。CGI process是传统意义上的通用网关接口,只要符合此接口标准,Web服务器就完全可以处理任何CGI程序,这样此嵌入式Web服务器就可以处理用户的各种动态的需求。最后一项是此嵌入式Web服务器处理静态网页和以扩展名为.asp的嵌入式Web服务器端的脚本程序网页。 图2 整个程序的组件 3 嵌入式web服务器的组成模块 ??? 系统主要由6大功能模块组成,6大功能模块与整个嵌入式系统的关系如图3所示。 ??? (1)配置模块:配置嵌入式Web Server运行的平台,配置嵌入式Web Server参数,在系统启动中定义的配置环境变量包括并发连接数、Socket端口、主机名称、根文件路径、缺省初始文件以及非活动超时等。 ??? (2)HTTP报文响应模块:主要用来接受H1vrP请求,解析HTTP请求,调用身份认证处理,根据URI选择静态页面处理、动态页面处理或动态CGI模块进一步处理请求,将返回的响应消息返回浏览器,并处理持续问题。 ??? (3)安全模块:主要由密钥维护、角色权限分配和身份认证处理模块组成。口令采用最大化令字,并采用密钥体制对口令字加密,最后采用数字签名方式进行身份认证处理。 ??? (4)动态页面处理:包括动态Form处理和服务器端脚本程序处理,服务器端脚本解释了JavaScript语言的一个子集,同时开发一些通用的服务器端API函数,方便了Web应用程序的开发。 ??? (5)CGI模块:即应用程序接口,提供WebServer执行外部程序的通道,CGI程序编译成可执行文件,放在服务器端运行。服务器根据用户的请求调用相应的CGI程序,并将CGI程序得到的动态信息封装到页面中,发送到用户浏览器上。同时CGI模块也是基于开发嵌入式应用的最
显示全部
相似文档