基于虛擬通道的Flash映射技術(shù)
虛擬化領(lǐng)域的一個(gè)技術(shù)熱點(diǎn)是桌面PC的虛擬化,即虛擬桌面架構(VDI)。虛擬桌面架構解決方案正在幫助企業(yè)將其Windows桌面和數據轉變成類(lèi)似云的資源,最終用戶(hù)能夠在任何設備上隨時(shí)隨地訪(fǎng)問(wèn)這些資源。
然而,最終用戶(hù)都希望虛擬桌面的性能和用戶(hù)體驗至少和物理桌面一樣好,但是對于某些應用——如視頻播放、網(wǎng)頁(yè)Flash播放等等——VDI的用戶(hù)體驗均不理想。本文針對VDI環(huán)境下網(wǎng)頁(yè)Flash視頻播放效果差的問(wèn)題,提出了一種基于虛擬通道的Flash映射技術(shù),大幅度提升了在VDI環(huán)境下播放網(wǎng)頁(yè)Flash視頻的效果,提高了VDI環(huán)境下的用戶(hù)體驗。
一、虛擬化環(huán)境
虛擬化是一個(gè)表現邏輯群組或電腦資源的子集的進(jìn)程,用戶(hù)可以用比原本的組態(tài)更好的方式來(lái)存取這些進(jìn)程。這些資源的新虛擬部份是不受現有資源的架設方式、地域或物理組態(tài)所限制。虛擬化技術(shù)和云計算平臺的結合帶來(lái)了全新的資源整合和使用模式,基于虛擬化技術(shù)的資源按需分配與調度可以提高云平臺資源的利用率,提升云服務(wù)的服務(wù)質(zhì),并降低云用戶(hù)的總體擁有成本。
虛擬桌面架構解決方案正在幫助企業(yè)將其Windows桌面和數據轉變成類(lèi)似云的資源,最終用戶(hù)能夠在任何設備上隨時(shí)隨地訪(fǎng)問(wèn)這些資源。雖然VDI承諾的數據安全性和更高的資源利用率推動(dòng)了特定市場(chǎng)中的初期采用,但是它并沒(méi)有被整個(gè)企業(yè)界廣泛采用。這是因為傳統VDI的用戶(hù)體驗大大低于本地PC可提供的用戶(hù)體驗。尤其是在視頻觀(guān)看和Flash播放等富媒體內容時(shí),VDI的用戶(hù)體驗更是不可接受的。
二、Flash映射技術(shù)
目前,對于在VDI環(huán)境下視頻播放已經(jīng)有了比較成熟的重定向技術(shù)。但是對于網(wǎng)頁(yè)Flash播放卻一直沒(méi)有很好的解決方法。其原因無(wú)非有以下幾點(diǎn):
1.服務(wù)端源數據獲取困難
視頻重定向技術(shù)是通過(guò)使用特殊的分離器和解碼器實(shí)現對源數據的獲取,因此只要視頻播放器能夠加載該分離器和解碼器即可獲取視頻源數據。然而,網(wǎng)頁(yè)中的Flash播放器是不會(huì )加載任何第三方解碼器的,這就造成了幾乎無(wú)法獲取視頻源數據。
2.客戶(hù)端源數據獲取困難
在多數VDI環(huán)境下,客戶(hù)端設備的網(wǎng)絡(luò )環(huán)境是受限的;也就是說(shuō),在這種環(huán)境下,運行于客戶(hù)端設備的軟件無(wú)法任意地訪(fǎng)問(wèn)位于互聯(lián)網(wǎng)的資源,如視頻、音頻等。而網(wǎng)頁(yè)上Flash視頻均保存在互聯(lián)網(wǎng)上,這就造成了此類(lèi)客戶(hù)端無(wú)法獲取視頻源數據。
3.用戶(hù)操控無(wú)法獲取
在視頻重定向技術(shù)中,當用戶(hù)對視頻進(jìn)行播放、暫停、停止等等操作時(shí),分離器和解碼器會(huì )收到通知。然而在Flash視頻中,沒(méi)有任何方法能夠獲取用戶(hù)所進(jìn)行的操作。
為了解決以上問(wèn)題,目前存在一種“Flash增強技術(shù)”。該技術(shù)通過(guò)在服務(wù)器端截取Flash視頻的繪圖事件,將Flash視頻繪制到屏幕上的數據進(jìn)行二次編碼,然后再將二次編碼過(guò)的數據發(fā)送到客戶(hù)端進(jìn)行播放。這種方法可以在一定程度上解決這些問(wèn)題,但同時(shí)又帶來(lái)了其它問(wèn)題,如服務(wù)器和客戶(hù)端資源占用過(guò)高,帶寬占用也較大,這就對服務(wù)器和客戶(hù)端的硬件增加了要求。
但以上幾點(diǎn)并不能說(shuō)明Flash重定向是不可行的。Flash視頻是通過(guò)網(wǎng)頁(yè)上的Flash元素進(jìn)行播放的,而一個(gè)Flash元素會(huì )對應一個(gè)Flash文件。通過(guò)將網(wǎng)頁(yè)上的Flash文件重定向到客戶(hù)端本地,理論上可以達到重定向Flash視頻的效果?;?a class="contentlabel" href="http://dyxdggzs.com/news/listbylabel/label/虛擬通道">虛擬通道的Flash映射技術(shù)實(shí)現方法如下:
(1)在服務(wù)端編寫(xiě)瀏覽器插件,用于獲取播放Flash視頻的Flash文件的URL;
(2)將Flash文件URL發(fā)送至客戶(hù)端,客戶(hù)端創(chuàng )建一個(gè)簡(jiǎn)單的瀏覽器,使用相同的參數加載該文件。
理論上講,至此就可以實(shí)現Flash文件的重定向。由于是將Flash文件重定向至客戶(hù)端,所以也就不存在無(wú)法獲取視頻源的問(wèn)題,因為視頻源的獲取將由客戶(hù)端的瀏覽器完成。同時(shí),在客戶(hù)端呈現的就是Flash視頻播放器界面,用戶(hù)將直接對客戶(hù)端本地的Flash播放器進(jìn)行如播放、暫停等等操作,因此也就不存在用戶(hù)操作的問(wèn)題了。
最后一個(gè)問(wèn)題,即前面所述的網(wǎng)絡(luò )受限問(wèn)題,到目前為止還沒(méi)有解決。如果客戶(hù)端網(wǎng)絡(luò )受限,那么運行在客戶(hù)端上的瀏覽器將無(wú)法直接訪(fǎng)問(wèn)互聯(lián)網(wǎng),也就無(wú)法加載Flash文件。但此時(shí),服務(wù)端的網(wǎng)絡(luò )是不受限的;也就是說(shuō),運行于服務(wù)端的軟件可以任意地訪(fǎng)問(wèn)位于互聯(lián)網(wǎng)的資源。據此,使用一種基于虛擬通道的網(wǎng)絡(luò )代理方法,即可解決上述問(wèn)題。
基于虛擬通道的網(wǎng)絡(luò )代理方法,在服務(wù)端搭建服務(wù)端用基于虛擬通道的特殊代理服務(wù)器(即“服務(wù)端代理”),當用戶(hù)遠程登錄到服務(wù)端時(shí)啟動(dòng),并建立一條特殊代理服務(wù)器專(zhuān)用虛擬通道(即“專(zhuān)用虛擬通道”);在客戶(hù)端運行一個(gè)客戶(hù)端用基于虛擬通道的特殊代理服務(wù)器(即“客戶(hù)端代理”),負責代理客戶(hù)端中軟件的網(wǎng)絡(luò )請求;其它客戶(hù)端軟件(即“客戶(hù)端軟件”)在訪(fǎng)問(wèn)互聯(lián)網(wǎng)資源時(shí),將客戶(hù)端代理設置為其代理服務(wù)器,并通過(guò)客戶(hù)端代理發(fā)送網(wǎng)絡(luò )請求;客戶(hù)端代理接收到來(lái)自其它運行于客戶(hù)端軟件的網(wǎng)絡(luò )代理請求后,將該請求通過(guò)專(zhuān)用虛擬通道發(fā)送到服務(wù)端代理處;服務(wù)端代理從專(zhuān)用虛擬通道接收來(lái)自客戶(hù)端代理的代理請求后,將該請求發(fā)向互聯(lián)網(wǎng),并接收來(lái)自互聯(lián)網(wǎng)的響應;服務(wù)端代理接收到來(lái)自互聯(lián)網(wǎng)的響應后,將該響應通過(guò)專(zhuān)用虛擬通道發(fā)送到客戶(hù)端代理處;客戶(hù)端代理接收到來(lái)自專(zhuān)用虛擬通道的響應后,將響應發(fā)送到客戶(hù)端軟件,完成一次代理過(guò)程。
如此,客戶(hù)端可以通過(guò)特殊代理從服務(wù)器接收的原始壓縮多媒體流,并在本地解碼顯示。這將減少帶寬的使用,因為在網(wǎng)絡(luò )上傳輸的數據是被壓縮的視頻,而不是一系列未壓縮的位圖。此時(shí)帶寬占用將與從視頻服務(wù)器播放流內容或者通過(guò)文件共享方式播放服務(wù)器上的視頻類(lèi)似。另外,無(wú)論播放視頻的窗口大小如何,甚至是全屏播放,帶寬的占用率都將保持不變。
這種方法還可以節省服務(wù)器資源,服務(wù)器不再花費CPU資源解碼視頻內容并進(jìn)行二次編碼,視頻解碼全由客戶(hù)端負責。即使是在客戶(hù)端上渲染,視頻顯示在屏幕上的內容也將是無(wú)縫的。
三、結論
本文使用了一種基于虛擬通道的Flash映射技術(shù),大幅度提升了在VDI環(huán)境下播放網(wǎng)頁(yè)Flash視頻的效果,提高了VDI環(huán)境下的用戶(hù)體驗。
評論