專利名稱:基于能力集的遠端桌面通信方法
技術領域:
本發明為計算機通信技術領域,涉及一種可用于云主機/傳統主機與云終端/傳統終端之間的遠端桌面通信方法。
背景技術:
為了遠程訪問計算機,可以通過遠程桌面協議(RDP/RFB,兩協議基于ITU-T T. 128規范)來實現。實現遠程系統管理操作以及遠程使用各種應用程序。這無疑是一項非常有用的技術。RDP協議于1998年在Windows NT 4.0 TSE版本中引入RDP4. 0,自此以后,幾乎在Windows的每個發行版本中都有所改進。Windows 2008 server已經實現了 RDP6. 0。直至目前最新的RDP7. 1,對音視頻有了一定的支持,同時采用了 Remoteh,對3D OPENGL有了部分的支持。Linux下一般用基于RFB的VNC較多,同樣存在著不少缺陷
有的應用占用較多的網絡帶寬; 不支持音視頻流暢播放; 有時可以看到鼠標拖影,運動不流暢; 無法很流暢支持3D、CAD等需要大量圖形運算的遠端應用。中國專利公告號CN101420610 A,公告日2007年10月沈日,公開了一種顯示遠程桌面內容的方法及其裝置,其背景技術描述有現有遠程桌面通訊的方法為了觀看/監控到遠程桌面上的內容,通常采用的技術方案為利用圖形驅動接口( Graphics Device Interface,⑶I)技術、DirectX技術等抓屏處理技術定時截取當前服務器端桌面上整個屏幕的圖像數據,并將本次截取到的圖像數據與前次截取到的圖像數據進行比較,比較屏幕圖像數據發生的差異,然后對發生變化的屏幕數據進行壓縮后發送到客戶端,以使客戶端觀看到遠程桌面(即服務器桌面)上的內容。在這里,服務器端是提供遠程桌面或遠程訪問服務的設備,也就是用戶看到的遠程桌面所在的設備。客戶端是使用遠程桌面或進行遠程訪問服務的設備,即為本地的設備。服務器端和客戶端可以是臺式計算機、筆記本電腦,嵌入式設備,智能電視等設備。但是,如果在遠程桌面(即服務器桌面)上進行視頻文件的播放,那么屏幕變化區域大(全屏或者是窗口),并且桌而屏幕圖像的變化速度快(每秒M幀以上),現有的抓屏和壓縮技術達不到影片流暢播放的程度, 假設播放器顯示大小為10MX768,顏色深度為32位色,這樣每秒視頻播放數據大小是 1024X 768 X 4X 4X 24=72Mbytes,而現有的不同的壓縮算法通常壓縮效率是50%,所以每秒最少有36Mbytes的數據需要處理。這對于現有的CPU和網卡來說都是處理不過來的,所以在客戶端使用播放器不能流暢進行視頻文件的播放,會導致花屏等不良效果。
發明內容
本發明的目的在于解決上述現有技術中存在著應用占用較多的網絡帶寬,畫面顯示不流暢的問題,提供了一種可視化效果得到一定的提升并且減少了服務器及網絡壓力的遠端桌面通信方法。
本發明解決其技術問題所采用的技術方案是一種基于能力集的遠端桌面通信方法,在主機上建立服務端,在終端機上建立客戶端,其特征在于
步驟一所述的服務端與所述的客戶端建立連接關系,所述的客戶端安全登入; 步驟二 所述的服務端和所述的客戶端根據主機和終端機進行能力協商,形成能力
集;
步驟三服務端根據能力集結合應用屬性,確定通信方式,所述的服務端與所述的客戶端進行遠程應用;
步驟四所述的客戶端安全登出。這樣設置,與一般的遠程桌面通信技術相比增加了步驟二,S卩服務端和客戶端根據主機和終端機進行能力協商;除了定義了安全與圖形編碼格式方面的能力外,擴展定義了網絡能力與音視頻能力,視窗能力,并可擴展定義3D處理等其他能力,服務端和客戶端進行協商的結果,形成能力集,服務端根據能力集結合應用屬性,確定通信方式,保證了通信過程能符合主機和終端機的操作顯示條件,減少寬帶占用,降低延時和殘影。作為優選,所述的服務端和所述的客戶端調用的功能性模塊插件均包括有客戶管理模塊、安全認證模塊、網絡連接模塊、能力協商模塊、網絡測試插件、對應操作系統2D/3D 圖形引擎的2D/3D插件和對應操作系統音視頻引擎的音視頻插件。這樣設置,采取了插件技術,使得應用可擴展性更強。作為優選,所述的步驟二中,服務端發起能力協商,以探知網絡帶寬時延抖動、客戶端圖形能力、客戶端音視頻解碼能力,服務端選擇合適的圖形壓縮格式以及決定傳送原始的音視頻格式或解碼后再傳送,同時根據網絡情況,做到碼率及緩存動態調整,對符合 FAST CACHE/STREAMING技術條件的應用采取FAST CACHE/STREAMING技術。這樣設置,從而使得服務端可以選擇合適的圖形壓縮格式以及決定是否傳送原始的音視頻格式或解碼后再傳送,同時根據網絡情況,做到碼率及緩存動態調整,以及部分應用可采取FAST CACHE/ STREAMING等技術,為了加速啟動過程,可以將能力集第一次協商之后,緩存于客戶端或服務端。也可以按照更新策略在空閑時或定時進行能力集的更新。作為優選,所述的步驟三中,服務端將顯示圖形進行分層,分為鼠標層、前層和后層,然后將要傳送的數據分類成元數據與元信息,服務端從操作系統層探知鼠標的圖形、狀態及位置并打包進行傳送,客戶端初始化每種狀態對應的圖形。這樣層次分明,格式統一, 便于擴展與處理,節省了每次傳送鼠標圖形的開銷,從客戶端來看,不會出現鼠標拖影等現象,運動更為流暢解決了在客戶端有時可以看到鼠標拖影的問題。作為優選,所述的步驟三中,服務端從操作系統自動判斷需要更新前層還是后層。 許多應用程序只需要前層顯示即可,此時只需要更新前層顯示改動的圖塊,如word等應用;有的需要更新后層顯示圖塊,如3D\CAD等應用,服務端從操作系統可自動判斷需要更新前層還是后層大大節省了網絡帶寬的占用。 作為優選,服務端通過利用服務端音視頻插件,自動判斷目前系統所使用的音視頻引擎,并探知媒體播放參數,從而將媒體流轉發給客戶端,客戶端根據元信息判斷出元數據的格式,通過音視頻插件自動調用本地音視頻引擎。這樣做的好處1、服務器端不需要再解碼媒體流,減少其工作負荷;2、由于傳送的是未解壓過的原始媒體流,節省了網絡帶寬; 3、從客戶端來看媒體是原始的質量,效果更好,從而解決了目前一般遠端桌面無法播放音視頻的問題。作為優選,對于2D/3D應用,通過利用服務端2D/3D插件調用2D/3D圖形引擎, 將2D/3D應用的基本模塊的操作轉化為元信息與元數據,遠傳到客戶端,再利用客戶端的 2D/3D插件進行操作。這樣可以節省服務器及網絡資源。只要客戶端能力足夠,顯示將更為流暢。此應用的缺點在于需要對2D/3D基本模塊的調用需要截取,可以通過對操作系統的2D/3D圖形引擎進行局部更改,使之能與服務端通訊,從而對2D/3D基本模塊的調用轉化為元信息與元數據,這種方式的一個重要前提是必須已知圖形引擎,幸好常用的操作系統如windows、linux、MAC OS的缺省操作系統圖形引擎也就幾種,二次開發修改并不困難,甚至文本文字也可以利用這種方式傳送。作為優選,所述的主機為傳統主機或云主機,所述的終端機為傳統終端機或云終端機。本發明的方法適用于傳統/云主機、傳統/云終端的形式,能有效地提高傳統/云主機和傳統/云終端機之間的通信效率。本發明的實質性效果是本發明建立并優化了遠端桌面的通信技術,服務端不只是傳遞變化了的圖形數據,而是將其功能豐富更智能化,可以判斷數據類型,按照能力集向客戶端傳送元信息與元數據,同時其可擴展性及性能得到提升,遠程桌面的可視化效果得到一定的提升,支持音視頻、2D/3D,并且減少了服務器及網絡壓力。
圖1是本發明的一種通信流程圖2是本發明中服務端和客戶端的一種功能方框圖。圖中1、客戶管理模塊,2、安全認證模塊,3、網絡連接模塊,4、能力協商模塊,5、 2D/3D插件,6、音視頻插件,7、網絡測試插件,8、2D/3D圖形引擎,9、音視頻引擎。
具體實施例方式下面通過具體實施例,并結合附圖,對本發明的技術方案作進一步的具體說明。實施例1
一種基于能力集的遠端桌面通信方法,適用于傳統主機與傳統終端上,首先在傳統主機上安裝服務端,在傳統終端上安裝客戶端,本實施例中的服務端和客戶端可調用模塊和插件均包括有客戶管理模塊1、安全認證模塊2、網絡連接模塊3、能力協商模塊4、網絡測試插件7、對應操作系統2D/3D圖形引擎8的2D/3D插件5和對應操作系統音視頻引擎9的音視頻插件6 ;
本實施例的通信流程(參見附圖1)包括以下步驟
步驟一服務端與客戶端通過客戶管理模塊1、安全認證模塊2和網絡連接模塊3建立連接關系,客戶端安全登入,登入步驟功能與RDP\RFB等現有協議的登入步驟功能相同;
步驟二 服務端和客戶端根據主機和終端機進行能力協商,形成能力集;具體步驟為, 服務端通過能量協商模塊4發起能力協商,服務端采用網絡測試插件7探知網絡帶寬時延抖動、客戶端圖形能力、客戶端音視頻解碼能力,同時檢測需要執行的應用是否符合FAST CACHE/STREAMING技術條件,根據以上信息,服務端與客戶端協商后形成能力集,能力集決定了服務端選擇合適的圖形壓縮格式以及決定傳送原始的音視頻格式還是解碼后再傳送,同時根據網絡情況,做到碼率及緩存動態調整,對符合FAST CACHE/STREAMING技術條件的應用采取FAST CACHE/STREAMING技術。為了加速啟動過程,第一次協商形成能力集之后, 能力集將緩存于客戶端,并且按照更新策略在空閑時對能力集重新進行計算,達到能力集的盡快更新,使得通信傳輸更符合即時環境、數據傳輸更為順暢。步驟三服務端根據能力集結合應用屬性,確定通信方式,所述的服務端與所述的客戶端進行遠程應用;在步驟三中,服務端將顯示圖形進行分層,分為鼠標層、前層和后層, 然后將要傳送的數據分類成元數據與元信息,客戶端根據元數據與元信息進行執行和顯示,服務端從操作系統層探知鼠標的圖形、狀態及位置并打包進行傳送,客戶端初始化每種狀態對應的圖形。終端當前顯示的圖層為顯示圖形的前層,顯示圖形的后層由顯示圖形的前層遮蔽為非顯示層,而鼠標層則顯示在最前端。服務端從操作系統執行的應用判斷需要更新前層還是后層。操作系統是執行變化數據少、顯示速度快的圖塊的應用時只需更新前層即可,所以許多應用程序只需要前層顯示即可,如word等應用,此時只需要更新前層顯示改動的圖塊即可;操作系統是執行數據變化量大,圖塊大量更新的應用時,需要先更新后層然后進行后層替換更新至前層的動作,所以有的應用需要更新后層顯示圖塊,如3D/CAD 等應用,首先在后層完成圖塊的圖形變化,然后將后層變化的圖塊整體替換至前層,達到一次性無延遲顯示遠程桌面的目的,遠程桌面的可視化效果得到較大的提升。在步驟三中,如果需要執行音視頻應用,由于經過能力協商,所以服務端明確獲知客戶端的解碼能力,所以,基于能力集,服務端與客戶端在執行通信時被認為是具有相同的解碼能力,因此,服務端將不直接執行音視頻應用,而是采用以下步驟首先,服務端通過利用服務端的音視頻插件6,自動判斷目前系統所使用的音視頻引擎9,并探知媒體播放參數,轉換形成元信息和元數據,然后將媒體流轉發給客戶端,客戶端根據元信息判斷出元數據的格式,通過客戶端的音視頻插件6自動調用本地音視頻引擎9,終端機本地音視頻引擎 9根據媒體播放參數在本地執行音視頻應用。這樣大大減少了服務端和網絡的壓力,實現音視頻的播放。在步驟三中,如果執行的是2D/3D應用,服務端通過2D/3D插件5調用2D/3D圖形引擎8,將2D/3D應用的基本模塊的操作轉化為元信息與元數據,遠傳到客戶端,客戶端再利用2D/3D插件5識別分析元信息與元數據,然后調用終端機本地的2D/3D圖形引擎8 進行操作。此步驟的重點在于,在客戶端在執行2D/3D應用時,對2D/3D應用的基本模塊的調用需要截取,本發明提供有兩種處理方法,其中的一種方式是修改該2D/3D應用程序部分,但是,顯然此種方法,難度大,工作量高,實現存在困難,所以,本實施例采用的是第二種方法,也就是對主機操作系統的2D GUI/3D圖形引擎進行局部更改,使主機操作系統的 2D⑶I/3D圖形引擎能與服務端通訊,分析2D⑶I/3D圖形引擎與服務端的通訊信息,截取2D/3D應用的基本模塊的調用并轉化為元信息與元數據,明顯本實施例采用的方式工作量大為減少,更具備應用價值,這種方式的一個重要前提是必須已知圖形引擎,因為常用的操作系統如windows Uinux ,MAC OS的缺省操作系統圖形引擎數量較少,因此二次開發修改并不困難,甚至文本文字也可以利用這種方式傳送。步驟四當應用執行完成后,客戶端安全登出,完成遠程桌面通信。實施例2
本實施例與實施例1基本相同,不同之處在于,本實施例適用于云主機和云終端,在步驟二中,第一次協商形成能力集之后,能力集將緩存于服務端,并且按照更新策略定時對能力集重新進行計算,達到能力集的盡快更新,使得通信傳輸更符合即時環境、數據傳輸更為順暢。 以上所述的實施例只是本發明的一種較佳的方案,并非對本發明作任何形式上的限制,在不超出權利要求所記載的技術方案的前提下還有其它的變體及改型。
權利要求
1.一種基于能力集的遠端桌面通信方法,在主機上建立服務端,在終端機上建立客戶端,其特征在于步驟一所述的服務端與所述的客戶端建立連接關系,所述的客戶端安全登入;步驟二 所述的服務端和所述的客戶端根據主機和終端機進行能力協商,形成能力集;步驟三服務端根據能力集結合應用屬性,確定通信方式,所述的服務端與所述的客戶端進行遠程應用;步驟四所述的客戶端安全登出。
2.根據權利要求1所述的基于能力集的遠端桌面通信方法,其特征在于所述的服務端和所述的客戶端調用的功能性模塊插件均包括有客戶管理模塊、安全認證模塊、網絡連接模塊、能力協商模塊、網絡測試插件、對應操作系統2D/3D圖形引擎的2D/3D插件和對應操作系統音視頻引擎的音視頻插件。
3.根據權利要求1所述的基于能力集的遠端桌面通信方法,其特征在于所述的步驟二中,服務端發起能力協商,以探知網絡帶寬時延抖動、客戶端圖形能力、客戶端音視頻解碼能力,服務端選擇合適的圖形壓縮格式以及決定傳送原始的音視頻格式或解碼后再傳送,同時根據網絡情況,做到碼率及緩存動態調整,對符合FAST CACHE/STREAMING技術條件的應用采取FAST CACHE/STREAMING技術。
4.根據權利要求1所述的基于能力集的遠端桌面通信方法,其特征在于所述的步驟三中,服務端將顯示圖形進行分層,分為鼠標層、前層和后層,然后將要傳送的數據分類成元數據與元信息,服務端從操作系統層探知鼠標的圖形、狀態及位置并打包進行傳送,客戶端初始化每種狀態對應的圖形。
5.根據權利要求4所述的基于能力集的遠端桌面通信方法,其特征在于所述的步驟三中,服務端從操作系統執行的應用判斷需要更新前層還是后層。
6.根據權利要求3所述的基于能力集的遠端桌面通信方法,其特征在于服務端通過利用服務端音視頻插件,自動判斷目前系統所使用的音視頻引擎,并探知媒體播放參數,從而將媒體流轉發給客戶端,客戶端根據元信息判斷出元數據的格式,通過音視頻插件自動調用本地音視頻引擎。
7.根據權利要求2所述的基于能力集的遠端桌面通信方法,其特征在于對于2D/3D 應用,通過利用服務端2D/3D插件調用2D/3D圖形引擎,將2D/3D應用的基本模塊的操作轉化為元信息與元數據,遠傳到客戶端,再利用客戶端的2D/3D插件進行操作。
8.根據權利要求1所述的基于能力集的遠端桌面通信方法,其特征在于所述的主機為傳統主機或云主機,所述的終端機為傳統終端機或云終端機。
全文摘要
本發明涉及一種遠端桌面通信方法。本發明可以很好地解決現有技術中存在應用占用較多的網絡帶寬,畫面顯示不流暢的問題。其技術方案要點是,一種基于能力集的遠端桌面通信方法,在主機上建立服務端,在終端機上建立客戶端,步驟一所述的服務端與所述的客戶端建立連接關系,所述的客戶端安全登入;步驟二所述的服務端和所述的客戶端根據主機和終端機進行能力協商,形成能力集;步驟三服務端根據能力集結合應用屬性,確定通信方式,所述的服務端與所述的客戶端進行遠程應用;步驟四所述的客戶端安全登出。應用本發明的遠程桌面的可視化效果得到一定的提升,支持音視頻、2D/3D應用,并且減少了服務器及網絡壓力。
文檔編號H04L29/08GK102546803SQ201210009320
公開日2012年7月4日 申請日期2012年1月13日 優先權日2012年1月13日
發明者馮望瑜, 張鐵柱 申請人:浙江工商大學