基於虛擬通道的Flash對映技術

才智咖 人氣:2.41W

虛擬化領域的一個技術熱點是桌面PC的虛擬化,即虛擬桌面架構(VDI)。虛擬桌面架構解決方案正在幫助企業將其Windows桌面和資料轉變成類似雲的資源,終端使用者能夠在任何裝置上隨時隨地訪問這些資源。

基於虛擬通道的Flash對映技術

然而,終端使用者都希望虛擬桌面的效能和使用者體驗至少和物理桌面一樣好,但是對於某些應用--如視訊播放、網頁Flash播放等等--VDI的使用者體驗均不理想。本文針對VDI環境下網頁Flash視訊播放效果差的問題,提出了一種基於虛擬通道的Flash對映技術,大幅度提升了在VDI環境下播放網頁Flash視訊的效果,提高了VDI環境下的使用者體驗。

一、虛擬化環境

虛擬化是一個表現邏輯群組或電腦資源的子集的程序,使用者可以用比原本的組態更好的方式來存取這些程序。這些資源的新虛擬部份是不受現有資源的架設方式、地域或物理組態所限制。虛擬化技術和雲端計算平臺的結合帶來了全新的資源整合和使用模式,基於虛擬化技術的資源按需分配與排程可以提高雲平臺資源的利用率,提升雲服務的服務質,並降低雲使用者的總體擁有成本。

虛擬桌面架構解決方案正在幫助企業將其Windows桌面和資料轉變成類似雲的資源,終端使用者能夠在任何裝置上隨時隨地訪問這些資源。雖然VDI承諾的資料安全性和更高的資源利用率推動了特定市場中的初期採用,但是它並沒有被整個企業界廣泛採用。這是因為傳統VDI的使用者體驗大大低於本地PC可提供的使用者體驗。尤其是在視訊觀看和Flash播放等富媒體內容時,VDI的使用者體驗更是不可接受的。

二、Flash對映技術

目前,對於在VDI環境下視訊播放已經有了比較成熟的重定向技術。但是對於網頁Flash播放卻一直沒有很好的解決方法。其原因無非有以下幾點:

1.服務端源資料獲取困難

視訊重定向技術是通過使用特殊的分離器和解碼器實現對源資料的獲取,因此只要視訊播放器能夠載入該分離器和解碼器即可獲取視訊源資料。然而,網頁中的Flash播放器是不會載入任何第三方解碼器的,這就造成了幾乎無法獲取視訊源資料。

2.客戶端源資料獲取困難

在多數VDI環境下,客戶端裝置的網路環境是受限的;也就是說,在這種環境下,運行於客戶端裝置的軟體無法任意地訪問位於網際網路的資源,如視訊、音訊等。而網頁上Flash視訊均儲存在網際網路上,這就造成了此類客戶端無法獲取視訊源資料。

3.使用者操控無法獲取

在視訊重定向技術中,當用戶對視訊進行播放、暫停、停止等等操作時,分離器和解碼器會收到通知。然而在Flash視訊中,沒有任何方法能夠獲取使用者所進行的操作。

為了解決以上問題,目前存在一種“Flash增強技術”。該技術通過在伺服器端擷取Flash視訊的繪圖事件,將Flash視訊繪製到螢幕上的資料進行二次編碼,然後再將二次編碼過的資料傳送到客戶端進行播放。這種方法可以在一定程度上解決這些問題,但同時又帶來了其它問題,如伺服器和客戶端資源佔用過高,頻寬佔用也較大,這就對伺服器和客戶端的硬體增加了要求。

但以上幾點並不能說明Flash重定向是不可行的。Flash視訊是通過網頁上的Flash元素進行播放的,而一個Flash元素會對應一個Flash檔案。通過將網頁上的Flash檔案重定向到客戶端本地,理論上可以達到重定向Flash視訊的效果。基於虛擬通道的Flash對映技術實現方法如下:

(1)在服務端編寫瀏覽器外掛,用於獲取播放Flash視訊的Flash檔案的URL;

(2)將Flash檔案URL傳送至客戶端,客戶端建立一個簡單的瀏覽器,使用相同的引數載入該檔案。

理論上講,至此就可以實現Flash檔案的重定向。由於是將Flash檔案重定向至客戶端,所以也就不存在無法獲取視訊源的問題,因為視訊源的獲取將由客戶端的瀏覽器完成。同時,在客戶端呈現的就是Flash視訊播放器介面,使用者將直接對客戶端本地的Flash播放器進行如播放、暫停等等操作,因此也就不存在使用者操作的.問題了。

最後一個問題,即前面所述的網路受限問題,到目前為止還沒有解決。如果客戶端網路受限,那麼執行在客戶端上的瀏覽器將無法直接訪問網際網路,也就無法載入Flash檔案。但此時,服務端的網路是不受限的;也就是說,運行於服務端的軟體可以任意地訪問位於網際網路的資源。據此,使用一種基於虛擬通道的網路代理方法,即可解決上述問題。

基於虛擬通道的網路代理方法,在服務端搭建服務端用基於虛擬通道的特殊代理伺服器(即“服務端代理”),當用戶遠端登入到服務端時啟動,並建立一條特殊代理伺服器專用虛擬通道(即“專用虛擬通道”);在客戶端執行一個客戶端用基於虛擬通道的特殊代理伺服器(即“客戶端代理”),負責代理客戶端中軟體的網路請求;其它客戶端軟體(即“客戶端軟體”)在訪問網際網路資源時,將客戶端代理設定為其代理伺服器,並通過客戶端代理髮送網路請求;客戶端代理接收到來自其它運行於客戶端軟體的網路代理請求後,將該請求通過專用虛擬通道傳送到服務端代理處;服務端代理從專用虛擬通道接收來自客戶端代理的代理請求後,將該請求發向網際網路,並接收來自網際網路的響應;服務端代理接收到來自網際網路的響應後,將該響應通過專用虛擬通道傳送到客戶端代理處;客戶端代理接收到來自專用虛擬通道的響應後,將響應傳送到客戶端軟體,完成一次代理過程。

如此,客戶端可以通過特殊代理從伺服器接收的原始壓縮多媒體流,並在本地解碼顯示。這將減少頻寬的使用,因為在網路上傳輸的資料是被壓縮的視訊,而不是一系列未壓縮的點陣圖。此時頻寬佔用將與從視訊伺服器播放流內容或者通過檔案分享方式播放伺服器上的視訊類似。另外,無論播放視訊的視窗大小如何,甚至是全屏播放,頻寬的佔用率都將保持不變。

這種方法還可以節省伺服器資源,伺服器不再花費CPU資源解碼視訊內容並進行二次編碼,視訊解碼全由客戶端負責。即使是在客戶端上渲染,視訊顯示在螢幕上的內容也將是無縫的。

三、結論

本文使用了一種基於虛擬通道的Flash對映技術,大幅度提升了在VDI環境下播放網頁Flash視訊的效果,提高了VDI環境下的使用者體驗。