基于嵌入式WEB服务器的设计与实现
- 格式:docx
- 大小:39.93 KB
- 文档页数:5
基于嵌入式WEB服务器的设计与实现
周小仨
【摘 要】本文在研究了嵌入式Web服务器系统设计及基本技术的基础上,构建有温湿度采集到客户端显示采集数据的系统,对其中CGI程序设计及Sqlite数据库进行研究,验证了嵌入式Web服务器的搭建与运行,本文旨在为未来嵌入式服务器的开发提供新的思路。
【期刊名称】《电子制作》
【年(卷),期】2014(000)012
【总页数】2页(P79-80)
【关键词】嵌入式;WEB服务器
【作 者】周小仨
【作者单位】黄冈职业技术学院 湖北黄冈 438002
【正文语种】中 文
随着嵌入式技术和网络信息技术的发展,各种嵌入式设备已经与我们的生产与生活存在着密切的关系。运用了Internet的嵌入式设备已经广泛的应用于工业控制、智能家居、网络视频监控等领域,给人们的生活带来了便利。但是随着科技信息技术的发展及人们对生产生活的要求的逐渐提升,对其实时性提出了更高的要求。本文基于此,从软件入手,对服务器端和客户端程序进行相应的设计,并以期提升数据传输的实时性,从这一角度来看本文研究的嵌入式Web服务器具有重要的现实意义。 1.1 嵌入式Web系统的设计
嵌入式 Web 服务器(EWS)实际上就是引入了Web服务器的现场测试和控制设备环境,而且需要通过软件系统与硬件平台的协助下,改变传统的测试和控制设备,使其成为以TCP/IP为底层通信协议,Web 技术为核心的基于互联网的网络测试和控制设备。嵌入式Web服务器的主要功能就是为Web提供内容,EWS的开发与设计的基础就是TCP/IP协议栈,基于此构建HTTP,TCP以及UDP等协议。利用HTTP协议,每个用户都能够实现与嵌入式Web服务器的连接,嵌入式Web服务器的主要功能有实现对多客户实时HTTP请求,为各个用户提供连接,对设备进行实时监管,在线查看并设置参数等;具备SSL、用户口令等访问设备时的安全控制机制,可以及时的对设备故障进行报警。
嵌入式Web服务器实现的主要问题包括三点,即安全性问题、资源分配问题、实时性问题。本文研究的嵌入式Web服务器主要从其实时性角度出发,提出了新的解决方案,图1为其系统模块框图。
其中,Web Server 选择Boa,温湿度传感器选择一种高精度温度传感器。在本系统中主要要达到的就是利用客户端对已采集的温湿度数据进行监测。
1.2 Web服务器的基本技术
在嵌入式Web服务器的设计过程中,我们首先要弄清楚以下4个概念,即:超文本标记语言,超文本传输协议,统一资源定位符及脚本。HTTP协议对于浏览器(本文以万维网为例)如何向万维网服务器请求万维网文档进行了定义,并规定了服务器如何将文档传输到浏览器,在HTTP协议的基础上,Web服务器实现与客户端的交互。客户端使用统一资源定位器对服务器特定资源的访问。服务器端的资源在静态组织形式下通过HTML语言编写,在动态组织形式下则是运用脚本形式实现多种动态效果及复杂逻辑。
具体来讲,超文本传输协议(HTTP)是以TCP连接为基础的,从而保障数据传输的可靠性,每个万维网网点都有一个服务器进程,对TCP的端口80进行实时监听,及时发现浏览器有没有向其发出连接,当服务器监听到有连接请求出现,并已经建立了TCP连接,那么在建立连接之后,浏览器会向服务器请求浏览某一具体的网页,此时服务器将返回所请求的网页。在这一过程当中,HTTP协议可以对服务器和浏览器间的请求、响应的规则及格式进行规定,通常HTTP包含了两种报文,一是请求报文,也就是从客户端向服务器发送的请求报文,二是响应报文,也就是从服务器到客户端的反应,图2为二者之间的交互过程。
1.3 Boa Web服务器原理
Boa 服务器的编写语言选择的是C语言,依据GNU规范,在 Linux,AIX,Solaris等多种平台上都能够良好的运行,它是一种单任务的HTTP服务器,并不可以为来自客户端的各种不一样的连接fork出不一样的进程进行并发处理,它需要一个一个的完成用户的请求,但是,在我们研究的嵌入式设备中使用是没有问题的。对于一个连接,Boa也不可以复制本身进行处理,其设计的关键点在于安全与快速,通过其站点性能测试结果来看,Boa的性能较之于Apache服务器存在着更多的优势,在uClinux中应用比较多的Web服务器有httpd,Boa,thttpd,第一个仅可以支持静态页面,所以它不符合高级应用,后两个的功能基本上都是相同的,但是从他们运行时需要的资源来看,Boa比thttpd要少很多,所以,比较之下,我们最终选择Boa作为该嵌入式系统的 Web服务器,选择B/S结构模式。
在Boa服务器实际运行过程中,它需要获取参数并读取配置文件,打开日志文件。通过使用源代码中boa.c的create_ server_socket()创建服务器端套接字,这时候Boa实际上是一个守护进程,对来自客户端的各种连接进行侦听,当发现来自客户端的各种连接时,Boa服务器的处理流程如图3所示。
CGI公共网关接口,是外部扩展应用程序与Web服务器交互的一个标准接口。服务器端与客户端可以通过多种方式进行交互,其中就包含了CGI技术。在遵循CGI标准的基础上,对外部扩展应用程序进行编写,处理客户端浏览器输入数据,最终实现客户端与服务器之间的交互。CGI规范使Web服务器能够顺利的实现向扩展应用程序发送消息,并能够完成对收到的信息后进行处理等任务。不少静态HTML网页中不能实现的功能,CGI都能够实现,比如基于 Web的数据库访问、对数据库的访问、搜索引擎等。图4为具体的CGI工作原理。
服务器端CGI程序对信息接收主要通过三种方式,即:环境变量、命令行和标准输入。环境变量实际上就是CGI定义一组环境变量,并以此为基础进行数据传递。服务器从浏览器接收到数据之后,调用CGI脚本,CGI 脚本将收到的数据转换成环境变量并从中取出所需要的内容。
自从商业应用程序出现以来,数据库在其中就一直发挥着重要作用,传统的数据库管理系统需要占用很多的系统资源,也不利于管理与维护,随着科技信息技术的发展与进步,软件应用程序取得了较快的发展,程序也逐渐实现了模块化发展,数据库也得到了更新,出现了嵌入式数据库,较之于传统数据库,它更能适应社会发展需要,它可以在应用程序进程中直接运行,占用系统资源相对减少了很多,采用零配置运行模式,非常有利于嵌入式设备的开发与设计。本文在研究中选择的就是D.Richard Hipp开发的开源性嵌入式数据库引擎SQLite,其特点就是具有良好的可移植性、占用空间小、可靠性强,同时具备了高效、方便等特点,在实际的应用程序运用当中,只需将其嵌入到应用程序中,就可以实现二者共用同样的进程空间,节约了系统资源。
从外部来看,SQLite与关系型数据库管理系统不是十分相似,但在一个进程内部,它却是完整的,自带的数据库引擎。其另一优势就是,因为客户端和服务器在同一进程空间运行,在程序内部无需再进行网络配置,也不必再进行管理。SQLite数据库权限仅对文件系统存在依赖性,无需设置用户帐户,它有数据库级锁定,没有网络服务器,需要的内存较少,实际运用中的成本较低,十分适合用于嵌入式设备。
【相关文献】
[1]张志 慧.嵌 入式Web服务 器的研究与实现[D].南京邮电大学.2013-02.
[2]方鹏.基于嵌入式Linux的Web服务器的设计与实现[D].电子科技大学.2012-05.
[3]王成.基于ARM9的嵌入式Web服务器的研究与应用[D].南昌大学.2010-12.
[4]张丽茹.基于SOPC技术的嵌入式Web服务器的设计与实现[D].内蒙古大学.2012-05.
周小仨,男,1980.11,湖北省麻城市,讲师,研究方向:嵌入式、单片机、EDA、PROTEL制版、Linux等。