邵 珺
(北京數(shù)碼視訊科技股份有限公司,北京 100085)
中間件系統(tǒng)是近兩年國內(nèi)廣電行業(yè)內(nèi)最熱門的技術(shù)及話題之一。2009年ICTC展會上,無論是數(shù)字電視前端硬件廠商還是機頂盒廠商,中間件系統(tǒng)隨處可見。中間件系統(tǒng)的迅速發(fā)展一方面表明國內(nèi)廣電企業(yè)在該領(lǐng)域技術(shù)的長足進步,另一方面顯示出中間件系統(tǒng)在未來數(shù)字電視發(fā)展中的重要地位。
中間件從廣義角度講一般是指嵌入在電視接收終端,位于接收設(shè)備驅(qū)動層軟件之上,隔絕交互應(yīng)用與系統(tǒng)資源的軟件層。它能夠令應(yīng)用程序獨立于接收機硬件和軟件平臺,使不同硬件組成和設(shè)計架構(gòu)的機頂盒均能運行相同的應(yīng)用;同時,不同軟件公司可基于相同的編程接口開發(fā)應(yīng)用程序,且在不同的機頂盒上運行。
盡管中間件只是安裝在數(shù)字電視接收設(shè)備上,但其接收和處理數(shù)據(jù)與前端密切相關(guān),前端系統(tǒng)與接收終端在數(shù)據(jù)格式、播發(fā)協(xié)議上必須協(xié)同一致。然而目前市場上絕大多數(shù)的中間件系統(tǒng)是不含有前端系統(tǒng)的,即便有也僅僅是個簡單的前端播發(fā)設(shè)備,通常稱這種中間件為機頂盒中間件,而擁有完整前端系統(tǒng)以及終端系統(tǒng)、且能實現(xiàn)業(yè)務(wù)可管理、業(yè)務(wù)開發(fā)有規(guī)范的面向運營的中間件則稱為數(shù)字電視中間件。只有數(shù)字電視中間件才是真正適應(yīng)運營商需要,符合數(shù)字電視發(fā)展趨勢的中間件系統(tǒng)。
數(shù)字電視中間件的出現(xiàn)從根本上來說是為了促進增值業(yè)務(wù)的運營,而這也是電視數(shù)字化的出發(fā)點和最終目的。早在20世紀末,許多國外廠家就已經(jīng)開始采用中間件對各自的增值業(yè)務(wù)提供支撐平臺。截至目前,數(shù)字電視中間件的技術(shù)實現(xiàn)方式主要分為兩大類,分別是以HTML+JavaScript技術(shù)為核心的瀏覽器中間件以及以Java技術(shù)為核心的Java中間件。2種實現(xiàn)方式在各自的領(lǐng)域內(nèi)都擁有一定優(yōu)勢,而關(guān)于2種實現(xiàn)方式孰優(yōu)孰劣的爭論也一直沒有平息過。下文將從多個方面就數(shù)字電視中間件的這2種實現(xiàn)方式進行具體分析。
1)編譯語言
盡管Java中間件采用的是Java語言,瀏覽器中間件采用的是HTML+JavaScript語言,但由于應(yīng)用程序均采用解釋性的語言編寫,而兩者又都支持解釋性語言的解析和執(zhí)行,因此兩類中間件均能滿足要求。
2)標(biāo)準性
Java虛擬機本身有較強且完善的技術(shù)規(guī)范,對于多線程、圖形機制等支持較好。在中間件方面也有現(xiàn)成的標(biāo)準可參考,MHP,OCAP及我國的中間件標(biāo)準草案,已經(jīng)有成熟的開發(fā)接口可供使用,可以使應(yīng)用真正做到跨平臺。瀏覽器中間件則一直沒有成型的標(biāo)準。盡管HTML和JavaScript均是由W3C組織公布和維護的標(biāo)準,但沒有一款瀏覽器能夠完全支持W3C公布的標(biāo)準[1]。
鋼筋被人偷的偷拿的拿,油漆、涂料、水泥,但凡能搬得動的,都被人拿了,他們用不了,就拿去賣了。工地上只有幾個人歪在工棚里打牌,民工們不再尊敬爸爸,吹捧他,奉承他,他們只是從撲克上移開一下眼角,掃一掃他,問:“易哥,什么時候發(fā)工錢唦?”
3)系統(tǒng)架構(gòu)
Java中間件采用Java虛擬機的系統(tǒng)架構(gòu),可將應(yīng)用程序和機頂盒底層操作系統(tǒng)、硬件細節(jié)分隔開。瀏覽器中間件本身是基于互聯(lián)網(wǎng)協(xié)議的,技術(shù)比較成熟。但是數(shù)字電視環(huán)境與互聯(lián)網(wǎng)相比具出入較大,因此將瀏覽器嵌入數(shù)字電視的過程中,在技術(shù)規(guī)范上進行了約束和補充。
4)應(yīng)用程序開發(fā)
瀏覽器本身基于互聯(lián)網(wǎng)協(xié)議,技術(shù)成熟、成本低廉。簡單的應(yīng)用程序開發(fā)技術(shù)門檻低。然而HTML+JavaScript中間件只能支持簡單邏輯和基于網(wǎng)頁類型的基本交互型的應(yīng)用。由于應(yīng)用代碼不能跟組、調(diào)試,因此當(dāng)業(yè)務(wù)邏輯較為復(fù)雜時,所有錯誤均須通過讀代碼來解決。而對于Java來說,應(yīng)用代碼可以單步跟蹤、調(diào)試,代碼中的錯誤也可以得到快速解決。
5)圖形界面開發(fā)
HTML非常適合“表現(xiàn)層”的技術(shù),能夠呈現(xiàn)各種信息。同時JavaScript很好地彌補了HTML在邏輯處理方面的弱勢,支持條件判斷、循環(huán)、跳轉(zhuǎn)等。HTML+JavaScript適合編寫應(yīng)用邏輯簡單、界面元素豐富的應(yīng)用。
但瀏覽器界面可定制性差,很少有人會使用HTML和JavaScript來開發(fā)游戲,也正是由于這個原因,才需要在瀏覽器中嵌入Java虛擬機或Flash插件來實現(xiàn)客戶更豐富的用戶體驗。
與Java不同,HTML和JavaScript并沒有一套成型的字節(jié)碼標(biāo)準,瀏覽器需要直接讀取源碼并解釋執(zhí)行,因此增值應(yīng)用本身的源代碼無法收到任何產(chǎn)權(quán)上的保護。而對于Java來說,由于下發(fā)的是字節(jié)碼,因此其對應(yīng)于產(chǎn)權(quán)保護方面要優(yōu)于瀏覽器。
7)穩(wěn)定性
由于瀏覽器中間件是直接解析源代碼的,因此缺乏代碼編譯環(huán)節(jié),無法對代碼的語法錯誤進行檢查,因此應(yīng)用程序中充斥著大量語法錯誤。
而對于Java中間件來說,在源碼到字節(jié)碼的過程中,編譯器會排除所有的語法錯誤,運行時產(chǎn)生的問題基本源于應(yīng)用程序邏輯本身。
8)性能
目前能看到的應(yīng)用中,基于瀏覽器的相對邏輯都比較簡單,因此其速度較快。實際上,由于基于HTML的應(yīng)用主要靠JavaScript編寫,而執(zhí)行JavaScript代碼時,是逐字解釋、執(zhí)行。而Java應(yīng)用是解釋的字節(jié)碼,已經(jīng)經(jīng)過一次編譯的過程,因此,JavaScript的效率要低于Java。
從上述分析中不難發(fā)現(xiàn),瀏覽器中間件與Java中間件各有所長,且到目前為止關(guān)于中間件系統(tǒng)的國家標(biāo)準仍未出臺。因此,運營商勢必面臨如何選擇的難題。針對這種情況,北京數(shù)碼視訊科技股份有限公司率先推出了雙核心的數(shù)字電視中間件系統(tǒng),同時支持HTML+JavaScript技術(shù)以及Java技術(shù)。
圖1所示為數(shù)字電視終端系統(tǒng)內(nèi)部結(jié)構(gòu),虛線內(nèi)部為完整的數(shù)字電視中間件終端系統(tǒng),其中既包括了瀏覽器引擎,也包含了Java虛擬機引擎。Java虛擬機可通過系統(tǒng)優(yōu)化降低硬件要求,提升運行速度。而瀏覽器則提供Java接口,可被Java應(yīng)用程序使用。兩者既各司其職,又可相互調(diào)用。從圖1中也可以清楚地看到中間件系統(tǒng)在整個終端系統(tǒng)中的重要位置。其下層是機頂盒的操作系統(tǒng)、驅(qū)動程序、機頂盒硬件平臺;其上層是各類應(yīng)用程序及增值業(yè)務(wù)。

