新聞中心

EEPW首頁(yè) > 網(wǎng)絡(luò)與存儲(chǔ) > 設(shè)計(jì)應(yīng)用 > IPTV系統(tǒng)中EPG模塊的設(shè)計(jì)與實(shí)現(xiàn)

IPTV系統(tǒng)中EPG模塊的設(shè)計(jì)與實(shí)現(xiàn)

——
作者:黃志濤 張建標(biāo) 包薩如拉 時(shí)間:2006-09-25 來(lái)源:計(jì)算機(jī)與信息技術(shù) 收藏
1 引 言

即網(wǎng)絡(luò)電視,是目前一種新興的網(wǎng)絡(luò)應(yīng)用,它利用寬帶互聯(lián)網(wǎng)的基礎(chǔ)設(shè)施,以家用電視機(jī)作為主要終端,通過(guò)互聯(lián)網(wǎng)協(xié)議(IP)來(lái)提供包括電視節(jié)目在內(nèi)的多種數(shù)字媒體服務(wù)及其增值業(yè)務(wù)的技術(shù)。最大的優(yōu)勢(shì)在于“互動(dòng)性”和“按需觀看”,徹底改變了傳統(tǒng)電視單向廣播的特點(diǎn)[1]。它的出現(xiàn)極大的滿足了用戶(文中的用戶是指安裝了客戶端的消費(fèi)者,客戶是指IPTV服務(wù)提供商和運(yùn)營(yíng)商)對(duì)在線影視欣賞的需求。IPTV的發(fā)展十分迅速,國(guó)際上,UT斯達(dá)康、微軟、西門子、阿爾卡特、惠普等,國(guó)內(nèi)的華為、中興和盛大等廠家都投入了IPTV的開(kāi)發(fā)和研究。 國(guó)外早已有IPTV的商業(yè)運(yùn)營(yíng)系統(tǒng),英國(guó)Video Networks公司早在1999年就推出了IPTV業(yè)務(wù)。國(guó)內(nèi)截至目前,首個(gè)IPTV已在上海投入商業(yè)應(yīng)用,并且中國(guó)電信已在五省市進(jìn)行IPTV試點(diǎn), IPTV在國(guó)內(nèi)和國(guó)際都有廣闊的發(fā)展前景。

為了提供“互動(dòng)性”和“按需觀看”,系統(tǒng)需要提供和用戶交互的界面,供用戶瀏覽系統(tǒng)提供的節(jié)目信息并選擇要欣賞的節(jié)目。在IPTV系統(tǒng)中由 (Electronic Program Guide電子程序向?qū)В┓?wù)器提供這套界面。是一個(gè)當(dāng)前和將來(lái)節(jié)目信息的交互式節(jié)目安排表,用戶通過(guò)操作遙控器進(jìn)行瀏覽[2]。 在整個(gè)IPTV系統(tǒng)中是至關(guān)重要的,它是整個(gè)IPTV系統(tǒng)的門戶。EPG給用戶提供一個(gè)容易使用的、界面友好的、可以快速訪問(wèn)節(jié)目的一種方式。因此,用戶對(duì)IPTV整個(gè)系統(tǒng)的評(píng)價(jià)在很大程度上取決于EPG。提供簡(jiǎn)單易用、快速、穩(wěn)定、美觀的交互界面是EPG的首要目標(biāo)。

2 IPTV的系統(tǒng)結(jié)構(gòu)模型

圖1是一個(gè)IPTV系統(tǒng)結(jié)構(gòu)模型,此模型已在國(guó)內(nèi)一些城市得到實(shí)際應(yīng)用。在此模型結(jié)構(gòu)圖中,整個(gè)IPTV系統(tǒng)分為兩大部分:后臺(tái)部分和用戶接入部分。后臺(tái)部分主要提供媒體內(nèi)容的管理、用戶管理、整個(gè)系統(tǒng)的服務(wù)器管理、用戶認(rèn)證和計(jì)費(fèi)管理等等。用戶接入部分為用戶提供視頻服務(wù)和其他服務(wù),根據(jù)城市規(guī)模大小可分為多個(gè)區(qū)域,每一區(qū)域主要有區(qū)域媒體基站和EPG服務(wù)器。用戶使用[3] [4] [5]加電視或者PC作為終端,通過(guò) 或小區(qū)寬帶收看系統(tǒng)存儲(chǔ)的節(jié)目或者直播電視節(jié)目。是一臺(tái)功能簡(jiǎn)單的計(jì)算機(jī),有CPU、內(nèi)存、網(wǎng)絡(luò)連接設(shè)備、解碼器等硬件及操作系統(tǒng)和應(yīng)用程序等軟件,接收通過(guò)寬帶IP網(wǎng)絡(luò)傳輸過(guò)來(lái)的視頻信號(hào),信號(hào)經(jīng)過(guò)處理后在電視機(jī)上顯示出來(lái)。用戶通過(guò)操縱遙控器使用提供的功能。

