APP下载

LBS移动社交资源共享平台的设计与实现*

2013-09-07陈月峰李炳泉彭凌西谢冬青钟秀玉

电子技术应用 2013年9期
关键词:服务器端控件客户端

陈月峰,李炳泉,彭凌西,谢冬青,钟秀玉

(1.广东海洋大学 信息学院,广东 湛江 524088;2.广州大学 计算机科学与教育软件学院,广东 广州 510006;3.广东嘉应学院 计算机学院,广东 梅州 514015)

当前移动设备上的传统即时通信软件(如QQ、MSN等)是基于TCP协议的即时通信软件,已难以满足个性化的社交需求。随着GPS(Global Position System)系统的普及和移动互联网的高速发展,基于地理位置的服务LBS(Location Based Service)式社交成为研究智能手机应用的热点。LBS是指移动网络通过GPS技术和电子地图平台的支持来获取移动终端用户的位置信息,为终端用户提供相应服务的一种增值业务[1]。参考文献[2]研究了匿名LBS的使用,参考文献[3]讨论了LBS应用的安全技术,参考文献[4]提出一种基于Web服务技术构建LBS的体系结构。但是目前国内LBS仅在移动互联网、社交网络和电子商务的单独应用较多,因此研究这三者的结合,是目前IT技术科研应用的重要领域,同时也将带来巨大的经济和社会效益。LBS移动社交资源共享SMSRL(Sharing Mobile Sociality Resource Based on LBS)平台正是利用上述技术,完成一些即时性的实际社交活动,使单纯的网络信息交互,变成立体化的人际式交互。

1 SMSRL平台概述

SMSRL平台是Android手机上开发一个LBS交友应用程序,其功能促进了用户的社交发展。该平台利用Android的GPS定位数据,结合百度地图开放API与极光推送API,使移动用户之间,特别是附近的用户之间实现更有价值的社交活动,如帮助完成某些任务、与附近的好友聊天等。

SMSRL平台的开发严格遵循软件工程的原则,开发分为如下步骤:

(1)需求分析;(2)设计客户端UI;(3)设计数据存储,创建数据库和表;(4)设计服务器端与客户端交互;(5)实现客户端功能界面与服务器端的逻辑处理;(6)客户端程序打包、签名并发布。

2 SMSRL平台需求分析

SMSRL平台通过手机定位技术,认识了身边的有缘人,可与熟悉的或陌生的朋友打招呼、聊天、分享位置等信息。SMSRL的功能结构图如图1所示,主要功能包括:任务管理(包括发布任务、我的任务管理、附近任务列表等)、好友的管理(包括显示好友和自己的最新动态信息、查找附近好友、聊天)及对系统、任务的设置。

SMSRL的主要参与者包括发布者和搜索者,涉及的主要用例有∶发布任务、状态管理、搜索任务、任务竞标等,系统用例图如图2所示。

图2 系统用例图

3 SMSRL平台设计

3.1 架构设计

Andriod是目前流行的智能手机终端操作系统和移动应用开发平台,由操作系统、中间件、用户界面和应用软件组成,是一个开放而完整的移动“软件栈”[5]。SMSRL平台的设计借鉴了参考文献[6-9],其设计思路是:利用Android平台的GPS定位模块提供位置信息,利用极光推送API实现消息推送,调用百度地图API实现地图描绘,利用Android应用程序框架实现网络通信的功能。客户端点击界面产生触屏事件,发送请求给监听Service服务类,Service处理请求后调用HTTPClien组装请求URL,发送并异步接收数据刷新界面。服务器端Strust2框架接收到URL请求调用对应Action处理数据,Action再调用Hibernate做数据持久化,按照请求调用推送框架,组装推送消息,实现实体类推送。

3.2 SMSRL平台数据库设计

SMSRL平台涉及的实体主要有用户、活动、好友和任务,这些实体关联又产生了活动参与表、用户参与表、在线用户列表等。同时为了提高存取速度,将用户、活动、好友和任务实体的相关图片存放到相应的图片表中。服务器端数据库模型如图3所示。

图3 数据库模型

3.3 MSRL平台的关键技术

3.3.1 服务器端与客户端交互协议设计

