国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種基于異構(gòu)資源集成的算法實驗平臺研究及其實現(xiàn)

2014-04-01 01:00杜鎮(zhèn)盛羽彭悅陳天賜
關(guān)鍵詞:異構(gòu)客戶端組件

杜鎮(zhèn),盛羽,彭悅,陳天賜

(中南大學 信息科學與工程學院,湖南 長沙,410083)

在信息類課程中存在很多算法設(shè)計類課程,如數(shù)字信號處理和數(shù)字圖像處理,學生通過實驗不同方法學習掌握相應(yīng)算法的設(shè)計思想和實現(xiàn)方法,其中,實驗是這些課程學習的一個重要環(huán)節(jié)。學生通過實驗對所學的算法進行實現(xiàn)、改進和重新設(shè)計,并對算法的處理效果進行分析和比較,從而有效地加強學生的學習效果。目前,信息類課程中的算法設(shè)計型實驗主要通過2 種方式進行:(1) 學生使用一種編程語言,如C,C++,Java 和匯編語言等,對在課程中所學習到的算法予以實現(xiàn)、改進和設(shè)計。這種方法使用靈活,與所學知識結(jié)合緊密,但是,學生使用這種方法進行實驗前往往需要首先搭建復雜的軟件開發(fā)環(huán)境,特別是當需要對第三方軟件(如Matlab)進行調(diào)用時,這種設(shè)置過程將變得更加復雜,而這將導致學生在學習過程中難以將精力集中于算法設(shè)計。同時,在這種實驗?zāi)J较?,學生往往難以對其設(shè)計的算法的正確性和效果進行測試和分析。(2) 使用Multisim 和LabVIEW 等軟件進行模擬仿真[1]。借助這些軟件,學生可以在一定程度上擺脫繁瑣的工程計算,將更多精力投入到基本概念的理解中。但是,這種方式只局限于在實驗室中的計算機上使用,而且這種方法對學生的編程語言有很大限制。虛擬實驗室是指借助于計算機軟件和網(wǎng)絡(luò)技術(shù)所建立的一個可輔助、部分替代甚至全部替代傳統(tǒng)實驗各操作環(huán)節(jié)的相關(guān)軟硬件操作環(huán)境,目前,國內(nèi)外眾多學者對虛擬實驗室進行了大量研究,如:Yaron等[2]建立了一個在線的普通化學虛擬實驗室,學生可以自由選取虛擬實驗室中的化學儀器和試劑進行組合配置以進行化學實驗;Bal 等[3]使用LabView 作為用戶操作界面,通過Matlab&Simulink 實現(xiàn)對Matlab 的調(diào)用,建立了一個開關(guān)磁阻電機的虛擬實驗室;Olabarriaga 等[4]基于荷蘭的網(wǎng)格計算平臺并利用MOTEUR 數(shù)據(jù)流管理系統(tǒng)實現(xiàn)實驗數(shù)據(jù)傳送,建立了醫(yī)學圖像分析虛擬實驗室;Schaffer 等[5]基于HP 集群服務(wù)器建立了虛擬計算實驗室,用戶可以通過RDP協(xié)議或SSH 協(xié)議獲取所需的虛擬機資源完成計算工作;Gustavsson 等[6]利用網(wǎng)格技術(shù)建立了一個連接多臺硬件實驗設(shè)備的電子與機械震動虛擬實驗室,使多個學生可以同時使用后臺硬件設(shè)備進行實驗;Kumar等[7]建立了一個基于Internet 的心電圖設(shè)備及數(shù)據(jù)虛擬實驗室,使學生可以遠程使用心電圖設(shè)備或者數(shù)據(jù)以輔助學習;Araiza-Esquivel 等[8]建立的數(shù)字化全息照相技術(shù)虛擬實驗室應(yīng)用于課堂及遠程教學,學生可以在系統(tǒng)中對二進制全息圖進行創(chuàng)建、刪減和放大等操作。Li[9]建立了一種基于虛擬機的分布式入侵檢測系統(tǒng),并對不同虛擬機環(huán)境下的實驗效果進行了比較分析。 Li 等[10]從虛擬實驗室的理論基礎(chǔ)、框架和特點幾個方面介紹了中學物理虛擬實驗系統(tǒng),其理論基礎(chǔ)是受行為主義、認知主義和建構(gòu)主義的啟發(fā),其框架面向于群組實驗和指導性實驗,包括提供了電子、光學和滑輪組幾個實驗類型。本文作者所在課題組[11-14]也基于Java Applet 技術(shù)建立了計算機組成原理、數(shù)字圖像處理和匯編語言等課程的虛擬實驗室系統(tǒng)。這些虛擬實驗室有著各自的特點和優(yōu)勢,但也普遍存在一些不足,如:它們大部分采用基于組件的軟件開發(fā)技術(shù),利用一種編程語言實現(xiàn),普遍缺乏對異構(gòu)資源的支持,不熟悉該語言則無法開發(fā)組件,并且很多成熟的異構(gòu)資源也不能集成到平臺之中,無法重用這些軟件資源;利用CORBA 和DOM 技術(shù)雖然能夠?qū)崿F(xiàn)異構(gòu)對象的通信,但是,它們基于特定的協(xié)議和標準,而且不能跨越防火墻,具有很大的局限性。針對這些問題,本文提出一種面向異構(gòu)資源集成的虛擬實驗平臺。該平臺利用Web 服務(wù)技術(shù),將異構(gòu)組件發(fā)布為Web 服務(wù)組件。Web 服務(wù)組件是一種分布式組件,它具有語言獨立性、高度可集成性、松散耦合和使用協(xié)議普遍等特點[15],因此,平臺可以集成異構(gòu)組件,實現(xiàn)組件的重用;并且平臺支持用戶利用自己熟悉的語言自主開發(fā)組件,平臺會將它們自動注冊為Web 服務(wù)組件,集成到平臺中,提高用戶的動手實踐能力和創(chuàng)新能力。利用Web 服務(wù)技術(shù)通過重用異構(gòu)組件和用戶自主設(shè)計組件,可以迅速組裝具有高度可重用性、可維護性和個性化的虛擬實驗平臺。

