论文部分内容阅读
在计算环境从静态、封闭、可控逐步走向动态、开放、难控的过程中,软件呈现出一种新的形态——网构软件。网构软件的开放性给其服务质量的保障带来深层次的技术挑战。首先,网构软件服务的用户群体是开放的。网构软件通常以在线服务的方式供用户并发使用,允许用户随时随地按需使用各种资源。强大而稳定的用户群体是网构软件得以发展和成功的重要标志,吸引和保障用户群体的增长,从功能的角度靠网构软件服务内容的粘度,从技术的角度则要靠网构软件服务的质量。然而用户群体的复杂性和多样性却给其服务质量的保障带来了难度。其次,网构软件的构造过程是开放的。网构软件中的构件是由大量的COTS(Commercial Off-The-Shelf)构件等异构构件组成,不仅在开发过程中通过组装形成网构软件,而且在运行过程中也会不断有新的构件发布和升级。这些构件通常由第三方提供,其升级不受使用者的控制,构件在运行、升级过程中其内部以及与其它构件交互产生的错误往往难以追踪和消除,给网构软件的服务质量带来隐患。 网构软件需要具备“适应性”以应对“开放性”给用户服务质量带来的问题。针对网构软件开放性的两种表现形式,有两种适应性调整方法。一种是在粗粒度上对构件进行适应性调整,消除引起服务质量的问题构件,以应对网构软件构造过程的开放性;另一种是在细粒度上对系统参数进行适应性调整,使得系统不断处于优化的服务状态中,以应对用户群体的开放性。作为一种Internet环境下的支撑软件,中间件为网构软件的服务质量保障实施提供了一种可行途径。为了支持网构软件的服务质量保障,中间件需要解决两方面的问题。一方面,随着需求的增长,中间件本身的结构日趋复杂,其自身管理的难度也不断加大,亟需灵活、可扩展、易定制的中间件管理模型;另一方面,中间件需要针对网构软件的特定需求,提供服务质量保障的基础设施支持。 为了解决上述问题,本文提出一个基于中间件的网构软件运行时服务质量保障技术框架,其主要工作和创新点如下: (1)提出一种基于特征的问题构件在线定位与修复方法:针对网构软件构造过程的开放性,从“构件服务质量特征”的角度研究和分析网构软件的基本组成单元——构件的运行状态,定位引起服务质量下降的问题构件,从而在粗粒度上实现服务质量的快速保障。本文从两个方面研究构件的服务质量特征:一方面研究单个构件的特征(如构件的响应时间等)随时间变化的历史信息,根据时间序列的变化趋势来判别该构件是否为问题构件,其中构件特征历史时间序列中的关联称为一元特征模型;另一方面研究两个构件之间某种特征的关联关系,判别这两个构件是否为问题构件,构件特征之间的关联称为二元特征模型。在运行时刻,对系统进行服务质量检测,当服务质量不能满足需求时,根据特征模型定位出问题构件并进行修复,进而保障服务质量。 (2)提出一种基于贝叶斯的网构软件关键参数定位方法:针对网构软件用户群体的开放性,建立服务质量指标与系统配置参数之间的关联模型,基于此模型来定位引起服务质量下降的关键参数,然后通过中间件提供的重配置机制对关键参数进行重配置,完成系统状态的变迁。为了降低建立关联模型和定位关键参数的复杂度,本文采用将系统状态空间划分成多个子空间的方法,使得子空间之间相互独立,而内部关联密切;然后,对树增强的朴素贝叶斯网络进行扩展,对于每个状态子空间建立关联模型;最后,使用关联模型定位引起服务质量下降的关键参数,以支持系统的服务质量保障。 (3)提出一种面向服务质量的网构软件中间件支撑机制:首先,对中间件中的主要元素进行分析,提出基于OSGi的中间件管理模型,从公共规约、构件化和依赖管理、动态配置管理、以及构件动态定制四个方面进行扩展,构建灵活、可扩展、易定制的中间件平台,有效的支撑了中间件服务的动态配置和演化;其次,为了对网构软件服务质量保障中的“问题构件定位与修复”和“关键参数定位与重配置”两个基本问题提供基础支持,设计了一种多粒度的监控和调整方法,从构件(服务或者应用)、用户请求、系统参数以及虚拟机等多个粒度实现系统的监控和调整,使得服务质量的保障过程能够得以实施。 (4)实现一个基于Java EE应用服务器的原型系统:基于JO2 nAS应用服务器,对本文提出的方法进行了原型实现和实验分析。同时,本文还提供了相关工具,辅助支持管理员进行网构软件服务质量保障的过程,并集成到开源项目JASMINe平台中。