论文部分内容阅读
软件性能是重要的软件质量属性。定量地保障性能需要依赖于系统的性能模型。本文针对两类基于中间件的分布式组件系统,研究了各自的性能建模方法:第一类具有明确的设计模型描述和负载模式描述,第二类不具备明确的系统结构描述和负载模式描述。
对第一类分布式组件系统研究了两个问题:第一个问题研究中间件对分布式组件系统设计时性能建模的影响。
在对基于中间件的分布式组件系统进行性能评价时,需要考虑中间件的影响。本文提出了一种在平台相关的设计模型中自动包含中间件性能影响的方法。通过辨识分散在设计模型、部署信息以及组件运行环境配置中的、影响组件系统性能的设计决策,统一采用规约化的方式进行描述。基于所建立的关键场景下的资源竞争模型,建立与每个原子设计决策相对应的中间件性能影响描述。基于模型转换的求精机制,实现在平台相关的设计模型中自动编排中间件的性能影响因素。
本文方法实现了应用层性能建模和中间件层性能建模关注点的分离,避免了性能建模时,建模人员了解中间件的内部细节和性能建模的专门知识。基于模型转换的求精机制提高了该过程的自动化。提高了性能模型的预测精度,有助于预测和识别可能位于中间件层的性能瓶颈,以优化应用设计和中间件配置。
第二个问题,研究从分布式组件系统设计模型导出性能模型的方法。基于目前存在的从设计模型建立性能模型的方法而建立的性能评价环境,存在着软件建模工具与性能评价工具之间互操作能力比较差、建立性能模型的自动化程度比较低等问题。本文将模型驱动开发方法中模型转换的思想和技术,应用到了建立性能模型的过程中,将组件装配“面向设计”的模型作为输入,通过模型转换产生“面向分析”的性能模型。使用元建模技术定义了软件设计模型和性能模型建模元素的抽象语法、以及模型元素之间的映射关系,在元模型层定义了基于模式的、从软件设计模型到性能模型的转换规则。
基于本文的方法,能有效避免目前常用的、采用私有(ad-hoc)方法和工具建立性能模型时,所带来的性能建模工具与开发工具之间的互操作问题,有助于提高在开发过程中集成性能评价的能力。同时也有助于提高建立性能模型的自动化程度。
本文针对具有波动负载模式且系统结构不明确的分布式组件系统,研究了适应波动负载模式性能模型的方法。以分布式多层动态Web系统为例说明了所提出的方法。动态多层Web系统在运行时会受到许多不确定性因素的影响。同时,在不同的负载模式下具有不同的性能特性,需要不同的性能模型进行描述。目前为消除不确定性因素对性能的影响,基于反馈控制原理设计的性能保障机制,主要采用单一固定的性能模型,对动态Web系统变化的性能特征考虑不够。在负载呈波动且不可预测特性的Intemet环境中,这会降低性能目标的精确性和稳定性。本文采用自适应控制的思想,以满足请求平均响应时间为目标,提出了一种基于在线评估系统性能模型的保障机制。采用两个不同类型的事务性Web测试基准进行了测试。表明所提方法能有效减轻波动负载模式下响应时间与预期目标的偏离程度。