1 平臺架構(gòu)設(shè)計

通過分析,本文采用Java 語言開發(fā)和實現(xiàn)平臺功能,采用JavaBean 技術(shù)開發(fā)同構(gòu)的JavaBean 組件,采用Web 服務(wù)技術(shù)對異構(gòu)組件進行封裝,開發(fā)Web服務(wù)組件。其架構(gòu)設(shè)計如圖1 所示。

圖1 虛擬實驗平臺的架構(gòu)設(shè)計圖Fig.1 Architecture design of virtual laboratory platform

JavaBean 組件在客戶端運行,具有較高的運行效率,主要用于實現(xiàn)獲取用戶及系統(tǒng)的輸入以及在客戶端顯示實驗運行結(jié)果等功能;Web 服務(wù)組件主要用于封裝異構(gòu)資源,實現(xiàn)異構(gòu)資源的重用。在此基礎(chǔ)上,虛擬實驗平臺采用B/S 架構(gòu)模式,由Applet 客戶端、Web 服務(wù)器端和分布式Web 服務(wù)資源3 部分組成。

Java Applet 客戶端為用戶提供圖形化的操作界面,用戶通過它與平臺進行實時交互。用戶可以通過瀏覽器直接訪問客戶端,從而屏蔽了不同操作系統(tǒng)之間的差異,具有良好的跨平臺性。客戶端開始運行后,通過網(wǎng)絡(luò)向服務(wù)注冊中心請求所有虛擬實驗儀器的描述信息,并利用獲取的描述信息動態(tài)地更新平臺的組件信息列表。在平臺中,用戶可以通過鼠標拖拽創(chuàng)建虛擬儀器,并添加虛擬儀器之間的連接線,定制個性化的實驗流程。當用戶選中虛擬儀器時,可以在組件參數(shù)配置面板中設(shè)置或修改其參數(shù)內(nèi)容,并且可以在組件說明面板中查看虛擬儀器所對應(yīng)組件的描述說明信息,以增強對組件的理解。在搭建實驗流程、設(shè)置虛擬儀器的參數(shù)內(nèi)容之后,用戶就可以開始執(zhí)行實驗并查看實驗結(jié)果。平臺還為用戶提供了保存實驗、裝載實驗、新建實驗和運行經(jīng)典實驗等功能。更為重要的是,平臺為用戶提供了多種Web 服務(wù)發(fā)布接口,用戶可以提交自己設(shè)計的算法的源代碼,平臺會自動將其發(fā)布為Web 服務(wù),并與當前平臺集成,供用戶使用??蛻舳酥苯雨P(guān)系到用戶的操作體驗,是平臺中非常重要的內(nèi)容。

