差分升级包的处理方法及装置,升级方法、系统及装置与流程

文档序号:12176527阅读:242来源:国知局
差分升级包的处理方法及装置,升级方法、系统及装置与流程

本发明涉及通信领域,具体而言,涉及一种差分升级包的处理方法及装置,升级方法、系统及装置。



背景技术:

移动终端的空中下载软件升级(Firmware Over-The-Air,简称FOTA)升级技术是现在移动终端中使用非常频繁的技术,对于系统版本维护起着重要作用。假设存在版本V1,V2,目前已发布V1-V2的差分升级包,现在新出了V3版本,则用户要升级到V3的方法有:方式1通过V1-V2、V2-V3升级,称为阶梯升级,方式2是V1-V3、V2-V3升级,称为跨版本升级。目前的技术中,随着新版本的增加,方式1在版本发布与测试上控制都非常简单,每个新版本发布只需要测试前一个版本到新版本功能正常即可,但是对于用户而言,如果V1要升级到V3则需要先升级到V2,严重影响用户的体验;方式2对于用户体验有明显改善,但是如果每个新版本都要制作所有旧版本的跨版本升级包,无论是升级包制作还是升级包上传服务器以及升级包测试都是不小的工作量,特别是升级包增多后,由于是人为操作,很容易出现问题。

在用户体验至上的时代,方式2是所有厂商都应该选择的方式,为了解决方式2即跨版本升级带来的版本维护问题,在相关技术中,也提出过一些解决办法,在相关技术中,主要提出了两种解决跨版本升级维护问题的方案:方案一,将所有的系统版本放到服务器上,在终端请求时,生成对应的差分升级包然后下发给终端;方案二,服务器上的差分升级包打包到一起下发给终端,终端根据打包后的所有差分包,逐个进行升级,最后升级到最新版本。

尽管上述两种方案都能达到简化跨版本升级中的版本维护的工作,但是也存在相应的问题,方案一,由于要把所有的版本都放到服务器上,就会导致服务器需要很大的容量来保存,随着版本的增多,所需容量也会越来越大;方案二,可以减少对服务器容量的需求,但是由于其直接将各个版本的差分升级包打包到一起,可能存在过多的冗余信息,随着版本的增多,由于需要对差分升级包逐个升级,对于终端的处理要求也会增高。

针对在相关技术中的跨版本升级中升级包制作和维护工作量大的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明提供了一种差分升级包的处理方法及装置,升级方法、系统及装置,以至少 解决相关技术中升级包制作和维护工作量大的问题。

根据本发明的一个方面,提供了一种差分升级包的处理方法,包括:接收客户端发送的升级请求;其中,升级请求用于指示客户端将指定软件的第一版本升级至第三版本;将第一版本到第三版本的第三差分升级包下发给客户端,其中,第三差分升级包通过第一差分升级包和预先存储的第二差分升级包生成,第一差分升级包为指定软件的第二版本到第三版本的差分升级包,第二差分升级包为第一版本到第二版本的差分升级包,其中,第三版本高于第二版本,第二版本高于第一版本。

在本发明实施例中,在第三差分升级包通过第一差分升级包和预先存储的第二差分升级包生成之后,方法还包括:删除第二差分升级包。

在本发明实施例中,第三差分升级包通过第一差分升级包和预先存储的第二差分升级包生成包括:读取第二差分升级包中第二替换数据的位置及长度,得到第二替换数据在第二版本中对应的第二差异数据的位置及长度;其中,第二替换数据是第一版本中被第二版本替换的数据;第二差异数据是第二版本相对于第一版本的差异数据;读取第一差分升级包中第一替换数据的位置及长度,得到第一替换数据在第二版本中对应的第一差异数据的位置及长度;其中,第一替换数据是第二版本中被第三版本替换的数据;第一差异数据是第三版本相对于第二版本的差异数据;根据第二替换数据的位置及长度、第二差异数据、第一替换数据的位置及长度和第一差异数据,生成第三差分升级包。

