一种增量升级方法及应用其的服务器与流程

文档序号:13218732阅读:198来源:国知局
技术领域本申请涉及数据处理技术领域,特别是涉及一种增量升级方法及应用其的服务器。

背景技术:
版本升级是指对操作系统或软件旧版本的漏洞进行完善,或者对软件添加新的应用功能的更新,使软件更加完善好用。增量升级为一种常用的版本升级方法,其基本原理为:服务器比较应用程序的旧版本文件和新版本文件(即目标文件),生成用于记录所述旧版本文件和新版本文件之间的差异信息的增量文件;客户端下载所述增量文件,并将所述增量文件与自身的旧版本文件进行合并,得到对应的新版本文件,安装后该新版本文件后即完成版本升级。相对于通过下载整个新版本文件来执行升级的方式,上述增量升级方法消耗的数据流量更少、占用的时间更短、升级效率更高,因而得到广泛应用。通常的,同一应用程序的同一版本文件会因发行渠道不同而有所差异,例如:对于UC浏览器的安装程序,GooglePlay发行的1.0版本文件APK1a中存在文件x,而百度手机助手发行的1.0版本文件APK1b中不存在文件x;UC应用商店发行的1.0版本文件APK1c和APK1a中都存在名称为y的文件,但内容不同。另外,针对特定发行渠道的安装文件得到的增量文件只能对该发行渠道的文件进行增量升级,例如,要将UC浏览器的1.0版本文件增量升级至2.0版本的目标文件APK2,需要将APK1a、APK1b和APK1c分别与APK2对比,得到的APK1a和APK2之间的增量文件CLa用于实现由APK1a至APK2的增量升级,APK1b和APK2之间的增量文件CLb用于实现由APK1b至APK2的增量升级,APK1c和APK2之间的增量文件CLc用于实现由APK1c至APK2的增量升级。因此,现有增量升级方法需要服务器端针对每个发行渠道的旧版本文件分别与目标文件对比,得到对应的增量文件。但实际应用中应用程序的发行渠道多种多样,不同发行渠道对应的增量文件不可复用,如果在增量升级过程中针对当前待升级的旧文件与目标文件对比得到当前情况所需的增量文件,则必将影响增量升级效率;如果预先计算并存储各个版本各个渠道对应的增量文件,则需要占用大量的服务器存储空间。