Web 服務(wù)器端為用戶提供Java Applet 應(yīng)用程序、配置文件以及其他一些資源,其中還包括服務(wù)注冊中心和服務(wù)發(fā)布引擎。當用戶通過瀏覽器登錄客戶端時,就會從服務(wù)器端獲取Applet 應(yīng)用程序和平臺支持文件,從而實現(xiàn)對平臺的訪問。服務(wù)器端的服務(wù)注冊中心保存了JavaBean 組件和Web 服務(wù)組件的描述信息,其中主要包括組件的分類信息、訪問地址信息、調(diào)用接口信息和組件說明信息等??蛻舳藛訒r,將向服務(wù)注冊中心查詢組件信息,從而更新自己的組件信息列表。服務(wù)發(fā)布引擎為用戶提供Web 服務(wù)發(fā)布的功能,當用戶通過客戶端提交算法實現(xiàn)的源碼時,服務(wù)發(fā)布引擎根據(jù)用戶提交源代碼的程序設(shè)計語言的類型,自動將其發(fā)布為Web 服務(wù),并將該Web 服務(wù)的描述信息注冊到服務(wù)注冊中心,同時返回給客戶端,以便客戶端更新組件信息列表,實現(xiàn)組件的即時發(fā)布。

Web 服務(wù)資源層主要包括Web 服務(wù)組件庫、JavaBean 組件庫和經(jīng)典實驗庫等。Web 服務(wù)組件庫是大量Web 服務(wù)的集合,它可以位于不同的服務(wù)器上,減輕單一服務(wù)器的負載壓力。Web 服務(wù)組件是各種異構(gòu)組件的服務(wù)化封裝,JavaBean 組件是Java 類的組件化封裝。為了方便用戶的使用,本文采用一種可視化機制,對Web 服務(wù)組件和JavaBean 組件進行處理,將它們映射為可視化的虛擬儀器,如圖2 所示。經(jīng)典實驗庫為用戶提供了課程中所包含的經(jīng)典實驗集合,方便用戶進行學習,提高學習效率。

虛擬實驗平臺采用J2EE 體系結(jié)構(gòu)實現(xiàn),具有良好的穩(wěn)定性、可移植性和跨平臺性。利用Web 服務(wù)技術(shù),提高了平臺的可重用性、可維護性、可擴展性以及個性化。

圖2 服務(wù)及組件的可視化機制Fig.2 Visualization mechanism of services and components

2 平臺關(guān)鍵技術(shù)

2.1 異構(gòu)資源的Web 服務(wù)化封裝

Web 服務(wù)技術(shù)通過Internet 和SOAP 協(xié)議進行通信,具有很強的可移植性和互操作性。它向外界提供服務(wù)和資源的接口,而不涉及其內(nèi)部的實現(xiàn)方式,屏蔽了異構(gòu)系統(tǒng)之間的區(qū)別,從而實現(xiàn)了對異構(gòu)資源的封裝和調(diào)用。

學生在進行算法類課程實驗時,經(jīng)常會用到多種開發(fā)語言和開發(fā)工具,如OpenCV,C/C++,Java 和MATLAB 等。為了實現(xiàn)這些異構(gòu)組件之間的通信,平臺利用Web 服務(wù)技術(shù)將它們統(tǒng)一封裝為Web 服務(wù),組成Web 服務(wù)組件庫。Web 服務(wù)技術(shù)作為Web 服務(wù)發(fā)布和調(diào)用的規(guī)范,有效地解決了異構(gòu)組件之間的互操作問題。為了進一步了解異構(gòu)組件的服務(wù)化封裝機制,本文以MATLAB 組件為例說明系統(tǒng)對異構(gòu)資源自動封裝發(fā)布的過程。

MATLAB 是一套科學計算軟件,具有強大的計算機數(shù)據(jù)處理能力,很強的圖形繪制與處理能力,并且擁有應(yīng)用廣泛的模塊集合工具箱。但是,它局限于自己的運行環(huán)境,而不便于集成到其他應(yīng)用程序中。將MATLAB 組件封裝為Web 服務(wù),有效地解決了這一問題。MATLAB 作為后臺服務(wù)器和服務(wù)提供者,可向服務(wù)請求者提供強大的功能支持,實現(xiàn)了對MATLAB功能組件的軟件重用。由于目前還沒有直接將MATLAB 組件發(fā)布為Web 服務(wù)的方法,所以,需要利用MATLAB 與高級編程語言的接口,以高級編程語言作為橋梁,幫助實現(xiàn)這種轉(zhuǎn)化。比較通用的就是利用C/C++作為中間橋梁來實現(xiàn)這種轉(zhuǎn)化,本文也采用這種方式。

