




已阅读5页,还剩61页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
兰州交通大学毕业设计(论文)兰州交通大学毕业设计(论文)基于Android的移动办公系统专业:软件工程 年级:2010 学号:2010008093摘要自2007年谷歌领导的手持开放设备联盟推出手机智能操作系统Android以来, Android以其开源、免费和开放等众多优势,得到了大量手机厂商的青睐,并吸引了大批开发者。随着3G网络的普及和4G网络的接入并推广使用,移动互联网发展迅速,为了提高办公的信息化水平,在学校教职工的基于WEB的网上办公系统已经建设成熟的情况下,有必要在基于Android的手机端开发办公系统的移动终端应用,方便教职工随时随地使用移动应用进行办公和获取信息,达到提高工作效率的目的。基于本系统的背景、意义及必要性,本文对应用系统的开发过程作了详细阐述。首先根据系统的功能需求进行需求分析,得到系统的功能需求,接着进行概要设计,建立UML模型,包括类图、用例图、时序图等,从不同角度分析系统的功能的业务逻辑,为系统的设计和实现提供模型支持。接着进行数据库设计,得到E-R模型,设计数据库的表及关联关系。接着是进行详细设计,对系统的整体架构进行了分析说明,详细阐述关键性原理及技术,并设计了系统主要界面,根据详细设计进行编码和单元测试。最后对系统进行整体性测试,完成整个移动办公系统应用的设计和实现。最终完成移动办公系统的开发,并使该系统成为学校办公自动化系统的使用环节中的一种有效获取信息的方式。关键词:办公系统;移动互联网;Android;UML模型;Abstractsince 2007,Handheld devices led coalition Google launched its Android opening smart phone operating system, Android with its open-source, free and open, and many other advantages, get a lot of mobile phone manufacturers of all ages, and attract a large number of developers.With the popularity of 3G networks under and 4G network access, and promote the use of the rapid development of mobile Internet, in order to improve the level of information office, school faculty in the WEB-based online office system has been building mature, it is necessary Android-based mobile phone client terminal application development office system, to facilitate the use of faculty office and mobile applications anytime, anywhere access to information, to improve work efficiency.The system is based on the background, significance and necessity, the paper application system development process elaborated. First, according to the system requirements analysis, functional requirements, followed by a summary of the design, build UML models, including class diagrams, case diagram, sequence diagram used from different angles, providing support for the design and implementation of the model system.Then the database design, get the E-R model, tables and relationship database design. Followed by the detailed design, the overall architecture of the system are analyzed in detail the key principles and techniques, and the main interface of the system design, coding and testing unit in accordance with the design.Finally, to test the integrity of the system, complete the design and implementation of the entire mobile office system applications. Finally, the development of mobile office system, and make the school system has become part of office automation system using the way of an effective access to information.Key Words:Office AutomationSystem;Mobile Internet;Android;UMLModel;目录摘要IAbstractII目录III1 绪论11.1 课题背景与意义11.2 课题研究现状21.3 本课题的研究内容与目标32 系统分析42.1 系统可行性分析42.2 系统的需求分析42.2.1 系统的功能需求42.3 系统的性能分析52.4 系统的运行环境52.4.1 服务器端软硬件支持52.4.1 客户端软硬件支持53 开发工具及技术介绍63.1 Android系统63.1.1Android的特点63.1.2 Android的系统架构63.1.3 Android程序设计73.2 SSH框架93.2.1 Struts293.2.2 Spring93.2.3 Hibernate103.3 Tomcat103.4 LDAP登录认证113.4.1 LDAP协议简介113.4.2 LDAP协议优点113.5 Apache HttpClient123.6 JSON133.6.1 JSON简介133.6.2 JSON与XML的比较133.6.3 JSON解析143.7 Android会话保持153.7 XMPP与Android消息推送163.7.1 XMPP协议介绍163.7.2 XMPP服务器端与客户端163.7.3 Android消息推送173.8 Genymotion模拟器184 系统设计194.1 系统流程图194.2 类图204.3 用例图224.4 时序图244.4.1 登录244.4.2 查看信息(快讯、公告)254.4.3 文档管理时序图265 数据库设计275.1 数据库逻辑设计275.2 数据库物理设计296 系统实现386.1 系统的开发环境386.1.1 应用开发环境386.1.2 系统开发层次结构386.2 系统的开发结构设计386.3 系统各模块功能的实现466.3.1 登录模块466.3.3 我的主页模块476.3.2 设置模块486.3.4 信息模块496.3.5 公告模块实现506.3.6 快讯模块实现516.3.7 邮箱模块实现526.3.8 我的文件模块的实现537.1 软件测试557.2 单元测试55结论与展望56结论56展望56致谢57参考文献58兰州交通大学毕业设计(论文)1 绪论1.1 课题背景与意义随着移动通信与Internet向移动终端的普及,网络和用户对移动终端的要求越来越高,而Symbian、ISO等手机平台太过封闭,不能很好的满足用户的需求,限制了移动终端应用的发展。3G技术经过多年的发展,已经越来越普及,也被广泛的接受。同时4G技术也在不断试点发展,它给移动终端带来了更快的数据传输速率。移动终端不再仅仅是通讯终端,还是互联网的终端,移动终端成为了人们获取信息的主要渠道之一。在此背景下,市场迫切的需要一个移动开放平台,谷歌公司为此2007年推出了一款面向移动设备的操作平台Android操作系统。Android是一套具有开放性的移动设备综合平台,它包括操作系统、中间件和应用平台。Android是由Linux和Java构成的开源操作系统,提供了一系列框架,允许其它厂商和个人在此基础上进行再次开发。Android的开放性即有助于技术创新,又有助于降低成本,拥有很大的市场潜力。根据调查显示,我国的网民数量已经3亿人,超过美国,网民数量跃居世界第一,其中手机网民甚至已经超过PC网民,手机成为网络接入的一个重要方向。办公自动化(OA,Office Automation),是办公信息处理的自动化,它利用先进的技术,使人的各种办公业务活动逐步由各种设备、各种人、机以及信息系统来协助完成,达到充分利用信息,提高工作效率和工作质量,提高生产率的目的。办公自动化由70年代末80年代初在我国提出,到现在已有近二十年的发展历史。由于办公自动化技术的不断发展,办公自动化新产品不断的出现,办公自动化的内涵也不断地丰富和发展。办公软件给办公职员带来的方便时毋庸置疑的,现在的办公软件已经不仅仅减轻员工的工作量,更重要的是将员工从繁琐的事务性工作中解放出来,把重心放到最重要的事情上去,提高整体员工的工作效率,提高企业的效率,增强企业实力。在这种软件的协同下,企业的组织结构更简化,各部门之间的信息交流更方便、快捷、准确,企业的战列决策可以更好跟快的跟进。从这些意义上讲,在市场竞争越来越激烈的今天,办公自动化己经不再是一种手段、一种工具,而成为决定企业生存发展的命脉。传统的办公模式很多信息都是靠人去处理,信息传输途中很容易出现信息的错误,企业的领导者也很难掌控公司的各种信息。在日新月异的今天传统的工作方式和审批流程已经难以满足各企业事业单位的新要求,所以要使化政府机关和企事业单位办公效率提高,管理规范化,只有实现和提高办公自动化的水准。而办公系统的作用就是排除因职能、职位、距离等原因造成的信息联络不畅而带来的企业发展羁绊,通过构建内部通讯、信息发布与交流平台,实现多途径的联络与沟通,减少信息在途中的时间,提高信息的时效性,与此同时,缩短领导与职员之间,各部门之间的距离。办公自动化系统可分为事务型、管理型和分析决策型三种不同的层次:(1)事务型的办公自动化系统:支持一个机构内各办公室的基本事务活动,主要功能包括信息的产生、收集、加工、存储和查询,如文字处理、文档管理、电子报表、电子邮件、电子日程管理、文档的整理、分类归档、检索等;(2)管理型的办公系统:包含业务管理的那部分功能,是事务型办公系统和支持职能管理活动的管理信息系统的结合;(3)决策型办公系统:包括决策支持功能,是在管理型办公系统的基础上再加上决策支持系统而构成,除具备前述的功能外,还具备对业务数据的进行分析、评测等决策支持的功能。本课题结合了学校办公自动化系统的实际需求,在已建立的基于B/S的系统办公系统基础上,研究基于Android的移动办公系统客户端,使学校信息传播速度更快,管理更加敏捷方便。1.2 课题研究现状大部分企业和单位自成立至今,办公模式为传统的办公模式并主要以纸介质为主,在信息化发展的浪潮中,显然已经远远不能满足高效率、快节奏的现代工作和生活的需要。如何实现信息处理的自动化和办公的无纸化逐步得到了部门领导的重视。而今企业和单位里普遍使用计算机来提高员工的工作效率,但是在需要许多员工一起协同工作的现代工作环境中,企业和部门更需要提高整体的工作效率。利用网络设施基础及先进的网络应用平台,建设一个安全、可靠和高效的信息网络和办公自动化、信息管理系统,为管理公司提供现代化的日常办公条件及丰富的综合信息服务,实现办公事务处理自动化,以提高办公效率和管理水平,实现各部门日常业务工作的规范化、电子化、标准化,实现信息的在线查询。我国的信息化通过早期推行办公自动化系统及上世纪末的政府上网工程等发展阶段,为办公自动化打下了一定的基础,取得了不小的进步,但地区发展很不均衡,存在沿海地区明显比内陆地区好,内陆地区又明显比偏远地区好,从总体上讲,信息化的速度和水平还不能适应国民经济和社会发展的要求,还存在一些突出问题,如:缺乏统一规划和统一标准,各部门信息存在信息孤岛,资源难以共享;固守传统工作方式;常常重系统而忽视业务流程优化;重建设,轻运行维护等。解决这些问题,需要从体制上入手,政府、企业内部一些有卓识远见的领导开始重视这项工作。关于移动办公方面,目前国内发达地区的单位,己经在这方面先行一步,因为他们积累了大量的应用系统的开发经验,并且本身需要实施开展现场巡查、调查、打印等业务,存在将工作流程向移动终端延伸的实际需求。根据实际用户的需求的不同,移动办公大致可以分为客户端方式和WAP方式两种,这两种方式的优缺点如下:(1)客户端方式,功能非常强大,对于掌上终端的要求也较高,一般需要以智能手机为终端载体,它通过在公司内部部署一台用以手机和电脑网络信息对接服务器,使得手机可以和企业的办公系统、财务系统、ERP系统等等几乎所有的企业级业务和管理系统联动,其业务主要面向大中型企业和政府部门。(2)WAP方式,无须装载软件,借助运营商提供的移动化服务就可以直接进行移动化的办公。而后一种方式则能实现一些常规的企业办公功能,它不需要企业架构任何服务器,也不需要在手机上安装软件,实现包括如流转审批、日程管理、企业通讯录、即时通讯、企业快讯等在内的常规企业办公功能。1.3 本课题的研究内容与目标办公自动化是实现办公信息处理的自动化,采用先进的信息处理技术来提高办公效率和管理手段的系统。近年来,无线通讯技术发展迅速,3G网络已经普及,随着4G网络牌照的发放,正式宣布进入移动互联网时代,随着移动互联网的深入发展,以Android为代表的移动终端系统中应用程序也得到了多元化发展。Android平台以其开源、完全、稳定的特点,迅速占据移动终端平台一定的市场份额,并表现出强大的活力,在得到了用户的青睐的同时,也吸引了大量的应用开发者。结合本校实际情况,学校教工的基于B/S架构的办公自动化系统平台建设已经基本完成,但是移动终端应用尚未建立。而移动办公已经成为信息化发展的重要趋势,亟需开发基于移动终端的办公系统平台,来实现日常信息的快速获取和事务的高效解决,提高实时共享性,达到提升工作效率的目的。兰州交通大学毕业设计(论文)2 系统分析2.1 系统可行性分析系统分析的主要任务是将在系统需求分析中所得到的信息集中到一起,对组织内部的管理状况和信息处理过程进行分析。本系统结合原有的协同办公系统,采用面向对象分析方法(OOA)对系统用户的需求进行进一步分析和明确,采用UML统一建模语言表示。可行性是系统开发的一项关键步骤,它是通过对整个系统的需求,技术及开发方法以及开发人员,综合考虑来评估该系统的开发是否符合实际。可行性分析包括:组织和管理上的可行性、技术可行性、经济可行性。基于Android的移动办公系统是一个具有一定的专项性的系统,旨在方便学校的教职工及时传达和利用信息,基于此设计了我的桌面、信息管理、通讯管理、文档管理、计划管理、流程管理等功能。涉及的内容比较符合实际需求,功能具有针对性等特点。此平台参照平时学校的管理的习惯和管理模式,学校可利用此平台来替代传统的办公模式和作为PC端办公系统的补充,方便使用,可以快速获取信息,提高办公效率。该系统是基于Android的手机应用,Android开发是比较常用且成熟的技术,具有成熟和活跃的论坛,是当今比较成熟的、完善的主流开发工具,可以满足系统的大部分的需求。移动办公也是信息化发展的重要趋势,在移动终端上实现日常信息的快速获取和事务的高效解决,提高实时共享性,达到提升工作效率的目的。本系统结合本校实际情况,学校教工的移动办公应用不需要太过复杂。在硬件设施上,对服务器的配置要求不太高,普通的应用服务器就能运行该系统的后台Java Web应用,而用户只需要普通的搭载Android系统的智能机就能让该应用正常运行,连接网络即可登录到系统获取信息。综合各个方面看,基于Android的移动办公系统应用有必要性。该应用定会方便学校教职工的工作。2.2 系统的需求分析在明确设计目标,并掌握Android平台开发基础后,根据学校基于Web的协同办公系统的功能需求,设计基于Android平台的移动办公系统应用的功能。主要完成的功能包括:我的桌面、信息管理、通讯管理、文档管理、流程管理等5大功能模块。2.2.1 系统的功能需求本系统的功能模块主要有我的桌面、信息管理、通讯管理、文档管理、流程管理。各个模块的具体功能分析如下:(1)我的桌面:该模块是系统的主要界面,包括公告列表、快讯列表、我的待办事项、我的邮件、我的消息、我的计划、修改个人资料等功能。(2)信息管理:该模块是用户登录后,可以查看学校所发的公告、快讯等信息,并能下载附件,使用户能及时得到学校最新消息和快讯。(3)通讯管理:该模块相当于用户的通信录,用户能向通讯列表的人发送信息,邮件管理功能。(4)文档管理:包括个人文档、共享文档和学校文档。个人文档相当于用户的私人空间用户可以在个人文档里管理自己的私人文件。共享文档相当于QQ的群共享,用户可以将群公用文件上传到共享文档,还可以从共享文档中下载文件。(5)流程管理:用户可以新建流程、查看我的申请、待办事项。2.3 系统的性能分析本系统对手机配置和性能方面要求不高,但要求移动网络保持良好状态。服务器端的应用服务器要求支持高并发,数据库服务器查询速度快,在并发量达到一定的程度情况下,后台应用的响应速度会变慢,但是不会出现系统崩溃。在规定的并发量下后台系统运行正常并响应用户请求,Android客户端能正常获取信息并显示正常。2.4 系统的运行环境2.4.1 服务器端软硬件支持操作系统:Windows server 2003操作系统或者Linux操作系统;(测试环境为PC机Windows 8 64位操作系统,内存4G,硬盘容量500G,无线网络环境)应用服务器:Tomcat 6.0以上;数据库服务器:Oracle数据库;2.4.1 客户端软硬件支持智能手机,Android操作系统,版本2.3以上。物理内存为1G以上,手机内存1G以上,能正常连接到移动网络。3 开发工具及技术介绍本系统采用Java典型开发工具Eclipse为开发平台,使用SSH框架组合开发后台服务器应用,使用Tomcat作为应用服务器,Oracle数据库作为数据库服务器。移动端应用同样采用Eclipse作为开发工具,集成ADT插件,开发Android应用,在测试应用时采用Genymotion模拟器工具,下面将开发工具及其相关技术介绍如下。3.1 Android系统3.1.1Android的特点(1)开放性。Google 与开放手机联盟合作开发了Android,开放的平台允许任何移动终端厂商加入到Android联盟中Android不仅包含底层操作系统以及上层的用户界面和应用程序,而且用户可以根据自己的需求进行定制和扩展,无需任何授权许可费,是一个真正意义上的开放性移动平台。(2)所有的应用程序是在平等条件下创建的。移动设备上的核心应用程序可以被替换或扩展,即使是拨号程序或主屏幕这样的核心组件也一样。(3)应用程序可以轻松地潜嵌入网络功能支持。Android是为访问互联网而生,它内置了强大的Web浏览器引擎,可以轻松地嵌入HTML,JavaScript和样式表,还可以通过WebView显示网络内容。3.1.2 Android的系统架构Android的系统架构采用了分层的架构,如图3.1所示,Android系统从高到低分为四层,依次是应用层、应用框架层、系统运行库层和Linux内核层。(1)应用层:运行在虚拟机上的程序,所有的应用程序都是运用Java语言编写的。(2)应用框架层:这一层是编写Google发布的核心应用时使用的API框架,应用API框架开发人员能更加容易地开发功能强大的应用程序,但在开发过程中,必须遵守其框架的开发原则。(3)系统运行库层(C/C+库以及Android运行库):Android包含一个C/C+库的集合,当使用Android应用框架时,Android系统会提供它们来支持开发过程中使用的各个组件,帮助上层实现一些常见功能。Android运行库为Android提供运行环境,包括核心库和Dalvik虚拟机。(4)Linux内核:Android最底层是Linux内核层,Linux2.6为Android提供核心系统服务,包含了各个模块的驱动及Linux系统核心驱动。后者主要用来协调CPU处理和内存管理,其中Linux驱动程序模型作为软硬件间的抽象层,它隐藏硬件细节为上层提供统一的服务。图3.1 Android系统架构图3.1.3 Android程序设计Android应用程序由Activity,BrocastReceiver,Service,ContentProvider四大组件构成。此外,还包括负责在基本组件之间传递消息的Intent组件,所有的这些组件必须在Manifest.xml文件中声明。(1)Activity。Activity是一个独立的,可以于用户交互的Android应用组件,是应用程序的表示层,是最基本的模块。应用程序中的每个界面的显示都是通过继承和扩展类Activity来实现。一个Activity可以被看为一个单独的屏幕。它们的作用就是实现一些独立的类,然后继承活动基类。活动类主要是显示由视图控件组成的用户接口,并对事件做出响应。Activity利用View来实现应用程序的GUI。如:按钮、文本框、滚动条、菜单项等。一个Android应用程序是由多个Activity组成的,多个Activity之间可以通过startActivity或startSubActivity方法相互跳转。例如:PKM文档将会有一个屏幕显示所有的文章列表,另外一个屏幕用于进行文档的编辑。每一个屏幕就是一个Activity。当一个新的屏幕打开后,前一个的屏幕就会暂停,并保存在历史栈中。用户可以返回到历史栈中的前一个屏幕,当屏幕不再使用时,还可以从历史栈中删除掉。另外,通过 Intent也可以进行Activity之间的跳转。(2)BrocastReceiver。BrocastReceiver是用户接受广播通知的组件。广播是一种同时通知多个对象的事件通知机制。为了响应不同事件通知,应用程序可以注册不同的BrocastReceiver。而所有的BrocastReceiver都继承于基类BrocastReceiver。BrocastReceiver自身并不实现图形用户界面,但是当它收到通知消息后,BrocastReceiver可以启动作为响应,或者通过 NotificationManager提醒用户。(3)Service。Service即“服务”,是一个具有较长生命周期且没有用户界面的程序。通过StartService可以启动一个service,通过context.bindService可以绑定一个Service。此外,在使用Service时需要在AndroidManifest.xml中声明。(4)ContentProvider。ContentProvider是由Android提供的一种解决应用程序间数据通信、共享的问题的机制。它是一种特殊的存储数据的类型,它提供了一套标准的接口来获取和操作数据。并且,Android自身也提供了现成的ContentProvider,如:Contacts,Browsers,CallLog等。ContentProvider能将应用程序特定的数据提供给另外一个应用程序使用。数据的存储方式可以是Android文件系统,也可以是SQLite数据库。ContentResolver继承自类ContentProvider,并且实现了一组标准接口。通过这组接口,其它应用程序能对数据进行读写和存储。应用数据的调用是通过ContentResolver对象的方法来完成。ContentResolver提供的方法包括query,insert,update等。ContentResolver对象可以与任意的ContentProvider通信。(5)Intent。Android用Intent这个特殊类实现Activity与Activity之间的切换。Intent类用于描述应用的功能。在Intent的描述结构中,有两个最重要的部分:动作和动作对应的数据。典型的动作类型有:Main,View,Pick,Edit等,而动作对应的数据则以URL的形式表示。例如,要查看一个人的联系方式,需要创建一个动作类型为View的Intent,以及表示这个人的URL。通过解析各种Intent,从一个屏幕导航到另外一个屏幕是很简单的。当导航时,Activity将会调用startActivity方法。然后,系统会在所有已安装的应用程序中定义的IntentFilter中查找,找到最匹配的myIntent的Intent对应的Activity。新的Activity接收到myIntent的通知后,开始运行。3.2 SSH框架3.2.1 Struts2Struts2是一个web应用框架。它不是一个Struts的新的发布版本,而是一个新的框架。Struts2是第二代基于Model-View-Controller(MVC)模型的web应用框架。Struts2是Java企业级web应用的可扩展性的框架。它是WebWork和Struts社区合并后的产物。这一版本的Struts2声称,Struts2会接近于原先版本Struts,并且会更容易使用。Struts2没有继承Struts1的血统,而是继承了webwork的血统。Struts2框架结构清晰,使用灵活方便。这一结构包含应用逻辑的横切面拦截器,基于注释的配置以减少和去除XML形式的配置文件,功能强大的表达式语言,支持可更改、可重用UI组建的基于微MVC的标签库。Struts2有两方面的优势,一是所有的Struts2应用程序都是基于client/server HTTP交换协议,Java Servlet API只是Java API的一个很小子集,这样我们可以在业务逻辑部分使用功能强大的Java语言进行程序设计。Struts2提供了对MVC的一个清晰的实现,这一实现包含了很多参与对所有请求进行处理的关键组建,如:拦截器、OGNL表达式语言、堆栈。3.2.2 SpringSpring是一个开源的Java EE全功能栈(full-stack)的应用程序框架,以Apache许可证形式发布,也有.NET平台上的移植版本。Spring提供了一个建议的开发方式,这种开发方式,将避免那些可能导致底层代码变得繁杂混乱的大量属性和帮助类。Spring 中包含的关键特性:(1)强大的基于JavaBean的采用控制反转(Inversion of Contro,IoC)原则的配置原理,使得应用程序的组建更加快捷简易;(2)一个可用于Java EE运行环境的核心Bean工厂;(3)数据库事务的一般化抽象层,允许宣告式(Declarative)事务管理器,简化事务的划分使之与底层无关;(4)JDBC抽象层提供了有针对性的异常等级(不再从SQL异常中提出源代码),简化了错误处理,大大减少了程序员的编码量,再次利用JDBC时,你无需再写一个“终止”(finally)模块,并且面向JDBC的异常与Spring的通用数据访问对象(Data Access Object)异常等级一致;(5)以资源容器DAO实现和事务策略等形式与Hibernate,JDO和MYBATIS SQL Maps集成。利用众多的反转控制方便特性来全面的支持,解决了许多典型的Hibernate集成问题。所有这些全部遵从Spring通用事务处理和通用数据访问对象异常等规范。(6)灵活的基于核心Spring功能的MVC网页应用程序框架。开发者通过策略接口将拥有对该框架的高度控制,因而该框架将适应于多种呈现(view)技术,例如JSP,FreeMarker,Velocity,Tiles,iText以及POI。值得注意的是,Spring中间层可以轻易地结合于任何基于MVC框架的网页层,例如Struts,WebWork,或Tapestry。(7)提供诸如事务管理等服务的面向方面编程框架。在设计应用程序Model时,MVC模式(例如Struts)通常难于给出一个简洁明了的框架结构。Spring却能具有能够让这部分工作变得简单的能力。程序开发人员可以使用Spring的JDBC抽象层重新设计那些复杂的框架结构。 3.2.3 HibernateHibernate 是基于Java语言的对象关系映射框架,使用通用公共许可证(GUN)发行的自由、开源的软件。Hibernate为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。Hibernate也是目前Java开发中最为流行的数据库持久层框架,现已归JBOSS所有。Hibernate的设计目标是将软件开发人员从大量相同的数据持久层相关编码工作中解放出来。无论是从设计草案还是从一个遗留数据库开始,开发人员都可以采用Hibernate。Hibernate的主要功能是从Java类映射到数据库表,以及从Java数据类型到SQL数据类型。Hibernate也提供了数据查询和检索设施。它还生成的SQL调用,并试图缓解开发商手动结果集处理和对象转换,并保持应用程序移植到所有支持的SQL数据库的性能开销很小。3.3 TomcatTomcat服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器。Tomcat是一个Servlet容器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能。Tomcat是目前比较流行的Java应用服务器。同样,本系统的后台应用同样采用Tomcat作为应用服务器。3.4 LDAP登录认证3.4.1 LDAP协议简介LDAP(Lightweight Directory Access Protocol,轻量级目录访问协议)是实现提供被称为目录服务的信息服务。目录服务是一种特殊的数据库系统,其专门针对读取,浏览和搜索操作进行了特定的优化。目录一般用来包含描述性的,基于属性的信息并支持精细复杂的过滤能力。目录一般不支持通用数据库针对大量更新操作操作需要的复杂的事务管理或回卷策略。而目录服务的更新则一般都非常简单。这种目录可以存储包括个人信息、web链结、jpeg图像等各种信息。为了访问存储在目录中的信息,就需要使用运行在TCP/IP之上的访问协议LDAP。LDAP目录中的信息是按照树型结构组织,具体信息存储在条目(entry)的数据结构中。条目相当于关系数据库中表的记录。条目是具有区别名DN(Distinguished Name)的属性(Attribute),DN是用来引用条目的,DN相当于关系数据库表中的关键字(Primary Key)。属性由类型(Type)和一个或多个值(Values)组成,相当于关系数据库中的字段(Field)由字段名和数据类型组成,只是为了方便检索的需要,LDAP中的Type可以有多个Value,而不是关系数据库中为降低数据的冗余性要求实现的各个域必须是不相关的。LDAP中条目的组织一般按照地理位置和组织关系进行组织,非常的直观。LDAP把数据存放在文件中,为提高效率可以使用基于索引的文件数据库,而不是关系数据库。类型的一个例子就是mail,其值将是一个电子邮件地址。LDAP的信息是以树型结构存储的,在树根一般定义国家(c=CN)或域名(dc=com),在其下则往往定义一个或多个组织(organization)(o=Acme)或组织单元(organizational units)(ou=People)。一个组织单元可能包含诸如所有雇员、大楼内的所有打印机等信息。此外,LDAP支持对条目能够和必须支持哪些属性进行控制,这是有一个特殊的称为对象类别(objectClass)的属性来实现的。该属性的值决定了该条目必须遵循的一些规则,其规定了该条目能够及至少应该包含哪些属性。例如:inetorgPerson对象类需要支持sn(surname)和cn(common name)属性,也可以包含可选的如邮件,电话号码等属性。3.4.2 LDAP协议优点(1)跨平台:可以在任何计算机平台上,用很容易获得的而且数目不断增加的LDAP的客户端程序访问LDAP目录。而且也很容易定制应用程序为它加上LDAP的支持。LDAP协议是跨平台的和标准的协议,因此应用程序就不用为LDAP目录放在什么样的服务器上操心了。LDAP得到了业界的广泛认可,因为它是Internet的标准。产商都会在产品中加入对LDAP的支持,因为他们根本不用考虑另一端(客户端或服务端)是怎么样的。LDAP服务器可以是任何一个开发源代码或商用的LDAP目录服务器(或者还可能是具有LDAP界面的关系型数据库),因为可以用同样的协议、客户端连接软件包和查询命令与LDAP服务器进行交互。与LDAP不同的是,如果软件产商想在软件产品中集成对DBMS的支持,那么通常都要对每一个数据库服务器单独定制。(2)费用低、维护简单:不同于很多商业的关系型数据库,用户不必为LDAP的每一个客户端连接或许可协议付费。LDAP服务器安装起来很简单,也容易维护和优化。(3)复制技术:LDAP服务器可以用“推”或“拉”的方法复制部分或全部数据,例如:可以把数据“推”到远程的办公室,以增加数据的安全性。复制技术是内置在LDAP服务器中的而且很容易配置。如果要在DBMS中使用相同的复制功能,数据库产商就会要求支付额外的费用,而且也很难管理。(4)允许使用ACL:LDAP允许根据需要使用ACL(访问控制列表)控制对数据读和写的权限。例如,设备管理员可以有权改变员工的工作地点和办公室号码,但是不允许改变记录中其它的域。ACL可以根据谁访问数据、访问什么数据、数据存在什么地方以及其它对数据进行访问控制。因为这些都是由LDAP目录服务器完成的,所以不用担心在客户端的应用程序上是否要进行安全检查。3.5 Apache HttpClientHTTP协议可能是现在Internet上使用得最多、最重要的协议了,越来越多的Java应用程序需要直接通过HTTP协议来访问网络资源。虽然在JDK的包中已经提供了访问HTTP协议的基本功能,但是对于大部分应用程序来说,JDK库本身提供的功能还不够丰富和灵活。Apache HttpClient是Apache Jakarta Common下的子项目,用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。Apache HttpClient已经应用在很多的项目中,比如Apache Jakarta 上很著名的另外两个开源项目Cactus和HTMLUnit都使用了HttpClient。再就是,Android SDK中也集成了Apache HttpClient。Apache HttpClient提供的主要的功能有:(1)实现了所有HTTP的方法(GET,POST,PUT,HEAD 等);(2)支持自动转向;(3)支持HTTPS协议;(4)支持代理服务器等。使用Apache HttpClient需要以下6个步骤:(1)创建HttpClient的实例;(2)创建连接方法的实例,如GetMethod,在其构造函数中传入待连接的地址;(3)调用HttpClient实例的execute方法来执行第二步中创建好的method实例;(4)读response;(5)释放连接。无论执行方法是否成功,都必须释放连接;(6)对得到后的内容进行处理。Apache HttpClient对HTTP协议支持非常好,使用起来很简单,版本更新快,功能也很强大,具有足够的灵活性和扩展性。对于想在Java应用中直接访问HTTP资源的编程人员来说,Apache HttpClient是一个非常好的工具包。3.6 JSON3.6.1 JSON简介JSON全称为JavaScript Object Notation是一种轻量级的数据交换格式。它是基于JavaScrip的一个子集。 JSON采用的是完全独立于语言的文本格式,使JSON成为理想的数据交换语言。具有易于阅读和编写,同时也易于机器解析和生成等优点。JSON结构有两种结构,JSON简单说就是JavaScript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构:(1)对象:对象在JS中表示为“”括起来的内容,数据结构为key:value,key:value,的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为“对象.key”获取属性值,这个属性值的类型可以是数字、字符串、数组、对象几种。(2)数组:数组在JS中是中括号“”括起来的内容,数据结构为:java,javascript,vb,取值方式和所有语言中一样,使用索引获取,字段值的类型可以是数字、字符串、数组、对象几种。3.6.2 JSON与XML的比较XML拥有跨平台、跨语言的优势,然而,除非应用于Web Service,否则,在普通的Web应用中,XML的解析是复杂的,无论是服务器端生成或处理XML,还是客户端用JavaScript 解析XML,都常常导致复杂的代码,极大地降低了开发效率。实际上,对于大多数Web应用来说,根本不需要复杂的XML 来传输数据,XML的扩展性很少具有优势,许多AJAX应用甚至直接返回HTML 片段来构建动态Web页面。和返回XML 并解析它相比,返回HTML片段大大降低了系统的复杂性,但同时缺少了一定的灵活性。现在,JSON为Web应用开发者提供了另一种数据交换格式。JSON数据格式的优点:(1)可读性:JSON和XML的可读性都比较好,JSON是简易的语法,XML是规范的标签形式。(2)可扩展性:XML天生有很好的扩展性,JSON当然也有,没有什么是XML可以扩展而JSON却不能扩展的。不过JSON在Javascript主场作战,可以存储Javascript复合对象,有着XML不可比拟的优势。(3)编码难度:XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有提供的工具,如org.json、net.sf.json且方便易用。JSON通过文档模型解析,也就是通过父标签索引出一组标记。例如:xmlData.getElementsByTagName(“tagName”),但是这样是要在预先知道文档结构的情况下使用,无法进行通用的封装。另外一种方法是遍历节点(document)以及子节点(childNodes)。这个可以通过递归来实现,不过解析出来的数据仍旧是形式各异,往往也不能满足预先的要求。凡是这样可扩展的结构数据解析起来一定都很困难。JSON也同样如此。如果预先知道JSON结构的情况下,使用JSON进行数据传递,可以写出很实用美观可读性强的代码。以上是在Javascript中仅对于数据传递的XML与JSON的解析。JSON的优势要远远超过XML。除此之外,JSON和XML还有另外一个很大的区别在于有效数据率。JSON作为数据包格式传输的时候具有更高的效率,这是因为JSON不像XML那样需要有严格的闭合标签,这就让有效数据量与总数据包比大大提升,从而减少同等数据流量的情况下,网络的传输压力。因此,考虑到JSON的众多优势,在Android中使用JSON可以大大降低流量使用,选用JSON数据格式,在后台应用中可以直接使用Struts-json插件包,自动将对象数据封装成JSON格式数据,高效地传送该数据至Android客户端,Android客户端应用使用集成好的org.json工具,解析JSON格式的数据,然后给用户显示相应的信息。3.6.3 JSON解析Android的JSON解析部分都在包org.json下,在该应用中主要使用了2个类: (1)JSONObject:JSON对象,其中只包含键值(Key/Value)对。可以使用toString()方法输出完整的JSON格式字符串。调用的响应体现为一个标准的字符串(例如:“JSON”:“HelloWorld”,最外被大括号包裹,其中的Key和Value被冒号“:”分隔)。例如:初始化一个JSONObject实例,引用内部的put方法添加数值new JSONObject().put(“JSON”),“HelloWorld”)。Value的类型包括:Boolean、JSONArray、JSONObject、Number(Integer,Dobule,Float)、String或者默认值JSONObject.NULL object。获取JSONObject对象中的值是根据值的类型,通过getInt、getString等方法获得相应的值。(2)JSONArray:它代表一组有序的数值。同样使用toString()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业发展策略在企业管理中的应用
- 农村土地资源管理和流转制度改革
- 传染病防控传染途径隔离规程
- 零售连锁店铺员工培训手册
- 环保纺织服饰生产规定
- 灌溉工程合同范本与签订注意事项
- 企业文化建设对员工凝聚力的促进
- 人体解剖学预防措施
- 现代养殖设备维护手册
- 医疗器械岗位职责及考核标准
- 2025年大学生英语六级必考词汇表全部汇编(带音标)
- 土木工程生产实习日记50篇
- GB/T 5993-2003电子设备用固定电容器第4部分:分规范固体和非固体电解质铝电容器
- FZ/T 52059-2021抗菌粘胶短纤维
- 医学课件-护理评估课件
- 幼儿园大班安全教育:《暴力玩具不能玩》 课件
- 26个英文字母大小写描红
- 养老院预算及成本管理制度
- 研学旅行基地评估认定评分表
- DL∕T 1867-2018 电力需求响应信息交换规范
- 版良性前列腺增生诊疗指南PPT
评论
0/150
提交评论