CN112114856A - 一种热更新方法及装置 - Google Patents
一种热更新方法及装置 Download PDFInfo
- Publication number
- CN112114856A CN112114856A CN202010968672.7A CN202010968672A CN112114856A CN 112114856 A CN112114856 A CN 112114856A CN 202010968672 A CN202010968672 A CN 202010968672A CN 112114856 A CN112114856 A CN 112114856A
- Authority
- CN
- China
- Prior art keywords
- data
- application program
- server
- configuration data
- terminal
- 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
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000003860 storage Methods 0.000 claims abstract description 78
- 230000015654 memory Effects 0.000 claims description 19
- 238000012545 processing Methods 0.000 claims description 13
- 230000001360 synchronised effect Effects 0.000 abstract description 10
- 238000011161 development Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000009434 installation Methods 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
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
- G06F8/658—Incremental updates; Differential updates
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)
Abstract
本公开关于一种热更新方法及装置,涉及热更新的技术领域,能够及时更新最新配置数据,同时减轻存储压力,提升用户满意度。具体方案包括:获取第一数据以及应用程序线上最新配置数据;其中,第一数据用于指示终端当前运行的应用程序的数据包的版本号;从平台服务器获取第一数据包的配置数据;其中,第一数据包为第一数据对应的应用程序的数据包,平台服务器用于存储所属系统中每一应用程序的数据包以及数据包的配置数据;确定第一数据包的配置数据和应用程序线上最新配置数据之间的差异数据;将差异数据同步至终端。
Description
技术领域
本公开涉及热更新的技术领域,尤其涉及一种热更新方法及装置。
背景技术
热更新技术是一种快速、低成本修复或更新应用程序(Application,简称App)的方式。
现有技术中,终端在打开应用程序时,从平台服务器下载热更新文件,并根据下载到的热更新文件完成热更新。平台服务器中的更新文件是从开发服务器获取到的,而开发服务器的更新文件会不定时增加,这样会出现平台服务器中的更新文件和开发服务器的最新更新文件不一致的情况,从而造成终端应用程序的热更新时延过久。
同时,当终端进行版本更新时,需要从平台服务器中获取到最新版本的数据包,最新版本的数据包与上一个版本的数据包中具有数据重复的部分,而重复的部分将再次被存储,从而造成存储资源的浪费。
发明内容
本公开提供一种热更新方法及装置,以实现热更新技术并解决现有技术的缺陷,避免终端应用程序热更新的不及时。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种热更新方法,应用于服务器,包括:
获取第一数据以及应用程序线上最新配置数据;其中,第一数据用于指示终端当前运行的应用程序的数据包的版本号;
从平台服务器获取第一数据包的配置数据;其中,第一数据包为第一数据对应的应用程序的数据包,平台服务器用于存储所属系统中每一应用程序的数据包以及数据包的配置数据;
确定第一数据包的配置数据和应用程序线上最新配置数据之间的差异数据;
将差异数据同步至终端。
可选的,通过第一存储设备获取第一数据;其中,第一数据为终端存储在第一存储设备。
可选的,通过线上服务器获取应用程序线上最新配置数据;其中,线上服务器为终端当前运行的应用程序的数据包的源端设备。
可选的,确定第一数据包的配置数据和应用程序线上最新配置数据之间的差异数据,包括:
对应用程序线上最新配置数据中的每个元素执行下述第一操作,以确定差异数据;
第一操作为:若应用程序线上最新配置数据中第一元素的数值与第一数据包的配置数据中第一元素的数值不同,或者,第一数据包的配置数据未包括第一元素,则确定差异数据包括应用程序线上最新配置数据中第一元素的数值;第一元素为应用程序线上最新配置数据中任一个元素。
根据本公开实施例的第二方面,提供一种热更新方法,用于终端,方法包括:
在启动当前版本的应用程序情况下,与服务器通信,以获取差异数据;其中,差异数据是通过当前版本的第一数据包的配置数据和应用程序线上最新配置数据确定出的;
解析差异数据,根据差异数据和当前版本的应用程序的数据包完成热更新。
可选的,在启动当前应用程序的情况下,与服务器通信之后,还包括:
向服务器发送同步请求。
根据本公开实施例的第三方面,一种热更新装置,用于服务器,装置包括:
获取模块,被配置为获取第一数据、应用程序线上最新配置数据和第一数据包的配置数据;其中,第一数据用于指示终端当前运行的应用程序的数据包的版本号;第一数据包为第一数据对应的应用程序的数据包;
处理模块,被配置为确定第一数据包的配置数据和应用程序线上最新配置数据之间的差异数据;
发送模块,被配置为将差异数据同步至终端。
根据本公开实施例的第四方面,一种热更新装置,用于终端,装置包括:
获取模块,被配置为在启动当前版本的应用程序情况下,与服务器通信,以获取差异数据;其中,差异数据是通过当前版本的第一数据包的配置数据和应用程序线上最新配置数据确定出的;
更新模块,被配置为解析差异数据,根据差异数据和当前版本的应用程序的数据包完成热更新。
根据本公开的第五方面,提供一种热更新系统,该热更新系统包括:执行上述第一方面中任一种可选地热更新方法的服务器,以及执行上述第二方面中任一种可选地热更新方法的终端。
根据本公开的第六方面,提供一种服务器,该服务器包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,处理器被配置为执行指令,以实现上述第一方面中任一种热更新方法。
根据本公开的第七方面,提供一种终端,该终端包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,处理器被配置为执行指令,以实现上述第二方面中任一种热更新方法。
根据本公开的第八方面,提供一种计算机可读存储介质,计算机可读存储介质上存储有指令,当计算机可读存储介质中的指令由服务器的处理器执行时,使得服务器能够执行上述第一方面中任一种可选地热更新方法。
根据本公开的第九方面,提供一种计算机可读存储介质,计算机可读存储介质上存储有指令,当计算机可读存储介质中的指令由终端的处理器执行时,使得终端能够执行上述第二方面中任一种可选地热更新方法。
根据本公开的第十方面,提供一种计算机程序产品,包含指令,当其在计算机上运行时,使得计算机执行如第一方面中任一种可选地热更新方法。
根据本公开的第十一方面,提供一种计算机程序产品,包含指令,当其在计算机上运行时,使得计算机执行如第二方面中任一种可选地热更新方法。
本公开提供的技术方案至少带来以下有益效果:服务器获取数据包的配置数据和应用程序线上最新配置数据,通过比对配置数据是否相同生成差异数据,将差异数据同步至终端,终端可以通过主动同步或被动同步两种方式实时获取服务器的差异数据,根据差异数据完成应用程序的热更新并存储;服务器通过将获取的数据进行处理,处理后只保留有变动的部分进行存储,在一定程度上减轻了系统的存储压力。同时,用户可体验到实时更新后应用程序实现的多种新功能,从而提升用户体验。对于终端而言,当应用程序需要更新时,不需要再发出网络请求,降低了带宽资源的使用,直接调取本地数据,从而降低了时延;应用程序能够快速响应用户请求,提升用户满意度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种热更新系统的结构示意图;
图2是根据一示例性实施例示出的一种热更新方法的流程图;
图3是根据一示例性实施例示出的一种热更新方法的流程图;
图4是根据一示例性实施例示出的一种热更新方法的流程图;
图5是根据一示例性实施例示出的一种热更新系统的结构示意图;
图6是根据一示例性实施例示出的一种热更新装置的逻辑结构框图;
图7是根据一示例性实施例示出的一种热更新装置的逻辑结构框图;
图8是根据一示例性实施例示出的一种终端的结构框图;
图9是根据一示例性实施例示出的一种服务器的结构框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
下面先对本公开实施例中涉及到的术语/名词进行解释说明。
1.NPM(Node Package Management):是Node.js语言的包管理工具,提供官方未支持的各种功能插件或工具库。
2.Node:是Javascript语言在服务端的实现,全称为Node.js,为一种服务端语言。
3.MySQL:关系型第一存储设备管理系统,是业界广泛使用的持久化格式化存储方式。在关系第一存储设备将数据保存不同的表中,增加了速度并提高了灵活性。比如查询一个东西时点击触发事件,系统会去mysql第一存储设备找到需要的数据返回给前端界面显示。
4.Redis(Remote Dictionary Service):是基于TCP/IP协议的在线查单词程序,实现一台远程字典服务器的搭建,通过客户端程序RemoteLookup将所查单词发送给字典服务器,然后由字典服务器将单词中文释义返回给客户机,实现了一个完整的查询过程,是使用非常广泛的存储中间件,常用来做中间存储装置,也支持持久化存储。
本公开实施例提供的热更新方法应用于终端应用程序更新场景中。在相关技术中,考虑到热更新延时等问题。本公开实施例提供一种热更新方法及装置,通过服务器获取终端当前运行的应用程序的第一数据和应用程序线上最新配置数据,根据第一数据从平台服务器中获取第一数据对应的第一数据包,通过第一数据包和应用程序线上最新配置数据得出差异数据,将差异数据同步至终端应用程序,以实现应用程序及时进行热更新。进一步降低时延,同时由于差异数据只保留变更后的部分,减少存储空间的使用,降低了业务逻辑的复杂度。
图1是根据一示例性实施例示出的一种热更新系统的示意图,本公开实施例提供的热更新方法可以使终端应用程序于该热更新系统中。该热更新系统包括:线上服务器11、开发服务器12、平台服务器13、终端14、服务器15和第一存储设备16。开发服务器12从线上服务器11中获取更新数据,开发服务器12对更新数据进行打包生成数据包存放在平台服务器13供终端14下载,终端14在平台服务器13下载当前运行的应用程序的第一数据包并执行热更新,同时,终端14将第一数据包对应的第一数据存放在第一存储设备16;第一存储设备16将第一数据发送至服务器15,服务器15根据第一数据在平台服务器13获取第一数据包,并从线上服务器11获取应用程序线上最新配置数据;服务器15根据第一数据包和应用程序线上最新配置数据确定出差异数据,将差异数据同步在终端14的应用程序上,使得应用程序实现及时热更新。其中,线上服务器11、开发服务器12、平台服务器13、终端14、服务器15和第一存储设备16通过有线通讯方式或无线通讯方式进行通信。
其中,线上服务器11,支持HTTPS或QUIC等传输协议,用于存放至少一种应用程序的更新数据,为更新数据的源端设备。
开发服务器12,支持HTTPS或QUIC等传输协议,用于从线上服务器获取更新数据,并对更新数据进行打包归类,生成多版本的数据包。
平台服务器13,支持HTTPS或QUIC等传输协议,用于一个公共/私有的数据包平台,提供数据包的存放。
终端14,支持HTTPS或QUIC等传输协议,用于更新第一数据包至应用程序并将实时更新的第一存储设备差异数据通过应用程序的本地缓存程序进行存储,便于更新使用。
服务器15,支持HTTPS或QUIC等传输协议,用于从第一存储设备获取第一数据,根据第一数据从平台服务器获取相关的第一数据包,结合第一数据包的配置数据和应用程序线上最新配置数据确定出差异数据,并同步给终端的应用程序。
第一存储设备16,支持HTTPS或QUIC等传输协议,用于存放差异数据和版本号。
其中,终端14,支持HTTPS或QUIC等传输协议。
在一些实施例中,终端14可以为手机、平板电脑、笔记本电脑、台式计算机、便携式计算机等,本公开对此不做限定。图1中以终端11为手机为例示出。
在一些实施例中,线上服务器11、开发服务器12、平台服务器13和服务器15可以是一台服务器,也可以是由多台服务器组成的服务器集群,本公开对此不做限定。
在一些实施例中,第一存储设备16可以是服务器中的存储装置,可以是服务器中的数据库,也可以是独立的存储数据库,本公开对此不做限定。
下面结合各个附图,对本公开实施例提供的热更新方法进行示例性说明。
图2是根据一示例性实施例示出的一种热更新方法的流程图,当该方法应用于服务器时,该方法可以包括步骤201-步骤204。
201、获取第一数据以及应用程序线上最新配置数据;其中,第一数据为终端当前运行的应用程序的数据包的版本号。
示例性的,第一数据为NPM包版本号。根据开发语言的不同,NPM包可以替换为前端静态资源包、应用安装包、软件安装包、容器镜像等;应用程序线上最新配置数据是指没有被历史数据包所拉取和引入的配置数据。
202、从平台服务器获取第一数据包的配置数据;其中,第一数据包为第一数据对应的应用程序的数据包;平台服务器用于存储所属系统中每一应用程序的数据包以及数据包的配置数据;
当系统新增或更新动态数据时,动态数据被配置到第一数据包中,通常情况下,第一数据包一般被GIT托管;更新后的第一数据包被指定版本号后,由托管系统发布到平台服务器。因此,当服务器从第一存储设备中获取到第一数据时,根据第一数据从平台服务器拉取到第一数据包的配置数据。示例性的,平台服务器为公有/私有的NPM平台。根据面向的市场不同,平台服务器也可以替换为CDN平台、GIT代码仓库、应用安装市场、软件集成平台、镜像仓库等。
203、确定第一数据包的配置数据和应用程序线上最新配置数据之间的差异数据;
根据第一数据包的配置数据和应用程序线上最新配置数据计算出差异数据,通过计算出的差异数据可缓存在第一存储设备或直接同步到终端,由于缓存或同步的数据仅为差异数据,从而只需要存储少量数据,减少存储空间的使用。同时当差异数据缓存在第一存储设备时,节省了服务器的服务资源。其中,常见的第一存储设备包括Ehcache、Mem cache和Redis,其中Ehcache集成在服务器里面内,方便简易,容量小;Mem cache存储类型很单一,就是字符串;Redis存储类型丰富,性能非常高,可靠性高。示例性的,本公开选择Redis作为第一存储设备,同时也可以选择其他具有相同功能的存储装置,本公开对此不做限定。
204、将差异数据同步至终端。
将差异数据同步到终端后,终端通过解析完成应用程序的热更新。
本公开实施例中,第一数据为当前运行的应用程序的数据包的版本号数据,相对数据包数据而言,版本号数据占用的存储空间更小,节省了存储资源。同时服务器获取到应用程序线上最新配置数据;并根据该应用程序线上最新配置数据与第一数据包的配置数据计算出差异数据,由于终端是基于差异数据和当前版本的数据(第一数据包的配置数据)进行热更新,而现有技术是根据最新数据包进行更新,相对而言本公开占用的内存更少。并且差异数据来源于应用程序线上最新配置数据,得出后便同步至终端;因此热更新更及时,时延更低,可使用户及时体验到最新功能,提升用户满意度。
进一步地,通过第一存储设备获取第一数据;其中,第一数据为终端存储在第一存储设备。
本公开实施例中,终端将当前版本的版本号以第一数据的形式存放至第一存储设备。存放至第一存储设备是为了便于服务器获取版本数据包,由于平台服务器中存储有当前版本的数据包(第一数据包的配置数据),为了避免数据的重复存储,在第一存储设备中仅需存储当前版本数据包的版本号,服务器根据版本号从平台服务器获取当前版本的数据包即可。因此,本公开不仅占用存储资源更小,也能保证数据的准确定。
进一步地,通过线上服务器获取应用程序线上最新配置数据;其中,线上服务器为终端当前运行的应用程序的数据包的源端设备。
本公开实施例中,由于线上服务器为应用程序数据包的源端设备,因此服务器从线上服务器获取的应用程序线上最新配置数据即为最新数据,将该最新数据进行处理并同步到终端,从而保证终端热更新的及时性,进一步降低热更新的时延。
进一步地,确定第一数据包的配置数据和应用程序线上最新配置数据之间的差异数据包括:
对应用程序线上最新配置数据中的每个元素执行下述第一操作,以确定差异数据;
第一操作为:若应用程序线上最新配置数据中第一元素的数值与第一数据包的配置数据中第一元素的数值不同,或者,第一数据包的配置数据未包括第一元素,则确定差异数据包括应用程序线上最新配置数据中第一元素的数值;第一元素为应用程序线上最新配置数据中任一个元素。
具体的,第一元素一般被格式化为JSON格式,在本公开中,第一元素为应用程序线上最新配置数据的KEY值和第一数据包的配置数据KEY值。第一元素的格式可根据实际场景进行选择,本公开对此不做限定。
本公开实施例中,差异数据通过采用预设的差异算法确定。基于应用程序线上最新配置数据,对线上使用的多个版本数据包的配置数据进行比对,剔除无变更的配置项,生成最终的差异数据并存入第一存储设备中,供终端使用。
在一具体的实施例中,如图3所示的流程图,差异数据计算的实现步骤为:
第一步:获取数据包的版本号数据分别为:v1.0.1、v1.0.2和v1.0.3。具体的,比如用户会安装不同版本的微信,同一个项目中也会包含多个终端同时使用不同版本的数据包。
第二步:根据数据包的版本号获取指定版本的配置数据和应用程序线上最新配置数据,测试数据如下:
第三步:获取所有key值:a,b,c,d。
第四步:遍历所有key值,并判断3个版本和应用程序线上最新配置数据是否一致。如果无变更则跳过,如果有差异则保留;
具体的,a1=a2=a3=a(new),b1=b2≠b3=b(new),c1=c3=c(new)≠c2,e1=e2=e3≠d(new)。
因此得到改变的内容为:{b:201,c:300,e:500}。
第五步:将改变后的值进行格式化存储在第一存储设备中,供应用程序端同步后使用。格式化为只保存改变后的线上最新配置值对应的数据,不改变的数据不进行存储。
本公开实施例中,差异算法是通过将第一数据包的配置数据和应用程序线上最新配置数据进行比对,将发生改变的数据以差异数据的形式进行存储。未发生改变的数据在终端的历史版本中已存储过,因此,本公开只需要存储发生改变的少量数据即可,避免存储空间的过度使用。
上述实施例提供的技术方案至少带来以下有益效果:服务器获取数据包的配置数据和应用程序线上最新配置数据,通过比对配置数据是否相同生成差异数据,将差异数据存储在第一存储设备中。服务器通过将获取的数据进行处理,处理后只保留有变动的部分进行存储,在一定程度上减轻了系统的存储压力。同时,用户可体验到实时更新后应用程序实现的多种新功能,从而提升用户体验。
图4是根据一示例性实施例示出的一种热更新方法的流程图,当该方法应用于终端时,该方法可以包括步骤401-步骤402。
401、在启动当前版本的应用程序的情况下,与服务器通信,以获取差异数据;其中,差异数据是通过当前版本的第一数据包的配置数据和应用程序线上最新配置数据确定出的;
在应用程序启动时,终端于服务器实时进行通信,并将差异数据同步到终端,以实现终端的应用程序的实时更新。
402、解析差异数据,根据差异数据和当前版本的应用程序的数据包完成热更新。
具体的,终端对差异数据进行解析,根据解析后的差异数据和终端本地缓存的当前版本的应用程序的数据包完成下一版本的热更新。
进一步的,在启动当前应用程序的情况下,与服务器通信之后,还包括:向服务器发送同步请求。
进一步的,在启动当前应用程序的情况下,与服务器通信之后,还包括:接收服务器的差异数据。
具体的,终端可以通过主动同步和被动同步2种方式获取到差异数据。
若为主动同步,则终端与服务器进行通信时,同时发送同步指令给服务器;由于差异数据可以存储在服务器的存储单元上也可以存储在单独的存储装置上,因此,服务器可通过直接从存储单元调取差异数据发送至终端,或从第一存储设备调用差异数据发送至终端。示例性的,存储装置为mysql(关系型第一存储设备管理系统)。
若为被动同步,则根据差异数据的存储位置,服务器从对应位置处调取差异数据并发送至终端。
进一步的,差异数据缓存在终端。
具体的,终端接收到差异数据后,对应用程序进行更新。同时应用程序在启动时会同时启动一个本地缓存程序,通过周期性主动获取差异数据并存储。便于后续应用程序可直接从本地调用线上最新配置数据,无需发出网络请求,从而降低响应耗时达到快速访问的目的。
上述实施例提供的技术方案至少带来以下有益效果:终端可以通过主动同步或被动同步两种方式实时获取服务器的差异数据,根据差异数据完成应用程序的热更新并存储。当应用程序需要更新时,不需要再发出网络请求,降低了带宽资源的使用,直接调取本地数据,从而降低了时延;应用程序能够快速响应用户请求,提升用户满意度。
图5是根据一示例性实施例示出的一种热更新方法的流程图,当该方法应用于图1的热更新系统时,该方法包括步骤501-步骤506。
501、获取第一数据以及应用程序线上最新配置数据;其中,第一数据为终端当前运行的应用程序的数据包的版本号;
具体的,开发服务器从线上服务器获取更新数据配置到数据包,开发服务器确定数据包的版本,并发布在平台服务器;终端通过平台服务器获取到数据包进行版本更新,更新的同时终端将版本号存放在存储装置中,因而服务器可以从存储装置中获取应用程序的版本号。
502、从平台服务器获取第一数据包的配置数据;其中,第一数据包为第一数据对应的应用程序的数据包;平台服务器用于存储所属系统中每一应用程序的数据包以及数据包的配置数据;
503、确定第一数据包的配置数据和应用程序线上最新配置数据之间的差异数据;
504、在启动当前版本的应用程序的情况下,与数据处理服务器通信;以获取差异数据;
505、将差异数据同步至终端;
506、解析差异数据,根据差异数据和当前版本的应用程序的数据包完成热更新。
上述实施例提供的技术方案至少带来以下有益效果:服务器获取数据包的配置数据和应用程序线上最新配置数据,通过比对配置数据是否相同生成差异数据,将差异数据同步至终端,终端可以通过主动同步或被动同步两种方式实时获取服务器的差异数据,根据差异数据完成应用程序的热更新并存储;服务器通过将获取的数据进行处理,处理后只保留有变动的部分进行存储,在一定程度上减轻了系统的存储压力。同时,用户可体验到实时更新后应用程序实现的多种新功能,从而提升用户体验。对于终端而言,当应用程序需要更新时,不需要再发出网络请求,降低了带宽资源的使用,直接调取本地数据,从而降低了时延;应用程序能够快速响应用户请求,提升用户满意度。
图6是根据一示例性实施例示出的一种热更新装置的逻辑结构框图。如图6,该热更新装置应用于服务器,该热更新装置包括:获取模块61、处理模块62、发送模块63。
获取模块61,被配置为获取第一数据、应用程序线上最新配置数据和第一数据包的配置数据;其中,第一数据为终端当前运行的应用程序的数据包的版本号;第一数据包为第一数据对应的应用程序的数据包;
处理模块62,被配置为确定第一数据包的配置数据和应用程序线上最新配置数据之间的差异数据;
发送模块63,被配置为将差异数据同步至终端。
进一步的,获取模块61,还被配置为通过第一存储设备获取第一数据;其中,第一数据为终端存储在第一存储设备的版本号。
进一步的,获取模块61,还被配置为通过线上服务器获取应用程序线上最新配置数据;其中,线上服务器为终端当前运行的应用程序的数据包的源端设备。
进一步的,差异数据通过采用预设的差异算法确定。
图7是根据一示例性实施例示出的一种热更新装置的逻辑结构框图。该热更新装置应用于终端,一种热更新装置,装置包括:获取模块71,更新模块72,发送模块73,接收模块74。
获取模块71,被配置为在启动当前应用程序的情况下,与服务器通信,以获取差异数据;
更新模块72,被配置为解析差异数据完成热更新。
进一步的,装置还包括:发送模块73,被配置为向服务器发送同步请求。
进一步的,装置还包括:接收模块74,被配置为接收服务器的差异数据。
进一步的,装置还包括:差异数据缓存在终端。
图8是根据一示例性实施例示出的一种终端的结构框图,该终端可以是热更新装置,该热更新装置可以是:智能手机、平板电脑、笔记本电脑或台式电脑。
如图8所示,热更新装置可以包括至少一个处理器81,通信总线82,存储器83以及至少一个通信接口84。
处理器81可以是一个CPU,微处理单元,ASIC,或一个或多个用于控制本公开方案程序执行的集成电路。
通信总线82可包括一通路,在上述组件之间传送信息。
通信接口84,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless local areanetworks,WLAN)等。
存储器83可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electricallyerasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理单元相连接。存储器也可以和处理单元集成在一起。
其中,存储器83用于存储执行本公开方案的终端应用程序代码,并由处理器81来控制执行。处理器81用于执行存储器83中存储的终端应用程序代码,从而实现本公开方法中的功能。
在具体实现中,作为一种实施例,处理器81可以包括一个或多个CPU,例如图9中的CPU 0和CPU 1。
在具体实现中,作为一种实施例,热更新装置可以包括多个处理器,例如图9中的处理器81和处理器85。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,热更新装置还可以包括输入设备86和输出设备87。输入设备86和处理器81通信,可以以多种方式接受用户的输入。例如,输入设备86可以是鼠标、键盘、触摸屏设备或传感设备等。输出设备87和处理器81通信,可以以多种方式来显示信息。例如,输出设备87可以是液晶显示器(liquid crystal display,LCD),发光二级管(light emitting diode,LED)显示设备等。
本领域技术人员可以理解,图8中示出的结构并不构成对终端的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
图9是根据一示例性实施例示出的一种服务器的结构框图,该服务器可以是热更新装置。该服务器可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器91和一个或一个以上的存储器92。其中,存储器92中存储有至少一条指令,至少一条指令由处理器91加载并执行以实现上述各个方法实施例提供的热更新方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
本公开还提供了一种热更新系统,该热更新系统包括终端和服务器;
终端,用于向服务器发送连接请求,连接请求用于请求与服务器建立连接,连接请求包括目标域名和终端的标识;
服务器,用于接收终端发送的连接请求,并根据预存的域名与证书的对应关系,获取目标域名对应的目标证书;目标证书包括第一证书、第二证书和交叉证书,第一证书的效率等级比第二证书的效率等级高,交叉证书为使用第二证书的根证书对第一证书的根证书进行签名生成的证书;还用于在确定记录表未包括标识时,向终端发送第一证书链,第一证书链包括第一证书和交叉证书,记录表用于存储不支持第一证书的终端的标识;
终端,用于接收服务器发送的第一证书链,根据第一证书链验证第一证书。
本公开还提供了一种包括指令的计算机可读存储介质,计算机可读存储介质上存储有指令,当计算机可读存储介质中的指令由计算机设备的处理器执行时,使得计算机能够执行上述所示实施例提供的热更新方法。例如,计算机可读存储介质可以为包括指令的存储器83,上述指令可由终端的处理器81执行以完成上述方法。又例如,计算机可读存储介质可以为包括指令的存储器92,上述指令可由服务器的处理器91执行以完成上述方法。可选地,计算机可读存储介质可以是非临时性计算机可读存储介质,例如,非临时性计算机可读存储介质可以是ROM、RAM、CD-ROM、磁带、软盘和光数据存储设备等。
本公开还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机设备执行上述所示实施例提供的热更新方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种热更新方法,用于服务器,其特征在于,所述方法包括:
获取第一数据和应用程序线上最新配置数据;其中,所述第一数据用于指示终端当前运行的所述应用程序的数据包的版本号;
从平台服务器获取第一数据包的配置数据;其中,所述第一数据包为所述第一数据对应的所述应用程序的数据包,所述平台服务器用于存储所属系统中每一应用程序的数据包以及数据包的配置数据;
确定所述第一数据包的配置数据和所述应用程序线上最新配置数据之间的差异数据;
将所述差异数据同步至所述终端。
2.根据权利要求1所述的方法,其特征在于,所述获取第一数据包括:
通过第一存储设备获取所述第一数据;其中,所述第一数据为所述终端存储在所述第一存储设备。
3.根据权利要求1所述的方法,其特征在于,所述应用程序线上最新配置数据包括:
通过线上服务器获取所述应用程序线上最新配置数据;其中,所述线上服务器为所述终端当前运行的所述应用程序的数据包的源端设备。
4.根据权利要求1所述的方法,其特征在于,所述确定所述第一数据包的配置数据和所述应用程序线上最新配置数据之间的差异数据,包括:
对所述应用程序线上最新配置数据中的每个元素执行下述第一操作,以确定所述差异数据;
所述第一操作为:若应用程序线上最新配置数据中第一元素的数值与第一数据包的配置数据中第一元素的数值不同,或者,所述第一数据包的配置数据未包括所述第一元素,则确定所述差异数据包括应用程序线上最新配置数据中第一元素的数值;第一元素为应用程序线上最新配置数据中任一个元素。
5.一种热更新方法,用于终端,其特征在于,所述方法包括:
在启动当前版本的应用程序情况下,与服务器通信,以获取差异数据;其中,所述差异数据是通过当前版本的第一数据包的配置数据和应用程序线上最新配置数据确定出的;
解析所述差异数据,根据差异数据和当前版本的应用程序的数据包完成热更新。
6.根据权利要求5所述的方法,其特征在于,所述在启动当前应用程序的情况下,与服务器通信之后,还包括:
向所述服务器发送同步请求。
7.一种热更新装置,用于服务器,其特征在于,所述装置包括:
获取模块,被配置为获取第一数据、应用程序线上最新配置数据和第一数据包的配置数据;其中,所述第一数据用于指示终端当前运行的所述应用程序的数据包的版本号;所述第一数据包为所述第一数据对应的所述应用程序的数据包;
处理模块,被配置为确定所述第一数据包的配置数据和所述应用程序线上最新配置数据之间的差异数据;
发送模块,被配置为将所述差异数据同步至所述终端。
8.一种热更新装置,用于终端,其特征在于,所述装置包括:
获取模块,被配置为在启动当前版本的应用程序情况下,与服务器通信,以获取差异数据;其中,所述差异数据通过当前版本的第一数据包的配置数据和应用程序线上最新配置数据确定;
更新模块,被配置为解析所述差异数据,根据差异数据和当前版本的第一数据包完成下一版本的热更新。
9.一种服务器,其特征在于,所述服务器包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1-4中任一项所述的热更新方法。
10.一种终端,其特征在于,所述终端包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求5-6中任一项所述的热更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010968672.7A CN112114856A (zh) | 2020-09-15 | 2020-09-15 | 一种热更新方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010968672.7A CN112114856A (zh) | 2020-09-15 | 2020-09-15 | 一种热更新方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112114856A true CN112114856A (zh) | 2020-12-22 |
Family
ID=73802736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010968672.7A Pending CN112114856A (zh) | 2020-09-15 | 2020-09-15 | 一种热更新方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112114856A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113398599A (zh) * | 2021-07-16 | 2021-09-17 | 广州七七游网络科技有限公司 | 一种游戏文件的更新方法、装置、设备及可读存储介质 |
CN114691175A (zh) * | 2022-04-22 | 2022-07-01 | 麒麟合盛网络技术股份有限公司 | 一种应用更新方法、装置和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120150796A1 (en) * | 2010-12-10 | 2012-06-14 | Sap Ag | Transparent Caching of Configuration Data |
CN107817985A (zh) * | 2017-10-30 | 2018-03-20 | 福建中金在线信息科技有限公司 | 应用程序的控制方法以及服务器 |
CN109413186A (zh) * | 2018-10-31 | 2019-03-01 | Oppo广东移动通信有限公司 | 应用程序更新方法、终端、服务器及系统 |
CN109471653A (zh) * | 2018-09-29 | 2019-03-15 | 百度在线网络技术(北京)有限公司 | 应用程序的更新方法、电子设备、服务器和存储介质 |
CN110377321A (zh) * | 2019-07-22 | 2019-10-25 | 平安科技(深圳)有限公司 | 应用程序升级的方法、装置、终端及存储介质 |
-
2020
- 2020-09-15 CN CN202010968672.7A patent/CN112114856A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120150796A1 (en) * | 2010-12-10 | 2012-06-14 | Sap Ag | Transparent Caching of Configuration Data |
CN107817985A (zh) * | 2017-10-30 | 2018-03-20 | 福建中金在线信息科技有限公司 | 应用程序的控制方法以及服务器 |
CN109471653A (zh) * | 2018-09-29 | 2019-03-15 | 百度在线网络技术(北京)有限公司 | 应用程序的更新方法、电子设备、服务器和存储介质 |
CN109413186A (zh) * | 2018-10-31 | 2019-03-01 | Oppo广东移动通信有限公司 | 应用程序更新方法、终端、服务器及系统 |
CN110377321A (zh) * | 2019-07-22 | 2019-10-25 | 平安科技(深圳)有限公司 | 应用程序升级的方法、装置、终端及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113398599A (zh) * | 2021-07-16 | 2021-09-17 | 广州七七游网络科技有限公司 | 一种游戏文件的更新方法、装置、设备及可读存储介质 |
CN114691175A (zh) * | 2022-04-22 | 2022-07-01 | 麒麟合盛网络技术股份有限公司 | 一种应用更新方法、装置和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10412176B2 (en) | Website access method, apparatus, and website system | |
CN110019350B (zh) | 基于配置信息的数据查询方法和装置 | |
CN110391938B (zh) | 用于部署服务的方法和装置 | |
US11243921B2 (en) | Database expansion system, equipment, and method of expanding database | |
CN110321252B (zh) | 一种技能服务资源调度的方法和装置 | |
CN112114856A (zh) | 一种热更新方法及装置 | |
CN112507263B (zh) | 页面加载更新方法、装置、电子设备及存储介质 | |
CN111371585A (zh) | 用于cdn节点的配置方法及装置 | |
CN109471713B (zh) | 用于查询信息的方法和装置 | |
CN112732302A (zh) | 应用程序的配置更新方法、装置和电子设备 | |
CN107844310A (zh) | 一种配置信息更新方法及系统 | |
CN116185578A (zh) | 计算任务的调度方法和计算任务的执行方法 | |
CN113783826B (zh) | 一种微服务异常处理方法和装置 | |
CN115455097A (zh) | 风控数据处理方法、系统、计算机设备及存储介质 | |
CN110806967A (zh) | 一种单元测试方法和装置 | |
CN112559001B (zh) | 更新应用的方法和装置 | |
US20160036942A1 (en) | Method, system, and apparatus for agent-based architecture for integrated mobile applications | |
CN112860268B (zh) | 模板热部署的方法和装置 | |
CN108418725B (zh) | 一种用于网络监控的方法、设备及计算机可读存储介质 | |
CN113742243A (zh) | 应用评测方法、装置、电子设备和计算机可读介质 | |
CN115795198A (zh) | 一种页面加载方法、装置、系统及存储介质 | |
CN115269055A (zh) | Nginx请求数据采集方法、装置、设备及存储介质 | |
CN116775670A (zh) | 数据交互方法、装置、电子设备及可读存储介质 | |
CN116975069A (zh) | 一种标识的生成方法和装置 | |
CN113377378A (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 |