IPTV系统中EPG模块的设计与实现
来源:岁月联盟
时间:2010-08-30

图1是一个IPTV系统结构模型,此模型已在国内一些城市得到实际应用。在此模型结构图中,整个IPTV系统分为两大部分:后台部分和用户接入部分。后台部分主要提供媒体内容的管理、用户管理、整个系统的服务器管理、用户认证和计费管理等等。用户接入部分为用户提供视频服务和其他服务,根据城市规模大小可分为多个区域,每一区域主要有区域媒体基站和EPG服务器。用户使用机顶盒[3] [4] [5]加电视或者PC作为终端,通过ADSL或小区宽带收看系统存储的节目或者直播电视节目。机顶盒是一台功能简单的机,有CPU、内存、网络连接设备、解码器等硬件及操作系统和应用程序等软件,接收通过宽带IP网络传输过来的视频信号,信号经过处理后在电视机上显示出来。用户通过操纵遥控器使用机顶盒提供的功能。
用户被划分为多个区域,每个区域分别部署多个区域媒体服务器和EPG服务器,用户的视频服务和交互界面由用户所在区域的媒体服务器和EPG服务器提供。这种部署方式具有容易扩充的特点,适合大规模部署。增加一个区域只须增加区域媒体基站和EPG服务器,对后台部分和其它区域不会造成影响。同时,用户的大部分数据流量都集中在自己所在区域,减轻了主干网的负担,而且单个区域系统的崩溃不会影响其它区域。系统工作过程大致如下:①媒体源经过媒体处理模块处理成系统所定义的格式,存储在主媒体基站上,并由后台的媒体分发管理模块负责如何将这些节目分发到下面的每一个区域中的媒体基站中。②同时有关节目的信息也被下发到EPG服务器中,供EPG显示给用户。③用户开机经过后台认证后登录到EPG服务器上,开始浏览系统的节目信息。④当用户选择一个节目观看后,EPG将有关节目信息和用户的信息发送到后台部分,由后台的用户管理部分判断用户是否能够欣赏节目,如果可以,用户的机顶盒则向本区域的媒体基站发送播放节目的请求。⑤播放完毕,机顶盒向后台发送扣除相应收费的请求,同时重新定向到EPG服务器,用户可以继续浏览节目和欣赏节目。考虑到目前IPTV在国内还处于发展阶段,一个区域的用户不是很多。目前系统设计为一个区域支持最多3000用户,在同一时刻访问EPG服务器的用户数不超过500。当用户数量增多时,可以使用EPG服务器集群。在图1中,每个区域都部署了一个主EPG服务器,为了系统的稳定性,同时也部署了一个备用的EPG服务器。3 EPG模块的设计从IPTV系统在中国的部署应用看,EPG模块是整个系统中需求变化最大、最快的模块,而且是直接展示给客户的模块,很大程度上决定客户是否采用我们的系统。模块在整体框架设计时,主要考虑以下原则:(1) 结构清晰,开发快速。客户的需求变化是很快的,在设计时,首先要考虑能够在最短的时间内按照客户的要求开发出新界面,结构清晰的设计有利于快速开发。(2) 维护方便。能够让客户在对EPG代码和实现不是很了解的情况下改动EPG的某些代码或修改一些配置,而不会影响EPG的运行。(3) 方便客户定制。客户可能要求自己制作EPG。因此,设计时要考虑到能够快速、简单地使客户明白EPG的制作过程,在较短时间内掌握制作EPG。(4) 性能满足设计要求。要满足设计时的性能要求,主要考虑服务器优化,数据库的优化。
(5) 界面简单美观,有良好的可扩展性和开放性。容易支持新的业务,能够兼容不同厂家的机顶盒。EPG实现主要有两种方案选择,本地应用方案和交互式实现方案 [7]。目前国内和国外的EPG设计基本上是针对数字电视的,其EPG实现一般采用本地应用方案。本地方案对机顶盒的硬件要求较高,而且在和用户的交互性方面做的不是很好。IPTV是一种和用户有高度交互性的系统,设计和实现适合采用第二种方案。此模型中EPG实现选择交互式方案,采用由EPG服务器给机顶盒提供HTML页面的实现方式。将系统的节目信息存储在数据库中,服务器从数据库中检索节目信息,以HTML页面的形式提供给机顶盒,机顶盒解析页面后呈现给用户。这样,对PC用户来说,用户端自带的浏览器即可浏览。对使用机顶盒的用户来说,需要机顶盒实现能够解析HTML页面的功能。 在本文中,着重针对机顶盒的EPG设计 ,具体实现采用Linux+Apache+MySQL+PHP,程序的整个框架设计基于MVC模式的思想。3.1 MVC的设计模式模型-视图-控制(Model-View-Controller)是一种经典的软件设计模式,它采用分治的思想将系统分成三大模块,每个模块各负其责,其关系如图2所示。(1) 模型。负责维护数据并提供数据访问方法。模型只有纯粹的功能性接口, 也就是一系列的公开方法。通过这些公开方法, 可以取得模型的所有功能。(2) 视图。用来显示模型的数据。在一个MVC 模型中可以有多个视图。(3) 控制器。用户可以通过视图来改变模型的状态, 这种更新是通过控制器来完成的。控制器负责调用模型的改值方法以改变模型的状态, 同时, 控制器会通知所有的已登记视图刷新数据显示。

