新闻中心

EEPW首页>嵌入式系统>设计应用> 可移植的嵌入式WEB服务器软件设计

可移植的嵌入式WEB服务器软件设计

作者: 时间:2012-03-26 来源:网络 收藏

这种结构下操作系统服务函数一般不会被直接调用,而是将其包装到一个“操作系统适配层”的库中,把核心功能模块与操作系统隔离开来,无论是更改底层的操作系统,还是上层的应用界面,核心功能模块都可以做到最大限度的源代码级兼容,当整个软件需要移植到其他操作系统时,只要简单地移植操作系统适配层,即可保证核心模块能够正确的在新环境下运行,实现项目之间核心模块的代码共享,并共同享有测试、升级和维护工作的结果。这种基于中间件的设计技术可以广泛的应用在协议和事务软件的编写过程中,归纳起来作为操作系统适配层的中间件应该包括以下几个方面的功能:

1)任务管理,任务管理是操作系统的基本功能,包括创建任务、读取和设置任务的优先级、修改和检查任务的状态;

2)内存管理,嵌入式软件由于硬件的特殊性,使得内存的使用不能象Windows程序那样随意申请,同时也很难申请到大块连续内存,中间件内存管理实现的功能就是将一些小的内存块预先分配下来,作为一个内存池供应用程序使用,这些小的内存块可以进行拼接,最终形成应用程序需要的缓冲区;

3)消息管理,主要作用是为不同操作系统的消息处理提供统一的外部接口,应用程序只需要按照中间件规定的模式进行消息收发即可;

4)任务间同步,中间件应为多任务环境提供同步机制,可以采用底层操作系统的互斥量、信号量等;

5)定时管理,通过操作系统提供的单一定时器,实现应用程序的一些定时需求;

6)中断管理,屏蔽不同硬件平台对中断处理上的差异;

7)网络接口管理,屏蔽不同系统之间网络操作的差异;

8)其他功能: 包括总线数据读写、错误处理和可利用资源管理等;

2、基于中间件的嵌入式软件

在工业监控应用领域,选择构架的监控系统是非适合的,因为它不仅可以实现监控的目的,而且可以统一操作维护界面。在这种系统中,需要使用运行在现场的设备作为,在控制室则通过浏览器来查看现场的情况,还可以通过WEB服务器的CGI等接口,对现场设备进行人为的控制。

WEB服务器采用HTTP协议与客户端浏览器进行信息交互,通过服务器应用程序可以实现对远程设备的访问和控制。HTTP是应用层的协议,它于1990年提出,经过多年的使用与发展,得到了不断地完善和发展。

HTTP协议是基于请求/响应模式的,客户机与服务器建立连接后,发送一个请求给服务器,请求的格式为:统一资源标识符、协议版本号,后边是 MIME信息(包括请求修饰符、客户机信息和可能的内容)。服务器接收到请求后,会给予相应的响应信息,其格式为一个状态行(包括信息的协议版本号、一个成功或错误的代码),后边是MIME信息(包括服务器信息、实体信息和可能的内容)。

在WEB服务器中,客户与服务器是一个相对的概念,只存在于一个特定的连接期间,即在某个连接中的客户在另一个连接中可能作为服务器。WEB服务器运行时,一直在TCP80端口(WEB服务器的缺省端口)监听,等待连接的出现。下面是WEB服务器通过HTTP协议进行信息交换的步骤:

1)建立连接:连接的建立是通过申请套接字实现的。客户打开一个套接字并把它绑定在一个端口上,如果成功,就可以通过这个套接字进行数据收发了。

2)发送请求:打开一个连接后,客户机把请求消息送到服务器的监听端口上,服务器读取数据,并从接收数据中识别请求动作。HTTP/1.0 请求消息的典型格式为:

请求消息 = 请求行(通用信息|请求头|实体头) CRLF[实体内容]

请 求 行 = 方法 请求URL HTTP版本号 CRLF

方 法 = GET|HEAD|POST|扩展方法

URL = 协议名称+宿主名+目录与文件名

如: GET http://192.168.1.1/index.htm HTTP/1.0

3)发送响应:服务器在处理完客户的请求之后,要向客户机发送响应消息。HTTP/1.0的响应消息格式如下:

响应消息 = 状态行(通用信息头|响应头|实体头) CRLF [实体内容]

状 态 行 = HTTP版本号 状态码 原因叙述

状态码表示响应类型

1××   保留

2××   表示请求成功地接收

3××   为完成请求,客户需进一步细化请求

4××   客户错误

5××   服务器错误

4)关闭连接:通讯结束后,客户和服务器双方都可以通过关闭套接字来结束TCP/IP对话。

在具体的嵌入式WEB服务器软件中,除了受制于目标硬件有限的资源外,还有一个限制就是对文件系统的支持上,因为并不是所有的目标设备都会采用文件系统,唯一可以肯定的就是中一定会有非遗失性存储器,如FLASH,这样在设计嵌入式WEB服务器时,需要提供一种工具,将多个WEB网页文件转换成一个数组,并在WEB服务器中建立索引,当请求某个网页文件时,通过这个索引来查找对应的文件数据,并发送出去。嵌入式WEB服务器软件大致可以分为四个部分:通讯模块、HTTP请求处理模块、ROM文件系统、CGI接口模块。下面是嵌入式WEB服务器软件的模块结构图:



评论


相关推荐

技术专区

关闭