CN111679850B - 应用程序热更新处理方法、装置及系统 - Google Patents

应用程序热更新处理方法、装置及系统 Download PDF

Info

Publication number
CN111679850B
CN111679850B CN201910181463.5A CN201910181463A CN111679850B CN 111679850 B CN111679850 B CN 111679850B CN 201910181463 A CN201910181463 A CN 201910181463A CN 111679850 B CN111679850 B CN 111679850B
Authority
CN
China
Prior art keywords
application program
resource
information
target
client
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
CN201910181463.5A
Other languages
English (en)
Other versions
CN111679850A (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201910181463.5A priority Critical patent/CN111679850B/zh
Publication of CN111679850A publication Critical patent/CN111679850A/zh
Application granted granted Critical
Publication of CN111679850B publication Critical patent/CN111679850B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例公开了应用程序热更新处理方法、装置及系统,所述系统包括:控制中心服务端,用于为应用程序创建资源空间对象,提供资源空间对象的标识以及版本信息,所述资源空间对象中包括同一更新任务对应的至少一个资源体对象;检查更新服务端,用于引入到网关服务端中,获得所述资源空间对象的可用版本信息,以及相关的网络存储地址信息;所述网关服务为位于应用程序客户端与应用程序服务端之间;检查更新客户端,用于引入到目标应用程序客户端中,对所述目标应用程序客户端中产生的目标请求进行拦截,并在其中添加与检查更新相关的参数信息。通过本申请实施例,能够提高定向热更新的准确度以及及时性,避免造成大量的资源浪费。

Description

应用程序热更新处理方法、装置及系统
技术领域
本申请涉及应用程序热更新技术领域,特别是涉及应用程序热更新处理方法、装置及系统。
背景技术
在热更新技术出现之前,一个已经上线的移动端应用程序(app)中如果出现了bug,即使是一个非常小的bug,不及时更新的话有可能存在风险,若要及时更新就需要将app重新打包发布到应用市场后,让用户再一次下载,这样就大大降低了用户体验。当热更新出现之后,这样的问题就不再是问题了。所谓“热更新”,是指在应用中动态下发代码,它可以让开发者在不发布新版本的状态下修复技术缺陷或增添功能,在用户打开应用时会自动提醒并下载升级,下载完成后软件会自动安装。“热更新”不需要通过应用商店软件版本更新审核,因此有很多开发者选择利用此方式修改技术缺陷,实现快速迭代。
在移动端资源变更体系里,随着一个app的发展,会出现变更资源的定向发布的情况,某应用程序提供两份资源,分别为资源A和资源B,其中,资源A只给App版本为7.1的设备,而其他版本的设备使用资源B。具体的条件设置还可能包括操作系统、机型、品牌等等。
为了达到上述目的,现有技术中常用的方案大致有两种,一种是由服务端向客户端进行资源的定向推送,另一种是由客户端主动向服务端请求具体的资源数据。而对于第一种方式而言,就涉及到服务端对终端设备进行圈选的问题,也就,服务端推送是根据设备ID投放的,在投放的时候已经决定了推送给哪些设备,如果在设备收到资源之前条件发生了变化,那么这个设备会错过或误收这个资源。例如,推送资源A给所有appVersion=7.0的设备,某个设备X在推送任务产生时版本是6.9,因此,没有被服务端纳入到圈选范围,此时,即使该设备X后续经过应用市场更新到7.0,也是收不到这个资源的。
对于第二种方式而言,由于资源的更新通常对及时性要求比较高,因此,为了能够及时获得更新,客户端需要频繁地周期性访问服务端,而服务端就需要开对应的线程来处理这种请求,在客户端的装机量非常大,一些大型促销活动等同时在线量非常大等情况下,服务端需要开启的线程数量也是非常大的,对服务端的性能要求很高,容易造成系统崩溃。另外,有些资源可能的更新频度可能并不高,但是为了保证更新的及时性,客户端又不得不以高的频率对服务端进行访问,以此造成了大量的资源浪费。
因此,如何提高定向热更新的准确度以及及时性,避免造成大量的资源浪费,成为需要本领域技术人员解决的技术问题。
发明内容
本申请提供了应用程序热更新处理方法、装置及系统,能够提高定向热更新的准确度以及及时性,避免造成大量的资源浪费。
本申请提供了如下方案:
一种应用程序热更新处理系统,包括:
控制中心服务端,用于为应用程序创建资源空间对象,提供资源空间对象的标识以及版本信息,所述资源空间对象中包括同一更新任务对应的至少一个资源体对象,所述资源体对象对应有条件描述信息;
检查更新服务端,用于引入到网关服务端中,获得所述资源空间对象的可用版本信息,以及相关的网络存储地址信息;所述网关服务为位于应用程序客户端与应用程序服务端之间;
检查更新客户端,用于引入到目标应用程序客户端中,对所述目标应用程序客户端中产生的目标请求进行拦截,并在其中添加与检查更新相关的参数信息;
所述检查更新服务端还用于,在根据所述目标请求中携带的参数信息,确定出所述目标应用程序客户端需要资源更新后,对所述应用程序服务端返回的响应消息进行拦截,并在其中添加可用版本资源空间对象相关的网络存储地址信息;
所述检查更新客户端还用于,根据所述网络存储地址信息下载获得可用版本资源空间对象,从中确定与当前所在运行环境相匹配的目标条件描述信息,并通过该目标条件描述信息对应的资源体对象对所述目标应用程序客户端进行更新。
一种应用程序热更新处理方法,包括:
控制中心服务端根据为指定应用程序创建资源空间对象的请求,创建资源空间对象,并提供资源空间对象的标识以及版本信息;
接收为所述资源空间对象配置的资源体对象信息,其中,所述资源空间对象中包括同一更新任务对应的至少一个资源体对象,所述资源体对象对应有条件描述信息;
将所述资源空间对象的可用版本信息以及相关的网络存储地址信息提供给检查更新服务端,所述检查更新服务端用于引入到网关服务端中,所述网关服务端位于应用程序客户端与应用程序服务端之间,所述应用程序客户端中引入检查更新客户端,用于通过在应用程序客户端产生的目标请求消息中添加与检查更新相关的参数信息的方式获得所述获得所述可用版本资源空间对象,并利用与本地运行环境相匹配的目标条件描述信息对应的资源体对象进行更新。
一种应用程序热更新处理方法,包括:
检查更新服务端获得资源空间对象的可用版本信息,以及相关的网络存储地址信息,所述资源空间对象是由控制中心服务端创建的,与待更新的应用程序相对应,其中包括同一更新任务对应的至少一个资源体对象,所述资源体对象对应有条件描述信息;
接收到目标应用程序客户端中提供的目标请求消息,所述目标请求消息中包括与检查更新相关的参数信息,所述参数信息是由所述目标应用程序客户端中引入的检查更新客户端拦截所述目标请求后进行添加的;
根据所述参数信息以及所述目标应用程序关联的资源空间对象的可用版本信息,判断所述目标应用程序是否需要进行资源更新;
如果需要,则对所述应用程序服务端针对所述目标请求返回的响应消息进行拦截,并在其中添加可用版本资源空间对象相关的网络存储地址信息,以便所述检查更新客户端对可用版本的资源空间对象进行下载,并利用与本地运行环境相匹配的目标条件描述信息对应的资源体对象进行更新。
一种应用程序热更新处理方法,包括:
检查更新客户端对关联的目标应用程序客户端中产生的目标请求消息进行拦截,并在所述请求消息中添加与检查更新相关的参数信息,以便部署在网关服务端中的检查更新服务端通过判断所述参数确定出所述目标应用程序需要更新时,对所述应用程序服务端返回的响应消息进行拦截,并在其中添加可用版本资源的网络存储地址信息;所述资源空间对象是由控制中心服务端创建的,与待更新的应用程序相对应,其中包括同一更新任务对应的至少一个资源体对象,所述资源体对象对应有条件描述信息;
通过所述网络存储地址信息下载所述可用版本的资源空间对象信息;
根据所述资源空间对象中包括的资源体对象以及条件描述信息,确定与当前所在运行环境相匹配的目标条件描述信息,并通过该目标条件描述信息对应的资源体对象对所述目标应用程序客户端进行更新。
一种应用程序热更新处理装置,应用于控制中心服务端,包括:
创建单元,用于根据为指定应用程序创建资源空间对象的请求,创建资源空间对象,并提供资源空间对象的标识以及版本信息;
配置信息接收单元,用于接收为所述资源空间对象配置的资源体对象信息,其中,所述资源空间对象中包括同一更新任务对应的至少一个资源体对象,所述资源体对象对应有条件描述信息;
信息提供单元,用于将所述资源空间对象的可用版本信息以及相关的网络存储地址信息提供给检查更新服务端,所述检查更新服务端用于引入到网关服务端中,所述网关服务端位于应用程序客户端与应用程序服务端之间,所述应用程序客户端中引入检查更新客户端,用于通过在应用程序客户端产生的目标请求消息中添加与检查更新相关的参数信息的方式获得所述获得所述可用版本资源空间对象,并利用与本地运行环境相匹配的目标条件描述信息对应的资源体对象进行更新。
一种应用程序热更新处理装置,应用于检查更新服务端,包括:
信息获得单元,用于获得资源空间对象的可用版本信息,以及相关的网络存储地址信息,所述资源空间对象是由控制中心服务端创建的,与待更新的应用程序相对应,其中包括同一更新任务对应的至少一个资源体对象,所述资源体对象对应有条件描述信息;
请求接收单元,用于接收到目标应用程序客户端中提供的目标请求消息,所述目标请求消息中包括与检查更新相关的参数信息,所述参数信息是由所述目标应用程序客户端中引入的检查更新客户端拦截所述目标请求后进行添加的;
判断单元,用于根据所述参数信息以及所述目标应用程序关联的资源空间对象的可用版本信息,判断所述目标应用程序是否需要进行资源更新;
响应消息处理单元,用于如果需要,则对所述应用程序服务端针对所述目标请求返回的响应消息进行拦截,并在其中添加可用版本资源空间对象相关的网络存储地址信息,以便所述检查更新客户端对可用版本的资源空间对象进行下载,并利用与本地运行环境相匹配的目标条件描述信息对应的资源体对象进行更新。
一种应用程序热更新处理装置,应用于检查更新客户端,包括:
请求消息处理单元,用于对关联的目标应用程序客户端中产生的目标请求消息进行拦截,并在所述请求消息中添加与检查更新相关的参数信息,以便部署在网关服务端中的检查更新服务端通过判断所述参数确定出所述目标应用程序需要更新时,对所述应用程序服务端返回的响应消息进行拦截,并在其中添加可用版本资源的网络存储地址信息;所述资源空间对象是由控制中心服务端创建的,与待更新的应用程序相对应,其中包括同一更新任务对应的至少一个资源体对象,所述资源体对象对应有条件描述信息;
信息下载单元,用于通过所述网络存储地址信息下载所述可用版本的资源空间对象信息;
更新单元,用于根据所述资源空间对象中包括的资源体对象以及条件描述信息,确定与当前所在运行环境相匹配的目标条件描述信息,并通过该目标条件描述信息对应的资源体对象对所述目标应用程序客户端进行更新。
一种计算机系统,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
根据为指定应用程序创建资源空间对象的请求,创建资源空间对象,并提供资源空间对象的标识以及版本信息;
接收为所述资源空间对象配置的资源体对象信息,其中,所述资源空间对象中包括同一更新任务对应的至少一个资源体对象,所述资源体对象对应有条件描述信息;
将所述资源空间对象的可用版本信息以及相关的网络存储地址信息提供给检查更新服务端,所述检查更新服务端用于引入到网关服务端中,所述网关服务端位于应用程序客户端与应用程序服务端之间,所述应用程序客户端中引入检查更新客户端,用于通过在应用程序客户端产生的目标请求消息中添加与检查更新相关的参数信息的方式获得所述获得所述可用版本资源空间对象,并利用与本地运行环境相匹配的目标条件描述信息对应的资源体对象进行更新。
根据本申请提供的具体实施例,本申请公开了以下技术效果:
通过本申请实施例,可以通过控制中心服务端对具体应用程序中需要更新的资源进行配置,通过资源空间对象以及资源体对象的方式进行管理,并且可以为资源空间对象提供标识信息以及版本信息,为同一资源空间对象中不同资源体对象配置各自的条件描述信息。另外,还可以提供检查更新服务端,可以引入到网关服务端中,并获得所述资源空间对象的可用版本信息,以及相关的网络存储地址信息。再者,还可以为具体的应用程序客户端提供更新检查客户端,通过这种更新检查客户端可以对所述目标应用程序客户端中产生的目标请求进行拦截,并在所述目标请求的消息头中添加与检查更新相关的参数信息,由检查更新服务端判断最新的资源空间对象版本是否与该当前应用程序客户端上一次更新时使用的资源空间对象版本一致,如果不一致,则可以对所述应用程序服务端针对所述目标请求返回的响应消息进行拦截,并在其中添加可用版本资源空间对象相关的网络存储地址信息,由检查更新客户端对最新的资源空间对象进行下载,并解析出其中的资源体对象以及条件描述信息,然后,根据当前所在运行环境与各资源体对象以及条件描述信息的匹配结果,确定出具体可用的资源体对象,并进行更新即可。也就是说,可以由应用程序客户端在需要时,进行检查更新请求,并且可以将同一次更新任务中的多个不同条件描述对应的资源全部下载到本地,在应用程序客户端对具体条件描述进行匹配判断,从而可以提高定向热更新的准确度以及及时性,避免造成大量的资源浪费。另外,由于可以通过对目标应用程序中产生的请求消息进行拦截并添加参数的方式,由网关服务端中引入的检查更新服务端将具体可用版本资源空间对象的网络地址消息添加到响应消息中,并提供给检查更新客户端,这样可以避免单独为检查更新发起专用的请求,通过“搭车”模式进一步降低对应用程序业务流程的影响。
当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的系统的示意图;
图2是本申请实施例提供的资源表达方式示意图;
图3是本申请实施例提供的快照表达方式示意图;
图4是本申请实施例提供的另一系统架构示意图;
图5是本申请实施例提供的第一方法的流程图;
图6是本申请实施例提供的第二方法的流程图;
图7是本申请实施例提供的第三方法的流程图;
图8是本申请实施例提供的第一装置的示意图;
图9是本申请实施例提供的第二装置的示意图;
图10是本申请实施例提供的第三装置的示意图;
图11是本申请实施例提供的计算机系统的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
在本申请实施例中,可以提供一控制中心服务端,其面向的用户具体可以为应用程序的开发者,或者,在一个应用程序中包括多个模块的情况下,还可以是应用程序中具体模块的开发者,等等。在应用程序或者其中的模块需要更新时,可以通过该控制中心服务端进行配置。配置的过程中,可以提供资源空间对象以及资源体对象的概念,其中,同一更新任务中的多个不同资源体对象可以关联同一资源空间对象,分别对应不同的条件描述信息。而具体配置的资源可以由应用程序客户端或者其中的模块进行拉取,这种拉取动作不需要周期性的频繁执行,而是可以提供检查更新客户端以及检查更新服务端,检查更新客户端可以引入到应用程序客户端中,在应用程序客户端正常与其服务端进行交互的过程中,可以对客户端提交的请求进行拦截,并在其中添加与检查更新相关的参数,包括应用程序的标识、上一次更新使用的版本信息等。检查更新服务端则可以引入到网关服务端中。由于应用程序客户端与应用程序服务端之间的请求以及响应消息,都会通过网关服务端进行中转,因此,可以通过该网关服务端中引入的检查更新服务端对请求中的参数进行判断,在需要更新的情况下,再向响应消息中添加具体资源的网络存储地址等信息,使得检查更新客户端可以对资源控件对象进行下载,并对各个资源体对象的条件描述信息进行判断,当前所在运行环境符合其中哪个资源体对象的条件,则可以使用哪个资源体对象对应用程序客户端进行更新。这样,一方面可以满足对定向更新的准确性要求,另一方面,由于是在应用程序客户端与应用程序服务端正常交互的过程中,对资源空间对象进行下载,因此,也可以保证更新的及时性,且不需要额外发起独立的请求,实现了“搭车”模式下的资源更新。
下面对具体的实现方案进行详细介绍。
实施例一
首先该实施例一提供了一种应用程序热更新系统,参见图1,该系统具体可以包括:
控制中心服务端101,用于为应用程序创建资源空间对象,提供资源空间对象的标识以及版本信息,所述资源空间对象中包括同一更新任务对应的至少一个资源体对象,所述资源体对象对应有条件描述信息;
检查更新服务端102,用于引入到网关服务端中,获得所述资源空间对象的可用版本信息,以及相关的网络存储地址信息;所述网关服务为位于应用程序客户端与应用程序服务端之间;
检查更新客户端103,用于引入到目标应用程序客户端中,对所述目标应用程序客户端中产生的目标请求进行拦截,并在所述目标请求消息中添加与检查更新相关的参数信息;
所述检查更新服务端102还用于,在根据所述目标请求中携带的参数信息,确定出所述目标应用程序客户端需要资源更新后,对所述应用程序服务端返回的响应消息进行拦截,并在其中添加可用版本资源空间对象相关的网络存储地址信息;
所述检查更新客户端103还用于,根据所述网络存储地址信息下载获得可用版本资源空间对象,从中确定与当前所在运行环境相匹配的目标条件描述信息,并通过该目标条件描述信息对应的资源体对象对所述目标应用程序客户端进行更新。
具体的,如图2所示,控制中心服务端101可以为具体的应用程序创建资源空间对象(在本申请实施例中可以称为“pod”),同一个资源空间对象中可以包括一个或者多个资源体对象(在本申请实施例中可以称为“pea”),每个资源体对象可以对应各自的条件描述信息。
其中,为了进行条件描述,在具体实现时,还可以提供表达式设计规范。例如,在一种具体实现方式下,具体的表达式设计规范可以包括:
ANY:匹配任何;
NONE:任何不匹配;
常规表达式格式:{key}[{opr}{value}];
多个表达式的连接:&key的取值和类型;
key的类型枚举:
os_ver:系统版本,版本类型,例如,os_ver=11.1;
did_hash:deviceId做hash并指定模,取模类型,例如,did_hash=100_0-49;
m_brand:品牌,字符串,例如,m_brand=apple;
m_model:机型,字符串,例如,m_model=M16;
m_vendor:厂商字符串,例如,m_vendor=meizu;
app_ver:客户端版本版本类型,例如,app_ver>7.0。
另外还可以对具体的大于、等于、小于等关系表达进行设计,等等。
具体如,某应用程序中某模块的开发者为了解决该模块中存在的一个bug,提供了相关的需要更新的资源,并且,对于不同应用程序版本而言,具体所使用的资源是不同的,例如,版本8.1以上需要使用资源A进行更新,版本8.1以下需要使用资源B进行更新。此时,该应用程序开发者便可以通过本申请实施例中的控制中心服务端创建具体的pod,并在该pod中创建两个pea,对应的条件描述信息分别为:客户端版本类型app_ver>=8.1,以及客户端版本类型app_ver<8.1。
控制中心服务端可以为具体创建的pod提供标识信息,以便在具体的应用程序客户端中对该pod进行订阅。具体创建的pod可能还会发生变化,例如,对于上述例子中的情况,在经过一段时间之后发现,需要向该pod中增加新的pea,或者,需要对之前的某个pea进行修改,等等。因此,还可以为pod提供版本信息。
另外,同一个应用程序客户端中可能会包括多个模块,每个模块都可能分别具有各自需要更新的资源,因此,同一个应用程序还可能会包括多个不同的pod。在具体实现时,为了方便对具体的pod进行更新管理,还可以以应用程序为单位,对同一应用程序关联的多个pod进行打包生成具体的快照。例如,如图3所示,某应用程序客户端包括N个模块,每个模块对应一个pod,每个pod中包括多个pea,此时,可以将N个pod打包成该应用程序对应的快照。另外,还可以提供快照的版本信息,在同一应用程序关联的任意一个pod发生变动时(增加新的pod,或者在原有pod中增加新的pea,或者,将原有pod中的某个pea的内容或条件描述进行修改,等等),都可以重新对该应用程序关联的全部pod重新进行打包,生成新的快照,并更新快照的版本。
其中,具体在对各个应用程序对应的快照进行保存是可以有多种方式,例如,一种方式下,可以将具体应用程序对应的快照发布到CDN(内容分发网络)中进行存储。CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
在提供了上述控制中心服务端的情况下,为了便于具体的应用程序客户端获得具体更新所需的资源信息,还可以提供检查更新服务端102,并且,在本申请实施例中,可以将该检查更新服务端引入到网关服务端中。检查更新服务端的作用具体可以是向具体的应用程序客户端透出所述控制中心服务端中生成的快照的版本以及网络存储地址等信息,以便应用程序客户端进行下载并更新。也就是说,可以用于获得所述应用程序对应的最新快照的版本信息,以及所述最新快照对应的网络存储地址信息。具体实现时,为了使得检查更新服务端能够获得上述信息,如图4所示,还可以为检查更新服务端提供第一SDK(软件开发工具包),该第一SDK的作用是可以向控制中心服务端订阅具体应用程序对应的快照信息,这样,在控制中心服务端每次生成新的快照后,都可以将最新快照的版本信息,以及具体对应的网络存储地址信息推送到检查更新服务端进行保存。其中,具体实现时,检查更新服务端可以采用探针技术对上述信息进行表达,例如,可以表达为<app标识,快照版本,快照url,校验码>四元组,这样可以起到节省存储空间等作用。
为了使得应用程序客户端能够获得具体需要更新的资源信息,而又不至于对基础的业务造成影响,本申请实施例还可以提供检查更新客户端103,该检查更新客户端103可以引入到目标应用程序客户端中。也就是说,对于通过前述控制中心服务端进行了更新资源配置的应用程序而言,可以在其客户端中引入本申请实施例中提供的检查更新客户端。该检查更新客户端的作用具体可以是对所述目标应用程序客户端中产生的目标请求进行拦截,并在所述目标请求消息中添加与检查更新相关的参数信息,具体的参数信息可以包括App标识,上一次更新时使用的快照的版本信息等。也就是说,在本申请实施例中,具体检查更新相关的参数是在应用程序客户端向应用程序服务端发送的日常请求中进行添加,这种日常请求本来也是要发送的,本申请实施例中将具体的参数添加到请求中,实现了“搭车”模式的资源信息获取。需要说明的是,在具体实现时,应用程序客户端与应用程序服务端之间的日常请求可能会有很多,本申请实施例中可以为每个请求都分别进行拦截并添加参数,或者,也可以有选择的进行拦截及参数添加,这里不进行限定。
在完成参数的添加后,应用程序客户端的请求会正常被提交到网关服务端,然后再由网关服务端选择具体的应用程序服务端,以用于对该请求进行响应。而在本申请实施例中,由于请求中添加了参数,并且可以在网关服务端引入检查更新服务端,因此,检查更新服务端在接收到具体的请求后,可以首先判断该App标识对应的最新快照的版本,与所述上一次更新时使用的快照的版本是否一致,如果不一致,则可以在接收到应用程序服务端返回的响应消息后,对该响应消息进行拦截,并在其中添加可用版本对应的网络存储地址信息。这样,检查更新客户端就可以从响应消息中获得可用版本快照的网络存储地址信息,并根据具体的网络存储地址对具体的快照进行下载,然后再进行解析,确定出其中包括的pod,以及每个pod中包括的ped列表,各个pea对应的条件描述信息等,进而可以通过将当前运行环境中的参数与各个pea对应的条件描述信息进行匹配,匹配成功的pea则可以用来对当前应用程序客户端进行更新。
其中,具体实现时,所述检查更新客户端103的具体实现形式可以有多种,例如,一种具体的方式下,该检查客户端103具体可以以SDK的形式存在。其中,对于应用程序中包括多个模块的情况,如图4所示,具体可以包括第二SDK以及第三SDK。其中,所述第二SDK用于引入到所述目标应用程序客户端的主进程中,可以对应用程序客户端中产生的请求进行拦截,并在所述请求中添加所述目标应用程序客户端关联的应用程序标识,以及上一次更新时使用的快照版本信息。
所述第三SDK具体可以用于引入到所述目标应用程序客户端中多个模块分别对应的子进程中,并且,可以向所述第二SDK订阅资源空间对象标识。也就是说,可以通过第二SDK对具体在控制中心服务端创建的pod的标识进行订阅,这种订阅关系信息可以保存在本地,后续第二SDK可以根据这种对应关系对应用程序客户端的各个模块进行回调,并将对应订阅的pod信息提供给第二SDK。例如,某应用程序客户端中包括模块A、模块B、模块C,可以分别对该应用程序对应的podA、podB、podC进行订阅。这里需要说明的是,由于具体的pod是由具体应用程序模块的开发者通过控制中心服务端进行创建的,因此,开发者可以获知具体pod的标识信息,进而,利用这种pod的标识信息,在应用程序客户端对应的模块代码中,利用第三SDK对具体的pod标识进行订阅即可。例如,模块A的开发者创建了podA,则可以在该模块A的代码中对该podA进行订阅,等等。
第二SDK在对应用程序客户端产生的请求进行了拦截,并在其请求头等处添加了应用程序的标识以及上一次更新时使用的快照的版本信息后,由于网关服务端引入的检查更新服务端中记录有各个应用程序对应的最新的快照的版本信息,以及存储地址信息,因此,如果快照的可用版本与所述上一次更新时使用的快照版本信息不同,则对应用程序服务端返回的响应消息进行拦截,并在其中添加所述快照对应的网络存储地址信息。也就是说,假设检查更新服务端发现某应用程序的最新快照的版本是1.3,而该应用程序客户端提交的请求中记录的上一次更新使用的快照的版本是1.2,则证明需要对该应用程序进行更新,因此,可以对应用程序服务端返回的响应消息进行拦截,并在其中添加可用版本快照对应的网络存储地址信息。
所述第二SDK在接收到具体的网络存储地址信息后,可以下载可用版本的快照并进行解析,获得其中包括的资源空间对象列表。之后,由于还记录有应用程序中的各模块对pod的订阅信息,因此,可以通过回调订阅各资源空间对象的应用程序模块,将所述资源空间对象信息提供给应用程序中的目标模块对应的第三SDK。相应的,所述第三SDK首先可以确定出当前接收到的pod的版本信息,其为该pod的可用版本,另外,第三SDK还可以对上一次更新时使用的pod版本进行记录,因此,可以将pod的可用版本与上一次更新时使用的pod版本进行比对。如果发现两种不同,则证明pod已经发生了更新,因此可以对该资源空间对象进行解析,获得其中包括的资源体对象列表,以及各自对应的条件描述信息。然后,可以将判断当前运行环境是否与某个pea对应的条件描述信息相匹配,如果与其中某个pea的条件描述信息匹配成功,则可以利用该pea对关联的应用程序模块进行更新。
总之,通过本申请实施例,可以通过控制中心服务端对具体应用程序中需要更新的资源进行配置,通过资源空间对象以及资源体对象的方式进行管理,并且可以为资源空间对象提供标识信息以及版本信息,为同一资源空间对象中不同资源体对象配置各自的条件描述信息。另外,还可以提供检查更新服务端,可以引入到网关服务端中,并获得所述资源空间对象的可用版本信息,以及相关的网络存储地址信息。再者,还可以为具体的应用程序客户端提供更新检查客户端,通过这种更新检查客户端可以对所述目标应用程序客户端中产生的目标请求进行拦截,并在所述目标请求的消息头中添加与检查更新相关的参数信息,由检查更新服务端判断最新的资源空间对象版本是否与该当前应用程序客户端上一次更新时使用的资源空间对象版本一致,如果不一致,则可以对所述应用程序服务端针对所述目标请求返回的响应消息进行拦截,并在其中添加可用版本资源空间对象相关的网络存储地址信息,由检查更新客户端对最新的资源空间对象进行下载,并解析出其中的资源体对象以及条件描述信息,然后,根据当前所在运行环境与各资源体对象以及条件描述信息的匹配结果,确定出具体可用的资源体对象,并进行更新即可。也就是说,可以由应用程序客户端在需要时,进行检查更新请求,并且可以将同一次更新任务中的多个不同条件描述对应的资源全部下载到本地,在应用程序客户端对具体条件描述进行匹配判断,从而可以提高定向热更新的准确度以及及时性,避免造成大量的资源浪费。另外,由于可以通过对目标应用程序中产生的请求消息进行拦截并添加参数的方式,由网关服务端中引入的检查更新服务端将具体可用版本资源空间对象的网络地址消息添加到响应消息中,并提供给检查更新客户端,这样可以避免单独为检查更新发起专用的请求,通过“搭车”模式进一步降低对应用程序业务流程的影响。
实施例二
该实施例二是与实施例一对应的,从控制中心服务端的角度,提供了一种应用程序热更新处理方法,参见图5,该方法具体可以包括:
S510:控制中心服务端根据为指定应用程序创建资源空间对象的请求,创建资源空间对象,并提供资源空间对象的标识以及版本信息;
S520:接收为所述资源空间对象配置的资源体对象信息,其中,所述资源空间对象中包括同一更新任务对应的至少一个资源体对象,所述资源体对象对应有条件描述信息;
S530:将所述资源空间对象的可用版本信息以及相关的网络存储地址信息提供给检查更新服务端,所述检查更新服务端用于引入到网关服务端中,所述网关服务端位于应用程序客户端与应用程序服务端之间,所述应用程序客户端中引入检查更新客户端,用于通过在应用程序客户端产生的目标请求消息中添加与检查更新相关的参数信息的方式获得所述获得所述可用版本资源空间对象,并利用与本地运行环境相匹配的目标条件描述信息对应的资源体对象进行更新。具体实现时,可以在应用程序客户端产生的目标请求消息中添加与检查更新相关的参数信息,所述检查更新服务端用于根据所述参数信息判断所述目标应用程序客户端是否需要进行资源更新,如果需要,则对所述应用程序服务端针对所述目标请求返回的响应消息进行拦截,并在其中添加可用版本资源空间对象相关的网络存储地址信息,以便所述检查更新客户端对可用版本的资源空间对象进行下载,并利用与本地运行环境相匹配的目标条件描述信息对应的资源体对象进行更新。
具体实现时,还可以将同一应用程序对应的至少一个资源空间对象进行打包生成应用程序对应的快照,并提供快照的版本信息;在其中一资源空间对象发生变化时,重新生成该应用程序对应的快照,并对版本信息进行更新;所述将所述资源空间对象的可用版本信息以及对应的网络存储地址信息提供给检查更新服务端,包括:将所述应用程序对应的最新快照的版本信息,以及所述最新快照对应的网络存储地址信息提供给检查更新服务端,以便所述应用程序客户端中引入的检查更新客户端以应用程序为单位对所述快照进行下载。
具体实现时,还可以将所述应用程序对应的快照发布到内容分发网络CDN中进行保存。
实施例三
该实施例三也是与实施例一对应的,从检查更新服务端的角度,提供了一种应用程序热更新处理方法,参见图6,该方法具体可以包括:
S610:检查更新服务端获得资源空间对象的可用版本信息,以及相关的网络存储地址信息,所述资源空间对象是由控制中心服务端创建的,与待更新的应用程序相对应,其中包括同一更新任务对应的至少一个资源体对象,所述资源体对象对应有条件描述信息;
S620:接收到目标应用程序客户端中提供的目标请求消息,所述目标请求消息中包括与检查更新相关的参数信息,所述参数信息是由所述目标应用程序客户端中引入的检查更新客户端拦截所述目标请求后进行添加的;
S630:根据所述参数信息以及所述目标应用程序关联的资源空间对象的可用版本信息,判断所述目标应用程序是否需要进行资源更新;
S640:如果需要,则对所述应用程序服务端针对所述目标请求返回的响应消息进行拦截,并在其中添加可用版本资源空间对象相关的网络存储地址信息,以便所述检查更新客户端对可用版本的资源空间对象进行下载,并利用与本地运行环境相匹配的目标条件描述信息对应的资源体对象进行更新。
具体实现时,可以获得所述应用程序对应的最新快照的版本信息,以及所述最新快照对应的网络存储地址信息,所述快照是通过将同一应用程序对应的至少一个资源空间对象进行打包生成,并在其中一资源空间对象发生变化时,重新生成该应用程序对应的快照,更新快照版本。具体在判断所述目标应用程序是否需要进行资源更新时,可以判断所述参数中携带的上一次更新时所使用的快照的版本信息,与所述目标应用程序的可用版本快照的版本信息是否一致,如果不一致,则确定所述目标应用程序需要进行资源更新。
具体实现时,可以通过第一软件开发工具包SDK对所述控制中心服务端的目标应用程序快照信息进行订阅,以便所述控制中心服务端在所订阅的应用程序对应的快照的版本更新时,将更新后的版本信息,以及对应的快照的网络存储地址信息推送到所述检查更新服务端。
其中,可以通过探针技术对所述应用程序的最新快照的版本信息,以及所述应用程序快照对应的网络存储地址信息进行表达。
实施例四
该实施例四也是与实施例一对应的,从检查更新客户端的角度,提供了一种应用程序热更新处理方法,参见图7,该方法具体可以包括:
S710:检查更新客户端对关联的目标应用程序客户端中产生的目标请求消息进行拦截,并在所述请求消息中添加与检查更新相关的参数信息,以便部署在网关服务端中的检查更新服务端通过判断所述参数确定出所述目标应用程序需要更新时,对所述应用程序服务端返回的响应消息进行拦截,并在其中添加可用版本资源的网络存储地址信息;所述资源空间对象是由控制中心服务端创建的,与待更新的应用程序相对应,其中包括同一更新任务对应的至少一个资源体对象,所述资源体对象对应有条件描述信息;
S720:通过所述网络存储地址信息下载所述可用版本的资源空间对象信息;
S730:根据所述资源空间对象中包括的资源体对象以及条件描述信息,确定与当前所在运行环境相匹配的目标条件描述信息,并通过该目标条件描述信息对应的资源体对象对所述目标应用程序客户端进行更新。
具体实现时,可以获得所述应用程序对应的最新快照的版本信息,以及所述最新快照对应的网络存储地址信息,所述快照是通过将同一应用程序对应的至少一个资源空间对象进行打包生成,并在其中一资源空间对象发生变化时,重新生成该应用程序对应的快照,更新快照版本;在获得具体快照对应的网络存储地址后,可以通过所述网络存储地址信息下载所述可用版本的快照的信息;然后,可以通过对所述快照进行解析,获得其中包括的资源空间对象信息集合,以及其中包括的资源体对象以及条件描述信息,确定与当前所在运行环境相匹配的目标条件描述信息,并通过该目标条件描述信息对应的资源体对象对所述目标应用程序客户端进行更新。
具体的,可以通过引入到所述目标应用程序客户端的主进程中的第二SDK,接收并保存引入到所述目标应用成客户端的模块子进程中的第三SDK对资源空间对象标识的订阅信息;通过所述第二SDK在所述目标应用程序客户端中产生的目标请求消息中添加与检查更新相关的参数信息,所述参数信息包括所述目标应用程序客户端关联的应用程序标识,以及上一次更新时使用的快照版本信息;通过所述第二SDK下载可用版本的快照并进行解析,获得其中包括的资源空间对象列表,并通过回调订阅各资源空间对象的应用程序模块,将所述资源空间对象信息提供给应用程序中的目标模块对应的第三SDK;通过所述第三SDK对所订阅的资源空间对象的可用版本与上一次更新时使用的资源空间对象版本进行判断,如果不同,则对该资源空间对象进行解析,获得其中包括的资源体对象列表,以及各自对应的条件描述信息,并确定与当前所在运行环境相匹配的目标条件描述信息,通过该目标条件描述信息对应的资源体对象对关联的应用程序模块进行更新。
关于前述实施例二至实施例四中的未详述部分,可以参见前述实施例一中的记载,这里不再赘述。
与实施例二相对应,本申请实施例还提供了一种应用程序热更新处理装置,参见图8,该装置应用于控制中心服务端,包括:
创建单元810,用于根据为指定应用程序创建资源空间对象的请求,创建资源空间对象,并提供资源空间对象的标识以及版本信息;
配置信息接收单元820,用于接收为所述资源空间对象配置的资源体对象信息,其中,所述资源空间对象中包括同一更新任务对应的至少一个资源体对象,所述资源体对象对应有条件描述信息;
信息提供单元830,用于将所述资源空间对象的可用版本信息以及相关的网络存储地址信息提供给检查更新服务端,所述检查更新服务端用于引入到网关服务端中,所述网关服务端位于应用程序客户端与应用程序服务端之间,所述应用程序客户端中引入检查更新客户端,用于通过在应用程序客户端产生的目标请求消息中添加与检查更新相关的参数信息的方式获得所述获得所述可用版本资源空间对象,并利用与本地运行环境相匹配的目标条件描述信息对应的资源体对象进行更新。
其中,该装置还可以包括:
快照生成单元,用于将同一应用程序对应的至少一个资源空间对象进行打包生成应用程序对应的快照,并提供快照的版本信息;
快照版本更新单元,用于在其中一资源空间对象发生变化时,重新生成该应用程序对应的快照,并对版本信息进行更新;
所述信息提供单元具体用于:
将所述应用程序对应的最新快照的版本信息,以及所述最新快照对应的网络存储地址信息提供给检查更新服务端,以便所述应用程序客户端中引入的检查更新客户端以应用程序为单位对所述快照进行下载。
另外,该装置还可以包括:
发布单元,用于将所述应用程序对应的快照发布到内容分发网络CDN中进行保存。
与实施例三相对应,本申请实施例还提供了一种应用程序热更新处理装置,参见图9,该装置应用于检查更新服务端,包括:
信息获得单元910,用于获得资源空间对象的可用版本信息,以及相关的网络存储地址信息,所述资源空间对象是由控制中心服务端创建的,与待更新的应用程序相对应,其中包括同一更新任务对应的至少一个资源体对象,所述资源体对象对应有条件描述信息;
请求接收单元920,用于接收到目标应用程序客户端中提供的目标请求消息,所述目标请求消息中包括与检查更新相关的参数信息,所述参数信息是由所述目标应用程序客户端中引入的检查更新客户端拦截所述目标请求后进行添加的;
判断单元930,用于根据所述参数信息以及所述目标应用程序关联的资源空间对象的可用版本信息,判断所述目标应用程序是否需要进行资源更新;
响应消息处理单元940,用于如果需要,则对所述应用程序服务端针对所述目标请求返回的响应消息进行拦截,并在其中添加可用版本资源空间对象相关的网络存储地址信息,以便所述检查更新客户端对可用版本的资源空间对象进行下载,并利用与本地运行环境相匹配的目标条件描述信息对应的资源体对象进行更新。
具体实现时,所述信息获得单元具体可以用于:
获得所述应用程序对应的最新快照的版本信息,以及所述最新快照对应的网络存储地址信息,所述快照是通过将同一应用程序对应的至少一个资源空间对象进行打包生成,并在其中一资源空间对象发生变化时,重新生成该应用程序对应的快照,更新快照版本;
所述判断单元具体可以用于:
判断所述参数中携带的上一次更新时所使用的快照的版本信息,与所述目标应用程序的可用版本快照的版本信息是否一致,如果不一致,则确定所述目标应用程序需要进行资源更新。
其中,所述信息获得单元具体可以用于:
通过第一软件开发工具包SDK对所述控制中心服务端的目标应用程序快照信息进行订阅,以便所述控制中心服务端在所订阅的应用程序对应的快照的版本更新时,将更新后的版本信息,以及对应的快照的网络存储地址信息推送到所述检查更新服务端。
其中,可以通过探针技术对所述应用程序的最新快照的版本信息,以及所述应用程序快照对应的网络存储地址信息进行表达。
与实施例四相对应,本申请实施例还提供了一种应用程序热更新处理装置,参见图10,该装置应用于检查更新客户端,包括:
请求消息处理单元1010,用于对关联的目标应用程序客户端中产生的目标请求消息进行拦截,并在所述请求消息中添加与检查更新相关的参数信息,以便部署在网关服务端中的检查更新服务端通过判断所述参数确定出所述目标应用程序需要更新时,对所述应用程序服务端返回的响应消息进行拦截,并在其中添加可用版本资源的网络存储地址信息;所述资源空间对象是由控制中心服务端创建的,与待更新的应用程序相对应,其中包括同一更新任务对应的至少一个资源体对象,所述资源体对象对应有条件描述信息;
信息下载单元1020,用于通过所述网络存储地址信息下载所述可用版本的资源空间对象信息;
更新单元1030,用于根据所述资源空间对象中包括的资源体对象以及条件描述信息,确定与当前所在运行环境相匹配的目标条件描述信息,并通过该目标条件描述信息对应的资源体对象对所述目标应用程序客户端进行更新。
其中,所述信息获得单元具体可以用于:获得所述应用程序对应的最新快照的版本信息,以及所述最新快照对应的网络存储地址信息,所述快照是通过将同一应用程序对应的至少一个资源空间对象进行打包生成,并在其中一资源空间对象发生变化时,重新生成该应用程序对应的快照,更新快照版本;
所述信息下载单元具体可以用于:
通过所述网络存储地址信息下载所述可用版本的快照的信息;
所述更新单元具体可以用于:
通过对所述快照进行解析,获得其中包括的资源空间对象信息集合,以及其中包括的资源体对象以及条件描述信息,确定与当前所在运行环境相匹配的目标条件描述信息,并通过该目标条件描述信息对应的资源体对象对所述目标应用程序客户端进行更新。
其中,所述信息获得单元具体可以包括:
订阅子单元,用于通过引入到所述目标应用程序客户端的主进程中的第二SDK,接收并保存引入到所述目标应用程序客户端的模块子进程中的第三SDK对资源空间对象标识的订阅信息;
添加子单元,用于通过所述第二SDK在所述目标应用程序客户端中产生的目标请求消息中添加与检查更新相关的参数信息,所述参数信息包括所述目标应用程序客户端关联的应用程序标识,以及上一次更新时使用的快照版本信息;
所述信息下载单元具体用于,通过所述第二SDK下载可用版本的快照并进行解析,获得其中包括的资源空间对象列表,并通过回调订阅各资源空间对象的应用程序模块,将所述资源空间对象信息提供给应用程序中的目标模块对应的第三SDK;
所述更新单元具体用于,通过所述第三SDK对所订阅的资源空间对象的可用版本与上一次更新时使用的资源空间对象版本进行判断,如果不同,则对该资源空间对象进行解析,获得其中包括的资源体对象列表,以及各自对应的条件描述信息,并确定与当前所在运行环境相匹配的目标条件描述信息,通过该目标条件描述信息对应的资源体对象对关联的应用程序模块进行更新。
另外,本申请实施例还提供了一种计算机系统,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
根据为指定应用程序创建资源空间对象的请求,创建资源空间对象,并提供资源空间对象的标识以及版本信息;
接收为所述资源空间对象配置的资源体对象信息,其中,所述资源空间对象中包括同一更新任务对应的至少一个资源体对象,所述资源体对象对应有条件描述信息;
将所述资源空间对象的可用版本信息以及相关的网络存储地址信息提供给检查更新服务端,所述检查更新服务端用于引入到网关服务端中,所述网关服务端位于应用程序客户端与应用程序服务端之间,所述应用程序客户端中引入检查更新客户端,用于通过在应用程序客户端产生的目标请求消息中添加与检查更新相关的参数信息的方式获得所述获得所述可用版本资源空间对象,并利用与本地运行环境相匹配的目标条件描述信息对应的资源体对象进行更新。
其中,图11示例性的展示出了计算机系统的架构,具体可以包括处理器1110,视频显示适配器1111,磁盘驱动器1112,输入/输出接口1113,网络接口1114,以及存储器1120。上述处理器1110、视频显示适配器1111、磁盘驱动器1112、输入/输出接口1113、网络接口1114,与存储器1120之间可以通过通信总线1130进行通信连接。
其中,处理器1110可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请所提供的技术方案。
存储器1120可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1120可以存储用于控制计算机系统1100运行的操作系统1121,用于控制计算机系统1100的低级别操作的基本输入输出系统(BIOS)。另外,还可以存储网页浏览器1123,数据存储管理系统1124,以及热更新处理系统1125等等。上述热更新处理系统1125就可以是本申请实施例中具体实现前述各步骤操作的应用程序。总之,在通过软件或者固件来实现本申请所提供的技术方案时,相关的程序代码保存在存储器1120中,并由处理器1110来调用执行。
输入/输出接口1113用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
网络接口1114用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1130包括一通路,在设备的各个组件(例如处理器1110、视频显示适配器1111、磁盘驱动器1112、输入/输出接口1113、网络接口1114,与存储器1120)之间传输信息。
另外,该计算机系统1100还可以从虚拟资源对象领取条件信息数据库1141中获得具体领取条件的信息,以用于进行条件判断,等等。
需要说明的是,尽管上述设备仅示出了处理器1110、视频显示适配器1111、磁盘驱动器1112、输入/输出接口1113、网络接口1114,存储器1120,总线1130等,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请方案所必需的组件,而不必包含图中所示的全部组件。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上对本申请所提供的应用程序热更新处理方法、装置及系统,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本申请的限制。

Claims (21)

1.一种应用程序热更新处理系统,其特征在于,包括:
控制中心服务端,用于为应用程序创建资源空间对象,提供资源空间对象的标识以及版本信息,所述资源空间对象中包括同一更新任务对应的至少一个资源体对象,所述资源体对象对应有条件描述信息;其中,所述条件描述信息用于对资源体对象适用的应用程序客户端和/或其运行环境的范围进行表达;
检查更新服务端,用于引入到网关服务端中,获得所述资源空间对象的可用版本信息,以及相关的网络存储地址信息;所述网关服务为位于应用程序客户端与应用程序服务端之间;
检查更新客户端,用于引入到目标应用程序客户端中,对所述目标应用程序客户端中产生的目标请求进行拦截,并在其中添加与检查更新相关的参数信息;其中,所述目标请求包括所述目标应用程序客户端与应用程序服务端进行交互的过程中产生的请求;
所述检查更新服务端还用于,在根据所述目标请求中携带的参数信息,确定出所述目标应用程序客户端需要资源更新后,对所述应用程序服务端返回的响应消息进行拦截,并在其中添加可用版本资源空间对象相关的网络存储地址信息;
所述检查更新客户端还用于,根据所述网络存储地址信息下载获得可用版本资源空间对象,从中确定与当前所在运行环境相匹配的目标条件描述信息,并通过该目标条件描述信息对应的资源体对象对所述目标应用程序客户端进行更新。
2.根据权利要求1所述的系统,其特征在于,
所述控制中心服务端还用于,将同一应用程序对应的至少一个资源空间对象进行打包生成应用程序对应的快照,并提供快照的版本信息,在其中一资源空间对象发生变化时,重新生成该应用程序对应的快照,并对版本信息进行更新;
所述检查更新服务端具体用于,获得所述应用程序对应的最新快照的版本信息,以及所述最新快照对应的网络存储地址信息;
所述检查更新客户端具体用于,获得可用版本快照的网络存储地址信息,并下载所述可用版本的快照,通过对所述快照进行解析,获得其中包括的资源空间对象信息集合,以及其中包括的资源体对象以及条件描述信息,确定与当前所在运行环境相匹配的目标条件描述信息,并通过该目标条件描述信息对应的资源体对象对所述目标应用程序客户端进行更新。
3.根据权利要求2所述的系统,其特征在于,
所述检查更新服务端具体用于,通过第一软件开发工具包SDK对所述控制中心服务端的目标应用程序快照信息进行订阅;
所述控制中心服务端还用于,在所订阅的应用程序对应的快照的版本更新时,将更新后的版本信息,以及对应的快照的网络存储地址信息推送到所述检查更新服务端。
4.根据权利要求2所述的系统,其特征在于,
所述检查更新客户端包括第二SDK以及第三SDK;
所述第二SDK用于引入到所述目标应用程序客户端的主进程中,向所述目标应用程序客户端产生的目标请求消息中添加与检查更新相关的参数,所述参数包括:所述目标应用程序客户端关联的应用程序标识,以及上一次更新时使用的快照版本信息;
所述第三SDK用于引入到所述目标应用程序客户端中多个模块分别对应的子进程中,用于向所述第二SDK订阅资源空间对象标识。
5.根据权利要求4所述的系统,其特征在于,
所述检查更新服务端还用于,若快照的可用版本与所述上一次更新时使用的快照版本信息不同,则对所述目标请求消息对应的响应消息进行拦截,并在其中添加对新版本快照对应的网络存储地址信息;
所述第二SDK还用于,根据所述网络存储地址信息下载可用版本的快照并进行解析,获得其中包括的资源空间对象列表,并通过回调订阅各资源空间对象的应用程序模块,将所述资源空间对象信息提供给应用程序中的目标模块对应的第三SDK;
所述第三SDK还用于,若所订阅的资源空间对象的可用版本与上一次更新时使用的资源空间对象版本不同,则对该资源空间对象进行解析,获得其中包括的资源体对象列表,以及各自对应的条件描述信息,并确定与当前所在运行环境相匹配的目标条件描述信息,通过该目标条件描述信息对应的资源体对象对关联的应用程序模块进行更新。
6.根据权利要求1至5任一项所述的系统,其特征在于,
所述控制中心服务端还用于,将所述应用程序对应的快照发布到内容分发网络CDN中进行保存。
7.根据权利要求1至5任一项所述的系统,其特征在于,
所述检查更新服务端具体用于,通过探针技术对所述应用程序的最新快照的版本信息,以及所述应用程序快照对应的网络存储地址信息进行表达。
8.一种应用程序热更新处理方法,其特征在于,包括:
控制中心服务端根据为指定应用程序创建资源空间对象的请求,创建资源空间对象,并提供资源空间对象的标识以及版本信息;
接收为所述资源空间对象配置的资源体对象信息,其中,所述资源空间对象中包括同一更新任务对应的至少一个资源体对象,所述资源体对象对应有条件描述信息;其中,其中,所述条件描述信息用于对资源体对象适用的应用程序客户端和/或其运行环境的范围进行表达;
将所述资源空间对象的可用版本信息以及相关的网络存储地址信息提供给检查更新服务端,所述检查更新服务端用于引入到网关服务端中,所述网关服务端位于应用程序客户端与应用程序服务端之间,所述应用程序客户端中引入检查更新客户端,用于通过在应用程序客户端产生的目标请求消息中添加与检查更新相关的参数信息的方式获得所述可用版本资源空间对象,并利用与本地运行环境相匹配的目标条件描述信息对应的资源体对象进行更新;其中,所述目标请求包括所述应用程序客户端与应用程序服务端进行交互的过程中产生的请求。
9.根据权利要求8所述的方法,其特征在于,还包括:
将同一应用程序对应的至少一个资源空间对象进行打包生成应用程序对应的快照,并提供快照的版本信息;
在其中一资源空间对象发生变化时,重新生成该应用程序对应的快照,并对版本信息进行更新;
所述将所述资源空间对象的可用版本信息以及对应的网络存储地址信息提供给检查更新服务端,包括:
将所述应用程序对应的最新快照的版本信息,以及所述最新快照对应的网络存储地址信息提供给检查更新服务端,以便所述应用程序客户端中引入的检查更新客户端以应用程序为单位对所述快照进行下载。
10.根据权利要求8所述的方法,其特征在于,还包括:
将所述应用程序对应的快照发布到内容分发网络CDN中进行保存。
11.一种应用程序热更新处理方法,其特征在于,包括:
检查更新服务端获得资源空间对象的可用版本信息,以及相关的网络存储地址信息,所述资源空间对象是由控制中心服务端创建的,与待更新的应用程序相对应,其中包括同一更新任务对应的至少一个资源体对象,所述资源体对象对应有条件描述信息;其中,其中,所述条件描述信息用于对资源体对象适用的应用程序客户端和/或其运行环境的范围进行表达;
接收到目标应用程序客户端中提供的目标请求消息,所述目标请求消息中包括与检查更新相关的参数信息,所述参数信息是由所述目标应用程序客户端中引入的检查更新客户端拦截所述目标请求后进行添加的;其中,所述目标请求包括所述目标应用程序客户端与目标应用程序服务端进行交互的过程中产生的请求;
根据所述参数信息以及所述目标应用程序关联的资源空间对象的可用版本信息,判断所述目标应用程序是否需要进行资源更新;
如果需要,则对所述目标应用程序服务端针对所述目标请求返回的响应消息进行拦截,并在其中添加可用版本资源空间对象相关的网络存储地址信息,以便所述检查更新客户端对可用版本的资源空间对象进行下载,并利用与本地运行环境相匹配的目标条件描述信息对应的资源体对象进行更新。
12.根据权利要求11所述的方法,其特征在于,
所述获得资源空间对象的可用版本信息,以及对应的网络存储地址信息,包括:
获得所述应用程序对应的最新快照的版本信息,以及所述最新快照对应的网络存储地址信息,所述快照是通过将同一应用程序对应的至少一个资源空间对象进行打包生成,并在其中一资源空间对象发生变化时,重新生成该应用程序对应的快照,更新快照版本;
所述判断所述目标应用程序是否需要进行资源更新,包括:
判断所述参数中携带的上一次更新时所使用的快照的版本信息,与所述目标应用程序的可用版本快照的版本信息是否一致,如果不一致,则确定所述目标应用程序需要进行资源更新。
13.根据权利要求12所述的方法,其特征在于,
所述获得所述应用程序对应的最新快照的版本信息,以及所述最新快照对应的网络存储地址信息,包括:
通过第一软件开发工具包SDK对所述控制中心服务端的目标应用程序快照信息进行订阅,以便所述控制中心服务端在所订阅的应用程序对应的快照的版本更新时,将更新后的版本信息,以及对应的快照的网络存储地址信息推送到所述检查更新服务端。
14.根据权利要求12所述的方法,其特征在于,
通过探针技术对所述应用程序的最新快照的版本信息,以及所述应用程序快照对应的网络存储地址信息进行表达。
15.一种应用程序热更新处理方法,其特征在于,包括:
检查更新客户端对关联的目标应用程序客户端中产生的目标请求消息进行拦截,并在所述目标请求消息中添加与检查更新相关的参数信息,以便部署在网关服务端中的检查更新服务端通过判断所述参数确定出所述目标应用程序需要更新时,对所述目标应用程序的服务端返回的响应消息进行拦截,并在其中添加可用版本资源的网络存储地址信息;
通过所述网络存储地址信息下载所述可用版本的资源空间对象信息;所述资源空间对象是由控制中心服务端创建的,与待更新的应用程序相对应,其中包括同一更新任务对应的至少一个资源体对象,所述资源体对象对应有条件描述信息;其中,所述目标请求包括所述目标应用程序客户端与目标应用程序服务端进行交互的过程中产生的请求;其中,其中,所述条件描述信息用于对资源体对象适用的应用程序客户端和/或其运行环境的范围进行表达;
根据所述资源空间对象中包括的资源体对象以及条件描述信息,确定与当前所在运行环境相匹配的目标条件描述信息,并通过该目标条件描述信息对应的资源体对象对所述目标应用程序客户端进行更新。
16.根据权利要求15所述的方法,其特征在于,
还包括:
获得所述应用程序对应的最新快照的版本信息,以及所述最新快照对应的网络存储地址信息,所述快照是通过将同一应用程序对应的至少一个资源空间对象进行打包生成,并在其中一资源空间对象发生变化时,重新生成该应用程序对应的快照,更新快照版本;
所述通过所述网络存储地址信息下载所述可用版本的资源空间对象信息,包括:
通过所述网络存储地址信息下载所述可用版本的快照的信息;
所述通过该目标条件描述信息对应的资源体对象对所述目标应用程序客户端进行更新,包括:
通过对所述快照进行解析,获得其中包括的资源空间对象信息集合,以及其中包括的资源体对象以及条件描述信息,确定与当前所在运行环境相匹配的目标条件描述信息,并通过该目标条件描述信息对应的资源体对象对所述目标应用程序客户端进行更新。
17.根据权利要求16所述的方法,其特征在于,
所述获得可用版本资源空间对象的网络存储地址信息,包括:
通过引入到所述目标应用程序客户端的主进程中的第二SDK,接收并保存引入到所述目标应用程序客户端的模块子进程中的第三SDK对资源空间对象标识的订阅信息;
通过所述第二SDK在所述目标应用程序客户端中产生的目标请求消息中添加与检查更新相关的参数信息,所述参数信息包括所述目标应用程序客户端关联的应用程序标识,以及上一次更新时使用的快照版本信息;
所述通过所述网络存储地址信息下载所述可用版本的快照的信息,包括:
通过所述第二SDK下载可用版本的快照并进行解析,获得其中包括的资源空间对象列表,并通过回调订阅各资源空间对象的应用程序模块,将所述资源空间对象信息提供给应用程序中的目标模块对应的第三SDK;
所述确定与当前所在运行环境相匹配的目标条件描述信息,包括:
通过所述第三SDK对所订阅的资源空间对象的可用版本与上一次更新时使用的资源空间对象版本进行判断,如果不同,则对该资源空间对象进行解析,获得其中包括的资源体对象列表,以及各自对应的条件描述信息,并确定与当前所在运行环境相匹配的目标条件描述信息,通过该目标条件描述信息对应的资源体对象对关联的应用程序模块进行更新。
18.一种应用程序热更新处理装置,其特征在于,应用于控制中心服务端,包括:
创建单元,用于根据为指定应用程序创建资源空间对象的请求,创建资源空间对象,并提供资源空间对象的标识以及版本信息;
配置信息接收单元,用于接收为所述资源空间对象配置的资源体对象信息,其中,所述资源空间对象中包括同一更新任务对应的至少一个资源体对象,所述资源体对象对应有条件描述信息;其中,其中,所述条件描述信息用于对资源体对象适用的应用程序客户端和/或其运行环境的范围进行表达;
信息提供单元,用于将所述资源空间对象的可用版本信息以及相关的网络存储地址信息提供给检查更新服务端,所述检查更新服务端用于引入到网关服务端中,所述网关服务端位于应用程序客户端与应用程序服务端之间,所述应用程序客户端中引入检查更新客户端,用于通过在应用程序客户端产生的目标请求消息中添加与检查更新相关的参数信息的方式获得所述可用版本资源空间对象,并利用与本地运行环境相匹配的目标条件描述信息对应的资源体对象进行更新;其中,所述目标请求包括所述应用程序客户端与应用程序服务端进行交互的过程中产生的请求。
19.一种应用程序热更新处理装置,其特征在于,应用于检查更新服务端,包括:
信息获得单元,用于获得资源空间对象的可用版本信息,以及相关的网络存储地址信息,所述资源空间对象是由控制中心服务端创建的,与待更新的应用程序相对应,其中包括同一更新任务对应的至少一个资源体对象,所述资源体对象对应有条件描述信息;其中,其中,所述条件描述信息用于对资源体对象适用的应用程序客户端和/或其运行环境的范围进行表达;
请求接收单元,用于接收到目标应用程序客户端中提供的目标请求消息,所述目标请求消息中包括与检查更新相关的参数信息,所述参数信息是由所述目标应用程序客户端中引入的检查更新客户端拦截所述目标请求后进行添加的;其中,所述目标请求包括所述目标应用程序客户端与目标应用程序服务端进行交互的过程中产生的请求;
判断单元,用于根据所述参数信息以及所述目标应用程序关联的资源空间对象的可用版本信息,判断所述目标应用程序是否需要进行资源更新;
响应消息处理单元,用于如果需要,则对所述目标应用程序服务端针对所述目标请求返回的响应消息进行拦截,并在其中添加可用版本资源空间对象相关的网络存储地址信息,以便所述检查更新客户端对可用版本的资源空间对象进行下载,并利用与本地运行环境相匹配的目标条件描述信息对应的资源体对象进行更新。
20.一种应用程序热更新处理装置,其特征在于,应用于检查更新客户端,包括:
请求消息处理单元,用于对关联的目标应用程序客户端中产生的目标请求消息进行拦截,并在所述目标请求消息中添加与检查更新相关的参数信息,以便部署在网关服务端中的检查更新服务端通过判断所述参数确定出所述目标应用程序需要更新时,对所述目标应用程序的服务端返回的响应消息进行拦截,并在其中添加可用版本资源的网络存储地址信息;
信息下载单元,用于通过所述网络存储地址信息下载所述可用版本的资源空间对象信息;所述资源空间对象是由控制中心服务端创建的,与待更新的应用程序相对应,其中包括同一更新任务对应的至少一个资源体对象,所述资源体对象对应有条件描述信息;其中,所述目标请求包括所述目标应用程序客户端与目标应用程序服务端进行交互的过程中产生的请求;其中,其中,所述条件描述信息用于对资源体对象适用的应用程序客户端和/或其运行环境的范围进行表达;
更新单元,用于根据所述资源空间对象中包括的资源体对象以及条件描述信息,确定与当前所在运行环境相匹配的目标条件描述信息,并通过该目标条件描述信息对应的资源体对象对所述目标应用程序客户端进行更新。
21.一种计算机系统,其特征在于,包括:
一个或多个处理器;以及
与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
根据为指定应用程序创建资源空间对象的请求,创建资源空间对象,并提供资源空间对象的标识以及版本信息;
接收为所述资源空间对象配置的资源体对象信息,其中,所述资源空间对象中包括同一更新任务对应的至少一个资源体对象,所述资源体对象对应有条件描述信息;其中,其中,所述条件描述信息用于对资源体对象适用的应用程序客户端和/或其运行环境的范围进行表达;
将所述资源空间对象的可用版本信息以及相关的网络存储地址信息提供给检查更新服务端,所述检查更新服务端用于引入到网关服务端中,所述网关服务端位于应用程序客户端与应用程序服务端之间,所述应用程序客户端中引入检查更新客户端,用于通过在应用程序客户端产生的目标请求消息中添加与检查更新相关的参数信息的方式获得所述可用版本资源空间对象,并利用与本地运行环境相匹配的目标条件描述信息对应的资源体对象进行更新;其中,所述目标请求包括所述应用程序客户端与应用程序服务端进行交互的过程中产生的请求。
CN201910181463.5A 2019-03-11 2019-03-11 应用程序热更新处理方法、装置及系统 Active CN111679850B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910181463.5A CN111679850B (zh) 2019-03-11 2019-03-11 应用程序热更新处理方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910181463.5A CN111679850B (zh) 2019-03-11 2019-03-11 应用程序热更新处理方法、装置及系统

Publications (2)

Publication Number Publication Date
CN111679850A CN111679850A (zh) 2020-09-18
CN111679850B true CN111679850B (zh) 2023-06-02

Family

ID=72451219

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910181463.5A Active CN111679850B (zh) 2019-03-11 2019-03-11 应用程序热更新处理方法、装置及系统

Country Status (1)

Country Link
CN (1) CN111679850B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112860300A (zh) * 2020-12-31 2021-05-28 中国工商银行股份有限公司 分布式sdk热更新处理方法、应用服务器集群

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106686073A (zh) * 2016-12-19 2017-05-17 北京东方车云信息技术有限公司 一种信息处理方法及系统
CN106933625A (zh) * 2017-02-23 2017-07-07 湖北光谷天下传媒股份有限公司 一种多源软件更新的方法及系统
CN107608689A (zh) * 2017-08-07 2018-01-19 阿里巴巴集团控股有限公司 客户端上应用程序的更新方法、装置及电子设备
CN108845816A (zh) * 2018-06-22 2018-11-20 平安科技(深圳)有限公司 应用程序更新方法、系统、计算机设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7822840B2 (en) * 2007-10-23 2010-10-26 International Business Machines Corporation Method and apparatus for dynamic web service client application update

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106686073A (zh) * 2016-12-19 2017-05-17 北京东方车云信息技术有限公司 一种信息处理方法及系统
CN106933625A (zh) * 2017-02-23 2017-07-07 湖北光谷天下传媒股份有限公司 一种多源软件更新的方法及系统
CN107608689A (zh) * 2017-08-07 2018-01-19 阿里巴巴集团控股有限公司 客户端上应用程序的更新方法、装置及电子设备
WO2019029457A1 (zh) * 2017-08-07 2019-02-14 阿里巴巴集团控股有限公司 客户端上应用程序的更新方法、装置及电子设备
CN108845816A (zh) * 2018-06-22 2018-11-20 平安科技(深圳)有限公司 应用程序更新方法、系统、计算机设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
杨沙洲 ; 杨学军 ; .语义相关的中粒度动态更新技术研究.计算机科学.2006,(05),全文. *

Also Published As

Publication number Publication date
CN111679850A (zh) 2020-09-18

Similar Documents

Publication Publication Date Title
AU2016359508B2 (en) Page jumping method and apparatus
CN108551487B (zh) PaaS平台的应用部署方法、装置、服务器及存储介质
RU2673403C2 (ru) Способ доступа к веб-узлам, устройство и система веб-узла
US10613853B2 (en) Updating software components through online stores
WO2018103521A1 (zh) 服务器的监控方法、装置和存储介质
US10404568B2 (en) Agent manager for distributed transaction monitoring system
CN104079673A (zh) 一种应用下载中防止dns劫持的方法、装置和系统
CN109144559B (zh) 一种更新数据包的推送方法及服务器
KR20140001172A (ko) 애플리케이션을 업데이트하는 방법
WO2021051747A1 (zh) 数据更新方法、系统、装置、电子设备及计算机存储介质
RU2010128545A (ru) Планирование управления мобильным устройством
CN106339273A (zh) 一种应用程序修复方法、终端及服务器
CN111679842B (zh) 应用程序热更新处理方法、装置及系统
CN109885332A (zh) 画质芯片软件升级方法、装置、显示设备及存储介质
CN113434230A (zh) H5页面的跳转控制方法、装置、存储介质及电子装置
CN111752577B (zh) 一种系统版本的升级方法及设备
CN110113391B (zh) 一种客户端上线方法、装置及一种客户端运行方法、装置
CN111679850B (zh) 应用程序热更新处理方法、装置及系统
CN109831779B (zh) 一种升级包下载方法、装置、服务器、终端及系统
CN107547591A (zh) 升级服务器、机顶盒、机顶盒升级文件下发方法及系统
US9729404B2 (en) Quality of service monitoring device and method of monitoring quality of service
US8615751B2 (en) Seeding product information
CN112511595B (zh) 一种消息推送方法及消息服务系统
CN109343880A (zh) 一种rn包更新方法、装置及可读存储介质
KR20150109720A (ko) 프로그램 일괄배포방법 및 이를 이용하는 서버-클라이언트 시스템

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