数据访问层和逻辑处理层可以很容易编写单元测试来测试自己的代码,不受其它层的代码的影响,很大程度上提高了软件的质量。同时后期的维护也是很方便的,如果需求有变,只须改动需求变化所在层次的代码,不用关心其它层代码是否要改动。整个EPG模块每个页面的编码都遵循这种规则。同时我们提供给客户一个EPG手册,主要是取数据的接口函数和用户端处理层JavaScript函数的使用说明。客户只需要掌握一个页面的制作过程和所提供的使用手册中的函数调用方法,并具有一定的编程水平,就可在很短的时间内独立编写自己的EPG。3.3 EPG性能测试为了测试EPG性能是否达到了当初的设计要求,使用LoadRunner测试工具对EPG服务器进行了性能测试,测试最主要的指标是不同并发用户数时的事务响应时间,它是服务器性能最重要的指标。测试的硬件环境为:CPU Intel(R) Pentium(R)4 2.40GHz, 内存 1GB,网卡 1GB/s。软件环境为:操作系统 RedHat 9.0, Apache 2.0.50,MySQL 4.0.21,PHP 4.3.9RC3-dev,Squid 2.5 STABLE1。 LoadRunner模拟测试并发用户数为220、500,测试EPG服务器的事务响应时间和事务完成情况。服务器响应时间和事务完成情况测试数据如表1和表2所示。从测试数据看,当并发用户数为500时,没有出现事务失败的情况,平均响应时间不超过3秒。对用户来说,这个时间是可以接受的。说明采用这种设计方法开发EPG,服务器的性能也达到了预先的要求。从以上的测试和分析可以看出,使用上文所说的设计方法开发EPG总体上达到了预先的设计原则。4 结束语本文阐述了一个IPTV系统模型及其EPG模块的设计和实现,在实际应用中也证明了我们的设计方法对快速开发易维护、方便扩展的EPG是正确和可行的。随着IPTV的和用户数的增多,今后需要在服务器的性能方面和EPG的个性化方面进行更深入的研究。| 表1 EPG服务器响应时间 |
| 事务模拟用户数 | 登录EPG | 浏览VOD菜单 | 浏览TV菜单 | 返回首页 | |
| 220 | 最大响应时间 | 4.456 | 3.464 | 4.048 | 4.035 |
| 最小响应时间 | 0.034 | 0.017 | 0.038 | 0.016 | |
| 平均响应时间 | 0.297 | 0.279 | 0.0941 | 0.245 | |
| 500 | 最大响应时间 | 10.465 | 9.087 | 8.53 | 8.551 |
| 最小响应时间 | 0.035 | 0.017 | 0.038 | 0.016 | |
| 平均响应时间 | 2.611 | 1.934 | 2.471 | 2.054 | |
| 表2 事务执行统计 |
| 事务模拟用户数 | 登录EPG | 浏览VOD菜单 | 浏览TV菜单 | 返回首页 | |
| 220 | 共执行次数 | 26010 | 26010 | 26010 | 26010 |
| 通过次数 | 26010 | 26010 | 26010 | 26010 | |
| 失败次数 | 0 | 0 | 0 | 0 | |
| 500 | 共执行次数 | 82904 | 82904 | 82904 | 82904 |
| 通过次数 | 82904 | 82904 | 82904 | 82904 | |
| 失败次数 | 0 | 0 | 0 | 0 | |
参考:
上一篇:具有自适应能力的值对象研究