基于移動(dòng)agent虛擬儀器系統體系結構研究
1 引言
本文引用地址:http://dyxdggzs.com/article/195860.htm隨著(zhù)計算機技術(shù)和現代測試技術(shù)的快速發(fā)展,利用傳統的集成測試方法已經(jīng)難以滿(mǎn)足復雜測試任務(wù)的需求。虛擬儀器以開(kāi)放性好、智能化程度高、界面友好等優(yōu)勢顯示了其強大的生命力,研究?jì)热菀呀?jīng)涉及到工程的諸多領(lǐng)域[1]。
現有的虛擬儀器技術(shù)在研究和實(shí)現上已取得了一定成就,但隨著(zhù)測量?jì)热莸娜找鎻碗s、測量數據和指標的不斷增加,對虛擬儀器的應用也提出了越來(lái)越高的要求,一些問(wèn)題逐漸顯現出來(lái)。比如現有儀器系統的開(kāi)發(fā)依賴(lài)于經(jīng)驗的積累,一般由用戶(hù)根據自身需求開(kāi)發(fā)小功能集的虛擬儀器系統;儀器的平臺獨立性和擴展性差,儀器系統的設計和執行效率低下,適應性不夠強[2]。因此,如何提高虛擬儀器系統的執行效率,降低設計難度,是虛擬儀器系統研究中一個(gè)需要解決的重要問(wèn)題。
移動(dòng)agent是一種獨立的可確認的計算機程序,它可以自主地在異構網(wǎng)絡(luò )上按照一定規程移動(dòng),尋找和利用適合的計算資源、信息資源和軟件資源,代表用戶(hù)完成特定任務(wù)[3]。它具有主機間動(dòng)態(tài)遷移性、智能性、平臺無(wú)關(guān)性、分布靈活性、多agent合作性等六方面的特點(diǎn)。
因此,在本文中考慮將移動(dòng)agent技術(shù)運用到虛擬儀器系統體系結構的構建中,用以改善現有虛擬儀器系統中出現的一些問(wèn)題。
2 基于移動(dòng)agent的虛擬儀器體系結構設計
根據虛擬儀器系統的設計和移動(dòng)agent系統的特點(diǎn),在體系結構設計中選用了綜合分層和網(wǎng)狀體系結構最佳特征的混合模型,如圖1所示。
圖1 MAVIS的系統體系結構
圖1中的雙箭頭――上層到下層表示控制流方向,下層到上層表示數據流方向。由于采用了網(wǎng)狀體系結構,整體上又保留了分層結構的特點(diǎn),因此組件間可以不按照嚴格的分層結構進(jìn)行通信。這樣在對虛擬儀器系統中的agent進(jìn)行管理時(shí),只需更改該agent的信息,不會(huì )影響其他agent的工作。例如當需要執行一個(gè)新的數據采集或處理分析任務(wù)時(shí),只需派遣一個(gè)新的agent去執行任務(wù)即可,不需停止或重啟已執行處理分析任務(wù)的agent。
在該體系結構中,最下層的數據采集葉節點(diǎn)負責測試數據的采集,包括采樣位置、信號類(lèi)型等信息,并在將其傳遞到上層處理分析節點(diǎn)前進(jìn)行數據過(guò)濾,以減輕上層節點(diǎn)的工作壓力,有利于處理分析節點(diǎn)專(zhuān)注于虛擬儀器系統的功能實(shí)現。
上層的處理分析節點(diǎn)主要負責處理數據,如對其進(jìn)行時(shí)頻域分析,統計分析等,提取影響測量結果的參數指標并最終在本地機上形成測試結論顯示出來(lái)。處理分析agent的生成可以通過(guò)頂層的控制管理節點(diǎn)動(dòng)態(tài)控制。為了保證處理分析agent能夠高效地運行相關(guān)測試,在系統運行開(kāi)始就根據所需測試的基本類(lèi)型構造處理分析agent集合。在運行過(guò)程中,當添加的處理分析agent和其他agent互相協(xié)作成功完成一次任務(wù)時(shí),系統就生成新的agent并添加到該虛擬儀器系統的處理分析agent集合中。一旦需要刪除處理分析agent時(shí),就必須從虛擬儀器系統的處理分析agent集合中刪除與該處理分析agent相關(guān)的所有agent。頂層的控制管理節點(diǎn)主要負責節點(diǎn)的分派和召回。
該體系結構由分布在各受控主機上的移動(dòng)agent組成,各相鄰agent的關(guān)系平等,連結松散,可彼此獨立進(jìn)行操作,這樣設計的虛擬儀器系統更具容錯性和重構性。移動(dòng)agent的引入使數據采集節點(diǎn)、處理分析節點(diǎn)和控制管理節點(diǎn)并不總駐留在一臺物理主機上,即移動(dòng)agent可以作為處理分析節點(diǎn)移動(dòng)到最合適的物理位置。
3 基于移動(dòng)agent的虛擬儀器系統的實(shí)現
通過(guò)比較,由IBM東京Waston研究中心開(kāi)發(fā)的Aglets以其自身包容易安裝、穩定性好、安全性高、跨平臺、直接提供適合Java的移動(dòng)agent技術(shù)、示例簡(jiǎn)單等優(yōu)勢,成為MAIVS系統研究設計的平臺。Aglets用純Java語(yǔ)言編寫(xiě),具有較好的健壯性和移動(dòng)性。作為最早基于Java的商業(yè)化系統,它提供了一套簡(jiǎn)單而全面的移動(dòng)agent編程模型和詳細且易用的安全機制,并為agent間提供了動(dòng)態(tài)、有效的通信機制。在實(shí)現過(guò)程中,設計關(guān)注具有檢測功能的處理分析agent的實(shí)現,而不需考慮整個(gè)系統的通信機制和行為協(xié)調模式。
對于向用戶(hù)提供可執行程序這一問(wèn)題,當前的應用程序雖然可以訪(fǎng)問(wèn)資源,但是它不具有普適性,也不能進(jìn)行實(shí)用的計算。事實(shí)上,一旦用戶(hù)想要執行一個(gè)應用程序,他不得不:(1)請求環(huán)境資源;(2)分配任務(wù);(3)觸發(fā)和控制執行;(4)得到結果;(5)釋放資源[4]。
評論