《電子技術應用》
您所在的位置:首頁 > 其他 > 设计应用 > 虚拟网络计算在应用程序共享中的应用研究
虚拟网络计算在应用程序共享中的应用研究
来源:微型机与应用2010年第9期
刘胜辉1,舒友村2
(1.哈尔滨理工大学 软件学院,黑龙江 哈尔滨 150080;2.哈尔滨理工大学 计算机学院,黑龙江
摘要: 在远程视频会议系统中,应用程序共享有着非常重要的作用。VNC协议由于其平台的独立性,使其在应用程序共享中有着广泛的应用。但由于VNC默认的星型发送机制在低速网络环境中很容易造成网络拥塞,使其不具备可用性。因此,提出了一种新的在低速网络环境下利用VNC协议进行应用程序共享的方案。
Abstract:
Key words :

摘  要: 在遠程視頻會議系統中,應用程序共享有著非常重要的作用。VNC協議由于其平臺的獨立性,使其在應用程序共享中有著廣泛的應用。但由于VNC默認的星型發送機制在低速網絡環境中很容易造成網絡擁塞,使其不具備可用性。因此,提出了一種新的在低速網絡環境下利用VNC協議進行應用程序共享的方案。
關鍵詞: VNC協議;應用程序共享;瘦客戶計算

    隨著網絡計算技術的發展,瘦客戶計算技術在遠程共享等網絡應用中的地位變得越來越重要。這種瘦客戶計算體系架構將大量復雜的計算任務保留在服務器端,客戶端則不進行復雜計算,只是簡單維護客戶端和服務器端的狀態交互,例如鍵盤輸入、鼠標點擊等,同時負責將服務器端的桌面數據實時顯示出來。應用程序共享使地理位置分散的用戶通過計算機網絡的連接共享某一應用程序,在互聯網辦公、遠程視頻會議系統、遠程協助等方面有著不可替代的作用,具有相當廣闊的發展前景。
    虛擬網絡計算VNC[1](Virtual Network Computing)是由AT&T劍橋研發中心研發的一種瘦客戶計算[2]體系,是一個強大的遠程桌面共享工具,能夠讓多個客戶端通過互聯網查看服務器端實時桌面狀況并可以進行遠程操作。本文首先分析了低速網絡環境下VNC在遠程視頻會議系統中應用的技術難點,并提出了一種在低速網絡下利用VNC實現應用程序共享的解決方案。
1 VNC協議特點
    VNC由VNC Server和VNC Client兩部分組成。VNC Server產生本地顯示,通過VNC協議實現VNC Server和VNC Client之間的通信。VNC協議中實現了一種遠程圖形用戶界面訪問協議RFB[2](Remote Frame Buffer)協議,RFB協議是基于幀緩存(Frame Buffer)層級,因此適用于所有操作系統平臺及應用,例如X Windows、MS Windows和Macintosh等。VNC在TCP/IP協議基礎上通過一個簡單的圖形界面傳輸協議實現在遠程客戶端上顯示服務器端的桌面實時數據。
    協議的顯示方面是基于一個很簡單的原理,即將一個矩形區域的像素點放置在一個特定的位置上。通過采用不同的圖像編碼方法,可以在傳輸速度、圖像質量、服務器處理速度、終端顯示速度和網絡帶寬之間達到平衡。通過每次的窗口更新,可以得到最新的窗口內容。在某些方面,這看上去更像是一種視頻圖像流。每次窗口更新的消息是通過客戶端發送給服務器端的,每接收到一個消息,服務器端對其發生響應,這樣就使得協議本身可以控制自己的刷新速度。如果客戶端或者由于網絡的原因比較慢,同樣地刷新率也會比較低,這樣可以完成速度的自適應。
    輸入協議是基于標準工作站的鍵盤響應消息和鼠標設備的。當客戶端接收到這些輸入消息后,被簡單地以事件形式傳送給服務器端,并產生對應的動作。
2 VNC在低帶寬網絡環境中應用存在的問題
    在大規模視頻會議中,當需要對其中一個會議成員的桌面或者某個應用程序進行共享時,此時VNC服務器的計算性能和網絡接入的條件都比較差,這樣就對共享機制提出了很高的要求,其必須具備高效、延時小,又要求架構輕盈、占系統資源少、節省帶寬等性能。由于在國外網絡帶寬足夠,采用VNC機制的多點應用程序共享能夠流暢地運行,但在國內目前低帶寬的網絡條件下,VNC機制采用的是星型直連結構,如果直接采用VNC默認的星型直連機制,在多點遠程視頻會議中實現應用程序共享會很困難,VNC Server與各VNC Client以直連方式進行通信,此種情況下由于VNC Server端的出口帶寬受到限制,VNC Server端的數據發送壓力會呈線性增長,在2 MHz的ADSL出口帶寬條件下,當會議成員達到10個后,將導致嚴重的網絡擁塞,致使應用程序共享實時性大大降低,因而其不具備在遠程視頻會議系統中的實際可用性。
3 VNC共享機制改進方案
3.1 VNC共享通信機制

    VNC機制默認采用直連的方式同VNC Client通信,本文將提出一種新的實現方案,通過在遠程視頻會議系統[4]中采用中轉服務器轉發模式實現共享,具體結構如圖1所示。此時VNC Server端只需上傳數據給中轉服務器,VNC Client只與中轉服務器建立連接,由中轉服務器向每個客戶端發送數據,通常中轉服務器的網絡出口帶寬都比較大,因此網絡帶寬不會成為性能瓶頸。這樣就大大減輕了VNC Server端的網絡傳輸壓力,在應用程序共享時系統的反應速度也將得到提升。

3.2 屏幕變化檢測算法
    屏幕變化檢測算法性能的好壞將直接影響到VNC Server端發送的數據量,一種高效的屏幕檢測算法將大大降低傳輸的數據量,節省網絡帶寬,從而提高系統的實時效果。VNC默認的屏幕變化檢測機制是通過消息鉤子機制獲取區域的坐標信息后,再將坐標區域的屏幕像素數據發送給各VNC Client。此檢測方法使得大量沒有發生改變的屏幕數據也被發送,增加了網絡發送的數據量,在低速網絡環境中容易造成網絡擁塞,影響系統的性能。因此,本文在此基礎上提出了一種新的屏幕變化區域檢測算法。
    VNC機制通過采用消息鉤子機制截獲系統屏幕重繪區域信息,將得到的區域拆分成一個矩形鏈表(遍歷鏈表)來存儲區域坐標信息,記為array_list,定義一個變化區域記為vnc_rgn,專門保存需要重新發送的區域位置信息,對array_list每個成員矩形調用此檢測算法進行變化區域檢測。具體的算法流程圖如圖2所示。

    (1)假設其中一個成員矩形為arri,如果arri的長寬都小于32×32,則直接作為需重新發送的變化區域,保存到vnc_rgn中,否則對arri進行分析檢測。
    (2)首先定義一個新的矩形arrj(arri.left,0,arri.right,0),在arri中找到發生變化的行,記錄該行的y坐標,記arrj.top=y,同時y+=16遞增找到未發生變化行,暫時記arrj.bottom=y;然后從arrj底部y-=1進行比較,尋找內容發生變化的行,找到后將此行的y坐標設置成arrj.bottom=y。至此確定了變化矩形arrj的最終的top、bottom坐標。同時將arri的值設為arri(arri.left,arrj.bottom,arri.right,arri.bottom)。在對arrj分析完畢后接著對arri遍歷分析直至結束。
    (3)確定矩形arrj后,對矩形arrj進行分析。首先定義一個矩形arrn(0,0,0,0),在arrj中尋找最先發生改變的列,找到后記錄發生變化的區域的left、top坐標,arrn.left=x,arrn.top=y,分別對x、y軸方向循環遍歷進行分析(記為x+=32,y+=32),如果此列屏幕像素數據改變,則x+=32繼續比較;否則將記錄arrn.right=x,對y軸方向進行同樣的比較,y+=32,并記錄arrn.bottom=y,最終得到需要發送的變化區域矩形坐標,并將此矩形保存到最終發送的矩形鏈表中,同時記錄下arrk(arrn.right,arrn.top,arrj.right,arrn.bottom)、arrm(arrn.left,arrn.bottom,arrj.right,arrj.bottom),分別將arrk、arrm賦值給arrj進行類似分析檢測,依次循環遍歷整個arrj,直到結束。
    通過此屏幕變化區域檢測算法,對整個array_list鏈表的成員矩形進行遍歷后得到需要重新發送的變化區域坐標信息。
4 實驗結果
    此改進方案已經應用于VcomOffice遠程視頻會議系統中。實驗環境為:局域網內,中轉服務器采用Linux操作系統,VNC Server和VNC Client端均采用Windows XP操作系統,具體的軟硬件配置如表1所示。

    為了驗證調用屏幕變化區域檢測算法前后,VNCServer端對同一操作生成的數據量的變化,實驗在100 M的局域網內進行,VNC Server采用的是VNC默認的tight編碼[5],編碼后經過zlib壓縮[5]后發送給中轉服務器,主要進行以下場景的測試:
    (1)打開一個Word文檔,剪切、復制、粘貼一段文字,圖片保存到Word,在Word中輸入一些內容;
    (2)打開IE瀏覽器登錄www.sina.com.cn主頁;
    (3)打開一個PDF文檔后,拖動滾動條至底部;
    (4)打開資源管理器,在屏幕上做拖動操作,之后將其最大化。
    調用檢測算法前后VNC Server發送數據量如圖3所示。通過對比可以看到,在調用屏幕區域變化檢測算法前后,VNC Server端發送的數據量都會有一定程度的下降。當執行相同的Word操作時,VNC Server端發送的數據量降低了12.21%,登錄新浪網主頁的過程中數據發送量只降低了4.82%,打開PDF文檔并拖動滾動條至最底端的過程中,發送的數據總量降低了14.63%,在資源管理器的縮放過程中,數據發送量下降了22.19%。

    測試結果表時,當VNC系統調用屏幕區域變化檢測算法后,VNC Server端的發送數據量平均會有10%左右的下降。這在遠程多點應用程序共享中,會大大減輕VNC Server端的發送壓力,減少網絡擁塞現象出現的概率,從而提高了應用程序共享時遠程客戶端響應速度。
    本文介紹了在低速網絡環境下遠程視頻會議系統中通過VNC協議進行應用程序共享時存在的問題,提出了一種新的改進方案,并結合新方案提出了一種新的屏幕區域變化檢測算法。此外,對系統在調用新的屏幕區域變化檢測算法前后進行了測試比較。該方案已經應用于大連浩視數字技術有限公司的VcomOffice遠程視頻會議系統。通過多個實驗場景的測試,實驗結果表明,采用新的屏幕變化區域檢測算法后,VNC Server端的發送數據量出現了較大程度的下降,為低速網絡環境下遠程視頻會議系統節省了網絡帶寬,提高了應用程序共享系統的實時性,從而實現了VNC在低速網絡環境下的應用。
參考文獻
[1] 梁飛碟,李錦濤,史紅周.虛擬網絡計算(VNC)協議中的編碼方法[J].計算機應用,2004,24(6).
[2] 張躍冬,朱定局,宋振華,等.一個面向分布式桌面計算環境的超瘦客戶端[J].計算機工程,2007,33(7).
[3] Tae-Ho Lee, Hong-Chang Lee. Extending VNC for effective collaboration[A]. 3rd International Forum on Strategic Technology (IFOST 2008)[C]. 2008.
[4] SIMOENS P, Praet P,VANKEIRSBILCK B, et al.Design and implementation of a hybrid remote display protocol to optimize multimedia experience on thin client devices[A]. Telecommunication Networks and Applications Conference (ATNAC), 2008 Australasian; Adelaide, Australia[C]. 2008.
[5] ZHANG Xiao Zheng. Screen data compression for improved VNC[A]. 10th World Multi-Conference on Systems, Cybernetics and Informatics (WMSCI 2006), jointly with the 12th International Conference on Information Systems Analysis and Synthesis (ISAS 2006), vol.III[C].2006.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 欧美在线视频二区| 99久久自偷自偷国产精品不卡| 国产伦精品一区二区三区视频免费| 国产精品美女久久久久av超清| 国产一区高清视频| 久久国产精品久久久久V| 国产精品成久久久久三级| 日韩视频精品在线| 久热国产精品视频| 一区二区三区在线视频看| 亚洲欧美在线网| 精品人妻一区二区三区四区在线 | 亚洲综合视频一区| 日本成人在线不卡| 在线天堂一区av电影| 久久久久国产精品免费| 热草久综合在线| 国产精品一区电影| 国产精品免费视频xxxx| 韩国日本不卡在线| 精品国产一区av| 国产视频99| 日本一区二区三区视频免费看| 在线国产99| 91免费看国产| 欧美日韩一区二区视频在线| 久久国产视频网站| 久久亚洲午夜电影| 久久久久久久久久福利| 久久久国产影院| 国产精品视频在线播放| 91精品在线国产| 国产亚洲精品久久久久久久| 狠狠精品干练久久久无码中文字幕| 国产日产欧美视频| 激情视频综合网| 久久久一本二本三本| 国产精品高潮呻吟久久av野狼| 欧美精品一区二区三区免费播放| 免费国产成人看片在线| 欧美激情一级精品国产|