论文部分内容阅读
随着Internet技术的快速发展和软件应用需求的持续增长,面向服务的计算逐渐成为了学术界和产业界关注的热点。面向服务的计算以“软件即服务”的理念为前提,期望以服务作为基本元素进行开放环境下分布式应用的开发,其关键在于不断组合软件服务以完成实际应用目标。Web Services的出现为面向服务的计算的实现提供了一条可行的技术途径。但是,不同于传统的相对封闭稳定的应用环境,Internet开放环境的分布异构和灵活多变使得服务组合应用要具有良好的动态适应性。此外,现有的服务组合技术大多借鉴工作流领域的研究而采用集中式的组合控制方式,面对Internet上高度“自治”的软件服务,全面协作的描述控制方式能更合理地构建组合应用。现有的服务组合技术对开放环境下组合服务的动态适应性和服务之间的相互协作缺乏全面有效的支持,因此关于服务组合的动态性,特别是从协作全局支持的动态性方面亟待深入的研究。
针对上述的问题,本文引入了一种动态协同模型,它综合了服务编排和服务编制的优点,从而得到一种兼具动态性和协作性的服务组合方式。这种组合方式在保持与主流技术和平台的兼容性的同时增强了对组合服务动态性的支持。本文亦从不同层面对保障以这种组合方式开发的应用系统的动态演化的一致性问题进行了初步探讨。为支持开发者使用上述动态服务组合方式,我们设计并实现了相应原型支撑系统,并通过一个应用实例场景以初步检验上述技术和系统的可行性和有效性。主要工作概括如下:
●提出了一种兼具动态性和协作性的服务组合方式。
从组合服务的构建过程出发,分析动态性和协作性的设计需求,提出了一种综合服务编排和服务编制的优点、兼具动态性和协作性的服务组合技术途径。我们使用服务编排语言描述组合服务的全面协作模型,使用服务编制语言描述各个参与服务实体的局部模型,并运用Mediator设计模式,使协作模型成为各个参与实体交互的中介者,能够在运行时刻进行对服务调用请求的动态解释和约束检查。在用户需求或环境改变时,通过协作模型的合理修改,即可实现组合服务的非结构性或者结构性的动态演化以适应新的应用需求。
●讨论了组合服务动态演化中的一致性问题及其保障方法。
保障一致性是动态演化必须满足的要求,演化后的组合服务应用需要能够继续正确执行并完成所要求的功能。本文从实现技术的角度出发,通过对结构、行为和状态三个不同层面的一致性问题的分析和讨论,并结合上述兼具动态性和协作性的服务组合方式的特点,对保障动态协作的组合应用在这三个层面的演化一致性要求和可能的实现方法进行了初步的探讨。
●实现了一个动态服务组合支撑系统原型,并在其上进行了实例开发。
在前面的设计理论框架指导下,我们具体实现了一个基于WS-CDL和BPEL的服务组合原型系统,同时通过一个实际应用场景的开发展示如何在这个原型系统中进行Internet开放环境下的服务组合和动态演化。系统的实现和实例的开发展现了兼具动态性和协作性的服务组合方式在实际应用中的可行性和有效性。