(福建農林大學機電工程學院,福建 福州350002)
嵌入式系統實驗通常是一個軟硬件相結合的系統實驗,實驗難度相對于純軟件實現要復雜得多,學生在實驗過程中會出現各種各樣的問題,很多問題都沒有共性,不方便集中講解,教師往往要在學生中間巡回手把手的個別指導,一堂課下來,教師往往會疲憊不堪,同時由于學生問題經常不能得到及時解決,導致實驗課效率很低。為此,筆者提出了一種可視交互式實驗教學輔助系統,使教師和學生都不必離開自己座位,通過屏幕、語音、文件和文本進行互動,不僅能及時解答個別學生問題,而且還能組織部分或全體學生針對某一問題進行可視互動討論,大大提高了實驗教學的效率?福建農林大學高等教育教學改革基金(01jg04079)。。
可視互動實驗教學輔助系統的核心功能是實現將教師PC屏幕實時圖像信息發送到每個學生PC顯示器上實時顯示,同時學生PC屏幕視頻不僅能在教師顯示器上回放,而且教師也能夠遠程操作學生電腦,即 “遠程桌面共享”功能。目前實現遠程桌面共享功能的主流協議有3種[1],分別是 “X Window”、“RDP”和 “VNC”,X Window是實現Linux系統圖形界面的基石,因此主要運用在Linux系統中;Windows操作下常用的遠程桌面協議是RDP(Remote Desktop Protocol),該協議專門為遠程管理和維護Windows系統設計,適用于多個用戶同時互不影響的管理和使用同一電腦;VNC(Virtual Network Computing)協議核心原理是 “將一個矩形區域的象素點放置在一個特定的位置上”[2],因此該協議與操作系統本身無關,即VNC是一種跨平臺的遠程桌面協議,能在Windows、Mac和Linux等目前主流操作系統上運行,同時,由于VNC只傳輸屏幕變化的矩形區域部分,因此帶寬消耗低,系統資源開銷小。
實驗教學輔助系統的核心功能是 “雙向遠程桌面共享”,能滿足需求的只有 “X Window”和 “VNC”,但由于嵌入式系統實驗過程中學生要同時使用Windows和Linux操作系統,所以最終只能選擇目前唯一可以跨平臺的VNC協議。
VNC是AT&T劍橋實驗室研發的基于TCP/IP的瘦客戶平臺,由 VNC Server和 VNC viewer組成[2],結構如圖1所示。VNC Server產生本地顯示,VNC Viewer將這個顯示畫到自己的屏幕上,兩者之間使用的是VNC協議。

圖1 VNC結構圖
系統采用的是C/S架構,由客戶端和服務器端組成,如圖2所示。

