來源:互聯網
上載者:User
關鍵字
阿裡雲
亞馬遜
資料中心
英特爾
雲安全
超級電腦
資料中心
雲安全
文/梁捷
自從2011年U3內核發佈之後,就有人問我:「在終端性能和網路環境都越來越好的情況下,直接用用戶端中的內核去進行解析就可以了,UC何必費這麼大勁兒去挑戰雲端架構下的瀏覽器內核呢? 」
其實瀏覽器和網路頻寬之間相當於車和路的關係。 路修寬了並不意味著不會塞車,修路的速度永遠追不上人們買車的速度,更小巧和靈活的車永遠更受歡迎。 這正是我們一直在產品和技術創新上堅持「7S-3C原則」的原因。 做移動應用方向上一定要重視「雲」(Cloud)和「端」(Client)兩種能力。 具體到手機瀏覽器,還要打造自己的內核(Core)技術。
手機瀏覽器發展到今天,逐漸形成了兩大陣營。 一類是以Chrome、Safari、Firefox等為代表的陣營,這些瀏覽器都將內核完全放在終端裡,大多使用開源的WebKit內核。 這類瀏覽器的特點是可以高度還原頁面特性,能解析渲染出和電腦版瀏覽器上一樣的效果。 另一類則是以UC瀏覽器(U2內核)、Opera Mini等瀏覽器為主要代表的陣營,採用伺服器用戶端混合運算(雲端)架構,這類瀏覽器的內核實際在「雲」裡,是通過伺服器對網頁數據進行即時壓縮處理,然後再下發到用戶端, 主要特點是可以快速獲取頁面內容,省錢省電省時間。
雲/端架構讓「 You Can Web」
2004年當我們決心做手機瀏覽器開發時,中國的移動互聯網產業尚未啟蒙。 那時手機上網環境惡劣,硬體設定落後、網路頻寬不足、標準繁雜不一。 在很長一段時間,中國手機上網的資料傳送速率基本是在10kb/s左右,主流手機的CPU最高是幾百kHz不等,可用的RAM大多是幾百KB,作業系統更是繁雜無比,Symbian是屬於相對智慧的。 在這種環境下,使用舊有的設計思路進行手機軟體發展異常艱難。 尤其是想讓手機上網,首先要解決的就是對不同協定網頁的解析問題,HTML、WAP、XML、JavaScript等都需要面對。
為了能把產品做出來,我們設計了一種新的瀏覽器技術架構。 與單機版軟體不同,這種新架構將大部分複雜的運算放在伺服器上完成,這樣就可以順利地在手機上解析Web頁面。 現在將這種技術架構稱之為UC的雲/端架構。 UC瀏覽器以前叫UCweb,就是You Can Web的意思。
如圖1所示,使用者在使用UC瀏覽器流覽Web網頁時,「雲」會先將頁面內容進行轉碼和重排。 例如當頁面出現JavaScript、CSS等手機端無法很好處理的元素時,伺服器會採用高容錯策略進行自動過濾。 當頁面需要顯示圖片時,伺服器會根據終端返回的螢幕參數對圖片進行匹配壓縮。 這樣手機端需要處理的資料繁雜程度就大大降低,對標準協定的支援也提升不止一個檔次。 考慮到上網流覽頁面的特性,所有伺服器處理工作都是即時的,即:基於雲端架構的手機瀏覽器,實際上將自己的一部分內核放在了「雲」——也就是伺服器裡。
圖1 U2內核架構
但挑戰同時而至,由於手機終端和網路伺服器混合運算的手機瀏覽模式前所未有,對「雲」的設計、管理和優化對我們而言也完全是新的世界,其開發和管理的複雜程度大大超過了之前的單機版手機瀏覽器。 比如對於終端和雲端的分散式Cookie等會話機制的維護,涉及每台伺服器對於會話保存、當服務中斷後可跨集群的無縫的恢復、用戶端以及服務端生命週期的同步等複雜技術。 再比如對於經過中轉的性能的保證,要確保單台伺服器的單個事務在平均回應1秒以內,包括向網站拿網頁、解析、排版、圖片處理、會話等複雜過程。
現在回想起來,雖然初期的研發艱難,但正是這種當時看來很冒險的技術架構,改變了中國使用者的手機上網體驗,培育了中國第一批手機上網使用者。 後來,很多廠商實際上都採用了類似的架構做手機瀏覽器。
既在「雲」,也在「端」
隨著3G和WiFi網路環境日益普及,我們發現原有用戶端解析引擎已不足以滿足使用者的需求。 3G網路的上網資料傳送速率可以達到數百kbps。 主流終端廠商新發佈的手機開始使用500MHz以上的CPU,RAM也大都在300MB以上,4寸左右的觸控式螢幕已進入主流人群的手中。 人們使用手機的習慣,以及對手機功能的需求都開始發生變化。
另一個重大變化是HTML5。 HTML5一個很重要的特點是,要求瀏覽器能夠直接支援以標籤形式播放視頻、音訊,支援用標籤形式製作動畫等,這對瀏覽器在本地用戶端的支援上提出了一個挑戰。
正是預見到了這些可能的變化,我們從2008年起組織了一個單獨的團隊,歷時3年打造了新一代手機瀏覽器內核U3。 U3內核將原先主要放在「雲」的頁面解析功能,向本地用戶端做了相應遷移。
圖2 U3內核架構
如圖2所示,第三代瀏覽器的雲端架構採用了新的壓縮技術——「無損雲壓縮引擎」,同時對頁面的解析和渲染不再依靠伺服器,而是依靠U3內核。 與U2內核的雲壓縮引擎不同,無損雲壓縮引擎不會對頁面進行轉碼,而只對頁面中的部分可壓縮元素進行處理,發送到「端」之後,U3內核再對壓縮過的資料進行解包。 可見通過「雲」和「端」的能力增強,讓使用U3內核的瀏覽器不僅可以對網頁進行無損的完全解析,而且可以實現雲端架構獨有的省流量、高效等特點。 在同等解析效果情況下,可以比不採用無損雲壓縮引擎的手機瀏覽器節省一半以上的流量。
U3取這樣的架構也是希望能夠搭建一個開放的Web App平臺。 U3可以將一些手機特有的系統功能介面開放給開發者,如攝像頭、話筒、感應器、位置資訊等。 開發者可以直接通過Web方式調用,而無需研發複雜的用戶端。 這樣就可以繞開系統和終端差異,讓開發效率更高,更新部署更簡單靈活。
瀏覽器內核之爭之我見
在U3內核發佈後,一些國內瀏覽器廠商也紛紛表示要打造自己的瀏覽器內核。 而事實上,大多數手機瀏覽器產品都是基於WebKit做二次研發。 這個問題始終讓人一頭霧水。
從本質上說,WebKit是由蘋果首先推動的開源內核專案,源自于KDE。 2005年,蘋果宣佈將WebKit完全開源。 目前還有Google、Nokia、RIM等正在參與和推進WebKit專案。 任何人都可以在遵守其協定的情況下將WebKit拿來做二次研發。 當前應用於Chrome、Safari和大多數行動裝置的系統瀏覽器內核都是基於WebKit內核開發的。 很多國內手機瀏覽器廠商也都是在這麼做的。
由於WebKit的存在,一個新生瀏覽器的「製作」流程,只需要設計好UI介面,將WebKit進行編譯,就可以「做出」一個瀏覽器。 可是僅僅將一個原生內核重新編譯,就宣稱自己有「自主內核」是不恰當的,這樣最多隻能起到一種包裝作用。 這些瀏覽器的性能仍然會受制于所使用的原生內核。
我認為,一款瀏覽器產品是否擁有「核能力」,需要考察以下幾個實力:跨平臺能力、技術創新力、產品國際化能力和安全能力。 跨平臺能力是任何一款內核級產品所必須具備的能力,可以針對不同的作業系統快速發佈擁有一致體驗的產品。 技術創新力是企業能否針對新的終端特性、使用者需求做出的創新性的產品,如無損雲加速、系統自我調整能力、語音控制等。
毫無疑問移動互聯網是未來十年成長速度最快的行業之一,瀏覽器是這個行業中為數不多的平臺級產品。 作為一家源自中國的技術公司,我們希望能用我們的技術實力為中國的互聯網公司在全球拼出一片市場。 我也期望所有的瀏覽器公司都能多在自己內核上下功夫,打造真正的「核能力」。
作者梁捷,UC(優視科技)技術總裁。 1998年畢業于華南理工大學電腦專業,耕耘于中國的電信和互聯網市場,在電信及網路計算領域擁有超過10年的技術研發和管理經驗。
本文選自《程式師》雜誌2012年03期,更多精彩內容敬請關注03期雜誌
(責任編輯:蒙遺善)