基于web瀏覽器的桌面和應(yīng)用遠(yuǎn)程化解決方案的制作方法
【專利摘要】公開了用于與客戶機進行遠(yuǎn)程呈現(xiàn)會話的發(fā)明,客戶機使用web瀏覽器來進行該會話。在各實施例中,代理服務(wù)器存在于遠(yuǎn)程呈現(xiàn)服務(wù)器與客戶機之間。代理服務(wù)器建立與客戶機的HTTP會話和與客戶機的遠(yuǎn)程呈現(xiàn)會話。服務(wù)器生成用遠(yuǎn)程呈現(xiàn)協(xié)議編碼的圖形并將它們發(fā)送給代理,代理將它們重新編碼成視頻并將它們發(fā)送給客戶機以供在web瀏覽器中顯示??蛻魴C捕捉web瀏覽器處的用戶輸入并將它發(fā)送給代理,代理用遠(yuǎn)程呈現(xiàn)協(xié)議對它進行編碼并將它發(fā)送給服務(wù)器以供處理。
【專利說明】基于web瀏覽器的桌面和應(yīng)用遠(yuǎn)程化解決方案
【背景技術(shù)】
[0001]在遠(yuǎn)程呈現(xiàn)會話中,客戶機計算機和服務(wù)器計算機跨通信網(wǎng)絡(luò)進行通信。客戶機發(fā)送服務(wù)器本地接收的輸入,諸如鼠標(biāo)光標(biāo)移動和鍵盤按壓。進而,服務(wù)器接收這一輸入并執(zhí)行與其相關(guān)聯(lián)的處理,諸如執(zhí)行用戶會話中的應(yīng)用。當(dāng)服務(wù)器執(zhí)行導(dǎo)致輸出(諸如圖形輸出或聲音)的處理時,服務(wù)器將這一輸出發(fā)送到客戶機以供呈現(xiàn)。以此方式,當(dāng)應(yīng)用實際上在服務(wù)器上執(zhí)行時,應(yīng)用對客戶機的用戶表現(xiàn)為在客戶機上本地執(zhí)行。
[0002]常規(guī)遠(yuǎn)程呈現(xiàn)會話的問題是參與該遠(yuǎn)程呈現(xiàn)會話的客戶機需要已在其上安裝了遠(yuǎn)程呈現(xiàn)會話應(yīng)用——被配置成根據(jù)遠(yuǎn)程呈現(xiàn)會話協(xié)議與服務(wù)器進行通信的應(yīng)用。這一要求意味著可能存在著用戶能訪問的、具有可與遠(yuǎn)程呈現(xiàn)會話服務(wù)器進行通信的網(wǎng)絡(luò)連接的、但缺少用于進行遠(yuǎn)程呈現(xiàn)會話的遠(yuǎn)程呈現(xiàn)會話應(yīng)用的許多計算機。
[0003]還存在供客戶機與web瀏覽器而非遠(yuǎn)程呈現(xiàn)會話專用應(yīng)用進行遠(yuǎn)程呈現(xiàn)會話的技術(shù)。在這些技術(shù)中,遠(yuǎn)程桌面圖像通常被細(xì)分成多個塊(tile),并且這些圖像塊中的每一個(或塊的指示,其中客戶機已經(jīng)高速緩存了該塊)被發(fā)送給客戶機,并被顯示在客戶機的web瀏覽器中。在遠(yuǎn)程桌面圖像改變時,確定“臟”±夾一圖像已改變的那些塊一并且那些臟塊被發(fā)送給客戶機以供經(jīng)由web瀏覽器顯示。
[0004]客戶機使用web瀏覽器進行遠(yuǎn)程呈現(xiàn)會話的這些技術(shù)存在許多問題,其中的一些是公知的。
【發(fā)明內(nèi)容】
[0005]客戶機使用web瀏覽器(客戶機在其中顯示圖像塊)進行遠(yuǎn)程呈現(xiàn)會話的一個問題是性能問題。與使用專用遠(yuǎn)程呈現(xiàn)會話應(yīng)用的遠(yuǎn)程呈現(xiàn)會話相比,web瀏覽器和圖像塊技術(shù)提供低得多的幀率。不僅幀率低得多,而且?guī)式?jīng)常過低以致它負(fù)面地影響用戶體驗。即,幀率通常過低,以致遠(yuǎn)程呈現(xiàn)會話中顯示的運動是急動的,并且用戶提供的輸入與用戶看到處理該輸入的圖形結(jié)果的時間之間存在中斷。
[0006]因此,向缺少遠(yuǎn)程呈現(xiàn)會話應(yīng)用的客戶機提供使用視頻而非圖像塊與服務(wù)器進行遠(yuǎn)程呈現(xiàn)會話的發(fā)明將是一種改進。在本發(fā)明的各實施例中,客戶機具有web瀏覽器應(yīng)用,該web瀏覽器應(yīng)用被配置成既顯示視頻又接收針對該web瀏覽器應(yīng)用的用戶輸入。客戶機使用該web瀏覽器來建立與服務(wù)器的Ajax (異步Java腳本和XML——可擴展標(biāo)記語言)連接以打開一連接。客戶機和服務(wù)器隨后交換信息以向該服務(wù)器認(rèn)證該客戶機。
[0007]客戶機隨后捕捉針對web瀏覽器窗口的用戶輸入(例如,鼠標(biāo)、鍵盤、或觸摸)并異步地將它(格式化成例如XML或JS0N)發(fā)送到服務(wù)器,并且服務(wù)器接收這一輸入并將它注入適當(dāng)?shù)膽?yīng)用或用戶會話。在應(yīng)用或用戶會話生成圖形輸出時,服務(wù)器捕捉這一圖形輸出,將它編碼成視頻,并將它發(fā)送給客戶機以供經(jīng)由web瀏覽器顯示。
【專利附圖】
【附圖說明】
[0008]圖1描繪其中可實現(xiàn)本發(fā)明的各實施例的示例通用計算環(huán)境。[0009]圖2描繪其中可實現(xiàn)本發(fā)明的各實施例的示例遠(yuǎn)程呈現(xiàn)會話服務(wù)器。
[0010]圖3描繪與web瀏覽器進行遠(yuǎn)程呈現(xiàn)會話的客戶機,其中代理將遠(yuǎn)程呈現(xiàn)會話數(shù)據(jù)轉(zhuǎn)換成視頻。
[0011]圖4描繪與web瀏覽器進行遠(yuǎn)程呈現(xiàn)會話的客戶機,其中服務(wù)器從被遠(yuǎn)程化的應(yīng)用或桌面的實例所創(chuàng)建的圖形輸出中生成視頻。
[0012]圖5描繪與服務(wù)器進行遠(yuǎn)程呈現(xiàn)會話的兩個客戶機,一個客戶機使用web瀏覽器并通過代理進行通信且作為視頻來接收圖形,而一個客戶機直接與服務(wù)器進行通信并接收被編碼成遠(yuǎn)程呈現(xiàn)會話數(shù)據(jù)的圖形。
[0013]圖6描繪要被編碼成視頻的兩個圖形數(shù)據(jù)幀,其中每一幀的一部分包含相同圖像(但在不同的位置中),并且其中一個幀可基于另一個幀的編碼而被編碼。
[0014]圖7描繪要被編碼成視頻的圖形數(shù)據(jù)幀,其中該幀與前一幀共享共同的特征并且具有“臟”區(qū)域(各幀在該區(qū)域中是不同的)。
[0015]圖8描繪與客戶機進行遠(yuǎn)程呈現(xiàn)會話的服務(wù)器的示例操作過程,其中客戶機在該會話中使用web瀏覽器。
[0016]圖9描繪便于遠(yuǎn)程呈現(xiàn)會話服務(wù)器與客戶機之間的遠(yuǎn)程呈現(xiàn)會話的代理服務(wù)器的示例操作過程,其中客戶機在該會話中使用web瀏覽器。
[0017]圖10描繪使用web瀏覽器來與服務(wù)器進行遠(yuǎn)程呈現(xiàn)會話的客戶機的示例操作過程。
[0018]圖11描繪可主存與客戶機進行遠(yuǎn)程呈現(xiàn)會話的一個或多個虛擬機的示例虛擬機服務(wù)器,客戶機使用web瀏覽器并且作為視頻來接收遠(yuǎn)程呈現(xiàn)圖形。
[0019]圖12描繪可主存與客戶機進行遠(yuǎn)程呈現(xiàn)會話的一個或多個虛擬機的另一示例虛擬機服務(wù)器,客戶機使用web瀏覽器并且作為視頻來接收遠(yuǎn)程呈現(xiàn)圖形。
[0020]圖13描繪包括主存多個虛擬機的虛擬機服務(wù)器的示例系統(tǒng),每一虛擬機與客戶機進行遠(yuǎn)程呈現(xiàn)會話,客戶機使用web瀏覽器并且作為視頻來接收遠(yuǎn)程呈現(xiàn)圖形。
[0021]說明性實施例的詳細(xì)描述
[0022]本發(fā)明的各實施例可以在一個或多個計算機系統(tǒng)上執(zhí)行。圖1及以下討論旨在提供可在其中實現(xiàn)本發(fā)明的各實施例的合適計算環(huán)境的簡要概括描述。
[0023]圖1描繪了示例通用計算系統(tǒng)。通用計算系統(tǒng)可包括常規(guī)計算機20等,計算機20包括處理單元21。處理單元21可包括一個或多個處理器,它們中的每一個可具有一個或多個處理核。多核處理器(作為通常被稱為具有不止一個處理核的處理器)包括單個芯片封裝內(nèi)所包含的多個處理器。
[0024]計算機20還可包括圖形處理單元(GPU) 90。GPU90是被優(yōu)化以操縱計算機圖形的專用微處理器。處理單元21可將工作卸載到GPU90。GPU90可以具有其自己的圖形存儲器,和/或可以訪問系統(tǒng)存儲器22的一部分。如處理單元21那樣,GPU90可包括一個或多個處理單兀,每一個都具有一個或多個核。
[0025]計算機20還可包括系統(tǒng)存儲器22和系統(tǒng)總線23,系統(tǒng)總線23在系統(tǒng)處于操作狀態(tài)時將包括系統(tǒng)存儲器22的各個系統(tǒng)組件通信地耦合至處理單元21。系統(tǒng)存儲器22可包括只讀存儲器(ROM) 24和隨機存取存儲器(RAM) 25?;据斎?輸出系統(tǒng)26 (BIOS)被存儲在R0M24中,該基本輸入/輸出系統(tǒng)26包含了諸如在啟動期間幫助在計算機20內(nèi)的元件之間傳輸信息的基本例程。系統(tǒng)總線23可以是若干類型的總線結(jié)構(gòu)中的任一種,包括實現(xiàn)各種總線體系結(jié)構(gòu)中的任一種的存儲器總線或存儲器控制器、外圍總線、以及局部總線。耦合到系統(tǒng)總線23的可以是直接存儲器存取(DMA)控制器80,該DMA控制器80被配置成獨立于處理單元21從存儲器讀取和/或?qū)懭氪鎯ζ?。另外,連接到系統(tǒng)總線23 (諸如存儲驅(qū)動器接口 32或磁盤驅(qū)動器接口 33)的設(shè)備可被配置成也是獨立于處理單元21從存儲器讀取和/或?qū)懭氪鎯ζ鳎鵁o需使用DMA控制器80。
[0026]計算機20還包括用于讀寫硬盤(未示出)或固態(tài)盤(SSD)(未示出)的存儲驅(qū)動器
27、用于讀寫可移動磁盤29的磁盤驅(qū)動器28,以及用于讀寫諸如⑶ROM或其他光學(xué)介質(zhì)之類的可移動光盤31的光盤驅(qū)動器30。硬盤驅(qū)動器27、磁盤驅(qū)動器28和光盤驅(qū)動器30被示為分別通過硬盤驅(qū)動器接口 32、磁盤驅(qū)動器接口 33和光盤驅(qū)動器接口 34來連接到系統(tǒng)總線23。驅(qū)動器及其相關(guān)聯(lián)的計算機可讀存儲介質(zhì)為計算機20提供了對計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊,及其他數(shù)據(jù)的非易失性存儲。
[0027]雖然這里描述的示例環(huán)境采用硬盤、可移動磁盤29和可移動光盤31,但本領(lǐng)域技術(shù)人員應(yīng)理解,在該示例操作環(huán)境中也能使用可存儲能由計算機訪問的數(shù)據(jù)的其他類型的計算機可讀介質(zhì),如閃存卡、數(shù)字視頻盤、數(shù)字多功能盤((DVD)、隨機存取存儲器(RAM)、只讀存儲器(ROM)等。通常,這些計算機可讀存儲介質(zhì)能夠被用于一些實施例中來存儲實現(xiàn)本公開的各方面的處理器可執(zhí)行指令。計算機20也可包括主適配器55,其通過小型計算機系統(tǒng)接口(SCSI)總線56連接到存儲設(shè)備62。
[0028]包括計算機可讀指令的若干程序模塊可存儲在諸如硬盤、磁盤29、光盤31、R0M24或RAM25之類的計算機可讀介質(zhì)上,包括操作系統(tǒng)35、一個或多個應(yīng)用程序36、其他程序模塊37、以及程序數(shù)據(jù)38。一旦由處理單元執(zhí)行,計算機可讀指令使得下文中更詳細(xì)描述的動作被執(zhí)行或使得各種程序模塊被實例化。用戶可以通過諸如鍵盤40和定點設(shè)備42之類的輸入設(shè)備向計算機20中輸入命令和信息。其他輸入設(shè)備(未示出)可包括話筒、游戲桿、游戲手柄、圓盤式衛(wèi)星天線、掃描儀等等。這些及其他輸入設(shè)備常常通過耦合到系統(tǒng)總線的串行端口接口 46連接到處理單元21,但是,也可以通過諸如并行端口、游戲端口、或通用串行總線(USB)之類的其他接口來連接。顯示器47或其他類型的顯示設(shè)備也可以通過諸如視頻適配器48之類的接口連接到系統(tǒng)總線23。除了顯示器47之外,計算機通常包括其他外圍輸出設(shè)備(未不出),如揚聲器和打印機。
[0029]計算機20可使用到一個或多個遠(yuǎn)程計算機(諸如,遠(yuǎn)程計算機49)的邏輯連接而在聯(lián)網(wǎng)環(huán)境中操作。遠(yuǎn)程計算機49可以是另一個計算機、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對等設(shè)備或其他公共網(wǎng)絡(luò)節(jié)點,并通常可包括以上相對于計算機20描述的許多或所有元件,但是在圖1中只示出存儲器存儲設(shè)備50。圖1中所描繪的邏輯連接可包括局域網(wǎng)(LAN) 51和廣域網(wǎng)(WAN)52。這樣的聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè)范圍的計算機網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是普遍的。
[0030]當(dāng)用于LAN聯(lián)網(wǎng)環(huán)境中時,計算機20可通過網(wǎng)絡(luò)接口或適配器53連接到LAN51。當(dāng)用于WAN聯(lián)網(wǎng)環(huán)境中時,計算機20可通常包括調(diào)制解調(diào)器54,或用于通過諸如因特網(wǎng)之類的廣域網(wǎng)52建立通信的其他手段。可以是內(nèi)置的或外置的調(diào)制解調(diào)器54可通過串行端口接口 46連接到系統(tǒng)總線23。在聯(lián)網(wǎng)環(huán)境中,相對于計算機20所示的程序模塊或其部分可被存儲在遠(yuǎn)程存儲器存儲設(shè)備中。應(yīng)當(dāng)理解,所示的網(wǎng)絡(luò)連接是示例性的,并且可使用在計算機之間建立通信鏈路的其他手段。
[0031]在其中計算機20被配置成在聯(lián)網(wǎng)環(huán)境中操作的實施例中,操作系統(tǒng)35被遠(yuǎn)程存儲在網(wǎng)絡(luò)上,而計算機20可通過網(wǎng)絡(luò)啟動這一遠(yuǎn)程存儲的操作系統(tǒng),而不是從本地存儲的操作系統(tǒng)中啟動。在一實施例中,計算機20包括瘦客戶機,其中操作系統(tǒng)35少于完整的操作系統(tǒng),而是被配置成處理聯(lián)網(wǎng)以及諸如在監(jiān)視器47上顯示輸出的內(nèi)核。
[0032]圖2概括地示出了其中可實現(xiàn)本發(fā)明的各方面的示例環(huán)境。例如,服務(wù)器204可實現(xiàn)圖8的操作過程。本領(lǐng)域技術(shù)人員可理解,示出圖2所描繪的示例元素是為了提供用于描述本發(fā)明的操作框架。因此,在一些實施例中,每個環(huán)境的物理布局可取決于不同的實現(xiàn)方案而有所不同。因此,該示例操作框架將僅被視為說明性的且不以任何方式限制權(quán)利要求的范圍。
[0033]圖2中所描繪的是服務(wù)器204,服務(wù)器204可包括被配置成實現(xiàn)遠(yuǎn)程呈現(xiàn)會話服務(wù)器的電路,或者在某些實施例中,服務(wù)器204可包括被配置成支持遠(yuǎn)程桌面連接的電路。在所描繪的示例中,服務(wù)器204可被配置成生成用于連接客戶機的一個或多個會話,諸如會話I到N(其中N是大于2的整數(shù))。簡言之,在本發(fā)明的示例實施例中,會話一般可包括由被配置成與服務(wù)器204的內(nèi)核214交互的多個子系統(tǒng)(例如,軟件代碼)實現(xiàn)的操作環(huán)境。例如,會話可包括實例化諸如桌面窗口之類的用戶界面的進程、跟蹤該窗口內(nèi)的鼠標(biāo)移動的子系統(tǒng)、將圖標(biāo)上的鼠標(biāo)點擊轉(zhuǎn)換成實現(xiàn)程序?qū)嵗拿畹淖酉到y(tǒng)等。會話可由服務(wù)器204在逐用戶基礎(chǔ)上生成,例如在服務(wù)器204在網(wǎng)絡(luò)連接上接收到來自客戶機201的連接請求時由服務(wù)器204生成。一般而言,連接請求首先可由傳輸邏輯210處理,傳輸邏輯210例如可由服務(wù)器204的電路實現(xiàn)。在一些實施例中,傳輸邏輯210可包括網(wǎng)絡(luò)適配器、可被配置成接收連接消息并將其轉(zhuǎn)發(fā)給引擎212的固件和軟件。如圖2所示,在一些實施例中,傳輸邏輯210可包括每個會話的協(xié)議棧實例。一般而言,每個協(xié)議棧實例可被配置成將用戶接口輸出路由到客戶機,以及將從客戶機接收到的用戶輸入路由到與其會話相關(guān)聯(lián)的會話核心244。
[0034]繼續(xù)圖2的一般性描述,在本發(fā)明的一些示例實施例中,引擎212可被配置成處理對會話的請求;確定每個會話的功能;通過為會話分配一組物理資源來生成會話;以及實例化會話的協(xié)議棧實例。在一些實施例中,引擎212可由能實現(xiàn)上述操作過程中的一部分的專門電路組件來實現(xiàn)。例如,一些示例實施例中,該電路在可包括存儲器以及配置成執(zhí)行實現(xiàn)引擎212的代碼的處理器。如圖2所描繪地,在一些情況下,引擎212可接收連接請求并確定例如許可證可用,并且可為該請求生成會話。在服務(wù)器204是包括遠(yuǎn)程桌面能力的遠(yuǎn)程計算機的情形中,引擎212可被配置成響應(yīng)于連接請求生成會話而不檢查許可。如圖2所示,會話管理器216可被配置成接收來自引擎212的消息,并且響應(yīng)于該消息,會話管理器216可將會話標(biāo)識符添加到表中;向該會話標(biāo)識符指派存儲器;以及在指派給該會話標(biāo)識符的存儲器中生成系統(tǒng)環(huán)境變量和子系統(tǒng)進程的實例。
[0035]如圖2所示,會話管理器216可實例化諸如運行時子系統(tǒng)240之類的環(huán)境子系統(tǒng),該子系統(tǒng)可包括諸如會話核心244之類的內(nèi)核模式部分。例如,在一實施例中,環(huán)境子系統(tǒng)被配置成將一些服務(wù)子集展示給應(yīng)用程序并向操作系統(tǒng)214的內(nèi)核提供接入點。在示例實施例中,運行時子系統(tǒng)240可控制進程和線程的執(zhí)行,并且會話核心244可向內(nèi)核214的執(zhí)行程序發(fā)送請求以向線程分配存儲器并調(diào)度執(zhí)行它們的時間。在一實施例中,會話核心244可包括圖形顯示界面246 (⑶I)、安全子系統(tǒng)250和輸入子系統(tǒng)252。在這些實施例中,輸入子系統(tǒng)252可被配置成經(jīng)由與該會話相關(guān)聯(lián)的協(xié)議棧實例接收來自客戶機201的用戶輸入并將該輸入傳送給合適會話的會話核心244。用戶輸入在一些實施例中可包括指示絕對和/或相對鼠標(biāo)移動命令、鼠標(biāo)坐標(biāo)、鼠標(biāo)點擊、鍵盤信號、操縱桿移動信號等的信號。例如圖標(biāo)上的鼠標(biāo)雙擊的用戶輸入可被會話核心244接收,并且輸入子系統(tǒng)252可被配置成確定有圖標(biāo)位于與該雙擊相關(guān)聯(lián)的坐標(biāo)處。輸入子系統(tǒng)252隨后可被配置成向可執(zhí)行與該圖標(biāo)相關(guān)聯(lián)的應(yīng)用的進程的運行時子系統(tǒng)240發(fā)送通知。
[0036]除了接收來自客戶機201的輸入之外,還可從應(yīng)用和/或桌面接收繪制命令并由⑶1246來處理。⑶1246 —般可包括能生成圖形對象繪制命令的進程。⑶1246在該示例實施例中可被配置成將其輸出傳遞給遠(yuǎn)程顯示子系統(tǒng)254,在此命令針對附連到該會話的顯示驅(qū)動器被格式化。在某些示例實施例中,一個或多個物理顯示器可被附連到服務(wù)器204,例如在遠(yuǎn)程桌面情形中。在這些示例實施例中,遠(yuǎn)程顯示子系統(tǒng)254可被配置成鏡像由遠(yuǎn)程計算機系統(tǒng)的顯示驅(qū)動器呈現(xiàn)的繪制命令、并經(jīng)由與該會話相關(guān)聯(lián)的棧實例將鏡像信息傳送給客戶機201。在服務(wù)器204是遠(yuǎn)程呈現(xiàn)會話服務(wù)器的另一示例實施例中,遠(yuǎn)程顯示子系統(tǒng)254可被配置成包括可不與物理上附連到服務(wù)器204的顯示器相關(guān)聯(lián)的虛擬顯示驅(qū)動器,例如服務(wù)器204可無頭地(headless)運行。遠(yuǎn)程顯示子系統(tǒng)254在該實施例中可被配置成接收針對一個或多個虛擬顯示器的繪制命令并將它們經(jīng)由與該會話相關(guān)聯(lián)的棧實例傳送給客戶機201。在本發(fā)明的實施例中,遠(yuǎn)程顯示子系統(tǒng)254可被配置成確定每個顯示驅(qū)動器的顯示分辨率,例如確定與虛擬顯示器相關(guān)聯(lián)的虛擬顯示驅(qū)動器的顯示分辨率或與物理顯示器相關(guān)聯(lián)的顯示驅(qū)動器的顯示分辨率;以及經(jīng)由相關(guān)聯(lián)的協(xié)議棧實例將分組路由到客戶機201。
[0037]在一些示例實施例中,會話管理器216可附加地實例化與該會話的會話標(biāo)識符相關(guān)聯(lián)的可被配置成處理該會話的登入和登出的登錄進程的實例。在這些示例實施例中,指示與登錄進程相關(guān)聯(lián)的圖形用戶界面的繪制命令可被傳送給客戶機201,在那里,客戶機201的用戶可向登錄屏幕輸入帳戶標(biāo)識符(例如用戶名/ 口令組合)、智能卡標(biāo)識符、和/或生物測定信息。該信息可被傳送給服務(wù)器204并被路由至引擎212以及會話核心244的安全子系統(tǒng)250。例如,在某些示例實施例中,引擎212可被配置成確定用戶帳戶是否與許可證相關(guān)聯(lián);并且安全子系統(tǒng)250可被配置成生成該會話的安全令牌。
[0038]圖3描繪與web瀏覽器進行遠(yuǎn)程呈現(xiàn)會話的客戶機,其中代理將遠(yuǎn)程呈現(xiàn)會話數(shù)據(jù)轉(zhuǎn)換成視頻。在各實施例中,服務(wù)器304可被實現(xiàn)在圖2的服務(wù)器204中,并且代理306和客戶機308可被實現(xiàn)在圖1的計算機20中。在各實施例中,服務(wù)器304正通過接收和發(fā)送遠(yuǎn)程呈現(xiàn)協(xié)議編碼的數(shù)據(jù)來進行遠(yuǎn)程呈現(xiàn)會話,并且客戶機308正通過接收和發(fā)送HTTP編碼的數(shù)據(jù)(包括視頻)來進行遠(yuǎn)程呈現(xiàn)會話。代理306從服務(wù)器304接收遠(yuǎn)程呈現(xiàn)協(xié)議編碼的數(shù)據(jù)(例如,圖形輸出),將它編碼成視頻,并將它作為HTTP編碼的數(shù)據(jù)發(fā)送給客戶機308。同樣,代理306從客戶機308接收HTTP編碼的數(shù)據(jù)(例如,用戶輸入),將它編碼成遠(yuǎn)程呈現(xiàn)協(xié)議編碼的數(shù)據(jù),并將它發(fā)送給服務(wù)器304。
[0039]客戶機308可通過建立與代理306的HTTP連接來發(fā)起遠(yuǎn)程呈現(xiàn)會話。HTTP連接可以是HTTP的變種,如HTTPS (HTTP安全)連接。該建立HTTP連接可諸如通過客戶機308的用戶向客戶機308的web瀏覽器提供打開與建立同代理306的HTTP連接相關(guān)聯(lián)的網(wǎng)頁的用戶輸入來實現(xiàn)。HTTP連接可以是客戶機308與代理306之間的Ajax連接。
[0040]HTTP連接被建立后,客戶機308可向代理306認(rèn)證它自己(代理306進而可使用與該認(rèn)證相關(guān)聯(lián)的憑證來向服務(wù)器304進行認(rèn)證)。這一認(rèn)證可例如包括客戶機向代理306發(fā)送用戶標(biāo)識和口令,代理306可對照用戶-口令對的數(shù)據(jù)庫進行認(rèn)證。在各實施例中,代理306不自己認(rèn)證客戶機,而是改為在建立與服務(wù)器304的遠(yuǎn)程呈現(xiàn)會話時使用來自客戶機308的憑證來認(rèn)證自己。在代理306成功建立了與服務(wù)器304的遠(yuǎn)程呈現(xiàn)會話的情況下,它可以確定客戶機308已向代理306進行了認(rèn)證。
[0041]代理306還建立關(guān)聯(lián)于客戶機308的與服務(wù)器304的遠(yuǎn)程呈現(xiàn)會話(如果代理306尚未這樣做的話)。在這一遠(yuǎn)程呈現(xiàn)會話中,代理306擔(dān)當(dāng)遠(yuǎn)程呈現(xiàn)會話客戶機(如圖2的客戶機201),且服務(wù)器304擔(dān)當(dāng)遠(yuǎn)程呈現(xiàn)會話服務(wù)器(如圖2的服務(wù)器204)。在各實施例中,在服務(wù)器304建立與代理306的遠(yuǎn)程呈現(xiàn)會話時,服務(wù)器304使用與該會話相關(guān)聯(lián)的登錄的指示來確定要在該遠(yuǎn)程呈現(xiàn)會話中進行遠(yuǎn)程化的會話或應(yīng)用。例如,可能存在與該登錄相關(guān)聯(lián)的服務(wù)器304重新連接的已斷開連接的會話,或根本沒有會話(在這種情況下,月艮務(wù)器304可為該登錄實例化新會話)。在應(yīng)用的會話輸出而非會話(它可包括一個或多個應(yīng)用)的圖形輸出被遠(yuǎn)程化的情況下,可發(fā)生相同的過程——重新連接已斷開連接的應(yīng)用,或在沒有已斷開連接的應(yīng)用的情況下發(fā)起應(yīng)用。
[0042]服務(wù)器304隨后可經(jīng)由遠(yuǎn)程呈現(xiàn)會話將被遠(yuǎn)程化的圖形輸出傳送給代理306這可以按與圖2的服務(wù)器204向客戶機201遠(yuǎn)程化圖形輸出相似的方式來執(zhí)行。代理306接收這一遠(yuǎn)程呈現(xiàn)協(xié)議編碼的圖形數(shù)據(jù),并將它轉(zhuǎn)換成要經(jīng)由HTTP連接發(fā)送給客戶機308的視頻。在各實施例中,代理306將遠(yuǎn)程呈現(xiàn)協(xié)議編碼的圖形數(shù)據(jù)解碼以產(chǎn)生圖形數(shù)據(jù),隨后將該圖形數(shù)據(jù)編碼成一個或多個視頻幀。這一視頻可以按客戶機可在本機解碼的格式來編碼。例如,客戶機的web瀏覽器可被配置成處理HTML5格式的數(shù)據(jù),包括在本機解碼由HTML5〈video>標(biāo)簽引用的一個或多個視頻格式。這樣的格式的示例是H.264。在將圖形數(shù)據(jù)按視頻格式進行了編碼后,代理306將該視頻傳送給客戶機308,其中客戶機308解碼該視頻并將它顯示在web瀏覽器中。
[0043]客戶機308可發(fā)出影響服務(wù)器304所處理的事物的命令??蛻魴C308的用戶可提供針對客戶機308的web瀏覽器的輸入。這一輸入可包括諸如鼠標(biāo)、鍵盤、以及觸摸輸入等輸入,連同相對于視頻在何處作出該輸入的指示(例如,距右側(cè)50個像素且在所顯示的視頻左上角以下50個像素處)。客戶機308可在web瀏覽器處使用用于檢測輸入的JavaScript技術(shù)來捕捉這一輸入??蛻魴C308隨后可將該輸入發(fā)送到代理306??蛻魴C308可準(zhǔn)備該輸入以傳輸給代理306,如通過用表示數(shù)據(jù)結(jié)構(gòu)和相關(guān)聯(lián)陣列的人類可讀形式(如JSON (JavaScript對象符號))或標(biāo)簽定界的標(biāo)記格式(如XML (可擴展標(biāo)記語言))來表達(dá)它。
[0044]客戶機308可將該輸入異步地發(fā)送給代理306,使得發(fā)送該輸入可獨立于在網(wǎng)頁中顯示視頻來執(zhí)行。在異步通信中,客戶機308可獨立于顯示在網(wǎng)頁中的視頻來向代理306發(fā)送該輸入(例如,在視頻繼續(xù)被顯示在網(wǎng)頁中時)。隨后,如果并且在從代理306接收到響應(yīng)時(例如,代理306向客戶機308發(fā)送與處理該輸入的結(jié)果相對應(yīng)的更多視頻),客戶機308處理該響應(yīng)。
[0045]代理306從客戶機308接收該輸入,并且在該輸入是用一種格式(諸如,JSON或XML)編碼的情況下,解碼該輸入,并將該輸入重新編碼成遠(yuǎn)程呈現(xiàn)會話數(shù)據(jù)。代理306隨后可將這一經(jīng)編碼的遠(yuǎn)程呈現(xiàn)會話數(shù)據(jù)發(fā)送給服務(wù)器304,其中服務(wù)器304將該輸入注入到該遠(yuǎn)程呈現(xiàn)會話的適當(dāng)?shù)膽?yīng)用或用戶會話中,并執(zhí)行與被提供給該應(yīng)用或用戶會話的輸入相關(guān)聯(lián)的處理。在該處理使得生成與該遠(yuǎn)程呈現(xiàn)會話相關(guān)聯(lián)的進一步的圖形輸出時,服務(wù)器304可將這一附加的圖形輸出編碼并將它發(fā)送給代理306,代理306將它轉(zhuǎn)換成視頻并將它發(fā)送給客戶機308以供顯示。
[0046]在各實施例中,服務(wù)器304和代理306可在虛擬機(VM)上執(zhí)行,這些虛擬機可在同一物理主計算機上執(zhí)行。在這樣的場景中,服務(wù)器304和代理306可經(jīng)由回環(huán)連接(使用指向它自己使用的網(wǎng)絡(luò)接口的IP地址(如127.0.0.1)的連接)。例如,服務(wù)器304可監(jiān)聽端口3389且代理306可監(jiān)聽端口 3390。隨后,服務(wù)器304可通過向127.0.0.1:3390傳送數(shù)據(jù)來與代理306進行通信,且代理可通過向127.0.0.1:3389傳送數(shù)據(jù)來與服務(wù)器304進行通信。在同一物理機器上執(zhí)行的服務(wù)器304與代理306之間使用回環(huán)連接允許傳統(tǒng)遠(yuǎn)程呈現(xiàn)服務(wù)器在無需修改的情況下操作。這類似于使用代理306作為服務(wù)器304與使用web瀏覽器進行遠(yuǎn)程呈現(xiàn)會話的客戶機之間的中介如何允許傳統(tǒng)服務(wù)器在無需修改的情況下操作。有了該回環(huán)連接,被配置成只跨通信網(wǎng)絡(luò)接口向客戶機傳送數(shù)據(jù)的傳統(tǒng)遠(yuǎn)程呈現(xiàn)服務(wù)器可被用來實現(xiàn)本發(fā)明的各實施例,因為服務(wù)器將仍然跨網(wǎng)絡(luò)通信接口與客戶機(或代理)進行通信。
[0047]圖4描繪與web瀏覽器進行遠(yuǎn)程呈現(xiàn)會話的客戶機,其中服務(wù)器從被遠(yuǎn)程化的應(yīng)用或桌面的實例所創(chuàng)建的圖形輸出中生成視頻。服務(wù)器404可被實現(xiàn)在圖1的計算機20中。圖4中示出的計算機與圖3中示出的計算機不同的一種情形是服務(wù)器404與服務(wù)器304不同。服務(wù)器304被配置成通過與客戶機交換用遠(yuǎn)程呈現(xiàn)協(xié)議編碼的數(shù)據(jù)來進行遠(yuǎn)程呈現(xiàn)會話。服務(wù)器304沒有被配置成按視頻的形式向使用web瀏覽器進行遠(yuǎn)程呈現(xiàn)會話的客戶機發(fā)送遠(yuǎn)程呈現(xiàn)數(shù)據(jù)。相反,代理306被配置成從服務(wù)器接收遠(yuǎn)程呈現(xiàn)協(xié)議編碼的數(shù)據(jù)并將它轉(zhuǎn)換成視頻,并且從客戶機接收用戶輸入并按遠(yuǎn)程呈現(xiàn)協(xié)議來編碼該用戶輸入。
[0048]相反,圖4的服務(wù)器404被配置成作為視頻來向客戶機308發(fā)送遠(yuǎn)程呈現(xiàn)數(shù)據(jù),客戶機308使用web瀏覽器進行遠(yuǎn)程呈現(xiàn)會話。客戶機306可按如以上參考圖3所描述的客戶機306與代理306建立HTTP連接相似的方式與服務(wù)器404建立HTTP連接。服務(wù)器404隨后被配置成取得來自應(yīng)用或用戶會話的圖形輸出并將該輸出編碼成視頻而不執(zhí)行將該輸出編碼成遠(yuǎn)程呈現(xiàn)協(xié)議編碼的數(shù)據(jù)的中間步驟。例如,在來自應(yīng)用或用戶會話的圖形輸出包括位圖圖像的情況下,這些位圖圖像可被服務(wù)器404編碼成一個或多個視頻幀。
[0049]類似于服務(wù)器404如何能夠通過向客戶機308發(fā)送視頻而非遠(yuǎn)程呈現(xiàn)協(xié)議編碼的數(shù)據(jù)進行遠(yuǎn)程呈現(xiàn)會話,服務(wù)器404可從客戶機308接收針對web瀏覽器的用戶輸入(沒有用遠(yuǎn)程呈現(xiàn)協(xié)議編碼),如用JSON或XML。服務(wù)器404可解碼該輸入并將它注入相關(guān)聯(lián)的應(yīng)用或用戶會話中,以與服務(wù)器404如何將用遠(yuǎn)程呈現(xiàn)協(xié)議編碼的輸入注入到應(yīng)用或用戶會話中相似的方式。
[0050]圖5描繪與服務(wù)器進行遠(yuǎn)程呈現(xiàn)會話的兩個客戶機,一個客戶機使用web瀏覽器并通過代理進行通信且作為視頻來接收圖形,而一個客戶機直接與服務(wù)器進行通信并接收被編碼成遠(yuǎn)程呈現(xiàn)會話數(shù)據(jù)的圖形。服務(wù)器504和客戶機508可被實現(xiàn)在圖1的計算機20中。服務(wù)器504可被配置成使用遠(yuǎn)程呈現(xiàn)協(xié)議編碼的數(shù)據(jù)與諸如客戶機508等客戶機進行遠(yuǎn)程呈現(xiàn)會話。服務(wù)器504還可被配置成與通過代理進行遠(yuǎn)程呈現(xiàn)會話的客戶機(如客戶機308)進行遠(yuǎn)程呈現(xiàn)會話,其中客戶機使用web瀏覽器并且客戶機和代理經(jīng)由HTTP會話進行通信。即,服務(wù)器504可被配置成執(zhí)行圖3的服務(wù)器304 (它被配置成通過代理306與使用web瀏覽器的客戶機進行遠(yuǎn)程呈現(xiàn)會話)和圖4的服務(wù)器404 (它被配置成與使用web瀏覽器的客戶機直接進行遠(yuǎn)程呈現(xiàn)會話)的功能。
[0051]圖6-7描繪用于將圖形數(shù)據(jù)編碼成要在遠(yuǎn)程呈現(xiàn)會話中傳送的視頻的技術(shù)。在代理306或服務(wù)器404將多個遠(yuǎn)程呈現(xiàn)會話的圖形輸出編碼成視頻的情況下,計算機的處理能力可快速變得負(fù)擔(dān)很重或緊張。鑒于此,本發(fā)明的各實施例提供將遠(yuǎn)程呈現(xiàn)會話的圖形輸出編碼成視頻的高效方式。這些實施例中的一些在圖6-7中示出。
[0052]圖6描繪要被編碼成視頻的兩個圖形數(shù)據(jù)幀,其中每一幀的一部分包含相同圖像(但在不同的位置中),并且其中一個幀可基于另一個幀的編碼而被編碼。幀600是來自計算機桌面的圖形數(shù)據(jù)幀,并且?guī)?50是描繪稍后時間的同一桌面的圖形數(shù)據(jù)幀。幀600包括部分602。在幀650中,幀600的部分602已從位置652移至位置654。因此,部分602和654描繪了同一圖像,只是在不同的位置。因此,幀650的部分654可不必被重新編碼。相反,排除了部分654的幀650可被重新編碼并隨后與先前已編碼部分602(置于編碼幀中的部分654的位置處)進行組合以產(chǎn)生編碼幀650。在使用先前已編碼數(shù)據(jù)來對幀650進行編碼時,對幀650進行編碼所需的計算資源可減少,從而允許對該幀進行編碼的服務(wù)器或代理與它以其他方式能夠并發(fā)地進行編碼相比,并發(fā)地編碼更多幀(并且因此并發(fā)地進行更多遠(yuǎn)程呈現(xiàn)會話)。
[0053]圖7描繪要被編碼成視頻的圖形數(shù)據(jù)幀,其中該幀與前一幀共享共同的特征并且具有“臟”區(qū)域(各幀在該區(qū)域中是不同的)。幀700包含兩個臟區(qū)域一臟區(qū)域702和704,在這兩個區(qū)域處幀700與它的前導(dǎo)幀(已被編碼)不同。幀700可通過將臟區(qū)域702和704編碼并隨后將這些經(jīng)編碼的臟區(qū)域與從前一幀的編碼中取得的先前已編碼的非臟區(qū)域進行組合,而被編碼成視頻,與圖6相同,在使用先前已編碼數(shù)據(jù)來對幀700進行編碼時,對幀700進行編碼所需的計算資源可減少,從而允許對該幀進行編碼的服務(wù)器或代理與它以其他方式能夠并發(fā)地進行編碼相比,并發(fā)地編碼更多幀(并且因此并發(fā)地進行更多遠(yuǎn)程呈現(xiàn)會話)。
[0054]圖8描繪與客戶機進行遠(yuǎn)程呈現(xiàn)會話的服務(wù)器的示例操作過程,其中客戶機在該會話中使用web瀏覽器。在各實施例中,圖8的操作過程可由圖4的服務(wù)器404在與客戶機308進行遠(yuǎn)程呈現(xiàn)會話時來實現(xiàn),其中客戶機308使用web瀏覽器進行該會話??梢悦靼祝瑓⒖紙D8 (以及圖9和10),存在沒有實現(xiàn)全部所示操作或按與在此描述的次序不同的次序?qū)崿F(xiàn)所示操作的本發(fā)明實施例。
[0055]操作802描繪建立與客戶機的超文本傳輸協(xié)議(HTTP)會話。這可諸如通過客戶機經(jīng)由HTTP會話向服務(wù)器發(fā)送HTTP數(shù)據(jù)請求來實現(xiàn)。這一數(shù)據(jù)請求可包括對包含被遠(yuǎn)程化的桌面的流傳輸視頻的網(wǎng)頁的請求。服務(wù)器可以確定唯一地標(biāo)識HTTP會話的HTTP會話令牌并將它發(fā)送給客戶機。客戶機可存儲該令牌(如按HTTP cookie的形式儲存)并隨后在將來的通信中將它傳送給服務(wù)器以標(biāo)識該HTTP會話。
[0056]操作804描繪確認(rèn)經(jīng)由HTTP會話接收到的客戶機的憑證??蛻魴C可以使用憑證來確認(rèn)它與服務(wù)器進行遠(yuǎn)程呈現(xiàn)會話的授權(quán)。在各實施例中,這一憑證包括用戶登錄和口令,其中用戶登錄與用戶在服務(wù)器上的帳戶相關(guān)聯(lián)。服務(wù)器可儲存憑證的數(shù)據(jù)庫并且對照該數(shù)據(jù)庫檢查所提供的憑證以尋找匹配,這可指示該憑證是有效的。
[0057]操作806描繪確定與客戶機的憑證相對應(yīng)的會話或應(yīng)用的實例,圖形數(shù)據(jù)包括該實例的圖形輸出。在各實施例中,服務(wù)器將實例化用戶會話的實例并開始執(zhí)行它。在存在與該憑證相對應(yīng)的已斷開連接的用戶會話的情況下,服務(wù)器可重新連接該會話。在各實施例中,如在該憑證對應(yīng)于多個可能的應(yīng)用的情況下,服務(wù)器可向客戶機發(fā)送要被遠(yuǎn)程化的可能應(yīng)用和/或會話的指示,并基于接收到的對這些可能的應(yīng)用和/或會話之一的選擇的指示來確定要將哪一個的圖形輸出遠(yuǎn)程化。
[0058]操作808描繪確定要在該遠(yuǎn)程呈現(xiàn)會話中發(fā)送給客戶機的圖形數(shù)據(jù)。在服務(wù)器執(zhí)行在操作806中確定的用戶會話或應(yīng)用的實例時,該執(zhí)行將使得生成圖形數(shù)據(jù)。這是將經(jīng)由該遠(yuǎn)程呈現(xiàn)會話發(fā)送的圖形數(shù)據(jù)(或?qū)l(fā)送該數(shù)據(jù)的表示)。確定要發(fā)送給客戶機的圖形數(shù)據(jù)可按與參考圖2的服務(wù)器204描述的相似方式來執(zhí)行。
[0059]操作810描繪將圖形數(shù)據(jù)編碼成視頻。在各實施例中,操作810包括基于先前已將第二圖形數(shù)據(jù)編碼成第二視頻將圖形數(shù)據(jù)編碼成視頻。即,當(dāng)前被編碼的視頻可具有與先前已編碼的視頻的共同特征,并且服務(wù)器可利用這些共同特征來減少用來將圖形數(shù)據(jù)編碼成視頻的處理資源。例如,這可包括基于圖形數(shù)據(jù)相對于第二圖形數(shù)據(jù)的臟區(qū)域來編碼該圖形數(shù)據(jù),并使用第二視頻的至少一部分來編碼該圖形數(shù)據(jù)。這可例如如參考圖7的幀700所示的那樣發(fā)生。在圖形數(shù)據(jù)和第二圖形數(shù)據(jù)之間存在少量更新的情況下,這些更新可被表達(dá)成標(biāo)識這些相應(yīng)圖形數(shù)據(jù)的彼此不同的“臟區(qū)域”。隨后,服務(wù)器可只將圖形數(shù)據(jù)的臟區(qū)域編碼成視頻,并將這些經(jīng)編碼的臟區(qū)域與包含非臟區(qū)域的視頻的第二視頻進行組合來創(chuàng)建該圖形數(shù)據(jù)的視頻。
[0060]基于先前已將第二圖形數(shù)據(jù)編碼成第二視頻來將圖形數(shù)據(jù)編碼成視頻的各實施例還包括基于該圖形數(shù)據(jù)中的也被描繪在該第二圖形數(shù)據(jù)中的元素來編碼該圖形數(shù)據(jù),該元素在該圖形數(shù)據(jù)中被描繪在與該第二圖形數(shù)據(jù)中的不同位置處,并且使用該第二視頻的至少一部分來編碼該圖形數(shù)據(jù)。即,應(yīng)用窗口(等等)可在該圖形數(shù)據(jù)和該第二圖形數(shù)據(jù)之間已經(jīng)移動。這可例如如參考圖6的幀600和650所示的那樣發(fā)生。在標(biāo)識了這一移動的情況下,服務(wù)器可取得第二視頻的與該應(yīng)用窗口相對應(yīng)的部分并使用它來創(chuàng)建視頻。它可將該圖形數(shù)據(jù)的不是該應(yīng)用窗口的那些部分編碼成視頻,并將它與來自第二窗口的該應(yīng)用窗口的已編碼視頻進行組合。
[0061]在各實施例中,操作810包括接收圖形數(shù)據(jù)的第一部分包括文本且圖形數(shù)據(jù)的第二部分包括圖像或視頻的指示;以及基于圖形數(shù)據(jù)的第一部分包括文本且圖形數(shù)據(jù)的第二部分包括圖像或視頻的指示將該圖形數(shù)據(jù)編碼成視頻。一些遠(yuǎn)程呈現(xiàn)服務(wù)器被配置成從它們正在將其圖形輸出遠(yuǎn)程化的應(yīng)用接收“提示”,其中這些提示指示該圖形輸出是什么——例如,文本、純色填充、圖像、或視頻。一些遠(yuǎn)程呈現(xiàn)服務(wù)器被配置成分析圖形數(shù)據(jù)以確定這一信息。在這些實施例中,視頻可基于這一信息來編碼。例如,用戶可能對在文本中看到壓縮偽像比在圖像中更敏感。服務(wù)器將圖形輸出可變地編碼成視頻,使得它在圖形輸出的作為圖像的部分上使用比圖形輸出的作為文本的部分上更有損的壓縮。
[0062]操作812描繪經(jīng)由HTTP會話將該視頻發(fā)送給客戶機,使得客戶機在web瀏覽器中顯示該視頻。在各實施例中,操作812包括經(jīng)由HTTP會話將該視頻發(fā)送給客戶機,使得客戶機顯示該視頻作為嵌入在web瀏覽器中所顯示的網(wǎng)頁中的視頻元素。例如,視頻可被嵌入在HTML5網(wǎng)頁中,經(jīng)由網(wǎng)頁中的〈video〉標(biāo)簽來引用。在各實施例中,視頻是流傳輸視頻,使得在服務(wù)器繼續(xù)從一個或多個應(yīng)用或用戶會話生成圖形數(shù)據(jù)時,該圖形數(shù)據(jù)被編碼并在該流傳輸視頻中作為附加視頻發(fā)送給客戶機。
[0063]操作814描繪從客戶機接收針對web瀏覽器的用戶輸入;確定與該用戶輸入相對應(yīng)的應(yīng)用,該應(yīng)用已產(chǎn)生了該圖形數(shù)據(jù)的至少一部分;以及將該用戶輸入注入到該應(yīng)用,使得該應(yīng)用處理與該用戶輸入相對應(yīng)的結(jié)果。當(dāng)客戶機在web瀏覽器中顯示該視頻時,用戶可向web瀏覽器提供輸入,如通過移動鼠標(biāo)光標(biāo)或在鍵盤處鍵入。這一信息可由客戶機捕捉并經(jīng)由HTTP會話發(fā)送給服務(wù)器。在服務(wù)器接收到該輸入時,它隨后可確定用戶用該輸入引用的應(yīng)用(例如,在視頻的左上角處的輸入(其中特定應(yīng)用窗口被描繪在該點處)可被確定為針對該應(yīng)用窗口的輸入)。隨后服務(wù)器可將該輸入注入到所確定的應(yīng)用中,如參考圖2所描述的。
[0064]圖9描繪便于遠(yuǎn)程呈現(xiàn)會話服務(wù)器與客戶機之間的遠(yuǎn)程呈現(xiàn)會話的代理服務(wù)器的示例操作過程,其中客戶機在該會話中使用web瀏覽器。圖9的操作過程可在圖6的代理306中實現(xiàn),因為它便于服務(wù)器304與客戶機308之間的遠(yuǎn)程呈現(xiàn)會話。
[0065]操作902描繪建立與客戶機的超文本傳輸協(xié)議(HTTP)會話。操作902可按與如何實現(xiàn)圖8的操作802類似的方式來實現(xiàn)。
[0066]操作904描繪建立與服務(wù)器的遠(yuǎn)程呈現(xiàn)會話。操作904可按與如圖2所示的服務(wù)器204處理來自客戶機201的通過網(wǎng)絡(luò)連接的連接請求相似的方式來實現(xiàn)。在操作904中,為建立遠(yuǎn)程呈現(xiàn)會話,代理服務(wù)器306扮演客戶機201的角色,并且服務(wù)器304扮演服務(wù)器204的角色。在各實施例中,客戶機201向代理306發(fā)送可被用來確認(rèn)該客戶機與服務(wù)器204進行遠(yuǎn)程呈現(xiàn)會話的授權(quán)的憑證。代理306可自己確認(rèn)該憑證,和/或?qū)⒃搼{證傳遞給服務(wù)器204。服務(wù)器204可以使用該憑證作為建立遠(yuǎn)程呈現(xiàn)會話的一部分以對提供憑證作為建立遠(yuǎn)程呈現(xiàn)會話的一部分的計算機進行確認(rèn),和/或確定與該客戶機的憑證相對應(yīng)的會話或應(yīng)用的實例,該實例的圖形輸出要在遠(yuǎn)程呈現(xiàn)會話中發(fā)送,如在操作806中描繪的。
[0067]操作906描繪從服務(wù)器并經(jīng)由遠(yuǎn)程呈現(xiàn)會話接收用遠(yuǎn)程呈現(xiàn)協(xié)議編碼的圖形數(shù)據(jù)。一旦遠(yuǎn)程呈現(xiàn)會話已被建立,則服務(wù)器204就向代理306發(fā)送用遠(yuǎn)程呈現(xiàn)會話協(xié)議編碼的圖形數(shù)據(jù)(如在服務(wù)器204上執(zhí)行的應(yīng)用或用戶會話所生成的)。
[0068]操作908描繪將圖形數(shù)據(jù)編碼成視頻。在各實施例中,操作908包括將圖形數(shù)據(jù)從它的遠(yuǎn)程呈現(xiàn)協(xié)議編碼解碼以生成一個或多個圖像,并隨后將該一個或多個圖像重新編碼成視頻。在各實施例中,操作908包括將圖形數(shù)據(jù)從它的遠(yuǎn)程呈現(xiàn)協(xié)議編碼轉(zhuǎn)換成視頻編碼而無需執(zhí)行將圖形數(shù)據(jù)解碼以產(chǎn)生圖像的中間步驟。
[0069]操作910描繪經(jīng)由HTTP會話將該視頻發(fā)送給客戶機,使得客戶機在web瀏覽器中顯示該視頻。在各實施例中,客戶機的web瀏覽器可被配置成接收并顯示遵循HTML5 (超文本標(biāo)記語言5)標(biāo)準(zhǔn)的信息。在這些實施例中,視頻可被包括在網(wǎng)頁中,如通過使用HTML5〈vide0>標(biāo)簽。例如,在圖形數(shù)據(jù)被編碼成位于代理上的與它在其中被編碼的網(wǎng)頁相同的目錄中的題為“remote_presentation_session.avi”的視頻的情況下,〈video〉標(biāo)簽可在該網(wǎng)頁中被表不成“〈video src= “remote_presentation_session.avi,,autoplay=” autoplay”/>”。在該不例中,屬性 autoplay=” autoplay” 表不 web 瀏覽器將在接收到該視頻的初始部分后開始自動播放它。
[0070]操作912描繪經(jīng)由HTTP會話從客戶機接收針對web瀏覽器的用戶輸入的指示??蛻魴C可在web瀏覽器中顯示該視頻,如參考操作910所述,并且客戶機可向web瀏覽器提供輸入,如光標(biāo)移動和按鈕按下(包括按下鍵盤按鈕)。這些可在客戶機上被捕捉并經(jīng)由HTTP會話傳送給代理。在各實施例中,在其中提供輸入的位置也經(jīng)由HTTP會話被傳送給代理。
[0071]操作914描繪用遠(yuǎn)程呈現(xiàn)協(xié)議編碼用戶輸入。代理可取得它在操作912從客戶機接收到的用戶輸入,并根據(jù)遠(yuǎn)程呈現(xiàn)協(xié)議來對它進行編碼。例如,用戶輸入可按JSON(JavaScript對象符號)格式化的那樣被接收,這根據(jù)模式類對象——對該類型的對象的結(jié)構(gòu)和內(nèi)容有約束的對象——來構(gòu)造了該輸入。在這種情況下,代理可從JSON格式中提取用戶輸入,并用遠(yuǎn)程呈現(xiàn)協(xié)議對它進行編碼。
[0072]操作916描繪了經(jīng)由遠(yuǎn)程呈現(xiàn)會話將經(jīng)編碼的用戶輸入發(fā)送給服務(wù)器。這可包括代理經(jīng)由遠(yuǎn)程呈現(xiàn)會話連接將用遠(yuǎn)程呈現(xiàn)協(xié)議編碼的用戶輸入發(fā)送給服務(wù)器。
[0073]操作918描繪從服務(wù)器并經(jīng)由遠(yuǎn)程呈現(xiàn)會話接收用遠(yuǎn)程呈現(xiàn)協(xié)議編碼的第二圖形數(shù)據(jù),該第二圖形數(shù)據(jù)與在服務(wù)器上執(zhí)行與用戶輸入相關(guān)聯(lián)的操作的圖形結(jié)果相對應(yīng)。這可類似于如何實現(xiàn)操作906相似的方式來實現(xiàn)。在此,服務(wù)器已接收到用戶輸入,執(zhí)行了與該用戶輸入相關(guān)聯(lián)的處理,并生成了與來自執(zhí)行與用戶輸入相關(guān)聯(lián)的處理的圖形結(jié)果相關(guān)聯(lián)的更多遠(yuǎn)程呈現(xiàn)會話圖形數(shù)據(jù)(以及可能的音頻結(jié)果或可能只有音頻結(jié)果)。在生成了圖形結(jié)果之后,服務(wù)器用遠(yuǎn)程呈現(xiàn)協(xié)議將它編碼并將它傳送給代理。
[0074]操作920描繪將第二圖形數(shù)據(jù)編碼成第二視頻。操作920可按與操作908相似的方式來執(zhí)行。第二視頻和相同視頻可以是相同流傳輸視頻的一部分,其中第二視頻包括在該視頻流中處于第一視頻之后的一個或多個幀。
[0075]操作922描繪經(jīng)由HTTP會話將該第二視頻發(fā)送給客戶機,使得客戶機在web瀏覽器中顯示該第二視頻。操作922可按與操作910相似的方式來執(zhí)行。
[0076]圖10描繪使用web瀏覽器來與服務(wù)器進行遠(yuǎn)程呈現(xiàn)會話的客戶機的示例操作過程。例如,這些操作過程可在它與圖3的代理306或圖4的服務(wù)器404進行通信時實現(xiàn)。
[0077]操作1002描繪建立與服務(wù)器的遠(yuǎn)程呈現(xiàn)會話。在各實施例中,遠(yuǎn)程呈現(xiàn)會話包括超文本傳輸協(xié)議(HTTP)會話。操作1002可類似于參考客戶機如何實現(xiàn)操作802的描述來實現(xiàn)。
[0078]操作1004描繪經(jīng)由HTTP會話將憑證發(fā)送給服務(wù)器,該憑證與被授權(quán)與該服務(wù)器進行遠(yuǎn)程呈現(xiàn)會話的用戶相關(guān)聯(lián)。操作1004可類似于參考客戶機如何實現(xiàn)操作804的描述來實現(xiàn)。在各實施例中,客戶機可提示用戶錄入登錄和口令的輸入,并使用接收到的輸入作為憑證。
[0079]操作1006描繪經(jīng)由HTTP會話從服務(wù)器接收視頻,該視頻包括來自在服務(wù)器上執(zhí)行應(yīng)用或用戶會話的圖形輸出。這可包括從服務(wù)器接收包含〈video〉元素的網(wǎng)頁(如HTML5網(wǎng)頁),其中該〈video〉元素引用包括來自在服務(wù)器上執(zhí)行應(yīng)用或用戶會話的圖形輸出的視頻。
[0080]操作1008描繪在web瀏覽器中顯示該視頻。在客戶機上執(zhí)行的web瀏覽器可呈現(xiàn)包括該視頻的網(wǎng)頁,并在客戶機的顯示設(shè)備(如監(jiān)視器)上顯示結(jié)果。
[0081]操作1010描繪接收針對web瀏覽器的用戶輸入,該用戶輸入對應(yīng)于視頻中的位置。包含該視頻的網(wǎng)頁還可包含被配置成檢測并捕捉針對該網(wǎng)頁的用戶輸入的邏輯,如用JavaScript表達(dá)。這一用戶輸入可包括例如光標(biāo)移動和/或鍵盤鍵按下。
[0082]操作1012描繪將用戶輸入的指示發(fā)送給服務(wù)器。在各實施例中,用戶輸入連同相對于視頻在何處作出了該輸入的指示一起發(fā)送(例如,光標(biāo)進入視頻的左邊緣距左上角50像素并在時間t內(nèi)向右移動了 75像素)。在各實施例中,輸入可被格式化以供傳輸,如用表示數(shù)據(jù)結(jié)構(gòu)和相關(guān)聯(lián)陣列的人類可讀形式(如JSON (JavaScript對象符號))或標(biāo)簽定界的標(biāo)記格式(如XML (可擴展標(biāo)記語言))來格式化。
[0083]操作1014描繪從服務(wù)器接收與該服務(wù)器將用戶輸入注入到在該服務(wù)器上執(zhí)行的對應(yīng)于該位置的應(yīng)用相對應(yīng)的第二視頻。該第二視頻和該視頻兩者都可以是一個流傳輸視頻——描繪來自服務(wù)器的在它隨時間改變時被遠(yuǎn)程化的圖形輸出的流傳輸視頻——的一部分。
[0084]操作1016描繪在web瀏覽器中顯示該第二視頻。在客戶機繼續(xù)接收流傳輸視頻(包括該第二視頻)時,它可在web瀏覽器中顯示該流傳輸視頻。
[0085]圖11和12描繪被配置成實現(xiàn)虛擬機的計算機系統(tǒng)1100和1200的高級框圖。在本發(fā)明的各示例實施例中,計算機系統(tǒng)1100和1200可包括圖1中描述的元件。如圖所示,可存在不同的體系結(jié)構(gòu);然而,它們一般具有相似的組件。例如,圖11示出了一操作環(huán)境,其中本領(lǐng)域中也可被稱為虛擬機監(jiān)控程序的系統(tǒng)管理程序被拆分成微內(nèi)核1102和父分區(qū)1104,而圖12示出系統(tǒng)管理程序1204包括圖11的父分區(qū)1104中找到的元素。
[0086]圖11描繪可主存與客戶機進行遠(yuǎn)程呈現(xiàn)會話的一個或多個虛擬機的示例虛擬機服務(wù)器,客戶機使用web瀏覽器并且作為視頻來接收遠(yuǎn)程呈現(xiàn)圖形。系統(tǒng)管理程序微內(nèi)核1102可被配置成控制并仲裁對計算機系統(tǒng)1100的硬件的訪問。廣泛而言,系統(tǒng)管理程序微內(nèi)核1102可以生成稱為分區(qū)的執(zhí)行環(huán)境,如子分區(qū)11150到子分區(qū)N1152(其中N是大于I的整數(shù))。在各實施例中,子分區(qū)是系統(tǒng)管理程序微內(nèi)核1102支持的基本隔離單元。S卩,每一子分區(qū)可被映射到一組在系統(tǒng)管理程序微內(nèi)核1102的控制下的硬件資源,例如存儲器、設(shè)備、邏輯處理器周期等,并且系統(tǒng)管理程序微內(nèi)核1102可隔離一個分區(qū)中的進程不使其訪問另一分區(qū)的資源,例如,一個分區(qū)中的客操作系統(tǒng)可與另一分區(qū)的存儲器隔離,且因此不能檢測到其分區(qū)外部的存儲器地址。在各實施例中,系統(tǒng)管理程序微內(nèi)核1102可以是獨立的軟件產(chǎn)品、操作系統(tǒng)的一部分、嵌入在主板的固件中、專用集成電路、或其組合。
[0087]該操作環(huán)境中的父分區(qū)1104可被配置成通過使用虛擬化服務(wù)提供者1128 (VSP)來向在子分區(qū)1-N中執(zhí)行的客操作系統(tǒng)提供資源,虛擬化服務(wù)提供者在開源社區(qū)中通常被稱為后端驅(qū)動程序。廣泛而言,VSP1128可用于通過虛擬化服務(wù)客戶機(VSC)(開源社區(qū)中通常稱為前端驅(qū)動程序)復(fù)用到硬件資源的接口,并經(jīng)由通信協(xié)議與虛擬化服務(wù)客戶機進行通信。如圖所示,虛擬化服務(wù)客戶機可以在客操作系統(tǒng)的上下文中執(zhí)行。這些驅(qū)動程序不同于客機中的其余驅(qū)動程序,因為向這些驅(qū)動程序提供了系統(tǒng)管理程序而非客機。
[0088]微內(nèi)核1102可以通過限制客操作系統(tǒng)的系統(tǒng)存儲器視圖來實施分區(qū)??痛鎯ζ魇怯上到y(tǒng)管理程序控制的分區(qū)對存儲器的查看??臀锢淼刂纺苡上到y(tǒng)物理地址(SPA)來支持,即物理計算機系統(tǒng)的存儲器由系統(tǒng)管理程序進行管理。如圖所示,在一實施例中,GPA和SPA可被安排成存儲器塊,S卩,一個或多個存儲器頁。當(dāng)客機使用其頁表向一個塊寫入時,數(shù)據(jù)實際被存儲在根據(jù)系統(tǒng)管理程序使用的系統(tǒng)級頁表而具有不同系統(tǒng)地址的塊中。[0089]如圖所示,在本發(fā)明的各實施例中,IO仿真器(1134和1136),例如虛擬化IDE設(shè)備、虛擬化視頻適配器、虛擬化NIC等,能被配置成在其各自的子分區(qū)中運行。如以下更詳細(xì)描述的,通過將仿真器配置為在子分區(qū)內(nèi)運行,減小了系統(tǒng)管理程序的攻擊面以及計算開銷。
[0090]每一子分區(qū)可包括一個或多個虛擬處理器(1130和1132),客操作系統(tǒng)(1120和1122 )可管理并調(diào)度線程以在這些虛擬處理器上執(zhí)行。一般而言,虛擬處理器是向物理處理器的表示提供特定架構(gòu)的可執(zhí)行指令以及相關(guān)聯(lián)的狀態(tài)信息。例如,一個虛擬機可具有帶有英特爾x86處理器特性的虛擬處理器,而另一虛擬處理器可具有PowerPC處理器的特性。本示例中的虛擬處理器可被映射到計算機系統(tǒng)的邏輯處理器,使得實現(xiàn)虛擬處理器的指令將受到邏輯處理器的支持。由此,在包括多個邏輯處理器的實施例中,各虛擬處理器可以由各邏輯處理器同時執(zhí)行,同時例如其他邏輯處理器執(zhí)行系統(tǒng)管理程序指令。分區(qū)中虛擬處理器和存儲器的組合可被認(rèn)為是虛擬機。
[0091]客操作系統(tǒng)可包括任何操作系統(tǒng),如不同版本的微軟WINDOWS操作系統(tǒng)(例如,WINDOWS XP及WIND0WS7)??筒僮飨到y(tǒng)可包括用戶/內(nèi)核操作模式,并且可具有可包括調(diào)度程序、存儲器管理器等的內(nèi)核。一般而言,內(nèi)核模式可包括邏輯處理器中的執(zhí)行模式,該執(zhí)行模式授予對至少特權(quán)處理器指令的訪問權(quán)。每一客操作系統(tǒng)可具有相關(guān)聯(lián)的文件系統(tǒng),該文件系統(tǒng)上可存儲有應(yīng)用(諸如終端服務(wù)器、電子商務(wù)服務(wù)器、電子郵件服務(wù)器等)以及客操作系統(tǒng)本身??筒僮飨到y(tǒng)可調(diào)度要在虛擬處理器上執(zhí)行的線程,且這些應(yīng)用的實例可被實現(xiàn)。
[0092]圖12描繪可主存與客戶機進行遠(yuǎn)程呈現(xiàn)會話的一個或多個虛擬機的另一示例虛擬機服務(wù)器,客戶機使用web瀏覽器并且作為視頻來接收遠(yuǎn)程呈現(xiàn)圖形。圖12描繪以上在圖11中描述的體系結(jié)構(gòu)的另選體系結(jié)構(gòu)。圖12描繪了與圖11的組件相類似的組件;然而,在該示例實施例中,系統(tǒng)管理程序1204可包括微內(nèi)核組件和來自圖11的父分區(qū)1104的組件,如虛擬化服務(wù)提供者1128和設(shè)備驅(qū)動程序1124等,而管理操作系統(tǒng)1202可包含例如用于配置系統(tǒng)管理程序1204的配置實用程序。在該體系結(jié)構(gòu)中,系統(tǒng)管理程序1204可以執(zhí)行與圖11中的系統(tǒng)管理程序微內(nèi)核1102相同或相似的功能;然而,在該體系結(jié)構(gòu)中,系統(tǒng)管理程序1204可被配置成向子分區(qū)中執(zhí)行的客操作系統(tǒng)提供資源。圖12中的系統(tǒng)管理程序1204可以是獨立的軟件產(chǎn)品、操作系統(tǒng)的一部分、嵌入在主板的固件內(nèi),或者系統(tǒng)管理程序1204的一部分可以由專用集成電路來實現(xiàn)。
[0093]圖13描繪包括主存多個虛擬機的虛擬機服務(wù)器的示例系統(tǒng),每一虛擬機與客戶機進行遠(yuǎn)程呈現(xiàn)會話,客戶機使用web瀏覽器并且作為視頻來接收遠(yuǎn)程呈現(xiàn)圖形。在各實施例中,VM主機1300可被實現(xiàn)在圖11的計算機系統(tǒng)1100或圖12的計算機系統(tǒng)1200中。在這些實施例中,VM1302a VMl302b可被實現(xiàn)在圖11和12的子分區(qū)1150或1152中。
[0094]如圖所示,VM1302a和1302b各自被配置成提供與一個或多個客戶機的遠(yuǎn)程呈現(xiàn)會話,這些客戶機經(jīng)由該遠(yuǎn)程呈現(xiàn)會話接收視頻并經(jīng)由web瀏覽器進行遠(yuǎn)程呈現(xiàn)會話。例如,VM1302a和1302b中的每一個可被配置成實現(xiàn)圖3的服務(wù)器304的功能。在這些實施例中,客戶機308可連接到VM主機1300,并且VM主機可指導(dǎo)它的VM之一來提供與該客戶機的遠(yuǎn)程呈現(xiàn)會話。VM主機1300可例如基于對它所主存的每一 VM的負(fù)載進行平衡來作出這一指導(dǎo)。[0095]盡管已經(jīng)結(jié)合各附圖所示的較佳方面描述了本發(fā)明,但要理解,可使用其他相似方面或者可對所述方面進行修改或添加來執(zhí)行本發(fā)明的相同功能而不脫離本發(fā)明。因此,本發(fā)明不應(yīng)該僅限于任何單個方面,而是應(yīng)該在根據(jù)所附權(quán)利要求書的廣度和范圍內(nèi)解釋。例如,本文描述的各種過程可用硬件或軟件、或兩者的組合來實現(xiàn)。本發(fā)明可以用計算機可讀存儲介質(zhì)和/或計算機可讀通信介質(zhì)來實現(xiàn)。由此,本發(fā)明或其某些方面或部分可采用包含在諸如軟盤、CD-ROM、硬盤驅(qū)動器或任何其他機器可讀存儲介質(zhì)等有形介質(zhì)中的程序代碼(即,指令)的形式。同樣,本發(fā)明或其某些方面或部分可實現(xiàn)在傳播信號中,或任何其他機器可讀通信介質(zhì)。當(dāng)程序代碼被加載到諸如計算機等機器并由其執(zhí)行時,該機器變?yōu)楸慌渲贸蓪嵤┧_的各實施例的裝置。除了此處明確闡述的具體實現(xiàn)之外,考慮此處所公開的說明書,其他方面和實現(xiàn)將對本領(lǐng)域的技術(shù)人員是顯而易見的。說明書和所示實現(xiàn)旨在僅被認(rèn)為是示例。
【權(quán)利要求】
1.一種用于與使用web瀏覽器的客戶機進行遠(yuǎn)程呈現(xiàn)會話的方法,包括: 建立與所述客戶機的包括超文本傳輸協(xié)議(HTTP)會話的遠(yuǎn)程呈現(xiàn)會話; 確定要在所述遠(yuǎn)程呈現(xiàn)會話中發(fā)送給所述客戶機的圖形數(shù)據(jù); 將所述圖形數(shù)據(jù)編碼成視頻;以及 經(jīng)由所述HTTP會話將所述視頻發(fā)送給所述客戶機,使得所述客戶機在所述web瀏覽器中顯示所述視頻。
2.如權(quán)利要求1所述的方法,其特征在于,還包括: 從所述客戶機接收針對所述web瀏覽器的用戶輸入; 確定對應(yīng)于所述用戶輸入的應(yīng)用,所述應(yīng)用已產(chǎn)生了所述圖形數(shù)據(jù)的至少一部分;以及 將所述用戶輸入注入到所述應(yīng)用中,使得所述應(yīng)用處理與所述用戶輸入相對應(yīng)的結(jié)果。
3.如權(quán)利要求1所述的方法,其特征在于,確定要發(fā)送給所述客戶機的圖形數(shù)據(jù)的操作是由第一計算機執(zhí)行的,并且其中將所述圖形數(shù)據(jù)編碼成視頻并將所述視頻發(fā)送給所述客戶機的操作是由第二計算機執(zhí)行的,并且所述方法還包括: 在所述第一計算機和第二計算機之間建立遠(yuǎn)程呈現(xiàn)會話; 在編碼所述圖形數(shù)據(jù)之前,由所述`第二計算機并從所述第一計算機接收用遠(yuǎn)程呈現(xiàn)協(xié)議編碼的所述圖形數(shù)據(jù);以及 在將所述圖形數(shù)據(jù)編碼成視頻之前,解碼用所述遠(yuǎn)程呈現(xiàn)協(xié)議編碼的所述圖形數(shù)據(jù)以確定所述圖形數(shù)據(jù)。
4.如權(quán)利要求1所述的方法,其特征在于,將所述圖形數(shù)據(jù)編碼成視頻包括: 基于先前已將第二圖形數(shù)據(jù)編碼成第二視頻將所述圖形數(shù)據(jù)編碼成視頻。
5.如權(quán)利要求4所述的方法,其特征在于,基于先前已將第二圖形數(shù)據(jù)編碼成視頻將所述圖形數(shù)據(jù)編碼成視頻包括: 基于所述圖形數(shù)據(jù)相對于所述第二圖形數(shù)據(jù)的臟區(qū)域來編碼所述圖形數(shù)據(jù),并使用所述第二視頻的至少一部分來編碼所述圖形數(shù)據(jù)。
6.如權(quán)利要求4所述的方法,其特征在于,基于先前已將第二圖形數(shù)據(jù)編碼成視頻將所述圖形數(shù)據(jù)編碼成視頻包括: 基于在所述圖形數(shù)據(jù)中描繪的也在所述第二圖形數(shù)據(jù)中描繪的元素來編碼所述圖形數(shù)據(jù),所述元素在所述圖形數(shù)據(jù)中被描繪在與所述第二圖形數(shù)據(jù)中不同的位置,并使用所述第二視頻的至少一部分來編碼所述圖形數(shù)據(jù)。
7.如權(quán)利要求1所述的方法,其特征在于,經(jīng)由所述HTTP會話將所述視頻發(fā)送給所述客戶機,使得所述客戶機在所述web瀏覽器中顯示所述視頻包括: 經(jīng)由所述HTTP會話將所述視頻發(fā)送給所述客戶機,使得所述客戶機顯示所述視頻作為嵌入在所述web瀏覽器中所顯示的網(wǎng)頁中的視頻元素。
8.如權(quán)利要求1所述的方法,其特征在于,還包括: 在確定要在所述遠(yuǎn)程呈現(xiàn)會話中發(fā)送給所述客戶機的圖形數(shù)據(jù)之前,對經(jīng)由所述HTTP會話接收到的所述客戶機的憑證進行確認(rèn)。
9.如權(quán)利要求1所述的方法,其特征在于,還包括:接收所述圖形數(shù)據(jù)的第一部分包括文本且所述圖形數(shù)據(jù)的第二部分包括圖像或視頻的指示;以及 其中將所述圖形數(shù)據(jù)編碼成視頻包括: 基于所述圖形數(shù)據(jù)的第一部分包括文本且所述圖形數(shù)據(jù)的第二部分包括圖像或視頻的指示來將所述圖形數(shù)據(jù)編碼成視頻。
10.一種用于使用web瀏覽器來與服務(wù)器進行遠(yuǎn)程呈現(xiàn)會話的系統(tǒng),包括: 處理器; 當(dāng)所述系統(tǒng)可操作時通信地耦合到所述處理器的存儲器,所述存儲器承載處理器可執(zhí)行指令,當(dāng)所述指令由所述處理器執(zhí)行時使得所述系統(tǒng)至少執(zhí)行以下操作: 建立與所述服務(wù)器的遠(yuǎn)程呈現(xiàn)會話,所述遠(yuǎn)程呈現(xiàn)會話包括超文本傳輸協(xié)議(HTTP)會話; 經(jīng)由所述HTTP會話從所述服務(wù)器接收視頻,所述視頻包括來自在所述服務(wù)器上執(zhí)行應(yīng)用或用戶會話的圖形輸出;以及 在所述web瀏覽器中顯示所述視頻。
11.如權(quán)利要求9所述的系統(tǒng),其特征在于,所述存儲器還承載在所述處理器上執(zhí)行時使得所述處理器執(zhí)行以下 操作的處理器可執(zhí)行指令: 在經(jīng)由所述HTTP會話從所述服務(wù)器接收視頻之前,經(jīng)由所述HTTP會話向所述服務(wù)器發(fā)送憑證,所述憑證與被授權(quán)與所述服務(wù)器進行遠(yuǎn)程呈現(xiàn)會話的用戶相關(guān)聯(lián)。
【文檔編號】G06F15/16GK103597797SQ201280028279
【公開日】2014年2月19日 申請日期:2012年5月29日 優(yōu)先權(quán)日:2011年6月10日
【發(fā)明者】N·Y·阿伯多, B·A·庫馬, W·R·舒米德爾, S·桑庫拉提, K·M·馬拉迪, A·德羅爾, J·奇克, N·K·斯里尼瓦斯, T·布羅克韋 申請人:微軟公司