CN108170488B - 一种升级插件的方法及装置 - Google Patents

一种升级插件的方法及装置 Download PDF

Info

Publication number
CN108170488B
CN108170488B CN201611114552.0A CN201611114552A CN108170488B CN 108170488 B CN108170488 B CN 108170488B CN 201611114552 A CN201611114552 A CN 201611114552A CN 108170488 B CN108170488 B CN 108170488B
Authority
CN
China
Prior art keywords
plug
upgrading
upgrade
cluster management
application program
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.)
Active
Application number
CN201611114552.0A
Other languages
English (en)
Other versions
CN108170488A (zh
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.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital 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 Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201611114552.0A priority Critical patent/CN108170488B/zh
Publication of CN108170488A publication Critical patent/CN108170488A/zh
Application granted granted Critical
Publication of CN108170488B publication Critical patent/CN108170488B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明的实施例公开一种升级插件的方法及装置,涉及插件技术,能够提高应用程序在进行插件升级时的可用性。所述升级插件的方法包括:集群管理客户端确定需要对应用程序中的插件进行升级,通过预先构建的所述插件对应的消息管道获取对应的插件升级包;集群管理客户端关闭所述插件对应的消息管道,运行所述插件升级包升级所述插件;集群管理客户端启动升级的所述插件,构建升级的所述插件对应的消息管道。本发明适用于基于应用程序对集群插件进行管理。

Description

一种升级插件的方法及装置
技术领域
本发明涉及插件技术,尤其涉及一种升级插件的方法及装置。
背景技术
在应用程序开发中,为了方便对应用程序进行业务功能扩展,一般采用插件方式,即将应用程序所要实现的某一扩展业务功能封装在相应的插件中,最后将封装有相应扩展业务功能的插件或插件包进行发布,以便于客户端下载该应用程序的插件或插件包进行升级,从而使得该应用程序可以提供升级的插件对应的业务,而无需重新安装该应用程序。
随着通信技术的不断发展,通过集群方式向用户提供业务,由于具有资源共享优势,得到了越来越广泛的应用,例如,用作资源存储备份的云存储***以及用于计算资源共享的分布式***,利用多个客户端安装的同一应用程序向外提供业务,可以为用户提供更多便利。
为了对集群中的多个客户端中的应用程序进行插件升级,目前,是通过人工方式逐一对应用程序的插件进行升级,即在暂时终止该客户端的所有业务后,逐一升级每一客户端中的应用程序的插件,在升级应用程序的插件后,再通过重启应用程序的方式完成对应插件的更新。但该升级插件的方法,由于在升级插件前需要终止该客户端的所有业务(服务),使得对客户端中的一应用程序进行插件升级,将使得客户端中的其他应用程序或该应用程序的其他插件不能够正常提供相应的业务,导致应用程序在进行插件升级时的可用性降低。
发明内容
有鉴于此,本发明实施例提供一种升级插件的方法及装置,能够提高应用程序在进行插件升级时的可用性,以解决现有的升级插件的方法中,对应用程序中的一插件进行升级时导致的应用程序的可用性不高的问题。
第一方面,本发明实施例提供一种升级插件的方法,包括:
集群管理客户端确定需要对应用程序中的插件进行升级,通过预先构建的所述插件对应的消息管道获取对应的插件升级包,其中,应用程序中的每一插件均对应一消息管道;
集群管理客户端关闭所述插件对应的消息管道,运行所述插件升级包升级所述插件;
集群管理客户端启动升级的所述插件,构建升级的所述插件对应的消息管道。
结合第一方面,在第一方面的第一种实施方式中,所述确定需要对应用程序中的插件进行升级,通过预先构建的所述插件对应的消息管道获取对应的插件升级包包括:
利用预先构建的插件对应的消息管道,向集群管理服务器发送插件升级请求,所述插件升级请求中包含有所述插件所属的应用程序标识以及所述插件的版本标识;
利用所述预先构建的插件对应的消息管道,接收所述集群管理服务器推送的插件升级包,所述插件升级包为所述集群管理服务器比对所述插件升级请求中包含的信息以及存储的插件升级库得到的。
结合第一方面的第一种实施方式,在第一方面的第二种实施方式中,所述集群管理服务器比对所述插件升级请求中包含的信息以及存储的插件升级库包括:
查询所述存储的插件升级库,获取与所述插件所属的应用程序标识相同的应用程序标识;
提取所述相同的应用程序标识下的所述插件的版本标识相对应的最新版本标识;
比较所述最新版本标识是否高于所述插件的版本标识。
结合第一方面的第一种实施方式,在第一方面的第三种实施方式中,所述接收所述集群管理服务器推送的插件升级包包括:
如果所述集群管理服务器在推送插件升级包的过程中发生异常,切换至备份集群管理服务器继续接收剩余的插件升级包。
结合第一方面的第一种至第三种中任一种实施方式,在第一方面的第四种实施方式中,在所述确定需要对应用程序中的插件进行升级之前,所述方法还包括:
向所述集群管理服务器注册。
结合第一方面,在第一方面的第五种实施方式中,所述关闭所述插件对应的消息管道,运行所述插件的升级包升级所述插件包括:
如果所述插件升级包为多个,依次提取其中的一插件升级包,关闭提取的插件升级包所属插件对应的消息管道,运行提取的所述插件升级包。
第二方面,本发明实施例提供一种升级插件的装置,包括:插件升级包获取模块、插件升级包运行模块以及消息管道构建模块,其中,
插件升级包获取模块,用于确定需要对应用程序中的插件进行升级,通过预先构建的所述插件对应的消息管道获取对应的插件升级包,其中,应用程序中的每一插件均对应一消息管道;
插件升级包运行模块,用于关闭所述插件对应的消息管道,运行所述插件升级包升级所述插件;
消息管道构建模块,用于启动升级的所述插件,构建升级的所述插件对应的消息管道。
结合第二方面,在第二方面的第一种实施方式中,所述插件升级包获取模块包括:升级请求单元以及插件升级包获取单元,其中,
升级请求单元,用于利用预先构建的插件对应的消息管道,向集群管理服务器发送插件升级请求,所述插件升级请求中包含有所述插件所属的应用程序标识以及所述插件的版本标识;
插件升级包获取单元,利用所述预先构建的插件对应的消息管道,接收所述集群管理服务器推送的插件升级包,所述插件升级包为所述集群管理服务器比对所述插件升级请求中包含的信息以及存储的插件升级库得到的。
结合第二方面的第一种实施方式,在第二方面的第二种实施方式中,所述集群管理服务器比对所述插件升级请求中包含的信息以及存储的插件升级库包括:
查询所述存储的插件升级库,获取与所述插件所属的应用程序标识相同的应用程序标识;
提取所述相同的应用程序标识下的所述插件的版本标识相对应的最新版本标识;
比较所述最新版本标识是否高于所述插件的版本标识。
结合第二方面的第一种实施方式,在第二方面的第三种实施方式中,所述接收所述集群管理服务器推送的插件升级包包括:
如果所述集群管理服务器在推送插件升级包的过程中发生异常,切换至备份集群管理服务器继续接收剩余的插件升级包。
结合第二方面的第一种至第三种中任一种实施方式,在第二方面的第四种实施方式中,所述装置还包括:
注册模块,用于向所述集群管理服务器注册。
结合第二方面,在第二方面的第五种实施方式中,所述插件升级包运行模块包括:判断单元、提取单元以及运行单元,其中,
判断单元,用于判断所述插件升级包是否为多个,如果是,通知提取单元,如果不是,通知运行单元;
提取单元,用于依次提取多个插件升级包中的一插件升级包,输出至运行单元;
运行单元,用于关闭提取的插件升级包所属插件对应的消息管道,运行接收的所述插件升级包。
本发明实施例提供的一种升级插件的方法及装置,通过集群管理客户端确定需要对应用程序中的插件进行升级,通过预先构建的所述插件对应的消息管道获取对应的插件升级包;集群管理客户端关闭所述插件对应的消息管道,运行所述插件升级包升级所述插件;集群管理客户端启动升级的所述插件,构建升级的所述插件对应的消息管道,能够提高应用程序在进行插件升级时的可用性,以解决现有的升级插件的方法中,对应用程序中的一插件进行升级时导致的应用程序的可用性不高的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明的实施例一升级插件的方法流程示意图;
图2为本发明的实施例二升级插件的装置结构示意图;
图3为本发明的实施例三升级插件的逻辑架构示意图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。本发明实施例的技术方案应用于集群***,该集群***包括集群管理服务器和集群管理客户端。
图1为本发明的实施例一升级插件的方法流程示意图,如图1所示,本实施例的方法可以包括:
步骤101,集群管理客户端确定需要对应用程序中的插件进行升级,通过预先构建的所述插件对应的消息管道获取对应的插件升级包,其中,应用程序中的每一插件均对应一消息管道;
本实施例中,对于同一应用程序中的各插件,在每一插件运行时,为每一运行的插件构建一消息管道。每一插件,通过对应的消息管道向外提供该插件的业务。这样,相对于现有同一应用程序中的各插件通过统一的消息管道向外提供相应业务,使得在一插件进行升级时,需要关闭该统一的消息管道,从而导致需要中断该应用程序中的其他插件向外提供业务。
本实施例中,作为一可选实施例,确定需要对应用程序中的插件进行升级,通过预先构建的所述插件对应的消息管道获取对应的插件升级包包括:
A11,利用预先构建的插件对应的消息管道,向集群管理服务器发送插件升级请求,所述插件升级请求中包含有所述插件所属的应用程序标识以及所述插件的版本标识;
本实施例中,作为一可选实施例,每一插件升级请求对应一插件的升级,插件升级请求中还可以包含发送插件升级请求的集群管理客户端标识,应用程序标识为集群管理客户端中安装的应用程序的标识。
本实施例中,作为一可选实施例,也可以在同一插件升级请求中,包含有各应用程序标识以及每一应用程序标识下的各插件的版本标识,并利用预先构建的任一插件对应的消息管道传输所述插件升级请求。例如,利用空闲插件或负载较轻的插件对应的消息管道传输该插件升级请求,后续应用中,还可以利用该消息管道传输插件的升级包,本实施例对此不作限定。
本实施例中,作为一可选实施例,版本标识包括但不限于:版本号、版本名称、版本的信息摘要算法MD5值、版本的安全哈希算法SHA1值中的一种或其任意组合。
A12,利用所述预先构建的插件对应的消息管道,接收所述集群管理服务器推送的插件升级包,所述插件升级包为所述集群管理服务器比对所述插件升级请求中包含的信息以及存储的插件升级库得到的。
本实施例中,作为一可选实施例,接收所述集群管理服务器推送的插件升级包包括:
如果所述集群管理服务器在推送插件升级包的过程中发生异常,切换至备份集群管理服务器以使集群管理客户端继续接收剩余的插件升级包。
本发明的一种实施方式中,为了提升插件升级包传输的可靠性,设置一主集群管理服务器以及一台或多台备份集群管理服务器,集群存储服务器、主集群管理服务器与备份集群管理服务器组成集群***,以保证一集群管理服务器在异常情况下,其他的集群管理服务器能够即时接管发生异常的集群管理服务器,从而保证对外提供的业务(服务)的正常运行。其中,作为一可选实施例,集群管理服务器中包含有一个或多个功能单元,例如,包含插件管理服务器,即插件管理服务器作为集群管理服务器中的一进程;集群存储服务器包含有一个或多个功能单元,例如,包含有集群管理客户端,即集群管理客户端作为集群存储服务器中的一进程。
本实施例中,作为一可选实施例,所述集群管理服务器比对所述插件升级请求中包含的信息以及存储的插件升级库包括:
查询所述存储的插件升级库,获取与所述插件所属的应用程序标识相同的应用程序标识;
提取所述相同的应用程序标识下的所述插件的版本标识相对应的最新版本标识;
比较所述最新版本标识是否高于所述插件的版本标识。
本实施例中,如果所述最新版本标识高于所述插件的版本标识,表明需要对该插件进行升级,则将最新版本标识对应的插件升级包进行推送;如果所述最新版本标识不高于所述插件的版本标识,表明无需对该插件进行升级,则不作处理。
本实施例中,作为另一可选实施例,在接收所述集群管理服务器推送的插件升级包之前,该方法还可以包括:
接收集群管理服务器返回的比对结果,依据所述比对结果选取需要升级的插件信息并上报至集群管理服务器。
本实施例中,作为另一可选实施例,确定需要对应用程序中的插件进行升级,通过预先构建的所述插件对应的消息管道获取对应的插件升级包包括:
A21,接收集群管理服务器推送的插件升级请求,选取需要升级的插件,将所述插件所属的应用程序标识以及所述插件的版本标识封装在插件升级请求响应中,发送至所述集群管理服务器;
本实施例中,集群管理客户端在接收到推送的插件升级请求后,可以有条件地选取需要升级的插件。
A22,接收所述集群管理服务器推送的插件升级包,所述插件升级包为所述集群管理服务器比对所述插件升级请求响应中包含的信息以及存储的插件升级库得到的。
本实施例中,作为一可选实施例,在所述确定需要对应用程序中的插件进行升级之前,该方法还包括:
向所述集群管理服务器注册。
本实施例中,可以通过集群管理服务器,对多个集群管理客户端中安装的各应用程序的插件进行统一的管理,便于进行插件集群自动升级以提升升级效率。
本实施例中,集群管理客户端在启动运行后,主动向集群管理服务器注册,集群管理服务器将集群管理客户端加入到集群管理列表中后,集群管理客户端就可以通过构建的消息管道实时与集群管理服务器通信。集群管理服务器在检测到集群管理客户端中的插件需要更新时,主动通知集群管理客户端进行插件更新。
步骤102,集群管理客户端关闭所述插件对应的消息管道,运行所述插件升级包升级所述插件;
本实施例中,作为一可选实施例,关闭所述插件对应的消息管道,运行所述插件的升级包升级所述插件包括:
如果所述插件升级包为多个,依次提取其中的一插件升级包,关闭提取的插件升级包所属插件对应的消息管道,运行提取的所述插件升级包。
本实施例中,插件更新升级采用依次进行的方式,一次升级只对集群中的一应用程序中的一插件进行更新升级,并在该插件更新升级之前或同时,关闭该插件对应的消息管道,使该插件不能提供业务。这样,由于无需关闭应用程序中其他插件对应的消息管道,使得其他插件能够继续提供业务,从而使得一个插件的升级不会影响其他插件的业务。
本实施例中,采用一次升级一插件的方式,在该插件更新升级完成后,再对应用程序中的其他插件或另一应用程序中的插件进行更新升级,可以尽可能减少应用程序向外提供业务的影响。
本实施例中,作为另一可选实施例,关闭所述插件对应的消息管道,运行所述插件的升级包升级所述插件包括:
如果所述插件升级包为多个,同时关闭多个插件升级包分别所属插件对应的消息管道,并行运行所述多个插件升级包。
本实施例中,通过并行方式升级插件,可以实现只在较短时间内对应用程序向外提供业务造成影响。
步骤103,集群管理客户端启动升级的所述插件,构建升级的所述插件对应的消息管道。
本实施例中,作为一可选实施例,启动升级的所述插件,构建升级的所述插件对应的消息管道包括:
如果所述插件升级包为多个,在监测到提取的所述插件升级包运行完毕后,启动升级的所述插件,构建升级的所述插件对应的消息管道,然后再执行依次提取其中的一插件升级包的步骤。
本实施例中,对于插件升级,在升级一插件后,可以及时建升级的插件对应的消息管道,使之能够及时向外提供业务。当然,实际应用中,也可以在所有插件升级完成后,再依次构建升级的所述插件对应的消息管道。
本实施例中,作为另一可选实施例,启动升级的所述插件,构建升级的所述插件对应的消息管道包括:
如果所述插件升级包为多个,在监测到所有的插件升级包运行完毕后,依次启动升级的所述插件,构建升级的所述插件对应的消息管道。
本实施例的升级插件的方法,通过集群管理客户端确定需要对应用程序中的插件进行升级,通过预先构建的所述插件对应的消息管道获取对应的插件升级包;集群管理客户端关闭所述插件对应的消息管道,运行所述插件升级包升级所述插件;集群管理客户端启动升级的所述插件,构建升级的所述插件对应的消息管道。这样,在进行插件升级时,集群管理客户端从集群管理服务器中下载最新的插件升级包,下载完成后,通知集群管理客户端中相应应用程序升级插件,应用程序停止该插件相应的业务,准备就绪后,通知集群管理客户端对该插件进行更新升级,更新升级完成后,集群管理客户端再通知应用程序开启相应的服务。在需要对多个插件进行升级时,通过依次对应用程序中的各插件进行更新升级,可以保证在更新升级时,其他的应用程序或该应用程序中的其他插件还可以提供服务,从而使得集群管理客户端提供的业务不会完全中断,相对于现有人工逐一升级插件时,需要停止集群管理客户端中对应应用程序的全部业务,使得对于业务的处理能力的影响降到最小,提高了应用程序在进行插件升级时的可用性。尤其相对于大型***升级,本实施例中,在进行插件升级时,所有的升级过程都是在后台自动执行的,在插件升级过程中,只会影响与升级插件密切相关的业务,而不会停止所有的业务,可以保证应用程序其他插件的业务正常运行。
图2为本发明的实施例二升级插件的装置结构示意图。如图2所示,本实施例的装置可以包括:插件升级包获取模块21、插件升级包运行模块22以及消息管道构建模块23,其中,
插件升级包获取模块21,用于确定需要对应用程序中的插件进行升级,通过预先构建的所述插件对应的消息管道获取对应的插件升级包;
本实施例中,对于应用程序中的各插件,在每一插件运行时,为每一运行的插件构建一消息管道。每一插件通过对应的消息管道向外提供该插件的业务。
本实施例中,作为一可选实施例,插件升级包获取模块21包括:升级请求单元以及插件升级包获取单元(图中未示出),其中,
升级请求单元,用于利用预先构建的插件对应的消息管道,向集群管理服务器发送插件升级请求,所述插件升级请求中包含有所述插件所属的应用程序标识以及所述插件的版本标识;
本实施例中,作为一可选实施例,也可以在同一插件升级请求中,包含有各应用程序标识以及每一应用程序标识下的各插件的版本标识,并利用预先构建的任一插件对应的消息管道传输所述插件升级请求。例如,利用空闲插件或负载较轻的插件对应的消息管道传输该插件升级请求,后续应用中,还可以利用该消息管道传输插件的升级包,本实施例对此不作限定。
本实施例中,作为一可选实施例,版本标识包括但不限于:版本号、版本名称、版本的信息摘要算法MD5值、版本的安全哈希算法SHA1值中的一种或其任意组合。
插件升级包获取单元,利用所述预先构建的插件对应的消息管道,接收所述集群管理服务器推送的插件升级包,所述插件升级包为所述集群管理服务器比对所述插件升级请求中包含的信息以及存储的插件升级库得到的。
本实施例中,在插件升级请求中,也可以只包含有应用程序标识,表明该应用程序还未安装有任何插件,集群管理服务器在接收到该插件升级请求时,如果应用程序标识对应的应用程序有多个插件升级包,则可以将该多个插件升级包推送至集群管理客户端进行安装。
本实施例中,作为一可选实施例,插件升级包获取单元在接收所述集群管理服务器推送的插件升级包之前,还用于接收集群管理服务器返回的比对结果,依据所述比对结果选取需要升级的插件信息并上报至集群管理服务器。
本实施例中,作为一可选实施例,所述集群管理服务器比对所述插件升级请求中包含的信息以及存储的插件升级库包括:
查询所述存储的插件升级库,获取与所述插件所属的应用程序标识相同的应用程序标识;
提取所述相同的应用程序标识下的所述插件的版本标识相对应的最新版本标识;
比较所述最新版本标识是否高于所述插件的版本标识。
本实施例中,作为一可选实施例,所述接收所述集群管理服务器推送的插件升级包包括:
如果所述集群管理服务器在推送插件升级包的过程中发生异常,切换至备份集群管理服务器继续接收剩余的插件升级包。
本实施例中,为了提升插件升级包传输的可靠性,设置一主集群管理服务器以及一台或多台备份集群管理服务器,主集群管理服务器与备份集群管理服务器组成集群,以保证一集群管理服务器在异常情况下,其他的集群管理服务器能够即时接管发生异常的集群管理服务器,从而保证对外提供的业务(服务)的正常运行。
本实施例中,作为另一可选实施例,插件升级包获取模块21包括:升级请求接收单元以及插件升级包接收单元(图中未示出),其中,
升级请求接收单元,用于接收集群管理服务器推送的插件升级请求,选取需要升级的插件,将所述插件所属的应用程序标识以及所述插件的版本标识封装在插件升级请求响应中,发送至所述集群管理服务器,其中,应用程序中的每一插件均对应一消息管道;
插件升级包接收单元,用于接收所述集群管理服务器推送的插件升级包,所述插件升级包为所述集群管理服务器比对所述插件升级请求响应中包含的信息以及存储的插件升级库得到的。
插件升级包运行模块22,用于关闭所述插件对应的消息管道,运行所述插件升级包升级所述插件;
本实施例中,作为一可选实施例,插件升级包运行模块22包括:判断单元、提取单元以及运行单元(图中未示出),其中,
判断单元,用于判断所述插件升级包是否为多个,如果是,通知提取单元,如果不是,通知运行单元;
提取单元,用于依次提取多个插件升级包中的一插件升级包,输出至运行单元;
运行单元,用于关闭提取的插件升级包所属插件对应的消息管道,运行接收的所述插件升级包。
本实施例中,作为另一可选实施例,关闭所述插件对应的消息管道,运行所述插件的升级包升级所述插件包括:
如果所述插件升级包为多个,同时关闭多个插件升级包分别所属插件对应的消息管道,并行运行所述多个插件升级包。
消息管道构建模块23,用于启动升级的所述插件,构建升级的所述插件对应的消息管道。
本实施例中,作为一可选实施例,启动升级的所述插件,构建升级的所述插件对应的消息管道包括:
如果所述插件升级包为多个,在监测到提取的所述插件升级包运行完毕后,启动升级的所述插件,构建升级的所述插件对应的消息管道,然后再执行依次提取其中的一插件升级包的步骤。
本实施例中,对于插件升级,在升级一插件后,可以及时建升级的插件对应的消息管道,使之能够及时向外提供业务。当然,实际应用中,也可以在所有插件升级完成后,再依次构建升级的所述插件对应的消息管道。
本实施例中,作为另一可选实施例,启动升级的所述插件,构建升级的所述插件对应的消息管道包括:
如果所述插件升级包为多个,在监测到所有的插件升级包运行完毕后,依次启动升级的所述插件,构建升级的所述插件对应的消息管道。
本实施例中,作为一可选实施例,该装置还包括:
注册模块(图中未示出),用于向所述集群管理服务器注册。
本实施例中,可以通过集群管理服务器,对多个集群管理客户端中安装的各应用程序的插件进行统一的管理,便于进行插件集群自动升级以提升升级效率。
本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图3为本发明的实施例三升级插件的逻辑架构示意图,如图3所示,本实施例中,插件管理客户端(集群存储服务器的一进程)在启动运行后,主动向插件管理服务器(master),即集群管理服务器的一进程,例如,主插件管理服务器注册,插件管理服务器将插件管理客户端加入到集群管理列表中后,插件管理客户端就可以通过构建的消息管道实时与插件管理服务器通信。插件管理服务器在检测到插件管理客户端应用程序中的插件需要更新时,主动通知插件管理客户端进行插件更新,当插件管理服务器(master)发生异常时,由其中的一插件管理服务器(slave),即备份插件管理服务器接管。
本实施例中,例如,集群包含三个插件管理客户端,分别为a、b、c,对a的应用程序A和B分别进行插件升级时,不会关闭插件管理客户端a的应用程序A和B,插件管理客户端a的应用程序A和B可以对位继续提供服务,只会暂停应用程序A和B待升级插件对应的业务,应用程序A和B的插件升级完成后,应用程序A和B对应的升级插件可以正常提供业务,在整个应用程序A和B进行插件升级的过程中,插件管理客户端a中安装的应用程序C、D,以及,应用程序A和B中未升级插件不会受到影响,一直提供相应的业务。
本实施例中,所有插件对应的业务采用模块化设计,每一业务对应一模块,各模块之间相互独立,业务之间的交互通过消息管道实现,在升级某一插件时,只需关闭该插件对应的消息管道,因而,只会影响与该插件相关的业务,不会影响与该插件不相关的其他插件提供的业务,从而避免插件升级时对于无关业务的影响。使得对集群中的多个应用程序进行插件升级的同时,不中断集群对外提供的服务,整个集群平稳的进行升级,同时集群中的插件升级能够自动化的进行,不需要人工的干预。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行***、装置或设备(如基于计算机的***、包括处理器的***或其他可以从指令执行***、装置或设备取指令并执行指令的***)使用,或结合这些指令执行***、装置或设备而使用。就本说明书而言,″计算机可读介质″可以是任何可以包含、存储、通信、传播或传输程序以供指令执行***、装置或设备或结合这些指令执行***、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。
在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种升级插件的方法,其特征在于,包括:
集群管理客户端确定需要对应用程序中的插件进行升级,通过预先构建的所述插件对应的消息管道获取对应的插件升级包,其中,所述应用程序中的每一插件均对应一消息管道;每一插件,通过对应的消息管道向外提供该插件的业务;
集群管理客户端关闭所述插件对应的消息管道,运行所述插件升级包升级所述插件;
集群管理客户端启动升级的所述插件,并构建升级的所述插件对应的消息管道;
其中,所述确定需要对应用程序中的插件进行升级,通过预先构建的所述插件对应的消息管道获取对应的插件升级包包括:
利用预先构建的插件对应的消息管道,向集群管理服务器发送插件升级请求,所述插件升级请求中包含有所述插件所属的应用程序标识以及所述插件的版本标识;在同一所述插件升级请求中,包含有多个应用程序标识以及每一应用程序标识下的各插件的版本标识,并利用预先构建的任一所述插件对应的消息管道传输所述插件升级请求;
利用所述预先构建的插件对应的消息管道,接收所述集群管理服务器推送的插件升级包,所述插件升级包为所述集群管理服务器比对所述插件升级请求中包含的信息以及存储的插件升级库得到的。
2.根据权利要求1所述的升级插件的方法,其特征在于,所述集群管理服务器比对所述插件升级请求中包含的信息以及存储的插件升级库包括:
查询所述存储的插件升级库,获取与所述插件所属的应用程序标识相同的应用程序标识;
提取所述相同的应用程序标识下的所述插件的版本标识相对应的最新版本标识;
比较所述最新版本标识是否高于所述插件的版本标识。
3.根据权利要求1所述的升级插件的方法,其特征在于,所述接收所述集群管理服务器推送的插件升级包包括:
如果所述集群管理服务器在推送插件升级包的过程中发生异常,切换至备份集群管理服务器继续接收剩余的插件升级包。
4.根据权利要求1至3任一项所述的升级插件的方法,其特征在于,在所述确定需要对应用程序中的插件进行升级之前,所述方法还包括:
向所述集群管理服务器注册。
5.根据权利要求1所述的升级插件的方法,其特征在于,所述关闭所述插件对应的消息管道,运行所述插件的升级包升级所述插件包括:
如果所述插件升级包为多个,依次提取其中的一插件升级包,关闭提取的插件升级包所属插件对应的消息管道,运行提取的所述插件升级包。
6.一种升级插件的装置,其特征在于,包括:插件升级包获取模块、插件升级包运行模块以及消息管道构建模块,其中,
插件升级包获取模块,用于确定需要对应用程序中的插件进行升级,通过预先构建的所述插件对应的消息管道获取对应的插件升级包,其中,所述应用程序中的每一插件均对应一消息管道;每一插件,通过对应的消息管道向外提供该插件的业务;
插件升级包运行模块,用于关闭所述插件对应的消息管道,运行所述插件升级包升级所述插件;
消息管道构建模块,用于启动升级的所述插件,并构建升级的所述插件对应的消息管道;
所述插件升级包获取模块包括:升级请求单元以及插件升级包获取单元,其中,
升级请求单元,用于利用预先构建的插件对应的消息管道,向集群管理服务器发送插件升级请求,所述插件升级请求中包含有所述插件所属的应用程序标识以及所述插件的版本标识;在同一所述插件升级请求中,包含有多个应用程序标识以及每一应用程序标识下的各插件的版本标识,并利用预先构建的任一所述插件对应的消息管道传输所述插件升级请求;
插件升级包获取单元,利用所述预先构建的插件对应的消息管道,接收所述集群管理服务器推送的插件升级包,所述插件升级包为所述集群管理服务器比对所述插件升级请求中包含的信息以及存储的插件升级库得到的。
7.根据权利要求6所述的升级插件的装置,其特征在于,所述集群管理服务器比对所述插件升级请求中包含的信息以及存储的插件升级库包括:
查询所述存储的插件升级库,获取与所述插件所属的应用程序标识相同的应用程序标识;
提取所述相同的应用程序标识下的所述插件的版本标识相对应的最新版本标识;
比较所述最新版本标识是否高于所述插件的版本标识。
8.根据权利要求6所述的升级插件的装置,其特征在于,所述接收所述集群管理服务器推送的插件升级包包括:
如果所述集群管理服务器在推送插件升级包的过程中发生异常,切换至备份集群管理服务器继续接收剩余的插件升级包。
9.根据权利要求6至8任一项所述的升级插件的装置,其特征在于,所述装置还包括:
注册模块,用于向所述集群管理服务器注册。
10.根据权利要求6所述的升级插件的装置,其特征在于,所述插件升级包运行模块包括:判断单元、提取单元以及运行单元,其中,
判断单元,用于判断所述插件升级包是否为多个,如果是,通知提取单元,如果不是,通知运行单元;
提取单元,用于依次提取多个插件升级包中的一插件升级包,输出至运行单元;
运行单元,用于关闭提取的插件升级包所属插件对应的消息管道,运行接收的所述插件升级包。
CN201611114552.0A 2016-12-07 2016-12-07 一种升级插件的方法及装置 Active CN108170488B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611114552.0A CN108170488B (zh) 2016-12-07 2016-12-07 一种升级插件的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611114552.0A CN108170488B (zh) 2016-12-07 2016-12-07 一种升级插件的方法及装置

Publications (2)

Publication Number Publication Date
CN108170488A CN108170488A (zh) 2018-06-15
CN108170488B true CN108170488B (zh) 2021-11-26

Family

ID=62526421

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611114552.0A Active CN108170488B (zh) 2016-12-07 2016-12-07 一种升级插件的方法及装置

Country Status (1)

Country Link
CN (1) CN108170488B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109460251B (zh) * 2018-09-03 2022-04-01 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) 构件集成框架管理方法和装置
CN109445824B (zh) * 2018-11-08 2022-03-01 国网河北省电力有限公司电力科学研究院 一种测控装置的更新方法、***及终端设备
CN115150270A (zh) * 2022-06-22 2022-10-04 北京天融信网络安全技术有限公司 设备监控项的管理方法、待升级设备及监控服务器

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1859125A (zh) * 2006-03-31 2006-11-08 华为技术有限公司 集中远程自动升级软件的***及其方法
CN102789389A (zh) * 2012-08-01 2012-11-21 深圳市茁壮网络股份有限公司 一种插件版本检测及升级的方法、插件检测器
CN103297479A (zh) * 2012-03-05 2013-09-11 腾讯科技(深圳)有限公司 一种插件升级的分布式检测方法及装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739263A (zh) * 2008-11-11 2010-06-16 英业达股份有限公司 在多机集群***中实现操作***升级的方法及装置
US20110289419A1 (en) * 2010-05-18 2011-11-24 Yu Chi Sum Sam Browser integration for a content system
CN101895851B (zh) * 2010-06-30 2012-12-26 卓望数码技术(深圳)有限公司 一种插件式无线增值业务平台及其管理方法
CN102411508B (zh) * 2011-10-27 2014-06-18 深圳市茁壮网络股份有限公司 插件管理方法、插件控制器及插件管理器和机顶盒
CN103888550A (zh) * 2014-04-22 2014-06-25 北京搜狐新媒体信息技术有限公司 一种基于服务器集群***的插件部署方法、装置和***
CN104216738A (zh) * 2014-08-20 2014-12-17 北京奇艺世纪科技有限公司 一种应用程序的运行方法及装置
CN106162219B (zh) * 2015-04-21 2019-08-16 杭州海康威视***技术有限公司 视频云存储方法及***
CN105867963A (zh) * 2015-12-14 2016-08-17 乐视云计算有限公司 应用程序更新方法及装置
CN105700927B (zh) * 2016-01-15 2019-04-23 青岛海信移动通信技术股份有限公司 版本升级方法、终端设备及版本服务器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1859125A (zh) * 2006-03-31 2006-11-08 华为技术有限公司 集中远程自动升级软件的***及其方法
CN103297479A (zh) * 2012-03-05 2013-09-11 腾讯科技(深圳)有限公司 一种插件升级的分布式检测方法及装置
CN102789389A (zh) * 2012-08-01 2012-11-21 深圳市茁壮网络股份有限公司 一种插件版本检测及升级的方法、插件检测器