MATLAB 與C/C++的接口有3 種形式:MEX 文件、MAT 文件應(yīng)用程序和引擎應(yīng)用程序。為方便對MATLAB 組件封裝,本文采用引擎應(yīng)用程序模式,實現(xiàn)C/C++與MATLAB 的混合編程。引擎應(yīng)用程序?qū)嵸|(zhì)上是把MATLAB 作為一個后臺引擎,并允許C/C++程序通過引擎接口,從后臺啟動這個引擎,并利用引擎庫函數(shù)實現(xiàn)對MATLAB 的調(diào)用。常用的引擎庫函數(shù)有:engOpen,用于開啟MATLAB 引擎;engClose,用于關(guān)閉MATLAB 引擎;engPutVariable,用于給MATLAB 引擎?zhèn)鬏敂?shù)據(jù);engGetVariable,用于從MATLAB 引擎獲取數(shù)據(jù);engEvalString,用于對MATLAB 語句的調(diào)用執(zhí)行。MATLAB 和C/C++數(shù)據(jù)類型不同,為實現(xiàn)二者之間的數(shù)據(jù)傳遞,MATLAB 提供了一個數(shù)據(jù)類型mxArray,用以在C/C++程序中表示 MATLAB 數(shù)據(jù),并提供了 mxCreateXXX 和mxDestroyArray 函數(shù),在C/C++程序中實現(xiàn)mxArray類型數(shù)據(jù)的創(chuàng)建和刪除。通過MATLAB 與C/C++的編程接口,將MATLAB 組件封裝為一個C/C++組件,然后,利用C/C++組件的服務(wù)發(fā)布方法,將MATLAB組件發(fā)布為Web 服務(wù)。

本文采用gSoap 作為C/C++組件的SOAP 運行環(huán)境,將C/C++與MATLAB 混合編程的組件發(fā)布為Web服務(wù)。其服務(wù)發(fā)布過程如下:首先,創(chuàng)建一個C/C++的H 頭文件,在其中設(shè)置服務(wù)名稱、服務(wù)調(diào)用方式、服務(wù)編碼方式以及服務(wù)命名空間等信息;然后,提取C/C++組件中方法的函數(shù)聲明,并將其按照gSoap 要求的格式,保存在該頭文件中,假設(shè)頭文件的名稱為ws.h;利用gSoap 提供的工具soapcpp2,并以ws.h 文件作為參數(shù),生成服務(wù)發(fā)布需要的支持文件,主要有soapC.cpp,soapH.h,soapServer.cpp,soapStub.h,soapObject.h 和ws.nsmap,還需要對C/C++組件按照gSoap 的要求進行改裝;最后,將C/C++組件和服務(wù)發(fā)布支持文件利用C/C++編譯器進行編譯,生成CGI文件,再將該CGI 文件配置到Tomcat 服務(wù)器,即完成了服務(wù)的發(fā)布工作。服務(wù)請求者便可以通過CGI 方式訪問該Web 服務(wù),調(diào)用MATLAB 提供的強大功能。為實現(xiàn)MATLAB 組件的自動化發(fā)布,需要用戶提供MATLAB 組件中方法的C/C++類型的聲明,平臺可以利用此聲明,自動化地生成ws.h 文件和對MATLAB組件進行封裝的C/C++組件文件。然后,調(diào)用soapcpp2工具,生成服務(wù)發(fā)布需要的支持文件。平臺采用Makefile 技術(shù),將支持文件與C/C++組件文件組成一個編譯項目,并對該項目進行自動化編譯,生成CGI文件,實現(xiàn)MATLAB 組件的自動化服務(wù)發(fā)布。例如,對于用戶提交的函數(shù)Complex[] fft(double sig[], int size),經(jīng)過包裝后形成的代碼部分為:

由于MATLAB 語言是一種解釋性語言,對于變量的類型是沒有明確定義的,例如函數(shù)fft_sig(sig)中的變量sig 既可以是復數(shù),也可以是實數(shù),它是根據(jù)用戶輸入的數(shù)據(jù)來判斷類型的。由于C/C++是強制類型語言,因此,在M 文件 (MATLAB 語言編寫的腳本文件)注冊時,必須指定M 函數(shù)中各種變量的具體類型,客戶端向服務(wù)端傳遞了4 種不同功能的參數(shù)類型:輸入?yún)?shù)類型、輸出參數(shù)類型、返回參數(shù)類型和執(zhí)行類型。根據(jù)面向?qū)ο缶幊痰乃枷耄O(shè)計了一個抽象的Type 類,該類記錄了名字、類型類別和輸出緩沖空間等信息,利用Java 的List 構(gòu)成鏈表數(shù)據(jù)結(jié)構(gòu)。擁有一個抽象的方法write( ),子類通過實現(xiàn)該方法來實現(xiàn)不同類型代碼的自動生成。

最終代碼自動生成的關(guān)鍵代碼如下:

通過解析M 文件注冊的XML 配置文檔,利用基于反射的簡單工廠模式生成不同的Type 實例,在其初始化的過程便調(diào)用write 方法完成了相應(yīng)代碼的生成。