圖1 數(shù)字電視終端系統(tǒng)內(nèi)部結(jié)構(gòu)圖
此外數(shù)字電視中間件系統(tǒng)中的中間件API可以支持PBP檔次的Java標(biāo)準API、支持國標(biāo)API、支持MIDP2.0標(biāo)準開發(fā)包、兼容MHP;同時擴展API支持USB、攝像頭、無線鼠標(biāo)、硬盤和網(wǎng)絡(luò)安全接入[2]。
圖中中間件系統(tǒng)部分的其他功能模塊也各具特色:
1)GUI:提供圖形開發(fā)支持;具有完善的控件系統(tǒng),支持多窗口、多任務(wù)圖形界面程序開發(fā);擁有獨立的事件管理機制及圖形繪制接口,可在不同的平臺上移植[3]。
2)文件系統(tǒng):提供中間件文件訪問支持;能夠支持內(nèi)存、Flash中的文件訪問;針對機頂盒Flash的平均磨損算法,延長Flash使用壽命。
3)應(yīng)用管理器:負責(zé)各應(yīng)用間的切換,支持HTML應(yīng)用、Java應(yīng)用、內(nèi)嵌應(yīng)用間的切換;支持下載應(yīng)用的簽名、認證,確保應(yīng)用程序的合法性;支持Java應(yīng)用、HTML應(yīng)用間的相互調(diào)用。
雙核心數(shù)字電視中間件相較傳統(tǒng)瀏覽器中間件和Java中間件的優(yōu)勢可以通過表1體現(xiàn)。
雙核心數(shù)字電視中間件將瀏覽器中間件和Java中間件有機結(jié)合在一起,汲取兩者優(yōu)勢,是目前中間件市場上兩大主流技術(shù)良好的融合,并可相互調(diào)用。
對于雙核心數(shù)字電視中間件來說,其技術(shù)實現(xiàn)存在2個難點:一是Java虛擬機與瀏覽器間如何相互調(diào)用;二是在調(diào)用過程中如何最低程度地降低系統(tǒng)的資源消耗。而這2個問題在PC機發(fā)展過程中就已經(jīng)存在并最終被解決。眾所周知,作為Java程序的創(chuàng)始者,Sun公司原本也是做操作系統(tǒng)的,但是在與微軟競爭中沒能占據(jù)市場主導(dǎo)地位,因而開始做Java虛擬機。而當(dāng)Java虛擬機在市場上獲得巨大成功時,微軟也針對Java虛擬機改寫了dll規(guī)范。這也是現(xiàn)在能夠在PC機上實現(xiàn)瀏覽器、Java虛擬機相互調(diào)用的原因。對于雙核心數(shù)字電視中間件來說,只要能將已在PC機上成功應(yīng)用的技術(shù)移植過來就可以解決前面提到的技術(shù)難點。至于對系統(tǒng)的資源消耗則要通過長時間的調(diào)試逐步進行改進。

