面向下一代网络电视的多媒体展示框架中间件

2011-08-10 04:43:18陆玮珏叶德建
电视技术 2011年21期
关键词:中间件控件云端

陆玮珏,叶德建

(复旦大学,上海 201203)

责任编辑:闫雯雯

0 引言

当前,国际上Apple TV[1]和Google TV分别开始挑战网络电视市场。二者均采用“操作系统+云计算[2]”的软件技术开发平台推动下一代网络电视的发展,可见后端基础架构云化和前端操作系统这一设计理念确实是网络电视领域未来发展的趋势。

而在中国,网络电视有一大类是多媒体展示框架应用,以数字标牌为例[3]。在这个细分领域的现状中,后端基础架构通常部署功能单一的服务器,负责多媒体的管理和分发,而前端则是硬件异构的客户端设备,负责计算、解码和展示。相比于国际趋势,在中国的多媒体展示框架领域的设计中,后端基础架构没有云端的概念,没有很好地利用其强大的存储空间和计算能力。而客户端上也没有任何可以屏蔽硬件异构性的支持软件平台,造成软、硬件紧耦合的开发模式,同时使得应用软件在不同硬件设备上的移植性差。

针对这些不足,笔者提出一个面向下一代网络电视的多媒体展示框架中间件。作为一个运行在客户端上的支持软件平台,它与云化的后端实时交互,将状态等信息存于云端。另外,由于在网络电视上的操作系统还不成熟,同时作为多媒体展示应用这个细分领域的支持软件平台,无需像操作系统那样强大而全面,因此采用中间件[4]来完成兼容多样化硬件的跨平台性。该中间件是核高基重大专项流媒体业务中间件的组成部分。

1 中间件的设计和实现

目前在中国的多媒体展示应用领域中,中间件需要利用强大的云化后端基础架构来提高因客户端设备计算受限引起的较差稳健性。并且支持市场上多款主流客户端硬件设备,如X86,Sigma,BroadCom,MStar等,还要打破软、硬件紧耦合的开发模式,为上层应用进行多媒体展示提供统一的接口,从而便于实时性要求高的多媒体展示应用的开发、维护和升级。

因此在设计之初,笔者针对以下3点进行设计:

1)首先考虑到客户端设备计算和存储能力有限但解码能力强,而云端有大量的存储设备等特性,本中间件允许实时将客户端的状态交由云端存储,提高稳健性。

2)其次,由于多媒体展示应用通常是要将多种类型的媒体分屏组合展示,不同类型的媒体展示的实现大多与硬件相关,而中间件又要对上层应用提供统一的接口,因此将多媒体展示中与硬件相关部分抽象成适配层,并将不同类型的媒体展示抽象为不同的独立控件展示。

3)由于多媒体展示应用的高实时性,中间件将仿照Windows的消息机制来实现对象间的事件触发,并采用多线程的方式减少延迟。

1.1 分层体系架构

图1表明了整个系统的分层体系架构。后台是云端部署,而客户端自底向上分别是底层硬件和操作系统,中间件,多媒体展示应用。中间件处于客户端的细腰处,即其能支持各种底层硬件的客户端平台,同时也为应用提供商开发提供基于该中间件的应用开发接口。同时除了应用需要与云端的服务器进行网络交互,该中间件也需实时将状态等信息发送给云端。

图1 分层体系架构图

1.2 中间件的结构模型

中间件的结构模型分为3层:绘图层、逻辑层和控件层。其中模块划分如图2所示。

图2 中间件的结构模型图

下面分别介绍各层的功能和模块组成:

1)控件层位于该中间件的最顶层,是为上层应用提供服务的主体,分别有视频控件、图片控件、文本控件等提供不同类型的媒体展示。同时为了便捷新应用的开发,可根据控件接口规范快速地实现一个新类型的控件,增加了可扩展性。

2)绘图层是为上层各个控件提供通用播放器和图形库接口的适配层,定义了通用播放器的接口和图形库接口,一旦移植到新的硬件平台上,只有实现这些接口即可完成移植,从而允许上层的应用开发与硬件无关。

