亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于云計(jì)算節(jié)點(diǎn)的遠(yuǎn)程交互方法

文檔序號(hào):7713608閱讀:95來源:國知局
專利名稱:一種基于云計(jì)算節(jié)點(diǎn)的遠(yuǎn)程交互方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種基于云計(jì)算的遠(yuǎn)程交互方法,涉及計(jì)算機(jī)、網(wǎng)絡(luò)、流媒體等多個(gè)技術(shù)領(lǐng)域。
背景技術(shù)
云計(jì)算指IT基礎(chǔ)設(shè)施的交付和使用模式,指通過網(wǎng)絡(luò)以按需、易擴(kuò)展的方式獲得所需資源;廣義云計(jì)算指服務(wù)的交付和使用模式,指通過網(wǎng)絡(luò)以按需、易擴(kuò)展的方式獲得所需服務(wù)。這種服務(wù)可以是IT和軟件、互聯(lián)網(wǎng)相關(guān),也可是其他服務(wù)。云計(jì)算(CloudComputing)是網(wǎng)格計(jì)算(Grid Computing )、分布式計(jì)算(DistributedComputing)、并行計(jì)算(Parallel Computing)、效用計(jì)算(Utility Computing)、網(wǎng)絡(luò)存儲(chǔ)(Network StorageTechnologies)、虛擬化(Virtualization)、負(fù)載均衡(Load Balance)等傳統(tǒng)計(jì)算機(jī)和網(wǎng)絡(luò)技術(shù)發(fā)展融合的產(chǎn)物。
在云計(jì)算系統(tǒng)中執(zhí)行交互式程序的ー個(gè)問題在于,交互式程序可能被設(shè)計(jì)為僅被用戶在其所運(yùn)行的計(jì)算機(jī)上通過本地交互設(shè)備來進(jìn)行交互。亦即用戶的交互行動(dòng)依賴于本地計(jì)算機(jī)上的交互設(shè)備(如鍵盤,鼠標(biāo),顯示器等)。這意味著在特定的時(shí)刻,云系統(tǒng)中ー個(gè)計(jì)算節(jié)點(diǎn)最多只能為單個(gè)用戶提供服務(wù)。對(duì)大規(guī)模的云計(jì)算系統(tǒng)而言,其總建設(shè)成本和單計(jì)算節(jié)點(diǎn)的成本密切相關(guān)。通常地,如附圖I所示,硬件設(shè)備的性能/價(jià)格比在一定范圍內(nèi)隨著性能的提高而増加,同時(shí),較高的性能也有助于計(jì)算節(jié)點(diǎn)能承受程序更嚴(yán)格的性能要求。然而高性能同時(shí)也意味著成本的提高,并存在兩個(gè)問題1.對(duì)于交互式行為的應(yīng)用程序的計(jì)算節(jié)點(diǎn)而言,通常程序?qū)?jié)點(diǎn)的計(jì)算能力的使用在時(shí)間上是不平均的。例如在一個(gè)三維建模的應(yīng)用中,用戶輸入數(shù)據(jù)的過程(低計(jì)算資源占用)可能占到使用時(shí)間的大部分而渲染過程(高計(jì)算資源占用)只占短時(shí)間,因此多數(shù)時(shí)間內(nèi)計(jì)算資源被閑置;2.交互式應(yīng)用程序的計(jì)算資源使用實(shí)際達(dá)不到硬件性能的上限,這在交互式PC游戲中尤其明顯。由于PC游戲往往設(shè)計(jì)成在達(dá)到一定的用戶體驗(yàn)要求時(shí)只需消耗一定限度的計(jì)算資源,并且往往為了適應(yīng)較多不同型號(hào)硬件設(shè)備而限制資源的消耗。因此在現(xiàn)有的云計(jì)算服務(wù)體系中,交互式PC游戲的用戶體驗(yàn)被限制在一定的水平上,因此也就限制的硬件資源的消耗,最終的結(jié)果是,購置更多計(jì)算資源所付出的硬件設(shè)備成本被浪費(fèi)。除此之外,單個(gè)計(jì)算節(jié)點(diǎn)還具有額外的固定成本,例如總線設(shè)備(主板),存儲(chǔ)設(shè)備,電源和外売,以及為了放置計(jì)算節(jié)點(diǎn)的空間成本等。可以看到,當(dāng)云計(jì)算系統(tǒng)每個(gè)用戶的服務(wù)成本和計(jì)算節(jié)點(diǎn)的成本相關(guān)時(shí),通過減少單計(jì)算節(jié)點(diǎn)的硬件成本的方法能降低的用戶服務(wù)成本是非常有限的。顯然地,有效地下降單用戶成本的方案是使單個(gè)計(jì)算節(jié)點(diǎn)可以同時(shí)為多個(gè)用戶服務(wù)。但如前所述,交互式應(yīng)用程序需要獨(dú)占計(jì)算節(jié)點(diǎn)上的交互設(shè)備來運(yùn)行。虛擬化(Virtualization)技術(shù)提供了ー個(gè)可能的實(shí)現(xiàn)方式。然而,虛擬化的問題是,使用這ー技術(shù)將帶來額外的硬件資源的開銷,特別是圖形處理器(GPU)的性能往往會(huì)遭到顯著的損失,并存在硬件支持上的缺陷。對(duì)于以提供windows應(yīng)用程序?yàn)橹鞯脑朴?jì)算服務(wù)系統(tǒng)而言,虛擬化技術(shù)將增加計(jì)算節(jié)點(diǎn)上運(yùn)行的windows操作系統(tǒng)數(shù)量進(jìn)而提高授權(quán)費(fèi)用;虛擬化技木本身和windows操作系統(tǒng)的結(jié)合也并不非常成熟。此外,在某些應(yīng)用程序例如第一人稱視角的PC游戲中,允許鼠標(biāo)向ー個(gè)特定方向作無限的移動(dòng)(對(duì)應(yīng)于視角的不斷轉(zhuǎn)動(dòng))。但由Flash實(shí)現(xiàn)的客戶終端只能在ー個(gè)有限的矩形范圍內(nèi)接收的鼠標(biāo)操作,當(dāng)鼠標(biāo)向ー個(gè)方向移動(dòng)導(dǎo)致指針移動(dòng)到矩形的邊緣時(shí),后續(xù)的移動(dòng)將無法再被檢測(cè)到。

發(fā)明內(nèi)容
為了解決上述技術(shù)問題,本發(fā)明提供一種基于云計(jì)算節(jié)點(diǎn)的遠(yuǎn)程交互方法,其特征在于包括以下步驟在交互方的一端的呈現(xiàn)畫面上的特定位置單獨(dú)劃出;利用視頻編碼器將其轉(zhuǎn)換為ー個(gè)視頻流,通過輔助信息流傳輸?shù)浇换サ牧硪欢?;將呈現(xiàn)畫面的整體進(jìn)行 用原分辨率顯示,而將所述呈現(xiàn)畫面縮放至與該交互方的另一端所使用的顯示設(shè)備相適應(yīng)的分辨率進(jìn)行顯示,所述單獨(dú)劃出的部分至于最上層顯示。所述呈現(xiàn)畫面或者單獨(dú)劃出的畫面被分割為多個(gè)部分,每個(gè)部分都被分別編碼成一個(gè)單獨(dú)的視頻流傳輸,由解碼模塊解碼后,再由重現(xiàn)模塊將分割的畫面拼合并顯示出來,其中所述單獨(dú)劃分的畫面以更高的帶寬傳輸。在視頻編碼器將畫面轉(zhuǎn)換為一個(gè)視頻流之前;改變函數(shù)的操作系統(tǒng)應(yīng)用程序接ロAPI的功能調(diào)用入口位置;當(dāng)應(yīng)用程序執(zhí)行之后,程序調(diào)用操作系統(tǒng)API時(shí),將被修改的函數(shù)地址跳轉(zhuǎn)到重定向的函數(shù)地址。


