基于嵌入式系统U盘开发的设计(完整资料)_第1页
基于嵌入式系统U盘开发的设计(完整资料)_第2页
基于嵌入式系统U盘开发的设计(完整资料)_第3页
基于嵌入式系统U盘开发的设计(完整资料)_第4页
基于嵌入式系统U盘开发的设计(完整资料)_第5页
已阅读5页,还剩96页未读 继续免费阅读

下载本文档

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

文档简介

基于嵌入式系统U盘开发的设计(完整资料)(可以直接使用,可编辑优秀版资料,欢迎下载)

湖南文理学院芙蓉学院基于嵌入式系统U盘开发的设计(完整资料)(可以直接使用,可编辑优秀版资料,欢迎下载)课程设计报告课程名称:嵌入式系统课程设计专业班级:通信工程1301班学生姓名:王海波指导教师:邵湘怡完成时间:2016年6月22日报告成绩:评阅意见:评阅意见:评阅教师日期湖南文理学院制目录TOC\o"1—3"\h\z\u基于嵌入式系统u盘开发的设计PAGEREF_Toc454307802\h1HYPERLINK1.1。1CGI概述 PAGEREF_Toc503383237\h5HYPERLINK\l”_Toc503383238”1。1.2CGI工作原理 PAGEREF_Toc503383238\h52嵌入式Web服务器简述 PAGEREF_Toc503383239\h7HYPERLINK2.1嵌入式Web服务器的主要应用 PAGEREF_Toc503383240\h8HYPERLINK\l"_Toc503383241"2。2嵌入式Web服务器的优点 PAGEREF_Toc503383241\h82。3嵌入式Web服务器实现原理ﻩPAGEREF_Toc503383242\h83嵌入式Web服务器硬件整体结构 PAGEREF_Toc503383243\h9HYPERLINKﻩPAGEREF_Toc503383244\h10HYPERLINK\l"_Toc503383245"ﻩPAGEREF_Toc503383245\h103.1嵌入式Web服务器软件构成 PAGEREF_Toc503383246\h10HYPERLINK\l"_Toc503383247"3.2精简TCP/IP协议及实现 PAGEREF_Toc503383247\h113.2.1ARP协议及其实现 PAGEREF_Toc503383248\h11HYPERLINK3。4CGI接口ﻩPAGEREF_Toc503383253\h13HYPERLINK4系统软件设计ﻩPAGEREF_Toc503383254\h13HYPERLINK4.1嵌入式操作系统ﻩPAGEREF_Toc503383255\h13HYPERLINK\l"_Toc503383256"4.2Boa的移植ﻩPAGEREF_Toc503383256\h134.3软件实现ﻩPAGEREF_Toc503383257\h14HYPERLINK\l”_Toc503383258"5实验测试 PAGEREF_Toc503383258\h16HYPERLINK\l”_Toc503383259”6结束语 PAGEREF_Toc503383259\h17参考文献 PAGEREF_Toc503383260\h18摘要随着计算机、网络通信和Internet技术的飞速发展和不断进步,嵌入式系统在家庭和工业应用越来越广泛.如何将嵌入式系统和工业控制系统接入Internet,综合利用嵌入式系统资源,实现嵌入式系统的远程管理和控制,已成为倍受关注的研究课题,而实现嵌入式系统的网络化则成为嵌入式系统的发展趋势。网络通信时,应用程序使用C/S(客户/服务器)模式进行信息交互.传统的服务器程序一般运行在大型的拥有高级操作系统的服务器的计算机上,这样服务器软件需要强大的硬件和系统软件支持。嵌入式网络服务器是利用嵌入式系统实现服务器的软件和硬件功能,是嵌入式技术和网络技术相结合的产物。与传统服务器相比,嵌入式Web服务器具有结构简单、体积小、可靠性强以及方便灵活等特点。这些让它具有很大的发展潜力。另一方面,嵌入式Web服务器与传统的web服务器相比,也受到一些限制.传统的Web服务器主要用于处理较大的客户量的同时并发访问,硬件方面有强大的处理器和内存支持,软件方面有商业数据库支持,而嵌入式Web服务器的处理能力和存储容量都有限,这就要求嵌入式Web服务器在设计过程中需要尽量合理利用资源。将嵌入式技术与Web技术相结合,已成为目前嵌入式系统的一个重要发展方向和必然趋势。利用源代码开放的uClinux为操作系统平台,实现了以ARM微处理器为核心的嵌入式Web服务器,在分析了嵌入式Web服务器的体系结构后,给出了系统的硬件结构组成和软件设计。对Web服务器的测试结果表明,该服务器运行稳定、控制方便,将在智能家居、远程数据采集、工业控制等领域有着广泛的应用前景。关键词:网络通信;嵌入式系统;ARM处理器;uClinux;Boa服务器;1嵌入式Web服务器的软件构成嵌入式Web服务器主要解决的问题是通过Internet来进行远程访问和控制现场的设备,所以必须在嵌入式设备中配置TCP/IP协议和Web服务器,以解决网络互联问题.但是嵌入式服务器系统只需要使用其中的某些基本的功能,也要减去一些使用不到有功能,以节省有限的嵌入式资源。TCP/IP此外还要用到的软件资源有嵌入式实时操作系统、HTTP协议,同时带有SMTP和SNMP协议,使其具有网络管理的简单功能,通过网络可以对接入到Internet上的设备进行管理和控制。1。1CGI技术1.1.1CGI概述由于传统的Web服务器无法实现Web数据库访问功能,CGI技术充当了访问数据库的重要媒介。CGI是使用应用相关软件增强Web服务器的一种标准方法,可以用任何语言书写。CGI根据需求更新网页,是一种公共网关接口.它通过客户提供给Web服务器的各种信息,由Web服务器启动指定CGI模块函数,完成客户端与服务器端动态的交互,从而实现静态HTML网页无法实现的功能(如表单查询、数据库查询等).通常CGI应用程序处于休眠状态,通过使用一定的网络事件触发回调函数来实现,并显示动态页面。例如,Web服务器收到一个URL里面包含的网页请求时,将执行结果返回给HTML网页,CGI可实现处理表格、数据库查询和电子邮件等操作.1.1。2CGI工作原理系统嵌入式Web服务器通过CGI程序来获取用户的请求、查询条件,使用HTML方式描述结果并直接回送到客户端的浏览器上,此过程中浏览器将用户输入的数据发送到Web服务器,Web服务器将数据使用STDIN(标准输入)送到CGI程序。在执行CGI程序后,会访问数据库的记录,最后使用STDOUT输出HTML形式的结果文件,经Web服务器送回浏览器显示给用户.使用CGI实现客户与服务器的交互分一下九个标准步骤:Web客户(浏览器)通过URL与Web服务器相连;服务发送HTML(和别的组成请求页面的文件)给用户,一旦页面内容传完,这个连接自动断开;在客户方,HTML脚本提示用户做动作或输入,当用户响应后客户请求Web服务器建立一个新的连接;一旦建立连接,客户把用户输入的数据传送给Web服务器;Web服务器把这些信息和别的进程变量传给由HTML以URL形式提交的CGI程序;CGI程序根据输入作出相应的操作,产生对客户的响应(一般以一个HTML文档的形式),并将其传送给Web服务器;Web服务器把应答数据传送给客户,并关闭连接;图1.1CGI工作原理其中CGI与表单之间的信息交互方法有两种模式:“GET”和“POST".选择哪一种模式取决于表单(FORM)的“METHOD"字段的设置,如果METHOD设定为GET,CGI程序从环境变量QUER_STRING中获取数据.为了解释数据和执行需要的动作,CGI程序必须要分析(处理)此字符串;如果METHOD设定为POST,数据会以STDIN,必须使用CONTENT_LENGTH值。在本设计中CGI程序采用的是POST方法。如果想从服务器获得数据并且不改变服务器上的数据时,应该选用GET方法;也有例外,当传输的数据很长时,选用POST方法较好;使用GET方式编写CGI程序会更加简单,但是POST方式则更加先进;当发送的数据将改变Web服务器端的数据时,或者想给CGI程序传输大量数据(一般地,超过1024字节,这是URL的极限长度)时,应该选用POST方法。2嵌入式Web服务器简述嵌入式Web服务器(EmbeddedWebServer)是指将Web服务器嵌入到控制设备和现场测试中,借助于相关的软硬件平台系统,将传统嵌入式设备转变成了以TCP/IP为底层通信协议和Web技术为核心的网络测试及远程控制设备。嵌入式Web服务器基于HTTP协议运作,具有标准的接口形式和通信协议,所以它可以向接入其所在网络的用户提供统一的基于浏览器的控制界面和相关操作。这种技术因具有平台独立特性和开放性,在某种程度上降低了开发难度,使通信系统和软件系统的设计维护工作更容易,提升了控制设备和现场测试的管理水平。如图1所示是典型的嵌入式Web服务器的系统模型:图1典型的嵌入式Web服务器系统模型Internet可以提供多种网络服务,比如通过SMTP(简单邮件传输协议)收发邮件,通过FTP(文件传输协议)传输文件。Internet能得到如此大规模的流行,WWW(WorldWideWeb)技术居功至伟。可以说如果没有WWW和HTTP技术就不会有这么多人使用Internet,正是WWW技术把Internet的结构、服务和应用引上了一个新台阶.2。1嵌入式Web服务器的主要应用目前嵌入式Web服务器主要用于设备管理和企业应用程序网络扩展,它作为后台程序在运行嵌入式设备上,用户可以通过网络对设备进行配置、监测和控制,以保证设备正常而高效地运作。Web接口可以让用户借助于Web浏览器和网络来访问嵌入式设备。以这种方式对设备进行管理不仅可以监测和控制,而且可以根据设备的特点设计地更加人性化和智能化.Web服务已成为支撑现代应用程序的技术和系统的核心组件,目前大部分企业用户都希望为他们的程序添加上基于Web的用户接口。2。2嵌入式Web服务器的优点嵌入Web服务器的优点主要体现在以下几个方面:1)它可以与Internet连接,不再使用专用的线路,这样就具有了最大的普及范围;2)传输内容不局限于数据信息,还有图像和声音等多媒体信息;3)通信协议(HTTP)独立于系统平台,而且是标准而且公开的;4)Web页面使用的HTML语言是统一的网页语言,这使标准化界面与客户端的软硬件平台相互独立,节省了客户端的开发工作;5)Web架构能够减少了在设计系统时的工作量;6)存在大量的工具和函数库,减少了开发的工作量;7)嵌入式Web服务器具有通用性,能够嵌入到任何设备当中。通过应用程序接口,服务器可以运行程序去实现高级功能,普通的监控方式达不到这样的效果。2.3嵌入式Web服务器实现原理Web服务器监听来自客户端请求,并根据请求类型提供相对应的服务。它将Web服务器引入到现场嵌入式设备中,并将信息采集与发布都集成到现场的嵌入式设备中.在相应的软硬件平台支持下,利用标准的通信协议和接口形式,内嵌于嵌入式设备的Web服务器就具备了向接入它所在网络的合法用户提供统一的基于浏览器方式的控制界面和操作,此时浏览器成了设备的前端控制板。当前在嵌入式应用领域,主要通过两种方式将嵌入式系统转变为嵌入式WebServer:1)通过网关服务器实现Internet接入;2)直接通过TCP/IP协议实现嵌入式设备的Internet接入.3嵌入式Web服务器硬件整体结构嵌入式Web服务器的硬件系统包含了具有Web通信能力的微处理器,它可以通过现场总线与应用系统相连,也可以与前端的应用系统直接集成在一起。其硬件结构如图2所示。系统中的FLASHROM存储器是用来存储软件系统的内核、HTML文档、TCP/IP协议;RAM存储器用于存储各种数据;网络接口用于与Internet连接;前端现场测控的硬件完成对现场设备的监测、监测、报警、自动控制等功能;微型处理器负责全体的管理与运行;人机接口是可选条件,实现在本地对现场设备的人工监控.数据存储器RAM存储器FLASHROM数据存储器RAM存储器FLASHROM网络接口部件网络接口部件微型处理器微型处理器应用系统硬件应用系统硬件图2(a)嵌入式系统web服务器硬件结构Internet虚拟文件系统文档(网页页面小程序)虚拟文件系统文档(网页页面小程序)HTP引擎HTP引擎配置模块配置模块安全模块安全模块应用程序接口应用程序接口嵌入式操作系统应用系统管理嵌入式操作系统应用系统管理嵌入式应用系统嵌入式应用系统图2(b)嵌入式系统Web服务器软件系统3.1嵌入式Web服务器软件构成嵌入式Web服务器主要解决的问题是通过Internet来进行远程访问和控制现场的设备,所以必须在嵌入式设备中配置TCP/IP协议和Web服务器,以解决网络互联问题。但是嵌入式服务器系统只需要使用其中的某些基本的功能,TCP/IP也要减去一些使用不到有功能,以节省有限的嵌入式资源.此外还要用到的软件资源有嵌入式实时操作系统、HTTP协议,同时带有SMTP和SNMP协议,使其具有网络管理的简单功能,通过网络可以对接入到Internet上的设备进行管理和控制。3.2精简TCP/IP协议及实现嵌入式Web服务器软件中必须实现TCP/IP协议,但要根据实际的需求作相应的裁减.精简的TCP/IP协议通常只包含TCP,IP,ARP,ICMP等协议。3。2.1ARP协议及其实现嵌入式Web服务器软件方面需实现ARP协议中的应答部分:嵌入式Web服务器在收到远程ARP请求后,将ARP请求报文中目标机和本地IP、物理地址进行了交换处理,并将EWS的物理地址写在ARP应答报文的本地物理地址段.实际上此ARP协议的实现是通过向网络接口层发送含有目标机物理地址和本机IP地址的ARP应答报文这一过程来完成。3.2.2ICMP协议及其实现ICMP(网际控制报文协议)主要用来将处理一个IP数据过程中的错误显示出来,并提供相关状态和管理信息.ICMP的差错信息由8位代码和8位类型组成。嵌入式Web服务器简化了ICMP协议,只需简化实现与Ping命令相关的ICMP报文处理部分。具体可通过编制PingACK()过程来完成,用PingACK()监测Ping命令,如果监测到对本机的Ping连接,则发送类型为0的ICMP报文。3.2.3IP协议及其实现IP协议提供无连接的、不可靠的数据分组传送服务,在嵌入式Web服务器中,IP协议只需要完成接收数据的IP解包和发送数据的IP封装.IP协议在嵌入式Web服务器中的实现可通过以下两个过程来完成:1)IPPack(),此过程将传输层传来数据的前部添加20字节的IP报头。2)IPUnpack(),此过程提取网络接口层送来的IP报头的20字节数据并与本机的IP地址进行比较,如果相同,记录对方的IP地址,并去除报数据的前20字节的报头;否则,丢弃.3.2。4TCP协议及实现TCP协议提供面向连接的、可靠的字节流传输服务。建立连接、数据传输和关闭连接的工作过程,保证了TCP协议数据传输的可靠性。在数据传输前,必须在信源与信宿建立一条连接,只有连接成功才可以发送数据。此外,接收端也要对收到的第一个报文进行确认,未经确认的报文被认为是出错.由于嵌入式Web服务器传输数据量较少,支持单进程的TCP任务即可,故只需要简化TCP协议的数据重组和分组的功能。方法为:嵌入式Web服务器在本地打开一个端口监听TCP报文数据,监测到远程用户对系统的TCP请求连接时,系统发送确认报文并建立TCP连接,然后开始传送数据。发送数据时,TCP状态机会在数据前面加上TCP报头后发送到IP层;接收数据时,从IP层来的数据经过TCP状态机去掉TCP报头后送到应用层.TCP协议软件可通过两个过程来实现:1)TCPPack(),将TCP报头添加到应用层送来的数据前部;2)TCPUnpack(),将网络接口层送来的TCP报数据的3~4字节数据(目的端口号)与系统默认端口作对比,如相同,则去除数据报的前20字节的报头;否则,丢弃.TCP数据报重发、确认是通过发送特定内容的报文来控制。3.3HTTP协议HTTP引擎是嵌入式Web服务器的核心,它是浏览器与Web服务器通信的协议。HTTP规定了浏览器和服务器之间传输的消息格式及各种控制信息和发送和处理请求的标准方式,从而定义了所有Web通信的基本框架。如图所示,在嵌入式Web服务器中,为了不影响嵌入式系统的CPU和内存资源而又得到一个稳定的用户界面,应该使用HTTP1.0标准。HTTP客户端HTTP客户端HTML文档HTTP服务器端HTML文档HTTP服务器端CGICGI3.4CGI接口CGI也就是通用网关接口,它定义了CGI脚本与Web服务器之间的接口标准,其主要功能是在Web环境下,将客户端的一些信息传送给服务器端,Web服务器接收有关信息并放入环境变量,然后启动所指定的CGI脚本以完成特定的工作。CGI脚本从环境变量中获取相关信息来运行,最后以HTML格式输出相应的执行结果返回给浏览器端。由于用户能传递不同的参数给CGI脚本,所以CGI技术使得浏览器和服务器之间具有交互性。4系统软件设计4.1嵌入式操作系统uClinux是一种专为嵌入式系统设计的Linux,它从Linux2.0/2。4内核派生而来,专门应用于没有MMU的CPU[9]。uClinux带有一个完整的TCP/IP协议,同时它还支持许多其他网络协议.因此,uClinux对于嵌入式系统来说,是一个网络完备的操作系统.另外,由于Linux的源代码开放性,任何新的网络协议都可以很容易加入到内核中,用户可以方便地开发定制,不受任何限制。正是基于以上原因,本系统采用了uClinux作为嵌入式Web服务器的操作系统。4.2Boa的移植在uClinux下构建Boa服务器的方法由以下步骤完成:(1)从上下载Boa的源代码,将其解压后生成Makefile文件。修改Makefile文件,将文件中的CC=gcc改为CC=arm—linux—gcc,CPP=gcc-E改为CPP=arm-linux-gcc—E。然后运行make进行编译,得到可执行文件boa,再将调试信息舍去,使其瘦身.(2)修改boa。conf文件。Boa启动时需要用到一个配置文件boa.conf,该文件用于配置Boa服务器的相应接口、服务器名称、相关文件路径等。在这里,将Usernobody改为User0,将Groupnogroup改为Group0,将DocumentRoot/var/www改为DocumentRoot/etc/boa/html,将ScriptAlias/cgi—bin//usr/lib/cgi-bin/修改为ScriptAlias/cgi-bin//etc/boa/cgi-bin/。(3)由于默认的根文件系统是只读的,所以在编译内核前,需要根据配置文件boa.conf在文件系统中建立相关目录.(4)将可执行文件boa、配置文件boa。conf、可执行的CGI程序和网页文件分别放入对应的目录中,并在/etc/boa/html中建立主页文件index.html。(5)重新编译内核,将编译好的内核下载到开发板。4。3软件实现为了实现客户浏览器同Web服务器之间的动态交互性,需要采用某种服务器端技术来动态生成Web页。目前,实现动态网页的四种技术分别是CGI、ASP、PHP和JSP,但uClinux不支持ASP和PHP,故采用CGI来实现动态Web页面。CGI是一种在Web服务器中运行的程序,它定义了Web服务器与其他可执行程序之间进行交互的接口标准。当Web服务器接收到客户浏览器发送的HTTP请求时,先判断它是静态页面请求还是CGI动态请求,如果是后者就将数据传递给CGI程序,并重定向CGI程序的输出到Web页,CGI程序在处理时将数据封装成HTML形式发送到输出,这样客户端浏览器就可以看到对应的Web页。软件的设计框架如图3所示。开始开始监听连接监听连接连接是否合法N连接是否合法Y接受并解析HTTP请求接受并解析HTTP请求静态页面请求/CGI动态请求静态页面请求/CGI动态请求静态页面请求CGI动态请求直接输出HTML静态文件直接输出HTML静态文件数据封装并发送由CGI程序产生网页内容数据封装并发送由CGI程序产生网页内容图3软件设计框图其中的监听连接部分是一个无限循环,它总在监听来自浏览器端的连接请求,如果发现连接合法,就建立起客户端浏览器和Web服务器的连接。可以利用uClinux提供的Socket套接字在80端口进行监听连接,其过程为:socket()→bind()→listen()→accept().在Web环境中,浏览器与服务器之间的数据交互,很多是通过HTTP中的Form表单完成的,Form提供了两种数据传输的方式——GET和POST方法。虽然HTTP支持的方法有多种,考虑到硬件资源的限制和系统响应的速度,这里只响应GET和POST两种请求。在嵌入式服务器端,CGI程序接收到来自客户端浏览器的请求,将请求分解后,查看其请求的方法是GET还是POST。当为GET请求时,从请求行中读取用户请求的文件名;当为POST请求时,读取请求行中的文件名和报文主体中用户提交的表单数据,并对表单数据进行处理。当用户在网页中输入数据时,数据会先传给Web服务器,再传给CGI程序,而Web服务器将数据传给CGI程序前,会先经过一个编码程序,这样CGI程序如果想要得到用户输入的原始数据,就需要对数据进行解码.Web服务器中对用户数据进行编码的原则是:每个输入字段的名称和用户输入的数据会形成一系列的键—值对,键和值由“=”分开;每个配好对的键-值之间,由“&”分开;对字段中的特殊符号,用十六进制的ASCII码的方式来编码,空格则以“+”来编码。因此,CGI程序要想对数据解码,就需要将每个配好对的键=值分离出来,去除配对数据间的“&”,把“+"置换成空格,将十六进制的ASCII码置换成原来的数据。最后,就可以得到用户输入的原始数据。虽然动态网页的处理由CGI完全可以实现,但由于Web服务器每运行一个CGI程序,就需要fork一个进程为其服务,这样服务器与浏览器的交互越多,对服务器的总体性能影响就越大。因此,对于数据的后期处理和显示方式等任务,可以采用基于客户端浏览器的动态HTML技术来完成,这里由脚本语言JavaScript来实现,以减轻Web服务器的负担。5实验测试在Web服务器端生成网页index.html,放置在目录etc/boa/html下.编写的CGI程序,放置在目录etc/boa/cgi-bin下。将目标板的IP地址设置为210.42。150。225后,启动Boa服务器。在任意一个Web浏览器上输入http://210.42.150。225,可以看到服务器的默认网页。当用户选择相关信息并提交后,CGI将其接收,并根据提交内容对家居设备进行相应控制,图3(a)就是用户对空调进行设置的测试页面.同时,用户也可以对家居设备的目前状态进行查询,查询结果如图4(b)所示。图4(a)Web服务器的空调控制测试页面图4(b)Web服务器的家居状态查询页面6结束语本文从整体上介绍了嵌入式Web服务器的体系结构、程序的组件视图、嵌入式Web服务器的组成模块以及怎样精简TCP/IP协议以减少不必要的资源开支和适应嵌入式系统对资源的要求。支持Web浏览功能的嵌入式设备不但可以简化设备的设计,而且减轻了用户的应用难度,可以通过浏览器方便地设置嵌入式设备的参数。通过嵌入式Web技术实现设备的远程监控、管理和维护,将降低系统的运行费用、提高管理水平,在工业控制、远程医疗等方面有着十分广泛的应用。嵌入式Web服务器的实现,使得用户通过Internet就可以远程控制和管理嵌入式系统的运行。和传统的Web服务器相比,它简化了系统结构,将信息采集和信息发布都集成到现场的嵌入式设备中,在很大程度上方便了维护和管理工作。经测试表明,该嵌入式Web服务器运行正常,能够实现系统所设定的智能家居控制,且服务器每秒能处理几百次的连接请求,较之httpd和thttpd服务器,其响应速度更快,而且该Web服务器还具有成本低、可靠性高等优点。但该服务器并没有完整支持CGI规范,如果应用领域有此要求,还需要做相应改进.本文设计的这种基于ARM的嵌入式Web服务器,响应速度快,运行良好,经过适当的修改和完善,可用于智能家居、数据采集、工业控制等领域,具有一定的应用推广价值。参考文献[1]胡国珍,严伟.基于AX88796的嵌入式WEB服务器构建.《国外电子元件》2007年11期[2]刘志东,纪金水,杨锋英。嵌入式Web服务器技术探究.《电脑知识与技术》2011年27期[3]王莉,周伟.基于ARM的嵌入式Web服务器设计.《计算机工程与应用》2012年14期[4]李荣鑫,喻国平.基于ARM的嵌入式WEB服务器技术研究.[J]微计算机信息,2007(8)[5]王庆志。嵌入式Web服务器的结构研究与设计.《中国石油大学》2010年毕业论文(设计)题目:基于JAVA的酒店管理系统的设计与开发基于JAVA的酒店管理系统的设计与开发专业:电子信息工程姓名:冉晓旭指导教师:杨雪松,李向群摘要在当今社会,酒店种类和客流的不断增加,会造成管理上的困难。用计算机来管理酒店和住客的信息,提高了查询的速度,节约了人力,物力资源。用户操作将会更简单、更直观、更方便。酒店管理系统就是为此而设计的,毕业设计中采用到了Java,Myeclipse,使用SQLServer数据库.该系统采用swing应用开发技术,具有一些住房登记,查询统计,退房结账等功能,尤其依靠java的优点来为酒店更好的进行管理,它是目前使用最为广泛的网络编程语言之一,具有精简性,安全性,稳定性,动态性,高性能,可移植等优点。关键词酒店管理系统,SQLServer,Java,MyeclipseAbstractIntoday'ssociety,thehoteltypeandpassengertrafficcontinuestoincrease,willresultinmanagementdifficulties.Computertomanagethehotelandguestinformation,improvingthespeedofthequery,savingofhumanandmaterialresources.Useractionswillbemoresimple,moreintuitiveandmoreconvenient.HotelManagementSystemisdesignedforthispurpose,graduatedfromthedesigntotheJava,Myeclipse,usetheSQLServerdatabase。Thesystemusesaswingapplicationdevelopmenttechnology,withsomeofthehousingregister,querystatistics,CheckOutcheckoutotherfunctions,inparticular,relyontheadvantagesofjavaforthehotelmanagement,itiscurrentlythemostwidelyusedwebprogramminglanguage,withstreamline,security,stability,dynamic,high—performance,portableandotheradvantages。Keywords:HotelManagementSystem,SQLServer,Java,Myeclipse目录TOC\o"1—3"\h\z\u1绪论11。1选题背景11。2选题的目的,意义及研究现状1HYPERLINK\l”_Toc325636877”1.3本文的研究内容22系统分析及开发工具介绍4HYPERLINK\l”_Toc325636879”2.1可行性分析4_Toc325636881"功能需求5_Toc325636883”2。2.3其它62.3开发工具介绍72.3。1MyEclipse简介72.3。2SQLServer简介7HYPERLINK\l”_Toc325636887”2。3.3JDK简介8_Toc325636889"3.1系统总体设计9HYPERLINK\l”_Toc325636890”3。2系统详细设计103.2.1创建数据库表结构14_Toc325636894"4系统实现164.2系统主要界面185软件测试24HYPERLINK\l”_Toc325636898"5。1软件测试简介24HYPERLINK\l”_Toc325636899”5。1.1软件测试的目标和方法24_Toc325636901”本系统的测试目标与方法24HYPERLINK\l”_Toc325636902"5。2。2测试项目及结果25_Toc325636905"5。2.6订房退房26HYPERLINK\l”_Toc325636906"5。3小结27HYPERLINK\l”_Toc325636907"6总结28HYPERLINK\l”_Toc325636908”参考文献291绪论1。1选题背景酒店业是前景广阔而且竞争激烈的一个行业,改革开放后一直到现在,我国的酒店业飞速发展,已经成为了具有相当规模的一个产业。由于我国的旅游业迅速地发展,通过相关的调查,在2020年左右我国将成为世界上第四大旅游国家;同时由于我国在2001年12月加入了世界贸易组织,酒店业已经完全开放,我国的酒店业将面临着前所未有的机遇及挑战。但是,现在甚至还有一些酒店停留在由人工操作的管理阶段,这样的管理模式已经无法适应当前的发展趋势。因此,要想提高酒店的工作效率和质量,采用先进的计算机技术来改变酒店管理模式,实现酒店业务管理的自动化是必然的趋势。酒店管理系统采用java语言开发,采用数据库SQLServer2005。按照标准化业务程序流式设计,都是采用主流开发工具来开发,搭建比较稳定可靠安全的服务端来辅佐酒店的管理.1.2选题的目的,意义及研究现状用计算机来管理酒店和住客的信息,提高了查询速度,节约了人力,物力资源.以计算机技术建立系统,规范了管理系统,是之自动化、人性化,提高管理水平和效率.国外酒店管理系统是20世纪70年代发展起来的,80年代比较成熟。现在向着个性化发展,酒店有商务型酒店,度假型酒店,常住型酒店。国内酒店管理系统最早是20世纪80年代开始的,到80年代中后期,随着国外计算机系统和先进管理技术的引入,促进了国内的酒店管理技术发展.90年开始有比较成熟的软件,现今随着新的平台,新的系统,酒店管理系统将会不断发展,功能更加强大。1。3本文的研究内容毕业设计选题《基于JAVA的酒店管理系统的开发与设计》,主要研究了酒店业务的五个方面:管理登陆界面,客户信息界面,客房信息界面,营业统计,订房退房界面。管理登陆界面主要是管理员的登陆,输入管理员的用户名和密码才能正常登陆进去,否则提示用户名或密码错误。登陆进入以后可以修改自己的密码。客户信息界面主要是查看管理客户信息,用户名,身份证号,性别,联系电话,入住时间,出去时间,押金及房间号。可以增加和删除这些信息。客房信息界面主要是查看和增加以及删除客房的房间号、房间类型、空调、电脑、电视、状态和价格等信息。营业统计主要是用来统计房间营业收入情况,包括了房间每月每年的收入情况和总体的收入情况。订房退房界面主要是用于客户的订房和退房的操作,当客户需要订房时,可以通过查询客房的相关信息进行选择。当客户需要退房时,根据自己的信息选择所退的房间,确定退房成功,所退的房间会显示到界面上面来。2系统分析及开发工具介绍2.1可行性分析随着旅游业以及城市化的发展,酒店、餐饮娱乐行业的日趋发达,引入全方位的电脑管理和服务是必然的趋势。同时,酒店和餐厅娱乐业引入电脑理和服务也取得了非常好的社会效益及经济效益。为此,国家建设部已作出明确的规定:凡星级酒店在项目审批之时,其设计方案必须拥有电脑管理系统,否则不予立项。可见,酒店的电脑化管理势在必行。酒店管理系统将先进的电脑自动化技术与现代酒店服务管理完美地结合在一起,提高了查询的速度,节约了人力,物力资源。一个成熟的酒店管理系统不仅是记录酒店客人的信息,查询信息,统计报表打印等等简单的工作,它还能让管理人员从烦琐的手工操作中解脱出来,将管理自动化,简单化。随着它的深入,将带动酒店的管理效率。为了达到这个要求,它必须依靠可靠的硬件环境和软件开发工具来保证系统的稳定和正常运行。酒店管理系统要求电脑24小时连续运行,数据量大,可靠性要求高。本系统用到了Myeclipse,SQLServer2005,JDK,完全能够满足酒店管理系统所需要的软件环境,数据库使用了SQLServer2005,他拥有强大的数据处理能力,完全能够满足软件开发的需求。2。2需求分析2.2.1功能需求系统需对于用户的登录来进行管理。使用各功能模块的时候,系统应验证用户身份的有效性,否则系统登陆就会失败。系统应提供客房的分类管理功能,可分类客房类型、价格、是否配备电脑、电视、空调等,对于不同标准的客房进行有效地管理.系统可实现对于客房信息的增加、删除及修改。对于客户的信息,通过系统的客户信息管理可以进行增加、修改和删除操作,填写客户的姓名、身份证号、性别、联系电话、入住时间,出去时间、押金和房间号等信息.营业统计是对于房间的营业情况进行的统计,对于各房间的入住情况所带来收入和频率的统计,包括了每个月,每一年的统计,已经总体统的统计。在进行入住/退房管理时,系统可以根据客房当前的状态来提示可用服务(订房/退房)。如果客房有客人入住,则该客房的可用服务为“已订”;如果客房没有客人入住,可用服务为“未订"。2。2.2性能需求系统的客户端在Windows平台下运行,服务器端可在Windows平台或LINUX平台下运行。系统还需要有较好的可使用性、安全保密、可维护性、可移植性。2.2。3其它需求分析其目的是从客户的需求中来提取出软件系统所能够帮助用户解决的业务问题,仔细分析用户业务的问题,规划出系统的功能模块.这个步骤直接关系到酒店管理系统的质量。下图是酒店管理系统的E-R图,如图2—1所示:房间号空调用户名房间类型电视电脑身份证号客户名密码价格押金权限房间管理管理员客户入住联系电话性别入住时间房间号空调用户名房间类型电视电脑身份证号客户名密码价格押金权限房间管理管理员客户入住联系电话性别入住时间图2—1系统E—R图管理员通过用户名和密码进行登陆,进行其权限的操作,管理房间信息和客户信息,添加或者删除房间,管理房间号、房间类型、空调、电视、电脑、价格等操作。管理客户的信息:客户名、身份证号、性别、联系电话、押金、入住时间,客户通过房间的信息来选择适合自己的房间入住。2。3开发工具介绍2.3。1MyEclipse简介MyEclipse是一款优秀的用于开发Java,J2EE的Eclipse插件的集合,MyEclipse的功能非常的强大,支持也是十分的广泛,尤其是对于各种各样开源产品的支持是非常好的.MyEclipse(MyEclipseEnterpriseWorkbench,简称MyEclipse)企业级工作平台他是对Eclipse的扩展,我们运用它可以在数据库和JavaEE开发、发布及应用程序服务器整合方面非常大的提高工作效率水平.它是功能丰富的JavaEE的集成开发环境,包括了完备的编码、测试、调试和发布,完整支持CSS、Javascript、Struts、Spring、SQL、Hibernate、HTML和JSP等。2.3。2SQLServer简介SQL(StructuredQueryLanguage)是结构化的查询语言。SQL语言主要功能为:同各种各样的数据库建立连接,进行沟通。按照ANSI(美国国家标准协会)规定,SQL是关系型数据库管理系统的标准语言。SQL语句可执行许多的操作,比如从数据库中提取出数据,更新SQL数据库中数据等.SQL的语言标准是较大多数流行关系型的数据库管理系统采用的。SQL虽然被很多的数据库进行了继续开发及扩展,但是却包括DropSelect、Update、Create、Insert和Delete等的标准的SQL语言命令依然是被用作来完成基本上是全部的数据库的操作。SQLServer它是一个关系型的数据库管理系统.最初是由Sybase、Microsoft和Ashton—Tate三家公司一起开发的,在1988年推出了第一个OS/2版本。在WindowsNT推出以后,Sybase和Microsoft在SQLServer的开发上就分开了,SQLServer被Microsoft移植到WindowsNT系统上面,专注于开发推广WindowsNT版本的SQLServer。Sybase则是专注在SQLServer在UNIX操作系统方面的应用.SQLServer系统的数据库引擎是核心服务,负责完成数据的、安全管理、存储和处理。2。3.3JDK简介JDK(JavaDevelopmentKit)是SunMicrosystems针对Java程序开发员的一个产品,JDK是一个建筑应用程序,applet和组件使用Java编程语言的开发环境,整个Java的核心就是JDK,它包括Java运行环境,Java基础的类库和Java工具。Java从推出一直到现在,JDK已经成为了程序员所使用最广泛的JavaSDK。JDK中还包括了完整的JRE(JavaRuntimeEnvironment,Java运行环境),也被称为privateruntime。包括了用于产品环境的各种库类,以及给开发员使用的补充库,如国际化的库、IDL库。3系统设计3。1系统总体设计在本系统中,管理系统模块主要实现对房间添加,修改管理;客房与客户信息管理;住房管理,退房管理;销售的统计。该模块中存在4个子模块,他们为平行结构。客户信息模块包括了增加,删除和查询客户信息。客房信息模块包括了显示所有客房信息,增加、删除和查询客房信息。统计模块包括了房间每月年的销售额和整体销售额。订房退房模块包括了订房和退房.其关系图如图3-1。酒店系统管理酒店系统管理客房信息模块客户信息模块统计模块订房退房模块客房信息模块客户信息模块统计模块订房退房模块退房订房房间整体销售额房间月年销售额查询客房信息显示退房订房房间整体销售额房间月年销售额查询客房信息显示所有客房信息增加删除客房信息增加客户信息查询客户信息删除客户信息图3-1系统功能模块图3.2系统详细设计首先进行管理员的登陆,输入用户名密码。如图3-2所示为系统登录流程图:系统登陆界面系统登陆界面输入账户和密码输入账户和密码否查询成功查询成功是登陆管理界面登陆管理界面图3-2管理员登陆操作流程客户信息模块包括了增加客户信息、删除客户信息、查询客户信息,是对于客户的姓名、身份证号、性别、联系电话、入住时间,出去时间、押金和房间号等信息进行相关的增加、删除或者查询的操作。增加客户信息流程图如图3-3所示:点击点击“增加”按钮输入用户的信息输入用户的信息显示用户的信息是否存在是显示用户的信息是否存在否显示增加客户信息表显示增加客户信息表增加信息,点击确定成功确认增加信息,点击确定成功图3-3“增加客户"流程图客房信息模块包括了显示所有客房信息、添加删除客房信息、查询客房信息,是对于客房类型、状态、价格、电脑、电视、空调等进行的相关的增加,删除和查询操作。增加房间信息流程图如图3-4所示:点击点击“增加”按钮输入房间信息输入房间信息是否存在否是否存在显示空列表否显示空列表是显示增加房间信息表显示增加房间信息表确认增加信息,点击确定修改成功增加信息,点击确定修改成功图3-4“增加房间”流程图统计模块包括了房间的每月年的销售额和整体销售额的一个统计。订房退房模块包括了订房和退房,是对于房间的预定和退订的操作,订房就根据客户所需要的信息进行查询来进行房间的预定,退房则是根据客户所订的房间的相应信息来进行退订操作,进行结账处理.订房模块流程图如图3—5所示:点击“点击“订房”显示显示“订房信息列表”选择房间选择房间在客户管理模块填写客户信息,加入房间号,点击在客户管理模块填写客户信息,加入房间号,点击“确定”提示操作成功提示操作成功图3-5“订房”流程图退房模块的流程图如图3-6所示:点击点击“退房”显示显示“房间列表”选择房间号,确定选择房间号,确定所退房间在主界面显示出现,退房成功所退房间在主界面显示出现,退房成功图3-6“退房”流程图3.3数据库的设计

