基于移動(dòng)agent虛擬儀器系統(tǒng)體系結(jié)構(gòu)研究
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1 引言
隨著計(jì)算機(jī)技術(shù)和現(xiàn)代測(cè)試技術(shù)的快速發(fā)展,利用傳統(tǒng)的集成測(cè)試方法已經(jīng)難以滿(mǎn)足復(fù)雜測(cè)試任務(wù)的需求。虛擬儀器以開(kāi)放性好、智能化程度高、界面友好等優(yōu)勢(shì)顯示了其強(qiáng)大的生命力,研究?jī)?nèi)容已經(jīng)涉及到工程的諸多領(lǐng)域[1]。
現(xiàn)有的虛擬儀器技術(shù)在研究和實(shí)現(xiàn)上已取得了一定成就,但隨著測(cè)量?jī)?nèi)容的日益復(fù)雜、測(cè)量數(shù)據(jù)和指標(biāo)的不斷增加,對(duì)虛擬儀器的應(yīng)用也提出了越來(lái)越高的要求,一些問(wèn)題逐漸顯現(xiàn)出來(lái)。比如現(xiàn)有儀器系統(tǒng)的開(kāi)發(fā)依賴(lài)于經(jīng)驗(yàn)的積累,一般由用戶(hù)根據(jù)自身需求開(kāi)發(fā)小功能集的虛擬儀器系統(tǒng);儀器的平臺(tái)獨(dú)立性和擴(kuò)展性差,儀器系統(tǒng)的設(shè)計(jì)和執(zhí)行效率低下,適應(yīng)性不夠強(qiáng)[2]。因此,如何提高虛擬儀器系統(tǒng)的執(zhí)行效率,降低設(shè)計(jì)難度,是虛擬儀器系統(tǒng)研究中一個(gè)需要解決的重要問(wèn)題。
移動(dòng)agent是一種獨(dú)立的可確認(rèn)的計(jì)算機(jī)程序,它可以自主地在異構(gòu)網(wǎng)絡(luò)上按照一定規(guī)程移動(dòng),尋找和利用適合的計(jì)算資源、信息資源和軟件資源,代表用戶(hù)完成特定任務(wù)[3]。它具有主機(jī)間動(dòng)態(tài)遷移性、智能性、平臺(tái)無(wú)關(guān)性、分布靈活性、多agent合作性等六方面的特點(diǎn)。
因此,在本文中考慮將移動(dòng)agent技術(shù)運(yùn)用到虛擬儀器系統(tǒng)體系結(jié)構(gòu)的構(gòu)建中,用以改善現(xiàn)有虛擬儀器系統(tǒng)中出現(xiàn)的一些問(wèn)題。
2 基于移動(dòng)agent的虛擬儀器體系結(jié)構(gòu)設(shè)計(jì)
根據(jù)虛擬儀器系統(tǒng)的設(shè)計(jì)和移動(dòng)agent系統(tǒng)的特點(diǎn),在體系結(jié)構(gòu)設(shè)計(jì)中選用了綜合分層和網(wǎng)狀體系結(jié)構(gòu)最佳特征的混合模型,如圖1所示。
圖1 MAVIS的系統(tǒng)體系結(jié)構(gòu)
圖1中的雙箭頭——上層到下層表示控制流方向,下層到上層表示數(shù)據(jù)流方向。由于采用了網(wǎng)狀體系結(jié)構(gòu),整體上又保留了分層結(jié)構(gòu)的特點(diǎn),因此組件間可以不按照嚴(yán)格的分層結(jié)構(gòu)進(jìn)行通信。這樣在對(duì)虛擬儀器系統(tǒng)中的agent進(jìn)行管理時(shí),只需更改該agent的信息,不會(huì)影響其他agent的工作。例如當(dāng)需要執(zhí)行一個(gè)新的數(shù)據(jù)采集或處理分析任務(wù)時(shí),只需派遣一個(gè)新的agent去執(zhí)行任務(wù)即可,不需停止或重啟已執(zhí)行處理分析任務(wù)的agent。
在該體系結(jié)構(gòu)中,最下層的數(shù)據(jù)采集葉節(jié)點(diǎn)負(fù)責(zé)測(cè)試數(shù)據(jù)的采集,包括采樣位置、信號(hào)類(lèi)型等信息,并在將其傳遞到上層處理分析節(jié)點(diǎn)前進(jìn)行數(shù)據(jù)過(guò)濾,以減輕上層節(jié)點(diǎn)的工作壓力,有利于處理分析節(jié)點(diǎn)專(zhuān)注于虛擬儀器系統(tǒng)的功能實(shí)現(xiàn)。
上層的處理分析節(jié)點(diǎn)主要負(fù)責(zé)處理數(shù)據(jù),如對(duì)其進(jìn)行時(shí)頻域分析,統(tǒng)計(jì)分析等,提取影響測(cè)量結(jié)果的參數(shù)指標(biāo)并最終在本地機(jī)上形成測(cè)試結(jié)論顯示出來(lái)。處理分析agent的生成可以通過(guò)頂層的控制管理節(jié)點(diǎn)動(dòng)態(tài)控制。為了保證處理分析agent能夠高效地運(yùn)行相關(guān)測(cè)試,在系統(tǒng)運(yùn)行開(kāi)始就根據(jù)所需測(cè)試的基本類(lèi)型構(gòu)造處理分析agent集合。在運(yùn)行過(guò)程中,當(dāng)添加的處理分析agent和其他agent互相協(xié)作成功完成一次任務(wù)時(shí),系統(tǒng)就生成新的agent并添加到該虛擬儀器系統(tǒng)的處理分析agent集合中。一旦需要?jiǎng)h除處理分析agent時(shí),就必須從虛擬儀器系統(tǒng)的處理分析agent集合中刪除與該處理分析agent相關(guān)的所有agent。頂層的控制管理節(jié)點(diǎn)主要負(fù)責(zé)節(jié)點(diǎn)的分派和召回。
該體系結(jié)構(gòu)由分布在各受控主機(jī)上的移動(dòng)agent組成,各相鄰agent的關(guān)系平等,連結(jié)松散,可彼此獨(dú)立進(jìn)行操作,這樣設(shè)計(jì)的虛擬儀器系統(tǒng)更具容錯(cuò)性和重構(gòu)性。移動(dòng)agent的引入使數(shù)據(jù)采集節(jié)點(diǎn)、處理分析節(jié)點(diǎn)和控制管理節(jié)點(diǎn)并不總駐留在一臺(tái)物理主機(jī)上,即移動(dòng)agent可以作為處理分析節(jié)點(diǎn)移動(dòng)到最合適的物理位置。
3 基于移動(dòng)agent的虛擬儀器系統(tǒng)的實(shí)現(xiàn)
通過(guò)比較,由IBM東京Waston研究中心開(kāi)發(fā)的Aglets以其自身包容易安裝、穩(wěn)定性好、安全性高、跨平臺(tái)、直接提供適合Java的移動(dòng)agent技術(shù)、示例簡(jiǎn)單等優(yōu)勢(shì),成為MAIVS系統(tǒng)研究設(shè)計(jì)的平臺(tái)。Aglets用純Java語(yǔ)言編寫(xiě),具有較好的健壯性和移動(dòng)性。作為最早基于Java的商業(yè)化系統(tǒng),它提供了一套簡(jiǎn)單而全面的移動(dòng)agent編程模型和詳細(xì)且易用的安全機(jī)制,并為agent間提供了動(dòng)態(tài)、有效的通信機(jī)制。在實(shí)現(xiàn)過(guò)程中,設(shè)計(jì)關(guān)注具有檢測(cè)功能的處理分析agent的實(shí)現(xiàn),而不需考慮整個(gè)系統(tǒng)的通信機(jī)制和行為協(xié)調(diào)模式。
對(duì)于向用戶(hù)提供可執(zhí)行程序這一問(wèn)題,當(dāng)前的應(yīng)用程序雖然可以訪問(wèn)資源,但是它不具有普適性,也不能進(jìn)行實(shí)用的計(jì)算。事實(shí)上,一旦用戶(hù)想要執(zhí)行一個(gè)應(yīng)用程序,他不得不:(1)請(qǐng)求環(huán)境資源;(2)分配任務(wù);(3)觸發(fā)和控制執(zhí)行;(4)得到結(jié)果;(5)釋放資源[4]。
在MAIVS的體系結(jié)構(gòu)設(shè)計(jì)過(guò)程中,需要解決以下三個(gè)問(wèn)題:系統(tǒng)的總體框架、使用的儀器數(shù)量及類(lèi)型以及軟件實(shí)現(xiàn)[5]。軟件系統(tǒng)是虛擬儀器系統(tǒng)的核心部分。在虛擬儀器系統(tǒng)中軟件主要由功能軟件和虛擬面板控件兩部分構(gòu)成。前者主要包括硬件控制、采集卡控制、數(shù)據(jù)處理分析及顯示;后者包括虛擬顯示器、旋鈕、按鈕等。本文主要關(guān)注前者可按照功能封裝成獨(dú)立的agent的軟件模塊設(shè)計(jì)與實(shí)現(xiàn),通過(guò)Aglets提供的通信機(jī)制在虛擬儀器系統(tǒng)中協(xié)調(diào)一致的工作。
圖2 MAIVS任務(wù)求解流程圖
圖2中的移動(dòng)agent環(huán)境,即agent的運(yùn)行環(huán)境是Aglets系統(tǒng)。移動(dòng)agent有兩種環(huán)境分配策略:一種是為每個(gè)移動(dòng)agent分配單獨(dú)的服務(wù)環(huán)境;另一種是為所有的移動(dòng)agent分配同一個(gè)服務(wù)環(huán)境。前一種分配策略具有更強(qiáng)的安全性,但會(huì)占用更多的資源[6]。agent分派管理器是移動(dòng)agent服務(wù)環(huán)境的中心部件。它將移動(dòng)agent正常運(yùn)行所需的各項(xiàng)服務(wù)正確分配給相應(yīng)的子模塊,包括建立移動(dòng)agent的執(zhí)行環(huán)境、啟動(dòng)服務(wù)等。此外,它還負(fù)責(zé)協(xié)調(diào)各子模塊間的相互工作,保證它們的正常運(yùn)行。靜態(tài)agent(Static agent,SA)主要完成agent分派管理器與用戶(hù)接口agent的交互。
移動(dòng)agent的任務(wù)求解過(guò)程如下:
?、?源主機(jī)(主機(jī)A)根據(jù)用戶(hù)需要完成的檢測(cè)任務(wù),通過(guò)用戶(hù)接口agent初始化欲創(chuàng)建的移動(dòng)agent的內(nèi)部狀態(tài)集、知識(shí)庫(kù)、約束條件等。
?、?將代表用戶(hù)需求的特征表示寫(xiě)入移動(dòng)agent的知識(shí)庫(kù),設(shè)置最長(zhǎng)運(yùn)行時(shí)間、每個(gè)站點(diǎn)停留時(shí)間、任務(wù)完成度、經(jīng)由節(jié)點(diǎn)的最大數(shù)目等約束條件。
③ ATP定義了移動(dòng)agent在各受控主機(jī)間遷移的語(yǔ)法和語(yǔ)義,具體實(shí)現(xiàn)了agent在服務(wù)環(huán)境間的遷移,包括移入和移出。移動(dòng)agent利用ATP完成與本地移動(dòng)agent服務(wù)環(huán)境的通信,并在該服務(wù)環(huán)境中利用ATP協(xié)議完成移動(dòng)agent在網(wǎng)絡(luò)環(huán)境中從目標(biāo)主機(jī)和agent分派管理器間的遷移。
?、?問(wèn)題求解完成后,移動(dòng)agent在返回結(jié)果前先判斷網(wǎng)絡(luò)的連通性。如果連通并且用戶(hù)端(主機(jī)A)的Aglets平臺(tái)已經(jīng)啟動(dòng),那么移動(dòng)agent就可以直接返回;反之,則需要等待直到具備傳送條件才激活移動(dòng)agent,并將其傳回到源主機(jī)(主機(jī)A),將任務(wù)的求解結(jié)果提交給用戶(hù)。
?、?完成自身卸載進(jìn)入終止?fàn)顟B(tài),結(jié)束任務(wù)。
借助移動(dòng)agent技術(shù),在不同的硬件平臺(tái)下,可以完全由用戶(hù)自定義虛擬儀器系統(tǒng)的功能模塊,通過(guò)選取基本的測(cè)試硬件模塊,利用不同的軟件構(gòu)造出針對(duì)具體測(cè)試任務(wù)的測(cè)試儀器,即功能不同的處理分析agent。從而完成具有不同檢測(cè)功能的處理分析agent的“信號(hào)的調(diào)理與采集—數(shù)據(jù)的分析與處理—結(jié)果的輸出與顯示”。
4 實(shí)驗(yàn)仿真
將基于移動(dòng)agent的虛擬儀器系統(tǒng)體系結(jié)構(gòu)模型應(yīng)用到遠(yuǎn)程電子測(cè)量實(shí)驗(yàn)教學(xué)平臺(tái)的構(gòu)建。實(shí)驗(yàn)仿真內(nèi)容包括:在Aglets平臺(tái)上,發(fā)送一個(gè)波形檢測(cè)器agent和一個(gè)隨機(jī)波形發(fā)生器agent到其中一臺(tái)主機(jī),用以檢測(cè)發(fā)生波形和數(shù)據(jù)采集的結(jié)果;通過(guò)Aglets提供的Dispatch功能遠(yuǎn)程召回對(duì)PCI-6220 NI數(shù)據(jù)采集卡采集的數(shù)據(jù)進(jìn)行處理分析的agent。
實(shí)驗(yàn)結(jié)果表明,基于移動(dòng)agent的虛擬儀器系統(tǒng)體系結(jié)構(gòu)模型可以提高現(xiàn)有虛擬儀器系統(tǒng)的執(zhí)行效率,增強(qiáng)其擴(kuò)展性。這是因?yàn)橐苿?dòng)agent技術(shù)遷移的是邏輯而非數(shù)據(jù)。雖然移動(dòng)agent的代碼和參數(shù)都需要在網(wǎng)絡(luò)環(huán)境中傳輸,但這兩者結(jié)合起來(lái)的傳輸量仍比需要處理分析的原始數(shù)據(jù)量少的多,這種盡可能在本地機(jī)上處理分析數(shù)據(jù)的方式,有利于提高虛擬儀器系統(tǒng)的執(zhí)行效率。
此外,在該體系結(jié)構(gòu)的仿真實(shí)驗(yàn)中需要多次實(shí)驗(yàn)以確定合適的采樣周期和觸發(fā)間隔,即確定采樣率和采樣次數(shù)。采樣率越高則在單位周期內(nèi)的采樣次數(shù)越多。而觸發(fā)器時(shí)間取決于所構(gòu)建系統(tǒng)的運(yùn)行速度。
為保證整個(gè)系統(tǒng)的正常運(yùn)行,賦予每個(gè)處理分析agent一個(gè)生命周期值。當(dāng)其成功執(zhí)行一次任務(wù)后,該值加1。隨著處理分析agent集合數(shù)量的不斷增大,需要淘汰生命周期不強(qiáng)的agent,即淘汰生命周期值最小的agent。
5 結(jié)論
基于移動(dòng)agent的虛擬儀器系統(tǒng)體系結(jié)構(gòu)模型的提出,結(jié)合了現(xiàn)有虛擬儀器系統(tǒng)和移動(dòng)agent技術(shù)的優(yōu)勢(shì),有利于改善現(xiàn)有虛擬儀器系統(tǒng)的可重用性和平臺(tái)依賴(lài)性,用戶(hù)可以用較少的系統(tǒng)開(kāi)發(fā)維護(hù)費(fèi)用和更少的時(shí)間開(kāi)發(fā)出功能更強(qiáng)、質(zhì)量更可靠的產(chǎn)品和系統(tǒng),有利于提高現(xiàn)有虛擬儀器系統(tǒng)的設(shè)計(jì)效率。