论文部分内容阅读
随着服务计算和云计算研究的深入和相关技术的日益成熟,软件即服务(SaaS)作为一种新兴的服务交付模式得到了越来越广泛的应用。SaaS模式以服务的方式交付软件功能,通过多租约模型以按需服务方式为不同需求的用户提供个性化服务。多租约SaaS应用往往面向大量用户提供服务。因此,在用户集中的情况下,如何通过负载均衡方法平衡服务器负载并保证SaaS应用的运行效率已经成为确保多租约SaaS应用可伸缩性和服务质量的热点问题。目前,负载均衡的策略、算法和机制在分布式系统和Web应用等领域得到了广泛深入的研究。当前的负载均衡相关研究工作普遍采用了单一的服务器负载模型和单一目标的负载分配方法实现负载均衡方法。然而,多租约SaaS应用以按需服务方式通过各个租约以不同服务质量提供不同功能的服务。现有负载均衡方法没有考虑到多租约SaaS应用按需服务的需求,无法有效保证各租约按有差别的服务质量提供服务,也未能根据不同功能执行请求对系统资源的不同需求优化负载分配,因此,无法有效支持多租约SaaS应用可伸缩性和高效运行的需求。为此,以满足按需服务的多租约SaaS应用可伸缩性和高效运行需求为目标,本文提出了一种面向多租约SaaS应用的负载均衡方法。以对多租约SaaS应用用户个性化需求的分析为基础,提出了支持按需服务的系统资源配置方法,并围绕着面向多租约SaaS应用的负载均衡方法所涉及的服务器负载建模方法、无状态SaaS应用执行请求分配方法、有状态SaaS应用数据分配方法和执行请求分配方法等关键问题进行了深入研究。(1)以多租约SaaS应用按需服务的特点及其对负载均衡方法的要求为基础,提出了面向多租约SaaS应用负载均衡体系结构,针对负载均衡方法的研究目标,提出了负载均衡框架和基础结构,阐述了负载均衡的实现基础,对多租约SaaS应用用户个性化需求模型、分布式数据存储模式和单实例支持多租约的SaaS应用架构进行了研究。(2)针对多租约SaaS应用通过不同租约以不等服务质量提供服务的要求,研究了系统资源配置问题,提出了支持按需服务的系统资源配置方法。在分析了系统资源配置目标的基础上,建立了问题的数学描述模型,提出了基于启发式算法和基于遗传算法的问题求解方法。通过实验将所提出的算法与对比算法从算法求解质量和求解时间两方面进行了对比,分析了所提出的两种算法在不同应用环境中的选择策略。(3)针对无状态多租约SaaS应用的负载均衡问题,在租约用户需求分析的基础上,对租约按用户功能需求进行了分类,通过测试实验的数据对负载指标的选取和权重构成进行了分析,建立了面向租约功能类型的服务器负载模型。在系统资源配置方案和服务器负载模型的基础上,提出了基于租约用户需求的负载均衡方法,研究了基于租约用户限制的执行请求分配算法。通过对实验结果的分析得出,所提出的基于租约用户需求的负载均衡方法在保证了各租约按承诺服务质量提供服务的同时提高了多租约SaaS应用的执行效率。(4)针对有状态多租约SaaS应用的负载均衡问题,提出了业务事务的定义,基于租约数据操作代价研究了数据最优分配方法,基于业务事务的数据操作代价建立了服务器负载调整模型,提出了面向租约业务事务的负载均衡机制,研究了基于业务事务数据操作代价的执行请求整体最优分配方法。实验结果表明所提出的面向租约业务事务的负载均衡机制提高了有状态SaaS应用的执行效率。(5)在对面向多租约SaaS应用负载均衡方法关键技术研究的基础上,设计并实现了多租约SaaS应用的负载均衡原型系统。负载均衡原型系统需要在多租约SaaS应用执行环境中实现,为此,提出了多租约SaaS应用执行环境,设计并实现了SaaS应用执行代理原型系统和面向多租约SaaS应用负载均衡原型系统,提出了系统结构,对各模块的功能进行了详细介绍和分析,给出了一些关键模块的实现过程和实现界面。