iptv的系統(tǒng)結(jié)構(gòu)模型

用戶被劃分為多個(gè)區(qū)域,每個(gè)區(qū)域分別部署多個(gè)區(qū)域媒體服務(wù)器和EPG服務(wù)器,用戶的視頻服務(wù)和交互界面由用戶所在區(qū)域的媒體服務(wù)器和EPG服務(wù)器提供。這種部署方式具有容易擴(kuò)充的特點(diǎn),適合大規(guī)模部署。增加一個(gè)區(qū)域只須增加區(qū)域媒體基站和EPG服務(wù)器,對(duì)后臺(tái)部分和其它區(qū)域不會(huì)造成影響。同時(shí),用戶的大部分?jǐn)?shù)據(jù)流量都集中在自己所在區(qū)域,減輕了主干網(wǎng)的負(fù)擔(dān),而且單個(gè)區(qū)域系統(tǒng)的崩潰不會(huì)影響其它區(qū)域。

系統(tǒng)工作過(guò)程大致如下:①媒體源經(jīng)過(guò)媒體處理處理成系統(tǒng)所定義的格式,存儲(chǔ)在主媒體基站上,并由后臺(tái)的媒體分發(fā)管理負(fù)責(zé)如何將這些節(jié)目分發(fā)到下面的每一個(gè)區(qū)域中的媒體基站中。②同時(shí)有關(guān)節(jié)目的信息也被下發(fā)到EPG服務(wù)器中,供EPG顯示給用戶。③用戶開(kāi)機(jī)經(jīng)過(guò)后臺(tái)認(rèn)證后登錄到EPG服務(wù)器上,開(kāi)始瀏覽系統(tǒng)的節(jié)目信息。④當(dāng)用戶選擇一個(gè)節(jié)目觀看后,EPG將有關(guān)節(jié)目信息和用戶的信息發(fā)送到后臺(tái)部分,由后臺(tái)的用戶管理部分判斷用戶是否能夠欣賞節(jié)目,如果可以,用戶的機(jī)頂盒則向本區(qū)域的媒體基站發(fā)送播放節(jié)目的請(qǐng)求。⑤播放完畢,機(jī)頂盒向后臺(tái)發(fā)送扣除相應(yīng)收費(fèi)的請(qǐng)求,同時(shí)重新定向到EPG服務(wù)器,用戶可以繼續(xù)瀏覽節(jié)目和欣賞節(jié)目。

考慮到目前IPTV在國(guó)內(nèi)還處于發(fā)展階段,一個(gè)區(qū)域的用戶不是很多。目前系統(tǒng)設(shè)計(jì)為一個(gè)區(qū)域支持最多3000用戶,在同一時(shí)刻訪問(wèn)EPG服務(wù)器的用戶數(shù)不超過(guò)500。當(dāng)用戶數(shù)量增多時(shí),可以使用EPG服務(wù)器集群。在圖1中,每個(gè)區(qū)域都部署了一個(gè)主EPG服務(wù)器,為了系統(tǒng)的穩(wěn)定性,同時(shí)也部署了一個(gè)備用的EPG服務(wù)器。

3 EPG模塊的設(shè)計(jì)

從IPTV系統(tǒng)在中國(guó)的部署應(yīng)用看,EPG模塊是整個(gè)系統(tǒng)中需求變化最大、最快的模塊,而且是直接展示給客戶的模塊,很大程度上決定客戶是否采用我們的系統(tǒng)。模塊在整體框架設(shè)計(jì)時(shí),主要考慮以下原則:

