IPTV系統(tǒng)中EPG模塊的設(shè)計(jì)與實(shí)現(xiàn)
1 引 言
為了提供“互動(dòng)性”和“按需觀看”,系統(tǒng)需要提供和用戶交互的界面,供用戶瀏覽系統(tǒng)提供的節(jié)目信息并選擇要欣賞的節(jié)目。在IPTV系統(tǒng)中由 EPG(Electronic Program Guide電子程序向?qū)В┓?wù)器提供這套界面。EPG是一個(gè)當(dāng)前和將來(lái)節(jié)目信息的交互式節(jié)目安排表,用戶通過(guò)操作遙控器進(jìn)行瀏覽[2]。EPG 模塊在整個(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ù)器。用戶使用機(jī)頂盒[3] [4] [5]加電視或者PC作為終端,通過(guò) ADSL或小區(qū)寬帶收看系統(tǒng)存儲(chǔ)的節(jié)目或者直播電視節(jié)目。機(jī)頂盒是一臺(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ò)操縱遙控器使用機(jī)頂盒提供的功能。
系統(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ì)
(4) 性能滿足設(shè)計(jì)要求。要滿足設(shè)計(jì)時(shí)的性能要求,主要考慮服務(wù)器優(yōu)化,數(shù)據(jù)庫(kù)的優(yōu)化。
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)適合采用第二種方案。
在本文中,著重針對(duì)機(jī)頂盒的EPG設(shè)計(jì) ,具體實(shí)現(xiàn)采用Linux+Apache+MySQL+PHP,程序的整個(gè)框架設(shè)計(jì)基于MVC模式的思想。
3.1 MVC的設(shè)計(jì)模式
3.2 具體實(shí)現(xiàn)
過(guò)程如下:
開(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ā)速度。

整個(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ú)立編寫自己的EPG。
3.3 EPG性能測(cè)試
測(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ǔ)
表1 EPG服務(wù)器響應(yīng)時(shí)間 |
事務(wù)
模擬用戶數(shù) |
登錄EPG |
瀏覽VOD菜單 |
瀏覽TV菜單 |
返回首頁(yè) | |
220 |
最大響應(yīng)時(shí)間 |
4.456 |
3.464 |
4.048 |
4.035 |
最小響應(yīng)時(shí)間 |
0.034 |
0.017 |
0.038 |
0.016 | |
平均響應(yīng)時(shí)間 |
0.297 |
0.279 |
0.0941 |
0.245 | |
500 |
最大響應(yīng)時(shí)間 |
10.465 |
9.087 |
8.53 |
8.551 |
最小響應(yīng)時(shí)間 |
0.035 |
0.017 |
0.038 |
0.016 | |
平均響應(yīng)時(shí)間 |
2.611 |
1.934 |
2.471 |
2.054 |
表2 事務(wù)執(zhí)行統(tǒng)計(jì) |
事務(wù)
模擬用戶數(shù) |
登錄EPG |
瀏覽VOD菜單 |
瀏覽TV菜單 |
返回首頁(yè) | |
220 |
共執(zhí)行次數(shù) |
26010 |
26010 |
26010 |
26010 |
通過(guò)次數(shù) |
26010 |
26010 |
26010 |
26010 | |
失敗次數(shù) |
0 |
0 |
0 |
0 | |
500 |
共執(zhí)行次數(shù) |
82904 |
82904 |
82904 |
82904 |
通過(guò)次數(shù) |
82904 |
82904 |
82904 |
82904 | |
失敗次數(shù) |
0 |
0 |
0 |
0 |
參考文獻(xiàn):