数据库分析完成之后,我们就可以进行设计数据库了。在酒店客房管理系统中,建立管理系统的数据库是数据库的主要设计工作,创建好所需要的表,做好之后通过SQLServer2005导入。Java语言连接数据库主要采用JDBC(JavaDatabaseConneetivitv)技术,它是Sun提供的一套数据库编程接口API函数的总称,由Java语言编写的类组成.用JDBC写的程序能够自动地将SOL语句传送给相应的数据库管理系统.JDBC驱动程序并未包含在JavaSDK中。如果要使用该驱动程序,必须将classpath设置为包含sqljdbc.jar文件,配置TCP端口,端口号默认为1433。数据库设计(DatabaseDesign)指的是对于一个给定的应用环境,构造出来最好的数据库模式,建立数据库以及其相应的应用系统,让它能够有效地存储数据,满足各种各样的用户的应用需求。使用数据库的各类系统在数据库领域内经常被统称为数据库应用系统。考虑到了数据库及其应用系统的全部开发过程,可以将数据库设计分为以下五个阶段:需求分析阶段:综合所有的用户应用需求。概念设计阶段:形成了独立于机器的特点,独立于各个DBMS产品的一种概念模式(E—R图)。逻辑设计阶段:开始时可以把E-R图转变成具体的数据库产品支持的一种数据模型,比如形成数据库关系模型,逻辑模式;然后根据用户处理的安全性、需求方面的考虑,最后在基本表基础上来建立所必要的视图(View),就形成了数据的外模式。物理设计阶段:由DBMS特点和处理的需求,来建立索引,进行物理存储的安排,形成数据库内模式。数据库运行和维护。3.2.1创建数据库表结构通过SQLServer2005设计完酒店管理系统数据库表结构之后,登陆SQLServer2005用户名sa,密码wqw123456,数据库名称是guesthouse.3。2。2创建数据库表数据库表有4个:管理员表(userinformation)客户信息表(client),客房信息表(roominformation),统计表(tongji)。下面来分别介绍这些表的情况.(1)。管理员表管理员表(userinformation)用来保存前台管理员登陆的基本信息,表userinformation的结构如表3—1所示。表3—1管理员表列名数据类型长度主键是否为空说明numNumnumVARCHAR(50)50

