專利名稱:用于使用輕量級客戶端通過網(wǎng)絡(luò)來與虛擬化計算服務(wù)對接的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于利用輕量級客戶端通過短和長距離訪問、控制虛擬化計算機(jī)服務(wù)并且與該計算機(jī)服務(wù)對接的方法和系統(tǒng)。
背景技術(shù):
在虛擬環(huán)境中,通過硬件與軟件協(xié)議的組合遠(yuǎn)程訪問和控制虛擬資源。虛擬環(huán)境包括多個如下動態(tài)可縮放虛擬資源,通過因特網(wǎng)提供這些資源作為服務(wù)并且由于用于訪問這樣的虛擬資源的下層技術(shù)的“云集(clouding)”而將這些資源適當(dāng)?shù)胤Q為云服務(wù)??梢詫⒌湫吞摂M環(huán)境表征為計算硬件、管理程序(hypervisor)(該管理程序處于計算硬件上面并且提供對計算硬件的訪問)和多個客戶(虛擬機(jī)或者VM)(這些客戶處于管理程序上面,從而通過管理程序訪問硬件)的匯集。多個客戶端用來連接到并且經(jīng)由協(xié)議遠(yuǎn)程控制虛擬環(huán)境內(nèi)的虛擬化計算機(jī)服務(wù)(或者簡稱為虛擬服務(wù))。使用冗余性消除和圖形指令重寫在與·VM關(guān)聯(lián)的直接圖形流的壓縮/解壓中使用這些協(xié)議/或者協(xié)議派生以便實現(xiàn)比原始圖形流更低帶寬的通信。上述協(xié)議具有它們自己的限制和挑戰(zhàn)。一個明顯限制在于這些協(xié)議與一個或者多個具體平臺(圖形/操作系統(tǒng)層)捆綁從而要求操作系統(tǒng)或者圖形芯片與壓縮/解壓協(xié)議和諧。這意味著壓縮協(xié)議利用操作系統(tǒng)圖形的“上下文”,使得可以在虛擬環(huán)境內(nèi)的遠(yuǎn)程VM處解釋和執(zhí)行命令。此類平臺特定協(xié)議的不利影響包括既在瘦客戶端中也在虛擬服務(wù)側(cè)處將大型CPU用于壓縮/解壓和解釋漸進(jìn)圖像以及難以處置長距離WAN網(wǎng)絡(luò)連接的大量延遲。附加劣勢包括在某些境況中需要專門化芯片(圖形芯片)以對壓縮解碼以及在其他境況中的聞網(wǎng)絡(luò)消耗。此外,用于制定此類基于平臺特定軟件的協(xié)議的基礎(chǔ)是通過操作系統(tǒng)圖形層驅(qū)動快速性能。因而,操作系統(tǒng)圖形命令的直接解釋對于這樣的協(xié)議的設(shè)計而言是關(guān)鍵的,從而使它們的設(shè)計為平臺特定的,該設(shè)計被帶入虛擬機(jī)環(huán)境中。定制的協(xié)議的另一確定在于它們的復(fù)雜性使它們與許多輕量級客戶端設(shè)備(諸如低功率瘦客戶端或者移動智能電話類設(shè)備)不兼容。正是在這一背景中出現(xiàn)本發(fā)明的實施例。
發(fā)明內(nèi)容
本發(fā)明的實施例提供用于實現(xiàn)利用輕量級或者非輕量級計算設(shè)備通過短和長距離來訪問、控制虛擬化計算機(jī)服務(wù)并且與該虛擬化計算機(jī)服務(wù)對接的多個方法和配置。在一個實施例中,該方法并入如下系統(tǒng)中,該系統(tǒng)包括在管理程序上運行的多個虛擬機(jī)的虛擬基礎(chǔ)設(shè)施而虛擬機(jī)中的至少一個虛擬機(jī)執(zhí)行圖像處理器算法。管理程序與虛擬機(jī)的相應(yīng)操作系統(tǒng)交互。圖像處理器算法被配置成從客戶端接收針對連接到虛擬機(jī)的請求、管理連接并且提供請求的計算機(jī)服務(wù)。
在一個實施例中,連接請求包括定義連接要求的多個連接參數(shù)和與客戶端關(guān)聯(lián)的其他環(huán)境參數(shù)??蛻舳说恼埱笫菫榱双@得訪問并且遠(yuǎn)程控制在虛擬基礎(chǔ)設(shè)施內(nèi)的具體虛擬機(jī)上可用的虛擬機(jī)計算機(jī)服務(wù)。在接收連接請求時,在與具體虛擬機(jī)不同的虛擬機(jī)上執(zhí)行的圖像處理器算法分析連接參數(shù)以標(biāo)識與虛擬化計算機(jī)服務(wù)關(guān)聯(lián)的具體虛擬機(jī)并且與管理程序交互以從與具體虛擬機(jī)關(guān)聯(lián)的存儲器獲得幀緩沖器數(shù)據(jù)。來自存儲器的幀緩沖器數(shù)據(jù)定義具體虛擬機(jī)的虛擬機(jī)顯示器的圖像 的圖形輸出。虛擬機(jī)中的算法處理幀緩沖器數(shù)據(jù)并且格式化成圖像數(shù)據(jù)分組。基于傳送(傳輸)協(xié)議進(jìn)一步對圖像數(shù)據(jù)分組進(jìn)行封包。然后使用傳送協(xié)議向客戶端傳輸圖像數(shù)據(jù)分組用于在客戶端的顯示器設(shè)備處表現(xiàn)。表現(xiàn)的輸出呈現(xiàn)虛擬機(jī)顯示器的圖像或者部分圖像,包括在具體虛擬機(jī)處當(dāng)前執(zhí)行或者表現(xiàn)的圖元或者非圖元、程序和其他元素的顯示。算法提供通過經(jīng)由管理程序而不是操作系統(tǒng)或者圖形卡直接訪問幀緩沖器數(shù)據(jù)來傳輸虛擬機(jī)顯示器的高性能圖像的能力。因而獲得圖像而無來自操作系統(tǒng)或者圖形層的任何直接或者先前指令,因此使算法操作系統(tǒng)和圖形卡獨立。由于使用在客戶端上無需復(fù)雜處理的簡單傳輸協(xié)議來封包和傳輸分組,所以傳輸服務(wù)可以利用智能跟蹤和重傳技術(shù)。當(dāng)前實施例使客戶端能夠從近和遠(yuǎn)距離與虛擬服務(wù)交互。圖形輸出包括可以在客戶端處容易解壓、處理和表現(xiàn)的圖像數(shù)據(jù)、由此使很瘦客戶端能夠獲得對虛擬服務(wù)的訪問和控制。簡單傳送協(xié)議對帶寬改變、延遲和損失敏感并且自適應(yīng)。這里呈現(xiàn)若干不同實施例作為示例。在一個實施例中,公開了一種用于通過客戶端遠(yuǎn)程控制虛擬化計算機(jī)服務(wù)(或者簡稱為“虛擬服務(wù)”)的方法。該方法包括從客戶端接收針對控制在虛擬中心內(nèi)的具體虛擬機(jī)處可用的虛擬服務(wù)的連接請求。該連接請求包括多個連接參數(shù),多個連接參數(shù)描述客戶端的連接要求,并且連接請求是在執(zhí)行圖像處理器算法的虛擬機(jī)處接收的。圖像處理器算法詢問連接參數(shù)以標(biāo)識幀緩沖器和傳輸參數(shù)。通過管理程序直接訪問來自虛擬中心內(nèi)的虛擬存儲器中的預(yù)定位置的用于具體虛擬機(jī)的幀緩沖器數(shù)據(jù)。幀緩沖器數(shù)據(jù)定義圖形輸出,該圖形輸出代表與具體虛擬機(jī)關(guān)聯(lián)的虛擬機(jī)顯示器關(guān)聯(lián)的圖像。使用圖像處理器算法基于多個連接參數(shù)將幀緩沖器數(shù)據(jù)處理成多個圖像數(shù)據(jù)分組并且傳輸?shù)娇蛻舳擞糜谠谂c客戶端關(guān)聯(lián)的顯示器設(shè)備上表現(xiàn)。表現(xiàn)的圖形輸出在客戶端處呈現(xiàn)用于標(biāo)識的虛擬機(jī)的虛擬機(jī)顯示器的圖像。在又一實施例中,公開一種用于通過網(wǎng)絡(luò)向客戶端提供服務(wù)的方法。該方法包括從客戶端接收針對控制虛擬化計算機(jī)服務(wù)的連接請求。該連接請求是在執(zhí)行圖像處理器算法的虛擬機(jī)接收的并且包括多個連接參數(shù),多個連接參數(shù)定義客戶端的連接要求。使用圖像處理器算法來詢問連接參數(shù)以標(biāo)識具體服務(wù)層和標(biāo)識的服務(wù)層內(nèi)的具體虛擬機(jī),具體服務(wù)層提供請求的服務(wù)類型,具體虛擬機(jī)用于提供滿足來自客戶端的連接請求的虛擬化計算機(jī)服務(wù)。該方法包括連接到標(biāo)識的服務(wù)層并且通過管理程序直接訪問來自虛擬存儲器中的預(yù)定位置的用于具體服務(wù)層內(nèi)的具體VM的幀緩沖器數(shù)據(jù)。基于多個連接參數(shù)使用圖像處理器算法將訪問的幀緩沖器數(shù)據(jù)處理成多個圖像數(shù)據(jù)分組并且傳輸?shù)娇蛻舳擞糜诔尸F(xiàn)。向客戶端傳輸?shù)膱D像數(shù)據(jù)分組特定于客戶端并且代表具體虛擬機(jī)的虛擬機(jī)顯示器的圖像。在另一實施例中,公開一種用于通過網(wǎng)絡(luò)向客戶端提供服務(wù)的方法。該方法包括在虛擬中心內(nèi)的至少一個虛擬機(jī)上提供圖像處理器算法,在虛擬中心內(nèi)多個虛擬機(jī)在管理程序上執(zhí)行。處理在執(zhí)行圖像處理器算法的虛擬機(jī)處接收的連接請求以標(biāo)識多個連接參數(shù)和具體虛擬機(jī),多個連接參數(shù)定義與客戶端關(guān)聯(lián)的連接要求,具體虛擬機(jī)可以滿足連接請求。通過管理程序直接訪問和讀取來自虛擬存儲器中的預(yù)定位置的用于標(biāo)識的虛擬機(jī)的幀緩沖器數(shù)據(jù)。基于連接參數(shù)使用圖像處理器算法來為讀取的幀緩沖器數(shù)據(jù)生成特定用于客戶端的多個圖像數(shù)據(jù)分組。生成的圖像數(shù)據(jù)分組包括與讀取的幀緩沖器數(shù)據(jù)關(guān)聯(lián)的上下文信息。向客戶端傳輸定義圖形輸出的圖像數(shù)據(jù)分組用于在與客戶端關(guān)聯(lián)的顯示器設(shè)備處表現(xiàn)。表現(xiàn)的圖像數(shù)據(jù)分組在客戶端處代表與標(biāo)識的虛擬機(jī)關(guān)聯(lián)的虛擬圖像顯示器的圖像。在本發(fā)明的另一實施例中,公開一種用于向用戶提供對計算簡檔的訪問的方法。計算簡檔定義用于用戶的桌面,其中桌面提供對用戶的應(yīng)用和數(shù)據(jù)的訪問。該方法包括從客戶端請求通過因特網(wǎng)連接到計算簡檔的連接。響應(yīng)于請求的連接來標(biāo)識用于計算簡檔的具體虛擬機(jī)。標(biāo)識和讀取用于標(biāo)識的虛擬機(jī)的幀緩沖器數(shù)據(jù)。基于從其進(jìn)行連接請求的客戶端的特性來處理幀緩沖器數(shù)據(jù)以產(chǎn)生圖像數(shù)據(jù)分組。向客戶端轉(zhuǎn)發(fā)圖像數(shù)據(jù)分組,其中處理并且在與客戶端關(guān)聯(lián)的顯示器上呈現(xiàn)圖像數(shù)據(jù)分組。在會話期間,在交換客戶端與虛擬機(jī)之間的通信時繼續(xù)讀取、處理并且向客戶端轉(zhuǎn)發(fā)幀緩沖器數(shù)據(jù)(在該客戶端處理幀緩 沖器數(shù)據(jù))的過程。在另一實施例中,公開一種用于提供對虛擬機(jī)(VM)的會話的訪問的方法。該方法包括以下操作獲得對VM的會話的訪問;標(biāo)識用于VM的幀緩沖器數(shù)據(jù);讀取并且基于客戶端的特性來處理幀緩沖器數(shù)據(jù)以產(chǎn)生圖像數(shù)據(jù)分組;向客戶端轉(zhuǎn)發(fā)圖像數(shù)據(jù)分組,圖像數(shù)據(jù)分組是針對客戶端的特性而產(chǎn)生的;在客戶端與VM之間交換反向信道(backchannel)通信時在會話期間重復(fù)讀取、處理和轉(zhuǎn)發(fā)圖像數(shù)據(jù)分組的操作。通過與附圖和權(quán)利要求書結(jié)合的下文詳細(xì)描述將容易理解本發(fā)明。
通過與附圖結(jié)合的下文詳細(xì)描述將容易理解本發(fā)明。
圖I示出了在虛擬環(huán)境中遠(yuǎn)程訪問和控制虛擬化計算機(jī)服務(wù)中使用的常規(guī)系統(tǒng)的框圖。圖2-1示出了根據(jù)本發(fā)明一個實施例的在虛擬環(huán)境中遠(yuǎn)程訪問和控制虛擬化計算機(jī)服務(wù)中使用的系統(tǒng)的框圖。圖2-2和2-3示出了圖2-1中描繪的本發(fā)明的替代實施例。圖2A圖示了常規(guī)視頻卡的工作的簡單框圖。圖2B圖示了如下簡單框圖,該框圖描繪了在本發(fā)明一個實施例中的管理程序在訪問與虛擬機(jī)關(guān)聯(lián)的監(jiān)視器的虛擬圖像中的工作。圖2C-l、2C-2和2C-3圖示了本發(fā)明替代實施例中的捕獲幀緩沖器數(shù)據(jù)的過程的簡單框圖。圖2D圖示了在對幀緩沖器數(shù)據(jù)進(jìn)行封包并且向客戶端傳輸數(shù)據(jù)分組中執(zhí)行LFP的圖像處理器的工作的簡單框圖。圖2E圖示了本發(fā)明一個實施例中的根據(jù)具體客戶端的幀緩沖器數(shù)據(jù)的樣本封包化。圖2F圖示了從各種源接收和表現(xiàn)的幀緩沖器數(shù)據(jù)的類型和形式。圖2F-1圖示了其中通過帶內(nèi)通信來接收和表現(xiàn)來自各種源的幀緩沖器數(shù)據(jù)的一個實施例。圖2F-2圖示了其中在客戶端的顯示器設(shè)備處接收和表現(xiàn)帶外幀緩沖器數(shù)據(jù)的一個實施例。圖3A是標(biāo)識本發(fā)明一個實施例中的圖像處理器算法內(nèi)的各種模塊和在各種模塊、客戶端和服務(wù)之間的交互的簡化框圖。圖3B圖示了標(biāo)識本發(fā)明一個實施例中的在系統(tǒng)的各種模塊和部件之間的詳細(xì)信息流的框圖。圖4是定義根據(jù)本發(fā)明一個實施例的在計算機(jī)系統(tǒng)的遠(yuǎn)程訪問和控制中使用的掃描引擎內(nèi)的過程流程的框圖。圖5是定義根據(jù)本發(fā)明一個實施例的在計算機(jī)系統(tǒng)的遠(yuǎn)程訪問和控制中使用的熱引擎(heat engine)內(nèi)的過程流程的框圖。圖6是定義根據(jù)本發(fā)明一個實施例的在計算機(jī)系統(tǒng)的遠(yuǎn)程訪問和控制中使用的上下文引擎內(nèi)的過程流程的框圖。 圖7圖示了定義根據(jù)本發(fā)明一個實施例的在計算機(jī)系統(tǒng)的遠(yuǎn)程訪問和控制中使用的邏輯弓I擎內(nèi)的過程流程的框圖。圖7A、7B和7C圖示了如下框圖,這些框圖描繪幀緩沖器數(shù)據(jù)的管理。圖8圖示了定義根據(jù)本發(fā)明一個實施例的在計算機(jī)系統(tǒng)的遠(yuǎn)程訪問和控制中使用的連接引擎內(nèi)的過程流程的框圖。圖9圖示了定義根據(jù)本發(fā)明一個實施例的在計算機(jī)系統(tǒng)的遠(yuǎn)程訪問和控制中使用的輸出引擎內(nèi)的過程流程的框圖。圖10圖示了根據(jù)本發(fā)明一個實施例的與圖像處理器算法的各種部件交互的瘦客戶端的框圖。圖11圖示了本發(fā)明一個實施例中的用于訪問在不同層中賦予的虛擬化計算機(jī)服務(wù)的簡化框圖。圖12A-1和12A-2圖示了本發(fā)明一個實施例中的用于便攜計算設(shè)備(諸如膝上計算機(jī)或者移動設(shè)備)通過入塢來訪問虛擬環(huán)境內(nèi)的虛擬化計算機(jī)服務(wù)的方式。圖12B圖示了本發(fā)明一個實施例中的用于訪問虛擬環(huán)境內(nèi)的虛擬化計算機(jī)服務(wù)的PC上的閃存驅(qū)動器。圖12C圖示了本發(fā)明一個替代實施例中的使用無線高保真(Wi-Fi)系統(tǒng)來訪問虛擬環(huán)境內(nèi)的虛擬化計算機(jī)服務(wù)的個人數(shù)字助理(PDA )。圖13圖示了本發(fā)明一個實施例中的為了從遠(yuǎn)程客戶端控制虛擬化計算機(jī)服務(wù)而涉及到的各種步驟的過程流程圖。
具體實施例方式現(xiàn)在將描述用于遠(yuǎn)程控制虛擬環(huán)境內(nèi)的計算機(jī)系統(tǒng)的若干示例性實施例。本領(lǐng)域技術(shù)人員將清楚,無這里闡述的具體細(xì)節(jié)中的一些或者所有細(xì)節(jié)仍可實現(xiàn)本發(fā)明。本發(fā)明定義實現(xiàn)通過遠(yuǎn)程客戶端訪問和管理在虛擬環(huán)境內(nèi)的虛擬機(jī)處可用的虛擬化計算機(jī)服務(wù)(或者簡稱為“虛擬服務(wù)”)的方法、系統(tǒng)、計算機(jī)代碼。實施例提供用于在虛擬環(huán)境內(nèi)使用算法(諸如在虛擬機(jī)(諸如服務(wù)器虛擬機(jī))中嵌入的圖像處理器算法)來建立與虛擬服務(wù)的連接的方式。當(dāng)在服務(wù)器虛擬機(jī)(SVM)處接收針對虛擬服務(wù)的請求時,SVM中的算法與虛擬環(huán)境中的管理程序(多個虛擬機(jī)在該管理程序之上運行)交互以標(biāo)識提供虛擬服務(wù)的虛擬機(jī)(VM)。在標(biāo)識VM時,算法通過管理程序訪問和讀取來自標(biāo)識的VM的存儲器的如下幀緩沖器數(shù)據(jù),該幀緩沖器數(shù)據(jù)定義如下圖形輸出,該圖形輸出代表標(biāo)識的VM的虛擬監(jiān)視器的圖像。算法處理幀緩沖器數(shù)據(jù)、將幀緩沖器數(shù)據(jù)封包成分組并且使用簡單傳送協(xié)議向客戶端發(fā)送封包的幀緩沖器數(shù)據(jù)用于在與客戶端關(guān)聯(lián)的顯示器設(shè)備處表現(xiàn)。通過SVM和管理程序捕獲在客戶端的顯示器設(shè)備處的針對表現(xiàn)的幀緩沖器數(shù)據(jù)的用戶交互并且將該用戶交互重定向到標(biāo)識的VM,其中該交互被處理,因此向虛擬服務(wù)提供控制。提供對控制虛擬服務(wù)的圖形訪問而不從標(biāo)識的虛擬機(jī)的操作系統(tǒng)或者圖形卡接收任 何指令。由于用于控制虛擬服務(wù)的訪問是通過捕獲圖形輸出而不是通過來自操作系統(tǒng)/圖形卡的任何指令,所以實施例定義一種用于控制在每個虛擬機(jī)處可用的虛擬服務(wù)的獨立于平臺的解決方案,由此提供靈活和有效工具??梢宰g解(decipher)/解壓封包的圖形輸出而不必使用復(fù)雜計算/處理,從而使甚至很瘦客戶端也能夠訪問和控制虛擬服務(wù)。簡單傳送協(xié)議使客戶端能夠通過長距離或者短距離訪問和控制虛擬服務(wù),從而更自然地應(yīng)對延遲和有損網(wǎng)絡(luò)情形。由于算法與管理程序交互以提取顯示器的虛擬圖像并且不與操作系統(tǒng)交互以從操作系統(tǒng)取回指令,所以可以避免在客戶端處需要強(qiáng)大處理器以譯解/解壓圖形語目指令。算法的工作對于虛擬機(jī)的操作系統(tǒng)而言透明。管理程序為所有VM提供存儲器管理并且使用來自客戶端提供的連接參數(shù)的信息和來自存儲器管理的信息以標(biāo)識適當(dāng)VM和用于標(biāo)識的VM的如下具體存儲器位置,該存儲器位置提供代表用于標(biāo)識的VM的顯示器的虛擬圖像的信息。將參照圖2A和2B詳細(xì)描述管理程序和其他部件的如下作用,該作用是獲得對幀緩沖器數(shù)據(jù)的訪問。為了完全理解各種實施例的優(yōu)勢,將首先詳細(xì)描述遍及本申請使用的一組術(shù)語。提供這些定義作為關(guān)于術(shù)語的一般指導(dǎo),但是決不應(yīng)限制與之關(guān)聯(lián)的變化或者等同物。a. “瘦客戶端”如在本申請中使用的那樣是軟件或者硬件設(shè)備,其中可以在另一計算機(jī)(通常在服務(wù)器、遠(yuǎn)程計算機(jī)或者在另一聯(lián)網(wǎng)計算設(shè)備處)處部分完成計算。也稱為消瘦、苗條或者啞客戶端的瘦客戶端包括接口(軟件瘦客戶端)或者極少的計算資源(硬件瘦客戶端)并且可以甚至不包括硬件驅(qū)動。在一些實施例中,如在智能電話、個人數(shù)字助理、平板計算機(jī)、移動電話、終端等上常見的那樣,固態(tài)存儲器和儲存器是足夠的。在一個實施例中,瘦客戶端可以依賴于它的服務(wù)器計算機(jī)來提供存儲和其他資源能力,從而使設(shè)備操作起來更像終端(即屏幕、鍵盤和輸入設(shè)備)。很瘦客戶端如下終端,其中關(guān)聯(lián)服務(wù)器(或者聯(lián)網(wǎng)計算設(shè)備)提供多數(shù)計算。很瘦客戶端的示例包括計算機(jī)終端或者顯示器接口。如果胖客戶端(即具有所有標(biāo)準(zhǔn)獨立硬件和軟件的客戶端)連接到遠(yuǎn)程計算機(jī)并且遠(yuǎn)程計算機(jī)完成多數(shù)處理或者為特定計算會話提供服務(wù),則胖客戶端也可以作為瘦客戶端來操作。b. “遠(yuǎn)程”訪問客戶端如在本申請中使用的那樣指代與在虛擬中心內(nèi)的管理程序上執(zhí)行的SVM和VM共同定位或者非共同定位而又使用網(wǎng)絡(luò)連接(諸如因特網(wǎng))通過SVM訪問VM的客戶端。即使客戶端在物理上位于硬件或者服務(wù)器旁邊,遠(yuǎn)程訪問仍然可以是遠(yuǎn)程的,只要可以建立聯(lián)網(wǎng)(有線或者無線)的連接。例如用戶可以通過蜂窩電話接口登入他的或者她的桌面計算機(jī),但是用戶事實上可以在桌面計算機(jī)的相同位置或者相隔半個世界。c. “重新格式化”如在本申請中使用的那樣是如下過程,其中將以具體格式(諸如依賴于操作系統(tǒng)(OS)的格式)原先定義的數(shù)據(jù)重新定義成算法規(guī)定的格式。算法定義的格式未與任何OS特定格式綁定,但是可以是可以使用非復(fù)雜解壓協(xié)議來譯解的更通用類型??梢栽跀?shù)據(jù)的重新格式化中使用的示例OS特定格式包括但不限于用于Linux 、OSX 、BeOS 、AIX 、MVS 、Windows 等的幀緩沖器格式。d. “重定向”如在本申請中使用的那樣指代將來自預(yù)定義位置的數(shù)據(jù)向算法定義的新位置重新尋路由的過程。例如來自特定虛擬機(jī)的數(shù)據(jù)通常存儲于相應(yīng)虛擬存儲器中。在本發(fā)明中,本地尋找第二虛擬機(jī)(VM2)的存儲器的第一虛擬機(jī)(VMl)通過管理程序獲得對第二虛擬機(jī)的實際存儲器空間的訪問。可以在第一虛擬機(jī)的本地存儲器處讀取和處理第二虛擬機(jī)的存儲器中的數(shù)據(jù)。管理程序如業(yè)內(nèi)公知的那樣具有向一個VM提供對另一 VM的設(shè)備/資源的訪問的能力。e.虛擬化計算機(jī)服務(wù)(或者“虛擬服務(wù)”)如在本申請中使用的那樣指代虛擬機(jī)提供的涵蓋與硬件和軟件有關(guān)的服務(wù)兩者的服務(wù)。在每個虛擬機(jī)處可用的虛擬服務(wù)中的一些虛擬服務(wù)包括但不限于在虛擬機(jī)處執(zhí)行的和/或用來訪問硬件資源的共享物理硬件資源、軟件接口和程序。虛擬服務(wù)可以提供針對遠(yuǎn)程桌面、計算機(jī)程序的遠(yuǎn)程處理、遠(yuǎn)程游戲、遠(yuǎn)程托管的娛樂數(shù)字視頻記錄(DVR)、個人視頻記錄(PVR)和對基于數(shù)據(jù)中心的服務(wù)的一般訪問(包括對在向用戶分配的儲存器中存儲的文件、通信程序、視頻、圖像、圖片、數(shù)據(jù)和元數(shù)據(jù)的訪問)的表現(xiàn)。f. “封包”如在本申請中使用的那樣指代數(shù)據(jù)分組,數(shù)據(jù)分組是通過數(shù)字網(wǎng)絡(luò)通信的基本單元。不同協(xié)議將不同結(jié)構(gòu)用于封包數(shù)據(jù)。格式化(處理)數(shù)據(jù)以符合與算法并且與用于參與在服務(wù)器虛擬機(jī)與客戶端之間傳輸數(shù)據(jù)的傳輸協(xié)議關(guān)聯(lián)的具體協(xié)議。傳輸協(xié)議根 據(jù)數(shù)據(jù)類型提供用于分組的結(jié)構(gòu)并且可以例如包括源因特網(wǎng)協(xié)議(IP)地址、目的地IP地址、分組的序列號、服務(wù)類型、標(biāo)志等。g. “服務(wù)器虛擬機(jī)”(SVM)如在本申請中使用的那樣指代管理其他虛擬機(jī)與客戶端的交互的虛擬機(jī)。SVM包括VM的所有部件并且被配置成提供與在客戶端-服務(wù)器計算機(jī)系統(tǒng)中朝向客戶端的服務(wù)器相似的功能(諸如提供客戶端請求的信息)。SVM通過訪問對應(yīng)VM的具體存儲器空間來提供該信息。SVM配備有如下算法(諸如圖像訪問算法),該算法使SVM能夠通過管理程序獲得對相應(yīng)虛擬機(jī)的存儲器的訪問。應(yīng)當(dāng)注意,無需在具體VM (諸如SVM)處提供用于訪問VM的存儲器的算法,但是可以使算法在虛擬中心中運行的每個VM處可用,這時每個VM充當(dāng)管理其他VM的存儲器的SVM。h. “幀緩沖器信息”或者“幀緩沖器數(shù)據(jù)”如在本申請中使用的那樣指代通常為了在虛擬機(jī)的虛擬機(jī)顯示器處呈現(xiàn)而由OS生成的視頻輸出數(shù)據(jù)。OS以具體格式生成數(shù)據(jù)并且由代表每個如下像素的位圖數(shù)據(jù)構(gòu)成,該像素定義虛擬機(jī)顯示器屏幕上表現(xiàn)的各種元素、特征、圖像??缭綌?shù)據(jù)的整個屏幕從左到右、從上到下跟蹤和刷新幀緩沖器數(shù)據(jù)。每個像素被定義成包括顏色、深度、大小等,從而捕獲屏幕的每個細(xì)節(jié)。幀緩沖器信息定義計算系統(tǒng)(諸如虛擬機(jī))的具體存儲器部分中存儲的圖形數(shù)據(jù),該數(shù)據(jù)原先預(yù)定用于在虛擬機(jī)顯示器屏幕上表現(xiàn)。i.連接參數(shù)如在本申請中使用的那樣定義如下客戶端特性,這些特性包括客戶端的連接要求和其他環(huán)境要求。通常在與客戶端的初始握手期間獲得連接參數(shù),并且這些連接參數(shù)可以包括客戶端的位置(諸如始發(fā)IP地址)、連接能力信息(包括大小和質(zhì)量)、希望連接的虛擬服務(wù)位置(諸如目的地IP地址)、客戶端類型、與客戶端關(guān)聯(lián)的顯示器設(shè)備的配置(包括分辨率、位深度、刷新率)、服務(wù)層標(biāo)識等。為了促進(jìn)理解各種實施例,將首先描述在常規(guī)過程中使用的虛擬計算機(jī)環(huán)境的基本基礎(chǔ)設(shè)施的簡要描述,繼而為在當(dāng)前發(fā)明的實施例中用于遠(yuǎn)程控制虛擬服務(wù)的基本基礎(chǔ)設(shè)施內(nèi)的新穎特征的詳細(xì)描述。圖I圖示了用于在虛擬環(huán)境內(nèi)提供虛擬化計算機(jī)服務(wù)(計算機(jī)系統(tǒng)或者簡稱為“虛擬服務(wù)”)的訪問和控制的常規(guī)過程所使用的典型虛擬基礎(chǔ)設(shè)施的簡單框圖。虛擬環(huán)境包括由在管理程序上運行的多個虛擬機(jī)(VM)共享的物理硬件的匯集。管理程序或者虛擬機(jī)監(jiān)視器是允許多個操作系統(tǒng)在主機(jī)計算機(jī)上并行運行的計算機(jī)平臺虛擬化軟件。管理程序提供在共享硬件與VM之間的接口。管理程序在業(yè)內(nèi)是公知的并且因此在本申請中不詳細(xì)描述。多個客戶端使用專用協(xié)議(聊舉數(shù)例,諸如遠(yuǎn)程桌面協(xié)議(RDP)、因特網(wǎng)協(xié)議PC (PC0IP)、遠(yuǎn)程圖形軟件協(xié)議(RGS)、獨立計算架構(gòu)協(xié)議(ICA))來訪問在VM處可用的虛擬資源??蛻舳丝梢允鞘菘蛻舳?諸如低檔計算機(jī)終端)或者胖客戶端(諸如桌面計算機(jī)、膝上計算機(jī)等)??蛻舳耸褂梅?wù)或連接代理來訪問在具體VM處可用的虛擬資源。服務(wù)代理是如下目錄服務(wù),該目錄服務(wù)基于在客戶端的請求中提供的環(huán)境參數(shù)來提供不同VM到各種客戶端的映射。服務(wù)代理使用映射或者連接信息以確定如下具體VM,該具體VM將向客戶端提供請求的服務(wù)從而使客戶端能夠使用適當(dāng)協(xié)議來直接訪問對應(yīng)操作系統(tǒng)(OS)并且與該OS交互。因此,為了客戶端訪問來自對應(yīng)VM的信息,客戶端需要理解和遵循對應(yīng)OS協(xié)議。OS提供在客戶端處遵循OS協(xié)議使用客戶端的處理器來處理的指令集。常規(guī)過程的方式是基于來自對應(yīng)OS的指令集在客戶端上重新創(chuàng)建在VM處實際上有的內(nèi)容,使得用戶將有權(quán)訪問在VM處發(fā)生的內(nèi)容。這一方式造成在數(shù)據(jù)交換的兩端處一在相應(yīng)VM處和在客戶端處具有強(qiáng)大處理器用于壓縮和解壓數(shù)據(jù)/信息,從而嚴(yán)重限制瘦客戶端的大小和功能。另外,常規(guī)方式非常以平臺/圖形層為中心,從而依賴于OS/圖形卡以給予如下指令,這些指令用于在客戶端的顯示器設(shè)備處重新創(chuàng)建在VM的監(jiān)視器上提供的信息以便控制在VM處的計算機(jī)系統(tǒng)/服務(wù)。為了克服常規(guī)過程的限制,當(dāng)前發(fā)明的一些實施例在運行于管理程序上的虛擬機(jī)(諸如服務(wù)器虛擬機(jī))內(nèi)使用如下算法(諸如圖像處理器算法),該算法與管理程序交互以獲得如下圖像,該圖像代表第二虛擬機(jī)(VM)的虛擬機(jī)顯示器的圖形輸出。封包并且向客戶端轉(zhuǎn)發(fā)該圖形輸出用于表現(xiàn)。表現(xiàn)的圖形輸出提供對第二 VM的顯示器的查看從而示出在第二 VM處執(zhí)行或者表現(xiàn)的圖元、圖標(biāo)、顯示、程序、鏈接、圖片、電影和其他用戶接口操控或者非操控。算法直接訪問和讀取來自預(yù)定虛擬存儲器位置的虛擬機(jī)顯示器的圖像而未與第二VM的操作系統(tǒng)交互。因而算法無需遵循在第二 VM上運行的OS的圖形指令。圖2-1至2-3圖示了本發(fā)明單獨實施例中的虛擬基礎(chǔ)設(shè)施(VI)的示例性框圖,其中在虛擬機(jī)層中的虛擬機(jī)提供的算法使客戶端能夠與在VM處可用的虛擬服務(wù)遠(yuǎn)程交互而未與任何OS協(xié)議綁定。圖2A和2B圖示了在訪問VM的幀緩沖器信息中使用的虛擬基礎(chǔ)設(shè)施(VI)的各種部件。圖2C-1至2C-3圖示了與圖2-1至2_3中所示實施例對應(yīng)的訪問幀緩沖器信息的簡化視圖。圖2D和2E圖示了如下過程的簡化框圖,該過程封包訪問的幀緩沖器數(shù)據(jù)以符合算法和參與向客戶端傳輸幀緩沖器數(shù)據(jù)的分組的傳輸協(xié)議兩者的要求。圖2F圖示了隨時間向客戶端發(fā)送什么數(shù)據(jù)的簡化視圖。下文將參照這些附圖詳細(xì)描述算法的用于控制虛擬服務(wù)的部件和功能。圖像處理器
為了圖像處理器從一定距離并且通過很瘦客戶端高效運轉(zhuǎn),在獨立于平臺和操作系統(tǒng)的圖像處理器算法的設(shè)計構(gòu)造中依賴幾個下層原理。依賴的基本原理之一是圖像表示。多數(shù)虛擬機(jī)/虛擬客戶具有在每個客戶處可用的幀緩沖器構(gòu)造。幀緩沖器如在本申請中使用的那樣是在虛擬機(jī)的監(jiān)視器上顯示的內(nèi)容在存儲器中的表示。換而言之,幀緩沖器包括在虛擬機(jī)的具體存儲器部分中提供的如下圖像數(shù)據(jù),該圖像數(shù)據(jù)定義如下圖形輸出,該圖形輸出在被處理和表現(xiàn)時呈現(xiàn)如下虛擬圖像,該虛擬圖像代表虛擬機(jī)的虛擬機(jī)顯示器。一般而言,處于管理程序上的操作系統(tǒng)是“無頭”的,即它無需連接到它的監(jiān)視器。在這樣的情況下,操作系統(tǒng)將預(yù)定去往虛擬機(jī)顯示器(諸如監(jiān)視器)的輸出定向到存儲器中的特定部分作為圖像數(shù)據(jù)。應(yīng)當(dāng)注意,將預(yù)定去往監(jiān)視器的輸出表示為一般無上下文的位圖。存儲器中的這一圖像由管理程序用來建立圖形控制臺對個 別虛擬機(jī)的訪問。在本申請中,術(shù)語“幀緩沖器”與圖形輸出可互換地用來指代表示為位圖并且在與每個虛擬機(jī)(VM)關(guān)聯(lián)的具體存儲器部分中存儲的圖像數(shù)據(jù)。幀緩沖器構(gòu)造是一種用于對通常將被定向到監(jiān)視器的圖形信號重新定向以代之以加載到存儲器中的業(yè)界方式。幀緩沖器數(shù)據(jù)視為與具有位深度、水平掃描速率和確定大小的監(jiān)視器相似。在一些操作系統(tǒng)(諸如Mac 0SX )中,巾貞緩沖器由本機(jī)內(nèi)核加載。在一些其他操作系統(tǒng)中,在啟動文件內(nèi)提供內(nèi)核參數(shù)以使能幀緩沖器。在虛擬機(jī)的存儲器內(nèi)的位置及其用于代表幀緩沖器的圖像的格式由對應(yīng)操作系統(tǒng)驅(qū)動。依賴的另一原理是恰當(dāng)解釋和操縱幀緩沖器構(gòu)造使得圖像處理器算法(或者簡稱為“算法”)可以自治地動作。為了算法獨立于平臺、操作系統(tǒng)(OS)和服務(wù),算法需要能夠確定如何評估屏幕上的來自幀緩沖器構(gòu)造的幀。在一個實施例中,算法能夠基于活動和顏色對比度情形來識別屏幕上的感興趣的鄰接區(qū)域,使得可以用具體方式操縱對幀或者具體信息進(jìn)行定義的感興趣的區(qū)域。在一個實施例中,算法被配置成利用各種技術(shù)以捕獲屏幕的不同部分,以便向具有優(yōu)先級的查看者提供令人愉悅的可視效果以維護(hù)超出人類感知能力的質(zhì)量。在一個實施例中,使用有損效果來捕獲屏幕部分。通過有損壓縮方法來獲得有損效果,其中壓縮數(shù)據(jù)使得它損失它的一些質(zhì)量。這一壓縮數(shù)據(jù)在被解壓時提供與原始數(shù)據(jù)不同但是與原始數(shù)據(jù)足夠接近的數(shù)據(jù)。有損壓縮方法在業(yè)內(nèi)是公知的并且最常用來壓縮用于流媒體應(yīng)用的多媒體數(shù)據(jù),諸如音頻、視頻和圖形圖像。為了算法在網(wǎng)絡(luò)上變得高效并且高性能,算法在一個實施例中被設(shè)計成兼容于用戶數(shù)據(jù)報協(xié)議(UDP)以實現(xiàn)恰當(dāng)用戶體驗。UDP與傳統(tǒng)傳輸控制協(xié)議(TCP)不同在于UDP是“無連接”或者“無狀態(tài)”協(xié)議,其中無握手或者無確認(rèn)接收的分組的規(guī)定。在一個實施例中,為算法選擇的協(xié)議對帶寬改變、延遲和損失敏感和自適應(yīng)。雖然已經(jīng)將算法描述成配置有具體傳輸協(xié)議,但是它應(yīng)當(dāng)視為示例性而非視為限制。其他實施例可以使用與除了 UDP之外的其他協(xié)議兼容的算法,只要協(xié)議能夠提供算法所定義和希望的質(zhì)量、性能和功能即可?;谇笆龌驹砗鸵?,現(xiàn)在將參照圖21-至2-3描述示例性圖像處理器算法的各種特征和功能。應(yīng)當(dāng)理解,示例性算法可以適應(yīng)針對特殊用途的一些修改,只要維護(hù)與描述的實施例一致的基本操作即可。在圖2-1中所示本發(fā)明一個實施例中,在虛擬環(huán)境內(nèi)的與多個VM并排在管理程序上運行的單獨VM中提供圖像處理器算法。算法依賴于VI的現(xiàn)有基礎(chǔ)設(shè)施和部件并且獨立于平臺/OS而又提供用于通過長距離并且通過可以是“瘦”客戶端或者“胖”客戶端的客戶端遠(yuǎn)程工作的能力。仍然參照圖2-1,在如下虛擬機(jī)提供圖像處理器算法155,該虛擬機(jī)充當(dāng)與多個其他VM 100并排在管理程序上運行的服務(wù)器虛擬機(jī)(SVM)150并且通過管理程序來與多個VM100交互。SVM 150訪問、讀取和管理來自各種VM 100的幀緩沖器數(shù)據(jù)。虛擬環(huán)境的基本基礎(chǔ)設(shè)施與參照圖I描述的基礎(chǔ)設(shè)施相似。通過算法155在SVM 150與VM 100之間的交互對于VM是本地的并且無需復(fù)雜壓縮技術(shù)或者大型CPU用于捕獲如下圖形輸出,該圖形輸出代表將在與每個VM關(guān)聯(lián)的虛擬監(jiān)視器屏幕上表現(xiàn)的幀緩沖器信息。在一個實施例中,算法被設(shè)計成通過管理程序直接訪問和讀取每個VM 100的幀緩沖器數(shù)據(jù)110。圖2-2圖示了本發(fā)明的另一實施例,其中在管理程序上運行的VM 150中的少數(shù)VM獨立配備有算法155。獨立配備有算法的每個VM 150提供與圖2-1的如下SVM相同的功 能,該SVM訪問、讀取和管理來自運行于管理程序上的一個或者多個其他VM 100的幀緩沖器數(shù)據(jù)。在這一實施例中,獨立配備有算法的每個VM的幀緩沖器數(shù)據(jù)可以由獨立配備有算法的其他VM訪問和管理。圖2-3圖示了又一實施例,其中在管理程序上運行的所有VM 150獨立配備有算法155。獨立配備有圖像處理器算法的每個VM 150提供與圖2-1的如下SVM相同的功能,該SVM訪問、讀取和管理虛擬中心中的一個或者多個其他VM 100的幀緩沖器數(shù)據(jù)。圖2-1、2-2和2-3中所示每個實施例中的算法通過管理程序直接訪問VM的幀緩沖器數(shù)據(jù)。應(yīng)當(dāng)注意,VM內(nèi)的算法不僅僅限制于訪問運行于管理程序上的其他VM的幀緩沖器數(shù)據(jù),而且還被配置為通過管理程序直接訪問其自己的幀緩沖器數(shù)據(jù)。應(yīng)當(dāng)注意,前述實施例為示例性并且不應(yīng)解釋為限制。因而本領(lǐng)域技術(shù)人員將認(rèn)識到任何排列和組合可以用于在一個具體VM、幾個具體VM處或者在運行于管理程序上的所有VM上獨立提供圖像處理器算法并且可以基于VM資源和可訪問性。讀取的幀緩沖器數(shù)據(jù)由算法處理成符合算法要求的圖像數(shù)據(jù)分組并且向運行算法的VM內(nèi)的虛擬網(wǎng)絡(luò)接口卡(NIC)轉(zhuǎn)發(fā),其中進(jìn)一步封包圖像數(shù)據(jù)分組以符合傳輸協(xié)議(諸如UDP)的要求。然后使用UDP協(xié)議或者其他功能等效方式來傳輸封包的圖像數(shù)據(jù)?,F(xiàn)在將參照圖2A和2B描述訪問、讀取幀緩沖器數(shù)據(jù)的過程和涉及到的各種部件的作用。圖2A圖示了與具體VM關(guān)聯(lián)的操作系統(tǒng)(OS)在定向幀緩沖器數(shù)據(jù)中使用的傳統(tǒng)方式。每個VM的OS包括用于捕獲如下圖像數(shù)據(jù)的視頻驅(qū)動器,該圖像數(shù)據(jù)代表用于具體VM的通常在與VM關(guān)聯(lián)的監(jiān)視器處呈現(xiàn)的圖形輸出。OS中的視頻驅(qū)動器將圖像數(shù)據(jù)定向到已經(jīng)向OS呈現(xiàn)的物理視頻卡。視頻卡將用于VM的圖像數(shù)據(jù)解釋成圖形圖像并且在VM的虛擬機(jī)顯示器處呈現(xiàn)解釋的圖形圖像。在用于管理程序的命令中心(該管理中心通常是具有特殊管理程序訪問工具的VM)處工作的管理員/用戶訪問VM并且連接到VM的虛擬機(jī)顯示器以排除故障或者一般地控制在VM處可用的一個或者多個服務(wù)。如已知的那樣,有許多捕獲幀緩沖器的方式。提供上述示例以設(shè)想捕獲幀緩沖器的方式將繼續(xù)改變和擴(kuò)展。例如訪問幀緩沖器將依賴于管理程序的開發(fā)者并且具體API可以用來發(fā)現(xiàn)用于具體VM的幀緩沖器的位置。API可以定義用于標(biāo)識具體幀緩沖器并且讀取用于那些具體VM的幀緩沖器數(shù)據(jù)的協(xié)議。這里的目標(biāo)在于讀取和捕獲幀緩沖器而不考慮格式。
代之以將通常定向到VM的虛擬監(jiān)視器的圖形圖像作為幀緩沖器數(shù)據(jù)定向到虛擬中心中的虛擬存儲器層中的預(yù)定義位置。圖像處理器算法與管理程序直接交互以獲得對VM的在虛擬存儲器層中的預(yù)定義位置處的幀緩沖器數(shù)據(jù)的訪問以便解釋、處理、封包并且向客戶端傳輸處理的幀緩沖器數(shù)據(jù)。圖2B圖示了使用虛擬中心內(nèi)的虛擬圖形來訪問用于具體虛擬機(jī)的幀緩沖器數(shù)據(jù)的過程。如圖2B中所示,在VM上運行的OS包括視頻驅(qū)動器。在虛擬中心中可用的管理程序包括虛擬圖形卡。在VM的OS處的視頻驅(qū)動器與它作為物理視頻(圖形)卡感知的內(nèi)容交互。替代地,OS實際上與管理程序已經(jīng)向作為物理圖形卡的相應(yīng)VM的OS呈現(xiàn)的虛擬圖形卡交互。VM的OS將通常以VM的虛擬機(jī)顯示器為目標(biāo)的數(shù)據(jù)的模擬或者數(shù)字表示處理成幀緩沖器數(shù)據(jù)。通過VM的圖形驅(qū)動器向虛擬圖形卡寫入代表圖形輸出的幀緩沖器數(shù)據(jù)。虛擬圖形卡又通過管理程序向下層虛擬存儲器層中的對應(yīng)預(yù)定儲存器位置加載幀緩沖器數(shù)據(jù)。虛擬圖形卡是管理程序向所有VM呈現(xiàn)的如下通用卡(諸如視頻電子標(biāo)準(zhǔn)協(xié)會 (VESA)卡),該通用卡指引在不同VM處運行的OS將幀緩沖器信息寫入通過管理程序可訪問的下層虛擬存儲器層中的預(yù)定存儲器地址。應(yīng)當(dāng)注意,存儲于下層存儲器層中的幀緩沖器信息通常是位圖的形式。位圖是原始無上下文數(shù)據(jù)。使用算法,虛擬機(jī)能夠通過管理程序(該管理程序管理用于所有VM的下層存儲器、設(shè)備和資源)訪問所有VM的幀緩沖器數(shù)據(jù)。幀緩沖器信息(數(shù)據(jù))經(jīng)常例如使用設(shè)備位置(諸如/dev/fbO)通過內(nèi)核而可用。與管理程序處于相同總線上的SVM (例如LFP服務(wù)器)內(nèi)的算法(諸如圖像處理器算法)使用來自客戶端的連接信息通過管理程序直接訪問和讀取用于特定VM的幀緩沖器信息、分析特定VM的讀取的幀緩沖器數(shù)據(jù)用于改變和任何新獲取的幀緩沖器數(shù)據(jù)、基于分析來處理幀緩沖器數(shù)據(jù)、關(guān)于待使用的壓縮技術(shù)做出決定、生成多個圖像數(shù)據(jù)分組、然后封包幀緩沖器信息的分組以符合算法和通用傳輸協(xié)議(諸如UDP)兩者、向客戶端傳輸封包的幀緩沖器數(shù)據(jù)用于在相應(yīng)顯示器設(shè)備處表現(xiàn)、測量分組到達(dá)并且如需要的那樣重傳數(shù)據(jù)。在處理幀緩沖器數(shù)據(jù)期間,確定與幀緩沖器數(shù)據(jù)關(guān)聯(lián)的上下文并且適當(dāng)上下文信息與幀緩沖器數(shù)據(jù)關(guān)聯(lián)。圖2C-1至2C-3圖示了在存儲和訪問幀緩沖器數(shù)據(jù)中使用的流程路徑的簡化框圖。圖2C-1圖示了一個實施例,其中在運行于管理程序上的VM 100上執(zhí)行的OS將對應(yīng)幀緩沖器數(shù)據(jù)定向到虛擬基礎(chǔ)設(shè)施內(nèi)的虛擬存儲器層中的具體位置FBl 110。因而在執(zhí)行期間,VM1 100借助視頻驅(qū)動器和虛擬圖形卡如路徑110-1所示在位置FBl處存儲相應(yīng)幀緩沖器數(shù)據(jù)。算法155如路徑110-2所示通過管理程序直接訪問在FBl處的用于VM的存儲的幀緩沖器數(shù)據(jù)。類似地,圖2C-2圖示了另一實施例,其中在執(zhí)行于管理程序上的VM 100上運行的OS在具體存儲器位置FBl中存儲幀緩沖器數(shù)據(jù),使得LFP算法155可以直接訪問來自FBl的幀緩沖器信息。在圖2C-3中所示另一實施例中,運行算法的VM充當(dāng)服務(wù)器VM150,其中SVM的OS如路徑110-1所示指引SVM的幀緩沖器信息存儲于下層存儲器FBl的具體部分中并且通過路徑110-2直接訪問來自FBl的存儲的幀緩沖器信息。來自不同VM的幀緩沖器信息由在VM上執(zhí)行的操作系統(tǒng)驅(qū)動并且可以是變化的格式。算法實現(xiàn)對不同OS呈現(xiàn)的幀緩沖器信息的訪問、提供指引用于使用算法內(nèi)可用的格式化工具(諸如“輕量級幀緩沖器協(xié)議”工具)將來自不同OS的幀緩沖器信息轉(zhuǎn)換成由情景消息類型組成的通用格式的分組并且使用傳輸協(xié)議(諸如用戶數(shù)據(jù)報協(xié)議(UDP))向客戶端轉(zhuǎn)發(fā)重新格式化的幀緩沖器信息。如更早提到的那樣,幀緩沖器信息是如下原始位圖信息,該信息無附著到它的上下文。算法從用于VM的具體存儲器位置讀取與幀緩沖器數(shù)據(jù)關(guān)聯(lián)的位圖信息、通過標(biāo)識活動和不活動區(qū)域來分析位圖數(shù)據(jù)、基于分析向數(shù)據(jù)添加上下文并且生成具有添加的上下文信息的更小分組。例如數(shù)據(jù)分析可以標(biāo)識幀和幀內(nèi)的活動區(qū)域。使用算法中可用的格式化算法來封包并且向SVM內(nèi)的虛擬NIC轉(zhuǎn)發(fā)加載上下文的分組,其中分組經(jīng)歷附加封包以符合傳輸協(xié)議。向客戶端轉(zhuǎn)發(fā)完全處理和封包的數(shù)據(jù)用于表現(xiàn)。應(yīng)當(dāng)注意,使用算法在虛擬中心以內(nèi)和在SVM或者VM內(nèi)本地執(zhí)行針對幀緩沖器數(shù)據(jù)的多數(shù)分析和上下文表現(xiàn)。因而無需在客戶端處執(zhí)行附加分析或者譯解或者分析幀緩沖器數(shù)據(jù)以理解上下文。客戶端僅需解包具有加載的上下文的位圖數(shù)據(jù)并且在客戶端的顯示器設(shè)備上表現(xiàn)??蛻舳讼騍VM標(biāo)識損失的信息,SVM如需要的那樣重傳。由于消息類型和分組信息相對小和簡單,所以可以如外科手術(shù)般進(jìn)行重傳而開銷很小。圖2D圖示了訪問和封包幀緩沖器數(shù)據(jù)用于向客戶端前傳的過程以及響應(yīng)于表現(xiàn)的分組的來自客戶端的反饋。如圖所示,在具體虛擬存儲器位置(FBI)中可用的VM的幀緩沖器數(shù)據(jù)110由SVM的包括格式化算法的圖像處理器算法155 (諸如LFP)直接訪問。算法155可以使用API、儲存器地址等來訪問和讀取存儲的幀緩沖器信息。算法155然后使用SVM的處理器來處理幀緩沖器數(shù)據(jù)以生成SVM的存儲器130內(nèi)的幀緩沖器數(shù)據(jù)的更小圖 像數(shù)據(jù)分組203。幀緩沖器數(shù)據(jù)的處理包括分析幀緩沖器數(shù)據(jù)以標(biāo)識上下文并且在生成圖像數(shù)據(jù)分組203時集成上下文信息與數(shù)據(jù)。雖然參照在SVM上執(zhí)行的算法說明訪問和封包幀緩沖器數(shù)據(jù)的過程,但是應(yīng)當(dāng)理解算法不限于僅在SVM上執(zhí)行、但是也可以在VM上執(zhí)行并且訪問幀緩沖器數(shù)據(jù)。使用圖像處理器算法155內(nèi)可用的格式化算法來生成圖像數(shù)據(jù)分組203,從而符合客戶端的連接參數(shù)的要求并且這些分組是客戶端特定的。如更早提到的那樣,連接參數(shù)提供客戶端的諸如可接受分組大小、客戶端類型等的特性細(xì)節(jié),算法155可以在為客戶端生成分組203時考慮這些要求。向虛擬網(wǎng)絡(luò)接口卡(NIC) 140轉(zhuǎn)發(fā)分組203,其中分組經(jīng)歷附加處理以在算法提供的封包上面添加網(wǎng)絡(luò)封包。所得處理的封包204包括算法封包信息和網(wǎng)絡(luò)封包信息兩者。使用傳輸協(xié)議向客戶端200轉(zhuǎn)發(fā)完全處理的分組204用于在與客戶端200關(guān)聯(lián)的顯示器設(shè)備處表現(xiàn)。仍然參照圖2D,以客戶端200為目標(biāo)的分組由客戶端NIC 210_a接收??蛻舳薔IC210-a是如下標(biāo)準(zhǔn)NIC卡,該NIC卡在每個客戶端中可用并且用來剝離每個分組的外部NIC特定網(wǎng)絡(luò)封包204并且向客戶端算法(諸如客戶端LFP) 210-b轉(zhuǎn)發(fā)拆開的封包203??蛻舳薒FP 210-b是在VM中提供的如下圖像處理器算法的簡單版本,該版本用來讀取從客戶端的NIC接收的拆開的封包并且處理數(shù)據(jù)以剝離算法特定封包。組裝并且在客戶端的顯示器設(shè)備處表現(xiàn)在剝離封包信息之后獲得的所得部分幀緩沖器數(shù)據(jù)。拆開的幀緩沖器數(shù)據(jù)包括位圖信息和關(guān)聯(lián)上下文并且是客戶端特定的。由于使用簡單和通用算法來封包分組,所以客戶端的LFP算法中的解壓邏輯也是簡單的并且無需復(fù)雜處理,由此在客戶端處避免更重型CPU。因而瘦客戶端甚至也能夠使用簡單解壓邏輯來解壓封包。在一個實施例中,可能捕獲并且通過反向信道通信向SVM傳回在表現(xiàn)的輸出處的任何用戶輸入(諸如鍵盤敲擊或者鼠標(biāo)點擊)。在另一實施例中,可以從客戶端設(shè)備向SVM定期發(fā)送關(guān)于連接狀態(tài)的自動反饋??赡苁褂每蛻舳怂惴ê涂蛻舳薔IC來封包這些用戶輸入和自動反饋。向SVM轉(zhuǎn)發(fā)回封包的用戶輸入和反饋分組205,在SVM解壓和處理它們。在本發(fā)明的一個實施例中,向SVM轉(zhuǎn)發(fā)用戶輸入和反饋分組205以向算法通知已經(jīng)在客戶端200處表現(xiàn)什么以及連接的狀態(tài)。在另一實施例中,通過相應(yīng)OS向在對應(yīng)VM處執(zhí)行的一個或者多個應(yīng)用轉(zhuǎn)發(fā)用戶輸入和反饋分組205。用戶輸入和反饋分組205的封包基于數(shù)據(jù)目的地。用于封包幀緩沖器數(shù)據(jù)的格式化算法依賴于與請求信息的客戶端關(guān)聯(lián)的信息。與客戶端有關(guān)的信息定義客戶端的特性并且通過分析對客戶端類型、在客戶端上運行的OS類型以及依賴于環(huán)境的其他參數(shù)進(jìn)行定義的連接參數(shù)來獲得。格式化算法使用這一信息以相應(yīng)地封包幀緩沖器數(shù)據(jù)。例如在圖2E中所示一個實施例中,格式化算法將與客戶端有關(guān)的信息用于移動電話質(zhì)量的瘦客戶端,以便使用提供良好刷新速率的技術(shù)來生成簡單圖像表現(xiàn)內(nèi)容203-b,由此格式化算法將與客戶端有關(guān)的信息用于基于桌面型的瘦客戶端以便生成為了更豐富體驗而定制的復(fù)雜消息類型203-a。也可以使用格式化算法來生成用于其他客戶端類型的附加格式(諸如用于個人數(shù)字助理質(zhì)量的瘦客戶端的圖像表現(xiàn)內(nèi)容203和用于基于電視監(jiān)視器/屏幕/顯示器的客戶端的圖像表現(xiàn)內(nèi)容203-c)。另外,在格式化的圖形輸出將UDP用于傳送時,客戶端可以通過長或者短距離訪問和控制服務(wù)。基于來自從格式化算法接收的基于具體客戶端的分組的變化輸入來變化使用UDP協(xié)議而生成的圖形輸出。因此,圖形輸出204對應(yīng)于圖像表現(xiàn)內(nèi)容203,圖形輸出204-a對應(yīng)于圖像表現(xiàn)內(nèi)容203-a,以此類推。應(yīng)當(dāng)注意,在傳送數(shù)據(jù)中使用的UDP是示例性的并且不應(yīng)視為限制??伞ひ允褂闷渌麄鬏攨f(xié)議,只要維護(hù)客戶端通過長或者短距離訪問服務(wù)的能力即可。如描述的那樣,圖像處理器算法經(jīng)由管理程序直接訪問用于相應(yīng)VM的幀緩沖器信息,使得算法可以取回、處理、封包并且向客戶端傳輸適當(dāng)幀緩沖器信息。算法未與任何OS交互并且因而無需用于從管理程序取回幀緩沖器信息的任何專用協(xié)議。為了輔助算法標(biāo)識與適當(dāng)VM關(guān)聯(lián)的幀緩沖器,管理程序包括將客戶端請求映射到適當(dāng)VM的幀緩沖器的存儲器和設(shè)備管理器。當(dāng)客戶端請求連接時,SVM內(nèi)的算法在一個實施例中詢問與連接請求關(guān)聯(lián)的連接參數(shù)、確定客戶端的標(biāo)識和可以提供虛擬服務(wù)的VM的細(xì)節(jié)并且在標(biāo)識和定位VM中與在管理程序處的存儲器管理器交互。使用來自連接參數(shù)的信息以及來自存儲器和設(shè)備管理器的映射信息,算法標(biāo)識VM并且然后在管理程序使設(shè)備和存儲器可用于在SVM處的算法時直接從預(yù)定存儲器位置訪問標(biāo)識的VM的幀緩沖器。利用對算法的功能的上述一般理解,現(xiàn)在將詳細(xì)描述算法的各種方面。為了輔助捕獲和傳輸每個VM的幀緩沖器數(shù)據(jù)的適當(dāng)部分,算法包括多個模塊。這些模塊是可以都集成到單個圖像處理器算法中的軟件(和/或硬件)模塊或者可以作為獨立模塊而存在。在算法中包括的模塊中的一些模塊包括掃描引擎、熱引擎、上下文引擎、邏輯引擎、連接引擎和輸出引擎。掃描引擎被配置成辨別虛擬圖像和VM的幀緩沖器的改變并且在基于時間的構(gòu)造中存儲幀緩沖器的狀態(tài)維護(hù)。圖2F圖示了為每個VM的幀緩沖器數(shù)據(jù)而維護(hù)和傳輸?shù)幕跁r間的構(gòu)造樣本。例如基于客戶端特性信息,為客戶端的顯示器設(shè)備組裝用于客戶端的圖像構(gòu)造。在一個實施例中,圖像構(gòu)造可以包括從LFP應(yīng)用服務(wù)器I獲得的信息。在圖2F-1中所示另一實施例中,除了來自應(yīng)用服務(wù)器I的信息之外,圖像構(gòu)造也可以包括來自LFP “廣告”服務(wù)器的信息(諸如廣告信息)和其他應(yīng)用服務(wù)器信息(諸如從LFP應(yīng)用服務(wù)器3獲得的信息)。除了圖像構(gòu)造信息之外,也捕獲、封包和傳輸與來自相應(yīng)源的圖像構(gòu)造信息關(guān)聯(lián)的任何增量(delta)。由于獲得每個圖像構(gòu)造信息作為位圖信息,所以從每個LFP服務(wù)器僅傳輸位圖的相關(guān)分段信息。因此如圖2F-1中所示,來自LFP應(yīng)用服務(wù)器I的位圖信息包括所有位圖信息和來自除了框I和框2覆蓋的區(qū)域之外的LFP應(yīng)用服務(wù)器I的任何增量。從LFP廣告服務(wù)器獲得包括任何增量的用于框I的信息,并且從LFFP應(yīng)用服務(wù)器3獲得包括任何增量的用于框2的信息。接收來自各種源的位圖信息作為帶內(nèi)傳輸。因此當(dāng)傳輸信息時,在客戶端的顯示器設(shè)備處解壓、組裝和呈現(xiàn)圖像數(shù)據(jù),僅包括來自每個源的相關(guān)信息,由此節(jié)省網(wǎng)絡(luò)帶寬和計算資源。除了帶內(nèi)傳輸之外,算法還實現(xiàn)在客戶端處表現(xiàn)帶外傳輸。因此如圖2F-2中所示,在客戶端處獲得和表現(xiàn)用于顯示器監(jiān)視器中可見的區(qū)域的與帶內(nèi)傳輸關(guān)聯(lián)的信息和任何增量。在這一實施例中,未獲得用于不可見的區(qū)域的信息,由此保存網(wǎng)絡(luò)帶寬和處理資源。在一個實施例中,客戶端的整個屏幕可以用來表現(xiàn)帶外流(諸如視頻流)。在這一實施例中,算法確定用于表現(xiàn)帶外流的顯示區(qū)域量并且智能地避免為客戶端生成任何帶內(nèi)傳輸分組,因為在客戶端的顯示器設(shè)備中無用于表現(xiàn)該信息的可見空間,由此節(jié)省網(wǎng)絡(luò)和處理 資源以及處理時間。因此,算法提供用于確定表現(xiàn)哪個幀緩沖器數(shù)據(jù)以及使用什么資源的智能,并且基于確定來生成圖像構(gòu)造?;仡檲D3B,熱引擎被配置成在對VM的幀緩沖器的圖形幀內(nèi)的活動區(qū)域定位中具有滑動精確度標(biāo)度并且將活動水平辨別為狀態(tài)活動的速率導(dǎo)數(shù)。上下文引擎被配置成評估熱引擎輸出以確定是否可以按照要素(諸如活動和對比度)來標(biāo)識鄰接區(qū)域,從而用具體專門化技術(shù)對待區(qū)域。邏輯引擎被配置成基于來自各種模塊的輸入(諸如熱速率、色分解、通過熱引擎從VM的幀緩沖器獲得的熱區(qū)域?qū)Ρ榷?、來自上下文引擎的輸入、連接的瘦客戶端的平臺和從連接引擎獲得的連接質(zhì)量)確定應(yīng)當(dāng)將哪個技術(shù)運用于壓縮/傳輸。邏輯引擎也被配置成用所選技術(shù)對分析的圖像數(shù)據(jù)信息進(jìn)行編碼。連接引擎被配置成與多個模塊交互,諸如a)與瘦客戶端交互針對初始握手和連接對話的持續(xù)質(zhì)量;b)與邏輯引擎交互以獲得和解決質(zhì)量問題;c)與掃描引擎交互以指引掃描引擎查看恰當(dāng)VM的幀緩沖器。連接引擎通過與用戶到資產(chǎn)的目錄系統(tǒng)交互來標(biāo)識適當(dāng)VM的幀緩沖器。連接引擎也被配置成與輸出引擎交互以確定客戶端的位置,使得可以適當(dāng)指引VM的幀緩沖器信息的傳輸。輸出引擎被配置成定義最優(yōu)分組大小從而設(shè)計定制報頭并且使用簡單傳送協(xié)議(諸如m)P)以高效方式向瘦客戶端傳輸定制報頭和關(guān)聯(lián)數(shù)據(jù)。在一個實施例中,算法與管理程序而未直接與VM的OS交互。在一個替代實施例中,一些OS交互可以是可能的。無論如何,算法將對于從OS到下層硬件的圖形指令而言是透明的。捕獲屏幕信息的傳統(tǒng)過程是通過使用圖形卡(諸如來自ATI Technologies Inc.或者來自NVIDIA 的圖形卡)。這需要很多CPU功率和定制的壓縮/解壓邏輯,其增添虛擬環(huán)境的開銷從而造成不良性能和低用戶滿意度。就當(dāng)前實施例而言,算法與管理程序交互以直接訪問相應(yīng)VM的幀緩沖器信息。另外由于幀緩沖器數(shù)據(jù)是以原始位圖數(shù)據(jù)格式并且算法重新格式化原始位圖數(shù)據(jù),所以無需復(fù)雜壓縮/解壓邏輯來譯解圖形指令。由于算法聚焦于通過管理程序取回幀緩沖器并且不是從OS取回實際指令,所以無需專用協(xié)議來編碼/解碼,從而使這獨立于OS/圖形卡?,F(xiàn)在將分別參照圖3A和3B描述算法內(nèi)的各種模塊的細(xì)節(jié)。圖3A和3B圖示了在將幀緩沖器用于特定VM中涉及到的各種部件的簡化框圖。圖3A圖示了系統(tǒng)部件和在各種部件之間的用于控制VM內(nèi)的虛擬服務(wù)的交互的簡單概況,并且圖3B圖示了圖像處理器算法的各種部件的簡化框圖連同算法在通過管理程序?qū)彌_器用于特定VM并且指引與幀緩沖器關(guān)聯(lián)的數(shù)據(jù)向?qū)?yīng)客戶端的傳輸中使用的過程流程??蛻舳丝梢允恰笆荨笨蛻舳嘶颉胺省笨蛻舳?。瘦客戶端可以包括移動設(shè)備、個人數(shù)字助理、蜂窩電話、屏幕、筆記本計算機(jī)、電話亭、智能電話、平板或者其他這樣的設(shè)備中的任何設(shè)備。胖客戶端可以包括桌面計算機(jī)、膝上計算機(jī)、工作站等。上述瘦和胖客戶端列舉是示例性的并且不應(yīng)解釋為限制。如圖3A中所示,在本發(fā)明的一個實施例中,在與其他VM并排在管理程序上運行的服務(wù)器VM (諸如LFP (輕量級幀緩沖器協(xié)議)SVM)內(nèi)提供算法(諸如圖像處理器算法)。SVM在這一實施例中不同于其他VM。算法包括用于接收連接請求、詢問連接(或者環(huán)境)參數(shù)并且標(biāo)識VM (該VM提供在連接請求中請求的虛擬服務(wù))、訪問和讀取與標(biāo)識的VM關(guān)聯(lián)的幀緩沖器數(shù)據(jù)、將幀緩沖器數(shù)據(jù)封包成圖像元、定期掃描幀緩沖器以確定鄰接活動區(qū)域和活動水平、標(biāo)識上下文、確定用于處理、封包并且向客戶端傳輸圖像元用于表現(xiàn)并且傳輸圖像元的適當(dāng)技術(shù)的多個模塊,諸如掃描引擎、熱引擎、上下文引擎、邏輯引擎、連接引擎和輸出引擎。 算法內(nèi)的模塊與目錄服務(wù)310交互以確定客戶端到具體VM上可用的服務(wù)的映射,使得可以適當(dāng)指引請求、與基于時間的狀態(tài)維護(hù)數(shù)據(jù)庫320交互以基于隨時間的活動水平存儲活動區(qū)域、與改變區(qū)域數(shù)據(jù)庫330交互以確定已經(jīng)改變的不同區(qū)域從而識別幀并且允許邏輯引擎僅聚焦于那些區(qū)域并且忽略非活動區(qū)域并且與壓縮/傳輸技術(shù)數(shù)據(jù)庫340交互以標(biāo)識用于在向客戶端傳輸之前壓縮相關(guān)圖像區(qū)域的適當(dāng)技術(shù)。在算法外部的連接或者服務(wù)代理幫助標(biāo)識VM,從而使算法的模塊能夠與標(biāo)識的VM交互以便獲得對幀緩沖器數(shù)據(jù)的訪問用于作為圖像數(shù)據(jù)元向客戶端前傳。在客戶端處接收傳輸?shù)膱D像數(shù)據(jù)元,在客戶端對數(shù)據(jù)元解碼并且執(zhí)行解壓而且呈現(xiàn)解壓的數(shù)據(jù)用于在與客戶端關(guān)聯(lián)的顯示器設(shè)備處表現(xiàn)。表現(xiàn)的數(shù)據(jù)是客戶端特定的并且代表具體VM的VM顯示器的圖像。因而表現(xiàn)的圖像示出在VM處執(zhí)行或者表現(xiàn)的圖元、圖標(biāo)、顯示、程序、鏈接、圖片、電影和用戶接口操縱或者非操縱。在客戶端處實現(xiàn)用戶交互,并且使用反向信道通信向VM傳回用戶交互從而造成在VM處對虛擬化服務(wù)的控制。應(yīng)當(dāng)注意,算法提供的服務(wù)是顯示服務(wù)(諸如顯示具體VM的VM顯示器的圖像)。算法也使掃描引擎能夠確定幀緩沖器的如下部分,這些部分具有具體類型的鄰接活動區(qū)域,使得專門化技術(shù)可以用來提取鄰接區(qū)域的部分、封包并且傳輸封包。在一個實施例中,可以調(diào)用帶外流,其中解壓并且在與客戶端關(guān)聯(lián)的顯示器設(shè)備上疊加幀緩沖器數(shù)據(jù)。通常,視頻內(nèi)容多媒體數(shù)據(jù)使用這樣的方式從而保持音頻和視頻內(nèi)容兩者在一起?,F(xiàn)在參照圖3B以更好地理解用于通過遠(yuǎn)程客戶端訪問和/或控制在VM處的虛擬服務(wù)的算法的各種模塊和系統(tǒng)的部件內(nèi)的交互和幀緩沖器數(shù)據(jù)的過程流程。如更早提到的那樣,遠(yuǎn)程客戶端可以是與VM共同定位或者非共同定位但是通過網(wǎng)絡(luò)(諸如因特網(wǎng))連接到VM的瘦或者胖客戶端。在一個示例中,該過程在客戶端(3. 18)向虛擬服務(wù)發(fā)起連接請求時開始。在VM (諸如服務(wù)器VM (SVM))處的圖像處理器算法中的連接引擎(3. 12)接收和解釋連接請求并且斷定客戶端的策略、認(rèn)證信息和位置以及客戶端(3. 18)請求的服務(wù)。參照圖8描述連接引擎(3. 12)的功能。如圖8中所示并且交叉參照圖3B,從客戶端(3. 18或者8. 4)接收連接請求用于服務(wù)。在請求接收和請求服務(wù)過程期間,連接引擎(3. 12)與客戶端(3. 18或者8. 4)交互用于初始握手(3. 14)并且用于維護(hù)連接對話的持續(xù)質(zhì)量(3. 15,3. 19)。連接引擎(3. 12)內(nèi)的路由邏輯8. 3接收請求并且又進(jìn)行對目錄服務(wù)(8. 2)的調(diào)用(8. I)以斷定客戶端的策略、認(rèn)證信息和位置以及服務(wù)。在一個實施例中,目錄服務(wù)(8. 2)為外部服務(wù)。在初始握手(3. 14)期間交換的信息標(biāo)識一個或者多個連接參數(shù),這些參數(shù)包括但不限于客戶端(8. 4)的位置、連接能力(通信連接帶寬、通信連接的質(zhì)量)信息、希望連接的虛擬服務(wù)位置(3. O)、客戶端類型(8. 4)、請求的數(shù)據(jù)類型、與客戶端關(guān)聯(lián)的顯示器類型和與客戶端(8. 4)關(guān)聯(lián)的顯示器的配置(分辨率/位深度/刷新速率)。連接參數(shù)定義客戶端的特性。連接引擎(3. 12)也與邏輯引擎(8.6)交互以基于初始握手和進(jìn)行中的對話(3. 19)隨時間饋送/更新與連接關(guān)聯(lián)的質(zhì)量問題(3. 15);與掃描引擎(8. 5)交互以指引掃描引擎查看與VM資源(服務(wù))關(guān)聯(lián)的適當(dāng)幀緩沖器,瘦客戶端(8. 4)針對該資源(服務(wù))發(fā)起請求;并且與輸出引擎(8. 7)交互以指引向客戶端(8. 4)的位置的傳輸?,F(xiàn)在參照圖3B,一般而言,處于數(shù)據(jù)中心內(nèi)部的管理程序(3. O)上的虛擬機(jī)的操作系統(tǒng)(OS)無需連接到它的監(jiān)視器并且被視為“無頭”。在OS無頭的這一情形中,OS將它 的輸出定向到幀緩沖器(3. I)。幀緩沖器(3. I)是與在具體VM關(guān)聯(lián)的具體存儲器部分中存儲并且由具體VM的OS訪問的圖像關(guān)聯(lián)的如下信息,該信息定義如下圖形輸出,該圖形輸出代表VM的虛擬機(jī)顯示器的圖像。管理員已經(jīng)在歷史上使用這一幀緩沖器構(gòu)造以向圖形控制臺提供對個別客戶/VM的訪問。在一個實施例中,與監(jiān)視器相似,幀緩沖器可以以驅(qū)動的頻率在圖形控制臺處由圖形驅(qū)動器(諸如視頻電子標(biāo)準(zhǔn)協(xié)會(VESA)驅(qū)動器或者仿真硬件驅(qū)動器)更新。然而其他方式(諸如軟件過程)可以用來更新幀緩沖器。在一個實施例中,使用幀緩沖器和來自連接引擎3. 12的連接狀態(tài)信息,掃描引擎(3. 2) 一般以與適當(dāng)幀緩沖器被更新的頻率相同的頻率自動掃描它并且針對改變評估幀緩沖器。利用在初始握手(3. 14)期間拾取的信息(諸如客戶端類型),掃描引擎(3. 2)可以基于客戶端能力或者服務(wù)規(guī)則來選擇不考慮用于捕獲幀緩沖器改變的默認(rèn)集。作為示例,在客戶端不能有幀緩沖器數(shù)據(jù)的可能是典型的高速刷新速率的情形中,掃描引擎(3. 2)可以選擇減緩(throttle back)掃描和捕獲巾貞緩沖器改變以節(jié)約資源。掃描引擎(3. 2)在對應(yīng)基于時間的存儲陣列(3. 3)中存儲用于相應(yīng)VM的幀緩沖器改變的狀態(tài)。替代地,在另一實施例中,掃描引擎(3. 2)可以處于潛伏從而等待在與VM關(guān)聯(lián)的圖形驅(qū)動器改變對應(yīng)緩沖器中的信息時被通知(3. 21)并且然后將隨后在通知時進(jìn)行掃描。在一個實施例中,“同步標(biāo)志”或者“同步信號”可以用來確定圖形驅(qū)動器何時更新/刷新對應(yīng)幀緩沖器,使得掃描引擎可以稍后捕獲改變而未損失任何數(shù)據(jù)或者未干擾寫入/刷新操作。參照圖4描述掃描引擎的功能。替代地參照圖3B和圖4,掃描引擎(3. 2)包括用于使掃描引擎能夠辨別與特定VM關(guān)聯(lián)的幀緩沖器的改變并且在基于時間的構(gòu)造中存儲幀緩沖器改變的狀態(tài)維護(hù)的多個邏輯。具體而言,掃描引擎(3. 2)可以包括與掃描功能(4. 3)對話的連接功能(4. I)。對話(4. 2)由需要連接到的幀緩沖器的位置、大小、位深度和掃描頻率期望構(gòu)成。根據(jù)在初始握手期間并且通過進(jìn)行中的對話(連接引擎通過連接參數(shù)來與客戶端維護(hù)該對話)從連接引擎接收的信息驅(qū)動對話(4. 2)。掃描功能(4. 3)從事幀緩沖器的存儲器映射(4. 4)并且開始掃描幀緩沖器中的信息。
掃描功能然后從事增量功能以尋找從先前掃描(4. 6)的改變并且然后在基于時間的陣列中存儲增量狀態(tài)(4. 7)以便熱引擎(3. 4)使用。增量狀態(tài)(4. 7)代表圖形幀緩沖器內(nèi)的活動區(qū)域。連接功能(4. I)可以在速度方面修改掃描功能(4. 3)從事的掃描行為,從而調(diào)用存儲器映射(4. 4)的暫停/重新從事或者斷開和釋放。在掃描幀緩沖器之后,熱引擎(3. 4)由算法從事以解釋掃描的信息。在一個實施例中,熱引擎(3. 4)查看對幀緩沖器的改變進(jìn)行定義的基于時間的陣列和掃描引擎標(biāo)識的增量狀態(tài),并且評估活動區(qū)域以確定隨時間的維系活動的水平。例如它可以利用信號放大搜索算法以提升幀緩沖器信息的粒度區(qū)域的靈敏度。在一個實施例中,搜索算法在分度槽(graduated trough)中機(jī)制的基礎(chǔ)上工作。例如搜索算法經(jīng)由粗略(gross)二元搜索模式在分割的區(qū)域中工作它的方式以確定是否有活動并且然后隨后確定活動在何處。在發(fā)現(xiàn)活動時,它通過排除非活動區(qū)域來繼續(xù)搜索模式以及將它本身僅分解至實際活動水平并且退出搜索的其余部分。這限制網(wǎng)絡(luò)開銷、CPU消耗并且改進(jìn)搜索時間和傳輸時間。此外,這一放大搜索模式可重用,因為可以進(jìn)行它以搜尋多個特性,諸如對比度、顏色、涉及其他度量的鄰近性的度量等。在一個實施例中,用于跟蹤多個特性的參數(shù)在技術(shù)保持相同之時可調(diào)。
圖5圖示了熱引擎(3. 4)的功能。詳細(xì)地,熱引擎(3. 4)跟蹤、收集和分析由掃描引擎(3. 2)更新的基于時間的陣列(3. 3)的改變并且使用濾波器(諸如陣列遍歷濾波器(5. I))以將改變分組成基于時間的桶。該分析可以是用于建立趨勢特點(trait)的單個時間導(dǎo)數(shù)(derivative)或者多個導(dǎo)數(shù)。向信號放大算法(5. 2)中發(fā)送分組以隧穿(tunnel)到改變中達(dá)到充分水平(“充分”由試探算法確定),并且使用熱確定功能(5. 3)來建立熱的性質(zhì)和像素細(xì)節(jié)水平。這一分析將針對熱引擎(3. 4)標(biāo)識的每個熱區(qū)域在整個放大過程(5. 4)中循環(huán)。附加循環(huán)(5. 4)可以針對熱的不同屬性(包括顏色/對比度、活動等)出現(xiàn)直至分析完成。在庫(諸如改變區(qū)域數(shù)據(jù)庫(3. 5))中維護(hù)并且向上下文引擎(3. 6)和邏輯引擎(3. 7)兩者轉(zhuǎn)交來自熱引擎(3. 4)的分析結(jié)果。在一個實施例中,向上下文引擎(3. 6)饋送來自熱引擎(3. 4)的輸出?;仡檲D3B,上下文引擎(3. 6)拾取熱引擎(3. 5)的輸出并且查看以標(biāo)識鄰接活動區(qū)域并且標(biāo)識區(qū)域的邊界或者任何其他標(biāo)識特性?,F(xiàn)在將參照圖6描述上下文引擎的功能。上下文引擎包括用于評估熱引擎輸出以確定鄰接區(qū)域是否可以按照活動和對比度來標(biāo)識并且視為具有特殊條件的幀的邏輯。在一個實施例中,上下文引擎(3. 6)利用聯(lián)合算法(6. I)并且基于對于上下文引擎(3. 6)可用的語法規(guī)則庫中可用的幾何原則、色對比度和時間(6. 2)來使用專有工藝語法規(guī)則(proprietary crafted grammatical rule)來在多變量數(shù)據(jù)集之中尋找元模式。在一個實施例中,希望提供全邊界發(fā)現(xiàn)從而在其他變量之中平衡最佳帶寬、最佳體驗(無撕裂)和最佳中央處理單元(CPU)性能(單一統(tǒng)一壓縮建立/拆卸)以針對帶外處理或者其他技術(shù)做出選擇。在一個實施例中,上下文引擎(3. 6)對較小的幀執(zhí)行分析并且被配置成通過將較小的幀聯(lián)接在一起來組裝較大的幀以作為鄰接實體來對待。上下文引擎(3. 6)考慮與活動相鄰的區(qū)域的對比度差異。上下文引擎(3. 6)也查看隨時間的活動水平以確定持久的可能性并且建立用替代技術(shù)操縱活動的價值。在上下文陣列(6. 3)中維護(hù)上下文引擎的輸出?;仡檲D3B,邏輯引擎(3. 7)分析來自各種源的輸出并且確定將哪個技術(shù)運用于壓縮和傳輸幀緩沖器中的數(shù)據(jù)。邏輯引擎(3. 7)取得來自多個源的饋送(諸如來自熱引擎的饋送(3. 8)、來自上下文引擎(3. 9)的饋送)、來自初始握手(3. 14)的信息(關(guān)于客戶端類型、連接的大小和位深度的信息以對對比度加權(quán))和沿著反向信道來自客戶端的連接饋送(3. 15)的持續(xù)質(zhì)量?,F(xiàn)在將參照圖7描述邏輯引擎(3. 7)的功能。邏輯引擎(3. 7)取得來自連接引擎(7. 2)、熱引擎(7. 3)、上下文引擎(7. 4)的輸出并且使用分析功能(7. I)來執(zhí)行多變量分析以平衡服務(wù)器側(cè)性能、客戶端側(cè)用戶體驗和網(wǎng)絡(luò)消耗效率的需要。在一個實施例中,邏輯引擎依賴于可用于選擇如下最優(yōu)技術(shù)的壓縮技術(shù)(7. 5)的列表,該最優(yōu)技術(shù)用于壓縮幀緩沖器中的數(shù)據(jù)。算法提供一種用于刷新/恢復(fù)數(shù)據(jù)的高效方式。算法生成的圖像數(shù)據(jù)分組包括與虛擬機(jī)顯示器的圖像的具體部分相關(guān)并且為了在客戶端處表現(xiàn)圖像的具體部分而分配的數(shù)據(jù)。如更早提到的那樣,每個圖像數(shù)據(jù)分組中的數(shù)據(jù)包括相對簡單的如下語法,該語法定義虛擬機(jī)顯示器的圖像的具體部分。由于生成的圖像數(shù)據(jù)分組的簡化語法,有可能以精確和聚焦方式重傳遺漏分組。在現(xiàn)有技術(shù)中,刷新在客戶端處的顯示器將需要傳輸如下分組 的流,這些分組流保持圖形指令和圖像數(shù)據(jù)。利用復(fù)雜語法,在每個分組中發(fā)送的圖像數(shù)據(jù)可以與一系列其他分組有關(guān)以便描述如下指令的全集,在客戶端的顯示器驅(qū)動器需要這些指令的全集以對分組解碼來表現(xiàn)圖像。在許多情況下,刷新顯示器區(qū)域或者部分將需要獲得多個分組以更新整個顯示器,因為分組未預(yù)先分配給顯示器的任何具體部位或者部分(例如一個或者多個具體像素)或者與它們相關(guān)。算法因此通過減少傳輸?shù)臄?shù)據(jù)量而又維護(hù)在客戶端表現(xiàn)的圖像的質(zhì)量來實現(xiàn)優(yōu)化用于傳輸和/或表現(xiàn)幀緩沖器數(shù)據(jù)的網(wǎng)絡(luò)/計算資源和時間。進(jìn)而言之,算法實現(xiàn)刷新或者重傳分組中的與顯示器屏幕的需要刷新或者更新的那些區(qū)域相關(guān)的特定分組。雖然將 定期更新或者刷新整個顯示器,但是當(dāng)無需完全刷新或者更新時,通過不傳輸用于無需刷新的區(qū)域的分組來節(jié)省的帶寬可能是大量的。這里應(yīng)當(dāng)注意客戶端包括用于讀取從算法接收的圖像數(shù)據(jù)分組、剝離封包信息、對其中包含的數(shù)據(jù)解碼、將數(shù)據(jù)映射到客戶端的顯示器上的適當(dāng)部分并且基于解碼數(shù)據(jù)的映射在客戶端的顯示器上表現(xiàn)適當(dāng)部分的必需邏輯。在一個實施例中,客戶端中的邏輯能夠處理圖像數(shù)據(jù)分組中的所有數(shù)據(jù)而無需客戶端的本地顯示器驅(qū)動通過它的編程例程處理任何數(shù)據(jù)。在另一實施例中,客戶端內(nèi)的邏輯能夠用客戶端本地顯示器驅(qū)動處理圖像數(shù)據(jù)分組中的數(shù)據(jù)從而通過一個或者多個編程例程提供某一處理量。本地顯示器驅(qū)動需要的處理部分可以包括將數(shù)據(jù)映射到客戶端的顯示器的具體部分或者映射顏色等??赡苡袨槭裁磧H需傳輸數(shù)據(jù)子集的任何數(shù)量的原因。一些原因可以包括由于不良連接的數(shù)據(jù)損失、由于具體部分中的高度活動的數(shù)據(jù)刷新、由于很低度活動或者無活動的定期刷新等。算法可以使用來自熱引擎和邏輯引擎的輸出以標(biāo)識幀緩沖器數(shù)據(jù)的具體部分中的活動水平以便向客戶端提供必需數(shù)據(jù)。圖7A-7C圖示了一些示例,其中傳輸具體圖像數(shù)據(jù)分組以便刷新在客戶端處的VM顯示器的具體部分。這里應(yīng)當(dāng)注意,起初向客戶端傳輸代表VM顯示器的圖像的來自幀緩沖器的所有數(shù)據(jù)用于表現(xiàn)。在VM顯示器的圖像的初始表現(xiàn)之后,可以定期刷新/更新數(shù)據(jù)的具體部分或者全部。在圖7A中所示的一個實施例中,定期傳輸用于VM顯示器的具體部分的數(shù)據(jù)以刷新在客戶端處的數(shù)據(jù)。這可能歸因于以下事實沒有針對在相應(yīng)VM處的幀緩沖器數(shù)據(jù)記錄的活動。因而沒有可用于向客戶端傳輸?shù)男聰?shù)據(jù)并且僅重傳陳舊的冗余數(shù)據(jù)用于刷新在客戶端處已經(jīng)表現(xiàn)的圖像的具體部分。這將以最陳舊數(shù)據(jù)最先的順序來完成。在圖7B中,傳輸?shù)臄?shù)據(jù)可以包括一些新數(shù)據(jù)和最陳舊的冗余數(shù)據(jù)。例如用于VM圖像顯示器的具體部分的新數(shù)據(jù)可以與應(yīng)用屏幕(諸如Microsoft Word文檔)上的閃爍光標(biāo)關(guān)聯(lián),并且冗余數(shù)據(jù)可以是與顯示器圖像的陳舊部分關(guān)聯(lián)的數(shù)據(jù)。類似地,在圖7C中,為圖像的具體部分傳輸?shù)臄?shù)據(jù)可以包括大部分新數(shù)據(jù)和僅一些陳舊的冗余數(shù)據(jù)。例如新數(shù)據(jù)可以與應(yīng)用屏幕上的定時器關(guān)聯(lián)并且陳舊的冗余數(shù)據(jù)可以是圖像的剩余部位的尚未改變的部分。圖7A-7C中的每個箭頭的量值圖示了向客戶端傳輸?shù)南鄳?yīng)數(shù)據(jù)的量。由于向客戶端發(fā)送的每個圖像數(shù)據(jù)分組的相關(guān)性質(zhì),可以僅發(fā)送與刷新/恢復(fù)相關(guān)的數(shù)據(jù)而不必發(fā)送用于整個圖像的數(shù)據(jù)。通過圖像數(shù)據(jù)分組發(fā)送的向VM的顯示器圖像的具體部分分配的位圖數(shù)據(jù)實現(xiàn)刷新/恢復(fù)數(shù)據(jù)的具體部分而無需刷新剩余數(shù)據(jù),由此減少延遲和網(wǎng)絡(luò)/計算資源。回顧圖3B,連接反向信道的質(zhì)量(3. 15)是如下UDP信息流,該信息流注視接收的分組的分組報頭并且關(guān)于分組的抖動、損失和無序信息進(jìn)行報告。此外,UDP流也注視延 遲、帶寬和損失的明顯持久調(diào)整并且向邏輯引擎(3. 7)報告它們。在一個實施例中,邏輯引擎(3. 7)具有如下一組預(yù)定邏輯/功能,它調(diào)用這些邏輯/功能以向客戶端遞送幀緩沖器的各種類型。這些功能是基于從各種饋送斷定的刺激在具體組合中使用的壓縮/傳輸技術(shù)(3. 10)的組合。在一個實施例中,邏輯引擎(3. 7)經(jīng)由多個變量分析來考慮與連接和客戶端關(guān)聯(lián)的各種參數(shù)和特性。例如在分析階段期間,邏輯引擎考慮(a)客戶端類型。一些客戶端可以操縱帶外多媒體而其他客戶端不可以。移動電話、桌面計算機(jī)和OS對用于以不同方式處理和緩沖網(wǎng)絡(luò)行為的能力具有影響。因而所用技術(shù)考慮網(wǎng)絡(luò)行為并且相應(yīng)地格式化幀緩沖器數(shù)據(jù)的傳出流。此外,一些解壓算法還可能對于某些客戶端而言太沉重,并且需要運用替代技術(shù);(b)連接類型。某些網(wǎng)絡(luò)具有如下延遲和抖動特性兩者,這些特性可以改變需要運用的技術(shù)的性質(zhì);(C)區(qū)域的活動水平和大小/范圍。將在不同條件之下運用具有壓縮技術(shù)的塊大小以適應(yīng)區(qū)域的大小/范圍。此外,還將在不同條件之下運用有損比對無損壓縮的選擇;(d)區(qū)域的顏色分布。邏輯引擎可以使用隨機(jī)采樣以斷定色場的復(fù)雜性并且將不同壓縮技術(shù)運用于文本頁面比對圖像比對一致顏色。邏輯引擎也將利用泊松分布算法作為平衡媒介以標(biāo)識隨機(jī)奇異點(singularity)的區(qū)域以避免錯誤;(e)用于運用如下技術(shù)的圖像分析,這些技術(shù)用于與人類可視感知容差相配;(f)如下場景,其中一些技術(shù)命中遞減回報(diminishing return)或者高低效水平(示例產(chǎn)生比原始凈荷更大凈荷的壓縮)并且調(diào)整技術(shù);(g)上下文引擎可以標(biāo)識可以用分層算法操縱的鄰接區(qū)域。可以將流或者帶外算法運用于具體幀緩沖器數(shù)據(jù)類型;(h)邏輯引擎被配置成運用層標(biāo)識技術(shù)以標(biāo)識數(shù)據(jù)流,因為其他數(shù)據(jù)流源可以被定向到客戶端。邏輯引擎可以運用的壓縮類型或者技術(shù)包括(但不限于):像素掃描;triXel (或者像素組);位圖壓縮(有損(諸如JPEG));位圖壓縮(無損(諸如PNG));方形(可變大小);矩形(可變寬度、高度);未壓縮位圖;顏色常數(shù);位圖高速緩存;以及損失管理技術(shù)(諸如陳舊刷新)。運用的壓縮類型或者技術(shù)的前述列舉是示例性的并且不應(yīng)視為窮舉或者限制??梢允褂闷渌麎嚎s類型或者技術(shù),只要在生態(tài)系統(tǒng)中維護(hù)壓縮的功能和意圖即可。向輸出引擎(3. 11)轉(zhuǎn)交使用壓縮/傳輸技術(shù)(3. 10)的邏輯引擎輸出,輸出引擎封包分組并且基于連接引擎(3. 13)提供的位置說明向瘦客戶端位置傳輸分組。圖9圖示了輸出引擎I. 11的功能。輸出引擎使用路由目的地邏輯9. I來與連接引擎(9. 2或者3. 12)交互以確定從其接收原始請求的瘦客戶端的位置、客戶端類型等。用UDP技術(shù)將分組置于網(wǎng)絡(luò)上并且基于內(nèi)容和對用于操縱網(wǎng)絡(luò)UDP緩沖器的能力進(jìn)行定義的客戶端類型(3. 18)用定制報頭和分組大小(9. 6)設(shè)定分組的大小。客戶端接收封包的幀緩沖器數(shù) 據(jù)并且對報頭解碼并且如指引的那樣將信息直接放置(9. 7)到屏幕幀上。主要原則是具有很輕量級的低計算客戶端。回顧圖3B,客戶端基于在與連接引擎(3.12)的初始握手(3. 14)期間收集的連接信息經(jīng)由m)P流向OS會話發(fā)送它的鼠標(biāo)點擊和鍵盤敲擊(3. 16)。此外也向掃描和熱引擎(3. 20)發(fā)送鍵盤敲擊/鼠標(biāo)點擊以提供關(guān)于可能改變區(qū)域的有效提示。圖10圖示了用于通過在瘦客戶端與虛擬環(huán)境內(nèi)的VM上的算法之間的來回交互來精細(xì)調(diào)諧/更新捕獲的圖像的示例。具體而言,從客戶端向掃描引擎(3. 2)和熱引擎(3. 4)發(fā)送標(biāo)識可能改變區(qū)域的鼠標(biāo)點擊和鍵盤敲擊(10. 3)。在一個實施例中,可以提示掃描引擎從間隙(hiatus)中出來以基于檢測到的鼠標(biāo)點擊和鍵盤敲擊來掃描用戶輸入,并且熱引擎可以通過點擊/鍵入來選擇向活躍區(qū)域添加人工熱(artificial heat)以保證用戶的正面體驗。因此,算法通過基于來自客戶端的輸入標(biāo)識可能改變區(qū)域來精細(xì)調(diào)諧捕獲的圖像、監(jiān)視在這些區(qū)域處的活動、生成改變增量并且向客戶端轉(zhuǎn)發(fā)精細(xì)調(diào)諧的信息用于表現(xiàn)??蛻舳嘶谠诳蛻舳伺c連接引擎(3. 12)之間交換的并且在初始握手(10. 2)期間獲得的連接參數(shù)中提供的路由目的地(10. I)在分組中從輸出引擎(3. 11)接收重新定向的幀緩沖器數(shù)據(jù)(10. 7)。解壓分組并且使用在客戶端(10. 9)處可用的顯示器功能來表現(xiàn)分組??蛻舳艘部梢詮腛S (3. O)接收帶外多媒體流(10. 10或者3. 17)的直接流,該流可以在客戶端OS上被直接解碼并且疊加到與客戶端關(guān)聯(lián)的屏幕(10. 9)上,在該屏幕已經(jīng)表現(xiàn)來自幀緩沖器的數(shù)據(jù)。在一個實施例中,除了在客戶端與算法的一個或者多個模塊之間的通常交互之夕卜,客戶端還與邏輯引擎3. 7交互以通過反向信道握手來交換與連接質(zhì)量關(guān)聯(lián)的信息,該信息也轉(zhuǎn)發(fā)到掃描引擎和熱引擎10.6。此外,反向信道通信也由客戶端用來轉(zhuǎn)發(fā)對連接狀態(tài)的更新(諸如對連接參數(shù)的動態(tài)改變,包括對客戶端的顯示器設(shè)備的改變或者在客戶端處添加一個或者多個顯示器設(shè)備)。除了向掃描引擎和熱引擎轉(zhuǎn)發(fā)的更新之外,客戶端也向在VM上運行的應(yīng)用轉(zhuǎn)發(fā)用戶交互。用戶交互由掃描引擎接收并且通過VM的OS轉(zhuǎn)發(fā)到適當(dāng)客戶端。在一個實施例中,雙向多媒體流通信可以通過與鼠標(biāo)/鍵盤和流技術(shù)相同的機(jī)制出現(xiàn)。視頻示例將是經(jīng)由分層技術(shù)在客戶端上通過本地驅(qū)動器的本地顯示(用于用戶反饋)一該顯示將與客戶端交互以附著到正確源層中一并且用流往回發(fā)送到OS用于消費和處理。根據(jù)聯(lián)合原則設(shè)計這一特征,而多個源向相同客戶端提供體驗。為了這樣做,要求每個源流具有分層標(biāo)識,使得帶外流可以與父層重新整合。此外,雖然可以在客戶端處定向多個源,但是客戶端可以僅選擇一次與一個源獨自交互。因此客戶端需要具有用于在任何時間點傳送源的所需狀態(tài)的能力(3. 19)。掃描引擎和所有下游服務(wù)也被配置成通過當(dāng)在解優(yōu)先級狀態(tài)中時暫停掃描幀緩沖器來節(jié)約資源。
某些新移動客戶端操作系統(tǒng)(諸如Android 移動電話OS)也包括用于保持基礎(chǔ)通信協(xié)議存活而又隔離和斷開屏幕活動的構(gòu)造。類似地,在一個場景中,可以向掃描引擎發(fā)送信號(3. 9)以將掃描解優(yōu)先級,因此節(jié)省服務(wù)器側(cè)和帶寬資源兩者。一個示例可以是客戶端預(yù)訂基于云的托管桌面服務(wù)并且同時消費來自單獨云的DVR娛樂服務(wù)。根據(jù)在屏幕上可見的內(nèi)容,每個云服務(wù)如果該服務(wù)在客戶端上不可見則可以不處理相應(yīng)幀緩沖器。更早討論的,圖2F圖示了幀緩沖器信息的選擇性顯示概念??蛻舳藢魉歪槍趯舆壿嫷奶幚淼男枰?。另一示例可以是根據(jù)桌面計算機(jī)的境況和桌面型計算機(jī)提供商的廣告規(guī)則引擎向客戶端遞送托管桌面服務(wù)而基于廣告的層放置于屏幕上。利用關(guān)于算法工作的上文詳細(xì)描述,現(xiàn)在將參照圖13描述標(biāo)識各種過程操作的過程流程。該過程始于如在操作1310中所示的從客戶端接收的針對連接到特定VM的請求。連接請求是針對訪問和控制在VM上運行的虛擬服務(wù)并且包括對客戶端的連接要求進(jìn)行定義的多個連接參數(shù)。在執(zhí)行圖像處理器算法的虛擬機(jī)處接收請求。在一個實施例中,具有算法的虛擬機(jī)可以充當(dāng)如下服務(wù)器虛擬機(jī),該服務(wù)器虛擬機(jī)訪問和管理在管理程序上 運行的其他VM的幀緩沖器數(shù)據(jù)。如在操作1320中所示,算法詢問連接請求以標(biāo)識服務(wù)和位置信息?;谠撛儐枺惴◤脑诠芾沓绦蛏线\行的多個VM之中標(biāo)識將如下具體VM,該VM將提供客戶端請求的服務(wù)。算法然后通過多個VM在其上執(zhí)行的管理程序直接訪問在存儲器中預(yù)定位置的標(biāo)識的VM的幀緩沖器信息。幀緩沖器定義如下圖形輸出,該圖形輸出代表與VM關(guān)聯(lián)的虛擬機(jī)顯示器的圖像。在SVM處的算法如在操作1340中所示讀取定義圖像的幀緩沖器數(shù)據(jù)并且使用在算法內(nèi)包含的格式化協(xié)議基于與來自客戶端的初始連接請求一起獲得的連接參數(shù)將幀緩沖器數(shù)據(jù)處理成圖像數(shù)據(jù)分組。如在操作1350中所示,向在SVM處的網(wǎng)絡(luò)接口卡(NIC)轉(zhuǎn)發(fā)封包的圖像分組,在NIC進(jìn)一步封包圖像分組以符合傳輸協(xié)議并且向客戶端傳輸圖像分組用于在與客戶端關(guān)聯(lián)的顯示器設(shè)備處表現(xiàn)。表現(xiàn)的客戶端數(shù)據(jù)定義與標(biāo)識的VM關(guān)聯(lián)的虛擬機(jī)顯示器的圖像??蛻舳私獯a/解壓圖像數(shù)據(jù)分組、組裝從圖像數(shù)據(jù)分組獲得的數(shù)據(jù)并且在客戶端處表現(xiàn)組裝的數(shù)據(jù)??梢圆东@并且向算法返回在表現(xiàn)的圖形輸出處的用戶交互(諸如鼠標(biāo)點擊和鍵盤敲擊)用于精細(xì)調(diào)諧和控制VM。利用對算法的上文一般描述,現(xiàn)在將描述使用算法的各種場景/應(yīng)用的更詳細(xì)描述。應(yīng)當(dāng)注意,可以在多種設(shè)置(聊舉數(shù)例,包括但不限于桌面應(yīng)用、游戲應(yīng)用、消費者電子應(yīng)用、移動應(yīng)用)中使用算法。上述應(yīng)用列表是示例性的并且不應(yīng)解釋為限制??梢允褂盟惴ǖ钠渌麘?yīng)用/場景是可能的。也應(yīng)當(dāng)注意,算法的總功能和與各種部件的交互在所有場景/應(yīng)用之下保持相同。僅用于訪問和使用算法的方式將如在以下章節(jié)中討論的那樣不同。桌面應(yīng)用
通過諸如個人計算機(jī)(PC)、桌面計算機(jī)、膝上計算機(jī)等計算設(shè)備提供桌面服務(wù)。本申請的實施例使用網(wǎng)絡(luò)連接(諸如因特網(wǎng))通過桌面計算機(jī)使用服務(wù)器VM (SVM)中具體化的算法。這里應(yīng)當(dāng)注意,雖然算法被解釋為具體化于SVM中,但是術(shù)語“服務(wù)器”僅用來說明具有具體化的算法的SVM通過提供客戶端請求的服務(wù)在客戶端-服務(wù)器計算中如同服務(wù)器那樣表現(xiàn)。SVM可以表現(xiàn)為尋求來自其他VM的信息的客戶端,這些VM然后可以承擔(dān)服務(wù)器的作用。算法可以具體化于在虛擬基礎(chǔ)設(shè)施中可用的任何VM上。在圖12A中描述的一個實施例中,客戶端是桌面計算機(jī)(諸如PC或者膝上計算機(jī))。從一開始,連接到網(wǎng)絡(luò)(諸如因特網(wǎng))的桌面計算機(jī)向虛擬中心(VC)發(fā)送連接請求用于訪問和控制在VC內(nèi)可用的虛擬服務(wù)。連接請求包括桌面計算機(jī)的標(biāo)識連同其他連接參數(shù)。在提供對虛擬服務(wù)的訪問之前首先使用在連接請求中提供的標(biāo)識和其他認(rèn)證信息來認(rèn)證桌面計算機(jī)。在一個實施例中,使用從連接請求獲得的桌面計算機(jī)的標(biāo)識信息通過如下web站點認(rèn)證桌面計算機(jī),該web站點維護(hù)如下已授權(quán)設(shè)備的列表,這些設(shè)備可以訪問與虛擬中心關(guān)聯(lián)并且在因特網(wǎng)上可用的虛擬基礎(chǔ)設(shè)施(VI)。驗證桌面計算機(jī)的標(biāo)識的前述過程僅為一種建立認(rèn)證的方式,并且可以使用建立認(rèn)證的其他方式。在認(rèn)證之后,向與VI中的其他VM并排運行的SVM發(fā)送來自桌面計算機(jī)的連接請求。SVM內(nèi)的圖像處理器算法詢問連接參數(shù)以獲得桌面計算機(jī)的標(biāo)識、桌面計算機(jī)的類型、與桌面型計算機(jī)關(guān)聯(lián)的顯示器設(shè)備類型、請求的虛擬服務(wù)的標(biāo)識、在提供服務(wù)的VM上運行的操作系統(tǒng)(OS)、用來與VM的OS交互的協(xié)議和桌面計算機(jī)的其他連接要求。因此,連接參數(shù)提供與客戶端關(guān)聯(lián)的與連接和其他環(huán)境有關(guān)的信息并且包括桌面計算機(jī)類型、客戶端的始發(fā)因特網(wǎng)協(xié)議(IP)地址、用于虛擬服務(wù)的目的地IP地址、客戶端類型、客戶端標(biāo)識信息、與客戶端關(guān)聯(lián)的顯示器設(shè)備的類型、在提供虛擬服務(wù)的VM上運行的OS、 用來與VM的OS交互的協(xié)議、可用帶寬的量、在延遲方面的設(shè)備位置、連接的質(zhì)量等。算法通過標(biāo)識可以服務(wù)于來自桌面計算機(jī)的連接請求的VM、確定OS在標(biāo)識的VM處刷新幀緩沖器數(shù)據(jù)的掃描速率等來執(zhí)行將桌面計算機(jī)連接到適當(dāng)VM的過程以便與VI的多個VM在其上運行的管理程序適當(dāng)交互以獲得對與標(biāo)識的VM關(guān)聯(lián)的幀緩沖器數(shù)據(jù)的訪問。管理程序包括如下虛擬圖形卡,該虛擬圖形卡與VM的圖形驅(qū)動交互以向通過管理程序可訪問的虛擬存儲器中的預(yù)定位置寫入用于標(biāo)識的VM的幀緩沖器數(shù)據(jù)。SVM中的算法通過管理程序直接訪問和讀取來自虛擬儲存器中的預(yù)定位置的用于標(biāo)識的VM的幀緩沖器數(shù)據(jù)。算法在訪問幀緩沖器數(shù)據(jù)時使用適當(dāng)應(yīng)用編程接口(API)以與管理程序交互。API特定于具體管理程序,并且算法具有用于基于連接參數(shù)確定將用于具體管理程序的適當(dāng)API的智能。算法然后使用掃描引擎、熱引擎、上下文引擎和邏輯引擎來讀取和分析幀緩沖器數(shù)據(jù)并且基于連接參數(shù)使用一個或者多個技術(shù)來生成具有特定和適合于桌面計算機(jī)的分組大小的圖像數(shù)據(jù)元(分組)并且使用簡單和通用傳輸協(xié)議(諸如UDP)向客戶端轉(zhuǎn)發(fā)分組。圖像數(shù)據(jù)分組包括與算法要求和傳輸協(xié)議要求兩者相符的消息類型和封包信息。桌面計算機(jī)接收分組、讀取消息類型并且使用適當(dāng)解壓技術(shù)以讀取并且在桌面計算機(jī)處的顯示器設(shè)備上表現(xiàn)幀緩沖器數(shù)據(jù)。表現(xiàn)的數(shù)據(jù)代表標(biāo)識的VM的虛擬機(jī)顯示器的如下圖像的部分,其示出在VM處執(zhí)行或者表現(xiàn)的圖元、圖標(biāo)、顯示、程序、鏈接、圖片、電影和用戶接口操控或者非操控。在表現(xiàn)的幀緩沖器處的用戶交互和自動反饋由算法的客戶端側(cè)邏輯接收、封包并且傳輸?shù)絊VM。用戶交互可以包括對連接參數(shù)和幀緩沖器數(shù)據(jù)的如下改變/更新,這些改變/更新實現(xiàn)幀緩沖器數(shù)據(jù)的精細(xì)調(diào)諧和更新。用戶交互與管理員在例行故障排除或者維護(hù)期間在與VM關(guān)聯(lián)的控制臺處執(zhí)行的交互類似。自動反饋向SVM中的算法提供涉及在VM上執(zhí)行的響應(yīng)于連接請求來提供服務(wù)的一個或者多個應(yīng)用的連接質(zhì)量信息和數(shù)據(jù)。通過反向信道通信向算法傳回用戶交互和自動反饋信息。通過管理程序和算法在VM與客戶端之間的交互使用戶能夠控制在VM處的一個或者多個服務(wù)。在另一實施例中,膝上計算機(jī)充當(dāng)如下客戶端,該客戶端請求連接到虛擬環(huán)境中的VM。為膝上計算機(jī)建立與VM的連接的過程與上文參照桌面型應(yīng)用討論的實施例相似。在這一實施例中,基于在客戶端與算法的初始握手期間建立的連接參數(shù)來配置幀緩沖器數(shù)據(jù)并且該數(shù)據(jù)特定用于與膝上計算機(jī)關(guān)聯(lián)的顯示器設(shè)備。在本發(fā)明的一個實施例中,圖像處理器算法提供對用戶的計算簡檔的訪問。計算簡檔如在本申請中使用的那樣指代為具體用戶配置的如下計算機(jī)系統(tǒng),具體應(yīng)用和硬件在該計算機(jī)系統(tǒng)上可用/執(zhí)行。因而用戶的計算簡檔可以包括如下定制的桌面計算機(jī),用戶已經(jīng)向該桌面計算機(jī)配置具體硬件設(shè)備和軟件應(yīng)用。在這一實施例中,連接請求用來訪問用戶的這一計算簡檔,使得用戶可以通過網(wǎng)絡(luò)通過客戶端控制硬件/軟件??蛻舳嗽谶@一實施例中可以是移動設(shè)備或者任何其他計算設(shè)備,諸如連接到網(wǎng)絡(luò)的共同定位或者遠(yuǎn)程的桌面PC或者膝上計算機(jī)。當(dāng)客戶端發(fā)起連接請求時,客戶端首先由用戶認(rèn)證服務(wù)授權(quán)。在認(rèn)證時,允許客戶端訪問虛擬中心和在虛擬中心內(nèi)的VM上運行的算法。算法通過提供對如下幀緩沖器數(shù)據(jù)的訪問來提供對服務(wù)的訪問,該幀緩沖器數(shù)據(jù)代表用戶的計算簡檔的圖像。在本發(fā)明的另一實施例中,算法向用戶提供對具體VM的具體會話的訪問。在這一實施例中,通過使用管理程序和圖像處理器算法訪問用于具體VM的幀緩沖器數(shù)據(jù)來提供對具體會話的訪問。在一個實施例中,建立與VM的會話提供對用戶的計算簡檔或者桌面計·算機(jī)的訪問。簡檔可以定義通過用戶的簡檔可訪問的用戶的桌面、文件夾、數(shù)據(jù)、應(yīng)用和服務(wù)的視圖。在會話期間,用戶可以訪問和利用簡檔的所有接口如同用戶在他的桌面計算機(jī)或者計算機(jī)本地一樣。在會話期間,用戶將能夠如這里描述的那樣使用反向信道來傳送所有I/O輸入(例如鍵盤錄入、鼠標(biāo)錄入、用戶接口錄入等)。在會話期間,用戶將能夠接通和關(guān)斷他的計算機(jī)(即簡檔)、讓應(yīng)用或者窗口打開或者關(guān)閉、離開會話并且與會話重新連接。在本發(fā)明的一個實施例中,算法允許動態(tài)重新采樣幀緩沖器數(shù)據(jù)并且重新設(shè)定幀緩沖器數(shù)據(jù)的大小或者連接到不同大小的幀緩沖器以適應(yīng)與客戶端關(guān)聯(lián)的表現(xiàn)設(shè)備的大小和格式的改變。因此,當(dāng)與膝上計算機(jī)關(guān)聯(lián)的顯示器設(shè)備動態(tài)改變成不同類型(包括不同大小、不同格式)時,在SVM處的算法基于更新的連接參數(shù)識別改變并且處理讀取的標(biāo)識VM的幀緩沖器數(shù)據(jù)以針對符合改變的顯示器設(shè)備的要求的讀取的幀緩沖器數(shù)據(jù)提供適當(dāng)圖像數(shù)據(jù)分組。在另一實施例中,算法具有用于針對客戶端設(shè)備的不同配置生成多組圖像數(shù)據(jù)分組的能力并且因此可以基于詢問客戶端的啟動參數(shù)的詢問來提供不同大小、定向、位深度等的圖像數(shù)據(jù)分組。在這一實施例中,算法中的邏輯可以包括用于基于詢問客戶端的連接參數(shù)來標(biāo)識如下正確一組圖像數(shù)據(jù)分組的標(biāo)準(zhǔn)切換,該組圖像數(shù)據(jù)分組具有特定于與客戶端關(guān)聯(lián)的顯示器設(shè)備的大小、格式、定向、位深度等。每當(dāng)客戶端斷開連接并且與新顯示器設(shè)備重新連接時,算法基于新握手來識別用于幀緩沖器數(shù)據(jù)的修正標(biāo)準(zhǔn)并且動態(tài)生成具有與修正標(biāo)準(zhǔn)匹配的位深度、大小、定向等的適當(dāng)一組或者多組圖像數(shù)據(jù)分組,該適當(dāng)一組或者多組圖像數(shù)據(jù)分組代表幀緩沖器數(shù)據(jù)。聊舉數(shù)例,考慮用于重新設(shè)定大小的一些標(biāo)準(zhǔn)可以包括位深度、大小、定向、格式。算法有時將連接到不同幀緩沖器以更好地促進(jìn)交互。因此,算法能夠基于在客戶端處的可變要求適應(yīng)對幀緩沖器數(shù)據(jù)的動態(tài)大小重新設(shè)定和重新格式化。在另一實施例中,算法允許在與客戶端關(guān)聯(lián)的多個顯示器設(shè)備上同時表現(xiàn)不同大小的幀緩沖器數(shù)據(jù)。因此,如果客戶端為膝上計算機(jī)并且將桌面計算機(jī)的顯示器設(shè)備連同膝上計算機(jī)自己的屏幕一起用于表現(xiàn),則算法實現(xiàn)在膝上計算機(jī)屏幕和桌面計算機(jī)的顯示器設(shè)備兩者上同時表現(xiàn)幀緩沖器數(shù)據(jù)的適當(dāng)大小。應(yīng)當(dāng)注意,參與格式化圖像數(shù)據(jù)分組的壓縮技術(shù)可能使用無損壓縮或者有損壓縮。為了保證算法在刷新數(shù)據(jù)之時不提取幀緩沖器數(shù)據(jù),同步標(biāo)志可能用來保證算法僅在OS完成幀緩沖器數(shù)據(jù)的刷新之后接收數(shù)據(jù)。在一個實施例中,膝上計算機(jī)可以如圖12A-1中所示使用接泊站以建立與虛擬中心中的虛擬服務(wù)的網(wǎng)絡(luò)連接。膝上計算機(jī)通過接泊站連接到網(wǎng)絡(luò)。具有嵌入式算法的服務(wù)器VM在從膝上計算機(jī)接收連接請求時獲得激活并且基于連接參數(shù)認(rèn)證膝上計算機(jī)。SVM可以是虛擬中心的如下部分,該部分有權(quán)訪問在通過因特網(wǎng)和激活的算法可訪問的VM上運行的各種服務(wù)/應(yīng)用。虛擬中心包括組成虛擬基礎(chǔ)設(shè)施的所有部件,包括下層物理硬件、管理程序、在管理程序上運行的多個虛擬機(jī)而各種類型的操作系統(tǒng)在VM內(nèi)執(zhí)行。算法在客戶端處檢測對一個或者多個連接參數(shù)的動態(tài)改變并且相應(yīng)地動態(tài)調(diào)整幀緩沖器數(shù)據(jù)的呈現(xiàn)。算法通過反向信道來與客戶端(諸如桌面計算機(jī)或者膝上計算機(jī))交換連接質(zhì)量信息并且通過與管理程序交互來精細(xì)調(diào)諧幀緩沖器數(shù)據(jù)以符合連接質(zhì)量。 在另一實施例中,可以如圖12B中所示在計算機(jī)可讀介質(zhì)(諸如閃存驅(qū)動器)上提供軟件客戶端??梢韵蛴嬎阍O(shè)備(諸如桌面計算設(shè)備或者膝上計算設(shè)備)的通用串行總線(USB)端口中插入并且通過膝上/桌面PC來訪問具有軟件客戶端的閃存驅(qū)動。軟件客戶端提供用于認(rèn)證具有軟件客戶端的閃存驅(qū)動器插入于其中的桌面PC或者膝上計算機(jī)的認(rèn)證機(jī)制。在認(rèn)證時,桌面PC或者膝上計算機(jī)配備有與包括如下虛擬基礎(chǔ)設(shè)施的虛擬中心的信任連接,該虛擬基礎(chǔ)設(shè)施具有訪問下層共享資源的在管理程序上執(zhí)行的多個VM。認(rèn)證的桌面PC可以通過生成向服務(wù)的連接請求來激活SVM并且與SVM交互以從具體VM獲得幀緩沖器數(shù)據(jù)。在圖12C中所示另一實施例中,桌面型PC可以使用高速連接(諸如可用于桌面PC的無線高保真(Wi-Fi)技術(shù))來連接到虛擬中心。在這一實施例中,桌面PC提供的向虛擬服務(wù)的連接請求包括桌面PC的標(biāo)識。當(dāng)在SVM上運行的算法接收連接請求時,算法詢問與連接請求一起提供的連接參數(shù)以標(biāo)識桌面PC、標(biāo)識可以提供對在連接請求中請求的服務(wù)的訪問的VM和桌面PC的連接要求,包括位深度、可接受掃描速率、定向等。算法首先認(rèn)證桌面PC并且在認(rèn)證時通過管理程序直接訪問標(biāo)識的VM的幀緩沖器信息、封包幀緩沖器數(shù)據(jù)并且使用Wi-Fi連接向桌面PC轉(zhuǎn)發(fā)封包的幀緩沖器數(shù)據(jù),該數(shù)據(jù)代表VM的虛擬機(jī)顯示器的圖像。參照圖12A-12C的前述實施例代表在VM上執(zhí)行的用于訪問和控制客戶端所請求的服務(wù)的一些示例性方式。服務(wù)可以是對運行應(yīng)用的VM的顯示,這些應(yīng)用被設(shè)計用于在客戶端上運行。在圖11中所示另一實施例中,算法提供一種用于使用單個客戶端來遠(yuǎn)程訪問在不同層處可用的多個服務(wù)的簡單和有效工具。客戶端可以是“瘦”客戶端或者“胖”客戶端。在這一實施例中,虛擬基礎(chǔ)設(shè)施包括多個服務(wù)“云”。例如可以有提供對多個桌面應(yīng)用的訪問的桌面應(yīng)用服務(wù)云1110、具有多個在線游戲的游戲服務(wù)云1120、用于獲得在線多媒體內(nèi)容流的PVR/DVR/DVD服務(wù)云1130 (諸如NetFlix 提供的服務(wù)云等)以及其他類型的游戲/應(yīng)用服務(wù)云1140。這些云中的每個云提供用于客戶端訪問和控制的具體服務(wù)類型。上述服務(wù)云列舉是示例性的并且不應(yīng)視為限制。其他類型的服務(wù)云可以與本發(fā)明的實施例一起使用。每個云具有它自己的如下虛擬中心,該虛擬中心具有在管理程序上運行并且訪問下層硬件的多個VM。在至少VM中的每個云處提供圖像處理器算法(IPA)。在一個實施例中,在單獨服務(wù)器VM (SVM)處提供IPA。在另一實施例中,在每個服務(wù)層內(nèi)的幾個VM處提供IPA。在另一實施例中,IPA可以在每個服務(wù)層內(nèi)的所有VM中可用。在一個實施例中,客戶端(諸如桌面計算機(jī))可以通過訪問適當(dāng)IPA來訪問在每個云處的應(yīng)用/服務(wù)。該過程始于客戶端生成連接請求。連接請求包括如下多個連接參數(shù),這些連接參數(shù)定義與客戶端關(guān)聯(lián)的連接標(biāo)準(zhǔn)和環(huán)境。在連接參數(shù)中包括的是標(biāo)識服務(wù)層的服務(wù)層標(biāo)識信息和客戶端嘗試訪問的具體服務(wù)。算法詢問連接參數(shù)以標(biāo)識與請求的服務(wù)有關(guān)的具體服務(wù)層和提供請求的服務(wù)的具體VM。例如請求的服務(wù)可以是在桌面應(yīng)用服務(wù)云內(nèi)的應(yīng)用。一旦標(biāo)識請求的服務(wù)層和VM,算法就通過管理程序直接訪問標(biāo)識的層中的、用于標(biāo)識的VM的請求的服務(wù)的幀緩沖器數(shù)據(jù)、分析幀緩沖器數(shù)據(jù)并且在客戶端指定的格式中生成圖像數(shù)據(jù)的分組。根據(jù)格式化算法和網(wǎng)絡(luò)要求封包生成的分組并且向客戶端傳輸這些分組用于解碼、處理、組裝和表現(xiàn)。算法允許客戶端通過表現(xiàn)的幀緩沖器管理服務(wù)。當(dāng)客戶端希望訪問相同云內(nèi)的不同服務(wù)時,客戶端僅終止現(xiàn)有連接并且生成新連 接請求。算法檢測新連接請求并且詢問新連接請求、例如標(biāo)識相同桌面應(yīng)用服務(wù)云1110內(nèi)的新服務(wù)并且從VM針對請求的服務(wù)以圖像數(shù)據(jù)分組的形式提供幀緩沖器數(shù)據(jù),該VM可以是桌面應(yīng)用服務(wù)云的VI內(nèi)的相同VM或者不同VM。以特定于客戶端的格式提供圖像數(shù)據(jù)分組。沿著相似線路,當(dāng)客戶端想要訪問不同云(諸如游戲服務(wù)云)中的不同服務(wù)時,客戶端然后終止例如與桌面應(yīng)用服務(wù)云1110的現(xiàn)有連接并且建立與在連接參數(shù)中提供的新服務(wù)(諸如在游戲服務(wù)云內(nèi)的在線游戲應(yīng)用)的新連接請求。算法檢測新連接請求、詢問請求以獲得新連接參數(shù)、使用新連接參數(shù)來建立與游戲應(yīng)用云1120內(nèi)的新游戲應(yīng)用的連接、使用在游戲應(yīng)用云1120處的管理程序來獲得用于新游戲應(yīng)用的幀緩沖器數(shù)據(jù)、基于連接參數(shù)將幀緩沖器數(shù)據(jù)封包成符合客戶端要求的分組并且向客戶端傳輸封包的幀緩沖器數(shù)據(jù)用于表現(xiàn)。如更早提到的那樣,可以在請求時或者在初始創(chuàng)建幀緩沖器數(shù)據(jù)期間針對相同幀緩沖器數(shù)據(jù)動態(tài)生成幀緩沖器數(shù)據(jù)的具有不同顯示要求的多個格式并且如需要的那樣和在需要時向客戶端提供這些格式??蛻舳艘虼颂峁┯糜趶囊粋€應(yīng)用服務(wù)云中的一個服務(wù)類型向另一應(yīng)用服務(wù)云中的另一服務(wù)類型切換而不必加入專用協(xié)議/軟件或者不同客戶端的方式。應(yīng)當(dāng)注意,上述實施例提供在任何給定時間訪問來自具體層的服務(wù)并且在客戶端處表現(xiàn)與服務(wù)關(guān)聯(lián)的信息的細(xì)節(jié)。然而實施例不限于在任何給定時間提供對僅一個服務(wù)的訪問、但是可以延及在任何給定時間從多個層提供多個服務(wù)。因而算法允許使用連接參數(shù)來訪問來自多個層中的多個服務(wù)的幀緩沖器信息并且在客戶端的顯示器設(shè)備處同時表現(xiàn)幀緩沖器數(shù)據(jù)。以與已經(jīng)參照圖2F討論的方式相似的方式表現(xiàn)來自多個服務(wù)的幀緩沖器數(shù)據(jù)而圖像構(gòu)造部分表現(xiàn)來自相應(yīng)服務(wù)的圖像數(shù)據(jù)。上述實施例描述一種使客戶端能夠控制VM而未與在VM上運行的任何操作系統(tǒng)直接交互的高效和靈活工具。由于算法請求幀緩沖器數(shù)據(jù)用于在顯示器設(shè)備上表現(xiàn)并且不是請求來自O(shè)S的實際數(shù)據(jù)用于重新創(chuàng)建在VM的虛擬監(jiān)視器處表現(xiàn)的內(nèi)容,所以無需遵循任何專用協(xié)議用于解釋數(shù)據(jù)。另外,已經(jīng)分析從算法接收的數(shù)據(jù)用于上下文,并且在算法向客戶端傳輸?shù)膱D像數(shù)據(jù)分組中包括適當(dāng)上下文信息。因而在客戶端處無需用于解釋圖像數(shù)據(jù)的分析,因此在客戶端側(cè)避免大型CPU。另外,在客戶端與VM之間的所有交互通過管理程序并且不是與VM的OS直接交互。算法和在管理程序內(nèi)的虛擬視頻驅(qū)動器保證以指定的格式從所有VM接收幀緩沖器數(shù)據(jù)以便使幀緩沖器數(shù)據(jù)在客戶端處的解釋簡單和容易。這使甚至很瘦客戶端也能夠使用適當(dāng)解壓方法來訪問幀緩沖器數(shù)據(jù),從而使這成為一種用于訪問和控制VM的很靈活工具集。另外,算法使用實現(xiàn)通過長距離傳輸幀緩沖器數(shù)據(jù)的諸如用戶數(shù)據(jù)報協(xié)議(UDP)等很通用和簡單的傳輸協(xié)議。指定的格式與簡單傳輸協(xié)議的組合實現(xiàn)以快速容易方式的重傳,從而使算法能夠具有對延遲不敏感和對損失不敏感的特性。應(yīng)當(dāng)注意,當(dāng)前發(fā)明的實施例提供用于允許應(yīng)用繼續(xù)在VI “云”中執(zhí)行的方式而又提供用于遠(yuǎn)程訪問和控制這些應(yīng)用的工具。本領(lǐng)域技術(shù)人員可以容易形象化當(dāng)前實施例的這些和其他優(yōu)勢。移動應(yīng)用 除了桌面應(yīng)用之外,當(dāng)前教導(dǎo)可以適當(dāng)?shù)嘏c移動設(shè)備一起用于訪問適應(yīng)移動設(shè)備的應(yīng)用/服務(wù)。移動設(shè)備可能解釋為瘦客戶端并且可以設(shè)想為具有觸摸輸入顯示器設(shè)備或者具有小型鍵盤的顯示器設(shè)備并且具有很有限計算資源的口袋大小的計算設(shè)備。移動設(shè)備涵蓋廣范消費者電子設(shè)備,聊舉數(shù)例,諸如個人數(shù)字助理(PDA)、智能電話、平板PC。上述移動設(shè)備列表是示例性的并且不應(yīng)視為限制。如今的移動設(shè)備是能夠分接到其中托管諸如電子郵件、即時消息收發(fā)、文字消息收發(fā)、Web瀏覽等廣泛應(yīng)用的虛擬環(huán)境中的多功能設(shè)備。然而訪問具有它們豐富客戶端形式的此類應(yīng)用將導(dǎo)致如下移動設(shè)備,該移動設(shè)備需要大型處理器以解壓專用應(yīng)用數(shù)據(jù)以便提供對數(shù)據(jù)和對提供數(shù)據(jù)的VM的訪問。移動設(shè)備內(nèi)的處理器的大型計算機(jī)密集要求將是昂貴的,從而給移動設(shè)備制造商帶來平衡效率與設(shè)計的持續(xù)挑戰(zhàn)。此外,隨著使越來越多的應(yīng)用可用于移動設(shè)備,對處理器的需求變得更大,從而使平衡應(yīng)用與計算資源變成很棘手和困難的任務(wù)。為了避免必須為更多應(yīng)用選擇大型處理器與高效設(shè)計構(gòu)造的沖突,圖像處理器算法可以用來提供在瘦移動設(shè)備與運行于VM上的服務(wù)/應(yīng)用之間的接口。算法使人們能夠利用瘦移動設(shè)備的有限資源而又提供用于訪問和控制在虛擬中心內(nèi)的多個VM上運行的大量應(yīng)用/服務(wù)的能力。上文已經(jīng)參照圖2-10詳細(xì)描述算法的一般運轉(zhuǎn)。將參照圖12A-2描述移動設(shè)備的運轉(zhuǎn)。在一個實施例中,移動設(shè)備通過連接到網(wǎng)絡(luò)(諸如因特網(wǎng))來訪問VM中的服務(wù)/資源。在另一實施例中,移動設(shè)備(諸如個人數(shù)字助理(PDA))使來自個人計算機(jī)(PC)的資源能夠訪問在通過網(wǎng)絡(luò)可用的在虛擬中心(VC)內(nèi)的虛擬機(jī)(VM)上運行的服務(wù)。PC可以在網(wǎng)吧可用并且是Wi-Fi網(wǎng)絡(luò)的部分或者可以是通過廣域網(wǎng)連接(WAN)訪問VC的桌面PC。PC包括標(biāo)識標(biāo)簽或者信息(諸如條形碼或者射頻標(biāo)識(RFID)標(biāo)簽)。移動設(shè)備在標(biāo)識PC設(shè)備之后通過蜂窩網(wǎng)絡(luò)認(rèn)證設(shè)備。一旦認(rèn)證PC的標(biāo)識,PC就配備有與包括如下虛擬基礎(chǔ)設(shè)施(VI)的虛擬中心的信任連接,該VI具有訪問下層共享資源的在管理程序上運行的多個VM。指引認(rèn)證的PC在VC “云”中建立用于訪問在VC中的VM處可用的應(yīng)用/服務(wù)的會話。如更早關(guān)于桌面應(yīng)用提到的那樣,PC可以能夠使用圖像處理器算法來訪問在不同層中可用的多個類型的虛擬服務(wù)/應(yīng)用。因此使用PC作為接入點,用戶可以獲得對在VM處可用的多個服務(wù)/應(yīng)用的訪問和控制。類似地,在另一實施例中,具有鍵盤、監(jiān)視器和鼠標(biāo)的移動設(shè)備在直接連接到接泊站時充當(dāng)如下獨立客戶端,該客戶端請求連接到虛擬環(huán)境中的VM。為移動設(shè)備建立與VM的連接的過程類似于上文參照使用接泊站的膝上和桌面應(yīng)用而討論的實施例。移動客戶端將使用Wi-Fi網(wǎng)絡(luò)建立網(wǎng)絡(luò)連通并且接泊站可以供應(yīng)持續(xù)充電。在這一實施例中,基于在客戶端與算法的初始握手期間建立的連接參數(shù)來為與移動設(shè)備關(guān)聯(lián)的顯示器設(shè)備配置幀緩沖器數(shù)據(jù)。移動設(shè)備會話在范圍上類似于參照圖2A描述的桌面PC或者膝上計算機(jī)建立的會話。算法提供用于遠(yuǎn)程服務(wù)/應(yīng)用的方式。算法具有用于針對從VM獲得的具體服務(wù)掃描和查看幀緩沖器、確定活動區(qū)域和每個活動區(qū)域中的活動量并且僅關(guān)注那些活動區(qū)域而忽略非活動區(qū)域的邏輯。這將實現(xiàn)節(jié)約帶寬和網(wǎng)絡(luò)資源,使得僅傳輸已經(jīng)改變的數(shù)據(jù)。算法也具有用于確定用于檢測幀或者帶外多媒體內(nèi)容的邊界并且使用用于提取并且在帶外多媒體流中傳輸這樣的數(shù)據(jù)的專門化技術(shù)的邏輯。當(dāng)在移動設(shè)備處接收帶外流時,該流被處理并且以移動設(shè)備理解的格式疊加于與移動設(shè)備關(guān)聯(lián)的屏幕上。 算法提供用于在移動設(shè)備處表現(xiàn)的附加幀緩沖器數(shù)據(jù)格式以適應(yīng)除了在移動設(shè)備處可用的顯示器設(shè)備之外的顯示器設(shè)備。算法使用在客戶端與算法之間的初始握手期間的連接信息并且提供適當(dāng)格式化的幀緩沖器數(shù)據(jù)用于表現(xiàn)。因此如果移動設(shè)備使用接泊站以訪問監(jiān)視器/顯示器設(shè)備,則算法獲得與移動設(shè)備關(guān)聯(lián)的顯示器設(shè)備的要求并且請求針對對應(yīng)顯示器設(shè)備的顯示要求而格式化的幀緩沖器數(shù)據(jù)。如更早提到的那樣,算法動態(tài)生成適當(dāng)格式化的幀緩沖器數(shù)據(jù)或者從已經(jīng)為幀緩沖器數(shù)據(jù)創(chuàng)建的多個格式選擇具體格式用于傳輸。記錄并且向算法轉(zhuǎn)發(fā)在移動設(shè)備處的用戶交互和其他反饋用于精細(xì)調(diào)諧和更新。當(dāng)前實施例提供用于共同定位或者非共同定位的很瘦客戶端的使用網(wǎng)絡(luò)連接來遠(yuǎn)程訪問和控制VC云中可用的各種服務(wù)/應(yīng)用的能力。算法在可預(yù)測的格式中提供幀緩沖器數(shù)據(jù)并且因此無需專用協(xié)議用于壓縮/解壓數(shù)據(jù)。在VM處維護(hù)和執(zhí)行所有服務(wù),并且在VC中的VM層處執(zhí)行算法的VM使用在VM層處可用的資源來本地完成復(fù)雜處理和格式化。在客戶端側(cè)無需復(fù)雜處理從而使這成為一種更可接受和有效的解決方案。其他優(yōu)勢對于本領(lǐng)域技術(shù)人員將變得明顯。游戲應(yīng)用
除了桌面應(yīng)用和移動應(yīng)用之外,算法還可以在游戲應(yīng)用中用來提供一種用于控制游戲應(yīng)用/服務(wù)的更靈活和高效工具。本發(fā)明的實施例使用算法的功能方面以提供對在游戲服務(wù)云處可用的游戲應(yīng)用/服務(wù)的控制??蛻舳嗽谶@一實施例中是用于任何其他服務(wù)的任何客戶端,無論它是PC、瘦客戶端或者接泊的移動設(shè)備還是市面上可用的任何其他邊緣設(shè)備,諸如游戲控制臺。游戲控制臺如業(yè)內(nèi)公知的那樣是連接到顯示器設(shè)備(諸如電視機(jī)屏幕或者計算機(jī)監(jiān)視器)的交互式計算機(jī)系統(tǒng)并且產(chǎn)生可以與顯示器設(shè)備一起用來顯示視頻游戲的視頻顯示信號。在一個實施例中,游戲控制臺替換為具有低CPU能力和低存儲器的低成本簡易網(wǎng)上(nettop)計算機(jī)并且使用低成本簡易網(wǎng)上計算機(jī)的資源來使用服務(wù)云(諸如游戲云)中可用的圖像處理器算法來連接到服務(wù)云的虛擬中心。低成本簡易網(wǎng)上計算機(jī)如業(yè)內(nèi)公知的那樣是為了執(zhí)行諸如訪問因特網(wǎng)、訪問基于web的應(yīng)用等基本操作而設(shè)計的很小、廉價、低功率計算機(jī)。在低成本簡易網(wǎng)上計算機(jī)處發(fā)起針對游戲云中的服務(wù)/應(yīng)用的連接請求。連接請求包括如下多個連接參數(shù),這些連接參數(shù)向算法提供低成本簡易網(wǎng)上計算機(jī)的連接要求。算法使用連接參數(shù)以標(biāo)識如下W,該VM提供低成本簡易網(wǎng)上計算機(jī)所請求的服務(wù)/應(yīng)用、通過管理程序直接訪問適當(dāng)?shù)膸彌_器數(shù)據(jù)、以算法定義的適當(dāng)格式生成圖像數(shù)據(jù)分組。算法響應(yīng)于服務(wù)請求在連接參數(shù)驅(qū)動的適當(dāng)封包中向低成本簡易網(wǎng)上計算機(jī)轉(zhuǎn)發(fā)圖像數(shù)據(jù)分組。捕獲在游戲低成本簡易網(wǎng)上計算機(jī)處的用戶交互(諸如鼠標(biāo)點擊和鍵盤敲擊)并且通過反向信道向算法轉(zhuǎn)發(fā)這些用戶交互用于精細(xì)調(diào)諧和更新。另外,算法通過建立的反向信道從低成本簡易網(wǎng)上計算機(jī)接收關(guān)于服務(wù)質(zhì)量的定期更新。算法使用服務(wù)質(zhì)量以適當(dāng)封包并且向低成本簡易網(wǎng)上計算機(jī)傳輸幀緩沖器數(shù)據(jù)和對幀緩沖器數(shù)據(jù)的定期更新。其他優(yōu)勢對于本領(lǐng)域技術(shù)人員將變得明顯。了解上述實施例,應(yīng)當(dāng)理解本發(fā)明可以運用涉及到計算機(jī)系統(tǒng)中存儲的數(shù)據(jù)的各種計算機(jī)實施的操作。這些操作是需要物理量的物理操控的操作。通常但是并非必須,這 些量采用能夠被存儲、傳送、組合、比較和否則操控的電或者磁信號形式。另外,經(jīng)常在諸如產(chǎn)生、標(biāo)識、確定或者比較的術(shù)語中引用執(zhí)行的操控。形成本發(fā)明的部分的、這里描述的操作中的任何操作是有用的機(jī)器操作。本發(fā)明也涉及一種用于執(zhí)行這些操作的設(shè)備或者裝置??梢跃唧w構(gòu)造該裝置用于所需目的,或者它可以是存儲于計算機(jī)中的計算機(jī)程序有選擇地激活或者配置的通用計算機(jī)。具體而言,各種通用機(jī)器可以與根據(jù)這里的教導(dǎo)來編寫的計算機(jī)程序一起使用,或者構(gòu)造更專門化裝置以執(zhí)行所需操作可能更為便利。本發(fā)明也可以具體化為計算機(jī)可讀介質(zhì)上的計算機(jī)可讀代碼。計算機(jī)可讀介質(zhì)是可以存儲如下數(shù)據(jù)的任何數(shù)據(jù)存儲設(shè)備,該數(shù)據(jù)隨后可以由計算機(jī)系統(tǒng)讀取。計算機(jī)可讀介質(zhì)的示例包括硬盤驅(qū)動器、網(wǎng)絡(luò)附著儲存(NAS)、只讀儲存器、隨機(jī)訪問存儲器、⑶-ROM、CD-R、CD-RW、磁帶以及其他光學(xué)和非光學(xué)數(shù)據(jù)存儲設(shè)備。也可以通過網(wǎng)絡(luò)耦合計算機(jī)系統(tǒng)分發(fā)計算機(jī)可讀介質(zhì),使得以分布方式存儲和執(zhí)行計算機(jī)可讀代碼。然而對本領(lǐng)域技術(shù)人員明顯的是,不使用這些具體細(xì)節(jié)中的一些或者所有細(xì)節(jié)仍可實現(xiàn)本發(fā)明。在其他實例中,沒有詳細(xì)描述公知過程操作以免不必要地模糊本發(fā)明。雖然已經(jīng)出于理解清楚的目的而以一些細(xì)節(jié)描述了前述發(fā)明,但是將清楚可以在本發(fā)明的范圍內(nèi)實現(xiàn)某些改變和修改。因而當(dāng)前實施例將被視為示例而非限制并且本發(fā)明不限于這里給出的細(xì)節(jié)而是可以在本發(fā)明的范圍內(nèi)加以修改。
權(quán)利要求
1.一種用于通過網(wǎng)絡(luò)向客戶端提供服務(wù)的方法,包括 從所述客戶端接收針對控制在具體虛擬機(jī)上可用的虛擬化計算機(jī)服務(wù)的連接請求,所述連接請求包括多個連接參數(shù),所述多個連接參數(shù)定義所述客戶端的連接要求,所述連接請求是在執(zhí)行圖像處理器算法的虛擬機(jī)處接收的; 使用所述圖像處理器算法來詢問所述連接參數(shù)以標(biāo)識所述具體虛擬機(jī),所述具體虛擬機(jī)提供滿足來自所述客戶端的請求的所述虛擬化計算機(jī)服務(wù); 通過管理程序訪問來自虛擬存儲器中的預(yù)定位置的用于所述具體虛擬機(jī)的幀緩沖器數(shù)據(jù),所述幀緩沖器數(shù)據(jù)是從虛擬存儲器中的所述預(yù)定位置讀取的,所述幀緩沖器數(shù)據(jù)定義圖形輸出,所述圖形輸出代表與所述具體虛擬機(jī)的虛擬機(jī)顯示器關(guān)聯(lián)的圖像; 基于所述多個連接參數(shù)使用所述圖像處理器算法將所述幀緩沖器數(shù)據(jù)處理成多個圖像數(shù)據(jù)分組;并且 向所述客戶端傳輸所述圖像數(shù)據(jù)分組用于在與所述客戶端關(guān)聯(lián)的顯示器設(shè)備上呈現(xiàn),所述圖像數(shù)據(jù)分組特定用于所述客戶端并且代表所述虛擬機(jī)顯示器的圖像。
2.根據(jù)權(quán)利要求I所述的方法,其中所述圖像數(shù)據(jù)分組包括與圖像處理器算法有關(guān)的封包信息和與聯(lián)網(wǎng)有關(guān)的封包信息。
3.根據(jù)權(quán)利要求I所述的方法,其中處理所述幀緩沖器數(shù)據(jù)還包括 分析所述具體虛擬機(jī)的所述幀緩沖器數(shù)據(jù)以確定上下文; 基于所述分析將適當(dāng)上下文信息關(guān)聯(lián)到所述具體虛擬機(jī)的所述幀緩沖器數(shù)據(jù);并且 將所述具體虛擬機(jī)的所述幀緩沖器數(shù)據(jù)連同所述上下文信息一起存儲。
4.根據(jù)權(quán)利要求3所述的方法,還包括 定期掃描所述具體虛擬機(jī)的所述幀緩沖器數(shù)據(jù); 通過比較掃描的幀緩沖器數(shù)據(jù)與用于所述具體虛擬機(jī)的存儲的幀緩沖器數(shù)據(jù)來確定改變區(qū)域;并且 在與所述具體虛擬機(jī)關(guān)聯(lián)的基于時間的存儲陣列中存儲所述改變區(qū)域用于分析和傳輸,其中存儲所述改變區(qū)域包括存儲與所述改變區(qū)域關(guān)聯(lián)的上下文信息。
5.根據(jù)權(quán)利要求4所述的方法,其中掃描所述幀緩沖器數(shù)據(jù)還包括 詢問與所述具體虛擬機(jī)的所述幀緩沖器數(shù)據(jù)關(guān)聯(lián)的同步信號,所述同步信號標(biāo)識所述具體虛擬機(jī)的所述幀緩沖器數(shù)據(jù)的刷新的狀態(tài);并且 基于所述同步信號的詢問來執(zhí)行所述具體虛擬機(jī)的所述幀緩沖器數(shù)據(jù)的掃描。
6.根據(jù)權(quán)利要求5所述的方法,還包括 在用于所述具體虛擬機(jī)的所述幀緩沖器數(shù)據(jù)的刷新之前設(shè)置所述同步信號;并且 在完成用于所述具體虛擬機(jī)的所述幀緩沖器數(shù)據(jù)的所述刷新時重新設(shè)置所述同步信號。
7.根據(jù)權(quán)利要求5所述的方法,其中以所述虛擬機(jī)處的所述幀緩沖器數(shù)據(jù)的刷新頻率或者以由與所述客戶端關(guān)聯(lián)的所述連接參數(shù)驅(qū)動的頻率之一進(jìn)行在所述虛擬機(jī)處的所述幀緩沖器數(shù)據(jù)的定期掃描。
8.根據(jù)權(quán)利要求5所述的方法,其中在所述虛擬機(jī)處的所述幀緩沖器數(shù)據(jù)的掃描還包括 接收通知,所述通知通報所述具體虛擬機(jī)的所述緩沖器數(shù)據(jù)的改變,所述通知是從與所述具體虛擬機(jī)關(guān)聯(lián)的圖形驅(qū)動器接收的;并且 基于所述通知來掃描所述具體虛擬機(jī)的所述幀緩沖器數(shù)據(jù)。
9.根據(jù)權(quán)利要求4所述的方法,其中處理讀取的幀緩沖器數(shù)據(jù)還包括 分析所述基于時間的存儲陣列以確定所述幀緩沖器數(shù)據(jù)內(nèi)的高活動區(qū)域; 確定所述幀緩沖器數(shù)據(jù)內(nèi)的所述高活動區(qū)域內(nèi)的鄰接活動區(qū)域; 將所述鄰接活動區(qū)域內(nèi)的傳輸技術(shù)友好特點分組成所述基于時間的存儲陣列內(nèi)的幀緩沖器數(shù)據(jù)的組;并且 基于與所述客戶端關(guān)聯(lián)的所述連接參數(shù)在基于時間的幀緩沖器數(shù)據(jù)流中從所述基于時間的存儲陣列向所述客戶端傳輸鄰接活動區(qū)域的組,所述鄰接活動區(qū)域的組的傳輸包括與所述幀緩沖器數(shù)據(jù)關(guān)聯(lián)的導(dǎo)出的上下文信息。
10.根據(jù)權(quán)利要求9所述的方法,其中所述圖像數(shù)據(jù)分組的傳輸還包括 基于所述連接參數(shù)確定與所述客戶端關(guān)聯(lián)的所述顯示器設(shè)備兼容的格式; 基于與所述幀緩沖器數(shù)據(jù)關(guān)聯(lián)的上下文標(biāo)識一個或者多個轉(zhuǎn)換技術(shù),所述一個或者多個轉(zhuǎn)換技術(shù)是在將所述幀緩沖器數(shù)據(jù)轉(zhuǎn)換成與關(guān)聯(lián)于所述客戶端的所述顯示器設(shè)備兼容的格式中使用的;使用所述一個或者多個轉(zhuǎn)換技術(shù)將所述幀緩沖器數(shù)據(jù)轉(zhuǎn)換成符合標(biāo)識的格式的圖像數(shù)據(jù)分組,其中所述圖像數(shù)據(jù)分組包括與所述幀緩沖器數(shù)據(jù)關(guān)聯(lián)的所述上下文信息;并且向所述客戶端傳輸格式化的圖像數(shù)據(jù)分組用于在所述客戶端的所述顯示器設(shè)備處表現(xiàn)。
11.根據(jù)權(quán)利要求9所述的方法,還包括 檢驗與所述幀緩沖器數(shù)據(jù)的改變區(qū)域關(guān)聯(lián)的一個或者多個特性; 使用標(biāo)識的轉(zhuǎn)換技術(shù)基于所述一個或者多個特性來提取所述幀緩沖器數(shù)據(jù)的與所述改變區(qū)域有關(guān)的部分;并且 使用所述標(biāo)識的轉(zhuǎn)換技術(shù)向所述客戶端傳輸所述幀緩沖器數(shù)據(jù)的提取的部分作為帶外流,其中所述帶外流包括所述幀緩沖器數(shù)據(jù)的所述上下文信息, 其中所述幀緩沖器數(shù)據(jù)的所述提取的部分是視頻剪輯。
12.根據(jù)權(quán)利要求9所述的方法,還包括 動態(tài)檢測對與所述客戶端關(guān)聯(lián)的連接參數(shù)的改變,對連接參數(shù)的所述改變標(biāo)識與所述客戶端關(guān)聯(lián)的所述顯示器設(shè)備的改變; 基于在所述客戶端處檢測的對所述連接參數(shù)的所述改變將所述具體虛擬機(jī)的所述幀緩沖器數(shù)據(jù)動態(tài)重新采樣并且大小重新設(shè)定成適當(dāng)圖像數(shù)據(jù)分組,所述幀緩沖器數(shù)據(jù)的動態(tài)重新采樣和大小重新設(shè)定實現(xiàn)在所述客戶端的所述顯示器設(shè)備處表現(xiàn)所述幀緩沖器數(shù)據(jù)。
13.根據(jù)權(quán)利要求9所述的方法,還包括 檢測與所述客戶端關(guān)聯(lián)的多個顯示器設(shè)備,其中所述多個顯示器設(shè)備中的每個顯示器設(shè)備為相異類型; 確定與所述客戶端的每個顯示器設(shè)備類型兼容的格式; 使用所述一個或者多個轉(zhuǎn)換技術(shù)來生成多組圖像數(shù)據(jù)分組,每組圖像數(shù)據(jù)分組是通過使用與關(guān)聯(lián)于所述客戶端的具體顯示器設(shè)備類型兼容的格式轉(zhuǎn)換所述幀緩沖器數(shù)據(jù)來生成的,其中每組圖像數(shù)據(jù)分組包括與所述幀緩沖器數(shù)據(jù)關(guān)聯(lián)的上下文信息;并且 向所述客戶端傳輸每組所述圖像數(shù)據(jù)分組用于在所述客戶端的相應(yīng)顯示器設(shè)備處表現(xiàn)。
14.根據(jù)權(quán)利要求I所述的方法,其中每個圖像數(shù)據(jù)分組包括分配用于定義并且在所述客戶端處表現(xiàn)所述虛擬機(jī)顯示器的所述圖像的具體部分的數(shù)據(jù),并且其中所述圖像的所述具體部分由至少一個像素定義。
15.根據(jù)權(quán)利要求I所述的方法,其中所述幀緩沖器數(shù)據(jù)由所述虛擬機(jī)的操作系統(tǒng)創(chuàng)建,并且其中對所述幀緩沖器數(shù)據(jù)的訪問由管理程序提供,所述管理程序提供在所述客戶端與所述虛擬機(jī)之間的接口。
16.一種用于通過網(wǎng)絡(luò)向客戶端提供服務(wù)的方法,包括 從所述客戶端接收針對控制虛擬化計算機(jī)服務(wù)的連接請求,所述連接請求包括多個連接參數(shù),所述多個連接參數(shù)定義所述客戶端的所述連接要求,所述連接請求是在執(zhí)行圖像處理器算法的虛擬機(jī)處接收的; 使用所述圖像處理器算法來詢問所述連接參數(shù)以標(biāo)識具體服務(wù)層和所述具體服務(wù)層內(nèi)的具體虛擬機(jī),所述具體服務(wù)層提供請求的服務(wù)類型,所述具體虛擬機(jī)用于提供滿足來自所述客戶端的所述連接請求的所述虛擬化計算機(jī)服務(wù),其中每個服務(wù)層主管相異的服務(wù)類型; 連接到提供具體虛擬化計算機(jī)服務(wù)的所述具體服務(wù)層; 通過所述具體服務(wù)層中的管理程序訪問來自虛擬存儲器中的預(yù)定位置的用于所述具體虛擬機(jī)的幀緩沖器數(shù)據(jù),所述幀緩沖器數(shù)據(jù)是從虛擬存儲器中的所述預(yù)定位置讀取的,所述幀緩沖器數(shù)據(jù)定義圖形輸出,所述圖形輸出代表與標(biāo)識的服務(wù)層內(nèi)的所述具體虛擬機(jī)的虛擬機(jī)顯示器關(guān)聯(lián)的圖像; 基于所述多個連接參數(shù)使用所述圖像處理器算法將所述幀緩沖器數(shù)據(jù)處理成多個圖像數(shù)據(jù)分組;并且 向所述客戶端傳輸所述圖像數(shù)據(jù)分組用于在與所述客戶端關(guān)聯(lián)的顯示器設(shè)備上呈現(xiàn),所述圖像數(shù)據(jù)分組特定用于所述客戶端并且代表所述虛擬機(jī)顯示器的所述圖像。
17.根據(jù)權(quán)利要求16所述的方法,其中每個圖像數(shù)據(jù)分組包括被分配用于定義并且在所述客戶端處表現(xiàn)所述虛擬機(jī)顯示器的所述圖像的具體部分的數(shù)據(jù),并且其中所述圖像的所述具體部分由至少一個像素定義。
18.根據(jù)權(quán)利要求16所述的方法,還包括 在所述客戶端處檢測連接參數(shù)的改變,所述連接參數(shù)的改變定義所述客戶端請求的新虛擬化計算機(jī)服務(wù); 斷開與所述標(biāo)識的虛擬機(jī)的連接; 使用所述圖像處理器算法來詢問改變的連接參數(shù)以標(biāo)識提供所述客戶端請求的所述新虛擬化計算機(jī)服務(wù)的具體新虛擬機(jī); 基于所述改變的連接參數(shù)的詢問來建立與所述具體新虛擬機(jī)的連接,與所述具體新虛擬機(jī)的所述連接實現(xiàn)訪問在與所述具體新虛擬機(jī)關(guān)聯(lián)的在虛擬存儲器中的預(yù)定位置處的、用于所述具體新虛擬機(jī)的幀緩沖器數(shù)據(jù); 訪問來自與所述具體新虛擬機(jī)關(guān)聯(lián)的虛擬存儲器中的所述預(yù)定位置的、用于所述具體新虛擬機(jī)的所述幀緩沖器數(shù)據(jù),訪問的幀緩沖器數(shù)據(jù)是從用于所述具體虛擬機(jī)的在虛擬存儲器中的所述預(yù)定位置讀取的并且使用所述圖像處理器算法處理成多個圖像數(shù)據(jù)分組用于傳輸并且在所述客戶端的顯示器設(shè)備上呈現(xiàn),所述圖像數(shù)據(jù)分組特定用于所述客戶端并且代表與所述新虛擬化計算機(jī)服務(wù)在其上執(zhí)行的所述新虛擬機(jī)關(guān)聯(lián)的所述具體新虛擬顯示器的圖像。
19.根據(jù)權(quán)利要求18所述的方法,其中斷開所述連接還包括從所述標(biāo)識的服務(wù)層斷開。
20.一種用于通過網(wǎng)絡(luò)向客戶端提供服務(wù)的方法,包括 在至少一個虛擬機(jī)上提供圖像處理器算法,具有所述圖像處理器算法的所述虛擬機(jī)在管理程序上執(zhí)行,多個虛擬機(jī)在所述管理程序上執(zhí)行; 在所述至少一個虛擬機(jī)的所述圖像處理器算法處處理連接請求,所述連接請求是從所述客戶端接收的,其中對所述連接請求的處理標(biāo)識多個連接參數(shù)和具體虛擬機(jī),所述多個連接參數(shù)定義與所述客戶端關(guān)聯(lián)的連接要求,所述具體虛擬機(jī)具有可以滿足所述連接請求的虛擬化計算機(jī)服務(wù); 通過所述管理程序訪問來自虛擬存儲器中的預(yù)定位置的用于所述具體虛擬機(jī)的幀緩沖器數(shù)據(jù),所述幀緩沖器數(shù)據(jù)是從所述虛擬存儲器中的所述預(yù)定位置讀取的,所述幀緩沖器數(shù)據(jù)定義圖形輸出,所述圖形輸出代表與所述具體虛擬機(jī)的虛擬機(jī)顯示器關(guān)聯(lián)的圖像;基于所述多個連接參數(shù)使用所述圖像處理器算法將所述幀緩沖器數(shù)據(jù)處理成多個圖像數(shù)據(jù)分組,其中所述多個圖像數(shù)據(jù)分組包括與讀取的幀緩沖器數(shù)據(jù)關(guān)聯(lián)的上下文信息;并且 向所述客戶端傳輸具有所述上下文信息的所述圖像數(shù)據(jù)分組用于在與所述客戶端關(guān)聯(lián)的顯示器設(shè)備上呈現(xiàn),所述圖像數(shù)據(jù)分組特定用于所述客戶端并且代表VM顯示器的圖像。
21.根據(jù)權(quán)利要求20所述的方法,還包括在多個虛擬機(jī)中獨立地提供圖像處理器算法,具有所述圖像處理器算法的每個虛擬機(jī)被配置成訪問和讀取其他虛擬機(jī)的對應(yīng)幀緩沖器數(shù)據(jù)。
22.根據(jù)權(quán)利要求20所述的方法,還包括在所述管理程序上執(zhí)行的所述多個虛擬機(jī)中的每個虛擬機(jī)中獨立地提供圖像處理器算法,具有所述圖像處理器算法的所述多個虛擬機(jī)中的每個虛擬機(jī)被配置成訪問和讀取其他虛擬機(jī)的對應(yīng)幀緩沖器數(shù)據(jù)。
23.根據(jù)權(quán)利要求20所述的方法,其中處理讀取的幀緩沖器數(shù)據(jù)還包括 分析提供所述虛擬化計算機(jī)服務(wù)的所述具體虛擬機(jī)的所述幀緩沖器數(shù)據(jù); 基于所述分析來確定用于所述幀緩沖器數(shù)據(jù)的上下文; 關(guān)聯(lián)用于所述幀緩沖器數(shù)據(jù)的適當(dāng)上下文信息;并且 生成用于所述幀緩沖器數(shù)據(jù)的多個圖像數(shù)據(jù)分組,每個所述圖像數(shù)據(jù)分組至少包括所述幀緩沖器數(shù)據(jù)的部分和用于所述幀緩沖器數(shù)據(jù)的部分的關(guān)聯(lián)上下文信息。
24.一種用于向用戶提供對計算簡檔的訪問的方法,所述計算簡檔定義用于所述用戶的桌面,所述桌面提供對所述用戶的應(yīng)用和數(shù)據(jù)的訪問,所述方法包括 a)從客戶端請求通過因特網(wǎng)連接來連接到所述計算簡檔; b)響應(yīng)于請求的連接來標(biāo)識用于所述計算簡檔的虛擬機(jī);c)標(biāo)識用于所述標(biāo)識的虛擬機(jī)的幀緩沖器數(shù)據(jù); d)讀取所述幀緩沖器數(shù)據(jù); e)基于從其進(jìn)行所述連接請求的所述客戶端的特性來處理所述幀緩沖器數(shù)據(jù),所述處理產(chǎn)生圖像數(shù)據(jù)分組; f)向所述客戶端轉(zhuǎn)發(fā)所述圖像數(shù)據(jù)分組,所述圖像數(shù)據(jù)分組在所述客戶端處被處理并且呈現(xiàn)于所述客戶端的顯示器上; g)在會話期間重復(fù)(d)- (f),而在所述客戶端與所述虛擬機(jī)之間交換反向信道通信。
25.根據(jù)權(quán)利要求24所述的方法,其中每個圖像數(shù)據(jù)分組包括被分配用于定義并且在所述客戶端處表現(xiàn)所述虛擬機(jī)顯示器的圖像的具體部分的數(shù)據(jù),并且其中所述圖像的所述具體部分由至少一個像素定義。
26.根據(jù)權(quán)利要求24所述的方法,其中處理所述幀緩沖器數(shù)據(jù)還包括 分析所述幀緩沖器數(shù)據(jù)以確定上下文; 基于所述分析將上下文信息關(guān)聯(lián)到所述幀緩沖器數(shù)據(jù); 使用一個或者多個轉(zhuǎn)換技術(shù)來生成用于所述幀緩沖器數(shù)據(jù)的圖像數(shù)據(jù)分組,所述圖像數(shù)據(jù)分組兼容于與所述客戶端關(guān)聯(lián)的所述顯示器設(shè)備。
27.根據(jù)權(quán)利要求24所述的方法,其中在所述客戶端與所述虛擬機(jī)之間的所述反向信道通信包括去往在所述虛擬機(jī)上執(zhí)行的一個或者多個應(yīng)用的數(shù)據(jù)。
28.根據(jù)權(quán)利要求24所述的方法,其中在所述客戶端處處理圖像數(shù)據(jù)分組還包括去除封包信息并且將所述數(shù)據(jù)映射到所述客戶端的所述顯示器的具體部分。
29.一種用于提供對虛擬機(jī)(VM)的會話的訪問的方法,包括 Ca)獲得對所述VM的所述會話的訪問; (b)標(biāo)識用于所述VM的幀緩沖器數(shù)據(jù); (c)讀取所述幀緩沖器數(shù)據(jù); Cd)基于所述客戶端的特性來處理所述幀緩沖器數(shù)據(jù)以產(chǎn)生圖像數(shù)據(jù)分組; Ce)向所述客戶端轉(zhuǎn)發(fā)針對所述客戶端的所述特性產(chǎn)生的所述圖像數(shù)據(jù)分組; (f)在訪問所述VM的所述會話時的時間期間重復(fù)(c)- (e),而在所述客戶端與所述VM之間交換反向信道通信。
30.根據(jù)權(quán)利要求29所述的方法,其中每個圖像數(shù)據(jù)分組包括被分配用于定義并且在所述客戶端處表現(xiàn)所述虛擬機(jī)顯示器的圖像的具體部分的數(shù)據(jù),并且其中所述圖像的所述具體部分由至少一個像素定義。
31.根據(jù)權(quán)利要求30所述的方法,其中所述客戶端的所述特性由一個或者多個連接參數(shù)定義,所述一個或者多個連接參數(shù)包括所述客戶端的位置、待連接的虛擬服務(wù)的位置、客戶端類型、顯示器類型、連接質(zhì)量、通信連接帶寬、請求的數(shù)據(jù)類型、與所述客戶端關(guān)聯(lián)的顯示器配置中的一個或者多個,所述顯示器配置包括分辨率、位深度、刷新速率。
32.根據(jù)權(quán)利要求30所述的方法,其中獲得對所述會話的訪問是通過的服務(wù)代理和在管理程序上運行的VM上執(zhí)行的圖像處理器算法,所述服務(wù)代理提供與客戶端到所述VM的映射關(guān)聯(lián)的信息,并且所述圖像處理器算法提供用于訪問與所述VM關(guān)聯(lián)的所述幀緩沖器數(shù)據(jù)的API。
33.根據(jù)權(quán)利要求32所述的方法,其中所述圖像處理器算法在運行所述會話的相同VM或者與運行所述會話的所述VM不同的VM中的任一 VM上獨立地執(zhí)行。
34.根據(jù)權(quán)利要求32所述的方法,其中處理在所述客戶端處的所述圖像數(shù)據(jù)分組以去除封包信息并且將所述圖像數(shù)據(jù)分組中的數(shù)據(jù)映射到所述客戶端的所述顯示器的具體部分。
35.一種用于通過網(wǎng)絡(luò)向客戶端提供服務(wù)的系統(tǒng),包括 a)—個或者多個虛擬機(jī),被配置成在管理程序上運行,其中所述虛擬機(jī)中的至少一個虛擬機(jī)執(zhí)行圖像處理器算法,所述圖像處理器算法包括用于以下的邏輯 (i )檢測來自所述客戶端的針對控制在具體虛擬機(jī)處可用的虛擬化計算機(jī)服務(wù)的連接請求; (ii)通過詢問所述連接參數(shù)來標(biāo)識提供所述虛擬化計算機(jī)服務(wù)的所述具體虛擬機(jī); (iii)通過管理程序訪問和讀取來自虛擬存儲器中的預(yù)定位置的所述具體虛擬機(jī)的幀緩沖器數(shù)據(jù),所述幀緩沖器數(shù)據(jù)定義圖形輸出,所述圖形輸出代表與所述具體虛擬機(jī)的虛擬機(jī)顯示器關(guān)聯(lián)的圖像; (iv)將讀取的幀緩沖器數(shù)據(jù)處理成圖像數(shù)據(jù)分組,所述圖像數(shù)據(jù)分組包括與所述幀緩沖器數(shù)據(jù)關(guān)聯(lián)的上下文信息; (v)向所述客戶端傳輸所述具體虛擬機(jī)的所述圖像數(shù)據(jù)分組用于在與所述客戶端關(guān)聯(lián)的顯示器設(shè)備上呈現(xiàn), 其中圖像數(shù)據(jù)分組特定用于所述客戶端并且代表所述虛擬機(jī)顯示器的所述圖像。
36.根據(jù)權(quán)利要求35所述的系統(tǒng),還包括 a)目錄服務(wù),用于提供客戶端到所述一個或者多個虛擬機(jī)的映射并且認(rèn)證與所述連接請求關(guān)聯(lián)的信息; b)基于時間的存儲陣列,用于存儲活動區(qū)域的組和隨時間對所述活動區(qū)域的組的任何改變;以及 c)壓縮技術(shù)服務(wù),用于提供用于封包所述幀緩沖器數(shù)據(jù)的壓縮/傳輸技術(shù),其中所述壓縮/傳輸技術(shù)用來提供上下文壓縮。
37.一種用于通過網(wǎng)絡(luò)向客戶端提供服務(wù)的系統(tǒng),包括 a)—個或者多個虛擬機(jī),被配置成在管理程序上運行,其中所述虛擬機(jī)中的至少一個虛擬機(jī)與其他虛擬機(jī)并排執(zhí)行圖像處理器算法,所述圖像處理器算法包括 (i)掃描引擎,被配置成 (ia)檢測來自所述客戶端的針對控制在具體虛擬機(jī)上可用的虛擬化計算機(jī)服務(wù)的連接請求,所述連接請求標(biāo)識多個連接參數(shù),所述多個連接參數(shù)定義所述客戶端的連接請求; (ib)詢問所述連接參數(shù)以標(biāo)識提供所述虛擬化計算機(jī)服務(wù)的所述具體虛擬機(jī); (ic)與管理程序交互以直接訪問所述具體虛擬機(jī)的幀緩沖器數(shù)據(jù); (id)掃描所述具體虛擬機(jī)的所述幀緩沖器數(shù)據(jù)以辨別所述具體虛擬機(jī)的虛擬機(jī)顯示器的圖像,所述圖像包括所述具體虛擬機(jī)的所述幀緩沖器數(shù)據(jù)的任何改變,并且將包括任何改變的所述幀緩沖器數(shù)據(jù)處理成與所述具體虛擬機(jī)關(guān)聯(lián)的 基于時間的存儲陣列; (ii)上下文引擎,被配置成 (iia)基于與所述幀緩沖器數(shù)據(jù)關(guān)聯(lián)的特性來確定任何鄰接區(qū)域并且確定與所述幀緩沖器數(shù)據(jù)關(guān)聯(lián)的上下文;以及 (iii)邏輯引擎,被配置成 (iiia)分析所述幀緩沖器數(shù)據(jù); (iiib)基于確定的上下文來處理所述幀緩沖器數(shù)據(jù)以集成與所述幀緩沖器數(shù)據(jù)關(guān)聯(lián)的上下文信息;并且 (iiic)向所述客戶端傳輸包括所述具體虛擬機(jī)的相關(guān)上下文信息的處理的幀緩沖器數(shù)據(jù)用于在與所述客戶端關(guān)聯(lián)的顯示器設(shè)備上呈現(xiàn), 其中所述處理的幀緩沖器數(shù)據(jù)特定用于所述客戶端并且代表所述虛擬機(jī)顯示器的圖像。
38.根據(jù)權(quán)利要求37所述的系統(tǒng),其中所述圖像處理器算法還包括具有搜索算法的熱 引擎,所述搜索算法被配置成與所述基于時間的存儲陣列交互以搜索所述幀緩沖器數(shù)據(jù)內(nèi)的任何活動、基于所述搜索來標(biāo)識所述幀緩沖器數(shù)據(jù)內(nèi)的活動區(qū)域和活動水平并且忽略非活動區(qū)域。
39.根據(jù)權(quán)利要求37所述的系統(tǒng),其中所述搜索和熱引擎還被配置成通過反向信道接收用戶交互,其中所述用戶交互定義所述具體虛擬機(jī)的所述幀緩沖器數(shù)據(jù)內(nèi)的可能改變的區(qū)域。
40.根據(jù)權(quán)利要求39所述的系統(tǒng),還包括目錄服務(wù)以及策略和認(rèn)證服務(wù),所述目錄服務(wù)是多個客戶端到所述一個或者多個虛擬機(jī)的映射的庫,并且所述策略和認(rèn)證服務(wù)被配置成斷定用于認(rèn)證來自所述客戶端的連接請求的策略。
41.根據(jù)權(quán)利要求40所述的系統(tǒng),其中所述圖像處理器算法還包括連接引擎,所述連接引擎被配置成 與所述客戶端交互以獲得連接參數(shù)并且確定與所述客戶端關(guān)聯(lián)的持續(xù)的連接質(zhì)量; 與所述策略和認(rèn)證服務(wù)交互以認(rèn)證從所述客戶端接收的連接參數(shù)并且確定用于操縱所述連接請求的一個或者多個策略; 與所述邏輯引擎交互以提供與持續(xù)的連接質(zhì)量關(guān)聯(lián)的最新連接參數(shù); 與所述目錄服務(wù)交互以標(biāo)識可以向所述客戶端提供請求的虛擬化計算機(jī)服務(wù)的所述具體虛擬機(jī);并且 與所述掃描引擎交互以將所述掃描引擎定向到用于所述具體虛擬機(jī)的所述適當(dāng)幀緩沖器數(shù)據(jù)。
42.根據(jù)權(quán)利要求41所述的系統(tǒng),其中所述圖像處理器算法還包括輸出引擎,所述輸出引擎用于響應(yīng)于所述請求向所述客戶端傳輸所述處理的幀緩沖器數(shù)據(jù)作為為了高效傳輸而最優(yōu)設(shè)定大小的圖像數(shù)據(jù)分組用于呈現(xiàn),其中所述圖像數(shù)據(jù)分組的大小基于所述連接參數(shù)。
43.根據(jù)權(quán)利要求37所述的系統(tǒng),其中所述圖像處理器算法在運行于所述管理程序上的多個虛擬機(jī)中的一個或者多個虛擬機(jī)上獨立地可執(zhí)行,其中所述圖像處理器算法用于訪問和讀取在所述管理程序上運行的其他虛擬機(jī)的對應(yīng)幀緩沖器數(shù)據(jù)。
44.根據(jù)權(quán)利要求37所述的系統(tǒng),其中所述圖像處理器算法在運行于所述管理程序上的所述虛擬機(jī)中的每個虛擬機(jī)上獨立地可執(zhí)行,其中每個所述虛擬機(jī)的所述圖像處理器算法用于訪問和讀取在所述管理程序上運行的其他虛擬機(jī)的對應(yīng)幀緩沖器數(shù)據(jù)。
45.根據(jù)權(quán)利要求37所述的系統(tǒng),還包括多個服務(wù)層,所述多個服務(wù)層中的每個服務(wù)層提供所述客戶端請求的具體服務(wù)類型,所述多個服務(wù)層中的每個服務(wù)層包括一個或者多個虛擬機(jī),在所述虛擬機(jī)上運行的所述圖像處理器算法被配置成訪問所述多個服務(wù)層中的每個服務(wù)層中的所述虛擬機(jī)的所述幀緩沖器數(shù)據(jù)。
46.根據(jù)權(quán)利要求45所述的系統(tǒng),其中所述多個服務(wù)層中的每個服務(wù)層中的所述虛擬機(jī)中的至少一個虛擬機(jī)獨立地執(zhí)行所述圖像處理器算法。
47.根據(jù)權(quán)利要求37所述的系統(tǒng),其中所述客戶端包括被配置成處理從執(zhí)行所述圖像處理器算法的所述虛擬機(jī)接收的所述圖像數(shù)據(jù)分組的邏輯,其中所述圖像數(shù)據(jù)分組的所述處理包括 從所述圖像數(shù)據(jù)分組去除封包信息;并且 將所述數(shù)據(jù)映射到所述客戶端的顯示器的具體部分。
48.一種在計算機(jī)可讀介質(zhì)上具體化的圖像處理器算法,所述圖像處理器算法在虛擬中心內(nèi)的虛擬機(jī)的處理器上執(zhí)行時被配置成通過網(wǎng)絡(luò)向客戶端提供服務(wù),所述圖像處理器算法包括 用于在執(zhí)行所述圖像處理器算法的所述虛擬機(jī)處從所述客戶端接收請求服務(wù)的連接請求的編程邏輯,所述連接請求包括多個連接參數(shù),所述多個連接參數(shù)定義所述客戶端的連接要求; 用于詢問所述連接參數(shù)以標(biāo)識具體虛擬機(jī)的編程邏輯,所述具體虛擬機(jī)提供滿足來自所述客戶端的所述請求的服務(wù); 用于通過與所述具體虛擬機(jī)關(guān)聯(lián)的管理程序訪問來自虛擬存儲器中的預(yù)定位置的用于所述具體虛擬機(jī)的幀緩沖器數(shù)據(jù)的編程邏輯,所述幀緩沖器數(shù)據(jù)是從虛擬存儲器中的所述預(yù)定位置讀取的,所述幀緩沖器數(shù)據(jù)定義圖形輸出,所述圖形輸出代表與所述具體虛擬機(jī)的虛擬機(jī)顯示器關(guān)聯(lián)的圖像; 用于基于所述多個連接參數(shù)使用所述圖像處理器算法將讀取的幀緩沖器數(shù)據(jù)處理成多個圖像數(shù)據(jù)分組的編程指令;以及 用于向所述客戶端傳輸所述圖像數(shù)據(jù)分組用于在與所述客戶端關(guān)聯(lián)的顯示器設(shè)備上呈現(xiàn)的編程邏輯,所述圖像數(shù)據(jù)分組特定用于所述客戶端并且代表所述虛擬機(jī)顯示器的圖像。
49.根據(jù)權(quán)利要求48所述的圖像處理器算法,其中用于處理訪問的幀緩沖器數(shù)據(jù)的編程邏輯還包括 用于分析標(biāo)識的虛擬機(jī)的所述幀緩沖器數(shù)據(jù)以確定上下文的編程邏輯;以及用于基于所述分析將適當(dāng)上下文信息關(guān)聯(lián)到所述具體虛擬機(jī)的所述幀緩沖器數(shù)據(jù)的編程邏輯。
50.根據(jù)權(quán)利要求49所述的圖像處理器算法,還包括 用于定期掃描所述具體虛擬機(jī)的所述幀緩沖器數(shù)據(jù)的編程邏輯; 用于通過比較掃描的幀緩沖器數(shù)據(jù)與為所述具體虛擬機(jī)存儲的幀緩沖器數(shù)據(jù)來確定改變區(qū)域的編程邏輯;以及 用于在與所述具體虛擬機(jī)關(guān)聯(lián)的基于時間的存儲陣列中存儲所述改變區(qū)域用于分析和傳輸?shù)木幊踢壿嫞渲写鎯λ龈淖儏^(qū)域包括存儲與所述改變區(qū)域關(guān)聯(lián)的上下文信息。
51.根據(jù)權(quán)利要求50所述的圖像處理器算法,其中用于掃描所述幀緩沖器數(shù)據(jù)的所述編程邏輯還包括 用于詢問與所述具體虛擬機(jī)的所述幀緩沖器數(shù)據(jù)關(guān)聯(lián)的同步信號的編程邏輯,所述同步信號標(biāo)識所述具體虛擬機(jī)的所述幀緩沖器數(shù)據(jù)的刷新的狀態(tài);以及 用于基于所述同步信號的所述詢問來執(zhí)行所述具體虛擬機(jī)的所述幀緩沖器數(shù)據(jù)的所述掃描的編程邏輯, 其中以在所述虛擬機(jī)處的所述幀緩沖器數(shù)據(jù)的刷新頻率或者以由與所述客戶端關(guān)聯(lián)的所述連接參數(shù)中的一個或者多個連接參數(shù)驅(qū)動的頻率定期執(zhí)行所述掃描。
52.根據(jù)權(quán)利要求51所述的圖像處理器算法,還包括 用于在用于所述具體虛擬機(jī)的所述幀緩沖器數(shù)據(jù)的刷新之前設(shè)置所述同步信號的編程邏輯;以及 用于在完成所述具體虛擬機(jī)的所述幀緩沖器數(shù)據(jù)的所述刷新時重新設(shè)置所述同步信號的編程邏輯。
全文摘要
用于通過客戶端遠(yuǎn)程控制虛擬化計算機(jī)服務(wù)的方法包括從客戶端接收針對控制在虛擬機(jī)處可用的虛擬服務(wù)的連接請求。該請求包括多個連接參數(shù),該多個連接參數(shù)描述客戶端的連接要求,并且在配備有圖像處理器算法的虛擬機(jī)處接收該請求。使用圖像處理器算法來詢問連接參數(shù)以標(biāo)識具體虛擬機(jī),該具體虛擬機(jī)提供請求的虛擬化計算機(jī)服務(wù)。通過管理程序直接訪問和讀取用于位于虛擬存儲器中的用于標(biāo)識的虛擬機(jī)的幀緩沖器數(shù)據(jù)。使用圖像處理器算法將幀緩沖器數(shù)據(jù)處理成多個圖像數(shù)據(jù)分組并且傳輸?shù)娇蛻舳擞糜谠谂c客戶端關(guān)聯(lián)的顯示器設(shè)備上呈現(xiàn)。
文檔編號G06F9/455GK102713848SQ201080062314
公開日2012年10月3日 申請日期2010年11月24日 優(yōu)先權(quán)日2009年11月25日
發(fā)明者D.龍卡丹, J.塞爾維奇, P.貝奇, R.威利斯, S.D.維爾克 申請人:弗雷姆霍克公司