Java程序动态更新的研究

被引量 : 0次 | 上传用户:liuandhll
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
软件在生命周期中会不断地发生演化,包含错误修正,功能拓展,架构调整等等。传统的更新方法会要求软件在更新过程中重新启动。但是,很多软件要求7乘24小时的不中断服务。动态更新技术能够满足这种需求。在应用动态更新技术之后,软件可以不停止服务,在适当的时候把旧版的程序替换成新版本的程序,同时,把旧版本的数据转换成新版本的数据。动态更新技术已经被证明在C语言软件和操作系统上是可行的,并且有多种方式用来实现动态更新。在现代的计算中,Java软件不断得到更广泛的应用,因此,实现Java软件的动态更新有着巨大的意义。针对Java软件,本文首先对它们的演化进行了分析,发现了Java软件在开发初期,可能发生大的架构变化,但是在一段时间的发展之后,架构会趋于稳定的规律。从而确认对Java软件应用动态更新是可行的。另外,Java语言作为一种托管语言,在动态更新技术的应用上有一些优势,比如在进行方法替换时不会增加开销;而Java语言规范要求Java程序在进行方法调用时为每一个调用创建栈帧,为动态更新技术进行线程跟踪提供了方便而规范的方法。在调研了几种动态更新技术算法后,本文提出了新的“按线程进行更新的双向写穿同步”算法。相对于现有的“在安全点进行更新”和“按函数进行更新的双向写穿同步”的算法,这种更新算法确保同一个线程访问的数据类型和调用的方法都属于同一个版本;在更新过程中,线程只需要关注自身的状态,到达了可以进行更新的位置,就对自己进行更新。而传统的两种更新算法,在寻找更新时机时都要进行线程通信。因此,这个新的更新算法更加适合多线程程序的模型。本文通过两种方式实现了这种更新算法:1、修改Java虚拟机以提供动态更新的支持;2、不修改Java虚拟机,在JVMTI接口上实现。修改Java虚拟机因为可以访问虚拟机内部信息,实现比较容易;而在JVMTI上实现有更好的可移植性和可拓展性。论文分别介绍了这两种实现,以及在JVMTI接口上实现Caprice过程中遇到的问题,和相应的解决方案。并且通过实验证实了Caprice动态更新框架的可行性。最后,本文对Caprice和其他动态更新技术进行了比较,并且根据实验中发现的问题,提出了Caprice可行的改进。
其他文献
微信作为新兴科技产品,具有独特的社交功能,受到广大消费者的青睐.同时微信作为新媒体形式,越来越广泛地用于营销和行政办公中.但是其中潜藏的网络信息安全隐患不可忽视.对个
宗教,自其产生之日起,就和文学结下了不解之缘,五四时期基督教进入中国,和佛教、道教一起影响了五四文坛。本文试图对宗教在文学作品中的表现及其价值作初步的探讨。五四时期
20世纪以来,随着世界性教育改革浪潮的推进,我国音乐学科改革也以新的理念、新的姿态出现。新课改视野下的中学音乐课程1目标较之以往也发生了很大的变革与进步,它的具体内容
变应性鼻炎是耳鼻喉科的常见病,属中医“鼻鼽”范畴。近年来,尽管对鼻变态反应的研究和防治有了较大进展,但该病仍未得到有效控制。中医对本病的认识有着独特的理论体系,治疗
用X-射线衍射、差示扫描量热分析仪(DSC)、扫描电镜和电子探针等为主要研究手段,以Cu65.5Ni16.6P12.9Sn4.9非晶态钎料和AlSiCu快速凝固钎料为对象,通过对非晶态钎料钎焊升温
上世纪90年代.在山东省新泰市羊流镇出土了北齐羊烈夫妇墓志.是为泰山羊氏家族文物的重要发现。
在反思心理健康评估多种模式的基础上 ,提出了心理健康评估的基本指标 ,探讨了心理健康的评估原则
本文根据相图的特点分析了相图难学的原因,探讨了搞好二元相图教学的途径。1.要以足够的预备知识为基础,接受和发展新知识;2.讲好“相图的建立”和“匀晶相图”两部分内容;3.在各类相图
以哲学和心理学的理论为指导 ,剖析了前人的观点 ,对篮球运动员篮球意识的内容与形式、结构、培养进行了详细的归纳 ,以求在篮球教学与训练中提供理论依据。
从民意选择、政府角色、赛事运作、国际关注等方面就当前大型体育赛事所面临的办赛危机进行分析.结合当前大型体育赛事自身发展特点、外部发展环境,以大型体育赛事的持续发展