表1 雙核心數(shù)字電視中間件與傳統(tǒng)瀏覽器中間件、Java中間件對比
雙核心數(shù)字電視中間件系統(tǒng)對于目前風(fēng)風(fēng)火火的中間件市場來說無疑是一抹新亮點。目前市場上兩大主流技術(shù)的完美結(jié)合,不僅解決了運營商對兩種技術(shù)的選擇困惑,也將數(shù)字電視中間件技術(shù)推向一個新的高度。盡管從表面看來數(shù)字電視中間件只在數(shù)字電視系統(tǒng)終端起著非常重要的作用,但事實上應(yīng)當(dāng)從全局的角度去審視其在整個數(shù)字電視前端平臺中的作用。數(shù)字電視中間件系統(tǒng)應(yīng)該是面向運營的中間件,通過它可以進行業(yè)務(wù)推介、管理和規(guī)范前端業(yè)務(wù)開發(fā),并對整個數(shù)字電視前端平臺進行保護。
[1]李華飚.Java中間件技術(shù)及其應(yīng)用開發(fā)[M].北京:中國水利水電出版社,2007.
[2]楊放春.異構(gòu)網(wǎng)絡(luò)中間件和開放式API技術(shù)[M].北京:北京郵電大學(xué)出版社,2007.
[3]廖洪濤.數(shù)字電視交互系統(tǒng)——中間件[M].北京:中國廣播電視出版社,2005.