在本发明实施例中,根据第二替换数据的位置及长度、第二差异数据、第一替换数据的位置及长度和第一差异数据,生成第三差分升级包包括:若在第二差异数据的位置范围内存在第一差异数据,则将第一差异数据合成到第二差异数据中得到第三差分升级包对应的第三差异数据;其中,位置范围的第一端点为第二差异数据的起始位置,位置范围的长度为第二差异数据的长度。在第二差异数据的位置范围内存在第一差异数据的情况下,通过以下方式确定第三差分升级包中的第三替换数据的位置,其中,第三替换数据是第一版本中被第三版本替换的数据:在第一替换数据的起始位置在第二替换数据的位置范围内时,第三替换数据的起始位置为第二替换数据的起始位置;在第一替换数据的起始位置小于第二替换数据的起始位置时,第三替换数据的起始位置为第一替换数据的起始位置与第二版本相对于第一版本增加的长度之差;在第二差异数据的位置范围内存在第一差异数据的情况下,通过以下方式确定第三替换数据的长度:在第一替换数据的起始位置在第二替换数据的位置范围内时,第三替换数据的长度为第二替换数据的长度;在第一替换数据的起始位置小于第二替换数据的起始位置时,第三替换数据的长度为第一替换数据的长度超出第二差异数据的结束位置的长度与第二替换数据的长度之和;其中,第二替换数据的位置范围的第一端点为第二差异数据的起始位置,第二替换数据的位置范围的长度为第二差异数据的长度。

在本发明实施例中,将第一差异数据合成到第二差异数据中得到第三差分数据包括:将第一差异数据与第二差异数据的重叠的差异数据以及第二差异数据中除了重叠的差 异数据之外的剩余差异数据组成第三差异数据。

在本发明实施例中,根据第二替换数据的位置及长度、第二差异数据、第一替换数据的位置及长度和第一差异数据,生成第三差分升级包包括:若在第二差异数据的位置范围内不存在第一差异数据,则将第一差异数据插入到第二差异数据中得到第三差分升级包对应的第三差异数据;其中,第三差异数据是第三版本相对于第一版本的差异数据;根据第一替换数据的起始位置与第二替换数据的起始位置的变化值确定第三差分升级包中的第三替换数据的起始位置;其中,第三替换数据是第一版本中被第三版本替换的数据;将第一替换数据的长度作为第三替换数据的长度。

在本发明实施例中,将第一差异数据插入到第二差异数据中得到第三差异数据包括:将第一差异数据作为第三差异数据。

根据本发明的另一方面,提供了一种升级方法,包括:接收服务器下发的指定软件的第一版本到第三版本的第三差分升级包;其中第三差分升级包为服务器通过第一差分升级包和服务器预先存储的第二差分升级包生成,第一差分升级包为指定软件的第二版本到第三版本的差分升级包,第二差分升级包为第一版本到第二版本的差分升级包,其中,第三版本高于第二版本,第二版本高于第一版本;根据第三差分升级包将第一版本升级至第三版本。

根据本发明的另一方面,提供了一种升级系统,包括:服务器,客户端;客户端,用于向服务器发送将第一版本升级至第三版本的升级请求;服务器,用于存储第一版本到第二版本的第二差分升级包,在接收到第二版本到第三版本的第一差分升级包时,触发生成第一版本到第三版本的第三差分升级包;以及将差分升级包制作工具生成的第三差分升级包下发至客户端。

在本发明实施例中,服务器,还用于在生成第三差分升级包之后,删除第二差分升级包。

根据本发明的另一方面,提供了一种差分升级包的处理装置,包括:接收模块,用于接收客户端发送的升级请求;其中,升级请求用于指示客户端将指定软件的第一版本升级至第三版本;发送模块,用于将第一版本到第三版本的第三差分升级包下发给客户端,其中,第三差分升级包通过第一差分升级包和预先存储的第二差分升级包生成,第一差分升级包为指定软件的第二版本到第三版本的差分升级包,第二差分升级包为第一版本到第二版本的差分升级包,其中,第三版本高于第二版本,第二版本高于第一版本。

在本发明实施例中,上述装置还包括:删除模块,用于删除第二差分升级包。

根据本发明的另一方面,提供了一种升级装置,包括:接收模块,用于接收服务器下发的指定软件的第一版本到第三版本的第三差分升级包;其中第三差分升级包为服务器通过第一差分升级包和服务器预先存储的第二差分升级包生成,第一差分升级包为指 定软件的第二版本到第三版本的差分升级包,第二差分升级包为第一版本到第二版本的差分升级包,其中,第三版本高于第二版本,第二版本高于第一版本;升级模块,用于根据第三差分升级包将第一版本升级至第三版本。

