论文部分内容阅读
软件即服务(Software as a Service,简称SaaS)是云计算在应用层的架构,在这种模式下客户不需要购买完整的软件系统,也不需要配备相应的硬件系统和维护人员,只需要通过互联网,按需租用应用软件即可。多租户SaaS模式下通过多个租户共享单一应用实例,同时减少了SaaS服务提供商的运行维护成本和客户的软件购买成本,逐渐被各大软件提供商采用。如何放置租户和部署应用使系统资源得到合理的分配和利用,用最少的资源为更多的客户提供服务以获得更大的利润,是SaaS服务提供商面临的主要问题。为了解决多租户SaaS优化部署和资源分配问题,本文从以下几个方面进行研究:首先,针对静态优化部署问题,提出了一个基于基准响应时间的资源计算模型,用于计算用户和SaaS应用对服务器节点资源的消耗。针对服务提供商租用基础设施和自有基础设施两种情形,对静态优化部署问题进行描述,分别给出了不同的问题模型,然后采用了基于贪心策略的遗传算法和基于组编码的遗传算法对两种情形的静态优化部署策略选择问题进行求解,并通过模拟实验进行了验证。其次,针对动态优化部署问题,给出了详细的问题描述以及问题模型,分析了欧式距离和KLD(Kullback-Leibler Distance)距离在计算请求资源向量和服务器剩余资源向量之间距离时的不同,并根据不同的距离计算方法设计了一个适用于动态租户放置问题的启发式算法,采用欧式距离的基本最小剩余资源算法和采用KLD距离的最小剩余资源算法,并通过实验分析了两个算法的不同结果。然后,针对资源消耗模型的建立和调整问题,设计了一个资源监测模型,用于获取服务器和SaaS应用运行时的资源消耗情况,反馈到资源监测中心,进行分析和处理后对SaaS应用的资源消耗模型进行修正。最后,针对资源监测和SaaS应用优化部署问题,从体系结构、功能模块划分、数据库等方面对一个部署原型系统进行设计与实现,具有租户注册、部署策略生成、资源监测等功能,能够对部署的业务流程进行模拟,整合了基础信息管理、算法构件和监测等功能。