论文部分内容阅读
随着软件技术和网络技术的不断成熟,软件的交付模式、应用模式、产品形态和商业模式都产生了巨大的变化,软件已经成为一种服务(Software as a service,SaaS)。用户本地不再需要安装任何软件,按需定制,无须维护,在线更新,并且采用免费或者按需付费的租赁商业模式。采用软件即服务(SaaS)的交付、部署、运营和使用模式正在得到越来越广泛的关注和认可。与此同时,以分布式计算、虚拟化为代表的云计算技术促进了新型软件架构及相关技术的快速发展,为SaaS服务提供了更广阔的应用前景,使得根据用户需求的不同以SaaS模式定制个性化的面向云计算的应用服务成为可能。然而,云计算环境下的SaaS服务在应用推广的过程中面临一个巨大挑战,即缺乏统一的支撑平台。如现有的SaaS应用还不能很好的支持租户规模的动态扩展和伸缩,而设计和实现支持这种多租户特性的技术却是十分复杂的,这严重阻碍了SaaS服务的大规模应用推广。为此,出现了一些面向云计算的平台化服务,为SaaS应用生成商提供了一个集开发、部署、集成、设计、存储、操作于一体的平台及环境,我们称之为PaaS平台。该平台为SaaS应用提供了一种新型的面向云计算的交付、部署和使用支撑环境和工具。但是,目前对于PaaS平台的研究大多集中在单一应用的定制、交付、使用和部署等方面,缺乏对协同应用的支持,这不符合大型网络应用网络化、协同化、跨域化的发展趋势。同样,开发、管理、支撑这样一个大型协同应用非常复杂,具备这种能力的软件生产企业并不多。为此,本文提出一个支持服务协同的PaaS平台,该平台提供一种新型面向云计算的协同应用开发,交付、部署,定制和使用模式,基于支持服务协同的PaaS平台,专业化服务提供商只需关注自己服务的具体实现,而无需考虑协同应用底层技术实现,如一些分布式服务调用、应用跨域协同、协同应用适配等关键技术实现。通过支持服务协同的PaaS平台提供的各种工具和技术支撑,服务集成商和行业用户可以快速、正确的构建协同应用。基于上述应用模式,支持服务协同的PaaS平台将汇聚众多专业化的软件服务资源,这些服务资源是构建及定制大型协同应用的基础,行业服务解决方案提供商和集成商可以对服务资源进行组合编排形成跨域协同服务,而最终行业用户可以在此基础上对协同服务进行个性化定制,从而满足自身业务需求。由于交付部署在支持服务协同的PaaS平台上的软件服务可能来源于不同的软件服务提供商,一旦服务提供商对某个软件服务的业务逻辑或是内部服务流程进行调整,就可能对整个协同应用的协同关系及其协作运行造成影响,我们称这样的变化为支持服务协同的PaaS平台中服务动态演化问题。该服务演化问题不同于传统的服务及服务流程演化问题,主要表现在:1)PaaS平台中软件服务协同演化影响问题。由于部署在PaaS平台中的服务来自不同的提供商,因此对服务流程进行调整不仅会影响该服务本身,而且会对整个协同应用也带来一定的影响,如何计算和衡量影响的大小以及如何将演化影响控制在一定的范围内成为演化影响分析的关键问题。2)PaaS平台中软件服务协同演化传播问题。一旦某个服务提供商对服务流程进行调整,协同应用的其他服务是否需要进行相应调整是我们进行演化传播的前提,如果协同应用中的其他服务流程需要进行相应的调整,如何自动高效的进行变化传播是我们关注的重点。3)PaaS平台中协同服务运行实例迁移问题。PaaS协同应用中服务的演化往往发生在协同应用的执行过程中,因此,一旦服务流程由旧模式演化到新模式后,那些仍运行在旧模式下的流程实例将无法正确的执行下去,所以我们需要考虑如何将运行实例尽量多的正确的迁移到新模式下继续运行。本文针对支持服务协同的PaaS平台中服务动态演化问题开展深入研究。首先提出了支持服务协同的PaaS平台的体系结构并对每个功能模块以及平台提供的工具和技术进行阐述。然后针对上述支持服务协同PaaS平台中服务流程演化存在的问题给出了整体的解决方案,主要分为以下几个部分:1、针对PaaS平台下分布式协同应用间流程的演化影响问题进行量化分析。在服务协同环境下,一个应用的流程结构发生变化会对依赖该应用的其他应用造成一定的影响,这个影响如何量化表示就成了关键问题,我们提出了一种可以量化表示演化影响的方法,使演化影响可以控制在成本较低的范围之内。2、针对PaaS平台下分布式协同应用间流程演化问题提出演化自动传播技术。当分布式协同模式中一个应用中的流程发生变化,是否会影响到其他应用,受影响的其他应用如何进行演化适配,并尽可能使该适配过程自动完成,这就是变化传播所要解决的问题,在这一技术中,我们提出了一系列有限自动机的操作集来完成变化传播的自动适配。3、针对PaaS平台下运行实例动态迁移问题提出实例动态迁移技术。当一个流程从旧模式演化为新模式时,在旧模式下运行的大量实例将面临无法继续正确执行的问题,我们提出了一系列实例动态迁移标准来最大限度的区分可迁移实例与不可迁移实例,并分别对其进行迁移处理。本文研究成果是支持服务协同的PaaS交付平台中流程演化分析的核心技术,对于流程动态演化的各个阶段都有重要的指导意义,具有较广阔的应用前景。