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