发明内容
基于此,有必要针对上述技术问题,提供一种增量升级方法、系统、计算机设备及可读存储介质,通过版本仓库对升级数据的中转和管理,能够节省升级文件所需要的存储空间,优化各系统版本的管理方式,提高系统升级控制的效率。
第一方面,本申请提供一种增量升级方法,应用于第一电子设备,所述方法包括:
在所述第一电子设备上创建第一版本仓库;
根据第一更新数据在所述第一版本仓库内生成升级安装包,所述升级安装包包括第一目录文件,所述第一目录文件用于存储所述第一更新数据的目录结构和属性信息;
将所述升级安装包镜像拷贝至第二电子设备的第二版本仓库,使所述第二电子设备根据所述升级安装包进行系统升级。
作为其中一种实施方式,所述根据第一更新数据在所述第一版本仓库内生成升级安装包,包括:
根据所述第一更新数据生成第一目录文件;
标记所述第一更新数据和所述第一目录文件以生成标记文件;
压缩所述第一更新数据、所述第一目录文件和所述标记文件,得到所述升级安装包。
作为其中一种实施方式,所述标记所述第一更新数据和所述第一目录文件以生成标记文件,包括:
计算并存储所述第一更新数据中各文件的SHA256值,以生成所述标记文件。
作为其中一种实施方式,所述根据所述第一更新数据生成第一目录文件之后,还包括:
获取第二目录文件,所述第二目录文件用于记录上一次更新时第二更新数据的目录结构和属性信息;
比较所述第一目录文件和所述第二目录文件;
若所述第一更新数据和所述第二更新数据中存在相同文件,则将所述第一目录文件中所述相同文件名称硬链接到所述第二更新数据,且不拷贝所述第一更新数据中的所述相同文件至所述第一版本仓库;
若所述第一更新数据和所述第二更新数据中存在不相同文件,将所述第一目录文件中所述不相同文件名称硬链接到所述第一更新数据,且拷贝所述第一更新数据中的所述不相同文件至所述第一版本仓库。
作为其中一种实施方式,所述第一版本仓库包括多个版本的升级安装包,所述方法,还包括:
根据所述升级安装包的提交时间和/或日志信息查询所述升级安装包的版本信息。
作为其中一种实施方式,所述方法,还包括:
所述第一版本仓库包括多个分支电子设备对应的多个分支记录文件,所述多个分支记录文件中的相同文件名称硬链接到所述第一更新数据中的同一文件。
第二方面,本申请还提供一种增量升级方法,应用于第二电子设备,所述方法包括:
在所述第二电子设备上创建第二版本仓库;
响应于更新指令,获取所述更新指令对应的更新版本信息;
若所述更新版本信息为最新版本,且所述第二版本仓库的升级安装包是最新版本,则根据所述第二版本仓库的升级安装包进行系统更新;
若所述更新版本信息为最新版本,且所述第二版本仓库的升级安装包不是最新版本,则将第一电子设备中第一版本仓库的升级安装包同步至所述第二版本仓库后进行系统更新。
第三方面,本申请提供一种增量升级系统,系统包括:
第一模块,用于在第一电子设备上创建第一版本仓库;
第二模块,用于根据第一更新数据在所述第一版本仓库内生成升级安装包,所述升级安装包包括第一目录文件,所述第一目录文件用于存储所述第一更新数据的目录结构和属性信息;
第三模块,用于将所述升级安装包镜像拷贝至第二电子设备的第二版本仓库,使所述第二电子设备根据所述升级安装包进行系统升级。
本申请提供一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现如上所述的增量升级方法的步骤。
本申请提供一种可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上所述的增量升级方法的步骤。
本申请的增量升级方法、系统、计算机设备及可读存储介质,通过在第一电子设备上创建第一版本仓库;根据第一更新数据在第一版本仓库内生成升级安装包,升级安装包包括第一目录文件,第一目录文件用于存储第一更新数据的目录结构和属性信息;将升级安装包镜像拷贝至第二电子设备的第二版本仓库,使第二电子设备根据升级安装包进行系统升级。本申请通过版本仓库对升级数据的中转和管理,能够节省升级文件所需要的存储空间,优化各系统版本的管理方式,提高系统升级控制的效率。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的电子设备和方法的例子。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者电子设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者电子设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者电子设备中还存在另外的相同要素,此外,本申请不同实施例中具有同样命名的部件、特征、要素可能具有相同含义,也可能具有不同含义,其具体含义需以其在该具体实施例中的解释或者进一步结合该具体实施例中上下文进行确定。
应当理解,尽管在本文可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本文范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语"如果"可以被解释成为"在……时"或"当……时"或"响应于确定"。再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、步骤、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、步骤、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能、步骤或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
应该理解的是,虽然本申请实施例中的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
需要说明的是,在本文中,采用了诸如S201、S202等步骤代号,其目的是为了更清楚简要地表述相应内容,不构成顺序上的实质性限制,本领域技术人员在具体实施时,可能会先执行S202后执行S201等,但这些均应在本申请的保护范围之内。
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或者“单元”的后缀仅为了有利于本申请的说明,其本身没有特定的意义。因此,“模块”、“部件”或者“单元”可以混合地使用。
第一实施例
如图1所示,本申请实施例提供了一种增量升级方法,以该方法应用于第一电子设备为例进行说明,包括以下步骤:
步骤201,在第一电子设备上创建第一版本仓库;
步骤202,根据第一更新数据在第一版本仓库内生成升级安装包,升级安装包包括第一目录文件,第一目录文件用于存储第一更新数据的目录结构和属性信息;
步骤203,将升级安装包镜像拷贝至第二电子设备的第二版本仓库,使第二电子设备根据升级安装包进行系统升级。
本实施例中,通过版本仓库实现升级安装包从第一电子设备到第二电子设备的中转。其中,第一电子设备可以是本地端或服务器,用于生成和存储升级安装包,第二电子设备可以是终端,用于根据升级安装包进行系统升级。以第一电子设备为本地端为例,第二电子设备为终端,其中还可包括服务器用于传输管理。具体地,可分别在本地端、服务器和终端建立对应的版本仓库,通过版本仓库使升级安装包从本地生成后上传至服务器,再由终端从服务器下载。在本地端(即第一电子设备)对第一更新数据进行标记,生成第一目录文件并集中压缩打包后提交到第一版本仓库。本地端的第一版本仓库与服务器可通过http/https协议完成升级安装包的镜像拷贝同步。终端(即第二电子设备)在收到更新指令后,通过服务器认证,完成终端的第二版本仓库与服务器的数据镜像同步,将升级安装包下载至第二版本仓库。之后在终端对升级安装包进行解压、进行更新数据的完整性校验,然后检出第一更新数据以及第一目录文件。如此,实现了一种仓库中转的技术,可在本地完成更新文件到仓库的提交,本地仓库与服务器仓库实现镜像拷贝,终端与服务器仓库镜像拷贝,而后从终端仓库中翻译出所需要的软件版本,完成系统更新。通过仓库管理,实现了终端系统的增量更新,新版本在上一个版本的基础上只更新修改过的文件目录,包括文件目录的内容和各种属性,删除的文件目录,新增的文件目录。降低每次更新的数据量。
作为其中一种实施方式,根据第一更新数据在第一版本仓库内生成升级安装包,包括:
根据第一更新数据生成第一目录文件;
标记第一更新数据和第一目录文件以生成标记文件;
压缩第一更新数据、第一目录文件和标记文件,得到升级安装包。
作为其中一种实施方式,标记第一更新数据以生成标记文件,包括:
计算并存储第一更新数据中各文件的SHA256值,以生成标记文件。
这里,SHA256值是指通过SHA256算法计算得到的值。SHA256算法即Secure HashAlgoithm 256,是一种密码散列函数算法标准,由美国国家安全局研发,一般用于计算文件内容的散列函数值,实现文件一致性校验。
作为其中一种实施方式,根据第一更新数据生成第一目录文件之后,还包括:
获取第二目录文件,第二目录文件用于记录上一次更新时第二更新数据的目录结构和属性信息;
比较第一目录文件和第二目录文件;
若第一更新数据和第二更新数据中存在相同文件,则将第一目录文件中相同文件名称硬链接到第二更新数据,且不拷贝第一更新数据中的相同文件至第一版本仓库;
若第一更新数据和第二更新数据中存在不相同文件,将第一目录文件中不相同文件名称硬链接到第一更新数据,且拷贝第一更新数据中的不相同文件至第一版本仓库。
本实施例中,硬链接是指两个以上的文件名直接指向磁盘存储块,删除一个文件,磁盘内容不会删除,直到所有文件都删除,磁盘内容才能删除掉。在生成第一目录文件时,第一目录文件中的增量更新,在前一个目录版本(即第二目录文件)的基础上只对变化的内容记录提交到仓库中,仓库会为每次提及到的更新目标创建一个记录目标结构和文件sha256值列表链表,用于和前一次提交做比较。
具体地,将第二更新数据提交到仓库中,创建一个存储目录结构和属性的文件,即第二目录文件,用于检出时保证目录的一致性,计算第二更新数据中每一个文件sha256值,并存储在另一个文件中,即标记文件,用于校验数据的一致性,并将第二更新数据压缩,拷贝到第一版本仓库中。如图2所示,原始目录(即第二更新数据)中包括file1文件、file2文件,生成第二目录文件dir文件,分别计算file1文件、file2文件和dir文件的sha256值,得到sha256_file1文件、sha256_file2文件和sha256_dir文件。将上述文件压缩后提交到版本仓库,经由版本仓库的中转可以将第二更新数据完整的传输到终端。
提交最新更新目录时,再次创建一个存储目录结构和属性的文件,即第一目录文件,计算每一个文件的sha256,并查看上一个版本中存储的sha256文件中,是否有相同sha256值,若存在,则新建一个硬链接到版本仓库当前值为此sha256文件;若不存在,则将此不同的文件拷贝到此版本仓库中,建立对应的硬链接。如图2所示,原始目录(即第二更新数据)中包括file1文件、file2文件,生成第二目录文件dir文件,分别计算file1文件、file2文件和dir文件的sha256值,得到sha256_file1文件、sha256_file2文件和sha256_file2文件。将上述文件压缩后提交到版本仓库,经由版本仓库的中转可以将第二更新数据完整的传输到终端。
通过比对sha256值,可以将内容发生变化的文件复制到仓库,也可将新增的文件复制到仓库中,而在最新更新目录中,文件内容相同,文件属性发生变化的文件并不会复制到仓库中,占用新的存储空间,从而实现了增量更新的目标。如图2所示,更新目录(即第一更新数据)中包括file1_dirty文件、file2文件、file3文件,生成第一目录文件dir文件,分别计算file1_dirty文件、file2文件、file3文件和dir文件的sha256值,得到sha256_file1文件、sha256_file2z文件和sha256_file3z文件。将上述文件压缩后提交到版本仓库,经由版本仓库的中转可以将第二更新数据完整的传输到终端。
当前最新版本的第一目录文件仓库时,可与仓库中存储的第二目录文件比较,将变更的文件增加到仓库中,避免版本仓库的重新提交。通过增量更新的方式,在上一个版本的基础上,只更新文件目录属性、内容发生变化,文件目录增减,避免了更新包方式少量修改的却又必须全部更新的方式,降低的存储空间及网络流量。
作为其中一种实施方式,第一版本仓库包括多个版本的升级安装包,增量升级方法,还包括:
根据升级安装包的提交时间和/或日志信息查询升级安装包的版本信息。
本实施例中,版本仓库记录了各提交版本的提交时间,提交时的日志信息,可以随时查询历史版本信息,具有方便管理维护的特点。此外,版本仓库中的数据可通过http/https的协议完整进行镜像复制到本地其他设备和远端服务器。
如图3所示,在版本仓库中记录了已保存的系统版本的目录结构,即V1.0.0、V2.0.0、V3.0.0等。如此可以方便的检出v1.0.0,v2.0.0,v3.0.0版本中的任何一个版本,每个版本可检出后与新提交版本的内容通过sha256校验保存一致,通过通过版本仓库的模式,提供了更灵活的版本管理,可以方便快捷的查询、回滚到任意一个历史版本,对提交的版本可进行有效的管理。
作为其中一种实施方式,增量升级方法,还包括:
第一版本仓库包括多个分支电子设备对应的多个分支记录文件,多个分支记录文件中的相同文件名称硬链接到第一更新数据中的同一文件。
本实施例中,每个分支记录文件记录了当前版本以及历史的文件和目录,与仓库中的文件实现硬链接,从而保证文件在仓库中的唯一性,进而降低存储空间。
如图4所示,alpha分支对应alpha设备,beta分支对应beta设备。alpha分支,beta分支也是也是通过相同的仓库,共享相同的文件目录file2、dir,而不需要重新提交,从而降低仓库存储空间。如此,对同一类型的衍生子设备,利用分支管理的功能,每一分支对应不同的子类设备,可减小网络下载时间和磁盘的占用量。
本申请实施例的增量升级方法,通过在第一电子设备上创建第一版本仓库;根据第一更新数据在第一版本仓库内生成升级安装包,升级安装包包括第一目录文件,第一目录文件用于存储第一更新数据的目录结构和属性信息;将升级安装包镜像拷贝至第二电子设备的第二版本仓库,使第二电子设备根据升级安装包进行系统升级。本申请实施例通过版本仓库对升级数据的中转和管理,能够节省升级文件所需要的存储空间,优化各系统版本的管理方式,提高系统升级控制的效率。
第二实施例
如图5所示,本申请实施例还提供了一种增量升级方法,以该方法应用于第二电子设备为例进行说明,包括以下步骤:
步骤501,在第二电子设备上创建第二版本仓库;
步骤502,响应于更新指令,获取更新指令对应的更新版本信息;
步骤503,若更新版本信息为最新版本,且第二版本仓库的升级安装包是最新版本,则根据第二版本仓库的升级安装包进行系统更新;
步骤504,若更新版本信息为最新版本,且第二版本仓库的升级安装包不是最新版本,则将第一电子设备中第一版本仓库的升级安装包同步至第二版本仓库后进行系统更新。
请一并参考图6和图7,在本地端开发者完成升级压缩包的生成,并提交到本地端的版本仓库,而后镜像同步上传到远端服务器的版本仓库。
服务器在下面两种情况下可以配置终端所需运行的版本:
a)版本仓库更新,指定终端更新到此最新版本;
b)终端当前版本存在严重问题,致命漏洞,业务逻辑严重错误,需指定终端版本更新到前一个安全可靠的旧版本。
在指定版本的同时,下发是否需要强制执行更新的指令。
终端开机启动后建立与服务器的链接,定时查询服务器指定版本,接收当前指定版本信息,并解析此版本是否为强制更新。
当服务器指定的版本为最新版本时,启动云端数据下载功能,将终端仓库镜像同步于服务器仓库,获取服务器中最新更新版本数据。
判断更新指令是否为强制指令:
a)若强制,则在安全的情况下,中断当前任务,启动过程;
b)若非强制,则在系统指定的空闲时间区间启动更新过程。
更新过程中,将当前更新的进度实时上报到服务器,并在显示设备上显示当前的更新状态。
本申请实施例的增量升级方法,通过在第二电子设备上创建第二版本仓库。响应于更新指令,获取更新指令对应的更新版本信息。若更新版本信息为最新版本,且第二版本仓库的升级安装包是最新版本,则根据第二版本仓库的升级安装包进行系统更新。若更新版本信息为最新版本,且第二版本仓库的升级安装包不是最新版本,则将第一电子设备中第一版本仓库的升级安装包同步至第二版本仓库后进行系统更新。本申请实施例通过创建版本仓库对升级数据进行中转和管理,能够节省升级文件所需要的存储空间,优化各系统版本的管理方式,提高系统升级控制的效率。
第三实施例
如图8所示,本申请实施例还提供了一种增量升级系统40,包括:第一模块420、第二模块440、第三模块460,其中:
第一模块420,用于在第一电子设备上创建第一版本仓库;
第二模块440,用于根据第一更新数据在所述第一版本仓库内生成升级安装包,所述升级安装包包括第一目录文件,所述第一目录文件用于存储所述第一更新数据的目录结构和属性信息;
第三模块460,用于将所述升级安装包镜像拷贝至第二电子设备的第二版本仓库,使所述第二电子设备根据所述升级安装包进行系统升级。
关于增量升级系统的具体限定可以参见第一实施例中对于增量升级方法的限定,在此不再赘述。上述增量升级系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
基于前述实施例相同的发明构思,本发明实施例提供了一种计算机设备,如图9所示,该计算机设备包括:处理器310和存储有计算机程序的存储器311;其中,图9中示意的处理器310并非用于指代处理器310的个数为一个,而是仅用于指代处理器310相对其他器件的位置关系,在实际应用中,处理器310的个数可以为一个或多个;同样,图9中示意的存储器311也是同样的含义,即仅用于指代存储器311相对其他器件的位置关系,在实际应用中,存储器311的个数可以为一个或多个。在所述处理器310运行所述计算机程序时,实现应用于上述计算机设备的所述增量升级方法。
该装置还可包括:至少一个网络接口312。该装置中的各个组件通过总线系统313耦合在一起。可理解,总线系统313用于实现这些组件之间的连接通信。总线系统313除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图9中将各种总线都标为总线系统313。
其中,存储器311可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。本发明实施例描述的存储器311旨在包括但不限于这些和任意其它适合类型的存储器。
本发明实施例中的存储器311用于存储各种类型的数据以支持该装置的操作。这些数据的示例包括:用于在该装置上操作的任何计算机程序,如操作系统和应用程序;联系人数据;电话簿数据;消息;图片;视频等。其中,操作系统包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序可以包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。这里,实现本发明实施例方法的程序可以包含在应用程序中。
基于前述实施例相同的发明构思,本实施例还提供了一种计算机存储介质,所述计算机存储介质中存储有计算机程序,计算机存储介质可以是磁性随机存取存储器(FRAM,ferromagnetic random access memory)、只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、快闪存储器(FlashMemory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory)等存储器;也可以是包括上述存储器之一或任意组合的各种设备,如移动电话、计算机、平板设备、个人数字助理等。所述计算机存储介质中存储的计算机程序被处理器运行时,实现应用于上述装置的所述增量升级方法。所述计算机程序被处理器执行时实现的具体步骤流程请参考第一实施例的描述,在此不再赘述。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,除了包含所列的那些要素,而且还可包含没有明确列出的其他要素。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。