CN105468464A - 一种在web应用中实现在线升级代码的方法 - Google Patents
一种在web应用中实现在线升级代码的方法 Download PDFInfo
- Publication number
- CN105468464A CN105468464A CN201510827619.4A CN201510827619A CN105468464A CN 105468464 A CN105468464 A CN 105468464A CN 201510827619 A CN201510827619 A CN 201510827619A CN 105468464 A CN105468464 A CN 105468464A
- Authority
- CN
- China
- Prior art keywords
- web application
- application
- class
- map
- join
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及应用升级更新,特别是一种在web应用中实现在线升级代码的方法。本发明包括如下步骤:1:创建统一的提供服务接口;2:创建web应用启动模块,加载所有jar包到内存;3:统一接口获取内存并实例化,处理后返回;4:放入更新jar包,启动更新模块;5:判断应用是否已在更新状态,是,执行步骤8;不在更新状态,执行步骤6;6:更新模块获取jar包内容,放到内存中,完成更新;7:调用统一接口继续提供服各;8:结束。本发明解决了应用在运行过程中需要升级代码时需要重启而导致服务暂时中断的问题;可以用于web应用在线升级。
Description
技术领域
本发明涉及应用升级更新,特别是一种在web应用中实现在线升级代码的方法。
背景技术
Web应用通过发布接口来提供服务,在应用运行过程中,当发现服务存在bug,需要修复,或者提供了更多的服务,就需要更新应用的代码,以便提供更好的服务质量。但是传统的应用更新存在以下问题:
一是应用更新时,需要停止服务,放入更新代码后再重新启动,如果应用本身是比较大型的服务,重启时间比较长,那么会导致用户在应用重启的这段时间里无法使用服务。
二是如果通过负载均衡,部署两套服务,升级其中一套,另外一套继续服务,对于小型的服务来说又是很耗费资源的;
为了使服务可以持续提供,不影响用户的使用,同时使用较少的资源,需要一种通实现在线升级代码的方法。
发明内容
本发明解决的技术问题在于提供一种在web应用中实现在线升级代码的方法,解决了使用较少资源完成应用的在线升级问题。
本发明解决上述技术问题的技术方案是:
包括如下步骤:
所述的方法包括如下步骤:
步骤1:创建统一的提供服务接口;
步骤2:创建web应用启动模块,加载所有jar包到内存;
步骤3:统一接口获取内存并实例化,处理后返回;
步骤4:放入更新jar包,启动更新模块;
步骤5:判断应用是否已在更新状态,是,执行步骤8;不在更新状态,执行步骤6;
步骤6:更新模块获取jar包内容,放到内存中,完成更新;
步骤7:调用统一接口继续提供服务;
步骤8:结束。
所述的统一的服务接口带有computeActionType参数,标识调用功能,并把所有入参以map形式保存;
所述的统一接口根据入参computeActionType,获取全局map中对应的实现类,初始化实现类,并把请求入参map赋值到实现类中,执行实现类,把执行结果返回给用户。
所述的启动模块,在web应用启动时执行,遍历应用特定路径下jar包,并加载jar包中所有baseTask类的实现类,同时加入到全局静态Map中。
所述的判断应用是否更新中,更新模块带有全局变量,记录应用是否更新中,用户调用更新接口后,更新模块启动,标识应用升级中,更新模块执行完毕后标识应用不在升级状态,可以继续下次更新。
扫描特定路径下所有jar包,并获取所有baseTask类的实现类,加入到临时map中,扫描完毕后,替换原有内存中的全局静态map。
本发明通过把应用服务的实现类加载到内存中,使用时再实例化。应用更新时,扫描所有jar包,重新加载实现类的内存中进行替换,实现应用的在线升级。在生产环境中,只需要提供足够一套足够应用运行的环境即可,应用升级时,还能继续提供服务,能减少运营成本,同时也能提供稳定的服务。
附图说明
下面结合附图对本发明进一步说明:
图1为本发明方法流程图。
具体实施方式
如图1所示,本发明主要包括以下步骤:
创建统一的服务入口,处理用户的请求:
获取服务实现类代码如下
扫描jar包代码
把实现类加载到内存代码
Claims (7)
1.一种在web应用中实现在线升级代码的方法,其特征在于:所述的方法包括如下步骤:
步骤1:创建统一的提供服务接口;
步骤2:创建web应用启动模块,加载所有jar包到内存;
步骤3:统一接口获取内存并实例化,处理后返回;
步骤4:放入更新jar包,启动更新模块;
步骤5:判断应用是否已在更新状态,是,执行步骤8;不在更新状态,执行步骤6;
步骤6:更新模块获取jar包内容,放到内存中,完成更新;
步骤7:调用统一接口继续提供服务;
步骤8:结束。
2.根据权利要求1所述的在web应用中实现在线升级代码的方法,其特征在于:所述的统一的服务接口带有computeActionType参数,标识调用功能,并把所有入参以map形式保存;
所述的统一接口根据入参computeActionType,获取全局map中对应的实现类,初始化实现类,并把请求入参map赋值到实现类中,执行实现类,把执行结果返回给用户。
3.根据权利要求1所述的在web应用中实现在线升级代码的方法,其特征在于:所述的启动模块,在web应用启动时执行,遍历应用特定路径下jar包,并加载jar包中所有baseTask类的实现类,同时加入到全局静态Map中。
4.根据权利要求2所述的在web应用中实现在线升级代码的方法,其特征在于:所述的启动模块,在web应用启动时执行,遍历应用特定路径下jar包,并加载jar包中所有baseTask类的实现类,同时加入到全局静态Map中。
5.根据权利要求1至4任一项所述的在web应用中实现在线升级代码的方法,其特征在于:所述的判断应用是否更新中,更新模块带有全局变量,记录应用是否更新中,用户调用更新接口后,更新模块启动,标识应用升级中,更新模块执行完毕后标识应用不在升级状态,可以继续下次更新。
6.根据权利要求1至4任一项所述的更新模块,其特征是:扫描特定路径下所有jar包,并获取所有baseTask类的实现类,加入到临时map中,扫描完毕后,替换原有内存中的全局静态map。
7.根据权利要求5所述的更新模块,其特征是:扫描特定路径下所有jar包,并获取所有baseTask类的实现类,加入到临时map中,扫描完毕后,替换原有内存中的全局静态map。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510827619.4A CN105468464A (zh) | 2015-11-25 | 2015-11-25 | 一种在web应用中实现在线升级代码的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510827619.4A CN105468464A (zh) | 2015-11-25 | 2015-11-25 | 一种在web应用中实现在线升级代码的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105468464A true CN105468464A (zh) | 2016-04-06 |
Family
ID=55606199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510827619.4A Pending CN105468464A (zh) | 2015-11-25 | 2015-11-25 | 一种在web应用中实现在线升级代码的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105468464A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622241A (zh) * | 2011-01-26 | 2012-08-01 | 腾讯科技(深圳)有限公司 | 一种软件升级方法及装置 |
CN103186400A (zh) * | 2011-12-31 | 2013-07-03 | 深圳市金蝶中间件有限公司 | Web应用程序升级方法及系统 |
CN104077160A (zh) * | 2014-05-12 | 2014-10-01 | 联动优势电子商务有限公司 | 一种升级安卓软件的方法、设备和系统 |
CN104102502A (zh) * | 2013-04-09 | 2014-10-15 | 腾讯科技(深圳)有限公司 | 一种实现热部署的处理方法、装置及服务器 |
US20140324942A1 (en) * | 2013-04-24 | 2014-10-30 | Linkedin Corporation | Method and system to update a front end client |
-
2015
- 2015-11-25 CN CN201510827619.4A patent/CN105468464A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622241A (zh) * | 2011-01-26 | 2012-08-01 | 腾讯科技(深圳)有限公司 | 一种软件升级方法及装置 |
CN103186400A (zh) * | 2011-12-31 | 2013-07-03 | 深圳市金蝶中间件有限公司 | Web应用程序升级方法及系统 |
CN104102502A (zh) * | 2013-04-09 | 2014-10-15 | 腾讯科技(深圳)有限公司 | 一种实现热部署的处理方法、装置及服务器 |
US20140324942A1 (en) * | 2013-04-24 | 2014-10-30 | Linkedin Corporation | Method and system to update a front end client |
CN104077160A (zh) * | 2014-05-12 | 2014-10-01 | 联动优势电子商务有限公司 | 一种升级安卓软件的方法、设备和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2015055074A1 (zh) | 动态加载和调用程序的方法及装置 | |
US8555280B2 (en) | Terminal device of non-android platform for executing android applications, and computer readable recording medium for storing program of executing android applications on non-android platform | |
CN107636612B (zh) | 应用迁移装置、方法与存储介质 | |
CN103491111B (zh) | 无线应用发布、实现方法与装置 | |
WO2022016848A1 (zh) | 一种根据服务角色的进行应用部署的方法及装置 | |
CN104375849A (zh) | 加载内核的方法及装置 | |
CN105607921B (zh) | 一种基于Android系统的系统服务启动方法及系统 | |
US20140033208A1 (en) | Method and device for loading application program | |
CN108141378B (zh) | Vnfd中的休眠vdu | |
CN102830959B (zh) | 一种嵌入式浏览器接口动态扩展方法及系统 | |
US9158521B2 (en) | Automatic provisioning of a software platform to a device ecosystem | |
CN114077423A (zh) | 基于移动跨平台的机场app开发容器架构 | |
CN105242962A (zh) | 基于异构众核的轻量级线程快速触发方法 | |
CN105159738A (zh) | 一种热补丁实现方法及系统 | |
US8397229B2 (en) | System and methods for migrating independently executing program into and out of an operating system | |
CN109740765A (zh) | 一种基于亚马逊网络服务器的机器学习系统搭建方法 | |
CN107220074A (zh) | 对支撑层软件功能的访问、升级方法及装置 | |
CN103530165B (zh) | 一种应用于物联网行业的java解决方案 | |
CN108268261B (zh) | 一种智能终端的ui定制方法、存储介质及智能终端 | |
CN106802805B (zh) | 一种适用服务器管理的应用服务管理方法及装置 | |
CN102999371B (zh) | 基于Lua脚本的人机界面开发方法及系统 | |
CN110045997B (zh) | 基础功能模块的对象初始化方法、装置、设备和存储介质 | |
WO2021097683A1 (zh) | 安卓系统启动的方法、装置、设备及存储介质 | |
CN111459573A (zh) | 一种智能合约执行环境的启动方法以及装置 | |
CN105468464A (zh) | 一种在web应用中实现在线升级代码的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160406 |
|
WD01 | Invention patent application deemed withdrawn after publication |