论文部分内容阅读
基于构件的软件开发(Component-Based Software Development, CBSD)是提高软件开发效率和质量的有效技术,得到广泛关注和应用。这些被开发的基于构件的软件在投入运行后,需要通过更新完成错误修复或功能增强以适应环境。然而传统的更新方式(停止系统、部署更新、重启系统)在很多关键领域的环境下变得不可接受,因此软件动态更新技术在这些领域显得尤为重要。本文探讨了现有动态更新算法的特点,针对其在安全性、及时性、低干扰性方面的不足,提出基于事务标签的动态更新算法,并提出一种动态更新技术,实现上述算法描述的更新管理过程。同时我们在开源的Spring框架之上实现该动态更新技术,使Spring具备动态更新的能力。本文具体工作包括:·分析主流动态更新算法,总结它们在安全性(动态更新过程系统一致性)、及时性(动态更新完成时间)、干扰性(更新操作占用时间)、通信开销(更新操作引入的通信负担)四个方面的不足。针对现有算法的不足,提出一个基于事务版本标签的动态更新算法,提高动态更新在上述四方面的性能。·在上述算法基础上提出一种动态更新技术,实现上述算法描述的更新管理过程。该管理过程为运行的事务添上正确的服务标签,并且自动确定安全更新时间点,替换待更新的构件。·通过离散事件模拟系统进行模拟实验,使用不同更新算法对模拟系统进行更新,比较更新算法在通信开销、及时性、干扰性三方面的性能。实验结果显示,本文提出的更新算法比现有的更新算法,在通信开销方面减少了90%,在及时性方面提高了10%以上,在干扰性方面降低了15%以上。·基于上述更新技术,扩展Spring平台,使之具有构件动态更新功能。通过实例演示动态更新Spring应用程序的过程,并验证更新算法的正确性。