刘屏
摘要:目的:设计基于Android平台的移动对象位置查询系统,使系统具有较高的定位成功率和较强的通用性,并能很好地保护用户位置隐私.方法:把GPS定位方式和网络定位方式相结合,利用运营商短信平台自动转发位置信息,使查询方获得移动对象位置,实现移动对象KNN查询并标记对象位置到地图上。结果:通过真实手机平台和真实短信数据进行测试,测试结果表明系统具有较高的定位成功率和较好的通用性,数据规模较大时系统仍然具有较满意的查询效率和实时性。结论:系统能够满足移动通信终端的性能需求。
关键词:Android;移动对象;GPS;Wi-Fi;位置服务
中图分类号:TP391.9 文献标识码:A 文章编号:1009-3044(2015)22-0040-03
1 引言
随着3G网络和智能移动终端的广泛应用,基于位置的服务(location-based services,LBS)得到飞速发展与普及,现已广泛应用在军事、交通、物流、医疗、民生等领域[1]。LBS作为一种重要的信息服务方式,倍受各大运营商重视[2],纷纷投入巨资建平台、健全产业链、拓展应用,希冀借助差异化位置服务维系老用户、发展新用户,提升核心竞争力[3]。3G网络的不断普及使得运营商之间的竞争更趋白热化,位置服务将具备动态3D地图、POI实时更新、实时交通导航等2G时代不具备的特点,被各运营商视为最具发展前景的3G业务。
LBS包含两层意思:确定对象位置与提供与位置相关的信息服务。位置服务对于许多查询请求都至关重要,但现实中的对象位置具有高度变化性,移动对象处于不断运动的过程中,每一时刻的具体位置与采集信息存在一定的偏差,使得获取的数据无法准确表达对象的实际位置。下文就平台定位技术选择、查询系统模块设计、安全策略等关键技术实施进行了论述。
2 位置查询系统结构
本节介绍所研究的移动用户位置查询系统平台的选择、框架的构建、定位技术的选择及在具体平台上的系统实现。
2.1定位技术的选择
定位技术的选择上,通过把基于终端设备的GPS定位技术和基于通信网络的定位技术相结合,以增强系统不同环境条件下的定位成功率。
在室外环境下,如果手机内置GPS芯片,我们可以采用GPS定位技术。GPS定位是目前室外空间使用最为广泛的卫星定位技术,由美国国防部1987年设计研制,起初只用于军事用途。GPS定位技术需要手机接收4颗或4颗以上的GPS卫星信号,同时解调卫星的导航电文,手机利用信号时延得出与各颗卫星的伪距,利用这些信息计算手机的精确位置。采用GPS定位的优势是:可以在全球范围内实现全天候、实时地为用户连续提供精确的位置、速度和时间信息。
通常在室内环境下我们采用基于网络的TDOA定位技术。TDOA定位技术是在已知基站经纬度的条件下,通过测量终端到两个基站的无线信号传播时间差,来计算移动终端到两个基站的距离差,从而得到终端的位置。其优点是响应速度快,约为3s至6s,对环境无特殊要求。
2.2结构设计
本文的位置查询系统可以分为位置服务端和短信服务端两个部分,如图1所示。位置服务端用来在特定环境下选择最佳的定位方式获取当前位置。短信服务端主要用来发送/查询对象当前位置,并对位置信息进行加密和解密处理。
(1)位置服务端:本系统基于Android平台,支持Android 2.3.3及以上系统。手机可通过GPRS或者Wi-Fi连接到网络。默认情况下采用网络定位方式,室外手动设置成GPS定位方式可实现精确定位。系统启动后首先使用GPS或网络方式得到自身位置信息,然后在短消息配置页面设置位置访问权限。当收到他人位置查询请求时,首先判断查询密令是否正确,然后根据客户位置访问权限判断是否给予回复。系统根据联系人回复的位置信息进行距离计算和地图标注,在此基础上实现了KNN查询,可查询距离客户最近的一个或多个联系人。
(2)短信服务端:本系统中联系人的位置数据以短信的方式获取,系统使用点对点的短信业务,客户发送查询指令给查询对象,查询对象以短信方式回复客户对象位置,系统监听位置短信找出KNN标记到地图上。图2所示为一个查询过程。
查询过程如下(以中国移动用户B为例)。
(1)客户A向客户B发出位置查询请求,A通过无线网络发送查询密令至其所在的MSC,MSC根据消息中的短信中心地址,通过七号信令网转发该条短信至用户归属短信中心。短信中心鉴权后向客户B归属HLR查询接客户B所在位置。通过无线网络下发短信到客户B。
(2)客户B收到客户A的查询请求后首先进行鉴权。客户A通过鉴权后,系统以密文方式回复当前位置。客户A收到客户B的位置回复后进行解密并计算彼此距离,并标注客户B的位置到地图上。客户采用上述方式对查询对象集合U1…Un进行位置查询找出KNN。
3 位置查询系统设计
笔者设计的系统主要由定位模块、信息处理、对象管理等几个模块组成。
本系统旨在实时查询某一范围、某段时间内通讯录联系人的当前位置,如在位置A查找5分钟内离我最近的10个联系人。该系统具备以下功能:①用户登录系统后,可选择GPS或网络方式实现自我定位。②用户也可查找自身周边的事物(如附近有确切地标的建筑物和著名景点)。③用户可以通过发送指令的方式查询其他用户位置,当收到其他用户查询指令时也可自动回复用户当前位置。④系统可根据其他用户位置信息计算彼此距离,找出KNN。⑤在地图上标记KNN。
3.1定位模块设计
定位模块的功能是利用GPS或网络方式获取对象位置信息。系统利用GPS和网络方式相获取移动用户位置信息,成功定位后位置信息由Location Manager实例提供给应用程序。Android应用框架提供了Location Manager来支持设备的位置查询。系统中笔者用MainActivity中调用系统函数getSystem Service来获得一个Location Manager的实例,该实例管理一系列位置提供者并负责提供位置信息给应用程序。
3.2消息处理模块设计
信息处理模块的功能是当收到位置查询请求时对当前位置信息进行加密处理后自动回复。
短信接收的时候用一个继承自Service的BackService来在后台连续监听新接收的短信内容,判断是否为位置查询密令。如果是查询密令,则获取当前位置信息并解析成短信内容格式,SMSmanger实现位置加密信息的自动转发(自动转发的短信内容为intent构建时加密过的短信,而非用户的真实位置信息),否则,将不予回复。当收到其他用户位置信息时,对象管理模块通过访问短信数据库,读入位置短信进行解密,然后进行距离计算和地图标注。
3.3对象管理模块设计
对象管理模块的功能是对收到的对象位置信息进行解密,信息解密后根据用户当前位置计算彼此间距离,并以距离为关键字进行插入排序,从而找出KNN,并在地图上标注KNN。
公式1是假设地球为一个正球体时的距离计算公式,并未考虑地球不同经纬度上半径的变化,所以精度不算太高。但是通过实验测试,系统可以满足人们日常生活中查询其他用户位置的需求。为了提高查询效率、降低处理器负载,系统中采用了公式1计算用户与其他用户间的距离。
3.4 安全策略
考虑到系统是以短信的方式查询联系人当前位置,短信业务是一种异步的通信方式。这就给保护客户及联系人的位置信息带来了挑战,因为任何知道查询指令的人都可能通过查询指令获取到联系人的当前位置。所以有必要对用户位置信息进行加密。从而增加陌生人截获用户位置信息的难度。DES、RSA加密法是现今使用最多最为通用的加密方法,但DES加密算法需要把信息分为N组,每组64位,然后对N组信息加密。RSA加密算法产生密钥很麻烦,分组长度太大,为保证安全性,n至少需要600bits以上,这时运算代价很高。考虑到DES和RSA方法过于复杂,轻量级的加密算法更适合文中的系统 。由于手机处理能力有限,为了提高查询效率,降低处理器功耗,XOR加密法更适合该用户位置查询系统。
基本加密过程如下:位置短信发送过程中采用密文发送,笔者利用XOR加密法,分别用经度密钥和纬度密钥分别与位置信息的经纬度取异或作为传递密文,具体加密流程如图3所示,
图4中给出了对位置经度信息(lng:20.59375)的一个加密实例。这样做的目的是避免知道查询密令的陌生人获取到联系人的位置信息,即便陌生人截获了用户位置信息或者破解了查询密令也不能得到用户的真实位置信息。解密时系统用密钥与密文取异或就能得到明文位置信息进行KNN查询。
前文提到联系人位置查询指令可以双方约定,这本身就是一种位置隐私保护策略,正常情况双方的查询密令不可能主动告知第三方,除非有人很希望第三方也知道自己的位置。
4 实验与结果分析
笔者在三星S7562i手机上搭载Android4.0.3系统的平台上实现了该联系人移动位置服务系统。系统采用高通骁龙Snapdragon MSM7227A单核CPU,主频为1GHz,系统运行内存为768MB 。系统工作流程如图5所示。
为了测试系统采用不同定位方式时的定位精度,这里在室外环境下(室内系统采用GPS无法定位)选择A、B、C、D、E五个典型地点分别采用GPS定位和网络定位方式进行定位测试,并把定位结果和精确地标作对比,并作了误差分析,测试结果如下,表1所示为系统采用GPS定位方式时的测试数据,表2所示为系统采用网络定位方式时的测试数据。
5 结束语
笔者基于Android平台,把GPS定位技术和网络定位技术相结合,设计并实现了通用性较强的移动对象位置定位查询系统。在主流的几款机型上做了大量实验对系统性能做了测试,实验结果表明系统在室内外均有很好的定位成功率和较高的KNN查询效率。系统方便实用、操作简单、扩展性强,既可以用于个人日常生活,也可用于出租车、物流公司等相关领域。
参考文献:
[1] 周傲英,杨彬,金澈清,等.基于位置的服务: 架构与进展[J].计算机学报, 2011,34(7):1155-1171.
[2] 肖志辉.移动互联网研究综述[J]. 电信科学,2009,25(10):30-36.
[3] 王春.3G时代位置服务技术研究[J]. 通信技术,2010,43(5):159-161.