嵌入式輕量Agent平臺的構建研究
4.1 KVM移植
為測試輕量Agent平臺,我們將Agent平臺移植到基于ARM的嵌入式系統(tǒng)。這種嵌入式系統(tǒng)以三星公司的 S3C2410 芯片(ARM9內核)作為應用處理器,實時操作系統(tǒng)采用 Linux 操作系統(tǒng)。針對嵌入式設備硬件資源有限的事實,CLDC規(guī)范定義一個簡化版本的JAVA虛擬機,這個虛擬機通常被稱為KVM(Kilo-bytes Virtual Machine) [5]。
圖2 輕量化的系統(tǒng)結構
圖3 編譯后的KVM
建立輕量Agent運行的環(huán)境,需要在基于ARM與嵌入式操作系統(tǒng)的平臺上移植KVM,使JAVA語言能夠運行,如圖2。而KVM的目的是創(chuàng)造一個盡可能小的且盡可能完整的JAVA虛擬機,使開發(fā)者不用像開發(fā)C語言一樣關心硬件,而通過JAVA語言來進行開發(fā),達到一次編譯,各種平臺使用的目的。圖3表示編譯好的KVM可以在ARM上運行。將KVM燒到目標平臺上,便可以執(zhí)行JAVA程序。
4.2 輕量Agent部署
根據改進的輕量Agent框架部署Agent平臺,圖4所示的JADE安裝在運行J2SE的PC機上,Container-1和Container-2對應著輕量Agent運行的不同環(huán)境。
圖1中的PDA處于無線通信方式,它的Agent平臺一旦啟動,便會自動創(chuàng)建AMS和DF。同時,PDA上Container-1立即到位于PC機上的JADE平臺上注冊。圖1中的嵌入式設備是基于s3c2410的網絡設備,通過網線與鄰近的PC機通信。這里的嵌入式設備上軟件Agent平臺啟動后不會創(chuàng)建AMS和DF,為獲得相應的服務,嵌入式設備只需創(chuàng)建一個Client Agent,利用這個智能體隨時通過網線訪問后臺即可。圖4中Container-1和Container-2里面的所有Agent會注冊到Main-Container所在的Agent平臺。
完成注冊后,各遠端Agent與Main-Container所在的Agent平臺通信,提供各自的信息,供其它平臺上的Agent利用。異構網絡環(huán)境下,各嵌入式實時設備協(xié)同工作就基于這些信息。Container-1中的Agent若要同Container-2中的Agent交互,需要找到臨近的主機注冊。注冊到Main-Container所在的主機上之后,在主平臺下與已經注冊了的Container-2中的Agent 交互信息。
并不是所有的Container都能夠提供注冊服務,Container-2就是如此。提供注冊與注銷服務的平臺,一般運行在資源豐富的PC機上,這樣為嵌入式設備上運行的軟件Agent減少了相應的服務,也減少了代碼。
圖 4 Agent的注冊與部署結果
5 結論
JADE-LEAP框架下,位于資源有限設備上的Agent不具有AMS與DF創(chuàng)建的功能,為實現(xiàn)這一功能只有通過網絡遠程訪問。在有線的網絡環(huán)境下,實現(xiàn)這些功能并不難,可是一旦處于無線環(huán)境這種平臺就不穩(wěn)定了。KDDIAP作為對LEAP這種原有的輕量化平臺的改進,解決了無線環(huán)境下實時獲得Agent服務的問題,這是以增加代碼量和平臺啟動時間為代價的。混合模式的輕量Agent平臺結合了兩種輕量平臺的優(yōu)點,保證了Agent平臺輕量化、靈活性。
本文創(chuàng)新點:目前國內外使用的多代理系統(tǒng)開發(fā)平臺很多,但是適合于嵌入式系統(tǒng)平臺卻不多。主要原因在于嵌入式系統(tǒng)資源受限、工作環(huán)境多變、原有代理開發(fā)平臺代碼量大。本文對原有的開發(fā)平臺進行輕量化改進,使其適合嵌入式系統(tǒng),并以S3C2410為例,研究了系統(tǒng)的構建方法。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論