虞江鋒,劉蘭英,盛羽,王建新
(1. 浙江廣播電視大學(xué) 信息與工程學(xué)院,浙江 杭州,310030;2.中南大學(xué) 信息科學(xué)與工程學(xué)院,湖南 長(zhǎng)沙,410083)
虛擬實(shí)驗(yàn)環(huán)境對(duì)于節(jié)省教育成本、推進(jìn)實(shí)驗(yàn)教學(xué)改革具有廣泛而重要的應(yīng)用價(jià)值,在現(xiàn)代遠(yuǎn)程教育領(lǐng)域有著廣闊的發(fā)展前景,因此,虛擬實(shí)驗(yàn)環(huán)境的建立一直是網(wǎng)絡(luò)計(jì)算技術(shù)領(lǐng)域的熱點(diǎn)研究課題[1?3]。目前,國(guó)內(nèi)外的相關(guān)研究組織和個(gè)人對(duì)虛擬實(shí)驗(yàn)環(huán)境的建設(shè)展開了大量而深入的研究工作,如:利用Java語(yǔ)言和數(shù)字信號(hào)處理技術(shù)相結(jié)合開發(fā)的仿真系統(tǒng) J-DSP[3],以組件技術(shù)構(gòu)架并通過 CORBA技術(shù)實(shí)現(xiàn) Java 與Matlab 之間的無(wú)縫聯(lián)接的基于 Internet 的數(shù)字圖像處理仿真模型系統(tǒng)[2,4],基于組件的實(shí)時(shí)入侵檢測(cè)虛擬實(shí)驗(yàn)室系統(tǒng)[5];采用純軟件技術(shù)將各種常見的集成電路芯片封裝成組件;開發(fā)出基于組件的計(jì)算機(jī)組成原理虛擬實(shí)驗(yàn)室[6]、基于組件的模型機(jī)虛擬實(shí)驗(yàn)平臺(tái)(CPU_VLAB)[7]等。然而,目前已經(jīng)建成的虛擬實(shí)驗(yàn)室在很多方面仍然存在一定缺陷和不足,無(wú)法滿足實(shí)驗(yàn)用戶復(fù)雜多變的應(yīng)用需求。主要體現(xiàn)在:這些虛擬實(shí)驗(yàn)室產(chǎn)品都沒有對(duì)用戶的協(xié)同工作提供支持,很少有虛擬實(shí)驗(yàn)平臺(tái)能夠提供不同實(shí)驗(yàn)者之間的實(shí)驗(yàn)指導(dǎo)和實(shí)驗(yàn)協(xié)同設(shè)計(jì)功能,因此,現(xiàn)有的虛擬實(shí)驗(yàn)平臺(tái)對(duì)實(shí)現(xiàn)人與人之間交互與協(xié)同顯得無(wú)能為力。而協(xié)同工作能力已經(jīng)成為當(dāng)代人才必備的能力之一,同時(shí),協(xié)同工作功能在虛擬實(shí)驗(yàn)室中的實(shí)現(xiàn)還有利于師生實(shí)驗(yàn)過程的互動(dòng)以及學(xué)生之間的相互學(xué)習(xí),因此,在虛擬實(shí)驗(yàn)室中提供協(xié)同工作的支持有著重要的意義。同時(shí),現(xiàn)階段國(guó)內(nèi)外科研機(jī)構(gòu)在協(xié)同工作、分布計(jì)算、決策支持系統(tǒng)等方面進(jìn)行了大量細(xì)致的研究工作,并且借助實(shí)際研究背景開發(fā)出了原型系統(tǒng),如文獻(xiàn)[8?9]針對(duì)分布式環(huán)境中的協(xié)同問題進(jìn)行了研究,文獻(xiàn)[10]就協(xié)同設(shè)計(jì)中的群體感知等問題提出了解決方案,建立了模型系統(tǒng),文獻(xiàn)[11]對(duì)視頻會(huì)議中協(xié)同問題展開了研究,文獻(xiàn)[12]中基于 Applet[13]構(gòu)建了動(dòng)態(tài)的實(shí)時(shí)協(xié)作框架,在Applet之間復(fù)雜的通信方面提出了較好的通信策略,為遠(yuǎn)程的虛擬實(shí)驗(yàn)室協(xié)同工作提供了很好的方法。但是,將協(xié)同技術(shù)直接應(yīng)用于真正應(yīng)用中的虛擬實(shí)驗(yàn)環(huán)境中的相關(guān)研究還比較欠缺,而虛擬實(shí)驗(yàn)環(huán)境下的協(xié)同設(shè)計(jì)的權(quán)限控制與管理以及協(xié)同機(jī)制等方面都有許多問題需要進(jìn)一步研究和深入探索。
針對(duì)以上問題,本文作者將協(xié)同技術(shù)與虛擬實(shí)驗(yàn)環(huán)境技術(shù)相結(jié)合,以虛擬實(shí)驗(yàn)為基礎(chǔ),建立網(wǎng)上協(xié)同虛擬實(shí)驗(yàn)室,在基于網(wǎng)絡(luò)環(huán)境的虛擬實(shí)驗(yàn)環(huán)境中增加支持網(wǎng)絡(luò)協(xié)同工作的支撐功能,使得多個(gè)實(shí)驗(yàn)者之間可以按照一定的規(guī)則實(shí)現(xiàn)協(xié)同實(shí)驗(yàn),提供實(shí)時(shí)的、真實(shí)的虛擬實(shí)驗(yàn)系統(tǒng)。
基于虛擬實(shí)驗(yàn)室的協(xié)同支撐環(huán)境的整體架構(gòu)如圖1所示。平臺(tái)采用B/S架構(gòu)模式,客戶端用戶只需要安裝瀏覽器,其他的工作都在服務(wù)器部署完成。系統(tǒng)客戶端采用瀏覽器嵌入Applet的方式實(shí)現(xiàn),基于Java Applet的客戶端程序主要提供虛擬實(shí)驗(yàn)組件的搭建平臺(tái)和協(xié)同命令的請(qǐng)求及執(zhí)行等服務(wù)。Web服務(wù)器端程序主要提供已經(jīng)開發(fā)好的經(jīng)典實(shí)驗(yàn)文件庫(kù)和系統(tǒng)開發(fā)好的實(shí)驗(yàn)組件庫(kù),客戶端可直接通過瀏覽器下載應(yīng)用這些庫(kù)資源,應(yīng)用服務(wù)器主要完成整個(gè)系統(tǒng)中的應(yīng)用邏輯處理,用戶管理、協(xié)同控制以及其他輔助服務(wù)功能。
系統(tǒng)主要分為Applet客戶端和服務(wù)器端兩部分,客戶端主要包括3個(gè)功能模塊:虛擬實(shí)驗(yàn)設(shè)計(jì)、協(xié)同工作支持和相關(guān)通信模塊。虛擬實(shí)驗(yàn)設(shè)計(jì)模塊中用戶可以自主地進(jìn)行實(shí)驗(yàn)組件的搭建,并通過運(yùn)行實(shí)驗(yàn)檢驗(yàn)結(jié)果的正確性。協(xié)同工作支持模塊中完成在協(xié)同實(shí)驗(yàn)?zāi)J较碌目蛻舳斯ぷ?,如發(fā)送和接收服務(wù)器消息,解析命令,調(diào)用本地方法等,由通信模塊完成實(shí)驗(yàn)設(shè)計(jì)平臺(tái)與協(xié)同支持平臺(tái)的通信,以及客戶端與服務(wù)器之間消息的互通。服務(wù)器端的Web服務(wù)器端通過資源部署支持多用戶同時(shí)在線并發(fā)訪問Web服務(wù)器、下載Applet實(shí)驗(yàn)客戶端。應(yīng)用服務(wù)器主要包括3個(gè)功能模塊:用戶管理、平臺(tái)操作權(quán)管理和實(shí)驗(yàn)同步控制。其中,平臺(tái)操作權(quán)管理和同步控制是應(yīng)用服務(wù)器中最主要的兩大功能模塊。操作權(quán)管理模塊結(jié)合用戶管理模塊對(duì)實(shí)驗(yàn)室平臺(tái)的操作權(quán)限進(jìn)行控制,結(jié)合虛擬實(shí)驗(yàn)室主要用于演示教學(xué)活動(dòng)的應(yīng)用實(shí)際,本系統(tǒng)中通過將共享對(duì)象的修改訪問權(quán)加鎖的方法,保證在某一段時(shí)間內(nèi)授予系統(tǒng)某個(gè)唯一的訪問者,從而保證數(shù)據(jù)的一致性。同步控制模塊主要用于保證協(xié)同中的客戶端實(shí)驗(yàn)數(shù)據(jù)的一致性,針對(duì)客戶端在協(xié)同進(jìn)行中途加入?yún)f(xié)同組或者因網(wǎng)絡(luò)原因等情況,在同步控制模塊進(jìn)行檢測(cè),并將最新的同步數(shù)據(jù)反饋至客戶端。應(yīng)用服務(wù)器與客戶端的功能模塊如圖2所示。
圖1 協(xié)同支撐環(huán)境架構(gòu)Fig.1 Collaborative support environment architecture
圖2 主要功能模塊圖Fig.2 Core functional module diagram
由圖1可以看出,客戶端支持的實(shí)驗(yàn)方式主要有2種:?jiǎn)为?dú)實(shí)驗(yàn)和協(xié)同實(shí)驗(yàn)。單獨(dú)實(shí)驗(yàn)?zāi)J较?,用戶可自主選擇虛擬實(shí)驗(yàn)平臺(tái)中組件,將相應(yīng)引腳進(jìn)行連接,完成實(shí)驗(yàn)的設(shè)計(jì)搭建,并可以動(dòng)態(tài)設(shè)置相關(guān)實(shí)驗(yàn)組件狀態(tài),實(shí)驗(yàn)平臺(tái)通過圖形化界面生動(dòng)顯示運(yùn)行實(shí)驗(yàn)的結(jié)果,檢驗(yàn)實(shí)驗(yàn)數(shù)據(jù)的正確性。用戶可以根據(jù)需要進(jìn)入?yún)f(xié)同實(shí)驗(yàn)?zāi)J?,在協(xié)同實(shí)驗(yàn)?zāi)J较拢诰€用戶之間可以進(jìn)行協(xié)同實(shí)驗(yàn)、作業(yè)提交及語(yǔ)言交流討論等交互性活動(dòng)。協(xié)同模式下,有實(shí)驗(yàn)平臺(tái)操作權(quán)的用戶在對(duì)平臺(tái)進(jìn)行操作時(shí),客戶端產(chǎn)生本地操作響應(yīng),同時(shí)將相關(guān)的操作信息生成命令發(fā)送至服務(wù)器,經(jīng)服務(wù)器轉(zhuǎn)發(fā)至其他用戶,使每個(gè)操作都能實(shí)時(shí)的體現(xiàn)于其他參與者的機(jī)器上。對(duì)協(xié)同狀態(tài)下沒有操作權(quán)限的用戶,在接到操作命令消息時(shí),通過消息解析調(diào)用平臺(tái)相關(guān)方法,執(zhí)行相同的操作,并在本地客戶端顯示執(zhí)行結(jié)果,保證客戶端在協(xié)同狀態(tài)中實(shí)驗(yàn)數(shù)據(jù)的一致性。為實(shí)現(xiàn)對(duì)用戶協(xié)同工作的支持環(huán)境,在客戶端中加入?yún)f(xié)同信息面板及相關(guān)通信模塊,它記錄用戶連接狀態(tài),實(shí)時(shí)顯示出當(dāng)前協(xié)同用戶及用戶交互消息及系統(tǒng)消息,同時(shí)負(fù)責(zé)協(xié)同相關(guān)信息的傳送、接受和執(zhí)行處理。協(xié)同信息面板采用Java語(yǔ)言實(shí)現(xiàn),與實(shí)驗(yàn)設(shè)計(jì)平臺(tái)在層次上平行,在 Java Applet中整合實(shí)現(xiàn),通過嵌入Web網(wǎng)頁(yè)的方式整體呈現(xiàn)于用戶面前。因此,在協(xié)同平臺(tái)與實(shí)驗(yàn)設(shè)計(jì)平臺(tái)中的信息通信及交互上實(shí)現(xiàn)了無(wú)縫連接。其中客戶端的消息通信機(jī)制與消息封裝和解析是客戶端在協(xié)同設(shè)計(jì)實(shí)現(xiàn)過程中考慮的核心問題:
在協(xié)同模式下,客戶端之間的實(shí)時(shí)的交互及實(shí)驗(yàn)平臺(tái)操作描述等協(xié)同信息通過客戶端的消息通信模塊進(jìn)行發(fā)送和接收,客戶端之間通過Socket與服務(wù)器保持雙向并且持續(xù)的連接,方便地實(shí)現(xiàn)客戶端與服務(wù)器之間信息通信的不斷更新。在信息傳輸協(xié)議上,采用基于 TCP/UDP的傳輸協(xié)議相結(jié)合的方式,既保證客戶端通信質(zhì)量同時(shí)實(shí)現(xiàn)即時(shí)通信的實(shí)時(shí)性,客戶登錄等信息采用TCP進(jìn)行傳輸,客戶端之間即時(shí)通訊信息采用UDP傳輸協(xié)議進(jìn)行發(fā)送和接收,該模塊采用多線程機(jī)制,當(dāng)有實(shí)驗(yàn)文件需要傳輸時(shí),建立文件傳輸線程專門用于文件通信,各個(gè)線程的控制流彼此獨(dú)立,大大提高了消息處理的并發(fā)性和效率。
合理有效的消息格式設(shè)置是完成客戶端命令生成與解析完成通信的重要組成部分,本系統(tǒng)中用Message類用于描述系統(tǒng)中各種消息,系統(tǒng)將每個(gè)消息視為一個(gè)二元組對(duì)象:
客戶端在接收到消息后,依據(jù)系統(tǒng)自定義規(guī)則進(jìn)行消息解析,并調(diào)用執(zhí)行相應(yīng)方法,完成相同的平臺(tái)操作,例如操作用戶在實(shí)驗(yàn)平臺(tái)上添加一個(gè)實(shí)驗(yàn)組件,主要的實(shí)現(xiàn)代碼示例如下:
協(xié)同支撐平臺(tái)的應(yīng)用服務(wù)器是實(shí)現(xiàn)協(xié)同支撐的樞紐。應(yīng)用服務(wù)器采用了多線程并發(fā)處理的方式在服務(wù)器建立一個(gè)線程池,當(dāng)有客戶端連接時(shí)就在池中開辟一個(gè)線程為它服務(wù),同時(shí)服務(wù)器保存客戶端的一些基本的信息,如登錄客戶的名稱、登錄時(shí)間等,實(shí)現(xiàn)了用戶的登錄控制和管理,并檢測(cè)客戶端網(wǎng)絡(luò)連接情況。應(yīng)用服務(wù)器負(fù)責(zé)整個(gè)系統(tǒng)中消息傳遞的中轉(zhuǎn),為了避免大量消息到達(dá)時(shí)處理不過來(lái)而導(dǎo)致丟失的情況,服務(wù)器中使用消息隊(duì)列,服務(wù)端接收到消息后,壓入接收緩沖區(qū),接收緩沖線程分析其中結(jié)構(gòu),根據(jù)類型實(shí)例化出相應(yīng)消息對(duì)象,確認(rèn)消息的接收方和發(fā)送方,得到接收方后再將消息封裝好壓入到發(fā)送隊(duì)列。
實(shí)驗(yàn)平臺(tái)的操作權(quán)限控制和實(shí)驗(yàn)數(shù)據(jù)一致性保證是實(shí)驗(yàn)平臺(tái)實(shí)現(xiàn)協(xié)同支撐要解決的2個(gè)核心問題。在分布式協(xié)同環(huán)境中,由于不同用戶可以在參與協(xié)同工作的不同計(jì)算機(jī)上同時(shí)操作,因此,哪些操作有效,哪些操作無(wú)效的選擇與控制就變得非常重要,同時(shí),新成員加入已有的實(shí)驗(yàn)組,新成員的實(shí)驗(yàn)平臺(tái)以及實(shí)驗(yàn)平臺(tái)操作鎖等相關(guān)狀態(tài)為該實(shí)驗(yàn)組的當(dāng)前狀態(tài),而不是新建狀態(tài)。系統(tǒng)平臺(tái)針對(duì)這些問題,采取了相應(yīng)的控制策略。
系統(tǒng)采用實(shí)驗(yàn)平臺(tái)的復(fù)制式應(yīng)用共享策略,參加協(xié)同的每個(gè)計(jì)算機(jī)上都通過瀏覽器打開運(yùn)行結(jié)構(gòu)相同的虛擬實(shí)驗(yàn)室客戶端,用戶對(duì)虛擬實(shí)驗(yàn)平臺(tái)的操作(例如鼠標(biāo)、鍵盤輸入消息等),通過應(yīng)用程序共享技術(shù)被復(fù)制到其他計(jì)算機(jī)上,在其他計(jì)算機(jī)上產(chǎn)生同樣的輸出結(jié)果,使協(xié)同中每個(gè)用戶能夠感覺到其他人的存在,達(dá)到多用戶應(yīng)用程序的網(wǎng)絡(luò)化協(xié)同。圖3所示為虛擬實(shí)驗(yàn)平臺(tái)共享的實(shí)現(xiàn)結(jié)構(gòu)。由圖3可以看出,客戶在實(shí)際運(yùn)行的相當(dāng)于多個(gè)結(jié)構(gòu)相同的客戶端拷貝,協(xié)同的結(jié)果在本地產(chǎn)生,因而在這種機(jī)制中,要選擇當(dāng)前獲得操作權(quán)限的用戶的輸入作為所有用戶節(jié)點(diǎn)實(shí)驗(yàn)平臺(tái)的輸入,該功能由操作共享策略和權(quán)限模塊共同完成。對(duì)具有操作權(quán)限的用戶,執(zhí)行命令回放模塊不起作用,其本地輸入直接送往實(shí)驗(yàn)平臺(tái)處理,同時(shí)還要把輸入消息錄制下來(lái),生成命令消息并發(fā)送到?jīng)]有操作權(quán)的用戶節(jié)點(diǎn)。而對(duì)沒有操作權(quán)的用戶節(jié)點(diǎn),其輸入被屏蔽掉,本地執(zhí)行模塊不起作用,實(shí)驗(yàn)平臺(tái)不對(duì)本地輸入作響應(yīng),應(yīng)用服務(wù)器把具有操作權(quán)限的節(jié)點(diǎn)發(fā)送過來(lái)的消息通過輸入回放模塊送往應(yīng)用程序生成輸出結(jié)果。
圖3 虛擬實(shí)驗(yàn)平臺(tái)共享的實(shí)現(xiàn)結(jié)構(gòu)Fig.3 Share-structure of virtual lab platform
系統(tǒng)采用粗粒度操作權(quán)加鎖的方法實(shí)現(xiàn)虛擬實(shí)驗(yàn)室平臺(tái)的權(quán)限控制,將整個(gè)實(shí)驗(yàn)平臺(tái)作為最小的加鎖對(duì)象,在某一段時(shí)間內(nèi)只授予某個(gè)唯一的操作者對(duì)實(shí)驗(yàn)平臺(tái)進(jìn)行操作,在客戶端和服務(wù)器端中分別有一個(gè)操作權(quán)標(biāo)志變量,它是一個(gè)布爾變量,由它來(lái)控制誰(shuí)擁有操作權(quán)。當(dāng)用戶事件送到網(wǎng)絡(luò)上之前,需要檢測(cè)該標(biāo)志的狀態(tài),只有在它使能的狀態(tài)下,事件消息才能分發(fā)給其他參與者。否則,其他參與用戶可以實(shí)時(shí)感知協(xié)同中操作效果,但是對(duì)平臺(tái)的操作不會(huì)發(fā)送給其他用戶,從而使對(duì)虛擬實(shí)驗(yàn)平臺(tái)的操作得以串行化,進(jìn)而保證同步數(shù)據(jù)的一致性。
應(yīng)用服務(wù)器中實(shí)驗(yàn)信息同步控制模塊是保證實(shí)驗(yàn)操作及數(shù)據(jù)一致性的重要組成模塊。同步協(xié)同支撐平臺(tái)可以為用戶提供在線的、實(shí)時(shí)的討論和實(shí)驗(yàn)操作的同步,但是,在 Internet網(wǎng)絡(luò)連接條件下,網(wǎng)絡(luò)帶寬和傳輸速率成為實(shí)現(xiàn)同步協(xié)同的瓶頸,因此,同步控制模塊添加了服務(wù)器定時(shí)輪詢機(jī)制,保障用戶網(wǎng)絡(luò)通信質(zhì)量,如果在設(shè)定時(shí)間內(nèi)的操作同步都沒有到達(dá),同步模塊將其視為新用戶,及時(shí)完成其本地實(shí)驗(yàn)面板的更新,保證參與協(xié)同用戶實(shí)驗(yàn)操作的流暢。
當(dāng)服務(wù)端有新的用戶參與到協(xié)同組時(shí),同步控制模塊檢測(cè)協(xié)同實(shí)驗(yàn)是否正在進(jìn)行,若沒有正在進(jìn)行的協(xié)同實(shí)驗(yàn),則新用戶實(shí)驗(yàn)平臺(tái)保持新建狀態(tài),否則,由同步控制模塊發(fā)送同步需求命令給當(dāng)前有操作權(quán)的用戶,通知處理它完成新用戶的實(shí)驗(yàn)同步的處理,使得新用戶的實(shí)驗(yàn)平臺(tái)與當(dāng)前協(xié)同實(shí)驗(yàn)平臺(tái)保持同步。此時(shí)具有操作權(quán)的用戶此時(shí)需要完成以下工作:暫停下一步將要進(jìn)行的平臺(tái)動(dòng)作,將當(dāng)前最新的實(shí)驗(yàn)狀態(tài)封裝為一個(gè)系統(tǒng)消息,即為experiment類型的消息,并指定接收者為新用戶。新用戶接收到相應(yīng)experiment消息并解析消息并更新運(yùn)行自己實(shí)驗(yàn)平臺(tái)面板狀態(tài),從而與協(xié)同組用戶實(shí)驗(yàn)狀態(tài)達(dá)到同步。在完成新用戶的遲到信息的同步處理之后,新產(chǎn)生的動(dòng)態(tài)的實(shí)驗(yàn)同步信息將在協(xié)同組中統(tǒng)一轉(zhuǎn)發(fā)執(zhí)行,使整個(gè)協(xié)同組保持同步處理狀態(tài)。應(yīng)用服務(wù)器處理實(shí)驗(yàn)同步的交互序列圖如圖4所示。
圖4 實(shí)驗(yàn)同步處理模型Fig.4 Experimental synchronous process model
以在組成原理虛擬實(shí)驗(yàn)室中實(shí)現(xiàn)協(xié)同工作為例,給出在虛擬實(shí)驗(yàn)環(huán)境中實(shí)現(xiàn)協(xié)同工作支撐的實(shí)例。計(jì)算機(jī)組成原理虛擬實(shí)驗(yàn)室將各種常見的集成電路芯片封裝成組件的形式,實(shí)驗(yàn)者通過選取組件、搭建實(shí)驗(yàn)流程、運(yùn)行并查看實(shí)驗(yàn)結(jié)果的仿真實(shí)驗(yàn)過程,驗(yàn)證單個(gè)芯片的功能或進(jìn)行組合邏輯測(cè)試,了解計(jì)算機(jī)的信息存儲(chǔ)以及邏輯運(yùn)算的原理。由于組成原理實(shí)驗(yàn)原理復(fù)雜,實(shí)驗(yàn)組件繁多,在組成原理虛擬實(shí)驗(yàn)環(huán)境中實(shí)現(xiàn)協(xié)同工作具有一定的代表性。
將經(jīng)過數(shù)字簽名的Applet客戶端應(yīng)用程序和相關(guān)資源程序部署在Tomcat Web服務(wù)器上,同時(shí)開始應(yīng)用服務(wù)器等待用戶連接,協(xié)同工作支撐的應(yīng)用服務(wù)器中可以進(jìn)行服務(wù)器端口的設(shè)置,并用表格的形式記錄當(dāng)前連接用戶的信息(包含用戶機(jī)IP,用戶名,登錄時(shí)間等),利用可視化功能按鈕方便的實(shí)現(xiàn)用戶管理功能。同時(shí)實(shí)時(shí)顯示應(yīng)用服務(wù)器公告信息,標(biāo)記當(dāng)前操作權(quán)用戶等協(xié)同工作相關(guān)信息,并生成登錄日志,以備登錄歷史查詢使用。
客戶端通過打開瀏覽器下載Applet客戶端,進(jìn)入虛擬實(shí)驗(yàn)環(huán)境中,通過客戶端協(xié)作信息面板與應(yīng)用服務(wù)器建立連接,用戶進(jìn)入?yún)f(xié)同實(shí)驗(yàn)?zāi)J?,?shí)驗(yàn)平臺(tái)操作權(quán)閑置時(shí),任何人都可以申請(qǐng)對(duì)平臺(tái)進(jìn)行操作。取得操作權(quán)限之后,用戶對(duì)虛擬實(shí)驗(yàn)平臺(tái)的操作將經(jīng)由服務(wù)器以命令的形式轉(zhuǎn)發(fā)至其他協(xié)同用戶,保證協(xié)同成員及時(shí)同步操作。圖5所示為在協(xié)同過程中的3個(gè)用戶的客戶端顯示狀態(tài)。其中,具有操作權(quán)限的test1用戶通過拖拽的形式將實(shí)驗(yàn)組件添加到實(shí)驗(yàn)面板中,并將組件用導(dǎo)線連接,同時(shí),另外的協(xié)同中的用戶同時(shí)執(zhí)行應(yīng)用服務(wù)器轉(zhuǎn)發(fā)的命令,其用戶界面上出現(xiàn)相同的組件并在實(shí)驗(yàn)系統(tǒng)中建立了相應(yīng)的組件連接關(guān)系。
圖5 虛擬實(shí)驗(yàn)室中協(xié)同工作運(yùn)行實(shí)例Fig.5 An instance of collaboration in Virtual Lab
(1) 協(xié)同支撐環(huán)境與虛擬實(shí)驗(yàn)室平臺(tái)實(shí)現(xiàn)無(wú)縫連接,提高了師生之間以及學(xué)生之間的交互性,增強(qiáng)了虛擬實(shí)驗(yàn)室用戶的參與感和沉浸感。
(2) 協(xié)同支撐環(huán)境模塊化清晰,具有通用性,以此為基礎(chǔ)可以快速應(yīng)用到多個(gè)虛擬實(shí)驗(yàn)室,如數(shù)字通信原理、數(shù)字信號(hào)處理等課程的虛擬實(shí)驗(yàn)室,為現(xiàn)代遠(yuǎn)程教育中基于網(wǎng)絡(luò)的協(xié)同虛擬實(shí)驗(yàn)室的應(yīng)用開發(fā)提供了參考。
[1] Spanias A, Atti V, Papandreou-Suppappola, A, et al. On-line signal processing using J-DSP[J]. IEEE Signal Processing Letters, 2004, 11(10): 821?825.
[2] 王建新, 陸煒妮, 王偉平. 基于組件數(shù)字圖像處理仿真系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 系統(tǒng)仿真學(xué)報(bào), 2004, 16(6): 1213?1216.WANG Jian-xin, LU Wei-ni, WANG Wei-ping. A component-based simulation system for digital image processing[J]. Journal of System Simulation, 2004, 16(6):1213?1216.
[3] Spanias A, Atti V. Interactive online undergraduate laboratories using J-DSP[J]. IEEE Transactions on Education, 2005, 48(4):735?749.
[4] WANG Jian-xin, Liu Li-juan, JIA Wei-jia. The design and implementation of digital signal processing virtual lab based on components[C]//International Conference of Web-Based Learning (ICWL2005). Berlin: Springer-Verlag, 2005: 291?301.
[5] 王建新, 安瑩, 吳國(guó)政, 等. 基于組件的實(shí)時(shí)入侵檢測(cè)虛擬實(shí)驗(yàn)室的設(shè)計(jì)與實(shí)現(xiàn)[J]. 系統(tǒng)仿真學(xué)報(bào), 2006, 18(11):3283?3286, 3296.WANG Jian-xin, AN Ying, WU Guo-zheng, et al. Design and implementation of real-time ids virtual lab based on component[J]. Journal of System Simulation, 2006, 18(11):3283?3286, 3296.
[6] 王建新, 張麗媛, 盛羽, 等. 基于組件的計(jì)算機(jī)組成原理虛擬實(shí)驗(yàn)室的設(shè)計(jì)與實(shí)現(xiàn)[J]. 系統(tǒng)仿真學(xué)報(bào), 2008, 20(9):2469?2474.WANG Jian-xin, ZHANG Li-yuan, SHENG Yu, et al. Design and implementation of principles of computer organization virtual lab based on component[J]. Journal of System Simulation,2008, 20(9): 2469?2474.
[7] 盛羽, 王建新, 謝朝暉. 模型機(jī)虛擬實(shí)驗(yàn)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 中南大學(xué)學(xué)報(bào): 自然科學(xué)版, 2009, 40(6): 1609?1615.SHENG Yu, WANG Jian-xin, XIE Zhao-hui. Design and implementation of model computer virtual lab[J]. Journal of Central South University: Science and Technology, 2009, 40(6):1609?1615.
[8] Tran M H, Raikundalia G K, Yang Y. Using an experimental study to develop group awareness support for real-time distributed collaborative writing[J]. Information and Software Technology, 2006(48): 1006?1024.
[9] Morris M R, Fisher D, Wigdor D. Search on surfaces: Exploring the potential of interactive tabletops for collaborative search tasks[J]. Information Processing & Management. [EB/OL].[2009.11.5]http://www.elsevier.com/locate/infoproman.
[10] SHEN Wei-ming, HAO Qi, LI Wei-dong. Computer supported collaborative design: Retrospective and perspective[J].Computers in Industry, 2008(59): 855?862.
[11] Ertl B, Fischer F, Mandl H. Conceptual and socio-cognitive support for collaborative learning in videoconferencing environments[J]. Computers & Education, 2006, 47(3):298?315.
[12] Jara C A, Candelas F A, Torres F, et al. Real-time collaboration of virtual laboratories through the Internet[J]. Computer &Education, 2009, 52(1): 126?140.
[13] Eckel B. Java編程思想[M]. 京京制作室, 譯. 北京: 機(jī)械工業(yè)出版社, 1999: 15?35.Eckel B. Thinking of java[M]. Jingjing Studio, trans. Beijing:Press of Mechanical Industry, 1999: 15?35.