由于嵌入式系统资源受限的特性,桌面系统中的大型WEB服务器如APACHE、IIS,WebKit,等都不适合嵌入式系统。本章我们介绍如何自己动手来实现一个简单的可以使用与嵌入式系统的WEB服务器 MiniWebServer ,并在讲解实例的同时,附带介绍相关的WEB技术中的基础知识,如HTTP协议,CGI规范等。
1.软件需求与背景
目前,Internet技术经过多年的发展之后已经在全球普及,在嵌入式系统中也开始采用 Internet 技术,并开始称为嵌入式开发的热点之一。嵌入式 Internet 技术具有广阔的应用前景,比如智能公路,信息家电,工业化自动化,电子商务,设备管理等。
在嵌入式 Internet 技术中,Web服务器是一个重要的分支。目前Web技术在 Internet 中所占比重非常大,绝大数的网站都是基于Web技术的。因此对于嵌入式Web服务器的研究和应用具有非常重大的意义,他可以为我们管理、监控和检测各种设备提供了一个很好的途径。嵌入式Web服务器可以运行在硬件受限的嵌入式系统上,通过用户端的浏览器,可以使用图形界面来访问嵌入式系统,而且这种方式是基于 Internet 的,这种设备可以在世界任何的一个地方,只要它连入 Internet 就能控制它,非常方便。
与传统的 Web 服务器不同的是,嵌入式Web服务器是一种“廋服务器”。传统的Web服务器是用户的中心,可以有一系列的高性能的计算机组成集群,可以用来响应用户的大量服务请求。而在嵌入式系统中,由于处理器能力、存储器容量等外部条件的制约,嵌入式web服务器不能对系统资源占用量很大的程序(如java应用程序)提供支持,也不需要处理外部的很大流量的访问。嵌入式的WEB服务器要做到尽可能的小---仅仅为远程访问、管理和监控设备提供服务支持。在某种程度上,嵌入式web服务器在性能上很可能还不如访问它的客户端的主机,这就是所谓的“廋服务器”和“肥服务器”。
为达到远程管理、监控设备的目的,很多时候我们需要使客户机能够同嵌入式 WEB 服务器进行交互。在传统的 Internet 技术中,这种交互可以使用很多方法来实现,比如CGI、Java Serverlet/J2EE、ASP、PHP等,不过考虑到性能的话,比较适合嵌入式系统的方法还是较为古老的通用网关接口---CGI( comman gateway interface)技术。我们将在后文详细介绍在实现我们的小型WEB服务器时如何增加对CGI的支持。
接下来,我们来定义所要实现的WEB服务器,即 MiniWebServer的软件需求。
- 1.在Internet 连接准备好的前提下, MiniWebServer支持远程用户通过客户端的浏览器来访问服务器端的数据。
- 2. MiniWebServer支持HTTP1.0的GET和POST方法。
- 3. MiniWebServer支持包含文本或者图片(JPG,GIF)的静态网页。
- 4. MiniWebServer支持CGI动态网页。
注意,由于这里仅仅是一个实验性质的实例程序,我们对 MiniWebServer的稳定性、容错性等不作要求,而把重心放在实现主要功能方面。对于真正实际应用的WEB服务器来说,稳定性和容错性方面的要求是非常高的。
参考资料:
《ARM嵌入式linux应用实例开发》
阅读(1760) | 评论(0) | 转发(0) |