2.2 實驗運行的調(diào)度機制

在虛擬實驗平臺客戶端中,用戶可以根據(jù)實驗需要,選擇虛擬實驗儀器組件通過連線的方式建立組建之間的數(shù)據(jù)通路。在一個實驗流程中,各種虛擬一起組件之間通過連線形成了一個有機整體。由于組件之間的連接關(guān)系非常復雜,為了保證實驗有序、順利、高效地執(zhí)行,需要設(shè)計一個合理的實驗運行調(diào)度機制。

實驗流程在視覺上給用戶的展示就是多個虛擬實驗設(shè)備之間通過連線連接起來,宏觀上就是1 個圖。每個虛擬實驗設(shè)備可以抽象為圖結(jié)構(gòu)中的1 個節(jié)點,2 個引腳之間的連線可以抽象為1 條有向邊。在這個有向圖中,對于每個節(jié)點,只有其所有的父節(jié)點執(zhí)行完畢,并將數(shù)據(jù)傳遞給它,才能執(zhí)行。因此,實驗的執(zhí)行順序就是按照圖的拓撲排序后的順序來執(zhí)行的。

第1 種實驗調(diào)度流程就是按照拓撲圖的結(jié)構(gòu)從上級到下級依次執(zhí)行每個實驗組件,這個調(diào)度流程簡單明了,但存在一定缺陷。Web 服務(wù)組件在調(diào)用時需要進行網(wǎng)絡(luò)數(shù)據(jù)傳輸,假設(shè)A 和B 是2 個Web 服務(wù)組件,且A 是B 的父節(jié)點,C 和D 分別為A 和B 這2個節(jié)點對應(yīng)的服務(wù)端的Web 服務(wù)。按照這種調(diào)度流程,執(zhí)行過程如下:A 根據(jù)服務(wù)的接口信息和參數(shù)內(nèi)容向C 發(fā)送SOAP 請求數(shù)據(jù),C 處理完畢后向A 回發(fā)SOAP 響應(yīng)數(shù)據(jù);A 將數(shù)據(jù)傳遞給B,B 同樣根據(jù)服務(wù)的接口信息和參數(shù)內(nèi)容向D 發(fā)送SOAP 請求數(shù)據(jù),D 處理完畢后向B 回發(fā)SOAP 響應(yīng)數(shù)據(jù)。在整個過程中,客戶端與服務(wù)器存在4 次數(shù)據(jù)傳輸,但經(jīng)過仔細分析后,4 次數(shù)據(jù)傳輸可以減少為2 次數(shù)據(jù)傳輸。可以將A 和B 看作為1 個Web 服務(wù)組合組件,客戶端請求執(zhí)行Web 服務(wù)組合組件,將執(zhí)行信息發(fā)送給服務(wù)端,服務(wù)端接收到請求后,依次執(zhí)行A 和B 這2 個Web 服務(wù)組件,然后,將結(jié)果返回給客戶端,這樣,可以將原有的4 次數(shù)據(jù)交換減少為2 次數(shù)據(jù)交換。顯然,若相互關(guān)聯(lián)的Web 服務(wù)組件越多,則節(jié)省的網(wǎng)絡(luò)數(shù)據(jù)傳送次數(shù)就越多。為此,本文提出了一種基于Web 服務(wù)組件組合優(yōu)化的實驗調(diào)度流程,它可以在存在多個相互關(guān)聯(lián)的Web 服務(wù)組件的情況下,減少網(wǎng)絡(luò)間的數(shù)據(jù)交換次數(shù),提升實驗的執(zhí)行效率。

基于Web 服務(wù)組件組合優(yōu)化的實驗調(diào)度流程的執(zhí)行步驟如下。

步驟1 檢查實驗拓撲圖是否為空,若為空,則實驗執(zhí)行流程結(jié)束。

步驟2 按照拓撲順序,從實驗拓撲圖中取出實驗組件,判斷實驗組件的類型。若組件類型為Web 服務(wù)組件,則繼續(xù)執(zhí)行步驟1;若組件類型為本地組件,則轉(zhuǎn)入步驟3。

步驟3 判斷本地組件是否有前驅(qū),若存在前驅(qū),則轉(zhuǎn)入步驟4;否則,執(zhí)行本地組件,從實驗拓撲圖中刪除該節(jié)點,轉(zhuǎn)入步驟1。

步驟4 將本地組件的所有前驅(qū)節(jié)點取出來,行成1 個待執(zhí)行的Web 服務(wù)組件列表,并從實驗拓撲圖中刪除這些前驅(qū)節(jié)點。

