论文部分内容阅读
随着基于Internet的应用的不断延伸,以Web服务为基础的面向服务的体系架构(Service-Oriented Architecture, SOA)作为新型的分布式计算模式应运而生,并使面向服务的软件成为目前Internet环境下最具前景的主流软件形态。然而,面向服务的软件异构性,动态性,协同性的特点,为其维护和管理提出了全新的挑战。软件动态配置技术作为目前软件维护的重要技术,为应对这一挑战提供了一条可行之路,为提高面向服务的软件灵活性,可靠性及健壮性提供支持,为加快SOA冲破瓶颈迈向成功奠定基础。本文从面向服务的软件宏观层面入手,重点研究支持动态配置的面向服务的软件体系结构、动态配置正确性验证与动态配置过程管理三大问题,其主要研究内容及其贡献如下。1)从宏观层面出发,提出了支持动态配置的面向服务的软件体系结构当前的面向服务的体系结构SOA更多的关注在软件构造过程中如何组织与协同各软件服务实体,而缺乏在软件动态运行过程中感知和刻画系统状态、数据和行为的机制,因此无法从软件体系结构的抽象层面支持面向服务的软件的动态配置。本文提出的支持动态配置的面向服务的软件体系结构DSOS使用反射技术构造,主要由因果相连的元层和基层组成,其元层形成了面向服务的软件的运行时体系结构,它包含了可以捕捉面向服务的软件逻辑结构信息,运行时整体及成员行为信息的元结构层、元连接层、服务发现层及元服务层组成,它们紧密相连、相互协作,是实现软件动态配置的关键。此外,元语义层提供了相关领域知识的表达范式,为DSOS准确描述软件功能和非功能概念,及Web服务的行为及语义信息提供必要的支持。2)提出了支持大粒度服务的Web服务建模方法,以及基于Web服务可替换性和兼容性的动态配置正确性验证方法大粒度服务的不断出现和广泛使用,不仅为Web服务发现、组装等技术带来新的挑战,也为面向服务的软件构造、维护及动态配置等技术的关键环节制造了一系列困难。为了解决这些问题,需要从Web服务描述入手,本文提出服务反向接口依赖关系的概念,使得大粒度服务被有效的分解,同时引入并扩展类型论对从Web服务的外部行为和内部行为两个层次对Web服务进行建模,这种建模方法不仅可以描述不同粒度的服务,也可以描述面向服务的软件的业务逻辑。另外,基于这种形式化模型,本文提出了基于Web服务可替换性和兼容性的动态配置正确性验证方法。实施面向服务的软件动态配置的核心操作主要是服务增加、删除和替换。要保证面向服务的软件动态配置正确性,就要首先考虑如何保证这些操作实施的正确性。因此服务替换的可替换性和兼容性是解决这一问题的根本。本文从整体外部行为和内部行为以及局部外部行为和内部行为两个层面,定义了不同强度的服务可替换性和兼容性的概念,并给出了基于服务行为类型子类型和对偶规则的判定方法。该方法将服务行为可替换性和兼容性的验证过程转化成子类型的判定过程,借助类型检测机制实现验证,最后通过实例展示其可行性。3)提出了面向功能性动态配置的Web服务即时组装和面向非功能性动态配置的目标选择方法支持动态配置的面向服务的软件体系结构能够提供两种动态配置机制:自顶向下的动态配置机制和自底向上的动态配置机制。它们为面向服务的软件动能需求和非功能需求驱动的动态配置提供了基本的保障。作为补充,对于在保持和改进软件功能时,由于不能直接找不到合适的候选服务而造成的动态配置失败的问题,以及对于在保持和改进软件非功能属性时,无法确定动态配置目标的问题。本文提出了面向功能性动态配置的Web服务即时组装和面向非功能性动态配置的目标选择方法,其中:面向功能性动态配置的Web服务即时组装是基于类型论证明即程序的思想提出的。首先,将服务的反向接口依赖关系转换为证明所需的公理规则并将组装的需求即功能性动态配置的需求转换为类型论中的逻辑命题,在此基础上,使用相关策略及公理规则对该命题进行证明,证明完成后对该证明过程进行分析得到复合服务的行为模型。面向非功能性动态配置的目标选择方法是在有新的QoS需求的情况下,为了在软件成员服务中确定动态配置目标并给出候选服务的QoS取值范围而提出的。该方法首先以单个成员服务为动态配置候选目标,通过计算成员服务的关键值,确定它们的先后次序,并依次进行替换,给出候选者所应具有的QoS范围。然后尝试将多个成员服务整体作为动态配置目标。最后通过实例分别验证了这两种方法的有效性。4)设计并实现了面向服务的软件动态配置原型平台为结合实际项目的需要,同时为检验本文所提的研究方法的有效性,设计了基于企业服务总线的面向服务的软件动态配置平台的体系结构,阐明了其所需涵盖的三大功能:基础服务模块、面向服务的软件集成开发模块,及动态配置管理模块。其中,基础服务模块包含了Web服务搜索、领域本体管理、Web服务形式化建模、Web服务组装、QoS评估等功能;面向服务的软件集成开发模块包含了软件开发、软件部署、软件执行及软件监控等功能;动态配置管理模块包含了动态配置方案制定、动态配置正确性验证及动态配置实施等功能。同时采用Eclipse插件技术开发面向服务的软件动态配置原型平台JTangSDR,该平台中我们实现了本文研究内容中所涉及的相关技术和方法。