摘 要: 詳細(xì)討論了GpsOne" title="GpsOne">GpsOne技術(shù)及其優(yōu)越性、CDMA網(wǎng)絡(luò)“無(wú)線互聯(lián)網(wǎng)發(fā)射平臺(tái)”上增值業(yè)務(wù)開發(fā)運(yùn)行的基本平臺(tái)BREW技術(shù),并對(duì)該移動(dòng)定位系統(tǒng)的需求、可行性進(jìn)行了討論,最后詳細(xì)介紹了其實(shí)現(xiàn)方案。
關(guān)鍵詞: GpsOne 定位 增值服務(wù)" title="增值服務(wù)">增值服務(wù) 服務(wù)器輔助
手機(jī)作為一種使用越來(lái)越廣泛的手持設(shè)備,其增值應(yīng)用也正在蓬勃發(fā)展。而利用手機(jī)定位正是其中一項(xiàng)重要的應(yīng)用,并且有著廣闊的應(yīng)用前景。目前,可以用于定位的GPS手機(jī)都是采用服務(wù)器輔助類型的芯片。因?yàn)槭謾C(jī)配備的微處理器性能無(wú)法滿足定位計(jì)算和低耗電方面的要求,因此只能由基站和與此相連的服務(wù)器進(jìn)行定位計(jì)算。而獨(dú)立定位是一種車載導(dǎo)航系統(tǒng)等終端使用的定位方法。它是根據(jù)從GPS衛(wèi)星接收到的信號(hào),在終端內(nèi)部計(jì)算出用戶目前所在的位置?,F(xiàn)在使用這種類型芯片的手機(jī)很少。本文著重研究服務(wù)器輔助類型的手機(jī)上的定位增值業(yè)務(wù)的應(yīng)用。這種應(yīng)用的架構(gòu)如圖1所示。
1 手機(jī)增值服務(wù)
手機(jī)的增值業(yè)務(wù)是指在手機(jī)的基本語(yǔ)音業(yè)務(wù)和短信業(yè)務(wù)以外的新的業(yè)務(wù)。近年來(lái)隨著手機(jī)數(shù)據(jù)業(yè)務(wù)的迅猛發(fā)展,手機(jī)上的數(shù)據(jù)應(yīng)用越來(lái)越廣泛,如鈴聲及圖片下載、手機(jī)游戲、出行指導(dǎo)、交通信息、電子郵件和體育新聞等。這些都屬于手機(jī)增值業(yè)務(wù)。隨著GpsOne技術(shù)的推出,基于用戶位置的移動(dòng)定位業(yè)務(wù)(Location Based Service,LBS)已經(jīng)開始受到越來(lái)越多的重視。
2 GpsOne技術(shù)概述
GpsOne是QUALCOMM 及其定位系統(tǒng)子公司 SnapTrack開發(fā)的一套用于CDMA網(wǎng)絡(luò)中的移動(dòng)設(shè)備準(zhǔn)確定位的解決方案。GpsOne無(wú)線定位同時(shí)使用了衛(wèi)星定位和地面定位技術(shù),即使用了GPS衛(wèi)星系統(tǒng)和CDMA小區(qū)站點(diǎn)信號(hào)。通過(guò)這一混合式A-GPS(CDMA-GPS)方法,進(jìn)一步增強(qiáng)了定位服務(wù)的可用性,擴(kuò)大了地形覆蓋面,加快了定位過(guò)程。無(wú)論是在緊急情況下還是在使用GPS商業(yè)應(yīng)用時(shí),都可為主叫方提供更高的精確度。借助內(nèi)置的按需定位特性,GpsOne技術(shù)能夠很好地保護(hù)用戶私密,使其能夠在大多數(shù)商業(yè)設(shè)施中控制其位置信息。因此GpsOne定位服務(wù)與傳統(tǒng)GPS或網(wǎng)絡(luò)定位解決方案相比,更加準(zhǔn)確可靠。這套解決方案即使在室內(nèi)和人口密集的區(qū)域中也能夠正常工作。使用這種技術(shù)的手機(jī)需要使用QUALCOMM的移動(dòng)站調(diào)制解調(diào)器(MSM)芯片組和系統(tǒng)軟件,并要在網(wǎng)絡(luò)中使用SnapTrack的SnapSmart定位服務(wù)器軟件。
3 BREW技術(shù)
QUALCOMM公司推出的無(wú)線二進(jìn)制運(yùn)行環(huán)境(Binary Runtime Environment for Wireless,BREW)是CDMA網(wǎng)絡(luò)無(wú)線互聯(lián)網(wǎng)發(fā)射平臺(tái)上開發(fā)和運(yùn)行增值業(yè)務(wù)的基本平臺(tái)。它提供一個(gè)高效、低成本、可擴(kuò)展的應(yīng)用程序執(zhí)行環(huán)境(Application Execution Environment,AEE),著重開發(fā)可無(wú)縫植入任何實(shí)際手持設(shè)備的應(yīng)用程序。BREW技術(shù)與GpsOne技術(shù)的結(jié)合就是一套手機(jī)移動(dòng)定位、可行、高效、可靠的解決方案。
4 開發(fā)與應(yīng)用
基于以上所述,下面討論在BREW平臺(tái)下,GpsOne手機(jī)移動(dòng)定位系統(tǒng)" title="手機(jī)移動(dòng)定位系統(tǒng)">手機(jī)移動(dòng)定位系統(tǒng)增值業(yè)務(wù)的開發(fā)與應(yīng)用。
4.1 應(yīng)用需求描述
本系統(tǒng)通過(guò)GpsOne手機(jī)定位自己的位置,并把得到的定位信息發(fā)送給指定的朋友并獲得朋友的定位信息,同時(shí)實(shí)現(xiàn)地圖的放大和縮小等功能。
4.2 系統(tǒng)可行性
本系統(tǒng)采用SnapTrack技術(shù)的QUALCOMM GpsOne解決方案,實(shí)現(xiàn)目前最為先進(jìn)的手機(jī)定位。聯(lián)通移動(dòng)定位中心(Mobile Position Center,MPC)收到SP(Server Provider)或用戶定位請(qǐng)求后,需要鑒別發(fā)出該請(qǐng)求的用戶是否有權(quán)進(jìn)行定位。如果有權(quán),則進(jìn)行定位處理,否則拒絕該請(qǐng)求。這個(gè)過(guò)程稱為聯(lián)通鑒權(quán)。
定位業(yè)務(wù)的觸發(fā)方式有2種:移動(dòng)節(jié)點(diǎn)觸發(fā)和網(wǎng)絡(luò)觸發(fā)。由移動(dòng)節(jié)點(diǎn)觸發(fā)的定位業(yè)務(wù)主要包括自身位置、查詢電子地圖等;由網(wǎng)絡(luò)觸發(fā)的定位業(yè)務(wù)主要包括他人位置、查詢車輛和跟蹤等。在這類業(yè)務(wù)的實(shí)現(xiàn)過(guò)程中,網(wǎng)絡(luò)需要通過(guò)一定的機(jī)制確認(rèn)目前被查詢方所在的服務(wù)區(qū),從而建立一定的信令聯(lián)接和TCP/IP聯(lián)接等。此外,系統(tǒng)還需要判斷檢索方是否有權(quán)對(duì)被檢索人進(jìn)行位置查詢。在本系統(tǒng)中定位自己采用節(jié)點(diǎn)觸發(fā)方式,無(wú)需聯(lián)通鑒權(quán);定位朋友可以采用節(jié)點(diǎn)觸發(fā)或網(wǎng)絡(luò)觸發(fā)2種方式,其中網(wǎng)絡(luò)觸發(fā)需要MPC開通鑒權(quán)服務(wù)。
4.3 方案規(guī)劃
4.3.1 定位自己
用戶通過(guò)GpsOne手機(jī)對(duì)自身進(jìn)行定位,并將位置信息發(fā)送到指定手機(jī)的過(guò)程(見(jiàn)圖1)說(shuō)明如下:
(1)GpsOne手機(jī)向所屬聯(lián)通基站發(fā)出“自我定位”請(qǐng)求。
(2)手機(jī)獲得當(dāng)前位置的經(jīng)緯度。
(3)用戶手機(jī)向業(yè)務(wù)服務(wù)器發(fā)送經(jīng)緯度。
(4)業(yè)務(wù)服務(wù)器根據(jù)用戶提交的經(jīng)緯度向地圖平臺(tái)發(fā)出位置請(qǐng)求。
(5)地圖服務(wù)器根據(jù)經(jīng)緯度算出用戶當(dāng)前位置地圖,將結(jié)果(圖片和文字說(shuō)明)返回給業(yè)務(wù)服務(wù)器。
(6)業(yè)務(wù)服務(wù)器將結(jié)果(圖片和文字說(shuō)明)發(fā)送給指定的用戶手機(jī)。
4.3.2 定位對(duì)方
定位對(duì)方是會(huì)員對(duì)使用GpsOne手機(jī)的用戶進(jìn)行定位的過(guò)程。這里可以采用2種方式:
一種是聯(lián)通鑒權(quán)方式,使用標(biāo)準(zhǔn)的對(duì)他人進(jìn)行定位的方式。業(yè)務(wù)服務(wù)器向聯(lián)通發(fā)送定位請(qǐng)求,聯(lián)通進(jìn)行GpsOne定位。聯(lián)通鑒權(quán)方式流程如圖2所示。其流程說(shuō)明如下:
(1)用戶使用GpsOne手機(jī)向業(yè)務(wù)服務(wù)器發(fā)出“對(duì)方位置”的請(qǐng)求。
(2)業(yè)務(wù)服務(wù)器判斷該用戶是否有權(quán)查詢對(duì)方位置。如果有權(quán)利,則向MPC發(fā)出“對(duì)方位置”的定位請(qǐng)求。
(3)MPC鑒權(quán),判斷是否有權(quán)查看對(duì)方位置。如果有權(quán)利,則向被定位手機(jī)發(fā)出定位需求。
(4)被定位手機(jī)返回相關(guān)參數(shù)以便MPC進(jìn)行定位分析。
(5)MPC將分析得出的被定位手機(jī)經(jīng)緯度發(fā)送給業(yè)務(wù)服務(wù)器。業(yè)務(wù)服務(wù)器再將數(shù)據(jù)傳給地圖服務(wù)器。
(6)地圖服務(wù)器根據(jù)經(jīng)緯度算出用戶當(dāng)前地圖,將結(jié)果(圖片和文字說(shuō)明)返回給業(yè)務(wù)服務(wù)器。
(7)業(yè)務(wù)服務(wù)器將結(jié)果(圖片和文字說(shuō)明)發(fā)送給指定的用戶手機(jī)。
另一種方式是非聯(lián)通鑒權(quán)方式,其流程如圖3所示。流程說(shuō)明如下:
(1)用戶向業(yè)務(wù)服務(wù)器發(fā)出“定位朋友”的請(qǐng)求。
(2)業(yè)務(wù)服務(wù)器鑒權(quán),成功后判斷用戶是否在線。若在線,則向被定位手機(jī)發(fā)出定位要求;若不在線,則使用短信激活功能激活本系統(tǒng)。
(3)被定位用戶完成“定位自己”的功能調(diào)用,獲得經(jīng)緯度。
(4)被定位用戶手機(jī)向業(yè)務(wù)服務(wù)器發(fā)送經(jīng)緯度。
(5)業(yè)務(wù)服務(wù)器向地圖服務(wù)器發(fā)出位置請(qǐng)求。
(6)地圖服務(wù)器計(jì)算獲得地圖,將結(jié)果(圖片和文字說(shuō)明)返回給業(yè)務(wù)服務(wù)器。
(7)業(yè)務(wù)服務(wù)器將結(jié)果(圖片和文字說(shuō)明)發(fā)送給當(dāng)前用戶手機(jī)。
5 系統(tǒng)設(shè)計(jì)
5.1 服務(wù)器設(shè)計(jì)
業(yè)務(wù)服務(wù)器接受客戶端的請(qǐng)求,從地圖服務(wù)器上取數(shù)據(jù),再發(fā)送到相應(yīng)的客戶端,實(shí)現(xiàn)客戶端之間定位業(yè)務(wù)的數(shù)據(jù)通信。本服務(wù)器開發(fā)環(huán)境選擇VC++6.0。其業(yè)務(wù)開發(fā)流程如下:
(1)建Socket套節(jié)字,監(jiān)聽(tīng)特定端口的數(shù)據(jù)。
(2)收到來(lái)自客戶端的定位請(qǐng)求,從客戶端的數(shù)據(jù)信息中提取出經(jīng)緯度,發(fā)送給指定的地圖服務(wù)器,繼續(xù)監(jiān)聽(tīng)下一次請(qǐng)求。
(3)解析從地圖服務(wù)器傳送來(lái)的包含地圖信息的包,然后重新打包傳送給等待請(qǐng)求定位的客戶端。
這里需要注意:由于考慮到服務(wù)器的并發(fā)性,所以業(yè)務(wù)服務(wù)器都采用UDP連接。
系統(tǒng)選用MapInfo的MapXtreme地圖服務(wù)器。它能夠較好地支持各種Web開發(fā),有強(qiáng)大的地圖功能和安全認(rèn)證機(jī)制。它主要實(shí)現(xiàn)各種終端對(duì)地圖信息的請(qǐng)求,安裝好地圖服務(wù)器后,進(jìn)行配置即可使其響應(yīng)終端的請(qǐng)求。
5.2 客戶端設(shè)計(jì)
客戶端采用基于BREW平臺(tái)的設(shè)計(jì),因此客戶端必須是支持BREW芯片的手機(jī)。BREW的特點(diǎn)是:它是一種面向?qū)ο蟮目沙浞謹(jǐn)U展的應(yīng)用程序執(zhí)行環(huán)境,允許使用C或C++開發(fā)小程序和共享模塊;支持Java和XML等語(yǔ)言;它提供了一套完善的對(duì)象技術(shù),使開發(fā)者可以非常方便地開發(fā)基于圖形的應(yīng)用服務(wù)和應(yīng)用程序服務(wù);支持簡(jiǎn)單的、基于事件的AEE內(nèi)核服務(wù)以及對(duì)文件、網(wǎng)絡(luò)服務(wù)、內(nèi)存和屏幕的訪問(wèn)增強(qiáng)型服務(wù)(如增強(qiáng)圖像性能、聲音播放器、GPS和語(yǔ)音綜合服務(wù)),使應(yīng)用程序開發(fā)者可以利用諸如瀏覽器、Outlook所支持的服務(wù)。
本業(yè)務(wù)在BREW平臺(tái)下的開發(fā)流程如下:
(1)創(chuàng)建實(shí)例:BREW 用于支持小程序和模塊創(chuàng)建的機(jī)制是ISHELL_CreateInstance方法。
(2)發(fā)出GPS定位:調(diào)用接口IPOSDET通過(guò)GpsOne手機(jī)發(fā)出定位請(qǐng)求,得到手機(jī)所在位置的經(jīng)緯度。
(3)聯(lián)接服務(wù)器:調(diào)用ISOCKET接口函數(shù),創(chuàng)建SOCKET套接字,通過(guò)套接字接口將經(jīng)緯度發(fā)送到服務(wù)器。實(shí)際工作過(guò)程中無(wú)線信號(hào)通過(guò)基站聯(lián)接到服務(wù)器,基站對(duì)于客戶端和服務(wù)器端來(lái)說(shuō)是透明的。
(4)客戶端監(jiān)聽(tīng)端口號(hào):收到服務(wù)器相應(yīng)的包含地圖信息的包后,客戶端對(duì)包解析得到所需要的地圖位置信息,并在客戶端進(jìn)行顯示。
這里需要注意:為了保證客戶端數(shù)據(jù)的可靠性,客戶端采用TCP連接。
6 瓶頸分析
由于本系統(tǒng)中所采用的地圖服務(wù)器是MapXtreme,是基于Java開發(fā)環(huán)境的,所以對(duì)它的訪問(wèn)實(shí)際是通過(guò)若干個(gè)Severlet程序?qū)崿F(xiàn)的。而Severlet程序的特點(diǎn)是必須等到上一次請(qǐng)求響應(yīng)返回后才能進(jìn)行下一次請(qǐng)求,所以它是一個(gè)同步的過(guò)程。而實(shí)際在定位過(guò)程當(dāng)中會(huì)有很多客戶端同時(shí)請(qǐng)求定位,這又是一個(gè)異步的過(guò)程。此處采用隊(duì)列緩存的辦法解決這個(gè)問(wèn)題。另外一個(gè)可行的解決辦法是在業(yè)務(wù)服務(wù)器和地圖服務(wù)器之間加一個(gè)接入服務(wù)器,使其達(dá)到異步及并發(fā)的效果。
7 總 結(jié)
本系統(tǒng)經(jīng)過(guò)開發(fā)和測(cè)試已經(jīng)比較穩(wěn)定地運(yùn)行在很多GPS手機(jī)上,如京瓷850和大顯808等。其定位速度和定位效果均達(dá)到比較好的實(shí)用效果。經(jīng)實(shí)驗(yàn),定位誤差范圍為50~100米。
參考文獻(xiàn)
1 王寶祥.信號(hào)與系統(tǒng).哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1997
2 Stevens W R.TCP/IP詳解.北京:機(jī)械工業(yè)出版社,2000
3 胡峪,劉靜.VC++編程技巧與示例.西安:西安電子科技大學(xué)出版社,2001