技术实现要素:
为了解决上述技术问题,本申请实施例公开了如下技术方案:本申请第一方面,提供一种增量升级方法,包括:比较目标应用程序的各个旧版文件中的子文件,得到包含所述各个旧版文件中所有非公共子文件的差异文件集合;其中,所述各个旧版文件的版本号相同、发行渠道不同;根据所述目标应用程序的目标文件和所述差异文件集合确定增量文件;将所述增量文件发送至客户端,以供所述客户端将自有的所述旧版文件与所述增量文件合并得到所述目标文件。结合第一方面,在本申请第一方面第一种可能的实现方式中,所述根据所述目标应用程序的目标文件和所述差异文件集合确定增量文件的步骤,包括:针对所述目标文件中的每个目标子文件,判断所述差异文件集合中是否存在对应的差异子文件;将存在对应的差异子文件的第一目标子文件写入所述增量文件。结合第一方面第一种可能的实现方式,在本申请第一方面第二种可能的实现方式中,所述增量升级方法还包括:在所述比较目标应用程序的各个旧版文件中的子文件的步骤中,获取包含所述各个旧版文件中所有公共子文件的公共文件集合;所述根据所述目标应用程序的目标文件和所述差异文件集合确定增量文件的步骤,还包括:对于不存在对应的差异子文件的第二目标子文件,判断所述第二目标子文件在所述公共文件集合中是否存在对应的公共子文件;如果存在对应的公共子文件,则将所述第二目标子文件和对应的公共子文件执行差异计算得到差异数据,将所述差异数据写入所述增量文件;如果不存在对应的公共子文件,则将所述第二目标子文件写入所述增量文件。结合第一方面第一种可能的实现方式,在本申请第一方面第三种可能的实现方式中,所述根据所述目标应用程序的目标文件和所述差异文件集合确定增量文件的步骤,还包括:对于不存在对应的差异子文件的第二目标子文件,判断所述第二目标子文件在所述对比旧版文件中是否存在对应的旧版子文件;其中,所述对比旧版文件为任一个发行渠道对应的旧版文件;如果存在对应的旧版子文件,则将所述第二目标子文件和对应的旧版子文件执行差异计算得到差异数据,将所述差异数据写入所述增量文件;如果不存在对应的旧版子文件,则将所述第二目标子文件写入所述增量文件。本申请第二方面,提供一种服务器,包括:差异文件获取单元,用于比较目标应用程序的各个旧版文件中的子文件,得到包含所述各个旧版文件中所有非公共子文件的差异文件集合;其中,所述各个旧版文件的版本号相同、发行渠道不同;增量文件生成单元,用于根据所述目标应用程序的目标文件和所述差异文件集合确定增量文件;发送单元,用于将所述增量文件发送至客户端,以供所述客户端将自有的所述旧版文件与所述增量文件合并得到所述目标文件。结合第二方面,在本申请第二方面第一种可能的实现方式中,所述增量文件生成单元包括:第一判断单元,用于针对所述目标文件中的每个目标子文件,判断所述差异文件集合中是否存在对应的差异子文件;第一写入单元,用于将存在对应的差异子文件的第一目标子文件写入所述增量文件。结合第二方面第一种可能的实现方式,在本申请第二方面第二种可能的实现方式中,所述服务器还包括:公共文件获取单元,用于获取包含所述各个旧版文件中所有公共子文件的公共文件集合;所述增量文件生成单元还包括:第二判断单元,用于对于不存在对应的差异子文件的第二目标子文件,判断所述第二目标子文件在所述公共文件集合中是否存在对应的公共子文件;第二写入单元,用于在存在对应的公共子文件时,将所述第二目标子文件和对应的公共子文件执行差异计算得到差异数据,将所述差异数据写入所述增量文件;第三写入单元,用于在不存在对应的公共子文件时,将所述第二目标子文件写入所述增量文件。结合第二方面第一种可能的实现方式,在本申请第二方面第三种可能的实现方式中,所述增量文件生成单元还包括:第三判断单元,用于对于不存在对应的差异子文件的第二目标子文件,判断所述第二目标子文件在所述对比旧版文件中是否存在对应的旧版子文件;其中,所述对比旧版文件为任一个发行渠道对应的旧版文件;第四写入单元,用于在存在对应的旧版子文件时,将所述第二目标子文件和对应的旧版子文件执行差异计算得到差异数据,将所述差异数据写入所述增量文件;第五写入单元,用于在不存在对应的旧版子文件时,将所述第二目标子文件写入所述增量文件。本申请第三方面,提供一种服务器,包括:处理器,以及用于存储处理器可执行指令的存储器;其中,所述处理器被配置为:比较目标应用程序的各个旧版文件中的子文件,得到包含所述各个旧版文件中所有非公共子文件的差异文件集合;其中,所述各个旧版文件的版本号相同、发行渠道不同;根据所述目标应用程序的目标文件和所述差异文件集合确定增量文件;将所述增量文件发送至客户端,以供所述客户端将自有的所述旧版文件与所述增量文件合并得到所述目标文件。结合第三方面,在本申请第三方面第一种可能的实现方式中,为实现根据所述目标应用程序的目标文件和所述差异文件集合确定增量文件,所述处理器被配置为:针对所述目标文件中的每个目标子文件,判断所述差异文件集合中是否存在对应的差异子文件;将存在对应的差异子文件的第一目标子文件写入所述增量文件。结合第三方面第一种可能的实现方式,在本申请第三方面第二种可能的实现方式中,所述处理器还被配置为:在所述比较目标应用程序的各个旧版文件中的子文件的操作中,获取包含所述各个旧版文件中所有公共子文件的公共文件集合;对于不存在对应的差异子文件的第二目标子文件,判断所述第二目标子文件在所述公共文件集合中是否存在对应的公共子文件;如果存在对应的公共子文件,则将所述第二目标子文件和对应的公共子文件执行差异计算得到差异数据,将所述差异数据写入所述增量文件;如果不存在对应的公共子文件,则将所述第二目标子文件写入所述增量文件。结合第三方面第一种可能的实现方式,在本申请第三方面第三种可能的实现方式中,所述处理器还被配置为:对于不存在对应的差异子文件的第二目标子文件,判断所述第二目标子文件在所述对比旧版文件中是否存在对应的旧版子文件;其中,所述对比旧版文件为任一个发行渠道对应的旧版文件;如果存在对应的旧版子文件,则将所述第二目标子文件和对应的旧版子文件执行差异计算得到差异数据,将所述差异数据写入所述增量文件;如果不存在对应的旧版子文件,则将所述第二目标子文件写入所述增量文件。由以上技术方案可见,本申请实施例提供的增量升级方法,服务器在生成增量文件之前,首先对比各个发行渠道的旧版文件,得到差异文件集合,再根据该差异文件集合和目标文件生成对应的增量文件,将该增量文件发送至客户端,即可将客户端应用的来自任一发行渠道的旧版文件增量升级至目标文件;因此,应用本申请实施例实现增量升级时,同版本不同发行渠道的文件复用同一增量文件,不需针对每个发行渠道的旧版文件预设增量文件或在客户端请求增量升级时临时计算所需的增量文件,不仅可以节省服务器的存储空间,还可以提高增量升级效率。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例提供的一种增量升级方法的流程示意图;图2为本申请实施例提供的另一种增量升级方法的流程示意图;图3为本申请实施例提供的又一种增量升级方法的流程示意图;图4为本申请实施例提供的一种用于增量升级的服务器的结构框图;图5为本申请实施例提供的另一种用于增量升级的服务器的结构框图;图6为本申请实施例提供的又一种用于增量升级的服务器的结构框图;图7为本申请实施例提供的又一种服务器的结构示意图。具体实施方式为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。图1为本申请实施例提供的一种增量升级方法的流程图。参见图1,本实施例提供的增量升级方法包括以下步骤:S11、比较目标应用程序的各个旧版文件中的子文件,得到包含所述各个旧版文件中所有非公共子文件的差异文件集合。其中,所述各个旧版文件的版本号相同、发行渠道不同。本申请实施例中,服务器在生成增量文件前,首先针对同一版本号采集各个发行渠道对应的旧版文件,通过对比各个旧版文件得到差异文件集合。例如,目标应用程序为UC浏览器,对于其2.0版本,采集到a、b和c三个发行渠道发行的旧版文件,分别为UCbrowser_2a、UCbrowser_2b、UCbrowser_2c,三个旧版文件中包含的子文件如下表1所示:表1同版本不同发行渠道的文件对照表名称子文件UCbrowser_2aX、Y、ZUCbrowser_2bX、Y、WUCbrowser_2cX、Y、Z经比较得知,上述三个2.0版本文件中都存在文件名为X和Y的子文件,其中,子文件X在三个2.0版本文件中的内容完全相同,子文件Y在UCbrowser_2c中的内容与在另外两个2.0版本文件中的内容不同,为便于区分,以下将UCbrowser_2c中的子文件Y记为Y’;子文件W为UCbrowser_2b中特有的子文件,子文件Z为UC_browser_2a和UCbrowser_2c中中特有的子文件,且内容相同。因此,上述三个2.0版本文件之间的差异文件集合CL_2包括以下子文件:Y、Y’、Z、W。同理,通过步骤S11还可以得到UC浏览器的1.0版本文件之极爱你的差异文件集合CL_1。S12、根据所述目标应用程序的目标文件和所述差异文件集合确定增量文件。本申请实施例中,服务器既可以在接收到来自客户端的增量升级请求后执行上述步骤S11和S12,得到本次升级所需的增量文件;也可以在新版文件发行时即执行上述步骤S11和S12,预先得到每个旧版本号升级到新版本号所需的增量文件,存储在服务器中,并在接收到来自客户端请求后,直接查找对应的增量文件。假设UC浏览器的最新版本号为3.0,针对上述a、b、c三个发行渠道,UC浏览器的3.0版本文件也可以包括如下三种:UCbrowser_3a、UCbrowser_3b、UCbrowser_3c,本申请实施例分别以每个发行渠道的3.0版本文件为目标文件,生成增量文件。例如,根据上述差异文件集合CL_2和UCbrowser_3a可以得到增量文件P_2x3a,用于实现任一发行渠道对应的2.0版本文件增量升级至UCbrowser_3a;根据上述差异文件集合CL_1和UCbrowser_3a可以得到增量文件P_1x3a,用于实现任一发行渠道对应的1.0版本文件增量升级至UCbrowser_3a;根据CL_2和UC_browser_3b可以得到增量文件P_2x3b,用于实现任一发行渠道对应的2.0版本文件增量升级至UCbrowser_3b。也即,本申请实施例中的增量文件仅与旧版文件的版本号、目标文件的版本号和发行渠道相关,与旧版文件的发行渠道无关。S13、将所述增量文件发送至客户端。本申请实施例中,客户端在接收到上述增量文件后,可以根据该客户端自有的旧版文件和所述增量文件执行合并操作得到目标文件,进而运行该目标文件即完成增量升级;其中,该客户端自有的旧版文件可以来自任一发行渠道,只要其版本号与步骤S21中所比较的各个旧版文件的版本号相同即可;例如,对于上述UC浏览器,无论客户端自有的文件是UCbrowser_2a,或是UCbrowser_2b,还是UCbrowser_2c,都可以与接收到的增量文件P_2x3a合并,得到目标文件UCbrowser_3a。可见,本申请实施例确定增量文件不需要考虑旧版文件的发行渠道,即同版本不同发行渠道的旧版文件复用同一个增量文件实现增量升级。由上述技术方案可知,本申请实施例提供的增量升级方法,服务器在生成增量文件之前,首先对比各个发行渠道的旧版文件,得到差异文件集合,再根据该差异文件集合和目标文件生成对应的增量文件,将该增量文件发送至客户端,即可将客户端应用的来自任一发行渠道的旧版文件增量升级至目标文件;因此,应用本申请实施例实现增量升级时,同版本不同发行渠道的文件复用同一增量文件,不需针对每个发行渠道的旧版文件预设增量文件或在客户端请求增量升级时临时计算所需的增量文件,不仅可以节省服务器的存储空间,还可以提高增量升级效率。图2为本申请实施例提供的另一种增量升级方法的流程图。参照图2,所述增量升级方法包括如下步骤。S21、比较目标应用程序的各个旧版文件中的子文件,得到包含所述各个旧版文件中所有非公共子文件的差异文件集合,以及包含所述各个旧版文件中所有公共子文件的公共文件集合。其中,所述各个旧版文件的版本号相同、发行渠道不同。针对同版本不同发行渠道的多个旧版文件,本申请实施例将其子文件进行分类,其中在每个旧版文件中都存在且内容相同的子文件(如表1中的子文件x),作为各个旧版文件之间的公共子文件划入公共文件集合,仅在部分旧版文件中存在的子文件(如表1中的子文件z、w),以及文件名相同但内容不同的子文件(如表1中UCbrowser_2b的子文件Y(为便于区分,以下记为Y’)和UCbrowser_2a的子文件Y)。即对表1所示3个旧版文件的子文件分类结果为:公共文件集合包括子文件x,差异文件集合包括子文件Y、Y’、z、w。S22、依次读取所述目标文件中的每个目标子文件,判断所述差异文件集合中是否存在对应的差异子文件,如果存在对应的差异子文件,则执行步骤S23,否则执行步骤S24。S23、将存在对应的差异子文件的第一目标子文件直接写入增量文件,并执行步骤S27。S24、对于不存在对应的差异子文件的第二目标子文件,判断所述第二目标子文件在所述公共文件集合中是否存在对应的公共子文件,如果存在对应的公共子文件,则执行步骤S25,否则执行步骤S26。S25、对于存在对应的公共子文件的第二目标子文件,将其与对应的公共子文件执行差异计算得到差异数据,将所述差异数据写入所述增量文件,并执行步骤S27。S26、对于不存在对应的公共子文件的第二目标子文件,将其直接写入所述增量文件,并执行步骤S27。S27、在所述目标子文件读取完毕后,将所述增量文件发送至客户端。本实施例中,客户端在接收到上述增量文件后,可以对该客户端自有的旧版文件和所述增量文件执行合并操作,得到目标文件,进而执行该目标文件即完成增量升级。上述步骤S22至S26实现了根据不同发行渠道对应的各个旧版文件之间的差异文件集合、公共文件集合以及目标文件确定旧版文件与目标文件之间的增量文件;具体的,本申请实施例依次读取目标文件中的每个目标子文件,并根据文件名在差异文件结合和公共文件集合中查找对应的子文件,根据查找结果执行相应的操作,如下表2所示:表2查找结果及相应的操作对照表根据上表2,对于目标文件中的任意一个目标子文件sample,对应的增量数据生成过程包括以下三种情况:情况一、如果在差异文件集合中存在文件名为sample的差异子文件(即表2中序号1所示情况,也即步骤S22判断结果为“是”),说明至少一个发型渠道对应的旧版文件中不存在文件名为sample的子文件,故本实施例将该目标子文件sample作为新增数据直接写入增量文件(即执行步骤S23)。情况二、如果差异文件集合中不存在文件名为sample的差异子文件,但在公共文件集合中存在文件名为sample的公共子文件(即表2中序号2所示情况,也即步骤S22判断结果为“否”、步骤S24判断结果为“是”),说明各个发行渠道对应的旧版文件中都存在文件名为sample且内容相同的子文件,故本实施例对该文件名为sample的目标子文件和公共子文件执行差异计算,将计算得到的差异数据写入增量文件(即执行步骤S25)。情况三、如果差异文件集合和公共文件集合中都不存在文件名为sample的子文件,(即表2中序号3所示情况,也即步骤S22和S24的判断结果都为“否”),说明目标子文件sample为该目标文件特有的文件,故本实施例也将该目标子文件sample作为新增数据直接写入增量文件(即执行步骤S26)。相应的,客户端对自有的旧版文件和增量文件执行合并操作的具体方法如下:对于增量文件中的新增数据(即通过步骤S23或S26写入的数据),直接写入一预设存储区;对于增量文件中的差异数据(即通过步骤S25写入的数据),在该客户端自有的旧版文件中查找对应的子文件,并将差异数据与查找到的子文件合并后写入上述预设存储区,当增量文件中的所有数据都处理完毕后,上述预设存储区中存储的数据集合即为目标文件,进而运行该目标文件,即可完成相应应用程序的升级。由以上技术方案可知,本申请实施例提供的增量升级方法,服务器在生成增量文件前,首先对比各个发行渠道的旧版文件,得到差异文件集合以及公共文件集合,进而根据该差异文件集合和公告文件集合,将目标文件中的目标子文件分为三类进行处理,以得到对应的增量数据:通过对比目标文件与差异文件集合,确定存在同名差异子文件的第一目标子文件,并将该第一目标子文件作为新增文件直接写入增量文件中;针对不存在同名差异子文件的第二目标子文件,进一步与公共文件集合作对比,对于存在同名公共子文件的第二目标子文件,执行差异计算得到该第二子文件与对应的公共子文件之间的差异数据,并将该差异数据写入增量文件;对于不存在同名公共子文件的第二目标子文件,则作为新增文件直接写入增量文件;通过上述方法得到各个目标子文件的增量数据后,目标文件与旧版文件之间的增量文件也相应生成,将该增量文件发送至客户端,即可实现将客户端应用的来自任一发行渠道的旧版文件增量升级至目标文件。可见,应用本申请实施例实现增量升级时,同版本不同发行渠道的文件复用同一增量文件,不需针对每个发行渠道的旧版文件预设增量文件或在客户端请求增量升级时临时计算所需的增量文件,不仅可以节省服务器的存储空间,还可以提高增量升级效率。图3为本申请实施例提供的又一种增量升级方法的流程图,参照图3,所述增量升级方法包括如下步骤。S31、比较目标应用程序的各个旧版文件中的子文件,得到包含所述各个旧版文件中所有非公共子文件的差异文件集合。其中,所述各个旧版文件的版本号相同、发行渠道不同。本申请实施例针对同版本不同发行渠道的多个旧版文件,将其子文件进行分类,其中在每个旧版文件中都存在且内容相同的子文件(如表1中的子文件x),作为各个旧版文件之间的公共子文件划入公共文件集合,仅在部分旧版文件中存在的子文件(如表1中的子文件z、w),以及文件名相同但内容不同的子文件(如表1中UCbrowser_2b的子文件Y(为便于区分,以下记为Y’)和UCbrowser_2a的子文件Y)。即对表1所示3个旧版文件的子文件分类结果为:公共文件集合包括子文件x,差异文件集合包括子文件Y、Y’、z、w。S32、依次读取所述目标文件中的每个目标子文件,判断所述差异文件集合中是否存在对应的差异子文件,如果存在对应的差异子文件,则执行步骤S33,否则执行步骤S34。S33、将存在对应的差异子文件的第一目标子文件直接写入增量文件,并执行步骤S37。S34、对于不存在对应的差异子文件的第二目标子文件,判断所述第二目标子文件在所述对比旧版文件中是否存在对应的旧版子文件,如果存在对应的公共子文件,则执行步骤S35,否则执行步骤S36。本申请实施例中,可以选择任一个发行渠道对应的旧版文件作为所述对比旧版文件。S35、对于存在对应的旧版子文件的第二目标子文件,将其与对应的公共子文件执行差异计算得到差异数据,将所述差异数据写入所述增量文件,并执行步骤S37。S36、对于不存在对应的旧版子文件的第二目标子文件,将其直接写入所述增量文件,并执行步骤S37。S37、在所述目标子文件读取完毕后,将所述增量文件发送至客户端。本实施例中,客户端在接收到上述增量文件后,可以对该客户端自有的旧版文件和所述增量文件执行合并操作,得到目标文件,进而执行该目标文件即完成增量升级。本申请实施例在目标子文件不存在对应的差异子文件时,任选一个发行渠道对应的旧版文件作为对比旧版文件,并进一步在该对比旧版文件中查找文件名相同的旧版子文件;例如,在生成UC浏览器的2.0版本与目标文件Ucbrowser_3a之间的增量文件时,可以选择UCbrowser_2a、UCbrowser_2b和UCbrowser_2c中的任意一个作为对比旧版文件。由于不同发行渠道对应的非公共子文件(即差异子文件)记录在差异文件集合中,故目标子文件在差异文件集合中不存在对应的差异子文件时,对比旧版文件中只有公共子文件未与该目标子文件对比,即如果步骤S34中查找到文件名与该目标子文件相同的旧版子文件,则该旧版子文件一定为各个发行渠道对应的旧版子文件中都存在的公共子文件。由以上分析可知,图3与图2所示实施例生成增量文件的原理相同,根据对比旧版文件和差异文件集合,也可以将目标文件中的各个目标子文件分为三类,并得到对应的增量数据,写入增量文件,进而复用该增量文件实现将客户端应用的来自任一发行渠道的旧版文件增量升级至目标文件,不需针对每个发行渠道的旧版文件预设增量文件或在客户端请求增量升级时临时计算所需的增量文件,不仅可以节省服务器的存储空间,还可以提高增量升级效率。图4为本申请实施例提供的一种用于增量升级的服务器500的结构框图;该服务器500包括:差异文件获取单元510、增量文件生成单元520和发送单元530。其中,差异文件获取单元510被配置为,比较目标应用程序的各个旧版文件中的子文件,得到包含所述各个旧版文件中所有非公共子文件的差异文件集合。其中,所述各个旧版文件的版本号相同、发行渠道不同。增量文件生成单元520被配置为,根据所述目标应用程序的目标文件和所述差异文件集合确定增量文件。发送单元530被配置为,将所述增量文件发送至客户端,以供所述客户端将自有的所述旧版文件与所述增量文件合并得到所述目标文件。由上述技术方案可知,本申请实施例提供的服务器在生成增量文件之前,首先对比各个发行渠道的旧版文件,得到差异文件集合,再根据该差异文件集合和目标文件生成对应的增量文件,将该增量文件发送至客户端,即可将客户端应用的来自任一发行渠道的旧版文件增量升级至目标文件;因此,应用本申请实施例实现增量升级时,同版本不同发行渠道的文件复用同一增量文件,不需针对每个发行渠道的旧版文件预设增量文件或在客户端请求增量升级时临时计算所需的增量文件,不仅可以节省服务器的存储空间,还可以提高增量升级效率。图5为本申请实施例提供的另一种用于增量升级的服务器500的结构框图;该服务器500包括:差异文件获取单元510、公共文件获取单元540、增量文件生成单元520和发送单元530。其中,差异文件获取单元510被配置为,比较目标应用程序的各个旧版文件中的子文件,得到包含所述各个旧版文件中所有非公共子文件的差异文件集合。其中,所述各个旧版文件的版本号相同、发行渠道不同。公共文件获取单元540被配置为,根据差异文件获取单元510的比较结果,获取包含所述各个旧版文件中所有公共子文件的公共文件集合。增量文件生成单元520被配置为,根据所述目标应用程序的目标文件和所述差异文件集合确定增量文件;该增量文件生成单元520包括:第一判断单元521、第一写入单元522、第二判断单元523、第二写入单元524和第三写入单元525。第一判断单元521被配置为,依次读取所述目标文件中的每个目标子文件,判断所述差异文件集合中是否存在对应的差异子文件,如果存在则触发第一写入单元522,否则触发第二判断单元523。第一写入单元522被配置为,将存在对应的差异子文件的第一目标子文件写入增量文件。第二判断单元523被配置为,对于不存在对应的差异子文件的第二目标子文件,判断所述第二目标子文件在所述公共文件集合中是否存在对应的公共子文件,如果存在则触发第二写入单元524,否则触发第三写入单元525。第二写入单元524被配置为,在存在对应的公共子文件时,将所述第二目标子文件和对应的公共子文件执行差异计算得到差异数据,将所述差异数据写入所述增量文件。第三写入单元525被配置为,在不存在对应的公共子文件时,将所述第二目标子文件写入所述增量文件。发送单元530被配置为,在所述目标子文件读取完毕后,将所述增量文件发送至客户端,以供所述客户端将自有的所述旧版文件与所述增量文件合并得到所述目标文件。上述实施例提供的服务器,通过对比各个发行渠道对应的旧版文件,得到差异文件集合和公共文件集合,进而针对目标文件中的每个目标子文件在差异文件集合和公共文件集合查找对应的子文件,并根据查找结果执行相应的操作,从而得到该目标子文件对应的增量数据,目标文件中所有目标子文件对应的增量数据共同构成增量文件,将该增量文件发送至客户端后,即可实现客户端中来自任意发行渠道的旧版文件增量升级至目标文件;因此,应用本申请实施例提供的服务器实现增量升级,不需要针对每个发行渠道对应的旧版文件生成其与目标文件之间的增量文件,不仅可以节省服务器的存储控件,还可以提高增量升级效率。图6为本申请实施例提供的又一种用于增量升级的服务器500的结构框图;该服务器500包括:差异文件获取单元510、增量文件生成单元520和发送单元530。上述差异文件获取单元510被配置为,比较目标应用程序的各个旧版文件中的子文件,得到包含所述各个旧版文件中所有非公共子文件的差异文件集合。其中,所述各个旧版文件的版本号相同、发行渠道不同。上述增量文件生成单元520被配置为,根据所述目标应用程序的目标文件和所述差异文件集合确定增量文件;该增量文件生成单元520包括:第一判断单元521、第一写入单元522、第三判断单元526、第四写入单元527和第五写入单元528。其中,第一判断单元521被配置为,依次读取所述目标文件中的每个目标子文件,判断所述差异文件集合中是否存在对应的差异子文件,如果存在则触发第一写入单元522,否则触发第二判断单元52。第一写入单元522被配置为,将存在对应的差异子文件的第一目标子文件写入增量文件。第三判断单元526被配置为,对于不存在对应的差异子文件的第二目标子文件,判断所述第二目标子文件在所述对比旧版文件中是否存在对应的旧版子文件,如果存在则触发第四写入单元527,否则触发第五写入单元528。其中,本申请实施例可以选择任一个发行渠道对应的旧版文件作为所述对比旧版文件。第四写入单元527被配置为,在存在对应的旧版子文件时,将所述第二目标子文件和对应的旧版子文件执行差异计算得到差异数据,将所述差异数据写入所述增量文件。第五写入单元528被配置为,在不存在对应的旧版子文件时,将所述第二目标子文件写入所述增量文件。上述发送单元530被配置为,在所述目标子文件读取完毕后,将所述增量文件发送至客户端,以供所述客户端将自有的所述旧版文件与所述增量文件合并得到所述目标文件。上述实施例提供的服务器,通过对比各个发行渠道对应的旧版文件,得到差异文件集合,进而针对目标文件中的每个目标子文件在差异文件集合和任一发行渠道对应的旧版文件中查找对应的子文件,并根据查找结果执行相应的操作,从而得到该目标子文件对应的增量数据,写入增量文件,进而复用该增量文件实现将客户端应用的来自任一发行渠道的旧版文件增量升级至目标文件,不需针对每个发行渠道的旧版文件预设增量文件或在客户端请求增量升级时临时计算所需的增量文件,不仅可以节省服务器的存储空间,还可以提高增量升级效率。关于上述实施例中的装置,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。另外,本申请实施例还提供了一种计算机存储介质,例如可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等;该计算机存储介质中存储有程序,当所述存储介质中的程序由相应设备(如服务器)的处理器执行时,使得该设备能够执行上述方法实施例中记载的增量升级方法的部分或全部步骤。图7为本申请实施例提供的又一种服务器600的结构示意图;该服务器600包括处理组件622,其进一步包括一个或多个处理器,以及由存储器632所代表的存储器资源,用于存储可由处理组件622的执行的指令,例如应用程序。存储器632中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件622被配置为执行指令,以执行上述增量升级方法。服务器600还可以包括一个电源组件626被配置为执行服务器600的电源管理,一个有线或无线网络接口650被配置为将服务器600连接到网络,和一个输入输出(I/O)接口658。服务器600可以操作基于存储在存储器632的操作系统,例如WindowsServerTM,MacOSXTM,UnixTM,LinuxTM,FreeBSDTM或类似。其中,本实施例中,处理组件622通过执行存储器632中的指令,可以完成如下步骤:比较目标应用程序的各个旧版文件中的子文件,得到包含所述各个旧版文件中所有非公共子文件的差异文件集合;其中,所述各个旧版文件的版本号相同、发行渠道不同;根据所述目标应用程序的目标文件和所述差异文件集合确定增量文件;将所述增量文件发送至客户端,以供所述客户端将自有的所述旧版文件与所述增量文件合并得到所述目标文件。由以上技术方案可知,本申请实施例提供的服务器,在生成增量文件之前,首先对比各个发行渠道的旧版文件,得到差异文件集合,再根据该差异文件集合和目标文件生成对应的增量文件,将该增量文件发送至客户端,即可将客户端应用的来自任一发行渠道的旧版文件增量升级至目标文件;因此,应用本申请实施例实现增量升级时,同版本不同发行渠道的文件复用同一增量文件,不需针对每个发行渠道的旧版文件预设增量文件或在客户端请求增量升级时临时计算所需的增量文件,不仅可以节省服务器的存储空间,还可以提高增量升级效率。其中,为实现根据所述目标应用程序的目标文件和所述差异文件集合确定增量文件,处理组件622可以通过执行存储器632中的指令完成如下步骤:针对所述目标文件中的每个目标子文件,判断所述差异文件集合中是否存在对应的差异子文件;将存在对应的差异子文件的第一目标子文件写入增量文件。在本申请一个可行的实施例中,处理组件622还可以通过执行存储器632中的指令完成如下步骤:在所述比较目标应用程序的各个旧版文件中的子文件的步骤中,获取包含所述各个旧版文件中所有公共子文件的公共文件集合;对于不存在对应的差异子文件的第二目标子文件,判断所述第二目标子文件在所述公共文件集合中是否存在对应的公共子文件;如果存在对应的公共子文件,则将所述第二目标子文件和对应的公共子文件执行差异计算得到差异数据,将所述差异数据写入所述增量文件;如果不存在对应的公共子文件,则将所述第二目标子文件写入所述增量文件。由以上配置可知,本申请实施例提供的服务器在生成增量文件前,首先对比各个发行渠道的旧版文件,得到差异文件集合以及公共文件集合,进而根据该差异文件集合和公告文件集合,将目标文件中的目标子文件分为三类进行处理,以得到对应的增量数据,并写入增量文件,将该增量文件发送至客户端,即可实现将客户端应用的来自任一发行渠道的旧版文件增量升级至目标文件。可见,应用本申请实施例实现增量升级时,同版本不同发行渠道的文件复用同一增量文件,不需针对每个发行渠道的旧版文件预设增量文件或在客户端请求增量升级时临时计算所需的增量文件,不仅可以节省服务器的存储空间,还可以提高增量升级效率。在本申请另一个可行的实施例中,处理组件622还可以通过执行存储器632中的指令完成如下步骤:对于不存在对应的差异子文件的第二目标子文件,判断所述第二目标子文件在所述对比旧版文件中是否存在对应的旧版子文件;其中,所述对比旧版文件为任一个发行渠道对应的旧版文件;如果存在对应的旧版子文件,则将所述第二目标子文件和对应的旧版子文件执行差异计算得到差异数据,将所述差异数据写入所述增量文件;如果不存在对应的旧版子文件,则将所述第二目标子文件写入所述增量文件。由以上配置可知,本申请实施例提供的服务器,还可以根据对比旧版文件和差异文件集合,将目标文件中的各个目标子文件分为三类,并得到对应的增量数据,写入增量文件,进而复用该增量文件实现将客户端应用的来自任一发行渠道的旧版文件增量升级至目标文件,不需针对每个发行渠道的旧版文件预设增量文件或在客户端请求增量升级时临时计算所需的增量文件,不仅可以节省服务器的存储空间,还可以提高增量升级效率。需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。以上仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1