是NOTNULL编号user_nameVARCHAR(50)

50NOTNULL用户名passwordVARCHAR(50)50NOTNULL密码(2).客户信息表客户信息表(client)用来保存酒店客户的基本信息,表client的结构图表3-2所示:表3-2客户信息表列名数据类型长度主键是否为空说明num_cardvarchar(20)

20是NULL身份证号Phonevarchar(20)20NULL联系电话Sexvarchar(20)20NULL性别client_namevarchar(20)20NULL用户名live_timevarchar(20)20NULL入住时间out_timevarchar(20)

20NULL出去时间Depositvarchar(20)20NULL押金room_numvarchar(20)20NULL房间号(3).客房信息表客房信息表(roominformation)是用来保存酒店的所有客房的基本信息,表roominformation的结构如表3-3所示。表3-3客房信息表列名数据类型长度主键是否为空说明numvarchar(20)

20是NOTNULL房间号room_typevarchar(20)20NOTNULL房间类型airvarchar(20)20NULL空调tvvarchar(20)20NULL电视computervarchar(20)20NULL电脑room_statevarchar(20)20NULL状态room_pricevarchar(20)20NULL价格(4)。营业统计表营业统计表(tongji)是用来保存酒店的所有客房的营业情况的基本信息,表tongji的结构如表3—4所示.表3-4消费信息表列名数据类型长度主键是否为空说明roomnumvarchar(50)50是NOTNULL房间编号1varchar(50)50

