陸瑋玨,葉德建
(復(fù)旦大學(xué),上海 201203)
責任編輯:閆雯雯
當前,國際上Apple TV[1]和Google TV分別開始挑戰(zhàn)網(wǎng)絡(luò)電視市場。二者均采用“操作系統(tǒng)+云計算[2]”的軟件技術(shù)開發(fā)平臺推動下一代網(wǎng)絡(luò)電視的發(fā)展,可見后端基礎(chǔ)架構(gòu)云化和前端操作系統(tǒng)這一設(shè)計理念確實是網(wǎng)絡(luò)電視領(lǐng)域未來發(fā)展的趨勢。
而在中國,網(wǎng)絡(luò)電視有一大類是多媒體展示框架應(yīng)用,以數(shù)字標牌為例[3]。在這個細分領(lǐng)域的現(xiàn)狀中,后端基礎(chǔ)架構(gòu)通常部署功能單一的服務(wù)器,負責多媒體的管理和分發(fā),而前端則是硬件異構(gòu)的客戶端設(shè)備,負責計算、解碼和展示。相比于國際趨勢,在中國的多媒體展示框架領(lǐng)域的設(shè)計中,后端基礎(chǔ)架構(gòu)沒有云端的概念,沒有很好地利用其強大的存儲空間和計算能力。而客戶端上也沒有任何可以屏蔽硬件異構(gòu)性的支持軟件平臺,造成軟、硬件緊耦合的開發(fā)模式,同時使得應(yīng)用軟件在不同硬件設(shè)備上的移植性差。
針對這些不足,筆者提出一個面向下一代網(wǎng)絡(luò)電視的多媒體展示框架中間件。作為一個運行在客戶端上的支持軟件平臺,它與云化的后端實時交互,將狀態(tài)等信息存于云端。另外,由于在網(wǎng)絡(luò)電視上的操作系統(tǒng)還不成熟,同時作為多媒體展示應(yīng)用這個細分領(lǐng)域的支持軟件平臺,無需像操作系統(tǒng)那樣強大而全面,因此采用中間件[4]來完成兼容多樣化硬件的跨平臺性。該中間件是核高基重大專項流媒體業(yè)務(wù)中間件的組成部分。
目前在中國的多媒體展示應(yīng)用領(lǐng)域中,中間件需要利用強大的云化后端基礎(chǔ)架構(gòu)來提高因客戶端設(shè)備計算受限引起的較差穩(wěn)健性。并且支持市場上多款主流客戶端硬件設(shè)備,如X86,Sigma,BroadCom,MStar等,還要打破軟、硬件緊耦合的開發(fā)模式,為上層應(yīng)用進行多媒體展示提供統(tǒng)一的接口,從而便于實時性要求高的多媒體展示應(yīng)用的開發(fā)、維護和升級。
因此在設(shè)計之初,筆者針對以下3點進行設(shè)計:
1)首先考慮到客戶端設(shè)備計算和存儲能力有限但解碼能力強,而云端有大量的存儲設(shè)備等特性,本中間件允許實時將客戶端的狀態(tài)交由云端存儲,提高穩(wěn)健性。
2)其次,由于多媒體展示應(yīng)用通常是要將多種類型的媒體分屏組合展示,不同類型的媒體展示的實現(xiàn)大多與硬件相關(guān),而中間件又要對上層應(yīng)用提供統(tǒng)一的接口,因此將多媒體展示中與硬件相關(guān)部分抽象成適配層,并將不同類型的媒體展示抽象為不同的獨立控件展示。
3)由于多媒體展示應(yīng)用的高實時性,中間件將仿照Windows的消息機制來實現(xiàn)對象間的事件觸發(fā),并采用多線程的方式減少延遲。
圖1表明了整個系統(tǒng)的分層體系架構(gòu)。后臺是云端部署,而客戶端自底向上分別是底層硬件和操作系統(tǒng),中間件,多媒體展示應(yīng)用。中間件處于客戶端的細腰處,即其能支持各種底層硬件的客戶端平臺,同時也為應(yīng)用提供商開發(fā)提供基于該中間件的應(yīng)用開發(fā)接口。同時除了應(yīng)用需要與云端的服務(wù)器進行網(wǎng)絡(luò)交互,該中間件也需實時將狀態(tài)等信息發(fā)送給云端。
圖1 分層體系架構(gòu)圖
中間件的結(jié)構(gòu)模型分為3層:繪圖層、邏輯層和控件層。其中模塊劃分如圖2所示。
圖2 中間件的結(jié)構(gòu)模型圖
下面分別介紹各層的功能和模塊組成:
1)控件層位于該中間件的最頂層,是為上層應(yīng)用提供服務(wù)的主體,分別有視頻控件、圖片控件、文本控件等提供不同類型的媒體展示。同時為了便捷新應(yīng)用的開發(fā),可根據(jù)控件接口規(guī)范快速地實現(xiàn)一個新類型的控件,增加了可擴展性。
2)繪圖層是為上層各個控件提供通用播放器和圖形庫接口的適配層,定義了通用播放器的接口和圖形庫接口,一旦移植到新的硬件平臺上,只有實現(xiàn)這些接口即可完成移植,從而允許上層的應(yīng)用開發(fā)與硬件無關(guān)。
3)邏輯層中,網(wǎng)絡(luò)管理、資源管理、線程管理、組件工廠、消息機制這5個模塊為其他上層模塊提供了基礎(chǔ)運行環(huán)境。剩余模塊為控件的展示提供基礎(chǔ)模塊。
網(wǎng)絡(luò)管理屏蔽了不同硬件實現(xiàn)的差異。
資源管理則提供本地資源管理和遠程資源下載功能。
線程管理則使用線程池的方式來并行處理一些除了展示邏輯之外較為費時或可能引起等待的操作,并實時平衡所有線程的工作量,從而提高多線程的利用率。
該中間件設(shè)計了組件工廠和消息機制來模擬Win?dows的消息隊列,允許所有由組件工廠創(chuàng)建的對象能夠接受自定義的消息并立即處理,從而提高實時性。
指令解析負責解析規(guī)定格式的指令,生成記錄,并對任務(wù)集進行添加、更新或刪除記錄的操作。
記錄是一條包含已經(jīng)播放了多少時間、在任務(wù)集合中的序列號、優(yōu)先級、單次展示時間、是否允許中斷后恢復(fù)、有效期、定時記錄的開始時間、定時記錄的結(jié)束時間和定時類型、具體展示資源等信息的文本字符。
任務(wù)集合則與控件綁定,一個任務(wù)集合中包含了對應(yīng)控件需要展示的所有記錄。一旦任務(wù)集合發(fā)生了刪除、更新等改變,則會發(fā)送消息通知其綁定的所有控件更新展示。
行為是記錄轉(zhuǎn)換的對象,分別有記錄對應(yīng)的不同屬性。
一個控件由行為組來管理各個行為,相同優(yōu)先級的行為在同一個行為組中,并以序列號排列。當控件接收到任務(wù)集合發(fā)送的改變消息后,即可對應(yīng)更新自己的行為組,從而在行為組中重新調(diào)度,選出一個行為進行展示。
圖3給出了控件、任務(wù)集合、記錄、行為組和行為之間的UML關(guān)系圖,從中可以總結(jié)一個任務(wù)集合包含多條記錄,并且能被至少一個控件綁定。而每個控件都有至少N個行為組,每個行為組對應(yīng)包含該優(yōu)先級的行為。這些行為都是由記錄轉(zhuǎn)換而來的。
一旦中間件運行,其指令解析模塊會根據(jù)接受到的指令,為每個控件對應(yīng)的任務(wù)集添加、更新或刪除記錄。而任務(wù)集合發(fā)生改變后,以消息機制通知綁定的控件,控件則根據(jù)變化的記錄更新對應(yīng)的行為,然后從所有行為組中根據(jù)每個行為的屬性進行調(diào)度,一旦發(fā)現(xiàn)某個行為比當前展示的行為優(yōu)先級高,所需的資源文件已經(jīng)下載到本地,并且其能在當前時間展示,則將停止當前展示,并將新行為替換展示區(qū)中的行為,隨后控件則調(diào)用繪圖層的接口對該行為進行展示。而當一個行為展示結(jié)束(例如單次播放時間結(jié)束或視頻播放完畢等),則同樣調(diào)用繪圖層的接口停止展示,并將其從該控件的展示區(qū)中刪除,再重新調(diào)度展示下一個行為。
圖3 重要類之間的UML關(guān)系圖
控件的主要接口定義如表1所示。其中定時器是基于消息機制實現(xiàn),它允許目標對象在指定時間過后接受到一個包含定時器類型的消息,從而作對應(yīng)處理。
表1 控件類中6個主要函數(shù)
每個控件在展示過程中,會實時將當前展示的資源名稱、已經(jīng)播放了多長時間等狀態(tài)存儲到云端,以便在斷網(wǎng)重連或客戶端死機等情況下,基于該中間件的上層應(yīng)用能根據(jù)云端存儲的狀態(tài)可靠恢復(fù),重新展示。
根據(jù)以上描述的中間件,筆者根據(jù)其提供的接口開發(fā)了一個網(wǎng)絡(luò)多媒體廣告應(yīng)用實例。它是一種數(shù)字標牌系統(tǒng),可以集中管理,控制大范圍分布地點發(fā)布高標準的定制信息,集高清視音頻、圖片、文字等多種元素于一體,含輪播、插播、定時等靈活的播放方式。目前繪圖層使用QT實現(xiàn),支持sigma8653和X86兩個平臺。網(wǎng)絡(luò)多媒體廣告應(yīng)用的軟硬件部署如圖4所示。
圖4 軟硬件部署
管理服務(wù)器允許管理人員在管理終端對視頻、圖片、文本、布局等資源進行在線編輯,同時發(fā)送指令給所有網(wǎng)絡(luò)多媒體廣告應(yīng)用。
當網(wǎng)絡(luò)多媒體廣告應(yīng)用接受到指令后,即交由該中間件中的指令解析模塊,該模塊會根據(jù)指令創(chuàng)建對應(yīng)控件,并一一為每個控件初始化要展示的記錄的任務(wù)集,最后開啟控件,這樣,控件則會根據(jù)自身定義的調(diào)度邏輯一一展示。
為了考察中間件對應(yīng)用性能的影響,筆者做實驗測試CPU使用率。在一臺四核的PC上,對比了基于該中間件開發(fā)的網(wǎng)絡(luò)多媒體廣告應(yīng)用和傳統(tǒng)軟硬件緊耦合開發(fā)的網(wǎng)絡(luò)多媒體廣告應(yīng)用的平均CPU使用率情況。圖5分別給出了兩個應(yīng)用在不同特點布局上的對比結(jié)果。對于多滾動文本布局,CPU主要用于渲染和滾動計算,可見使用跨平臺QT實現(xiàn)的滾動比直接使用硬件GDI實現(xiàn)的性能高。對于包含時鐘、圖片和滾動文本的混合布局,可以發(fā)現(xiàn)基于該中間件的應(yīng)用CPU使用率相對較低。而對于單視頻布局,由于基于該中間件的應(yīng)用采用QT的pho?no實現(xiàn)播放器接口,而硬件相關(guān)的應(yīng)用則采用VLC實現(xiàn),可見QT版本占用的CPU更高。
實驗結(jié)果表明,基于中間件的設(shè)計不會對應(yīng)用的性能造成很大的影響。
網(wǎng)絡(luò)多媒體廣告應(yīng)用在使用該中間件的控件的展示過程中,會不時發(fā)送日志或狀態(tài)給云端的狀態(tài)服務(wù)器進行存儲,從而管理服務(wù)器可根據(jù)日志信息告知管理人員客戶端的運行情況,主服務(wù)器也可以結(jié)合狀態(tài)信息允許重啟的網(wǎng)絡(luò)多媒體廣告應(yīng)用進行狀態(tài)還原并繼續(xù)展示。
圖5 基于中間件的應(yīng)用與硬件相關(guān)應(yīng)用的性能比較
另外,由于云端存儲著每個客戶端上網(wǎng)絡(luò)多媒體廣告應(yīng)用的運行狀態(tài),所以筆者還開發(fā)了一個簡單的監(jiān)控應(yīng)用,通過接收云端的狀態(tài)來重構(gòu),還原指定客戶端上網(wǎng)絡(luò)多媒體廣告應(yīng)用的當前展示情況,從而達到安全監(jiān)控的效果。圖6給出了一個PC監(jiān)控某機頂盒的效果圖,可以看到PC展示的畫面和由機頂盒控制的顯示器一致。
圖6 監(jiān)控效果圖
一般監(jiān)控程序都是實時接收被監(jiān)控客戶端的當前播放狀態(tài),如視頻流、圖片等,導(dǎo)致網(wǎng)絡(luò)占用高帶寬。而通過該中間件將狀態(tài)交由云端存儲后,云端可以根據(jù)數(shù)據(jù)庫中被監(jiān)控客戶端的相關(guān)信息,結(jié)合狀態(tài)重構(gòu)出該被監(jiān)控客戶端的當前播放內(nèi)容指令,從而只需把網(wǎng)絡(luò)占用帶寬低的指令發(fā)送給監(jiān)控程序即可。
筆者提出了一個面向下一代網(wǎng)絡(luò)電視的多媒體展示框架中間件的設(shè)計,給出了一個基于該中間件開發(fā)的網(wǎng)絡(luò)多媒體廣播應(yīng)用實例。該中間件有以下4個特點:
1)跨平臺性:其利用分層設(shè)計有效地屏蔽了底層客戶端的硬件異構(gòu)性,為將該中間件移植到新的客戶端硬件平臺提供了便利。
2)透明性:基于該中間件,多媒體展示應(yīng)用的開發(fā)更為方便,開發(fā)人員只需了解中間件向上提供的接口即可,無需知道客戶端底層的操作系統(tǒng)和硬件接口。
3)可擴展性:該中間件具有可擴展性,可添加新類型控件模塊來支持更多類型的多媒體文件的在線展示。
4)穩(wěn)健性:由于該中間件實時將上層應(yīng)用的展示狀態(tài)存儲在云端,可以根據(jù)這些狀態(tài)進行恢復(fù)或監(jiān)控,從而保證上層應(yīng)用的可靠運行。
[1]LEMAY S,KELLY S.User Interface forapplication managementfora mobile device:US2009/0307105 A1[P].2009-12-10.
[2]HAYES B.Cloud computing[C]//Communications ofthe ACM.New York,NY,USA:[s.n.],2008,51(7):9-11.
[3]ABI Research.US Digital Signage Market to Grow by One Third in 2009[EB/OL].(2009-03-20)[2011-09-15].http://www.biresearch.com/press/1385-US+Digital+Signage+Market+to+Grow+by+One+Third+in+2009.
[4]BERNSTEIN P A.Middle ware:a modelfordistributed system services[C]//Communications ofthe ACM.New York,NY,USA:[s.n.],1996,39(2):86-98.