?

一種基于異構資源集成的算法實驗平臺研究及其實現

2014-04-01 01:00杜鎮盛羽彭悅陳天賜
關鍵詞:異構客戶端組件

杜鎮,盛羽,彭悅,陳天賜

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

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

1 平臺架構設計

通過分析,本文采用Java 語言開發和實現平臺功能,采用JavaBean 技術開發同構的JavaBean 組件,采用Web 服務技術對異構組件進行封裝,開發Web服務組件。其架構設計如圖1 所示。

圖1 虛擬實驗平臺的架構設計圖Fig.1 Architecture design of virtual laboratory platform

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

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

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

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

虛擬實驗平臺采用J2EE 體系結構實現,具有良好的穩定性、可移植性和跨平臺性。利用Web 服務技術,提高了平臺的可重用性、可維護性、可擴展性以及個性化。

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

2 平臺關鍵技術

2.1 異構資源的Web 服務化封裝

Web 服務技術通過Internet 和SOAP 協議進行通信,具有很強的可移植性和互操作性。它向外界提供服務和資源的接口,而不涉及其內部的實現方式,屏蔽了異構系統之間的區別,從而實現了對異構資源的封裝和調用。

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

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

MATLAB 與C/C++的接口有3 種形式:MEX 文件、MAT 文件應用程序和引擎應用程序。為方便對MATLAB 組件封裝,本文采用引擎應用程序模式,實現C/C++與MATLAB 的混合編程。引擎應用程序實質上是把MATLAB 作為一個后臺引擎,并允許C/C++程序通過引擎接口,從后臺啟動這個引擎,并利用引擎庫函數實現對MATLAB 的調用。常用的引擎庫函數有:engOpen,用于開啟MATLAB 引擎;engClose,用于關閉MATLAB 引擎;engPutVariable,用于給MATLAB 引擎傳輸數據;engGetVariable,用于從MATLAB 引擎獲取數據;engEvalString,用于對MATLAB 語句的調用執行。MATLAB 和C/C++數據類型不同,為實現二者之間的數據傳遞,MATLAB 提供了一個數據類型mxArray,用以在C/C++程序中表示 MATLAB 數據,并提供了 mxCreateXXX 和mxDestroyArray 函數,在C/C++程序中實現mxArray類型數據的創建和刪除。通過MATLAB 與C/C++的編程接口,將MATLAB 組件封裝為一個C/C++組件,然后,利用C/C++組件的服務發布方法,將MATLAB組件發布為Web 服務。

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

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

最終代碼自動生成的關鍵代碼如下:

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

2.2 實驗運行的調度機制

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

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

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

基于Web 服務組件組合優化的實驗調度流程的執行步驟如下。

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

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

步驟3 判斷本地組件是否有前驅,若存在前驅,則轉入步驟4;否則,執行本地組件,從實驗拓撲圖中刪除該節點,轉入步驟1。

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

步驟5 根據步驟4 中的Web 服務組件列表構建發往服務器的節點列表,將列表發往服務器;

步驟6 根據服務器執行的返回結果獲取本地組件需要的參數執行本地組件,并將該節點從實驗拓撲圖中刪除,轉入步驟1。

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

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

圖3 實驗運行調度流程圖Fig.3 Flow chart of experimental running

3 平臺應用實例

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

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

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

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

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

表1 配置組件參數表Table 1 Parameters of component configuration

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

圖5 實驗運行結果Fig.5 Experiment results

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

4 結論

(1) 針對信息類課程中傳統實驗模式中算法類型實驗所存在的問題,提出了一種面向異構資源集成的虛擬實驗平臺。

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

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

[1] 王秋生, 袁海文. 《數字信號處理》課程的分層實驗教學方法[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 仿真器的匯編語言學習系統的設計與實現[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]. 系統仿真學報, 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] 盛羽, 王建新, 謝朝輝. 模型機虛擬實驗平臺的設計與實現[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.

猜你喜歡
異構客戶端組件
你的手機安裝了多少個客戶端
ETC拓展應用場景下的多源異構交易系統
無人機智能巡檢在光伏電站組件診斷中的應用
試論同課異構之“同”與“異”
新型碎邊剪刀盤組件
U盾外殼組件注塑模具設計
如何看待傳統媒體新聞客戶端的“斷舍離”?
商周刊(2019年1期)2019-01-31
縣級臺在突發事件報道中如何應用手機客戶端
孵化垂直頻道:新聞客戶端新策略
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合