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