文|陳婧璇 馬驍 馬立銘 曹三省
當(dāng)前,傳媒機(jī)構(gòu)紛紛啟動(dòng)全媒體化的數(shù)字信息發(fā)布、互動(dòng)、服務(wù)平臺(tái)的建設(shè),其背后的邏輯是將全媒體平臺(tái)作為紐帶,創(chuàng)新傳媒機(jī)構(gòu)的業(yè)務(wù)組合和組織形態(tài),求得全媒體化的內(nèi)容生產(chǎn)、傳播、營銷實(shí)效。大量實(shí)踐證明,要實(shí)現(xiàn)媒體之間的整合、融合,單靠行政命令是難以維持的;以報(bào)網(wǎng)互動(dòng)、報(bào)網(wǎng)融合等層面的手段來推動(dòng),也猶如螞蟻撼大樹,難以實(shí)現(xiàn)目標(biāo)。只有一個(gè)“開放式的信息平臺(tái)”才能完成這一使命,這也是全媒體業(yè)務(wù)運(yùn)營的核心。
針對(duì)不同終端,通過Web App的方式搭建“開放式的信息平臺(tái)”是一個(gè)較為合理的技術(shù)選型。Web App是通過網(wǎng)絡(luò)訪問,通過Web瀏覽器渲染的應(yīng)用程序,瀏覽器端采用的技術(shù)包括HTML/HTML5、CSS3、JavaScript,服務(wù)端技術(shù)包括Java、PHP、ASP等。Web App的優(yōu)點(diǎn)在于開發(fā)成本低、部署及維護(hù)方便,使用Web技術(shù)可輕松完成Web App的開發(fā)??缙脚_(tái)兼容性強(qiáng),通過瀏覽器實(shí)現(xiàn)應(yīng)用的訪問,適用于各種智能設(shè)備,在PC、手機(jī)和其他數(shù)字媒體設(shè)備上都能得到應(yīng)用。
用以支撐Web App渲染呈現(xiàn)與交互響應(yīng)的底層技術(shù)就是瀏覽器內(nèi)核,通過對(duì)瀏覽器內(nèi)核的研究及改進(jìn),可以更好地服務(wù)于全媒體“開放式的信息平臺(tái)”的建設(shè)。
瀏覽器內(nèi)核(Rendering Engine或Layout Engine)是瀏覽器最核心的部分,負(fù)責(zé)解釋頁面語法(HTML、DOM、JavaScript)并渲染網(wǎng)頁(CSS),決定瀏覽器網(wǎng)頁內(nèi)容和頁面格式信息的顯示方式。當(dāng)前的瀏覽器內(nèi)核引擎有Trident,Tasman,Gecko,Presto,Webkit等,其中Trident,Gecko和Webkit幾乎是以三分天下的局勢占據(jù)瀏覽器內(nèi)核市場。
Trident(又稱為MSHTML),中文是三叉戟的意思。是微軟Windows系統(tǒng)搭載的網(wǎng)頁瀏覽器——Internet Explorer的瀏覽器內(nèi)核,從1997年的IE4一直沿用至IE8。Trident是一款開放的內(nèi)核,其接口內(nèi)核的設(shè)計(jì)相當(dāng)成熟,因此有許多非IE的瀏覽器如:傲游、世界之窗瀏覽器、Avant、騰訊TT、Netscape等均采用Trident內(nèi)核。
Trident曾一度借助Windows系統(tǒng)的王者地位而稱霸瀏覽器內(nèi)核市場,但由于微軟長期未更新Trident內(nèi)核,導(dǎo)致Trident曾經(jīng)一度與W3C標(biāo)準(zhǔn)脫節(jié),其大量的Bug和安全問題也一直未能得到及時(shí)的解決。盡管IE7版本中加入了新的技術(shù)和對(duì)網(wǎng)頁標(biāo)準(zhǔn)的支持,但這些變動(dòng)已經(jīng)在相當(dāng)大的程度上落后于其他瀏覽器內(nèi)核。因此,對(duì)瀏覽效果和網(wǎng)頁標(biāo)準(zhǔn)支持的考量逐漸流行,瀏覽器開發(fā)者將注意力投向非Trident內(nèi)核。
Gecko是以C++編寫的開源代碼瀏覽器內(nèi)核,可開發(fā)程度高,由網(wǎng)景通訊公司開發(fā)的,被Netcape6開始采用,F(xiàn)irefox、Mozilla、SeaMonkey、Camino、Sleipnir、Songbird 等均是使用的Gecko內(nèi)核。它提供了一個(gè)豐富的程序界面以供因特網(wǎng)相關(guān)的應(yīng)用程序使用,例如網(wǎng)頁瀏覽器、HTML編輯器、客戶端/服務(wù)器等,支持復(fù)雜的網(wǎng)頁效果和瀏覽器接口。
Gecko也是一個(gè)跨平臺(tái)內(nèi)核,可以在Windows、BSD、Linux、Mac OS X中使用。相比Trident,它解決了對(duì)網(wǎng)頁標(biāo)準(zhǔn)的支持問題,JavaScript腳本處理速度比IE快3倍左右,但也常常出現(xiàn)為了達(dá)到很快的速度而丟失一部分網(wǎng)頁兼容性的問題。
本文闡述了信息傳播領(lǐng)域內(nèi)的“全媒體信息服務(wù)”趨勢,提出針對(duì)不同終端,通過Web App的方式搭建“開放式的信息平臺(tái)”以實(shí)現(xiàn)面向全媒體內(nèi)容發(fā)布的技術(shù)途徑。對(duì)Web App的共性支撐技術(shù)——瀏覽器內(nèi)核進(jìn)行了分析,并對(duì)目前廣泛應(yīng)用的內(nèi)核進(jìn)行了對(duì)比,重點(diǎn)分析了Webkit內(nèi)核的內(nèi)部構(gòu)成。以期對(duì)全媒體時(shí)代的信息傳播應(yīng)用開發(fā)起到推動(dòng)作用。
Webkit是KDE小組的KHTML及KJS引擎衍生而來的瀏覽器內(nèi)核,是Mac OS X平臺(tái)默認(rèn)的瀏覽器,當(dāng)前WebKit支持四種平臺(tái):GTK、QT、Mac OS X和Cygwin。GTK和QT使用的工具為qmake,Mac OS X使用xcodebuild,Cygwin則使用Visual Studio。
基于Webkit內(nèi)核的瀏覽器與其他瀏覽器相比具有耗費(fèi)資源少、支持中文顯示、支持多窗口打開頁面鏈接、圖片渲染速度快的特點(diǎn),并能支持更多的協(xié)議與格式,它推動(dòng)了許多CSS3規(guī)范,并率先采用HTML5規(guī)范。蘋果的Safari、Google Chrome瀏覽器都是基于這個(gè)框架來開發(fā)的。
同Gecko一樣Webkit是開源的內(nèi)核引擎,具有清晰的代碼結(jié)構(gòu),因此相較Trident,Webkit具有跨平臺(tái)支持良好、可移植性強(qiáng)的優(yōu)勢,相較Gecko又具有高效穩(wěn)定、兼容性好、易于維護(hù)的顯著優(yōu)勢,并且在安全性和穩(wěn)定性上都很出色。Webkit的JavaScript腳本處理速度是IE的6倍,當(dāng)年蘋果公司在Gecko和KHTML中選擇后者就是基于其卓越的渲染速度。更重要的是Webkit具有極強(qiáng)可移植性的優(yōu)勢,基于Webkit開發(fā)的瀏覽器能夠移植到臺(tái)式機(jī)、手機(jī)和電視機(jī)頂盒等平臺(tái)中使用,重用本地平臺(tái)服務(wù),并酌情提供友好嵌入的API。故Webkit在手機(jī)上有廣泛的使用,Google的Android,Apple的iPhone,Nokia的s60手機(jī)所適配的瀏覽器均使用Webkit內(nèi)核。
通過比較,針對(duì)多平臺(tái)、能承載多層應(yīng)用、性能優(yōu)良的共性支撐平臺(tái)適合采用Webkit內(nèi)核開源代碼進(jìn)行開發(fā)。
圖1 Webkit基本的體系結(jié)構(gòu)圖
Webkit內(nèi)核引擎包含Webkit,Web core,JavaScript core三大部分。
Webkit:Webkit的每個(gè)子目錄都是對(duì)應(yīng)平臺(tái)的完整實(shí)現(xiàn),定義了與應(yīng)用相關(guān)的一些接口與應(yīng)用程序交互,針對(duì)不同的GUI平臺(tái)都提供了相應(yīng)的實(shí)現(xiàn),位于代碼目錄的最上層。通常Webkit是作為Web core層的客戶端,用于連接Web core和使用Webkit的OS。
JavaScript core:顧名思義是JavaScript引擎對(duì)JavaScript的支持和實(shí)現(xiàn),包括了腳本解釋器、分析器以及執(zhí)行程序,運(yùn)行過程是語法分析、語法樹構(gòu)建、變量檢查、語法樹執(zhí)行。它在平臺(tái)相關(guān)的庫及后臺(tái)庫之上,包含了腳本解釋器、分析器以及執(zhí)行程序。包含WTF庫,該庫提供了各種實(shí)用工具,是完全跨平臺(tái)的,并且可以單獨(dú)利用。
Web core:Webkit最核心的部分,定義了瀏覽器相關(guān)的數(shù)據(jù)IO、頁面加載、腳本分析、UI組織、事件處理、網(wǎng)絡(luò)分析、平臺(tái)相關(guān)的具體實(shí)現(xiàn)等內(nèi)容,提供了所有的渲染邏輯,HTML、DOM、CSS、SVG支持和傳輸,與應(yīng)用層、庫和平臺(tái)都直接相關(guān)。
連線代表Webkit、Web core、JavaScript core與其所依托的平臺(tái)和所使用的庫之間的直接相關(guān)關(guān)系(見圖1)。
基于Webkit開源項(xiàng)目的瀏覽器內(nèi)核有Apple Webkit、Qt Webkit和Chromium Webkit。
Apple Webkit包含最原始的Webkit開源代碼,Apple.Inc把它用作Safari瀏覽器的內(nèi)核并在2006年進(jìn)行開源,Apple Webkit代碼量較Chromuim少,但其編譯環(huán)境要求相對(duì)苛刻。
Chromium Webkit是Google公司開發(fā)的適用于Google Chrome瀏覽器的Webkit布局引擎,采用了新的JavaScript V8。雖然Chromium Webkit代碼量巨大,但是為程序員提供了完整的編譯文檔指導(dǎo)和常見錯(cuò)誤指示,適合開發(fā)。其詳盡代碼注釋也為代碼的分析提供了方便。
Qt Webkit將Webkit引擎進(jìn)行封裝集成到Qt中,因而其開發(fā)步驟非常精簡,GUI的環(huán)境相當(dāng)吸引人,可以幫助開發(fā)人員迅速建立美觀、實(shí)用、強(qiáng)大的用戶接口。Qt將Web與本地內(nèi)容和服務(wù)集成在單一的富應(yīng)用程序當(dāng)中,快速創(chuàng)建整合實(shí)時(shí)web內(nèi)容與服務(wù)的應(yīng)用程序,使用集成在本地代碼中的HTML與JavaScript。由于Qt跨平臺(tái)的特性,它在各種桌面和嵌入式操作系統(tǒng)上都很容易部署。
Apple Webkit, Chromium Webkit和Qt Webkit內(nèi)核基于實(shí)驗(yàn)經(jīng)驗(yàn)的綜合比較如表1所示:
表1
隨著三網(wǎng)融合的推進(jìn)和全媒體時(shí)代的到來,基于Web環(huán)境構(gòu)造的信息服務(wù)形態(tài)將越來越普遍,而Web App的優(yōu)勢完全依賴于強(qiáng)大的瀏覽器內(nèi)核進(jìn)行渲染,因此各大傳媒機(jī)構(gòu)在實(shí)施全媒體戰(zhàn)略過程中,需要在此共性支撐技術(shù)方面投入更多的關(guān)注。而Webkit強(qiáng)大的可移植性能夠?yàn)閃eb App創(chuàng)造更多在移動(dòng)終端上使用的機(jī)會(huì),因此Webkit非常適合為Web App信息服務(wù)應(yīng)用的承載提供共性支撐,現(xiàn)在的高端移動(dòng)設(shè)備如iPad、iPhone及Android系統(tǒng)的內(nèi)置瀏覽器都是基于Webkit內(nèi)核,對(duì)Webkit內(nèi)核的分析對(duì)開發(fā)全媒體“開放式的信息平臺(tái)”有著重要的意義。