毕业设计(论文)-基于android的图书馆座位管理系统的设计与实现.docx_第1页
毕业设计(论文)-基于android的图书馆座位管理系统的设计与实现.docx_第2页
毕业设计(论文)-基于android的图书馆座位管理系统的设计与实现.docx_第3页
毕业设计(论文)-基于android的图书馆座位管理系统的设计与实现.docx_第4页
毕业设计(论文)-基于android的图书馆座位管理系统的设计与实现.docx_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

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

文档简介

太原理工大学毕业设计(论文)用纸太原理工大学毕业设计(论文)任务书 第1页 毕业设计(论文)题目:基于android的图书馆座位管理系统的设计与实现毕业设计(论文)要求及原始数据(资料):全套设计加扣 30122505821综述当前国内外图书馆座位管理技术研究现状和意义;2深入了解Android应用程序开发的相关技术;3熟练掌握相关API提供的方法,训练编写应用程序的能力;4设计并实现Android图书馆选座的功能;5深入分析在线选座的关键技术和编写语言;6训练检索文献资料和利用文献资料的能力;7训练撰写技术文档与学位论文的能力。 第2页毕业设计(论文)主要内容:1综述图书馆座位管理在Android开发中的应用;2了解Android图书馆座位管理系统的相关技术;3熟悉Android图书馆座位管理的开发环境; 4设计Android图书馆座位管理系统应用开发的主要模块;5. 深入分析Android图书馆座位管理系统的关键技术;6熟练掌握基于Android图书馆座位管理系统应用程序编写;7设计与实现Android图书馆座位管理系统的程序。学生应交出的设计文件(论文):1内容完整、层次清晰、叙述流畅、排版规范的毕业设计论文;2包括毕业设计论文、源程序等内容在内的毕业设计电子文档及其它相关材料。 第3页 主要参考文献(资料):1 范红月.图书馆自习室自动排做系统J.图书馆杂志,20082 顾朝兵,高校移动图书馆服务平台及应用研究.安徽大学,20133 李睿.高校手机图书馆系统研究.辽宁师范大学,20134 方胜华,李舒宁.走向移动互联时代的图书馆服务.图书情报工作,2011,(23)5 岳传真.Android系统移植和应用程序开发.复旦大学,20106 公磊,周聪.基于Android的移动终端应用程序开发与研究.计算机与现代化,2008,(08)7 Domenico Amalfitano,Anna Rita Fasolino,Porfirio Tramontana,Bryan Robbins. Testing Android Mobile Applications: Challenges,Strategies,and Approaches.Advances In Computers,2013,Vol.898 Drazen Hizak,Matija Mikac.Development of a Simple Tool for Audio Analysis on Mobile Platform.Technical Journal,2013,Vol.7(2)9 Margaret Butler.Android : Changing the Mobile landscape.IEEE Pervasive Computing.201110 远红亮.中美高校手机图书馆现状分析J.图书情报工作网刊,2011,(11)11 王艺璇.基于Android平台得到移动图书馆客户端设计与实现J.智能计算机与应用.2011,(06)专业班级软件1223班学生要求设计(论文)工作起止日期2016年3月21日2016年6月24日指导教师签字日期2016年3月21日教研室主任审查签字日期系主任批准签字日期基于android的图书馆座位管理系统的设计与实现摘 要 随着移动终端的普及,手机成为当代人不可或缺的通信工具。这种趋势逐渐地改变了我们的生活习惯,也在不知不觉中改变了我们生活和工作中用到的一些系统的管理模式。我们可以看到当前市场上使用的手机移动终端系统中,android系统占有相当大的份额,这使得图书馆座位管理系统运行在手机终端有了极大的可行性。 本系统就是基于android开发的图书馆座位管理系统。系统提供了后台的服务以及前台与用户交互的界面,后台服务主要包括数据库的建立,维护以及业务的处理。前台界面主要提供给用户用来选择服务。系统采用了android开发中常用的控件来设计界面,运用了MVC模式来设计整体的架构,采用了eclipse编译工具集成android的SDK来进行开发,SQLite作为系统的数据库。系统讲解和论述了基于android的图书馆座位管理系统的实现过程,其中还介绍了一些android开发的知识点。 最终成果为使用本系统可以解决当前高校图书馆亟待解决的图书馆选座困难的问题,缓解了图书馆选座终端的压力,高效的利用移动终端完成图书馆选座座位自习的操作。关键词:android;图书馆;座位;管理系统Library Seat Management System Design andImplementation Base on AndroidAbstractWith the popularity of mobile terminals, mobile phone become indispensable to modern communication tools. This trend gradually changed our living habits, also unknowingly changed our life and work in the use of some of the management mode of the system. We can see that the current use of mobile phones on the market in the mobile terminal system, occupies a large share of the android system, which makes the librarys seat management system is running in the mobile terminal has great feasibility. This system is based on the seat for android development of library management system. This system solved the problem urgently to be solved in current university library, system provides the background of service and the foreground of interaction with the user interface, the background service mainly includes the establishment of the database maintenance and processing business. Front desk interface is mainly used to select service provided to users. System USES a control to design the interface is commonly used in android development, using the MVC pattern to design the overall architecture, using the eclipse compiler tool integration android SDK for development, SQLite as the database system. Seat system is explained and discussed based on the android library management system implementation process, which also introduces some knowledge of android development. Final results for using this system can resolve the current university library needs to solve the library selected a difficult problem and alleviate the library a terminal pressure, efficient use of mobile terminal complete library seat self-study.Key words: Android;library;seat;management system 太原理工大学毕业设计(论文)用纸目 录1 绪论11.1课题背景11.2国内外的研究发展现状21.3国内外使用的技术及其优缺点21.3.1国内使用的技术及其优缺点21.3.2 国外的使用的技术以及优缺点31.4本文的主要研究内容42 android开发技术和MVC模式的简介52.1 android技术简介52.2 MVC模式技术简介72.4 HTTP协议简介:113 可行性分析123.1 技术可行性133.2 经济可行性133.3 操作可行性144 系统总体设计154.1系统的组成结构154.2系统工作的流程164.3系统功能设计概要174.4系统数据库设计概要185 系统详细设计205.1系统欢迎界面设计215.2系统登陆界面设计215.3系统主界面设计235.3.1查看图书馆座位情况界面与逻辑设计295.3.2选择座位界面与逻辑设计315.4 web服务器搭建:366 系统测试406.1登录界面功能测试40总 结43参考文献44致谢451 绪论1.1课题背景每逢考试临近,清晨各个高校的图书馆门前都排起了长龙。图书馆座位紧张的问题也亟待解决。其原因有如下几个:一是在众多的自习室中,图书馆自习室的硬件设施最为齐备,环境最为良好,更有大量的资料可以查询,网络覆盖率广。这使得图书馆自习室成为多数学子的第一选择,造成了图书馆自习室的访问流量大的问题。二是由于高校资源不足的问题,无法提供充裕的自习室资源给数量众多的学子和老师。三是由于部分学生不能合理地运用座位,存在占座现象。使得十分有限的座位的资源无法发挥最高的效用,进一步加剧了图书馆座位紧张的问题。 通过对部分高校的图书馆的调查,各大高校有不同的解决方案。我校解决方案有如下几点:通过建设新校区图书馆增加可用资源,太原理工大学新校区图书馆总建筑面积65589.17平方米,建筑高达86米。二是通过在图书馆大厅以及各个楼层使用终端机预订座位,智能管理座位。三是通过学生在图书馆自习状态的不良记录的处罚。如有三次及三次以上违规占座,代刷座位,延时未续的现象,将作出一周内禁止刷座的处罚。如果处罚多次,将作出一个学期禁止刷座的严厉处罚。这些方案在一定程度上缓解了图书馆座位紧张的问题,但是还是无法解决一些问题。比如在考试临近期间,大厅以及终端机前大量的学生排队等候的问题,以至于大量的学生在清晨图书馆尚未开放之前就早早的来到图书馆门前排队。这极大的影响了学生日常学习,浪费了学生大量宝贵的时间。所以以上的方案还有很大的改进空间。1993年世界上第一款智能手机是由IBM公司推出的Simon。直到2011年安卓手机在全球市场份额首度超过塞班系统,跃居全球首位。截至2015年底,根据eMarketer的研究,全球智能手机用户数量已经超过19亿。智能手机由于其方便灵巧,以及随时随地上网的特性已经深入我们的日常生活当中,与我们密不可分。截至2016年4月1日。国际消息市场研究公司ABI Research发表报告称,预计android智能手机市场份额将在2016年将达到45%,苹果ios和Rim黑莓市场份额分别为19%和14%,三星Bada为10%。Android智能手机依旧领跑,苹果ios紧随其后。而在整个智能手机系统中,android智能手机系统的占有率截至2016年高达68.3%。可以看出android手机的市场占有份额是极大的。所以在android智能手机平台上发布一款图书馆座位管理App是有很大的前景,也可以解决当下存在的图书馆座位紧张,终端机排队等候的问题。并且当今几乎每个大学生都有一部智能手机,还可以节约大量的资金问题。1.2国内外的研究发展现状根据网上资料了解到,美国斯坦福大学的图书馆和自习室在考试前上座率也会大大提升,但是司法部学校的图书馆和自习室管理比较完善。学生到图书馆或者自习室去自习,学生首先需要进行实名制的刷卡,离开和进入都必须刷卡,如果离开半小时没有回来的话,不管有没有来使用该座位,图书馆管理人员都会将桌上的物品收起来。而且斯坦福大学实施分流考试的制度,不会在一段集中的时间进行所有专业的考试,这样会减少自习室或者图书馆的压力。英国的大学占座现象也时有发生,因为在图书馆和自习室的工作和学习效率很高,所以在期末的时候图书馆和自习室还是压力很大的。值得一提的是,在英国的大学除了自习室和图书馆的位置紧张的问题,抢车位的问题也比较严重,英国的研究生甚至本科生都会开车去上学,所以导致了车位紧缺的问题。澳大利亚的大学图书馆占座的问题不是很严重,澳大利亚本地的大学生更喜欢在户外读书,他们比较喜欢在自由的环境下进行学习。但是临近考试,图书馆也会忙碌起来。不过,澳大利亚的大学图书馆预约工作做的比较规范,你可以提前提前预约图书馆的座位。国内的大学由于中国自身国情的原因,每个大学的图书馆和自习室的资源总是严重的不足。大量的学生和相对很少的自习室之间产生的矛盾亟待解决。每逢考试季,大量的学生需要在图书馆门前排队,严重浪费了学生宝贵的学习时间。1.3国内外使用的技术及其优缺点1.3.1国内使用的技术及其优缺点由于国情原因,谷歌的公司的android技术不能面对面的和国内的开发和学习人员做交流。但是这并不妨碍android开发在国内的发展。不过相对国外,国内的一些公司在整个产品开发,管理,维护做的依旧没有国外的公司完善。在国内大学中,C语言的学习已经成为了大学生的一门必修课。对于学习方向是移动互联的计算机科学专业的学生了解和学习android是不可或缺的。通过对国内大学的一些了解,大部分的大学计算机科学与软件工程专业的学生学习android开发使用的课本只是早些年间的技术和理论,无法跟上当前社会android开发的脚步,对于企业的开发要求还有很大的差距。这需要大学和有关部门及时的对教材进行更新,也需要聘请一些一线的资深的工程师来为在校大学生讲解一些当下先进的理论和技术,这样就不会使大学生学习的内容和企业需要的技术产生太大的差距。对于开发工具来说,IDE是每一个程序脑力产出的工具,它的功能在很大程度上对程序员的效率有影响。一款智能并且符合程序员编程习惯的IDE会极大的提升程序员的工作效率,也会帮助程序员发散思维,利用自身充分的想象力结合IDE完善的功能编写出令人愉悦的代码,甚至可以帮助程序员作出令人难以想象的作品。国内的绝大部分程序员使用的IDE是eclipse和myeclipse.这两款IDE有相当长时间的历史,功能比较完善。国内相关计算机科学类的授课时讲解和使用的也基本都是eclipse。对于android开发使用的SDK,由于国情的限制,无法直接到谷歌公司的网址下进行下载。我们可以通过网上的资源或者到同济大学相关的镜像上下载资源。还有一点就是技术的共享方面,国内也有很多的程序员的论坛和交流网址。一些资深的android开发工程师在自己的博客定时或者不定时的通过微博或者其他途径进行技术的分享。但是对于国内的很多程序员想要从网上查询一些资料,一般的途径都是论坛或者百度。这并不利于技术的分享和发展。而且好多先进的思想和理论都是从国外产生再传入国内,我们需要自己产生好的理论并运用在社会生活中。1.3.2国外的使用的技术以及优缺点国外与国内对比计算机科学和软件的发展要更加先进和规范。国外的企业在进行软件的开发时很大一部分采用的是敏捷开发的模式,将工作划分为几个阶段,每个阶段有自己的固定的开发时间,一般是3周到4周不等。在一个相同的阶段,不同的队伍可以同时进行不同的开发工作。利用Git软件或者其他的分布式开发工具进行不同分支上的开发,利用自动化的测试对代码的质量作出保证。产品经理和相关经理对产品的完成进度和质量进行把控。这样的软件开发流程十分清晰和完善。使得产品的质量有可靠的保证,也使得产品在开发的环节上更加容易把控。由于在2015年,为了简化android的开发力度,谷歌公司宣布放弃对eclipse等IDE的支持,转而支持Android Studio。Android Studio虽然不算新的IDE,但是这款IDE的更新速度十分快,对Android的适配也十分完美。所以国外有不少的开发人员使用的是Android Studio,其他例如JAVA的开发人员也有很多在使用IDEA,这款IDE的全称为intelij idea。由于国外的开发人员和学习人员可以直接访问谷歌的主页,这样使得他们及时的了解到android的技术的更新。也便于他们与谷歌的开发人员进行交流。1.4本文的主要研究内容本文的主要研究内容是研究和设计了一个基于android的图书馆座位管理系统,该系统设计的出发点是大学的日常学习和生活,联系了一些了图书馆日常管理的业务,针对当前大学图书馆座位资源面临的问题,提出了一些解决的方案。系统允许用户进行登录,系统会对用户的身份进行验证。登录成功用户可以选择座位来自习。系统分配用户座位,用户使用座位来进行日常的学习或者工作。大概的内容如下图所示:图 1-1总体框架图从图中我们可以看到,用户通过自己的手机连接到网络,然后进行用户登录的动作,系统会通过网络访问服务器,服务器又会去数据库查询用户的相关的信息,返回给客户端,这样客户端就可以来断定用户是否是一个有效的用户。登录成功,用户进行选择座位也要通过业务逻辑去访问服务器,服务器去数据库去数据返回给客户端,客户端来显示哪些座位是可用的。选择完毕后,客户端将数据发给服务器,服务器将更新的数据储存到数据库中。2 android开发技术和MVC模式的简介2.1android技术简介Android在中国被翻译为安卓,是一个基于Linux核心的系统。由Google成立的Open Handset Alliance即开放手机联盟持续领导和开发。该系统主要运用在手机和平板的终端。Android在最初是由Andy Rubin等人开发研究,他们研究的主要方向和目的就是开发出一款适配智能手机的系统。在2005年被美国的谷歌公司收购。Andy等人继续带领团队进行Android的开发和研究工作。在2005年的7月11日,谷歌联合了全球84家硬件制造商,软件开发商及电信运营商成立了开放手持设备联盟。联盟的目的是协作和共同对Android系统进行发展,改善。随后谷歌发布了Android 的源代码。这使得手机制造商如雨后春笋般发展起来,也使得Android系统搭载到了平板电脑上。2010年底的数据显示,推出仅仅只有两年的Android系统首次在市场份额上超越了制霸十年之久的塞班系统,成为了全球第一大智能手机的操作系统。这也标志着诺基亚的统治地位结束,手机市场迎来了智能化的崭新时代。这是Android 的系统架构,android的系统架构和其他的操作系统有着异曲同.工之妙,从上倒下分为四层,分别是Applications层,即应用程序层、Application Framework层,即应用程序框架层、Libraries层,即系统运行库层、Linux Kernel层,即Linux核心层。图2-1 Android系统架构图应用程序层:Android会同一系列核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。应用框架层:开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用; 任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块。同样,该应用程序重用机制也使用户可以方便的替换程序组件。隐藏在每个应用后面的是一系列的服务和系统, 其中包括;丰富而又可扩展的视图(Views),可以用来构建应用程序, 它包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons), 甚至可嵌入的web浏览器。内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库), 或者共享它们自己的数据 资源管理器(Resource Manager)提供 非代码资源的访问,如本地字符串,图形,和布局文件( layout files )。通知管理器 (Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。系统运行库:程序库Android 包含一些C/C+库,这些库能被Android系统中不同的组件使用。它们通过 Android 应用程序框架为开发者提供服务。以下是一些核心库:系统 C 库 - 一个从 BSD 继承来的标准 C 系统函数库( libc ), 它是专门为基于 embedded Linux 的设备定制的。媒体库 - 基于 PacketVideo,OpenCode。该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG 。Surface Manager - 对显示子系统的管理,并且为多个应用程序提 供了2D和3D图层的无缝融合。LibWebCore : 一个最新的web浏览器引擎用,支持Android浏览器和一个可嵌入的web视图。SGL - 底层的2D图形引擎 3D libraries : 基于OpenGL ES 1.0 APIs实现;该库可以使用硬件 3D加速(如果可用)或者使用高度优化的3D软加速。FreeType :位图(bitmap)和矢量(vector)字体显示。SQLite - 一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。Android 运行库Android 囊括了一个核心库,该库包含了JAVA编程语言类库的绝大多数功能。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik被设计成一个设备可以同时高效地运行多个虚拟系统。 Dalvik虚拟机执行(.dex)的Dalvik可执行文件,该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有的类都经由JAVA编译器编译,然后通过SDK中 的 dx 工具转化成.dex格式由虚拟机执行。Dalvik虚拟机依赖于Linux内核的一些功能,比如线程机制和底层内存管理机制。Linux 内核:Android 的核心系统服务依赖于 Linux 2.6 内核,如安全性,内存管理,进程管理, 网络协议栈和驱动模型。 Linux 内核也同时作为硬件和软件栈之间的抽象层。2.2 MVC模式技术简介MVC 概念MVC全名是Model View Controller,是模型(model)、视图(view)、控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。其中M层处理数据,业务逻辑等;V层处理界面的显示结果;C层起到桥梁的作用,来控制V层和M层通信以此来达到分离视图显示和业务逻辑层。图2-2 MVC架构图MVC for Android在Android开发中,比较流行的开发框架模式采用的是MVC框架模式,采用MVC模式的好处是便于UI界面部分的显示和业务逻辑,数据处理分开。M层:适合做一些业务逻辑处理,比如数据库存取操作,网络操作,复杂的算法,耗时的任务等都在model层处理。 V层:应用层中处理数据显示的部分,XML布局可以视为V层,显示Model层的数据结果。 C层:在Android中,Activity处理用户交互问题,因此可以认为Activity是控制器,Activity读取V视图层的数据,控制用户输入,并向Model发送数据请求。MVC使用总结利用MVC设计模式,使得项目有了很好的可扩展和维护性,当需要改变UI显示的时候,无需修改Contronller(控制器)Activity的代码和Model(模型)中的业务逻辑代码,很好的将业务逻辑和界面显示分离。在Android项目中,业务逻辑,数据处理等担任了Model(模型)角色,XML界面显示等担任了View(视图)角色,Activity担任了Contronller(控制器)角色。contronller(控制器)是一个中间桥梁的作用,通过接口通信来协同 View(视图)和Model(模型)工作,起到了两者之间的通信作用。什么时候适合使用MVC设计模式?当然一个小的项目且无需频繁修改需求就不用MVC框架来设计了,那样反而觉得代码过度设计,代码臃肿。一般在大的项目中,且业务逻辑处理复杂,页面显示比较多,需要模块化设计的项目使用MVC就有足够的优势了。在MVC模式中我们发现,其实控制器Activity主要是起到解耦作用,将View视图和Model模型分离,虽然Activity起到交互作用,但是找Activity中有很多关于视图UI的显示代码,因此View视图和Activity控制器并不是完全分离的,也就是说一部分View视图和Contronller控制器Activity是绑定在一个类中的。MVC的优点:耦合性低。所谓耦合性就是模块代码之间的关联程度。利用MVC框架使得View(视图)层和Model(模型)层可以很好的分离,这样就达到了解耦的目的,所以耦合性低,减少模块代码之间的相互影响。可扩展性好。由于耦合性低,添加需求,扩展代码就可以减少修改之前的代码,降低bug的出现率。模块职责划分明确。主要划分层M、V、C三个模块,利于代码的维护。Eclipse IDE 简介Eclipse是著名的跨平台开源集成开发环境(IDE)。最初主要用来Java语言开发,目前亦有人通过插件使其作为C+、Python、PHP等其他语言的开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持,使得Eclipse拥有较佳的灵活性,所以许多软件开发商以Eclipse为框架开发自己的IDE。Eclipse最初是由IBM公司开发的替代商业软件Visual Age for Java的下一代IDE开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会(Eclipse Foundation)管理。2003年,Eclipse 3.0选择OSGi服务平台规范为运行时架构。2007年6月,稳定版3.3发布;2008年6月发布代号为Ganymede的3.4版;2009年6月发布代号为Galileo的3.5版;2010年6月发布代号为Helios的3.6版;2011年6月发布代号为Indigo的3.7版;2012年6月发布代号为Juno的4.2版;2013年6月发布代号为Kepler的4.3版;2014年6月发布代号为Luna的4.4版;2015年6月发布代号为Mars的4.5版。Eclipse的基础是富客户机平台(即RCP)。RCP包括下列组件:核心平台(启动Eclipse,运行插件)OSGi(标准集束框架)SWT(可移植构件工具包)JFace(文件缓冲,文本处理,文本编辑器)Eclipse工作台(即Workbench,包含视图(views)、编辑器(editors)、视角(perspectives)、和向导(wizards)Eclipse采用的技术是IBM公司开发的(SWT),这是一种基于Java的窗口组件,类似Java本身提供的AWT和Swing窗口组件;不过IBM声称SWT比其他Java窗口组件更有效率。Eclipse的用户界面还使用了GUI中间层JFace,从而简化了基于SWT的应用程序的构建。2.3 apache服务器简介:Apache是当前世界应用最为普遍和广泛的web服务器,根据权威调查,世界上以上的web一半以上的服务器在使用apache.所以Apache当之无愧的可以说是世界第一的web服务器。Apache是一个开源的网页服务器,开源的特性使得它的活力进一步提升。它经过多次的修改,广泛的被应用在全球各大公司。它的跨平台性也在一定程度上使得学习者可以方便的应和学习它。apache的特性:1)几乎可以运行在所有的计算机平台上.2)支持最新的http/1.1协议3)简单而且强有力的基于文件的配置(httpd.conf).4)支持通用网关接口(cgi)5)支持虚拟主机.6)支持http认证.7)集成perl.8)集成的代理服务器9)可以通过web浏览器监视服务器的状态,可以自定义日志.10)支持服务器端包含命令(ssi).11)支持安全socket层(ssl).12)具有用户会话过程的跟踪能力.13)支持fastcgi2.4 HTTP协议简介Http协议是一钟超文本传输协议 HyperText Transfer Protocol 属于应用层的协议,主要通过传输层TCP/IP协议在服务器与客户端之间实现数据传输,我们在使用IE或Firefox浏览网页或下载Web资源时,通过在地址栏中输入,开头的4个字母http就相当于通知浏览器使用HTTP协议来和host所确定的服务器进行通讯。Http的工作方式HTTP协议采用了请求/响应的工作方式。基于HTTP1.0协议的客户端在每次向服务器发出请求后,服务器就会向客户端返回响应消息(包括请求是否正确以及所请求的数据),在确认客户端已经收到响应消息后,服务端就会关闭网络连接(其实是关闭TCP连接)。在这个数据传输过程中,并不保存任何历史信息和状态信息,因此,HTTP协议也被认为是无状态的协议(这也就是所谓的短连接)。图2-3Http请求过程图Http协议简介在HTTP1.0协议中,当Web浏览器发出请求时,就意味着一个请求/响应会话已经开始。在请求、响应结束后,服务器就会立刻关闭这个连接。这种会话方式虽然简便,但它会带来另外一个问题。如果客户端浏览器访问的某个HTML或其他类型的Web页中包含有其他的Web资源,如JavaScript文件、图像文件、CSS文件等;当浏览器每遇到这样一个Web资源,就会建立一个HTTP会话。如果这样的资源很多的话,就会加重服务器的负担,同时也会影响客户端浏览器加载HTML等Web资源的效率。在对上述的缺陷进行改进和完善后,HTTP1.1协议进入了我们的视线。HTTP1.1和HTTP1.0相比较而言,最大的区别就是增加了持久连接(也就是长脸接)支持。当客户端使用HTTP1.1协议连接到服务器后,服务器就将关闭客户端连接的主动权交还给客户端,也就是说,在客户端向服务器发送一个请求并接收以一个响应后,只要不调用Socket类的close方法关闭网络连接,就可以继续向服务器发送HTTP请求。当HTML中含有其他的Web资源时,浏览器就可以使用同一个网络连接向下载这些资源,这样就可以大大减轻服务器的压力。Http协议简介HTTP1.1除了支持持久连接外,还将HTTP1.0的请求方法从原来的三个(GET、POST和HEAD)扩展到了八个(OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE和CONNECT)。而且还增加了很多请求和响应字段,如上述的持久连接的字段Connection。这个字段有两个值,Close和Keep-Alive。如果使用Connection:Close,则关闭HTTP1.1的持久连接的功能,要打开HTTP1.1的持久连接的功能,必须使用Connection:Keep-Alive,或者不加Connection字段(因为HTTP1.1在默认情况下就是持久连接的)。除了这些,还提供了身份认证、状态管理和缓存(Cache)等相关的请求头和响应头。Http工作原理一次HTTP操作称为一个事务,其工作过程可分为四步:首先客户机与服务器需要建立连接。只要单击某个超级链接,HTTP的工作就开始了。建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。服务器接到请求后,给予相应的响应信息,其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,由显示屏输出。对于用户来说,这些过程是由HTTP自己完成的,用户只要用鼠标点击,等待信息显示就可以了。许多HTTP通讯是由一个用户代理初始化的并且包括一个申请在源服务器上资源的请求。最简单的情况可能是在用户代理和服务器之间通过一个单独的连接来完成。在Internet上,HTTP通讯通常发生在TCP/IP连接之上。缺省端口是TCP 80,但其它的端口也是可用的。但这并不预示着HTTP协议在Internet或其它网络的其它协议之上才能完成。HTTP只预示着一个可靠的传输。3 可行性分析3.1 技术可行性本系统是在Window环境下进行开发,使用的集成开发环境工具为eclipse,eclipse集成了Android 的SDK。数据库为android虚拟机自带的SQLite数据库。测试的设备可以选择搭载Android系统的实体机,也可以选择Android自带的虚拟机,本系统选择的测试设备为Genymotion。Genymotion是一款十分出众,性能优秀的Android虚拟机,相对于Android SDK自带的虚拟机,Genymotion启动速度要快非常多,而且在画质上、流畅度上也比Android AVD优异很多。IDE方面,Genymotion也支持多款的集成开发环境工具,例如Intelij idea和eclipse。这使得Genymotion不仅在开发工程师这备受欢迎,也深得Android游戏玩家的青睐。Genymotion虚拟机的优点:速度快性能好,资源占用低,系统要求512MB内存就能运行。支持 OpenGL 3D加速,可以流畅玩大型3D游戏。支持同时启动多个模拟器,可以实现软件或游戏多开。支持多种虚拟传感器,如电池状态、GPS、NFC、重力加速器等模拟,在微信、陌陌之类的App上有特别用处。支持摄像头、蓝牙等设备。可以配置模拟器参数,如屏幕分辨率、内存大小、CPU数量。直接拖拽窗口即可调整画面大小,支持多种分辨率。能支持几乎全部版本的 Android 系统。支持直接拖放文件到虚拟设备。启动速度以及运行速度都优于 Android SDK 官方的模拟器。3.2 经济可行性经济可行性分析的目的主要是对本系统运营成本的分析。首先我们可以从市场调查上得到,Android手机的市场占有率在中国以及全球范围内都是第一位的。从大学生的调查也可以得出,当代大学生使用的手机系统绝大多数是使用的是搭载了Android系统的手机,其中各种各样的Android手机品牌都有,主流品牌是三星、华为、小米、魅族、Oppo。所以说大学生的手持设备的普及在极大程度上保证我们不需要对硬件设备上投入大量的资金。而且门禁设备也无需更换,完全可以在原有的图书馆设备基础上进行改造和部署。另一方面,项目的开发软件都是免费或者开源的软件,所以在开发期间的资金投入也基本没有。对于项目部署之后的维护工作,因为该系统面向的对象主要是高校的图书馆,所以高校可以招募一些志愿学习的、相关专业的以及有能力胜任的学生来对程序进行后期的维护、更新。这样高校不仅可以节省大量的资金,还可以使得参与该项目的学生得到极好的锻炼。3.3 操作可行性操作可行性分析的主要目的是看系统提供的服务是否真的可以满足用户的需求。本系统主体功能就是提供一个选择图书馆座位的界面来满足在图书馆用座高峰时期,图书馆的选座终端压力骤增的情况下,学生不用排队等候选择座位。从而减少图书馆选座终端的压力,也节省了学生宝贵的学习时间。而且安卓设备相应的操作比较智能化,操作简单。安卓的设备轻便,便于携带的特点使得学生无需在图书馆选座终端前排队等待选座。可以在图书馆内任意的地点进行选择座位,缓解了图书馆选座终端的压力。4 系统总体设计4.1系统的组成结构系统的主要用户是学生。下图是用户的用例图。用户,即学生要首先进行登录操作,登录后用户可以进行查看当前的图书馆的座位情况、选择空闲座位、释放座位、暂时离开、查看当前用户的状态的操作。用户登录成功后,系统会跳转到主界面,你在主界面可以有三个操作,查看当前图书馆的座位情况、选择座位和查看当前用户的状态。查看当前图书馆的座位情况可以直观向用户展示当前图书馆各个楼层自习室的座位空闲以及占用状况,以便用户自身来判断是否合适选择图书馆作为自习的地点,这样使学生不必要去图书馆才可以得知座位的使用情况,方便学生及时的查看图书馆座位资源的使用情况。选择座位的操作是该系统的最核心、重要的模块。用户通过各个楼层的座位的列表来了解哪些座位是被占用的,哪些是空闲。用户的个人管理界面只提供查看当前用户的在图书馆不良的状态的记录。座位被用户选择了之后,系统会跳到用户使用座位的显示界面。在这个界面用户的可以有释放座位、暂时离开、和续时的操作。图 4-1 系统用例图4.2 系统工作的流程该系统是部署在搭载了Android手机系统的终端,在用户的终端上系统时采用了Android项目普遍采用的MVC模式。即Model层(模型层)、View层(视图层)、Controller层(控制层)。这三层将整个系统的架构清晰的分为三个部分,每个模块各司其职。将与用户交互的界面部分放入View层,这层主要负责和用户的交互,方便统一管理系统的前台界面。将系统的一些跳转的控制语句放在Controller层,这一层主要功能是为了将界面和最下层的业务处理层联系在一起,也担任着传递一些必要参数的功能。最后将业务逻辑处理的部分放在最下层的Model层,这一层是将所有用户的操作进行处理并将处理结果反馈给用户的部分。这一层还担负着和本地和远程数据交互、插入更新、删除的操作。远程服务器采用的web服务器,用户通过HTTP请求访问到服务器,服务器将数据库中用户信息、以及传输给用户。图4-2 系统总体架构图由上图可以看出系统的大致流程,用户用过View层的用户界面进行操作,系统将用户的操作信息通过Controller层发送给Model层,Model层会通过HTTP请求与远程的server端进行交互,server端会去origin Database中去取数据然后传给Model层,Model层将得到数据的存入本地数据。将数据经过处理后给Controller层,Controller层在将最后的处理结果返回给用户。4.3 系统功能设计概要本系统包括用户登录,用户个人信息查询,用户选择座位,用户使用座位

温馨提示

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

评论

0/150

提交评论