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