访问手机版页面
你的位置:老古开发网 > 其他 > 正文  
嵌入式Web服务器的分析与研究
内容导读:

    摘要:首先介绍嵌入式Web服务器的发展背景。然后,详细讨论嵌入式Web服务器的支撑技术,并提出瘦Web服务器模型。最后,分析嵌入式Web服务器的实现技术并给出2个具体实现形式。

    关键词:嵌入式Web服务器 嵌入式Internet 瘦Web服务器 超文本传输协议

引言

后PC机时代的到来引发了信息产品的产生,而Internet与信息产品的结合是当今发展的一个趋势,嵌入式Internet技术的产生正好迎合了这个趋势。据分析,嵌入式Internet系统在Internet电话、游戏装置和手持式通信装置的推动下将会有突飞猛进的发展。由于Internet技术的渗透,嵌入式系统正变得越来越智能化并具有越来越多的网络友好特性;又由于Web技术的飞速发展,给嵌入式系统带入Internet提供了绝佳的途径。本文就在嵌入式Internet中发展最快的嵌入式Web服务器技术进行讨论。

1 发展背景

随着计算机技术的发展,嵌入式系统已成为计算机领域的一个重要组成部分。广义讲,凡是带有微处理器的专用软硬件系统都可以称为嵌入式系统。所谓嵌入式设备,是指具有计算机功能,但又不称为计算机的设备或器材,几乎包括了我们周期的所有电路设备:PDA、手机机顶盒、汽车、微波炉、电梯、安全系统、自动售货机、医疗仪器、自动取款机等。嵌入式系统可以通过各种无线形式(如WAP、Blue Tooth等)和有线形式(TCP/IP、PPP等)的网络连接方式实现它们之间的相互连接,因此,在网络通信市场上极具生命力。现在人们对Internet应用的依赖程序日渐增加,也促进了嵌入式技术的增长。信息家电的发展也为嵌入式Internet技术提供空间,如面向Internet的信息冰箱。这种信息家电的特点就是价格低廉、软件功能强大、全面支持Internet访问、软件可通过网络升级、有效保护用户投资。

嵌入式Internet技术主要包括传感器技术、通信技术、计算机技术和集成电路技术等。以前的设备控制系统一般是通过专用通信线中进行的,其通信介质、通信协议、相关软件和硬件都是专用的,而Internet技术的发展使嵌入式设备的远程控制和管理方式有了改变。不需要专用的通信线路,并且传输的信息不局局于数据信号,还有声音和图像。最重要的是其通信协议是标准且公开的。随着Web技术的发展,几乎改变了现在的信息表达形式,很多应用都是基于Web技术的。由于HTML语言的标准统一性,只要在嵌入式设备中有一个微型服务器, 就可以使用任意一种Web浏览器接收和发送信息。所以如何设计这种特别的Web服务器,如何在嵌入式设备中安装Web服务器,就成了嵌入式Web服务器的发展和研究方向。

对于嵌入式Web服务器的研究和应用,其意义是重大的。它为我们管理、控制和监测各种各样设备提供了一个很好的途径。这种设备可以是具有有限内存资源的8位或16位系统,已足够提供一个用户界面,而且这种方式是基于Internet的。这种设备可以在世界任何一个地方,只要它连入Internet就能够控制它。

目前国外的相关研究很多,如Pharlap公司的MicroWeb、AgranatSystems公司的EmWeb、EmWare公司的emMicro、Allegro公司的RomPager、WindRiver公司的Wind,还有Boa、Enea、PicoWeb、ChipWeb、Ipic、NetAcquire、Voyager、Quiotix等。国内的有Webit。

2 支撑技术

2.1 协议标准

