移動
Agent
平臺的互操作性研究
(**大學(xué)**實驗室,**
)
摘要:
移動
Agent
平臺的異構(gòu)性,使得不同平臺間難以實行互操作。文章淺層次的分析了移動代理系統(tǒng)互操作性有關(guān)的
CORBA
,
MASIF
和
FIPA
規(guī)范。
關(guān)鍵詞:
移動
Agent
,互操作性,
CORBA
,
MASIF
,
FIPA
1 引言
移動 Agent 是結(jié)合了 Agent 的一種新型分布計算技術(shù),由于它的智能性、移動性、自主性和協(xié)作性,已在信息檢索、移動計算、電子商務(wù)及網(wǎng)絡(luò)管理等方面得到一定的應(yīng)用。許多公司和研究機(jī)構(gòu)都發(fā)布了各自的移動 Agent 平臺,如 IBM 的 Aglets , Dartmouth College 的 AgentTcl, Stuttgart University 的 Mole, ObjectSpace 的 Voyager 等等。由于這些平臺在體系結(jié)構(gòu)和實現(xiàn)上有較大差異,無法實現(xiàn)互操作,已成為限制移動 Agent 廣泛應(yīng)用的主要原因之一。為此, OMG 組織已經(jīng)開展有關(guān)移動 Agent 的標(biāo)準(zhǔn)化工作,并提出移動 Agent 互操作機(jī)制標(biāo)準(zhǔn) MASIF 。本文分析了在解決互操作問題上的相關(guān)技術(shù)。
2 相關(guān)理論或技術(shù)基礎(chǔ)
2.1
移動Agent技術(shù)介紹
2.1.1
?
軟件
Agent
軟件
Agent是運行于動態(tài)環(huán)境的、具有高度自治能力的實體,它能夠接受其它實體的委托并為之服務(wù)。不難看出,軟件Agent首先具有智能特性,它對環(huán)境有響應(yīng)性、自主性和主動性;同時,軟件Agent還具有社會特性。
自主性(Autonomy):軟件Agent在運行過程中不直接由人或其它主體控制,它能在沒有與環(huán)境相互作用的情況下自主執(zhí)行任務(wù),對自己的行為和內(nèi)部狀態(tài)有一定的控制權(quán)。自主性是軟件Agent區(qū)別于普通軟件程序的基本特征。
響應(yīng)性(Reactivity):軟件Agent能對來自環(huán)境的信息做出適當(dāng)?shù)捻憫?yīng),它能感知所處的環(huán)境,并能通過自己的行為改變環(huán)境。
自動性(Proactivity):傳統(tǒng)應(yīng)用程序接受用戶指令被動執(zhí)行,而Agent不僅能對環(huán)境變化做出反應(yīng),更重要的是能在特定情況下采取主動行為。
推理性(Reasoning):軟件Agent可根據(jù)已有的知識和經(jīng)驗,以推理的方式進(jìn)行推理。軟件Agent的智能由3個主要部件來完成,即內(nèi)部知識庫、自適應(yīng)能力以及基于知識庫的推理能力。
通信/合作/協(xié)作(Communication/Cooperation):這是在軟件Agent群體中應(yīng)該具有的社會屬性。
2.1.2
移動
Agent
移動
Agent
技術(shù)是目前計算機(jī)科學(xué)領(lǐng)域中非常重要的研究技術(shù)之一。移動代理(
Mobile Agent
)是一個代替人或其它程序執(zhí)行某種任務(wù)的程序,它在異構(gòu)網(wǎng)絡(luò)環(huán)境中自主地從一臺主機(jī)遷到另一臺主機(jī),并可以和
Agent
或其它軟件資源交互的實體。
移動Agent是一種特殊類型的軟件Agent,它除了具有軟件Agent的基本特性-自主性、響應(yīng)性、主動性和推理性外,還具有移動性。在移動過程中能夠根據(jù)要求掛起,然后轉(zhuǎn)移到網(wǎng)絡(luò)的其它地方重新開始或繼續(xù)其執(zhí)行,最后返回結(jié)果和消息,代表用戶完成指定任務(wù)。由于移動Agent可以在異構(gòu)軟、硬件網(wǎng)絡(luò)環(huán)境中自由移動,因此,這種新的計算模式能有效地降低分布式計算中網(wǎng)絡(luò)負(fù)載、提高通訊效率、動態(tài)適應(yīng)變化的網(wǎng)絡(luò)環(huán)境,并具有很好的安全性和容錯能力。
2.2 CORBA
全球性網(wǎng)絡(luò)使線上的所有設(shè)備和軟件成為全球共享的浩瀚的資源,計算機(jī)環(huán)境也從集中式發(fā)展到分布式環(huán)境,開放式系統(tǒng)的發(fā)展使用戶能夠透明地應(yīng)用由不同廠商制造的不同機(jī)型不同平臺所組成的異構(gòu)型計算資源,因此,分布式處理和應(yīng)用集成自然而然地成為人們的共同要求,那么什么是分布式處理和應(yīng)用集成呢?它們的功能和關(guān)鍵技術(shù)是什么呢?簡單地講,分布式處理和應(yīng)用集成就是指在異構(gòu)的、網(wǎng)絡(luò)的、物理性能差別很大的、不同廠商的、不同語言的信息資源的基礎(chǔ)上構(gòu)建信息共享的分布式系統(tǒng),并且能夠有效地進(jìn)行應(yīng)用系統(tǒng)和分布式處理的集成。分布式處理的關(guān)鍵在于定義可管理的軟件構(gòu)件,即面向?qū)ο蠹夹g(shù)中的
“
對象
”
。應(yīng)用集成的關(guān)鍵在于為跨平臺、跨機(jī)種、跨編程語言的產(chǎn)品提供統(tǒng)一的應(yīng)用接口。OMG組織針對當(dāng)今信息產(chǎn)業(yè)的要求,公布了CORBA標(biāo)準(zhǔn),即公共對象請求代理體系結(jié)構(gòu)(Common Object Request Broker Architecture),這是一個具有互操作性和可移植性的分布式面向?qū)ο蟮膽?yīng)用標(biāo)準(zhǔn)。
CORBA的核心是對象請求代理ORB,它提供對象定位、對象激活和對象通訊的透明機(jī)制。客戶發(fā)出要求服務(wù)的請求,而對象則提供服務(wù),ORB把請求發(fā)送給對象、把輸出值返回給客戶。ORB的服務(wù)對客戶而言是透明的,客戶不知道對象駐留在網(wǎng)絡(luò)中何處、對象是如何通訊、如何實現(xiàn)以及如何執(zhí)行的,只要他持有對某對象的對象引用,就可以向該對象發(fā)出服務(wù)請求。CORBA允許用戶以兩種不同的方式提出對象請求:
1)靜態(tài)調(diào)用:
通過給定接口的存根,在編譯了對象代碼后,進(jìn)入客戶端的程序。因此,靜態(tài)調(diào)用必須在編譯時就知道對象及其類型。
2)動態(tài)調(diào)用:
通過ORB的動態(tài)調(diào)用接口DII,在運行時生成訪問對象的代碼。不管客戶以哪一種形式提出請求,ORB的任務(wù)是:找出所要對象的位置,激活該對象,向?qū)ο髠鬟f此請求。對象執(zhí)行所請求的服務(wù)后,把輸出值返回給ORB,然后再由ORB返回給客戶。
3 Agent System Interoperability
3.1 CORBA
和移動Agent的結(jié)合
移動代理技術(shù)和 CORBA 技術(shù)在許多方面不同,最顯著的是 CORBA 采用對象一旦被分配就一直停留在固定位置直到它在 ORB 中注冊,而移動代理可以動態(tài)、自主地在執(zhí)行期間移動。
第二個不同點是移動 Agent 明確自己目前的位置,而且知道所需資源的位置,具有豐富的信息來動態(tài)地決定遷移。對 CORBA 來說,當(dāng)它回答客戶請求時,試圖隱藏服務(wù)器對象的物理位置。很顯然, ORB 知道注冊對象的分配,但是這個信息對客戶和應(yīng)用開發(fā)者來說是隱式的。
另一個不同點在于融合性( diffusion ), CORBA 擁有一個普遍被接受的規(guī)范,有許多的資源、系統(tǒng)和業(yè)務(wù)足見遵從這個規(guī)范。相反,移動 Agent 可編程范例的特性導(dǎo)致產(chǎn)生了各種不同的、不能互操作的代理平臺。
1.???????? 然而 CORBA 與移動 Agent 技術(shù)的結(jié)合,可以完全實現(xiàn)異構(gòu)移動 Agent 平臺之間的互操作性。當(dāng) MASIF 和 FIPA 都采用 CORBA 作為標(biāo)準(zhǔn)橋梁時,就可以克服兩種規(guī)范之間的異構(gòu)性。
3.2 MASIF????????????????????????
不同 Agent 之間的互操作性是使基于不同移動代理平臺的商業(yè)化融合的關(guān)鍵因素。互操作性要求移動代理技術(shù)能夠趨于規(guī)范化。 OMG 提出了 MASIF ( Mobile Agent System Interoperability Facilities )規(guī)范,這是一個代理的互操作性標(biāo)準(zhǔn),它是在 CORBA 體系中構(gòu)建的,支持代理的移動和管理。 MASIF 的目標(biāo)是不需要對現(xiàn)有各種代理平臺進(jìn)行大量的修改,而僅通過用 ”add-on” 模塊來擴(kuò)展,以實現(xiàn)現(xiàn)存不同結(jié)構(gòu)的移動代理平臺之間的互操作性。
MASIF 提出對代理和代理系統(tǒng)命名、系統(tǒng)種類及位置語法的標(biāo)準(zhǔn)化。 MASIF 定義了兩個標(biāo)準(zhǔn)架構(gòu): MAFAgentSystem 和 MAFFinder ,通過接口定義語言對它們的屬性、操作和返回值作了明確的規(guī)定。前者定義對 Agent 的操作,包括接受、創(chuàng)建、掛起和終止 Agent 的執(zhí)行,后者定義了 Agent 的注冊(去注冊)以及 Agent 、 place 和 Agent 系統(tǒng)的定位。這些接口在 Agent 系統(tǒng)層上定義,因為 Agent 只能在支持同類 Agent 的 Agent 系統(tǒng)間流動,無需對 Agent 的接口進(jìn)行定義。而 MASIF 中定義的標(biāo)準(zhǔn)化 Agent 管理操作實現(xiàn) Agent 在系統(tǒng)間進(jìn)行流動。針對 CORBA 命名服務(wù)只支持靜態(tài)對象的情形, MAFFinder 則是必要的補(bǔ)充,它提供了動態(tài)的名址數(shù)據(jù)庫接口。 MAFAgentSystem 和 MAFFinder 接口分別提供 15 和 9 個操作支持 Agent 的管理和名錄服務(wù)。 OMG 的目標(biāo)是使不同軟件開發(fā)商所開發(fā)的產(chǎn)品可以在一致的分布式對象環(huán)境下協(xié)同工作, CORBA 對于 Agent 系統(tǒng)的支持通過上述兩類接口實現(xiàn)。基于 MASIF 標(biāo)準(zhǔn)的移動 Agent 分布式體系結(jié)構(gòu)如圖 1 所示。
圖
1
基于
MASIF
標(biāo)準(zhǔn)的移動
Agent
分布式體系結(jié)構(gòu)
3.3 FIPA
FIPA 明確了服務(wù)于代理與其他實體(管理員、其它代理、非代理軟件和物理世界)交互的不同組件的接口。因為主要涉及到智能代理領(lǐng)域, FIPA 把重點放在代理間通信的標(biāo)準(zhǔn)化問題上, FIPA 提出一個專門的代理通信語言( Agent Communication Language , ACL )來解決遵從 FIPA 的所有代理之間的通信問題。
FIPA 定義了為代理平臺服務(wù)的三種基本業(yè)務(wù):代理管理系統(tǒng)( Agent Management System,AMS )、 Directory Facilitator(DF) 和代理通信信道 (Agent Communication Channel,ACC) 。 AMS 提供類似 MAFAgentSystem 的管理功能,但是,不同點在于 FIPA 的 AMS 不能解決在異構(gòu)移動代理平臺之間代理的移動問題。
FIPA 代理可以為其它代理提供服務(wù),而且它們的服務(wù)內(nèi)容可以在網(wǎng)絡(luò)黃頁上通過 DF 搜尋到。在一個代理平臺中,在 DF 中的注冊是任意的,而在 AMS 中的注冊則是必須的。
ACC 能夠促使在同一個代理平臺上代理之間的通信,也可以通過提供一個消息轉(zhuǎn)發(fā)機(jī)制來使代理在異構(gòu)平臺之間通信。
平臺之間的互通性通過 CORBA ORB 的轉(zhuǎn)發(fā)業(yè)務(wù)可以實現(xiàn),與 CORBA 的結(jié)合對遵從 FIPA 的移動代理平臺來說是必需的,代理的消息傳遞通過 CORBA IIOP 實現(xiàn)。
因為 AMS 和 DF 業(yè)務(wù)提供類似于 MASIF MAFAgentSystem 和 MAFFinder 的功能,對于 FIPA 標(biāo)準(zhǔn)化的建議是提出通過一個共同使用的 ACL 來實現(xiàn)代理之間的通信。
4 結(jié)論及未來工作
已經(jīng)有人研究發(fā)現(xiàn), MASIF 制定的移動 Agent 平臺之間的互操作性,沒有定義域間移動 Agent 的定位操作。對于移動 Agent 平臺之間的互操作方面,還有很多問題,有待研究,解決,完善。在接下來的兩周里,將著重對 MASIF 、 FIPA 的關(guān)于通信語言,互操作規(guī)范進(jìn)行研讀,并了解 CORBA 在解決異構(gòu) Agent 平臺方面的 Solutions 。
參考文獻(xiàn)
[1]??????????
張穎江,吳珊
移動代理在分布式計算中的應(yīng)用和實現(xiàn)。
[2]??????????
偶曉娟,雷霖,李建華
移動代理互操作性研究。
[3]??????????
歐陽曄,姜浩,潘順
移動
Agent
域間發(fā)現(xiàn)機(jī)制研究。
[4]??????????
Object Management Group TC Document Orbos Mobile Agent System Interoperability Facilities Specification.