通过本发明,采用在客户端需要从第一版本升级至第三版本的情况下,通过第二版本到第三版本的第一差分升级包和预先存储的第一版本到第二版本的第二差分升级包来生成从第一版本升级至第三版本的第三差分升级包,然后直接将第三差分升级包下发给客户端,解决了相关技术中升级包制作和维护工作量大的问题,进而达到了减少了升级包制作和维护的工作量的目的,提高了版本升级的效率,降低了维护的成本。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的差分升级包的处理方法的流程图;

图2是根据本发明实施例的升级方法的流程图;

图3是根据本发明优选实施例的差分升级包的制作方法的流程示意图;

图4是根据本发明实施例提供的第三差分升级包中的补丁数据的生成示意图;

图5是根据本发明实施例提供的升级系统的示意图;

图6是根据本发明实施例的差分升级包的处理装置的结构框图;

图7是根据本发明实施例提供的升级装置的结构框图;

图8是根据本发明优选实施例的升级系统对差分升级包的处理流程图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

在本实施例中提供了一种差分升级包的处理方法,图1是根据本发明实施例的差分升级包的处理方法的流程图,如图1所示,该流程包括如下步骤:

步骤S102,接收客户端发送的升级请求;其中,升级请求用于指示客户端将指定软件的第一版本升级至第三版本;

步骤S104,将第一版本到第三版本的第三差分升级包下发给客户端,其中,第三差分升级包通过第一差分升级包和预先存储的第二差分升级包生成,第一差分升级包为指定软件的第二版本到第三版本的差分升级包,第二差分升级包为第一版本到第二版本的差分升级包,其中,第三版本高于第二版本,第二版本高于第一版本。

通过上述步骤,采用在客户端需要从第一版本升级至第三版本的情况下,通过第二版本到第三版本的第一差分升级包和预先存储的第一版本到第二版本的第二差分升级包来生成从第一版本升级至第三版本的第三差分升级包,然后直接将第三差分升级包下发给客户端,解决了相关技术中升级包制作和维护工作量大的问题,进而达到了减少了升级包制作和维护的工作量的目的,提高了版本升级的效率,降低了维护的成本。

需要说明的是,上述第三差分升级包的生成过程可以是在服务器上完成的,在生成之前,需要将上述第一差分升级包上传到服务器上,当服务器接收到该第一差分升级包时,会触发生成上述第三差分升级包的流程。

在本发明的一个实施例中,上述方法还包括:删除上述第二差分升级包。

举个例子:第一版本为版本1,第二版本为版本2,第三版本为版本4;客户端需要将版本1升级至版本4,而服务器上存储有版本1升级至版本2的差分升级包(相当于上述的第二差分升级包),当服务器接收到版本2到版本4的差分升级包(相当于上述的第一差分升级包)时,触发生成版本1到版本4的差分升级包(相当于上述的第三差分升级包),在生成之后,保留第一差分升级包,第三差分升级包,而删除第二差分升级包,这样服务器中存储有版本1和版本2分别到版本4的差分升级包,而不存储中间版本之间的差分升级包,比如版本1和2之间的差分升级包,即服务器存储了所有旧版本到最新版本的差分升级包,当客服端需要升级时,直接将下发对应版本最新的差分升级包给客户端即可。

在本发明实施例中,服务器中不需要将所有版本都放到服务器上,也不需要在客户端请求升级时将需要的升级包打包在一起下发给客户端,而只需要将差分升级包存储在服务器中,并在需要升级至最新版本时,生成所有旧版本到最新版本的差分升级包,将对应版本的最新的差分升级包下发给客户端,这样节省了服务器大量的存储空间,降低了服务器的维护的成本,同时还具有差分升级的优势。

在本发明实施例中,可以通过以下方式生成第三差分升级:读取第二差分升级包中第二替换数据的位置及长度,得到第二替换数据在第二版本中对应的第二差异数据的位置及长度;其中,第二替换数据是第一版本中被第二版本替换的数据;第二差异数据是第二版本相对于第一版本的差异数据;读取第一差分升级包中第一替换数据的位置及长度,得到第一替换数据在第二版本中对应的第一差异数据的位置及长度;其中,第一替换数据是第二版本中被第三版本替换的数据;第一差异数据是第三版本相对于第二版本的差异数据;根据第二替换数据的位置及长度、第二差异数据、第一替换数据的位置 及长度和第一差异数据,生成第三差分升级包。