现在直接采用的标准为TCP/IP协议栈,包括TCP、IP、ICMP、RARP等,这些标准的协议对嵌入式Internet系统的大量使用有着很重要的意义。但是,这些协议的实现在嵌入式系统中有着特别的要求,如图形和数据的显示、实时分布式对象计算等。所以研究嵌入式TCP/IP协议栈以满足嵌入式系统的性能要求是很重要的,我们应该尽量减小TCP/IP协议栈而又不失一般的标准性。现在国外对此已经有很多的相关研究,如国外的μC/IP项目的研究,它是一个为微控制器和嵌入式系统而设计的小型TCP/IP协议栈;又例如CMX公司的MicroNet TCP/IP,它是为8位或16位微处理器而设计的,支持大部分的标准协议,连接方式有以太网连接、拔号连接和直接连接方式。

嵌入式Web服务器技术的核心是HTTP引擎。HTTP协议是WEB应用的标准协议,其已经从HTTP1.0发展到HTTP1.1,性能有很大改变,增加了缓存功能,同志就是TCP连接形式的改变。HTTP10在每次HTTP请求中都需要TCP连接。一个典型的页面可能含有许多单独的HTT请求,如基本页面请求、每个HTML框架请求、每个图形请求等。建立每个请求并且产生每TCP连接需要占用大量的CPU和内存资源;而HTTP1.1标准可以为多个HTTP事务在浏览器和服务器之间只保持一个TCP连接,这样就大大提高网络和系统的性能。所以,在嵌入式Web服务器中为了得到一个稳定的用户界面而又不影响嵌入式系统的CPU和内存资源,我们应该使用HTTP1.0标准。

2.2 瘦Web服务器

瘦Web服务器是随着Web应用环境的改变而提出的。因为在应用当中,特别是在嵌入式设备当中,一个Web服务器不可能是很全面的,它必须拥有足够小的容易,并且不影响嵌入式系统的整体性能,但又必须具备一个Web服务器应有的特征。一个典型的嵌入式Web应用如图1所示。它也可以包含一个实时操作系统(RTOS)。Web服务器可以被用作一个单一线程,而不需要RTOS的支持,或者是当使用RTOS时作为多线程应用的一个线程,不需要动态存储分配。

嵌入WEB服务器通过CGI接口和其它方法,可以在HTML文件或表格中插入运行代码,供RAM读取/写入数据。HTML页面内容一般是通过存储在ROM中的压缩文件,由快速运行的代码动态产生的。可以利用Java、JavaScripts等技术在客户端生成应用代码,而在服务器端只是发布网页,以减少在服务器端的代码和容量,提高服务器端的性能。这些就是瘦Web服务器的要求。嵌入式Web服务器是瘦Web服务器一个很好的体现。

2.3 嵌入式应用接口技术

怎样进行信息传递,也是嵌入式Web服务器设计中的一个核心问题。有很多方式可以采用。下面就一些主要的方式进行讨论。

(1)元命令

元命令(Meta Commands)允许服务器来动态改变WEB页面的内容。这个命令是被嵌入式到HTML元素中的,并且当页面装载时更新的信息被插入到命令的位置。元命令可以置于文件中或者作为服务器的应用变量进行配置。

(2)HTML表格中CGI脚本

用户可以通过填写表格来对一个嵌入式应用提交数据给Web服务器,服务器通过运行一个CGI脚本(CGI Scripts)来处理信息。此种功能函数在单一线程环境下可以专门作为应用的一部分来实现,在RTOS环境下可以作为服务器调度和应用调度之间的一个桥梁。

运行在Unix或桌面操作系统上的非嵌入式Web服务器能够简单地调度单一进程来运行一个CGI脚本,而嵌入式Web服务器必须对它们分别处理,因为不能肯定是否要有一个RTOS来运行。所以对于一个非RTOS环境,必须考虑这些。如上所述,如果一个RTOS可以使用,那么嵌入式Web服务器可以充分利用RTOS来进行设计,但又必须考虑到服务器也能运行在单一线程环境下。为了达到这个要求,嵌入式Web服务器可以通过在服务器和应用中把CGI脚本作为C函数来实现。

(3)E-mail

E-mail可以用来记录Web服务器相关事件或者当设备遇到特别需要注意的情况时通知适当的人,然后进行分析。例如,当设备需要维护时,嵌入式Web服务器可以发送一个E-mail消息。