步驟5 根據(jù)步驟4 中的Web 服務(wù)組件列表構(gòu)建發(fā)往服務(wù)器的節(jié)點列表,將列表發(fā)往服務(wù)器;

步驟6 根據(jù)服務(wù)器執(zhí)行的返回結(jié)果獲取本地組件需要的參數(shù)執(zhí)行本地組件,并將該節(jié)點從實驗拓撲圖中刪除,轉(zhuǎn)入步驟1。

通過步驟2 和3 可以保證實驗流程圖中連續(xù)的Web 服務(wù)組件一起打包發(fā)往服務(wù)器上執(zhí)行,原先的2N次數(shù)據(jù)傳輸(N 是連續(xù)Web 服務(wù)組件的個數(shù))降為2 次數(shù)據(jù)傳輸。圖3 所示為試驗運行調(diào)度流程圖。

本實驗調(diào)度流程的正確執(zhí)行程度主要取決于步驟4 中的構(gòu)建的發(fā)往服務(wù)器的節(jié)點列表。該列表不僅需記錄組件的執(zhí)行順序,而且攜帶組件執(zhí)行所需的參數(shù)。本文采用XML 文檔構(gòu)造此節(jié)點列表。構(gòu)造XML 文檔時,用1 對描述1 個Web 服務(wù)組件的執(zhí)行信息。method 元素包括4 個屬性:serviceurl,nameSpace,methodName 和id。其中:serviceurl 記錄Web 服務(wù)的地址;nameSpace 記錄Web 服務(wù)模式名字空間;methodName 記錄Web 服務(wù)的接口名;id 是按升序生成的序列值,用來唯一標識每個Web 服務(wù)組件。method 元素下面有2 種類型子元素:param 和ret。param 用于表示參數(shù)方面的信息,它有一個固定的屬性type,用于表示參數(shù)的類型。若這個參數(shù)的內(nèi)容是依賴于其他Web 服務(wù)組件執(zhí)行的返回值,則會有另外一個屬性pid,用來表示所依賴的組件的id。否則,元素param 的內(nèi)容就是參數(shù)內(nèi)容字符形式。ret 用于表示W(wǎng)eb 服務(wù)組件的返回類型。該文檔中所有method標簽對都是按照Web 服務(wù)組件的執(zhí)行順序排列的。服務(wù)器為了保證這些Web 服務(wù)組件的執(zhí)行,需要建立一個Hash 表,其鍵值是Web 服務(wù)組件的id,映射的值就是Web 服務(wù)組件執(zhí)行的結(jié)果。服務(wù)器根據(jù)接收到的節(jié)點列表,依次解析出其中的每個method 元素,若其參數(shù)值是依賴于其他組件,就根據(jù)其依賴的pid 值到Hash 表找到對應(yīng)的內(nèi)容,然后執(zhí)行組件,執(zhí)行完后將結(jié)果寫入到Hash 表中。所有的Web 服務(wù)組件執(zhí)行完后,將執(zhí)行結(jié)果以XML 格式返回給客戶端,這樣就完成多個Web 服務(wù)組件的執(zhí)行。另外,為了減少執(zhí)行過程中的流量,本文對調(diào)度中傳遞的XML 文檔采用7Z 技術(shù)進行壓縮。

圖3 實驗運行調(diào)度流程圖Fig.3 Flow chart of experimental running

3 平臺應(yīng)用實例

數(shù)字信號處理是一門內(nèi)容十分抽象、公式繁多以及理論性很強的課程,單純的理論教學容易使學生感到枯燥乏味,喪失學習興趣,不利于學生對后續(xù)課程的學習。但是通過實驗,學生可以跳出對理論的單一理解;通過觀察實驗結(jié)果,又可以激勵學生對理論的進一步學習。這種理論-實驗的良性循環(huán)有利于學生學習這門課程。而在傳統(tǒng)的實驗?zāi)J街?,學生需要安裝相應(yīng)軟件開發(fā)環(huán)境特別是需要安裝Matlab 軟件才能完成實驗,其過程比較復雜,且學生對其所實現(xiàn)的算法也難以進行性能和處理效果的比較分析。依托面向虛擬異構(gòu)資源集成的虛擬實驗平臺,所開發(fā)的數(shù)字信號處理虛擬實驗系統(tǒng)則可以為學生提供一個操作簡單,能靈活定義實驗流程并能對實驗結(jié)果進行比較分析的開放式實驗環(huán)境。

本文以數(shù)字信號處理課程中的巴特沃斯低通濾波實驗為例說明虛擬實驗系統(tǒng)中的實驗流程的搭建和運行。其具體步驟如下。

