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