相關(guān)申請
本申請是申請日為2009年6月2日、申請?zhí)枮?00980159934.7(pct/us2009/045996)、發(fā)明名稱為“虛擬桌面服務(wù)”的專利申請的分案申請。本申請按照35u.s.c.119(e)要求2009年4月16日提交的、題目為virtualdesktopservices(代理案號為stsnp012p)的第61/169,879號美國臨時專利申請以及按照35u.s.c.120要求2009年5月27日提交的、題目為virtualdesktopservices(代理案號為stsnp012)的第12/473,086號美國專利申請的優(yōu)先權(quán),每個申請的全部公開內(nèi)容出于所有目的通過引用結(jié)合于此。
本發(fā)明涉及通過網(wǎng)絡(luò)提供對虛擬計算資源的訪問。
背景技術(shù):
沒有膝上計算機(jī)就旅行的或者出于某一原因而已經(jīng)無法使用其膝上計算機(jī)的商務(wù)旅行者通常不具有用于確保計算機(jī)時間的諸多選項。一個選項是讓自己利用對公共圖書館的計算機(jī)的免費(fèi)公共訪問。另一選項是對具有商務(wù)中心的辦公用品供應(yīng)店處的訪問付費(fèi)。一些專注于商務(wù)旅行的酒店具有如下專用商業(yè)中心,在該商業(yè)中心中,酒店客人可以為訪問桌面或者膝上計算機(jī)進(jìn)行付費(fèi)。所有這些選項在便利性、使用小時、高峰使用可用性和接口定制(例如個人設(shè)置)方面具有明顯不足。
考慮一個在商務(wù)出行期間抵達(dá)酒店短暫逗留的典型商業(yè)旅行者。該人通常將在他的/她的逗留期間需要訪問因特網(wǎng)服務(wù)和其他商業(yè)應(yīng)用。雖然這些應(yīng)用可以在客人的自有膝上計算機(jī)上很好地可用,但是也可能希望經(jīng)由客人的房間內(nèi)的電視提供對這樣的服務(wù)的訪問。這將允許客人利用這樣的服務(wù)而不必攜帶膝上計算機(jī)并且不會潛在地違反針對公司it設(shè)備的使用策略。
遺憾的是,經(jīng)由電視變得可用的傳統(tǒng)房間內(nèi)娛樂設(shè)施(也稱為交互電視服務(wù))通常未提供對廣泛應(yīng)用(諸如因特網(wǎng)瀏覽、商業(yè)應(yīng)用或者游戲)的訪問,盡管這些應(yīng)用中的一些應(yīng)用近來已經(jīng)變得以有限形式可用。例如交互tv系統(tǒng)可以提供web瀏覽器。然而可以使用這樣的web瀏覽器來訪問的web頁面的范圍和web內(nèi)容的類型極為有限并且確實(shí)未代表因特網(wǎng)上如今可用的最流行web站點(diǎn)。例如面向媒體的web站點(diǎn)(例如youtube或者newschannels)未正確操作使得讓用戶不能查看在線視頻內(nèi)容。在一些情況下,站點(diǎn)根本未操作或者視頻回放體驗(yàn)有不佳質(zhì)量并且經(jīng)常無音頻組成。此外,web瀏覽體驗(yàn)與使用現(xiàn)代桌面計算機(jī)的瀏覽速度相比可能經(jīng)常很慢。這可能使得在線游戲web站點(diǎn)的使用不可能或者最多響應(yīng)緩慢。簡言之,不能通過如今可用的交互電視web瀏覽服務(wù)來拜訪諸多如今存在的最流行的web站點(diǎn)。
此外,傳統(tǒng)交互電視服務(wù)完全未提供在現(xiàn)代個人計算機(jī)上普遍發(fā)現(xiàn)的廣泛的其他應(yīng)用類型(例如商業(yè)應(yīng)用,游戲、社交聯(lián)網(wǎng)系統(tǒng)、消息接發(fā)系統(tǒng)等)。這至少部分地歸因于如下事實(shí):客人房間中的相對低功率機(jī)頂盒經(jīng)常提供如下交互電視服務(wù),這些電視服務(wù)由于它們不能在機(jī)頂盒環(huán)境內(nèi)操作(錯誤的操作系統(tǒng)、不足的計算資源等)而不能提供這些類型的應(yīng)用。
技術(shù)實(shí)現(xiàn)要素:
根據(jù)本發(fā)明,提供用于提供虛擬計算服務(wù)的系統(tǒng)和方法。根據(jù)特定一類實(shí)施例,多個服務(wù)器中的每個服務(wù)器被配置成實(shí)例化和管理在服務(wù)器上運(yùn)行的多個虛擬計算機(jī)的操作。每個服務(wù)器還被配置成關(guān)聯(lián)在服務(wù)器上運(yùn)行的一個或者多個應(yīng)用與每個虛擬計算機(jī)。每個虛擬計算機(jī)包括圖形顯示部件和音頻輸出部件。圖形顯示部件被配置成生成用于一個或者多個關(guān)聯(lián)應(yīng)用的圖形顯示數(shù)據(jù)。音頻輸出部件被配置成生成用于一個或者多個關(guān)聯(lián)應(yīng)用的音頻輸出數(shù)據(jù)。每個服務(wù)器也包括一個或者多個編碼器。每個編碼器被配置成對來自虛擬計算機(jī)中的對應(yīng)一個的圖形顯示數(shù)據(jù)和音頻輸出數(shù)據(jù)編碼用于通過網(wǎng)絡(luò)傳輸,使得編碼的圖形顯示數(shù)據(jù)和編碼的音頻輸出數(shù)據(jù)同步。多個客戶端中的每個客戶端被配置成經(jīng)由網(wǎng)絡(luò)接收用于虛擬計算機(jī)中的分配的一個的編碼圖形顯示數(shù)據(jù)和編碼音頻輸出數(shù)據(jù),并且在關(guān)聯(lián)的顯示器上呈現(xiàn)分配的虛擬計算機(jī)的表示。每個客戶端包括解碼器,解碼器被配置成對編碼的圖形顯示數(shù)據(jù)和編碼的音頻輸出數(shù)據(jù)解碼,使得分配的虛擬計算機(jī)的表示的可見和可聽組成基本上同步。
根據(jù)另一類實(shí)施例,實(shí)例化多個虛擬計算機(jī)。每個虛擬計算機(jī)包括圖形顯示部件和音頻輸出部件。一個或者多個應(yīng)用與每個虛擬計算機(jī)關(guān)聯(lián)。每個虛擬計算機(jī)的圖形顯示部件被配置成生成用于一個或者多個關(guān)聯(lián)應(yīng)用的圖形顯示數(shù)據(jù)。每個虛擬計算機(jī)的音頻輸出部件被配置成生成用于一個或者多個關(guān)聯(lián)應(yīng)用的音頻輸出數(shù)據(jù)。向請求客戶端分配虛擬計算機(jī)之一。對來自分配的虛擬計算機(jī)的圖形顯示數(shù)據(jù)和音頻輸出數(shù)據(jù)編碼用于通過網(wǎng)絡(luò)向請求客戶端傳輸,使得編碼的圖形顯示數(shù)據(jù)和編碼的音頻輸出數(shù)據(jù)同步。
根據(jù)另一類實(shí)施例,接收虛擬計算機(jī)數(shù)據(jù),該虛擬計算機(jī)數(shù)據(jù)表示在遠(yuǎn)程平臺上操作的遠(yuǎn)程虛擬計算機(jī)。使用虛擬計算機(jī)數(shù)據(jù)在顯示器上呈現(xiàn)遠(yuǎn)程虛擬計算機(jī)的表示。捕獲用戶輸入數(shù)據(jù),該用戶輸入數(shù)據(jù)表示用戶與遠(yuǎn)程虛擬計算機(jī)的表示的交互。向遠(yuǎn)程虛擬計算機(jī)在其上操作的遠(yuǎn)程平臺傳輸用戶輸入數(shù)據(jù)用于呈現(xiàn)給與遠(yuǎn)程處理計算機(jī)關(guān)聯(lián)的應(yīng)用。本地呈現(xiàn)光標(biāo)表示用于與遠(yuǎn)程虛擬計算機(jī)的表示一起呈現(xiàn)。
通過參照說明書的其余部分和附圖來實(shí)現(xiàn)對本發(fā)明的性質(zhì)和優(yōu)點(diǎn)的進(jìn)一步理解。
附圖說明
圖1是本發(fā)明的實(shí)施例可以實(shí)施于其中的計算環(huán)境的簡化圖。
圖2是圖示了本發(fā)明一個具體實(shí)施例的操作的流程圖。
圖3是圖示了本發(fā)明一個具體實(shí)施例的操作的流程圖。
具體實(shí)施方式
現(xiàn)在將詳細(xì)參照本發(fā)明的如下具體實(shí)施例,這些實(shí)施例包括發(fā)明人設(shè)想的用于實(shí)現(xiàn)本發(fā)明的最佳模式。在附圖中圖示這些具體實(shí)施例的例子。雖然結(jié)合這些具體實(shí)施例來描述本發(fā)明,但是將理解并非旨在使本發(fā)明限于描述的實(shí)施例。反言之,旨在于覆蓋如可以在如所附權(quán)利要求書限定的本發(fā)明的精神和范圍內(nèi)包括的替代方案、修改和等效物。在下文描述中闡述具體細(xì)節(jié)以便提供對本發(fā)明的透徹理解。無這些具體細(xì)節(jié)中的一些或者所有細(xì)節(jié)也可以實(shí)現(xiàn)本發(fā)明。此外,可能尚未詳細(xì)描述公知特征以免不必要地模糊本發(fā)明。
本發(fā)明提供如下機(jī)制,這些機(jī)制經(jīng)由交互電視服務(wù)實(shí)現(xiàn)對任意應(yīng)用的訪問。根據(jù)本發(fā)明的各種實(shí)施例,通過提供在一個或者多個服務(wù)器上運(yùn)行的如下虛擬計算機(jī)(這里稱為“虛擬桌面”)的池來使能這樣的虛擬桌面服務(wù),可以使用顯示器(例如電視)和關(guān)聯(lián)客戶端(例如機(jī)頂盒或者stb)來訪問、查看這些虛擬計算機(jī)并且這些虛擬計算機(jī)交互。在用戶端(例如通過stb)捕獲(例如來自鍵盤、stb遙控器和/或鼠標(biāo))的并且向服務(wù)器轉(zhuǎn)發(fā)用戶輸入,并且用戶輸入用來控制向該用戶分配的虛擬桌面或者否則與該虛擬桌面交互。為求安全,可以加密該輸入流以防止偷聽者截獲個人數(shù)據(jù)。
響應(yīng)于轉(zhuǎn)發(fā)的用戶輸入在服務(wù)器上(例如向虛擬圖形顯示器和虛擬音頻設(shè)備)呈現(xiàn)虛擬桌面和在虛擬桌面上運(yùn)行的任何應(yīng)用,然后在視頻和音頻流中使用可以維持音頻和視頻流同步的多種編解碼器中的任何編解碼器對虛擬桌面和應(yīng)用編碼。向在用戶端的客戶端(例如stb)轉(zhuǎn)發(fā)編碼數(shù)據(jù)用于呈現(xiàn)于關(guān)聯(lián)顯示器上。根據(jù)具體實(shí)施例,保持從用戶輸入到在顯示器上的視覺反饋的延時充分地低(例如350毫秒以下)使得未不利地影響需要大量鼠標(biāo)或者鍵盤交互的應(yīng)用;合理地在用戶接口響應(yīng)時間的可接受限度內(nèi)。
用戶例如使用與stb關(guān)聯(lián)的遙控器經(jīng)由本地客戶端發(fā)起對分配虛擬桌面的請求。一旦分配發(fā)生,遠(yuǎn)程服務(wù)器開始對分配的桌面所生成的視頻和音頻流編碼。也就是說,計算設(shè)備的視頻和音頻硬件通常將采用的虛擬桌面實(shí)例所生成的數(shù)據(jù)被壓縮成然后通過網(wǎng)絡(luò)向客戶端傳輸?shù)臄?shù)據(jù)流。
根據(jù)一個具體實(shí)施例,向客戶端傳輸?shù)木幋a視頻包括每秒30次拍攝的虛擬桌面的視頻狀態(tài)的高清晰度(hd)分辨率“快照”。這些數(shù)據(jù)與關(guān)聯(lián)音頻流同步并且使用mpeg-2標(biāo)準(zhǔn)來壓縮。然而應(yīng)當(dāng)注意可以采用實(shí)質(zhì)上任何適當(dāng)壓縮標(biāo)準(zhǔn)而不脫離本發(fā)明的范圍。
根據(jù)一個特定實(shí)施方式,每個虛擬桌面實(shí)例對應(yīng)于x-windows服務(wù)器進(jìn)程的繼而在linux操作系統(tǒng)上操作的嵌套實(shí)例。主x-windows服務(wù)器負(fù)責(zé)創(chuàng)建每個嵌套x-windows實(shí)例。每個嵌套x-windows實(shí)例可以具有在下層linux操作系統(tǒng)上運(yùn)行的以該實(shí)例為目標(biāo)的一個或者多個應(yīng)用。例如,如果與特定桌面交互的用戶想要運(yùn)行web瀏覽器,則虛擬桌面池管理器進(jìn)程指定來自web瀏覽器的特定實(shí)例的輸出應(yīng)當(dāng)以哪個x-windows實(shí)例為目標(biāo),即web瀏覽器的操作應(yīng)當(dāng)在哪個虛擬桌面上可見和可聽。
下文討論的實(shí)施例將出于示例的目的而假設(shè)如下環(huán)境,在該環(huán)境中,客戶端實(shí)施于stb中。然而引用stb并非為了限制本發(fā)明的范圍。stb例如使用關(guān)聯(lián)遙控器或者其他更典型的機(jī)制(諸如鼠標(biāo)或者鍵盤)(該機(jī)制可以連接到stb上的usb端口或者經(jīng)由紅外線或者其他無線通信鏈路(諸如藍(lán)牙或者wifi))來捕獲來自用戶的如下輸入,該輸入表示與在用戶的電視上的虛擬桌面表示的交互。向服務(wù)器轉(zhuǎn)發(fā)stb捕獲的諸如鼠標(biāo)點(diǎn)擊、鍵盤錄入等事件,該服務(wù)器然后將它們引向已經(jīng)向該stb分配的虛擬桌面。如上文提到的那樣,可以加密stb捕獲的并且向服務(wù)器轉(zhuǎn)發(fā)的事件數(shù)據(jù)以保證用戶的諸如口令、銀行信息等個人信息受保護(hù)。根據(jù)一些實(shí)施例,在stb本地驅(qū)動鼠標(biāo)光標(biāo)在顯示器上的移動。
根據(jù)本發(fā)明的具體實(shí)施例,同步虛擬桌面所生成的音頻和視頻流,并且當(dāng)例如使用mpeg-2對兩個流編碼以用于傳輸時保留該同步,使得當(dāng)機(jī)頂盒將它們呈現(xiàn)于用戶的電視上時,在查看者看來就如同直接在他的或者她的膝上設(shè)備上直接使用應(yīng)用那樣。根據(jù)特定一類實(shí)施例,在與虛擬桌面關(guān)聯(lián)的應(yīng)用中呈現(xiàn)音頻和視頻流時捕獲它們。這并非完全簡單直接,因?yàn)橥ǔ]有將兩個流相關(guān)的可用同步信息。因此在呈現(xiàn)每個流時實(shí)時捕獲單獨(dú)音頻和視頻流并且時間戳與同時期的數(shù)據(jù)關(guān)聯(lián)。
根據(jù)一個具體實(shí)施例,以當(dāng)前時間作為虛擬桌面的虛擬圖形狀態(tài)的每個“快照”的的時間戳。類似地,使用相同參考時鐘以當(dāng)前時間作為每個音頻樣本的時間戳。這些時間戳由編碼器用來同步視頻幀和音頻幀,使得它們在由客戶端解碼和呈現(xiàn)時接近地同步。因而例如在使用mpeg-2編解碼器的實(shí)施例中,用于捕獲的音頻和視頻的時間戳用作用于mpeg-2編碼的呈現(xiàn)時間戳(也稱為pts值)。
根據(jù)一個特定實(shí)施方式,采用如下時間戳技術(shù),該技術(shù)基于按照音頻流的數(shù)據(jù)速率驅(qū)動的仿真時鐘。也就是說,由于我們知道給定量的音頻數(shù)據(jù)花費(fèi)固定長度的時間來呈現(xiàn)(即變得可聽),所以我們可以基于捕獲的數(shù)據(jù)量計算連續(xù)音頻捕獲的相對時間戳。由于我們比視頻數(shù)據(jù)頻繁得多地捕獲音頻數(shù)據(jù),所以我們以使用的最后音頻時間戳作為每個視頻捕獲的時間戳。這意味著視頻時間戳可能造成略微、但是可接受的時間抖動水平。
圖1示出了本發(fā)明的實(shí)施例可以實(shí)施于其中的計算網(wǎng)絡(luò)環(huán)境的簡化圖。在該例子中,示出第一客戶端0經(jīng)由網(wǎng)絡(luò)102來與服務(wù)器0交互以利用根據(jù)本發(fā)明的一個具體實(shí)施例實(shí)施的虛擬桌面服務(wù)。也示出了客戶端1出于相同目的經(jīng)由網(wǎng)絡(luò)102來與服務(wù)器1交互。
用于與本發(fā)明的實(shí)施例一起使用的客戶端可以實(shí)施為在stb或者相似設(shè)備上運(yùn)行的軟件,或者可以替代地直接集成到其中制造商提供用于這樣做的手段的現(xiàn)代數(shù)字電視中(例如philipsdigitalhospitalitytv)。根據(jù)一些實(shí)施例,可以用硬件(例如解碼器)實(shí)施客戶端中的至少一些軟件功能。
根據(jù)一個具體實(shí)施例,服務(wù)器0和1是在linux操作系統(tǒng)上運(yùn)行的x-windows服務(wù)器,并且客戶端0和1是能夠提供交互電視(itv)服務(wù)的機(jī)頂盒(stb)(諸如例如來自stirling,scotland的etvinteractiveltd.的stb(由saltlakecity,utah的ibahn于2007年中獲得))。
可以在任何交互電視系統(tǒng)(例如包括有線電視系統(tǒng)、衛(wèi)星電視系統(tǒng)等)中實(shí)施本發(fā)明的實(shí)施例。因此將根據(jù)用于那些上下文的適當(dāng)標(biāo)準(zhǔn)實(shí)施這樣的系統(tǒng)中的客戶端和服務(wù)器以及通信協(xié)議。此外,網(wǎng)絡(luò)102的性質(zhì)可以根據(jù)上下文而明顯變化。例如網(wǎng)絡(luò)102可以是能夠攜帶視頻和ip(因特網(wǎng)協(xié)議)數(shù)據(jù)兩者的任何網(wǎng)絡(luò)。這可以例如是基于以太網(wǎng)或者通過dsl線的iptv網(wǎng)絡(luò)、混合光纖同軸網(wǎng)絡(luò)(該網(wǎng)絡(luò)具有帶ip功能的返回路徑)(諸如現(xiàn)代有線tv運(yùn)營商使用的網(wǎng)絡(luò))、衛(wèi)星電視網(wǎng)絡(luò)、電信網(wǎng)絡(luò)或者這些網(wǎng)絡(luò)中的任何網(wǎng)絡(luò)的組合。例如衛(wèi)星電視網(wǎng)絡(luò)可以采用以下組合,該組合包括用于向用戶的機(jī)頂盒傳輸音頻和視頻數(shù)據(jù)的衛(wèi)星鏈路與用于提供ip數(shù)據(jù)的一些其他路徑(例如電話線)。這樣的組合“網(wǎng)絡(luò)”被明確地設(shè)想為在本發(fā)明的范圍內(nèi)。并且如將理解的那樣,任意數(shù)量的服務(wù)器可以根據(jù)這樣的實(shí)施例向任意數(shù)量的客戶端提供虛擬桌面服務(wù)。出于示例的目的,下文描述將著重于在客戶端0與服務(wù)器0之間的交互。
當(dāng)系統(tǒng)中的服務(wù)器(例如服務(wù)器0)初始地啟動時,執(zhí)行如下池管理器104,該管理器104讀取配置文件以確定將創(chuàng)建多少虛擬桌面實(shí)例,例如106和108。根據(jù)一個具體實(shí)施例,每個虛擬桌面包括圖形顯示的可視表示、例如x-windows服務(wù)器進(jìn)程的實(shí)例,即x.orgproject(www.x.org)提供的開源實(shí)施。每個虛擬桌面也包括音頻輸出設(shè)備(也稱為音頻宿)(例如pulseaudio聲音服務(wù)器(參見http://pulseaudio.org/))的可視表示。
當(dāng)與虛擬桌面關(guān)聯(lián)的應(yīng)用(例如應(yīng)用110-116)需要呈現(xiàn)視頻和/或音頻輸出時,它將它們呈現(xiàn)給它與之關(guān)聯(lián)的虛擬桌面的這兩個部件。池管理器104通過設(shè)置如下環(huán)境變量來將服務(wù)器上運(yùn)行的每個應(yīng)用(例如應(yīng)用110-116)與特定虛擬桌面(例如106或者108)關(guān)聯(lián),這些環(huán)境變量告知每個應(yīng)用它應(yīng)當(dāng)使用哪個圖形顯示器以及哪個音頻同步。
采用窗口管理器應(yīng)用(未示出)來管理與每個x-windows實(shí)例關(guān)聯(lián)的窗口的顯示和與這些窗口的交互。具體一組默認(rèn)應(yīng)用(例如應(yīng)用110-116)可以與每個虛擬桌面關(guān)聯(lián)。這樣的應(yīng)用包括可以在標(biāo)準(zhǔn)個人計算機(jī)或者移動計算設(shè)備上部署的實(shí)質(zhì)上任何類型的應(yīng)用,包括但不限于web瀏覽器、商業(yè)應(yīng)用、字處理應(yīng)用、游戲應(yīng)用等。
根據(jù)一些實(shí)施例,與特定虛擬桌面關(guān)聯(lián)的默認(rèn)應(yīng)用組可以涉及特定用戶類型的需要或者偏好。例如標(biāo)準(zhǔn)的業(yè)務(wù)應(yīng)用組可以在面向商業(yè)的虛擬桌面上變得可用。替代地,一組娛樂和游戲應(yīng)用可以在娛樂虛擬桌面上變得可用。如將理解的那樣,應(yīng)用和潛在應(yīng)用集的類型實(shí)質(zhì)上是無限的。
虛擬桌面實(shí)例保持于用于服務(wù)于請求的未用虛擬桌面的“自由”池中。池管理器104然后“監(jiān)聽”網(wǎng)絡(luò)業(yè)務(wù)來尋找針對虛擬桌面服務(wù)的請求。如果所有可用虛擬桌面在使用中,則池管理器104可以創(chuàng)建附加虛擬桌面實(shí)例直至一些最大可編程限制。此外,如果存在在服務(wù)器上操作的太多可用虛擬桌面,則池管理器104可以關(guān)閉一些虛擬桌面以節(jié)約計算資源。
當(dāng)與客戶端設(shè)備0關(guān)聯(lián)的用戶希望利用虛擬桌面服務(wù)時,他可以例如使用配置成與客戶端0交互的遙控器(未示出)經(jīng)由客戶端0在物理顯示器118(例如電視)上呈現(xiàn)的交互菜單來選擇該選項。如上文提到的那樣,客戶端0可以是配置成促進(jìn)itv服務(wù)的獨(dú)立stb或者相似設(shè)備。替代地,客戶端0可以與電視118集成。在圖2的流程圖中圖示了一個特定實(shí)施例的操作例子。
響應(yīng)于用戶選擇虛擬桌面服務(wù)(202),客戶端0中的桌面客戶端119向部署于網(wǎng)絡(luò)102上的配置成提供這樣的服務(wù)的多個服務(wù)器之一傳輸請求(204)。根據(jù)一個特定實(shí)施,桌面客戶端119從已知服務(wù)器列表選擇(例如隨機(jī)、依次或者以別的方式)直至它可以建立連接(206)。以該方式,可以使一個或者多個虛擬桌面服務(wù)器離線而又仍然提供虛擬桌面服務(wù)。
一旦進(jìn)行連接,池管理器104可以服務(wù)于桌面客戶端119的請求,或者如果在服務(wù)器0上無可用虛擬桌面(208),則池管理器104可以將客戶端重定向至具有可用虛擬桌面的另一服務(wù)器(例如服務(wù)器1)(210)。也就是說,系統(tǒng)中的每個池管理器維護(hù)其他服務(wù)器上可用的虛擬桌面的列表。也可以實(shí)施負(fù)載平衡機(jī)制以保證在可用計算資源之間高效劃分與提供虛擬桌面服務(wù)關(guān)聯(lián)的負(fù)載。
假設(shè)可以本地服務(wù)于桌面客戶端119的請求(208),池管理器104向客戶端0分配它的可用虛擬桌面之一(例如虛擬桌面106)(212)。由于該分配,虛擬桌面106生成的音頻和視頻流由桌面編碼器120編碼(214),并且傳輸?shù)娇蛻舳?(216)用于桌面解碼器122解碼(218),并且呈現(xiàn)于電視118上(220)。由于該分配而實(shí)例化桌面編碼器120。
根據(jù)各種實(shí)施例,桌面編碼器120和桌面解碼器122可以采用廣泛多種編碼方案中的任何編碼方案對用于虛擬桌面的音頻和視頻流編碼和解碼,只要采用的編碼方案允許維持在音頻與視頻之間的同步。同樣重要的是注意應(yīng)當(dāng)仔細(xì)以保證與虛擬顯示更新同步執(zhí)行視頻流的捕獲和編碼,以避免由于部分呈現(xiàn)的應(yīng)用輸出而在用戶的顯示器出現(xiàn)“視頻撕裂”。適當(dāng)編解碼器的例子包括但不限于h.263、h.264、mpeg-2、mpeg-4等。根據(jù)一個具體實(shí)施例,使用mpeg-2(諸多當(dāng)前可用數(shù)字電視和stb中的硬件采用的標(biāo)準(zhǔn))對音頻和視頻流編碼。然而將理解其他適當(dāng)替代在本發(fā)明的范圍內(nèi)。
當(dāng)客戶端0在請求用戶的電視上呈現(xiàn)虛擬桌面的表示時,與該虛擬桌面關(guān)聯(lián)的一個或者多個應(yīng)用(例如應(yīng)用110和112)可以表示為打開和運(yùn)行。替代地,可以向用戶呈現(xiàn)具有如下應(yīng)用圖標(biāo)的接口,用戶可以用這些應(yīng)用圖標(biāo)啟動這樣的應(yīng)用。在一些實(shí)例中,可能希望前一方式,因?yàn)闉橛脩籼峁└龠x項可以允許更穩(wěn)健和安全的系統(tǒng)操作。
可以參照圖3的流程圖理解可以根據(jù)本發(fā)明的具體實(shí)施例的處理用戶與虛擬桌面的交互的方式。回到圖1,編碼和壓縮的音頻和視頻數(shù)據(jù)由桌面解碼器122解碼并且按照某一適用幀速率(例如每秒25或者30幀)呈現(xiàn)于顯示器118上(302)。每幀表示虛擬桌面106的圖形狀態(tài)的“快照”。通過與顯示器118關(guān)聯(lián)的(一個或多個)揚(yáng)聲器或者麥克風(fēng)呈現(xiàn)(例如按照44.1kh采樣)的解碼音頻。
可以從諸如stb遙控器、多種光標(biāo)控制設(shè)備中的任何設(shè)備(例如鼠標(biāo)、處理桿等)、鍵盤、相機(jī)、游戲控制器、麥克風(fēng)等多種設(shè)備捕獲用戶與虛擬桌面的交互(304)。桌面客戶端119向池管理器104傳輸這些輸入(306),如果輸入并非僅為光標(biāo)移動(308),則該池管理器向分配的虛擬桌面(在該例子中為虛擬桌面106)提供用戶輸入信息,該用戶輸入信息然后被提供給用戶與之交互的應(yīng)用(例如110或者112)(310),導(dǎo)致對圖形表示和/或音頻同步的對應(yīng)改變(314),該圖形表示和/或音頻同步然后被傳播回到客戶端(316)以用上文描述的方式呈現(xiàn)。以該方式處理的用戶輸入類型是如下輸入,這些輸入實(shí)現(xiàn)了改變用戶與之交互的下層應(yīng)用的狀態(tài),例如鼠標(biāo)點(diǎn)擊、鍵盤輸入等。
根據(jù)特定類實(shí)施方式,關(guān)聯(lián)客戶端本地呈現(xiàn)在用戶的電視上的虛擬桌面圖像中描繪的光標(biāo)。也就是說,當(dāng)桌面客戶端119接收與光標(biāo)的移動對應(yīng)的輸入(304)(即光標(biāo)移動事件)時,它如上文針對其他輸入類型描述的那樣向池管理器104發(fā)送事件信息(306)。然而與針對光標(biāo)移動不同地處理輸入。在該情況(308)下,池管理器104經(jīng)由虛擬桌面106向下層應(yīng)用提供移動和位置(318)。虛擬桌面基于新位置關(guān)于光標(biāo)的形狀和外觀對池管理器做出響應(yīng)(320)。池管理器104然后關(guān)于光標(biāo)的形狀和外觀向桌面客戶端119做出回應(yīng)。如果來自池管理器104的響應(yīng)知識光標(biāo)的形狀和外觀尚未改變(324),則桌面客戶端119在物理顯示器118上本地呈現(xiàn)處于新位置并且具有相同外觀的光標(biāo)(326)。
另一方面,如果虛擬桌面106向池管理器104指示光標(biāo)已經(jīng)改變(324)(即由于它在下層應(yīng)用的圖形表示中的新位置),則池管理器向桌面客戶端119傳輸光標(biāo)的新外觀(例如用相同通信或者響應(yīng)于來自客戶端的請求)(328),該桌面客戶端再次在物理顯示器118上本地顯示處于新位置、但是具有新外觀的光標(biāo)(330)。使用該“邊帶信道”,光標(biāo)移動未來受到與經(jīng)過編碼器120和解碼器122的路徑關(guān)聯(lián)的完全延遲,而是仍然維持光標(biāo)關(guān)于下層應(yīng)用為的正確外觀。
根據(jù)一些實(shí)施,在與后臺的池管理器協(xié)商光標(biāo)外觀時,桌面客戶端立即呈現(xiàn)光標(biāo)移動。這在形狀更新經(jīng)由邊帶信道發(fā)生之時保持光標(biāo)運(yùn)動響應(yīng)。一旦新的光標(biāo)形狀已知,無論光標(biāo)是否已經(jīng)再次移動都在屏幕上立即更新光標(biāo)形狀。由于涉及到的時間延遲最小,所以用戶通常不會察覺是否已經(jīng)短暫地呈現(xiàn)錯誤光標(biāo)外觀。
根據(jù)一些實(shí)施例,可以提供如下機(jī)制,用戶可以通過該機(jī)制將外圍設(shè)備連接到系統(tǒng)。也就是說,可以與如下客戶端關(guān)聯(lián)提供usb端口或者其他適當(dāng)連接器(例如在stb或者關(guān)聯(lián)設(shè)備(諸如輔助面板)上),用戶可以將他自己的個人外圍設(shè)備連接到該客戶端就如同他連接到他自己的個人計算機(jī)。例如用戶可以連接存儲器設(shè)備(例如usb驅(qū)動、記憶棒等)、音樂播放器(ipod等)、數(shù)字相機(jī)、便攜打印機(jī)等。
在圖1中所示例子系統(tǒng)中,桌面客戶端119將檢測外圍設(shè)備的連接并且向池管理器104傳送該信息。池管理器104然后可以在服務(wù)器0上創(chuàng)建外圍設(shè)備的本地虛擬實(shí)例,使得用戶與之交互的應(yīng)用可以經(jīng)由遠(yuǎn)程物理外圍設(shè)備的本地虛擬實(shí)例來與該設(shè)備通信。將經(jīng)由經(jīng)過池管理器104和桌面客戶端119的另一“邊帶信道”進(jìn)行這些通信作為一系列請求和響應(yīng)。替代地,可以經(jīng)由在物理設(shè)備與應(yīng)用之間的這樣的邊帶信道進(jìn)行這些通信而未在服務(wù)器側(cè)上創(chuàng)建虛擬實(shí)例。以該方式,用戶可以上傳和下載文件和數(shù)據(jù)到他的個人外圍設(shè)備就如同他利用他自己的個人計算機(jī)那樣。
在一些實(shí)施的優(yōu)點(diǎn)之中有如下事實(shí):虛擬桌面可以按照需要可用于酒店中的任何房間內(nèi)的任何客人。這不僅方便用戶(即無需離開個人的房間或者等待計算機(jī)變得可用),也避免了使物理資源(在財產(chǎn)平方尺長度(squarefootage)以及硬件方面)專用于商業(yè)中心的創(chuàng)建和維護(hù)的需要。可以簡單地通過為每個請求創(chuàng)建附加實(shí)例來提供如在任何跟定時間的需要一樣多的虛擬桌面。
此外,本發(fā)明的實(shí)施例還具有很好地同步音頻和視頻的優(yōu)點(diǎn)。這在用戶經(jīng)由web消費(fèi)多媒體內(nèi)容時特別重要。缺乏同步在用戶查看例如來自youtube或者相似內(nèi)容提供商的視頻剪輯時是完全無法接受的。
另外,高清晰度(hd)電視和顯示器的近來廣泛部署已經(jīng)幫助使本發(fā)明的實(shí)施例在商務(wù)上可行。也就是說,標(biāo)準(zhǔn)清晰度(sd)電視和顯示器的分辨率(例如720x576或者720x480)使得通常更高分辨率的計算機(jī)接口(例如1024x768)的外觀在用sd呈現(xiàn)時看起來顆粒狀并且無吸引力。例如諸多網(wǎng)頁未被設(shè)計用于在少于800x600的屏幕上查看。對照而言,hd設(shè)備的分辨率(例如1280x720或者1920x1080)多于足以用清晰而有吸引力的方式呈現(xiàn)計算機(jī)界面。
本發(fā)明的實(shí)施例也允許為個人用戶和/或組織提供定制的計算資源和應(yīng)用的能力。例如可以針對不同類型的用戶提供以各種方式定制的不同類型的虛擬桌面??梢蕴峁┌ㄖT如字處理、電子表格、演示創(chuàng)建等標(biāo)準(zhǔn)商業(yè)或者辦公室應(yīng)用的商業(yè)桌面??梢蕴峁┌ǜ鞣N類型的游戲軟件的娛樂桌面。在特定背景中的實(shí)施方式可以提供該背景特有的應(yīng)用和/或引擎、例如在接待背景中的旅行社預(yù)約引擎??梢栽谟糜谔囟ㄓ脩舻奶摂M桌面中存儲和提供定制設(shè)置、偏好、應(yīng)用集等,使得對應(yīng)地增強(qiáng)每個用戶的體驗(yàn)和/或遵守針對用戶組織的策略。
雖然已經(jīng)參照本發(fā)明的具體實(shí)施例具體示出和描述本發(fā)明,但是本領(lǐng)域技術(shù)人員將理解可以做出對公開的實(shí)施例在形式和細(xì)節(jié)上的改變而未脫離本發(fā)明的精神或者范圍。例如這里已經(jīng)參照接待行業(yè)的上下文,其中可以實(shí)施本發(fā)明的實(shí)施例以向酒店客人提供虛擬桌面服務(wù)。然而將理解本發(fā)明并不限于這樣的上下文。實(shí)際上,可以在其中可以提供交互電視服務(wù)的任何上下文中實(shí)施本發(fā)明的實(shí)施例。因此例如可以在有線電視和衛(wèi)星電視系統(tǒng)兩者中提供根據(jù)本發(fā)明實(shí)施的虛擬桌面服務(wù)。
此外可以用廣泛多種方式實(shí)施這里描述的功能而未脫離本發(fā)明的范圍。例如可以使用在與執(zhí)行這里描述的功能的特定計算設(shè)備關(guān)聯(lián)的物理存儲器(例如任何類型的ram或者rom)中存儲的計算機(jī)程序指令來實(shí)施在此描述的功能。可以被適配用于這樣的目的的為本領(lǐng)域技術(shù)人員所知的各種計算和編程工具和語言中的任何工具和語言都在本發(fā)明的范圍內(nèi)。替代地,可以使用諸如可編程邏輯設(shè)備、現(xiàn)場可編程門陣列、專用集成電路等其他類型的硬件來實(shí)施至少一些描述的功能。同樣,適當(dāng)替代將為本領(lǐng)域技術(shù)人員所清楚。
最后,雖然這里已經(jīng)參照各種實(shí)施例討論本發(fā)明的各種優(yōu)點(diǎn)、方面和目的,但是將理解引用這樣的優(yōu)點(diǎn)、方面和目的不應(yīng)限制本發(fā)明的范圍。實(shí)際上,應(yīng)當(dāng)參照所附權(quán)利要求書來確定本發(fā)明的范圍。