專利名稱:一種基于虛擬機(jī)的應(yīng)用數(shù)據(jù)提供方法、裝置及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及IPTV技術(shù)領(lǐng)域,尤其涉及一種基于虛擬機(jī)的應(yīng)用數(shù)據(jù)提供方法、裝置及系統(tǒng)。
背景技術(shù):
隨著科技的不斷發(fā)展,能夠使配置比較低的終端,向用戶提供對(duì)配置要求比較高的應(yīng)用數(shù)據(jù),其中該應(yīng)用數(shù)據(jù)包括應(yīng)用程序運(yùn)行產(chǎn)生的音頻信息和/或視頻信息。這是因?yàn)樵谶M(jìn)行應(yīng)用數(shù)據(jù)提供的過(guò)程中,服務(wù)器運(yùn)行用戶所需的應(yīng)用程序,將當(dāng)前自身顯示界面上呈現(xiàn)的視頻信息,以及當(dāng)前播放的音頻信息進(jìn)行編碼,將編碼后的視音頻信息發(fā)送給終端,終端在此時(shí)只需要具有解碼顯示的功能,即可獲取服務(wù)器當(dāng)前運(yùn)行的應(yīng)用程序的音視頻信息。但是如果在進(jìn)行應(yīng)用數(shù)據(jù)提供的過(guò)程中,一臺(tái)服務(wù)器只能向一臺(tái)終端提供服務(wù),為 了滿足海量終端的需求,需要在網(wǎng)絡(luò)側(cè)配置大量的服務(wù)器,從而增加了硬件成本。為了降低在網(wǎng)絡(luò)側(cè)配置服務(wù)器的硬件成本,可以在每臺(tái)服務(wù)器中構(gòu)建多臺(tái)虛擬機(jī),在服務(wù)器中形成虛擬機(jī)系統(tǒng),通過(guò)每臺(tái)虛擬機(jī)向?qū)?yīng)的終端提供應(yīng)用數(shù)據(jù)。在通過(guò)虛擬機(jī)向終端提供應(yīng)用數(shù)據(jù)的過(guò)程中,每臺(tái)虛擬機(jī)通過(guò)其內(nèi)部運(yùn)行的采集軟件,采集獲取當(dāng)前的應(yīng)用數(shù)據(jù)并提供給對(duì)應(yīng)的終端。終端接收到該應(yīng)用數(shù)據(jù)后解碼并顯示,同時(shí),終端將用戶的控制操作信息返回給服務(wù)器,服務(wù)器解析用戶的操作信息,并在對(duì)應(yīng)虛擬機(jī)中進(jìn)行模擬操作,虛擬機(jī)采集操作后的應(yīng)用數(shù)據(jù)并傳輸給終端解碼顯示,從而形成反饋回路。虛擬機(jī)在獲取當(dāng)前的應(yīng)用數(shù)據(jù)時(shí),通過(guò)運(yùn)行其內(nèi)部的采集軟件,對(duì)自身的系統(tǒng)桌面進(jìn)行桌面復(fù)制操作實(shí)現(xiàn)的,其具體實(shí)現(xiàn)方式包括虛擬機(jī)調(diào)用其操作系統(tǒng)的API接口,例如當(dāng)虛擬機(jī)的操作系統(tǒng)為windows操作系統(tǒng)時(shí),調(diào)用API接口中的BitBlt函數(shù),BitBlt函數(shù)的功能是將屏幕上顯示的任何一塊區(qū)域拷貝下來(lái)。虛擬機(jī)調(diào)用API接口中的BitBlt函數(shù),對(duì)指定的區(qū)域中的像素進(jìn)行位塊(bit_block)轉(zhuǎn)換。在該實(shí)現(xiàn)方式中,必須要求操作系統(tǒng)啟動(dòng)之后,通過(guò)應(yīng)用程序調(diào)用操作系統(tǒng)的API接口,才能運(yùn)行BitBlt函數(shù)對(duì)當(dāng)前屏幕上的圖像進(jìn)行位塊轉(zhuǎn)換,從而獲取虛擬機(jī)當(dāng)前的應(yīng)用數(shù)據(jù)。或者,虛擬機(jī)在獲取當(dāng)前的應(yīng)用數(shù)據(jù)時(shí),可以采用鏡像驅(qū)動(dòng)(Mirror Driver),直接創(chuàng)建虛擬的顯卡驅(qū)動(dòng)和聲卡驅(qū)動(dòng),在應(yīng)用數(shù)據(jù)在發(fā)生變化的時(shí)候,應(yīng)用程序呼叫操作系統(tǒng),創(chuàng)建的虛擬的顯卡驅(qū)動(dòng)和聲卡驅(qū)動(dòng),獲取變化后的視頻信息和音頻信息并發(fā)送。但是該方法也只有在操作系統(tǒng)啟動(dòng)成功后,才能運(yùn)行鏡像驅(qū)動(dòng)程序創(chuàng)建虛擬的顯卡驅(qū)動(dòng)和聲卡驅(qū)動(dòng)。根據(jù)目前虛擬機(jī)獲取應(yīng)用數(shù)據(jù)的方式可知,只有在虛擬機(jī)的操作系統(tǒng)啟動(dòng)成功后,才能獲取到應(yīng)用數(shù)據(jù),但在虛擬機(jī)啟動(dòng)的過(guò)程中,由于無(wú)法調(diào)用其采集軟件,其界面的顯示信息是無(wú)法獲得的。而在虛擬機(jī)啟動(dòng)的過(guò)程中,當(dāng)其操作系統(tǒng)出現(xiàn)故障無(wú)法正常啟動(dòng),而此時(shí)終端已經(jīng)與虛擬機(jī)建立了鏈接時(shí),由于虛擬機(jī)出現(xiàn)了故障一直無(wú)法啟動(dòng),而終端用戶又無(wú)法獲取到虛擬機(jī)當(dāng)前的顯示狀態(tài),導(dǎo)致終端用戶長(zhǎng)時(shí)間等待,并且由于終端用戶無(wú)法獲知虛擬機(jī)當(dāng)前的顯示狀態(tài),無(wú)法得知虛擬機(jī)的故障狀態(tài),從而影響虛擬機(jī)故障恢復(fù)的速度。
發(fā)明內(nèi)容
本 發(fā)明實(shí)施例提供一種基于虛擬機(jī)的應(yīng)用數(shù)據(jù)提供方法、裝置及系統(tǒng),用以解決現(xiàn)有技術(shù)虛擬機(jī)在向客戶端提供應(yīng)用數(shù)據(jù)的過(guò)程中,受其操作系統(tǒng)是否啟動(dòng)成功的影響。本發(fā)明實(shí)施例提供一種基于虛擬機(jī)的應(yīng)用數(shù)據(jù)提供裝置,所述系統(tǒng)包括至少一臺(tái)虛擬機(jī)、采集模塊、編碼模塊和發(fā)送模塊;采集模塊,用于在檢測(cè)到虛擬機(jī)的虛擬顯卡和虛擬聲卡啟動(dòng)成功時(shí),獲取虛擬顯卡中的視頻信息及虛擬聲卡中的音頻信息,并將獲取的視頻信息及音頻信息發(fā)送給編碼模塊;編碼模塊,用于對(duì)接收到的視頻信息及音頻信息進(jìn)行編碼,并將編碼后的視頻信息和音頻信息發(fā)送給發(fā)送模塊;發(fā)送模塊,用于根據(jù)保存的虛擬機(jī)及客戶端之間的對(duì)應(yīng)關(guān)系,將接收到的相應(yīng)虛擬機(jī)的編碼后的視頻信息和音頻信息發(fā)送給對(duì)應(yīng)的客戶端。本發(fā)明實(shí)施例提供一種基于虛擬機(jī)的應(yīng)用數(shù)據(jù)提供系統(tǒng),所述系統(tǒng)包括上述應(yīng)用數(shù)據(jù)提供裝置及接收所述編碼后的視、音頻信息并解碼顯示的客戶端。本發(fā)明實(shí)施例提供一種基于虛擬機(jī)的應(yīng)用數(shù)據(jù)提供方法,所述方法包括檢測(cè)到虛擬機(jī)的虛擬顯卡和虛擬聲卡啟動(dòng)成功時(shí),獲取該虛擬機(jī)虛擬顯卡中的視頻 目息及虛擬聲卡中的首頻 目息;對(duì)獲取的所述視頻信息和音頻信息進(jìn)行編碼;根據(jù)保存的虛擬機(jī)及客戶端之間的對(duì)應(yīng)關(guān)系,將編碼后的視頻信息和音頻信息發(fā)送給對(duì)應(yīng)的客戶端。本發(fā)明實(shí)施例提供一種基于虛擬機(jī)的應(yīng)用數(shù)據(jù)提供方法、裝置及系統(tǒng),該裝置包括至少一臺(tái)虛擬機(jī)、采集模塊、編碼模塊和發(fā)送模塊,采集模塊檢測(cè)到虛擬機(jī)的虛擬顯卡和虛擬聲卡啟動(dòng)成功時(shí),獲取虛擬顯卡中的視頻信息及虛擬聲卡中的音頻信息,之后通過(guò)編碼模塊對(duì)該信息進(jìn)行編碼,并通過(guò)發(fā)送模塊根據(jù)保存的虛擬機(jī)及客戶端之間的對(duì)應(yīng)關(guān)系,將該編碼后的信息發(fā)送給對(duì)應(yīng)的客戶端。由于在本發(fā)明中服務(wù)器獨(dú)立于每臺(tái)虛擬機(jī)之外安裝采集模塊,無(wú)論虛擬機(jī)的操作系統(tǒng)是否啟動(dòng)成功,只要其虛擬聲卡和虛擬顯卡啟動(dòng)成功后,即可將虛擬機(jī)當(dāng)前的界面顯示的視頻信息,及當(dāng)前播放的音頻信息發(fā)送到客戶端,以便用戶獲知當(dāng)前虛擬機(jī)的狀態(tài),而且用戶也可以及時(shí)的獲取到虛擬機(jī)的操作系統(tǒng)已經(jīng)成功啟動(dòng)的信息,從而可以使用戶及時(shí)的對(duì)應(yīng)用程序進(jìn)行操作。
圖I為本發(fā)明實(shí)施例提供的基于虛擬機(jī)的應(yīng)用數(shù)據(jù)提供裝置的結(jié)構(gòu)示意圖;圖2為本發(fā)明實(shí)施例提供的基于虛擬機(jī)的應(yīng)用數(shù)據(jù)提供系統(tǒng)的結(jié)構(gòu)示意圖;圖3為本發(fā)明實(shí)施例提供的一種基于虛擬機(jī)的應(yīng)用數(shù)據(jù)提供方法流程圖;圖4為本發(fā)明實(shí)施例提供的基于虛擬機(jī)的應(yīng)用數(shù)據(jù)的另一提供過(guò)程。
具體實(shí)施例方式本發(fā)明為了保證虛擬機(jī)在向客戶端提供應(yīng)用數(shù)據(jù)的過(guò)程中,不受其操作系統(tǒng)是否啟動(dòng)成功的影響,即使虛擬機(jī)的操作系統(tǒng)沒(méi)有成功啟動(dòng),只要其虛擬顯卡和虛擬聲卡啟動(dòng)成功后,即可向客戶端提供其當(dāng)前運(yùn)行的應(yīng)用程序的視頻信息和音頻信息,從而有效的提高用戶的體驗(yàn)度,并且還可以使虛擬機(jī)快速的從故障中恢復(fù)。下面結(jié)合說(shuō)明書附圖,對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。圖I為本發(fā)明實(shí)施例提供的基于虛擬機(jī)的應(yīng)用數(shù)據(jù)提供裝置的結(jié)構(gòu)示意圖,該裝
置包括至少一臺(tái)虛擬機(jī)11 (例如圖中的虛擬機(jī)I、虛擬機(jī)2、......、虛擬機(jī)N)、采集模塊
12、編碼模塊13和發(fā)送模塊14。 每臺(tái)虛擬機(jī)11,用于在其虛擬聲卡和虛擬顯卡啟動(dòng)成功時(shí),將其當(dāng)前運(yùn)行的應(yīng)用程序的視頻信息發(fā)送給其虛擬顯卡,并將該應(yīng)用程序的音頻信息發(fā)送給其虛擬聲卡;采集模塊12,用于在檢測(cè)到虛擬機(jī)11的虛擬顯卡和虛擬聲卡啟動(dòng)成功時(shí),獲取其虛擬顯卡中的視頻信息及虛擬聲卡中的音頻信息,并將獲取到的視頻信息及音頻信息發(fā)送給編碼模塊13 ;編碼模塊13,用于對(duì)接收到的視頻信息及音頻信息進(jìn)行編碼,并將編碼后的視頻信息和音頻信息發(fā)送給發(fā)送模塊14。發(fā)送模塊14,用于根據(jù)保存的虛擬機(jī)及客戶端之間的對(duì)應(yīng)關(guān)系,將接收到的相應(yīng)虛擬機(jī)的編碼后的視頻信息和音頻信息發(fā)送給對(duì)應(yīng)的客戶端。在本發(fā)明中為了保證發(fā)送模塊能將編碼后的視頻信息和音頻信息發(fā)送到對(duì)應(yīng)的客戶端,在該發(fā)送模塊中保存有虛擬機(jī)與客戶端之間的對(duì)應(yīng)關(guān)系,該對(duì)應(yīng)關(guān)系可以為事先配置在發(fā)送模塊中的,當(dāng)構(gòu)建了虛擬機(jī)后,可以根據(jù)保存的客戶端的IP地址,或者稱為能夠向其提供服務(wù)的客戶端的IP地址,構(gòu)建虛擬機(jī)與客戶端的對(duì)應(yīng)關(guān)系,并將該對(duì)應(yīng)關(guān)系保存到發(fā)送模塊中;或者,該裝置在接收到客戶端的使用請(qǐng)求后,根據(jù)該使用請(qǐng)求構(gòu)建虛擬機(jī),建立該虛擬機(jī)與該客戶端的對(duì)應(yīng)關(guān)系,并將建立的該對(duì)應(yīng)關(guān)系發(fā)送到發(fā)送模塊,以便發(fā)送模塊能夠?qū)⒕幋a后的視頻信息和音頻信息發(fā)送到對(duì)應(yīng)的客戶端。具體的,在本發(fā)明中該裝置位于服務(wù)器中。在本發(fā)明中該采集模塊位于服務(wù)器中,獨(dú)立于虛擬機(jī),當(dāng)服務(wù)器啟動(dòng)成功后,會(huì)根據(jù)客戶端的使用請(qǐng)求構(gòu)建相應(yīng)的虛擬機(jī),通過(guò)構(gòu)建的虛擬機(jī)向用戶提供應(yīng)用數(shù)據(jù)。虛擬機(jī)中所有的資源都是服務(wù)器使用CPU或者其他器件進(jìn)行軟件模擬形成的。構(gòu)建了虛擬機(jī)后,虛擬機(jī)的操作系統(tǒng)開(kāi)始啟動(dòng),在虛擬機(jī)操作系統(tǒng)啟動(dòng)的過(guò)程中,采集模塊不斷的檢測(cè)該虛擬機(jī)的虛擬聲卡和虛擬顯卡是否啟動(dòng)成功,當(dāng)檢測(cè)到該虛擬機(jī)的虛擬聲卡和虛擬顯卡啟動(dòng)成功時(shí),獲取其啟動(dòng)過(guò)程中應(yīng)用程序的音頻信息和視頻信息,并提供給客戶端。由于在本發(fā)明中服務(wù)器獨(dú)立于每臺(tái)虛擬機(jī)之外安裝采集模塊,在虛擬機(jī)啟動(dòng)的同時(shí)該采集模塊即可與其通信,獲取其操作系統(tǒng)啟動(dòng)過(guò)程中的音頻和視頻信息。在該系統(tǒng)中還包括管理后臺(tái)10,用于接收客戶端的使用請(qǐng)求,根據(jù)該請(qǐng)求為所述客戶端分配虛擬機(jī)11,并保存該虛擬機(jī)與所述客戶端的對(duì)應(yīng)關(guān)系,并將所述對(duì)應(yīng)關(guān)系發(fā)送給發(fā)送模塊14。管理后臺(tái)負(fù)責(zé)控制并調(diào)度各個(gè)虛擬機(jī)、編碼模塊、發(fā)送模塊與客戶端之間的通信。圖I中管理后臺(tái)與各虛擬機(jī)、編碼模塊和發(fā)送接口之間都存在連接關(guān)系,為了簡(jiǎn)便圖中未全部示出。服務(wù)器啟動(dòng)后,在管理后臺(tái)的控制下創(chuàng)建獨(dú)立于虛擬機(jī)的采集模塊;并且管理后臺(tái)可以根據(jù)客戶端的使用請(qǐng)求在服務(wù)器的操作系統(tǒng)上創(chuàng)建虛擬機(jī),并記錄該客戶端及被分配的虛擬機(jī)的對(duì)應(yīng)關(guān)系。該管理后臺(tái)通過(guò)與虛擬機(jī)、編碼模塊、采集模塊和發(fā)送模塊之間的通信,控制采集模塊采集的虛擬機(jī)的視音頻信息發(fā)送給相應(yīng)的客戶端。另外,在本發(fā)明中無(wú)論虛擬機(jī)的操作系統(tǒng)是否啟動(dòng)成功,只要其相應(yīng)的應(yīng)用程序啟動(dòng)成功后,客戶端即可使用其相應(yīng)應(yīng)用程序。具體的,管理后臺(tái)接收客戶端發(fā)送的對(duì)相應(yīng) 應(yīng)用程序的操作請(qǐng)求,并根據(jù)保存的虛擬機(jī)與客戶端的對(duì)應(yīng)關(guān)系,將該操作請(qǐng)求發(fā)送給對(duì)應(yīng)的虛擬機(jī)。其中,該操作請(qǐng)求包括通過(guò)鼠標(biāo)、鍵盤、遙控器等觸發(fā)相應(yīng)的按鍵,發(fā)送的操作請(qǐng)求。虛擬機(jī)接收管理后臺(tái)發(fā)送的操作請(qǐng)求,根據(jù)該操作請(qǐng)求進(jìn)行相應(yīng)控制,將控制后的生成的視頻信息發(fā)送給自身的虛擬顯卡,并將控制后生成的音頻信息發(fā)送給自身的虛擬聲卡。采集模塊獲取該虛擬機(jī)的虛擬顯卡中的視頻信息及虛擬聲卡中的音頻信息,并將獲取的視頻信息及音頻信息發(fā)送給編碼模塊。編碼模塊對(duì)接收到的視頻信息和音頻信息進(jìn)行編碼,并將編碼后的視頻信息和音頻信息發(fā)送給發(fā)送模塊。發(fā)送模塊根據(jù)保存的虛擬機(jī)及客戶端的對(duì)應(yīng)關(guān)系,將編碼后的視頻信息和音頻信息發(fā)送給對(duì)應(yīng)的客戶端。無(wú)論虛擬機(jī)的操作系統(tǒng)是否啟動(dòng)成功,只要其虛擬聲卡和虛擬顯卡啟動(dòng)成功后,即可將虛擬機(jī)當(dāng)前的界面顯示的視頻信息,及當(dāng)前播放的音頻信息發(fā)送到客戶端,以便用戶獲知當(dāng)前虛擬機(jī)的狀態(tài),而且用戶也可以及時(shí)的獲取到虛擬機(jī)的操作系統(tǒng)已經(jīng)成功啟動(dòng)的信息,從而可以使用戶及時(shí)的對(duì)應(yīng)用程序進(jìn)行操作。當(dāng)虛擬機(jī)的操作系統(tǒng)啟動(dòng)后,用戶通過(guò)客戶端向服務(wù)器發(fā)送操作請(qǐng)求,其中該操作請(qǐng)求包括啟動(dòng)具體應(yīng)用程序的操作請(qǐng)求、對(duì)啟動(dòng)的應(yīng)用程序進(jìn)行控制的操作請(qǐng)求等。當(dāng)服務(wù)器的管理后臺(tái)接收到該操作請(qǐng)求后,對(duì)該操作請(qǐng)求進(jìn)行解析,并將解析后的操作請(qǐng)求發(fā)送給對(duì)應(yīng)的虛擬機(jī)進(jìn)行控制,生成了控制后的音頻信息和視頻信息,之后編碼發(fā)送。圖2為本發(fā)明實(shí)施例提供的基于虛擬機(jī)的應(yīng)用數(shù)據(jù)提供系統(tǒng)的結(jié)構(gòu)示意圖,該系統(tǒng)包括上述應(yīng)用數(shù)據(jù)提供裝置21及客戶端22 (客戶端I、客戶端2、……、客戶端N)。該裝置21在檢測(cè)到虛擬機(jī)的虛擬顯卡和虛擬聲卡啟動(dòng)成功時(shí),獲取虛擬顯卡中的視頻信息及虛擬聲卡中的音頻信息,并對(duì)該視頻信息及音頻信息進(jìn)行編碼,根據(jù)保存的虛擬機(jī)與客戶端的對(duì)應(yīng)關(guān)系,將編碼后的視頻信息和音頻信息發(fā)送給對(duì)應(yīng)的客戶端22。該客戶端22接收該裝置21發(fā)送的編碼后的視頻信息及音頻信息,并對(duì)該視頻信息及音頻信息解碼,將解碼后的視頻信息及音頻信息提供給用戶。具體的該裝置為服務(wù)器。該服務(wù)器根據(jù)每個(gè)客戶端的請(qǐng)求為其分配相應(yīng)的虛擬機(jī),例如在圖2中該服務(wù)器為客戶端I分配虛擬機(jī)1,為客戶端2分配虛擬機(jī)2、為客戶端N分配虛擬機(jī)N等,并保存該虛擬機(jī)及客戶端的對(duì)應(yīng)關(guān)系,以便后續(xù)的應(yīng)用數(shù)據(jù)發(fā)送。在該系統(tǒng)中,無(wú)論服務(wù)器中虛擬機(jī)的操作系統(tǒng)是否啟動(dòng)成功,只要其虛擬顯卡和虛擬聲卡已經(jīng)啟動(dòng)成功,即可使客戶端獲取虛擬機(jī)當(dāng)前界面顯示的視頻信息以及播放的音頻信息。另外,虛擬機(jī)的操作系統(tǒng)啟動(dòng)成功后,客戶端可以對(duì)虛擬機(jī)中相應(yīng)的應(yīng)用程序進(jìn)行操作。該操作過(guò)程具體包括客戶端向服務(wù)器發(fā)送對(duì)某一應(yīng)用程序的操作請(qǐng)求,服務(wù)器接收到該操作請(qǐng)求后,對(duì)該操作請(qǐng)求進(jìn)行解析,并根據(jù)保存的虛擬機(jī)與客戶端的對(duì)應(yīng)關(guān)系,將解析后的操作請(qǐng)求發(fā)送給對(duì)應(yīng)的虛擬機(jī)進(jìn)行相應(yīng)控制,獲取控制后的生成的音頻信息和視頻信息,根據(jù)保存的虛擬機(jī)及客戶端之間的對(duì)應(yīng)關(guān)系,將編碼后的音頻信息和視頻信息發(fā)送給對(duì)應(yīng)的客戶端。由于在本發(fā)明中服務(wù)器獨(dú)立于每臺(tái)虛擬機(jī)之外安裝采集模塊,在虛擬機(jī)啟動(dòng)的同時(shí)該采集模塊即可與其通信,獲取其操作系統(tǒng)啟動(dòng)過(guò)程中的音頻和視頻信息。無(wú)論虛擬機(jī)的操作系統(tǒng)是否啟動(dòng)成功,只要其虛擬聲卡和虛擬顯卡啟動(dòng)成功后,即可將虛擬機(jī)當(dāng)前的界面顯示的視頻信息,及當(dāng)前播放的音頻信息發(fā)送到客戶端,以便用戶獲知當(dāng)前虛擬機(jī)的狀態(tài),而且用戶也可以及時(shí)的獲取到虛擬機(jī)的操作系統(tǒng)已經(jīng)成功啟動(dòng)的信息,從而可以使用戶及時(shí)的對(duì)應(yīng)用程序進(jìn)行操作。·圖3為本發(fā)明實(shí)施例提供的一種基于虛擬機(jī)的應(yīng)用數(shù)據(jù)提供方法流程圖,該過(guò)程包括以下步驟S301 :檢測(cè)到虛擬機(jī)的虛擬顯卡和虛擬聲卡啟動(dòng)成功時(shí),獲取該虛擬機(jī)虛擬顯卡中的視頻信息及虛擬聲卡中的音頻信息。具體的,在本發(fā)明中當(dāng)用戶通過(guò)客戶端,使用位于網(wǎng)絡(luò)側(cè)的服務(wù)器中的應(yīng)用程序時(shí),可以向服務(wù)器發(fā)送使用請(qǐng)求。當(dāng)服務(wù)器接收到該使用請(qǐng)求后,為該客戶端分配相應(yīng)的虛擬機(jī)并啟動(dòng)。在虛擬機(jī)的操作系統(tǒng)啟動(dòng)的過(guò)程中,無(wú)論其操作系統(tǒng)是否能夠啟動(dòng)成功,只要獨(dú)立于虛擬機(jī)的采集模塊檢測(cè)到其虛擬聲卡和虛擬顯卡啟動(dòng)成功后,即可獲取該虛擬機(jī)的虛擬聲卡和虛擬顯卡中的音頻信息和視頻信息,此時(shí)該虛擬聲卡和虛擬顯卡中的視頻信息為該虛擬機(jī)處于實(shí)模式(實(shí)模式為虛擬機(jī)啟動(dòng)過(guò)程中其CPU啟動(dòng)時(shí)的模式)時(shí),其播放的音頻信息及當(dāng)前桌面實(shí)際顯示的視頻信息。S302 :對(duì)獲取的所述視頻彳目息和首頻彳目息進(jìn)行編碼。當(dāng)獲取了虛擬機(jī)的視頻信息和音頻信息后,對(duì)該視頻信息和音頻信息進(jìn)行編碼,在進(jìn)行編碼時(shí),為了保證客戶端能夠正常的解碼,可以根據(jù)客戶端的解碼能力,采用相應(yīng)的編碼方式對(duì)視頻信息和音頻信息進(jìn)行編碼。該客戶端的解碼能力可以攜帶在使用請(qǐng)求中發(fā)送給服務(wù)器,或者,服務(wù)器按照客戶端的最低解碼能力進(jìn)行編碼。其中,在進(jìn)行編碼時(shí),可以將視頻信息和音頻信息編碼為H. 264格式,或者活動(dòng)圖像專家組(Moving Picture Experts Group, MPEG)格式。S303:根據(jù)保存的虛擬機(jī)及客戶端之間的對(duì)應(yīng)關(guān)系,將編碼后的視頻信息和音頻信息發(fā)送給對(duì)應(yīng)的客戶端。由于服務(wù)器同時(shí)為多個(gè)客戶端提供服務(wù),在進(jìn)行數(shù)據(jù)發(fā)送時(shí),需要確定將該編碼后的視頻信息和音頻信息發(fā)送給哪個(gè)客戶端,具體的在本發(fā)明中,在服務(wù)器的發(fā)送模塊中保存有虛擬機(jī)及客戶端的對(duì)應(yīng)關(guān)系,具體的可以保存虛擬機(jī)的標(biāo)識(shí)信息與客戶端的IP地址之間的對(duì)應(yīng)關(guān)系,根據(jù)保存的該對(duì)應(yīng)關(guān)系,將編碼后的虛擬機(jī)的視頻信息和音頻信息發(fā)送給對(duì)應(yīng)的客戶端。在本發(fā)明中由于該管理后臺(tái)與每臺(tái)虛擬機(jī)、采集模塊、編碼模塊和發(fā)送模塊之間都有連接,并且可以對(duì)虛擬機(jī)、采集模塊、編碼模塊和發(fā)送模塊之間的通信進(jìn)行控制。當(dāng)虛擬機(jī)的虛擬顯卡和虛擬聲卡啟動(dòng)成功后,虛擬機(jī)當(dāng)前桌面顯示的視頻信息發(fā)送到虛擬顯卡,當(dāng)前的語(yǔ)音信息發(fā)送到虛擬聲卡,并生成通知信息,通知采集模塊和管理后臺(tái);采集模塊根據(jù)該通知信息,檢測(cè)到該虛擬機(jī)的虛擬聲卡和虛擬顯卡已經(jīng)啟動(dòng)成功,獲取該虛擬機(jī)的視頻信息和音頻信息,并將獲取的該信息發(fā)送到編碼模塊編碼;編碼后該信息發(fā)送到發(fā)送模塊,由管理后臺(tái)告知該發(fā)送模塊當(dāng)前該信息歸屬的虛擬機(jī)的信息,發(fā)送模塊根據(jù)保存的虛擬機(jī)及客戶端的對(duì)應(yīng)關(guān)系,向?qū)?yīng)的客戶端送該編碼后的信息。另外,由于該采集模塊會(huì)按照設(shè)定的時(shí)間間隔從虛擬聲卡中獲取相應(yīng)的音頻信息,因此當(dāng)該采集模塊獲取都虛擬聲卡中的音頻信息時(shí),確定該虛擬機(jī)的虛擬聲卡和虛擬顯卡已經(jīng)啟動(dòng)成功。圖4為本發(fā)明實(shí)施例提供的基于虛擬機(jī)的應(yīng)用數(shù)據(jù)的另一提供過(guò)程,該過(guò)程包括 以下步驟S401 :用戶通過(guò)客戶端向服務(wù)器發(fā)送某一應(yīng)用程序的使用請(qǐng)求,服務(wù)器接收到該使用請(qǐng)求后,通過(guò)管理后臺(tái)構(gòu)建虛擬機(jī),并將構(gòu)建的虛擬機(jī)分配給該客戶端,同時(shí)保存該虛擬機(jī)的標(biāo)識(shí)信息及該客戶端的IP地址的對(duì)應(yīng)關(guān)系,并將該對(duì)應(yīng)關(guān)系發(fā)送到發(fā)送模塊。S402:服務(wù)器構(gòu)建該虛擬機(jī)后,該虛擬機(jī)的操作系統(tǒng)開(kāi)始啟動(dòng),在其操作系統(tǒng)還處于實(shí)模式中時(shí),其虛擬顯卡和虛擬聲卡已經(jīng)啟動(dòng)成功,此時(shí)虛擬機(jī)將其當(dāng)前運(yùn)行狀態(tài)的視頻信息發(fā)送到其虛擬顯卡,將其音頻信息發(fā)送到其虛擬聲卡。S403:虛擬機(jī)向服務(wù)器中的管理后臺(tái)和采集模塊發(fā)送其虛擬聲卡和虛擬顯卡啟動(dòng)成功的通知信息,采集模塊根據(jù)該通知信息,檢測(cè)該虛擬機(jī)的虛擬聲卡和虛擬顯卡啟動(dòng)成功,采集模塊接收啟動(dòng)后的虛擬顯卡發(fā)送的視頻信息,并按照設(shè)定的時(shí)間間隔從虛擬聲卡中獲取相應(yīng)的音頻信息。S404 :采集模塊將獲取的視頻信息和音頻信息發(fā)送到編碼模塊,編碼模塊對(duì)該視頻信息和音頻信息進(jìn)行編碼,并將編碼后的視頻信息和音頻信息發(fā)送到發(fā)送模塊。S405:管理后臺(tái)告知該發(fā)送模塊當(dāng)前該信息歸屬的虛擬機(jī)的信息,發(fā)送模塊根據(jù)保存的虛擬機(jī)及客戶端的對(duì)應(yīng)關(guān)系,向?qū)?yīng)的客戶端送該編碼后的信息,客戶端接收到該編碼后的視頻信息和音頻信息后,對(duì)其進(jìn)行解碼并提供給用戶。S406:用戶根據(jù)當(dāng)前客戶端界面上顯示的信息,判斷服務(wù)器中的虛擬機(jī)的操作系統(tǒng)啟動(dòng)成功,并且其應(yīng)用程序已被調(diào)用時(shí),通過(guò)客戶端向該服務(wù)器發(fā)送對(duì)該應(yīng)用程序的操作請(qǐng)求。S407:服務(wù)器的管理后臺(tái)接收到操作請(qǐng)求,并判斷已經(jīng)為該客戶端構(gòu)建了虛擬機(jī)時(shí),根據(jù)保存的虛擬機(jī)及客戶端的對(duì)應(yīng)關(guān)系,將解析后的該操作請(qǐng)求發(fā)送到對(duì)應(yīng)的虛擬機(jī)。S408:虛擬機(jī)接收到該操作請(qǐng)求后,根據(jù)該操作請(qǐng)求進(jìn)行相應(yīng)控制,將控制后的生成的視頻信息發(fā)送給自身的虛擬顯卡,并將控制后生成的音頻信息發(fā)送給自身的虛擬聲卡。S409:虛擬機(jī)向采集模塊和管理后臺(tái)發(fā)送通知信息,采集模塊根據(jù)該通知信息按照設(shè)定的時(shí)間間隔從虛擬聲卡中獲取相應(yīng)的音頻信息,并接收虛擬顯卡發(fā)送的視頻信息。
S410 :采集模塊將獲取的視頻信息和音頻信息發(fā)送到編碼模塊,編碼模塊對(duì)該視頻信息和音頻信息進(jìn)行編碼,并將編碼后的視頻信息和音頻信息發(fā)送到發(fā)送模塊。S411 :管理后臺(tái)告知該發(fā)送模塊當(dāng)前該信息歸屬的虛擬機(jī)的信息,發(fā)送模塊根據(jù)保存的虛擬機(jī)及客戶端的對(duì)應(yīng)關(guān)系,向?qū)?yīng)的客戶端送該編碼后的信息,客戶端接收到該編碼后的視頻信息和音頻信息后,對(duì)其進(jìn)行解碼并提供給用戶。本發(fā)明實(shí)施例提供一種基于虛擬機(jī)的應(yīng)用數(shù)據(jù)提供方法、裝置及系統(tǒng),該裝置包括至少一臺(tái)虛擬機(jī)、采集模塊、編碼模塊和發(fā)送模塊,采集模塊檢測(cè)到虛擬機(jī)的虛擬顯卡和虛擬聲卡啟動(dòng)成功時(shí),獲取虛擬顯卡中的視頻信息及虛擬聲卡中的音頻信息,之后通過(guò)編碼模塊對(duì)該信息進(jìn)行編碼,并通過(guò)發(fā)送模塊根據(jù)保存的虛擬機(jī)及客戶端之間的對(duì)應(yīng)關(guān)系,將該編碼后的信息發(fā)送給對(duì)應(yīng)的客戶端。由于在本發(fā)明中服務(wù)器獨(dú)立于每臺(tái)虛擬機(jī)之外安裝采集模塊,無(wú)論虛擬機(jī)的操作系統(tǒng)是否啟動(dòng)成功,只要其虛擬聲卡和虛擬顯卡啟動(dòng)成功后,即可將虛擬機(jī)當(dāng)前的界面顯示的視頻信息,及當(dāng)前播放的音頻信息發(fā)送到客戶端,以便用戶獲知當(dāng)前虛擬機(jī)的狀態(tài),而且用戶也可以及時(shí)的獲取到虛擬機(jī)的操作系統(tǒng)已經(jīng)成 功啟動(dòng)的信息,從而可以使用戶及時(shí)的對(duì)應(yīng)用程序進(jìn)行操作。顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1.一種基于虛擬機(jī)的應(yīng)用數(shù)據(jù)提供裝置,其特征在于,所述系統(tǒng)包括至少一臺(tái)虛擬機(jī)、采集模塊、編碼模塊和發(fā)送模塊; 采集模塊,用于在檢測(cè)到虛擬機(jī)的虛擬顯卡和虛擬聲卡啟動(dòng)成功時(shí),獲取虛擬顯卡中的視頻信息及虛擬聲卡中的音頻信息,并將獲取的視頻信息及音頻信息發(fā)送給編碼模塊; 編碼模塊,用于對(duì)接收到的視頻信息及音頻信息進(jìn)行編碼,并將編碼后的視頻信息和音頻信息發(fā)送給發(fā)送模塊; 發(fā)送模塊,用于根據(jù)保存的虛擬機(jī)及客戶端之間的對(duì)應(yīng)關(guān)系,將接收到的相應(yīng)虛擬機(jī)的編碼后的視頻信息和音頻信息發(fā)送給對(duì)應(yīng)的客戶端。
2.如權(quán)利要求I所述的裝置,其特征在于,所述每臺(tái)虛擬機(jī),用于在其虛擬聲卡和虛擬顯卡啟動(dòng)成功時(shí),將其當(dāng)前運(yùn)行的應(yīng)用程序的視頻信息發(fā)送給所述虛擬顯卡,并將其音頻信息發(fā)送給所述虛擬聲卡,并向所述采集模塊發(fā)送其虛擬顯卡和虛擬聲卡啟動(dòng)成功的通知信息。
3.如權(quán)利要求I所述的裝置,其特征在于,所述系統(tǒng)還包括 管理后臺(tái),用于接收客戶端的使用請(qǐng)求,根據(jù)該請(qǐng)求為所述客戶端分配虛擬機(jī),并保存該虛擬機(jī)與所述客戶端的對(duì)應(yīng)關(guān)系,并將所述對(duì)應(yīng)關(guān)系發(fā)送給發(fā)送模塊。
4.如權(quán)利要求3所述的裝置,其特征在于,所述管理后臺(tái),還用于接收所述客戶端發(fā)送的對(duì)相應(yīng)應(yīng)用程序的操作請(qǐng)求,并根據(jù)保存的虛擬機(jī)及客戶端的對(duì)應(yīng)關(guān)系,將該操作請(qǐng)求發(fā)送給相應(yīng)的虛擬機(jī); 所述虛擬機(jī),還用于根據(jù)接收到的所述操作請(qǐng)求進(jìn)行相應(yīng)控制,將控制后生成的視頻信息發(fā)送給自身的虛擬顯卡,并將控制后生成的音頻信息發(fā)送給自身的虛擬聲卡; 所述采集模塊,還用于獲取所述虛擬機(jī)的虛擬顯卡中的視頻信息及虛擬聲卡中的音頻信息,并將獲取的視頻信息及音頻信息發(fā)送給編碼模塊。
5.如權(quán)利要求I或4所述的裝置,其特征在于,所述采集模塊,具體用于接收啟動(dòng)后的虛擬顯卡發(fā)送的視頻信息,并按照設(shè)定的時(shí)間間隔從虛擬聲卡中獲取相應(yīng)的音頻信息。
6.一種基于虛擬機(jī)的應(yīng)用數(shù)據(jù)提供系統(tǒng),其特征在于,所述系統(tǒng)包括如權(quán)利要求廣5任一所述的裝置及接收所述編碼后的視、音頻信息并解碼顯示的客戶端。
7.一種基于虛擬機(jī)的應(yīng)用數(shù)據(jù)提供方法,其特征在于,所述方法包括 檢測(cè)到虛擬機(jī)的虛擬顯卡和虛擬聲卡啟動(dòng)成功時(shí),獲取該虛擬機(jī)虛擬顯卡中的視頻信息及虛擬聲卡中的音頻信息; 對(duì)獲取的所述視頻信息和音頻信息進(jìn)行編碼; 根據(jù)保存的虛擬機(jī)及客戶端之間的對(duì)應(yīng)關(guān)系,將編碼后的視頻信息和音頻信息發(fā)送給對(duì)應(yīng)的客戶端。
8.如權(quán)利要求7所述的方法,其特征在于,所述方法還包括 接收客戶端發(fā)送的對(duì)虛擬機(jī)的使用請(qǐng)求; 根據(jù)所述使用請(qǐng)求為所述客戶端分配虛擬機(jī),并保存該虛擬機(jī)與所述客戶端的對(duì)應(yīng)關(guān)系O
9.如權(quán)利要求8所述的方法,其特征在于,所述方法還包括 接收客戶端發(fā)送的對(duì)相應(yīng)應(yīng)用程序的操作請(qǐng)求,根據(jù)保存的虛擬機(jī)及客戶端的對(duì)應(yīng)關(guān)系,將該操作請(qǐng)求發(fā)送給相應(yīng)的虛擬機(jī);從所述虛擬機(jī)的虛擬顯卡和虛擬聲卡中,獲取虛擬機(jī)根據(jù)該操作請(qǐng)求進(jìn)行相應(yīng)控制生成的視頻/[目息及首頻彳目息; 對(duì)獲取的該控制生成的視頻信息及音頻信息進(jìn)行編碼后,發(fā)送給所述客戶端。
10.如權(quán)利要求7所述的方法,其特征在于,所述獲取虛擬機(jī)虛擬顯卡中的視頻信息及虛擬聲卡中的音頻信息包括 接收啟動(dòng)后的虛擬顯卡發(fā)送的視頻信息,并按照設(shè)定的時(shí)間間隔從虛擬聲卡中獲取相應(yīng)的音頻信息。
全文摘要
本發(fā)明公開(kāi)了一種基于虛擬機(jī)的應(yīng)用數(shù)據(jù)提供方法、裝置及系統(tǒng),用以解決現(xiàn)有技術(shù)虛擬機(jī)在向客戶端提供應(yīng)用數(shù)據(jù)的過(guò)程中,受其操作系統(tǒng)是否啟動(dòng)成功的影響。該裝置采集模塊檢測(cè)到虛擬機(jī)的虛擬顯卡和虛擬聲卡啟動(dòng)成功時(shí),獲取虛擬顯卡中的視頻信息及虛擬聲卡中的音頻信息,通過(guò)編碼模塊對(duì)該信息編碼并發(fā)送。由于本發(fā)明中獨(dú)立于每臺(tái)虛擬機(jī)之外安裝采集模塊,無(wú)論虛擬機(jī)的操作系統(tǒng)是否啟動(dòng)成功,只要其虛擬聲卡和虛擬顯卡啟動(dòng)成功后,即可將虛擬機(jī)當(dāng)前的界面顯示的視頻信息,當(dāng)前播放的音頻信息發(fā)送到客戶端,以便用戶獲知當(dāng)前虛擬機(jī)的狀態(tài),而且用戶也可以及時(shí)的獲取到虛擬機(jī)的操作系統(tǒng)已經(jīng)成功啟動(dòng)的信息,從而可以使用戶及時(shí)的對(duì)應(yīng)用程序進(jìn)行操作。
文檔編號(hào)H04N21/23GK102917246SQ20121032060
公開(kāi)日2013年2月6日 申請(qǐng)日期2012年8月31日 優(yōu)先權(quán)日2012年8月31日
發(fā)明者劉建華, 邊少君, 劉占, 韓冰 申請(qǐng)人:北京視博云科技有限公司