資源描述:
《一種改進的移動agent主動通信算法 》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在學術論文-天天文庫。
1、一種改進的移動Agent主動通信算法摘要:通信機制是Agent技術研究的重要課題,該文在移動Agent主動通信算法的基礎上,提出了一種改進的移動Agent主動通信算法,解決了可靠通信問題,通過設置時間變量和超速等待,在Agent高速移動的情況下,強迫Agent停止移動,避免消息長時間不能傳遞的問題,完成可靠的消息傳遞。關鍵詞:移動Agent 主動通信 通信失效 消息等待移動智能體(mobileAgent,簡稱MA)是當前分布計算領域的研究熱點。它可以在異構網(wǎng)絡上的主機之間自主遷移,尋找合適的資源,利用與這些資源同處一臺主機或子網(wǎng)的優(yōu)勢,處理或使用這些資源
2、,代表用戶完成特定的任務。通信機制是移動Agent的關鍵技術之一,通信的可靠性和效率直接影響到整個移動Agent系統(tǒng)的性能。1 當前研究現(xiàn)狀及存在問題1.1 移動Agent的通信機制許多移動Agent支撐系統(tǒng)均提供了移動Agent的通信機制,一是廣播方式,將網(wǎng)絡看作是以消息發(fā)起者為根結點的樹型結構,廣播方式使得消息可以按某種規(guī)則(如深度優(yōu)先,廣度優(yōu)先)在網(wǎng)絡中傳遞,直到遍歷所有的葉結點。二是消息轉(zhuǎn)發(fā)方式,又可細分為HomeAgent轉(zhuǎn)發(fā)模式和按路徑轉(zhuǎn)發(fā)模式。在HomeAgent轉(zhuǎn)發(fā)模式中,每個移動Agent對應一個駐留在初始化結點上的HomeAgent,
3、用于定位移動Agent的當前位置[1]。在按路徑轉(zhuǎn)發(fā)模式中移動Agent途經(jīng)的每個結點都保留有其下一目標結點的位置信息,所有需要傳遞給MA的消息從初始結點開始按這條路徑傳遞下去,直到移動Agent能真正接收到這些信息[2]。另外,還有一些移動智能體支撐系統(tǒng)只提供了通用的消息傳遞機制,而將由于移動Agent移動所引發(fā)的問題留給應用開發(fā)者處理。1.2 通信失效問題在移動Agent的通信過程中,經(jīng)常會發(fā)生如圖1所示的情況:AgentA向Host1上的AgentB發(fā)送消息,但在傳輸過程中,AgentB從Host1遷移到了Host2,因而,當消息到達Host1時,
4、已經(jīng)無法找到消息的接受者了,我們把這種在消息傳輸過程中目標Agent發(fā)生物理位置的變化,從而導致消息不能到達目標Agent的問題稱為通信失效問題[4]?,F(xiàn)在解決通信失效問題主要都是采用集中式的尋址方式,即基于Home的尋址機制,用Home緩存所有消息,再轉(zhuǎn)發(fā)給Agent,為了不產(chǎn)生沖突,要求Agent在遷移前必須向Home提出請求[2]。但是這種算法中Home負擔過重,存在瓶頸問題。當然,也可以采用指針式尋址,采用同步通信的方法從結構上避免了通信失效的發(fā)生[3]。2 主動通信算法2.1 主動通信算法的通信過程主動通信算法的主要過程:AgentB從“出生地
5、"Place2移動到Place3(圖2中的1);B到達Place3以后,向其Home報告新位置(圖2中的2);發(fā)送方A將要發(fā)送的消息發(fā)送給當前Place的municator(圖2中的3);municator通知接收方B的Home(圖2中的4);Home通知B到Place1取信息(圖2中的5);B主動聯(lián)系Place1的municator并取回信息(圖2中的6)。接收方的地址對于發(fā)送方是透明的,發(fā)送方在發(fā)送信息的時候只需指定接收者的名字,而不必關心接收方在哪里或是否正在移動。發(fā)送方將消息發(fā)送給本地的municator以后,即認為消息已經(jīng)正確地發(fā)送到接收方,可
6、以繼續(xù)執(zhí)行其他操作[5]。2.2 消息等待問題主動通信屬于“自由移動通信”方式,發(fā)送方和接受方在通信過程中都可以自由移動,且不會影響通信的可靠性,當接受方從發(fā)送方的municator的消息隊列中讀取消息時,接受方如果要發(fā)生移動,會觸發(fā)一個OnLeave操作,Agent離開當前位置,發(fā)送方接受一個接受方的中斷請求,此時有兩種情況,發(fā)送方的消息隊列中消息均被取走或者仍有消息未被讀取,當發(fā)生后一種情況時,接受方到達新位置后,再從其Home讀取通知,繼續(xù)讀取剩余消息。但是,如果Agent移動過快,可能會出現(xiàn)下面的情況:Agent讀取消息時,發(fā)生移動產(chǎn)生中斷,接受
7、方到達新位置后繼續(xù)從Home讀取通知,取走剩余消息,消息隊列還未為空,發(fā)送方Agent又有移動中斷,那么消息隊列中可能會有一部分消息長時間的不被讀取。2.3 變量的加入為了避免2.2中出現(xiàn)的情況,我們設置了一個時間變量和Agent超速等待,來避免有消息長時間不被發(fā)送。我們對municator中的每個消息設一個時間變量e,當e達到我們設定的一個固定值T0后,我們認為它等待時間過長,對它進行標記。Agent每移動到一個節(jié)點,都要計算自己的移動速率V(V為曾經(jīng)到達的節(jié)點個數(shù)/(當前時間.出生時間)或者現(xiàn)在時刻以前的一段時間內(nèi)到達的節(jié)點個數(shù)/時間跨度),當V超過
8、給定的最高速率V0時,Agent必須與Home建立連接,獲得保存在Home上的發(fā)