當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]虛擬網(wǎng)絡(luò)計(jì)算在應(yīng)用程序共享中的應(yīng)用研究

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

    VNC機(jī)制默認(rèn)采用直連的方式同VNC Client通信,本文將提出一種新的實(shí)現(xiàn)方案,通過在遠(yuǎn)程視頻會(huì)議系統(tǒng)[4]中采用中轉(zhuǎn)服務(wù)器轉(zhuǎn)發(fā)模式實(shí)現(xiàn)共享,具體結(jié)構(gòu)如圖1所示。此時(shí)VNC Server端只需上傳數(shù)據(jù)給中轉(zhuǎn)服務(wù)器,VNC Client只與中轉(zhuǎn)服務(wù)器建立連接,由中轉(zhuǎn)服務(wù)器向每個(gè)客戶端發(fā)送數(shù)據(jù),通常中轉(zhuǎn)服務(wù)器的網(wǎng)絡(luò)出口帶寬都比較大,因此網(wǎng)絡(luò)帶寬不會(huì)成為性能瓶頸。這樣就大大減輕了VNC Server端的網(wǎng)絡(luò)傳輸壓力,在應(yīng)用程序共享時(shí)系統(tǒng)的反應(yīng)速度也將得到提升。[!--empirenews.page--]

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

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

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

    測(cè)試結(jié)果表時(shí),當(dāng)VNC系統(tǒng)調(diào)用屏幕區(qū)域變化檢測(cè)算法后,VNC Server端的發(fā)送數(shù)據(jù)量平均會(huì)有10%左右的下降。這在遠(yuǎn)程多點(diǎn)應(yīng)用程序共享中,會(huì)大大減輕VNC Server端的發(fā)送壓力,減少網(wǎng)絡(luò)擁塞現(xiàn)象出現(xiàn)的概率,從而提高了應(yīng)用程序共享時(shí)遠(yuǎn)程客戶端響應(yīng)速度。
    本文介紹了在低速網(wǎng)絡(luò)環(huán)境下遠(yuǎn)程視頻會(huì)議系統(tǒng)中通過VNC協(xié)議進(jìn)行應(yīng)用程序共享時(shí)存在的問題,提出了一種新的改進(jìn)方案,并結(jié)合新方案提出了一種新的屏幕區(qū)域變化檢測(cè)算法。此外,對(duì)系統(tǒng)在調(diào)用新的屏幕區(qū)域變化檢測(cè)算法前后進(jìn)行了測(cè)試比較。該方案已經(jīng)應(yīng)用于大連浩視數(shù)字技術(shù)有限公司的VcomOffice遠(yuǎn)程視頻會(huì)議系統(tǒng)。通過多個(gè)實(shí)驗(yàn)場(chǎng)景的測(cè)試,實(shí)驗(yàn)結(jié)果表明,采用新的屏幕變化區(qū)域檢測(cè)算法后,VNC Server端的發(fā)送數(shù)據(jù)量出現(xiàn)了較大程度的下降,為低速網(wǎng)絡(luò)環(huán)境下遠(yuǎn)程視頻會(huì)議系統(tǒng)節(jié)省了網(wǎng)絡(luò)帶寬,提高了應(yīng)用程序共享系統(tǒng)的實(shí)時(shí)性,從而實(shí)現(xiàn)了VNC在低速網(wǎng)絡(luò)環(huán)境下的應(yīng)用。
參考文獻(xiàn)
[1] 梁飛碟,李錦濤,史紅周.虛擬網(wǎng)絡(luò)計(jì)算(VNC)協(xié)議中的編碼方法[J].計(jì)算機(jī)應(yīng)用,2004,24(6).
[2] 張躍冬,朱定局,宋振華,等.一個(gè)面向分布式桌面計(jì)算環(huán)境的超瘦客戶端[J].計(jì)算機(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.

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