分布对象中间件中的QoS关键技术
随着网络的飞速发展,分布式体系结构迅速取代集中式体系结构。分布计算技术以其优良的性价比成为网络时代的主流计算技术。对象管理组织OMG的通用对象请求代理结构CORBA(Common Object Request Broker Architecture)采用分布对象的观点,支持异构环境下应用的开发和互操作,为分布式应用提供了语言透明、互操作、可移植和位置透明等特性,成为分布式面向对象应用的主要标准。越来越多的应用系统采用分布对象计算中间件(如CORBA)技术开发。
QoS的研究最初一直是在通讯网络中进行的。应用需要的是看得见的“端到端的QoS”,而不仅仅是局限于通信网络QoS。“端到端的QoS”需要网络、操作系统和中间件等对QoS进行协同管理。
QoS研究扩展到中间件层是以分布式多媒体应用为突破口的,例如Kentucky 大学的AQUAAdaptive end-system Quality of service Architecture )以多媒体应用为背景研究QoS 技术,微软的视频会议软件产品NetMeeting 中也有对服务质量的支持。这是很自然的发展结果,因为:
l       多媒体应用的需求最接近传统电信服务的需求;
l       正是IP网络上多媒体业务的出现对IP环境中的服务质量提出了更高的要求,才导致了IP QoS技术的出现,因此IETF的制订的RSVPRTP等协议都是针对多媒体通信的;
l       多媒体应用有着比较明确的质量需求,且容易映射到网络QoS
所以我们可以说,在中间件层次对QoS的研究是随着Internet的出现以及发展、中间件在分布式系统中的应用以及由新型应用触发的应用需求等诸多因素共同诱发的,同时又集中体现在以分布式多媒体为契机。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

应用需求决定了要在分布对象中间件中研究QoS

随着中间件的逐渐流行,许多应用系统都是基于中间件开发的。随着中间件向一些应用领域的扩展(如实时领域),需要在中间件中提供对应的QoS机制以满足应用的需求。同时一些新型的QoS敏感的应用不断涌现,它们希望利用中间件提供的优点,传统的中间件提供的best-effort能力已经不能满足应用的需求,所以这些QoS敏感的应用的需求也决定了需要在中间件中集成QoS机制。
下面我们列举一些典型的应用需求:
l       松耦合应用的需求,如断开的客户和服务器

l       请求和回答都有一定的优先级
l       对事件要求敏感的请求和回答
l       客户期望的服务质量和服务提供的服务质量不一致,即双方需要协商
l       自适应的应用需要了解自己的系统状态和对方的状态
l       应用需要在高层按照自己的理解指定服务质量要求

 

有了一定的底层系统支持基础

通信网络和操作系统都对在中间件中集成QoS提供了基础。
网络通信中的QoS 技术可以粗略分两类,一种是IP 网络中的QoS 技术,一种是ATM网络中的QoS 技术。IP网络中的QoS技术是在原本不支持QoS(只提供best-effort 服务质量)的IP网络中实现QoS 控制策略,相关的技术主要包括资源预留协议(RSVP )、区分服务(DiffServ )、802.1p 、多协议标记交换(MPLS)、实时传输/控制协议(RTP/ RTCP)、实时流式协议(RTSPReal-time Streaming Protocol)。与IP网络相比,ATM网络“与生俱来”具有QoS能力,QoS ATM网络默认提供的一种功能。从总体上讲,通信网络对QoS的支持有了一定的基础,并且处于不断发展之中。
操作系统在CPU调度、任务调度、内存管理、网络接口等几个方面都对QoS提供了支持。从总体上讲,通用操作系统对QoS的支持能力比较弱,专用操作系统对QoS的支持能力比较强。我们可以认为操作系统对QoS的支持已经比较实用。

 

应用的QoS需求和底层系统提供的QoS之间的差异决定了需要在中间件中集成QoS

某些应用层的QoS需求显然不是操作系统和底层网络提供的功能,所以需要在中间件中提供对应的QoS映射功能,将应用层的QoS需求映射为操作系统和底层网络的QoS需求。许多应用(实时应用)具有持续性的特点(如多媒体应用),而在持续的过程中应用要求能保持QoS;同时,许多实时应用具有鲜明的动态特性(如网络游戏),虽然QoS不变,但资源需求随时间而变化,因此需要在持续的过程中进行QoS监测和QoS维护,这是操作系统和网络QoS机制所不具备的。

 

此外,CORBA规范也对QoS也进行了定义,大致分为以下四类:CORBA MessagingReal-time CORBAFault-tolerant CORBAminumCORBA等。
现状
目前很多研究机构都对在中间件中集成QoS开展了研究,我们简单介绍一些比较重要的例子:
QoS-A
英国Lancaster 大学计算机系的QoS-A是一个QoS体系结构,它提供了一个框架来指定和实现施运行于基于ATM的高性能网络之上的多媒体应用的性能属性。QoS-A是在一个增强的Chorus微内核和建立于ATM网络之上的一个增强的多媒体协议之上实现的。它能够翻译QoS要求,同时也能够预留由网络和操作系统提供的资源。它能够透明的进行QoS适应(不需要应用干预),当QoS发生变化时可以通知应用程序。但是,QoS-A并不适合于开放的环境,由于与底层的系统紧密集成在一起,QoS-A无法与不同的资源预留协议交互。此外,它的应用领域被限制到多媒体系统,它的QoS机制不能被应用编程人员扩展。

 

