论文部分内容阅读
近年来,软件网络化、服务化的趋势使得软件的交付模式、应用模式、产品形态和商业模式都产生了巨大变化,软件已经成为一种服务(Software as a service,SaaS),即人们以“使用而不拥有”的方式使用软件,用户本地不再需要安装任何软件。按需定制,无须维护,在线更新,并且采用免费或者按需付费的软件即服务(SaaS)租赁商业模式正在得到越来越广泛的关注和认可。这种SaaS应用具有“单实例多租赁”的特征,即同一个应用实例在同一软硬件平台上为多个租户提供个性化服务。为了充分共享软硬件资源,它的数据管理具有集中性,应用的同一数据结构既要被多个租户所共享,同时又要满足不同的租户对自己的数据模式有充分的个性化定制的要求,并且不影响其他租户。当租户规模扩大到一定程度时,应用积累的数据容量和用户请求负载的增长速度是惊人的,这种高负载的现象将对SaaS应用的升级产生很大影响。SaaS应用同样需要面临升级演化的问题,当共享的应用实例进行升级时,数据库模式的演化及数据的迁移是必不可少的环节。SaaS应用由于具有“单实例多租赁”的特征,数据库模式的演化不同于传统应用。传统应用的数据模式演化只需暂停应用,升级数据模式并进行相应的数据迁移即可完成一次软件的升级。而当前SaaS应用普遍是基于网络的在线应用,面对大规模租户的同时在线使用,不能采用暂停服务离线升级的方式;而一次性升级由于租户规模庞大,会对底层数据库管理系统产生巨大负荷,严重影响SaaS应用的性能和大部分租户的正常使用。为此,本文基于渐进式模式演化的思想,提出面向SaaS的模式演化方法。该方法为了保证模式演化过程中系统的性能,在不影响大规模租户在线使用SaaS应用的基础上,对于一次SaaS应用的升级,将数据模式从旧版本的源模式到新版本的目标模式的演化过程分解为若干个子过程,每个子过程只维护SaaS应用的一个中间模式,并根据不同时间段应用上的负载分布、数据量的变化对其进行渐进式演化,使其从源模式逐步演化到目标模式,保证了升级过程中资源消耗最小。本文的主要工作有:1、针对SaaS应用在线升级过程中的数据模式演化问题,提出了一个可行的渐进式模式演化框架。即在自动生成数据转换序列的基础上,将序列中的各个操作步骤分配到各个演化点上,时间每到一个演化点时执行相应的操作,以实现最优的资源消耗。该框架在数据库静态模式演化的基础上演变而来,首先利用模式匹配和数据转换之间的关系,只用源模式和目标模式作为输入,利用传统模式匹配算法和静态数据转换策略得到了基本的数据模式演化序列;之后在遗传算法等最优理论的基础上,提出了全局最优的渐进式模式演化算法。2、综合考虑了模式匹配、数据转换的过程,给出了一套完整的基本数据模式演化序列的自动计算过程。即首先利用相似度扩散模式匹配算法计算出原模式到目标模式的映射;之后利用这个结果作为输入,结合数据转换策略自动生成一套完整的从原模式演化到目标模式的数据转换序列。3、设计了一个基于数据依赖的渐进式模式演化方法,通过设置多个演化点与估计演化过程中的代价,利用遗传算法在数据转换序列基础上计算出了渐进式演化过程中全局消耗最优的数据转换步骤执行顺序。4、基于TPCW标准的应用实例,对本文提出的面向SaaS的渐进式模式演化方法进行了全面测试和验证,得到了较好的实验效果。本文提出的渐进式模式演化方法可以保证SaaS应用顺利升级,对于SaaS应用升级过程中降低资源消耗,提高存取效率等具有显著的正面意义。同时,论文也提出了以源模式和目标模式为初始条件的模式演化方法,具有广阔的应用前景。