论文部分内容阅读
随着云计算技术的迅速发展,应用系统日益复杂,单一的简单服务已经不能满足许多现实情况下的功能需求,服务组合成为一种有效的解决方式,通过动态地组合具有不同质量属性的原子服务来快速构建大规模分布式应用程序。而在云计算的背景下,来自多个并行用户的组合服务请求正在迅速增加。多个用户将独立地查找和调用需要的组合服务,这些服务被接受之后进入队列等待服务组合系统的处理。所以,如何高效地解决云计算服务组合(CCSC)问题是至关重要的。针对云服务组合面临的多请求问题,已经有一些简单的调度算法可以解决这个问题。但是却忽略了这些请求中可能存在的相似性和联系,而且不能保证最后解的质量。所以本文通过对该问题进行建模,提出了一种基于多任务的云服务组合算法。在设计的多任务优化算法EMA-CCSC的基础上,利用机器学习的思想对请求进行分组优化,从而实现同时对多个组合服务实例进行优化来并发地处理多请求问题。本文具体包含的工作内容有以下几个方面:(1)定义基于QoS的云服务组合问题,对CCSC问题进行建模。首先详细定义了原子服务的六种质量标准,构建了组合服务的结构模型,使用DAG图来表示服务组合的四种结构。然后给出服务质量属性的聚合规则和组合服务QoS值的表示来构建其执行模型。最后对该问题进行数学建模,给出其数学表示。(2)为CCSC问题设计并实现了一个多任务优化算法,称为EMA-CCSC。与已存在的优化算法不同的是,该算法可以同时优化两个甚至更多的CCSC问题实例,在给定的时间内解决更多的请求。该算法可以通过隐形知识迁移来促进同时优化的实例向最优解收敛,从而在保证解的质量的同时高效地解决多请求问题。(3)设计一个合适的分组模型对请求列表中的多个CCSC问题实例进行分组,然后使用EMA-CCSC算法进行优化。利用EMA-CCSC算法对1188个组合服务实例进行大量实验得到训练样本,采用随机森林模型进行训练。得到的模型可以预测两个实例同时优化时的增益值,以预测的增益值为依据进行分组优化,从而将可以互相促进的实例尽可能地放在一起进行优化,进一步优化解的质量。(4)对本文提出的多任务服务组合算法进行实验验证,验证其有效性与正确性。基于QWS数据集,首先应用EMA-CCSC算法来解决1188个组合服务实例,将其与9种单任务优化算法的优化结果进行对比。然后按照随机森林分组模型与N相同随机分组模型分别进行分组优化,比较其优化结果。最终证明本文提出的算法是高效的。