AQUA
Kentucky 大学的AQUA是以多媒体应用为目标研究基于QoS 的自适应资源管理。通过分析以视频播放为代表的分布多媒体应用的资源需求特点后,发现分布多媒体应用的资源需求在很多方面表现出动态特性,因此AQUA 设计实现了一个集成的端系统自适应资源管理框架,进行CPU、网络接口、内存、带宽的管理,每一种资源都有一个资源控制器。AQUA 在此基础上实现了一个应用层QoS 管理器,在资源需求发生变化或者需求超过了当前可获得资源量时进行自适应的调整,从而为多媒体应用保证期望的QoS

 

ACE+TAO
Washington 大学在QoS 方面的研究体现在TAO 中的调度服务和ACE 中的AQoSATAO调度服务为应用开发者提供了接口来指定对象操作的执行周期、最坏情况执行时间、重要程度、紧急程度等QoS 参数,根据系统中所有操作的QoS 进行调度分析,并映射到ORB 中的分发优先级。AQoSA 是在ACE 中提供的QoS API,为上层屏蔽底层的不同的QoS 协议和接口。这些QoS API可以通过TAO向应用提供,也可与高层的中间件服务集成。

 

QUO
QUO的设计思想如下:客户对QoS有一定期望,针对不同的QoS期望客户可能有不同的行为,系统在某一时刻的状态决定了系统在当前时刻可以提供的QoS,客户可以根据当前的系统QoS状态,适应性地采取不同的行为。
为了描述客户和某个对象间的QoS 合同,包括客户期望的QoS 和对象能提供的QoS ,监测和控制QoS 的系统对象,以及监测到QoS 改变时采取的行动,QUO提供了CDL。为了描述QUO 应用程序的结构和指定适应性行为,QUO提供了SDL。为了描述可以获得的系统资源及其状态,QUO提供了RDL。为了监控系统目前的状态,QUO在内核中增加了系统条件对象。

 

Trinity学院的Quartz
<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /> <?xml:namespace prefix = w ns = "urn:schemas-microsoft-com:office:word" /> 爱尔兰都柏林Trinity 学院的Quartz是为了实现CORBA A/V Streaming 服务而设计和实现的一个QoS 框架结构,使得CORBA 应用可以传输实时媒体。QoS定义是通过CORBA A/V Streaming 服务的接口来指定的。QoS映射是由Quartz中的QoSAgent来完成的,其结构如图所示。图中的三个过滤器和QoS 解释器共同完成了QoS映射。应用过滤器和两个系统过滤器可以根据不同的应用领域、不同的资源预留协议(由OS 和网络协议提供)替换,但接口统一。不同的应用领域或资源预留协议可以把该领域或该协议的过滤器插到该结构中,过滤器可以从Quartz的构件库中选取,或者由应用程序员实现。所以该结构的核心具有良好的可移植性、可重用性、可扩展性。也很好地体现了透明原则和适应原则。因此Quartz虽然是为CORBA多媒体服务实现的一个QoS框架结构,但却可以利用它开发面向其它应用领域的实时应用。这一点是其它许多QoS结构不具备的。Quartz尽力在系统层通过在可互换的资源间均衡透明地完成资源调整。如果在系统层调整资源不可行,Quartz通知应用程序调整其QoS需求。

 

QPS
QPSQoS Provisioning Service)是AMIDST工程中的QoS提供服务。它实质上是一个QoS控制体系结构。QPS为客户对象和服务对象的之间的一个单一的绑定提供QoSQPS通过几个步骤提供QoS
l       客户对象指定它们的QoS要求,服务对象指定它们在什么QoS级别提供它们的服务;
l       在运行时刻,QPS初始化一个三方的协商,即客户方、服务方和分布式资源平台(DRP)。成功的协商导致一个QoS合同与一个绑定关联在一起。
l       为了确保达成的QoS级别,QPS为绑定预留资源。
l       在操作时期,QPS的任务是为一个绑定的生命周期维持达成的QoS,如果无法维持达成的QoS则向应用程序提供足够多的反馈。这就允许应用程序自适应和请求QoS重新协商。
QPS实现中包含了一个管理网络资源的QoS模块,即QIOP,它使用RSVP进行网络资源预留。

 

通过对上面的研究现状分析,我们可以看出目前在对象中间件中的QoS研究有如下趋势:
l       目前的中间件中QoS研究的目的之一是改变原有的Best-effort服务,使系统的行为可预测。
l       实时性是中间件中QoS研究的一个热点。对于实时性要求不很严格的应用来讲,可以通过在中间件中添加相应机制在提供软实时能力的操作系统上运转;对于实时性要求很严格的应用来讲,可以通过在中间件中添加相应机制在提供硬实时能力的操作系统上运转。
l       提高应用系统的自适应性是目前中间件中QoS研究的另一个目标。应用系统需要根据运行环境的动态变化而适应性的作出变化,所以需要中间件提供相应的机制使应用能够感知环境的变化同时采取不同的对策。
l       与中间件中的QoS相关的问题大体上包括:QoS定义机制、QoS映射机制、QoS控制机制、QoS管理机制、QoS监控机制、QoS协商机制。