论文部分内容阅读
软件构件技术通过复用和组装已有的软件资源,提高了软件质量与软件的开发效率,对于缓解软件危机起到了重要的作用。随着开放动态的Internet计算平台的发展,构件技术被应用到这一新的软件运行平台之上。因此,如何让传统面向封闭静态环境的构件能适用于新的开放多变的环境成为了一个亟需解决的技术问题。为此,我们提出了一种以自省构件模型为核心支持动态演化的构件框架,并面向此构件框架研究了构件系统动态演化的相关关键技术,以此支持个体构件层面的调整和构件系统全局配置的演化,特别是在此演化过程中,实现了系统一致性保障以及构件状态迁移,为Internet开放环境下具有动态演化能力应用系统的运行提供支撑。本文的主要工作总结如下: 1)提出了一种面向软件动态演化的构件框架ACF(Artemis Component Framework)。该构件框架的核心是一种自省构件模型Artemis-RC,它针对传统软件构件技术缺乏动态重配置能力的缺点,构造构件元层对象并建立元层对象与基层实体之间的因果联系,允许用户通过元对象访问协议对构件实体进行动态配置。Artemis-RC构件的元层包含了结构、行为等多侧面元对象,从而实现了运行时刻对构件行为与结构等侧面的调整,以此支持构件个体层面的动态重配置。在上述构件模型和框架的基础上,我们利用结构侧面的元对象实现了构件之间的交互关系的动态配置,利用构件事务状态自动机与属性控制器,实现了构件系统重配置过程中一致性保障与状态迁移,以此支持构件系统全局在线演化过程。 2)针对系统全局演化过程中的一致性保障和状态迁移的需要,分别提出了一种事务状态机自动分析方法和一种多实例构件的状态迁移方法。传统工作中为了保障演化系统的一致性,需要程序员手动编写事务状态机,导致程序员负担加重、动态演化易用性不高。我们提出一种事务状态机自动分析方法,该方法通过分析方法执行的控制流以及构件间的交互关系,自动生成事务状态机,并通过在业务逻辑代码中插入状态跳转语句实现状态机的运行时驱动,提高了动态演化的易用性。针对已有工作没有考虑实际应用系统中构件多实例并存这一特点的不足,提出一种面向多实例构件的状态迁移方法。该方法结合一致性保障的需要对构件实例的生命周期进行了细粒度的划分,针对不同生命周期状态下的实例采取不同的迁移策略。 3)开发了支持ACF构件框架的动态演化支撑系统Artemis-AEJB。Artemis-AEJB系统基于工业界广泛应用的开源中间件JBoss Application Server,实现了对Artemis-RC构件模型的支持的同时兼容主流的EJB构件规范,并支持构件化应用系统的搭建与动态演化。开发了一个基于ACF构件框架的应用案例:黄河下游工情险情会商系统。通过该应用案例展现了ACF构件框架下的应用系统的搭建以及演化过程,并初步验证了面向构件的动态演化技术的可行性和有效性。