论文部分内容阅读
随着云计算的兴起,越来越多的应用系统以SaaS的模式向客户发布。人们对SaaS的依赖越来越大,同时也对其可靠性要求也越来越高。而一旦SaaS应用的可靠性出现问题,所导致的危害也比以往更加严重。传统的可靠性解决方案主要考虑网络负载均衡、软件并发能力等方面,但SaaS应用的多租约模式和云平台架构使得它的可靠性问题变得更加复杂。影响Web应用软件可靠性的最主要原因就是软件老化。软件老化是指软件系统(特别是大访问量、大数据量的服务器软件)在持续运行一段时间后就会出现性能上的衰退,甚至瘫痪。在软件系统在长时间的连续运行过程中,一些软件错误不断地消耗系统资源,当某种资源枯竭时,系统将不可避免地出现故障,软件性能随之衰退,并最终导致软件的失效。实践表明,复杂的软件系统在其推出之前不可能做到全面覆盖的测试,异常和可能导致误操作的程序容易被忽视,造成程序在连续运行过程中会出现内存的占用和泄露、未释放的文件锁、数据更新不及时、存储空间碎片、舍入误差的累积,以及特殊的“老化相关错误(Aging related bugs)”等不良情况。软件老化已经成为SaaS应用的共性问题。如何在集群的任务调度中应对软件老化的问题,以保证Web应用的高可靠性,这是当前学术界研究的热点,并已经引起了国际上多家知名软件企业(女(?)IBM. EMC和HP等)的研发兴趣。但目前还没有相关的成熟方法。因此,本研究的主要目标是尽快缩短与发达国家技术水平的差距,研究基于软件老化自适应的高可靠SaaS应用性能保障方法,解决Web应用软件老化这一共性问题。主要研究内容包括:(1)设计了自适应的Saas性能保障机制。在传统的系统性能保障策略基础上,分析多种性能保障策略的策略目标和策略特征,给出如资源利用率和事务吞吐率等SaaS应用系统整体性能指标计算方法,对SaaS应用系统性能保障机制的基本思路和处理过程进行分析,形成支持系统性能评价、请求准入控制和请求调度等一系列策略的SaaS应用自适应性能保障框架。为提高SaaS应用系统性能保障方法的准确性,针对核心的请求准入和请求调度模块引入了模糊控制与模糊评价理论,研究基于请求准入阈值的准入控制算法及基于服务器性能级别评价的自适应请求调度算法。(2)提出了一种面向用户访问意图的Web交互SaaS应用老化趋势预测方法。针对以Web交互形式提供服务的SaaS软件系统,该方法以用户负载为研究对象,通过对用户意图进行预测来间接预测软件老化的趋势。首先提出了这种预测方法的整个流程,并详细地分析了这一流程中的几项关键环节。然后重点研究了如何对用户的访问意图进行预测,这里涉及两个关键算法,即序列模式挖掘算法和模式匹配算法。通过对传统的PrefixSpan序列模式挖掘算法和KMP模式识别算法进行改进,达到预测用户访问意图的目的。最后,根据预测出的用户访问意图推导出未来一段时间内各个页面的访问量,再结合页面损伤量对Web服务器的老化趋势进行预测。(3)提出了一种面向软件老化的SaaS应用系统分级再生策略。将SaaS应用系统划分为操作系统级、中间件级、应用级和组件级四个再生等级,并分析了实施各级再生的优劣。接着提出了软件分级再生系统框架,并详细阐述了系统各功能模块的工作流程。然后给出了软件老化的评估方法,依据应用系统中多种资源的损耗情况来度量系统的老化状态,并确定系统是否发生软件老化、需要实施软件再生。之后提出了基于多属性决策的再生等级选择算法,在确定服务器老化、需要实施再生后,依据系统状态和负载量等因素选择合适的再生级别和再生对象并对其实施再生。最后,本文提出一种组件再生次序生成方法,当实施组件级再生时,根据组件的耦合关系确定老化组件的再生关联组件,该组件的所有再生关联组件构成以一个组件集合,集合内的组件再生次序相同,然后采用BP网络确定各组件集合的再生优先权,按优先权排序得到各组件集合的再生次序,最终得到各组件的再生次序。