基于移动互联网的智慧旅游导览系统的设计与实现
近年来旅游业已经发展成为了一个集餐饮、交通、购物、游乐、娱乐等要素于 一体的综合性产业,旅游业已初具规模,提高旅游业的服务质量成为旅游行业发展的新目标。在信息技术诸如移动互联网、互联网+、云计算、数据挖掘等信息技术的影响下,人们对于旅游资源的需求也逐渐提高,“智慧旅游”的概念就是在这种 条件下应运而生的。所谓智慧旅游就是依靠现代信息技术,将各种旅游信息资源集中处理,为游客提供定制化、个性化的服务;为景区管理人员提供智能化的管理平台和旅游宣传。智慧旅游导览系统依托开放的旅游信息资源,通过后台数据将现有的旅游信息资源进行集中梳理,游客利用移动终端就可以根据自己的需求享受到更智能更高效的优质旅游服务。智慧旅游系统将新兴信息技术、旅游资源和社会资源相结合==的形式将是旅游业的一次重要变革,将是引领服务信息化的新进展。
第一章 绪论
1.1 研究工作的背景与意义
伴随着国民经济水平的逐步提升,人们越来越注重精神文明的建设,旅游业已经发展成为最大的产业之一。不仅如此,旅游业的全球化趋势也愈加明显,旅游业正在逐渐融合多个产业,所以旅游业也成为一个高综合性的产业。但是,过快的发展也将目前的旅游现状问题暴露无遗,旅游方式单一、基础设施不全、缺乏综合性的管理和市场的无序竞争都制约着旅游产业的发展,如何克服这些问题形成一套完整的旅游系统一直困扰着众多旅游从业者。旅游资源是旅游业的核心,旅游资源不仅仅是指旅游设施和现有的物质资源,更多的是旅游服务,包括交通、宣传、导游等多种服务,正是旅游资源吸引着广大游客外出旅游。充分合理利用旅游资源是旅游业长期发展的战略目标,智慧旅游系统的概念正是在这种背景下提出,在信息技术如此发达的今天,将成熟的信息处理技术渗透到旅游产业中,利用互联网的媒介,形成旅游资源信息化、数字化,对旅游业的下一步发展至关重要。
所谓智慧旅游,实际上就是诸如物联网、云计算等信息处理技术在旅游产业上的应用,它将旅游业的现有资源与信息技术相结合,形成一种全新的旅游形态。智慧旅游系统基于智能手机 App,通过后台服务器的数据处理,为游客用户提供定制化、个性化的功能服务,给游客带来更好的旅游体验;同时景区管理人员只需要通过管理平台就能实现景区的管理、宣传等操作,经过游客信息的分析还能了解游客 的来源和发展趋势。可以说智慧旅游将会是旅游产业的技术革新,将会带给整个旅游产业第二次发展。 智慧旅游导览系统基于移动互联网,在移动生活已经成为了人们的普遍生活方式,借助联网的飞速发展,充分利用网络资源优势,将旅游资源最大化的集中,既能避免资源的浪费也符合用户的操作。因此在这种背景条件下才有了开发出一套智慧旅游导览系统的动力,主要体现在以下几个方面:
1) 旅游业的飞速发展,它给了智慧旅游导览系统一个完美的发展平台,它提供了其他行业领域无法相比的发展前景。
2) 已经成熟的信息处理技术,智慧旅游将物联网、云计算等信息技术运用在旅游产业上得益于信息科技的技术积累。
3) 手机、智能手表、手环等移动终端的普及,手机早已成为人们赖以生活的一部分,无论在移动支付、网上购物等各个领域人们也是越来越习惯在手机上完成这些事情。本系统基于 Android 智能手机平台能更好的发挥移动终端的优势,同时也符合用户的操作习惯和时代潮流。
4) 旅游信息化的发展趋势,经济全球化和信息资源的共享已逐渐渗透到各种传统行业中,加速建设旅游信息化是实现智慧旅游乃至智慧地球的重要途径。
5) 游客的个性化需求,传统的人工旅游服务早就难以满足游客对于旅游体验的需求,使用智慧旅游导览系统向游客提供定制化和智能化的旅游服务能够迅速提升景区的旅游服务质量。
1.2 智慧旅游导览系统的国内外研究历史与现状
智慧地球的概念最早是由 IBM(International Business Machines Corporation,国 际商业机器公司)公司的首席执行官提出,智慧就是利用新一代信息处理技术改变传统的交互方式。随着这一概念的提出,智慧城市、智慧交通、智慧旅游等相继产生。
虽然概念提出时间不长,但智慧旅游还是在全球各地有了迅猛的发展,尤其在欧美地区已经建立起了多个相关的项目,正在形成一套新的旅游商业模式。美国的虚拟旅游网站,用户足不出户就能享受到与现实同样的旅游感受;2005 年由美国 Steamboat 滑雪场推出了一套RFID(Radio Frequency Identification,射频识别)定位装置反馈系统,它具有定位、滑雪路线推荐等多种功能;同年韩国也开发了“I Tour Seoul”应用系统,用户能通过该系统获取到周边旅游信息,包含了交通、购物、酒店等多种生活服务,并且它还提供多种语言支持,为国外游客提供了便利;2009 年英国和德国合作开发了一款智能导游软件,它能为游客提供量身定制的旅游方案,更神奇的是它还使用了VR(Virtual Reality,虚拟现实)技术,让游客用户有种身临其境的感受;其他发达国家如日本、新加坡、德国等都为智慧旅游推出了自己的措施。相比于国外,国内的智慧旅游发展进度相对落后,目前还在第一阶段的试验中, 原因是起步晚和旅游行业的不成熟,直到 2010 年才在江苏省镇江市提出了智慧旅游这一概念,但这并不影响智慧旅游美好的发展前景。
在国家旅游局推出的“金旅工程”、“旅游信息化”等工作的支撑下,我国旅游业已经逐步由传统的人工、纸质管理向电子旅游和数字旅游过渡,在现代信息技术广泛应用的背景下,旅游产业发展要求更高的自由度、更强的个性化、智能的协同化和动态的信息共享,旅游信息化建设呈现智能化、应用多样化发展趋势,现代信息技术和智能化应用已交叉渗透到旅游行业各个领域,全面智慧旅游时代已经来临。预计在2020年左右,我国的智慧旅游发展将进入到成熟期阶段。目前全国范围内已有16个省制定了智慧旅游的发展规划,在北京、南京等地正在开展景区自助导游系统的建设。如河南省的万仙山景区,天津市的“1369”智慧旅游工程和黄山旅游局建立的旅游综合调度中心,该中心包括旅游综合服务平台和电子商务平台两大部分。
目前市面上已经出现了一些比较成熟的智慧旅游解决方案,如浙江卓锐科技股份有限公司创新性地提出了“一云多屏、多屏合一”的建设理念,它将云计算、虚拟现实和三维实景地图等新兴技术整合在一起,为旅游行业提供了一套集规划设计、系统开发、运营管理和市场推广于一身的一体化、全套化、信息化的解决方案。上海汇联皆景信息科技有限公司推出的景旅通作为智慧旅游的推广产品,主要面向景区管理企业和监管部门,为他们提供了包括智慧管理、智慧营销和智慧服务的系统化解决方案。
总的来说智慧旅游的发展还在起步阶段,虽然已近有不少的成熟旅游产品和解决方案但还在规模上还有所欠缺,如果能将各个景区的旅游资源统一整合,达到资源共享、共同开发,智慧旅游的覆盖范围将会更广泛,整个旅游产业也都会发生颠覆性的变化。
第二章 相关技术
系统的基本组成部分包括以JavaEE体系结构为中心的服务端以及 Android 手 机客户端。项目中具体包括的知识有 SSH 框架、MySQL 与 SQLite 数据库、移动 GIS(Geographic Information System)、地图定位、JSON、XML(Extensible Markup Language, 可扩展标记语言)、Apache HttpClient、图片的异步加载等。
2.1 JavaEE 体系结构
本系统主体服务器是以 JavaEE 的分层结构构成的,细致划分为视图层、业务逻辑层、控制层以及 DAO(Data Access Object,数据库访问对象)层。为了避免客户 端与数据库之间存在直接接触,所以建立了中间层次,将其隔离开,所以其中业务规则、数据访问等工作就处于中间位置。为了将控制层与业务逻辑层之间的联系延伸,所以中间层应用Struts2+Sping4+Hibernate4 的方式,其中又可细分为:控制器层,即 MVC(Model View Controller)中的“C”(Controller,控制器),是表现层与业务逻辑层之间的传递与接触的媒介,实现两者的交流与沟通,可以对业务逻辑层进行协调,还可以使得业务数据借助表现层得以清楚展示。MVC框架对现阶段较为普遍的Struts2加以利用。 Service 层(业务逻辑层),判断是否实现了业务逻辑,对DAO进行包装调整。DAO层(数据访问对象层),使得对象间获得了较为长远的联系,对相关数据操作增、删、改、查的过程加以优化。Domain Object层(持久化对象层),对实体关系下的映射工具进行利用使得研 究对象变为关系型数据库中的数据,以保证数据库操作面向对象式展开。
2.2 集成框架
SSH为 struts+spring+hibernate 是现阶段普遍使用的进行应用程序JAVA Web 开源的一种框架。根据职能的不同可以把集成SSH框架进行细致划分,具体可以划分成四层,具体为表示层、业务逻辑层、数据持久层以及域模块层,如此细致的划分,还可以 将人们心中的Web应用程序的研发尽快提上日程,这一程序包括各方面的优势, 即结构清晰、较好的可复用性、维护较为便利。其中,整体基础框架采用 Struts,分离开存在于 MVC 里的各个量分,Struts 框架的模型中,对跳转业务进行控制时,
可以对Hibernate框架进行利用以保证稳固性,管理采用 Spring,进行 struts 和 hibernate的管理。具体方法如下所示,在根据对象需求所得的分析方式提出建模方面的意见以及建议,其中,这些全都是基于Java对象塑造的成功与否。然后就是对最为基础的接口DAO进行编写,以完成 Hibernate的DAO实现的给出,对 Hibernate 架构实现的 DAO 类进行利用以完成数据库和Java类相关访问和跳转,最后管理使用Spring,完成对struts和hibernate的管理。
2.2.1 Struts MVC
可以说是 Struts 的设计源头,它本质上并没昂贵,它仅仅是一个 servlet,在 MVC 设计模式中,Struts 作为控制器(Controller)来建立模型与视图的数据之间的协同发展。Struts 2是Struts 的下一代产品,其有效利用资源,综合了Struts 1和 WebWork的技术基础上,并另外添加了Struts 1的体系结构。Struts 2 以 WebWork为核心,通过拦截器可以得知用户的基本信息,由此可知,这可以将Struts2 认为 WebWork的更新产品。虽然时间去白驹过隙般过去,Struts 1到 Struts 2已经出现巨大的差异化,但是相对于WebWork,Struts 2的变化很小。
2.2.2 Spring
Spring 是一个开源框架,它由Rod Johnson创建。它的创建来源于企业应用开发功能难以突破发展而来。一般情况下,为了完美的保障EJB本应完成的任务时, Spring使用基本的JavaBean来完成。但是,运用 Spring 的范围并不仅仅是开发服务器这一点,除此还会对可测试性、简单性以及松耦合性具备一定影响,Spring 对任何的 Java 应用来说均起到积极作用。Spring是对反转(Inversion of Control,简称IOC)和面向切面(Aspect Oriented Programming,简称AOP)进行控制的重量级较轻的容器框架。对反转进行控制,或许相对而言较为陌生,简而言之,即 Spring 为了增强对松耦合性的能力而借助的一种控制反转(IOC)的技术。当使用 IC 后,两个对象之间的关系如果是相互依存的话,那么它们的传递方式是被动的,并不会通过自身努力来去寻找自己的另一个相互补充的对象。Spring 为切面编程提供充分的拥护,开发时,可以一定程度上应用分离应用的业务逻辑与系统级服务(例如审计和事务管理)。
2.2.3 Hibernate
Hibernate 属于开放源代码的对象关系映射框架,对于 POJO(Plain Ordinary Java Object,简单的Java 对象)与数据库来说,它是二者之间关系的纽带,它还有封装简单JDBC 对象的能力,它能够建立与表之间的映射关系,是一个可以完全由自己完成的ORM(Object Relational Mapping,对象关系映射)框架,hibernate 是生成SQL 语句的对象框架,根据不同的指令完成自动生成SQL(Structured Query Language,结构化查询语言)语句,Hibernate 让程序员更专注于业务逻辑的实现而不是数据和对象的封装。可以说 Hibernate 简化了Java 程序员的工作,他们可以利用这一点,根据自己的需要,运用对象编程思维对数据库进行作用。Hibernate 可以应用的范围也十分广泛,对于各种不同的JDBC场所都能够应用,不管是Java的客户端程序还是Servlet/JSP 的 Web 应用,都可以发挥它的作用效果,在数据库发展的过程中,Hibernate在应用EJB(Enterprise JavaBean, sun 的JavaEE 服务器端组件)的J2EE 架构中完成取代CMP(Container-Managed Persistence,委托容器管理的永续性)的工作,可以说是一个里程碑式的成果。
2.3.3 SQLite数据库
SQLite 是支持大部分SQL92标准,是一款很轻量级的关系数据库系统,SQLite 的主要应用场景有小型桌面软件的数据库和作为手机应用的数据库。使用 SQLite 时,没有中间的服务器进程,不需要进程来启动、停止或配置,且SQLite不采用 其他大多数SQL数据库引擎作为单独的服务器进程,完成后发请求到服务器以及接收查询结果工作,被程序使用内部进程通信(典型的是TCP/IP),这种工作方式。SQLite 访问数据库程序时直接从磁盘上的数据库文件读写且SQLite在使用前不需 要安装设置。想使用 SQLite的全部功能一般情况下只需要带上一个dll即可。
2.3.4 WebService
Web service 平台具有独立的、低耦合性质的、具有有编程能力的 web 应用程序,它可以利用相对宽松的XML(标准通用标记语言下的一个子集)标准对应用程序进行阐述、表达、提出、配置与平衡等工作。所谓的Web Service 技术是指在不借助外界辅助类的机器条件下,可以相互间进行数据传输,它的使用可以不用受到限制。据了解目前使用到Web Service 技术的领域较为广泛,而且使用还技术进行数据传输时不会受到应用类型、语言类型、平台以及内部协议的限制, 都可以突破障碍完成交换数据的任务。Web Service 还具有自描述、自包含的可用网络模的服务,部分企业使用它完成具体的业务。Web Service 对企业没有特殊的完全,企业可以非常容易的将此技术引进到企业中,可以为企业减少了应用接口的花费。Web Service 为在一定程度上促进了企业各部 门之间的建议与沟通,为企业提供了一个较为完整的工作机制。
Web服务中被广泛应用到的技术包括:1. TCP/IP:无限制网络协议,供所有类型的设备使用 2. HTML(标准通用标记语言下的一个应用):代表用户界面,数据显示需要 借助 HTML 标签3. .NET: 不同程序之间的数据传输和共享 4. Java:程序编程语言,不受平台类型的限制 5. XML(标准通用标记语言下的一个子集):被用于程序中的数据表达语言,需要借助 Veb 传输目前我国开发的计算机应用技术普遍具有开放性和跨平台性,Web services 技 术同样就有这两种性质。Web Service 是Web 应用程序的一个分支,主要负责程序之间的关系处理工作。Veb 程序中每一分支都负责不同的工作,企业一旦部署Veb程,其他 Web Service 应用程序都可供企业使用。此外 Web Service 的结构构造成分布式,更符合当今企业的需要。
2.3.5 JSON
目前 Android客户端与服务器通信传递数据所采用的是JSON 技术,并主要负责 Android 客户端的各类数据传输。JSON 的全称为 JavaScript Object Notation,它是JavaScript 对象符号,是目前最常用的一种数据交换格式。JSON的数据交换格式适用的范围较为广泛,可以适合人来读/写,也适合计算机本身解析和生成。JSON 在早期只被用于是JavaScript语言的数据交换格式,在后期的技术发展中最后形成了一种与不受语言限制的数 据交换格式,并与XML的功能相似。JSON 与 C 的编程语言相似,目前被各大网站广泛使用,其中包括 C、C++、C#、Java、JavaScript、Perl、Python 等语言编程。
2.3.6 HTML
HTML是用来描述网页的一种语言。HTML是一种文本标记语言,标准通用标记语言下的一个应用。“超文本”指的就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。超级文本标记语言是标准通用标记语言下的一个应用,也 是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容(如:文字如何处理,画面如何安排,图片如何显示等)。浏览器按顺序阅读网页文件,然后根据标记符解释和显示其标记的内容,对书写出错的标记将不指出其错误,且不停止其解释执行过程,编制者只能通过显示效果来分析出错原因和出错部位。但需要注意的是,对于不同的浏览器,对同一标记符可能会有不 完全相同的解释,因而可能会有不同的显示效果。
其主要特点如下:
1. 简易性:超级文本标记语言主要利用超集系统,因此方便客户使用。
2. 可扩展性:超级文本标记语言可以扩展到其他领域,提升标记符号的标准,让系统能够正常运行,平稳拓展,超级文本采集元素的方式用语言进行标记。
3.平台无关联:每个人的计算机都个不相同,但总的来说 MAC 使用者还是很多的。随着标记系统的产生,让万维网的发展非常迅猛,因为超级文本的发展空间 非常大。
4.通用性:大多数网络系统的语言都是覆盖面广的网络语言。比如 HTML。网页制作的时候可以进行复杂操作,将图片和文字结合在一起。而且网络页面是公开可见的,任何人在任何时候都可以进行浏览,对浏览器的规格没有硬性要求。
2.3.7 移动 GIS
地理信息系统(Geographic Information System 或 Geo-Information system, GIS)又叫做“地学信息系统”。通过计算机的计算和统计,能够对大气层进行空间 采集信息。这个系统对于地理是非常重要的,能够对大部分地理环境甚至于整个地 球都可以进行数据的分析,并且自行运算。自主的采集信息,储存信息,是一个高 端技术系统。 GIS 也是通过计算机为核心进行工作的系统。可以将一切事物进行图像分析, 地球上空间信息采集并且转化成数据处理。这样一来,如果和地图整合在一起,提 供精确的图像,两者结合进行数据库功能的整合会更加强大。GIS 系统能够进行定位。系统中的主要核心就是通过移动互联网,那么系统的 终端是手机或者电脑,通过卫星定位系统,进行定位。相比较于之前,该系统已经 进行改良,通过手机系统进行移动化的定位。人们对它的需求也越来越大,因为该系统的终端是手机,比较具有普遍性。互联网在当今社会发展的极为迅速,人们的生活越来越离不开互联网。不仅在研究领域,在普通人的日常生活中,科技也是不可或缺的。移动 GIS对人们来说就是日常的购物,打车等小事上。
2.4 开发工具
2.4.1 MyEclipse
MyEclipse 企业级工作平台(MyEclipseEnterprise Workbench ,简称 MyEclipse) 是对 EclipseIDE 的扩展,用这个系统进行大数据的开发。优化 JavaEE 等一些系统, 还丰富了整体的环境,在对数据的整合,调试上更加便捷。 MyEclipse 这个插件功能十分强大,开发出著名的 Java, J2EE 的 Eclipse 系统, 他的应用领域十分宽泛,在开发源产品上也有不错的成果。MyEclipse 目前支持Java Servlet、JSP、JSF、Struts、Spring、Hibernate、EJB3、JDBC 等系统。