新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式輕量Agent平臺(tái)的構(gòu)建研究

嵌入式輕量Agent平臺(tái)的構(gòu)建研究

作者: 時(shí)間:2010-01-29 來(lái)源:網(wǎng)絡(luò) 收藏

圖1 混合模式

4 環(huán)境下部署

4.1 KVM移植

為測(cè)試,我們將Agent移植到基于ARM的系統(tǒng)。這種系統(tǒng)以三星公司的 S3C2410 芯片(ARM9內(nèi)核)作為應(yīng)用處理器,實(shí)時(shí)操作系統(tǒng)采用 Linux 操作系統(tǒng)。針對(duì)嵌入式設(shè)備硬件資源有限的事實(shí),CLDC規(guī)范定義一個(gè)簡(jiǎn)化版本的JAVA虛擬機(jī),這個(gè)虛擬機(jī)通常被稱為KVM(Kilo-bytes Virtual Machine) [5]。

圖2 輕量化的系統(tǒng)結(jié)構(gòu)

圖3 編譯后的KVM

建立輕量Agent運(yùn)行的環(huán)境,需要在基于ARM與嵌入式操作系統(tǒng)的平臺(tái)上移植KVM,使JAVA語(yǔ)言能夠運(yùn)行,如圖2。而KVM的目的是創(chuàng)造一個(gè)盡可能小的且盡可能完整的JAVA虛擬機(jī),使開(kāi)發(fā)者不用像開(kāi)發(fā)C語(yǔ)言一樣關(guān)心硬件,而通過(guò)JAVA語(yǔ)言來(lái)進(jìn)行開(kāi)發(fā),達(dá)到一次編譯,各種平臺(tái)使用的目的。圖3表示編譯好的KVM可以在ARM上運(yùn)行。將KVM燒到目標(biāo)平臺(tái)上,便可以執(zhí)行JAVA程序。

4.2 輕量Agent部署

根據(jù)改進(jìn)的輕量Agent框架部署Agent平臺(tái),圖4所示的JADE安裝在運(yùn)行J2SE的PC機(jī)上,Container-1和Container-2對(duì)應(yīng)著輕量Agent運(yùn)行的不同環(huán)境。

圖1中的PDA處于無(wú)線通信方式,它的Agent平臺(tái)一旦啟動(dòng),便會(huì)自動(dòng)創(chuàng)建AMS和DF。同時(shí),PDA上Container-1立即到位于PC機(jī)上的JADE平臺(tái)上注冊(cè)。圖1中的嵌入式設(shè)備是基于s3c2410的網(wǎng)絡(luò)設(shè)備,通過(guò)網(wǎng)線與鄰近的PC機(jī)通信。這里的嵌入式設(shè)備上軟件Agent平臺(tái)啟動(dòng)后不會(huì)創(chuàng)建AMS和DF,為獲得相應(yīng)的服務(wù),嵌入式設(shè)備只需創(chuàng)建一個(gè)Client Agent,利用這個(gè)智能體隨時(shí)通過(guò)網(wǎng)線訪問(wèn)后臺(tái)即可。圖4中Container-1和Container-2里面的所有Agent會(huì)注冊(cè)到Main-Container所在的Agent平臺(tái)。

完成注冊(cè)后,各遠(yuǎn)端Agent與Main-Container所在的Agent平臺(tái)通信,提供各自的信息,供其它平臺(tái)上的Agent利用。異構(gòu)網(wǎng)絡(luò)環(huán)境下,各嵌入式實(shí)時(shí)設(shè)備協(xié)同工作就基于這些信息。Container-1中的Agent若要同Container-2中的Agent交互,需要找到臨近的主機(jī)注冊(cè)。注冊(cè)到Main-Container所在的主機(jī)上之后,在主平臺(tái)下與已經(jīng)注冊(cè)了的Container-2中的Agent 交互信息。


并不是所有的Container都能夠提供注冊(cè)服務(wù),Container-2就是如此。提供注冊(cè)與注銷服務(wù)的平臺(tái),一般運(yùn)行在資源豐富的PC機(jī)上,這樣為嵌入式設(shè)備上運(yùn)行的軟件Agent減少了相應(yīng)的服務(wù),也減少了代碼。

圖 4 Agent的注冊(cè)與部署結(jié)果

5 結(jié)論

JADE-LEAP框架下,位于資源有限設(shè)備上的Agent不具有AMS與DF創(chuàng)建的功能,為實(shí)現(xiàn)這一功能只有通過(guò)網(wǎng)絡(luò)遠(yuǎn)程訪問(wèn)。在有線的網(wǎng)絡(luò)環(huán)境下,實(shí)現(xiàn)這些功能并不難,可是一旦處于無(wú)線環(huán)境這種平臺(tái)就不穩(wěn)定了。KDDIAP作為對(duì)LEAP這種原有的輕量化平臺(tái)的改進(jìn),解決了無(wú)線環(huán)境下實(shí)時(shí)獲得Agent服務(wù)的問(wèn)題,這是以增加代碼量和平臺(tái)啟動(dòng)時(shí)間為代價(jià)的?;旌夏J降妮p量Agent平臺(tái)結(jié)合了兩種輕量平臺(tái)的優(yōu)點(diǎn),保證了Agent平臺(tái)輕量化、靈活性。

本文創(chuàng)新點(diǎn):目前國(guó)內(nèi)外使用的多代理系統(tǒng)開(kāi)發(fā)平臺(tái)很多,但是適合于嵌入式系統(tǒng)平臺(tái)卻不多。主要原因在于嵌入式系統(tǒng)資源受限、工作環(huán)境多變、原有代理開(kāi)發(fā)平臺(tái)代碼量大。本文對(duì)原有的開(kāi)發(fā)平臺(tái)進(jìn)行輕量化改進(jìn),使其適合嵌入式系統(tǒng),并以S3C2410為例,了系統(tǒng)的方法。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