微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 消费类电子 > IPTV系统中EPG模块的设计与实现

IPTV系统中EPG模块的设计与实现

时间:08-14 来源:EDN China 点击:

(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) 控制器。用户可以通过视图来改变模型的状态, 这种更新是通过控制器来完成的。控制器负责调用模型的改值方法以改变模型的状态, 同时, 控制器会通知所有的已登记视图刷新数据显示。

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。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top