毕业设计(论文)开题报告
题 目
|
基于LBS的兴趣社交平台-服务端
|
学 院
|
计算机学院
|
专 业
|
网络工程
|
姓 名
|
|
班 级
|
|
学 号
|
|
指导教师
|
|
一、综述本课题国内外研究动态,说明选题的依据和意义
1.1 LBS简介及发展状况
基于位置的服务(Location Based Service,LBS),它是通过电信移动运营商的无线电通讯网络(如GSM网、CDMA网)或外部定位方式(如GPS)获取移动终端用户的位置信息(地理坐标,或大地坐标),在GIS(Geographic Information System,地理信息系统)平台的支持下,为用户提供相应服务的一种增值业务。它包括两层含义:首先是确定移动设备或用户所在的地理位置;其次是提供与位置相关的各类信息服务。意指与定位相关的各类服务系统,简称"定位服务",另外一种叫法为MPS-Mobile Position Services, 也称为"移动定位服务"系统[1]。
美国:Sprint PCS和Verizon分别在2001年10月和2001年12月推出了基于GPSONE技术的定位业务,并且通过该技术来满足FCC对E911第二阶段的要求。
日本:2001年4月,日本知名保安公司SECOM成功推出了第一个具备GPSONE技术能实现追踪功能的设备。
韩国:在位置服务(LBS)业务创新方面,走在世界最前端的是韩国移动运营商。KTF于2002年2月利用GPSONE技术成为韩国首家在全国范围内通过移动通信网络向用户提供商用移动定位业务的公司。
加拿大:Bell移动公司可谓LBS业务的市场领袖,率先推出了基于位置的娱乐、信息、求助等服务,2003年12月,Bell移动的MyFinder业务已占尽市场先机。2004年9月,Bell移动发布全球首款基于GPS的移动游戏swordfish,利用移动定位技术,把地球微缩成了一个可测量的鱼塘。
国内:从中国的LBS发展来看,可以说几个阶段,第一个阶段就是说2001年到2003年移动和联通分别推出了定位服务,移动的定位服务体现在准备移动网卡提供定点的位置服务,联通主要是定位之星,包括定位和信息的综合服务,中国联通它的深度是比较高的,可以看到两个运营商的定位服务都是比较重视的,而且竞争也是比较激烈的。中国联通推出定位之星,移动推出关爱之星,跟踪性的一种服务,实际上从最近来看,可以说运营商对于LBS的推动更加提速,而且已经纳入到移动运营商整个移动全球3G规划里,比较典型的就是移动推出的,目前推的手段比较单调是客户端,然后智能手机,中国联通推的是手机导航,就是推出的这种综合服务,实际上从三个围度来说,第一个是定点的服务,然后是信息服务,最终是一个导航服务,运营商逐步在推广LBS的业务[2]。
1.2 选题的依据和意义
随着智能手机的不断进步,社交网络的发展也出现了新的变化。新型社交网络不再像Facebook、微信那样依靠熟人构建自己的人际圈,而是基于地理位置发现身边兴趣相投者,接着构建自己的社交网络。一个基于位置的用户关系,也是手机所独有的功能特点。基于用户当前的位置信息,根据附近出没人群的感兴趣的活动,将一批有相同兴趣爱好的用户在线上集合在一起,然后由用户自己组织线下的活动,这就是基于地理位置的兴趣社交。因为是附近用户、且切入点是用户的兴趣,所以使之可靠性、成功率更高[3]。
二、研究的基本内容,拟解决的主要问题:
2.1研究的基本内容
实现一个移动应用的服务器端,分为用户模块、活动模块、评论模块、消息模块,用户可以注册、登录,并在平台上发布活动,拉进群聊,至于线下的活动又用户自己组织。根据交互图编写请求接口API文档,画出E-R图,在根据E-R图设计数据库,实现业务编码以实现软件功能。
用户模块:
(1)手机、微博、QQ注册和登录;
(2)获取和设置用户个人信息;
(3)设置密码、忘记密码;
(4)用户之间私聊、群聊;
活动模块:
(1)创建活动;
(2)解散活动;
(3)感兴趣活动;
评论模块:
(1)创建评论;
(2)删除评论;
2.2 拟解决的主要问题
(1)用户可以通过手机、微博、QQ进行登录和注册,并可以设置和获取头像、昵称、性别、生日等用户个人信息(隐私信息的传输需加密);
(2)服务器进行登录控制、请求数据的完整性控制,对数据库修改操作一定要处于登录状态,例如发布活动、删除活动、发布评论、删除评论等等;
(3)获取附近活动,根据用户的当前位置以及活动的位置从数据库中筛选距离当前用的最近的活动,并按距离排序返回(算法实现);
(4)实现用户之间私聊、加入同一个活动的用户拉进同一个群聊
(5)提供请求接口API文档供客户端使用
三、研究步骤、方法及措施:
3.1 开发环境与工具
(1)JDK + Eclipse IDE J2EE web应用的集成开发环境;
(2)Navicat for MySQL 连接MySQL数据库服务器可视化Client工具;
(3)MySQL 数据库服务器
(4)Xshell Linux终端
(5)Xftp Ftp终端
(6)Tomcat Servlet/JSP容器(执行Servlet程序引擎)
(7)Nginx 高性能的Web服务器
3.2 数据库设计
用户表:
评论表:
活动表:
3.3 架构设计及相关技术
服务器使用Java语言编写,涉及J2EE的一系列技术,包括Tomcat容器、Servlet/JSP、数据库(MySQL)、JSON、XML等等。使用了许多非常优秀的服务器框架,如第三方框架管理层Spring 3.0、数据持久化层使用了ORM框架Mybatis(前身iBatis)、对传输数据采用了阿里的FastJson、服务器Http请求采用Apache 的commons-httpclient。当然,还会应用到网络方面的技术,有提供OSI体系五大安全服务中的访问控制服务(用户)、数据加密服务(敏感信息加密)、完整性控制服务(数字摘要/MD5)。Http请求主要涉及到AES/MD5加密、Http请求字段优化、参数重构、消息摘要(验证请求数据的完整性)[4]。
3.3.1 架构设计:Spring MVC + Spring + Mybatis
通过Spring IOC统一管理服务器中的所有对象,包括数据源、数据库回话工厂、数据库连接回话、控制层、服务层、数据访问层对象,通过AOP实现对数据库的事务配置。Spring MVC统一接收Http请求,提供拦截器对请求进行预处理,然后分发到对应的Controller(控制层)中处理,Mybatis是一个ORM对象关系映射框架,从软件中的Java Bean的每个属性映射到数据库中表对应的字段,用于实现数据访问层接口,以实现对数据的持久化操作[5]。
控制层(Controller):处理所有的外部请求, 调用Service层处理每个接口对应的业务逻辑。
服务层(Service):处理各种业务逻辑,公控制层调用,配合Spring的事物控制能力实现数据的完整性、操作原子性。
数据访问层(DAO):只定义接口,具体的实现由Mybatis以配置文件的方式实现,该层是提供给Service层实现业务逻辑时对数据库的持久化操作[6]。
3.3.2 相关技术:SQL(MySQL)
结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能[7]。
MySQL是一个跨平台的开源关系型数据库管理系统,目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。随着MySQL的不断成熟,它也逐渐用于更多大规模网站和应用,比如维基百科、Google和Facebook等网站。非常流行的开源软件组合LAMP中的“M”指的就是MySQL[8]。
3.3.3 相关技术:Tomcat + Nginx
Tomcat 是一个Servlet/JSP 容器,Tomcat的Servlet引擎通常与Nginx 、Apache等Web服务器一起工作。除了用于开发过程中的调试以及那些对速度和事务处理只有很小要求的用户,很少会将Tomcat单独作为Web服务器。我将采用Nginx+Tomcat做响应服务器[9]。
一般Nginx作为一个反向代理服务器存在,反向代理方式实际上就是一台负责转发的代理服务器,貌似充当了真正服务器的功能,但实际上并不是,代理服务器只是充当了转发的作用,并且从真正的服务器那里取得返回的数据。这样说,其实nginx完成的就是这样的工作。我们让nginx监听一个端口,譬如80端口,但实际上我们转发给在8080端口的tomcat,由它来处理真正的请求,当请求完成后,tomcat返回,但数据此时没直接返回,而是直接给nginx,由nginx进行返回,这里,我们会以为是nginx进行了处理,但实际上进行处理的是tomcat[10]。
说到上面的方式,也许很多人又会想起来,这样可以把静态文件交由nginx来进行处理。对,很多用到nginx的地方都是作为静态伺服器,这样可以方便缓存那些静态文件,比如CSS,JS,html,htm等文件。
四、研究工作进度:
序号
|
时间
|
内容
|
1
|
第一周
|
阅读文献资料
|
2
|
第二周 至 第三周
|
开题报告
|
3
|
第四周
|
需求分析及架构设计
|
4
|
第五周 至 第七周
|
软件建模,数据库设计
|
5
|
第八周 至 第十一周
|
系统软件实现
|
6
|
第十二周
|
系统调试及完善
|
7
|
第十三周
|
毕业论文撰写,准备答辩
|
五、主要参考文献:
[1] 互动百科. LBS http://www.baike.com/wiki/LBS 2011/05
[2] Richard Ferraro,Murat Aktihanoglu.图灵程序设计丛书:LBS应用开发[Location-
Aware Applications][J].人民邮电出版社,2011-9.12(3):117-120.
[3] 布里泰恩(Jason Brittain),达尔文(Ian F.Darwin),吴豪,刘运成,杨前凤. Tomcat权威指南(第2版)[Tomcat:The Definitive Guide,Second Edition][J]. IEEE CS 2011(1-3): 4-7.
[4] Bruce Eckel. Java编程思想(第4版) [thinking in java][M].北京:人民邮电出版社,2009: 1-3.
[5] Ladd, Seth; Davison, Darren; Devijver, Steven. Expert Spring MVC and Web Flow[J]. China Academic Journal Electronic 2013(02): 185.
[6] Craig Walls. Spring实战(第3版) [Spring in Actiong(Third edition)]
[7] 姜承尧. MySQL技术内幕:InnoDB存储引擎(第2版)[J].机械工业出版社,2008: 1-7.
[8] 唐汉明,翟振兴,关宝军. 深入浅出MySQL 数据库开发 优化与管理维护 第2版[J].电子产品世界,2010(3):10-18.
[9] 陶辉. 深入理解Nginx:模块开发与架构解析 [Understanding Nginx][J]. China New Technologics and Products 2011(17): 42.
[10] 苗泽. Nginx高性能Web服务器详解[J].计算机光盘软件与应用,2011(17):211