论文部分内容阅读
随着Internet技术的发展,面向服务的计算逐渐成为软件产业界和学术界关注的一个热点话题,它以“软件作为服务”的理念为基本前提,期望以软件服务为基本元素构建Internet开放环境下分布式应用系统.这种构建过程本质上是作为基本元素的软件服务不断组合的过程.因此,Internet开放环境下的服务组合技术成为实现面向服务的计算的核心技术之一.不同于相对封闭、稳定的局域网或者企业内部环境中的软件实体,Internet上的软件服务具有较强的“自主性”,大多不是由应用开发者开发的,也不完全受其控制,组合服务的生成并不能仅仅通过各个成员服务的个体行为简单的叠加而得,而需要从软件协同的角度提供一定的协同机制来管理其间的交互,使之和谐工作,达成应用目标.然而,现有的服务组合技术的研究仅仅关注于软件服务之间协同的功能性需求,而对于开放动态的网络计算环境和不断演化的用户个性化需求缺乏有效的支持,特别是在对服务组合的动态演化方面亟待深入研究。
本研究针对这个问题,开发了一个动态架构的软件服务组合平台ARTEMIS—ARC,在该平台中,提出了基于运行时体系结构的服务协同模型,并实现相应的中间件作为其协同媒体,从而支持用户于开放的环境下动态地组合网络上的各种软件服务.本文以基于运行时软件体系结构的服务协同模型为基础,主要探讨了ARTEMIS—ARC系统中若干关键的实现技术.具体工作概括如下:
㈠基于运行时体系结构的服务协同模型的自省式实现。从计算自省的概念出发,分析基于运行时体系结构的服务协同模型的要素与自省系统的组成部分之间的对应关系,提出协同模型的一种自省式的实现途径.在该途径中采用运行时体系结构作为实际的组合服务的元表示,通过在运行时体系结构中基于特定的体系结构风格定义相关的方法构成元协议,以支持在运行时刻对体系结构对象的修改.在完成体系结构元层构造的基础上,采用运行时体系结构对成员服务引用重解释的方式构建体系结构模型与组合服务之间的因果互连,从而确保运行时体系结构模型确实定义了实际系统的体系结构,并针对于EJB方式实现的软件服务,给出了采用Dynamic Proxy技术构建因果互连的具体过程.此外,基于协同模型的自省式实现,进一步探讨了运行时体系结构驱动的服务组合的动态演化,特别是,如何采用一种体系结构“升级”的方式来平滑地实现非预设性的演化。
㈡基于BPEL的组合服务业务逻辑表达。探讨如何在ARTEMIS—ARC系统中支持采用BPEL语言描述组合服务的业务逻辑,并通过相应的执行引擎生成组合服务的实例,从而使ARTEMIS—ARC系统不必采用编程方式实现组合服务的业务逻辑.同时通过将ARTEMIS—ARC系统与现有的BPEL语言执行引擎相结合,提供一种BPEL语言的动态支撑环境,使其具有在运行时刻动态演化的能力。在具体实现上,不同于Dynamic Proxy的方式,针对于BPEL组合服务的特点,提出SOAP消息截获及转发的实现途径以完成运行时体系结构与组合服务之间的因果互连,重点介绍了如何使用“通用地址”和“服务标识”这两个关键的技术成功将组合服务对成员服务的请求消息截获并转发至运行时体系结构。
㈢系统开发和运行实例。综合以上两方面的工作,通过在ARTEMIS—ARC系统中实现一个实际的应用场景,展示如何采用上述技术进行Internet开放环境下的服务组合以及动态演化,从而展现ARTEMIS—ARC系统中基于运行时体系结构的服务协同模型的可行性和有效性。