林德樹 (長江大學(xué)計算機科學(xué)學(xué)院,湖北 荊州434023)
程彩鳳 (長江大學(xué)工程技術(shù)學(xué)院信息系,湖北 荊州434020)
Agent是模擬人類行為與關(guān)系具有一定智能并能夠自主運行和提供相應(yīng)服務(wù)的程序,其源于人工智能領(lǐng)域。移動Agen是一個能夠在異構(gòu)網(wǎng)絡(luò)中自主地從一臺主機遷移到另外一臺主機,并可與其他Agent或資源交互的程序[1]。目前各種移動設(shè)備的上網(wǎng)過程中,網(wǎng)速和帶寬都比較有限,這樣就限制了移動網(wǎng)絡(luò)的發(fā)展,移動Agent可以將請求Agent動態(tài)地移動到服務(wù)器端執(zhí)行,由于Agent是跨平臺的,可以做到異構(gòu)網(wǎng)絡(luò)傳輸,這樣擴大了移動Agent系統(tǒng)的使用范圍。目前,移動互聯(lián)網(wǎng)發(fā)展迅猛,很多企業(yè)都建立了各自的手機應(yīng)用程序,但據(jù)此開發(fā)出來的客戶應(yīng)用對網(wǎng)絡(luò)流量有很大消耗。針對上述問題,筆者對一種基于移動Agent的LBS(Location Based Service,基于位置的服務(wù))系統(tǒng)進(jìn)行了研究。
LBS系統(tǒng)以移動用戶為主要服務(wù)對象,是一種基于移動計算環(huán)境的應(yīng)用系統(tǒng)。移動計算環(huán)境是指以移動互聯(lián)網(wǎng)為核心平臺、采用移動計算技術(shù)實現(xiàn)信息處理的一種計算環(huán)境,其物理含義包括隨遇性、流動性和佩帶性等3方面的內(nèi)容[2]。隨遇性是指用戶在移動過程中隨時可接受委托其使用的計算系統(tǒng)進(jìn)行信息處理;流動性是指由于計算節(jié)點總處于移動狀態(tài),其網(wǎng)絡(luò)環(huán)境不斷變換,因而計算環(huán)境也在不斷變化;佩帶性是指人機緊密結(jié)合,其促成了一種新的 “以人為本”的人機交互方式,這種方式由微型的、依附在人體上的計算機系統(tǒng)來實現(xiàn),可以認(rèn)為是移動計算的最高表現(xiàn)。
在移動計算環(huán)境中,移動終端通常是通過移動服務(wù)支持節(jié)點 MSS(Mobile ServiceStation,移動基站)與固定網(wǎng)絡(luò)連接的[3]。LBS系統(tǒng)由LBS服務(wù)器、LBS業(yè)務(wù)管理服務(wù)器、計費服務(wù)器、數(shù)據(jù)中心、移動服務(wù)網(wǎng)關(guān)和移動定位網(wǎng)關(guān)構(gòu)成。在這樣一種計算環(huán)境中,高速寬帶互聯(lián)網(wǎng)構(gòu)成連接固定節(jié)點的主干,固定網(wǎng)絡(luò)中擁有若干支持移動服務(wù)的節(jié)點MSS,每個MSS負(fù)責(zé)管理一個無線網(wǎng)絡(luò)單元 (如無線廣播單元、無線局域網(wǎng)單元等),單元內(nèi)的移動終端與MSS之間通過無線通信連接。基于移動Agent的LBS系統(tǒng)結(jié)構(gòu)圖如圖1所示?;谝苿覣gent的LBS系統(tǒng)相對于傳統(tǒng)的LBS系統(tǒng)的主要變化是通信環(huán)境的改變,即增加了移動Agent通信和運行的環(huán)境,這樣LBS服務(wù)器、LBS業(yè)務(wù)管理服務(wù)器、計費服務(wù)器和數(shù)據(jù)中心之間可以借助移動Agent進(jìn)行通信。根據(jù)移動Agent處理任務(wù)復(fù)雜度的不同,在必要時還可單獨設(shè)立移動Agent服務(wù)器,由此專門負(fù)責(zé)移動Agent代碼庫的管理和移動Agent任務(wù)的分派。
圖1 基于移動Agent的LBS系統(tǒng)結(jié)構(gòu)圖
基于Android的LBS系統(tǒng)按照層次結(jié)構(gòu)來進(jìn)行劃分,可以分為服務(wù)層、用戶層、管理層和數(shù)據(jù)層。用戶可以通過客戶端輸入查詢信息,客戶端軟件根據(jù)查詢來生成相應(yīng)的Agent來進(jìn)行信息檢索,數(shù)據(jù)庫再根據(jù)Agent的檢索反饋元數(shù)據(jù)信息給用戶Agent和網(wǎng)絡(luò)應(yīng)用程序或瀏覽器?;谝苿覣gent的LBS系統(tǒng)在Android上的實現(xiàn)框圖如圖2所示。
數(shù)據(jù)庫服務(wù)Agent主要負(fù)責(zé)對其他各個Agent的管理與協(xié)調(diào)工作,接受用戶請求任務(wù),轉(zhuǎn)換數(shù)據(jù)請求格式,并分解成相應(yīng)的子任務(wù)發(fā)送到集成Agent服務(wù)層由服務(wù)Agent來實現(xiàn)數(shù)據(jù)管理,具體包括用戶Agent管理、Agent注冊、查詢?nèi)蝿?wù)、任務(wù)求解并返回結(jié)果[4]。用戶Agent進(jìn)行查詢請求并利用元數(shù)據(jù)的方式提交,首先進(jìn)行消息處理,檢測消息格式是否正確,如果消息正確則移動到目標(biāo)地址,根據(jù)用戶Agent建立相應(yīng)的任務(wù)請求。并發(fā)送給集成Agent,最后等待返回結(jié)果。如果消息錯誤則返回到消息處理過程并通知用戶Agent消息。服務(wù)Agent流程圖如圖3所示。
圖2 基于移動Agent的LBS系統(tǒng)在Android上的實現(xiàn)框圖
圖3 服務(wù)Agent流程圖
集成Agent操作的對象為元數(shù)據(jù),其為各層之間數(shù)據(jù)交換標(biāo)準(zhǔn)格式,可以采用較少的數(shù)據(jù)盡可能表示多而全的信息。雖然LBS系統(tǒng)中的數(shù)據(jù)較多,但是各種數(shù)據(jù)庫的類型也比較多,為此通過元數(shù)據(jù)將各種數(shù)據(jù)轉(zhuǎn)化成統(tǒng)一格式。通過對異構(gòu)數(shù)據(jù)庫進(jìn)行轉(zhuǎn)化,采用XML進(jìn)行描述、交換與保存,可以保證LBS系統(tǒng)的靈活性與開放性。采用數(shù)據(jù)庫實現(xiàn)基于內(nèi)容的檢索服務(wù),能夠有效保證LBS系統(tǒng)在大容量交換過程中有較高的查準(zhǔn)率和查全率。用戶提交的查詢操作提供給Agent功能模塊進(jìn)行解析,然后可以進(jìn)行元數(shù)據(jù)信息查詢,這樣就可以把元數(shù)據(jù)信息從XML格式轉(zhuǎn)換并導(dǎo)入到數(shù)據(jù)庫中以實現(xiàn)全局查詢的分解,最終實現(xiàn)各個數(shù)據(jù)庫的子查詢[5]。
采用JAVA開發(fā)了2個手機應(yīng)用客戶端 (即傳統(tǒng)方式手機客戶端和基于移動Agent的手機客戶端)并分別進(jìn)行網(wǎng)絡(luò)訪問流量監(jiān)測。檢測流量采用Android系統(tǒng)提供的數(shù)據(jù), (見表1)。由表1可知,采用移動Agent技術(shù)處理大量查詢數(shù)據(jù)時,其對異構(gòu)網(wǎng)絡(luò)訪問速度更快。這是因為查詢和處理操作都是在本地進(jìn)行的,避免了大量中間數(shù)據(jù)的傳送,因此大大降低了網(wǎng)絡(luò)延遲,節(jié)省了網(wǎng)絡(luò)帶寬,能夠?qū)崿F(xiàn)負(fù)載平衡。
表1 試驗數(shù)據(jù)統(tǒng)計表
為了解決傳統(tǒng)手機客戶端消耗較大網(wǎng)絡(luò)流量的問題,設(shè)計了一種基于移動Agent的LBS系統(tǒng)。實際應(yīng)用表明,利用該系統(tǒng)能夠有效地降低網(wǎng)絡(luò)流量,同時能夠較好地完成客戶端的各項功能。隨著3G網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,相信在不久的將來,移動Agent在分布式計算和分布式網(wǎng)絡(luò)通信方面的應(yīng)用會更加廣泛。
[1]張云勇,劉錦德 .移動Agent技術(shù) [M].北京:清華大學(xué)出版社,2003.
[2]丁建國,柳惠琳,陳涵生,等 .移動Agent的一種安全認(rèn)證機制 [J].計算機工程,2001(2):74-75.
[3]申永軍,史小平,李小青 .移動代理安全信任模型的研究 [J].微計算機信息,2009(25):39-41.
[4]楊曉元,魏立線 .計算機密碼學(xué) [M].西安:西安交通大學(xué)出版社,2007.
[5]Denis T,Johnson S.程序員密碼學(xué) [M].沈曉斌譯 .北京:機械工業(yè)出版社,2007.