周阿連
(煙臺職業(yè)學院,山東 煙臺 264003)
移動agent系統(tǒng)互用性的研究*
周阿連
(煙臺職業(yè)學院,山東 煙臺 264003)
在多樣化的、開放的、分布式環(huán)境下的MAS中,agent必須與非同構(gòu)的agent進行互動,遍歷不同的agent平臺以獲取遠程的資源,于是,互用性成了M AS的關鍵性能。目前提出的解決互用性的方法都缺少必要的柔韌性來提供足夠程度的互用性。提出了一種高層方法,該方法基于已明確定義的軟件層概念,可以實現(xiàn)M AS之間執(zhí)行、通信和移植的互用性,解決目前解決方案存在的缺陷,而且安全性保持在MAS相應機制的可控范圍。
移動agent系統(tǒng);互用性;軟件層;agent模型;基于語義的通信
在過去的幾十年中,在具有通用目標的分布式應用的設計實現(xiàn)中,尤其在基于Internet的動態(tài)環(huán)境下,移動agent范例和技術[1-2]已經(jīng)表現(xiàn)出很高的潛能和柔韌性。但是,目前的MAS應用仍存在缺少合適的安全機制,缺少互用性,缺少量身定做的軟件開發(fā)過程和建模語言問題。如果一個系統(tǒng)的agent能夠移植到另一個異構(gòu)的系統(tǒng),并能夠在該系統(tǒng)上執(zhí)行,與其移動agent進行通信[3],那么認為這兩個MAS是互通的。
本文提出了一種基于軟件層概念的應用層方法,定義了一種互用性移動agent框架,該框架可以實現(xiàn)現(xiàn)有MAS的互用性,而不需要對其基本結(jié)構(gòu)進行任何更改,從而實現(xiàn)了MAS在執(zhí)行、移植和通信方面的互用性;通過對現(xiàn)有的MAS應用該方法實現(xiàn)的互用性的實驗分析表明,該高層方法提供了很高的功效,而且保持目標計算環(huán)境可承受的開銷。
互用性的移動Agent(IMA)用<HLP,LLP>對來表示,其中:LLP是低層部分,依賴于特定的M AS,異構(gòu)移植后會發(fā)生改變;HLP是高層部分,在整個Agent的生命周期中始終保持不變。HLP集中在事件驅(qū)動的輕量移動agent模型內(nèi),使用基于語義的通信機制。HLP通過一個LLP實現(xiàn)的接口對 HLP提供基本的服務,進而與LLP相適應。
1.1 事件驅(qū)動的輕量移動agent模型
事件驅(qū)動的輕量移動agent模型表示為元組<Id,S, Beh,Tc,Eq>,其中Id是唯一的agent標識,S是agent的狀態(tài),Beh是agent的行為,Tc是與agent相關的控制線程,Eq是接收到的將會被agent處理事件隊列。在事件處理的過程中,agent可能執(zhí)行下面的行為之一:
●計算,該行為直接影響agent的狀態(tài),通過調(diào)用create方法創(chuàng)建agent,或者通過send方法將事件進行轉(zhuǎn)移。
●通過migrate方法進行移植。
一個實例agent的事件處理和狀態(tài)演變過程如圖1所示。
圖1 狀態(tài)演變及基本行為
事件處理方法代碼:
該實例agent能夠?qū)ove、Reply和Terminate事件作出反應。尤其是對Rep ly事件觸發(fā)器的處理會執(zhí)行一系列的行為:通過執(zhí)行計算方法影響agent的內(nèi)部狀態(tài),創(chuàng)建agent Y,轉(zhuǎn)移事件X給目標agent,并且轉(zhuǎn)移事件發(fā)給自身。執(zhí)行完后,該agent處于狀態(tài)Xsj,該狀態(tài)下的agent如果收到move事件,就會移植到目的地。
1.2 橋梁移動agent(BA)
IMA利用移動agent橋在兩個異構(gòu)的MAS之間移動。M AB是一個反應性軟件基件,它可以從一個MAS中收到IMA,并將之反射到異構(gòu)的目標MAS。MAB對于移動agent來說就像LAN橋?qū)W(wǎng)絡數(shù)據(jù)包的作用一樣。
實例 假設IMA=<HLP,LLPsource>是一個互用性移動agent,該agent要從一個X類型的源MAS移植到一個Y類型的目標MAS中(X<>Y),移植如圖2所示。
第一步,IMA與一個MAB(MABX->Y)聯(lián)系,該MAB提供從X到Y(jié)的橋接。
第二步,收到 HLP之后,M ABX->Y創(chuàng)建一個專門到 Y的新的LLP,調(diào)整 HLP到LLPtarget進而獲得 IM A*=<HLP,LLPtarget>,異構(gòu)的把IMA*移植到目的MAS中。
盡管LLP被替代了,保持移動agent的活躍性的 HLP保留下來,使得橋接過程完全透明。
圖2 橋接一個MAS的agent到另MAS
創(chuàng)建互用性移動agent框架(IMAF)來隱藏基于java的MAS的異構(gòu)性,該框架能覆蓋在MAS上,而不需要對其下的M AS做任何修改。
2.1 架構(gòu)
IMAF的架構(gòu)主要由3個軟件層組成。
(1)互用性移動agent層(IMAL):該層根據(jù)事件驅(qū)動的移動agent模型實現(xiàn)IMA的 HLP與通信部分。
(2)調(diào)整層(AL):一個接口,聲明了下列方法供 HLP使用:(i)create,創(chuàng)建一個新的 IMA;(ii)m igrate,使用平臺獨立的移植專用方法來移植IMA;(iii)send,使用平臺獨立的轉(zhuǎn)移專用方法來發(fā)送一個事件到一個具有異構(gòu)LLP的目標IM A。(iv)lookup,使用平臺獨立的查找服務來查找一個異構(gòu)LLP中的某個IMA。
(3)平臺獨立的移動agent層(PMAL):一個可繼承的、具有不同的LLP的移動agent類的集合。
2.1.1 互用性agent之間的通信
IMA之間的相互通信是建立在事件的基礎上的,下面是一個IM A將一個外部事件傳遞給一個目的IM A或轉(zhuǎn)變成自身事件的過程:
(1)通過使用其當前語義組件(URLSender)的URL,接收到的agent(URLReceiver)的語義組件的URL(tag),事件類型和時間參數(shù)列表(args)創(chuàng)建事件。
(2)以已經(jīng)創(chuàng)建好的事件為參數(shù)調(diào)用send方法。Send方法操作如下:如果URLSender與URLReceiver是相同的,該事件直接插到轉(zhuǎn)移agent自身的隊列中;否則,接收到agent的組件通過使用RM I的查找方法進行查找,如果找到agent,語義組件通過調(diào)用dispatch方法將事件派遣給該agent;否則,將事件插入agent郵箱隊列或激活EventFo rw arder組件來進行轉(zhuǎn)發(fā)。
2.1.2 包裝agent(WA)實現(xiàn)互用移動agent(IMA)和平臺獨立的移動agent(PMA)之間的通信
IMA和PMA之間的通信由WA作為中介,發(fā)起者是IMA。IMA將其請求發(fā)送給WA,WA將其內(nèi)容通過translate方法轉(zhuǎn)變成平臺獨立的格式,將該內(nèi)容合并入一個平臺獨立的請求中發(fā)送到PMA。WA一收到來自PMA的請求,就創(chuàng)建應答事件,并將其發(fā)回IMA。
2.1.3 橋接移動agent(MBA):促成異構(gòu)移植
為了實現(xiàn)移植,每一個M AS至少應該開發(fā)并派遣一個M AB。一個帶有X類型的LLP的IM A將要移植到一個Y類型agent的服務器,IMA可以發(fā)送一個移植請求事件給任何一個 Y類型(X<>Y)的MAB。移植請求包含IMA的HLP和目標agent服務器的位置。被聯(lián)系的MAB創(chuàng)建一個新的LLP,調(diào)整HLP以適應引入的IMA,執(zhí)行異構(gòu)的移植過程,將IMA向目標agent服務器移植。
2.2 基于IMA F的應用編程
IMAF[4]的主要問題是如何從遠程的數(shù)據(jù)倉庫提取信息(該倉庫由操作在異構(gòu)agent平臺上的agent管理),基于IM A F的解決方案依賴于如下內(nèi)容的定義與實現(xiàn):
(1)IMA(數(shù)據(jù)提取器)。在一個既定路線的指導下,漫游在各個異構(gòu)agent平臺之間(這些平臺中的數(shù)據(jù)倉庫由數(shù)據(jù)agent管理),提取想要的數(shù)據(jù),然后起程到下一位置。
(2)本地WA集合。每個不同類型的平臺都有一個包裝agent,它包含在指定路線中,通過包裝技術充當通信媒介。在每一條路線上,IM A與基于IMA F的事件進行交互,這些事件帶有本地的WA,這些WA通過特定平臺提供的交互方法和本地的數(shù)據(jù)Agent進行交互(數(shù)據(jù)提取過程見圖3)。
圖3 基于IMAF的應用
如果移動agent系統(tǒng)實現(xiàn)互用性,無疑會極大的促進移動agent技術發(fā)展。
(1)編程者可以獨立開發(fā)任何M AS的移動agent,因此,使得基于移動agent的計算跨越一定范圍的基于異構(gòu)M AS的計算領域。
(2)新的或其他已存在的M AS可以被很容易的實現(xiàn)互用性通過。進一步專攻PMAL來獲得新的互用性移動agent的低層部分;為這樣的MAS開發(fā)移動agent橋。通過包裝agent,對平臺獨立代碼的復用是很容易的。
[1]Braun P,Rossak W R.Mobile agents-basic concep t,mobility models and the tracy toolkit[M].San Francisco:Mo rgan Kaufmann Publishers,2005.
[2]Karnik N M,Tripathi A R.Design issues in mobile-agent p rogramming system s[J].IEEE Concurrency,1998,6(3):52 -61.
[3]Pinsdo rf U,Roth V.Mobile agent interoperability patterns and p ractice[C].Proceedingsof 9th Annual IEEE Int’l Conference and Wo rkshop on the Engineering of Computer-Based Systems(ECBS),2002:238-244.
[4]Giancarlo Fo rtino.Achieving moble agent system interoperability through software layering[J].Information and Software Technology,2008,50:322-341.
(責任編輯:肖恩忠)
Research on the In teroperability of M AS
ZHOU A-lian
(Yantai Vocational College,Yantai264003,China)
Interoperability is a key issue fo rmobile agent system s(MASs)in heterogeneousand open distributed environments w here agentsm ust interact w ith non-homogeneous agents and traverse different agent p latform s to access remote resources.To date,w hile several app roaches have been p roposed to deal w ith different aspects of MAS interoperability,they all lack the necessary flexibility to p rovide an adequate degree of interoperability among the currently available MASs.In this paper,we p ropose a high-level app roach grounded in the softw are layering concep t,w hich enables execution,migration and communication interoperability between Java-based mobile agent system s.Thisapp roach overcomes the sho rtcomings of the available solutions.Mo reover security remains under the control of specific mechanism s of the MASs w hich are made interoperable.
mobile agent system,interoperability,software layer,agentmodel,p roxy-based communication
2010-01-26
周阿連(1979-),女,山東煙臺人,煙臺職業(yè)學院信息工程系講師,碩士。研究方向:數(shù)據(jù)庫、人工智能。
TP311 文獻標識碼:A 文章編號:1671-4288(2010)02-0050-04