3)逻辑层中,网络管理、资源管理、线程管理、组件工厂、消息机制这5个模块为其他上层模块提供了基础运行环境。剩余模块为控件的展示提供基础模块。

网络管理屏蔽了不同硬件实现的差异。

资源管理则提供本地资源管理和远程资源下载功能。

线程管理则使用线程池的方式来并行处理一些除了展示逻辑之外较为费时或可能引起等待的操作,并实时平衡所有线程的工作量,从而提高多线程的利用率。

该中间件设计了组件工厂和消息机制来模拟Win⁃dows的消息队列,允许所有由组件工厂创建的对象能够接受自定义的消息并立即处理,从而提高实时性。

指令解析负责解析规定格式的指令,生成记录,并对任务集进行添加、更新或删除记录的操作。

记录是一条包含已经播放了多少时间、在任务集合中的序列号、优先级、单次展示时间、是否允许中断后恢复、有效期、定时记录的开始时间、定时记录的结束时间和定时类型、具体展示资源等信息的文本字符。

任务集合则与控件绑定,一个任务集合中包含了对应控件需要展示的所有记录。一旦任务集合发生了删除、更新等改变,则会发送消息通知其绑定的所有控件更新展示。

行为是记录转换的对象,分别有记录对应的不同属性。

一个控件由行为组来管理各个行为,相同优先级的行为在同一个行为组中,并以序列号排列。当控件接收到任务集合发送的改变消息后,即可对应更新自己的行为组,从而在行为组中重新调度,选出一个行为进行展示。

图3给出了控件、任务集合、记录、行为组和行为之间的UML关系图,从中可以总结一个任务集合包含多条记录,并且能被至少一个控件绑定。而每个控件都有至少N个行为组,每个行为组对应包含该优先级的行为。这些行为都是由记录转换而来的。

1.3 框架的工作流程

一旦中间件运行,其指令解析模块会根据接受到的指令,为每个控件对应的任务集添加、更新或删除记录。而任务集合发生改变后,以消息机制通知绑定的控件,控件则根据变化的记录更新对应的行为,然后从所有行为组中根据每个行为的属性进行调度,一旦发现某个行为比当前展示的行为优先级高,所需的资源文件已经下载到本地,并且其能在当前时间展示,则将停止当前展示,并将新行为替换展示区中的行为,随后控件则调用绘图层的接口对该行为进行展示。而当一个行为展示结束(例如单次播放时间结束或视频播放完毕等),则同样调用绘图层的接口停止展示,并将其从该控件的展示区中删除,再重新调度展示下一个行为。

图3 重要类之间的UML关系图

控件的主要接口定义如表1所示。其中定时器是基于消息机制实现,它允许目标对象在指定时间过后接受到一个包含定时器类型的消息,从而作对应处理。

表1 控件类中6个主要函数

1.4 状态收集

每个控件在展示过程中,会实时将当前展示的资源名称、已经播放了多长时间等状态存储到云端,以便在断网重连或客户端死机等情况下,基于该中间件的上层应用能根据云端存储的状态可靠恢复,重新展示。

2 应用实例

2.1 网络多媒体广告应用

根据以上描述的中间件,笔者根据其提供的接口开发了一个网络多媒体广告应用实例。它是一种数字标牌系统,可以集中管理,控制大范围分布地点发布高标准的定制信息,集高清视音频、图片、文字等多种元素于一体,含轮播、插播、定时等灵活的播放方式。目前绘图层使用QT实现,支持sigma8653和X86两个平台。网络多媒体广告应用的软硬件部署如图4所示。

图4 软硬件部署

管理服务器允许管理人员在管理终端对视频、图片、文本、布局等资源进行在线编辑,同时发送指令给所有网络多媒体广告应用。

当网络多媒体广告应用接受到指令后,即交由该中间件中的指令解析模块,该模块会根据指令创建对应控件,并一一为每个控件初始化要展示的记录的任务集,最后开启控件,这样,控件则会根据自身定义的调度逻辑一一展示。

2.2 应用性能分析