NULL1月2varchar(50)50NULL2月3varchar(50)50NULL3月4varchar(50)50NULL4月5varchar(50)50NULL5月6varchar(50)50NULL6月7varchar(50)50NULL7月8varchar(50)50NULL8月9varchar(50)50NULL9月10varchar(50)50NULL10月11varchar(50)50NULL11月12varchar(50)50NULL12月sumvarchar(50)50NULL统计numvarchar(50)50NULL次数4系统实现4。1数据库连接登录系统之前,需要系统进行数据的连接和配置,才能使系统能够正常运行。数据库连接代码实现如下:privateStringdriver="com.microsoft.sqlserver.jdbc.SQLServerDriver";privateStringurl=”jdbc:sqlserver://localhost:1433;databaseName=Hotel”;privateStringuser=”sa";privateStringpass="rxx";//启动数据库publicvoidstart()throwsException{Class.forName(driver);//System。out.print(con);co=DriverManager。getConnection(url,user,pass);}//释放数据库publicvoidclose(){if(rs!=null){try{rs.close();}catch(SQLExceptionf){f.printStackTrace();}}if(st!=null){try{st。close();}catch(SQLExceptionf){f.printStackTrace();}}if(co!=null){try{co.close();}catch(SQLExceptione){e.printStackTrace();}}}4.2系统主要界面主界面主要包括了客房信息,客户信息,营业统计,订房退房,首页,修改密码和退出.点击其他模块后需要返回主界面可以点击首页。主界面图如图4-1所示:图4—1主界面图在本次的系统中,用户登陆模块和普通应用系统的用户登陆基本上是相同的.当输入用户名和密码提交后到LoginFrame控制模块进行处理,输入正确后转到MainFrame,进入主界面;否则就回到LoginFrame页面重新输入,同时提醒用户名密码错误。登录界面图如图4-2所示:图4-2系统登陆界面图LoginFrame代码如下:privateJButtongetJButton(){//statisticsif(jButton1==null){jButton1=newJButton(”登陆");jButton1.setBounds(newRectangle(60,200,80,30));jButton1.addActionListener(newjava。awt.event.ActionListener(){publicvoidactionPerformed(java.awt。event.ActionEvente){Stringusers=MTextField。getText();Stringpass=newString(MPasswordField.getPassword());Daodao=newDao();booleanf=dao。check(users,pass);if(f){newMainFrame(users)。setVisible(true);dispose();}else{JOptionPane.showMessageDialog(null,”用户名或者密码错误",”提示",JOptionPane。WARNING_MESSAGE);}}});}returnjButton1;}privateJButtongetJButton1(){if(jButton2==null){jButton2=newJButton(”取消”);jButton2.setBounds(newRectangle(235,200,80,30));jButton2.addActionListener(newjava.awt。event。ActionListener(){publicvoidactionPerformed(java.awt。event.ActionEvente){MTextField。setText("");MPasswordField.setText(””);}});}returnjButton2;}该模块有三个子功能实现:增加客户信息,删除客户信息和查询客户信息。在本系统中,客户信息系统模块主要实现对客户增加,删除,查询的管理。“增加”操作为预定客户提供修改相关信息的功能。客户信息界面图如图4-3所示:图4-3客户信息界面图该模块中有三个子功能实现:显示所有房间信息,增加删除房间信息和查询房间信息。在本系统中,客房信息系统模块主要实现对客房所有信息显示,客房增加及删除,客房查询的管理。“增加"操作为客房提供修改相关信息的功能。房间信息界面图如图4-4所示:图4—4房间信息界面图在本系统中,统计模块主要是对于客房营业额的统计,包括了整体统计,每个房间被订次数,各个房间每月和每年的营业额情况统计.统计界面如图4-5所示:图4-5统计信息界面图在该模块中,主要实现客户的订房退房功能,根据客房信息表来判断是否有房,或者客户是否订了房间,给予退房。订房模块:主要实现的是对于客户要求预定的客房信息进行选择,选出适合客户所需的客房,满足客户的需求。订房退房界面图如图4-6所示:图4-6订房退房界面图退房模块:退房模块可以根据酒店已经订的房间然后产生一个下拉列表,直接选出所需要退订的房间,根据客户的信息对照,就能确定客户所退的房间,然后进行结账.5软件测试5。1软件测试简介什么是软件测试呢?软件测试就是描述一种用来促进鉴别软件的完整性、正确性、安全性和品质的过程。证明软件是否存在错误的一个过程,它不仅可以测试出软件中存在的BUG,还能帮助软件开发者发现软件的缺陷并进行改进。软件测试有很高的重要性:它能寻找到软件的错误,以便进行更正,证明软件是否符合要求,是否是可用的,指导软件的详细开发过程,提供软件相关的特征.5。1。1软件测试的目标和方法软件测试的目标是要验证软件中不存在错误,验证程序是否起到了应有的作用,弄清楚期望结果和实际输出结果之间的差别.一般的软件测试有两种方法,分为白盒测试法和黑盒测试法.白盒测试法就是将黑盒子打开,研究其源代码以及程序内部的逻辑结构。黑盒测试法就是将被测试的软件看做是一个黑盒子,只考虑系统的输入与输出,而不会考虑

温馨提示

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

最新文档

评论

0/150

提交评论