劉曉東
[摘要]隨著社會(huì)的發(fā)展和技術(shù)的更新速度加快,為了達(dá)到較好的教學(xué)目標(biāo),需要對(duì)所學(xué)理論進(jìn)行及時(shí)的實(shí)驗(yàn)教學(xué)。應(yīng)用計(jì)算機(jī)虛擬實(shí)驗(yàn)系統(tǒng),實(shí)驗(yàn)室無(wú)需購(gòu)買(mǎi)昂貴的實(shí)驗(yàn)設(shè)備,可以再有限經(jīng)費(fèi)投入的條件下,實(shí)現(xiàn)大規(guī)模學(xué)生實(shí)驗(yàn)的要求。基于此,本文對(duì)虛擬實(shí)驗(yàn)?zāi)M訓(xùn)練系統(tǒng)進(jìn)行相關(guān)研究。
[關(guān)鍵詞]虛擬實(shí)驗(yàn);計(jì)算機(jī);創(chuàng)新教育
[中圖分類(lèi)號(hào)]F224-39[文獻(xiàn)標(biāo)識(shí)碼]A [文章編號(hào)]1672-5158(2013)06-0071-01
一、技術(shù)應(yīng)用
系統(tǒng)為CS客戶(hù)端-服務(wù)器結(jié)構(gòu)。該結(jié)構(gòu)通過(guò)將任務(wù)合理分配到Client端和Server端,降低了系統(tǒng)的通訊開(kāi)銷(xiāo),可以充分利用兩端硬件環(huán)境的優(yōu)勢(shì)。核心代碼均使用C#語(yǔ)言編寫(xiě)。系統(tǒng)的開(kāi)發(fā)環(huán)境為Visual Studio2005集成開(kāi)發(fā)環(huán)境,用戶(hù)可以在該環(huán)境中使用C++、.NET、VB、C#等編程語(yǔ)言進(jìn)行算法和系統(tǒng)的實(shí)現(xiàn)。系統(tǒng)的后臺(tái)數(shù)據(jù)庫(kù)采用的是SQL2005,它為數(shù)據(jù)管理與分析帶來(lái)了靈活性,允許單位在快速變化的環(huán)境中從容響應(yīng)。
二、虛擬實(shí)驗(yàn)平臺(tái)的實(shí)現(xiàn)
所有的虛擬設(shè)備和虛擬實(shí)驗(yàn)項(xiàng)目都建立在一個(gè)統(tǒng)一的平臺(tái)之上。該平臺(tái)式必須是一個(gè)虛擬實(shí)驗(yàn)的集成環(huán)境,通過(guò)該平臺(tái),用戶(hù)可以對(duì)多種操作進(jìn)行結(jié)合,完成各種復(fù)雜的工作任務(wù)。
最上邊的是菜單欄,通過(guò)菜單欄,用戶(hù)可以選擇文件操作,編輯方式,上傳下載等功能;菜單欄主要用來(lái)對(duì)平臺(tái)進(jìn)行管理,方便用戶(hù)的個(gè)性化使用。左邊的是虛擬設(shè)備欄。該欄目根據(jù)虛擬設(shè)備的不同,將設(shè)備分放在不同的設(shè)備類(lèi)別中,當(dāng)用戶(hù)選擇某個(gè)類(lèi)別時(shí),可以展開(kāi)所有的虛擬設(shè)備,通過(guò)鼠標(biāo)操作可以方便的選擇和拖動(dòng)虛擬設(shè)備。中間的核心區(qū)域是編輯區(qū)域,所有的虛擬實(shí)驗(yàn)的操作都在該區(qū)域中實(shí)現(xiàn),包括設(shè)備的拖動(dòng)、連接和電路聯(lián)通等。右邊的欄目是輔助菜單欄。通過(guò)它,用戶(hù)可以了解自己的操作流程歷史記錄,通過(guò)點(diǎn)擊可以返回到記錄中的任何步驟。用戶(hù)還可以從該欄目中找到聯(lián)機(jī)幫助,通過(guò)幫助,學(xué)生可以解決系統(tǒng)中已經(jīng)記錄的相關(guān)問(wèn)題。最下面的欄目是狀態(tài)信息欄,它主要提供一些額外輔助信息,如登錄時(shí)間,當(dāng)前的系統(tǒng)版本號(hào),顯示方式,登錄方式等。
三、虛擬實(shí)驗(yàn)的虛擬設(shè)備實(shí)現(xiàn)
虛擬設(shè)備是計(jì)算機(jī)虛擬實(shí)驗(yàn)系統(tǒng)中的最基本元素,通過(guò)對(duì)它們的操作可以完成復(fù)雜的虛擬計(jì)算機(jī)實(shí)驗(yàn)項(xiàng)目。虛擬實(shí)驗(yàn)系統(tǒng)中的虛擬設(shè)備,每個(gè)設(shè)備都具有眾多的屬性,這些屬性對(duì)虛擬設(shè)備的基本型號(hào)以及可執(zhí)行的操作給出了詳細(xì)的說(shuō)明,有重要意義,需要對(duì)它們統(tǒng)一管理。采用面向?qū)ο蟮幕舅枷?,本虛擬實(shí)驗(yàn)系統(tǒng)統(tǒng)采用JavaBean組件技術(shù)開(kāi)發(fā)虛擬設(shè)備,從而增加虛擬設(shè)別模型的可重用性。
在系統(tǒng)中,所有虛擬設(shè)備的公共屬性都定義在父類(lèi)Component中。當(dāng)構(gòu)建一個(gè)新的元件時(shí),需要從父類(lèi)Component中繼承。因此,當(dāng)開(kāi)發(fā)或者設(shè)計(jì)具體設(shè)備時(shí),只需要關(guān)注組件的特有屬性和功能方法,大大提高了組件的開(kāi)發(fā)效率。當(dāng)需要設(shè)定一個(gè)新的設(shè)備時(shí),需要對(duì)該設(shè)備的各種屬性進(jìn)行描述。為了方便表達(dá)和管理,對(duì)于每一個(gè)設(shè)備,使用XML文檔對(duì)其相應(yīng)屬性進(jìn)行存儲(chǔ)。XML是一種標(biāo)記語(yǔ)言,具有可擴(kuò)展性、結(jié)構(gòu)化的特點(diǎn)。以CPU為例,為其建立的虛擬設(shè)備的XML屬性描述文件。描述了系統(tǒng)中的某CPU虛擬設(shè)備。
四、虛擬實(shí)驗(yàn)的設(shè)備的多線(xiàn)程運(yùn)行實(shí)現(xiàn)
在一個(gè)規(guī)模較大的虛擬實(shí)驗(yàn)系統(tǒng)中,用戶(hù)需要使用多個(gè)虛擬元件才能完成一個(gè)實(shí)驗(yàn)項(xiàng)目。這些虛擬元件有各自的獨(dú)立性又保持著相互聯(lián)系。在一個(gè)完整的實(shí)驗(yàn)項(xiàng)目中,為了不影響各元件的獨(dú)立運(yùn)行,需要對(duì)每個(gè)元件分配獨(dú)立的線(xiàn)程。線(xiàn)程的建立可以通過(guò)Java中的Thread類(lèi)進(jìn)行實(shí)現(xiàn)。
如果該設(shè)備需要和其他設(shè)備進(jìn)行通信,則需要為該設(shè)備設(shè)置監(jiān)聽(tīng)端口。當(dāng)學(xué)生將所有設(shè)備連接到一起時(shí),可以開(kāi)啟實(shí)驗(yàn),這時(shí),各個(gè)線(xiàn)程將逐一啟動(dòng)。num為系統(tǒng)中需要啟動(dòng)的所有線(xiàn)程的數(shù)量的和,通過(guò)代碼的循環(huán)結(jié)構(gòu),使得每一個(gè)線(xiàn)程都被初始化,這里的線(xiàn)程對(duì)象VThread繼承了Thread線(xiàn)程類(lèi),當(dāng)線(xiàn)程初始化結(jié)束后,可以通過(guò)run()方法來(lái)對(duì)某個(gè)線(xiàn)程所要執(zhí)行的功能進(jìn)行調(diào)用。以時(shí)鐘信號(hào)發(fā)生器為例,它是一個(gè)特定的虛擬設(shè)備元件,它繼承自Component父類(lèi),和線(xiàn)程父類(lèi)。當(dāng)一個(gè)類(lèi)繼承了Thread類(lèi)后,可以在線(xiàn)程中添加特定的執(zhí)行代碼。
五、虛擬實(shí)驗(yàn)交互功能實(shí)現(xiàn)
在本虛擬實(shí)驗(yàn)系統(tǒng)中,交互功能分為兩個(gè)方面,一是用戶(hù)和虛擬設(shè)備之間的交互。二是虛擬設(shè)備之間的交互。這兩方面從不同的角度實(shí)現(xiàn)了系統(tǒng)的可操作性。
首先是用戶(hù)和虛擬設(shè)備之間的交互。這樣的交互過(guò)程是用戶(hù)和計(jì)算機(jī)軟件進(jìn)行溝通的過(guò)程,通過(guò)鼠標(biāo)動(dòng)作,虛擬實(shí)驗(yàn)系統(tǒng)能夠識(shí)別用戶(hù)的操作意圖,并且根據(jù)用戶(hù)的具體操作,對(duì)給定命令做出反應(yīng)。用戶(hù)定義的操作有鼠標(biāo)左鍵點(diǎn)擊、拖拽、鼠標(biāo)右鍵點(diǎn)擊、鼠標(biāo)雙擊等。這幾種鼠標(biāo)操作可以實(shí)現(xiàn)全部的對(duì)可視化界面中的虛擬設(shè)備的管理。為了實(shí)現(xiàn)這一個(gè)過(guò)程,可以設(shè)置監(jiān)聽(tīng)器,對(duì)鼠標(biāo)動(dòng)作進(jìn)行監(jiān)聽(tīng),當(dāng)監(jiān)聽(tīng)器注意到新的鼠標(biāo)動(dòng)作時(shí),則通知系統(tǒng)做出合理的反應(yīng)。對(duì)于鼠標(biāo)時(shí)間,首先啟動(dòng)一個(gè)監(jiān)聽(tīng)線(xiàn)程,該線(xiàn)程負(fù)責(zé)監(jiān)聽(tīng)鼠標(biāo)在什么時(shí)間發(fā)生了什么樣的狀態(tài)改變。當(dāng)狀態(tài)改變時(shí),系統(tǒng)會(huì)逐一對(duì)可能的狀態(tài)進(jìn)行判斷,當(dāng)狀態(tài)為左鍵單擊時(shí),啟動(dòng)選擇虛擬設(shè)備函數(shù);當(dāng)狀態(tài)為右鍵單擊時(shí),啟動(dòng)顯示設(shè)備信息函數(shù);當(dāng)狀態(tài)為鼠標(biāo)拖拽時(shí),啟動(dòng)移動(dòng)虛擬設(shè)備函數(shù);當(dāng)狀態(tài)為鼠標(biāo)雙擊時(shí),啟動(dòng)打開(kāi)虛擬設(shè)備屬性面板函數(shù)。另一種重要的交互式虛擬設(shè)備之間的交互,即一個(gè)虛擬設(shè)備發(fā)生改變時(shí),其他的虛擬設(shè)備也要發(fā)生相應(yīng)的變化。這種虛擬設(shè)備間的觸發(fā)機(jī)制可以被理解為設(shè)備之間的交互。
在系統(tǒng)使用中,定義了三類(lèi)角色,學(xué)生用戶(hù)、教師用戶(hù)和管理員用戶(hù)。每類(lèi)用戶(hù)均實(shí)現(xiàn)了自己的功能。對(duì)于學(xué)生用戶(hù),他們可以完成實(shí)驗(yàn)選擇、實(shí)驗(yàn)操作、實(shí)驗(yàn)結(jié)果上傳和疑難問(wèn)題提問(wèn)等功能;對(duì)于教師用戶(hù),他們可以完成問(wèn)題解答、班級(jí)管理和實(shí)驗(yàn)結(jié)果評(píng)閱等功能;管理員是系統(tǒng)的最高權(quán)限擁有者,他們可以對(duì)系統(tǒng)的整個(gè)運(yùn)行進(jìn)行管理,包括學(xué)生管理、教師管理和實(shí)驗(yàn)?zāi)P凸芾怼?/p>
六、結(jié)論及展望
由于計(jì)算機(jī)實(shí)驗(yàn)設(shè)備昂貴、占地較大等因素,相對(duì)于傳統(tǒng)的實(shí)驗(yàn)?zāi)J蕉裕摂M實(shí)驗(yàn)方式有其獨(dú)特的優(yōu)勢(shì),這些優(yōu)勢(shì)包括:虛擬實(shí)驗(yàn)只需要?jiǎng)?chuàng)建在普通微機(jī)上即可,縮小的占地面積,即使是極其復(fù)雜的、需要大量實(shí)驗(yàn)設(shè)備的實(shí)驗(yàn)也可以再微機(jī)上通過(guò)虛擬系統(tǒng)完成;由于虛擬系統(tǒng)采用了虛擬的方式,不用擔(dān)心硬件因?yàn)檎`操作而引起的損壞問(wèn)題,同時(shí)這種自由的操作方式大大地提高的學(xué)生學(xué)習(xí)熱情和創(chuàng)新能力,更加利于教學(xué)活動(dòng)的開(kāi)展。今后還需要在以下方面做出努力,以提高系統(tǒng)的性能和發(fā)展空間:
(1)系統(tǒng)對(duì)3D模型的應(yīng)用較少,為了達(dá)到更好的教學(xué)效果和操作便捷性,將考慮使用3D模型對(duì)系統(tǒng)的虛擬設(shè)備進(jìn)行構(gòu)建。
(2)進(jìn)一步加強(qiáng)系統(tǒng)的可視化操作能力。
參考文獻(xiàn)
[1]J.de LaP&,M,Alfonseca,Visual Interactive Simulation for DistanceEducation,SIMULATION,2003,79(1),19-34
[2]劉井利,基于WWW模式的虛擬實(shí)驗(yàn)室系統(tǒng),廣東職業(yè)技術(shù)師范學(xué)院學(xué)報(bào),2000(4)
[3]易小琳,王鑫,網(wǎng)上計(jì)算機(jī)系統(tǒng)虛擬實(shí)驗(yàn)室的研究,計(jì)算機(jī)工程,2002,28(11),243-244