论文部分内容阅读
随着云计算技术的日益成熟,越来越多的应用被部署到云计算平台中以服务的形式对外提供。工作流作为一种协同工具也可以成为云计算环境中的一项公共服务。本文探讨了云工作流服务(Workflow as a Service)的自适应扩展机制和针对不同类型应用的执行优化问题,主要围绕利用云工作流服务协同Web服务、流数据分析和机器学习三组不同类型的任务时的执行优化策略展开,研究成果集中在如下几个方面:首先,本文设计了“引擎管理平台-引擎-执行者”三层服务架构,此服务架构将任务执行者从引擎中独立出来,引擎负责协同任务执行的逻辑顺序,任务执行者负责任务的具体执行,这样的优势是使得云工作流服务的执行相比于现有的云工作流服务更加灵活、更具有普适性。对于云工作流引擎的部署方式,论文提出了两种不同粒度的部署方式:流程级云工作流引擎分布式部署和任务级云工作流引擎分布式部署。同时,考虑云请求的动态性,提出了基于响应-预测相结合的动态规则的引擎弹性自适应扩展机制,将预测算法、排队论以及弹性规则三种策略进行结合。实验结果表明,本文提出的弹性扩展策略可以准确的捕捉负载的变化并对引擎进行合理的增加和释放。其次,本文提出了面向Web服务任务的云工作流分布式执行优化策略。随着互联网的发展和推广,各种形态的Web服务正在迅速增加。利用云工作流服务可以对多个Web服务进行协调从而完成复杂任务。Web服务任务的显著特点是全球性分布,基于这一特性,提出了适用于跨地理区域分布的启发式云工作流分布式调度优化算法,并从流程结构、流程规模和流程特性等多个方面对算法进行全面的评估,实验结果表明本文提出的算法处理大规模的Web服务任务时具有更短的完成时间和更好的调度长度比(SLR,Scheduling Length Ratio)。随后,本文提出了面向实时流数据分析的云工作流分布式执行优化策略。实时分析任务的特性是负载持续不断的产生,单次数据量不大,并且一般在特定的时间下才有意义。因此,在处理面向实时分析任务时,相比于任务的完成时间,用户更加关注云工作流服务的吞吐量、响应时间等。同时,基于“高配置的虚拟机有能力同时处理多个任务”这一现象,提出了独占式部署和共享部署两种部署模式。本文分别提出了相应时间保证的云工作流服务的执行优化算法和吞吐量保证的云工作流服务的执行优化算法,并利用车牌识别流程在阿里云平台上对算法进行了验证,实验结果表明本文提出的算法可以保证系统的吞吐量或请求响应时间,且同时开销较少。最后,本文提出了面向并行机器学习任务的云工作流分布式执行优化策略。通过对机器学习任务并行执行过程的分析,提出了机器学习工作流的概念,其特点是存在大量独立运行的并行分支;同一时刻,每个分支独占一台云服务器独立运行。利用云工作流服务执行机器学习工作流时,优化目标是使得机器学习任务的执行速度最快,同时花费尽可能的少。本文首先需要对机器学习算法的运行时间进行预测;然后,分别从同构服务器和异构服务两种情形,对优化问题进行建模,并给出解决方案。实验结果表明,对于经典的机器学习算法(如近邻算法kNN、卷积神经网络CNN等)本文提出的策略可以在保证机器学习算法运行时间最快的前提下,开销较少。理论分析和实验结果表明,本文提出的一系列方法深入挖掘了不同类型应用的特征,能够适应不同的需要,达到了较好的性能。