一種vdi環(huán)境下的數(shù)據(jù)發(fā)送方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種VDI環(huán)境下的數(shù)據(jù)發(fā)送方法和裝置。該技術(shù)方案中,當(dāng)桌面協(xié)議客戶端處于非正常狀態(tài)時(shí),桌面協(xié)議服務(wù)端以低于其處于正常狀態(tài)時(shí)的速率向其發(fā)送桌面圖像數(shù)據(jù),一方面,由于發(fā)送速率降低,因此能夠節(jié)省部分系統(tǒng)資源,降低此時(shí)虛擬機(jī)對(duì)服務(wù)器的資源占用;另一方面,由于桌面協(xié)議客戶端處于非正常狀態(tài)時(shí),桌面協(xié)議服務(wù)端依然對(duì)其發(fā)送桌面圖像數(shù)據(jù),因此當(dāng)桌面協(xié)議客戶端恢復(fù)正常狀態(tài)時(shí),桌面協(xié)議服務(wù)端需要發(fā)送的數(shù)據(jù)量相比于現(xiàn)有技術(shù)大大減少,因此減少了對(duì)網(wǎng)絡(luò)帶寬的占用,并能夠減少顯示延時(shí),提高用戶體驗(yàn)。
【專利說(shuō)明】一種VDI環(huán)境下的數(shù)據(jù)發(fā)送方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及虛擬化【技術(shù)領(lǐng)域】,尤其是涉及一種VDI環(huán)境下的數(shù)據(jù)發(fā)送方法和裝置。
【背景技術(shù)】
[0002]虛擬桌面基礎(chǔ)架構(gòu)(Visual Desktop Infrastructure, VDI)是目前企業(yè)辦公環(huán)境的一種流行技術(shù),它不是給每個(gè)用戶都配置一臺(tái)運(yùn)行某操作系統(tǒng)(比如Windows XP或Vista)的桌面?zhèn)€人計(jì)算機(jī),而是通過(guò)在遠(yuǎn)端的服務(wù)器上運(yùn)行某操作系統(tǒng),將用戶的桌面虛擬化,簡(jiǎn)單來(lái)講,就是將一臺(tái)計(jì)算機(jī)屏幕顯示的內(nèi)容傳送到另外一處的屏幕顯示。因此,在虛擬桌面場(chǎng)景下至少應(yīng)該存在一臺(tái)服務(wù)器和一臺(tái)終端設(shè)備(比如客戶機(jī)或者個(gè)人計(jì)算機(jī)等),通過(guò)在服務(wù)器中運(yùn)行若干虛擬機(jī),使每個(gè)用戶能夠通過(guò)終端設(shè)備上安裝的虛擬桌面客戶端(以下簡(jiǎn)稱為客戶端)以一對(duì)一的方式與服務(wù)器中的虛擬機(jī)連接,此時(shí)客戶端顯示的內(nèi)容就是虛擬機(jī)的顯示內(nèi)容,用戶可以通過(guò)操作客戶端顯示的內(nèi)容對(duì)虛擬機(jī)進(jìn)行訪問(wèn)。
[0003]當(dāng)客戶端連接服務(wù)器中的虛擬機(jī)后,虛擬機(jī)會(huì)向客戶端發(fā)送圖像數(shù)據(jù),使圖像數(shù)據(jù)顯示在客戶端上,當(dāng)客戶端最小化、隱藏或鎖屏?xí)r,客戶端對(duì)服務(wù)器中的虛擬機(jī)并沒有實(shí)際操作,為了能夠降低此時(shí)虛擬機(jī)對(duì)服務(wù)器的資源占用,提高服務(wù)器的資源利用率,現(xiàn)有技術(shù)提供了一種方案,如圖1所示,為現(xiàn)有技術(shù)提供的在VDI環(huán)境下客戶端最小化時(shí)的實(shí)現(xiàn)示意圖。當(dāng)客戶端最小化時(shí),向服務(wù)器發(fā)送相關(guān)通知,服務(wù)器停止向客戶端發(fā)送圖像數(shù)據(jù);當(dāng)客戶端恢復(fù)顯示時(shí),再次向服務(wù)器發(fā)送相關(guān)通知,服務(wù)器重新發(fā)送圖像數(shù)據(jù)到客戶端進(jìn)行顯不。
[0004]上述方案雖然能夠在客戶端最小化、隱藏或鎖屏?xí)r,降低虛擬機(jī)對(duì)服務(wù)器的資源占用,提高服務(wù)器的資源利用率,但是,當(dāng)客戶端恢復(fù)顯示時(shí),服務(wù)器需要重新發(fā)送大量圖像數(shù)據(jù)到客戶端,一方面會(huì)造成突發(fā)的網(wǎng)絡(luò)資源占用,另一方面由于客戶端需要接收大量圖像數(shù)據(jù),因此恢復(fù)顯示時(shí)會(huì)有延時(shí),導(dǎo)致用戶體驗(yàn)比較差。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供一種VDI環(huán)境下的數(shù)據(jù)發(fā)送方法和裝置,用以解決現(xiàn)有技術(shù)中為了減少虛擬機(jī)對(duì)服務(wù)器的資源占用而導(dǎo)致客戶端恢復(fù)顯示時(shí)需要占用大量網(wǎng)絡(luò)帶寬,以及由于顯示延時(shí)而使得用戶體驗(yàn)比較差的問(wèn)題。
[0006]本發(fā)明實(shí)施例采用以下技術(shù)方案:
[0007]第一方面,提供一種虛擬桌面基礎(chǔ)架構(gòu)VDI環(huán)境下的數(shù)據(jù)發(fā)送方法,包括:
[0008]當(dāng)桌面協(xié)議服務(wù)端接收到用于表征桌面協(xié)議客戶端處于非正常狀態(tài)的第一通知消息時(shí),將接收到所述第一通知消息后獲取的桌面圖像數(shù)據(jù)以第一速率發(fā)送給所述桌面協(xié)議客戶端;所述非正常狀態(tài)為所述桌面協(xié)議客戶端在預(yù)先設(shè)置的第一時(shí)間長(zhǎng)度內(nèi)對(duì)其所在的終端桌面沒有操作的狀態(tài);
[0009]當(dāng)桌面協(xié)議服務(wù)端接收到用于表征桌面協(xié)議客戶端處于正常狀態(tài)的第二通知消息時(shí),將接收到所述第二通知消息后獲取的桌面圖像數(shù)據(jù)以大于所述第一速率的第二速率發(fā)送給所述桌面協(xié)議客戶端;所述正常狀態(tài)為桌面協(xié)議客戶端在預(yù)先設(shè)置的第二時(shí)間長(zhǎng)度內(nèi)對(duì)其所在的終端桌面有操作的狀態(tài)。
[0010]結(jié)合第一方面,在第一種可能的實(shí)現(xiàn)方式中,所述桌面圖像數(shù)據(jù)為非3D圖像數(shù)據(jù);則
[0011]桌面協(xié)議服務(wù)端接收到所述第一通知消息后按照如下方式獲取桌面圖像數(shù)據(jù):
[0012]桌面協(xié)議服務(wù)端通過(guò)圖像設(shè)備接口⑶I子系統(tǒng)獲取桌面圖像數(shù)據(jù)。
[0013]結(jié)合第一方面,在第二種可能的實(shí)現(xiàn)方式中,所述桌面圖像數(shù)據(jù)為3D圖像數(shù)據(jù);則
[0014]桌面協(xié)議服務(wù)端接收到所述第一通知消息后按照如下方式獲取桌面圖像數(shù)據(jù):
[0015]桌面協(xié)議服務(wù)端將當(dāng)前渲染幀率設(shè)置為第一幀率;所述第一幀率小于當(dāng)接收到的所述第二通知消息時(shí)的第二幀率;并
[0016]根據(jù)所述第一幀率,獲取3D渲染指令;
[0017]將所述3D渲染指令重定向到渲染服務(wù)器上進(jìn)行渲染,得到渲染后的桌面圖像數(shù)據(jù)。
[0018]結(jié)合第一方面,在第三種可能的實(shí)現(xiàn)方式中,所述桌面圖像數(shù)據(jù)為3D圖像數(shù)據(jù);則
[0019]桌面協(xié)議服務(wù)端接收到所述第二通知消息后按照如下方式獲取桌面圖像數(shù)據(jù):
[0020]桌面協(xié)議服務(wù)端將當(dāng)前渲染幀率設(shè)置為第二幀率;所述第二幀率大于當(dāng)接收到的所述第一通知消息時(shí)的第一幀率;并
[0021]根據(jù)所述第二幀率,獲取3D渲染指令;
[0022]將所述3D渲染指令重定向到渲染服務(wù)器上進(jìn)行渲染,得到渲染后的桌面圖像數(shù)據(jù)。
[0023]結(jié)合第一方面、第一方面的第一種可能的實(shí)現(xiàn)方式、第一方面的第二種可能的實(shí)現(xiàn)方式或第一方面的第三種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述非正常狀態(tài)包括:
[0024]最小化狀態(tài)、隱藏狀態(tài)或者鎖屏狀態(tài)。
[0025]結(jié)合第一方面、第一方面的第一種可能的實(shí)現(xiàn)方式、第一方面的第二種可能的實(shí)現(xiàn)方式、第一方面的第三種可能的實(shí)現(xiàn)方式或第一方面的第四種可能的實(shí)現(xiàn)方式,在第五種可能的實(shí)現(xiàn)方式中,在VDI環(huán)境下,所述桌面協(xié)議客戶端處于所述虛擬桌面客戶端中,所述桌面協(xié)議服務(wù)端處于虛擬桌面服務(wù)器中的虛擬機(jī)上,其中:
[0026]所述桌面協(xié)議服務(wù)端將獲取的桌面圖像數(shù)據(jù)通過(guò)所述虛擬機(jī)中的操作系統(tǒng)以及所述虛擬桌面服務(wù)器中的物理網(wǎng)卡發(fā)送給所述虛擬桌面客戶端中的桌面協(xié)議客戶端。
[0027]第二方面,提供一種虛擬桌面基礎(chǔ)架構(gòu)VDI環(huán)境下的數(shù)據(jù)發(fā)送裝置,所述裝置作為桌面協(xié)議服務(wù)端,包括:
[0028]第一發(fā)送單元,用于當(dāng)接收到用于表征桌面協(xié)議客戶端處于非正常狀態(tài)的第一通知消息時(shí),將接收到所述第一通知消息后獲取的桌面圖像數(shù)據(jù)以第一速率發(fā)送給所述桌面協(xié)議客戶端;所述非正常狀態(tài)為所述桌面協(xié)議客戶端在預(yù)先設(shè)置的第一時(shí)間長(zhǎng)度內(nèi)對(duì)其所在的終端桌面沒有操作的狀態(tài);[0029]第二發(fā)送單元,用于當(dāng)接收到用于表征桌面協(xié)議客戶端處于正常狀態(tài)的第二通知消息時(shí),將接收到所述第二通知消息后獲取的桌面圖像數(shù)據(jù)以大于所述第一速率的第二速率發(fā)送給所述桌面協(xié)議客戶端;所述正常狀態(tài)為桌面協(xié)議客戶端在預(yù)先設(shè)置的第二時(shí)間長(zhǎng)度內(nèi)對(duì)其所在的終端桌面有操作的狀態(tài)。
[0030]結(jié)合第二方面,在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述桌面圖像數(shù)據(jù)為非3D圖像數(shù)據(jù);則
[0031]所述裝置還包括:
[0032]桌面圖像數(shù)據(jù)第一獲取單元,用于接收到所述第一通知消息后,通過(guò)圖像設(shè)備接口⑶I子系統(tǒng)獲取桌面圖像數(shù)據(jù)。
[0033]結(jié)合第二方面,在第二方面的第二種可能的實(shí)現(xiàn)方式中,所述桌面圖像數(shù)據(jù)為3D圖像數(shù)據(jù);則
[0034]所述裝置還包括:
[0035]桌面圖像數(shù)據(jù)第二獲取單元,用于接收到所述第一通知消息后,將當(dāng)前渲染幀率設(shè)置為第一幀率;所述第一幀率小于當(dāng)接收到的所述第二通知消息時(shí)的第二幀率;并根據(jù)所述第一幀率,獲取3D渲染指令;將所述3D渲染指令重定向到渲染服務(wù)器上進(jìn)行渲染,得到渲染后的桌面圖像數(shù)據(jù)。
[0036]結(jié)合第二方面,在第二方面的第三種可能的實(shí)現(xiàn)方式中,所述桌面圖像數(shù)據(jù)為3D圖像數(shù)據(jù);則
[0037]所述裝置還包括:
[0038]桌面圖像數(shù)據(jù)第三獲取單元,用于接收到所述第二通知消息后,將當(dāng)前渲染幀率設(shè)置為第二幀率;所述第二幀率大于當(dāng)接收到的所述第一通知消息時(shí)的第一幀率;并根據(jù)所述第二幀率,獲取3D渲染指令;將所述3D渲染指令重定向到渲染服務(wù)器上進(jìn)行渲染,得到渲染后的桌面圖像數(shù)據(jù)。
[0039]結(jié)合第二方面、第二方面的第一種可能的實(shí)現(xiàn)方式、第二方面的第二種可能的實(shí)現(xiàn)方式或第二方面的第三種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,所述非正常狀態(tài)包括:
[0040]最小化狀態(tài)、隱藏狀態(tài)或者鎖屏狀態(tài)。
[0041]結(jié)合第二方面、第二方面的第一種可能的實(shí)現(xiàn)方式、第二方面的第二種可能的實(shí)現(xiàn)方式、第二方面的第三種可能的實(shí)現(xiàn)方式或第二方面的第四種可能的實(shí)現(xiàn)方式,在第五種可能的實(shí)現(xiàn)方式中,在VDI環(huán)境下,所述桌面協(xié)議客戶端處于所述虛擬桌面客戶端中,所述桌面協(xié)議服務(wù)端處于虛擬桌面服務(wù)器中的虛擬機(jī)上,其中:
[0042]所述桌面協(xié)議服務(wù)端將獲取的桌面圖像數(shù)據(jù)通過(guò)所述虛擬機(jī)中的操作系統(tǒng)以及所述虛擬桌面服務(wù)器中的物理網(wǎng)卡發(fā)送給所述虛擬桌面客戶端中的桌面協(xié)議客戶端。
[0043]本發(fā)明實(shí)施例中,當(dāng)桌面協(xié)議客戶端處于非正常狀態(tài)時(shí),桌面協(xié)議服務(wù)端以低于其處于正常狀態(tài)時(shí)的速率向其發(fā)送桌面圖像數(shù)據(jù),一方面,由于發(fā)送速率降低,因此能夠節(jié)省部分系統(tǒng)資源,降低此時(shí)虛擬機(jī)對(duì)服務(wù)器的資源占用;另一方面,由于桌面協(xié)議客戶端處于非正常狀態(tài)時(shí),桌面協(xié)議服務(wù)端依然對(duì)其發(fā)送桌面圖像數(shù)據(jù),因此當(dāng)桌面協(xié)議客戶端恢復(fù)正常狀態(tài)時(shí),桌面協(xié)議服務(wù)端需要發(fā)送的數(shù)據(jù)量相比于現(xiàn)有技術(shù)大大減少,因此減少了對(duì)網(wǎng)絡(luò)帶寬的占用,并能夠減少顯示延時(shí),提高用戶體驗(yàn)?!緦@綀D】
【附圖說(shuō)明】
[0044]圖1為現(xiàn)有技術(shù)提供的在VDI環(huán)境下客戶端最小化時(shí)的實(shí)現(xiàn)示意圖;
[0045]圖2為本發(fā)明實(shí)施例提供的一種VDI環(huán)境下的數(shù)據(jù)發(fā)送方法的流程圖;
[0046]圖3為本發(fā)明實(shí)施例中VDI的典型架構(gòu)圖;
[0047]圖4為本發(fā)明實(shí)施例中遠(yuǎn)程桌面服務(wù)器的典型架構(gòu)圖;
[0048]圖5為本發(fā)明實(shí)施例提供的在普通辦公場(chǎng)景下的實(shí)現(xiàn)上述方法的系統(tǒng)邏輯結(jié)構(gòu)圖;
[0049]圖6為本發(fā)明實(shí)施例中桌面協(xié)議服務(wù)端的工作模式的示意圖;
[0050]圖7為本發(fā)明實(shí)施例提供的上述方法在普通辦公場(chǎng)景下的實(shí)現(xiàn)流程圖;
[0051]圖8為本發(fā)明實(shí)施例提供的在高清制圖辦公場(chǎng)景下實(shí)現(xiàn)上述方法的系統(tǒng)邏輯結(jié)構(gòu)圖;
[0052]圖9為本發(fā)明實(shí)施例提供的上述方法在高清制圖辦公場(chǎng)景下的實(shí)現(xiàn)流程圖;
[0053]圖10為本發(fā)明實(shí)施例提供的一種VDI環(huán)境下的數(shù)據(jù)發(fā)送裝置的結(jié)構(gòu)示意圖;
[0054]圖11為本發(fā)明實(shí)施例提供的桌面協(xié)議服務(wù)器的硬件邏輯示意圖。
【具體實(shí)施方式】
[0055]為了解決現(xiàn)有技術(shù)中為了減少虛擬機(jī)對(duì)服務(wù)器的資源占用而導(dǎo)致客戶端恢復(fù)顯示時(shí)需要占用大量網(wǎng)絡(luò)帶寬,以及由于顯示延時(shí)而使得用戶體驗(yàn)比較差的問(wèn)題,本發(fā)明實(shí)施例提出了一種VDI環(huán)境下的數(shù)據(jù)發(fā)送方法和裝置。該技術(shù)方案中,當(dāng)桌面協(xié)議客戶端處于非正常狀態(tài)時(shí),桌面協(xié)議服務(wù)端以低于其處于正常狀態(tài)時(shí)的速率向其發(fā)送桌面圖像數(shù)據(jù),一方面,由于發(fā)送速率降低,因此能夠節(jié)省部分系統(tǒng)資源,降低此時(shí)虛擬機(jī)對(duì)服務(wù)器的資源占用;另一方面,由于桌面協(xié)議客戶端處于非正常狀態(tài)時(shí),桌面協(xié)議服務(wù)端依然對(duì)其發(fā)送桌面圖像數(shù)據(jù),因此當(dāng)桌面協(xié)議客戶端恢復(fù)正常狀態(tài)時(shí),桌面協(xié)議服務(wù)端需要發(fā)送的數(shù)據(jù)量相比于現(xiàn)有技術(shù)大大減少,因此減少了對(duì)網(wǎng)絡(luò)帶寬的占用,并能夠減少顯示延時(shí),提高用戶體驗(yàn)。
[0056]下面將結(jié)合各個(gè)附圖對(duì)本發(fā)明實(shí)施例技術(shù)方案的主要實(shí)現(xiàn)原理、【具體實(shí)施方式】及其對(duì)應(yīng)能夠達(dá)到的有益效果進(jìn)行詳細(xì)地闡述。
[0057]本發(fā)明實(shí)施例提出一種VDI環(huán)境下的數(shù)據(jù)發(fā)送方法,如圖2所示,為該方法的流程圖,具體包括下述步驟:
[0058]步驟21,當(dāng)桌面協(xié)議服務(wù)端接收到用于表征桌面協(xié)議客戶端處于非正常狀態(tài)的第一通知消息時(shí),將接收到該第一通知消息后獲取的桌面圖像數(shù)據(jù)以第一速率發(fā)送給桌面協(xié)議客戶端;
[0059]其中,非正常狀態(tài)為桌面協(xié)議客戶端在預(yù)先設(shè)置的第一時(shí)間長(zhǎng)度內(nèi)對(duì)其所在的終端桌面沒有操作的狀態(tài),具體的,可以指最小化狀態(tài)、隱藏狀態(tài)和鎖屏狀態(tài)中的任意一種。
[0060]步驟22,當(dāng)桌面協(xié)議服務(wù)端接收到用于表征桌面協(xié)議客戶端處于正常狀態(tài)的第二通知消息時(shí),將接收到該第二通知消息后獲取的桌面圖像數(shù)據(jù)以大于所述第一速率的第二速率發(fā)送給桌面協(xié)議客戶端。
[0061]當(dāng)桌面圖像數(shù)據(jù)為非3D圖像數(shù)據(jù)時(shí),桌面協(xié)議客戶端連接服務(wù)器(即桌面協(xié)議服務(wù)端)后,虛擬機(jī)中的遠(yuǎn)程桌面協(xié)議服務(wù)程序獲取用戶虛擬機(jī)桌面的圖像以及指令數(shù)據(jù),并進(jìn)行圖像識(shí)別,緩存計(jì)算以及指令整合等操作,獲得桌面圖像數(shù)據(jù),并將獲得的桌面圖像數(shù)據(jù)以第二速率發(fā)送給桌面協(xié)議客戶端;當(dāng)在接收到桌面協(xié)議客戶端發(fā)送的第一通知消息后,將獲得的桌面數(shù)據(jù)以低于第二速率的第一速率發(fā)送給桌面協(xié)議客戶端,以釋放部分系統(tǒng)資源,降低虛擬機(jī)對(duì)服務(wù)器的資源占用;
[0062]為了進(jìn)一步減少虛擬機(jī)對(duì)服務(wù)器的資源占用,在接收到桌面協(xié)議客戶端發(fā)送的第一通知消息后,桌面協(xié)議服務(wù)程序不再進(jìn)行圖像識(shí)別、緩存計(jì)算和指令整合等操作,而是將桌面圖像數(shù)據(jù)的處理交給圖像設(shè)備接口(Graphics Device Interface,⑶I)子系統(tǒng),從而降低對(duì)系統(tǒng)資源的占用。其中,GDI子系統(tǒng)是虛擬機(jī)Windows操作系統(tǒng)中的一個(gè)子系統(tǒng),它的主要任務(wù)是負(fù)責(zé)系統(tǒng)和繪圖程序之間的信息交換,處理所有Windows程序的圖形輸出。
[0063]當(dāng)桌面圖像數(shù)據(jù)為3D圖像數(shù)據(jù)時(shí),當(dāng)接收到第一通知消息時(shí),首先將當(dāng)前渲染幀率設(shè)置為第一幀率,該第一幀率要小于接收到第二通知消息時(shí)的第二幀率,然后再根據(jù)設(shè)置的第一幀率來(lái)獲取3D渲染指令,并將3D渲染指令重定向到渲染服務(wù)器上進(jìn)行渲染,渲染后的結(jié)果即為向客戶端發(fā)送的桌面圖像數(shù)據(jù);而當(dāng)接收到第二通知消息時(shí),將當(dāng)前渲染幀率設(shè)置為第二幀率,該第二幀率要大于接收到第一通知消息時(shí)的第一幀率,然后再根據(jù)設(shè)置的第二幀率來(lái)獲取3D渲染指令,并將3D渲染指令重定向到渲染服務(wù)器上進(jìn)行渲染,渲染后的結(jié)果即為向客戶端發(fā)送的桌面圖像數(shù)據(jù)。
[0064]其中,渲染幀率的大小影響到獲取3D渲染指令的速度,當(dāng)渲染幀率比較小時(shí),獲取3D渲染指令的速度也比較慢,重定向到渲染服務(wù)器上進(jìn)行渲染的3D渲染指令的數(shù)量也減少,從而能夠減少占用渲染服務(wù)器中圖形處理器(Graphic Processing Unit, GPU)的處理資源。
[0065]本發(fā)明實(shí)施例中,當(dāng)桌面協(xié)議客戶端處于非正常狀態(tài)時(shí),桌面協(xié)議服務(wù)端以低于其處于正常狀態(tài)時(shí)的速率向其發(fā)送桌面圖像數(shù)據(jù),一方面,由于發(fā)送速率降低,因此能夠節(jié)省部分系統(tǒng)資源,降低此時(shí)虛擬機(jī)對(duì)服務(wù)器的資源占用;另一方面,由于桌面協(xié)議客戶端處于非正常狀態(tài)時(shí),桌面協(xié)議服務(wù)端依然對(duì)其發(fā)送桌面圖像數(shù)據(jù),因此當(dāng)桌面協(xié)議客戶端恢復(fù)正常狀態(tài)時(shí),桌面協(xié)議服務(wù)端需要發(fā)送的數(shù)據(jù)量相比于現(xiàn)有技術(shù)大大減少,因此減少了對(duì)網(wǎng)絡(luò)帶寬的占用,并能夠減少顯示延時(shí),提高用戶體驗(yàn)。
[0066]根據(jù)上述實(shí)現(xiàn)原理對(duì)本發(fā)明實(shí)施例提供的方案進(jìn)行詳細(xì)介紹。
[0067]如圖3所示,為本發(fā)明實(shí)施例中VDI的典型架構(gòu)圖。其中,左側(cè)為顯示虛擬桌面的客戶端,通常稱為瘦客戶端(Thin Client,TC),其載體形式可以是普通電腦101a、平板電腦101b或智能手機(jī)101c等。它們通過(guò)網(wǎng)絡(luò)Networkl02使用遠(yuǎn)程桌面協(xié)議(Remote DesktopProtocol, RDP,注:非特指微軟的RDP協(xié)議)103訪問(wèn)服務(wù)器。接入網(wǎng)關(guān)(Access Gateway,AG)104作為服務(wù)器和客戶端傳輸桌面圖像數(shù)據(jù)的接口,負(fù)責(zé)服務(wù)器的內(nèi)部網(wǎng)絡(luò)接入。在典型場(chǎng)景下,服務(wù)器內(nèi)包含桌面?zhèn)鬏斂刂破?Desktop Delivery Control,DDC) 105、遠(yuǎn)程桌面月艮務(wù)器(Remote Desktop Server, RDS) 106 和活動(dòng)目錄服務(wù)器(Activity Directory, AD)108。桌面?zhèn)鬏斂刂破?05負(fù)責(zé)用戶鑒權(quán)、虛擬機(jī)分配等功能,它通過(guò)活動(dòng)目錄服務(wù)器108存儲(chǔ)的用戶賬戶信息識(shí)別用戶。遠(yuǎn)程桌面服務(wù)器106提供了虛擬桌面的載體,用戶的桌面系統(tǒng)(Virtual Desktop, VD)以虛擬機(jī)(Virtual Machine, VM) 107的軟件形式存在于遠(yuǎn)程桌面服務(wù)器106上。渲染服務(wù)器(Render Server,RS)109向有高清制圖需求的用戶提供圖形虛擬機(jī)的共享渲染平臺(tái),渲染進(jìn)程(Render_vm)110為3D應(yīng)用程序提供3D硬件能力的重
定向渲染。
[0068]其中,遠(yuǎn)程桌面服務(wù)器106的硬件結(jié)構(gòu)和軟件結(jié)構(gòu)是遠(yuǎn)程桌面系統(tǒng)中最重要的組件,它的典型結(jié)構(gòu)如圖4所示。遠(yuǎn)程桌面服務(wù)器106由三部分組成,分別為硬件平臺(tái)(Hardware Platform) 150、系統(tǒng)管理程序(Hypervisor) 151、虛擬機(jī)執(zhí)行空間(VirtualMachine Execution Space) 152。硬件平臺(tái)150中包括服務(wù)器物理結(jié)構(gòu)中的物理硬盤(Hard Drive) 160、物理處理器(Central Processing Unit, CPU) 161、物理網(wǎng)卡(NetworkInterface Card, NIC) 162、物理內(nèi)存(Random Access Memory, RAM) 163。系統(tǒng)管理程序151和虛擬機(jī)執(zhí)行空間152分別提供了虛擬機(jī)的硬件平臺(tái)和軟件平臺(tái)。系統(tǒng)管理程序151是物理硬件和虛擬機(jī)之間的中間層,負(fù)責(zé)協(xié)調(diào)各個(gè)虛擬機(jī)對(duì)服務(wù)器物理硬件的訪問(wèn),它包含多個(gè)虛擬機(jī)監(jiān)視器(Virtual Machine Monitor,VMM) 170,虛擬機(jī)監(jiān)視器170中包含實(shí)現(xiàn)虛擬機(jī)的虛擬硬件平臺(tái)(Virtual Hardware Platform, VHP) 171,虛擬硬件平臺(tái)171中包含了虛擬出來(lái)的虛擬硬盤172、虛擬處理器173、虛擬內(nèi)存174、虛擬顯卡(Video Adapter)175和虛擬網(wǎng)卡176等。虛擬機(jī)的軟件系統(tǒng)運(yùn)行在每個(gè)虛擬硬件平臺(tái)上,并一一對(duì)應(yīng)。虛擬機(jī)執(zhí)行空間152中運(yùn)行了多個(gè)虛擬機(jī)180,客戶操作系統(tǒng)(Guest OS) 181、虛擬機(jī)中的應(yīng)用程序(Applications)185和顯示協(xié)議代理程序(Display Protocol Agent)187運(yùn)行于虛擬機(jī)180中,客戶操作系統(tǒng)181包含了一個(gè)設(shè)備驅(qū)動(dòng)層(Device Driver Layer)182,安裝了顯卡驅(qū)動(dòng)(Video Adapter Driver) 183、網(wǎng)卡驅(qū)動(dòng)(NIC Driver) 184等,還包含顯示應(yīng)用程序編程接口(Display Application Programming Interface, Display API) 186。
[0069]參考圖3和圖4,將用戶桌面系統(tǒng)的圖像顯示在客戶端101上的過(guò)程為:虛擬機(jī)180中的應(yīng)用程序185調(diào)用操作系統(tǒng)的Display API186顯示應(yīng)用程序界面,DisplayAPI186將應(yīng)用程序界面的桌面圖像數(shù)據(jù)傳遞至顯示驅(qū)動(dòng)183中,然后顯示驅(qū)動(dòng)183和顯示協(xié)議代理程序187進(jìn)行交互,由顯示協(xié)議代理程序187根據(jù)遠(yuǎn)程桌面協(xié)議將桌面圖像數(shù)據(jù)打包交給網(wǎng)卡驅(qū)動(dòng)184,最后桌面圖像數(shù)據(jù)經(jīng)過(guò)虛擬網(wǎng)卡176,再經(jīng)過(guò)物理網(wǎng)卡162發(fā)送到客戶端101上。
[0070]由于桌面圖像數(shù)據(jù)分為非3D圖像數(shù)據(jù)和3D圖像數(shù)據(jù),因此存在以下兩種應(yīng)用場(chǎng)景,一種是普通辦公場(chǎng)景,傳輸?shù)淖烂鎴D像數(shù)據(jù)通常為非3D圖像數(shù)據(jù),另一種是高清制圖辦公場(chǎng)景,傳輸?shù)淖烂鎴D像數(shù)據(jù)通常為3D圖像數(shù)據(jù)。
[0071]下面對(duì)本發(fā)明實(shí)施例提供的VDI環(huán)境下的數(shù)據(jù)發(fā)送方法在上述兩種應(yīng)用場(chǎng)景下的實(shí)現(xiàn)過(guò)程分別進(jìn)行介紹。
[0072]如圖5所示,為本發(fā)明實(shí)施例提供的在普通辦公場(chǎng)景下實(shí)現(xiàn)上述方法的系統(tǒng)邏輯結(jié)構(gòu)圖,本發(fā)明實(shí)施例中只以VM和TC之間的交互過(guò)程為例進(jìn)行說(shuō)明。圖5中的TC對(duì)應(yīng)于圖3中的組件101a、101b或101c,桌面協(xié)議服務(wù)端對(duì)應(yīng)圖4中的組件187,下面對(duì)各模塊功能及交互流程進(jìn)行詳細(xì)描述。
[0073](一)桌面協(xié)議客戶端
[0074]該模塊負(fù)責(zé)和桌面協(xié)議服務(wù)端交互,接收桌面協(xié)議服務(wù)端發(fā)送的桌面圖像數(shù)據(jù),并轉(zhuǎn)發(fā)給指令執(zhí)行和顯示模塊進(jìn)行圖像處理和顯示。
[0075]該模塊還負(fù)責(zé)監(jiān)控自身顯示狀態(tài),當(dāng)桌面協(xié)議客戶端被最小化、隱藏或鎖屏?xí)r,反饋給桌面協(xié)議服務(wù)端,通知其進(jìn)行相應(yīng)的工作模式切換;當(dāng)桌面協(xié)議客戶端由最小化、隱藏或鎖屏切換到正常顯示時(shí),反饋給桌面協(xié)議服務(wù)端,也通知其進(jìn)行相應(yīng)的工作模式切換。
[0076](二)工作模式設(shè)置
[0077]該模塊接收桌面協(xié)議服務(wù)端發(fā)送的指令,對(duì)桌面協(xié)議服務(wù)端的工作模式進(jìn)行設(shè)置和切換。
[0078](三)桌面協(xié)議服務(wù)端
[0079]該模塊接收到顯示驅(qū)動(dòng)傳來(lái)的顯示指令和數(shù)據(jù)后,將指令和數(shù)據(jù)做相應(yīng)處理后將得到的桌面圖像數(shù)據(jù)發(fā)送到桌面協(xié)議客戶端。
[0080]該模塊有兩種工作模式,如圖6所示,正常工作模式下桌面協(xié)議服務(wù)端的工作包括:指令數(shù)據(jù)的獲取、圖像識(shí)別、緩存cache計(jì)算、指令整合等處理,并將處理后的指令和數(shù)據(jù)以第二速率(為保證用戶體驗(yàn),可以以30ms為發(fā)送周期,確保30幀的刷新率)發(fā)送到桌面協(xié)議客戶端;
[0081]驅(qū)動(dòng)代理模式下桌面協(xié)議服務(wù)端的工作包括:指令和數(shù)據(jù)交由⑶I子系統(tǒng)處理,獲取處理后的需更新的圖像,并將需更新的圖像以第一速率(根據(jù)用戶恢復(fù)顯示時(shí)可以接受的顯示延時(shí)進(jìn)行設(shè)定,比如可以將其設(shè)置為以150ms為周期)發(fā)送到桌面協(xié)議客戶端,以降低此時(shí)虛擬機(jī)對(duì)服務(wù)器的CPU占用,降低網(wǎng)絡(luò)資源占用。
[0082]在實(shí)際應(yīng)用中以第一速率為150ms為發(fā)送周期,第二速率為30ms為發(fā)送周期為例,可以實(shí)現(xiàn)單個(gè)VM的平均CPU占用降低20%,帶寬降低10%的效果。
[0083]如圖7所示,為本發(fā)明實(shí)施例提供的上述方法在普通辦公場(chǎng)景下的實(shí)現(xiàn)流程圖,其過(guò)程可以具體包括:
[0084]當(dāng)桌面協(xié)議客戶端連接虛擬機(jī)后,虛擬機(jī)的桌面協(xié)議服務(wù)端設(shè)置工作模式為正常工作模式,并開始進(jìn)行指令數(shù)據(jù)的圖像識(shí)別、cache計(jì)算、指令整合等操作,其中,正常工作模式下以30ms為發(fā)送周期來(lái)發(fā)送得到的桌面圖像數(shù)據(jù);
[0085]桌面協(xié)議客戶端接收到桌面圖像數(shù)據(jù)后進(jìn)行顯示桌面;
[0086]當(dāng)桌面協(xié)議客戶端檢測(cè)自身顯示狀態(tài)為最小化時(shí),發(fā)送狀態(tài)變化通知給桌面協(xié)議服務(wù)端;
[0087]桌面協(xié)議服務(wù)端接收到桌面協(xié)議客戶端最小化的通知后,通知工作模式設(shè)置模塊設(shè)置工作模式到驅(qū)動(dòng)代理模式,指令和數(shù)據(jù)交由系統(tǒng)的GDI子系統(tǒng)處理,獲取桌面圖像數(shù)據(jù),其中,驅(qū)動(dòng)代理模式下以150ms為發(fā)送周期發(fā)送得到的桌面圖像數(shù)據(jù);
[0088]桌面協(xié)議客戶端接收桌面圖像數(shù)據(jù),對(duì)顯示的圖像進(jìn)行更新;
[0089]當(dāng)桌面協(xié)議客戶端正常顯示時(shí),桌面協(xié)議客戶端將此變化通知到桌面協(xié)議服務(wù)端;
[0090]桌面協(xié)議服務(wù)端接收到桌面協(xié)議客戶端正常顯示的通知后,通知工作模式設(shè)置模塊設(shè)置工作模式到正常工作模式,并開始指令數(shù)據(jù)的圖像識(shí)別、cache計(jì)算、指令整合等操作,將得到的桌面圖像數(shù)據(jù)以30ms為發(fā)送周期發(fā)送給桌面協(xié)議客戶端;
[0091]協(xié)議桌面客戶端接收到桌面圖像數(shù)據(jù)后進(jìn)行顯示桌面。
[0092]如圖8所示,為本發(fā)明實(shí)施例提供的在高清制圖辦公場(chǎng)景下實(shí)現(xiàn)上述方法的系統(tǒng)邏輯結(jié)構(gòu)圖。圖8中的TC對(duì)應(yīng)于圖3中的組件101,桌面協(xié)議服務(wù)端對(duì)應(yīng)圖4中的組件187,Render Server對(duì)應(yīng)圖3中的組件109, ?宣染進(jìn)程Render_vm對(duì)應(yīng)圖3中的組件110。下面將就各模塊功能及交互流程進(jìn)行詳細(xì)描述。[0093](一)指令和數(shù)據(jù)捕獲,幀率控制
[0094]該模塊能夠接收3D渲染指令,并重定向到渲染服務(wù)器上進(jìn)行指令渲染。還支持桌面協(xié)議服務(wù)端對(duì)3D渲染指令的獲取速度進(jìn)行控制。比如將渲染幀率減小,便可以達(dá)到減慢3D渲染指令的獲取速度。
[0095](二)桌面協(xié)議服務(wù)端
[0096]該模塊接收到顯示驅(qū)動(dòng)傳來(lái)的處理指令和數(shù)據(jù)后,將指令和數(shù)據(jù)通過(guò)網(wǎng)絡(luò)或者虛擬化平臺(tái)的共享內(nèi)存方式重定向到渲染服務(wù)器上進(jìn)行渲染,并接收渲染后的結(jié)果,發(fā)送到桌面協(xié)議客戶端進(jìn)行顯示;
[0097]該模塊還處理桌面協(xié)議客戶端連接狀態(tài)變化、顯示狀態(tài)變化等消息,并根據(jù)結(jié)果去設(shè)置幀率,以改變3D應(yīng)用程序的渲染速度,從而達(dá)到降低占用渲染服務(wù)器中GPU的處理資源的效果。
[0098](三)Render_vm
[0099]該模塊主要實(shí)現(xiàn)了 3D指令重定向到渲染服務(wù)器上進(jìn)行渲染的功能:接收桌面協(xié)議服務(wù)端的3D渲染指令,并將渲染后的結(jié)果回傳給桌面協(xié)議服務(wù)端。
[0100](四)桌面協(xié)議客戶端
[0101]該模塊負(fù)責(zé)和桌面協(xié)議服務(wù)端交互,接收桌面協(xié)議服務(wù)端發(fā)送的桌面圖像數(shù)據(jù),并轉(zhuǎn)發(fā)給指令執(zhí)行和顯示模塊進(jìn)行圖像處理和顯示,還負(fù)責(zé)監(jiān)控自身顯示狀態(tài),并發(fā)送通知消息給桌面協(xié)議服務(wù)器。
[0102]如圖9所示,為本發(fā)明實(shí)施例提供的上述方法在高清制圖辦公場(chǎng)景下的實(shí)現(xiàn)流程圖,其過(guò)程可以具體包括:
[0103]當(dāng)桌面協(xié)議客戶端連接虛擬機(jī)后,虛擬機(jī)的桌面協(xié)議服務(wù)端設(shè)置當(dāng)前渲染幀率為正常模式,并獲取3D渲染指令;
[0104]桌面協(xié)議服務(wù)端將獲取的3D渲染指令通過(guò)網(wǎng)絡(luò)或者虛擬化平臺(tái)的共享內(nèi)存通道發(fā)送到渲染服務(wù)器上的渲染進(jìn)程,渲染進(jìn)程使用GPU的圖形能力對(duì)3D渲染指令進(jìn)行渲染,并將渲染后的結(jié)果回傳給桌面協(xié)議服務(wù)端;
[0105]桌面協(xié)議服務(wù)端以25幀率每秒的速度將渲染后得到的桌面圖像數(shù)據(jù)發(fā)送給桌面協(xié)議客戶端,桌面協(xié)議客戶端進(jìn)行桌面顯示;
[0106]當(dāng)桌面協(xié)議客戶端檢測(cè)自身顯示狀態(tài)為最小化時(shí),發(fā)送狀態(tài)變化通知給桌面協(xié)議服務(wù)端;
[0107]桌面協(xié)議服務(wù)端接收到客戶端最小化的通知消息后,通知幀率控制模塊,設(shè)置當(dāng)前渲染幀率為1幀,并繼續(xù)進(jìn)行3D渲染指令重定向渲染;
[0108]桌面協(xié)議服務(wù)端將渲染后的結(jié)果以10幀率每秒的速率將渲染后得到的桌面圖像數(shù)據(jù)發(fā)送給桌面協(xié)議客戶端,桌面協(xié)議客戶端進(jìn)行桌面顯示;
[0109]當(dāng)桌面協(xié)議客戶端正常顯示時(shí),桌面協(xié)議客戶端將此變化通知到桌面協(xié)議服務(wù)端;
[0110]桌面協(xié)議服務(wù)端接收到客戶端正常顯示的通知后,通知幀率控制模塊,設(shè)置當(dāng)前渲染幀率為正常,并繼續(xù)進(jìn)行3D渲染指令重定向渲染;
[0111]桌面協(xié)議服務(wù)端以25幀率每秒的速度將渲染后得到的桌面圖像數(shù)據(jù)發(fā)送給桌面協(xié)議客戶端,桌面協(xié)議客戶端進(jìn)行桌面顯示。[0112]需要說(shuō)明的是,上述兩個(gè)應(yīng)用場(chǎng)景均是描述桌面協(xié)議客戶端在最小化時(shí)的實(shí)現(xiàn)過(guò)程,當(dāng)桌面協(xié)議客戶端隱藏或鎖屏?xí)r,同樣按照上述處理過(guò)程實(shí)現(xiàn),在此不再贅述。
[0113]基于上述構(gòu)思,本發(fā)明實(shí)施例還提供了一種虛擬桌面基礎(chǔ)架構(gòu)VDI環(huán)境下的數(shù)據(jù)發(fā)送裝置,如圖10所示,為該裝置的結(jié)構(gòu)示意圖,其中,該裝置作為桌面協(xié)議服務(wù)端,可以包括下述單元:
[0114]第一發(fā)送單元101,用于當(dāng)接收到用于表征桌面協(xié)議客戶端處于非正常狀態(tài)的第一通知消息時(shí),將接收到所述第一通知消息后獲取的桌面圖像數(shù)據(jù)以第一速率發(fā)送給所述桌面協(xié)議客戶端;所述非正常狀態(tài)為所述桌面協(xié)議客戶端在預(yù)先設(shè)置的第一時(shí)間長(zhǎng)度內(nèi)對(duì)其所在的終端桌面沒有操作的狀態(tài);
[0115]第二發(fā)送單元102,用于當(dāng)接收到用于表征桌面協(xié)議客戶端處于正常狀態(tài)的第二通知消息時(shí),將接收到所述第二通知消息后獲取的桌面圖像數(shù)據(jù)以大于所述第一速率的第二速率發(fā)送給所述桌面協(xié)議客戶端;所述正常狀態(tài)為桌面協(xié)議客戶端在預(yù)先設(shè)置的第二時(shí)間長(zhǎng)度內(nèi)對(duì)其所在的終端桌面有操作的狀態(tài)。
[0116]其中,當(dāng)所述桌面圖像數(shù)據(jù)為非3D圖像數(shù)據(jù)時(shí),該裝置還可以包括:
[0117]桌面圖像數(shù)據(jù)第一獲取單元103,用于接收到所述第一通知消息后,通過(guò)圖像設(shè)備接口 GDI子系統(tǒng)獲取桌面圖像數(shù)據(jù)。
[0118]其中,當(dāng)所述桌面圖像數(shù)據(jù)為3D圖像數(shù)據(jù)時(shí),該裝置還可以包括:
[0119]桌面圖像數(shù)據(jù)第二獲取單元104,用于接收到所述第一通知消息后,將當(dāng)前渲染幀率設(shè)置為第一幀率;所述第一幀率小于當(dāng)接收到的所述第二通知消息時(shí)的第二幀率;并根據(jù)所述第一幀率,獲取3D渲染指令;將所述3D渲染指令重定向到渲染服務(wù)器上進(jìn)行渲染,得到渲染后的桌面圖像數(shù)據(jù)。
[0120]其中,當(dāng)所述桌面圖像數(shù)據(jù)為3D圖像數(shù)據(jù)時(shí),該裝置還可以包括:
[0121]桌面圖像數(shù)據(jù)第三獲取單元105,用于接收到所述第二通知消息后,將當(dāng)前渲染幀率設(shè)置為第二幀率;所述第二幀率大于當(dāng)接收到的所述第一通知消息時(shí)的第一幀率;并根據(jù)所述第二幀率,獲取3D渲染指令;將所述3D渲染指令重定向到渲染服務(wù)器上進(jìn)行渲染,得到渲染后的桌面圖像數(shù)據(jù)。
[0122]其中,所述非正常狀態(tài)可以包括:
[0123]最小化狀態(tài)、隱藏狀態(tài)或者鎖屏狀態(tài)。
[0124]相應(yīng)的,本發(fā)明實(shí)施例還提出一種桌面協(xié)議服務(wù)器,如圖11所示,為該桌面協(xié)議服務(wù)器的硬件邏輯示意圖,包括:處理器111、存儲(chǔ)器112、通信接口 113和總線114,其中:
[0125]處理器111、存儲(chǔ)器112、通信接口 113通過(guò)總線114相互連接;總線114可以是外設(shè)部件互連標(biāo)準(zhǔn)(peripheral component interconnect,簡(jiǎn)稱PCI)總線或擴(kuò)展工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu)(extended industry standard architecture,簡(jiǎn)稱 EISA)總線等。所述總線可以分為地址總線、數(shù)據(jù)總線、控制總線等。為便于表示,圖11中僅用一條粗線表示,但并不表示僅有一根總線或一種類型的總線。
[0126]存儲(chǔ)器112,用于存放程序。具體地,程序可以包括程序代碼,所述程序代碼包括計(jì)算機(jī)操作指令。存儲(chǔ)器112可能包含高速隨機(jī)存取存儲(chǔ)器RAM,也可能還包括非易失性存儲(chǔ)器(non-volatile memory),例如至少一個(gè)磁盤存儲(chǔ)器。
[0127]處理器111執(zhí)行存儲(chǔ)器112所存放的程序,用于執(zhí)行本發(fā)明實(shí)施例提供的VDI環(huán)境下的數(shù)據(jù)發(fā)送方法,所述方法包括:
[0128]當(dāng)桌面協(xié)議服務(wù)端接收到用于表征桌面協(xié)議客戶端處于非正常狀態(tài)的第一通知消息時(shí),將接收到所述第一通知消息后獲取的桌面圖像數(shù)據(jù)以第一速率發(fā)送給所述桌面協(xié)議客戶端;所述非正常狀態(tài)為所述桌面協(xié)議客戶端在預(yù)先設(shè)置的第一時(shí)間長(zhǎng)度內(nèi)對(duì)其所在的終端桌面沒有操作的狀態(tài);
[0129]當(dāng)桌面協(xié)議服務(wù)端接收到用于表征桌面協(xié)議客戶端處于正常狀態(tài)的第二通知消息時(shí),將接收到所述第二通知消息后獲取的桌面圖像數(shù)據(jù)以大于所述第一速率的第二速率發(fā)送給所述桌面協(xié)議客戶端;所述正常狀態(tài)為桌面協(xié)議客戶端在預(yù)先設(shè)置的第二時(shí)間長(zhǎng)度內(nèi)對(duì)其所在的終端桌面有操作的狀態(tài)。
[0130]當(dāng)所述桌面圖像數(shù)據(jù)為非3D圖像數(shù)據(jù)時(shí),桌面協(xié)議服務(wù)端接收到所述第一通知消息后按照如下方式獲取桌面圖像數(shù)據(jù):
[0131]桌面協(xié)議服務(wù)端通過(guò)圖像設(shè)備接口 GDI子系統(tǒng)獲取桌面圖像數(shù)據(jù)。
[0132]當(dāng)所述桌面圖像數(shù)據(jù)為3D圖像數(shù)據(jù)時(shí),桌面協(xié)議服務(wù)端接收到所述第一通知消息后按照如下方式獲取桌面圖像數(shù)據(jù):
[0133]桌面協(xié)議服務(wù)端將當(dāng)前渲染幀率設(shè)置為第一幀率;所述第一幀率小于當(dāng)接收到的所述第二通知消息時(shí)的第二幀率;并
[0134]根據(jù)所述第一幀率,獲取3D渲染指令;
[0135]將所述3D渲染指令重定向到渲染服務(wù)器上進(jìn)行渲染,得到渲染后的桌面圖像數(shù)據(jù)。
[0136]當(dāng)所述桌面圖像數(shù)據(jù)為3D圖像數(shù)據(jù)時(shí),接收到所述第二通知消息后按照如下方式獲取桌面圖像數(shù)據(jù):
[0137]桌面協(xié)議服務(wù)端將當(dāng)前渲染幀率設(shè)置為第二幀率;所述第二幀率大于當(dāng)接收到的所述第一通知消息時(shí)的第一幀率;并
[0138]根據(jù)所述第二幀率,獲取3D渲染指令;
[0139]將所述3D渲染指令重定向到渲染服務(wù)器上進(jìn)行渲染,得到渲染后的桌面圖像數(shù)據(jù)。
[0140]其中,所述非正常狀態(tài)包括:
[0141]最小化狀態(tài)、隱藏狀態(tài)或者鎖屏狀態(tài)。
[0142]其中,在VDI環(huán)境下,所述桌面協(xié)議客戶端處于所述虛擬桌面客戶端中,所述桌面協(xié)議服務(wù)端處于虛擬桌面服務(wù)器中的虛擬機(jī)上,其中:
[0143]所述桌面協(xié)議服務(wù)端將獲取的桌面圖像數(shù)據(jù)通過(guò)所述虛擬機(jī)中的操作系統(tǒng)以及所述虛擬桌面服務(wù)器中的物理網(wǎng)卡發(fā)送給所述虛擬桌面客戶端中的桌面協(xié)議客戶端。
[0144]本領(lǐng)域的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、裝置(設(shè)備)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
[0145]本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、裝置(設(shè)備)和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的
>J-U ρ?α裝直。
[0146]這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
[0147]這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
[0148]盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。
[0149]顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含 這些改動(dòng)和變型在內(nèi)。
【權(quán)利要求】
1.一種虛擬桌面基礎(chǔ)架構(gòu)VDI環(huán)境下的數(shù)據(jù)發(fā)送方法,其特征在于,包括:當(dāng)桌面協(xié)議服務(wù)端接收到用于表征桌面協(xié)議客戶端處于非正常狀態(tài)的第一通知消息時(shí),將接收到所述第一通知消息后獲取的桌面圖像數(shù)據(jù)以第一速率發(fā)送給所述桌面協(xié)議客戶端;所述非正常狀態(tài)為所述桌面協(xié)議客戶端在預(yù)先設(shè)置的第一時(shí)間長(zhǎng)度內(nèi)對(duì)其所在的終端桌面沒有操作的狀態(tài);當(dāng)桌面協(xié)議服務(wù)端接收到用于表征桌面協(xié)議客戶端處于正常狀態(tài)的第二通知消息時(shí),將接收到所述第二通知消息后獲取的桌面圖像數(shù)據(jù)以大于所述第一速率的第二速率發(fā)送給所述桌面協(xié)議客戶端;所述正常狀態(tài)為桌面協(xié)議客戶端在預(yù)先設(shè)置的第二時(shí)間長(zhǎng)度內(nèi)對(duì)其所在的終端桌面有操作的狀態(tài)。
2.如權(quán)利要求1所述的方法,其特征在于,所述桌面圖像數(shù)據(jù)為非3D圖像數(shù)據(jù);則桌面協(xié)議服務(wù)端接收到所述第一通知消息后按照如下方式獲取桌面圖像數(shù)據(jù):桌面協(xié)議服務(wù)端通過(guò)圖像設(shè)備接口 GDI子系統(tǒng)獲取桌面圖像數(shù)據(jù)。
3.如權(quán)利要求1所述的方法,其特征在于,所述桌面圖像數(shù)據(jù)為3D圖像數(shù)據(jù);則桌面協(xié)議服務(wù)端接收到所述第一通知消息后按照如下方式獲取桌面圖像數(shù)據(jù):桌面協(xié)議服務(wù)端將當(dāng)前渲染幀率設(shè)置為第一幀率;所述第一幀率小于當(dāng)接收到的所述第二通知消息時(shí)的第二幀率;并根據(jù)所述第一幀率,獲取3D渲染指令;將所述3D渲染指令重定向到渲染服務(wù)器上進(jìn)行渲染,得到渲染后的桌面圖像數(shù)據(jù)。
4.如權(quán)利要求1所述的方法,其特征在于,所述桌面圖像數(shù)據(jù)為3D圖像數(shù)據(jù);則桌面協(xié)議服務(wù)端接收到所述第二通知消息后按照如下方式獲取桌面圖像數(shù)據(jù):桌面協(xié)議服務(wù)端將當(dāng)前渲染幀率設(shè)置為第二幀率;所述第二幀率大于當(dāng)接收到的所述第一通知消息時(shí)的第一幀率;并根據(jù)所述第二幀率,獲取3D渲染指令;將所述3D渲染指令重定向到渲染服務(wù)器上進(jìn)行渲染,得到渲染后的桌面圖像數(shù)據(jù)。
5.如權(quán)利要求1~4任一所述的方法,其特征在于,所述非正常狀態(tài)包括:最小化狀態(tài)、隱藏狀態(tài)或者鎖屏狀態(tài)。
6.如權(quán)利要求1~5任一所述的方法,其特征在于,在VDI環(huán)境下,所述桌面協(xié)議客戶端處于所述虛擬桌面客戶端中,所述桌面協(xié)議服務(wù)端處于虛擬桌面服務(wù)器中的虛擬機(jī)上,其中:所述桌面協(xié)議服務(wù)端將獲取的桌面圖像數(shù)據(jù)通過(guò)所述虛擬機(jī)中的操作系統(tǒng)以及所述虛擬桌面服務(wù)器中的物理網(wǎng)卡發(fā)送給所述虛擬桌面客戶端中的桌面協(xié)議客戶端。
7.—種虛擬桌面基礎(chǔ)架構(gòu)VDI環(huán)境下的數(shù)據(jù)發(fā)送裝置,其特征在于,所述裝置作為桌面協(xié)議服務(wù)端,包括:第一發(fā)送單元,用于當(dāng)接收到用于表征桌面協(xié)議客戶端處于非正常狀態(tài)的第一通知消息時(shí),將接收到所述第一通知消息后獲取的桌面圖像數(shù)據(jù)以第一速率發(fā)送給所述桌面協(xié)議客戶端;所述非正常狀態(tài)為所述桌面協(xié)議客戶端在預(yù)先設(shè)置的第一時(shí)間長(zhǎng)度內(nèi)對(duì)其所在的終端桌面沒有操作的狀態(tài); 第二發(fā)送單元,用于當(dāng)接收到用于表征桌面協(xié)議客戶端處于正常狀態(tài)的第二通知消息時(shí),將接收到所述第二通知消息后獲取的桌面圖像數(shù)據(jù)以大于所述第一速率的第二速率發(fā)送給所述桌面協(xié)議客戶端;所述正常狀態(tài)為桌面協(xié)議客戶端在預(yù)先設(shè)置的第二時(shí)間長(zhǎng)度內(nèi)對(duì)其所在的終端桌面有操作的狀態(tài)。
8.如權(quán)利要求7所述的裝置,其特征在于,所述桌面圖像數(shù)據(jù)為非3D圖像數(shù)據(jù);則所述裝置還包括:桌面圖像數(shù)據(jù)第一獲取單元,用于接收到所述第一通知消息后,通過(guò)圖像設(shè)備接口⑶I子系統(tǒng)獲取桌面圖像數(shù)據(jù)。
9.如權(quán)利要求7所述的裝置,其特征在于,所述桌面圖像數(shù)據(jù)為3D圖像數(shù)據(jù);則所述裝置還包括:桌面圖像數(shù)據(jù)第二獲取單元,用于接收到所述第一通知消息后,將當(dāng)前渲染幀率設(shè)置為第一幀率;所述第一幀率小于當(dāng)接收到的所述第二通知消息時(shí)的第二幀率;并根據(jù)所述第一幀率,獲取3D渲染指令;將所述3D渲染指令重定向到渲染服務(wù)器上進(jìn)行渲染,得到渲染后的桌面圖像數(shù)據(jù)。
10.如權(quán)利要求7所述的裝置,其特征在于,所述桌面圖像數(shù)據(jù)為3D圖像數(shù)據(jù);則所述裝置還包括:桌面圖像數(shù)據(jù)第三獲取單元,用于接收到所述第二通知消息后,將當(dāng)前渲染幀率設(shè)置為第二幀率;所述第二幀率大于當(dāng)接收到的所述第一通知消息時(shí)的第一幀率;并根據(jù)所述第二幀率,獲取3D渲染指令;將所述3D渲染指令重定向到渲染服務(wù)器上進(jìn)行渲染,得到渲染后的桌面圖像數(shù)據(jù)。
11.如權(quán)利要求7~10任一所述的裝置,其特征在于,所述非正常狀態(tài)包括:`最小化狀態(tài)、隱藏狀態(tài)或者鎖屏狀態(tài)。
12.如權(quán)利要求7~10任一所述的裝置,其特征在于,在VDI環(huán)境下,所述桌面協(xié)議客戶端處于所述虛擬桌面客戶端中,所述桌面協(xié)議服務(wù)端處于虛擬桌面服務(wù)器中的虛擬機(jī)上,其中:所述桌面協(xié)議服務(wù)端將獲取的桌面圖像數(shù)據(jù)通過(guò)所述虛擬機(jī)中的操作系統(tǒng)以及所述虛擬桌面服務(wù)器中的物理網(wǎng)卡發(fā)送給所述虛擬桌面客戶端中的桌面協(xié)議客戶端。
【文檔編號(hào)】G06F9/455GK103701807SQ201310733699
【公開日】2014年4月2日 申請(qǐng)日期:2013年12月26日 優(yōu)先權(quán)日:2013年12月26日
【發(fā)明者】江志敏, 龐西豹 申請(qǐng)人:華為技術(shù)有限公司