常用的中间件标准之一(MHP介绍)(转)
DVB/MHP(Multimedia Home Platform) 多媒体家庭平台
欧洲广播联盟(European Broadcast Union:EBU)所制订了包括卫星、有线电视、地面广播等一系统数字电视广播(Digital Viedo Broadcasting:DVB)标准之后,以MHP作为互动电视应用的标准。EBU制订MHP的目标是为互动电视应用建立一个通用的平台。
DVB/MHP标准采用Sun公司的Java VM为基础平台,将来无论是用Java或Personal Java语言所开发的应用程序,都可以在交互式的数字电视STB中执行。DVB/MHP标准1.0已公布并获得欧洲通信标准组织(EuroPean Telecommunications Standards Institute:ETSI)的认可。由于发表较早且完整,为互动电视发展情况较好的欧洲业界所接受,因此估计将顺利取得市场优势。在2001年11月底所举行的美国有线电视Western Show中,有多家厂商展示以此中间件标准为开发基础的应用产品。
3.1.1、MHP的发展历史
多媒体家庭平台(MHP)是由一个叫UNITEL的欧洲组织提出的,其目标是开发一个可接入多种数字多媒体服务的通用平台。
1993年 在数字电视的交互平台上提出该方案;
1997年 被列入DVB计划中;
1998年7月 Sun Java虚拟机技术被加到MHP内核中;
2000年2月 Steering Board(EIGT指导委员会)第28届大会批准在DVB中加
入MHP1.0标准;
2000年7月 MHP1.0成为ETSI标准系列中的TS101 812;
2001年4月 DVB发布MHP1.0.1一致性测试和版本文档,DVB和ETSI中心达成
MHP管理协议。MHP专家组着手开发MHP Test Suite;
2001年10月 ETSI发布MHP1.0.1为TS101 812 V1.1.2;
2001年11月 ETSI发布MHP1. 1为TS101 812 V1.1.1
2002年4月 芬兰成为世界上第一个通过使用MHP来实现无线实况转播互动服务
的国家;
2002年11月 Streering Board通过根据CableLabs OCAP(美国有线电视实验室交互
式服务的有线电视产业软件标准)而制订的GEM(Globally Executable
MHP)第一个版本;
2002年12月 DVB通过MHP Test Suite 1.0.2b――第一个完整的MHP测试包;
2003年1月 ETS发布GEM为标准TS102 819;
2003年4月 DVB批准MHP1.0.3,MHP1.1.1,并递交给ETSI,分别进行作为标
准TS101 812V1.3.1和标准TS102 812V1.2.1标准化工作;
2003年6月 ARIB(日本DTV标准)宣告在日本的数据广播中接受基于GEM的应
用环境;
2003年7月 ETSI就批准发布标准ES201 812 V1.1.1(一个ETSI的MHP标准版本)
征询意见。
3.1.2、MHP技术特点
MHP主要定义了机顶盒中间件的整体结构、传送协议、内容格式、Java虚拟机和DVB-J APIs、安全性、各层的细节、应用状态和表现、应用的自动启动等,还定义了专用的应用信令。
3.1.2.1、MHP构架:
MHP被定义成三层:资源层,系统软件层和应用层。典型的资源层包括:MPEG处理,I/O设备,CPU,存储和图形系统。系统软件层给应用层提供一个抽象的可视的平台,通过执行一个应用管理器(亦被称作navigator)来管理MHP和MHP上的应用。
3.1.2.2、MHP内核:
MHP的核心部分――系统软件的本质就是一个中间件,与其它的中间件不同的是,MHP中间件不是一个私有的中间件,它是一个开放的、统一的中间件。MHP标准只是定义了一些API接口,它没有给出实现MHP的方法,因些,实现MHP的具体方案主要由中间件厂商和机顶盒厂商给出。
许多软件包提供了该平台的常用API。MHP应用只需通过这些指定的API访问平台。在指定API跟底层资源和系统软件之间需要一个映射。
MHP建立在DVB-J的基础上。DVB-J包括Sum Mircosystems公司的Java虚拟机。
3.1.2.3、MHP应用层次
MHP把所有的交互作用按照应用领域划分成三个层次:增强广播,交互广播和Internet访问。
&e642; 增强广播:
该层次的应用不需要回传信道,只需下载应用后,在本地与视音频实现交互;
&e642; 交互广播:
该层次是增强广播的超集,应用需要回传信道,能够实现真正的交互;
&e642; Internet访问:
该层次是交互广播的超集,它提供了互联网服务(E-mail,Web浏览和chat等)。
3.1.2.4、MHP标准主要有以下内容
&e642; MHP系统基本结构;
&e642; 传输协议(DSM-CC Object Carousel, DVB Object Carousel 和IP等);
&e642; 内容格式
图形格式: PNG、GIF、JPEG、MPEG-2 I帧或P帧、MPEG-1/2音频、
DVB字幕、UTF-8;
码流格式: MPEG-2 I视频、MPEG-1/2音频、DVB字幕、DVB图文电视、
驻留字符、下载字符、HTML和XML;
&e642; DVB-HTML(HTML4.0,ECMAScript,CSS2和DOM2);
&e642; 应用模式和信号机制;
&e642; DVB-J平台(DVB API,Java API,Java TV);
&e642; 安全加密;
&e642; 层次定义;
&e642; 互联网访问。
3.1.2.5、MHP的应用
MHP机顶盒模型,见下图:
OpenTV MHP机顶盒结构体系,如下图如示:
NDS MHP机顶盒体系结构,如下图所示:
Philips MHP机顶盒体系结构:
3.1.2.6、MHP的关键技术
Java TV API是基于Personal Java应用环境的应用程序接口,是Java平台面向MHP终端的扩展,它提供了对MHP终端特有功能的控制,包括对业务信息数据库的访问、业务选择、 TV上的媒体播放器控制等。Java TV API是针对终端媒体及接收功能的,不包括其他电子设备共有的API。由于Java TV API是独立于硬件和物理线缆传输协议的更抽象的高层协议,因此也可以在一些现存的标准中使用。此外,MHP终端中各种应用的生命周期由Java TV API的Xlet应用模型定义。Xlet运行时可以进行资源的申请和释放,显示内容的存取,发现和选择业务。
3.1.2.6.1、Personal Java和Java TV Personal Java是专为构建可连接网络的消费类电子设备而设计的Java应用环境(JAE)。该环境主要用于家庭、办公室和移动性应用及产品的设计与实现。适合于这种应用环境的消费类电子设备包括手持移动设备(PDA和HPC等)、数字机顶盒和游戏操作台等。 Personal Java平台主要包括Java虚拟机(JVM)、必要的Java类、国际化(118N)支持和面向消费类产品的AWT。其中Java虚拟机包括字节码解码器、字节码校验器、类加载器和垃圾收集机,支持Unicode文本、32位和64位整数、多维数组、浮点数、线程和异常处理,同时还支持Java Beaus、Java Applet和数字签名。在必要的Java类中,包括输入/输出、语言支持和使用工具类。国际化(118N)支持指的是产品使用时在本地整体的包装,以便支持开发者所选择的语言,因此保证了空间和存储器的有效利用。面向消费类产品的AWT版本提供图形和窗口显示特征,支持低分辨率的显示和可选择的输入设备,甚至可以扩展到没有标准鼠标和键盘的设备。 Java TV API 是一个编程接口,面向交互式电视应用或数字广播接收终端上其他软件应用的开发。它可以提供多种机制(如确定当前的广播业务,选择特定的广播业务,控制广播内容流和支持EPG)来控制一个应用的生命周期。 3.1.2.6.2、业务和业务选择 业务(Service)是指呈现在终端上的各种元素,是可选择的。其中,表示其特征所对应的业务信息(SI——Service Information)存放于SI库中。SI表达的是关于视音频数据流的内容的信息。现在使用的SI具有多种不同的标准。在MHP终端的Java TV API中,由于底层的透明性,各种格式的SI可以通用于所有的应用。SI库对象模型为应用提供该库的多视图。通过制定一个特定的视图,应用可以仅涉及到 SI库的一部分。SI库的视图包括工具(Util)、导航(Navigation)、指南(Guide)和传输(Transport)。工具视图提供对一般对象和辅助对象(事件和异常等)实例化的手段。导航视图提供的对象用于在业务中导航。指南视图表达与EPG相关的对象。 业务选择API支持应用以简单高级的方式控制业务的呈现,而不需了解业务的内部细节。它将多个繁琐的操作封装在简单的方法调用中。业务呈现环境用Service Context来表达,其中的选择方法可以用来呈现一个业务。该选择是异步的,操作的完成通过事件来通知,失败时报异常。终端可以对支持的Service Context类实例数目进行限制。 3.1.2.6.3、JMF(Java Media Framework)和广播管道 Java TV API利用JMF管理广播媒体管道。Java TV API定义了一系列的API和框架,用来显示基于时间、独立于传输机制、传输协议和媒体类型的媒体流。JMF通过定义javax、media、 Player来处理基于时间的媒体数据。一个Player对象封装一个状态机,可以用来获取资源和管理媒体流的呈现。通过Player对象,还可以访问以 GUI对象形式包装的视频流。 3.1.2.6.4、广播数据API Java TV API支持以下几种基本访问格式访问广播数据:DSM-CC对象和数据轮,这是对java.io的扩展。Java TV API通过java.io中的文件访问机制支持对DSM-CC对象轮和数据轮的访问。与DSM-CC协议的交互基本上是由Java TV API完成的,非常便于移植。IP数据报封装是java.net的扩展。如果底层支持,Java TV API可通过java.net包中的传统数据报机制提供对封装在广播流中的IP包的访问。PES(MPEG-2 Packtized Elementary Stream)格式的流数据是javax.media.protocol的扩展。
3.1.2.7、MHP存在的问题 在MHP中,几种不同类型的程序包交织在一起成为一个混合体,其中主要的程序包有pJava、 DAVIC、DVB、 JavaTV和Havi等。Personal Java标准包是由Sun公司定义的基于pJava 1.1.8的标准包。DVB是由DVB/MHP技术委员会提供的程序包,它主要是对DAVIC 程序包及一些Java标准包的补充。在这些程序包中,有不少存在着严重的设计缺陷。例如,相对于DAVIC/DVB程序包而言,JavaTV程序包的作用并不大。JavaTV程序包主要由JavaTV Consortium提供,Sun系统公司掌握着其知识产权,其内容几乎含盖所有的DAVIC和DVB程序包,但它并没有一个明显的资源管理模式,如果几个应用程序同时需要同一个资源时,不同的实现模型便会有不同的结果。 Havi图形包也有其缺陷,它建立在java.awt基础之上,可利用AWT的 lightweight component重建一套与AWT一样的二维图形widget体系。但由于它不能完全取代AWT,因而造成了两种图形包共存的局面。另外,DVB- HTML标准也不是很成功。在MHP标准的形成过程中,对HTML的定义也一直存在着激烈的争论。 在MHP中存在的种种问题已为人们所认识,它的 1.0更正版(1.0.1)就提出1000多条修改和重建程序包的意见,而且其测试程序包也迟迟不能完成,这些都说明了其繁杂的程度 。 当然,DVB/MHP也有不少可取之处,主要有两点:一是应用程序下载后的标识和运行模式;二是应用数据认证,以及机顶盒内部资源的权限管理和 X.509认证书的应用,这使得它与目前互联网传输数据的认证取得一致
Data Carousels数据轮播
Object Carousels对象轮播
同理
MHP Carousels MHP轮播