韓鈺 鄭金亮 李劍
1.安徽大學江淮學院計算機科學與電子技術系,安徽 合肥 230031
2.安徽大學江淮學院公共基礎教學部,安徽 合肥 230031
3.安徽大學江淮學院院辦公室,安徽 合肥 230031
高頻電子線路實驗室可以說是每個理工科院校所必備的,但傳統(tǒng)的高頻實驗室建設需要合適的場地和大量的設備購置資金,且功能單一、實驗項目相對固定,后期設備更新滯后,在實驗教學過程中運行維護成本也較高。這些弊端也是一些辦學資金和場地都相對緊張的獨立學院在建設此類實驗室時所面對的一個現(xiàn)實問題。隨著計算機技術的發(fā)展,在通用計算機平臺上利用軟件模擬實現(xiàn)一些專用設備功能的技術已逐步趨于成熟,這也促使一些院??梢岳锰摂M儀器技術來組建虛擬高頻實驗室用以彌補傳統(tǒng)實驗室的不足。
高頻電子線路虛擬實驗室是一個開放的實驗平臺,用戶可以通過網(wǎng)絡遠程訪問虛擬實驗室,調用各種虛擬實驗設備搭建一個完整的虛擬實驗環(huán)境,通過對虛擬儀器界面上參數(shù)的設置實時操控實驗流程,獲取實驗結果,從而完成預定的實驗項目。
在建構該虛擬實驗室時,可從體系結構上將其劃分為四塊:
1)具有Web服務及監(jiān)管功能的網(wǎng)絡服務器;
2)對所有設備進行管理的設備服務器;
3)具有可視化和良好操控性的前端用戶操作平臺;
4)對虛擬實驗室進行有效監(jiān)控的程序。
該服務器的主要功能是管理用戶的登錄、建立用戶與設備服務器的連接以及在實驗過程中對用戶與實驗任務的交互進行管理。通過該服務器用戶可以登錄虛擬實驗室、調用各類虛擬設備并獲取實驗數(shù)據(jù)。
為了使用戶更為便捷的訪問該虛擬實驗室,在用戶端與網(wǎng)絡服務器間采用基于Web的B/S結構來建立HTTP連接,考慮到設備服務器的安全性,而在設備服務器與網(wǎng)絡服務器間采用C/S結構的TCP連接。
為了使服務器能同時響應多個用戶的請求,網(wǎng)絡服務器必須多線程運行,采用TCP/IP協(xié)議建立并發(fā)運行的、面向連接的結構模型。在網(wǎng)絡服務器端可創(chuàng)建主、副兩類線程,主線程只有一個,副線程可以同時有多個,主線程在網(wǎng)絡服務器啟動時即創(chuàng)建,它負責監(jiān)聽并響應用戶端的連接請求,從而創(chuàng)建副線程傳遞通信套接字。主線程只在網(wǎng)絡服務器關閉時才結束。副線程是為了響應用戶端連接請求而創(chuàng)建的,一個用戶請求就創(chuàng)建一個副線程,在通信完成后即終結。
為了避免主線程一直處以活躍狀態(tài),占用系統(tǒng)資源,在系統(tǒng)中有一個系統(tǒng)調用程序來控制主線程的運行,該程序在等待用戶連接請求時是處于擁塞狀態(tài)的,此時它會暫停主線程的運行;當收到新的用戶連接請求時,它被調用,并產(chǎn)生一個新的套接字分配給主線程,主線程得到與用戶通信的套接字后繼續(xù)運行,創(chuàng)建一個對應的副線程來具體處理用戶的連接請求,并將套接字傳遞給副線程,自己重新進入監(jiān)聽等待狀態(tài)。
為了對用戶行為進行響應網(wǎng)絡服務器應該具有監(jiān)管模塊,當有用戶與網(wǎng)絡服務器建立連接后,監(jiān)管模塊將同時創(chuàng)建用戶服務線程和控制線程,在用戶實驗過程中通過兩個線程的綁定來實現(xiàn)信息的實時傳遞。
另外,在實驗過程中各個對象間有大量數(shù)據(jù)需要交互,這就需要網(wǎng)絡服務器端提供數(shù)據(jù)管理模塊,該模塊應與實驗數(shù)據(jù)庫相連,從而實現(xiàn)各類數(shù)據(jù)的訪存。
設備服務器的功能是通過與網(wǎng)絡服務器建立的通道接收用戶傳遞過來的儀器控制信息,啟動相應虛擬儀器,并實現(xiàn)虛擬儀器與用戶間的數(shù)據(jù)交互,實現(xiàn)虛擬實驗的具體操控。
虛擬實驗室的各類虛擬儀器可以通過美國NI公司的LABVIEW軟件進行開發(fā),構成一個虛擬儀器庫供用戶調用。用LABVIEW中的DataSocket技術可以輕松實現(xiàn)設備服務器端與用戶端的通信,只需對控件的DataSocket Connection屬性以及DataSocket服務器進行簡單設置即可實現(xiàn)通過網(wǎng)絡向多個遠程終端廣播數(shù)據(jù)的功能。
用戶通過該平臺實現(xiàn)具體實驗的所有操控,整個虛擬實驗室的功能圍繞該平臺展開,網(wǎng)絡服務器和設備服務器也是為該平臺提供具體的服務。
具體而言用戶可以通過用戶端選取、添加、移動、刪除各類虛擬設備,按照實驗設計要求自主連接各類虛擬設備,調整虛擬設備的具體參數(shù),并能運行、中斷及修改實驗,輸出、保存實驗結果。
用戶端的運行過程先由用戶通過用戶端向網(wǎng)絡服務器提交用戶信息,通過網(wǎng)絡服務器的身份認證后建立連接,網(wǎng)絡服務器再向設備服務器提交用戶實驗申請,申請通過后,用戶端將得到設備服務器的IP地址及對應端口號,用戶端與設備服務器間建立連接,用戶端將用戶實驗過程中的具體操控轉換成對應的控制信號發(fā)生給設備服務器由設備服務器進行相應的控制操作,為了保證實驗過程中用戶端與設備服務器間不中斷,需要由設備服務器循環(huán)執(zhí)行向用戶端發(fā)生、接受一組數(shù)據(jù)來保持連接狀態(tài),另外,網(wǎng)絡服務器在實驗過程中應定時查詢設備服務器的狀態(tài),及時發(fā)現(xiàn)設備服務器的異常并通知系統(tǒng)及用戶端,實驗結束時用戶端與設備服務器斷開連接,并通知網(wǎng)絡服務器刷新設備服務器狀態(tài)。
為了使虛擬實驗室穩(wěn)定的運行,需要對用戶端與服務器間進行監(jiān)控,實驗過程中也需對用戶操作和虛擬設備狀態(tài)進行監(jiān)控。從功能上說,對用戶端的監(jiān)控要包含用戶信息的創(chuàng)建及查詢、對用戶訪問的集中控制、對用戶操作的監(jiān)控;對虛擬設備的監(jiān)控主要是從用戶對虛擬設備占用的狀態(tài)來更改設備的忙、閑。
對整個虛擬實驗室的監(jiān)控程序可利用Java Servlet和JSP技術創(chuàng)建MVC模式來設計界面。MVC(模型視圖控制器)中的模型是JavaBean,視圖是JSP,控制器則是Servlet。網(wǎng)絡服務器將用戶端請求轉發(fā)給Servlet控制器,由Servlet對Javabean模型進行操作,并將結果傳給Jsp視圖,由Jsp格式化模型后將結果發(fā)送給網(wǎng)絡服務器,再由網(wǎng)絡服務器發(fā)送給用戶端。
本文在對高頻虛擬實驗室功能分析的基礎上從宏觀架構角度將其劃分為網(wǎng)絡服務器端、設備服務器端、用戶端及虛擬實驗室監(jiān)控程序,并對各部分的工作流程、實現(xiàn)技術做了概括性介紹,為日后本院高頻虛擬實驗室建設做了初步的方案規(guī)劃。
[1]彭暉,王宇棟,侯進軍,沈亞軍.遠程教學虛擬實驗室設計. 湘潭師范學院學報(自然科學報),2003,25(2): 35一37.
[2]賈皓麗,宋端智,馮雪君. 網(wǎng)絡虛擬實驗室應用研究. 計算機工程與科學,2002.24-28.
[3]蔡國英. 基于虛擬技術的虛擬高頻實驗室儀器的實現(xiàn)(碩士論文).南京信息工程大學,2008年5月.