摘要:該文研究和分析了移動(dòng)Agent系統(tǒng)中常見的四個(gè)通信技術(shù)問題。這四個(gè)問題分別是:移動(dòng)Agent的命名,移動(dòng)Agent的定位,移動(dòng)Agent的消息處理及移動(dòng)Agent通信可靠性。
關(guān)鍵詞:移動(dòng)Agent;命名機(jī)制;定位機(jī)制;消息傳遞;通信失效
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2009)05-1057-03
Research and Analysis of the Mobile Agent Communication Technology
FAN Bin, LIU Xin, LI Wei-hua
(Shenyang Institute of Engineering,Shenyang 110136,China)
Abstract: Research and Analysis of the four useful communication technology problems about mobile agent system. These four problems are: naming for mobile agents, locating for mobile agents, producing messages about mobile agents and high-reliability model for mobile agent communication.
Key words: mobile agent; naming method; locating method; message delivery; communicating invalidation
1 引言
移動(dòng)Agent系統(tǒng)主要從“如何支持移動(dòng)”的角度來設(shè)計(jì)通信機(jī)制。在傳統(tǒng)的分布式計(jì)算環(huán)境中,計(jì)算實(shí)體一旦被創(chuàng)建,他們的位置便固定下來,在整個(gè)生命期內(nèi)不會(huì)改變,發(fā)送方只需得到接收方的當(dāng)前位置即可始終與之通信。在基于移動(dòng)Agent的計(jì)算環(huán)境中,由于移動(dòng)Agent的位置可能經(jīng)常變動(dòng),因此Agent之間進(jìn)行通信需要考慮四個(gè)問題:
1) 移動(dòng)Agent的命名;2) 移動(dòng)Agent的定位;3) 移動(dòng)Agent的消息處理;4) 移動(dòng)Agent通信可靠性。
2 移動(dòng)Agent系統(tǒng)的命名
2.1 命名的必要性
在設(shè)計(jì)一個(gè)移動(dòng)Agent系統(tǒng)時(shí)要綜合考慮許多方面的問題,其中,命名是移動(dòng)Agent系統(tǒng)的一個(gè)十分重要的問題,它關(guān)系到整個(gè)系統(tǒng)的靈活性、有效性和可擴(kuò)展性。
2.2 對(duì)移動(dòng)Agent的命名及名字解析機(jī)制的研究與分析
目前大多數(shù)移動(dòng)Agent系統(tǒng)的命名是基于主機(jī)名加端口號(hào),并通過DNS(Domain Name System,域名系統(tǒng))解析。如美國(guó)Darmouth College的Agent TCL[1]和IBM的Aglets[2]就是使用這樣的名字。
在這樣的系統(tǒng)中,當(dāng)一個(gè)Agent遷移之后,它的名字也要跟著改變,這使得應(yīng)用程序在跟蹤Agent時(shí)變得很復(fù)雜。因此,最好是能在應(yīng)用層上提供一個(gè)位置透明的名字。達(dá)到這樣要求的方法有兩種:一是為遠(yuǎn)端的實(shí)體提供一個(gè)本地的Agent,該Agent封裝了它們的實(shí)際位置。當(dāng)實(shí)體移動(dòng)時(shí),系統(tǒng)負(fù)責(zé)更新它們的位置信息,由此在應(yīng)用層上提供了位置透明性。如Voyager Info-Systems的Voyager[3]就是使用這種方法來為Agent命名的。另一種方法是使用全局的、與位置無關(guān)的名字,即使實(shí)體的位置發(fā)生了改變,它的名字也不發(fā)生變化。這就需要提供一個(gè)名字服務(wù),將命名實(shí)體象征性的名字映射到它的實(shí)際位置上。在美國(guó)Minnesota大學(xué)計(jì)算機(jī)系開發(fā)的基于Java的移動(dòng)Agent系統(tǒng)Ajanta中,所有的實(shí)體都是采用的這種全局一致的名字。顯然,使用第二種命名方法對(duì)移動(dòng)對(duì)象的跟蹤和通信完全可以實(shí)現(xiàn)位置透明性,極大地方便了移動(dòng)Agent系統(tǒng)通信模型等的建立。因此可見,使用全局的、與位置無關(guān)的名字是解決移動(dòng)Agent系統(tǒng)中名字解析問題的理想選擇。
3 移動(dòng)Agent的定位
3.1 移動(dòng)Agent定位機(jī)制的研究
由于移動(dòng)Agent可根據(jù)特定的任務(wù)和路線,在不同的主機(jī)上靈活遷移,這種位置上的不確定性也造成了移動(dòng)Agent定位的困難。一般來說,定位移動(dòng)Agent可有3種機(jī)制[4]:
1) 使用日志:移動(dòng)Agent會(huì)在它訪問過的每臺(tái)主機(jī)上留下跟蹤信息,這些信息指明了Agent移動(dòng)的下一站,通過跟蹤這些信息可以定位Agent。那些無效了的Agent的跟蹤信息會(huì)被垃圾收集程序依據(jù)一定的過期時(shí)間或Agent發(fā)出的通告自動(dòng)收集??梢酝ㄟ^沿路跟蹤和重定向兩種方法來使用跟蹤信息定位Agent。
2) 蠻力搜索:在多個(gè)目的地中搜索Agent,以便將其定位。搜索可以在多個(gè)目的地中并行或順序展開。
3) 注冊(cè):Agent在一個(gè)預(yù)定義的名字服務(wù)器中更新它的位置信息。該名字服務(wù)器允許Agent進(jìn)行注冊(cè)、注銷或定位。別的Agent用這個(gè)名字服務(wù)器來定位這個(gè)Agent。在實(shí)際應(yīng)用中,進(jìn)行通信的Agent須事先約定一個(gè)名字服務(wù)器。如果每一個(gè)Agent服務(wù)器都相應(yīng)有一個(gè)名字服務(wù)器的話,就可以簡(jiǎn)化約定的達(dá)成。當(dāng)多個(gè)Agent來自同一臺(tái)源主機(jī)或到達(dá)同一臺(tái)目的主機(jī),它們只需簡(jiǎn)單地共享與它們的源主機(jī)或目的主機(jī)相聯(lián)系的缺省名字服務(wù)器就可以了,無需事先交換名字服務(wù)器的地址。
3.2 移動(dòng)Agent定位機(jī)制的分析
通過上面的介紹可知:使用日志的方法需要知道Agent的源主機(jī)或其訪問過的任意一臺(tái)主機(jī)。蠻力搜索方法易于在應(yīng)用中實(shí)現(xiàn),且獨(dú)立于外部機(jī)制,如跟蹤信息或名字服務(wù)器。而應(yīng)用注冊(cè)方法的一個(gè)典型場(chǎng)合是多個(gè)Agent同時(shí)就一個(gè)任務(wù)被分配到多個(gè)地點(diǎn)工作,若它們之間需要通信的話,只需共享源主機(jī)的名字服務(wù)器就可以了。
因此,對(duì)于不同的系統(tǒng),我們可以依據(jù)系統(tǒng)的安全和性能的需要來具體選擇使用哪種定位機(jī)制。
4 移動(dòng)Agent的消息傳送機(jī)制
目前許多移動(dòng)Agent系統(tǒng)均提供了與其它移動(dòng)Agent的遠(yuǎn)程通信機(jī)制,在現(xiàn)有的移動(dòng)Agent系統(tǒng)中,Agent間的消息傳遞機(jī)制按照實(shí)現(xiàn)方法一般可分為[5]:廣播法,鏈狀追蹤法,基站法和集中注冊(cè)法。下面分別加以介紹和分析。
4.1 廣播法
發(fā)送消息的Agent從其根節(jié)點(diǎn)開始發(fā)送,按照某種規(guī)則(如深度優(yōu)先、廣度優(yōu)先) 向網(wǎng)絡(luò)中所有可能接收消息的Agent所在的主機(jī)進(jìn)行廣播。接收Agent當(dāng)前所在的主機(jī)發(fā)現(xiàn)消息的接收對(duì)象正運(yùn)行在自己的Agent環(huán)境中,則接收該消息并將其轉(zhuǎn)交給目標(biāo)Agent,而其余主機(jī)不接收該消息。
廣播法的工作原理如圖1所示:
對(duì)于局域網(wǎng)來說,廣播法不失為一種簡(jiǎn)單的消息傳遞機(jī)制,其最大的優(yōu)點(diǎn)就是算法簡(jiǎn)單、通信速度快。但對(duì)于廣域網(wǎng)來說,發(fā)送方很難預(yù)先知道接收Agent的移動(dòng)路線,這就造成了其難以克服的弱點(diǎn)。因此可知,廣播法只能適用于小規(guī)模的應(yīng)用,而不適宜在大規(guī)模的應(yīng)用中(如Internet環(huán)境下)。
4.2 鏈狀追蹤法
移動(dòng)Agent每當(dāng)移動(dòng)到一臺(tái)新的主機(jī)N,就把其新的地址通知給上一次所逗留的主機(jī)P,這樣P就會(huì)為該Agent生成一個(gè)記錄項(xiàng),記錄項(xiàng)中會(huì)包含該Agent的ID和一個(gè)指向主機(jī)N的指針。通過這種方式就會(huì)形成一條從Agent的初始主機(jī)到當(dāng)前所在主機(jī)的指針鏈,這樣發(fā)送方只要根據(jù)接收Agent的ID找到其初始主機(jī),然后沿著這一指針鏈即可找到目的Agent并將消息傳遞給它。
鏈狀追蹤法的原理如圖2所示。
與廣播法類似,鏈狀追蹤法的優(yōu)點(diǎn)也是算法直接、實(shí)現(xiàn)簡(jiǎn)單、運(yùn)行開銷小。但它的缺點(diǎn)也是很明顯的:通信效率低下、響應(yīng)速度緩慢;消息的傳遞存在路由迂回問題;系統(tǒng)的容錯(cuò)性和健壯性較差;可能會(huì)無端占用了主機(jī)的資源。
4.3 基站法
在基站法中,在整個(gè)移動(dòng)Agent環(huán)境中設(shè)置一臺(tái)專用的主機(jī)作為基站(Home),所有的移動(dòng)Agent都要在創(chuàng)建它的Home中注冊(cè),每次遷移成功時(shí),移動(dòng)Agent都要向Home發(fā)送其新位置,因此Home始終知道移動(dòng)Agent當(dāng)前所在的位置。當(dāng)移動(dòng)Agent之間進(jìn)行通信時(shí),消息首先發(fā)送到Home主機(jī)上,Home主機(jī)根據(jù)其記錄的移動(dòng)Agent的當(dāng)前所在主機(jī)地址將消息轉(zhuǎn)發(fā)目標(biāo)Agent。
基站法的原理如圖3所示。
該算法實(shí)現(xiàn)簡(jiǎn)單且遷移和消息發(fā)送的開銷不大,實(shí)現(xiàn)了分布式處理,具有較好的健壯性和可擴(kuò)展性,其缺點(diǎn)在于:①在移動(dòng)Agent生命周期內(nèi)必須保證基站主機(jī)的長(zhǎng)久連接,容易產(chǎn)生Home通信瓶頸問題;②每次遷移和定位移動(dòng)Agent都要與基站通信,對(duì)Home的依賴性性很強(qiáng);③不支持Agent遷移的異步運(yùn)行。
4.4 集中注冊(cè)法
與基站法相似,在集中注冊(cè)法中,整個(gè)移動(dòng)Agent環(huán)境中也需要特殊的設(shè)置一臺(tái)主機(jī)作為專用的通信服務(wù)器(Communicator),所有移動(dòng)Agent的ID及其當(dāng)前位置都記錄于該服務(wù)器中。當(dāng)移動(dòng)Agent遷移成功時(shí),需要立刻向Communicator注冊(cè)其當(dāng)前位置。當(dāng)移動(dòng)Agent之間進(jìn)行通信時(shí),對(duì)于通信發(fā)起方,其直接將接收方的ID和待發(fā)送消息發(fā)送至Communicator,由Communicator轉(zhuǎn)交給通信接收方。若通信接收方當(dāng)前正處于遷移狀態(tài),則將該消息暫存于消息隊(duì)列中,直至通信接收方完成遷移并向Communicator注冊(cè),之后Communicator將保存的所有消息都轉(zhuǎn)發(fā)給通信接收方。
集中注冊(cè)法的工作原理如圖4所示。
通過分析可知,該方法有以下優(yōu)點(diǎn):①集中注冊(cè)法的通信效率較高;②專用服務(wù)器的引入實(shí)現(xiàn)了移動(dòng)Agent之間的透明的通信;③減少了通信失效現(xiàn)象的發(fā)生。其缺點(diǎn)是:由于Communicator的使用,形成了限制系統(tǒng)性能的瓶頸,因?yàn)橄到y(tǒng)中所有的通信都必須通過服務(wù)器才能實(shí)現(xiàn),所以這種集中式的通信方式必然會(huì)造成服務(wù)器的負(fù)擔(dān)極重,一旦服務(wù)器出現(xiàn)異常情況,則必然導(dǎo)致整個(gè)系統(tǒng)陷入癱瘓。
5 通信失效問題
5.1 通信失效的定義
一般而言,移動(dòng)Agent系統(tǒng)通過消息交換以實(shí)現(xiàn)Agent間通信[6]。但在移動(dòng)Agent的通信環(huán)境中,由于Agent的自主移動(dòng)特性,常會(huì)導(dǎo)致消息被發(fā)送到某一網(wǎng)絡(luò)節(jié)點(diǎn)但接收者己經(jīng)離開而無法收到該消息。這種因?yàn)橥ㄐ胖黧w物理位置發(fā)生變化而造成的通信不正?,F(xiàn)象,我們稱為移動(dòng)通信失效[7]。
通信失效與網(wǎng)絡(luò)和節(jié)點(diǎn)故障無關(guān),是純粹由Agent的移動(dòng)造成的,它使得協(xié)作中的Agent不能及時(shí)得到協(xié)同信息,從而導(dǎo)致協(xié)作的失敗甚至造成整個(gè)系統(tǒng)的崩潰,是移動(dòng)Agent系統(tǒng)的致命缺陷。
5.2 通信失效解決方法的研究與分析
產(chǎn)生通信失效的原因在于,移動(dòng)Agent在通信過程中位置發(fā)生了變化,造成發(fā)送方獲得的是一個(gè)失效的地址。目前對(duì)于通信失效問題的解決有三種方案:鴕鳥法、預(yù)防法和檢測(cè)法。
其中,鴕鳥法忽略問題的存在,不采取任何措施,無法提供可靠的通信,故很少被采用。
預(yù)防法被目前各種移動(dòng)Agent通信算法普遍采用,具體可以分為兩種,即同步法和Home存儲(chǔ)轉(zhuǎn)發(fā)法。同步法采用同步通信的方法從結(jié)構(gòu)上避免通信失效的發(fā)生,雖能徹底解決通信失效問題,但代價(jià)太高,不僅會(huì)增加因同步帶來的通信開銷,而且會(huì)破壞移動(dòng)Agent的自由移動(dòng)性,屬于“移動(dòng)受限通信方式”。文獻(xiàn)[8]的算法屬于此類。Home存儲(chǔ)轉(zhuǎn)發(fā)法要求Home緩存所有的消息,然后再通過Push或Pull的方式轉(zhuǎn)發(fā)給移動(dòng)Agent。該方法雖然沒有限制移動(dòng)Agent的自由移動(dòng),屬上“自由移動(dòng)通信方式”,但卻大大增加了Home的通信負(fù)擔(dān),使之成為系統(tǒng)性能的瓶頸,而且系統(tǒng)的通信總流量會(huì)加倍,造成通信延退較大。文獻(xiàn)[9]的算法屬于此類。
檢測(cè)法是在通信失效發(fā)生后,采取其他方法最終將消息正確地傳遞給目標(biāo)。檢測(cè)法采用異步通信的方法,對(duì)移動(dòng)Agent的移動(dòng)不加任何限制,通信開銷少,效率高,設(shè)計(jì)合理的情況下還可以解決消息追擊問題。文獻(xiàn)[10]使用了檢測(cè)法。
綜上所述,采用預(yù)防法控制復(fù)雜,代價(jià)高昂,效率低下;檢測(cè)法既符合移動(dòng)Agent自由移動(dòng)的天性,又能保證通信的可靠性。
6 結(jié)論
隨著Internet的發(fā)展,移動(dòng)Agent作為Internet和移動(dòng)計(jì)算應(yīng)用與發(fā)展的催生物得到了越來越多的人的關(guān)注。而通信又是移動(dòng)Agent系統(tǒng)的重要組成部分,為了能夠有效的實(shí)現(xiàn)Agent之間的通信,有必要解決好通信過程中常見的通信技術(shù)問題。
參考文獻(xiàn):
[1] Darmoulh College.Agent-TCL[DB/OL].http://www.cs. darmoulh.edu,2000-10-22.
[2] IBM.Aglets Workbench[DB/OL].http: //www.trl.ibm.co.jp/aglets,1999-10-22.
[3] ObjectSpace.VoyagerCoreTechnology[DB/OL].http://www.objectspace.com/voyager,2000.
[4] 黃萍,曹陽.移動(dòng)Agent系統(tǒng)中命名和尋址方案的分析與設(shè)計(jì)[J]. 武漢大學(xué)學(xué)報(bào)(理學(xué)版), 2002, 48(1): 55-58.
[5] 褚永麗.一種高效可靠的移動(dòng)Agent 通信模型[D].長(zhǎng)春:東北師范大學(xué),2005.
[6] Tanenbaum AS, Van Steen M. Distributed Systems Principles and Paradigms[J].Prentice Hall Inc.,2002.57-66.
[7] Tao XP.Research on Internet based mobile Agent technology and application [D].Nanjing: Nanjing University,2001 (in Chinese with English abstract).
[8] 孫艷,劉弘.一種改進(jìn)的移動(dòng)Agent通信算法[J].信息技術(shù)與信息化,2006(4):104-105.
[9] 王繼曾,滿自斌.基于郵箱的移動(dòng)Agent通信機(jī)制的改進(jìn)算法[J].微計(jì)算機(jī)信息,2007,23(6):238-240.
[10] 李濤,李慧,等.一種Internet環(huán)境下移動(dòng)Agent通信機(jī)制[J].微電子學(xué)與計(jì)算機(jī),2005(07):42-45.