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