基于Linux平台嵌入Web服务器的设计与实现

来源 :老区建设 | 被引量 : 0次 | 上传用户:rlhRLH
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [提 要] 随着嵌入式系统的发展和Internet的普及,嵌入式系统接入网络已经成为嵌入式系统应用的一个重要方向和必然结果,嵌入式Web服务器是嵌入式系统网络化应用的重要方面。本文简要介绍了Web服务器的基本原理,阐述了嵌入式Web服务器的实现方法与技术,论述了实现嵌入式Web服务器的关键技术———HTTP协议和通用网关接口CGI,对TCP/ IP协议族进行了一定的选择和精简。
  [关键词] Linux;嵌入式;Web服务器; HTTP协议; TCP/ IP协议栈
  [作者简介]祝继华(1983—),男,江西先锋软件职业技术学院网络工程系教师;熊 炎(1982—),男,江西先锋软件职业技术学院网络工程系教师。(江西南昌 330041)
  
  随着计算机的日益普及,互联网的迅猛发展,信息共享程度的不断提高, Browser/Server方式已成为一种趋势和时尚,大部分网络应用系统都是以这种方式与网络用户交换信息。B/S的基础是客户端要有一个浏览器程序,服务器端要有一个与之对应的Web服务器。显然,Web服务器在B/S方式下起着决定性的作用,一般互联网站都采用功能强大的通用Web服务器,如Apache等。但是,对于一般的管理信息系统或中小型应用系统,所需的Web服务功能比较简单,若仍采用大型的通用Web服务器,将是一种资源的浪费,并且,在某些专用嵌入式系统内,由于内存容量有限,对实时性要求高,通用的Web服务器同样不能适应。此时,使用功能相对简单、体积更小、消耗资源更少、可便携的简单嵌入式Web服务器将更具优势。
  
  一、嵌入式Web服务器的设计思想
  
  嵌入式Web服务器不同于一般Web服务器。首先,在嵌入式系统中,由于存储器容量和处理器能力等外部条件的制约,嵌入式Web服务器不能对系统资源占用量很大的程序(如Java应用程序)提供支持,也不需处理外部很大流量的访问,但要能够为远程访问、管理和监控设备提供服务支持,并且嵌入式的Web服务器要做到尽可能的小。其次,为达到远程管理和监控设备的目的,必须使客户机能同本地系统进行交互,这种交互可使用很多种方法来实现,如SSI、Java、Serverlet等,但最适合嵌入式系统的方法是通用网关接口CGI。再次,嵌入式系统对安全性能有较高的要求,对动态应用内容的安全和验证是它必须要解决的问题。最后,嵌入式设备一般都没有硬盘,为实现基于文件的HTTP协议带来很多困难,嵌入式的Web服务器必须用辅助的软件来实现文件的映射问题。基于以上种种考虑,嵌入式Web服务器必须能在嵌入式系统的制约条件下,满足管理和监控嵌入式系统的需要。因此,它应该实现HTTP1.1协议的标准功能,实现HTTP认证协议中的相关内容,并实现对通用网关接口CGI的支持。
  
  二、嵌入式Web服务器技术
  
  1.嵌入式Web服务器体系结构。嵌入式Web服务器为基于3层B/S结构的瘦Web服务器。其中,Web服务器和客户端之间的通信协议采用HTTP 1.1,嵌入式实时多任务操作系统提供TCP/IP协议支持,编程接口为Berkerly Sockets4.3,Web服务器与数据库服务器间的交互接口为CGI(Common Gateway Interface)。
  2.嵌入式Web服务器实现原理。从功能上讲,Web服务器监听客户端的服务请求,并根据客户请求的类型提供相应服务。嵌入式Web服务器是指将Web服务器引入到现场嵌入式设备中并驻留其中有限的代码空间内。与传统的Web应用相比简化了系统结构,在相应的软硬件平台支持下,利用标准的接口形式和通信协议,内嵌于嵌入式设备的Web服务器可以向任何接入它所在网络的合法用户提供统一的基于浏览器方式的操作和控制界面。用户端使用Web浏览器与Web服务器进行通信。客户端与服务器交换数据之前,首先用TCP/IP建立连接,客户端向服务器请求数据,服务器在接收到用户端的请求后,处理用户请求并返回需要的数据。这些数据可来自静态主页和文件,也可以根据请求动态产生。它是一种请求/响应协议,使用可靠的TCP连接,通常采用端口80。客户端和服务器间是以HTTP协议进行请求和响应。服务器和客户端只能为一次事务处理建立并维持连接,完成一次事务处理后便结束连接。由此可见,接收客户端请求、解析客户端请求、响应客户端请求、向客户端回送请求的结果是Web服务器所需完成的主要任务。
  3.嵌入式Web服务器的主要设计技术与实现。嵌入式Web服务器的主要设计技术与实现与传统的Web服务器不同,嵌入式Web服务器是运行在资源有限的嵌入式系统上的,同时嵌入式领域一般仅要求提供必要的信息交互手段,因此,在设计中应尽可能使代码精简高效。采用的主要技术为:
  (1)超文本传输协议HTTP。可持续连接HTTP协议是一个面向事务的、无状态的应用层协议,使用TCP作为传输层协议,知名的HTTP服务器端口是TCP的80端口。HTTP1.0不支持持续连接,由客户进程发起建立一条同服务器进程的TCP连接,然后发出请求并读取服务器进程的响应,服务器进程关闭连接表示本次响应结束。这样,对每一次请求和响应,都要通过TCP的3次握手建立连接,造成对网络资源的浪费。HTTP1.1对HTTP1.0最大的改进就是支持了持续连接,只用建立一次TCP连接而重复地使用它传送一系列的请求/响应消息,减少了额外开销。
  (2)通用网关接口CGICGI。通用网关接口CGICGI是在Web服务器上运行外部程序的接口,它允许将其输出结果经HTTP服务器传送给Web浏览器。如果没有CGI,Web服务器就只能提供静态的文档和到其它页面或服务器的链接,有了CGI,程序就可以在后台进行各种动态的操作。CGI的主要功能是在Web环境下,从客户端传送一些信息给Web服务器,Web服务器把接收到的有关信息放入环境变量,然后再去启动所指定的CGI脚本以完成特定的工作。CGI脚本从环境变量中获取相关信息来运行,最后使用STDOUT输出HTML形式的结果文件,经Web服务器送回浏览器显示给用户。
  (3)多进程服务器结构。采用多进程服务器结构从服务器响应用户请求的方式来看,有循环方式、多线程方式、多进程方式等多种模式。一般来说,在Windows操作系统下比较适用多线程方式。考虑到Linux操作系统的特点和Web服务器的特点,采用多进程方式来设计嵌入式Web服务器。对于每一个客户连接,服务器首先创建一个子进程,然后将连接套接字转向子进程的标准输入、标准输出。在子进程中服务器完成相应的HTTP服务,服务结束后终止了进程。
  (4)TCP/IP协议栈。TCP/IP协议栈的实现主程序的循环包括:对接收到的TCP/IP数据帧进行解包,供应用程序使用;对欲发送的数据进行打包,将TCP/IP数据帧的格式发送出去两大部分。结合嵌入式系统的实际,本TCP/IP协议栈主要是实现ARP协议、IP协议、ICMP协议、TCP协议。
  (5)实现虚拟下载。从Web服务器下载文件是客户端的重要需求,Web服务器响应下载请求最简单的办法就是直接将用户请求的数据文件从服务器磁盘上读出然后传给客户端。但有时需要调用一个CGI程序,由CGI程序读取数据,然后经过CGI程序加工后传给客户机。这就带来一个问题,即URL的文件名是所调用的CGI程序名而不是实际的数据文件名,这为用户在客户端存盘选择文件名带来极大不便。嵌入式Web服务器采用URL内部转向的方法,为用户提供虚拟下载文件名,较好地解决了这一问题。
  
  三、结束语
  
  嵌入式Web服务器是实现嵌入式系统通过Web方式与Internet互联的关键组成部分,直接影响网络应用系统的运行质量与效率,对其进行研究对嵌入式Internet技术的发展有重要意义。实践证明,在各种基于客户机/服务器模式的In-ternet应用中使用这种嵌入式Web服务器,可节省系统资源,提高运行效率,其功耗低、体积小、性能高、成本低廉、可便携、易于布置实施等特点,在应用环境灵活多变、任务响应实时性强、系统可靠性高等复杂应用领域中必将得到广泛应用,具有良好的发展前景。
  
  [参考文献]
  [1]曲波,吴兆芝.Linux环境下面向Web服务器的设计与实现[J].小型微型计算机系统,2002.
  [2]符意德.嵌入式系统设计原理及应用[M].北京:清华大学出版社,2001.
  [3] Jeremy Bentham.嵌入式系统Web服务器——TCP/IP Lean,陈向群等译[M] .北京:机械工业出版社,2003.
  [责任编辑:李丽娜]
