(1.湖北大學(xué) 數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,武漢 430062; 2.武漢大學(xué) 國家多媒體軟件工程技術(shù)研究中心, 武漢 430072)
摘 要:
為了有效訪問基于位置服務(wù)(LBS)環(huán)境中的服務(wù)信息,提出了基于移動agent 和元數(shù)據(jù)的LBS信息查詢新思路,給出了構(gòu)建LBS信息查詢系統(tǒng)的方法,并利用移動agent 開發(fā)平臺Voyager和Java系列軟件開發(fā)了一個分布式的LBS信息查詢系統(tǒng),實(shí)現(xiàn)了在LBS系統(tǒng)中信息的透明訪問。
關(guān)鍵詞:基于位置服務(wù); 元數(shù)據(jù); 移動代理
中圖分類號:TP391 文獻(xiàn)標(biāo)志碼:A
文章編號:10013695(2008)12379403
Mobile agent metadata based locationbased service information querying
WANG Leichun1,2, CHEN Shihong2, HU Ruimin2
(1.School of Mathmatics Computer Science, Hubei University, Wuhan 430062, China; 2. National Engineering Research Center of Multimedia Software, Wuhan University, Wuhan 430072, China)
Abstract:This paper proposedanew ideabased on mobile agent and metadata to query information efficiently in locationbased service (simply LBS) environment,which couldovercome the drawbacks of the traditional connectionbased access method. And provided an approach to building LBS query system and developed an information query system in distributed LBS environment based on Java softwares, and on Voyager,a free mobile agent development platform. Experimental results show that information can be accessed transparently in LBS system.
Key words:locationbased service(LBS); metadata; mobile agent
0 引言
隨著高速無線網(wǎng)絡(luò)的迅猛發(fā)展、地理信息系統(tǒng)(GIS) 和全球定位系統(tǒng)(GPS)技術(shù)的不斷提高以及移動設(shè)備上網(wǎng)用戶的飛速增長,基于位置服務(wù)(LBS)成為近年來研究的熱點(diǎn)之一。LBS通過從移動網(wǎng)絡(luò)獲取移動終端的位置信息(經(jīng)緯度坐標(biāo)),或輸入與位置相關(guān)的數(shù)據(jù)(如地址、電話號碼等),在地理信息系統(tǒng)(GIS)和全球定位系統(tǒng)(GPS)平臺的支持下,能夠快速、方便地獲取所需要的地理信息及其相關(guān)信息的服務(wù)[1~3]。
目前,已有許多學(xué)者對LBS進(jìn)行了相關(guān)研究。例如Agre 等人[4]提出層狀體系結(jié)構(gòu)LSM ,以位置服務(wù)為基礎(chǔ), 劃分為位置適應(yīng)層和位置依賴層;Yu 等人[5]提出協(xié)作型體系結(jié)構(gòu),使用本體和信息提取技術(shù)管理數(shù)據(jù);另外,一些文獻(xiàn)提出了基于J2MM 架構(gòu)設(shè)計(jì)的LBS應(yīng)用平臺[6~8]。
然而,與Internet相比,在LBS環(huán)境中,移動終端容量小,處理能力較差,網(wǎng)絡(luò)帶寬較低,通信質(zhì)量不好,網(wǎng)絡(luò)經(jīng)常處于不連接的狀態(tài)。同時,一般的移動通信只有簡單的文本信息和語音信息,而在LBS環(huán)境中,還有數(shù)據(jù)量很大的地理數(shù)據(jù)和移動對象數(shù)據(jù)等。這些均使得在LBS環(huán)境中進(jìn)行信息訪問具有更多的挑戰(zhàn)。
為此,本文提出了一種基于移動agent和元數(shù)據(jù)的LBS信息查詢技術(shù)。一方面,通過元數(shù)據(jù)將整個LBS系統(tǒng)中的數(shù)據(jù)高效、有機(jī)地組合在一起,讓用戶能夠在快速、透明的情況下訪問到所需的信息;另一方面,利用移動agent的智能性和移動性,能夠在網(wǎng)絡(luò)通信量很低的情況下從LBS網(wǎng)絡(luò)中取回需要的數(shù)據(jù)。
1 使用移動agent和元數(shù)據(jù)查詢LBS信息
1. 1 系統(tǒng)框架
一個基于移動agent和元數(shù)據(jù)的LBS信息查詢系統(tǒng)主要由四個部分構(gòu)成,即服務(wù)器、客戶機(jī)、連接這些節(jié)點(diǎn)的LBS網(wǎng)絡(luò)以及漫游在網(wǎng)絡(luò)中往來于各個節(jié)點(diǎn)之間并代表用戶執(zhí)行信息訪問與檢索任務(wù)的移動agent(圖1)。
LBS系統(tǒng)有三種服務(wù)器,即本地服務(wù)器、區(qū)域服務(wù)器和全局服務(wù)器,它們分別存儲了系統(tǒng)中的LBS信息及相應(yīng)信息的元數(shù)據(jù)信息。這些服務(wù)器相互連接成一個具有多級結(jié)構(gòu)的層次性服務(wù)器系統(tǒng)(全局服務(wù)器—區(qū)域服務(wù)器—位置信息服務(wù)器),共同為客戶提供LBS信息服務(wù)。LBS網(wǎng)絡(luò)的主要功能是將客戶終端、本地服務(wù)器和區(qū)域服務(wù)器以及全局服務(wù)器連接起來,在物理上形成一個統(tǒng)一的系統(tǒng),為最終能夠相互通信形成一個好的基礎(chǔ)。客戶終端設(shè)備包括PC機(jī)、筆記本電腦、個人數(shù)字助理以及各種手機(jī)等,它的主要功能是通過移動agent向系統(tǒng)發(fā)出請求并取回需要的信息。
1. 2 系統(tǒng)設(shè)計(jì)
1. 2. 1 LBS服務(wù)器設(shè)計(jì)
在LBS系統(tǒng)中,本地服務(wù)器存儲了地理信息、非地理信息、移動對象信息及這些信息的元數(shù)據(jù)信息。這些信息是系統(tǒng)中的基礎(chǔ)信息。在區(qū)域服務(wù)器中,存儲的是本區(qū)域中各個位置信息服務(wù)器中的名字、地址,各個服務(wù)器信息的元數(shù)據(jù)等,為信息的查找提供幫助。全局服務(wù)器存儲了所有區(qū)域服務(wù)器的元數(shù)據(jù)信息,如各個區(qū)域的名字及相應(yīng)區(qū)域服務(wù)器的IP地址、主機(jī)名字以及其中存儲的元數(shù)據(jù)信息等。這些服務(wù)器中的數(shù)據(jù)以及元數(shù)據(jù)相互聯(lián)系,共同構(gòu)成一個基于LBS網(wǎng)絡(luò)環(huán)境的多層次LBS數(shù)據(jù)—元數(shù)據(jù)庫框架(圖2)。
不同層次服務(wù)器存儲的信息不同、作用不一樣,但一般都由兩部分組成,即移動agent服務(wù)器Voyager和相應(yīng)的數(shù)據(jù)庫。在運(yùn)行時,所有移動代理服務(wù)器均要在后臺啟動。其中位置信息服務(wù)器接收來自客戶機(jī)的請求,區(qū)域服務(wù)器接收的是各個位置信息服務(wù)器的位置查找請求,而全局服務(wù)器則接收來自區(qū)域服務(wù)器的位置查找請求。
1. 2. 2 客戶端程序的設(shè)計(jì)
LBS系統(tǒng)中客戶機(jī)的組成和功能各有差異,但均包括一個移動agent服務(wù)器Voyager和一個用戶查詢與信息顯示界面以及信息處理與顯示模塊。用戶看到的只是查詢界面,通過查詢界面提交查詢請求并顯示查詢結(jié)果,而對于用戶查詢請求任務(wù)的解析和處理則由后臺運(yùn)行的移動agent服務(wù)器Voyager負(fù)責(zé)。
客戶端程序的任務(wù)是瀏覽服務(wù)器中的服務(wù)、向服務(wù)器提交查詢請求并接收返回的結(jié)果進(jìn)行顯示或操作,服務(wù)器找到信息的具體過程對于用戶來說是透明的。例如,當(dāng)一個用戶要查詢系統(tǒng)中的信息時,它只需向系統(tǒng)提交查詢請求;系統(tǒng)接收到該請求后,在本地或在遠(yuǎn)程查找到所需要的信息后,再將信息返回給客戶端程序;客戶端程序接收所需要的信息,并在本地進(jìn)行顯示或操作;任務(wù)完成后,該代理程序被銷毀,一次查詢?nèi)蝿?wù)結(jié)束。
1. 2. 3 LBS信息的查詢
在LBS系統(tǒng)中,信息的查詢包括兩個步驟:a)找出所要查詢信息的位置;b)根據(jù)所得到的位置信息取回所需要的信息。如果用戶所要查詢的信息在本地,則直接查詢本地服務(wù)器中的信息數(shù)據(jù)庫,并將結(jié)果以適當(dāng)?shù)男问椒祷兀环駝t,派出移動agent去遠(yuǎn)程服務(wù)器查詢需要的信息。
客戶端一個完整的信息查詢過程可以描述如下:
a)用戶通過一個移動終端根據(jù)指定的地址(位置信息服務(wù)器的URL)登錄到一個本地服務(wù)器,通過服務(wù)器返回的界面瀏覽所提供的服務(wù)列表。
b)用戶選擇所需要的信息,并通過agent向本地服務(wù)器提交一個查詢請求。
c)本地服務(wù)器的主agent接收到客戶的請求后,首先在本地服務(wù)器的元數(shù)據(jù)庫中查找客戶所需的信息是否在本地服務(wù)器中。如果信息在本地,則將信息讀出,通過代理返回給客戶端,轉(zhuǎn)向f);否則,派出一個移動agent去區(qū)域服務(wù)器。
d)區(qū)域服務(wù)器收到請求后,在元數(shù)據(jù)庫中查找客戶所需的信息是否在本區(qū)域中。如果在,則派遣移動agent去相應(yīng)的服務(wù)器讀取所需要的信息,通過代理返回給客戶端,轉(zhuǎn)向f);否則,派出移動agent去全局服務(wù)器。
e)全局服務(wù)器收到請求后,在元數(shù)據(jù)庫中查找客戶所需的信息所在的區(qū)域,并派遣移動agent去相應(yīng)的區(qū)域服務(wù)器;該區(qū)域服務(wù)器收到請求后,在本區(qū)域的元數(shù)據(jù)庫中查詢客戶所需要的信息所在的位置,派遣移動agent去相應(yīng)的服務(wù)器取回所需要的信息,轉(zhuǎn)向f);如果所需要的信息不存在,則返回“信息不存在”的標(biāo)志。
f)結(jié)束本次查詢。
當(dāng)用戶移動終端漫游到異地時,首先這個終端設(shè)備要在遠(yuǎn)程服務(wù)器上注冊,并從本地服務(wù)器上得到該客戶終端設(shè)備的有關(guān)信息。當(dāng)用戶的終端設(shè)備在異地注冊成功后,就成為異地服務(wù)器的一部分,可以當(dāng)做異地服務(wù)器的一般用戶來處理。這個過程和本地服務(wù)器的處理是一樣的。
1. 2. 4 LBS結(jié)果信息的處理
系統(tǒng)中終端設(shè)備處理能力有很大的差異,既可以有處理能力很強(qiáng)的PC機(jī),也可以有處理能力差的手機(jī)和PDA等,因此,系統(tǒng)需要根據(jù)不同設(shè)備的處理能力進(jìn)行相應(yīng)的處理。如果客戶終端是容量比較大、處理能力比較強(qiáng)的終端設(shè)備,則直接將GML/XML文檔送給客戶的終端設(shè)備,由終端設(shè)備進(jìn)行操作和處理;如果是一般的容量和處理能力的設(shè)備,則生成SVG結(jié)果的文檔,然后再將其發(fā)送客戶的終端設(shè)備;如果是容量很小、處理能力很差的終端設(shè)備,則將其生成壓縮的圖片,再將結(jié)果傳送給客戶的終端設(shè)備。
2 原型系統(tǒng)
2. 1 實(shí)驗(yàn)環(huán)境
原型系統(tǒng)用Java語言實(shí)現(xiàn),開發(fā)軟件主要為移動agent平臺Voyager和相應(yīng)的Java系列軟件及工具如JBuilder9、Tomcat4.1.2、DOM4J、Geotools0.8.0、Batik1.5.1以及數(shù)據(jù)庫系統(tǒng)Oracle9i和Oracle9i Spatial等。硬件平臺目前為連接在網(wǎng)絡(luò)上的若干PC機(jī)以及作為移動模擬終端設(shè)備的手機(jī)模擬器等。
系統(tǒng)中的數(shù)據(jù)包括地理數(shù)據(jù)和非地理數(shù)據(jù)以及相應(yīng)的元數(shù)據(jù)等。地理數(shù)據(jù)有點(diǎn)數(shù)據(jù)(如商場、加油站和銀行等)、線數(shù)據(jù)(如城市的主干道和支線等)和面數(shù)據(jù)(如各區(qū)信息等);非地理數(shù)據(jù)有交通數(shù)據(jù)、天氣數(shù)據(jù)和股票數(shù)據(jù)等;元數(shù)據(jù)包括本地元數(shù)據(jù)、區(qū)域元數(shù)據(jù)和全局元數(shù)據(jù)等。這些實(shí)驗(yàn)數(shù)據(jù)經(jīng)過處理后分別存儲在LBS系統(tǒng)的各個服務(wù)器中。
2. 2 信息查詢
在系統(tǒng)中,全局服務(wù)器分別命名為G1、G2…;與全局服務(wù)器相連接的區(qū)域服務(wù)器則命名為A1、A2…;而與各個區(qū)域服務(wù)器連接的本地服務(wù)器則分別命名為L1、L2…。表1是全局服務(wù)器G1中的部分元數(shù)據(jù)信息;表2是區(qū)域服務(wù)器G1A1中部分元數(shù)據(jù)信息,表3是G1A1L1中部分元數(shù)據(jù)信息;表4則是系統(tǒng)中G1L1A1中一個旅館的地理數(shù)據(jù)。
表1 全局服務(wù)器G1部分元數(shù)據(jù)信息
編號名字地址
1A1Wuhan_server
2A2Xiaogan_server
3A3Xianlin_server
4A4Yichang_server
5A5Xiangfan_server
………
表2 區(qū)域服務(wù)器G1A1部分元數(shù)據(jù)信息
編號名字地址
1AA_server
2BB_server
3CC_server
4DD_server
5EE_server
………
在LBS系統(tǒng)中,信息的查詢有三類:
a)對本地信息的查詢:如G1A1L1的用戶查詢本地的某個旅館信息。G1A1L1服務(wù)器根據(jù)其地理特征信息判斷用戶所要查詢的信息在本地,直接去G1A1L1服務(wù)器的元數(shù)據(jù)庫查找到所要查詢信息的表名;然后,到相應(yīng)的表中查詢到所要的信息,并將結(jié)果通過agent返回給客戶終端。
b)對本區(qū)域信息的查詢:如G1A1L1中的用戶查詢G1A1L2區(qū)域中的信息。首先,G1A1L1服務(wù)器根據(jù)地理特征信息判斷用戶所要查詢的信息不在本地,派出移動agent去G1A1區(qū)域服務(wù)器的元數(shù)據(jù)庫中查詢所要查詢信息的位置;然后再派遣移動agent去相應(yīng)的信息服務(wù)器G1A1L2取回所需要的信息。
c)對全局信息的查詢,如G1A1L1的用戶查詢G1A2L3的LBS信息。這時,不但要派遣移動agent去區(qū)域服務(wù)器G1A1,還要進(jìn)一步派遣移動agent去全局服務(wù)器G1和區(qū)域服務(wù)器G1A2的元數(shù)據(jù)庫中找到所要信息的位置,再派遣移動agent地去G1A2L3中取回相應(yīng)的信息。圖3 是系統(tǒng)中一次最近鄰居查詢的結(jié)果。
表3 本地服務(wù)器G1A1L1部分元數(shù)據(jù)信息
編號名字地址編號名字地址
1商場marketplace5交通信息Traffic
2旅館Hotel6天氣信息Weather
3道路一Road_One………
4道路二Road_Two
表4 本地服務(wù)器G1A1L1中旅館地理數(shù)據(jù)
namesingle double three apart location
0SDO_DEOMETRY(2001, NULL, SDO_POINT_TYPE(-3.9004726, 1.55686684, NULL), NULL, NULL)
Shihai_Hotel 400 230 140 500 Guangbutun
1SDO_GEOMETRY(2001,NULL, SDO_POINT_TYPE(2.20954675, .375233194, NULL), NULL, NULL
Wuchang_Hotel 420 210 150 600 Yuemachang
2SDO_GEOMETRY(2001, NULL, SDO_POINT_TYPE (2.20954675, .375233194, NULL), NULL, NULL, NULL
Fengyi_Hotel 480 240 130 700 Luxiang
3SDO_GEOMETRY(2001, NULL, SDO_POINT_TYPE(-1.1378994, .389581254, NULL), NULL, NULL, NULL)
Qindao_Hotel 510 350 170 750 Shuiguohu
4SDO_GEOMETRY(2001, NULL, SDO_POINT_TYPE(.385589182, -0.610623, NULL), NULL, NULL, NULL)
3 結(jié)束語
為了實(shí)現(xiàn)在LBS中高速、有效地進(jìn)行信息訪問,本文提出了一個利用移動agent 和元數(shù)據(jù)訪問LBS信息的原型系統(tǒng)及其相關(guān)實(shí)現(xiàn)技術(shù)。該系統(tǒng)是在Recursion Software公司的移動agent 平臺Voyager和基于Java系列軟件以及一些移動模擬終端的基礎(chǔ)上建立的。在系統(tǒng)中,用戶既可以通過移動模擬終端訪問本地服務(wù)器中的信息,也可以透明地訪問遠(yuǎn)程服務(wù)器中的信息。在今后的研究工作中,將采用基于XML/GML 技術(shù)來處理LBS系統(tǒng)中各種信息的異構(gòu)性;另一方面,采取更加有效的策略和技術(shù)管理LBS系統(tǒng)中的各種數(shù)據(jù)以提高系統(tǒng)的查詢效率也是今后研究的一個重要課題。
參考文獻(xiàn):[1]關(guān)佶紅,陳曉龍.基于移動agent的分布式地理信息查詢[J].武漢大學(xué)學(xué)報:信息科學(xué)版,2003,28(1):3944.
[2]夏智宏.移動定位與基于手機(jī)的位置服務(wù)系統(tǒng)[J].測繪與空間地理信息,2005,28(1):4548.
[3]DAO D, RIZOS C, WANG J L. Locationbased services: technical and business issues[J]. GPS Solutions, 2002,6(3):169178.
[4]AGRE J,AKINYEMI A,JIL S, et al. A layered architecture for locationbased services in wireless Ad hoc networks[C]//Proc of IEEE Aerospace Conference.[S.l.]: IEEE Press, 2002.
[5]YU S J, AUFAURE M A ,CULLOT N, et al. A colla borative framework for locationbased services[R]. Austria: Klagenfurt/Velden, 2003.
[6]謝智穎,李清泉,左小清.基于SVG的開放式LBS系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].武漢大學(xué)學(xué)報:信息科學(xué)版,2003,28(1):7479.
[7 ]徐愛民,呂志平,李建.基于J 2EE開發(fā)平臺的LBS系統(tǒng)研究[J].測繪通報,2004(3):3538.
[8]LIU Z. A Javabased wireless framework for locationbased services applications[D]. Calgary: The University of Calgary, 2002.
[9]陳惠榮,游雄.地理空間元數(shù)據(jù)及其相關(guān)技術(shù)的探討[J].測繪學(xué)院學(xué)報, 2003,20(4):290292.