在本发明实施例中,上述根据第二替换数据的位置及长度、第二差异数据、第一替换数据的位置及长度和第一差异数据,生成第三差分升级包具体可以是:若在第二差异数据的位置范围内存在第一差异数据,则将第一差异数据合成到第二差异数据中得到第三差分升级包对应的第三差异数据;其中,位置范围的第一端点为第二差异数据的起始位置,位置范围的长度为第二差异数据的长度。在第二差异数据的位置范围内存在第一差异数据的情况下,通过以下方式确定第三差分升级包中的第三替换数据的位置,其中,第三替换数据是第一版本中被第三版本替换的数据:在第一替换数据的起始位置在第二替换数据的位置范围内时,第三替换数据的起始位置为第二替换数据的起始位置;在第一替换数据的起始位置小于第二替换数据的起始位置时,第三替换数据的起始位置为第一替换数据的起始位置与第二版本相对于第一版本增加的长度之差;在第二差异数据的位置范围内存在第一差异数据的情况下,通过以下方式确定第三替换数据的长度:在第一替换数据的起始位置在第二替换数据的位置范围内时,第三替换数据的长度为第二替换数据的长度;在第一替换数据的起始位置小于第二替换数据的起始位置时,第三替换数据的长度为第一替换数据的长度超出第二差异数据的结束位置的长度与第二替换数据的长度之和;其中,第二替换数据的位置范围的第一端点为第二差异数据的起始位置,第二替换数据的位置范围的长度为第二差异数据的长度。

在本发明实施例中,将第一差异数据合成到第二差异数据中得到第三差分数据可以包括:将第一差异数据与第二差异数据的重叠的差异数据以及第二差异数据中除了重叠的差异数据之外的剩余差异数据组成第三差异数据。

在本发明实施例中,根据第二替换数据的位置及长度、第二差异数据、第一替换数据的位置及长度和第一差异数据,生成第三差分升级包可以包括:若在第二差异数据的位置范围内不存在第一差异数据,则将第一差异数据插入到第二差异数据中得到第三差分升级包对应的第三差异数据;其中,第三差异数据是第三版本相对于第一版本的差异数据;根据第一替换数据的起始位置与第二替换数据的起始位置的变化值确定第三差分升级包中的第三替换数据的起始位置;其中,第三替换数据是第一版本中被第三版本替换的数据;将第一替换数据的长度作为第三替换数据的长度。

在本发明实施例中,将第一差异数据插入到第二差异数据中得到第三差异数据可以包括:将第一差异数据作为第三差异数据。

在本实施例中提供了一种升级方法,图2是根据本发明实施例的升级方法的流程图,如图2所示,该流程包括如下步骤:

步骤S202,接收服务器下发的指定软件的第一版本到第三版本的第三差分升级包;其中第三差分升级包为服务器通过第一差分升级包和服务器预先存储的第二差分升级包生成,第一差分升级包为指定软件的第二版本到第三版本的差分升级包,第二差分升 级包为第一版本到第二版本的差分升级包,其中,第三版本高于第二版本,第二版本高于第一版本;

步骤S204,根据第三差分升级包将第一版本升级至第三版本。

需要说明的是,上述第三差分升级包的生成过程可以是在服务器上完成的,在生成之前,需要将上述第一差分升级包上传到服务器上,当服务器接收到该第一差分升级包时,会触发生成上述第三差分升级包的流程。

需要说明的是,在服务器生成上述第三差分升级包后,还可以删除第二差分升级包。

举个例子:第一版本为版本1,第二版本为版本2,第三版本为版本4;客户端需要将版本1升级至版本4,而服务器上存储有版本1升级至版本2的差分升级包(相当于上述的第二差分升级包),当服务器接收到版本2到版本4的差分升级包(相当于上述的第一差分升级包)时,触发生成版本1到版本4的差分升级包(相当于上述的第三差分升级包),在生成之后,保留第一差分升级包,第三差分升级包,而删除第二差分升级包,这样服务器中存储有版本1和版本2分别到版本4的差分升级包,而不存储中间版本之间的差分升级包,比如版本1和2之间的差分升级包,即服务器存储了所有旧版本到最新版本的差分升级包,当客服端需要升级时,直接将下发对应版本(即本例中的版本1)最新的差分升级包(即本例中的第三差分升级包)给客户端,客户端根据该最新的差分升级包进行升级即可。

在本发明实施例中,服务器中不需要将所有版本都放到服务器上,也不需要在客户端请求升级时将需要的升级包打包在一起下发给客户端,而只需要将差分升级包存储在服务器中,并在需要升级至最新版本时,生成所有旧版本到最新版本的差分升级包,将对应版本的最新的差分升级包下发给客户端,客户端根据该最新的差分升级包进行升级即可,这样节省了服务器大量的存储空间,降低了服务器的维护的成本,同时还具有差分升级的优势。

对于服务器通过上述第一差分升级包和第二差分升级包生成第三差分升级包的方法与上述图1所示实施例的生成方法相同,此处不再赘述。

为了更好的理解本发明,以下结合优选的实施例对本发明作进一步的解释。

本发明实施例提供了一种优选的差分升级包的处理方法:为了便于方法说明,假设用V1、V2、V3表示三个版本,其中V1为最旧的版本,V3为最新的版本。V1-V2表示V1到V2的差分升级包(相当于图1所示实施例中的第二差分升级包),V2-V3表示V2到V3的差分升级包(相当于图1所示实施例中的第一差分升级包),V1-V3表示V1到V3的差分升级包(相当于图1所示实施例中的第三差分升级包)。

对于差分升级包,其补丁数据结构分为(差异数据位置,差异数据长度,差异数据)(增加数据位置,增加数据长度,差异数据),以下将上述两种数据结构统称为补丁数 据位置及长度,以及差异数据。图3是根据本发明优选实施例的差分升级包的制作方法的流程示意图,如图3所示,该方法主要步骤如下:

步骤S302,读取V1-V2差分升级包中差分文件的补丁数据位置及长度(相当于图1所示实施例中的第二替换数据的位置及长度),得到在V2版本对应文件中的位置及长度(相当于图1所示实施例中的第二差异数据的位置及长度),并记录;

步骤S304,读取V2-V3差分升级包中相同差分文件的补丁数据位置及长度(相当于图1所示实施例中的第一替换数据的位置及长度),然后按照如下方式合成新的差分数据:根据步骤1记录的V1-V2差分数据在V2文件中的位置及长度(相当于图1所示实施例中的第二差异数据的位置范围),如果V2-V3中对应文件在该位置开始的长度范围内(相当于图1所示实施例中的第二差异数据的位置及长度)存在补丁数据(相当于图1所示实施例中的第一差异数据),则将V2-V3补丁数据(相当于图1所示实施例中的第一差异数据)合成到V1-V2的对应补丁数据(相当于图1所示实施例中的第二差异数据)中,如果V2-V3中对应文件没有在V1-V2的补丁数据范围内,则将该补丁数据(相当于图1所示实施例中的第一差异数据)作为新的补丁数据插入。

步骤S306,生成V1-V3的差分升级包(相当于图1所示实施例中的第三差分升级包)。

上述步骤S304中,补丁数据(相当于图1所示实施例中的第三差分升级包)根据不同情况生成方式也不同,图4是根据本发明实施例提供的第三差分升级包中的补丁数据的生成示意图,如图4所示,具体流程如下:左侧图中V1-V2表示在V1版本中需要被替换的位置及长度(相当于图1所示实施例中的第二替换数据的位置及长度),V2表示V2相对于V1的差异数据(相当于图1所示实施例中的第二差异数据),V2-V3表示在V2版本中需要被替换的位置及长度(相当于图1所示实施例中的第一替换数据的位置及长度)。V3表示V3相对于V2的差异数据(相当于图1所示实施例中的第一差异数据)。右侧图中表示新生成差分数据,V1-V3表示在V1版本中需要被替换的位置及长度(相当于图1所示实施例中的第三替换数据的位置及长度),V3表示相对于V1的差异数据(相当于图1所示实施例中的第三差异数据)。):

