嵌入式移動(dòng)數(shù)據(jù)庫中的移動(dòng)Agent問題探討
4 基于移動(dòng)Agent的嵌入式移動(dòng)數(shù)據(jù)庫的研究側(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ù)庫技術(shù)的發(fā)展,很多應(yīng)用都涉及到訪問不同位置的數(shù)據(jù)庫,對此,用戶可以創(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通過一個(gè)攜帶數(shù)據(jù)的briefcase來交換數(shù)據(jù);General Magic公司的Telescript中Agent只能在會(huì)話點(diǎn)中用本地方法調(diào)用的方式相互通信; Dartmouth學(xué)院的D’Agent既支持底層的基于字節(jié)流的消息傳遞方式,也支持基于Agent層次的高層通信方式。
2) 移動(dòng)Agent的重定位。移動(dòng)Agent在完成客戶Agent所提出的任務(wù)時(shí),由于所需的資源可能分布在網(wǎng)絡(luò)不同的節(jié)點(diǎn)上, Agent需要在網(wǎng)絡(luò)中移動(dòng)。在移動(dòng)數(shù)據(jù)庫系統(tǒng)中,移動(dòng)客戶端的位置通常不斷發(fā)生變化,這時(shí),Agent也需要根據(jù)移動(dòng)客戶端的位置重新在網(wǎng)絡(luò)中進(jìn)行定位,從而縮短與移動(dòng)客戶端的距離,達(dá)到減少通信時(shí)間以及網(wǎng)絡(luò)通信開銷的目的。對于移動(dòng)Agent的重定位方法可以采取如下方式:(1)通過使用位置服務(wù)器。當(dāng)移動(dòng)Agent創(chuàng)建時(shí),在相應(yīng)的位置服務(wù)器中注冊當(dāng)前位置,當(dāng)移動(dòng)Agent發(fā)生位置變化時(shí),要在位置服務(wù)器中更新自己的位置信息,要定位所需的移動(dòng)Agent通過向位置服務(wù)器查詢即可。(2)通過跟蹤移動(dòng)Agent的移動(dòng)路徑。移動(dòng)Agent遷移時(shí),記錄下移動(dòng)Agent的遷移路徑,從而可以根據(jù)路徑來定位所需的移動(dòng)Agent。(3)通過發(fā)送廣播消息,采取與局域網(wǎng)中ARP協(xié)議類似的方法,向系統(tǒng)內(nèi)所有節(jié)點(diǎn)發(fā)送廣播消息,由符合的條件的移動(dòng) Agent發(fā)回響應(yīng)消息。
3) 并發(fā)操作的控制。嵌入式移動(dòng)數(shù)據(jù)庫在實(shí)際應(yīng)用中必須解決好數(shù)據(jù)的一致性[4],在移動(dòng)數(shù)據(jù)庫系統(tǒng)中,有時(shí)存在多個(gè)Agent并發(fā)訪問共享信息的情況,為了保證數(shù)據(jù)的一致性,需要對并發(fā)操作進(jìn)行正確的控制,目的是為了避免出現(xiàn)使數(shù)據(jù)處于不一致狀態(tài)的并發(fā)事物調(diào)度。在基于移動(dòng)Agent的系統(tǒng)中,既要維護(hù)本地?cái)?shù)據(jù)庫系統(tǒng)的一致性,也要維護(hù)網(wǎng)絡(luò)節(jié)點(diǎn)上數(shù)據(jù)庫系統(tǒng)的一致性。并發(fā)控制可以借助DBMS本身的功能來完成,因?yàn)槟壳耙话愕臄?shù)據(jù)庫管理系統(tǒng)都有較好的并發(fā)控制功能,同時(shí)也可借助一些開發(fā)工具來實(shí)現(xiàn)并發(fā)控制。相對于傳統(tǒng)的數(shù)據(jù)庫系統(tǒng),Agent并發(fā)控制相對較復(fù)雜,可能存在網(wǎng)絡(luò)節(jié)點(diǎn)上的數(shù)據(jù)庫不完全接受Agent的控制、本地?cái)?shù)據(jù)庫與網(wǎng)絡(luò)節(jié)點(diǎn)上的數(shù)據(jù)庫之間存在相互約束關(guān)系等一些影響因素。
4)故障的恢復(fù)。在基于移動(dòng)Agent的移動(dòng)數(shù)據(jù)庫系統(tǒng)中,故障恢復(fù)較傳統(tǒng)的數(shù)據(jù)庫系統(tǒng)也相對復(fù)雜一些,需要恢復(fù)網(wǎng)絡(luò)節(jié)點(diǎn)上的各個(gè)數(shù)據(jù)庫中的數(shù)據(jù)、恢復(fù)每個(gè)Agent的本地?cái)?shù)據(jù)以及運(yùn)行時(shí)的環(huán)境。對于網(wǎng)絡(luò)節(jié)點(diǎn)上的各個(gè)數(shù)據(jù)庫以及每個(gè)Agent的本地?cái)?shù)據(jù)的故障恢復(fù)可以借助DBMS本身的功能來完成。對于Agent運(yùn)行時(shí)的環(huán)境的恢復(fù)可以通過專門為對應(yīng)的Agent新建一個(gè)數(shù)據(jù)庫來維護(hù)運(yùn)行時(shí)的環(huán)境,當(dāng)Agent需要對數(shù)據(jù)進(jìn)行更新操作時(shí),先更新在為其新建的那個(gè)數(shù)據(jù)庫中,當(dāng)整個(gè)事物完成時(shí)再提交數(shù)據(jù)給本地?cái)?shù)據(jù)庫。
5 結(jié)束語
針對移動(dòng)數(shù)據(jù)庫具有的移動(dòng)性、斷接性、網(wǎng)絡(luò)條件多樣性、網(wǎng)絡(luò)通信的非對稱性、移動(dòng)計(jì)算機(jī)的弱電源能力等特性,將移動(dòng)Agent技術(shù)引入到移動(dòng)數(shù)據(jù)庫中,移動(dòng)Agent計(jì)算模式能有效的減少網(wǎng)絡(luò)通信流量、減少訪問服務(wù)器的延遲、支持?jǐn)嘟硬僮?、支持異步?jì)算等,使得移動(dòng)Agent的優(yōu)點(diǎn)得到了很大的發(fā)揮,有助于實(shí)現(xiàn)移動(dòng)數(shù)據(jù)庫的各種操作。由于移動(dòng)Agent技術(shù)本身還處于發(fā)展過程中,應(yīng)用移動(dòng)Agent來完善移動(dòng)數(shù)據(jù)庫技術(shù)還有待于更加深入的研究和探索。
本文作者創(chuàng)新點(diǎn):
鑒于在分布式數(shù)據(jù)庫中使用的多層架構(gòu)技術(shù)在訪問量大的情況下能較好的適應(yīng)數(shù)據(jù)庫的各種操作,筆者在移動(dòng)數(shù)據(jù)庫中借鑒其相關(guān)技術(shù)同時(shí)利用了移動(dòng)Agent的特點(diǎn),并對由此產(chǎ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ù)庫訪問技術(shù),小型微型計(jì)算機(jī)系統(tǒng),2002,23(10):1165-1168.
[3] 劉振鵬等.基于協(xié)同式移動(dòng)Agent分布式數(shù)據(jù)庫系統(tǒng)研究[J], 計(jì)算機(jī)工程與設(shè)計(jì), 2004,24(11):10-12.
[4] 牛立新,關(guān)永,劉旭敏. 嵌入式移動(dòng)數(shù)據(jù)庫研究, 微計(jì)算機(jī)信息, 2006,第22卷第1-2期,85-87頁轉(zhuǎn)251頁
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論