您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 基于CORBA的音频视频流式服务的设计和性能
基于基于基于基于CORBA的音频的音频的音频的音频/视频流式服务的设计和性能视频流式服务的设计和性能视频流式服务的设计和性能视频流式服务的设计和性能译者:译者:译者:译者:AmigosfromHuihoo.com原作者:原作者:原作者:原作者:DouglasC.Schmidt,SumedhMungee,NagarajanSurendran,YamunaKrishnamurthy摘要摘要摘要摘要近来,随着网络带宽和CPU处理能力的飞速提高,各种多媒体流式应用层出不穷,主要有网络电影(NetShow)、实时视频和Vxtreme。这些应用一般都需要通过专有的流格式和控制机制来获取多媒体上下文。为了简化标准的分布式多媒体流式应用的开发,OMG已经制定了基于CORBA的流式应用规范,它规定了用于控制和管理音频/视频流的关键的接口和语义。本文将从两个方面给出基于CORBA的分布式多媒体流式应用研究的成果。第一个方面是给出一个OMG音频/视频(A/V)流式应用模型的设计和其性能评估,该模型是基于一个实时CORBA的ORB—TAO来实现的。第二个方面是文中描述了一个利用TAO提供的A/V流式应用框架来建立和控制MPEG视频流从而实现了一个分布式应用并讨论了这个应用的性能。通过基于TAO的A/V流式应用框架的实验表明了CORBA规范定义了一个灵活、高效的模型以用于开发标准的多媒体流式应用。关键字关键字关键字关键字基于CORBA的多媒体视频流应用、QoS中间件、性能评测1引言引言引言引言1.1动机动机动机动机传统的分布式对象计算(DOC)中间件如CORBA、DCOM和JavaRMI都支持分布式应用中的请求/应答语义。然而,某类日益增长的重要的应用却要求传输连续的媒体数据流。举例来说,当今流行的基于Internet的流式机制如实时视频[1]和Vxtreme[2],允许供应方们发送连续的音频和视频数据消费群体。同样的,非连续的媒体应用如医用图象服务器[3]和网络管理代理[4],使用流媒体的方式来有效地把大块数据从供应方发送到消费者。发送流数据所要求的苛刻的性能指标,通常限制了人们把DOC中间件作为多媒体应用中的传输机制[5]。例如,低效的CORBAIIOP协议在实现中通常会对每个请求执行过量的数据拷贝和内存分配,这种方式增加了数据的时延[7]。同样地,在DOC中间件之间进行的低效的列集和散集(marshaling/demarshaling–潘爱民翻译)降低了流数据的吞吐量[8]。但是,如果能够提高DOC中间件的设计和性能,那么,分布式多媒体应用中的流数据的建立和控制部分就能从具有可移植性和灵活性的中间件中获得极大的好处。为了解决这些问题,对象管理组织(OMG)已经制定了一个用于控制和管理A/V数据流的规范[9],这个规范是基于CORBA参考模型的[10]。CORBAA/V数据流规范定义了一个模型,用于实现开放分布式多媒体流式应用框架。这个模型主要包括:(1)定义明确的模块、接口和流数据的建立及控制(2)采用高效的传输级的数据传输机制。通过定义标准的流数据的建立及控制机制,OMG规范允许分布式多媒体应用利用DOC中间件提供的可移植性和灵活性。在我们前期关于CORBA中间件的研究中,已经探讨了实时ORB端系统设计的多个方面,其中包括:静态[11]和动态[12]实时调度、实时请求分解[13]、实时事件处理[14]、实时I/O子系统的集成以及不同的商业和科研的ORB系统在ATM网络上的实时性能[16]。本文着重讨论实时ORB系统中的一个新的应用:CORBAA/V流式服务规范的设计和性能评估。1.2设计难点设计难点设计难点设计难点我们开发了第一个免费可用的OMGA/V流式模型,该模型采用TAO[11],这种实时CORBA的ORB已经被移植到大部分操作系统上。另外,为了实现OMG规范定义的组件,TAO的A/V流式服务在实现中采用了模式[17]来解决下面提到的设计中关键问题,这些问题使得在实现分布式多媒体流式应用时难度增加:1)流端点创建策略的灵活性。流端点创建策略的灵活性。流端点创建策略的灵活性。流端点创建策略的灵活性。OMG规范定义了流式应用中组件的接口和规则。许多对性能要求高的多媒体应用要求通过细粒度的控制策略来管理流式组件的创建。例如,我们过去对WEB服务性能的研究[18,3]激发了支持适应性高的并行策略来开发高效率和可扩展的流式应用的需要。在我们A/V流式服务的上下文中,我们决定在我们的MPEG应用的供应方(在第3段说明)请求一个基于过程的并行策略来最大化流的吞吐量,通过允许平行处理不同的流。然而,其它类型的应用要求不同的实现方式。例如,在我们的MPEG应用的消费方能够从供应方创建流时的所做出的不同反应中得到好处,这种供应方在单个进程中包含了所有的相关的端点。因此,为了获得高度的灵活性,我们的A/V流式服务设计通过控制组件的创建策略来分离流式组件之间的行为。我们通过工厂模式和抽象工厂模式[17](在第2.2.1中描述)来实现这种分离。2)传输协议的灵活性。)传输协议的灵活性。)传输协议的灵活性。)传输协议的灵活性。一个流式服务可能需要从一些不同的传输协议中进行选择。例如,象Realvideo这样的基于Internet的流式应用[1]可以使用UDP协议,反之,一个本地的内部视频会议工具[20]可能更愿意使用基本的高速的ATM协议就能提供的QoS特性。因此,一个流式服务能够支持一系列的传输协议是很重要的。OMG流式服务毫无疑问支持数据流传输协议。从而,在我们的A/V流式服务框架中的流创建部件提供了灵活的机制,允许应用程序定义和使用多个传输端点如套接字和TLI,和多个协议如TCP、UDP或者ATM。因此,另一个设计上的问题是要定义流创建部件能够在不同的传输端点上工作。为了解决这个问题,我们采用了策略模式[17],这点将在第2.2.5中予以解释。3)流控制界面的灵活性。)流控制界面的灵活性。)流控制界面的灵活性。)流控制界面的灵活性。一个A/V流式框架必须提供灵活的机制以允许开发者来定义和使用不同的操作来对应于不同的流。例如,一个视频应用典型地支持不同的操作如播放、停止和回绕。反过来说,一个库存引用应用中的流可能支持开始和停止这类操作。因为流提供的操作是由应用定义的,控制逻辑部件在一个流式服务中的灵活性是很有用的。因此,另一个设计中的流式服务的设计者需要面对的难题是允许应用有定义他们自己的流控制接口的灵活性。4)管理流的供应方和消费方的状态的灵活)管理流的供应方和消费方的状态的灵活)管理流的供应方和消费方的状态的灵活)管理流的供应方和消费方的状态的灵活性。性。性。性。流式应用中的传输部件常常需要依赖当前系统的状态来改变行为。例如,在视频供应方的流控制接口中调用播放的操作,可能使应用进入一个正在播放的状态。同样,随后向应用发送停止操作可能使应用转换到已停止的状态。象回绕和快进这些操作需更复杂的状态机制来实现。因此,开发者的一个重要的设计难题是设计灵活的应用以允许它的状态可以扩展。另外,流的供应方和消费方以及A/V流式应用本身的行为在每个状态必须说明的很清楚。对于这个问题,我们应用了状态模式[17],这部分在第3.1中叙述。1.3论文组织论文组织论文组织论文组织论文余下部分是如下组织的:第二部分叙述我们采用TAO[11]这种实时CORBAORB来实现OMG制订的A/V流式应用规范;第3部分概述了采用TAO中的A/V流式服务来实现一个MPEG流式应用;第四部分分析了TAO中的A/V流式服务在高速ATM网络上的性能;第五部分总结了相关的工作;第六部分是结论。为了完整起见,附录A概述了OMGCORBA的参考模型,附录B简要地说明了CORBA的属性服务,这个服务用于在A/V流式服务中的消费方和供应方之间传输QoS信息。2.TAO中的音频中的音频中的音频中的音频/视频流服务的设计视频流服务的设计视频流服务的设计视频流服务的设计这个部分概述了OMG定义的A/V流式模型中的关键框架部件。同时也描述了A/V流式应用的开发者所面对的问题。最后给出了在TAO的A/V流式服务是如何解决这些问题的。2.1OMG音频/视频流式服务规范概述OMG的A/V流式服务定义[9]叙述了一个应用模型和OMG定义的用于创建分布式多媒体流式应用的IDL接口。OMGA/V流式服务应用模型的目标如下:标准的流创建和控制机制:采用这些机制,消费方和供应方能相互独立地开发,而仍然能够在相互之间创建流。支持多种传输协议:为了避免不必要的开销,A/V流式模型把控制信号与数据传输协议分割开来,如采用TCP、UDP或者ATM等协议。支持不同类型的发送源和接收器:通常流的发送源包括一个视频点播服务器,一个连接在网络上的摄像机或者是一个股票报价服务器。通常接收器包括一个视频点播的客户端、一个连接在网络上的显示设备或者是一个股票报价客户端。图1OMG的流式应用架构图1显示了一个多媒体流,它是在两个流式数据端点之间流动。一个端点是数据流的源,而另一个端点则是数据流的接收器。请注意,控制和信号操作通过ORB的GIOP/IIOP协议进行传输,图中的虚线框是划分的界限。维持这种分离的设备关键是要获得高的性能。每个流式数据端点包含三层逻辑:(1)一个流接口控制对象,用于提供IDL接口;(2)一个数据源或者是数据接收器和(3)一个流式适配器用于负责通过网络发送和接收数据包。控制和管理对象是用于建立和控制流数据的。OMGA/V规范定义了流接口控制对象和控制和管理对象的接口和对象之间的相互作用。第2.2段将详细地讨论图1中的各个部件。2.2OMGA/V流式服务部件OMGA/V规范定义了一套标准的IDL接口,这些接口在实现后能够提供一个分布式多媒体流式应用框架。图2举例说明了基于CORBA的多媒体流式应用框架中的关键部件。这一部分将描述TAO是如何实现图2所示的A/V流式应用框架中的关键部件的。每个规则对应的OMG接口名称在括号中给出。另外,我们还将讨论TAO是如何对在第1.2段提出的问题提供解决方案的。读者如果已经熟悉OMGA/V规范了,那么可以跳到第3段,看看我们是如何利用TAO提供的A/V服务来实现一个MPEG播放器的。图2A/V流式服务组件2.2.1多媒体设备工厂(MMDevice)MMDevice部件抽象了一个多媒体设备的行为。一个实际的设备可能是物理实体,如一个视频麦克风或扬声器。同样地,一个设备可能是逻辑上的东西,如从一个文件或某个包含股票信息的数据库中读取视频片段的一段程序。一般来说,一个MMDevice对应于一个物理的或逻辑的设备。如图3所示,MMDevice部件封装了一个多媒体设备的参数,这个参数详尽地定义了设备信息。例如,一个特殊的设备可能支持MPEG1压缩算法的视频或ULAW音频。这种参数被称为MMDevice的属性。这些属性能用CORBA的属性服务和MMDevice联系在一起的,这种属性服务在附录B中描述。图3多媒体设备工厂MMDevice是一个终端设备,即它有责任为新的流连接创建新的终端。每一个终端包含一对对象:(1)一个虚拟设备(Vdev),它封装了明确的连接设备参数和(2)流端点(StreamEndpoint),它封装了明确的传输参数。Vdev和StreamEndpoint的任务在第2.2.2和第2.2.5中予以分别描述。MMDevice部件也封装了管理创建Vdev和StreamEndpoint对象的策略具体实现细节。例如,在TAO的A/V流式服务框架的实现中就提供了如下两个并行算法:基于进程的算法:基于进程的并行算法在一个新的进程中创建新的虚拟设备和流端点,如图4所示。这个算法对于那些在单独的进程中处理每个新的端点的应用是有用的。例如,在第3.1中描述的MPEG播放器的供应者创建单独的进程来把音频和视频数据并行的发送给消费者。图4MMDevice基于进程的并行算法互动算法:在这个算法中,每个新的流连接对应的终端设备对象都被创建在工厂进程中,如图5所示。这意味着单个进程交互处理所有并发连接。这个算
本文标题:基于CORBA的音频视频流式服务的设计和性能
链接地址:https://www.777doc.com/doc-1588874 .html