论文部分内容阅读
性能是每个应用系统的基本质量属性,当性能指标无法达到用户需求时,需要对应用系统进行优化。随着软件复杂性的增加,以手工方式完成优化存在工作量大、易出错等缺点,为提高优化工作的效率,优化工作需要自动地完成。网构软件是Internet环境中一种新的软件形态,它的自优化具有如下的特点:至少需达到自适应级别,即在给定优化策略的前提下,由计算机系统自动完成优化工作;需在线地进行;可围绕系统体系结构实施。目前针对上述特点的优化研究与实践存在若干问题,尤其是自优化实现是应用特定的、对在线优化的正确性及效率考虑不足、对应用系统设定过强的约束条件。为解决上述问题,本文建立了一套基于中间件的网构软件自优化原理框架,提出了一种基于中间件的网构软件在线优化方法,并实现了一个特定于J2EE的原型系统。
在自优化原理方面,现有工作集中在考虑自优化系统的基本结构与机理,缺乏实际可操作的指导,对可复用性考虑不足。为此,本文建立了一套基于中间件的网构软件自优化原理框架。首先,通过分析网构软件的特点,分别选择模式与中间件作为优化框架中的优化策略与支撑机制。其次,以模型驱动的方式使得模式可以自动化地指导中间件进行优化操作。本文将对于将引发性能问题的设计定义为不良模式,而与之对应的解决方案定义为良好模式,并定义了中间件感知的元模型用于描述不良/良好模式。在管理员建立好模式模型之后,它们将被用于在运行时刻指导中间件优化应用系统,整个优化过程是自动执行的,优化工作达到了自适应级别。优化过程中使用的模式模型、中间件操作以及相关的自动化机制不再特定于某一个应用系统,可以在优化不同应用系统时重复使用。
在优化技术研究方面,现有的工作一般考虑的是离线的优化方式,缺乏系统化的方法指导以在线的方式进行优化,尤其是对在线进行优化的正确性与效率考虑不够。为此,本文提出了一种基于中间件的网构软件在线优化方法,该方法中充分考虑了在线进行优化的特点,保证了优化的正确性,提高了优化的效率。优化可分为不良模式检测与系统在线重构两个阶段。首先,不良模式模型将指导中间件自动地对应用系统信息进行采集,然后,将尝试检测对应的不良模式实例。由于检测工作是在线进行,应该保证检测对应用系统的影响尽可能的小:根据当前系统状态从而确定需要检测的不良模式,而不是尝试检测所有的不良模式;系统信息的采集在模型指导下分时分类完成,而不是持续采集所有的信息。在不良模式检测完成以后,必要时需要对应用系统进行重构。通过比较不良/良好模式模型,可以得到一组重构操作。为了保证重构操作能够正确地在线执行,需要根据它们之间的关系进行排序从而得到重构方案。重构预评中需要对重构方案的正确性进行验证,以保证重构操作可以由中间件执行、即将进行的重构不会使系统出现错误、先后进行的重构之间不会产生冲突。通过计算重构方案的重构效果与重构开销,可以让管理员事先掌握重构对系统的多方面影响,并可以辅助在多个重构方案中进行权衡。当重构出现错误或者重构效果不尽人意时,可以在线进行重构回滚,让系统恢复到重构之前的结构。
在自优化系统的实现方面,现有工作大都没有考虑与现有主流系统的兼容性,而是采用目前未被广泛采用的技术或机制,导致对适用的应用系统设定了过强的约束条件。为此,本文提出的自优化方法中重点考虑了与基于J2EE的应用系统的兼容性。J2EE是一个事实上的工业标准,其相关技术在实际的应用系统开发中被广泛的采用。为描述特定于J2EE应用系统的模式,本文定义了模式元模型的J2EEProfile。此外,本文实现了一个特定于J2EE的原型系统。通过对示例应用系统网上书店与J2EE基准测试集ECPerf的优化,展示了基于中间件的自优化方法的可行性与有效性。