圖2 可視互動實驗教學輔助系統結構圖
實驗中教師集中講解時,通過圖2中的屏幕視頻服務,將教師屏幕圖像向所有學生廣播,學生通過自己的顯示器能同步觀看到教師的操作;學生實驗時,教師可隨時任意輪巡觀看學生屏幕,查看實驗進展情況,必要時教師可以遠程操作學生PC,以指導學生完成實驗;實驗過程中教師發現或學生反饋有共性的問題時,教師通過圖2中的文件服務,主動獲取學生電腦上的相關文件,作為典型錯誤的資源,教師及時集中講解或組織學生集體討論以激發學生積極性;學生間以及師生間可隨時通過圖2中的文本服務和語音服務進行簡單交流,問題較復雜時,再啟用前面的雙向屏幕交流方式。
師生間通過以上系統提供的文本、語音、文件和屏幕4種互動方式,能有效解決實驗中的溝通和交流問題,教師及時答疑解惑,增強了學生實驗過程中的自信心,從而提高了教學效率。
圖2所示系統涉及音視頻實時采集、編碼、解碼和回放以及網絡即時通訊、網絡多播等技術難點[3],系統編程實現難度高工作量極大,系統部署和維護也需要專業人員管理,同時由于視頻數據處理和傳輸都要占用大量的CPU時間和帶寬,為了保證視頻的實時傳輸,必須專門配備至少一臺高性能服務器,因此系統硬件成本也很高。
為了不增加硬件成本,設計時將服務器端功能移植到客戶端中,充分利用實驗室每臺PC的計算能力,不僅節省了購買專門服務器的開支,而且也不需要專業人員進行集中管理維護,系統部署和維護簡單,使用也很方便;通過使用開源和免費軟件,只需進行簡單的源代碼修改和軟件配置,就能快速實現系統的所有功能,也節省了軟件和人力成本。
IP Messenger[4]是一款全球非常流行的開源局域網即時通信軟件,能實現圖2中的 “文本交流”、“語音交流”和 “文件交流”功能,該軟件既是客戶端也是服務器端,能很好地滿足該系統需求,同時該軟件使用上與QQ類似,師生能很快學會使用,編譯生成該軟件的綠色版本,就能方便與該系統集成。
TightVNC[5]是一款全球流行的VNC開源軟件,能很好地實現圖2中的 “屏幕交流”功能,最新版本為V2.0.4,可編譯成為綠色版本:客戶端功能由 “vncviewer.exe”可執行文件提供,服務器由可執行文件 “tvnserver.exe”和動態庫文件 “screenhooks.dll”提供。
如何部署TightVNC是實現該系統核心功能和減輕系統維護工作量的關鍵,現重點說明如下:
1)教師機上只安裝TightVNC客戶端,學生機上只安裝TightVNC服務器端,這樣,教師通過客戶端可隨時查看和控制學生遠程桌面,默認情況下,服務端第一次運行前要求輸入密碼,運行時其圖標會顯示在學生系統托盤中,學生通過該圖標的右鍵菜單可以關閉服務器端,這樣教師就無法遠程查看學生桌面了,學生也可修改服務器端密碼,教師因輸入密碼錯誤而同樣無法訪問學生遠程桌面。解決問題的方法是讓服務器端運行時不提示輸入密碼,也不顯示系統托盤圖標,因為這些信息都是記錄在注冊表中的,因此實現方法是預置所有相關注冊表項,對應表項為 “HKEY_LOCAL_MACHINE\SOFTWARE\TightVNC\Server”主鍵下的 “RunControlInterface”和 “ControlPassword”值項,其中密碼是通過DES加密后的密文,通過查看源代碼[5],默認64位加密密鑰為 “{23,82,107,6,35,78,88,7}”,如果修改該密鑰,既使學生知道注冊表項中的密文,也無法破解對應的密碼,系統安全性會更高。
2)教師集中講解時,為了實現學生屏幕與教師屏幕同步顯示,可以通過在教師機上運行服務器端,而學生機上運行客戶端來實現,實踐表明當課堂規模在15人左右時,教師機使用3.0GHz主頻的雙核CPU,系統運行比較流暢,但當學生人數增加時,教師機性能急劇下降,甚至出現長時間無法響應教師操作現象。原因是VNC采用的是點對點有連接TCP方式,每新增一個客戶端,連接數就會增加一個,同時實時屏幕視頻數據就要多傳輸一份,因此系統開銷會增長很快。解決的方法是使用無連接UDP的組播方式,使用該網絡通信方式優點是隨著客戶端數量增加,服務器始終只需傳輸一份視頻數據,即客戶端數量不會影響到服務器性能,不僅減輕了服務器壓力,同時也節省了網絡帶寬。TightProjector軟件[5]就是采用這一機制的高效屏幕廣播軟件,其服務器端由 “tightprj.exe”實現,而客戶端由“tightrcv.exe”實現,通過在教師機上安裝服務器端,學生機上安裝客戶端,實現了教師屏幕向所有學生廣播功能。
筆者提出的設計方法,整合了各種開源和免費軟件資源,不需要增加任何硬件配置,就能快速搭建一套可視互動實驗教學輔助系統,不僅可以解決嵌入式實驗教學中的實際問題,而且所有基于PC的教學和實驗課都可能采用,整個系統運行隱定、實時性好、支持大規模多用戶并發使用,維護和管理極其簡單。由于3大組成部分自成體系,系統與部分是松耦合的,下一階段的工作主要是加強各個部分之間的聯系。
[1]梁飛蝶,李錦濤.瘦客戶計算應用協議中遠程顯示機制的比較 [J].計算機工程與應用,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]楊勇,陳新.高性能實時交互式遠程教育環境服務器的設計與實現 [J].福州大學學報,2009,37(3):357-361.
[4]IP Message官網 [DB/OL].http://ipmsg.org/index.html.en,2011-03-09.
[5]TightVNC官網 [DB/OL].http://www.tightvnc.com,2011-03-09.