(1)     結(jié)構(gòu)清晰,開(kāi)發(fā)快速??蛻舻男枨笞兓呛芸斓?,在設(shè)計(jì)時(shí),首先要考慮能夠在最短的時(shí)間內(nèi)按照客戶的要求開(kāi)發(fā)出新界面,結(jié)構(gòu)清晰的設(shè)計(jì)有利于快速開(kāi)發(fā)。

(2)   維護(hù)方便。能夠讓客戶在對(duì)EPG代碼和實(shí)現(xiàn)不是很了解的情況下改動(dòng)EPG的某些代碼或修改一些配置,而不會(huì)影響EPG的運(yùn)行。

(3)     方便客戶定制??蛻艨赡芤笞约褐谱鱁PG。因此,設(shè)計(jì)時(shí)要考慮到能夠快速、簡(jiǎn)單地使客戶明白EPG的制作過(guò)程,在較短時(shí)間內(nèi)掌握制作EPG。

(4)     性能滿足設(shè)計(jì)要求。要滿足設(shè)計(jì)時(shí)的性能要求,主要考慮服務(wù)器優(yōu)化,數(shù)據(jù)庫(kù)的優(yōu)化。

(5)     界面簡(jiǎn)單美觀,有良好的可擴(kuò)展性和開(kāi)放性。容易支持新的業(yè)務(wù),能夠兼容不同廠家的機(jī)頂盒。

EPG實(shí)現(xiàn)主要有兩種方案選擇,本地應(yīng)用方案和交互式實(shí)現(xiàn)方案 [7]。目前國(guó)內(nèi)和國(guó)外的EPG設(shè)計(jì)基本上是針對(duì)數(shù)字電視的,其EPG實(shí)現(xiàn)一般采用本地應(yīng)用方案。本地方案對(duì)機(jī)頂盒的硬件要求較高,而且在和用戶的交互性方面做的不是很好。IPTV是一種和用戶有高度交互性的系統(tǒng),設(shè)計(jì)和實(shí)現(xiàn)適合采用第二種方案。

此模型中EPG實(shí)現(xiàn)選擇交互式方案,采用由EPG服務(wù)器給機(jī)頂盒提供HTML頁(yè)面的實(shí)現(xiàn)方式。將系統(tǒng)的節(jié)目信息存儲(chǔ)在數(shù)據(jù)庫(kù)中,服務(wù)器從數(shù)據(jù)庫(kù)中檢索節(jié)目信息,以HTML頁(yè)面的形式提供給機(jī)頂盒,機(jī)頂盒解析頁(yè)面后呈現(xiàn)給用戶。這樣,對(duì)PC用戶來(lái)說(shuō),用戶端自帶的瀏覽器即可瀏覽。對(duì)使用機(jī)頂盒的用戶來(lái)說(shuō),需要機(jī)頂盒實(shí)現(xiàn)能夠解析HTML頁(yè)面的功能。

在本文中,著重針對(duì)機(jī)頂盒的EPG設(shè)計(jì) ,具體實(shí)現(xiàn)采用Linux+Apache+MySQL+PHP,程序的整個(gè)框架設(shè)計(jì)基于MVC模式的思想。

3.1 MVC的設(shè)計(jì)模式

模型-視圖-控制(Model-View-Controller)是一種經(jīng)典的軟件設(shè)計(jì)模式,它采用分治的思想將系統(tǒng)分成三大模塊,每個(gè)模塊各負(fù)其責(zé),其關(guān)系如圖2所示。

mvc的設(shè)計(jì)模式

(1) 模型。負(fù)責(zé)維護(hù)數(shù)據(jù)并提供數(shù)據(jù)訪問(wèn)方法。模型只有純粹的功能性接口, 也就是一系列的公開(kāi)方法。通過(guò)這些公開(kāi)方法, 可以取得模型的所有功能。

(2) 視圖。用來(lái)顯示模型的數(shù)據(jù)。在一個(gè)MVC 模型中可以有多個(gè)視圖。

