本發(fā)明涉及一種虛擬桌面遠(yuǎn)程通信協(xié)議。
背景技術(shù):
傳統(tǒng)的pc桌面是硬件、軟件緊密結(jié)合在一起的,用戶只能在固定場(chǎng)所辦公,無法移動(dòng)辦公,無法隨時(shí)隨地訪問桌面。傳統(tǒng)pc在信息安全,pc維護(hù)、災(zāi)備等方面也存在不足。
桌面云,通過iaas架構(gòu)和桌面虛擬化技術(shù),可以將用戶的桌面搭建在iaas架構(gòu)上,通過桌面虛擬化的虛擬桌面遠(yuǎn)程通信協(xié)議,將構(gòu)建在iaas架構(gòu)上的桌面分發(fā)給最終用戶?;谧烂嫣摂M化技術(shù),用戶使用終端設(shè)備上的虛擬桌面遠(yuǎn)程通信協(xié)議客戶端通過網(wǎng)絡(luò)就可以隨時(shí)隨地訪問虛擬桌面,用戶使用終端設(shè)備包括pc、筆記本,平板電腦、智能手機(jī)、瘦終端等。
使用虛擬桌面辦公,在瀏覽網(wǎng)頁,播放視頻等情況下,現(xiàn)有的虛擬桌面遠(yuǎn)程通信協(xié)議傳輸大量數(shù)據(jù),圖像數(shù)據(jù)占比最大。雖然可以對(duì)圖像數(shù)據(jù)進(jìn)行壓縮后傳輸,但是傳輸?shù)臄?shù)據(jù)量仍舊很大,占用高帶寬,無法在低帶寬的環(huán)境下使用,也就無法滿足公有云的要求。
在桌面虛擬化領(lǐng)域,目前主流的虛擬桌面遠(yuǎn)程通信協(xié)議包括微軟的rdp協(xié)議,vmware的pcoip協(xié)議等等。rdp協(xié)議和pcoip協(xié)議都需要傳輸大量數(shù)據(jù),占用高帶寬,無法滿足高帶寬要求因而卡頓,不適合公網(wǎng)環(huán)境下使用。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是克服現(xiàn)有產(chǎn)品中的不足,提供一種虛擬桌面遠(yuǎn)程通信協(xié)議。
為了達(dá)到上述目的,本發(fā)明是通過以下技術(shù)方案實(shí)現(xiàn)的:
一種虛擬桌面遠(yuǎn)程通信協(xié)議,包括客戶端、服務(wù)端,所述客戶端與服務(wù)端互相發(fā)送數(shù)據(jù)流,
所述客戶端的數(shù)據(jù)流程如下:
s11:用戶登錄請(qǐng)求發(fā)送給客戶端登錄界面;
s12:客戶端登錄界面發(fā)送格式化登錄請(qǐng)求數(shù)據(jù)給客戶端主邏輯;
s13:客戶端主邏輯將格式化登錄請(qǐng)求數(shù)據(jù)封裝成協(xié)議請(qǐng)求數(shù)據(jù)后發(fā)送給加密通信模塊;
s14:加密通信模塊將協(xié)議請(qǐng)求數(shù)據(jù)加密后發(fā)送協(xié)議請(qǐng)求數(shù)據(jù)流給服務(wù)端;
s15:服務(wù)端向客戶端發(fā)送協(xié)議響應(yīng)數(shù)據(jù)流;
s16:加密通信模塊將協(xié)議響應(yīng)數(shù)據(jù)流解密出協(xié)議響應(yīng)數(shù)據(jù)后發(fā)送給客戶端主邏輯;
s17:客戶端主邏輯根據(jù)協(xié)議響應(yīng)數(shù)據(jù)的種類向客戶端相應(yīng)的模塊發(fā)送指令,然后模塊響應(yīng)指令;
所述服務(wù)端的數(shù)據(jù)流程如下:
s21:服務(wù)端將接收到客戶端的協(xié)議請(qǐng)求數(shù)據(jù)流發(fā)送給加密通信模塊,加密通信模塊將協(xié)議請(qǐng)求數(shù)據(jù)流解密出協(xié)議請(qǐng)求數(shù)據(jù);
s22:若協(xié)議請(qǐng)求數(shù)據(jù)是第一次,則通過路徑a發(fā)送協(xié)議響應(yīng)數(shù)據(jù)給加密通信模塊,同時(shí)此時(shí)協(xié)議agent模塊處于工作狀態(tài),然后協(xié)議agent模塊發(fā)送音頻驅(qū)動(dòng)工作請(qǐng)求給虛擬音頻驅(qū)動(dòng)且發(fā)送顯示驅(qū)動(dòng)工作請(qǐng)求給虛擬顯示驅(qū)動(dòng),使得虛擬音頻驅(qū)動(dòng)和虛擬顯示驅(qū)動(dòng)都處于工作狀態(tài),與此同時(shí)加密通信模塊將協(xié)議響應(yīng)數(shù)據(jù)進(jìn)行加密后向客戶端發(fā)送協(xié)議響應(yīng)數(shù)據(jù)流;若協(xié)議請(qǐng)求數(shù)據(jù)不是第一次則協(xié)議agent模塊接收到協(xié)議請(qǐng)求數(shù)據(jù),協(xié)議agent模塊根據(jù)協(xié)議請(qǐng)求數(shù)據(jù)的種類判斷是向操作系統(tǒng)發(fā)送協(xié)議請(qǐng)求數(shù)據(jù)或是通過操作系統(tǒng)反饋協(xié)議響應(yīng)數(shù)據(jù)給協(xié)議agent模塊,協(xié)議agent模塊通過加密通信模塊發(fā)送協(xié)議響應(yīng)數(shù)據(jù)流給客戶端或是協(xié)議agent模塊發(fā)送顯示驅(qū)動(dòng)停止請(qǐng)求給虛擬顯示驅(qū)動(dòng)且發(fā)送音頻驅(qū)動(dòng)停止請(qǐng)求給音頻顯示驅(qū)動(dòng),使得虛擬顯示驅(qū)動(dòng)停止工作和虛擬音頻驅(qū)動(dòng)停止工作,同時(shí)協(xié)議agent模塊停止工作。
所述步驟s22中:若協(xié)議請(qǐng)求數(shù)據(jù)不是第一次則協(xié)議agent模塊接收到協(xié)議請(qǐng)求數(shù)據(jù),若協(xié)議請(qǐng)求數(shù)據(jù)為音頻錄制數(shù)據(jù),則向操作系統(tǒng)發(fā)送音頻錄制數(shù)據(jù),所述向操作系統(tǒng)發(fā)送音頻錄制數(shù)據(jù)的流程為:協(xié)議agent模塊向虛擬音頻驅(qū)動(dòng)發(fā)送音頻錄制數(shù)據(jù),然后虛擬音頻驅(qū)動(dòng)向操作系統(tǒng)發(fā)送音頻錄制數(shù)據(jù)。
所述步驟s22中:若協(xié)議請(qǐng)求數(shù)據(jù)不是第一次則協(xié)議agent模塊接收到協(xié)議請(qǐng)求數(shù)據(jù),若協(xié)議請(qǐng)求數(shù)據(jù)為鍵盤輸入數(shù)據(jù)或鼠標(biāo)輸入數(shù)據(jù),則通過操作系統(tǒng)反饋協(xié)議響應(yīng)數(shù)據(jù)發(fā)送給客戶端。
若協(xié)議請(qǐng)求數(shù)據(jù)為鍵盤輸入數(shù)據(jù),則通過操作系統(tǒng)反饋協(xié)議響應(yīng)數(shù)據(jù)發(fā)送給客戶端,通過操作系統(tǒng)反饋協(xié)議響應(yīng)數(shù)據(jù)發(fā)送協(xié)議響應(yīng)數(shù)據(jù)流給客戶端的流程為:協(xié)議agent模塊向虛擬鍵盤驅(qū)動(dòng)發(fā)送鍵盤輸入數(shù)據(jù),然后虛擬鍵盤驅(qū)動(dòng)向操作系統(tǒng)發(fā)送鍵盤輸入數(shù)據(jù),然后操作系統(tǒng)反饋虛擬桌面原始更新數(shù)據(jù)或者虛擬桌面原始音頻播放數(shù)據(jù),
若操作系統(tǒng)反饋虛擬桌面原始更新數(shù)據(jù),然后操作系統(tǒng)反饋虛擬桌面原始更新數(shù)據(jù)給虛擬顯示驅(qū)動(dòng),然后虛擬顯示驅(qū)動(dòng)將虛擬桌面原始更新數(shù)據(jù)發(fā)送給圖形優(yōu)化模塊,然后圖形優(yōu)化模塊發(fā)送視頻流或者圖形流給協(xié)議agent模塊,然后協(xié)議agent模塊將協(xié)議響應(yīng)數(shù)據(jù)發(fā)送給加密通信模塊,然后加密通信模塊將協(xié)議響應(yīng)數(shù)據(jù)加密后發(fā)送協(xié)議請(qǐng)求數(shù)據(jù)流給客戶端;
若操作系統(tǒng)反饋虛擬桌面原始音頻播放數(shù)據(jù),然后操作系統(tǒng)反饋虛擬桌面原始音頻播放數(shù)據(jù)給虛擬音頻驅(qū)動(dòng),虛擬音頻驅(qū)動(dòng)將虛擬桌面原始音頻播放數(shù)據(jù)發(fā)送給音頻優(yōu)化模塊,音頻優(yōu)化模塊向協(xié)議agent模塊發(fā)送音頻流,然后協(xié)議agent模塊將協(xié)議響應(yīng)數(shù)據(jù)發(fā)送給加密通信模塊,然后加密通信模塊將協(xié)議響應(yīng)數(shù)據(jù)加密后發(fā)送協(xié)議請(qǐng)求數(shù)據(jù)流給客戶端。
若協(xié)議請(qǐng)求數(shù)據(jù)為鼠標(biāo)輸入數(shù)據(jù),則通過操作系統(tǒng)反饋協(xié)議響應(yīng)數(shù)據(jù)發(fā)送給客戶端,通過操作系統(tǒng)反饋協(xié)議響應(yīng)數(shù)據(jù)發(fā)送協(xié)議響應(yīng)數(shù)據(jù)流給客戶端的流程為:協(xié)議agent模塊向虛擬鼠標(biāo)驅(qū)動(dòng)發(fā)送鼠標(biāo)輸入數(shù)據(jù),然后虛擬鼠標(biāo)驅(qū)動(dòng)向操作系統(tǒng)發(fā)送鼠標(biāo)輸入數(shù)據(jù),然后操作系統(tǒng)反饋虛擬桌面原始更新數(shù)據(jù)或者虛擬桌面原始音頻播放數(shù)據(jù),
若操作系統(tǒng)反饋虛擬桌面原始更新數(shù)據(jù),然后操作系統(tǒng)反饋虛擬桌面原始更新數(shù)據(jù)給虛擬顯示驅(qū)動(dòng),然后虛擬顯示驅(qū)動(dòng)將虛擬桌面原始更新數(shù)據(jù)發(fā)送給圖形優(yōu)化模塊,然后圖形優(yōu)化模塊發(fā)送視頻流或者圖形流給協(xié)議agent模塊,然后協(xié)議agent模塊將協(xié)議響應(yīng)數(shù)據(jù)發(fā)送給加密通信模塊,然后加密通信模塊將協(xié)議響應(yīng)數(shù)據(jù)加密后發(fā)送協(xié)議請(qǐng)求數(shù)據(jù)流給客戶端;
若操作系統(tǒng)反饋虛擬桌面原始音頻播放數(shù)據(jù),然后操作系統(tǒng)反饋虛擬桌面原始音頻播放數(shù)據(jù)給虛擬音頻驅(qū)動(dòng),虛擬音頻驅(qū)動(dòng)將虛擬桌面原始音頻播放數(shù)據(jù)發(fā)送給音頻優(yōu)化模塊,音頻優(yōu)化模塊向協(xié)議agent模塊發(fā)送音頻流,然后協(xié)議agent模塊將協(xié)議響應(yīng)數(shù)據(jù)發(fā)送給加密通信模塊,然后加密通信模塊將協(xié)議響應(yīng)數(shù)據(jù)加密后發(fā)送協(xié)議請(qǐng)求數(shù)據(jù)流給客戶端。
所述步驟s22中:若協(xié)議請(qǐng)求數(shù)據(jù)不是第一次則協(xié)議agent模塊接收到協(xié)議請(qǐng)求數(shù)據(jù),若協(xié)議請(qǐng)求數(shù)據(jù)為用戶斷開請(qǐng)求數(shù)據(jù),則協(xié)議agent模塊發(fā)送顯示驅(qū)動(dòng)停止請(qǐng)求給虛擬顯示驅(qū)動(dòng)且發(fā)送音頻驅(qū)動(dòng)停止請(qǐng)求給音頻顯示驅(qū)動(dòng),使得虛擬顯示驅(qū)動(dòng)停止工作和虛擬音頻驅(qū)動(dòng)停止工作,同時(shí)協(xié)議agent模塊停止工作。
所述路徑a的流程如下:
s31:協(xié)議請(qǐng)求數(shù)據(jù)發(fā)送給協(xié)議服務(wù)模塊;
s32:協(xié)議服務(wù)模塊發(fā)送會(huì)話控制請(qǐng)求給協(xié)議agent模塊,使得協(xié)議agent模塊處于工作狀態(tài);
s33:協(xié)議agent模塊處理后向協(xié)議服務(wù)模塊發(fā)送會(huì)話響應(yīng)請(qǐng)求;
s34:協(xié)議服務(wù)模塊發(fā)送協(xié)議響應(yīng)數(shù)據(jù)給加密通信模塊。
若協(xié)議響應(yīng)數(shù)據(jù)的種類為音頻流,則客戶端主邏輯向音頻優(yōu)化模塊發(fā)送音頻流,然后音頻優(yōu)化模塊向客戶端音頻模塊發(fā)送虛擬桌面原始音頻播放數(shù)據(jù),然后客戶端音頻模塊向音頻設(shè)備發(fā)送播放音頻;若協(xié)議響應(yīng)數(shù)據(jù)的種類為視頻流或圖形流,則客戶端主邏輯向圖形優(yōu)化模塊發(fā)送視頻流或圖形流,然后圖形優(yōu)化模塊向客戶端顯示模塊發(fā)送虛擬桌面更新數(shù)據(jù),然后客戶端顯示模塊向客戶端虛擬桌面顯示界面發(fā)送虛擬桌面顯示數(shù)據(jù)。
所述請(qǐng)求為鍵盤輸入數(shù)據(jù)或鼠標(biāo)輸入數(shù)據(jù)或用戶斷開請(qǐng)求數(shù)據(jù)或音頻錄制數(shù)據(jù)或顯示驅(qū)動(dòng)停止請(qǐng)求數(shù)據(jù)或顯示驅(qū)動(dòng)工作請(qǐng)求數(shù)據(jù)或音頻驅(qū)動(dòng)工作請(qǐng)求或音頻驅(qū)動(dòng)停止請(qǐng)求。
本發(fā)明的有益效果如下:本發(fā)明服務(wù)端通過虛擬驅(qū)動(dòng)從操作系統(tǒng)獲取最原始的數(shù)據(jù),服務(wù)端的虛擬顯示驅(qū)動(dòng)模塊將虛擬桌面原始更新數(shù)據(jù)發(fā)送給圖形優(yōu)化模塊,經(jīng)過圖形優(yōu)化模塊處理生成視頻流或圖形流,大大減少了虛擬桌面原始更新數(shù)據(jù)的發(fā)送量。服務(wù)端的虛擬音頻驅(qū)動(dòng)模塊將虛擬桌面原始音頻播放數(shù)據(jù)發(fā)送給音頻優(yōu)化模塊,經(jīng)過音頻優(yōu)化模塊處理生成音頻流,也大大減少了虛擬桌面原始音頻播放數(shù)據(jù)的發(fā)送量。基于以上方法,也就可以有效地降低在虛擬桌面辦公傳輸?shù)臄?shù)據(jù)量,降低帶寬,滿足公有云的低帶寬要求。
附圖說明
圖1為客戶端的數(shù)據(jù)流程圖;
圖2為服務(wù)端的數(shù)據(jù)流程圖。
具體實(shí)施方式
下面結(jié)合說明書附圖對(duì)本發(fā)明的技術(shù)方案作進(jìn)一步說明:
圖2中的操作系統(tǒng)為同一個(gè)操作系統(tǒng)。
如圖1、圖2所示,一種虛擬桌面遠(yuǎn)程通信協(xié)議,包括客戶端、服務(wù)端,所述客戶端與服務(wù)端互相發(fā)送數(shù)據(jù)流,
所述客戶端的數(shù)據(jù)流程如下:
s11:用戶登錄請(qǐng)求發(fā)送給客戶端登錄界面;
s12:客戶端登錄界面發(fā)送格式化登錄請(qǐng)求數(shù)據(jù)給客戶端主邏輯;
s13:客戶端主邏輯將格式化登錄請(qǐng)求數(shù)據(jù)封裝成協(xié)議請(qǐng)求數(shù)據(jù)后發(fā)送給加密通信模塊;
s14:加密通信模塊將協(xié)議請(qǐng)求數(shù)據(jù)加密后發(fā)送協(xié)議請(qǐng)求數(shù)據(jù)流給服務(wù)端;
s15:服務(wù)端向客戶端發(fā)送協(xié)議響應(yīng)數(shù)據(jù)流;
s16:加密通信模塊將協(xié)議響應(yīng)數(shù)據(jù)流解密出協(xié)議響應(yīng)數(shù)據(jù)后發(fā)送給客戶端主邏輯;
s17:客戶端主邏輯根據(jù)協(xié)議響應(yīng)數(shù)據(jù)的種類向客戶端相應(yīng)的模塊發(fā)送指令,然后模塊響應(yīng)指令;
所述服務(wù)端的數(shù)據(jù)流程如下:
s21:服務(wù)端將接收到客戶端的協(xié)議請(qǐng)求數(shù)據(jù)流發(fā)送給加密通信模塊,加密通信模塊將協(xié)議請(qǐng)求數(shù)據(jù)流解密出協(xié)議請(qǐng)求數(shù)據(jù);
s22:若協(xié)議請(qǐng)求數(shù)據(jù)是第一次,則通過路徑a發(fā)送協(xié)議響應(yīng)數(shù)據(jù)給加密通信模塊,同時(shí)此時(shí)協(xié)議agent模塊處于工作狀態(tài),然后協(xié)議agent模塊發(fā)送音頻驅(qū)動(dòng)工作請(qǐng)求給虛擬音頻驅(qū)動(dòng)且發(fā)送顯示驅(qū)動(dòng)工作請(qǐng)求給虛擬顯示驅(qū)動(dòng),使得虛擬音頻驅(qū)動(dòng)和虛擬顯示驅(qū)動(dòng)都處于工作狀態(tài),與此同時(shí)加密通信模塊將協(xié)議響應(yīng)數(shù)據(jù)進(jìn)行加密后向客戶端發(fā)送協(xié)議響應(yīng)數(shù)據(jù)流;若協(xié)議請(qǐng)求數(shù)據(jù)不是第一次則協(xié)議agent模塊接收到協(xié)議請(qǐng)求數(shù)據(jù),協(xié)議agent模塊根據(jù)協(xié)議請(qǐng)求數(shù)據(jù)的種類判斷是向操作系統(tǒng)發(fā)送協(xié)議請(qǐng)求數(shù)據(jù)或是通過操作系統(tǒng)反饋協(xié)議響應(yīng)數(shù)據(jù)給協(xié)議agent模塊,協(xié)議agent模塊通過加密通信模塊發(fā)送協(xié)議響應(yīng)數(shù)據(jù)流給客戶端或是協(xié)議agent模塊發(fā)送顯示驅(qū)動(dòng)停止請(qǐng)求給虛擬顯示驅(qū)動(dòng)且發(fā)送音頻驅(qū)動(dòng)停止請(qǐng)求給音頻顯示驅(qū)動(dòng),使得虛擬顯示驅(qū)動(dòng)停止工作和虛擬音頻驅(qū)動(dòng)停止工作,同時(shí)協(xié)議agent模塊停止工作。
所述步驟s22中:若協(xié)議請(qǐng)求數(shù)據(jù)不是第一次則協(xié)議agent模塊接收到協(xié)議請(qǐng)求數(shù)據(jù),若協(xié)議請(qǐng)求數(shù)據(jù)為音頻錄制數(shù)據(jù),則向操作系統(tǒng)發(fā)送音頻錄制數(shù)據(jù),所述向操作系統(tǒng)發(fā)送音頻錄制數(shù)據(jù)的流程為:協(xié)議agent模塊向虛擬音頻驅(qū)動(dòng)發(fā)送音頻錄制數(shù)據(jù),然后虛擬音頻驅(qū)動(dòng)向操作系統(tǒng)發(fā)送音頻錄制數(shù)據(jù)。
所述步驟s22中:若協(xié)議請(qǐng)求數(shù)據(jù)不是第一次則協(xié)議agent模塊接收到協(xié)議請(qǐng)求數(shù)據(jù),若協(xié)議請(qǐng)求數(shù)據(jù)為鍵盤輸入數(shù)據(jù)或鼠標(biāo)輸入數(shù)據(jù),則通過操作系統(tǒng)反饋協(xié)議響應(yīng)數(shù)據(jù)發(fā)送給客戶端。
若協(xié)議請(qǐng)求數(shù)據(jù)為鍵盤輸入數(shù)據(jù),則通過操作系統(tǒng)反饋協(xié)議響應(yīng)數(shù)據(jù)發(fā)送給客戶端,通過操作系統(tǒng)反饋協(xié)議響應(yīng)數(shù)據(jù)發(fā)送協(xié)議響應(yīng)數(shù)據(jù)流給客戶端的流程為:協(xié)議agent模塊向虛擬鍵盤驅(qū)動(dòng)發(fā)送鍵盤輸入數(shù)據(jù),然后虛擬鍵盤驅(qū)動(dòng)向操作系統(tǒng)發(fā)送鍵盤輸入數(shù)據(jù),然后操作系統(tǒng)反饋虛擬桌面原始更新數(shù)據(jù)或者虛擬桌面原始音頻播放數(shù)據(jù),
若操作系統(tǒng)反饋虛擬桌面原始更新數(shù)據(jù),然后操作系統(tǒng)反饋虛擬桌面原始更新數(shù)據(jù)給虛擬顯示驅(qū)動(dòng),然后虛擬顯示驅(qū)動(dòng)將虛擬桌面原始更新數(shù)據(jù)發(fā)送給圖形優(yōu)化模塊,然后圖形優(yōu)化模塊發(fā)送視頻流或者圖形流給協(xié)議agent模塊,然后協(xié)議agent模塊將協(xié)議響應(yīng)數(shù)據(jù)發(fā)送給加密通信模塊,然后加密通信模塊將協(xié)議響應(yīng)數(shù)據(jù)加密后發(fā)送協(xié)議請(qǐng)求數(shù)據(jù)流給客戶端;
若操作系統(tǒng)反饋虛擬桌面原始音頻播放數(shù)據(jù),然后操作系統(tǒng)反饋虛擬桌面原始音頻播放數(shù)據(jù)給虛擬音頻驅(qū)動(dòng),虛擬音頻驅(qū)動(dòng)將虛擬桌面原始音頻播放數(shù)據(jù)發(fā)送給音頻優(yōu)化模塊,音頻優(yōu)化模塊向協(xié)議agent模塊發(fā)送音頻流,然后協(xié)議agent模塊將協(xié)議響應(yīng)數(shù)據(jù)發(fā)送給加密通信模塊,然后加密通信模塊將協(xié)議響應(yīng)數(shù)據(jù)加密后發(fā)送協(xié)議請(qǐng)求數(shù)據(jù)流給客戶端。
若協(xié)議請(qǐng)求數(shù)據(jù)為鼠標(biāo)輸入數(shù)據(jù),則通過操作系統(tǒng)反饋協(xié)議響應(yīng)數(shù)據(jù)發(fā)送給客戶端,通過操作系統(tǒng)反饋協(xié)議響應(yīng)數(shù)據(jù)發(fā)送協(xié)議響應(yīng)數(shù)據(jù)流給客戶端的流程為:協(xié)議agent模塊向虛擬鼠標(biāo)驅(qū)動(dòng)發(fā)送鼠標(biāo)輸入數(shù)據(jù),然后虛擬鼠標(biāo)驅(qū)動(dòng)向操作系統(tǒng)發(fā)送鼠標(biāo)輸入數(shù)據(jù),然后操作系統(tǒng)反饋虛擬桌面原始更新數(shù)據(jù)或者虛擬桌面原始音頻播放數(shù)據(jù),
若操作系統(tǒng)反饋虛擬桌面原始更新數(shù)據(jù),然后操作系統(tǒng)反饋虛擬桌面原始更新數(shù)據(jù)給虛擬顯示驅(qū)動(dòng),然后虛擬顯示驅(qū)動(dòng)將虛擬桌面原始更新數(shù)據(jù)發(fā)送給圖形優(yōu)化模塊,然后圖形優(yōu)化模塊發(fā)送視頻流或者圖形流給協(xié)議agent模塊,然后協(xié)議agent模塊將協(xié)議響應(yīng)數(shù)據(jù)發(fā)送給加密通信模塊,然后加密通信模塊將協(xié)議響應(yīng)數(shù)據(jù)加密后發(fā)送協(xié)議請(qǐng)求數(shù)據(jù)流給客戶端;
若操作系統(tǒng)反饋虛擬桌面原始音頻播放數(shù)據(jù),然后操作系統(tǒng)反饋虛擬桌面原始音頻播放數(shù)據(jù)給虛擬音頻驅(qū)動(dòng),虛擬音頻驅(qū)動(dòng)將虛擬桌面原始音頻播放數(shù)據(jù)發(fā)送給音頻優(yōu)化模塊,音頻優(yōu)化模塊向協(xié)議agent模塊發(fā)送音頻流,然后協(xié)議agent模塊將協(xié)議響應(yīng)數(shù)據(jù)發(fā)送給加密通信模塊,然后加密通信模塊將協(xié)議響應(yīng)數(shù)據(jù)加密后發(fā)送協(xié)議請(qǐng)求數(shù)據(jù)流給客戶端。
所述步驟s22中:若協(xié)議請(qǐng)求數(shù)據(jù)不是第一次則協(xié)議agent模塊接收到協(xié)議請(qǐng)求數(shù)據(jù),若協(xié)議請(qǐng)求數(shù)據(jù)為用戶斷開請(qǐng)求數(shù)據(jù),則協(xié)議agent模塊發(fā)送顯示驅(qū)動(dòng)停止請(qǐng)求給虛擬顯示驅(qū)動(dòng)且發(fā)送音頻驅(qū)動(dòng)停止請(qǐng)求給音頻顯示驅(qū)動(dòng),使得虛擬顯示驅(qū)動(dòng)停止工作和虛擬音頻驅(qū)動(dòng)停止工作,同時(shí)協(xié)議agent模塊停止工作。
所述路徑a的流程如下:
s31:協(xié)議請(qǐng)求數(shù)據(jù)發(fā)送給協(xié)議服務(wù)模塊;
s32:協(xié)議服務(wù)模塊發(fā)送會(huì)話控制請(qǐng)求給協(xié)議agent模塊,使得協(xié)議agent模塊處于工作狀態(tài);
s33:協(xié)議agent模塊處理后向協(xié)議服務(wù)模塊發(fā)送會(huì)話響應(yīng)請(qǐng)求;
s34:協(xié)議服務(wù)模塊發(fā)送協(xié)議響應(yīng)數(shù)據(jù)給加密通信模塊。
若協(xié)議響應(yīng)數(shù)據(jù)的種類為音頻流,則客戶端主邏輯向音頻優(yōu)化模塊發(fā)送音頻流,然后音頻優(yōu)化模塊向客戶端音頻模塊發(fā)送虛擬桌面原始音頻播放數(shù)據(jù),然后客戶端音頻模塊向音頻設(shè)備發(fā)送播放音頻;若協(xié)議響應(yīng)數(shù)據(jù)的種類為視頻流或圖形流,則客戶端主邏輯向圖形優(yōu)化模塊發(fā)送視頻流或圖形流,然后圖形優(yōu)化模塊向客戶端顯示模塊發(fā)送虛擬桌面更新數(shù)據(jù),然后客戶端顯示模塊向客戶端虛擬桌面顯示界面發(fā)送虛擬桌面顯示數(shù)據(jù)。
所述請(qǐng)求為鍵盤輸入數(shù)據(jù)或鼠標(biāo)輸入數(shù)據(jù)或用戶斷開請(qǐng)求數(shù)據(jù)或音頻錄制數(shù)據(jù)或顯示驅(qū)動(dòng)停止請(qǐng)求數(shù)據(jù)或顯示驅(qū)動(dòng)工作請(qǐng)求數(shù)據(jù)或音頻驅(qū)動(dòng)工作請(qǐng)求或音頻驅(qū)動(dòng)停止請(qǐng)求。
協(xié)議agent模塊發(fā)送音頻驅(qū)動(dòng)工作請(qǐng)求給虛擬音頻驅(qū)動(dòng)且發(fā)送顯示驅(qū)動(dòng)工作請(qǐng)求給虛擬顯示驅(qū)動(dòng),這樣虛擬音頻驅(qū)動(dòng)和虛擬顯示驅(qū)動(dòng)就處于工作狀態(tài),而虛擬鍵盤驅(qū)動(dòng)和虛擬鼠標(biāo)驅(qū)動(dòng)不需要收到請(qǐng)求就一直在工作狀態(tài)。
客戶端中的圖形優(yōu)化模塊的說明:
圖像優(yōu)化模塊對(duì)視頻流或圖形流進(jìn)行處理,如果是視頻流,則通過h264解碼,生成虛擬桌面更新數(shù)據(jù);如果是圖形流,針對(duì)不同類型的數(shù)據(jù)進(jìn)行處理如果是文字更新數(shù)據(jù)及對(duì)應(yīng)的緩存id,則記錄緩存id,并將文字更新數(shù)據(jù)緩存到本地,通過圖像壓縮算法解壓文字更新數(shù)據(jù),生成虛擬桌面更新數(shù)據(jù);如果是文字更新數(shù)據(jù)緩存id,則取出緩存在本地的文字更新數(shù)據(jù),通過圖像壓縮算法解壓文字更新數(shù)據(jù),生成虛擬桌面更新數(shù)據(jù);如果是新的圖像更新數(shù)據(jù)及對(duì)應(yīng)的特征值,則記錄特征值,并將新的圖像更新數(shù)據(jù)緩存到本地,通過圖像壓縮算法解壓新的圖像更新數(shù)據(jù),生成虛擬桌面更新數(shù)據(jù);如果是新的圖像更新數(shù)據(jù)特征值,則取出緩存在本地的新的圖像更新數(shù)據(jù),通過圖像壓縮算法解壓新的圖像更新數(shù)據(jù),生成虛擬桌面更新數(shù)據(jù)。
客戶端中的音頻優(yōu)化模塊,如果是音頻流,則發(fā)送給音頻優(yōu)化模塊處理。音頻優(yōu)化模塊解碼解壓,生成虛擬桌面原始音頻播放數(shù)據(jù),發(fā)送給客戶端音頻模塊。
服務(wù)端中的圖形優(yōu)化模塊的說明:
虛擬桌面原始更新數(shù)據(jù)經(jīng)過圖形優(yōu)化模塊,該模塊對(duì)數(shù)據(jù)進(jìn)行分析并識(shí)別為視頻流或圖形流,并進(jìn)行相應(yīng)的處理。如果是視頻流,則對(duì)數(shù)據(jù)進(jìn)行h264編碼,如果是圖形流,圖形數(shù)據(jù)分為文字更新數(shù)據(jù)和圖像更新數(shù)據(jù)。如果是文字更新數(shù)據(jù),則對(duì)文字更新數(shù)據(jù)編碼生成緩存id,發(fā)送文字更新數(shù)據(jù)和緩存id,客戶端接收到緩存id后,會(huì)將該文字更新數(shù)據(jù)緩存到客戶端本地;當(dāng)命中緩存id,則只發(fā)送緩存id,不發(fā)送文字更新數(shù)據(jù)。如果是圖像更新數(shù)據(jù),首先通過圖像合并裁剪算法,將更新相同區(qū)域的圖像更新數(shù)據(jù)進(jìn)行合并或裁剪。然后,通過圖像分割算法對(duì)圖像更新數(shù)據(jù)進(jìn)行處理,產(chǎn)生新的圖像更新數(shù)據(jù)。對(duì)所有新的圖像更新數(shù)據(jù)提取特征值,發(fā)送新的圖像更新數(shù)據(jù)及對(duì)應(yīng)的特征值??蛻舳私邮盏教卣髦担瑫?huì)將該新的圖像更新數(shù)據(jù)緩存到客戶端本地。當(dāng)命中特征值,則只發(fā)送特征值,不發(fā)送新的圖像更新數(shù)據(jù)。最后,通過圖像壓縮算法,對(duì)所有的圖像更新數(shù)據(jù)壓縮。
虛擬桌面原始音頻播放數(shù)據(jù)經(jīng)過音頻優(yōu)化模塊后,該模塊會(huì)對(duì)音頻數(shù)據(jù)進(jìn)行編碼壓縮,形成音頻流,發(fā)送到客戶端。
服務(wù)端通過虛擬驅(qū)動(dòng)從操作系統(tǒng)獲取最原始的數(shù)據(jù),服務(wù)端的虛擬顯示驅(qū)動(dòng)模塊將虛擬桌面原始更新數(shù)據(jù)發(fā)送給圖形優(yōu)化模塊,經(jīng)過圖形優(yōu)化模塊處理生成視頻流或圖形流,大大減少了虛擬桌面原始更新數(shù)據(jù)的發(fā)送量。服務(wù)端的虛擬音頻驅(qū)動(dòng)模塊將虛擬桌面原始音頻播放數(shù)據(jù)發(fā)送給音頻優(yōu)化模塊,經(jīng)過音頻優(yōu)化模塊處理生成音頻流,也大大減少了虛擬桌面原始音頻播放數(shù)據(jù)的發(fā)送量?;谝陨戏椒?,也就可以有效地降低在虛擬桌面辦公傳輸?shù)臄?shù)據(jù)量,降低帶寬,滿足公有云的低帶寬要求。
需要注意的是,以上列舉的僅是本發(fā)明的一種具體實(shí)施例。顯然,本發(fā)明不限于以上實(shí)施例,還可以有許多變形??傊?,本領(lǐng)域的普通技術(shù)人員能從本發(fā)明公開的內(nèi)容直接導(dǎo)出或聯(lián)想到的所有變形,均應(yīng)認(rèn)為是本發(fā)明的保護(hù)范圍。