任云暉 趙利民
摘要:該文介紹了一套按高職院校“教、學(xué)、做”一體化要求設(shè)計(jì)開發(fā)的計(jì)算機(jī)網(wǎng)絡(luò)虛擬實(shí)驗(yàn)系統(tǒng),總結(jié)了網(wǎng)絡(luò)虛擬實(shí)驗(yàn)系統(tǒng)的開發(fā)方法,重點(diǎn)研究了系統(tǒng)中各功能模塊的實(shí)現(xiàn)過程。
關(guān)鍵詞:高職院校;網(wǎng)絡(luò)虛擬實(shí)驗(yàn);VRML;Java;EAI
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)01-0036-03
1 背景和現(xiàn)狀
高職教育以培養(yǎng)面向生產(chǎn)、建設(shè)、管理、服務(wù)第一線需要的高素質(zhì)技能型人才為目標(biāo)。教育部要求高職院?!敖⒎霞夹g(shù)應(yīng)用型人才培養(yǎng)目標(biāo)要求的,基本實(shí)踐能力、操作能力與綜合技能有機(jī)結(jié)合的、相對(duì)獨(dú)立的實(shí)踐教學(xué)體系?!庇需b于此,我校開展了“教、學(xué)、做”一體化的教學(xué)改革。但是由于辦學(xué)資金緊張,難以配備齊全的專業(yè)網(wǎng)絡(luò)實(shí)驗(yàn)設(shè)備,為此我們充分利用現(xiàn)有資源,建立了一套計(jì)算機(jī)網(wǎng)絡(luò)虛擬實(shí)驗(yàn)系統(tǒng),解決了這一問題,取得了良好效果。
2 虛擬實(shí)驗(yàn)系統(tǒng)特點(diǎn)
與傳統(tǒng)的實(shí)驗(yàn)教學(xué)相比,虛擬實(shí)驗(yàn)具有以下特點(diǎn):(1)彌補(bǔ)實(shí)驗(yàn)條件不足。虛擬實(shí)驗(yàn)資金投入低,學(xué)生通過虛擬實(shí)驗(yàn)獲得的感性認(rèn)識(shí)與真實(shí)實(shí)驗(yàn)相差無幾。(2) 降低實(shí)驗(yàn)教學(xué)成本。虛擬實(shí)驗(yàn)沒有易耗品的消耗,也沒有設(shè)備人為損壞的發(fā)生,更不會(huì)危及實(shí)驗(yàn)學(xué)生的人身安全;(3) 具有良好的開放性。使用者不受時(shí)間和空間的限制,可以自主地、靈活地、交互地創(chuàng)建實(shí)驗(yàn)環(huán)境。還可實(shí)現(xiàn)大型儀器設(shè)備的重復(fù)添置;(4)不受客觀條件的影響??杀苊庥布?shí)驗(yàn)客觀存在的無謂干擾,如接觸不良、儀器故障等;(5)可實(shí)現(xiàn)實(shí)物實(shí)驗(yàn)無法實(shí)現(xiàn)的功能。如自主學(xué)習(xí)和預(yù)習(xí)功能、實(shí)驗(yàn)報(bào)告提交和評(píng)閱功能、考核和評(píng)價(jià)功能、實(shí)驗(yàn)資料檢索功能等[1-2]。
2 系統(tǒng)內(nèi)容與功能
2.1 系統(tǒng)規(guī)劃
根據(jù)高職教育“理論夠用、應(yīng)用為主、注重實(shí)踐”的教學(xué)目標(biāo),本系統(tǒng)從以下幾點(diǎn)入手進(jìn)行規(guī)劃,第一,學(xué)生的實(shí)驗(yàn)?zāi)繕?biāo)不是進(jìn)行深入研究,而是掌握基本知識(shí)及技能,所以系統(tǒng)主要包括網(wǎng)絡(luò)組建、優(yōu)化等方面的基礎(chǔ)實(shí)驗(yàn);第二,基于高職高專學(xué)生的自學(xué)能力,系統(tǒng)本著便于使用的原則進(jìn)行開發(fā),使初學(xué)者容易上手;第三,充分考慮學(xué)生接受能力的差異,系統(tǒng)中所有的實(shí)驗(yàn)從最簡(jiǎn)單最基本的開始,由淺入深,由易到難、循序漸進(jìn)、逐步提升[3-4]。
所以,本網(wǎng)絡(luò)虛擬實(shí)驗(yàn)系統(tǒng)規(guī)劃的核心內(nèi)容如圖1所示。
2.2 主要功能模塊
根據(jù)系統(tǒng)的主要內(nèi)容可劃分為以下幾個(gè)功能模塊,如圖2所示。
主功能模塊:即主界面模塊,進(jìn)入其它功能模塊的通道;
認(rèn)知模塊:即認(rèn)識(shí)設(shè)備模塊,可以選擇自己想要熟悉的設(shè)備,通過拖動(dòng)、旋轉(zhuǎn)等操作從多方位對(duì)設(shè)備進(jìn)行立體展示;
組網(wǎng)模塊:即使用網(wǎng)絡(luò)設(shè)備組建網(wǎng)絡(luò)模塊,使用者可以在場(chǎng)景中選擇組建網(wǎng)絡(luò)所需要的材料和設(shè)備組建簡(jiǎn)單網(wǎng)絡(luò);
配置模塊:即網(wǎng)絡(luò)設(shè)備功能配置模塊,利用網(wǎng)絡(luò)設(shè)備的各種特性配置網(wǎng)絡(luò),以實(shí)現(xiàn)更多的功能,發(fā)揮最好的性能;
驗(yàn)證模塊:即實(shí)驗(yàn)結(jié)果的正確性的檢測(cè)模塊,可以驗(yàn)證網(wǎng)絡(luò)連接的可行性及設(shè)備配置的正確性;
信息查詢、保存及讀取模塊:該模塊可以將配置模塊中的有用信息長(zhǎng)期保留下來,并能實(shí)現(xiàn)查詢、讀取等功能;
幫助模塊:可以幫助學(xué)習(xí)者快速學(xué)會(huì)使用該系統(tǒng),也可以幫助學(xué)習(xí)者解決在實(shí)驗(yàn)過程中遇到的問題;
后臺(tái)信息庫(kù)模塊:即數(shù)據(jù)倉(cāng)儲(chǔ)模塊,使用數(shù)據(jù)庫(kù)及相關(guān)文本對(duì)有用數(shù)據(jù)進(jìn)行長(zhǎng)期保存。
這些功能模塊成為網(wǎng)絡(luò)虛擬實(shí)驗(yàn)平臺(tái)與實(shí)驗(yàn)者之間的橋梁,可以幫助學(xué)生通過網(wǎng)絡(luò),在沒有真實(shí)實(shí)驗(yàn)場(chǎng)所的情況下完成實(shí)驗(yàn)任務(wù)。
3 虛擬實(shí)驗(yàn)系統(tǒng)功能模塊實(shí)現(xiàn)方法
由于VRML不是一種編程語言, 對(duì)于協(xié)同實(shí)驗(yàn)環(huán)境下多用戶之間的復(fù)雜交互、信息處理等需要程序語言的介入。在網(wǎng)絡(luò)環(huán)境下, Java是最有效的語言[5], 當(dāng)前的主流VRML瀏覽器也都對(duì)Java編程提供了支持。Java的加入為VRML提供了強(qiáng)大的編程能力和網(wǎng)絡(luò)訪問功能, 使這種描述性語言對(duì)各種需求功能的擴(kuò)充成為可能: VRML負(fù)責(zé)場(chǎng)景的描述和接口的定義, 復(fù)雜的交互和高級(jí)應(yīng)用讓Java來完成。所以在系統(tǒng)中采用了VRML和Java的結(jié)合, 使之成為創(chuàng)建基于網(wǎng)絡(luò)的虛擬實(shí)驗(yàn)環(huán)境的理想平臺(tái)[6-7]。
3.1 主界面實(shí)現(xiàn)方法
主界面使用Java語言與VRML結(jié)合實(shí)現(xiàn),界面的主框架采用的是Java的Applet實(shí)現(xiàn)菜單和快捷按鈕的顯示及功能,編輯區(qū)采用VRML瀏覽器插件,利用EAI實(shí)現(xiàn)與Java Applet的通信。實(shí)現(xiàn)方法是將Java Applet與VRML置于同一Web頁面, 在JavaApplet中建立browser對(duì)象以標(biāo)志一個(gè)唯一的VRML場(chǎng)景, 并由此獲得對(duì)VRML場(chǎng)景中已定義節(jié)點(diǎn)的引用, 然后通過直接指定引用節(jié)點(diǎn)的域值來達(dá)到動(dòng)態(tài)效果。這樣, Java Applet既可控制VRML場(chǎng)景, 又能進(jìn)行與HTML等其他媒體的交互及網(wǎng)絡(luò)控制, 從而實(shí)現(xiàn)復(fù)雜的虛擬環(huán)境系統(tǒng)。例如,在網(wǎng)頁中要嵌入VRML場(chǎng)景,可以在HTML代碼中加入。
3.2 認(rèn)知模塊的實(shí)現(xiàn)
該模塊可以為使用者提供多角度的三維設(shè)備展示,提高對(duì)網(wǎng)絡(luò)的感性認(rèn)識(shí)。由于VRML制作的三維物體及環(huán)境的功能沒有3DMAX強(qiáng),所以可以利用兩者的結(jié)合制作出復(fù)雜的三維場(chǎng)景。是3DMAX可視化的三維建模工具,其創(chuàng)建三維對(duì)象快速而且視覺效果較好,但因文件大,不適于在網(wǎng)絡(luò)上實(shí)現(xiàn)。對(duì)于構(gòu)造較復(fù)雜的物體,將VRML和3Dmax結(jié)合作為建模工具是一種行之有效的方法,3Dmax有強(qiáng)大的建模和動(dòng)畫制作功能可以彌補(bǔ)VRML在這方面的不足,為了更好地、更有效地、更全面地支持VRML[8],在3Dmax環(huán)境下可以很方便地建立三維設(shè)備及環(huán)境模型,其創(chuàng)作的文件可以導(dǎo)出成為VRML格式的wrl文件,較小的文件直接被VRML使用。
在這個(gè)模塊中,使用3DMax建立網(wǎng)絡(luò)設(shè)備模型,然后將模型轉(zhuǎn)化為VRML格式并進(jìn)行優(yōu)化。對(duì)實(shí)驗(yàn)中設(shè)備的放大、縮小、旋轉(zhuǎn)等動(dòng)作建立VRML動(dòng)畫時(shí),可通過EAI交互,利用Java Applet控制面板中的相關(guān)按鈕對(duì)其進(jìn)行控制。
3.3 組建網(wǎng)絡(luò)模塊的實(shí)現(xiàn)
交換機(jī)、路由器、防火墻、PC機(jī)、服務(wù)器、雙絞線、同軸電纜、光纜等組網(wǎng)材料的選擇可以通過菜單或者快捷圖標(biāo)進(jìn)行選取,當(dāng)點(diǎn)擊所要選取的材料或設(shè)備的菜單或快捷圖標(biāo)時(shí),設(shè)備被選入編輯區(qū),并可根據(jù)組網(wǎng)需要移動(dòng)其位置。例如,以交換機(jī)為例,實(shí)現(xiàn)該功能的VRML場(chǎng)景下的Java代碼為:
import vrml . 3 ;
import vrml . field. 3 ;
import vrml . node. 3 ; // 加入與Java相互通信的類包
public class J ava TimeSensor extends Script{
private SFNode t ranslation ,time ;
……
private SFTime toPause ;
float f [ ] = {0f ,0f ,0f} ; // 申明設(shè)備運(yùn)動(dòng)的相關(guān)變量
public void initialize () { // 取得VRML 程序中需要進(jìn)行控制的字段的參考值
t ranslation = (SFNode) get Field (" set-translation" ) ;
// SFNode 型變量translation 從Script 節(jié)點(diǎn)的field 處獲取指針
……}
public void processEvent ( Event e) {
if (e. getName () . equals (" touchMe" ) = = t rue) {
// 如事件操縱類接收到從Script 節(jié)點(diǎn)傳來“touchMe”
…… //設(shè)備的運(yùn)動(dòng)
Node node_tr ; // 申明一個(gè)Node 類的對(duì)象node_tr
Node_tr = (Node) (translation. getValue () ) ;
// 返回SFNode 類型的對(duì)象,指向設(shè)備節(jié)點(diǎn)
Set_translation = (SFVec3f) (node_tr . get ExposedField (" translation" ) ) ;
…… // 獲得指針指向設(shè)備節(jié)點(diǎn)的translation 字段
set_translation. setValue (f) ;
// 由setValue()將float[ ]類型值寫入translation 字段
}else{
……}}
3.4 設(shè)備配置模塊的實(shí)現(xiàn)
與用戶之間的交互是由Java完成,用戶可以通過鼠標(biāo)和鍵盤與Java Applet程序?qū)υ?。例如通過鼠標(biāo)按下處理函數(shù)public boolean mouseDown(Event evt,int x,int y)和鼠標(biāo)松開處理函數(shù)public boolean mouseUp(Event evt,int x,int y)來連接設(shè)備配置界面,網(wǎng)絡(luò)設(shè)備配置通過對(duì)簡(jiǎn)單的文本文件的操作來實(shí)現(xiàn)。在操作界面區(qū)域?qū)υO(shè)備進(jìn)行的配置,通過保存當(dāng)前設(shè)備配置信息文件來實(shí)現(xiàn)網(wǎng)絡(luò)設(shè)備配置信息的保存,如果需要重新打開該設(shè)備的配置信息進(jìn)行查詢或修改時(shí),可以直接讀取服務(wù)器端的對(duì)應(yīng)的設(shè)備配置文件,打開該文件即可以看到已經(jīng)配置的交換機(jī)信息,這時(shí)可以繼續(xù)操作或修改。
3.5 檢測(cè)模塊的實(shí)現(xiàn)
檢測(cè)模塊包括網(wǎng)絡(luò)設(shè)備連接檢測(cè)模塊、 PC配置檢測(cè)模塊、網(wǎng)絡(luò)設(shè)備配置檢測(cè)模塊、功能實(shí)現(xiàn)驗(yàn)證模塊等,通過這些功能模塊可以實(shí)現(xiàn)網(wǎng)絡(luò)設(shè)備連接的正確與否,及網(wǎng)絡(luò)功能正確與否的驗(yàn)證。由于篇幅有線,下面就以配置命令檢測(cè)為例,畫出流程圖如圖3所示:
圖3 配置命令檢測(cè)流程圖 (下轉(zhuǎn)第43頁)
(上接第38頁)
4 結(jié)論
本計(jì)算機(jī)網(wǎng)絡(luò)虛擬實(shí)驗(yàn)系統(tǒng)主界面的主體框架部分采用JavaApplet來實(shí)現(xiàn),編輯區(qū)部分采用了VRML來實(shí)現(xiàn),兩者之間的結(jié)合采用的是EAI技術(shù)。在具體實(shí)現(xiàn)過程中,將VRML和JavaApplet置于同一個(gè)網(wǎng)頁中,以Java Applet作為控制面板,VRML場(chǎng)景作為三維展示平臺(tái),通過EAI交互構(gòu)建虛擬場(chǎng)景。
本計(jì)算機(jī)網(wǎng)絡(luò)虛擬實(shí)驗(yàn)系統(tǒng)基于高職高專人才培養(yǎng)要求,具有直觀、靈活、方便、便宜的特點(diǎn),可以滿足計(jì)算機(jī)網(wǎng)絡(luò)組建實(shí)驗(yàn)的教學(xué)任務(wù)和要求。但是還存在一些不成熟、不完善的地方,比如,還可以開發(fā)多人在線交互功能、實(shí)時(shí)會(huì)話功能等,進(jìn)一步加強(qiáng)用戶身臨其境的感受。
參考文獻(xiàn):
[1] 單美賢.虛擬實(shí)驗(yàn)原理與教學(xué)應(yīng)用[M].北京:教育科學(xué)出版社,2005.
[2] 黃榮懷.信息技術(shù)與教育[M].北京:北京師范大學(xué)出版社,2002.
[3] 任云暉.計(jì)算機(jī)網(wǎng)絡(luò)技術(shù).水利水電出版社,2010.
[4] Yunhui Ren, Research and Practice of ‘Teaching, learning, practice integration teaching model in Higher Vocational and Technical Education,2010 International Colloquium on Computing Communication Control and Management,2010.615.
[5] 王克宏.最新Java 2核心類庫(kù)詳解[M].北京:清華大學(xué)出版社,1999.
[6] 周勇,徐英卓.基于VRML-JAVA的網(wǎng)上協(xié)同虛擬實(shí)驗(yàn)系統(tǒng)研究[J].電化教育研究,2006(5):52-55.
[7] 滕蘭芝,何瑾,薄芙麗.虛擬現(xiàn)實(shí)技術(shù)在多媒體網(wǎng)絡(luò)教學(xué)中的應(yīng)用[J].電化教育研究,2002(7):48-50.
[8] 吳瑋,吳昌林,吳鹿鳴,吳立言. 結(jié)合AUTOCAD、3DMAX及VRML實(shí)現(xiàn)Web三維動(dòng)畫[J].機(jī)械設(shè)計(jì)與制造, 2002(4):46-47.