(3) 控制器。用戶可以通過(guò)視圖來(lái)改變模型的狀態(tài), 這種更新是通過(guò)控制器來(lái)完成的??刂破髫?fù)責(zé)調(diào)用模型的改值方法以改變模型的狀態(tài), 同時(shí), 控制器會(huì)通知所有的已登記視圖刷新數(shù)據(jù)顯示。

MVC 體系有效地實(shí)現(xiàn)了表示與數(shù)據(jù)的分離,能很方便地用多個(gè)視圖來(lái)顯示多套數(shù)據(jù),使系統(tǒng)很方便地支持其它新的客戶端類型,可以很好地表達(dá)用戶的交互。從國(guó)內(nèi)的應(yīng)用情況看,大部分客戶都是對(duì)顯示界面要求不一樣,對(duì)程序處理邏輯有少量不同。采用MVC模式,可以很方便的響應(yīng)客戶的需求變化,而且可以很容易提供不同的顯示界面讓客戶自己選擇。

3.2 具體實(shí)現(xiàn)

根據(jù)設(shè)計(jì)目的和MVC模式,考慮到用戶使用的終端設(shè)備為機(jī)頂盒,在客戶端需要一些與機(jī)頂盒有關(guān)的特殊處理,服務(wù)器處理請(qǐng)求的實(shí)現(xiàn)過(guò)程分為五個(gè)層次,如圖3所示。

epg實(shí)現(xiàn)層次

(1)   頁(yè)面展示層。負(fù)責(zé)系統(tǒng)節(jié)目信息的顯示。

(2)   用戶端處理層。負(fù)責(zé)請(qǐng)求發(fā)出前和請(qǐng)求處理結(jié)果返回后的一些特殊處理。此處加入用戶端處理層主要是因?yàn)槟壳坝脩舻慕K端為機(jī)頂盒,機(jī)頂盒瀏覽器的功能不是很強(qiáng)。在用戶轉(zhuǎn)向另外一個(gè)頁(yè)面或者返回到原來(lái)的頁(yè)面都需要EPG做一些處理,比如記錄光標(biāo)的位置、初始化光標(biāo)位置。

(3)   請(qǐng)求和響應(yīng)層。負(fù)責(zé)請(qǐng)求到達(dá)服務(wù)器后和處理結(jié)果返回給用戶端前的一些處理。

(4)   邏輯處理層。負(fù)責(zé)對(duì)客戶的請(qǐng)求進(jìn)行處理。

(5)   數(shù)據(jù)訪問(wèn)層。負(fù)責(zé)提供獲取數(shù)據(jù)庫(kù)中數(shù)據(jù)的接口。

我們以顯示熱門影片的實(shí)例說(shuō)明使用MVC模式的思想處理請(qǐng)求的過(guò)程。處理顯示熱門影片請(qǐng)求的過(guò)程如圖4所示。

過(guò)程如下:

(1)用戶在首頁(yè)單擊“最新影片”,經(jīng)過(guò)用戶端控制層處理(關(guān)閉在首頁(yè)播放的廣告視頻)后,請(qǐng)求被提交到服務(wù)器進(jìn)行處理。

(2)請(qǐng)求和響應(yīng)層開(kāi)始處理請(qǐng)求,保存上一頁(yè)有關(guān)的狀態(tài),并且初始化一些變量(如取數(shù)據(jù)的類、保存頁(yè)面所有信息的變量)。

(3)邏輯處理層計(jì)算數(shù)據(jù)庫(kù)中要取的熱門影片的起始位置和數(shù)量。  (4)調(diào)用數(shù)據(jù)訪問(wèn)層的接口開(kāi)始從數(shù)據(jù)庫(kù)里面取出熱門影片的信息(節(jié)目名稱、價(jià)格、簡(jiǎn)介、海報(bào)圖片名稱等)。

(5)邏輯處理層對(duì)取到的數(shù)據(jù)進(jìn)行轉(zhuǎn)換,轉(zhuǎn)換后的所有數(shù)據(jù)保存在一個(gè)變量中,這個(gè)變量要傳遞給顯示結(jié)果的頁(yè)面。

(6)請(qǐng)求和響應(yīng)層調(diào)用顯示結(jié)果的頁(yè)面和用戶端的控制代碼,生成HTML代碼。

(7)機(jī)頂盒解析傳遞過(guò)來(lái)的HTML頁(yè)面,初始化光標(biāo)位置,將熱門影片信息顯示給用戶。

