基于面向对象软件的动态更新研究
【摘要】:
随着计算机在日常生活中的广泛应用,如何实现软件的不间断运行而能够实现升级、更新也就成为软件维护和软件设计中的重要问题。能否提供不间断的服务正在成为人们衡量软件系统的一项重要指标。
本文从理论和实现两个方面出发,对面向对象软件动态更新的不同侧面进行研究,提出了一些解决面向对象软件动态更新的方法。本文还对网构软件的动态更新进行研究,基于OSGi平台提出服务实例的动态演化方法。本文的创新主要体现在如下四个方面。
1、针对基于面向对象的软件在动态更新时可能产生的类型安全问题,以FJ(FeatherWeight Java)演算为基础,提出保证类型安全的限制条件T-UPDATABLE,以保证更新操作的类型安全性,并通过形式化方法加以证明。
2、为了解决动态更新过程中对象和方法执行转换等问题,提出了一个能够保证类型安全的多版本类动态更新演算-- MCUFJ演算。多版本扩展拓宽了软件动态更新的范围和深度,并总结出动态更新规则以保证多版本情况下动态更新的类型安全性。
3、引入动态更新事务的方法,克服了面向对象程序更新只能对类实行一些简单更新的限制,同时保证了更新的类型安全性。对Java程序设计,提出Java可动态更新程序的设计方法,并验证了其可行性。
4、针对OSGi平台上服务动态演化需求,通过利用重定向方法,解决了服务类定义的动态演化,较好地满足了演化中服务的透明性问题;提出了实现和数据相分离的方法,解决了演化中服务实例数据的一致性问题。