(福建農(nóng)林大學(xué)機(jī)電工程學(xué)院,福建 福州350002)
嵌入式系統(tǒng)實(shí)驗(yàn)通常是一個(gè)軟硬件相結(jié)合的系統(tǒng)實(shí)驗(yàn),實(shí)驗(yàn)難度相對(duì)于純軟件實(shí)現(xiàn)要復(fù)雜得多,學(xué)生在實(shí)驗(yàn)過(guò)程中會(huì)出現(xiàn)各種各樣的問(wèn)題,很多問(wèn)題都沒(méi)有共性,不方便集中講解,教師往往要在學(xué)生中間巡回手把手的個(gè)別指導(dǎo),一堂課下來(lái),教師往往會(huì)疲憊不堪,同時(shí)由于學(xué)生問(wèn)題經(jīng)常不能得到及時(shí)解決,導(dǎo)致實(shí)驗(yàn)課效率很低。為此,筆者提出了一種可視交互式實(shí)驗(yàn)教學(xué)輔助系統(tǒng),使教師和學(xué)生都不必離開(kāi)自己座位,通過(guò)屏幕、語(yǔ)音、文件和文本進(jìn)行互動(dòng),不僅能及時(shí)解答個(gè)別學(xué)生問(wèn)題,而且還能組織部分或全體學(xué)生針對(duì)某一問(wèn)題進(jìn)行可視互動(dòng)討論,大大提高了實(shí)驗(yàn)教學(xué)的效率?福建農(nóng)林大學(xué)高等教育教學(xué)改革基金(01jg04079)。。
可視互動(dòng)實(shí)驗(yàn)教學(xué)輔助系統(tǒng)的核心功能是實(shí)現(xiàn)將教師PC屏幕實(shí)時(shí)圖像信息發(fā)送到每個(gè)學(xué)生PC顯示器上實(shí)時(shí)顯示,同時(shí)學(xué)生PC屏幕視頻不僅能在教師顯示器上回放,而且教師也能夠遠(yuǎn)程操作學(xué)生電腦,即 “遠(yuǎn)程桌面共享”功能。目前實(shí)現(xiàn)遠(yuǎn)程桌面共享功能的主流協(xié)議有3種[1],分別是 “X Window”、“RDP”和 “VNC”,X Window是實(shí)現(xiàn)Linux系統(tǒng)圖形界面的基石,因此主要運(yùn)用在Linux系統(tǒng)中;Windows操作下常用的遠(yuǎn)程桌面協(xié)議是RDP(Remote Desktop Protocol),該協(xié)議專門為遠(yuǎn)程管理和維護(hù)Windows系統(tǒng)設(shè)計(jì),適用于多個(gè)用戶同時(shí)互不影響的管理和使用同一電腦;VNC(Virtual Network Computing)協(xié)議核心原理是 “將一個(gè)矩形區(qū)域的象素點(diǎn)放置在一個(gè)特定的位置上”[2],因此該協(xié)議與操作系統(tǒng)本身無(wú)關(guān),即VNC是一種跨平臺(tái)的遠(yuǎn)程桌面協(xié)議,能在Windows、Mac和Linux等目前主流操作系統(tǒng)上運(yùn)行,同時(shí),由于VNC只傳輸屏幕變化的矩形區(qū)域部分,因此帶寬消耗低,系統(tǒng)資源開(kāi)銷小。
實(shí)驗(yàn)教學(xué)輔助系統(tǒng)的核心功能是 “雙向遠(yuǎn)程桌面共享”,能滿足需求的只有 “X Window”和 “VNC”,但由于嵌入式系統(tǒng)實(shí)驗(yàn)過(guò)程中學(xué)生要同時(shí)使用Windows和Linux操作系統(tǒng),所以最終只能選擇目前唯一可以跨平臺(tái)的VNC協(xié)議。
VNC是AT&T劍橋?qū)嶒?yàn)室研發(fā)的基于TCP/IP的瘦客戶平臺(tái),由 VNC Server和 VNC viewer組成[2],結(jié)構(gòu)如圖1所示。VNC Server產(chǎn)生本地顯示,VNC Viewer將這個(gè)顯示畫(huà)到自己的屏幕上,兩者之間使用的是VNC協(xié)議。
圖1 VNC結(jié)構(gòu)圖
系統(tǒng)采用的是C/S架構(gòu),由客戶端和服務(wù)器端組成,如圖2所示。
圖2 可視互動(dòng)實(shí)驗(yàn)教學(xué)輔助系統(tǒng)結(jié)構(gòu)圖
實(shí)驗(yàn)中教師集中講解時(shí),通過(guò)圖2中的屏幕視頻服務(wù),將教師屏幕圖像向所有學(xué)生廣播,學(xué)生通過(guò)自己的顯示器能同步觀看到教師的操作;學(xué)生實(shí)驗(yàn)時(shí),教師可隨時(shí)任意輪巡觀看學(xué)生屏幕,查看實(shí)驗(yàn)進(jìn)展情況,必要時(shí)教師可以遠(yuǎn)程操作學(xué)生PC,以指導(dǎo)學(xué)生完成實(shí)驗(yàn);實(shí)驗(yàn)過(guò)程中教師發(fā)現(xiàn)或?qū)W生反饋有共性的問(wèn)題時(shí),教師通過(guò)圖2中的文件服務(wù),主動(dòng)獲取學(xué)生電腦上的相關(guān)文件,作為典型錯(cuò)誤的資源,教師及時(shí)集中講解或組織學(xué)生集體討論以激發(fā)學(xué)生積極性;學(xué)生間以及師生間可隨時(shí)通過(guò)圖2中的文本服務(wù)和語(yǔ)音服務(wù)進(jìn)行簡(jiǎn)單交流,問(wèn)題較復(fù)雜時(shí),再啟用前面的雙向屏幕交流方式。
師生間通過(guò)以上系統(tǒng)提供的文本、語(yǔ)音、文件和屏幕4種互動(dòng)方式,能有效解決實(shí)驗(yàn)中的溝通和交流問(wèn)題,教師及時(shí)答疑解惑,增強(qiáng)了學(xué)生實(shí)驗(yàn)過(guò)程中的自信心,從而提高了教學(xué)效率。
圖2所示系統(tǒng)涉及音視頻實(shí)時(shí)采集、編碼、解碼和回放以及網(wǎng)絡(luò)即時(shí)通訊、網(wǎng)絡(luò)多播等技術(shù)難點(diǎn)[3],系統(tǒng)編程實(shí)現(xiàn)難度高工作量極大,系統(tǒng)部署和維護(hù)也需要專業(yè)人員管理,同時(shí)由于視頻數(shù)據(jù)處理和傳輸都要占用大量的CPU時(shí)間和帶寬,為了保證視頻的實(shí)時(shí)傳輸,必須專門配備至少一臺(tái)高性能服務(wù)器,因此系統(tǒng)硬件成本也很高。
為了不增加硬件成本,設(shè)計(jì)時(shí)將服務(wù)器端功能移植到客戶端中,充分利用實(shí)驗(yàn)室每臺(tái)PC的計(jì)算能力,不僅節(jié)省了購(gòu)買專門服務(wù)器的開(kāi)支,而且也不需要專業(yè)人員進(jìn)行集中管理維護(hù),系統(tǒng)部署和維護(hù)簡(jiǎn)單,使用也很方便;通過(guò)使用開(kāi)源和免費(fèi)軟件,只需進(jìn)行簡(jiǎn)單的源代碼修改和軟件配置,就能快速實(shí)現(xiàn)系統(tǒng)的所有功能,也節(jié)省了軟件和人力成本。
IP Messenger[4]是一款全球非常流行的開(kāi)源局域網(wǎng)即時(shí)通信軟件,能實(shí)現(xiàn)圖2中的 “文本交流”、“語(yǔ)音交流”和 “文件交流”功能,該軟件既是客戶端也是服務(wù)器端,能很好地滿足該系統(tǒng)需求,同時(shí)該軟件使用上與QQ類似,師生能很快學(xué)會(huì)使用,編譯生成該軟件的綠色版本,就能方便與該系統(tǒng)集成。
TightVNC[5]是一款全球流行的VNC開(kāi)源軟件,能很好地實(shí)現(xiàn)圖2中的 “屏幕交流”功能,最新版本為V2.0.4,可編譯成為綠色版本:客戶端功能由 “vncviewer.exe”可執(zhí)行文件提供,服務(wù)器由可執(zhí)行文件 “tvnserver.exe”和動(dòng)態(tài)庫(kù)文件 “screenhooks.dll”提供。
如何部署TightVNC是實(shí)現(xiàn)該系統(tǒng)核心功能和減輕系統(tǒng)維護(hù)工作量的關(guān)鍵,現(xiàn)重點(diǎn)說(shuō)明如下:
1)教師機(jī)上只安裝TightVNC客戶端,學(xué)生機(jī)上只安裝TightVNC服務(wù)器端,這樣,教師通過(guò)客戶端可隨時(shí)查看和控制學(xué)生遠(yuǎn)程桌面,默認(rèn)情況下,服務(wù)端第一次運(yùn)行前要求輸入密碼,運(yùn)行時(shí)其圖標(biāo)會(huì)顯示在學(xué)生系統(tǒng)托盤(pán)中,學(xué)生通過(guò)該圖標(biāo)的右鍵菜單可以關(guān)閉服務(wù)器端,這樣教師就無(wú)法遠(yuǎn)程查看學(xué)生桌面了,學(xué)生也可修改服務(wù)器端密碼,教師因輸入密碼錯(cuò)誤而同樣無(wú)法訪問(wèn)學(xué)生遠(yuǎn)程桌面。解決問(wèn)題的方法是讓服務(wù)器端運(yùn)行時(shí)不提示輸入密碼,也不顯示系統(tǒng)托盤(pán)圖標(biāo),因?yàn)檫@些信息都是記錄在注冊(cè)表中的,因此實(shí)現(xiàn)方法是預(yù)置所有相關(guān)注冊(cè)表項(xiàng),對(duì)應(yīng)表項(xiàng)為 “HKEY_LOCAL_M(jìn)ACHINE\SOFTWARE\TightVNC\Server”主鍵下的 “RunControlInterface”和 “ControlPassword”值項(xiàng),其中密碼是通過(guò)DES加密后的密文,通過(guò)查看源代碼[5],默認(rèn)64位加密密鑰為 “{23,82,107,6,35,78,88,7}”,如果修改該密鑰,既使學(xué)生知道注冊(cè)表項(xiàng)中的密文,也無(wú)法破解對(duì)應(yīng)的密碼,系統(tǒng)安全性會(huì)更高。
2)教師集中講解時(shí),為了實(shí)現(xiàn)學(xué)生屏幕與教師屏幕同步顯示,可以通過(guò)在教師機(jī)上運(yùn)行服務(wù)器端,而學(xué)生機(jī)上運(yùn)行客戶端來(lái)實(shí)現(xiàn),實(shí)踐表明當(dāng)課堂規(guī)模在15人左右時(shí),教師機(jī)使用3.0GHz主頻的雙核CPU,系統(tǒng)運(yùn)行比較流暢,但當(dāng)學(xué)生人數(shù)增加時(shí),教師機(jī)性能急劇下降,甚至出現(xiàn)長(zhǎng)時(shí)間無(wú)法響應(yīng)教師操作現(xiàn)象。原因是VNC采用的是點(diǎn)對(duì)點(diǎn)有連接TCP方式,每新增一個(gè)客戶端,連接數(shù)就會(huì)增加一個(gè),同時(shí)實(shí)時(shí)屏幕視頻數(shù)據(jù)就要多傳輸一份,因此系統(tǒng)開(kāi)銷會(huì)增長(zhǎng)很快。解決的方法是使用無(wú)連接UDP的組播方式,使用該網(wǎng)絡(luò)通信方式優(yōu)點(diǎn)是隨著客戶端數(shù)量增加,服務(wù)器始終只需傳輸一份視頻數(shù)據(jù),即客戶端數(shù)量不會(huì)影響到服務(wù)器性能,不僅減輕了服務(wù)器壓力,同時(shí)也節(jié)省了網(wǎng)絡(luò)帶寬。TightProjector軟件[5]就是采用這一機(jī)制的高效屏幕廣播軟件,其服務(wù)器端由 “tightprj.exe”實(shí)現(xiàn),而客戶端由“tightrcv.exe”實(shí)現(xiàn),通過(guò)在教師機(jī)上安裝服務(wù)器端,學(xué)生機(jī)上安裝客戶端,實(shí)現(xiàn)了教師屏幕向所有學(xué)生廣播功能。
筆者提出的設(shè)計(jì)方法,整合了各種開(kāi)源和免費(fèi)軟件資源,不需要增加任何硬件配置,就能快速搭建一套可視互動(dòng)實(shí)驗(yàn)教學(xué)輔助系統(tǒng),不僅可以解決嵌入式實(shí)驗(yàn)教學(xué)中的實(shí)際問(wèn)題,而且所有基于PC的教學(xué)和實(shí)驗(yàn)課都可能采用,整個(gè)系統(tǒng)運(yùn)行隱定、實(shí)時(shí)性好、支持大規(guī)模多用戶并發(fā)使用,維護(hù)和管理極其簡(jiǎn)單。由于3大組成部分自成體系,系統(tǒng)與部分是松耦合的,下一階段的工作主要是加強(qiáng)各個(gè)部分之間的聯(lián)系。
[1]梁飛蝶,李錦濤.瘦客戶計(jì)算應(yīng)用協(xié)議中遠(yuǎn)程顯示機(jī)制的比較 [J].計(jì)算機(jī)工程與應(yīng)用,2004(21):135-137.
[2]Richardson T,Stafford2Fraser Q,Wood KR,et al.Virtual Network Computing [J].IEEE Internet Computing,1998,2(1):33-38.
[3]楊勇,陳新.高性能實(shí)時(shí)交互式遠(yuǎn)程教育環(huán)境服務(wù)器的設(shè)計(jì)與實(shí)現(xiàn) [J].福州大學(xué)學(xué)報(bào),2009,37(3):357-361.
[4]IP Message官網(wǎng) [DB/OL].http://ipmsg.org/index.html.en,2011-03-09.
[5]TightVNC官網(wǎng) [DB/OL].http://www.tightvnc.com,2011-03-09.