其他文献
金秋时节,长安营欢歌笑语,层层梯田里果蔬飘香,一辆辆满载着西红柿的车队驶出苗乡大山,奔向沿海各大城市……在高寒山区发展俏销外省质优价高的无公害延季蔬菜,是城步苗族自治县26万各族群众变“穷山”为“金山”,广辟财源的一个剪影通过县委县政府扎实推进扶持引导,城步产业扶贫建设高歌猛进,越城岭下诞生了一个又一个奇迹  ——全县奶业年总产值8亿元,成为我国南方奶业第一县;  ——全县延季蔬菜年总产值2.1亿
期刊
[提 要] 本文从欠发达地区江西省广昌县金融农村经济发展现状入手,深入分析金融与新农村建设相互关系以及金融支持“三农”经济面临的现实问题,力求探寻深化农村金融改革,构建与社会主义新农村建设相匹配的金融服务体系  [关键词] 欠发达地区;金融;新农村建设  [作者简介]黄普太(1965—),男,中国人民银行抚州市中心支行;钟焕焕(1968—),女,中国人民银行抚州市中心支行(江西抚州 344000)
期刊
[提要] 在我国新农村建设中,各地应结合自己的具体情况走特色农业的发展道路。江西高安有着发展畜牧业的优势,畜牧业的发展为高安市的农业现代化提供了有力的保证。本文分析了高安畜牧业发展的制约因素及其产生原因,提出了加快畜牧业发展的几点建议。  [关键词] 新农村建设;畜牧业;建议  [作者简介] 黄军(1986—),男,江西科技师范学院文学院05汉语言专业学生;陈秋冰(1986—),女,江西科技师范学
期刊
新余是一颗散落在赣西大地上的明珠,全市总面积3178平方公里,人口112万。这里山清水秀,有传诵几千年的七仙女下凡之地仙女湖风景区;这里人杰地灵,曾经养育了江西历史上第一个状元卢肇、北宋江南第一个宰相王钦若、明朝一代权臣严嵩、现代国画大师傅抱石、当代国际著名医学博士何大一;这里经济活跃,省委省政府确立的三个“千亿元”工程有两个就在新余,即以新钢为核心的钢铁产业主营业务收入达到千亿元,以江西赛维为核
期刊
有这样一句哲语:“授人以鱼不如授人以渔。”其意就是说给人鱼吃不如教给人捕鱼的方法。江西农业大学包扶慈化镇柘塘村正是授渔之举,扶智之举。  按照江西省委办公厅、省政府办公厅关于开展“党旗引领致富路,携手共建新农村”为主题的定点包扶贫困村工作的通知精神,江西农业大学被指定帮扶宜春袁州区慈化镇柘塘村,从2007年开始,帮扶期限为四年。  柘塘村有人口4500多人,由于交通不便、信息闭塞等原因,经济比较落
期刊
白塘村位于江西省安福县金田乡的西北部,全村有5个村民小组,277户1152人,耕地面积1297.5亩,山地面积2485亩,是全乡经济最不发达的村落之一。解放前,这里是“干死哈蟆、饿死老鼠”的地方。由于地理位置偏僻,村前又被一条大江阻断,四周不通公路,乡亲们祖祖辈辈为“行路难,出门难”所困扰。交通不便、信息闭塞,造成了白塘村贫穷、愚昧和落后。直到九十年代初期,“外面的世界很精彩”,到处都是通衢大道,
期刊
[提 要] 本文针对我国创业教育多集中于创业教育宏观研究的现状,将创业教育引入了高等学校专业课的教学中以普通高校经济类专业“企业经济活动分析”课程为例,探讨了创业教育在专业课教学中运用的目的方法与途径,并介绍了相应的组织实施方法  [关键词] 创业教育;课程教学;教学模式;高等教育  [作者简介]曹光四(1964—),男,江西农业大学经济与贸易学院副教授;罗 焰(1968—),女,江西科技师范学院
期刊
范小建:破除扶贫认识上的误区很重要  从去年开始,在全国农村建立了最低生活保障制度一些人提出,低保已经解决了农村人口的温饱问题,扶贫开发是否可以不搞了有的人甚至认为绝对贫困人口在大幅度减少,扶贫工作已经不重要了范小建说,经过多年的努力,贫困人口确实减少到1479万,只占农村人口的1.6%,但是这是一个极低水平的温饱,任何自然市场和政策风险都能使刚刚越过温饱线的低收入人口返贫同时,必须要关注收入差距
期刊
从2007年起,江苏省委、省政府为进一步探索“五个一”扶贫机制(一个扶贫指导员驻村、一个科技特派员挂钩、一个工商企业帮扶、一个发达镇村结对、一个主导产业带动),决定组织工商企业与全省1011个经济薄弱村开展结对帮扶活动。江苏省淮安市正确理解省委、省政府的战略意图,迅速转变传统扶贫模式,树立扶贫新理念,实施挂钩新举措,努力放大村企结对帮扶的长远效益,取得了初步成效。截至目前,全市已有183家企业与1
期刊
中国扶贫开发协会参加“第二届中国贫困地区可持续发展战略论坛”   2008年9月19日,在贵州省毕节市“开发扶贫生态建设”试验区成立20周年的喜庆日子,由北京大学贫困地区发展研究院中央智力支边协调小组支援毕节试验区专家顾问组会同中共毕节地委毕节地区行署联合举办的第二届中国贫困地区可持续发展战略论坛,在毕节腾龙凯悦酒店三楼会议厅隆重开幕,协会副会长谷永江应邀参加了本次论坛论坛以毕节“开发扶贫生态建设
期刊