摘要:本文分析了網(wǎng)絡(luò)虛擬實(shí)驗(yàn)室的設(shè)計(jì)原則和目標(biāo),介紹系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)和軟件架構(gòu),并對(duì)其應(yīng)具有的功能進(jìn)行了闡述,最后給出系統(tǒng)的總體功能模塊設(shè)計(jì)。
關(guān)鍵詞:網(wǎng)絡(luò)虛擬實(shí)驗(yàn)室;網(wǎng)絡(luò)結(jié)構(gòu);軟件體系結(jié)構(gòu);功能分析和模塊設(shè)計(jì)
在教學(xué)活動(dòng)當(dāng)中,實(shí)驗(yàn)教學(xué)是將理論知識(shí)與實(shí)踐活動(dòng)、間接經(jīng)驗(yàn)與直接經(jīng)驗(yàn)、抽象與形象相結(jié)合的教學(xué)過程,相對(duì)于理論教學(xué)更具有直觀性、實(shí)踐性、吸引力和創(chuàng)新性,對(duì)于學(xué)生全面掌握專業(yè)知識(shí)、將課本知識(shí)轉(zhuǎn)變?yōu)閷?shí)際經(jīng)驗(yàn)、培養(yǎng)科學(xué)的思維能力和創(chuàng)新能力發(fā)揮著至關(guān)重要的作用。但在教學(xué)實(shí)驗(yàn)中,有些實(shí)驗(yàn)設(shè)備價(jià)格昂貴、損耗大、實(shí)驗(yàn)成本高。因此,需要一種能夠?qū)崿F(xiàn)實(shí)驗(yàn)設(shè)備資源共享、模擬仿真實(shí)驗(yàn)結(jié)果的技術(shù)。虛擬實(shí)驗(yàn)主要依托的是虛擬現(xiàn)實(shí)、虛擬儀器技術(shù),它給實(shí)驗(yàn)者帶來的實(shí)驗(yàn)效果逼真感和操作現(xiàn)場(chǎng)感都是其他的模擬仿真所無法比擬的[1]。它能夠使用軟件模擬硬件的行為和特性,使實(shí)驗(yàn)者在計(jì)算機(jī)上通過純軟件就可以進(jìn)行實(shí)驗(yàn),而且可達(dá)到現(xiàn)實(shí)中儀器實(shí)驗(yàn)的效果。基于實(shí)驗(yàn)教學(xué)本身的重要性,以及現(xiàn)實(shí)需求的緊迫性,在網(wǎng)絡(luò)技術(shù)飛速發(fā)展的今天,結(jié)合當(dāng)前的網(wǎng)絡(luò)技術(shù)開展網(wǎng)絡(luò)虛擬實(shí)驗(yàn)已成為一種必然,網(wǎng)絡(luò)虛擬實(shí)驗(yàn)室應(yīng)運(yùn)而生,并在今后的遠(yuǎn)程教育中發(fā)揮越來越重要的作用。
1網(wǎng)絡(luò)虛擬實(shí)驗(yàn)室設(shè)計(jì)原則與目標(biāo)
1.1設(shè)計(jì)原則
網(wǎng)絡(luò)虛擬實(shí)驗(yàn)室系統(tǒng)根據(jù)實(shí)驗(yàn)教學(xué)大綱和課程大綱的要求,依據(jù)科學(xué)性、實(shí)用性、易用性、經(jīng)濟(jì)性和藝術(shù)性的原則來設(shè)計(jì)。充分結(jié)合虛擬儀器技術(shù)、3D模型構(gòu)建技術(shù)、3D實(shí)驗(yàn)場(chǎng)景構(gòu)建技術(shù)、Web技術(shù)和數(shù)據(jù)庫技術(shù)構(gòu)建人機(jī)交互良好、技術(shù)感強(qiáng)、場(chǎng)景生動(dòng)逼真、具有高度吸引力的虛擬實(shí)驗(yàn)環(huán)境,最大限度調(diào)動(dòng)學(xué)生的主觀積極性和創(chuàng)新精神,使學(xué)生能夠在虛擬實(shí)驗(yàn)中驗(yàn)證所學(xué)的理論知識(shí),提高應(yīng)用知識(shí)的能力和實(shí)際動(dòng)力能力[2]。
1.2系統(tǒng)設(shè)計(jì)目標(biāo)
網(wǎng)絡(luò)虛擬實(shí)驗(yàn)室系統(tǒng)的總體目標(biāo)是設(shè)計(jì)實(shí)現(xiàn)一個(gè)基于互聯(lián)網(wǎng)的虛擬實(shí)驗(yàn)室環(huán)境,采用3D技術(shù)、虛擬儀器技術(shù)、Web技術(shù)和數(shù)據(jù)庫技術(shù)相結(jié)合的方法,利用Java語言編寫實(shí)驗(yàn)平臺(tái),構(gòu)建一個(gè)網(wǎng)絡(luò)虛擬實(shí)驗(yàn)室系統(tǒng),使實(shí)驗(yàn)者可以通過虛擬實(shí)驗(yàn)室進(jìn)行計(jì)算機(jī)網(wǎng)絡(luò)等相關(guān)課程實(shí)驗(yàn),實(shí)驗(yàn)教師可以對(duì)實(shí)驗(yàn)者的實(shí)驗(yàn)情況進(jìn)行跟蹤分析[3-4]。該虛擬實(shí)驗(yàn)室系統(tǒng)具有可視化、交互性、資源共享、安全性等特點(diǎn)和生動(dòng)逼真的實(shí)驗(yàn)環(huán)境,它符合實(shí)驗(yàn)教學(xué)大綱的要求,有助于學(xué)生對(duì)實(shí)驗(yàn)原理以及相關(guān)實(shí)驗(yàn)知識(shí)進(jìn)行深刻掌握;它營造了一個(gè)逼真的實(shí)驗(yàn)環(huán)境和友好強(qiáng)大的交互氛圍,使虛擬實(shí)驗(yàn)可以獲得如現(xiàn)實(shí)環(huán)境實(shí)驗(yàn)一樣的結(jié)果。
2系統(tǒng)結(jié)構(gòu)
2.1系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)
網(wǎng)絡(luò)虛擬實(shí)驗(yàn)室系統(tǒng)為一個(gè)基于Internet的Web系統(tǒng),用戶通過Web瀏覽器進(jìn)行訪問。系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
數(shù)據(jù)庫服務(wù)器主要進(jìn)行數(shù)據(jù)的一些管理工作,包括數(shù)據(jù)庫的創(chuàng)建、查詢、修改等與數(shù)據(jù)操作有關(guān)的功能。應(yīng)用服務(wù)器是數(shù)據(jù)庫服務(wù)器與客戶端之間的橋梁,客戶端通過瀏覽器發(fā)送服務(wù)請(qǐng)求,請(qǐng)求首先到達(dá)Web服務(wù)器,Web服務(wù)器將其中請(qǐng)求進(jìn)行解析后發(fā)給應(yīng)用服務(wù)器,由應(yīng)用服務(wù)器執(zhí)行相應(yīng)的業(yè)務(wù)邏輯處理。應(yīng)用服務(wù)器端程序若需要執(zhí)行數(shù)據(jù)操作,就會(huì)向數(shù)據(jù)庫服務(wù)器發(fā)送相應(yīng)的數(shù)據(jù)庫操作命令,數(shù)據(jù)庫服務(wù)器依指令進(jìn)行數(shù)據(jù)的CRUD(Create、Retrieve、Update和Delete)操作,然后將結(jié)果返回給應(yīng)用服務(wù)器,應(yīng)用服務(wù)器最后將響應(yīng)信息通過HTML發(fā)給客戶端瀏覽器。
2.2系統(tǒng)的軟件架構(gòu)
為了實(shí)現(xiàn)系統(tǒng)的快速開發(fā),開發(fā)過程當(dāng)中采用多人協(xié)作分工開發(fā)。同時(shí)為了達(dá)到系統(tǒng)的高穩(wěn)定性、擴(kuò)展性和可維護(hù)性,本系統(tǒng)的開發(fā)采用當(dāng)前流行的設(shè)計(jì)模式:把業(yè)務(wù)信息按照功能模塊拆分開,業(yè)務(wù)邏輯與數(shù)據(jù)服務(wù)分開,用戶界面與業(yè)務(wù)邏輯分開,彼此相對(duì)獨(dú)立,任一方的任何改變都不會(huì)影響其他方。
按照以上設(shè)計(jì)思想,將應(yīng)用系統(tǒng)從邏輯上分為4層:客戶層、表示層、業(yè)務(wù)層和邏輯層??蛻魧佑糜谌藱C(jī)交互,一般是用戶與瀏覽器之間交互。表示層主要用于接收用戶請(qǐng)求以及將服務(wù)器端的請(qǐng)求響應(yīng)數(shù)據(jù)傳給客戶層。業(yè)務(wù)層主要負(fù)責(zé)系統(tǒng)應(yīng)用邏輯的實(shí)現(xiàn),一般包括數(shù)據(jù)庫訪問和事務(wù)處理等。在此設(shè)計(jì)中,涉及到應(yīng)用邏輯與數(shù)據(jù)庫操作之間的交互,應(yīng)用邏輯需要調(diào)用數(shù)據(jù)庫操作API完成某些服務(wù)的實(shí)現(xiàn),然后對(duì)數(shù)據(jù)庫操作返回的結(jié)果進(jìn)行操作,這些在數(shù)據(jù)庫結(jié)構(gòu)簡(jiǎn)單、應(yīng)用邏輯清晰時(shí)候還可以忍受,一旦復(fù)雜之后,程序中將引入大量的SQL語句以及數(shù)據(jù)庫操作語句,導(dǎo)致程序結(jié)構(gòu)混亂,故引入數(shù)據(jù)持久層。將數(shù)據(jù)持久層置于數(shù)據(jù)庫之上,隱藏?cái)?shù)據(jù)讀取和操縱中的所有數(shù)據(jù)訪問代碼細(xì)節(jié),完全抽象出開發(fā)小組建立應(yīng)用程序時(shí)使用的數(shù)據(jù)物理細(xì)節(jié),這樣我們?cè)跇I(yè)務(wù)邏輯層中通過調(diào)用數(shù)據(jù)持久層與數(shù)據(jù)庫交互,業(yè)務(wù)邏輯中不需要調(diào)用JDBC的API訪問數(shù)據(jù)庫,使得代碼設(shè)計(jì)簡(jiǎn)潔。此外,還可以隱藏?cái)?shù)據(jù)庫建立連接、發(fā)出存取和操作命令和事務(wù)管理的細(xì)節(jié)。五層結(jié)構(gòu)的應(yīng)用系統(tǒng)框架如圖2所示,對(duì)于這種分層模型結(jié)構(gòu),我們采用目前成熟的MVC框架來配合開發(fā)。
3系統(tǒng)功能模塊
3.1系統(tǒng)功能分析
作為一個(gè)功能比較完善的網(wǎng)絡(luò)虛擬實(shí)驗(yàn)系統(tǒng),它的主要功能不僅是要為實(shí)驗(yàn)者提供一個(gè)虛擬實(shí)驗(yàn)平臺(tái),而且要對(duì)實(shí)驗(yàn)者的實(shí)驗(yàn)行為、實(shí)驗(yàn)結(jié)果進(jìn)行記錄。此外,實(shí)驗(yàn)教師需要進(jìn)行實(shí)驗(yàn)項(xiàng)目詳細(xì)信息的管理,并對(duì)實(shí)驗(yàn)者提交實(shí)驗(yàn)結(jié)果以及實(shí)驗(yàn)報(bào)告進(jìn)行評(píng)閱。實(shí)驗(yàn)系統(tǒng)的管理人員可以對(duì)系統(tǒng)的用戶(實(shí)驗(yàn)教師、實(shí)驗(yàn)者)進(jìn)行管理,還可以對(duì)實(shí)驗(yàn)課程等其他信息進(jìn)行管理。
在本系統(tǒng)中,實(shí)驗(yàn)者在登錄到系統(tǒng)之后,可以在一種逼真的環(huán)境中進(jìn)行各項(xiàng)試驗(yàn),掌握課程知識(shí),增強(qiáng)實(shí)際動(dòng)手操作能力。實(shí)驗(yàn)老師可以預(yù)先準(zhǔn)備好實(shí)驗(yàn)的指導(dǎo)說明,供實(shí)驗(yàn)者在實(shí)驗(yàn)前學(xué)習(xí)相關(guān)的理論知識(shí)和掌握實(shí)驗(yàn)操作要領(lǐng)。此外,在實(shí)驗(yàn)結(jié)束后,根據(jù)學(xué)生提交的實(shí)驗(yàn)結(jié)果和填寫的實(shí)驗(yàn)報(bào)告,教師可以把握整體的實(shí)驗(yàn)完成情況,便于調(diào)整課程進(jìn)度。此外,還提供了實(shí)驗(yàn)者之間、實(shí)驗(yàn)者與實(shí)驗(yàn)教師、實(shí)驗(yàn)教師之間相互溝通交流的虛擬討論區(qū),大家可以就學(xué)習(xí)、授課過程中發(fā)現(xiàn)的問題一起探討,商量對(duì)策,以達(dá)到教與學(xué)雙方的提高??傮w來說,系統(tǒng)應(yīng)該具備以下功能:
(1) 用戶管理功能:可以對(duì)系統(tǒng)的用戶進(jìn)行各項(xiàng)管理,包括創(chuàng)建管理員、創(chuàng)建教師、批量添加學(xué)生賬號(hào)、刪除賬號(hào)、用戶權(quán)限分配等。
(2) 課程實(shí)驗(yàn)項(xiàng)目管理功能:實(shí)驗(yàn)課程以及每門課程里面的實(shí)驗(yàn)項(xiàng)目都需要進(jìn)行管理,可以進(jìn)行增加、刪除、修改以及查詢操作。
(3) 虛擬實(shí)驗(yàn)功能:實(shí)驗(yàn)者登錄系統(tǒng)之后,選擇實(shí)驗(yàn)項(xiàng)目,預(yù)習(xí)相關(guān)的實(shí)驗(yàn)原理以及實(shí)驗(yàn)指導(dǎo)說明,選擇所需的實(shí)驗(yàn)儀器,進(jìn)行實(shí)驗(yàn)操作,試驗(yàn)完成后提交實(shí)驗(yàn)結(jié)果,并填寫實(shí)驗(yàn)報(bào)告。
(4) 實(shí)驗(yàn)結(jié)果管理功能:所有實(shí)驗(yàn)者提交的實(shí)驗(yàn)結(jié)果,需要有一個(gè)統(tǒng)一的管理功能。對(duì)于實(shí)驗(yàn)者提交的實(shí)驗(yàn)結(jié)果,實(shí)驗(yàn)教師通過該功能對(duì)其進(jìn)行評(píng)價(jià)。
(5) 實(shí)驗(yàn)報(bào)告管理功能:提供實(shí)驗(yàn)報(bào)告動(dòng)態(tài)的添加、修改和刪除等功能,并允許教師對(duì)其授課班級(jí)的實(shí)驗(yàn)報(bào)告進(jìn)行評(píng)閱。
(6) 虛擬交流區(qū)功能:系統(tǒng)提供一個(gè)給實(shí)驗(yàn)者、實(shí)驗(yàn)教師以及系統(tǒng)管理員之間交流溝通的區(qū)域,大家可以暢所欲言,相互學(xué)習(xí),以提高教學(xué)水平和實(shí)驗(yàn)?zāi)芰Α?/p>
(7) 系統(tǒng)統(tǒng)計(jì)功能:此部分主要提供給系統(tǒng)管理部門使用,通過它可以查看系統(tǒng)的訪問情況、資源的使用情況(每日的實(shí)驗(yàn)完成數(shù)量以及實(shí)驗(yàn)項(xiàng)目的建設(shè)情況)、學(xué)生的行為以及實(shí)驗(yàn)教師的實(shí)驗(yàn)教學(xué)行為。
3.2系統(tǒng)功能模塊設(shè)計(jì)
一個(gè)功能完善的虛擬實(shí)驗(yàn)室主要包括虛擬實(shí)驗(yàn)、數(shù)據(jù)庫系統(tǒng)、網(wǎng)絡(luò)服務(wù)三大模塊,如圖3所示。
虛擬實(shí)驗(yàn)?zāi)K:實(shí)驗(yàn)?zāi)K是呈現(xiàn)在用戶端的主要部分,是整個(gè)虛擬實(shí)驗(yàn)室的核心模塊,對(duì)于整個(gè)系統(tǒng)起著一個(gè)連接用戶(實(shí)驗(yàn)者、實(shí)驗(yàn)老師)和管理者(系統(tǒng)管理員、實(shí)驗(yàn)老師)的作用。它負(fù)責(zé)搭建虛擬實(shí)驗(yàn)環(huán)境,提供具體的實(shí)驗(yàn)場(chǎng)景,接受服務(wù)器端傳輸過來的數(shù)據(jù),通過網(wǎng)頁反饋給用戶。在客戶端,通過一個(gè)Applet生成三維實(shí)驗(yàn)場(chǎng)景,用戶通過鍵盤鼠標(biāo)操作完成實(shí)驗(yàn),最后將實(shí)驗(yàn)結(jié)果保存在服務(wù)器端。
數(shù)據(jù)庫系統(tǒng)模塊:主要用來完成用戶的管理以及系統(tǒng)中不同角色權(quán)限的分配管理。另外,對(duì)于數(shù)據(jù)提供一些安全保護(hù)機(jī)制。本系統(tǒng)主要采用SQL Server 2005作為后臺(tái)數(shù)據(jù)庫管理系統(tǒng),在Web中通過Hibernate封裝JDBC API實(shí)現(xiàn)數(shù)據(jù)庫操作。
網(wǎng)絡(luò)服務(wù)模塊:該部分主要提供用戶一些實(shí)驗(yàn)數(shù)據(jù)的管理以及相關(guān)信息的檢索和查閱功能。對(duì)于系統(tǒng)中的實(shí)驗(yàn)說明指導(dǎo)、用戶在不同實(shí)驗(yàn)中的進(jìn)展詳情、用戶提交的實(shí)驗(yàn)結(jié)果,以及系統(tǒng)輔助功能模塊(實(shí)驗(yàn)討論區(qū))中的數(shù)據(jù),都需要提供管理功能。
4結(jié)語
網(wǎng)絡(luò)實(shí)驗(yàn)室以計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)、多媒體技術(shù)、虛擬儀器技術(shù)為基礎(chǔ),在Web中構(gòu)造出高度逼真的虛擬實(shí)驗(yàn)環(huán)境,用戶進(jìn)入之后,可以學(xué)習(xí)相關(guān)實(shí)驗(yàn)知識(shí)、操作實(shí)驗(yàn)儀器,并通過形象直觀的操作就可進(jìn)行虛擬實(shí)驗(yàn)。本文對(duì)網(wǎng)絡(luò)虛擬實(shí)驗(yàn)室的設(shè)計(jì)原則和目標(biāo)進(jìn)行了較深入分析,對(duì)系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)和軟件架構(gòu)進(jìn)行了闡述,并對(duì)系統(tǒng)功能模塊進(jìn)行了分析,最后給出了系統(tǒng)的總體功能模塊設(shè)計(jì)。
參考文獻(xiàn):
[1] 王慧蘭. 基于B/S模式的網(wǎng)絡(luò)虛擬實(shí)驗(yàn)室設(shè)計(jì)方法及實(shí)例研究[D]. 長春:吉林大學(xué),2005.
[2] 李仁發(fā),周祖德. 虛擬實(shí)驗(yàn)室網(wǎng)絡(luò)體系結(jié)構(gòu)研究[J]. 系統(tǒng)仿真學(xué)報(bào),2002,14(3):359-362.
[3] 張學(xué)兵. 基于J2EE/MVC的Web技術(shù)研究與應(yīng)用[D]. 南京:南京理工大學(xué),2007.
[4] Craig A.Berry,John Carnell,Matjaz B.Jurie.實(shí)用J2EE設(shè)計(jì)模式編程指南[M]. 邱仲潘,譯. 北京:電子工業(yè)出版社,2003.
Design of Online Virtual Lab
WU Li-bing,LIU Dan,CHEN Bo
(School of Computer Science, Wuhan University , Wuhan 430079,China)
Abstract: This article analyzes the virtual laboratory design principles and goals, describing the system's network structure and software architecture. We elaborated functionality that the virtual lab should have. Finally, we discuss the module design of the system.
Keywords: virtual laboratory; Network Structure; Software Architecture; functional analysis and module design
(編輯:白杰)