嵌入式輕量Agent平臺(tái)的構(gòu)建研究
1 引言
本文引用地址:http://butianyuan.cn/article/152112.htm多Agent系統(tǒng)是指由多個(gè)分布和并行工作的Agent通過協(xié)作完成某些任務(wù)或達(dá)到某些目標(biāo)的計(jì)算系統(tǒng)。嵌入式多智能體是把嵌入式系統(tǒng)與多Agent相結(jié)合的技術(shù),充分發(fā)揮了二者優(yōu)勢(shì)[1]。但是,多年來多Agent系統(tǒng)一直沒有應(yīng)用到嵌入式設(shè)備上。這是由于沒有合適的Agent平臺(tái)能夠適應(yīng)于軟、硬件資源受到限制的嵌入式系統(tǒng)。KVM (Kilo-bytes Virtual Machine)的出現(xiàn),使JAVA這種跨平臺(tái)的語言成功應(yīng)用于嵌入式設(shè)備中,同時(shí)也方便了嵌入式環(huán)境下的輕量Agent(Lightweight Agent)的實(shí)現(xiàn)。本文在ARM嵌入式環(huán)境下測(cè)試輕量級(jí)Agent平臺(tái)。
2 面向Agent軟件開發(fā)平臺(tái)
JADE 是基于跨平臺(tái)的JAVA語言,是一項(xiàng)旨在開發(fā)符合FIPA(Foundation for Intelligent Physical Agents)Agent標(biāo)準(zhǔn)的多Agent系統(tǒng)或程序的軟件開發(fā)框架[2]。主機(jī)上運(yùn)行的遠(yuǎn)程管理Agent ( Remote Manage Agent,RMA ),包括AMS(Agent Management System)、DF(Directory Facilitator)、ACC(Agent Communication Channel)三部分。
如果利用JDAE平臺(tái)開發(fā)多Agent系統(tǒng),運(yùn)行環(huán)境必須具備JAVA虛擬機(jī)。但是,這么一個(gè)軟件運(yùn)行空間的大小遠(yuǎn)遠(yuǎn)超過普通嵌入式系統(tǒng)所能提供的存儲(chǔ)空間。因此必須采用一種新的輕量化的Agent開發(fā)平臺(tái)、框架,使其適應(yīng)于嵌入式環(huán)境。
3 輕量Agent平臺(tái)研究
3.1輕量化LEAP的研究
LEAP(Lightweight Extensible Agent Platform)是JADE運(yùn)行在J2ME/CLDC下的版本,專門在手持設(shè)備等資源受限的環(huán)境中運(yùn)行。LEAP運(yùn)行在通信的上層,容器Container之間通過TCP/IP通信而不用關(guān)心物理連接方式[4]。
J2ME把運(yùn)算功能有限、電力有限的嵌入式設(shè)備稱作可連接外界、資源有限的設(shè)備,規(guī)定這類設(shè)備要執(zhí)行JAVA程序必須滿足某些特定條件(CPU速度等),這些必須滿足的條件就定義在CLDC規(guī)范中。與標(biāo)準(zhǔn)版的JAVA―J2SE相比,J2ME/CLDC所支持的只有標(biāo)準(zhǔn)核心類庫的子集合,對(duì)存儲(chǔ)空間的需求在160KB~512KB之間。并且J2ME /CLDC添加支持嵌入式系統(tǒng)的擴(kuò)充類庫,如javax.microedition.io.*類庫,不含有RMI。所以,LEAP直接使用TCP/IP套接字通信來連接不同的容器[4]。LEAP沒有AMS和DF,為了實(shí)現(xiàn)這些功能,LEAP直接訪問運(yùn)行在其它機(jī)器上的JADE平臺(tái)。分布在每一個(gè)嵌入式設(shè)備上的Agent的代碼量就會(huì)大大減少,各Agent的功能不會(huì)減弱。
3.2輕量化平臺(tái)的運(yùn)行
LEAP有兩種截然不同的運(yùn)行方式,其中一種方式是將一個(gè)完整的容器運(yùn)行在嵌入式設(shè)備上,即Stand alone 方式。另外一種為Split 方式,將容器劃分成前臺(tái)(FrontEnd)和后臺(tái)(BackEnd),前臺(tái)即運(yùn)行在嵌入式設(shè)備上,后臺(tái)運(yùn)行在裝有J2SE的主機(jī)上。
一個(gè)完整的容器啟動(dòng)需要首先啟動(dòng)AMS和DF。根據(jù)文獻(xiàn)[3]的介紹,前臺(tái)作為一個(gè)存儲(chǔ)空間有限的設(shè)備,不可能運(yùn)行大量代碼,是輕量的。結(jié)果,前臺(tái)啟動(dòng)后不會(huì)創(chuàng)建AMS與DF。同時(shí),代碼量的減少使得前臺(tái)啟動(dòng)加快。后臺(tái)部分運(yùn)行在普通的主機(jī)上,前臺(tái)對(duì)后臺(tái)的依賴體現(xiàn)在后臺(tái)必須在前臺(tái)啟動(dòng)之前工作起來。
3.3輕量Agent平臺(tái)改進(jìn)
3.3.1 KDDIAP
由于環(huán)境等因素的影響,移動(dòng)嵌入式設(shè)備在無線通信時(shí)經(jīng)常會(huì)遇見通訊連接不穩(wěn)定、設(shè)備不在信號(hào)覆蓋的范圍等問題。在無線設(shè)備上運(yùn)行Agent會(huì)因?yàn)樯鲜鰡栴}不能隨時(shí)隨地提供服務(wù)。
這種情況發(fā)生時(shí),JADE-LEAP就不能很好地滿足人們的需求。而這是由LEAP的特性決定的,LEAP應(yīng)用于無線設(shè)備完全依賴于主PC機(jī)上的JADE平臺(tái),即采用Split運(yùn)行方式。因此,實(shí)現(xiàn)嵌入式無線設(shè)備上的Agent管理,首先要保證通訊穩(wěn)定,這在無線環(huán)境下實(shí)現(xiàn)就有些困難。針對(duì)這些問題,文獻(xiàn)[6]提出了專門針對(duì)手機(jī)等無線通信設(shè)備的Agent平臺(tái)架構(gòu)KDDIAP。將移動(dòng)設(shè)備和中央服務(wù)器分解成一個(gè)個(gè)符合FIPA的子平臺(tái)。遵循FIPA是為了與其他類似平臺(tái)方便地交互信息。與LEAP最大的區(qū)別就在于,移動(dòng)設(shè)備上運(yùn)行的子平臺(tái)也具有AMS和DF功能。每個(gè)手機(jī)上都有相對(duì)完整的Container。
3.3.2混合模式輕量Agent平臺(tái)
KDDIAP適合于無線環(huán)境下應(yīng)用,在最初啟動(dòng)時(shí)需要?jiǎng)?chuàng)建AMS和DF。然而,JADE-LEAP啟動(dòng)時(shí)不用創(chuàng)建AMS和DF,速度顯然會(huì)比KDDIAP快。在一個(gè)實(shí)際的復(fù)雜系統(tǒng)中,存在很多嵌入式設(shè)備,它們分別工作在有線連接的網(wǎng)絡(luò)和無線網(wǎng)絡(luò)的環(huán)境中,各自的存儲(chǔ)資源也不盡相同。根據(jù)各自不同的特點(diǎn),我們把KDDIAP與LEAP技術(shù)結(jié)合起來,對(duì)現(xiàn)有的Agent運(yùn)行系統(tǒng)框架進(jìn)行改進(jìn)。如圖1,有3個(gè)容器,Main Container運(yùn)行在J2SE上,Container-1運(yùn)行在J2ME/CLDC或Personal Java上,Container-2運(yùn)行在J2ME/CLDC上;Container-2處于Split 方式,而Container-1類似于KDDIAP方式,它在啟動(dòng)時(shí)會(huì)創(chuàng)建AMS與DF。Container-2對(duì)應(yīng)的設(shè)備應(yīng)該有較好的通信保障,前臺(tái)在啟動(dòng)之后如果也創(chuàng)建AMS和DF將總共用到大約40個(gè)JAVA類,不適合資源受限的嵌入式設(shè)備。我們?cè)谇芭_(tái)僅僅創(chuàng)建一個(gè)Client Agent,可以隨時(shí)訪問后臺(tái),與后臺(tái)交互信息,對(duì)于存儲(chǔ)空間有限或處理器速度較慢的情況下確保了通信的實(shí)時(shí)性;相比之下Container-1處于無線環(huán)境,利用KDDIAP提供的方法可使Agent在任何時(shí)候提供服務(wù),軟件Agent的代碼也會(huì)相應(yīng)增加,對(duì)設(shè)備計(jì)算能力的要求會(huì)高一些,例如可以讓軟件Agent工作在ARM這樣的高檔硬件平臺(tái)上。
這種改進(jìn)能確保異構(gòu)網(wǎng)絡(luò)環(huán)境下輕量Agent的正常運(yùn)行,并且使整個(gè)Agent系統(tǒng)軟件精簡靈活。同時(shí),我們所做的改動(dòng)仍然遵循FIPA 標(biāo)準(zhǔn),以方便與其他符合FIPA的平臺(tái)交互。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論