開(kāi)發(fā)之前,在設(shè)計(jì)文檔中定義預(yù)先定義頁(yè)面展示層和邏輯處理層、邏輯處理層和數(shù)據(jù)訪問(wèn)層的接口。每一部分的開(kāi)發(fā)人員只須關(guān)心自己所做的部分,使用其它層提供的接口調(diào)用其它層的功能。這樣各個(gè)部分的開(kāi)發(fā)可以并行工作,大大提高了開(kāi)發(fā)速度。  

響應(yīng)熱門影片請(qǐng)求流程

數(shù)據(jù)訪問(wèn)層和邏輯處理層可以很容易編寫(xiě)單元測(cè)試來(lái)測(cè)試自己的代碼,不受其它層的代碼的影響,很大程度上提高了軟件的質(zhì)量。同時(shí)后期的維護(hù)也是很方便的,如果需求有變,只須改動(dòng)需求變化所在層次的代碼,不用關(guān)心其它層代碼是否要改動(dòng)。

整個(gè)EPG模塊每個(gè)頁(yè)面的編碼都遵循這種規(guī)則。同時(shí)我們提供給客戶一個(gè)EPG參考手冊(cè),主要是取數(shù)據(jù)的接口函數(shù)和用戶端處理層 JavaScript函數(shù)的使用說(shuō)明。客戶只需要掌握一個(gè)頁(yè)面的制作過(guò)程和所提供的使用手冊(cè)中的函數(shù)調(diào)用方法,并具有一定的編程水平,就可在很短的時(shí)間內(nèi)獨(dú)立編寫(xiě)自己的EPG。

3.3 EPG性能測(cè)試

為了測(cè)試EPG性能是否達(dá)到了當(dāng)初的設(shè)計(jì)要求,使用LoadRunner測(cè)試工具對(duì)EPG服務(wù)器進(jìn)行了性能測(cè)試,測(cè)試最主要的指標(biāo)是不同并發(fā)用戶數(shù)時(shí)的事務(wù)響應(yīng)時(shí)間,它是服務(wù)器性能最重要的指標(biāo)。

測(cè)試的硬件環(huán)境為:CPU Intel(R) Pentium(R)4 2.40GHz,內(nèi)存 1GB,網(wǎng)卡 1GB/s。軟件環(huán)境為:操作系統(tǒng) RedHat 9.0, Apache 2.0.50,MySQL 4.0.21,PHP 4.3.9RC3-dev,Squid 2.5 STABLE1。

LoadRunner模擬測(cè)試并發(fā)用戶數(shù)為220、500,測(cè)試EPG服務(wù)器的事務(wù)響應(yīng)時(shí)間和事務(wù)完成情況。服務(wù)器響應(yīng)時(shí)間和事務(wù)完成情況測(cè)試數(shù)據(jù)如表1和表2所示。從測(cè)試數(shù)據(jù)看,當(dāng)并發(fā)用戶數(shù)為500時(shí),沒(méi)有出現(xiàn)事務(wù)失敗的情況,平均響應(yīng)時(shí)間不超過(guò)3秒。對(duì)用戶來(lái)說(shuō),這個(gè)時(shí)間是可以接受的。說(shuō)明采用這種設(shè)計(jì)方法開(kāi)發(fā)EPG,服務(wù)器的性能也達(dá)到了預(yù)先的要求。

 

從以上的測(cè)試和分析可以看出,使用上文所說(shuō)的設(shè)計(jì)方法開(kāi)發(fā)EPG總體上達(dá)到了預(yù)先的設(shè)計(jì)原則。

4 結(jié)束語(yǔ)

本文闡述了一個(gè)IPTV系統(tǒng)模型及其EPG模塊的設(shè)計(jì)和實(shí)現(xiàn),在實(shí)際應(yīng)用中也證明了我們的設(shè)計(jì)方法對(duì)快速開(kāi)發(fā)易維護(hù)、方便擴(kuò)展的EPG是正確和可行的。隨著IPTV的發(fā)展和用戶數(shù)的增多,今后需要在服務(wù)器的性能方面和EPG的個(gè)性化方面進(jìn)行更深入的研究。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