
1.3 分布式多媒体计算机系统的研究内容
分布式系统的一般研究内容包括进程间的通信、进程的组织与迁移、命名与实体定位、同步与互斥、一致性和复制、容错、安全等。多媒体计算机技术则研究音、视频数据的获取与数字化、压缩编码、多媒体的存储与组织管理、多媒体通信等。这些关键技术成为支持分布式多媒体计算机系统的基础,都是本书需要讨论的内容。为了支持多媒体的分布式应用,分布式多媒体计算机系统还有一些特定的研究内容,如支持流媒体的进程间通信、支持分布式多媒体的进程组织模型、分层可扩展压缩编码技术、分布式多媒体的任务调度与流的调度、资源管理、QoS保证技术等。
1.面向流的进程间通信
分布式系统的核心问题是进程间的通信。已经提出并在实践中使用了许多进程通信的方法,如消息传递、远程过程调用(RPC)、远程方法调用(RMI)等,将在第2章进行详细讨论。传统的分布式系统讨论的进程通信都是在某种程度上对独立且完整的信息单元进行交换。比如,调用某个过程或方法的请求、对请求的响应,以及消息队列系统中应用程序间的消息交换都属于这种类型的通信。这种类型通信的典型特征是,它并不在乎通信究竟在哪个确切的时间发生。虽然系统可能会运行得过快或者过慢,但是同步对通信的正确性没有影响。
面向流的进程间通信要研究的问题是,分布式系统应该提供怎样的功能,来为时间敏感的信息交换提供支持。在这种情况下,进程间交换的信息不是独立的单元,是有同步约束的数据单元序列,称为数据流(Data Stream)。组成流的各个数据单元之间有时间同步限制,如一个视频流由一个个的帧组成,帧之间的时间间隔不能大于40ms。进程间的通信机制必须透明地保证这种时间同步。进程间的通信过程也不能用简单的请求—应答来描述,因为一次请求(如点播一个视频节目)的应答可能需要大量的、长时间的数据发送。在应答数据的传递过程中,底层通信子系统可能发生了变化(如Internet带宽变小了)。为了保证流的实时性,透明地调整传输策略是必要的,甚至需要被请求进程改变流数据的特征,如调整流的压缩编码策略等。
2.分布式多媒体的进程组织模型
分布式系统的进程组织模型研究进程间用什么方式协作完成一个计算任务。被广泛接受的是客户机/服务器模型。该模型把分布式系统的进程划分为客户机和服务器两组,服务器进程实现某个特定的服务,客户机则是向服务器请求服务的进程。用客户机/服务器模型来理解和设计分布式系统,大大简化了系统中复杂的进程协作关系。在分布式多媒体计算机系统中,简单的客户机/服务器模型有时会遇到困难。例如,在使用多媒体代理服务器和多个媒体副本的Internet视频点播系统中,客户的点播请求可能直接由代理服务器服务、某个收益最好的副本服务器服务,或者是由代理和媒体服务器共同服务(代理服务器仅缓存了流媒体的前缀数据时),也可能由多个服务器同时提供服务(如视频与伴音存储在不同的服务器上的情况)。有研究者在基本的客户机/服务器模型上已经提出了一些新的进程组织模型,如基于Agent的客户机/服务器协调模型。客户机和服务器通过它们的代理(Agent)相互通信和协调。在服务器组代理SG模型中,SG Agent可以透明地分解服务请求、决定子服务由哪个服务器进程提供,简化了客户机/服务器通信。在分布式多媒体计算机系统中,特别是Internet上的点播类应用和移动多媒体应用,多媒体代理服务器是经常使用的一种技术,基于Agent的客户机/服务器模型值得深入研究。另外,在分布式多媒体计算机系统中,服务器向客户传送的数据是一个周期性的、有时间约束的实时流,其特点是,流的传输要按一定的速率、突发强度进行,组成流的逻辑数据单元(如视频的一帧)要在限定的时间前到达。网络状态是不断变化的,压缩的媒体流也常常是变码率的,在流数据的传输过程中需要动态调整传输策略、资源分配机制来予以保证。这就是多媒体通信的QoS保证问题。因此,需要在基本的客户机/服务器模型基础上研究新的机制,解决上述问题,如能够实现QoS监控、动态协商、缩放的Agent模型。
3.分层可扩展编码技术及其应用
传统的音频、视频编码方法不适合包交换方式网络的传输,其根本原因在于,其目标是将媒体压缩成为适合一个或几个固定码率的码流,如MPEG-1、H.261、G721,其目标是面向存储的,或者是面向电路交换网络的传输的。由于网络的异构性和缺乏QoS保证,带宽在很大的范围内发生变化,因此面向网络传输的多媒体编码的目标是将媒体流压缩成适合一个码率范围的码流。
在分布式多媒体计算机系统中,为了实现视频、音频等流媒体在网络上的实时传输,研究者提出了两种不同的解决思路。第一种思路是以网络为中心,要求网络中的路由器/交换机为流媒体传输提供带宽、延迟、抖动、丢失率的服务质量保证,在Internet上可以通过综合服务模型和区分服务模型来实现。第二种思路只涉及端系统,不对网络提出要求,通过端到端的协议实现流媒体传输的QoS保障功能。由于第二种思路不依赖于现有的技术和未来的网络实现,因而是一种比较容易实现的方法。这种方法主要通过分层可扩展编码技术来实现码率的动态调整,以适应网络的动态变化。
所谓可扩展性编码,是指多媒体的压缩数据被组织成多个层次结构,即由一个基本层和若干个增强层组成,基本层码率比较低,可以独立解码,恢复的媒体质量比较低,但可以满足某些基本的应用。基本层加上附加层后,可以提高媒体质量,从而满足更高质量要求的应用需要。这样,根据网络状态的变化,服务器可以调整流媒体的发送速率(只发送基本层或基本层加前几个增强层),以质量降级服务来保证流媒体的延迟、抖动、丢失率等QoS要求。另外,在第一种解决思路中,如果有了可扩展编码技术的支持,便可以更方便和有效地实现。例如,在多媒体组播服务中,组播路由器可以根据组播组成员的接入带宽,转发适当层次的媒体流数据,从而实现一个数据源、多个不同的接受条件的接收者。再如在综合服务模型中,带宽等资源的预留可以根据流媒体的分层区别对待,如基本层带宽给予硬保证,增强层则可以仅给予“软保证”:在资源紧张时丢弃增强层数据包。
关于分层可扩展性编码的研究可以追溯到10年前,目前它已经被许多现行的国际压缩标准(如H.263+和MPEG-4)所接纳。分层可扩展性编码主要有3种:时域可扩展、空域可扩展和质量可扩展。其中,精细可扩展性的编码技术可以实现压缩码流在任何码率截断的特性,解码质量随码率的增加而持续增加,是目前研究的热点,国际标准化组织正在征集编码方案。
在分布式多媒体计算机系统中,关于压缩编码的研究主要应该关注分层可扩展技术,以及如何应用该技术保证流媒体传输的QoS。
4.QoS保证
多媒体传输的QoS保证是分布式多媒体计算机系统研究的一个核心问题。由于多媒体的数据量大和具有实时性要求的特点,要求系统网络对带宽、延时、抖动、差错率、分组丢失率等QoS参数提供保证。在开放性的网络(如Internet)中,网络的状态是动态的,可用带宽、延时、丢包率等在很大的范围内随时变化。对于如何保证QoS,已经开展了许多卓有成效的工作,但目前是一个仍需要深入研究的课题。目前的研究涉及下列内容。
(1)资源管理。有效地通过管理资源(如处理机调度、磁盘I/O策略、存储(如多媒体代理及缓存技术)、带宽分配、缓冲区管理等)保证QoS。
(2)多媒体通信。例如,发展高速、宽带传输网络,开发合适的网络传输协议等。研究端到端的多媒体传输技术,如多媒体拥塞控制策略、差错控制、速率整形等。
(3)QoS机制。例如,以什么样的模型保证开放网络上的QoS,IETF提出了综合服务模型和区分服务模型;又如QoS参数的分层模型等。
(4)流媒体的调度技术和Internet上的流式传输的技术。
(5)分层可扩展编码技术的应用。
5.资源管理
与分布式多媒体有关的资源管理问题有如下研究热点。
(1)多媒体数据的存储。由于多媒体的数据量大这个特点,基于服务器类型的分布式多媒体应用的性能瓶颈是存储及其I/O速度。为了解决存储数量与I/O速度的矛盾,一般使用分层的存储体系,如由光盘库—磁盘阵列构成的存储结构或由服务器阵列—代理服务器组成的结构等。在分层存储体系中,需要研究适合多媒体的一、二级存储的资源替换策略与算法。
(2)磁盘I/O的调度问题。磁盘调度算法主要考虑的是,如何安排各个磁盘读取请求的服务顺序。传统的文件服务器使用的先来先服务、最短寻道优先、扫描等算法,主要用于减少寻道时间和等待时间,获得较高的吞吐量,或者提高各个数据流的服务公平性。然而,由于连续媒体的实时性要求,分布式多媒体计算机系统中的存储服务器的磁盘调度算法应该在保证每个数据流传输的实时性基础上,提高系统的吞吐率。于是,出现了EDF、SCAN-EDF和分组扫描策略等能保证具有I/O时间限制的磁盘调度算法。对于磁盘资源,可以使用缓存技术减少磁盘I/O次数,从而增加磁盘的有效带宽。间隔缓存使用一个全局缓存来减少磁盘I/O。通过间隔缓存技术进行缓存管理是一种非常吸引人的、能够明显提高系统吞吐量的资源管理技术。
(3)如何有效地在存储介质上存放多媒体数据,以增加磁盘的I/O速度或者减少I/O的次数。分块和交错算法是一种有效的存储策略,它将每个节目都分配到很多磁盘上,从而平衡磁盘负载。RAID0、READ4实现了近似分块策略,可以提高连续读、写速度。存储服务器阵列技术是一种分布式的服务器组织结构,但多媒体数据在这些服务器中是以均匀分块的方式分散在各个服务器上的,以获得更高的资源存取速度。分组存储技术则通过预先分析多媒体数据的结构与组织特性,将媒体流的生命周期提前到数据存储的时刻,从而降低了后续过程的计算量,减少了磁盘的访问频率。
(4)多媒体代理服务器及缓存技术。代理服务器是一种特殊类型的Internet服务器。在传统的Web应用中,代理服务器用于扩展用户对Internet数据的访问能力。然而,传统代理服务器并不适于多媒体。多媒体应用有下列显著的特点。
① 消耗更多的网络带宽。
② 具有QoS要求。
③ 用户能够控制流媒体的展示等。因此,多媒体代理服务器与传统代理服务器也有显著的区别。
除了继承传统代理服务器的重要作用之外,多媒体代理服务器具有下列特性。
① 可有效降低用户的启动延迟。
② 多媒体代理服务器距离用户较近,因此网络状况较好,从而可以提高用户接收媒体流的媒体质量。
③ 显著降低流媒体对Internet的网络消耗。多媒体代理服务器的另一个重要的应用场景是Internet和无线网络的边界。多媒体代理服务器可显著提高无线用户访问Internet多媒体资源的能力。此外,针对无线环境的多媒体代理服务器还可以完成码率调节、信道编码等功能,进一步提高无线用户的服务质量。
6.分布式多媒体的调度
分布式多媒体的调度可以从两个层面进行研究:操作系统层的实时调度算法和应用层面的流媒体调度技术。一条分布式多媒体流一般由多个任务(进程或线程)在不同计算机上运行形成,有些任务共享一个处理机。系统中如果存在多条多媒体流,那么在一个计算机上就会处理多个任务。分布式多媒体流的调度就是研究多媒体流的任务在CPU上运行的次序,以保证流的延迟和抖动等QoS要求。已有的研究提出了一些多媒体进程调度算法,它们都是从实时系统的任务调度算法直接运用或演变来的。然而,多媒体应用虽然有实时性的要求,其实时性与过程控制系统中的实时性是不同的,即所谓的软实时:它允许在少数情况下不满足最后期限(Deadline)。另外,多媒体任务与时间有关的操作都是周期性的,周期性的任务调度比非周期性的容易。因此,针对多媒体的实时调度算法,必须考虑上述特点进行设计。针对多点分布式多媒体计算机系统的调度问题,需要对传统的多媒体调度算法进行扩展。分布式多媒体计算机系统有许多处理器节点,用网络连接在一起。每个节点有自己的调度器。传统的调度器是独立的。它们独立地设计、独立地建立和独立地管理。每个节点有自己的缓冲区,网络在交换器上也有自己的缓冲区。由于节点的调度相互独立,因而这种系统称为异步系统。异步系统较容易建立,因为每个节点和网络能独立设计,最后把它们放在一起即可。但是,异步系统的性能几乎不可预测。进程在不同节点上的处理需要较长的时间。同步方法是,网络和每个节点要相互协调。一个节点上的调度要考虑它的相邻节点。进程在节点和网络上的处理时间大大减小。
多媒体流的调度属于应用层技术,它是随着视频点播(VoD)的发展而逐渐发展起来的。研究发现,VoD系统的服务能力不仅与视频服务器硬件系统的利用效率有关,而且也与系统的资源调度、服务机制以及用户交互密切相关。受硬件成本的限制,视频服务器的I/O能力和网络带宽不能无限制地提高,为了提高系统效率,人们把目光转向流媒体的调度技术。目前,典型的流媒体调度算法分为两类:静态调度算法和动态调度算法。补丁算法族是流调度技术的代表性研究成果。该类算法通过让用户利用本地缓存同时接收两条或多条媒体流,实现了无延迟的服务,同时系统尽可能地用组播流合并用户,使系统维持较高的效率。