CN105468464A - 一种在web应用中实现在线升级代码的方法 - Google Patents

一种在web应用中实现在线升级代码的方法 Download PDF

Info

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
Application number
CN201510827619.4A
Other languages
English (en)
Inventor
钟健波
杨松
季统凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
G Cloud Technology Co Ltd
Original Assignee
G Cloud Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by G Cloud Technology Co Ltd filed Critical G Cloud Technology Co Ltd
Priority to CN201510827619.4A priority Critical patent/CN105468464A/zh
Publication of CN105468464A publication Critical patent/CN105468464A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols 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应用中实现在线升级代码的方法。
背景技术
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。
CN201510827619.4A 2015-11-25 2015-11-25 一种在web应用中实现在线升级代码的方法 Pending CN105468464A (zh)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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