论文摘要
基于构件的软件开发CBSD (Component-Based Software Development)技术被认为是提高软件开发效率和质量的有效途径,并获得广泛的关注与应用,产生了诸多构件模型和构件框架。但随着Internet/WWW逐步演化为开放的计算平台,源于传统静态环境的CBSD难以充分应对开放网络环境下用户需求和软件平台的动态、多变性。应对需求和环境变更的一个有效途径是允许运行中的构件系统能够动态地更新。主流的构件模型和构件框架对动态更新支持薄弱,而学术界研究所假设的模型过于简化难以实际应用。本文扩展了服务构件架构SCA (Service Component Architecture),使其能完整的支持构件动态更新。具体而言,本文所做扩展主要包括:·提出支持动态更新的事务模型分布式事务模型是为动态更新算法提供所需信息的基础。该模型明确定义了在动态更新需求下,一个事务应该具有的状态、事务不同状态之间的跳转语义以及事务状态在分布式构件之间的传递。根据当前分布式事务的状态,该事务模型能够很好的为不同的动态更新算法提供支持。●提出支持动态更新的一致性模型针对既有构件模型缺乏对动态更新所需的构件元数据支持,本文定义了构件对象以表述构件版本等构件元数据,定义了依赖信息以表征构件之间的依赖关系为更新提供判断依据。在此基础之上,定义了系统一致性模型,并结合服务构件架构规范的构件模型,总结了其构件模型为达到一致性应该具备的特征。●提出支持动态更新的构件生命周期模型为便于对构件进行管理,本文定义了更加细粒度的构件生命周期模型。该模型为构件定义诸多动态更新过程中存在的状态、构件不同状态的跳转语义以及构件状态在分布式构件之间的传递。借助该构件生命周期模型,分布式构件之间可以协同完成动态更新,并提供具体动态更新算法层面的一致性。基于上述工作,将其映射到不同的动态更新算法实现上,设计并实现了一个支持动态更新的服务构件架构平台,并在一个旅行代理的应用场景中展示了动态更新过程,初步验证了本文工作的可行性与有效性。