为了考察中间件对应用性能的影响,笔者做实验测试CPU使用率。在一台四核的PC上,对比了基于该中间件开发的网络多媒体广告应用和传统软硬件紧耦合开发的网络多媒体广告应用的平均CPU使用率情况。图5分别给出了两个应用在不同特点布局上的对比结果。对于多滚动文本布局,CPU主要用于渲染和滚动计算,可见使用跨平台QT实现的滚动比直接使用硬件GDI实现的性能高。对于包含时钟、图片和滚动文本的混合布局,可以发现基于该中间件的应用CPU使用率相对较低。而对于单视频布局,由于基于该中间件的应用采用QT的pho⁃no实现播放器接口,而硬件相关的应用则采用VLC实现,可见QT版本占用的CPU更高。

实验结果表明,基于中间件的设计不会对应用的性能造成很大的影响。

2.3 云端状态重构

网络多媒体广告应用在使用该中间件的控件的展示过程中,会不时发送日志或状态给云端的状态服务器进行存储,从而管理服务器可根据日志信息告知管理人员客户端的运行情况,主服务器也可以结合状态信息允许重启的网络多媒体广告应用进行状态还原并继续展示。

图5 基于中间件的应用与硬件相关应用的性能比较

另外,由于云端存储着每个客户端上网络多媒体广告应用的运行状态,所以笔者还开发了一个简单的监控应用,通过接收云端的状态来重构,还原指定客户端上网络多媒体广告应用的当前展示情况,从而达到安全监控的效果。图6给出了一个PC监控某机顶盒的效果图,可以看到PC展示的画面和由机顶盒控制的显示器一致。

图6 监控效果图

一般监控程序都是实时接收被监控客户端的当前播放状态,如视频流、图片等,导致网络占用高带宽。而通过该中间件将状态交由云端存储后,云端可以根据数据库中被监控客户端的相关信息,结合状态重构出该被监控客户端的当前播放内容指令,从而只需把网络占用带宽低的指令发送给监控程序即可。

3 结论

笔者提出了一个面向下一代网络电视的多媒体展示框架中间件的设计,给出了一个基于该中间件开发的网络多媒体广播应用实例。该中间件有以下4个特点:

1)跨平台性:其利用分层设计有效地屏蔽了底层客户端的硬件异构性,为将该中间件移植到新的客户端硬件平台提供了便利。

2)透明性:基于该中间件,多媒体展示应用的开发更为方便,开发人员只需了解中间件向上提供的接口即可,无需知道客户端底层的操作系统和硬件接口。

3)可扩展性:该中间件具有可扩展性,可添加新类型控件模块来支持更多类型的多媒体文件的在线展示。

4)稳健性:由于该中间件实时将上层应用的展示状态存储在云端,可以根据这些状态进行恢复或监控,从而保证上层应用的可靠运行。

[1]LEMAY S,KELLY S.User Interface forapplication managementfora mobile device:US2009/0307105 A1[P].2009-12-10.

[2]HAYES B.Cloud computing[C]//Communications ofthe ACM.New York,NY,USA:[s.n.],2008,51(7):9-11.

[3]ABI Research.US Digital Signage Market to Grow by One Third in 2009[EB/OL].(2009-03-20)[2011-09-15].http://www.biresearch.com/press/1385-US+Digital+Signage+Market+to+Grow+by+One+Third+in+2009.

[4]BERNSTEIN P A.Middle ware:a modelfordistributed system services[C]//Communications ofthe ACM.New York,NY,USA:[s.n.],1996,39(2):86-98.

猜你喜欢
中间件控件云端
云端之城
现代装饰(2020年5期)2020-05-30 13:01:58
RFID中间件技术及其应用研究
电子制作(2018年14期)2018-08-21 01:38:10
关于.net控件数组的探讨
软件(2018年7期)2018-08-13 09:44:42
基于VanConnect中间件的设计与开发
电子测试(2018年10期)2018-06-26 05:54:02
美人如画隔云端
丝路艺术(2017年5期)2017-04-17 03:11:50
行走在云端
初中生(2017年3期)2017-02-21 09:17:43
云端创意
中间件在高速公路领域的应用
一种支持智能环境构建的中间件
就这样玩会VBA中常见的自定义控件
电脑迷(2012年24期)2012-04-29 00:44:03