网站首页 > 服务器> 文章内容

基于嵌入式系统的Web服务器建立设计

※发布时间:2019-5-23 16:52:50   ※发布作者:habao   ※出自何处: 

  用性的信息交流,即客户端利用HTTP浏览器,在任何时间、任何地点都能实现与嵌入式设备的信息交互。可以说,嵌入式Web的应用极大地促进嵌入式设备,特别是家电设备、通信终端、仪器仪表的信息交互和远程控制功能。

  在三网融合的大背景下,通过家庭网关实现外部网络即电视网、电信网、因特网与家庭内部电话、电视、电脑以及家庭电器设备的通讯,是当前家居智能化、现代化的重要发展趋势。本文的主要内容是研究基于家庭网关的嵌入式系统,实现简单实用的Web服务器功能,为外部网络提供一个方便快捷地访问和控制家庭内部资源的平台。由于Android操作系统能方便地将各种应用程序嵌入网络,以及性好、支持硬件丰富的特点,本文选择Android操作系统作为家庭网关设计的软件平台来建立Web服务器。

  Android移动设备平台是基于Linux内核再度开发的一个开源的操作系统和软件平台,最早期由Google公司进行研究和开发的。后来Goog le为了推广此技术,它和中国移动、HTC、三星、摩托罗拉等几十家手机通信运营商和制造商,建立了手机联盟,共同开发Android移动设备平台。

  Android采用了软件堆层的架构,主要分为三部分:其最底层是基于Linux内核进行再度开发的,Linux内核只提供最为基础的功能;中间层包括由C++开发的虚拟机Virtual Machine(VM)和函数库Library;最上层是各种应用软件,包括通话程序、短信程序等。应用软件则由各公司自行开发,以Java编写。每个Android应用程序都在VM的一个实例中运行,这个实例驻留在一个由Linux内核管理的进程中。

  本文实现的Web应用虽然基于Android操作系统,但并不像通常的Android APP那样,需要一个AndroidManifest.xml文件包含必要的配置信息,且需要一个Activity类来提供UI。因为是Web服务不需要用户图形界面,只要用到Android提供的接口而已,即android.jar,这是一个Java归档文件,其中包含构建应用程序所需的所有的Android SDK类。而且,由于Android VM的原因,不能直接使用.class文件,需要转换为.dex文件,这些内容将在下文详细介绍。

  在嵌入式系统中,主控制芯片的选择对于整个系统性能和良好运行有着至关重要的影响,在选择主控芯片的过程中,需综合考虑芯片自身的性能、兼容性、价格以及后续的升级等因素。综合考虑以上因素,本文设计的家庭网关采用了Cortex—A8处理器作为硬件平台。因为Cor tex—A8支持大型的操作系统,高频率、高级存储管理及丰富的外设接口,为Android系统的运行提供了良好的硬件基础。

  一个Web服务器也被称为HTTP服务器,它通过HTTP协议与客户端通信。这个客户端通常指的是Web浏览器。Web服务器浏览器的服务请求,根据用户请求的类型提供相应的服务;Web服务器在接收到用户端的请求后,处理用户请求并返回需要的数据。这些数据通常以格式固定、含有文本和图片的页面出现在用户端浏览器。本文Web服务器系统的设计架构如图1所示。

  目前常用的嵌入式Web服务器主要有boa、thttpd、mini_httpd、shttpd和lighttpd等,但它们都不能直接应用于Android系统上。本文选用代码精炼、扩展性强的开源i-jettyWeb服务器,它可直接运行在Android系统上,为Servlet提供运行钝能。

  Servlet是一种于平台和协议的Web服务器端的Java应用程序,可以生成动态的Web页面。与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载。

  一个Web服务器系统是离不开数据库的支持。SQLite是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它是针对嵌入式产品而设计的,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。Android平台集成了SQLite数据库,并提供了操作的API。所以,只要在Servlet中引入开发Android程序提供的API,就能实现用Servlet操作SQLite。

  本文下面主要介绍i—ierry web嵌入式服务器的搭建,以及如何实现Servlet对SQIrite数据库的操作。

  i—jetty是一个将开源Web容器Jetty移植到GoogleAndroid手机平台的开源项目,可以使嵌入式设备上运行Web应用。Jetty是一个100%由Java实现的、开源的HTYP服务器和javax.servlet容器,它不仅仅作为一个服务软件(如Tomcat)被使用,而且其优良的组件(Compone t)设计、高内聚低耦合、高扩展性等特性使得Jetty非常易于作为嵌入式工具使用。总之,Jetty具有的优点包括:

  i—jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以j将Jetty容器实例化成一个对象,可以迅速为一些运行(stand—alone)的Java应用提供网络和web连接。使用简单、配置简单,体积很小,但它的功能齐全,并且还是一个Servlet容器,这就让动态网页实现和后台操作(例如数据库操作)成为可能。同时,i—jetty可以使用Android的接口,这就降低了开发的难度和复杂度。i—jetty与其他主流的服务器一样,只要将已经做好的Web项目发布到服务器的Webapps目录下,就能实现网站的正常运行,十分的方便。

  Servlet是位于服务器端的Java应用程序,它由Web服务器进行加载。Servlet的主要功能在于交互式地浏览和修改数据,生成动态Web内容。Servlet可以用来扩充Java—enabled Server的基本功能,目前最常使用的是增加Web服务器的互动性。但它可以被用来扩充任何种类的服务器,如FTP服务器。

  最早用来产生动态网页服务的方法是CGI(Common Gateway Intece)。它的做法是透过Web服务器将客户端的请求送给一个进程,这个进程再将请求的执行结果传回客户端,只要是一个新的请求,不管它是否和先前的请求相同,CGI都产生一个新的进程来处理,这样非常耗费系统资源。在Servlet中每一个请求都是由同一个进程下的线程所服务,而且相同的请求会由同一个线程所执行。同时Servlet使用Java语言来开发的,具有跨平台特性,而这个优点更是CGI所没有的。因此,Servlet提供了强有力且具有效率的技术来取代CGI。

  3)编译完成后会自动生成.class文件,需要将.class文件转换成Android能执行的.dex文件;

  4)将.dex文件和web.xml等文件按一定顺序保存在一个web工程目录下,然后打包成一个war包。

  SQLite是一款轻型的数据库,能够跟很多程序语言相结合,比如Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比它们都快。不像常见的客户端/服务器结构范例,SQLite引擎不是个程序与之通信的进程,而是连接到程序中成为它的一个主要部分。所以主要的通信协议是在编程语言内的直接API调用。这在消耗总量、延迟时间和整体简单性上有积极的作用。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。Android操作系统采用标准SQLite数据库,提供管理数据库相关的API。所以,只要在Servlet中引入开发Android程序提供的API,就能实现用Servlet操作SQLite。Setv let调用SQLite数据库的方法如下:

  将装载了Android系统的嵌入式设备连接网络,查到其网络连接的IP地址为192.168.137.96,将嵌入式web服务器i—jetty安装到该设备,并且将设计好的web工程放在SD卡中的/jetty/webapps/目录下。打开服务器,设置好HTTP的通信端口,服务。

  可知,家庭网关服务器端的地址为192.168.137.96。启动i—jetty后,在浏览器地址栏输入192.168.137.96:8080/temp,可以看到系统登陆页面,如图2所示。

  这是一个用户登陆界面,输入用户名和密码后,主页会将输入信息提交到Login.java的Servlet里,由此Servlet来查询数据库,判断该用户是否。当用户后,可以进入主页界面,如图3所示。

  本文首先简要介绍了Android系统,然后论述了实现嵌入式Web服务器和相关Internet技术,指出了在Android系统下实现Web服务器应要注意的事项。接着介绍了i—jetty的优点以及编译安装方法,了解了i—jetty是为数不多的可以在Android下运行的Web服务器,并且还是一个Servlet容器。将传统的CGI与Servlet做了比较,说明了Servlet在Android系统下的优势:Setvlet在动态网页的实现方面更有效率。在后台操作方面,Android并不支持类似PHP的网页脚本语言,所以,Servlet是一个很好的选择。在嵌入式系统里存储信息,SQLite以其方便的操作,无需额外配置,体积小等优点,得到了广泛的应用。

  在嵌入式系统电子设备的运行中,当出现程序跑飞的情况或程序跳转时,可用手动或自动的方法发信号给硬件特定...

  嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、...

  由于有了基于模型的设计,使得开发大量的汽车嵌入式系统时,可以由模型自动生成最终编译的软件。不过,这项...

  “嵌入式系统”这个词范围很广,从数字式电子表到变电站电力检测系统中的PC都可归于这一范畴。大多数情况...

  本文结合FM手持式测试仪这一实例,从系统硬件设计、系统软件设计、利用内核扩展接口和产品应用特点这...

  SotIF和AI:和SotIF有关的展示是最新的人工智能和机器学习研究在汽车系统中的应用,出于架...

  Boa是一个非常小巧的web服务器,其可执行代码只有约60Kb,它是一个单任务的服务器,只能依次完成...

  我国拥有世界上最大的消费电子产品市场,手机、彩电、VCD、家用电器等的拥有量都居世界第一。随着经济水...继母十七岁

   文章来源于弘易国际

