嵌入式移動(dòng)數(shù)據(jù)庫(kù)中的移動(dòng)Agent問(wèn)題探討
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1 引言
隨著移動(dòng)通信技術(shù)的迅速發(fā)展以及移動(dòng)計(jì)算終端的大量普及,使得人們隨時(shí)隨地訪問(wèn)任何所需信息成為可能。對(duì)于傳統(tǒng)的分布式計(jì)算以及分布式數(shù)據(jù)庫(kù)的研究都是基于有線(xiàn)網(wǎng)絡(luò)和固定主機(jī)的,采用了一些如固定網(wǎng)絡(luò)連接、對(duì)等通信代價(jià)、主機(jī)結(jié)點(diǎn)固定不變等默認(rèn)的隱含假設(shè)。若計(jì)算結(jié)點(diǎn)在自由移動(dòng)的過(guò)程中與網(wǎng)絡(luò)建立連接,則上述這些假設(shè)條件不再成立,由此需要一種更加復(fù)雜、靈活的分布式計(jì)算環(huán)境,因此研究移動(dòng)計(jì)算以及移動(dòng)數(shù)據(jù)庫(kù)成為一個(gè)新興的熱點(diǎn)領(lǐng)域。
移動(dòng)Agent作為一種前沿技術(shù),也是計(jì)算機(jī)領(lǐng)域的一個(gè)研究熱點(diǎn)。近年來(lái)國(guó)內(nèi)外對(duì)移動(dòng)Agent技術(shù)研究的投入都非常大,并且在移動(dòng)Agent的并行計(jì)算、移動(dòng)Agent系統(tǒng)安全、多Agent建模等方面都有突出成果。移動(dòng)Agent作為一種可攜帶執(zhí)行代碼和數(shù)據(jù)的遷移對(duì)象,帶有一定的智能性,能夠自主結(jié)合客戶(hù)機(jī)和服務(wù)器的知識(shí),并在服務(wù)器上進(jìn)行推理以確定自己的下一步工作。其次移動(dòng)Agent對(duì)于用戶(hù)沒(méi)有實(shí)時(shí)網(wǎng)絡(luò)連接的要求,僅僅是在發(fā)送請(qǐng)求和接受結(jié)果時(shí)需要網(wǎng)絡(luò)連接,可以大幅減少無(wú)線(xiàn)通信網(wǎng)絡(luò)上的通信流量,基于移動(dòng)Agent具有的這些優(yōu)勢(shì),在嵌入式移動(dòng)數(shù)據(jù)庫(kù)中引入移動(dòng)Agent技術(shù)并進(jìn)行研究探討,具有一定的價(jià)值。
2 移動(dòng)Agent技術(shù)
移動(dòng)Agent是一個(gè)代替人或其它程序執(zhí)行某種任務(wù)的程序,它在復(fù)雜的網(wǎng)絡(luò)系統(tǒng)中能自主地從一臺(tái)主機(jī)移動(dòng)到另一臺(tái)主機(jī)[1],該程序能夠選擇何時(shí)、何地移動(dòng),在移動(dòng)時(shí)該程序可以根據(jù)要求掛起其運(yùn)行,然后轉(zhuǎn)移到網(wǎng)絡(luò)的其它地方重新開(kāi)始或繼續(xù)執(zhí)行,最后返回結(jié)果和消息。移動(dòng)Agent具有自治性、移動(dòng)性、智能性、異步計(jì)算性等特性。
從實(shí)現(xiàn)技術(shù)的角度看,移動(dòng)Agent系統(tǒng)主要由移動(dòng)Agent平臺(tái)(MAE)和移動(dòng)Agent(MA) 組成。移動(dòng)Agent平臺(tái)是一個(gè)虛擬機(jī),通常被稱(chēng)為移動(dòng)Agent服務(wù)器,為移動(dòng)Agent的移動(dòng)和執(zhí)行提供執(zhí)行環(huán)境,為移動(dòng)Agent的發(fā)射、接收、恢復(fù)、安全管理和服務(wù)調(diào)用等提供基礎(chǔ)設(shè)備設(shè)施。移動(dòng)Agent攜帶完成計(jì)算任務(wù)所需的代碼和數(shù)據(jù)以及Agent的運(yùn)行狀態(tài),在網(wǎng)絡(luò)上不同主機(jī)之間遷移并完成相應(yīng)的動(dòng)作,移動(dòng)Agent遷移示意圖如圖1。
將移動(dòng)Agent技術(shù)應(yīng)用于嵌入式移動(dòng)數(shù)據(jù)庫(kù)主要具有如下一些優(yōu)勢(shì):
1)移動(dòng)Agent可以減少通信網(wǎng)上的流量。將任務(wù)請(qǐng)求通過(guò)Agent移動(dòng)到服務(wù)器端執(zhí)行,使得Agent不經(jīng)過(guò)網(wǎng)絡(luò)傳輸這個(gè)中間環(huán)節(jié)而直接訪問(wèn)服務(wù)器資源,任務(wù)在遠(yuǎn)地執(zhí)行完后直接返回結(jié)果,從而降低系統(tǒng)對(duì)網(wǎng)絡(luò)帶寬的依賴(lài),這恰好適合移動(dòng)計(jì)算環(huán)境所具有的斷接性的特點(diǎn);2)移動(dòng)Agent可以異步計(jì)算。移動(dòng)Agent不需要統(tǒng)一的調(diào)度,由用戶(hù)創(chuàng)建的移動(dòng)Agent可以異步的在不同網(wǎng)絡(luò)節(jié)點(diǎn)上運(yùn)行,對(duì)于相對(duì)復(fù)雜的任務(wù),用戶(hù)還可以創(chuàng)建多個(gè)Agent,同時(shí)在相同或不同的節(jié)點(diǎn)上運(yùn)行,不需要客戶(hù)端與主機(jī)永久連接。也恰好適合移動(dòng)計(jì)算環(huán)境所具有的低帶寬和弱可靠性的特點(diǎn);3)移動(dòng)Agent可以方便的訪問(wèn)異構(gòu)數(shù)據(jù)庫(kù)。在數(shù)據(jù)庫(kù)系統(tǒng)中存在一些異構(gòu)的環(huán)境,此時(shí)如果采用傳統(tǒng)的數(shù)據(jù)庫(kù)訪問(wèn)方式,往往需要客戶(hù)端預(yù)先安裝多種類(lèi)型的數(shù)據(jù)庫(kù)連接驅(qū)動(dòng)程序,并在訪問(wèn)時(shí)執(zhí)行這些連接驅(qū)動(dòng)程序,這會(huì)大大增加移動(dòng)終端的負(fù)載[2],因此,傳統(tǒng)的數(shù)據(jù)庫(kù)訪問(wèn)方式很難適用于移動(dòng)計(jì)算環(huán)境中移動(dòng)數(shù)據(jù)庫(kù)的訪問(wèn),但由于移動(dòng)Agent本身的特性卻使得訪問(wèn)異構(gòu)數(shù)據(jù)庫(kù)較其他方式更加方便;4)移動(dòng)Agent可以方便的實(shí)現(xiàn)負(fù)載平衡。移動(dòng)Agent能攜帶自身的代碼從一個(gè)平臺(tái)移動(dòng)到另一個(gè)平臺(tái),在目的主機(jī)上也無(wú)需預(yù)先安裝就能運(yùn)行,因此移動(dòng)Agent可以方便的實(shí)現(xiàn)負(fù)載平衡。
3、 基于移動(dòng)Agent的移動(dòng)數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)
傳統(tǒng)的基于Agent的移動(dòng)數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)一般采用如圖2所示的客戶(hù)層、客戶(hù)Agent層、服務(wù)器Agent層、服務(wù)器層的體系結(jié)構(gòu),該結(jié)構(gòu)能對(duì)移動(dòng)數(shù)據(jù)庫(kù)的數(shù)據(jù)復(fù)制與緩存、斷接期間的管理、減少客戶(hù)與服務(wù)器之間的通信量等方面都能提供有效的支持。但該體系結(jié)構(gòu)對(duì)于服務(wù)器之間的協(xié)同工作、客戶(hù)端在網(wǎng)絡(luò)中的自由移動(dòng)等方面不能提供理想的支持,對(duì)此,本文采用一種更加靈活的體系結(jié)構(gòu)。該體系結(jié)構(gòu)對(duì)傳統(tǒng)的基于Agent的移動(dòng)數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)模型進(jìn)行擴(kuò)充,在客戶(hù)機(jī)和服務(wù)器之間加入一個(gè)新的層次移動(dòng)Agent層。如圖3所示。
其中客戶(hù)Agent層主要負(fù)責(zé)本地緩存以及本地事物的管理;移動(dòng)Agent層根據(jù)客戶(hù)Agent提出的任務(wù)請(qǐng)求完成相應(yīng)的功能并返回結(jié)果;服務(wù)器Agent主要負(fù)責(zé)提供數(shù)據(jù)訪問(wèn)接口?;谝苿?dòng)Agent的移動(dòng)數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)可設(shè)計(jì)成如圖4所示。
注: MSS: Mobile Support Station(具有無(wú)線(xiàn)通信接口的支持移動(dòng)計(jì)算機(jī)的固定節(jié)點(diǎn))
SVR: Server(固定主機(jī)) LDB: Local Database(本地?cái)?shù)據(jù)庫(kù))
MA: Mobile Agent (移動(dòng)代理) MC: Mobile Client(移動(dòng)客戶(hù))
4 基于移動(dòng)Agent的嵌入式移動(dòng)數(shù)據(jù)庫(kù)的研究側(cè)重點(diǎn)
1) 移動(dòng)Agent的協(xié)同。移動(dòng)Agent具有自主性,同時(shí)也具有協(xié)作性,能夠相互合作,從而高效透明的使用網(wǎng)絡(luò)上的資源[3]。通常各種數(shù)據(jù)資源存儲(chǔ)在各個(gè)不同的網(wǎng)絡(luò)節(jié)點(diǎn)上,隨著數(shù)據(jù)庫(kù)技術(shù)的發(fā)展,很多應(yīng)用都涉及到訪問(wèn)不同位置的數(shù)據(jù)庫(kù),對(duì)此,用戶(hù)可以創(chuàng)建多個(gè)Agent,讓其分散到網(wǎng)絡(luò)的多個(gè)節(jié)點(diǎn)上去執(zhí)行,當(dāng)多個(gè)移動(dòng)Agent共同完成一個(gè)任務(wù)時(shí),Agent之間需要進(jìn)行通信,移動(dòng)Agent系統(tǒng)可采用的通信方式有很多,比如 RPC,RMI等,在具體的代理系統(tǒng)中,通信的實(shí)現(xiàn)方式則有很大的差別。如:Cornell大學(xué)的Tocama通過(guò)一個(gè)攜帶數(shù)據(jù)的briefcase來(lái)交換數(shù)據(jù);General Magic公司的Telescript中Agent只能在會(huì)話(huà)點(diǎn)中用本地方法調(diào)用的方式相互通信; Dartmouth學(xué)院的D’Agent既支持底層的基于字節(jié)流的消息傳遞方式,也支持基于Agent層次的高層通信方式。
2) 移動(dòng)Agent的重定位。移動(dòng)Agent在完成客戶(hù)Agent所提出的任務(wù)時(shí),由于所需的資源可能分布在網(wǎng)絡(luò)不同的節(jié)點(diǎn)上, Agent需要在網(wǎng)絡(luò)中移動(dòng)。在移動(dòng)數(shù)據(jù)庫(kù)系統(tǒng)中,移動(dòng)客戶(hù)端的位置通常不斷發(fā)生變化,這時(shí),Agent也需要根據(jù)移動(dòng)客戶(hù)端的位置重新在網(wǎng)絡(luò)中進(jìn)行定位,從而縮短與移動(dòng)客戶(hù)端的距離,達(dá)到減少通信時(shí)間以及網(wǎng)絡(luò)通信開(kāi)銷(xiāo)的目的。對(duì)于移動(dòng)Agent的重定位方法可以采取如下方式:(1)通過(guò)使用位置服務(wù)器。當(dāng)移動(dòng)Agent創(chuàng)建時(shí),在相應(yīng)的位置服務(wù)器中注冊(cè)當(dāng)前位置,當(dāng)移動(dòng)Agent發(fā)生位置變化時(shí),要在位置服務(wù)器中更新自己的位置信息,要定位所需的移動(dòng)Agent通過(guò)向位置服務(wù)器查詢(xún)即可。(2)通過(guò)跟蹤移動(dòng)Agent的移動(dòng)路徑。移動(dòng)Agent遷移時(shí),記錄下移動(dòng)Agent的遷移路徑,從而可以根據(jù)路徑來(lái)定位所需的移動(dòng)Agent。(3)通過(guò)發(fā)送廣播消息,采取與局域網(wǎng)中ARP協(xié)議類(lèi)似的方法,向系統(tǒng)內(nèi)所有節(jié)點(diǎn)發(fā)送廣播消息,由符合的條件的移動(dòng) Agent發(fā)回響應(yīng)消息。
3) 并發(fā)操作的控制。嵌入式移動(dòng)數(shù)據(jù)庫(kù)在實(shí)際應(yīng)用中必須解決好數(shù)據(jù)的一致性[4],在移動(dòng)數(shù)據(jù)庫(kù)系統(tǒng)中,有時(shí)存在多個(gè)Agent并發(fā)訪問(wèn)共享信息的情況,為了保證數(shù)據(jù)的一致性,需要對(duì)并發(fā)操作進(jìn)行正確的控制,目的是為了避免出現(xiàn)使數(shù)據(jù)處于不一致?tīng)顟B(tài)的并發(fā)事物調(diào)度。在基于移動(dòng)Agent的系統(tǒng)中,既要維護(hù)本地?cái)?shù)據(jù)庫(kù)系統(tǒng)的一致性,也要維護(hù)網(wǎng)絡(luò)節(jié)點(diǎn)上數(shù)據(jù)庫(kù)系統(tǒng)的一致性。并發(fā)控制可以借助DBMS本身的功能來(lái)完成,因?yàn)槟壳耙话愕臄?shù)據(jù)庫(kù)管理系統(tǒng)都有較好的并發(fā)控制功能,同時(shí)也可借助一些開(kāi)發(fā)工具來(lái)實(shí)現(xiàn)并發(fā)控制。相對(duì)于傳統(tǒng)的數(shù)據(jù)庫(kù)系統(tǒng),Agent并發(fā)控制相對(duì)較復(fù)雜,可能存在網(wǎng)絡(luò)節(jié)點(diǎn)上的數(shù)據(jù)庫(kù)不完全接受Agent的控制、本地?cái)?shù)據(jù)庫(kù)與網(wǎng)絡(luò)節(jié)點(diǎn)上的數(shù)據(jù)庫(kù)之間存在相互約束關(guān)系等一些影響因素。
4)故障的恢復(fù)。在基于移動(dòng)Agent的移動(dòng)數(shù)據(jù)庫(kù)系統(tǒng)中,故障恢復(fù)較傳統(tǒng)的數(shù)據(jù)庫(kù)系統(tǒng)也相對(duì)復(fù)雜一些,需要恢復(fù)網(wǎng)絡(luò)節(jié)點(diǎn)上的各個(gè)數(shù)據(jù)庫(kù)中的數(shù)據(jù)、恢復(fù)每個(gè)Agent的本地?cái)?shù)據(jù)以及運(yùn)行時(shí)的環(huán)境。對(duì)于網(wǎng)絡(luò)節(jié)點(diǎn)上的各個(gè)數(shù)據(jù)庫(kù)以及每個(gè)Agent的本地?cái)?shù)據(jù)的故障恢復(fù)可以借助DBMS本身的功能來(lái)完成。對(duì)于Agent運(yùn)行時(shí)的環(huán)境的恢復(fù)可以通過(guò)專(zhuān)門(mén)為對(duì)應(yīng)的Agent新建一個(gè)數(shù)據(jù)庫(kù)來(lái)維護(hù)運(yùn)行時(shí)的環(huán)境,當(dāng)Agent需要對(duì)數(shù)據(jù)進(jìn)行更新操作時(shí),先更新在為其新建的那個(gè)數(shù)據(jù)庫(kù)中,當(dāng)整個(gè)事物完成時(shí)再提交數(shù)據(jù)給本地?cái)?shù)據(jù)庫(kù)。
5 結(jié)束語(yǔ)
針對(duì)移動(dòng)數(shù)據(jù)庫(kù)具有的移動(dòng)性、斷接性、網(wǎng)絡(luò)條件多樣性、網(wǎng)絡(luò)通信的非對(duì)稱(chēng)性、移動(dòng)計(jì)算機(jī)的弱電源能力等特性,將移動(dòng)Agent技術(shù)引入到移動(dòng)數(shù)據(jù)庫(kù)中,移動(dòng)Agent計(jì)算模式能有效的減少網(wǎng)絡(luò)通信流量、減少訪問(wèn)服務(wù)器的延遲、支持?jǐn)嘟硬僮鳌⒅С之惒接?jì)算等,使得移動(dòng)Agent的優(yōu)點(diǎn)得到了很大的發(fā)揮,有助于實(shí)現(xiàn)移動(dòng)數(shù)據(jù)庫(kù)的各種操作。由于移動(dòng)Agent技術(shù)本身還處于發(fā)展過(guò)程中,應(yīng)用移動(dòng)Agent來(lái)完善移動(dòng)數(shù)據(jù)庫(kù)技術(shù)還有待于更加深入的研究和探索。
本文作者創(chuàng)新點(diǎn):
鑒于在分布式數(shù)據(jù)庫(kù)中使用的多層架構(gòu)技術(shù)在訪問(wèn)量大的情況下能較好的適應(yīng)數(shù)據(jù)庫(kù)的各種操作,筆者在移動(dòng)數(shù)據(jù)庫(kù)中借鑒其相關(guān)技術(shù)同時(shí)利用了移動(dòng)Agent的特點(diǎn),并對(duì)由此產(chǎn)生的部分問(wèn)題探討了其初步的解決方式。
參考文獻(xiàn):
[1] 朱淼良,邱瑜.移動(dòng)代理系統(tǒng)綜述[J],計(jì)算機(jī)研究與發(fā)展,2001,38(1):16-25.
[2]王彤,王良. 移動(dòng)計(jì)算中基于Mobile Agent的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù),小型微型計(jì)算機(jī)系統(tǒng),2002,23(10):1165-1168.
[3] 劉振鵬等.基于協(xié)同式移動(dòng)Agent分布式數(shù)據(jù)庫(kù)系統(tǒng)研究[J], 計(jì)算機(jī)工程與設(shè)計(jì), 2004,24(11):10-12.
[4] 牛立新,關(guān)永,劉旭敏. 嵌入式移動(dòng)數(shù)據(jù)庫(kù)研究, 微計(jì)算機(jī)信息, 2006,第22卷第1-2期,85-87頁(yè)轉(zhuǎn)251頁(yè)