3.1 MVC的设计模式
模型-视图-控制(Model-View-Controller)是一种经典的软件设计模式,它采用分治的思想将系统分成三大模块,每个模块各负其责,其关系如图2所示。
(1) 模型。负责维护数据并提供数据访问方法。模型只有纯粹的功能性接口, 也就是一系列的公开方法。通过这些公开方法, 可以取得模型的所有功能。
(2) 视图。用来显示模型的数据。在一个MVC 模型中可以有多个视图。
(3) 控制器。用户可以通过视图来改变模型的状态, 这种更新是通过控制器来完成的。控制器负责调用模型的改值方法以改变模型的状态, 同时, 控制器会通知所有的已登记视图刷新数据显示。
MVC 体系有效地实现了表示与数据的分离,能很方便地用多个视图来显示多套数据,使系统很方便地支持其它新的客户端类型,可以很好地表达用户的交互。从国内的应用情况看,大部分客户都是对显示界面要求不一样,对程序处理逻辑有少量不同。采用MVC模式,可以很方便的响应客户的需求变化,而且可以很容易提供不同的显示界面让客户自己选择。
3.2 具体实现
根据设计目的和MVC模式,考虑到用户使用的终端设备为机顶盒,在客户端需要一些与机顶盒有关的特殊处理,服务器处理请求的实现过程分为五个层次,如图3所示。
(1) 页面展示层。负责系统节目信息的显示。
(2) 用户端处理层。负责请求发出前和请求处理结果返回后的一些特殊处理。此处加入用户端处理层主要是因为目前用户的终端为机顶盒,机顶盒浏览器的功能不是很强。在用户转向另外一个页面或者返回到原来的页面都需要EPG做一些处理,比如记录光标的位置、初始化光标位置。
(3) 请求和响应层。负责请求到达服务器后和处理结果返回给用户端前的一些处理。
(4) 逻辑处理层。负责对客户的`请求进行处理。
(5) 数据访问层。负责提供获取数据库中数据的接口。
我们以显示热门影片的实例说明使用MVC模式的思想处理请求的过程。处理显示热门影片请求的过程如图4所示。
过程如下:
(1)用户在首页单击“最新影片”,经过用户端控制层处理(关闭在首页播放的广告视频)后,请求被提交到服务器进行处理。
(2)请求和响应层开始处理请求,保存上一页有关的状态,并且初始化一些变量(如取数据的类、保存页面所有信息的变量)。
(3)逻辑处理层计算数据库中要取的热门影片的起始位置和数量。
(4)调用数据访问层的接口开始从数据库里面取出热门影片的信息(节目名称、价格、简介、海报图片名称等)。
(5)逻辑处理层对取到的数据进行转换,转换后的所有数据保存在一个变量中,这个变量要传递给显示结果的页面。
(6)请求和响应层调用显示结果的页面和用户端的控制代码,生成HTML代码。
(7)机顶盒解析传递过来的HTML页面,初始化光标位置,将热门影片信息显示给用户。
开发之前,在设计文档中定义预先定义页面展示层和逻辑处理层、逻辑处理层和数据访问层的接口。每一部分的开发人员只须关心自己所做的部分,使用其它层提供的接口调用其它层的功能。这样各个部分的开发可以并行工作,大大提高了开发速度。
数据访问层和逻辑处理层可以很容易编写单元测试来测试自己的代码,不受其它层的代码的影响,很大程度上提高了软件的质量。同时后期的维护也是很方便的,如果需求有变,只须改动需求变化所在层次的代码,不用关心其它层代码是否要改动。
整个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
失败次数
500
共执行次数
82904
82904
82904
82904
通过次数
82904
82904
82904
82904
失败次数参考文献:
[1] 关注IPTV关注网络发展[EB/OL]. http://www.chinabbc.com.cn/news/news.asp?newsid=200563111314246&classid=112111 2005.12.16
[2] Electronic Program Guide(EPG) [EB/OL]. http://www.abc.net.au/reception/digital/epg.htm 2005.12.16
[3] Ciciora W S. Inside the Set-Top Box. In IEEE Spectrum[C]. 1995,(4):70~75
[4] Perkowsky S, Jaeger R. The Set-Top Box as MultiMedia Terminal[C]. In IEEE Transaction on Consmer Electronic, 1998,44(3):833~840
[5] 林胜,林国辉,全子一. 一种ATM网络机顶盒的NIU实现[J].电视技术,2000,6(216):40~42
[6] A lur D. J2EE 核心模式[M ]. 牛志奇译. 北京: 机械工业出版社, 2002.
[7] 汪志明,邹道文,周源华. 数字电视中电子节目指南系统的研究[J]. 数字电视与数字视频,2002,11(245):(4~6)
. 通信管理与技术,2005,8(4):(14~16)
【论文:探讨IPTV系统中EPG模块框架的设计和实现】相关文章: