基于OSGi的两阶段动态软件更新
Two-phase Dynamic Software Updating Based on OSGi
对于目前大型的应用软件系统,特别如航天航空、医疗系统,需要提供24/7/365的可用性.而在软件的生命周期内,受制于开发技术、可用资源以及市场压力等因素的约束,软件系统的版本、可用性和性能等方面将处在不断的变化之中,软件提供商须不断地对软件系统进行更新升级以修正软件故障、扩展服务功能、提高系统性能.传统意义上的系统升级因为停止系统运行而需要付出高昂的代价,因此实现系统运行期间的动态更新就成为解决这一难题的有效手段.本文首先通过分析基于过程的动态更新、基于对象的动态更新和基于组件的动态更新三类更新的基本特点,提出了动态更新的一般流程,主要包括四个基本步骤:首先,确定模块间依赖关系.系统模块间一般具有静态和动态两种依赖关系;第二,确定动态更新时机.选择合适的时机有利于更新有效而安全地进行;第三,动态更新,即实现新旧版本模块的交替;最后,状态转移,即将旧版本模块的运行状态迁移到新版本模块中以保证系统运行状态的一致性.针对目前绝大部分依赖于具体平台特殊实现技术的动态更新策略,本文提出了一种两阶段动态软件更新策略.它以松耦合结构和多版本共存为基础,采用延迟更新策略.在更新过程中,两阶段动态软件更新可以最大程度地实现新旧版本模块的并行化处理,提高整个动态更新的执行效率,从而保证了系统的服务质量.OSGi规范作为Internet服务的下一代开放式标准,提供了管理构件生命周期各种操作的一系列接口,得到了广泛的关注和使用.虽然OSGi规范提供了类似动态更新的相关接口,但是它并不支持真正意义上的动态更新.本文提出了DSU-OSGi框架,它是一个以OSGi框架为基础,并具有动态更新能力的可扩展框架.因此DSU-OSGi框架主要对OSGi框架在动态更新方面进行扩充,从而弥补了OSGi规范在动态更新方面的不足.通过若干测试用例的验证,基于DSU-OSGi框架开发的应用系统不仅与当前各种基于OSGi规范的应用系统相互兼容,同时还具备动态更新的能力.
- 作者:
- 彭冲
- 学位授予单位:
- 上海交通大学
- 专业名称:
- 计算机软件与理论
- 授予学位:
- 硕士
- 学位年度:
- 2009年
- 导师姓名:
- 黄林鹏
- 中图分类号:
- TP311.53
- 关键词:
- OSGi规范;动态更新;两阶段更新;DSU-OSGi框架
- OSGi;Dynamic Update;Two-phase Updating;DSU-OSGi Framework