[发明专利]云计算环境下实现Java类在线热更新的系统与方法在审
申请号: | 201510606944.8 | 申请日: | 2015-09-22 |
公开(公告)号: | CN105068852A | 公开(公告)日: | 2015-11-18 |
发明(设计)人: | 陈文权 | 申请(专利权)人: | 普元信息技术股份有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 上海智信专利代理有限公司 31002 | 代理人: | 王洁;郑暄 |
地址: | 201203 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 计算 环境 实现 java 在线 更新 系统 方法 | ||
技术领域
本发明涉及计算机系统技术领域,尤其涉及企业应用系统技术领域,具体是指一种云计算环境下实现Java类在线热更新的系统与方法。
背景技术
随着信息技术的发展,许多线下的业务模式正在通过互联网在线上实现虚拟化,通过线下和线上的融合可以最大限度的确保用户体验。比如某数码品牌门店,线下的实体门店可以成为用户的体验场所和仓储中心,而线上系统则可以成为传统实体店突破空间和时间限制的24小时不打烊卖场。线上系统想要提供类似7×24小时的用户体验,这就对IT系统建设提出了更高的要求。
在基于Java的应用系统中,如果需要对生产系统升级或者打补丁,一般保守的做法是先停止服务,再升级系统,最后重启服务,在整个升级期间,系统是不可用的。为解决这一问题,出现了一种灰度发布的方式,即一次只升级一部分系统,这样可以始终保证有一部分系统是可用的,之后再逐步扩大升级范围,直至全部升级完成。采用灰度发布能在一定程度上解决因系统升级带来的服务不可用的问题,但是,这仍然没有彻底解决需要停止服务的问题。
假设有这样一个系统,因为发现了一个bug或者调整业务规则需要修改其中一个Class类,仅仅就为了更新一个类,就需要对系统进行一次升级。如果没有Class的热更新机制,这样的代价是很大的。
发明内容
本发明的目的是克服了上述现有技术的缺点,提供了一种能够实现,使生产环境中的系统不停机成为可能、应用范围广泛的云计算环境下实现Java类在线热更新的系统与方法。
为了实现上述目的,本发明的云计算环境下实现Java类在线热更新的系统与方法具有如下构成:
该云计算环境下实现Java类在线热更新的系统,其主要特点是,所述的系统包括:
自定义加载模块,用以加载需要热更新类的自定义类加载器;
类扫描模块,用以对目标目录进行类文件扫描并通知热更新模块;
热更新模块,用以对需要进行热更新的类进行热更新;
受管对象创建工厂模块,用以创建作为受管对象的热更新的类的具体实例。
本发明还涉及一种云计算环境下实现Java类在线热更新的方法,其特征在于,所述的方法包括以下步骤:
(1)系统启动时,所述的类扫描模块扫描目标目录的类文件;
(2)系统将扫描结果注册至模型注册器;
(3)使用受管对象实例的模块向所述的受管对象创建工厂模块发出使用请求;
(4)所述的自定义类加载模块加载需要热更新类的自定义类加载器;
(5)所述的受管对象创建工厂模块通过所述的自定义类加载器创建受管对象的具体实例;
(6)系统运行期间,当热更新事件被触发,所述的热更新模块执行热更新。
较佳地,所述的扫描目标目录的类文件,包括如下步骤:
(1-1)递归遍历特定目录下的所有后缀为.class的文件并确定需要热更新的类;
(1-2)在模型注册器中保存物理类文件的信息。
较佳地,所述的自定义类加载模块加载需要热更新类的自定义类加载器,包括以下步骤:
(4-1)所述的自定义类加载模块进行初始化;
(4-2)所述的自定义类加载模块重写父类的类寻找方法并加载类模型。
更佳地,所述的自定义类加载模块重写父类的类寻找方法并加载类模型,包括以下步骤:
(4-2-1)根据类寻找方法传入类名并使用父加载器加载以及判断是否加载成功,如果是,则继续步骤(4-2-3),如果否,则继续步骤(4-2-2);
(4-2-2)读取该物理文件至byte数组中,调用父类的defineClass方法由JVM完成加载,然后继续步骤(4-2-3);
(4-2-3)所述的受管对象创建工厂将加载成功的类模型向模型注册器注册。
较佳地,所述的创建受管对象的具体实例,包括以下步骤:
(5-1)所述的受管对象创建工厂模块判断所述的模型注册器的缓存中是否存在类模型,如果是,则继续步骤(5-2),否则继续步骤(5-3);
(5-2)所述的受管对象创建工厂模块从所述的模型注册器的缓存中获取类模型,然后继续步骤(5-4);
(5-3)所述的自定义类加载模块创建自定义加载器并用新创建的自定义加载器加载该类模型,然后继续步骤(5-4);
(5-4)所述的受管对象创建工厂模块根据所述的类模型创建受管对象的具体实例;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于普元信息技术股份有限公司,未经普元信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510606944.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种多功能垃圾桶
- 下一篇:一种泡沫块自动覆布装置