首先,選擇實驗所需的各種實驗組件。根據(jù)實驗的需求,從信號源分類組件庫中選取2 個余弦波發(fā)生器,從信號處理組件庫中選取信號濾波器(FIR)、巴特低通濾波系數(shù)產(chǎn)生器和FIR 頻率響應(yīng)器,同時,根據(jù)觀察實驗結(jié)果需求,從圖形展示組件庫中選取若干圖形展示組件。其中,巴特低通濾波系數(shù)產(chǎn)生器是Web服務(wù)組件,其他的是Java 組件。根據(jù)實驗流程,為組件之間搭線。圖4 所示為實驗搭建后的流程圖。

圖4 巴特沃斯低通濾波實驗Fig.4 Experiment of Butterworth LPF

然后,設(shè)置實驗組件參數(shù)。完成實驗流程的搭建后,還需對組件的參數(shù)進行設(shè)置。用鼠標左鍵單擊設(shè)計面板中的1 個實驗組件,右邊的參數(shù)編輯窗口就會自動裝載組件的參數(shù)內(nèi)容,單擊相應(yīng)的參數(shù)進行編輯。對1 個余弦波發(fā)生器組件的參數(shù)進行設(shè)置,如表1 所示。由表1 可知:余弦波的頻率被設(shè)為16,采樣頻率設(shè)為64 次,相位設(shè)為0 V。

表1 配置組件參數(shù)表Table 1 Parameters of component configuration

最后,執(zhí)行實驗流程。實驗執(zhí)行完畢后,單擊結(jié)果展示面板組件會彈出實驗結(jié)果窗口。輸出面板是將1 個實數(shù)數(shù)組用X-Y 坐標系的方式展示出來。它首先遍歷收到的數(shù)組,獲取到最大值和最小值,通過最大值和最小值的差值得到圖像展示區(qū)的相對高度H,以數(shù)組的長度作為圖像展示區(qū)的相對長度L。根據(jù)實際可用于顯示的區(qū)間,假設(shè)其高度為H1,寬度為L1,則映射到數(shù)組序列中的單位高度為H1/H,單位長度L1/L,以圖像展示區(qū)的左下角作為X-Y 坐標系的原點,將數(shù)組的每個元素布局在面板上。圖5(a)和5(b)所示為2個輸入信號的波形,圖5(c)所示為2 個輸入信號混合疊加后的信號波形,圖5(d)所示為經(jīng)過巴特沃斯低通濾波之后形成的波形。從實驗運行結(jié)果可知:可以通過實驗輸出面板很直觀地看出實驗結(jié)果,并可實驗效果進行對比。

圖5 實驗運行結(jié)果Fig.5 Experiment results

從搭建實驗到完成實驗,與傳統(tǒng)的虛擬實驗平臺相比,用戶可以通過基于異構(gòu)資源集成的虛擬實驗平臺將OpenCV 組件和Matlab 組件等自己熟悉的語言開發(fā)的組件集成到當前平臺中,更能提高用戶的動手實踐能力和創(chuàng)新能力;通過異構(gòu)組件發(fā)布的方式能為用戶提供豐富的Web 服務(wù)組件,為用戶實驗提供極大方便,提高了組建的重用度;而且平臺簡單易用,具有良好的互操作性、維護性、擴展性和重用性,為其他虛擬實驗平臺的建設(shè)提供了重要參考。

4 結(jié)論

(1) 針對信息類課程中傳統(tǒng)實驗?zāi)J街兴惴愋蛯嶒炈嬖诘膯栴},提出了一種面向異構(gòu)資源集成的虛擬實驗平臺。

(2) 以數(shù)字信號處理虛擬實驗系統(tǒng)為例說明了該平臺的應(yīng)用方法和使用效果。

(3) 該平臺能夠為學生提供一個簡單易用的算法類課程實驗環(huán)境,使學生在無需配置復雜開發(fā)環(huán)境下能夠集成異構(gòu)實驗資源對自己所設(shè)計算法進行正確性檢測和性能分析。

[1] 王秋生, 袁海文. 《數(shù)字信號處理》課程的分層實驗教學方法[J]. 北京航空航天大學學報(社會科學版), 2011, 24(5):109-112.WANG Qiusheng, YUAN Haiwen. Experimental teaching method based on hierarchy model for digital signal processing[J].Journal of Beijing University of Aeronautics and Astronautics(Social Sciences Edition), 2011, 24(5): 109-112.

[2] Yaron D, Karabinos M, Lange D, et al. The ChemCollective-virtual labs for introductory chemistry courses[J]. Science, 2010, 328(5978): 584-585.