圖I是大規(guī)模云計(jì)算系統(tǒng)的硬件設(shè)備的性能/價(jià)格比例示意 圖2是基于云計(jì)算節(jié)點(diǎn)的遠(yuǎn)程交互式系統(tǒng)的架構(gòu);
圖3是基于云計(jì)算節(jié)點(diǎn)的遠(yuǎn)程交互式系統(tǒng)的模塊 圖4是基于云計(jì)算節(jié)點(diǎn)的遠(yuǎn)程交互式系統(tǒng)的層次 圖5是微環(huán)境的一種實(shí)施方式的示意 圖6是微環(huán)境下重定向示意 圖7是本發(fā)明中鼠標(biāo)信息交互示意 圖8是本發(fā)明中對(duì)畫面進(jìn)行流水線處理的示意 圖9是云計(jì)算節(jié)點(diǎn)的遠(yuǎn)程交互式系統(tǒng)訪問網(wǎng)絡(luò)文件的示意 圖10是交互信息在不同用戶之間分發(fā)的示意 圖11是本發(fā)明關(guān)于視頻編解碼的示意 圖12是本發(fā)明“展示墻”的示意 圖13是本發(fā)明對(duì)有限的矩形范圍內(nèi)接收的鼠標(biāo)操作的處理方式的示意 圖14是使用云計(jì)算遠(yuǎn)程交互程序服務(wù)的用戶所執(zhí)行的工作流程 圖15是分布式的計(jì)算服務(wù)節(jié)點(diǎn)陣列的部署圖。
具體實(shí)施例方式圖2和圖3列出了一個(gè)基于云計(jì)算節(jié)點(diǎn)的遠(yuǎn)程交互式系統(tǒng)的架構(gòu)。其包括終端設(shè)備,web前端、安全網(wǎng)關(guān)。所述終端設(shè)備可以是PC,移動(dòng)終端或者電視機(jī)頂盒等任何計(jì)算能力足夠勝任解碼標(biāo)清或高清H. 264視頻流的設(shè)備。所述安全網(wǎng)關(guān)包括ー個(gè)或多個(gè)服務(wù)節(jié)點(diǎn),終端設(shè)備首先訪問云計(jì)算的系統(tǒng)的前端,通過驗(yàn)證后取得連接安全網(wǎng)關(guān)內(nèi)某一服務(wù)節(jié)點(diǎn)的權(quán)限;設(shè)備隨后使用這ー權(quán)限和云計(jì)算系統(tǒng)內(nèi)特定的服務(wù)節(jié)點(diǎn)連接。通過ー個(gè)特定的由硬件、軟件,或其結(jié)合來實(shí)現(xiàn)的平臺(tái)或環(huán)境(下面簡(jiǎn)稱“微環(huán)境”)來實(shí)現(xiàn)上述功能,以windows操作系統(tǒng)為例,可以為其它的windows應(yīng)用程序虛擬其對(duì)用戶交互系統(tǒng)的使用,從而使單個(gè)運(yùn)行windows操作系統(tǒng)的計(jì)算節(jié)點(diǎn)可以同時(shí)服務(wù)于多個(gè)用戶。相對(duì)于其他方案,微環(huán)境有下列優(yōu)勢(shì)
微環(huán)境使得多個(gè)用戶同時(shí)利用計(jì)算節(jié)點(diǎn)的資源(包括單個(gè)操作系統(tǒng)本身的軟件資源在內(nèi))成為可能。
被執(zhí)行的應(yīng)用程序以幾乎原生的方式訪問硬件資源(特別是圖形處理器資源)。微環(huán)境并不改變所執(zhí)行的應(yīng)用程序的ニ進(jìn)制代碼。本發(fā)明中,在服務(wù)節(jié)點(diǎn)內(nèi),一個(gè)微環(huán)境為用戶啟動(dòng)指定的應(yīng)用服務(wù),所述服務(wù)可以包括應(yīng)用程序在內(nèi)的所有服務(wù),應(yīng)用程序的界面和音頻輸出通過微環(huán)境轉(zhuǎn)換為視頻和音頻流,以及ー個(gè)(可選的)數(shù)據(jù)量很小的附加信息流通過互聯(lián)網(wǎng)傳遞給終端。用戶在使用終端設(shè)備上接收到上述視頻和音頻流以及(可選的)附加信息流后,通過設(shè)備的交互硬件(鍵盤,鼠標(biāo),遙控器,游戲控制器等)發(fā)送控制數(shù)據(jù)到計(jì)算服務(wù)節(jié)點(diǎn)的微環(huán)境,微環(huán)境將此控制數(shù)據(jù)作為所運(yùn)行的應(yīng)用程序接收的用戶交互數(shù)據(jù)。從而完成了ー個(gè)交互的過程。微環(huán)境的實(shí)現(xiàn)在操作系統(tǒng)層次,介于應(yīng)用程序與系統(tǒng)API或者網(wǎng)絡(luò)之間,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,雖然這里使用了 “微環(huán)境”這ー術(shù)語,但是應(yīng)當(dāng)將其擴(kuò)展地理解為能夠由硬件、軟件來實(shí)現(xiàn)的ー個(gè)功能結(jié)構(gòu)體,或者一個(gè)處理単元??紤]ー個(gè)任意的應(yīng)用程序,為了和計(jì)算機(jī)上的硬件交互設(shè)備進(jìn)行交互,應(yīng)用程序必須通過操作系統(tǒng)提供的接ロ訪問硬件驅(qū)動(dòng),進(jìn)而控制硬件。(如圖4左方)微環(huán)境包括ー個(gè)函數(shù)地址監(jiān)測(cè)模塊,用于檢測(cè)內(nèi)存中應(yīng)用程序的函數(shù)地址變量,以及ー個(gè)函數(shù)地址重定向模塊,用于改變應(yīng)用程序的內(nèi)存中存儲(chǔ)的函數(shù)地址變量,以及ー個(gè)地址保存模塊,用于保存重新被定向的函數(shù)地址;以及包含多個(gè)接ロ,用干與實(shí)現(xiàn)與計(jì)算機(jī)硬件以及windows應(yīng)用程序接ロ之間的通信,例如程序界面,畫面渲染,音頻輸出和控制信息(鍵盤,鼠標(biāo)等信息)的輸入。通過改變應(yīng)用程序的內(nèi)存中存儲(chǔ)的函數(shù)地址變量,使應(yīng)用程序?qū)Σ僮飨到y(tǒng)接ロ的訪問重定向到微環(huán)境提供的接ロ而不再和實(shí)際的PC系統(tǒng)的硬件層或硬件驅(qū)動(dòng)接觸(如圖4右方)。對(duì)于應(yīng)用程序而言,微環(huán)境提供了和操作系統(tǒng)相同的接口和響應(yīng)行為。因此在微環(huán)境中執(zhí)行并不會(huì)影響其正常的工作流程。而微環(huán)境則獲得了應(yīng)用程序和用戶的交互數(shù)據(jù),包括程序界面,畫面渲染,音頻輸出和控制信息(鍵盤,鼠標(biāo)等信息)的輸入。微環(huán)境可以在云計(jì)算系統(tǒng)所實(shí)現(xiàn),并和視頻/音頻壓縮模塊和網(wǎng)絡(luò)模塊相連接,從而將應(yīng)用程序的界面和渲染數(shù)據(jù)轉(zhuǎn)換成視頻/音頻流,經(jīng)網(wǎng)絡(luò)模塊傳送到互聯(lián)網(wǎng)上的其它終端(云計(jì)算服務(wù)的用戶)。同樣,終端的用戶交互信息通過互聯(lián)網(wǎng)到達(dá)微環(huán)境后,代替了原來由計(jì)算節(jié)點(diǎn)上的交互設(shè)備所發(fā)送的用戶交互信息傳達(dá)給應(yīng)用程序,最終實(shí)現(xiàn)通過互聯(lián)網(wǎng)在遠(yuǎn)程計(jì)算機(jī)(云計(jì)算服務(wù)節(jié)點(diǎn))上執(zhí)行交互式應(yīng)用程序的目的。圖5顯不了微環(huán)境的另一種通用的實(shí)施方式。以windows操作系統(tǒng)為例,微環(huán)境的實(shí)現(xiàn)機(jī)制結(jié)合windows系統(tǒng)特有的動(dòng)態(tài)鏈接庫(DLL)工作模式和獨(dú)立的進(jìn)程空間機(jī)制。在操作系統(tǒng)中,微環(huán)境可進(jìn)ー步包含多個(gè)進(jìn)程,所述進(jìn)程和客戶端連接,由客戶端請(qǐng)求執(zhí)行特定的請(qǐng)求,所述請(qǐng)求可以是應(yīng)用程序或者發(fā)送或者接收的數(shù)據(jù)。微環(huán)境隨后將上述請(qǐng)求載入內(nèi)存,在上述請(qǐng)求實(shí)際執(zhí)行之前,微環(huán)境利用動(dòng)態(tài)鏈接庫的工作方式將重定向模塊(以DLL的形式)加載進(jìn)應(yīng)用程序的進(jìn)程空間,并在應(yīng)用程序進(jìn)程的內(nèi)存空間中修改應(yīng)用程序已載入的執(zhí)行代碼?;蛘邽榱斯?jié)省PC機(jī)硬件的資源,微環(huán)境直接利用自身的重定向硬件模塊修改上述請(qǐng)求中所包含的函數(shù)地址變量,以改變函數(shù)的操作系統(tǒng)應(yīng)用程序接ロ API的功能調(diào)用入口位置。當(dāng)應(yīng)用程序執(zhí)行之后,程序調(diào)用操作系統(tǒng)API時(shí),重定向模塊將被修改的函數(shù)地址跳轉(zhuǎn)到重定向模塊所存儲(chǔ)的函數(shù)地址。重定向模塊和在其它進(jìn)程中運(yùn)行的微環(huán)境主體通過特定的通訊隧道連接,將程序執(zhí)行時(shí)的交互式內(nèi)容輸出到微環(huán)境進(jìn)程中,經(jīng)過處理后最終通過網(wǎng)絡(luò)發(fā)送到客戶端。
圖6顯示了應(yīng)用程序進(jìn)程的內(nèi)存空間中系統(tǒng)API經(jīng)過修改后被調(diào)用時(shí)的典型工作流程通過修改內(nèi)存數(shù)據(jù),API入口函數(shù)最開頭的機(jī)器指令被修改為一條跳轉(zhuǎn)指令,跳轉(zhuǎn)到微環(huán)境加載的重定向模塊所提供的接ロ函數(shù)入口。從而使應(yīng)用程序?qū)ο到y(tǒng)API的使用首先被重定向到微環(huán)境重定向模塊中。微環(huán)境的接ロ函數(shù)接收了應(yīng)用程序調(diào)用系統(tǒng)API時(shí)的所有參數(shù),此后可以使用下述方式之一獲取應(yīng)用程序的交互信息
I)應(yīng)用程序調(diào)用系統(tǒng)API時(shí)傳入的參數(shù)就包含了所需的交互信息,例如對(duì)鼠標(biāo)指針的定位,文件訪問的路徑參數(shù)等。2)微環(huán)境使用獲得的參數(shù),代替應(yīng)用程序調(diào)用其原本所需調(diào)用的系統(tǒng)API。如圖5所示,微環(huán)境中可以首先執(zhí)行原API中被修改部分的內(nèi)存的指令,再從原API中內(nèi)存被修改部分之后開始執(zhí)行直到API函數(shù)結(jié)束,即完成ー個(gè)API的調(diào)用過程,并從API調(diào)用后返回的結(jié)果數(shù)據(jù)中取得應(yīng)用程序的交互信息,例如被渲染的程序界面畫面等。這些信息微環(huán)境接ロ函數(shù)結(jié)束,交還給應(yīng)用程序前,可以首先被輸出到微環(huán)境的導(dǎo)出模塊。3)應(yīng)用程序?qū)ο到y(tǒng)API的使用往往和硬件設(shè)備有夫,特定的硬件(或硬件驅(qū)動(dòng))可以由微環(huán)境實(shí)現(xiàn)并直接和導(dǎo)出模塊連接。通過修改API調(diào)用的參數(shù),微環(huán)境可以將應(yīng)用程序?qū)δ硞€(gè)硬件設(shè)備的訪問轉(zhuǎn)交給此和導(dǎo)出模塊連接的特定的硬件(或驅(qū)動(dòng))進(jìn)行,從而得到應(yīng)用程序從硬件設(shè)備中輸出的信息。例如音頻信息的導(dǎo)出。微環(huán)境將應(yīng)用程序?qū)τ布L問重定向的功能還具有更多的作用,將在后面闡述。微環(huán)境的導(dǎo)入模塊工作流程和導(dǎo)出模塊類似微環(huán)境接ロ函數(shù)從導(dǎo)入模塊中得到需要的信息,通過應(yīng)用程序調(diào)用API時(shí)傳入的參數(shù)或返回值等傳遞給應(yīng)用程序。進(jìn)ー步參見附圖3,在微環(huán)境中,交互所包含的所有信息被分別處理,并最終通過不同的信息流,傳送到客戶端程序,在該實(shí)施方式中,微環(huán)境包括但不限于以下模塊聲音導(dǎo)出模塊、界面導(dǎo)出模塊、其他信息導(dǎo)出模塊、以及輸入導(dǎo)入模塊。以PC游戲?yàn)槔?,游戲的畫面被界面?dǎo)出模塊轉(zhuǎn)換為視頻流輸出,背景音樂和效果音聲音導(dǎo)出模塊轉(zhuǎn)換為音頻流輸出。此外為了實(shí)現(xiàn)用戶交互的功能,ー些額外的信息例如應(yīng)用程序中光標(biāo)的位置和樣式等也被信息導(dǎo)出模塊從ー個(gè)獨(dú)立的信息流通道輸出。在用戶客戶端接收到的交互信息則被傳送到輸入導(dǎo)入模塊,并轉(zhuǎn)換為應(yīng)用程序?qū)嶋H獲得的鼠標(biāo)和鍵盤消息等內(nèi)容。
更進(jìn)一歩,微環(huán)境重定向模塊包含一系列操作系統(tǒng)調(diào)用的接ロ,包括但不限于以下類型
圖形顯示接ロ,包括Windows⑶I和DirectX。在最近幾年中,絕大部分的PC游戲利用DirectX接ロ渲染其執(zhí)行過程中全部的畫面。音頻播放接ロ,例如DirectSound或者即windows媒體設(shè)備接ロ(MultimediaDevice API)。輸入/輸出接ロ,包括Direct Input和鍵盤/鼠標(biāo)消息接ロ。存儲(chǔ)和應(yīng)用程序上下文接ロ,包括文件訪問API,注冊(cè)表訪問API,環(huán)境變量和內(nèi)核對(duì)象等。微環(huán)境重定向的這些接ロ使多個(gè)相同的應(yīng)用程序在 同一操作系統(tǒng)下執(zhí)行時(shí)可以避免資源使用的沖突問題。微環(huán)境還可以記錄單元,用于記錄和保留這些上下文信息,從而為應(yīng)用程序下一次從當(dāng)前上下文信息執(zhí)行作準(zhǔn)備。由于微環(huán)境可以代替應(yīng)用程序進(jìn)行系統(tǒng)API的調(diào)用。因此當(dāng)應(yīng)用程序需要使用硬件資源時(shí),微環(huán)境并不需要模擬所有的硬件響應(yīng)。在實(shí)際的系統(tǒng)中,微環(huán)境中各導(dǎo)出模塊對(duì)應(yīng)用程序的請(qǐng)求在進(jìn)行必要的處理后,通常都會(huì)將應(yīng)用程序?qū)τ布Y源(通過實(shí)際的系統(tǒng)函數(shù)接ロ)的訪問定向回原有的位置來。實(shí)際上應(yīng)用程序在微環(huán)境內(nèi)和原來的工作方式相比,只多出兩步跳轉(zhuǎn)指令和微環(huán)境中所需的額外的操作,這和虛擬化技術(shù)相比具有少得多的開銷,可以認(rèn)為非常接近于原生的工作方式。雖然Windows操作系統(tǒng)已經(jīng)可以支持多組硬件資源同時(shí)工作,例如多核心的CPU和多GPU。但操作系統(tǒng)對(duì)資源的自動(dòng)調(diào)度仍局限于CPU上,而并不會(huì)自動(dòng)調(diào)度和分配其它硬件(特別是GPU)的計(jì)算能力。例如即使計(jì)算節(jié)點(diǎn)上部署多個(gè)GPU,一般的應(yīng)用程序往往只使用操作系統(tǒng)中被指定為“主GPU”的設(shè)備進(jìn)行3D畫面的渲染。即使應(yīng)用程序可以訪問到全部GPU設(shè)備的信息并且能通過用戶的指令選擇某個(gè)GPU設(shè)備,當(dāng)計(jì)算節(jié)點(diǎn)上運(yùn)行多個(gè)應(yīng)用程序吋,對(duì)每個(gè)用戶而言,選擇適當(dāng)?shù)腉PU設(shè)備也是不可能的。利用微環(huán)境界面導(dǎo)出模塊對(duì)DirectX接ロ的重定向,微環(huán)境可以在多個(gè)計(jì)算節(jié)點(diǎn)(或服務(wù)節(jié)點(diǎn))的多個(gè)GPU設(shè)備間為某個(gè)特定的應(yīng)用程序分配合適的GPU資源。即選擇當(dāng)前具有足夠的空閑計(jì)算能力的GPU設(shè)備,并對(duì)這些GPU設(shè)備賦予不同的資源占用來完成ー特定計(jì)算。為此,微環(huán)境中進(jìn)ー步包含ー記錄模塊,用于記錄當(dāng)前在其中執(zhí)行的所有應(yīng)用程序?qū)PU資源的使用情況,進(jìn)ー步,其還包含ー監(jiān)視模塊,用于監(jiān)視GPU的工作狀態(tài),以便為下一個(gè)執(zhí)行的應(yīng)用程序分配適合的GPU設(shè)備,也就是說,每ー計(jì)算節(jié)點(diǎn)(或服務(wù)節(jié)點(diǎn))的GPU都可能被分配參與與該計(jì)算節(jié)點(diǎn)無關(guān)的計(jì)算,所述監(jiān)視模塊的一個(gè)實(shí)施方式是基于讀取標(biāo)準(zhǔn)的系統(tǒng)接口和驅(qū)動(dòng)接ロ的實(shí)時(shí)參數(shù)來監(jiān)視其工作狀態(tài)。聲音導(dǎo)出模塊對(duì)應(yīng)用程序音頻的重定向輸出實(shí)現(xiàn)于硬件驅(qū)動(dòng)層面。微環(huán)境在介入前已以硬件驅(qū)動(dòng)的形式實(shí)現(xiàn)多個(gè)(虛擬的)音頻渲染和播放設(shè)備。應(yīng)用程序?qū)σ纛l播放接ロ的調(diào)用由虛擬設(shè)備實(shí)現(xiàn)后壓縮為音頻流通過互聯(lián)網(wǎng)輸出到遠(yuǎn)程用戶的計(jì)算機(jī)。在正常情況下,多個(gè)應(yīng)用程序同時(shí)運(yùn)行時(shí),每個(gè)程序的音頻輸出將被混合并同時(shí)輸出于系統(tǒng)的音頻設(shè)備。另ー方面,微環(huán)境可以為其中每個(gè)執(zhí)行的應(yīng)用程序分配這些虛擬音頻設(shè)備的其中之一,使不同應(yīng)用程序的音頻輸出得以成為獨(dú)立的音頻流并通過不同微環(huán)境的音頻通道進(jìn)行傳送。在畫面和音頻內(nèi)容之外,應(yīng)用程序?yàn)榱撕陀脩粽_地交互所需的其它信息也由其它信息導(dǎo)出模塊所收集并通過輔助通道傳送到客戶端。例如,當(dāng)前應(yīng)用程序中鼠標(biāo)指針的實(shí)際位置需要傳送到客戶端,以便在客戶端屏幕上準(zhǔn)確地顯示其的位置和其它信息。鼠標(biāo)指針是交互式的windows程序中最為常見的元素。從圖7可以看到,在和遠(yuǎn)程的應(yīng)用程序交互時(shí),任何對(duì)鼠標(biāo)指針的交互操作都需要通過網(wǎng)絡(luò)傳輸?shù)玫剑憫?yīng)后才能顯示回用戶客戶端。這意味著用戶在客戶端移動(dòng)鼠標(biāo)指針時(shí),將觀察到一個(gè)和網(wǎng)絡(luò)延時(shí)(TTL)相當(dāng)?shù)难舆t。我們觀察到,用戶對(duì)移動(dòng)鼠標(biāo)指針的延遲是非常敏感的;但相對(duì)地,在點(diǎn)擊屏幕上特定元素時(shí),用戶的對(duì)延遲的容忍度則大得多。因此,微環(huán)境中并不直接將光標(biāo)的信息合并到程序界面內(nèi)作為視頻信息流來傳輸。而是通過輔助信息流傳送鼠標(biāo)指針的信息并在客戶端直接繪制出來。當(dāng)用戶移動(dòng)鼠標(biāo)指針時(shí),客戶端本地將首先響應(yīng)鼠標(biāo)移動(dòng)的事件并重畫鼠標(biāo)指針,并同時(shí)將此事件通過控制信息傳送到遠(yuǎn)程執(zhí)行的應(yīng)用程序。這一次策略消除了移動(dòng)鼠標(biāo)指針時(shí)可覺察的延遲。網(wǎng)絡(luò)延時(shí)導(dǎo)致的延遲僅發(fā)生在鼠標(biāo)指針的移動(dòng)導(dǎo)致程序界面發(fā)生特定的響應(yīng)的過程中。而如前述,這一延遲能為多數(shù)用戶所容忍。指定特定的遠(yuǎn)程應(yīng)用程序可能要求較高的屏幕分辨率而客戶端屏幕可能無法滿足此要求,這在移動(dòng)終端等設(shè)備上尤為常見。在此情況下,和界面導(dǎo)出模塊耦合的縮放模塊 會(huì)將應(yīng)用程序的輸出界面縮小到客戶端屏幕可接受的范圍并輸出為視頻流。在界面被縮小之后,界面上原有的部分元素,特別是文字內(nèi)容等,可能會(huì)由于縮小而失去其可讀性。此時(shí),ー個(gè)額外的應(yīng)用程序?qū)⒃谖h(huán)境內(nèi)啟動(dòng),這ー程序訪問界面導(dǎo)出器的接ロ,將程序界面上特定位置(通常以是鼠標(biāo)指針?biāo)赶虻奈恢脼橹行牡囊粋€(gè)小的方形區(qū)域)的畫面(保持其原有的大小)單獨(dú)劃出,利用視頻編碼器將其轉(zhuǎn)換為一個(gè)較小的視頻流,通過輔助信息流傳輸?shù)娇蛻舳?如圖7),即不在正常的視頻流部分編碼;正常的視頻流可以用于編碼整個(gè)圖像。這ー視頻流在客戶端解碼后,重現(xiàn)模塊將其以和遠(yuǎn)程應(yīng)用程序上相同的分辨率顯示,并疊加于客戶端屏幕所顯示的(已被縮小了的)程序界面畫面上。用戶可以通過鼠標(biāo)指針的移動(dòng)等操作,從此疊加的放大畫面上閱讀到縮小后無法識(shí)別的畫面元素??蛻舳酥噩F(xiàn)模塊將單獨(dú)劃出的部分用原分辨率顯示,而將所述呈現(xiàn)畫面縮放至與該客戶端所使用的顯示設(shè)備相適應(yīng)的分辨率進(jìn)行顯示,所述單獨(dú)劃出的部分至于最上層顯示。微環(huán)境的視頻和音頻導(dǎo)出模塊和低延遲的編碼模塊相耦合。編碼模塊所需的運(yùn)算可以利用計(jì)算服務(wù)節(jié)點(diǎn)上的CPU或GPU來完成,或使用專門的編碼硬件進(jìn)行處理。應(yīng)用程序界面的圖形信息按一定的時(shí)間間隔構(gòu)成輸出視頻流的每ー幀。在某ー時(shí)刻,應(yīng)用程序界面圖形轉(zhuǎn)換為視頻流中對(duì)應(yīng)幀的編碼時(shí)間不大于10毫秒;在用戶的終端設(shè)備上,這ー視頻幀被視頻解碼器解碼并呈現(xiàn)在終端屏幕的時(shí)間也不大于10毫秒。在正常情況下,我們期望從服務(wù)系統(tǒng)到用戶終端的網(wǎng)絡(luò)傳輸延時(shí)(TTL)在40-50毫秒左右。另ー方面,視頻流的每秒幀率被限制在25-30之間,因此用戶在和遠(yuǎn)程應(yīng)用程序的交互行為所觀察到的延遲最多在100毫秒左右。這對(duì)于一般的應(yīng)用程序交互乃至于PC游戲都是ー個(gè)可接受的范圍。圖8顯示了視頻編碼模塊,解碼模塊和傳輸模塊為了減少編碼ー解碼延遲所采取的流水線策略(圖中最下面的策略)。程序的畫面實(shí)際被分割為多個(gè)部分,每個(gè)部分都被分別編碼成一個(gè)單獨(dú)的視頻流傳輸?shù)娇蛻舳?,由解碼模塊解碼后,再由重現(xiàn)模塊將分割的畫面拼合并顯示出來,其中所述單獨(dú)劃分的畫面以更高的帶寬傳輸。GPU將不斷改變的程序界面進(jìn)行壓縮編碼轉(zhuǎn)換為視頻流,并在遠(yuǎn)程客戶端解碼的過程。編碼ー解碼過程是準(zhǔn)實(shí)時(shí)的,其延遲和數(shù)據(jù)在網(wǎng)絡(luò)中傳送導(dǎo)致的延遲相比是小量。為了降低編碼和解碼的延遲,應(yīng)用程序界面在編碼過程中實(shí)際被分割成多個(gè)部分,每部分獨(dú)立地進(jìn)行編碼ー傳輸ー解碼,各部分的處理步驟以流水線方式并發(fā)執(zhí)行。和將整個(gè)畫面編碼為單ー的視頻流相比(圖8上方的策略),雖然在壓縮率上有所損失,但可以有效地利用計(jì)算節(jié)點(diǎn)的并行能力,減少編碼延遲(圖8中間的策略)。然而,客戶端的解碼模塊由于客戶端計(jì)算能力的限制,往往并不具備并行解碼能力,因此并不能顯著減少解碼延遲。同時(shí)也可以看到,在前面這兩種策略中,設(shè)備的計(jì)算能力在傳輸過程中是被閑置的。而在流水線策略中,編碼和解碼的過程和傳輸?shù)倪^程在不同畫面塊之間交錯(cuò)地進(jìn)行,在其中ー個(gè)畫面塊傳輸時(shí),設(shè)備的計(jì)算能力得以被編碼模塊和解碼模塊用來對(duì)其它畫面塊進(jìn)行處理,實(shí)際上將編碼一傳輸ー解碼三個(gè)步驟部分地并行起來,從而減少了總的交互延遲。微環(huán)境的視頻編碼模塊和對(duì)應(yīng)的客戶端設(shè)備上的視頻解碼模塊使用H. 264或類似標(biāo)準(zhǔn)。在視頻編碼中必須包含兩種類型的畫面幀。其中之一(I幀)在解碼時(shí)不依賴于任何其它畫面幀,另ー種(P幀)的解碼則依賴于之前被接收到的某些幀的信息。單個(gè)的I幀 需要比P幀大的字節(jié)數(shù),I幀在視頻流中的分布是不確定的,每兩個(gè)I幀之出現(xiàn)之間的時(shí)間間隔在1-10秒之間。在兩個(gè)I幀之間的視頻流由字節(jié)數(shù)較小的P幀所組成。在特定的時(shí)刻內(nèi)為云計(jì)算系統(tǒng)的節(jié)點(diǎn)提供執(zhí)行種類繁多的應(yīng)用程序的可能是相當(dāng)困難的。最突出的問題之ー在于保存每個(gè)應(yīng)用程序的ニ進(jìn)制執(zhí)行代碼可能都需要大量的存儲(chǔ)比特元。特別是對(duì)PC游戲來說,當(dāng)代的PC游戲的ニ進(jìn)制執(zhí)行代碼往往超過4G字節(jié)(I張標(biāo)準(zhǔn)DVD可以承載的字節(jié)數(shù))。如果將程序的ニ進(jìn)制代碼分別保存于每個(gè)計(jì)算節(jié)點(diǎn)的本地存儲(chǔ)器(硬盤)上,則需要為每個(gè)計(jì)算節(jié)點(diǎn)提供數(shù)TB字節(jié)的存儲(chǔ)能力。這給的存儲(chǔ)系統(tǒng)的成本和維護(hù)都帶來相當(dāng)多的困難。一個(gè)節(jié)約計(jì)算節(jié)點(diǎn)的存儲(chǔ)空間的方案是將程序的ニ進(jìn)制代碼保存在単一的存儲(chǔ)設(shè)備上,即如圖3所示的程序存儲(chǔ)陣列,而各節(jié)點(diǎn)在執(zhí)行程序時(shí)通過高速的網(wǎng)絡(luò)連接訪問此設(shè)備上的代碼數(shù)據(jù)。能這ー并發(fā)訪問只能在基于網(wǎng)絡(luò)文件系統(tǒng)(例如SAMBA)層面上而不能在網(wǎng)絡(luò)磁盤系統(tǒng)(例如iSCSI)上實(shí)現(xiàn)。然而對(duì)很多只為在高速的本地存儲(chǔ)器上運(yùn)行而設(shè)計(jì)的應(yīng)用程序(例如幾乎所有的PC游戲)而言,程序在執(zhí)行到和用戶交互前需要預(yù)先從存儲(chǔ)系統(tǒng)中讀入大量的數(shù)據(jù)到內(nèi)存中。從理論上說,當(dāng)計(jì)算節(jié)點(diǎn)和存儲(chǔ)節(jié)點(diǎn)之間能以千兆(Gigabit)網(wǎng)絡(luò)的理想速度傳送數(shù)據(jù)時(shí),數(shù)據(jù)的讀取速率Γ ΟΟΜΒ/s)已經(jīng)能和常規(guī)的本地存儲(chǔ)器(硬盤,約70MB/S)相匹配。數(shù)據(jù)的讀取導(dǎo)致的等待時(shí)間如果和在本地存儲(chǔ)器上相當(dāng)(甚至略長)吋,這一等待已經(jīng)被用戶熟悉和接受,將不會(huì)降低用戶體驗(yàn)。然而,這些數(shù)據(jù)常常以小文件的形式存放,而windows下常用的基于SAMBA協(xié)議的網(wǎng)絡(luò)文件系統(tǒng)并不適合于大量小文件的并發(fā)讀取任務(wù),結(jié)果導(dǎo)致實(shí)際的有效數(shù)據(jù)讀取速度往往小于lOMB/s,程序執(zhí)行前和執(zhí)行中的數(shù)據(jù)讀取等待時(shí)間是在本地存儲(chǔ)器上的數(shù)倍乃至十?dāng)?shù)倍,嚴(yán)重降低了用戶體驗(yàn)。通過微環(huán)境,我們優(yōu)化了 SAMBA協(xié)議下的網(wǎng)絡(luò)文件系統(tǒng)在應(yīng)用程序訪問時(shí)的數(shù)據(jù)讀取效率,而不需要另外開發(fā)更為困難并且穩(wěn)定性存疑的其它網(wǎng)絡(luò)文件系統(tǒng)。在圖3的系統(tǒng)中,云計(jì)算系統(tǒng)內(nèi)所有服務(wù)節(jié)點(diǎn)和単一的存儲(chǔ)陣列連接。如圖9所示,在正常情況下,應(yīng)用程序直接通過SAMBA協(xié)議訪問存儲(chǔ)陣列上的網(wǎng)絡(luò)文件位置(虛線箭頭)。而在微環(huán)境中,應(yīng)用程序的訪問實(shí)際被重定向到位于本地存儲(chǔ)設(shè)備的緩存中。緩存內(nèi)容由微環(huán)境進(jìn)行管理。在計(jì)算節(jié)點(diǎn)首次運(yùn)行應(yīng)用程序時(shí),微環(huán)境通過另ー個(gè)基于rSync方案的協(xié)議(我們稱為rSync_i)讀取存儲(chǔ)陣列上的網(wǎng)絡(luò)文件。在讀取時(shí),多個(gè)并發(fā)的文件訪問請(qǐng)求被按照目錄位置合并為單一的TCP請(qǐng)求進(jìn)行訪問,使文件實(shí)際的讀取速度得以接近網(wǎng)絡(luò)環(huán)境所允許的極值。多個(gè)計(jì)算節(jié)點(diǎn)將共同訪問同一個(gè)存儲(chǔ)節(jié)點(diǎn)上的應(yīng)用程序數(shù)據(jù),并將每個(gè)用戶在執(zhí)行應(yīng)用程序時(shí)所產(chǎn)生的額外數(shù)據(jù)存儲(chǔ)到単一的存儲(chǔ)節(jié)點(diǎn)上。數(shù)據(jù)的導(dǎo)入導(dǎo)出和傳輸是通過微環(huán)境實(shí)現(xiàn)的。微環(huán)境使用了特定的策略來加速應(yīng)用程序執(zhí)行時(shí)從存儲(chǔ)節(jié)點(diǎn)上讀取數(shù)據(jù)的速率。系統(tǒng)將多個(gè)計(jì)算節(jié)點(diǎn)構(gòu)成ー個(gè)節(jié)點(diǎn)陣列,多個(gè)節(jié)點(diǎn)陣列共享ー個(gè)存儲(chǔ)節(jié)點(diǎn)(陣列)讀取所執(zhí)行的應(yīng)用程序數(shù)據(jù)和記錄用戶生成的數(shù)據(jù)。用戶可以通過網(wǎng)絡(luò)延時(shí)和帶寬等數(shù)據(jù)選擇多個(gè)計(jì)算節(jié)點(diǎn)陣列中的ー個(gè)。多個(gè)存儲(chǔ)節(jié)點(diǎn)構(gòu)成了可以相互同步的分布式存儲(chǔ)系統(tǒng)。用戶客戶端接受可識(shí)別的任意用戶交互操作并通過控制信息發(fā)送到微環(huán)境中。然而,微環(huán)境的輸入過濾模塊將判別所有的用戶操作并只允許特定的操作能發(fā)送到被執(zhí)行的應(yīng)用程序當(dāng)中。這ー判斷是基于當(dāng)前應(yīng)用程序界面的狀況而動(dòng)態(tài)改變的。當(dāng)當(dāng)前光標(biāo)在被判斷為“危險(xiǎn)”的界面(例如可以訪問和執(zhí)行計(jì)算節(jié)點(diǎn)本地存儲(chǔ)路徑的文件的窗ロ)時(shí),輸入過濾模塊將能阻止遠(yuǎn)程用戶執(zhí)行可能對(duì)計(jì)算節(jié)點(diǎn)和整個(gè)服務(wù)系統(tǒng)有危險(xiǎn)的操作。 從界面和聲音導(dǎo)出模塊輸出的視/音頻流和輔助信息流的數(shù)據(jù)被保存在如圖4所示的微環(huán)境輸出緩存模塊中。因此,所執(zhí)行的應(yīng)用程序的界面等信息不僅可以被請(qǐng)求執(zhí)行的用戶的終端所看到,也可以通過輸出緩存模塊和傳輸模塊輸出到一個(gè)或多個(gè)以旁觀者身份參與的用戶的終端上。作為旁觀者的用戶連接同一個(gè)計(jì)算節(jié)點(diǎn)的微環(huán)境,但無法發(fā)送控制信息流到相應(yīng)的微環(huán)境中。旁觀者用戶除了觀看和程序交互的用戶的行動(dòng)之外,還可以通過其它通道發(fā)送特定的交互信息到云計(jì)算系統(tǒng)。如圖10所示,ー個(gè)特定的程序會(huì)在此微環(huán)境內(nèi)啟動(dòng),接收并匯總其它觀看用戶的交流信息。界面導(dǎo)出模塊將這些交流信息和應(yīng)用程序的界面合并為ー個(gè)視頻流,從而將這些交互信息被重新分發(fā)到當(dāng)前所有連接此微環(huán)境的用戶(包括交互用戶和旁觀者用戶),并可以顯示在所有用戶的終端上。例如,在一個(gè)進(jìn)行PC游戲的用戶所在的微環(huán)境上,旁觀者可以以文字形式實(shí)時(shí)地輸入評(píng)論,這些評(píng)論將可以發(fā)送到所有的其它旁觀者和游戲用戶。觀看者的用戶和執(zhí)行交互的用戶所訪問的視頻流是同步的(除了用戶之間由于不同的網(wǎng)絡(luò)延遲導(dǎo)致的影響)。然而,用戶終端的視頻解碼模塊一般并不能從ー個(gè)有參考的幀(B幀)開始解碼和正確顯示視頻流。在輸出緩存模塊中會(huì)保存已經(jīng)向交互用戶輸出的一段時(shí)間內(nèi)的全部視頻幀數(shù)據(jù),其中必然包含至少ー個(gè)無參考的I幀。如圖11所示,當(dāng)ー個(gè)觀看者用戶在最初連接微環(huán)境時(shí),輸出緩存模塊將保存的離當(dāng)前向交互用戶的輸出幀最近的I幀發(fā)送給觀看者用戶,直到有下ー個(gè)I幀出現(xiàn)時(shí),此幀將看觀看者用戶和交互用戶同時(shí)輸出。由于兩個(gè)I幀出現(xiàn)的時(shí)間間隔可能長達(dá)10秒,這ー策略顯著減少了觀看者用戶的終端從連接成功到出現(xiàn)視頻時(shí)的延遲。ー個(gè)被稱為“展示墻”的特殊應(yīng)用程序可以運(yùn)行在ー個(gè)獨(dú)立的微環(huán)境中,如圖12所示。展示墻訪問計(jì)算系統(tǒng)內(nèi)的服務(wù)管理器取得其它微環(huán)境內(nèi)正在運(yùn)行的應(yīng)用程序,并作為觀看者用戶連接到這些微環(huán)境中。展示墻程序解碼獲取到的所有視頻流,并將這些視頻流以預(yù)覽圖的大小重新組織到一個(gè)單ー的界面內(nèi)。這ー界面被編碼為新的視頻流發(fā)送到用戶終端屏幕。用戶可以選擇展示墻內(nèi)的某個(gè)預(yù)覽視頻流,并作為一個(gè)觀看者用戶與預(yù)覽視頻流對(duì)應(yīng)的微環(huán)境內(nèi)的其他用戶進(jìn)行交流。
微環(huán)境的視頻和音頻流在發(fā)送到網(wǎng)絡(luò)前可以通過協(xié)議重整模塊將兩者合并為特定格式的多媒體內(nèi)容流(如圖4所示)。這樣的多媒體內(nèi)容流可以被進(jìn)一步通過互聯(lián)網(wǎng)抵達(dá)具有特殊實(shí)現(xiàn)的客戶端終端程序。例如,從重整模塊生成的多媒體內(nèi)容流可以被以RTMP(Real Time Messaging Protocol)協(xié)議的方式承載并被廣泛使用的Adobe ShockwaveFlash平臺(tái)所呈現(xiàn)。從而用戶允許在不運(yùn)行專門客戶端程序的基礎(chǔ)上使用云服務(wù)系統(tǒng)。例如,這使得任何用戶只需要擁有ー個(gè)可運(yùn)行現(xiàn)代的Web瀏覽器的終端(所有的PC,上網(wǎng)本,WebOS系統(tǒng)以及大多數(shù)的移動(dòng)終端等)即可作為ー個(gè)觀看者用戶接入。使用Adobe Shockwave Flash平臺(tái)可以接收微環(huán)境發(fā)出的輔助信息流,并將用戶在flash平臺(tái)上的操作作為控制信息流發(fā)送到輸入導(dǎo)入模塊,從而實(shí)現(xiàn)ー個(gè)完整的用戶終端而不僅僅是觀看者。然而,基于Flash平臺(tái)的安全限制,執(zhí)行遠(yuǎn)程應(yīng)用程序時(shí)所需的某些交互行為不能被直接實(shí)現(xiàn)。例如部分鍵盤功能。ー個(gè)典型的情況是,在某些應(yīng)用程序例如第一人稱視角的PC游戲中,允許鼠標(biāo)向ー個(gè)特定方向作無限的移動(dòng)(對(duì)應(yīng)于視角的不斷轉(zhuǎn)動(dòng))。但由Flash實(shí)現(xiàn)的客戶終端只能在ー個(gè)有限的矩形范圍內(nèi)接收的鼠標(biāo)操作,當(dāng)鼠標(biāo)向ー個(gè)方向移動(dòng)導(dǎo)致指針移動(dòng)到矩形的邊緣時(shí),后續(xù)的移動(dòng)將無法再被檢測(cè)到。 圖13顯示了對(duì)此問題的ー個(gè)解決方案接收鼠標(biāo)指針移動(dòng)信息的矩形區(qū)域被分割為兩部分,在正常區(qū)域內(nèi),鼠標(biāo)移動(dòng)的信息被正常地發(fā)送到遠(yuǎn)程的應(yīng)用程序。當(dāng)鼠標(biāo)指針移動(dòng)到矩形邊緣范圍的緩沖邊緣區(qū)域內(nèi)時(shí),在接受到下一次鼠標(biāo)移動(dòng)指令之前,最后一次移動(dòng)的信息會(huì)以一定間隔被反復(fù)發(fā)送到遠(yuǎn)程應(yīng)用程序,從而允許用戶使用鼠標(biāo)發(fā)送向特定方向持續(xù)移動(dòng)的信息。在緩沖邊緣區(qū)域時(shí),特定的圖案將顯示在鼠標(biāo)指針焦點(diǎn)位置附近,以提示用戶ー個(gè)特殊的移動(dòng)行為正在發(fā)生。在圖3所示的服務(wù)系統(tǒng)中,服務(wù)管理器負(fù)責(zé)控制云系統(tǒng)中所有服務(wù)節(jié)點(diǎn)上全部微環(huán)境內(nèi)執(zhí)行的應(yīng)用程序的狀況,并將其和用戶數(shù)據(jù)庫關(guān)聯(lián)起來。使用云計(jì)算遠(yuǎn)程交互程序服務(wù)的用戶所執(zhí)行的ー個(gè)典型的工作流程如圖14所示。用戶的終端程序首先訪問系統(tǒng)的前端(通常以Web的形式)獲取通過安全網(wǎng)關(guān)和連接某一微環(huán)境的權(quán)限(I);前端和服務(wù)管理器交互以在安全網(wǎng)關(guān)上為用戶終端打開ー個(gè)出口,井根據(jù)用戶數(shù)據(jù)庫的信息設(shè)置對(duì)應(yīng)的微環(huán)境。當(dāng)用戶終端連接此微環(huán)境時(shí),用戶能在微環(huán)境上執(zhí)行的應(yīng)用程序的列表由服務(wù)管理器通過用戶數(shù)據(jù)庫信息所指定(2);在用戶執(zhí)行特定的應(yīng)用程序的過程中,相關(guān)的信息(例如執(zhí)行的程序內(nèi)容,執(zhí)行時(shí)間,用戶生成的數(shù)據(jù)等)被通過服務(wù)管理器傳送回用戶數(shù)據(jù)庫
(3);最終,當(dāng)用戶執(zhí)行應(yīng)用程序完畢,用戶離開微環(huán)境并告知服務(wù)管理器退出的信息.服務(wù)管理器將收集之前微環(huán)境中所需的信息同步到用戶數(shù)據(jù)庫,為用戶下一次訪問作準(zhǔn)備(4)。在遠(yuǎn)程交互程序服務(wù)應(yīng)用中,網(wǎng)絡(luò)環(huán)境對(duì)用戶體驗(yàn)造成了最直接的制約。為了得到足夠的用戶體驗(yàn),用戶到計(jì)算節(jié)點(diǎn)的連結(jié)需要一個(gè)低延遲且高帶寬的網(wǎng)絡(luò)。通常,網(wǎng)絡(luò)的傳輸延遲應(yīng)該低于50毫秒。此外,測(cè)試表明在ー個(gè)合理的分辨率水平(通常假設(shè)為1024x768)下,傳輸?shù)囊曨l流達(dá)到25-30FPS并保持足夠的可讀性要求最少2Mbps的帶寬。這意味著一個(gè)云服務(wù)系統(tǒng)在同時(shí)服務(wù)大量用戶時(shí),網(wǎng)絡(luò)的流量對(duì)系統(tǒng)網(wǎng)絡(luò)出ロ將造成巨大的壓力。這樣的云服務(wù)系統(tǒng)要求ー個(gè)分布式的部署方案以便有效地利用差異化的網(wǎng)絡(luò)帶寬以提高傳輸效率和減少成本。如圖15所示,分布式的計(jì)算服務(wù)節(jié)點(diǎn)陣列被部署于全國各地的多個(gè)位置,其服務(wù)用戶終端的網(wǎng)絡(luò)出口通常是流量費(fèi)用較低的單線網(wǎng)絡(luò)。多個(gè)部署的陣列通過專線和接入骨干網(wǎng)絡(luò)上的分布式存儲(chǔ)陣列相連接。所有這些分布式系統(tǒng)都以高質(zhì)量但有限的帶寬連接到中心數(shù)據(jù)庫。用戶的終端在訪問web前端后,首先從連接多個(gè)計(jì)算服務(wù)節(jié)點(diǎn)并選擇出連通性最佳的ー個(gè),再連接其中的某個(gè)節(jié)點(diǎn)的微環(huán)境以執(zhí)行應(yīng)用程序服務(wù)。在用戶和應(yīng)用程序交互過程中產(chǎn)生的用戶數(shù)據(jù)文件將直接寫入服務(wù)節(jié)點(diǎn)直接連接的存儲(chǔ)陣列。在用戶交互結(jié)束后,服務(wù)管理器將發(fā)出請(qǐng)求,在ー個(gè)特定的時(shí)間域內(nèi)(通常少于12小吋),用戶交互所產(chǎn)生的數(shù)據(jù)文件將被同步到全部的存儲(chǔ)陣列中。而少量的核心數(shù)據(jù)則被實(shí)時(shí)地寫入用戶數(shù)據(jù)庫。這ー分布式方案基于如下幾點(diǎn)考慮1.単一的計(jì)算服務(wù)節(jié)點(diǎn)陣列所在的網(wǎng)絡(luò)出ロ無法承受眾多用戶帶來的帶寬負(fù)荷并為所有用戶提供滿足要求的連接環(huán)境(最低2Mbps的帶寬且延遲低于50ms) ;2.用戶在執(zhí)行一次交互程序時(shí)可能產(chǎn)生相當(dāng)大量的用戶數(shù)據(jù)。例如,當(dāng)用戶執(zhí)行ー個(gè)體育比賽類型的游戲時(shí),可以對(duì)游戲中的某些場(chǎng)面進(jìn)行錄像并生成多達(dá)數(shù)百M(fèi)B的數(shù)據(jù)文件。単一的存儲(chǔ)陣列無法實(shí)時(shí)或準(zhǔn)實(shí)時(shí)地和全部分布式的服務(wù)陣列完成海量的數(shù)據(jù)同步,但是,和有限的數(shù)組服務(wù)節(jié)點(diǎn)陣列作實(shí)時(shí)的數(shù)據(jù)同步是可能的;3.由于地理?xiàng)l件的限制,用戶在網(wǎng)絡(luò)中可能的移動(dòng)速度,將低于存儲(chǔ)陣列之間完成同步的時(shí)間閾值。例如,假設(shè)有分布在北京和廣州兩個(gè)地區(qū)的存儲(chǔ)陣列,用戶存儲(chǔ)到廣州地區(qū)的存儲(chǔ)陣列中的用戶數(shù)據(jù)可以在最長12小時(shí)內(nèi)和北京地區(qū)的陣列完成數(shù)據(jù)同歩。而在絕大多數(shù) 情況下,一個(gè)在廣州地區(qū)結(jié)束服務(wù)的用戶(我們假設(shè)其對(duì)應(yīng)ー個(gè)自然人的個(gè)體)在現(xiàn)有的交通運(yùn)輸水平內(nèi)不會(huì)在12小時(shí)內(nèi)在北京地區(qū)應(yīng)用新的服務(wù)。這ー現(xiàn)實(shí)的時(shí)間閾使上述的分布式方案成為可能。
權(quán)利要求
1.一種基于云計(jì)算節(jié)點(diǎn)的遠(yuǎn)程交互方法,其特征在于包括以下步驟在交互方的一端的呈現(xiàn)畫面上的特定位置單獨(dú)劃出;利用視頻編碼器將其轉(zhuǎn)換為一個(gè)視頻流,通過輔助信息流傳輸?shù)浇换サ牧硪欢耍粚⒊尸F(xiàn)畫面的整體進(jìn)行視頻編碼并通過視頻流通道發(fā)送到客戶端;交互方的另一端的重現(xiàn)模塊將單獨(dú)劃出的部分用原分辨率顯示,而將所述呈現(xiàn)畫面縮放至與該交互方的另一端所使用的顯示設(shè)備相適應(yīng)的分辨率進(jìn)行顯示,所述單獨(dú)劃出的部分至于最上層顯示。
2.如權(quán)利要求I所述的遠(yuǎn)程交互方法,其特征在于所述呈現(xiàn)畫面或者單獨(dú)劃出的畫面被分割為多個(gè)部分,每個(gè)部分都被分別編碼成一個(gè)單獨(dú)的視頻流傳輸,由解碼模塊解碼后,再由重現(xiàn)模塊將分割的畫面拼合并顯示出來,其中所述單獨(dú)劃分的畫面以更高的帶寬傳輸。
3.如權(quán)利要求I所述的遠(yuǎn)程交互方法,其特征在于在轉(zhuǎn)換所述畫面之前;改變函數(shù)的操 作系統(tǒng)應(yīng)用程序接ロ API的功能調(diào)用入口位置;當(dāng)應(yīng)用程序執(zhí)行之后,程序調(diào)用操作系統(tǒng)API時(shí),將被修改的函數(shù)地址跳轉(zhuǎn)到重定向的函數(shù)地址。
全文摘要
本發(fā)明涉及一種基于云計(jì)算節(jié)點(diǎn)的遠(yuǎn)程交互方法,其特征在于包括以下步驟在交互方的一端的呈現(xiàn)畫面上的特定位置單獨(dú)劃出;利用視頻編碼器將其轉(zhuǎn)換為一個(gè)視頻流,通過輔助信息流傳輸?shù)浇换サ牧硪欢耍粚⒊尸F(xiàn)畫面的整體進(jìn)行視頻編碼并通過視頻流通道發(fā)送到客戶端;交互方的另一端的重現(xiàn)模塊將單獨(dú)劃出的部分用原分辨率顯示,而將所述呈現(xiàn)畫面縮放至與該交互方的另一端所使用的顯示設(shè)備相適應(yīng)的分辨率進(jìn)行顯示,所述單獨(dú)劃出的部分至于最上層顯示。解決了在不同用戶端的屏幕上顯示特定區(qū)域的分辨率的問題。
文檔編號(hào)H04L29/06GK102857532SQ201110183658
公開日2013年1月2日 申請(qǐng)日期2011年7月1日 優(yōu)先權(quán)日2011年7月1日
發(fā)明者鄧迪, 孫華慶, 魏帆 申請(qǐng)人:云聯(lián)(北京)信息技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1