馬 驍 ,馬立銘,b,曹三省,b
(中國傳媒大學(xué) a.信息工程學(xué)院 b.新媒體研究院,北京 100024)
OTT(Over The Top)業(yè)務(wù)最典型的特征是,其運營者利用網(wǎng)絡(luò)服務(wù)提供商(ISP)的網(wǎng)絡(luò)開展新媒體業(yè)務(wù)[1]。從世界范圍來看,全球OTT有三種發(fā)展模式:第一種是美國完全以互聯(lián)網(wǎng)架構(gòu)為基礎(chǔ)的開放模式;第二種是歐洲的兼顧傳統(tǒng)廣播電視與OTT業(yè)務(wù)的HbbTV模式;第三種則是中國強(qiáng)調(diào)內(nèi)容監(jiān)管的可管可控模式。
美國業(yè)界將數(shù)字電視設(shè)備定義為以開放互聯(lián)網(wǎng)服務(wù)為核心的終端,依托瀏覽器技術(shù)實現(xiàn)業(yè)務(wù)的傳遞與呈現(xiàn)。在該架構(gòu)下,傳統(tǒng)廣電運營商、內(nèi)容提供商、電信運營商、互聯(lián)網(wǎng)企業(yè)、硬件設(shè)備商等產(chǎn)業(yè)鏈各環(huán)節(jié)均可根據(jù)各自的優(yōu)勢條件,直接參與OTT業(yè)務(wù)的運營。因此,這一進(jìn)程推動了OTT業(yè)務(wù)向互聯(lián)網(wǎng)電視、藍(lán)光播放器、PC、iPhone、iPad、Android、Xbox、Wii、PS3等多終端的全面覆蓋。美國OTT行業(yè)的代表企業(yè)有谷歌(Google)、蘋果(Apple)、Netflix、Hulu等。
HbbTV(Hybrid broadcast broadband TV)作為一種混合廣播技術(shù),其與DVB標(biāo)準(zhǔn)相兼容,除最基本的廣播之外,HbbTV在互動媒體服務(wù)方面則有VOD、時移電視、互動廣告、在線購物等應(yīng)用。隨著家庭接入網(wǎng)速度的提高和信號質(zhì)量的改善,基于互聯(lián)網(wǎng)的寬帶媒體也變得越來越可靠。但是歐洲的數(shù)字電視運營商認(rèn)為應(yīng)該以電視服務(wù)為核心,再在此基礎(chǔ)上開展數(shù)字電視增值業(yè)務(wù),對互聯(lián)網(wǎng)應(yīng)用需要進(jìn)行有限度的兼容和采取圍墻式的管理。
中國OTT電視行業(yè)的發(fā)展必須符合中國國情,內(nèi)容的可管可控是必須正視的問題。目前,針對互聯(lián)網(wǎng)電視,國家廣電總局采取牌照制的方式保證了對OTT業(yè)務(wù)的可管可控,由廣電總局認(rèn)可的集成牌照方負(fù)責(zé)提供內(nèi)容播控,且互聯(lián)網(wǎng)電視與牌照方客戶端完全綁定,通過牌照方的集成播控平臺對客戶端實行控制和管理。
本文所提出的面向OTT業(yè)務(wù)的智能電視系統(tǒng)架構(gòu),從技術(shù)上以嵌入式操作系統(tǒng)為基礎(chǔ)[2],通過移植并擴(kuò)展WebKit瀏覽器內(nèi)核以實現(xiàn)OTT業(yè)務(wù)的傳遞與呈現(xiàn)。同時,為遵循我國對開展OTT業(yè)務(wù)所制定的相關(guān)政策要求,本架構(gòu)在設(shè)計上,向互聯(lián)網(wǎng)電視牌照方及電視生產(chǎn)商提供了網(wǎng)絡(luò)管理接口層,支持特定的網(wǎng)絡(luò)接入策略進(jìn)行二次開發(fā),以實現(xiàn)對OTT業(yè)務(wù)的可管可控。
在本架構(gòu)中,基于WebKit瀏覽器內(nèi)核的智能電視應(yīng)用程序基于Web技術(shù)構(gòu)建,利用Web技術(shù)開發(fā)應(yīng)用程序,有著部署成本低、迭代更新快捷、跨平臺等優(yōu)勢,開發(fā)人員通過編寫HTML、CSS、JavaScript代碼即可實現(xiàn)功能邏輯的跨平臺運行。在此種架構(gòu)中,瀏覽器內(nèi)核負(fù)責(zé)網(wǎng)絡(luò)通信、內(nèi)容渲染和腳本解釋運行等內(nèi)部底層工作,并提供人機(jī)界面以呈現(xiàn)頁面及響應(yīng)用戶交互操作。
本架構(gòu)自底向上分別為Linux Core(內(nèi)核)層,Way?land層,Qt Lib層,系統(tǒng)管理層和基于Qt接口的WebKit層,以及JavaScript框架層。圖1展示了本文所提出的系統(tǒng)架構(gòu)。
Linux作為開源操作系統(tǒng)內(nèi)核,廣泛應(yīng)用于嵌入式系統(tǒng)、移動終端、服務(wù)器及個人電腦等領(lǐng)域。選用Linux內(nèi)核作為底層操作系統(tǒng)主要是由于它的開源特性使得系統(tǒng)可以根據(jù)項目的需求進(jìn)行定制。同時,其在ARM架構(gòu)和X86架構(gòu)下都有現(xiàn)成的操作系統(tǒng)作為參考借鑒,例如An?droid,WebOS等[2]。
Linux內(nèi)核層為底層硬件加載了操作系統(tǒng),且為上層的Wayland提供支撐環(huán)境。
Wayland是一個新興的輕量級窗口管理系統(tǒng)。它的架構(gòu)使得它可以直接繪制和合成窗口,這樣帶來的最為直接的好處就是桌面圖形的渲染效率將會非常高。這對于智能電視系統(tǒng)架構(gòu)無疑是一種明顯的優(yōu)勢。
同時在最近的GTK+和Qt 5版本中,已經(jīng)對Wayland提供了相應(yīng)的接口。圖2描述了Wayland的工作模式。
Qt是一套跨平臺的GUI程序開發(fā)框架,本架構(gòu)使用Qt的主要原因是Qt對WebKit的內(nèi)核封裝的較為完善,而且其特有的信號槽技術(shù)使得事件處理得到簡化。
該層基于Qt庫,為整個系統(tǒng)提供內(nèi)容管理、進(jìn)程間的通信、窗口切換等管理功能。其中的網(wǎng)絡(luò)接入管理模塊(Network Acess Manager)通過調(diào)用Qt提供的網(wǎng)絡(luò)管理庫以及相應(yīng)的底層驅(qū)動模塊實現(xiàn)對網(wǎng)絡(luò)接入的管理。在此模塊的基礎(chǔ)上提供相應(yīng)的接口,牌照商和電視生產(chǎn)商可以利用接口層針對特定的網(wǎng)絡(luò)接入策略進(jìn)行二次開發(fā),以實現(xiàn)對OTT業(yè)務(wù)的可管可控。
WebKit內(nèi)核引擎包含WebKit,Web內(nèi)核和JavaScript內(nèi)核三大部分。WebKit層為上層應(yīng)用提供了一個呈現(xiàn)的平臺。使得應(yīng)用的界面通過簡單的CSS與HTML標(biāo)簽得到呈現(xiàn)。相較于傳統(tǒng)的GUI編程,這無疑大大簡化了開發(fā)者的工作量。同時,JavaScript的“無須編譯,解釋執(zhí)行”的特點,縮短了開發(fā)周期。
JavaScript封裝層的作用類似于Windows操作系統(tǒng)下GUI編程的MFC[3]。通過對WebKit層進(jìn)行內(nèi)核級的C++擴(kuò)展開發(fā),使得JavaScript具備一些操控底層硬件的功能,并通過封裝,為上層的開發(fā)者提供API接口,使得應(yīng)用程序的開發(fā)者可以更為方便地進(jìn)行應(yīng)用的開發(fā)。
Qt庫提供了一個名為Qt-Lighthouse窗口系統(tǒng)的抽象層,為Qt圖形庫屏蔽了窗口管理系統(tǒng)的異構(gòu)性,這使得Wayland窗口管理系統(tǒng)對于Qt庫是“透明的”。
針對不同的Wayland模塊,Qt庫也提供了與之對應(yīng)的封裝。在Wayland窗口系統(tǒng)中,Compositor模塊向上層提供顯示服務(wù),對于該模塊,Qt封裝了一層Qt-Compositor作為Qt-Lighthouse訪問Wayland Compositor的接口。顯示 信 息 傳 遞 到 Wayland-client模 塊 ,由 Qt-Lighthouse Wayland Plugin接口獲取,Qt應(yīng)用程序就可以利用Qt-Lighthouse Wayland Plugin的API獲取到顯示信息(如圖3所示)。
系統(tǒng)管理層的功能是管理運行于WebKit環(huán)境之上的多個應(yīng)用程序及實現(xiàn)對各種資源的調(diào)度[4]。
應(yīng)用程序運行在WebKit平臺之上,其資源的調(diào)用需要通過系統(tǒng)管理層。舉例來說,應(yīng)用程序需要打開位于硬盤里的某個文件,則需要向系統(tǒng)管理層發(fā)送請求,由其通知文件管理系統(tǒng)以打開文件。除了文件管理,進(jìn)程的管理、各種應(yīng)用程序間的通信都要通過系統(tǒng)管理層進(jìn)行[5]。系統(tǒng)管理層結(jié)構(gòu)如圖4所示。
網(wǎng)絡(luò)接入管理由位于系統(tǒng)管理層的Network Acess Manager模塊實現(xiàn),其主要目的是為硬件廠商和內(nèi)容的提供方提供一個可以操作網(wǎng)絡(luò)接入方式的有效途徑。Net?work Acess Manager模塊將提供一個編程接口(SDK包),這樣,便可以通過二次開發(fā),定義網(wǎng)絡(luò)接入方式、控制網(wǎng)絡(luò)訪問策略,從而對OTT業(yè)務(wù)在網(wǎng)絡(luò)接入層面進(jìn)行管理。
在本文提出的架構(gòu)中,將提供一個Network Acess In?terface抽象類,提供了包括HTTP協(xié)議的get請求、post請求、是否接入網(wǎng)絡(luò)(Network Accessibility)等在內(nèi)的純虛函數(shù)。內(nèi)容提供方可以通過繼承此抽象類、重寫純虛函數(shù)的方法,按照自己的需求定制網(wǎng)絡(luò)接入服務(wù)的具體邏輯。而Network Acess Manager模塊提供的只是一種如何與本架構(gòu)進(jìn)行交互的“規(guī)范”。
原生的WebKit內(nèi)核主要針對標(biāo)準(zhǔn)瀏覽器進(jìn)行頁面解析及渲染,而針對在智能電視終端上開展的OTT業(yè)務(wù),需要在其支持標(biāo)準(zhǔn)的HTML,CSS和JavaScirpt基礎(chǔ)上進(jìn)行一定的擴(kuò)展開發(fā)[6]。
對WebKit的擴(kuò)展主要有兩個方面,一是擴(kuò)展WebKit從而形成針對智能電視的插件體系,二是擴(kuò)展JavaScript的執(zhí)行上下文(Execution Contexts)。插件的目的在于使WebKit的功能得以擴(kuò)充,完成對智能電視底層資源的調(diào)用。而對JavaScript執(zhí)行上下文的擴(kuò)展是實現(xiàn)JavaScript Encapsulation層的基礎(chǔ)[7]。
利用QwebPluginfactory類,可以定制開發(fā)構(gòu)建出基于QtWebKit的插件體系。通過這種方式,可以在WebKit內(nèi)核中嵌入用C++擴(kuò)展的應(yīng)用程序,實現(xiàn)本地應(yīng)用程序與基于Web的應(yīng)用程序交互。例如:可以用C++編寫存儲介質(zhì)中音視頻文件檢索及訪問的擴(kuò)展,通過插件的方式嵌入到智能電視內(nèi)核中,并通過JavaScript腳本與之進(jìn)行互操作,完成具體業(yè)務(wù)邏輯。以上思路的實現(xiàn)方法是,在QtWebKit提供的API中,向瀏覽器對象模型(BOM)的根節(jié)點window添加擴(kuò)展對象,以該對象為橋梁,即可實現(xiàn)應(yīng)用程序的C++模塊與JavaScript之間的互操作,流程如圖5所示。
在三網(wǎng)融合及新媒體終端不斷涌現(xiàn)等多種因素的帶動下,以互聯(lián)網(wǎng)為基礎(chǔ)而形成的OTT業(yè)務(wù)以其形式多樣、內(nèi)容豐富、交互性強(qiáng)的特點,將成為下一代電視的發(fā)展方向。本文提出的以Linux操作系統(tǒng)為基礎(chǔ),以WebKit內(nèi)核為核心,通過適當(dāng)擴(kuò)展而形成的智能電視架構(gòu),因其開放性和可擴(kuò)展性,為OTT業(yè)務(wù)的開展提供了技術(shù)支撐。
與此同時,在本架構(gòu)設(shè)計中,充分考慮到了對內(nèi)容可管可控的要求,在網(wǎng)絡(luò)接入管理層提供了二次開發(fā)接口,以支持特定的網(wǎng)絡(luò)接入策略,保證內(nèi)容提供方在獲得監(jiān)管部門許可的情況下向用戶推送OTT業(yè)務(wù)。
希望中國OTT業(yè)務(wù)的開展與相關(guān)技術(shù)體系的發(fā)展能夠相互促進(jìn),為推動三網(wǎng)融合起到正向牽引作用。
[1]BERTIN E,CRESPI N,L’HOSTIS M.A few myths about Telco and OTT models[C]//Proc.the 15th International Conference on Intelli?gence in Next Generation Networks,2011.[S.l.]:IEEE Press,2011:6-10.
[2]Apple IOS、Android、WebOS系統(tǒng)體系架構(gòu)對比[EB/OL].[2012-03-03].http://my.oschina.net/zjhe223/blog/13070.
[3]HE Xiangzhen,WU Zhiqiang,MENG Xianghe,et al.Research into mobile learning based on WebOS[C]//Proc.2011 International Con?ference on Internet Technology and Applications(iTAP).[S.l.]:IEEE Press,2011:1-3.
[4]VAHDAT A,ANDERSON T,DAHLIN M,et al.WebOS:operating system services for wide area applications[EB/OL].[2012-01-03].http://www.cs.berkeley.edu/~culler/papers/hpdc98.pdf.
[5]李陽,黃文明.IPTV中EPG模塊的設(shè)計與優(yōu)化[J].電視技術(shù),2011,35(21):73-76.
[6]蔣章概,陳榕.基于CAR構(gòu)件的WebKit本地擴(kuò)展策略[J].計算機(jī)應(yīng)用,2009,29(S2):195-197.
[7]劉小衛(wèi),何海洋.基于WebKit的數(shù)字電視終端軟件[J].中國數(shù)字電視,2011(9):68-69.