相关阅读
重庆学习网zslpsh,0755深圳房产人才招聘网,拾年网90后,anedc股票,最新电影下载淘娱淘乐,重庆中学生网高考,重庆中学生网高考,学习重庆方言网,重庆中学生学习方法,重庆俗语网,中学生网zslpsh,0755深圳交友网,重庆初中生,贵州重庆方言网,025新闻网,西南重庆方言歌曲,025南京交友网,重庆农家乐美女,观赏蟹种类zadull,云南重庆方言网,重庆中学学习网,028成都交友网,推广taoyutaol,西南四川方言网,观赏龟论坛zadull,四川重庆方言网,022天津交友网,重庆中学生网家长,鹦鹉鱼zadull,重庆俗语,电影淘娱淘乐,taoyutaole娱乐,华夏视讯网,0755深圳旅游招聘,昆明重庆方言网,淘娱淘乐影视,www.00game.net,观赏鱼zadul,重庆高考zslpsh,重庆中学生网高考,027房产招聘网,坝坝舞wagcw,西南重庆方言网,贵州重庆方言网,重庆言子儿网,热带鱼zadull,重庆高考zslpsh,0755深圳旅游招聘网,淘娱淘乐影视网,0571.361.cm,重庆方言学习网,028成都新闻,异形观赏鱼种类,影视网淘娱淘乐,最新电影下载淘娱淘乐,0773桂林论坛,拾年网80后动画片,观赏蟹论坛zadull,观赏龟繁殖教程,重庆一中zslpsh,重庆俗语网,广场舞wagcw,观赏虾的种类zadull,观赏鱼观赏虾观赏龟,西南方言网,观赏鱼之家论坛zadull,战争前线辅助00game,西南重庆方言小说,重庆中小学zslpsh,推广taoyutaol,战争前线论坛00game,0871交友网,025南京新闻网,重庆言子儿网站,娱乐taoyutaole,022天津交友网,025新闻网,重庆中学生网学习,022天津交友网,重庆方言歌网,www.120.cm健康网,anedc股票,重庆初中生