3 实现形式

如上所述,嵌入式Web服务器与普通的Web服务器不一样。在实现嵌入式Web服务器的时候有其特别的要求,大概总结有以下几点:

①处理器所能处理的事务量是多少。一个选择的处理器应该能够处理最大期望的用户请求数量和数据传输。例如,如果有很多数据需要下载,那么CPU必须能够在处理外出的数据流的同时还要能够处理新的用户请求。这就要求应用必须与输入输出定,这样就有足够的CPU循环去处理其它任何事件。

②有多少用户使用。为了解决潜在的连接冲突,应用程序必须管理用户的相关资源。这个可以使用信号量或者互斥机制来解决,这种方法可以在很多实时操作系统中见到。

③设备应用需要多少资源。如果页面和图形需要动态建立,那么就需要足够的内存来存储和保持。图像需要占用巨大的存储空间。例如,一个具有256色320×240像素的位图需要75KB以上的数据空间。可用GIF或者JPG的文件形式来压缩,但是,还是需要足够的资源来进行分配以覆盖设备应用的最大需求。

④服务器的应用接口形式。上面已经讨论了几种嵌入式应用接口,在实际应用中应仔细考虑。在单一线程系统中,应用可直接使用CGI函数来进行。在多线程系统中,服务器可以分解成各个独立的任务。应用的一部分可以更新页面、图像和其它的全局数据空间的数据,同时服务进程只关心把数据发送到浏览器。

Web技术发展到现在已经很成熟了,但如何应用到嵌入式设备中,还没有一个统一的标准。嵌入式Web服务器的实现形式也多种多样,现就世界上比较新的实现方案作一介绍。

3.1 EMIT

EMIT是emWare公司开发的嵌入式设备因特网解决方案。它包括多个部件,有emMicor、emGateway、Access Library、emLink、emObject。其中emMicro是适合于小型电子设备的微型网络服务器,即嵌入式Web服务器。它驻留在嵌入式设备中,是emGateway和嵌入式设备系统软件之间的通信服务模块。EmMicro占用的字节可以小到1K字节,和emGareway一起,为8位和16位嵌入式设备提供网络服务器功能。其中emGateway是EMIT分布式网络平台的关键,是轻量级设备网络(如RS232、RS485、CAN、RF等)和大型高性能网络(如Intranets、Internet)之间的桥梁。EmGateway提供了emMicro中没有包括的网络服务功能,并且可以写多种用户界面相连接,如网络浏览器、数据库、应用程序等。EmGateway可以驻留在PC、单板机、ISP服务器或32位以上的嵌入式处理器上。其中Access Library库函数,可以通过高级语言(如Java、C、C++)来调用,实现从一个通用程序(如网络浏览器)或用户程序中访问和监测设备。其中emLink在emGateway中为每个外部嵌入式设备提供通信管理功能,以保持网络连接,支持最常见的物理层协议(RS232、RS485、RF等)的数据链路功能;而emObjects是预先建立的Java对象,能够实现从标准网络浏览器中访问和控制嵌入式设备。

3.2 RomPager

RomPager实现了一个典型嵌入式设备的管理框架。一个嵌入式设备通常使用SNMP或Telnet协议通过Set/Get调用来管理设备,另一些设备也使用额外的串行端口来管理设备参数。RomPager软件非常易于集成到这类设备中。RomPager同时会将Web浏览管理以及Email通知服务加入到设备中,结构如图2所示。

结束语

嵌入式Web服务器的发展是很有前景的,它为未来信息家电的网络化和信息化提货了切实可行的途径。嵌入式Web技术是现在研究的一个热点,还有很多问题需要解决,其应用的范围也有待进一步探索。

标签:
来源:单片机与嵌入式系统应用 作者:武汉理工大学 刘文涛 胡家宝 时间:2006/5/7 0:00:00
相关阅读
推荐阅读
阅读排行
最近更新
商品推荐