如果V1-V2和V2-V3存在数据交叉,则V1-V3的起始位置及长度由左侧的V1-V2,V2的差异数据及V2-V3来确定,位置确定方法:如果V2-V3起始位置在V2的差异数据范围内,则V1-V3的起始位置为V1-V2的起始位置;如果V2-V3起始位置在V2的差异数据左侧,则V1-V3的起始位置为V2-V3的起始位置减去当前V2中相对于V1中增加的长度;长度确定方法:如果V2-V3长度在V2差异数据范围内则最终长度即为V1-V2的长度,如果V2-V3长度在V2差异数据范围外则最终长度为V1-V2的长度加上V2-V3超出V2差异数据结束位置的长度。V3相对于V1的差异数据由V2相对于V1的差异数据和V3相对于V2的差异数据合并得到,合并方式如下:将V3相对于V2的差异数据覆盖到V2相对于V1的差异数据重叠部分,剩余部分直接使用。

如果V1-V2和V2-V3不存在数据交叉,则V1-V3的起始位置由V2-V3的起始位置对应于V2当前位置相对于V1改变了多少获得。数据长度及差异数据保持为V2-V3的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

在本实施例中还提供了一种升级系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。

图5是根据本发明实施例提供的升级系统的示意图,如图5所示,该系统包括:服务器52,客户端54;客户端54,用于向服务器52发送将第一版本升级至第三版本的升级请求;服务器52,用于存储第一版本到第二版本的第二差分升级包,在接收到第二版本到第三版本的第一差分升级包时,触发生成第一版本到第三版本的第三差分升级包;以及将差分升级包制作工具生成的第三差分升级包下发至客户端54。

通过上述系统,采用在客户端54需要从第一版本升级至第三版本的情况下,服务器52通过第二版本到第三版本的第一差分升级包和预先存储的第一版本到第二版本的第二差分升级包来生成从第一版本升级至第三版本的第三差分升级包,然后直接将第三差分升级包下发给客户端54,解决了相关技术中升级包制作和维护工作量大的问题,进而达到了减少了升级包制作和维护的工作量的目的,提高了版本升级的效率,降低了维护的成本。

在本发明实施例中,上述服务器52,还用于在生成第三差分升级包之后,删除第二差分升级包。

举个例子:第一版本为版本1,第二版本为版本2,第三版本为版本4;客户端54需要将版本1升级至版本4,而服务器52上存储有版本1升级至版本2的差分升级包(相当于上述的第二差分升级包),当服务器52接收到版本2到版本4的差分升级包(相当于上述的第一差分升级包)时,触发生成版本1到版本4的差分升级包(相当于上述的第三差分升级包),在生成之后,保留第一差分升级包,第三差分升级包,而删除第二差分升级包,这样服务器52中存储有版本1和版本2分别到版本4的差分升级包,而不存储中间版本之间的差分升级包,比如版本1和2之间的差分升级包,即服务器52存储了所有旧版本到最新版本的差分升级包,当客服端54需要升级时,直接将下发对应版本最新的差分升级包给客户端54即可。

在本发明实施例中,服务器52中不需要将所有版本都放到服务器52上,也不需要在客户端54请求升级时将需要的升级包打包在一起下发给客户端54,而只需要将差分 升级包存储在服务器52中,并在需要升级至最新版本时,生成所有旧版本到最新版本的差分升级包,将对应版本的最新的差分升级包下发给客户端54,这样节省了服务器52大量的存储空间,降低了服务器52的维护的成本,同时还具有差分升级的优势。

对于服务器生成第三差分升级包的过程,与上述实施例中的生成方式相同,此处不再赘述。

在本实施例中还提供了一种差分升级包的处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图6是根据本发明实施例的差分升级包的处理装置的结构框图,如图6所示,该装置包括:

接收模块62,用于接收客户端发送的升级请求;其中,升级请求用于指示客户端将指定软件的第一版本升级至第三版本;

发送模块64,与上述接收模块62连接,用于将第一版本到第三版本的第三差分升级包下发给客户端,其中,第三差分升级包通过第一差分升级包和预先存储的第二差分升级包生成,第一差分升级包为指定软件的第二版本到第三版本的差分升级包,第二差分升级包为第一版本到第二版本的差分升级包,其中,第三版本高于第二版本,第二版本高于第一版本。

