马 磊
基于智能解决方案的自助旅游系统①
马 磊
(四川大学锦城学院电子信息工程系, 成都 611731)
基于硬件的物理式“电子导游”设备, 使用不方便且维护困难, 景区设备的出租价格游客不易接受, 受限于硬件安装, 不易升级等问题; 其替代产品, 即目前市场上的通用导航软件, 存在偏远地点信息不全的问题, 不能提供特定景区的特色服务的问题, 以及和原有系统整合等问题. 为了解决前述诸多弊端, 针对某旅游景点的区域范围, 提出一种基于智能手机平台+后端服务的整体解决方案, 提供景区的位置服务、实时导航、景点搜索、旅游组团、线路规划、线路推荐、便捷服务等新型“智慧旅游”的具体实现方法, 设计一个易用、灵活的前端应用App; 同时将云端服务技术与后台服务分层设计相结合, 将景区的传统旅游业务和日常随身携带的智能设备相关联, 并设计了一个汇聚层, 通过消息队列来管理、分发各种分层接口信息, 从而使系统架构的运行效率、后期维护、扩展性得到了极大的保证. 通过具体的工程实践, 验证了该系统的有效性和实际运行效果.
智能手机; 安卓; 智慧旅游; 导航; 定位; 服务器
随着中国经济的高速发展, 旅游业务日益成长为许多工薪阶层的“刚需”, 在线旅游、参团旅游、出海旅游、房车旅游、自驾游等旅游方式正在快速发展. “智慧旅游”[1]的概念应运而生, 成为旅游产业新的发力点, 旅游业必然会因为信息技术的变革以及游客自主旅游的更多需求而发生革命性的变化.
成都大熊猫基地作为全国唯一一个集旅游、休闲和科研于一体的大型公共场所, 在实施“智慧旅游”研究方面有着得天独厚的先天优势, 每年吸引游客达数百万, 是世界观察中国的窗口, 如何让这部分人更通畅的了解熊猫景区, 如何为这部分人提供更优质、便捷的服务, 是整体解决方案需要面对的主要问题.
本文除了提出系统分析、整体架构设计和解决方案外, 还给出了一套具体实现方法, 并经过工程实践, 验证其可行性. 该系统今后可以根据具体使用情况, 由点及面, 推广、扩展到其他景区.
2.1 方案简介
“熊猫基地自助旅游系统”整体解决方案是四川大学锦城学院与成都大熊猫繁育研究中心联合提出的一个面向成都著名景区的“智慧旅游”具体实施方案, 前端移动设备采用Android/IOS智能手机平台进行研发, 后端使用公有云平台服务, 结合自主设计的后端服务架构, 并利用现今普及率非常高的智能手机终端、无处不在的移动互联网、云计算等新技术, 主动感知旅游资源、旅游经济、旅游活动、旅游者意图等方面的信息. 针对物理式“电子导游”和通用导航软件的缺陷和弊端, 在几乎不需要增加硬件设施的前提下, 最大程度地满足人们高品质的旅游需求.
方案综合3G/4G网络通信、GPS导航[2]、手机地图、定位以及智能手机的强大运算能力, 为进入成都大熊猫基地景区的游客提供智能化、个性化的导游服务, 提高熊猫基地景区旅游服务质量, 具备旅游景点解说、规划、导航、定位、通知、门票、购物、自助服务等功能. 方案的总体网络架构如图1所示.
图1 系统总体架构图
2.2 系统功能和框架结构
“熊猫基地自助旅游系统”通过移动互联的方式, 将熊猫基地服务中心与游客联系在一起, 游客可以通过智能手机对景区提供的各种新业务及时浏览, 支持游客在园区内按地形地图实时查询, 实时GPS导航, 特色景点预览, 游览线路推荐, 目的地最优线路规划, 景点智能语音讲解, 大熊猫资讯实时推送, 组团旅游等功能.
为了确保系统的灵活性和可维护性, 设计时增加了后端框架服务, 框架服务为客户端提供统一的标准访问接口, 便于不同终端进行移动互联, 同时也规范了基地服务中心的网络通道, 便于基地原有服务中心与现有终端设备的互联、互通, 兼容了原有系统; 并有效规划了今后的扩展方向, 在协议上保证了日后的扩展空间. 在设计中, Android[3]手机终端用户、IOS手机终端用户、及门户网站属于前端应用, 这些应用需要通过后端服务平台所提供的统一支撑环境, 后端服务平台涵盖Web[4]服务、App服务、网站后台服务以及后端存储平台, 前端、后端整合成为一个完整的系统, 并统一提供对外服务. 系统层次结构如图2所示.
图2 系统组成图
3.1 智能手机功能划分
智能手机[5](Smart Phone)、终端设备随着硬件成本的逐年降低和手机平台的日益完善、强大, 手机操作系统逐步形成了: Symbian、Windows Phone 7、IOS、Android和 BlackBerry OS等手机平台. 在他们之上可以开发各具特色的应用软件, 可以像个人电脑一样在手机上进行软件的自由安装和卸载, 手机应用程序的功能也越来越多, 性能越来越强大.
Android因其自身的开放性、联盟战略和快速更新的技术而逐渐成长为市场的主流, 本方案的智能终端操作系统采用Android开发平台, 实现的各功能模块如下:
(1) 景点预浏览功能模块;
(2) 游览线路查询、线路推荐功能模块;
(3) 目的地最优线路规划功能模块;
(4) 景点智能语音讲解功能模块;
(5) 游客当前位置的动态显示功能模块;
(6) 实时天气播报功能模块;
(7) 路线记录与路线回忆功能模块;
(8) 游客结伴和组团功能模块;
(9) 团队无线交互、聊天功能模块;
(10) 景点动态资讯实时推送功能模块;
(11) 各种便捷服务功能模块;
(12) 后端云平台服务器支撑功能模块;
(13) 无线通信协议功能模块.
3.2 智能手机设计与实现
为保证本系统与原有系统融合, 以及后期扩展和可维护性, 手机客户端与Web服务器、App服务器之间, 均采用HTTP[6](Hyper Text Transfer Protocol)超文本传输协议进行网络连接, 手机客户端的数据大部分来源于后台服务器, 少量数据需存储于手机端, 在没有数据网络的情况下, 支持离线导航, 手机端使用SQLite[7]数据库保存数据, 后台数据库采用SQL Server 2005, Web容器采用Tomcat[8]8.0. 手机开发工具Eclipse 4.2.1, Android 5.0, 界面布局采用Android布局管理器, 结合HTML5[9], 使结构灵活、适应性强, 用户界面友好, 易于使用. 下面是Android开发手机程序的项目展示, 如图3所示.
本文仅以其中的组团功能模块, 进行简要描述, 并对定位的使用原理做基本阐述. 组团功能模块包含创建团队、加入团队和启动团队实时游览和团队聊天子功能模块.
(1) 创建团队
使用者创建团队前, 须注册一个用户名, 注册成功后, 由服务器生成并返回一个唯一的用户Id. 使用者可以使用该Id号, 新建一个团队, 并取一个团队名称. 创建团队手机界面如图4所示.
图3 手机终端开发项目列表
(a)创建新团队 (b)团队列表
图4 创建团队运行界面
(2) 加入团队
使用者可以选择想要加入的团队名称, 向服务器发起请求. 成功后, 服务器下发该团队列表信息, 该团队的各组员收到更新列表后, 自动更新本手机团队列表.
手机客户端与后台服务器的加入团队子模块数据交换过程如图5所示. 假设已建有小组T, 用户A选择T小组, 并申请加入该小组. 首先由用户A发起加入小组请求, 服务器认证通过后, 发送ACK回应消息, 用户A手机端显示加入成功状态, 并向服务器回送成功状态码, 服务器收到后, 更新本地信息列表, 同时通知该小组中其他成员, 接收并刷新加入小组的新成员的信息, 否则向用户A返回失败信息.
(3) 启动团队实时游览
小组内所有组员都发送了启动团队游览命令后, 由服务器端统一判断, 并下达开始游览命令. 此时, 小组内各成员启动各自的自动获取资料线程, 定时向服务器索取小组成员的位置信息, 同时, 将自身位置更新信息上传. 服务器端始终维护各个小组内所有成员的最新位置信息. 如图6所示.
图5 加入团队申请流程示意图
图6 启动实时浏览流程图
(4) 团队聊天
成功启动团队实时游览后, 同在一组内的成员之间可以互发消息, 并可以彼此看到所有小组成员所在的位置. 同样, 由服务器实时更新聊天内容和实时位置信息, 不再赘述, 效果见图7.
(a)团队实时聊天 (b)组员位置实时显示
(5) 定位使用
由于涉及到大量的偏僻地点定位信息, 通用导航软件无法获取, 但是该信息对于特定景区来说, 却是重要景观. 于是专门设计数据采集模块, 用于采集当地信息, 按Json格式存储在后台服务器端, 使用时下载到手机客户端. 采集的部分数据实例如下图8所示.
图8 部分数据采集实例
本文采用通用定位接口和自行采集数据相结合的方法, 解决偏远地点的定位问题. 通用定位、导航接口采用Baidu Map提供的Android Location SDK v6.2.2标准服务(LBS), 结合手机中的GPS芯片, 基站数据, Wi-Fi数据等多种定位方式, 特别适合在郊外空旷处, 进行精确定位的相关应用, 具有出色的定位性能: 定位精度高、覆盖率广、网络定位请求流量小、定位速度快的特点, 定位原理如下图9所示.
图9 定位SDK原理图
4.1 后端整体框架
本解决方案的后端服务器遵循Java EE的MVC设计思想, 开发工具JDK7.0, 使用JSP/Servlet编程, 后台数据库采用SQL Server 2005, 在基于struts2[10]的基本框架下, 进行二次开发、研制.
后端服务包括为手机终端提供Web访问接口, 以及后台管理模块, 提供管理员功能, 权限设置, 用户管理, 系统Log, 游客注册. 对手机终端提供实时资讯推送, 手机App版本更新. 数据接口层负责业务数据上传、下载相关的抽象调用方法; 旅游接口层负责提供包括定位、导航、地图操作、线路规划等业务的抽象调用方法; 汇聚层主要对接口层方法调用进行统一、规范处理. 后端服务框架结构如下图10所示.
图10 后端服务框架结构
4.2 汇聚层设计
汇聚层的主要功能是管理各接口层的消息队列, 处理各类消息, 为各接口层提供统一的标准调用方法, 并负责数据库的汇聚, 方便今后的扩展和更新.
汇聚层的设计, 既可以解析、处理各接口层发来的消息, 也可以兼顾处理原有门户网站的数据信息, 使用工厂设计模式将终端处理和原有系统重组、融合到了一起, 真正实现了调用关系的解耦, 极大方便了今后的扩展. 汇聚层工作原理如图11所示.
图11 汇聚层工作原理
汇聚层的具体实现简述如下: 前端控制器(FC)是实现了Servlet接口的一个控制类, 配置web.xml中的
为了保证数据、业务、控制彻底分离, 本文还设计了前置拦截器和后置拦截器两个实用类, 前置拦截器的作用是将Action接口参数控制翻转, 注入到Action实现类的对象中, 从而完成对该对象的完全控制, 该对象中的方法调用完毕, 将结果转为DTO(Data Transfer Object)数据格式, 交给数据组装模块.
数据组装模块负责将DTO数据放入消息队列处理模块进行加工, 需永久保留的数据直接进入数据库; 需回复客户端的数据则交给后置拦截器处理. 后置拦截器使用代理模式为DTO对象生成动态代理, 完成DTO数据的解析, 并将回复消息交给前端控制器, 返还给客户端.
综上, 一个完整的整体设计方案基本完成. 从手机终端界面设计、流程规划、代码编写、调试、自测, 以及后台服务器和数据库的构思、开发、实施、试运行, 一直到整个系统联试、联调, 历经数月, 最终使整个系统的研发告一段落.
该系统经过前期的初步测试, 已开始着手进行整体部署和小规模范围内的试用, 并将原有系统数据进行了整合, 手机终端已经可以正常的访问后台服务器和原有的门户网站数据, 基本功能包括定位、导航、实时导游、特色景点智能讲解、自助组团、景区便捷服务等已经可以正常使用, 图12是一部分手机运行界面截图.
(a)手机主界面 (b)精品线路选择 (c)各种便捷服务
(d)推荐线路 (e)地图定位信息 (f)服务信息推送
图12 整个系统的部分运行界面
本文通过开发手机App应用程序, 融合后端服务器技术, 实现了一个基于“智慧旅游”的实际应用系统, 为智能手机在解决类似问题中提出了一个比较新颖的解决思路和方法, 并进行了有益的探索和研发工作, 经实地验证、测试, 是可用、可行、合理的; 同时也弥补了市场上现有导航软件或硬件的不足, 解决了一些实际需求.
本系统也有需要完善的地方, 如人员访问量较大时的并发处理能力, 后续的扩展也有进一步优化的空间, 通信性能也有进一步提升的空间, 自定义的MVC框架和Struts2之间的互相融合还有很多可以优化的地方.
1 黄思思.国内智慧旅游研究综述.地理与地理信息科学, 2014,30(2):97–101.
2 贺勇.基于高精细地图的GPS导航方法研究[硕士学位论文].上海:上海交通大学,2015.
3 Cohen R, Wang T. The Android OS//Android Application Development for the IntelPlatform. Apress, 2014: 131–190.
4 O’Neil HF, Perez RS. Web-Based Learning: Theory, Research, and Practice. Routledge, 2013.
5 马志强,蒋晓.基于用户体验的智能手机网站界面设计探讨. 包装工程,2012,33(16):63–65.
6 Fielding R, Reschke J. Hypertext transfer protocol (HTTP/1.1): Message syntax and routing. RFC Editor, RFC 7230, 2014. https://www.rfc-editor.org/rfc/rfc7230.txt.
7 马获蕾,汤海凤.Android 系统中SQLite 数据库的研究.电脑知识与技术:学术交流,2013,9(10):6243–6245.
8 夏庆山.Tomcat与ApacheWeb 服务器的整合.数字化用户, 2013,(27).
9 张玉晴,黄瑾娉.基于 HTML5 的跨平台移动应用关键技术的研究与实现.工业控制计算机,2013,(3):6–58.
10 陆舟.Struts2 技术内幕:深入解析Struts 架构设计与实现原理.北京:机械工业出版社,2012.
Independent Travel System Based on Intelligent Solution
MA Lei
(College of Jincheng, Sichuan University, Chengdu 611731, China)
The hardware-based physical-type “electronic guide” devices is inconvenient and difficult to use and maintain, issues that rental prices for tourists are not easy to accept, system is limited to hardware install, difficulty to upgrade and other problems; their alternative products currently on the market that is common navigation software, there is a problem of incomplete information in remote locations, resorts can not provide specific characteristics of service problems, and legacy systems integration and other issues. In order to solve the aforementioned many drawbacks for a regional tourist attractions, this paper proposes integrated solutions based on smart phone platform + back-end services, providing scenic location services, real-time navigation, search attractions, tourist groups, route planning, route recommendation , the new “intelligent tourism” specific method convenient services, it designs a useful and flexible front-end applications App; while cloud services technology and back-office services layered design combines with the scenic tradition of tourism business and everyday carry perfect correlation smart devices, and designs a distribution layer, through the message queue to manage, distribute various hierarchical interface information so that the operating efficiency of the system architecture, post-maintenance, scalability is greatly guaranteed. Through the specific engineering practice, the validity and effect of the actual operating system is proved.
smart phone; Android; wisdom tourism; navigation; positioning; server
2016-06-17;
2016-07-25
[10.15888/j.cnki.csa.005636]