凌育趙,凌蔚鵬,吳曉天,劉佩珊
(仲愷農(nóng)業(yè)工程學(xué)院,廣東 廣州510225)
隨著計(jì)算機(jī)技術(shù)的發(fā)展,越來越多的信息化技術(shù)被應(yīng)用到實(shí)驗(yàn)教學(xué)中,伴隨著虛擬技術(shù)的發(fā)展和仿真實(shí)驗(yàn)的需求,基于虛擬仿真技術(shù)的網(wǎng)絡(luò)虛擬仿真實(shí)驗(yàn)平臺(tái)構(gòu)建的研究已成為教育、教學(xué)發(fā)展的方向?;贗nternet 的虛擬實(shí)驗(yàn)室,由于其傳統(tǒng)的客戶機(jī)服務(wù)器計(jì)算模式存在可擴(kuò)展性差、維護(hù)代價(jià)高等缺點(diǎn),很難適應(yīng)Internet 應(yīng)用系統(tǒng)的要求。然而,J2EE 體系結(jié)構(gòu)適合Internet 上的Web 特點(diǎn)的產(chǎn)生和發(fā)展[1-2]。
本文將J2EE 技術(shù)引入虛擬仿真實(shí)驗(yàn)平臺(tái)的框架結(jié)構(gòu)設(shè)計(jì)、開發(fā)應(yīng)用和管理評(píng)價(jià),構(gòu)建一種仿真模擬設(shè)備和虛擬訓(xùn)練與評(píng)價(jià)系統(tǒng)有機(jī)結(jié)合,同時(shí)以學(xué)生為主體、互動(dòng)體驗(yàn)式教學(xué)的虛擬仿真實(shí)驗(yàn)平臺(tái)。
J2EE 是一種利用Java 2 平臺(tái)來簡(jiǎn)化企業(yè)解決方案的開發(fā)、部署和管理相關(guān)的復(fù)雜問題的體系結(jié)構(gòu),其基礎(chǔ)是核心Java 平臺(tái)或Java 2 平臺(tái)的標(biāo)準(zhǔn)版。J2EE 服務(wù)器作為中間層可以有多層應(yīng)用程序,使得程序各功能分離,一部分由支持Servlet 或JSP 的Web 服務(wù)器來實(shí)現(xiàn)會(huì)話層,一部分由支持EJB 的應(yīng)用服務(wù)器來實(shí)現(xiàn)的邏輯層,同時(shí)Web 容器和EJB容器自動(dòng)處理底層各種復(fù)雜的系統(tǒng)級(jí)訪問服務(wù),例如事務(wù)處理、組件的生命周期和安全控制等[3-4]。
基于J2EE 的虛擬實(shí)驗(yàn)室系統(tǒng)框架如圖1 所示,平臺(tái)各部分與J2EE 應(yīng)用模式聯(lián)系緊密,利用JSP 界面,用戶提交的操作在服務(wù)器端(中間層)進(jìn)行必要檢查,通過服務(wù)器端程序(Servlet),Servlet 根據(jù)客戶端請(qǐng)求生成響應(yīng)內(nèi)容并將其傳給服務(wù)器,服務(wù)器將響應(yīng)返回客戶端。
利用Beans 提供的功能,將用戶的合法需求交給后臺(tái)的數(shù)據(jù)庫(kù)。通過強(qiáng)大的后臺(tái)數(shù)據(jù)庫(kù)(信息層)支持,系統(tǒng)進(jìn)行數(shù)據(jù)檢索查詢,得到結(jié)果后送回服務(wù)器。可以充分利用J2EE提供的便利功能,開發(fā)出功能強(qiáng)大的虛擬實(shí)驗(yàn)平臺(tái)[5-6]。
圖1 基于J2EE 的虛擬實(shí)驗(yàn)室系統(tǒng)框架
本系統(tǒng)以實(shí)驗(yàn)教學(xué)為主要目的,既要求實(shí)驗(yàn)環(huán)境的逼真性又要求實(shí)驗(yàn)過程的仿真性。因此,系統(tǒng)的關(guān)鍵在于如何實(shí)現(xiàn)多媒體技術(shù)與仿真技術(shù)的融合設(shè)計(jì)。采用多媒體技術(shù)與仿真技術(shù)相結(jié)合的方法,以多媒體技術(shù)構(gòu)建真實(shí)的虛擬“外殼”,實(shí)現(xiàn)多媒體環(huán)境下的大學(xué)化學(xué)實(shí)驗(yàn)仿真實(shí)驗(yàn)。它不同于一般多媒體軟件對(duì)于實(shí)驗(yàn)現(xiàn)象的模擬演示,而是讓用戶在逼真的“虛擬場(chǎng)景”中,利用各種“虛擬元器件”任意組裝可行的化學(xué)實(shí)驗(yàn),并通過各種“虛擬儀器”的測(cè)試,實(shí)時(shí)得到仿真結(jié)果。
系統(tǒng)采用基于JavaBean 組件的軟件開發(fā)方法,構(gòu)建了一個(gè)虛擬化的“網(wǎng)上基礎(chǔ)化學(xué)實(shí)驗(yàn)室”。提供了包括基本操作訓(xùn)練、化學(xué)分析實(shí)驗(yàn)、儀器分析試驗(yàn)、綜合設(shè)計(jì)實(shí)驗(yàn)在內(nèi)的各類型實(shí)驗(yàn)項(xiàng)目;提供了開放式模擬實(shí)驗(yàn)平臺(tái),可以滿足學(xué)生自行設(shè)計(jì)實(shí)驗(yàn)項(xiàng)目、開展自主實(shí)驗(yàn)的需要。系統(tǒng)具有實(shí)驗(yàn)指導(dǎo)、實(shí)驗(yàn)報(bào)告網(wǎng)上生成與批閱等多項(xiàng)輔助功能,集實(shí)驗(yàn)教學(xué)、實(shí)驗(yàn)操作、實(shí)驗(yàn)報(bào)告于一體,實(shí)現(xiàn)了從輔助教學(xué)、自主實(shí)驗(yàn)到實(shí)驗(yàn)報(bào)告的網(wǎng)上提交與批閱的全程操作與管理,滿足網(wǎng)上實(shí)驗(yàn)教學(xué)的需要。
整個(gè)系統(tǒng)采用基于Web 的三層結(jié)構(gòu)技術(shù)實(shí)現(xiàn),其網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示。
圖2 系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)圖
第一層為客戶端程序即用戶界面程序,它通過使用中間層部件提供的業(yè)務(wù)服務(wù)來實(shí)現(xiàn)其功能。它本身不進(jìn)行任何業(yè)務(wù)數(shù)據(jù)處理,因此客戶端配制很簡(jiǎn)單,客戶可利用瀏覽器完成操作。中間層是應(yīng)用服務(wù)層,包括許多提供各種服務(wù)的獨(dú)立的中間層部件,對(duì)數(shù)據(jù)庫(kù)的訪問均采用對(duì)象嵌入引擎的方法,避免了使用ODBC 需要設(shè)置的不便。第三層是數(shù)據(jù)服務(wù)層,系統(tǒng)采用SQL Server2005 作為數(shù)據(jù)庫(kù)服務(wù)器。在基于Web 的三層結(jié)構(gòu)中,系統(tǒng)管理員只需對(duì)應(yīng)用服務(wù)器和Web服務(wù)器進(jìn)行維護(hù),而在客戶端實(shí)現(xiàn)了零維護(hù),提高了工作效率。
系統(tǒng)是一個(gè)具有“大學(xué)基礎(chǔ)化學(xué)教學(xué)實(shí)驗(yàn)”教學(xué)功能的網(wǎng)站,除了進(jìn)行虛擬實(shí)驗(yàn)操作之外,還支持一系列輔助功能模塊,它們共同構(gòu)成網(wǎng)上虛擬實(shí)驗(yàn)室系統(tǒng)。系統(tǒng)采用模塊化設(shè)計(jì),其主要功能分為4 大系統(tǒng)模塊:虛擬實(shí)驗(yàn)系統(tǒng)(SVE)、實(shí)驗(yàn)輔助系統(tǒng)(SEA)、互動(dòng)交流系統(tǒng)(SAC)、資料下載系統(tǒng)(SDO)。
SVE 是整個(gè)虛擬實(shí)驗(yàn)室的核心,它由常用儀器介紹、虛擬實(shí)驗(yàn)、實(shí)驗(yàn)報(bào)告、自我測(cè)試4 個(gè)模塊構(gòu)成。虛擬實(shí)驗(yàn)即基礎(chǔ)化學(xué)虛擬實(shí)驗(yàn)平臺(tái),主要由化學(xué)實(shí)驗(yàn)基本技能、元素與化合物定性鑒定、基本化學(xué)合成與制備、物理量參數(shù)測(cè)定、定量?jī)x器分析、電化學(xué)分析6 大功能模塊構(gòu)成。SEA 主要由導(dǎo)航系統(tǒng)、測(cè)試系統(tǒng)、評(píng)價(jià)系統(tǒng)和輔助工具系統(tǒng)4 大功能模塊構(gòu)成。SAC 主要由在線答疑、交流討論、師生互動(dòng)、問題集錦4 大功能模塊構(gòu)成。SDO 主要由實(shí)驗(yàn)規(guī)則、實(shí)驗(yàn)室安全、實(shí)驗(yàn)基本操作、數(shù)據(jù)處理知識(shí)4 大功能模塊構(gòu)成。虛擬系統(tǒng)功能模塊和平臺(tái)主界面如圖3、圖4 所示。
圖3 虛擬實(shí)驗(yàn)室系統(tǒng)功能結(jié)構(gòu)圖
圖4 基礎(chǔ)化學(xué)虛擬實(shí)驗(yàn)平臺(tái)主界面
系統(tǒng)采用了Java Script+XML+JSP+Java Bean 的設(shè)計(jì)模式。Java Script 是在客戶端網(wǎng)頁上運(yùn)行的腳本語言,生成客戶端動(dòng)態(tài)網(wǎng)頁。XML 主要用于與服務(wù)器端信息模型交互。Java Bean 主要用于實(shí)現(xiàn)一些業(yè)務(wù)邏輯或封裝一些業(yè)務(wù)對(duì)象,它是模擬仿真的核心模塊,包括仿真實(shí)驗(yàn)平臺(tái)組件、虛擬儀器組件的設(shè)計(jì),實(shí)驗(yàn)過程的仿真實(shí)現(xiàn)等。
3.1.1 JavaBan 組件技術(shù)
系統(tǒng)采用了Java Ban 組件技術(shù)來封裝數(shù)據(jù)庫(kù),而虛擬設(shè)備采用基于JavaBeans 的組件對(duì)象技術(shù)創(chuàng)建,每個(gè)實(shí)驗(yàn)設(shè)備組件的實(shí)現(xiàn)細(xì)節(jié)完全被封裝在每個(gè)Bean 組件的內(nèi)部,用戶可以添加自己編寫的新實(shí)驗(yàn)儀器組件,并向外提供調(diào)用接口。儀器組件屬性的設(shè)置和讀取的操作通過Bean 組件中的get 方法和set 方法,為外部提供屬性讀取方法和更改方法來實(shí)現(xiàn)?;贘avaBeans 的組件對(duì)象技術(shù)創(chuàng)建的虛擬實(shí)驗(yàn)室系統(tǒng),用戶可以動(dòng)態(tài)地選擇實(shí)驗(yàn)和創(chuàng)建設(shè)備、設(shè)置實(shí)驗(yàn)和設(shè)備的參數(shù)值,通過把實(shí)現(xiàn)設(shè)備功能的算法在組件設(shè)計(jì)和編寫源代碼時(shí)寫入JavaBeans 組件就可完成與真實(shí)設(shè)備功能等效的設(shè)備組件創(chuàng)建[6]。
3.1.2 JSP+XML 技術(shù)的結(jié)合
JavaServer Pages(JSP)和XML 是J2EE 的兩個(gè)至關(guān)緊要的組件。JSP 是創(chuàng)建應(yīng)用程序服務(wù)器端程序的有效工具,而客戶可以是一個(gè)瀏覽器、一個(gè)設(shè)備或其他的應(yīng)用程序。使用XML 描述數(shù)據(jù)并在聯(lián)系服務(wù)器與系統(tǒng)的其余部分之間傳遞。抽象而言,JSP 可以被認(rèn)為是實(shí)現(xiàn)技術(shù),而XML 則是數(shù)據(jù)封裝和消息傳送技術(shù)。JSP 頁面可以通過三種方式使用XML:直接使用XML 文件、使用JavaBeans 執(zhí)行XML 處理、通過標(biāo)記庫(kù)使用XML[7]。
在虛擬實(shí)驗(yàn)平臺(tái)下,客戶端的用戶可以隨時(shí)保存實(shí)驗(yàn)狀態(tài)及實(shí)驗(yàn)數(shù)據(jù),在客戶端和服務(wù)器端進(jìn)行數(shù)據(jù)交換,需要XML 技術(shù)來完成。而在JSP 頁面中,JSP 技術(shù)支持XML技術(shù)。
3.2.1 虛擬儀器的仿真設(shè)計(jì)由Java 語言編寫的Applet 程序?qū)崿F(xiàn)
在JSP 頁面中,只需要嵌入Applet 程序即可。虛擬儀器采用的是面向?qū)ο蟮慕7绞?。圖像模型使用繪制軟件制作出各種儀器的二維平面圖以及與之對(duì)應(yīng)的掩碼圖,實(shí)現(xiàn)虛擬儀器與虛擬實(shí)驗(yàn)環(huán)境在視覺效果上的無縫連接和自然融合,并通過各自數(shù)學(xué)模型進(jìn)行數(shù)據(jù)交換,使之成為協(xié)調(diào)工作的統(tǒng)一整體。虛擬儀器面向?qū)ο蠼?,直接以?shí)物儀器作為對(duì)象,虛擬儀器間消息的傳送引起系統(tǒng)的所有活動(dòng),其整體功能由虛擬器件的操作及虛擬器件間信息的彼此作用來實(shí)現(xiàn)。虛擬儀器的行為則由對(duì)象動(dòng)態(tài)行為表示,虛擬儀器對(duì)象之間通過消息通信相互協(xié)作。
3.2.2 虛擬實(shí)驗(yàn)過程的仿真設(shè)計(jì)
虛擬實(shí)驗(yàn)過程的仿真設(shè)計(jì)包括實(shí)驗(yàn)平臺(tái)的搭建、實(shí)驗(yàn)藥品的添加、虛擬儀器的啟動(dòng)、實(shí)驗(yàn)數(shù)據(jù)的測(cè)量以及曲線圖的動(dòng)態(tài)顯示。虛擬實(shí)驗(yàn)平臺(tái)包括虛擬實(shí)驗(yàn)環(huán)境(圖像模型)和計(jì)算仿真模塊(數(shù)學(xué)模型)。作為人機(jī)交互界面的虛擬實(shí)驗(yàn)環(huán)境表現(xiàn)為一個(gè)虛擬化學(xué)儀器編輯器。在此環(huán)境下,提供了各種具有逼真外形的虛擬化學(xué)儀器,使用者用鼠標(biāo)自由拖拽器件連接實(shí)驗(yàn)裝置,就像在真實(shí)實(shí)驗(yàn)臺(tái)搭接實(shí)驗(yàn)儀器一樣方便快捷[8]。
系統(tǒng)在數(shù)據(jù)存取方面采用JSP/Servlet+JDBC+MySL 方案,即客戶端不產(chǎn)生數(shù)據(jù)庫(kù)查詢命令,客戶端上的瀏覽器通過URL 和中間層的Web 服務(wù)器建立連接。在客戶端,通過HIML 向服務(wù)器發(fā)出查詢數(shù)據(jù)的請(qǐng)求。在服務(wù)器端Servlet,收到查詢請(qǐng)求后,通過執(zhí)行程序中的SQL 語句,以JDBC為工具,對(duì)SQL 數(shù)據(jù)庫(kù)進(jìn)行訪問、操作。Servlet 再將查詢的數(shù)據(jù)傳給JSP,最后生成標(biāo)準(zhǔn)的JSP 頁面,將結(jié)果返回給提出請(qǐng)求的瀏覽器。這樣,不僅將客戶端與數(shù)據(jù)庫(kù)服務(wù)器端分開,同時(shí)提高了數(shù)據(jù)庫(kù)的訪問效率。采用表達(dá)能力強(qiáng)、易擴(kuò)展的XML 語言作為信息傳遞載體,實(shí)現(xiàn)對(duì)客戶端儀器搭建及實(shí)驗(yàn)狀態(tài)等信息的保存和恢復(fù),XML 作為客戶端與服務(wù)器數(shù)據(jù)交換的模型,實(shí)現(xiàn)了對(duì)實(shí)驗(yàn)狀態(tài)的保存,根據(jù)XML文件中保存的信息重現(xiàn)實(shí)驗(yàn)現(xiàn)場(chǎng)[9]。
基于J2EE 的網(wǎng)絡(luò)虛擬實(shí)驗(yàn)平臺(tái)采用整體功能模塊化結(jié)構(gòu)設(shè)計(jì),提高了虛擬實(shí)驗(yàn)室設(shè)備組件的開發(fā)效率,具有良好的可擴(kuò)展性和跨平臺(tái)性,有效解決了傳統(tǒng)實(shí)驗(yàn)室建設(shè)成本高、設(shè)備利用率低和實(shí)驗(yàn)室維護(hù)管理困難等缺點(diǎn)。通過網(wǎng)上學(xué)習(xí)和虛擬訓(xùn)練,共享學(xué)習(xí)資源,實(shí)現(xiàn)了體驗(yàn)式教學(xué)與線上網(wǎng)絡(luò)學(xué)習(xí)及虛擬體驗(yàn)的有機(jī)結(jié)合,突破了傳統(tǒng)教學(xué)模式受時(shí)間、地點(diǎn)和實(shí)驗(yàn)設(shè)備等的限制,提高了實(shí)驗(yàn)教學(xué)效果。