论文部分内容阅读
在一些任务关键型应用系统中,由于系统具有高可用性需求,在进行软件故障修复、服务功能扩展或系统性能改进等软件更新操作时,需要在保持系统持续运行的情况下动态地进行。软件系统如果能够具备良好的动态更新能力,将有利于提高系统的适应性,从而延长软件生命周期,减少管理和运营成本,并满足不断增长的软件复杂性和适应性需求。本文从功能和非功能需求分析着手,研究在构件化软件中提供动态更新支持需要解决的关键技术问题,并结合动态模块化、事务处理、状态迁移等动态更新支持需求,对高阶π演算(HOπ)进行扩展研究,开发一种可用于刻画构件化软件动态更新的演算方法,为动态更新安全性、一致性等的保证提供形式化推演机理。并且,构建动态更新支持平台对解决方案加以技术实现,通过原型案例和实验实现来验证方法的可行性。本文的研究工作和创新性主要包含以下方面:1.提出一套动态更新支持相关问题的技术解决方案,基于软件构件的服务功能、结构表达以及构件组装、通信与交互等特征,结合软件系统动态更新支持的可用性、正确性等需求,研究构件化软件动态更新中的关键技术问题。基于安全通信、依赖分析、静态分析、事务处理等技术,给出了更新点确定、更新文件交付、更新时机选择、状态提取及迁移、更新失败恢复等方面问题的解决方法。2.扩展高阶π演算以分别刻画动态模块化、事务处理和状态保持等动态更新支持机制,提出一种刻画构件化软件动态更新的形式化演算(称为updateπ演算),根据构件化软件动态更新支持形式化推演的设计依据,引入进程序列原语,结合对高阶π演算的动态更新支持扩展,给出了updateπ演算的抽象语法、操作语义和推演规则,并通过应用实例具体刻画典型动态软件更新行为,包括更新时机选择、更新执行过程、状态提取与迁移、更新失败检测与恢复等方面。3.提出一种构件化软件动态更新支持服务框架,刻画构件开发管理、底层服务架构、服务功能实现、服务部署与管理和目标应用系统等部分之间的交互联系。其中动态更新支持作为服务部署与管理模块的核心功能,实现了动态更新的各种功能和非功能需求,包括更新初始化、更新调度、更新操作和失败处理等。基于R-OSGi技术开发构件化软件动态更新支持系统,实现普适计算环境下的动态软件更新原型,验证了方法的可行性。