通过上述装置,采用在接收模块62接收到客户端需要从第一版本升级至第三版本的请求的情况下,通过第二版本到第三版本的第一差分升级包和预先存储的第一版本到第二版本的第二差分升级包来生成从第一版本升级至第三版本的第三差分升级包,然后发送模块64直接将第三差分升级包下发给客户端54,解决了相关技术中升级包制作和维护工作量大的问题,进而达到了减少了升级包制作和维护的工作量的目的,提高了版本升级的效率,降低了维护的成本。

需要说明的是,上述装置可以应用在服务器上,也可以应用其他设备上,但不限于此。

在本发明实施例中,上述装置还包括:删除模块,用于删除第二差分升级包。

对于生成第三差分升级包的过程,与上述实施例中的生成方式相同,此处不再赘述。

在本实施例中还提供了一种升级装置,图7是根据本发明实施例提供的升级装置的结构框图,如图7所示,该装置包括:

接收模块72,用于接收服务器下发的指定软件的第一版本到第三版本的第三差分升级包;其中第三差分升级包为服务器通过第一差分升级包和服务器预先存储的第二差分 升级包生成,第一差分升级包为指定软件的第二版本到第三版本的差分升级包,第二差分升级包为第一版本到第二版本的差分升级包,其中,第三版本高于第二版本,第二版本高于第一版本;

升级模块74,用于根据第三差分升级包将第一版本升级至第三版本。

需要说明的是,上述装置可以用于客户端。

通过上述装置,采用在接收模块72接收到服务器下发的从第一版本升级至第三版本的第三差分升级包,其中,该第三差分升级包是服务器通过第二版本到第三版本的第一差分升级包和预先存储的第一版本到第二版本的第二差分升级包来生成,升级版本74根据该第三差分升级包将第一版本升级到第三版本,解决了相关技术中升级包制作和维护工作量大的问题,进而达到了减少了升级包制作和维护的工作量的目的,提高了版本升级的效率,降低了维护的成本。

对于服务器生成第三差分升级包的过程,与上述实施例中的生成方式相同,此处不再赘述。

为了更好的理解本发明,以下结合优选的实施例对本发明作进一步的解释。

本发明实施例提供了一个优选的升级系统该升级系统包括:升级包制作工具,客户端,服务器。图8是根据本发明优选实施例的升级系统对差分升级包的处理流程图,如图8所示,该处理流程包括如下步骤:

步骤S802,上传最新版本与前一版本的差分升级包;

步骤S804,服务器读取所有已存在的差分升级包;

步骤S806,生成所有旧版本到最新版本的差分升级包;

步骤S808,根据终端请求信息下发对应的升级包。

通过上述步骤中的升级包制作,服务器对升级包的处理,以及服务器对客户端的响应。升级包制作时只需要制作最新版本相对于前一版本的差分升级包(相当于上述实施例中的第一差分升级包),服务器对升级包的处理为服务器上如果已上传各版本差分升级包(相当于上述实施例中的第二差分升级包),当上传新的差分升级包(相当于上述实施例中的第一差分升级包)时,触发上述差分升级包制作工具,自动生成新的差分升级包(相当于上述实施例中的第三差分升级包),服务器对客户端的响应为客户端请求升级时服务器直接下发对应版本最新的差分升级包。例如服务器上当前有V1-V2的差分升级包,上传V2-V3的差分升级包时,则服务器根据V1-V2及V2-V3的差分升级包自动生成V1-V3的差分升级包同时删除V1-V2的差分升级包,保留V2-V3的差分升级包。目前服务器上存在V1-V3和V2-V3的差分升级包,当用户以V1检测升级包时则下发V1-V3的升级包,用户以V2检测升级包时则下发V2-V3的升级包。如果又上传 了V3-V4的差分升级包,则服务器自动生成V1-V4、V2-V4的差分升级包并对相应的用户请求进行升级。

需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述模块分别位于多个处理器中。

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:

S1,接收客户端发送的升级请求;其中,升级请求用于指示客户端将指定软件的第一版本升级至第三版本;

S2,将第一版本到第三版本的第三差分升级包下发给客户端,其中,第三差分升级包通过第一差分升级包和预先存储的第二差分升级包生成,第一差分升级包为指定软件的第二版本到第三版本的差分升级包,第二差分升级包为第一版本到第二版本的差分升级包,其中,第三版本高于第二版本,第二版本高于第一版本。

可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1