Java程序动态更新技术研究

来源 :南京大学 | 被引量 : 0次 | 上传用户:litang345
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
软件已无处不在,人们也日益依赖于软件系统提供的不间断服务。然而,软件系统常需更新以修复缺陷、改进性能和增加功能。传统的软件更新需要停止正在运行的软件系统,部署新版本并重启运行。这种因软件更新而导致的服务中断可能会带来诸多不便,甚至生命财产损失。动态软件更新技术旨在不终止正在运行的系统而将其在线地升级到新版本。当前既有的动态软件更新技术存在诸多局限,特别是:(1)为高度优化的软件运行环境引入动态更新支持会带来难以接受的运行时额外开销,(2)对高度复杂的运行时状态的转换可能带来较长时间的服务中断,(3)人工开发用于转换程序运行时状态的动态更新补丁难度大,质量难以保证,(4)软件系统开发时通常不会考虑动态更新,因而缺少抵抗由于不恰当的动态软件更新而导致的运行时错误的能力。针对这些问题和挑战,本文从高效的动态软件更新实现机制、自动化的运行时对象状态转换方法以及动态更新错误自动恢复技术三个方面系统研究了Java程序动态更新支撑技术,并在工业级的Java虚拟机上实现了上述技术,得到一个高效、易用、可靠的Java程序动态软件更新系统Javelus。具体而言,本文的主要工作如下:1.提出了一种高效的延时Java程序动态更新实施机制。该机制以按需更新的方式实现对象状态的版本转换,从而大大降低了更新过程的程序中断时间,同时通过细粒度的类型分析实现了多种优化,保证了动态软件更新前、后运行时的低额外开销。2.提出了一种基于程序和执行合成的自动对象状态转换方法。该方法避免直接操纵对象内部封装的具体数据结构,而是根据对象当前的状态合成一个能生成该状态的方法执行历史,然后将该方法执行历史中的旧版本方法替换为对应的新版本方法,再通过重新执行该方法历史,生成所需的新版本对象状态。3.提出了一种基于错误处理器合成的自动错误恢复技术。该技术利用程序内部自身抵抗错误的能力来将程序从由不恰当的动态更新导致的运行时错误中恢复。在运行时错误发生时,该技术通过虚拟机截获错误,自动地生成多个备选错误处理器,同时利用按需创造的测试沙盒来选择最有可能成功的错误处理器来进行错误恢复。4.基于工业界广泛使用的HotSpot Java虚拟机实现了上述机制、方法和技术,得到一个Java程序动态更新系统Javelus 。该系统实现较完整,支持各种类型的程序修改,可以无缝集成到当前主流的开发和运行环境中。实验评估结果表明,较之既有系统,Javelus显著提高了动态软件更新的高效性、易用性和可靠性。
其他文献
互联网时代,微博、微信等移动社交产品大行其道,信息传递的方式丰富、快捷。无论是公众人物的个人隐私还是普通百姓的个人信息,网络信息所涵盖的内容可谓应有尽有。但是信息
进入到新时期之后我国对于人才培养予以了较高关注,《国家人才发展规划纲要》中强调了建设人才队伍根本任务是对科技人才的良好培养,而青年人才又属于科技人才整体队伍之中最
对35例急性粘连性肠梗阻患者实施经鼻型肠梗阻导管治疗的护理,保持导管引流通畅,做好心理护理,置管后妥善固定导管,充分肠道减压,详细记录出入量。
<正>随着云计算等信息化技术的发展,大数据已深入到各行各业,在互联网时代扮演者关键角色。大数据在网络营销中的运用愈发普遍,基于大数据的网络营销成为营销的重要手段,精准
<正>只要清理一下近年来种种社会矛盾,便会发现,我们今天的主要矛盾.是公众利益增长的公共品需求与公共品供给短缺低效之间的矛盾。执政党关于主要矛盾的判断事关社稷近几年.中
在真人秀节目当道的电视荧屏上,各大卫视主打明星参与的电视真人秀已不是新鲜事,除了大量引进、学习、模仿国外电视综艺节目的流程、套路,很少有自主研发且拥有忠实观众的国
小额保险为实现保险服务的普惠性提供了一个有效途径,但中国农村小额保险在发展中面临产品创新不足、供给主体单一、对小额保险认识不足等问题。构建中国农村小额保险制度应
关于营销渠道中的跨组织管理行为和中国的关系,各自已有相当数量的学术论文发表。也有人将二者结合起来,探讨人际关系对中国企业进行渠道跨组织合作与管理的影响。然而,由于
随着经济的发展、文化的繁荣,我国传媒出版业发生了深刻的变革,多种媒体交叉共融的媒介生态环境为传统出版业带来了新的机遇和挑战。作为传统图书编辑,不能固步自封,远离数字