[3] Bal G, Bayhan S. Internet based virtual electric machine lab:Switched reluctance motor[C]//International Conference on Application of Information and Communication Technologies.Tashkent: IEEE Computer Society, 2010: 1-5.

[4] Olabarriaga S D, Glatard T, de Boer P T. A virtual laboratory for medical image analysis[C]//IEEE Transactions on Information Technology in Biomedicine. Piscataway: IEEE Computer Society, 2010: 979-985.

[5] Schaffer H E, Averitt S F, Hoit M I, et al. NCSU’s virtual computing lab: a cloud computing solution[J]. Computer, 2009,42(7): 94-97.

[6] Gustavsson I, Nilsson J, H?kansson L,et al.A flexible electronics laboratory with local and remote workbenches in a grid[J].International Journal of Online Engineering, 2008, 4(2): 12-16.

[7] Kumar A, Malik J, Kuma V. Virtual lab:real-time acquisition and analysis of ECG signal[J]. International Journal of Online Engineering, 2011, 7(3): 19-23.

[8] Araiza-Esquivel M A, Tajahuerce E, Martínez-León L, et al.Learning digital holography through an interactive virtual lab:the holographic interface[C]//International Conference on Education and New Learning Technologies.Barcelona:International Association of Technology, Education and Development, 2011: 4774-4781.

[9] Li P. Exploring virtual environments in a decentralized lab[J].ACM SIGITE Research in IT, 2009, 6(1): 4-10.

[10] LI Luyi, ZHENG Yanlin, ZHONG Shaochun. IWVL: A web-based virtual lab for physics teaching in junior high schools[J]. Communications in Computer and Information Science, 2011, 233: 192-199.

[11] WANG Yijun, ZHANG Liyuan, SHENG Yu, et al. Design and implementation of principles of computer organization virtual lab based on component//Second Workshop on Blended Learning. Jinhua: Springer Berlin Heidelberg, 2008: 35-45.

[12] 盛羽, 余進, 陳松喬, 等. 基于CPU 仿真器的匯編語言學習系統(tǒng)的設(shè)計與實現(xiàn)[J]. 中南大學學報(自然科學版), 2010,41(6): 2224-2230.SHENG Yu, YU Jin, CHEN Songqiao, et al. Design and implementation of assembly language learning system based on CPU simulator[J]. Journal of Central South University (Science and Technology), 2010, 41(6): 2224-2230.

[13] 盛羽, 張青龍, 陳松喬, 等. 面向最終用戶編程的圖像處理虛擬實驗平臺[J]. 系統(tǒng)仿真學報, 2011, 23(7): 1381-1386.SHENG Yu, ZHANG Qinglong, CHEN Songqiao, et al.Business-end programming oriented virtual laboratory for digital image processing[J]. Journal of System Simulation, 2011, 23(7):1381-1386.

[14] 盛羽, 王建新, 謝朝輝. 模型機虛擬實驗平臺的設(shè)計與實現(xiàn)[J]. 中南大學學報(自然科學版), 2009, 40(6): 1609-1615.SHENG Yu, WANG Jianxin, XIE Zhaohui. Design and implementation of model computer virtual lab[J]. Journal of Central South University (Science and Technology), 2009, 40(6):1609-1615.

[15] Herrero J L, Lucio F, Carmona P. Web services and web components[C]//International Conference on Next Generation Web Services Practices. Salamanca: IEEE Computer Society,2011: 164-169.

猜你喜歡
異構(gòu)客戶端組件
你的手機安裝了多少個客戶端
ETC拓展應(yīng)用場景下的多源異構(gòu)交易系統(tǒng)
無人機智能巡檢在光伏電站組件診斷中的應(yīng)用
試論同課異構(gòu)之“同”與“異”
新型碎邊剪刀盤組件
U盾外殼組件注塑模具設(shè)計
如何看待傳統(tǒng)媒體新聞客戶端的“斷舍離”?
吳?。憾嘣悩?gòu)的數(shù)字敦煌
縣級臺在突發(fā)事件報道中如何應(yīng)用手機客戶端
孵化垂直頻道:新聞客戶端新策略
蚌埠市| 志丹县| 延庆县| 海伦市| 普洱| 邻水| 辉南县| 墨玉县| 安阳县| 卓尼县| 亳州市| 玉门市| 白城市| 临朐县| 贵港市| 涿州市| 怀远县| 桐城市| 沭阳县| 清徐县| 秀山| 沙田区| 普宁市| 永州市| 安庆市| 九寨沟县| 福州市| 喀什市| 马山县| 卢湾区| 商南县| 枣庄市| 五寨县| 临湘市| 嘉义县| 保靖县| 东乡族自治县| 颍上县| 沈阳市| 章丘市| 灌南县|