馬 驍 ,馬立銘,b,曹三省,b
(中國傳媒大學(xué) a.信息工程學(xué)院 b.新媒體研究院,北京 100024)
OTT(Over The Top)業(yè)務(wù)最典型的特征是,其運(yùn)營者利用網(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ù)實(shí)現(xiàn)業(yè)務(wù)的傳遞與呈現(xiàn)。在該架構(gòu)下,傳統(tǒng)廣電運(yùn)營商、內(nèi)容提供商、電信運(yùn)營商、互聯(lián)網(wǎng)企業(yè)、硬件設(shè)備商等產(chǎn)業(yè)鏈各環(huán)節(jié)均可根據(jù)各自的優(yōu)勢(shì)條件,直接參與OTT業(yè)務(wù)的運(yùn)營。因此,這一進(jìn)程推動(dòng)了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在互動(dòng)媒體服務(wù)方面則有VOD、時(shí)移電視、互動(dòng)廣告、在線購物等應(yīng)用。隨著家庭接入網(wǎng)速度的提高和信號(hào)質(zhì)量的改善,基于互聯(lián)網(wǎng)的寬帶媒體也變得越來越可靠。但是歐洲的數(shù)字電視運(yùn)營商認(rèn)為應(yīng)該以電視服務(wù)為核心,再在此基礎(chǔ)上開展數(shù)字電視增值業(yè)務(wù),對(duì)互聯(lián)網(wǎng)應(yīng)用需要進(jìn)行有限度的兼容和采取圍墻式的管理。
中國OTT電視行業(yè)的發(fā)展必須符合中國國情,內(nèi)容的可管可控是必須正視的問題。目前,針對(duì)互聯(lián)網(wǎng)電視,國家廣電總局采取牌照制的方式保證了對(duì)OTT業(yè)務(wù)的可管可控,由廣電總局認(rèn)可的集成牌照方負(fù)責(zé)提供內(nèi)容播控,且互聯(lián)網(wǎng)電視與牌照方客戶端完全綁定,通過牌照方的集成播控平臺(tái)對(duì)客戶端實(shí)行控制和管理。
本文所提出的面向OTT業(yè)務(wù)的智能電視系統(tǒng)架構(gòu),從技術(shù)上以嵌入式操作系統(tǒng)為基礎(chǔ)[2],通過移植并擴(kuò)展WebKit瀏覽器內(nèi)核以實(shí)現(xiàn)OTT業(yè)務(wù)的傳遞與呈現(xiàn)。同時(shí),為遵循我國對(duì)開展OTT業(yè)務(wù)所制定的相關(guān)政策要求,本架構(gòu)在設(shè)計(jì)上,向互聯(lián)網(wǎng)電視牌照方及電視生產(chǎn)商提供了網(wǎng)絡(luò)管理接口層,支持特定的網(wǎng)絡(luò)接入策略進(jìn)行二次開發(fā),以實(shí)現(xiàn)對(duì)OTT業(yè)務(wù)的可管可控。
在本架構(gòu)中,基于WebKit瀏覽器內(nèi)核的智能電視應(yīng)用程序基于Web技術(shù)構(gòu)建,利用Web技術(shù)開發(fā)應(yīng)用程序,有著部署成本低、迭代更新快捷、跨平臺(tái)等優(yōu)勢(shì),開發(fā)人員通過編寫HTML、CSS、JavaScript代碼即可實(shí)現(xiàn)功能邏輯的跨平臺(tái)運(yùn)行。在此種架構(gòu)中,瀏覽器內(nèi)核負(fù)責(zé)網(wǎng)絡(luò)通信、內(nèi)容渲染和腳本解釋運(yùn)行等內(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)、移動(dòng)終端、服務(wù)器及個(gè)人電腦等領(lǐng)域。選用Linux內(nèi)核作為底層操作系統(tǒng)主要是由于它的開源特性使得系統(tǒng)可以根據(jù)項(xiàng)目的需求進(jìn)行定制。同時(shí),其在ARM架構(gòu)和X86架構(gòu)下都有現(xiàn)成的操作系統(tǒng)作為參考借鑒,例如An?droid,WebOS等[2]。
Linux內(nèi)核層為底層硬件加載了操作系統(tǒng),且為上層的Wayland提供支撐環(huán)境。
Wayland是一個(gè)新興的輕量級(jí)窗口管理系統(tǒng)。它的架構(gòu)使得它可以直接繪制和合成窗口,這樣帶來的最為直接的好處就是桌面圖形的渲染效率將會(huì)非常高。這對(duì)于智能電視系統(tǒng)架構(gòu)無疑是一種明顯的優(yōu)勢(shì)。
同時(shí)在最近的GTK+和Qt 5版本中,已經(jīng)對(duì)Wayland提供了相應(yīng)的接口。圖2描述了Wayland的工作模式。
Qt是一套跨平臺(tái)的GUI程序開發(fā)框架,本架構(gòu)使用Qt的主要原因是Qt對(duì)WebKit的內(nèi)核封裝的較為完善,而且其特有的信號(hào)槽技術(shù)使得事件處理得到簡(jiǎn)化。
該層基于Qt庫,為整個(gè)系統(tǒng)提供內(nèi)容管理、進(jìn)程間的通信、窗口切換等管理功能。其中的網(wǎng)絡(luò)接入管理模塊(Network Acess Manager)通過調(diào)用Qt提供的網(wǎng)絡(luò)管理庫以及相應(yīng)的底層驅(qū)動(dòng)模塊實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)接入的管理。在此模塊的基礎(chǔ)上提供相應(yīng)的接口,牌照商和電視生產(chǎn)商可以利用接口層針對(duì)特定的網(wǎng)絡(luò)接入策略進(jìn)行二次開發(fā),以實(shí)現(xiàn)對(duì)OTT業(yè)務(wù)的可管可控。
WebKit內(nèi)核引擎包含WebKit,Web內(nèi)核和JavaScript內(nèi)核三大部分。WebKit層為上層應(yīng)用提供了一個(gè)呈現(xiàn)的平臺(tái)。使得應(yīng)用的界面通過簡(jiǎn)單的CSS與HTML標(biāo)簽得到呈現(xiàn)。相較于傳統(tǒng)的GUI編程,這無疑大大簡(jiǎn)化了開發(fā)者的工作量。同時(shí),JavaScript的“無須編譯,解釋執(zhí)行”的特點(diǎn),縮短了開發(fā)周期。
JavaScript封裝層的作用類似于Windows操作系統(tǒng)下GUI編程的MFC[3]。通過對(duì)WebKit層進(jìn)行內(nèi)核級(jí)的C++擴(kuò)展開發(fā),使得JavaScript具備一些操控底層硬件的功能,并通過封裝,為上層的開發(fā)者提供API接口,使得應(yīng)用程序的開發(fā)者可以更為方便地進(jìn)行應(yīng)用的開發(fā)。
Qt庫提供了一個(gè)名為Qt-Lighthouse窗口系統(tǒng)的抽象層,為Qt圖形庫屏蔽了窗口管理系統(tǒng)的異構(gòu)性,這使得Wayland窗口管理系統(tǒng)對(duì)于Qt庫是“透明的”。
針對(duì)不同的Wayland模塊,Qt庫也提供了與之對(duì)應(yīng)的封裝。在Wayland窗口系統(tǒng)中,Compositor模塊向上層提供顯示服務(wù),對(duì)于該模塊,Qt封裝了一層Qt-Compositor作為Qt-Lighthouse訪問Wayland Compositor的接口。顯示 信 息 傳 遞 到 Wayland-client模 塊 ,由 Qt-Lighthouse Wayland Plugin接口獲取,Qt應(yīng)用程序就可以利用Qt-Lighthouse Wayland Plugin的API獲取到顯示信息(如圖3所示)。
系統(tǒng)管理層的功能是管理運(yùn)行于WebKit環(huán)境之上的多個(gè)應(yīng)用程序及實(shí)現(xiàn)對(duì)各種資源的調(diào)度[4]。
應(yīng)用程序運(yùn)行在WebKit平臺(tái)之上,其資源的調(diào)用需要通過系統(tǒng)管理層。舉例來說,應(yīng)用程序需要打開位于硬盤里的某個(gè)文件,則需要向系統(tǒng)管理層發(fā)送請(qǐng)求,由其通知文件管理系統(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模塊實(shí)現(xiàn),其主要目的是為硬件廠商和內(nèi)容的提供方提供一個(gè)可以操作網(wǎng)絡(luò)接入方式的有效途徑。Net?work Acess Manager模塊將提供一個(gè)編程接口(SDK包),這樣,便可以通過二次開發(fā),定義網(wǎng)絡(luò)接入方式、控制網(wǎng)絡(luò)訪問策略,從而對(duì)OTT業(yè)務(wù)在網(wǎng)絡(luò)接入層面進(jìn)行管理。
在本文提出的架構(gòu)中,將提供一個(gè)Network Acess In?terface抽象類,提供了包括HTTP協(xié)議的get請(qǐng)求、post請(qǐng)求、是否接入網(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)核主要針對(duì)標(biāo)準(zhǔn)瀏覽器進(jìn)行頁面解析及渲染,而針對(duì)在智能電視終端上開展的OTT業(yè)務(wù),需要在其支持標(biāo)準(zhǔn)的HTML,CSS和JavaScirpt基礎(chǔ)上進(jìn)行一定的擴(kuò)展開發(fā)[6]。
對(duì)WebKit的擴(kuò)展主要有兩個(gè)方面,一是擴(kuò)展WebKit從而形成針對(duì)智能電視的插件體系,二是擴(kuò)展JavaScript的執(zhí)行上下文(Execution Contexts)。插件的目的在于使WebKit的功能得以擴(kuò)充,完成對(duì)智能電視底層資源的調(diào)用。而對(duì)JavaScript執(zhí)行上下文的擴(kuò)展是實(shí)現(xiàn)JavaScript Encapsulation層的基礎(chǔ)[7]。
利用QwebPluginfactory類,可以定制開發(fā)構(gòu)建出基于QtWebKit的插件體系。通過這種方式,可以在WebKit內(nèi)核中嵌入用C++擴(kuò)展的應(yīng)用程序,實(shí)現(xiàn)本地應(yīng)用程序與基于Web的應(yīng)用程序交互。例如:可以用C++編寫存儲(chǔ)介質(zhì)中音視頻文件檢索及訪問的擴(kuò)展,通過插件的方式嵌入到智能電視內(nèi)核中,并通過JavaScript腳本與之進(jìn)行互操作,完成具體業(yè)務(wù)邏輯。以上思路的實(shí)現(xiàn)方法是,在QtWebKit提供的API中,向?yàn)g覽器對(duì)象模型(BOM)的根節(jié)點(diǎn)window添加擴(kuò)展對(duì)象,以該對(duì)象為橋梁,即可實(shí)現(xiàn)應(yīng)用程序的C++模塊與JavaScript之間的互操作,流程如圖5所示。
在三網(wǎng)融合及新媒體終端不斷涌現(xiàn)等多種因素的帶動(dòng)下,以互聯(lián)網(wǎng)為基礎(chǔ)而形成的OTT業(yè)務(wù)以其形式多樣、內(nèi)容豐富、交互性強(qiáng)的特點(diǎn),將成為下一代電視的發(fā)展方向。本文提出的以Linux操作系統(tǒng)為基礎(chǔ),以WebKit內(nèi)核為核心,通過適當(dāng)擴(kuò)展而形成的智能電視架構(gòu),因其開放性和可擴(kuò)展性,為OTT業(yè)務(wù)的開展提供了技術(shù)支撐。
與此同時(shí),在本架構(gòu)設(shè)計(jì)中,充分考慮到了對(duì)內(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),為推動(dòng)三網(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)對(duì)比[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è)計(jì)與優(yōu)化[J].電視技術(shù),2011,35(21):73-76.
[6]蔣章概,陳榕.基于CAR構(gòu)件的WebKit本地?cái)U(kuò)展策略[J].計(jì)算機(jī)應(yīng)用,2009,29(S2):195-197.
[7]劉小衛(wèi),何海洋.基于WebKit的數(shù)字電視終端軟件[J].中國數(shù)字電視,2011(9):68-69.