Also Published As

Publication number Publication date
CN108170488A (zh) 2018-06-15

Similar Documents

Publication Publication Date Title
CN108566290B (zh) 服务配置管理方法、***、存储介质和服务器
CN107346252B (zh) 应用更新方法和装置
CN108595221B (zh) PaaS平台的插件加载方法、装置、服务器及存储介质
CN109995866B (zh) 分布式文件校验方法、装置、计算机装置及存储介质
CN108170488B (zh) 一种升级插件的方法及装置
CN105653329A (zh) 一种应用管理的方法、装置及***
FR3017725A1 (fr) Procede de deploiement d'un ensemble d'application (s) logicielle (s)
US11544052B2 (en) Tenant declarative deployments with release staggering
CN112398673A (zh) 一种升级方法、通信设备以及计算机可读存储介质
US11615189B2 (en) Update of gateway in substation
CN112994955A (zh) 升级包发送管理方法、增量升级包制备方法及相关装置
CN112905230B (zh) 应用程序的管理方法、装置、终端设备和存储介质
US20170230713A1 (en) Set Top Box Upgrade Method and Apparatus
CN113434180B (zh) 应用的数据处理方法、装置、服务器和存储介质
CN109376072B (zh) 基于第三方组件库的应用程序开发方法和装置
CN112925648B (zh) 业务策略的发布方法和装置
CN110045969A (zh) 应用程序安装方法、服务器、***、设备及存储介质
CN111082964B (zh) 一种配置信息的分发方法和装置
CN111090442B (zh) 一种应用更新方法、装置和存储介质
CN116009984A (zh) 安全编排与自动化响应处理方法、装置及电子设备
CN106713464B (zh) 一种企业服务总线的服务管理方法及装置
CN113596123A (zh) 软件下载方法、通信设备及存储介质
CN110445628B (zh) 基于nginx的服务器及其部署、监控的方法和装置
CN113760712A (zh) 一种测试评估方法和装置
CN115695529B (zh) 智能化远程运维方法、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant