1 引言 传统的流媒体应用开发是面向过程并建立在网络底层协议的基础上的,在系统设计和实现过程中涉及大量底层通信协议细节。因此,开发复杂冗长、效率低下,难以实现软件复用[1]。同时,分布式多媒体系统的多平台、分布式的特点,带来了系统的异构性,也导致了多媒体应用开发的复杂化。传统的中间件(CORBA,DCOM和Java RMI)在一定程度上很好地解决了这些问题。然而,在自适应能力上却受到很大的限制。另外,目前的Internet提供的是尽力而为(Best-effort)的服务,不能够为流媒体实时传输提供服务质量保证。 在此背景下,本文参考了OMG音/视频流规范,设计了一个基本CORBA的流媒体中间件,命名为MOStream,它提供了下面的几个关键的功能: ● 流连接管理器分离了数据通道和控制通道,对单元流提供了有效的控制。 ● QOS管理器抽象了流终端系统间QoS协商,监视和重新配置QoS的实现细节。 ● 自适应协议栈抽象了在流建立开始和传输过程中自动配置协议栈的实现细节。
2 MOStream系统结构 MOStream系统框图如图1所示:
图1 MOStream系统结构 MOStream框架中提供的主要模块有: 流连接管理器:MOStream框架的核心,流的建立过程和控制过程在流连接管理器中进行设计。主要设计内容包括:(1)流建立初期,对媒体设备的绑定,创建流节点,流控制对象和媒体控制对象 (2)流传输过程中,流节点间的远程控制,包括停止,播放,回放和暂停等操作,这是通过CORBA中的对象请求代理(ORB)来实现的,ORB已经提供了远程调用机制,因此只需要利用已开发的ORB来进行设计。 QOS管理器:MOStream框架的服务组件,设计的目标是对流的质量提供一个可接受的QOS保证。主要的设计内容:(1)QOS监视,当某个媒体流的QOS不能满足,QOS监视器负责判断和发送通知给QOS协商接口进行处理。在这里需要反馈协议的支持,例如RTP/RTCP,这些协议被加入自适应协议栈的协议实现库。发送方发送媒体数据时,使用这层的协议,加入反馈信息(包序列号和时间戳)到媒体数据,在接收方得到并解释了这个信息后就发送QOS报文给QOS监视模块进行判断和相关的处理。(2)QOS协商,为了获得统一的协商结果,接收方和发送方需要交换QOS参数协商一个双方可接收的QOS水平。在QOS管理器都建立了一个在自适应协议栈的协议库中存在的协议模块的名字列表,流双方可以通过这个列表来协商得到可接收的QOS配置结果,然后发送通知消息给QOS策略模块处理。(3)QOS策略,在收到QOS协商发来的协商结果信息后,QOS策略动态重配置媒体流的自适应协议栈的协议栈,这样新的流数据将以新的协议栈进行封装并发送。 自适应协议栈:设计的目标是在流传输过程中能对流的传输协议和压缩格式等进行动态地选择。主要设计的内容有:(1)协议发现和选择,主机应用开始一个流会话,并不知道存在的协议模块,这些协议模块通过它们所提供服务的名字能被知道和选择。根据流所需要的服务,这些协议模块能被动态地发现和选择,构建一个协议栈。(2)协议的依赖性配置,协议和服务之间存在一定的依赖性,在协议栈构建的过程中,我们肯定会碰到这样的问题,例如,TCP模块需要底层IP模块的支持,MPEG编码提供的视频输出需要一个MPEG的视频过滤器。(3)运行中的重配置,自适应协议栈提供在运行中对协议栈和协议模块的重配置。这个特性使数据流在不受干扰的情况下重配置协议模块来满足对QOS需求的改变。3 MOStream子系统的实现
3.1 流连接管理器的实现 流连接管理的实现是参考的CORBA A/V流规范,在本文中不做详细描述。
3.2 QoS管理器的实现 QOS管理器支持实时流的QoS的自适应控制。在媒体流的传输过程中,我们可以使用实时流传输协议RTP保持实时数据的同步和实时流控制协议RTCP来监视流数据的QoS质量。在发现QoS违反的时候,需要一种机制动态地配置流来尽量满足流的QoS的服务质量。QoS管理器就是为了这个目的而设计的。QoS管理器在接收到参数loss和delay的时候,需要对这些参数作出判断是否有QoS违反,例如,delay超出QoS属性delay_Max(可接收的最大延迟)时,就认为是一个QoS违反。在QoS违反时,可以选择新的协议替换以前的协议来满足QoS要求,新的协议必须在流的双方都需要支持。在QoS管理器的设计中,每个单元流(Flow)都有一个关联的协议栈,在发生违反时,需要重新配置的单元流的协议栈,这个协议栈是可以动态进行配置。在配置完后,需要对单元流(Flow)的设备参数和网络参数进行设置,这可以通过属性服务的set_property_value()来处理。 QOS管理器设计的主要接口有: QoSMonitor: QoS监视接口 QoSconfig: QoS协商接口 QoSpolicy: Qos策略接口 图2显示了QoS的控制过程:
发生QoS违反时QoS控制的工作流程如下(假设A为发送方,B为接收方): (1)首先,接受方在收到流数据后,它的协议配置接口会发送QoS报文给QoS监视接口(bQoSMonitor),这时,监视接口通过check_QoS(QoSReport)对QoS报文进行检查, check_QoS()操作中QoS监视接口会调用属性服务操作得到以前协商好的流服务质量参数列表,在此列表中包含了最大延迟等参数值,这样就可以根据这些参数值进行判断,如果发生QoS违反将返回一个QoS违反的参数列表结构。监视接口将使用违反的参数列表发送配置请求给协商接口(bQoSconfig); (2)bQoSconfig发送协商请求给发送方的aQoSconfig进行协商,将得到一个协商好的协议列表,然后发送方的协商接口会使用这个协议列表发送协议重配置请求给自己的QoS策略接口。得到协商好的协议列表后,发送方的策略接口将做两个动作:1)发送协议配置请求给自己的协议配置接口;2) 发送重配置请求给相关的流控制接口; (3)StreamCtrl发送修改配置请求给双方的Vdev,缺省情况下,Vdev将简单的发送转发这个请求给与双方Vdev相联系的流节点,它将调用set_property_value()操作设置属性CurrFormat,CurrProtocol,然后重新加载新的协议栈。
3.3自适应协议栈的实现 自适应协议栈中定义了Protocols和ProtocolStack两种结构,如下所示:
Protocols是一个协议列表,可以包含协议栈支持的所有协议组件。其中,参数protocol-_name(协议的名字)和module_name(协议protocol_name的实现模块)支持协议的发现和选择,参数related_protocols(必须关联的协议)支持协议的依赖性配置。protocolStack是一个协议栈结构,每个单元流都有一个协议栈结构,在QoS改变时,单元流不需要停止目前的传输,只需把单元流节点的protocolStack的值设置为新的协议栈,并释放旧协议栈的资源,然后在下一个媒体数据发送时就可以使用新的协议栈,这样就可以支持协议栈的动态配置。 自适应协议栈设计的接口有: ProtocolConf:协议配置接口 ProtocolReg:协议注册接口 以下是这些接口的详细设计: ⑴ 协议配置接口(ProtocolConf) 协议配置接口主要负责为每个单元流(Flow)建立协议栈和动态配置。在流建立初期,接收方和发送方的虚拟多媒体设备和流节点(StreamEndpoint)之间有一个设备参数和网络参数的协商过程,协商成功后,流节点会发送协议栈建立请求给协议配置接口,然后ProtocolConf为每个单元流(Flow)建立协议栈。如果单元流(Flow)发生QoS违反,ProtocolConf会收到来自QoS策略接口的协议重配置请求modify_QoS (new_protocol),它将复制该单元流(Flow)的协议栈,然后对该协议栈进行重新配置,配置成功后,发送协议栈重配置请求给单元流节点,这时单元流节点将加载新的协议栈,释放旧协议栈的资源,这样做可以不影响单元流当前的传输,在新的协议栈配置成功后,单元流节点将使用新的协议栈。 ⑵ 协议注册接口(Protocolreg) 在Protocol结构中,每个协议名protocol_name都对应可用的模块名module_name,这样只要提供所需的协议名,就可以找到协议的实现模块。协议注册接口(Protocolreg)允许增加新的实现模块,因为协议栈是通过协议名来配置,在新的实现模块建立后,需要发送protocol_reg(module_name)注册这个模块来增加新的可用协议。4 结论 目前存在的流媒体中间件对QoS控制,协议选择的自适应能力都缺乏足够的支持。本文的主要出发点就是扩展这两项功能,设计了一个基于CORBA的流媒体中间件的框架结构,该框架具有QoS和协议栈自适应能力,并对各个模块和接口进行了详细地设计。这样可以规范并大大简化流媒体的开发。
参考文献 [1]廖泰安,安志远,沈升源着.软件复用技术:在系统开发过程中考虑复用. 机械工业出版社.2003 谷和启.中间件主流技术及其未来发展精解. 2005.01.17 OMG..Minimum CORBA Specification.2002-8-1 钟玉琢,向哲,沈洪.流媒体和视频服务器.北京:清华大学出版社,2003 Video Stream Specification.2000 章佩,龙世诸等.IP网络中的QoS技术.数字通信.2000.3:24-27 HelloSoft .Real-Time Protocol: The Protocol for Real-Time Multimedia Services.2004
中国论文网(www.lunwen.net.cn)免费学术期刊论文发表,目录,论文查重入口,本科毕业论文怎么写,职称论文范文,论文摘要,论文文献资料,毕业论文格式,论文检测降重服务。 返回电子论文列表