Android客户端的联网协议采用Http的方式,而由于Android内部已经集成了Apache Http这个类,所以本设计采用了HttpClient的方式做Http连接。自定义Http-Client类内部采用单例模式获取HttpClient对象,发起Post请求。而每一种消息经处理后返回Json格式字符串,并且将其实例化为对应的消息体对象,Entity为统一的消息接口,将请求返回的输入流传进,返回以UTF-8编码的Sring类型对象。获得返回值之后,在MyService作处理,并通过Android的Handle方式异步刷新UI作出反应。

3.3.2 异步加载最新信息的设计

由于Android自带的Listview显示风格单调,而且不具备下拉刷新与上推加载的功能,本平台设计并实现了比较常用的下拉刷新异步加载图片的ListView控件。在列表显示界面中,可以按住列表项向下拖动加载最新消息,在列表最后的一项,通过向上拖动或者点击加载更多消息,并伴随加载动画。设计的XListView控件继承了Android平台的ListView,其相应的类图如图4所示。

图4 XListView控件的类图

3.3.3 图像加载功能的实现

(1)图片获取

由于Android的文件存储于网络,因而使用异步加载的方式来显示控件可以给用户带来更好的体验。在Android应用中,如果UI线程5 s内没响应,就会抛出无响应异常,在远程获取较大图片资源时,这种异常很容易导致应用失败。要避免这种问题的产生,将启动一个新的线程来获取资源,完成后通过Handler机制发送消息,并在UI线程中处理消息,从而达到在异步线程中获取图片的效果。

(2)图片保存

在每次获取图片资源时,都要重新进行远程下载,占用内存太多,而且加载速度慢,特别是较大的图片资源,甚至会导致内存溢出。为了提高加载速度、节省流量,将图片资源保存在本地手机的SDCard上,需要时可直接从SDCard读取。SDCard空间毕竟有限,因此采用最近最久未使用(LRU)算法,当空间不足时,根据LRU规则删除一些最近没有被用户使用的资源即可。

利用Android通用框架,结合百度地图与极光推送的开放API,实现了LBS社交资源共享平台。在系统的设计中充分考虑了Android系统的易移植性、高销量等优点,集中使用了Android系统的各接口API模块,特别是异步加载最新信息和图片资源下载的设计和实现,使系统的运行效率有了较大的提升。该平台的广泛应用,彻底加强了社交网络的真实影响。

[1]李海燕,张岩.移动通信网络的移动台定位技术及应用[J].邮电设计技术,2006(3)∶27-34.

[2]MARCP G,DIRK G.Anonymous usage of location-based services through spatial and temporal cloaking[C].International Conference on Mobile Systems,Applications,and Services-MobiSys,2003.

[3]Yang Jie,Chen Yingying,SANJAY M,et al.Securing mobile location-based services through position verification leveraging key distribution[C].Wireless Communications and Networking,IEEE Conference-WCNC,2012.

[4]周脚根,边馥苓.一种基于位置的移动服务系统的设计与实现[J].武汉大学学报(信息科学版),2006,31(4)∶352-355.

[5]姚昱曼,刘卫国.Andriod的架构与应用开发研究[J].计算机系统应用,2008(11)∶110-112.

[6]张志清.基于Android的移动社交产品客户端设计与实现[D].北京∶北京交通大学,2012.

[7]刘卜.移动社交网络平台的研究与实现[D].北京∶北京邮电大学,2011.

[8]许颖,魏峰远.移动GIS关键技术及开发模式探讨[J].测绘与空间地理信息,2008,31(4)∶45-47.

[9]罗英伟,黄宝琦,汪小林,等.轻量级WebGIS系统PKGML[J].计算机辅助设计与图形学学报,2005,17(04)∶852-861.

猜你喜欢

服务器端控件客户端
基于.net的用户定义验证控件的应用分析
Linux环境下基于Socket的数据传输软件设计
如何看待传统媒体新闻客户端的“断舍离”?
关于.net控件数组的探讨
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
浅析异步通信层的架构在ASP.NET 程序中的应用
基于Qt的安全即时通讯软件服务器端设计
基于C/S架构的嵌入式监控组态外设扩展机制研究与应用