● 摘要
作为云计算三种主要的服务模式之一,软件即服务(Software as a Service, SaaS)越来越受到普遍关注。在多租户SaaS环境中,租户通过租用和组合组件组成SaaS应用程序,极大地降低了使用成本。但是,由于构成租户应用的组件可能来自于不同的提供商,因此这些应用的可靠性无法得到保证。目前针对SaaS组件组合的测试方案比较多,如TaaS(Test as a Service)、测试代数等。而作为检验软件正确性的另一手段,关于SaaS组件组合验证的研究还比较少,基本上都是针对传统软件的验证,无法直接应用于SaaS环境下的组件组合验证。VaaS(Verification as a Service)就是为了实现对多租户SaaS环境下组件组合的验证而提出的一种新的体系架构。
在VaaS研究中面临的一个重要问题就是组合爆炸问题,即在SaaS中存在着大量的组件,同时新的组件和组件组合会不断地被提交到SaaS中,旧的组件和组件组合也会不断被更新,从而导致了SaaS中存在大量的组件组合验证任务。如果对每个需要验证的组件组合的模型进行形式化验证,将会占用大量资源。为了减少需要进行形式化验证的组件组合的数量,降低验证开销,本文在对多租户SaaS环境下组件组合验证研究的基础上,基于测试代数的理论,提出了一种组件组合代数方法。这种代数方法能够从组件组合模式和验证性质关系两个角度出发,利用已有的组件组合验证状态来计算未验证的组件组合的状态,从而减少了组件组合验证的开销,提高了效率。最后,本文基于MapReduce对组件组合代数方法进行分布式仿真,通过实验来分析组件组合代数方法的效率。