论文部分内容阅读
软件在投入运行之后需要通过更新来修正错误、增强功能以适应环境和用户需求的变化。传统软件更新方式需停止系统、安装更新、然后重新启动系统,这对很多关键领域的系统来说是不可接受的。因此软件动态更新就显得尤为重要。软件动态更新是指在软件运行过程中对软件进行更新。本文提出了一种基于中间件的软件动态更新解决方案。中间件是网络环境下复杂应用系统构建的核心基础支撑软件,然而,现有中间件系统对软件动态更新支撑较弱,不能保证动态更新过程中系统的一致性。为了解决该问题,本文设计并实现了一个支持构件动态更新的中间件系统ConUp。同时,本文通过个第三方应用实例对ConUp系统进行实验评估,实验结果展示了它对多种动态更新算法、策略的灵活支持,及其在动态更新安全性、及时性和干扰性方面的优势。具体而言,本文的工作主要包括如下几方面:1.分析现有中间件系统在动态更新支撑方面的不足,并针对这些不足提出一套支持构件动态更新的解决方案。包括扩展现有的构件模型使其支持对构件生命周期、事务生命周期和动态依赖的管理,并且提供动态更新管理接口。2.基于上述解决方案设计并实现了ConUp系统,ConUp它支持构件应用的部署、运行和动态更新,同时兼容SCA规范。ConUp系统提供多种动态更新算法和策略来保证动态更新过程的安全性和高效性,并且对长事务场景下的动态更新提供支持。3.选择一个第三方应用对ConUp系统进行实验评估。重点对动态更新过程中各个动态更新算法在安全性(Safety)、及时性(Timeliness)、干扰性(Disruption)以及系统开销(Overhead)方面进行性能对比,最后也研究了更新粒度对动态更新效率的影响。