(毕业设计)嵌入式系统的网络服务器_第1页
(毕业设计)嵌入式系统的网络服务器_第2页
(毕业设计)嵌入式系统的网络服务器_第3页
(毕业设计)嵌入式系统的网络服务器_第4页
(毕业设计)嵌入式系统的网络服务器_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式系统的网络服务器在“每个人都处在互联网的浪潮中”之后,现在很明显随之而来的是“每件事都处在互联网的浪潮中”。大多数售卖咖啡的机器仍然不能提供全世界的联网。然而嵌入式远程维护和诊断的网络集成就像所谓的M2M通信一样以一种相当快的速度增长。对很多发展工程来说,仅仅是通过网络浏览器经INTERNET,或是经过局域网进行组成和系统的远程维护和诊断,负担非常之重。在许多部门中,人们对于嵌入式系统配置和服务的工作完全地基于网络。剩余的时间用前面的面板和一些功能键组成一个小的LC显示结束经典用户界面的制作。随着移动互联网领域将来的发展,可以预期,基于蓝牙技术的个人区域网和快速发展的M2M通信会出现长足的进步。经过网络浏览器获得进入一个嵌入式系统最主要的功能单元是网络服务器。这种网络服务器给网络浏览器带来全球互联网或局域网上理想的HTML页(HTMLHYPERTEXTMARKUPLANGUAGE,超文本链接标示语言)和图片。这样发生了基于HTTP(HTTPHYPERTEXTTRANSFERPROTOCOL,WWW服务程序所用的协议)。一个TCP/IP协议层,意味着基于这个已制定的标准,来管理整个通信。网络服务器(HTTP服务器端)和浏览器(HTTP客户端)构建了TCP/IP的应用软件。HTTP在去年达到了一个显著的区分。其间全世界数以百万计的用户在广域网中使用基于HTTP进行冲浪。今天几乎每一台个人电脑都对这个协议提供了必要的支持。这种状况在嵌入式系统中也越来越多。HTTP在以极快的速度伸展。1基于TCP/IP的HTTP作为通信平台HTTP是一个基于TCP/IP协议层之上的简单的协议。HTTP使用TCP(TCPTRANSFERCONTROLPROTOCOL,传输控制协议)。TCP是一个通过下属的IP(IPINTERNETPROTOCOL,网际协议)协议传输数据的相对复杂和高质量的协议。TCP本身经过一个广泛的三方握手程序,始终保证两个通信伙伴之间安全的连接。因此经过HTTP的数据传输可以始终被保护。由于广泛的TCP协议机制,HTTP只表现出一种低级别的性能。FIGURE1TCP/IPSTACKANDHTTPPROGRAMMINGMODELHTTP基于一种简单的客户/服务器的概念。HTTP服务器和客户端经过一个TCP连接进行通信。默认的端口号是80。服务器完全被动地工作。他等待客户端的请求。这种请求通常指明确的HTML文件的传输。这种HTML文件可能不得不由CGI(CGICOMMONGATEWAYINTERFACE,公共网关接口)动态产生。请求的结果,服务器通常将包含的需要的HTML文件通过响应回答PICTURE1B。HTTP的请求通常由几行文本组成,通过TCP传送到服务器。LISTING1A给出了一个例子。第一行表明了请求类型(GET),请求对象(/TEST1HTM)以及使用HTTP的版本(HTTP/11)。请求的第二行客户端告诉服务器能够接收什么类型的文件。第三行包括了关于客户端软件的信息。请求的第四行也是最后一行通知服务器客户端的IP地址。依照请求的类型以及应用的客户端软件可以写出更多行。可以用一个空行作为请求的结尾。GET/TESTHTMHTTP/11ACCEPTIMAGE/GIF,IMAGE/JPEG,/USERSELLINGAGENTMOZILLA/40HOST19216801LISTING1AHTTPGETREQUESTHTTP/11200OKDATEMON,06DEC1999205512GMTSERVERAPACHE/136LINUXCONTENTLENGTH82CONTENTTYPETEXT/HTMLTESTSEITETESTSEITELISTING1BHTTPRESPONSEASRESULTOFTHEGETREQUESTFROMLISTING1A作为对HTTP请求的回答主要由两部分组成。首先有一个个别文本行的标题。跟着又一个内容对象(可选择)。这个内容对象大概由一些文本行组成,假设是一个HTML文件或者二进制文件,这时候可以传送GIF或JPEG格式的图像。标题的第一行特别重要。它起着报告状态和错误信息的作用。如果发生错误,只传送标题或标题的一部分作为回答。2网络服务器的功能原理简单化一个网络服务器可以被设想成像一个特殊类型的文件服务器。PICTURE2A展示出了总体结构。网络服务器从网络浏览器接收了一个HTTP的GET请求。通过这个请求,必须有一个明确的文件作为回答(见PICTURE2A中的STEP1)。之后,网络服务器尝试进入被请求电脑的文件系统。然后尝试找到一个需要的文件(STEP2)。在成功搜寻之后,网络服务器读取整个文件(STEP3),作为一个回答传送回网络浏览器(HTTP响应由标题和内容对象组成)。如果网络服务器不能在文件系统中找到合适的文件,一个错误信息(只包含标题的HTTP响应)简单地作为响应发送到客户端。FIGURE2FUNCTIONALPRINCIPLEFROMWEBSERVERANDBROWSER网络的内容由单独的文件构建。它的基础是用HTML页的静态文件构建的。在这些HTML文件里涉及到远程文件的嵌入。这些文件是GIF或JPEG格式的这些有代表性地图片。然而也涉及到其它一些对象,例如可能有JAVA程序。在网络浏览器接收到网络服务器的HTML文件之后,这个文件将被评价然后为外部参考搜索。现在PICTURE2A的14步将为每一个外部参考再一次运行,为了从相应的网络服务器中请求各自的文件。请注意,这样一个参考由网络服务器的名字或IP地址组成(例如“DELNETPCCOM”),需要文件的名字也是如此(例如“PICTURE1GIF”)。所以事实上每一个参考都能够查阅另一个服务器。换句话说,一个HTML文件能够定位在服务器“SSVEMBEDDEDDE”上,但通过这个HTML文件外部涉及到的需要的图像定位在网络服务器“DELNETPCCOM”上。最后这个分离对象的网络是万维网(WWW)得名的原因。所有通过网络服务器的必须得文件被浏览器请求,就像PICTURE2A中展示的那样。通常这些文件被存储在网络服务器的文件系统中,网络管理员有时会更新它们。网络服务器更进一步的基本功能是我们前面提到的公共网关接口(CGICOMMONGATEWAYINTERFACE,公共网关接口)。最初这项技术只应用于简单的嵌入HTML页的窗体。作为窗体填料结果的数据将经HTTPGET或POSTREQUEST被传送到网络服务器(见PICTURE2B的STEP1)。在这样一个GET或POST的请求中,CGI需要被窗体赋值的程序名已经被包括进去。这个程序需要放在网络服务器上。通常存储在“/CGIBIN”目录中。GET或POST请求的结果是网络服务器启动位于“/CGIBIN”目录中的CGI程序,根据参数传递标准的数据(STEP2)。一个CGI程序的输出导向到网络服务器(STEP3)。然后网络服务器把数据全部传送到网络浏览器作为响应(STEP4)。3动态产生HTML页与一个公司通过静态页面和图片告诉人们有关产品计划和服务的网页相反,一个嵌入式的网络服务器能够提供动态产生的内容。它将在首先通过浏览器进入的时候产生动态页面。如何另外通过INTERNET检查系统的实际温度静态HTML文件对一个嵌入式的网络服务器来说没有什么意思。最多关于固件的版本和服务的信息是通过HTML格式存储的。另外所有其它的任务通常都是由动态产生HTML完成的。在请求的时刻有两种产生HTML页的不同技术第一种是所谓的服务器方脚本,第二种是CGI设计。在服务器方脚本中,脚本代码嵌入到HTML页中。如果需要,这些代码将在服务器方被执行。因此,有许多种可以提供的脚本语言,这些语言在HTML页中都可用。在LINUX团体中主要使用PHP(PHP一种新型的CGI网络程序编写语言。)。微软中意的是VBSCRIPT。在HTML页中插入JAVA同样可能。美国的SUN公司将这种技术命名为JSP。用脚本代码编写的网页静态地存储在网络服务器的文件系统之中。在服务器的文件被传送到客户端之前,一段特殊的程序用动态产生的标准HTML取代整个脚本代码。而网络浏览器在脚本语言中将什么也看不到。FIGURE3SINGLESTEPSOFTHESERVERSIDESCRIPTINGPICTURE3展示了服务器方脚本的简单步骤。第一步中网络浏览器经HTTP的GETREQUEST请求一个明确的HTML文件。网络服务器认可需要文件的明确的扩展名(例如用ASP或PHP代替HTM或HTML),然后启动一个脚本引擎(见STEP2)。这段程序得到需要的包括文件系统得到的脚本代码在内的HTML文件(STEP3),执行脚本代码,制造一个新的不用脚本代码的HTML文件(STEP4)。包括的脚本代码将被动态产生的HTML所代替。这个新的HTML文件将被网络服务器读入(STEP5),然后发送给网络浏览器(STEP6)。如果服务器方脚本被期望用于嵌入式网络服务器,那么你不得不考虑必要的附加资源。一个简单的例子为了执行在一个网页中嵌入PHP代码,必须为服务器附加程序模块。一个脚本引擎和嵌入式网络服务器被存储在嵌入式系统的闪存芯片中。有了这些,执行期间需要更多的内存。4LINUX下网络服务器的运行一旦谈起关于网络服务器在和LINUX连接中的问题,大部分人马上想到了APACHE。在NETCRAFTSURVEY的调查之后,全世界的网络服务器主要使用了这种程序。APACHE是对传说中的NCSA服务器的增进。APACHE(APACHE美洲印第安人的一种族)的名字与印第安人无关。它是从“APATCHYSERVER”构造而来,因为第一个版本由不同的代码和补丁文件装配起来。此外还有许多其它的网络服务器甚至是对于LINUX的。这些服务器的大多数固定在GPL(类似APACHE)之下,可以免费使用。更为广泛的内容可以参见“HTTP/DIRECTORYGOOGLECOM/”。每一个网络服务器都有其优缺点。一些拥有明确的功能和特殊的性质;一些对同时发生的请求通过它们的反应速度达到最好的辨别,像它们对配置设定的变化;另外一些设计用于需要最小的资源和提供非常小的设置可能性,像只有一个客户的连接。对一个嵌入式网络服务器来说最重要的事情是实际资源的需求。有时嵌入式系统只提供最小的资源,主要与LINUX共享。其间有许多高性能的32位386/486微控制器或基于ARM的拥有8MRAM和2MFLASHROM的嵌入式系统(PICTURE4)。从这个ROM(只读存储器,例如闪存芯片)将被导入一个完全的LINUX,它基于22或24的内核,有TCP/IP协议层和网络服务器。HTML页和程序同样存在ROM中用来产生网页。一个嵌入式系统的空间需求与一张小的大邮票相似。很好理解它没有位置给一个像APACHE一样强大的网络服务器。FIGURE4EMBEDDEDWEBSERVERMODULEWITHSTRONGARMANDLINUX一个APACHE的容量几乎同样如此。它不需要通过网络服务器和浏览器形象化一个影印机的计数器或一个过滤器的状态。在许多情况下一个单一的网络服务器就足够了。两个典型的代表是BOA和THTTPD。起初,两个网络服务器都用于和运行在LINUX下的嵌入式系统连接。BOA和THTTPD的结构设置比较简陋,但却足够了。顺便说一下,它们的源代码对用户是开放的。这些服务器上可执行的二进制文件总是小于80K,能够没有问题的整合到大多数嵌入式系统中。对于网页的动态产生,两个服务器都只提供了CGI作为增补。更高的技术,像SSI则没有提供。嵌入式网络服务器和APACHE很大的差别在于,相对有限构造设置,同时发生请求数量的最大可能。高性能的服务器像APACHE立即为每一个引入的客户端请求制造一个自己的过程。在这个过程里所有进一步的步骤都将被执行。这需要在运行期间拥有一个非常好的规划和大量的空余内存资源。但是另一方面,许多网络浏览器能够同时进入这样一个网络服务器中。嵌入式网络服务器像BOA和THTTPD只工作于一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论