基于地理位置的移动社交网
一、应用综述:
随着智力手机的发展,智能手机的功能越来越强大,具有了wifi等计算机才具有的功能。从MTK等简单操作系统演变成为了Android、ios等多种高级操作系统。并可以支持开发者开发各种应用软件,从这个层次上说,手机已经成为了移动式电脑。互联网能够拉近人与人之间的距离。各种社交网络已经成为人们生活中不可缺少的部分,比如人们熟悉的人人网、FaceBook等等。
我们在Android平台实现了一个基于地理位置的移动社交网Shining,它不同于传统意义上的社交网,而是传统社交网的一个扩展。它可以根据智能手机自身的定位获取手机持有者的当前位置,产生相关的社交圈,简单的说就是手机持有者交流的对象是在同一个地理位置的人。它的新颖之处在于根据手机这种刚刚迈入互联网大军的移动设备的新特点,使人们之间的距离更近,信息比过去更加准确及时。
二、功能详述
当人们来到一个新的环境,通过wifi或者3G网络连上Internet,即可以使用我们的软件。本软件根据当前用户的位置给用户一个位置的选择。之所有有位置选择,是因为用户所在的位置可能被多个位置所包括。比如在中国科技大学苏州研究院的嵌入式系统实验室里,你的位置选择可能包括中国科技大学苏州研究院、嵌入式系统实验室。
选择完地理位置用户还需要选择一个感兴趣的小组。因为在同一个位置,用户对信息的需求是不同的。比如在一个超市里,有个用户对打折的产品感兴趣,有的用户对食品感兴趣,根据不用的需求,用户可以加入不同的小组,观看组内广播的信息。信息是多方面的,包括文字信息,视频,音频等。
每个用户还可以对别人的信息进行评论,或者广播新的信息,在同一个小组内的用户都可以收到用户发送的 信息。这样大家可以对同一个感兴趣的话题展开讨论,并可以上传视频、音频、图像等多方面的内容。这种社交方式是一种崭新的网络应用方式,是手机通过自身的信息反馈给服务器,服务器定制信息给用户的一种新的只能用于移动设备的应用模式。
本应用的设计不仅仅是一个移动社交,而且也是一个很好的商业系统和公共服务系统。商家可以在地点中申请固定的组,发布一些商品信息。在超市和旅游场所等公共场所发布促销信息等。用户在一个陌生的地方也可以快速了解食品店和酒店等信息。最重要的用户可以对组内的信息进行评论,分享自己的感受和经验等。
三、技术难点
移动设备的崭新的应用模式给服务器带来了巨大的挑战,传统的数据处理方式已经无法满足这种应用。技术难点主要包括:
(1)服务器需要给不同的用户反馈不同的信息,而不是传统的所有用户都一样的模式。比如在一个分辨率比较低的手机终端,用户不会希望得到一张高清图片,因为一方面手机无法显示这种高清效果,另一方面带来了手机的通讯流量,因此,图片的分辨率高低等都需要自适应,就象现在的优库网,可以根据用户网络的情况自适应视频的清晰度一样,与它不同的是我们的应用的难度会更高。
(2)信息的及时性很高,数据的响应速度要求很苛刻,服务器需要在短时间内处理大量的数据。信息的及时性是手机等移动设备的特点,点对点的传输数据可以很及时。在我们的应用中,由于上面所叙述的第一个特点,我们不仅需要传输数据,更重要的是要将上传的数据进行处理,然后反馈给用户,由于数据可能是大量的并且是多样化的,这样必然会对服务器的要求非常苛刻。
(3)本应用是基于地理位置的应用,对定位的准确性要求很高,所以我们采用了多方面的定位手段,并将这些手段综合处理得到用户所在的相对精确的地理位置信息。比如GPS信息、wifi以及以后物联网的发展用到的RFID信息等等。对位置的把握将会是前所未有的。
(4)用户上传的数据是多样化的,服务器反馈给用户的信息是自适应的,如何高效的处理数据正是本应用的难点之一。大量的流式数据的处理的准备性和稳定性对系统的要求非常高。文件处理采用XCoding技术,手机用户可以得到满足自身需要的信息。
四、系统架构
本系统在后台用Linux+apache+tomcat+hadoop+hbase的架构。用多台装有linux的服务器作为后端,在集群上配置了apache + tomcat 的服务器。系统的架构如下图所示:
数据保存于hbase中,服务器每过一个时间段会运行一次,用于处理此段时间用户上传的流式数据信息。数据的处理方式是将数据保存在hbase中,运行MapReduce任务执行。由于hadoop自身的性能限制,我们的系统使用的是能够适应我们应用的hadoop修改版本。本应用的优势在于数据不是简单的接收和发送,而是需要经过后台高速的处理,然后给于用户他们希望得到的最优的数据。