论文部分内容阅读
面向服务的计算是一种新型的计算范型,它利用服务作为基本构造单元,方便分布式应用的快速、低成本的组合式开发,从而成为解决按需服务理想的关键技术。在一个面向服务的分布式系统中,一个基础的问题是服务部署问题,即如何决定将服务放置并运行在哪些网络节点。合理的部署不仅能够提高系统资源的利用率,减小系统开销,而且能够改善用户请求的QoS。然而,由于QoS决定参数的复杂性,用户需求的不确定性,以及系统运行的动态性,服务部署问题的研究充满了挑战。与此同时,随着服务应用的日益广泛,服务功能的不断扩展,以及服务体系的发展壮大,服务部署也面临着用户需求增长以及系统扩展需要的问题。虽然服务部署的研究已有一定基础,但如何部署服务以更好地满足持续增长用户的QoS需求,控制部署和维护服务的开销,改善系统资源利用不均衡的状况,并处理组合服务中服务序列化、多样性等问题,仍需要作进一步的探讨。由于保证EQoS的服务的合理部署与用户请求模式密切相关,因此本文针对用户请求模式可预知以及不可预知两种情况,分别对QoS感知的服务部署问题进行了深入地研究。具体贡献可以概括为以下三个方面:(1)在用户请求模式可预知的应用中,我们对服务的初始部署进行优化,旨在能够保证每个用户的QoS需求的前提下,尽量减少服务部署的开销。我们关注每个用户服务请求的数据率,并按照不同的情况逐步对此最优服务部署问题进行了考虑:i)当用户的服务请求稳定在一定范围内,我们首先证明了在服务器节点的CPU容量足够大的情况下,该问题是NP难的,然后给了一个基于集合覆盖的贪婪算法,其具有对数级的近似率。当服务器CPU容量受限时,我们首先证明了除非P=NP,否则该问题不存在多项式时间的近似算法,然后给出了适用于不同请求规模的两个启发式算法,一个是基于集合覆盖的迭代算法ISCA,另一个是基于背包的算法KBA。ii)当用户服务请求不断增长时,我们针对用户增长模型可知与不可知两种情况,分别定义了系统扩展因子与系统生命周期的优化目标,并指出可以通过扩展ISCA与KBA算法来解决。实验结果表明,两种算法的性能比传统算法有了较大提升。当用户请求相比于服务器容量规模较小时,ISCA性能更优,反之,KBA体现了更好的效果。(2)在用户请求模式不可预知的应用中,服务的初始部署充满了较大的随机性。随着服务请求的不断增长,系统将会出现资源消耗不平衡,用户QoS请求得不到满足的情况。我们从系统整体性能优化的角度,研究了如何找到影响系统性能的瓶颈组件,以及如何选择合理位置为该服务组件增加副本以均衡系统负载,提高QoS水平。我们提出了LDCS方法,其通过量化与拟合组件时延的方式,定位到瓶颈组件。我们还提出了MACP算法,以给出网络中具有最大可用容量的路径,从而找到副本放置的最佳位置。理论分析表明LDCS和MACP具有良好的时间复杂度。实验结果显示,我们提出的方法,能够有效地缓解网络资源利用不均衡的状况,提高系统性能,并改善用户的QoS水平。(3)在用户请求模式不可预知的服务系统中,在(2)中通过每次优化的增量部署一个服务副本的方式,虽然能够有效改善系统性能,但可能不能够满足某些单个用户的QoS需求。因此,在用户QOS需求须严格满足的应用系统中,我们考虑了如何同时增量部署一组副本,来满足每个用户的QoS。我们严格定义了该服务部署问题,并证明了在现有网络条件下,判断该问题是否存在可行解是NP难的,因此该问题不存在近似算法。为此,我们采用了一种叫做参数剪枝的技术,提出了一个具有多项式时间复杂度的启发式算法SRA。实验结果表明,SRA算法能够有效地通过增量部署来控制部署开销,并尽力满足所有用户的QOS需求。