劉屏
摘要:目的:設(shè)計(jì)基于Android平臺(tái)的移動(dòng)對(duì)象位置查詢(xún)系統(tǒng),使系統(tǒng)具有較高的定位成功率和較強(qiáng)的通用性,并能很好地保護(hù)用戶(hù)位置隱私.方法:把GPS定位方式和網(wǎng)絡(luò)定位方式相結(jié)合,利用運(yùn)營(yíng)商短信平臺(tái)自動(dòng)轉(zhuǎn)發(fā)位置信息,使查詢(xún)方獲得移動(dòng)對(duì)象位置,實(shí)現(xiàn)移動(dòng)對(duì)象KNN查詢(xún)并標(biāo)記對(duì)象位置到地圖上。結(jié)果:通過(guò)真實(shí)手機(jī)平臺(tái)和真實(shí)短信數(shù)據(jù)進(jìn)行測(cè)試,測(cè)試結(jié)果表明系統(tǒng)具有較高的定位成功率和較好的通用性,數(shù)據(jù)規(guī)模較大時(shí)系統(tǒng)仍然具有較滿(mǎn)意的查詢(xún)效率和實(shí)時(shí)性。結(jié)論:系統(tǒng)能夠滿(mǎn)足移動(dòng)通信終端的性能需求。
關(guān)鍵詞:Android;移動(dòng)對(duì)象;GPS;Wi-Fi;位置服務(wù)
中圖分類(lèi)號(hào):TP391.9 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)22-0040-03
1 引言
隨著3G網(wǎng)絡(luò)和智能移動(dòng)終端的廣泛應(yīng)用,基于位置的服務(wù)(location-based services,LBS)得到飛速發(fā)展與普及,現(xiàn)已廣泛應(yīng)用在軍事、交通、物流、醫(yī)療、民生等領(lǐng)域[1]。LBS作為一種重要的信息服務(wù)方式,倍受各大運(yùn)營(yíng)商重視[2],紛紛投入巨資建平臺(tái)、健全產(chǎn)業(yè)鏈、拓展應(yīng)用,希冀借助差異化位置服務(wù)維系老用戶(hù)、發(fā)展新用戶(hù),提升核心競(jìng)爭(zhēng)力[3]。3G網(wǎng)絡(luò)的不斷普及使得運(yùn)營(yíng)商之間的競(jìng)爭(zhēng)更趨白熱化,位置服務(wù)將具備動(dòng)態(tài)3D地圖、POI實(shí)時(shí)更新、實(shí)時(shí)交通導(dǎo)航等2G時(shí)代不具備的特點(diǎn),被各運(yùn)營(yíng)商視為最具發(fā)展前景的3G業(yè)務(wù)。
LBS包含兩層意思:確定對(duì)象位置與提供與位置相關(guān)的信息服務(wù)。位置服務(wù)對(duì)于許多查詢(xún)請(qǐng)求都至關(guān)重要,但現(xiàn)實(shí)中的對(duì)象位置具有高度變化性,移動(dòng)對(duì)象處于不斷運(yùn)動(dòng)的過(guò)程中,每一時(shí)刻的具體位置與采集信息存在一定的偏差,使得獲取的數(shù)據(jù)無(wú)法準(zhǔn)確表達(dá)對(duì)象的實(shí)際位置。下文就平臺(tái)定位技術(shù)選擇、查詢(xún)系統(tǒng)模塊設(shè)計(jì)、安全策略等關(guān)鍵技術(shù)實(shí)施進(jìn)行了論述。
2 位置查詢(xún)系統(tǒng)結(jié)構(gòu)
本節(jié)介紹所研究的移動(dòng)用戶(hù)位置查詢(xún)系統(tǒng)平臺(tái)的選擇、框架的構(gòu)建、定位技術(shù)的選擇及在具體平臺(tái)上的系統(tǒng)實(shí)現(xiàn)。
2.1定位技術(shù)的選擇
定位技術(shù)的選擇上,通過(guò)把基于終端設(shè)備的GPS定位技術(shù)和基于通信網(wǎng)絡(luò)的定位技術(shù)相結(jié)合,以增強(qiáng)系統(tǒng)不同環(huán)境條件下的定位成功率。
在室外環(huán)境下,如果手機(jī)內(nèi)置GPS芯片,我們可以采用GPS定位技術(shù)。GPS定位是目前室外空間使用最為廣泛的衛(wèi)星定位技術(shù),由美國(guó)國(guó)防部1987年設(shè)計(jì)研制,起初只用于軍事用途。GPS定位技術(shù)需要手機(jī)接收4顆或4顆以上的GPS衛(wèi)星信號(hào),同時(shí)解調(diào)衛(wèi)星的導(dǎo)航電文,手機(jī)利用信號(hào)時(shí)延得出與各顆衛(wèi)星的偽距,利用這些信息計(jì)算手機(jī)的精確位置。采用GPS定位的優(yōu)勢(shì)是:可以在全球范圍內(nèi)實(shí)現(xiàn)全天候、實(shí)時(shí)地為用戶(hù)連續(xù)提供精確的位置、速度和時(shí)間信息。
通常在室內(nèi)環(huán)境下我們采用基于網(wǎng)絡(luò)的TDOA定位技術(shù)。TDOA定位技術(shù)是在已知基站經(jīng)緯度的條件下,通過(guò)測(cè)量終端到兩個(gè)基站的無(wú)線(xiàn)信號(hào)傳播時(shí)間差,來(lái)計(jì)算移動(dòng)終端到兩個(gè)基站的距離差,從而得到終端的位置。其優(yōu)點(diǎn)是響應(yīng)速度快,約為3s至6s,對(duì)環(huán)境無(wú)特殊要求。
2.2結(jié)構(gòu)設(shè)計(jì)
本文的位置查詢(xún)系統(tǒng)可以分為位置服務(wù)端和短信服務(wù)端兩個(gè)部分,如圖1所示。位置服務(wù)端用來(lái)在特定環(huán)境下選擇最佳的定位方式獲取當(dāng)前位置。短信服務(wù)端主要用來(lái)發(fā)送/查詢(xún)對(duì)象當(dāng)前位置,并對(duì)位置信息進(jìn)行加密和解密處理。
(1)位置服務(wù)端:本系統(tǒng)基于Android平臺(tái),支持Android 2.3.3及以上系統(tǒng)。手機(jī)可通過(guò)GPRS或者Wi-Fi連接到網(wǎng)絡(luò)。默認(rèn)情況下采用網(wǎng)絡(luò)定位方式,室外手動(dòng)設(shè)置成GPS定位方式可實(shí)現(xiàn)精確定位。系統(tǒng)啟動(dòng)后首先使用GPS或網(wǎng)絡(luò)方式得到自身位置信息,然后在短消息配置頁(yè)面設(shè)置位置訪(fǎng)問(wèn)權(quán)限。當(dāng)收到他人位置查詢(xún)請(qǐng)求時(shí),首先判斷查詢(xún)密令是否正確,然后根據(jù)客戶(hù)位置訪(fǎng)問(wèn)權(quán)限判斷是否給予回復(fù)。系統(tǒng)根據(jù)聯(lián)系人回復(fù)的位置信息進(jìn)行距離計(jì)算和地圖標(biāo)注,在此基礎(chǔ)上實(shí)現(xiàn)了KNN查詢(xún),可查詢(xún)距離客戶(hù)最近的一個(gè)或多個(gè)聯(lián)系人。
(2)短信服務(wù)端:本系統(tǒng)中聯(lián)系人的位置數(shù)據(jù)以短信的方式獲取,系統(tǒng)使用點(diǎn)對(duì)點(diǎn)的短信業(yè)務(wù),客戶(hù)發(fā)送查詢(xún)指令給查詢(xún)對(duì)象,查詢(xún)對(duì)象以短信方式回復(fù)客戶(hù)對(duì)象位置,系統(tǒng)監(jiān)聽(tīng)位置短信找出KNN標(biāo)記到地圖上。圖2所示為一個(gè)查詢(xún)過(guò)程。
查詢(xún)過(guò)程如下(以中國(guó)移動(dòng)用戶(hù)B為例)。
(1)客戶(hù)A向客戶(hù)B發(fā)出位置查詢(xún)請(qǐng)求,A通過(guò)無(wú)線(xiàn)網(wǎng)絡(luò)發(fā)送查詢(xún)密令至其所在的MSC,MSC根據(jù)消息中的短信中心地址,通過(guò)七號(hào)信令網(wǎng)轉(zhuǎn)發(fā)該條短信至用戶(hù)歸屬短信中心。短信中心鑒權(quán)后向客戶(hù)B歸屬HLR查詢(xún)接客戶(hù)B所在位置。通過(guò)無(wú)線(xiàn)網(wǎng)絡(luò)下發(fā)短信到客戶(hù)B。
(2)客戶(hù)B收到客戶(hù)A的查詢(xún)請(qǐng)求后首先進(jìn)行鑒權(quán)??蛻?hù)A通過(guò)鑒權(quán)后,系統(tǒng)以密文方式回復(fù)當(dāng)前位置??蛻?hù)A收到客戶(hù)B的位置回復(fù)后進(jìn)行解密并計(jì)算彼此距離,并標(biāo)注客戶(hù)B的位置到地圖上??蛻?hù)采用上述方式對(duì)查詢(xún)對(duì)象集合U1…Un進(jìn)行位置查詢(xún)找出KNN。
3 位置查詢(xún)系統(tǒng)設(shè)計(jì)
筆者設(shè)計(jì)的系統(tǒng)主要由定位模塊、信息處理、對(duì)象管理等幾個(gè)模塊組成。
本系統(tǒng)旨在實(shí)時(shí)查詢(xún)某一范圍、某段時(shí)間內(nèi)通訊錄聯(lián)系人的當(dāng)前位置,如在位置A查找5分鐘內(nèi)離我最近的10個(gè)聯(lián)系人。該系統(tǒng)具備以下功能:①用戶(hù)登錄系統(tǒng)后,可選擇GPS或網(wǎng)絡(luò)方式實(shí)現(xiàn)自我定位。②用戶(hù)也可查找自身周邊的事物(如附近有確切地標(biāo)的建筑物和著名景點(diǎn))。③用戶(hù)可以通過(guò)發(fā)送指令的方式查詢(xún)其他用戶(hù)位置,當(dāng)收到其他用戶(hù)查詢(xún)指令時(shí)也可自動(dòng)回復(fù)用戶(hù)當(dāng)前位置。④系統(tǒng)可根據(jù)其他用戶(hù)位置信息計(jì)算彼此距離,找出KNN。⑤在地圖上標(biāo)記KNN。
3.1定位模塊設(shè)計(jì)
定位模塊的功能是利用GPS或網(wǎng)絡(luò)方式獲取對(duì)象位置信息。系統(tǒng)利用GPS和網(wǎng)絡(luò)方式相獲取移動(dòng)用戶(hù)位置信息,成功定位后位置信息由Location Manager實(shí)例提供給應(yīng)用程序。Android應(yīng)用框架提供了Location Manager來(lái)支持設(shè)備的位置查詢(xún)。系統(tǒng)中筆者用MainActivity中調(diào)用系統(tǒng)函數(shù)getSystem Service來(lái)獲得一個(gè)Location Manager的實(shí)例,該實(shí)例管理一系列位置提供者并負(fù)責(zé)提供位置信息給應(yīng)用程序。
3.2消息處理模塊設(shè)計(jì)
信息處理模塊的功能是當(dāng)收到位置查詢(xún)請(qǐng)求時(shí)對(duì)當(dāng)前位置信息進(jìn)行加密處理后自動(dòng)回復(fù)。
短信接收的時(shí)候用一個(gè)繼承自Service的BackService來(lái)在后臺(tái)連續(xù)監(jiān)聽(tīng)新接收的短信內(nèi)容,判斷是否為位置查詢(xún)密令。如果是查詢(xún)密令,則獲取當(dāng)前位置信息并解析成短信內(nèi)容格式,SMSmanger實(shí)現(xiàn)位置加密信息的自動(dòng)轉(zhuǎn)發(fā)(自動(dòng)轉(zhuǎn)發(fā)的短信內(nèi)容為intent構(gòu)建時(shí)加密過(guò)的短信,而非用戶(hù)的真實(shí)位置信息),否則,將不予回復(fù)。當(dāng)收到其他用戶(hù)位置信息時(shí),對(duì)象管理模塊通過(guò)訪(fǎng)問(wèn)短信數(shù)據(jù)庫(kù),讀入位置短信進(jìn)行解密,然后進(jìn)行距離計(jì)算和地圖標(biāo)注。
3.3對(duì)象管理模塊設(shè)計(jì)
對(duì)象管理模塊的功能是對(duì)收到的對(duì)象位置信息進(jìn)行解密,信息解密后根據(jù)用戶(hù)當(dāng)前位置計(jì)算彼此間距離,并以距離為關(guān)鍵字進(jìn)行插入排序,從而找出KNN,并在地圖上標(biāo)注KNN。
公式1是假設(shè)地球?yàn)橐粋€(gè)正球體時(shí)的距離計(jì)算公式,并未考慮地球不同經(jīng)緯度上半徑的變化,所以精度不算太高。但是通過(guò)實(shí)驗(yàn)測(cè)試,系統(tǒng)可以滿(mǎn)足人們?nèi)粘I钪胁樵?xún)其他用戶(hù)位置的需求。為了提高查詢(xún)效率、降低處理器負(fù)載,系統(tǒng)中采用了公式1計(jì)算用戶(hù)與其他用戶(hù)間的距離。
3.4 安全策略
考慮到系統(tǒng)是以短信的方式查詢(xún)聯(lián)系人當(dāng)前位置,短信業(yè)務(wù)是一種異步的通信方式。這就給保護(hù)客戶(hù)及聯(lián)系人的位置信息帶來(lái)了挑戰(zhàn),因?yàn)槿魏沃啦樵?xún)指令的人都可能通過(guò)查詢(xún)指令獲取到聯(lián)系人的當(dāng)前位置。所以有必要對(duì)用戶(hù)位置信息進(jìn)行加密。從而增加陌生人截獲用戶(hù)位置信息的難度。DES、RSA加密法是現(xiàn)今使用最多最為通用的加密方法,但DES加密算法需要把信息分為N組,每組64位,然后對(duì)N組信息加密。RSA加密算法產(chǎn)生密鑰很麻煩,分組長(zhǎng)度太大,為保證安全性,n至少需要600bits以上,這時(shí)運(yùn)算代價(jià)很高??紤]到DES和RSA方法過(guò)于復(fù)雜,輕量級(jí)的加密算法更適合文中的系統(tǒng) 。由于手機(jī)處理能力有限,為了提高查詢(xún)效率,降低處理器功耗,XOR加密法更適合該用戶(hù)位置查詢(xún)系統(tǒng)。
基本加密過(guò)程如下:位置短信發(fā)送過(guò)程中采用密文發(fā)送,筆者利用XOR加密法,分別用經(jīng)度密鑰和緯度密鑰分別與位置信息的經(jīng)緯度取異或作為傳遞密文,具體加密流程如圖3所示,
圖4中給出了對(duì)位置經(jīng)度信息(lng:20.59375)的一個(gè)加密實(shí)例。這樣做的目的是避免知道查詢(xún)密令的陌生人獲取到聯(lián)系人的位置信息,即便陌生人截獲了用戶(hù)位置信息或者破解了查詢(xún)密令也不能得到用戶(hù)的真實(shí)位置信息。解密時(shí)系統(tǒng)用密鑰與密文取異或就能得到明文位置信息進(jìn)行KNN查詢(xún)。
前文提到聯(lián)系人位置查詢(xún)指令可以雙方約定,這本身就是一種位置隱私保護(hù)策略,正常情況雙方的查詢(xún)密令不可能主動(dòng)告知第三方,除非有人很希望第三方也知道自己的位置。
4 實(shí)驗(yàn)與結(jié)果分析
筆者在三星S7562i手機(jī)上搭載Android4.0.3系統(tǒng)的平臺(tái)上實(shí)現(xiàn)了該聯(lián)系人移動(dòng)位置服務(wù)系統(tǒng)。系統(tǒng)采用高通驍龍Snapdragon MSM7227A單核CPU,主頻為1GHz,系統(tǒng)運(yùn)行內(nèi)存為768MB 。系統(tǒng)工作流程如圖5所示。
為了測(cè)試系統(tǒng)采用不同定位方式時(shí)的定位精度,這里在室外環(huán)境下(室內(nèi)系統(tǒng)采用GPS無(wú)法定位)選擇A、B、C、D、E五個(gè)典型地點(diǎn)分別采用GPS定位和網(wǎng)絡(luò)定位方式進(jìn)行定位測(cè)試,并把定位結(jié)果和精確地標(biāo)作對(duì)比,并作了誤差分析,測(cè)試結(jié)果如下,表1所示為系統(tǒng)采用GPS定位方式時(shí)的測(cè)試數(shù)據(jù),表2所示為系統(tǒng)采用網(wǎng)絡(luò)定位方式時(shí)的測(cè)試數(shù)據(jù)。
5 結(jié)束語(yǔ)
筆者基于Android平臺(tái),把GPS定位技術(shù)和網(wǎng)絡(luò)定位技術(shù)相結(jié)合,設(shè)計(jì)并實(shí)現(xiàn)了通用性較強(qiáng)的移動(dòng)對(duì)象位置定位查詢(xún)系統(tǒng)。在主流的幾款機(jī)型上做了大量實(shí)驗(yàn)對(duì)系統(tǒng)性能做了測(cè)試,實(shí)驗(yàn)結(jié)果表明系統(tǒng)在室內(nèi)外均有很好的定位成功率和較高的KNN查詢(xún)效率。系統(tǒng)方便實(shí)用、操作簡(jiǎn)單、擴(kuò)展性強(qiáng),既可以用于個(gè)人日常生活,也可用于出租車(chē)、物流公司等相關(guān)領(lǐng)域。
參考文獻(xiàn):
[1] 周傲英,楊彬,金澈清,等.基于位置的服務(wù): 架構(gòu)與進(jìn)展[J].計(jì)算機(jī)學(xué)報(bào), 2011,34(7):1155-1171.
[2] 肖志輝.移動(dòng)互聯(lián)網(wǎng)研究綜述[J]. 電信科學(xué),2009,25(10):30-36.
[3] 王春.3G時(shí)代位置服務(wù)技術(shù)研究[J]. 通信技術(shù),2010,43(5):159-161.