[发明专利]一种面向Java类热更新的自动化管理方法有效

专利信息
申请号: 202010216486.8 申请日: 2020-03-25
公开(公告)号: CN111580813B 公开(公告)日: 2022-09-02
发明(设计)人: 王牌;闫文添;高健博;吴振豪;李青山;陈钟;李洪生 申请(专利权)人: 博雅信安科技(北京)有限公司;北京国信云服科技有限公司
主分类号: G06F8/38 分类号: G06F8/38;G06F8/41;G06F8/65
代理公司: 沈阳东大知识产权代理有限公司 21109 代理人: 李珉
地址: 100194 北京市海淀*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 面向 java 更新 自动化 管理 方法
【说明书】:

发明提供一种面向Java类热更新的自动化管理方法,涉及软件工程技术领域。该方法包括类热更新执行和类热更新历史查询;首先选择要进行热更新的类,识别类文件的路径并转化为软件包路径;清空编译目录,将待替换的类文件复制至编译目录,并自动生成与软件包路径相同的目录结构;为待更新的类确定新的序号,并根据序号修改源码;将修改的源码放入编译目录,对源码逐个进行编译,再将编译好的源码打包成热更新的jar包;运行附着用户指定pid的目标进程的程序,实现热更新类;按照进程pid查找日志文件,修改日志文件中的已替换类的日志记录和序号,并将新替换的类写入日志文件,并将日志中的历史记录解析并呈现给用户实现热更新类的查询。

技术领域

本发明涉及软件工程技术领域,尤其涉及一种面向Java类热更新的自动化管理方法。

背景技术

Java作为一门跨平台的语言,凭借其良好的可执行性、移植性以及安全性等优势,在互联网的潮流中激流勇进,成为了最主要的语言,并实现了多方面的应用。在有些情况下,Java软件进行版本更新时,重新部署过程比较复杂,停机是不被允许的,所以Java提供了另外一种选择:在不重启应用的前提下进行小幅改动,又称热更新。

Java从1.6版本开始增加了java.lang.instrument的字节码增强功能,开发者可以构建一个独立于应用程序的代理程序,用来监测和协助运行在JVM上的程序,可以实现Java服务运行时动态的进行函数体级别的字节码更新。instrument包的实现基于JVMTI(Java Virtual Machine Tool Interface),该功能是由Java虚拟机提供的,为JVM相关的工具提供的本地编程接口。instrument存在一个JVMTI的代理程序,通过调用JVMTI当中Java类相关的函数来完成Java类的动态操作。JVM启动的时候,在JVM内部启动了一个监听线程,这个线程的名字叫“Signal Dispatcher”,该线程的作用是,监听并处理OS的信号。类的热更新就是由这个线程负责完成的。

由于使用了代理程序,在进行多次替换class时就会涉及到代理程序冲突的问题。热更新的多个类转换器会在线程“Signal Dispatcher”中形成链式调用,这就要求不仅代理程序,热更新包和转换器名都不能相同。于是,每次热更新类都需要重新指定包名,类名,物理位置,修饰符,代理名,转换器,重新编写配置文件并重新编译打包,最好重新连接JVM来实现热更新。

其次,在更新类之后,无法得知当前的哪些类已经是更新过的,也无法得知当前已更新的类更新了哪个版本,因为热更新后的类由线程调用,通过原有的获取类路径的API函数获取的仍然是之前旧的类,热更新只在内存中形成调用类的一个新的链,但无法对原有代码产生影响。

发明内容

本发明要解决的技术问题是针对上述现有技术的不足,提供一种面向Java类热更新的自动化管理方法,实现对Java类热更新的自动化管理。

为解决上述技术问题,本发明所采取的技术方案是:一种面向Java类热更新的自动化管理方法,包括类热更新执行和类热更新历史查询两部分;

所述类热更新执行包括以下步骤:

步骤1、选择要进行热更新的类,识别类文件的路径,并将路径转化为软件包路径,同时,返回软件包路径供用户确认,如果自动识别的路径有误,则用户自行修改成正确的软件包路径后执行步骤2,否则直接执行步骤2;

步骤2、清空编译目录,将待替换的类文件复制至编译目录,并自动生成与软件包路径相同的目录结构;

步骤3、首先查找目标进程是否存在热替换日志,如果存在,则读取日志,为待更新的类确定新的序号;如果不存在,则设置待更新类的序号为0号;然后待更新类根据序号修改源码以避免热更新包冲突;

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于博雅信安科技(北京)有限公司;北京国信云服科技有限公司,未经博雅信安科技(北京)有限公司;北京国信云服科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202010216486.8/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top