CN103002024B - 应用程序升级系统和应用程序升级方法 - Google Patents
应用程序升级系统和应用程序升级方法 Download PDFInfo
- Publication number
- CN103002024B CN103002024B CN201210476266.4A CN201210476266A CN103002024B CN 103002024 B CN103002024 B CN 103002024B CN 201210476266 A CN201210476266 A CN 201210476266A CN 103002024 B CN103002024 B CN 103002024B
- Authority
- CN
- China
- Prior art keywords
- application program
- version
- patch
- server
- upgraded
- 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
Links
Landscapes
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种应用程序升级系统,包括:服务器和终端,服务器包括:第一判断单元,判断是否存在补丁,若不存在,则判断是否存在等待补丁生成的队列;队列建立单元,用于建立队列;插入单元,将升级请求插入至队列;第一信息收发单元,接收目标文件列表以及升级请求,以及将补丁传输至终端;补丁生成单元,用于生成补丁并进行缓存;终端包括:比较单元,用于生成目标文件列表;第二信息收发单元,将目标文件列表和升级请求发送至服务器并接收补丁。本发明还提出了一种应用程序升级方法。通过本发明的技术方案,能够减少应用程序升级过程中的网络带宽的浪费,降低服务器的下载压力,并且可以提高服务器的性能。
Description
技术领域
本发明涉及数据处理技术领域,具体而言,涉及一种应用程序升级系统和一种应用程序升级方法。
背景技术
目前,客户端的应用程序在运行中经常遇到版本升级的问题,每当应用程序存在缺陷或者需要添加某些功能时,都需要对客户端上的应用程序进行版本升级。
现在升级客户端的应用程序的方法大致分为以下两种:
一种方法是将新版本的应用程序中包含的所有组成文件做成单个安装程序供客户端下载安装。客户端在与服务器端进行版本对比后下载并运行安装程序,利用新版本应用程序中的所有组成文件对客户端的旧版本应用程序中的所有组成文件进行替换。
这种方法会极大地浪费网络带宽资源,随着应用程序功能的不断增强,应用程序升级给服务器带来的下载压力也越来越大。但这种方法的优点在于服务器对于升级操作的处理运算逻辑简单,只需与客户端进行版本对比即可,某种程度上减低了服务器的工作量。
另一种方法是首先在客户端将各版本应用程序的所有组成文件的文件名及校验码对应保存在相应的配置文件中,升级时,客户端从服务器下载需要升级版本的应用程序配置文件,将其与本地临时目录中的配置文件进行比对,确定需要更新的组成文件后,从服务器端下载相应组成文件,并将其保存在临时目录中,再将下载的组成文件替换到客户端的应用程序中。
这种方法极大地缓解了服务器的下载压力,使用户对于应用程序的升级体验得到很好的提升。但是这种升级方法没有将下载的组成文件进行压缩处理,而是依次单个下载更新组成文件,在碰到用户集中升级时也会对服务器产生一定压力。尤其这种方法应用在企业即时消息应用程序时,忽略了客户端软件基本或大部分是版本一致的情况,企业用户集中升级时服务器需要多次重复同一操作,降低了服务器的性能。并且从开发角度来看,维护各个版本的应用程序的所有组成文件的文件名及校验码的配置文件也是一件复杂且容易出错的工作。
因此,需要一种新的应用程序升级技术,能够减少应用程序升级过程中的网络带宽的浪费,降低服务器的下载压力,并且可以避免服务器为来自不同终端的相同版本的应用程序提供多次相同的升级服务。
发明内容
本发明正是基于上述问题,提出了一种应用程序升级技术,能够减少应用程序升级过程中的网络带宽的浪费,降低服务器的下载压力,并且可以避免服务器为来自不同终端的相同版本的应用程序提供多次相同的升级服务。
有鉴于此,本发明提出了一种应用程序升级系统,包括服务器和终端,其中,待升级版本的应用程序安装于所述终端中,目标版本的应用程序存储于所述服务器中,所述服务器包括:第一判断单元,用于在第一信息收发单元接收到所述终端的升级请求时,判断是否存在所述待升级版本的应用程序到所述目标版本的应用程序的补丁,若不存在,则判断是否存在等待所述补丁生成的队列;队列建立单元,用于在不存在所述队列的情况下建立所述队列;插入单元,用于在存在所述队列的情况下,或在所述队列建立单元建立所述队列后,将所述升级请求插入至所述队列;所述第一信息收发单元,用于接收目标文件列表以及所述升级请求,并当所述升级请求在所述队列的最前端时或在存在所述补丁的情况下,将所述补丁传输至所述终端;补丁生成单元,用于根据所述目标文件列表从所述目标版本的应用程序中提取相应的组成文件,以生成所述补丁并进行缓存;以及所述终端包括:比较单元,用于将所述目标版本的应用程序的配置文件与所述待升级版本的应用程序的配置文件进行对比,以生成所述目标文件列表;第二信息收发单元,用于将所述目标文件列表和所述升级请求发送至所述服务器,并接收所述补丁。
在上述技术方案中,服务器可以针对不同的待升级版本的应用程序生成相应的升级补丁并进行缓存,终端只需要从服务器下载待升级版本的应用程序所需升级部分的文件即可,而不必从服务器将目标版本的应用程序整个下载,节约了网络带宽资源,降低了服务器的下载压力。
当服务器接收到安装有待升级版本的应用程序的终端的升级请求时,可以将相应的升级补丁发送至该终端,针对安装有相同版本的应用程序的终端的升级请求,只需要将每个升级请求插入至相应的补丁生成列中即可,而不必根据每个安装有相同版本的应用程序的终端的升级请求分别生成一次相应的补丁,只有在应用程序的版本与待升级版本的应用程序的版本不同时,才会根据不同版本的应用程序与目标版本的应用程序的差异生成不同的补丁,从而避免了服务器为来自不同终端的相同版本的应用程序提供多次相同的升级服务,提高了服务器性能,降低了维护各个版本的应用程序中的组成文件的文件名及校验码的配置文件的复杂程度和出错率。
在该技术方案中,优选地,所述终端还包括:第二判断单元,用于在所述待升级版本的应用程序启动时,判断所述待升级版本的应用程序的版本是否低于所述目标版本的应用程序的版本;启动单元,在所述第二判断单元的判断结果为否的情况下,启动所述待升级版本的应用程序;所述第二信息收发单元用于在所述第二判断单元的判断结果为是的情况下,将所述升级请求发送至所述服务器;所述插入单元还用于将所述升级请求插入至待处理队列;以及所述第一判断单元在所述升级请求在所述待处理队列的最前端时,判断是否存在所述待升级版本的应用程序到所述目标版本的应用程序的补丁。
在上述技术方案中,当终端启动待升级版本的应用程序时,首先判断待升级版本的应用程序与目标版本的应用程序的版本差异,若待升级版本的应用程序的版本与目标版本的应用程序的版本相同,说明待升级版本的应用程序不需要升级,当待升级版本的应用程序的版本低于目标版本的应用程序的版本时,服务器根据终端的升级请求提供相应的升级服务。
在该技术方案中,优选地,所述服务器还包括:配置文件生成单元,用于根据所述目标版本的应用程序的组成文件的文件名、修改时间、验证码生成所述目标版本的应用程序的配置文件,以及所述第一信息收发单元还用于将所述目标版本的应用程序的配置文件发送至所述终端。
在上述技术方案中,终端可以接收来自服务器的目标版本的应用程序的配置文件,然后将其与待升级版本的应用程序的配置文件进行对比,从而得到需要升级部分的文件的列表(即目标文件列表),进而从服务器中下载需要升级部分的文件。
在该技术方案中,优选地,所述补丁生成单元用于根据所述目标文件列表,从所述目标版本的应用程序中提取相应的文件进行压缩以生成所述补丁。
在上述技术方案中,服务器可以在将待升级版本的应用程序需要升级部分的文件发送至终端之前,对该文件进行压缩处理,以进一步降低服务器的下载压力。
在该技术方案中,优选地,所述终端还包括:解压单元,用于对所述补丁进行解压以得到所述相应的组成文件;替换单元,用于根据所述相应的组成文件替换所述待升级的应用程序中与所述相应的组成文件对应的组成文件。
在上述技术方案中,终端可以解压来自服务器的补丁,并根据解压出的组成文件替换待升级版本的应用程序中的组成文件,以完成待升级版本的应用程序的升级。
根据本发明的又一方面,还提出了一种应用程序升级方法,包括:步骤202,当服务器接收到终端的升级请求时,判断是否存在待升级版本的应用程序到目标版本的应用程序的补丁,其中,所述待升级版本的应用程序安装于所述终端中,所述目标版本的应用程序存储于所述服务器中,若存在,则将所述补丁传输至所述终端;步骤204,若不存在,则进一步判断是否存在等待所述补丁生成的队列,若存在,则将所述升级请求插入至所述队列,若不存在,则建立所述队列,并将所述升级请求插入至所述队列;步骤206,所述服务器接收所述终端将所述目标版本的应用程序的配置文件与所述待升级版本的应用程序的配置文件对比生成的目标文件列表,根据所述目标文件列表从所述目标版本的应用程序中提取相应的组成文件,以生成所述补丁并进行缓存;步骤208,当所述升级请求在所述队列的最前端时,所述服务器将所述补丁传输至所述终端。
在上述技术方案中,服务器可以针对不同的待升级版本的应用程序生成相应的升级补丁并进行缓存,终端只需要从服务器下载待升级版本的应用程序所需升级部分的文件即可,而不必从服务器将目标版本的应用程序整个下载,节约了网络带宽资源,降低了服务器的下载压力。
当服务器接收到安装有待升级版本的应用程序的终端的升级请求时,可以将相应的升级补丁发送至该终端,针对安装有相同版本的应用程序的终端的升级请求,只需要将每个升级请求插入至相应的补丁生成列中即可,而不必根据每个安装有相同版本的应用程序的终端的升级请求分别生成一次相应的补丁,只有在应用程序的版本与待升级版本的应用程序的版本不同时,才会根据不同版本的应用程序与目标版本的应用程序的差异生成不同的补丁,从而避免了服务器为来自不同终端的相同版本的应用程序提供多次相同的升级服务,提高了服务器性能,降低了维护各个版本的应用程序中的组成文件的文件名及校验码的配置文件的复杂程度和出错率。
在该技术方案中,优选地,在所述步骤202之前,还包括:当所述待升级版本的应用程序启动时,所述终端判断所述待升级版本的应用程序的版本是否低于所述目标版本的应用程序的版本,若否,则启动所述待升级版本的应用程序,若是,则向所述服务器发出所述升级请求,所述服务器将所述升级请求插入至待处理队列,并当所述升级请求在所述待处理队列的最前端时,进入步骤202。
在上述技术方案中,当终端启动待升级版本的应用程序时,首先判断待升级版本的应用程序与目标版本的应用程序的版本差异,若待升级版本的应用程序的版本与目标版本的应用程序的版本相同,说明待升级版本的应用程序不需要升级,当待升级版本的应用程序的版本低于目标版本的应用程序的版本时,服务器根据终端的升级请求提供相应的升级服务。
在该技术方案中,优选地,在所述步骤202之前,还包括:所述服务器根据所述目标版本的应用程序的组成文件的文件名、修改时间、验证码生成所述目标版本的应用程序的配置文件,以及所述步骤206还包括:所述服务器将所述目标版本的应用程序的配置文件发送至所述终端。
在上述技术方案中,终端可以接收来自服务器的目标版本的应用程序的配置文件,然后将其与待升级版本的应用程序的配置文件进行对比,从而得到需要升级部分的文件的列表(即目标文件列表),进而从服务器中下载需要升级部分的文件。
在该技术方案中,优选地,所述步骤206包括:所述服务器根据所述目标文件列表从所述目标版本的应用程序中提取相应的文件进行压缩以生成所述补丁。
在上述技术方案中,服务器可以在将待升级版本的应用程序需要升级部分的文件发送至终端之前,对该文件进行压缩处理,以进一步降低服务器的下载压力。
在该技术方案中,优选地,还包括:所述终端接收所述补丁并进行解压以得到所述相应的组成文件,并根据所述相应的组成文件替换所述待升级的应用程序中与所述相应的组成文件对应的组成文件。
在该技术方案中,终端可以解压来自服务器的补丁,并根据解压出的组成文件替换待升级版本的应用程序中的组成文件,以完成待升级版本的应用程序的升级。
通过以上技术方案,能够减少应用程序升级过程中的网络带宽的浪费,降低服务器的下载压力,并且可以避免服务器为来自不同终端的相同版本的应用程序提供多次相同的升级服务。
附图说明
图1示出了根据本发明的实施例的应用程序升级系统的框图;
图2示出了根据本发明的实施例的应用程序升级方法的流程图;
图3示出了根据本发明的实施例的应用程序升级方法的具体流程图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
图1示出了根据本发明的实施例的应用程序升级系统的框图。
如图1所示,根据本发明的实施例的应用程序升级系统100包括:服务器102和终端104,其中,待升级版本的应用程序安装于终端104中,目标版本的应用程序存储于服务器102中,服务器102包括:第一判断单元1020,用于在第一信息收发单元1026接收到终端104的升级请求时,判断是否存在待升级版本的应用程序到目标版本的应用程序的补丁,若不存在,则判断是否存在等待补丁生成的队列;队列建立单元1022,用于在不存在队列的情况下建立队列;插入单元1024,用于在存在队列的情况下,或在队列建立单元1022建立队列后,将升级请求插入至队列;第一信息收发单元1026,用于接收目标文件列表以及升级请求,并当升级请求在队列的最前端时或在存在补丁的情况下,将补丁传输至终端104;补丁生成单元1027,用于根据目标文件列表从目标版本的应用程序中提取相应的组成文件,以生成补丁并进行缓存;以及终端104包括:比较单元1040,用于将目标版本的应用程序的配置文件与待升级版本的应用程序的配置文件进行对比,以生成目标文件列表;第二信息收发单元1042,用于将目标文件列表和升级请求发送至服务器102,并接收补丁。
服务器102可以针对不同的待升级版本的应用程序生成相应的升级补丁并进行缓存,终端104只需要从服务器102下载待升级版本的应用程序所需升级部分的文件即可,而不必从服务器102将目标版本的应用程序整个下载,节约了网络带宽资源,降低了服务器102的下载压力。
当服务器102接收到安装有待升级版本的应用程序的终端100的升级请求时,可以将相应的升级补丁发送至该终端100,针对安装有相同版本的应用程序的终端的升级请求,只需要将每个升级请求插入至相应的补丁生成列中即可,而不必根据每个安装有相同版本的应用程序的终端的升级请求分别生成一次相应的补丁,只有在应用程序的版本与待升级版本的应用程序的版本不同时,才会根据不同版本的应用程序与目标版本的应用程序的差异生成不同的补丁,从而避免了服务器102为来自不同终端的相同版本的应用程序提供多次相同的升级服务,提高了服务器102性能,降低了维护各个版本的应用程序中的组成文件的文件名及校验码的配置文件的复杂程度和出错率。
优选地,终端104还包括:第二判断单元1044,用于在待升级版本的应用程序启动时,判断待升级版本的应用程序的版本是否低于目标版本的应用程序的版本;启动单元1046,在第二判断单元1044的判断结果为否的情况下,启动待升级版本的应用程序;第二信息收发单元1042用于在第二判断单元1044的判断结果为是的情况下,将升级请求发送至服务器102;插入单元1024还用于将升级请求插入至待处理队列;以及第一判断单元1020在升级请求在待处理队列的最前端时,判断是否存在待升级版本的应用程序到目标版本的应用程序的补丁。
当终端104启动待升级版本的应用程序时,首先判断待升级版本的应用程序与目标版本的应用程序的版本差异,若待升级版本的应用程序的版本与目标版本的应用程序的版本相同,说明待升级版本的应用程序不需要升级,当待升级版本的应用程序的版本低于目标版本的应用程序的版本时,服务器102根据终端104的升级请求提供相应的升级服务。
优选地,服务器102还包括:配置文件生成单元1028,用于根据目标版本的应用程序的组成文件的文件名、修改时间、验证码生成目标版本的应用程序的配置文件,以及第一信息收发单元1026还用于将目标版本的应用程序的配置文件发送至终端104。
终端104可以接收来自服务器102的目标版本的应用程序的配置文件,然后将其与待升级版本的应用程序的配置文件进行对比,从而得到需要升级部分的文件的列表(即目标文件列表),进而从服务器102中下载需要升级部分的文件。
优选地,补丁生成单元1027用于根据目标文件列表,从目标版本的应用程序中提取相应的文件进行压缩以生成补丁。
服务器102可以在将待升级版本的应用程序需要升级部分的文件发送至终端104之前,对该文件进行压缩处理,以进一步降低服务器102的下载压力。
优选地,终端104还包括:解压单元1047,用于对补丁进行解压以得到相应的组成文件;替换单元1048,用于根据相应的组成文件替换待升级的应用程序中与相应的组成文件对应的组成文件。
终端104可以解压来自服务器102的补丁,并根据解压出的组成文件替换待升级版本的应用程序中的组成文件,以完成待升级版本的应用程序的升级。
图2示出了根据本发明的实施例的应用程序升级方法的流程图。
如图2所示,根据本发明的实施例的应用程序升级方法包括:步骤202,当服务器接收到终端的升级请求时,判断是否存在待升级版本的应用程序到目标版本的应用程序的补丁,其中,待升级版本的应用程序安装于终端中,目标版本的应用程序存储于服务器中,若存在,则将补丁传输至终端;步骤204,若不存在,则进一步判断是否存在等待补丁生成的队列,若存在,则将升级请求插入至队列,若不存在,则建立队列,并将升级请求插入至队列;步骤206,服务器接收终端将目标版本的应用程序的配置文件与待升级版本的应用程序的配置文件对比生成的目标文件列表,根据目标文件列表从目标版本的应用程序中提取相应的组成文件,以生成补丁并进行缓存;步骤208,当升级请求在队列的最前端时,服务器将补丁传输至终端。
服务器可以针对不同的待升级版本的应用程序生成相应的升级补丁并进行缓存,终端只需要从服务器下载待升级版本的应用程序所需升级部分的文件即可,而不必从服务器将目标版本的应用程序整个下载,节约了网络带宽资源,降低了服务器的下载压力。
当服务器接收到安装有待升级版本的应用程序的终端的升级请求时,可以将相应的升级补丁发送至该终端,针对安装有相同版本的应用程序的终端的升级请求,只需要将每个升级请求插入至相应的补丁生成列中即可,而不必根据每个安装有相同版本的应用程序的终端的升级请求分别生成一次相应的补丁,只有在应用程序的版本与待升级版本的应用程序的版本不同时,才会根据不同版本的应用程序与目标版本的应用程序的差异生成不同的补丁,从而避免了服务器为来自不同终端的相同版本的应用程序提供多次相同的升级服务,提高了服务器性能,降低了维护各个版本的应用程序中的组成文件的文件名及校验码的配置文件的复杂程度和出错率。
优选地,在步骤202之前,还包括:当待升级版本的应用程序启动时,终端判断待升级版本的应用程序的版本是否低于目标版本的应用程序的版本,若否,则启动待升级版本的应用程序,若是,则向服务器发出升级请求,服务器将升级请求插入至待处理队列,并当升级请求在待处理队列的最前端时,进入步骤202。
当终端启动待升级版本的应用程序时,首先判断待升级版本的应用程序与目标版本的应用程序的版本差异,若待升级版本的应用程序的版本与目标版本的应用程序的版本相同,说明待升级版本的应用程序不需要升级,当待升级版本的应用程序的版本低于目标版本的应用程序的版本时,服务器根据终端的升级请求提供相应的升级服务。
优选地,在步骤202之前,还包括:服务器根据目标版本的应用程序的组成文件的文件名、修改时间、验证码生成目标版本的应用程序的配置文件,以及步骤206还包括:服务器将目标版本的应用程序的配置文件发送至终端。
终端可以接收来自服务器的目标版本的应用程序的配置文件,然后将其与待升级版本的应用程序的配置文件进行对比,从而得到需要升级部分的文件的列表(即目标文件列表),进而从服务器中下载需要升级部分的文件。
优选地,步骤206包括:服务器根据目标文件列表从目标版本的应用程序中提取相应的文件进行压缩以生成补丁。
服务器可以在将待升级版本的应用程序需要升级部分的文件发送至终端之前,对该文件进行压缩处理,以进一步降低服务器的下载压力。
优选地,根据本发明的实施例的应用程序升级方法还包括:终端接收补丁并进行解压以得到相应的组成文件,并根据相应的组成文件替换待升级的应用程序中与相应的组成文件对应的组成文件。
终端可以解压来自服务器的补丁,并根据解压出的组成文件替换待升级版本的应用程序中的组成文件,以完成待升级版本的应用程序的升级。
图3示出了根据本发明的实施例的应用程序升级方法的具体流程图。
如图3所示,根据本发明的实施例的应用程序升级方法具体包括:
步骤302,服务器升级后包含新版本应用程序的组成文件,服务器升级后重启时,重启时根据新版本应用程序的组成文件的文件名及文件修改时间生成配置文件;
步骤304,当用户终端运行应用程序时,将该应用程序与服务器的应用程序进行版本对比,判断版本是否相同,若相同,则进入步骤326;
步骤306,若不同,当用户终端的应用程序的版本低于服务器端应用程序的版本时,将此用户终端的升级请求插入到待处理任务队列中,等待处理;
步骤308,当轮到此终端处理时,服务器查询是否已经生成对应版本的升级补丁,若存在,则进入步骤322;
步骤310,若不存在,服务器进一步判断是否正在生成对应版本的补丁,若正在生成,则进入步骤320;
步骤312,若不在生成,则创建新线程,建立对应此版本的待处理任务队列,将该用户终端的请求插入到此队列中;
步骤314,服务器将新版本的应用程序的配置文件发送到终端;
步骤316,终端将接收到的配置文件与本地的应用程序的配置文件进行对比,检测所需更新的组成文件信息,并将所需更新的组成文件信息发送到服务器;
步骤318,服务器根据所需更新组成文件信息,从最新版本的应用程序中抽取组成文件压缩为升级补丁,并将应用程序版本与补丁存放路径进行缓存,进入步骤322;
步骤320,将升级请求插入补丁生成队列,等待补丁生成;
步骤322,将补丁下载到相应的用户终端,并由用户终端进行解压,对本地的应用程序的组成文件进行替换以完成升级;
步骤324,用户终端运行该应用程序。
以下结合具体实施例对本发明进行进一步说明。
如某公司所采用的某个应用程序存在多个未升级的版本,例如有50人使用A版本,有10人使用B版本,有2人使用C版本,而此时服务器中的该应用程序的版本已升级为D版本(比A版本、B版本和C版本新),并已包含D版本的应用程序的组成文件及文件版本配置文件。
步骤402,当使用A版本的某个用户运行应用程序时,用户终端发送版本信息至服务器端进行版本对比;
步骤404,由于A版本低于服务器端的D版本,服务器端判断是否已存在A-D(即A版本升级到D版本的补丁)的补丁,若已存在,则将该补丁包发送至采用A版本的用户终端,并进入步骤410;
步骤406,若不存在A-D的补丁,服务器判断是否正在生成A-D的补丁,如无,则创建新线程,建立对应A-D的补丁的待处理任务队列,将此A版本用户终端的升级请求插入到此队列中,若又出现使用A版本的用户终端与服务器端进行版本对比,则将其直接插入到该队列;
步骤408,服务器端将D版本应用程序的文件信息发送至使用A版本应用程序的用户终端,这些用户终端根据D版本应用程序的文件信息与本地的A版本应用程序的文件信息进行对比,生成A-D版本所需更新文件列表,并将文件列表发送至服务器;
步骤410,服务器根据收到A-D版本所需更新文件列表后,抽取本地的D版本应用程序的组成文件,压缩成A-D版本升级补丁并进行缓存,然后将该补丁包依次发送给A-D版本的待处理任务队列中的用户终端;
步骤412,A版本客户端收到A-D版本补丁包后,启动升级程序,解压补丁包后替换本地应用程序的相应文件,将本地应用程序版本升级为D版本。
当使用B版本的10人与使用C版本的2人登录时,根据以上步骤分别得到B-D版本与C-D版本升级补丁包,同时升级补丁包的生成过程不会影响使用A版本的50人的A-D版本升级包下载。
可见,使用A版本的用户终端在升级应用程序时,只需下载应用程序升级所需的组成文件,而不需要将D版本的应用程序整个下载,减少了用户终端所携带的信息量,减少了对服务器带宽的占用,并且使用A版本的所有用户终端只需要与服务器进行版本对比,服务器不需要对每个终端都生成一份补丁,减轻了服务器的压力,也免除了开发人员维护各个客户端软件版本所需的配置文件。
以上结合附图详细说明了本发明的技术方案,考虑到相关技术中,应用程序的升级浪费网络带宽资源,对服务器造成极大的下载压力,并且服务器需要多次重复同一操作,降低了服务器的性能。通过本发明的技术方案,能够减少应用程序升级过程中的网络带宽的浪费,降低服务器的下载压力,并且可以避免服务器为来自不同终端的相同版本的应用程序提供多次相同的升级服务。
在本发明中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。术语“多个”指两个或两个以上,除非另有明确的限定。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种应用程序升级系统,其特征在于,包括服务器和终端,其中,待升级版本的应用程序安装于所述终端中,目标版本的应用程序存储于所述服务器中,所述服务器包括:
第一判断单元,用于在第一信息收发单元接收到所述终端的升级请求时,判断是否存在所述待升级版本的应用程序到所述目标版本的应用程序的补丁,若不存在,则判断是否存在等待所述补丁生成的队列;
队列建立单元,用于在不存在所述队列的情况下建立所述队列;
插入单元,用于在存在所述队列的情况下,或在所述队列建立单元建立所述队列后,将所述升级请求插入至所述队列;
所述第一信息收发单元,用于接收目标文件列表以及所述升级请求,并当所述升级请求在所述队列的最前端时或在存在所述补丁的情况下,将所述补丁传输至所述终端;
补丁生成单元,用于根据所述目标文件列表从所述目标版本的应用程序中提取相应的组成文件,以生成所述补丁并进行缓存;以及
所述终端包括:
比较单元,用于将所述目标版本的应用程序的配置文件与所述待升级版本的应用程序的配置文件进行对比,以生成所述目标文件列表;
第二信息收发单元,用于将所述目标文件列表和所述升级请求发送至所述服务器,并接收所述补丁。
2.根据权利要求1所述的应用程序升级系统,其特征在于,所述终端还包括:
第二判断单元,用于在所述待升级版本的应用程序启动时,判断所述待升级版本的应用程序的版本是否低于所述目标版本的应用程序的版本;
启动单元,在所述第二判断单元的判断结果为否的情况下,启动所述待升级版本的应用程序;
所述第二信息收发单元用于在所述第二判断单元的判断结果为是的情况下,将所述升级请求发送至所述服务器;
所述插入单元还用于将所述升级请求插入至待处理队列;以及
所述第一判断单元在所述升级请求在所述待处理队列的最前端时,判断是否存在所述待升级版本的应用程序到所述目标版本的应用程序的补丁。
3.根据权利要求1所述的应用程序升级系统,其特征在于,所述服务器还包括:
配置文件生成单元,用于根据所述目标版本的应用程序的组成文件的文件名、修改时间、验证码生成所述目标版本的应用程序的配置文件,以及所述第一信息收发单元还用于将所述目标版本的应用程序的配置文件发送至所述终端。
4.根据权利要求1所述的应用程序升级系统,其特征在于,所述补丁生成单元用于根据所述目标文件列表,从所述目标版本的应用程序中提取相应的组成文件进行压缩以生成所述补丁。
5.根据权利要求4所述的应用程序升级系统,其特征在于,所述终端还包括:
解压单元,用于对所述补丁进行解压以得到所述相应的组成文件;
替换单元,用于根据所述相应的组成文件替换所述待升级的应用程序中与所述相应的组成文件对应的组成文件。
6.一种应用程序升级方法,其特征在于,包括:
步骤202,当服务器接收到终端的升级请求时,判断是否存在待升级版本的应用程序到目标版本的应用程序的补丁,其中,所述待升级版本的应用程序安装于所述终端中,所述目标版本的应用程序存储于所述服务器中,若存在,则将所述补丁传输至所述终端;
步骤204,若不存在,则进一步判断是否存在等待所述补丁生成的队列,若存在,则将所述升级请求插入至所述队列,若不存在,则建立所述队列,并将所述升级请求插入至所述队列;
步骤206,所述服务器接收所述终端将所述目标版本的应用程序的配置文件与所述待升级版本的应用程序的配置文件对比生成的目标文件列表,根据所述目标文件列表从所述目标版本的应用程序中提取相应的组成文件,以生成所述补丁并进行缓存;
步骤208,当所述升级请求在所述队列的最前端时,所述服务器将所述补丁传输至所述终端。
7.根据权利要求6所述的应用程序升级方法,其特征在于,在所述步骤202之前,还包括:当所述待升级版本的应用程序启动时,所述终端判断所述待升级版本的应用程序的版本是否低于所述目标版本的应用程序的版本,若否,则启动所述待升级版本的应用程序,若是,则向所述服务器发出所述升级请求,所述服务器将所述升级请求插入至待处理队列,并当所述升级请求在所述待处理队列的最前端时,进入步骤202。
8.根据权利要求6所述的应用程序升级方法,其特征在于,在所述步骤202之前,还包括:所述服务器根据所述目标版本的应用程序的组成文件的文件名、修改时间、验证码生成所述目标版本的应用程序的配置文件,以及所述步骤206还包括:所述服务器将所述目标版本的应用程序的配置文件发送至所述终端。
9.根据权利要求6所述的应用程序升级方法,其特征在于,所述步骤206包括:所述服务器根据所述目标文件列表从所述目标版本的应用程序中提取相应的组成文件进行压缩以生成所述补丁。
10.根据权利要求9所述的应用程序升级方法,其特征在于,还包括:所述终端接收所述补丁并进行解压以得到所述相应的组成文件,并根据所述相应的组成文件替换所述待升级的应用程序中与所述相应的组成文件对应的组成文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210476266.4A CN103002024B (zh) | 2012-11-21 | 2012-11-21 | 应用程序升级系统和应用程序升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210476266.4A CN103002024B (zh) | 2012-11-21 | 2012-11-21 | 应用程序升级系统和应用程序升级方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103002024A CN103002024A (zh) | 2013-03-27 |
CN103002024B true CN103002024B (zh) | 2015-05-27 |
Family
ID=47930157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210476266.4A Active CN103002024B (zh) | 2012-11-21 | 2012-11-21 | 应用程序升级系统和应用程序升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103002024B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103152211B (zh) * | 2013-03-29 | 2016-01-06 | 北京奇虎科技有限公司 | 应用程序的安装方法及系统 |
CN104216727A (zh) * | 2013-06-04 | 2014-12-17 | 腾讯科技(深圳)有限公司 | 应用升级方法和系统 |
CN104657170A (zh) * | 2013-11-25 | 2015-05-27 | 腾讯科技(上海)有限公司 | 一种数据更新方法、装置及系统 |
CN104915220B (zh) * | 2014-03-13 | 2019-08-16 | 中国移动通信集团安徽有限公司 | 一种客户端应用程序的升级方法和系统、客户端 |
CN104965719B (zh) * | 2014-06-26 | 2018-07-06 | 腾讯科技(深圳)有限公司 | 应用安装文件生成方法和装置 |
CN106033364B (zh) * | 2015-03-19 | 2021-07-16 | Tcl科技集团股份有限公司 | 一种Web应用程序的升级方法及系统 |
CN106095486A (zh) * | 2016-05-31 | 2016-11-09 | 乐视控股(北京)有限公司 | 应用程序的在线更新方法、系统、终端设备及服务器 |
CN106775802B (zh) * | 2016-11-14 | 2023-04-28 | 福建天泉教育科技有限公司 | 海量小文件快速更新的方法及其系统 |
CN109976795B (zh) * | 2019-03-01 | 2020-12-01 | 上海交通大学 | 一种电子凭据应用异常行为内嵌感知的方法和系统 |
CN112579137A (zh) * | 2019-09-29 | 2021-03-30 | 深圳Tcl数字技术有限公司 | 一种应用程序更新包的生成方法、智能终端及存储介质 |
CN111008028B (zh) * | 2019-11-22 | 2022-07-01 | 杭州数式网络科技有限公司 | 一种软件升级方法、设备和存储介质 |
CN111782263B (zh) * | 2020-07-22 | 2024-01-23 | 网易(杭州)网络有限公司 | 游戏打包的处理方法及装置 |
CN115291962A (zh) * | 2021-12-13 | 2022-11-04 | 上海仙途智能科技有限公司 | 一种自动驾驶系统的配置数据管理方法及装置 |
CN114398065B (zh) * | 2022-03-24 | 2022-07-08 | Tcl通讯科技(成都)有限公司 | 微前端系统更新方法、装置、电子设备及存储介质 |
CN114895949B (zh) * | 2022-07-12 | 2023-01-10 | 荣耀终端有限公司 | 应用程序的更新方法、介质和终端设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101694625A (zh) * | 2009-11-09 | 2010-04-14 | 金蝶软件(中国)有限公司 | 基于加密服务器管理的客户端软件更新方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9563417B2 (en) * | 2006-12-29 | 2017-02-07 | International Business Machines Corporation | Patch management automation tool for UNIX, APARXML |
-
2012
- 2012-11-21 CN CN201210476266.4A patent/CN103002024B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101694625A (zh) * | 2009-11-09 | 2010-04-14 | 金蝶软件(中国)有限公司 | 基于加密服务器管理的客户端软件更新方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103002024A (zh) | 2013-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103002024B (zh) | 应用程序升级系统和应用程序升级方法 | |
CN101110788B (zh) | 升级客户端软件的方法及系统 | |
CN102129378B (zh) | 一种软件菜单更新方法和装置 | |
CN101719073B (zh) | 一种基于智能客户端的按需下载实现方法 | |
US8286127B2 (en) | Mirrored file system | |
CN103678319B (zh) | 资源文件更新方法、装置和系统及服务器 | |
WO2016188059A1 (zh) | 一种云编译实现Java应用安装的方法、装置及系统 | |
US9792623B2 (en) | Advertisement processing method and apparatus | |
US20140007074A1 (en) | Methods for updating applications | |
AU2013277518B2 (en) | Auto-update while running client interface with handshake | |
WO2013078951A1 (zh) | 软件升级方法和系统 | |
CN107809324A (zh) | 一种车载自动诊断系统设备及其升级方法 | |
CN102053853A (zh) | 一种网络游戏版本更新方法 | |
CN103188097A (zh) | 一种实现补丁管理的方法、装置及系统 | |
CN101826026A (zh) | 嵌入式设备、嵌入式设备中固件在线升级的系统及方法 | |
CN110532016B (zh) | 版本管理方法、版本更新方法和版本管理系统 | |
CN105245567A (zh) | 一种处理更新请求的方法和服务器系统 | |
CN104133704B (zh) | 软件升级、升级包下发方法、装置和设备 | |
CN105760183A (zh) | 文件处理方法、装置及通信系统 | |
CN112256989A (zh) | 基于离线包的页面加载方法、装置、终端设备及存储介质 | |
CN111736876A (zh) | 客户端更新控制方法、装置、存储介质及服务器 | |
CN109240726B (zh) | 一种软件更新方法及系统 | |
CN112764772A (zh) | 更新文件的预下载方法、加载方法、装置、设备及介质 | |
CN107179918B (zh) | 软件处理方法、装置及系统 | |
CN112328284A (zh) | 应用程序升级方法、系统、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20160202 Address after: 100094 Beijing City, North Road, Haidian District, No. 68, building 2, floor 2 Patentee after: You Pu Information Technology Co., Ltd of UFSOFT Address before: 100094 Beijing city Haidian District North Road No. 68, UFIDA Software Park Patentee before: UFIDA Software Co., Ltd. |