一种软件升级方法及装置与流程

文档序号:30950568发布日期:2022-07-30 07:21阅读:122来源:国知局
一种软件升级方法及装置与流程

1.本技术涉及分布式技术领域,尤其涉及一种软件升级方法及装置。


背景技术:

2.随着网络技术的高速发展,与网络技术相关的各种软件经常需要升级。尤其是银行类软件,升级更加频繁。比如,与安全相关的银行类软件,往往需要通过频繁升级,不断提升软件的安全性能。而银行类软件在升级过程中,可能会涉及到多个客户端的软件升级,这就为软件升级增加了难度。
3.目前常用的软件升级方法为下联机升级方法。下联机升级方法是一种在指定升级时间对多个客户端的软件同时升级的软件升级方法。然而多个客户端一般分布在各地,且客户端数量比较多,这导致利用上述下联机升级方法会占用大量网络带宽资源,造成网络资源紧张。
4.因此,如何减少软件升级中占用大量网络带宽资源成为亟待解决的问题。


技术实现要素:

5.有鉴于此,本技术实施例提供了一种软件升级方法及装置,旨在减少软件升级中网络带宽资源的占用量,以避免软件升级中网络资源紧张而影响传输距离。
6.第一方面,本技术实施例提供了一种软件升级方法,所述方法包括:
7.客户端获取升级指令;
8.所述客户端基于预设算法生成第一校验码;所述第一校验码与第一升级软件库对应,所述第一升级软件库包括所述客户端上已安装的多个软件;
9.当所述第一校验码与第二检验码不匹配时,所述客户端提取所述第一校验码与所述第二校验码的差异码;所述第二校验码为所述客户端从服务端获取并基于所述预设算法生成的校验码,所述第二校验码与第二升级软件库对应;所述第二升级软件库包括所述客户端未安装的多个软件;
10.所述客户端利用所述差异码对应的所述第二升级软件库中的软件,更新所述第一升级软件库中的软件。
11.可选的,所述基于预设算法生成第一校验码,包括:
12.根据所述预设算法和所述第一升级软件库,得到软件摘要文件;
13.根据所述软件摘要文件,生成第一校验码。
14.可选的,所述第一升级软件库包括第一软件,所述第一软件包括多个文件,所述基于预设算法生成第一校验码,包括:
15.所述客户端基于所述预设算法获取第一软件中多个文件的摘要信息;
16.根据所述多个文件的摘要信息,得到第一软件摘要文件;
17.根据所述第一软件摘要文件生成第一校验码。
18.可选的,所述第一升级软件库还包括第二软件,所述基于预设算法生成第一校验
码,包括:
19.所述客户端基于所述预设算法和第二软件得到第二软件摘要文件;
20.根据所述第一软件摘要文件和所述第二软件摘要文件生成第一校验码
21.可选的,该方法还包括:利用分布式消息中间件,从所述服务端获取所述第二校验码。
22.可选的,该方法还包括:预设生效时点,所述生效时点为下载所述差异码对应的软件的时间;
23.当系统时间大于所述生效时点,所述差异码对应的所述第二升级软件库中的软件高于所述第一升级软件库中的软件;
24.当系统时间小于或等于所述生效时点,所述差异码对应的所述第二升级软件库中的软件低于所述第一升级软件库中的软件。
25.可选的,所述生效时点为业务流量低于流量阈值且服务压力小于压力阈值的时间段内的时间点。
26.第二方面,本技术实施例提供了一种软件升级装置,所述装置包括:
27.获取单元,用于获取升级指令;
28.生成单元,用于基于预设算法,生成第一校验码;所述第一校验码与第一升级软件库对应,所述第一升级软件库包括所述客户端上已安装的多个软件;
29.提取单元,用于当所述第一校验码与第二检验码不匹配时,所述客户端提取所述第一校验码与所述第二校验码的差异码;所述第二校验码为所述客户端从服务端获取并基于所述预设算法生成的校验码,所述第二校验码与第二升级软件库对应;所述第二升级软件库包括所述客户端未安装的多个软件;
30.升级单元,用于所述客户端利用所述差异码对应的所述第二升级软件库中的软件,更新所述差异码对应的所述第一升级软件库中的软件。
31.可选的,所述生成单元,包括:
32.摘要生成单元,用于根据所述预设算法和第一升级软件库,得到软件摘要文件;校验码生成单元,用于根据所述软件摘要文件,生成第一校验码。
33.可选的,所述装置,还包括:
34.预处理单元,用于预设生效时点,所述生效时点为下载所述差异码对应的软件的时间;
35.权限设置单元,用于当系统时间大于所述生效时点,所述差异码对应的所述第二升级软件库中的软件高于所述第一升级软件库中的软件;当系统时间小于或等于所述生效时点,所述差异码对应的所述第二升级软件库中的软件低于所述第一升级软件库中的软件。
36.本技术实施例提供了一种软件升级方法。在执行所述方法时,首先客户端基于预设算法,生成与第一升级软件库对应的第一校验码,服务端基于上述预设算法,生成与第二升级软件库对应的第二校验码。客户端可以比较第一校验码和第二校验码是否匹配。如果第一校验码和第二校验码不匹配,客户端提取第一校验码和第二校验码的差异码,并从服务端下载差异码对应的软件。这样,升级软件时只需要传递差异码对应的软件,无需传递整个软件包。如此,可以实现通过减少升级包传输内容的方式,降低升级时对网络带宽资源的
占用量,进而解决升级时网络资源紧张问题。
附图说明
37.为更清楚地说明本实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
38.图1为本技术实施例提供的一种软件升级方法和装置的示例性应用场景图;
39.图2为本技术实施例提供的一种软件升级方法流程图;
40.图3为本技术实施例提供一种基于生效时点的升级方式示意图;
41.图4为本技术实施例提供的一种获取第一校验码的流程图;
42.图5为本技术实施例提供的一种单软件升级方法流程图;
43.图6为本技术实施例提供的一种多软件升级方法流程图;
44.图7为本技术实施例提供的软件升级装置的一种结构示意图。
具体实施方式
45.正如前文描述,目前常见的软件升级方法为下联机升级方法,发明人发现:这种下联机升级方法,由于需要在指定时间对多个客户端的软件进行同时升级,并且多个客户端分布在各地,这就导致在软件升级时需要大量升级包同时占用网络带宽资源通信,进而使得网络带宽资源紧张。
46.因此,发明人提出减少升级包传输内容的方式,即通过压缩升级包大小,降低每个升级包占用的网络带宽资源,进而解决大量升级包同时占用网络带宽资源而导致网络资源紧张的问题。
47.图1为本技术实施例提供的一种软件升级方法和装置的示例性应用场景图。
48.根据图1所示,本技术提供的应用场景可以包括终端设备101、终端设备 102、终端设备103,服务端105和服务端106。终端设备101、终端设备102 和终端设备103与服务端105、服务端106连接。网络104可以包括各种连接类型,例如有线和/或无线通信链路等。终端设备101、终端设备102和终端设备103上可以安装有各种客户端应用,例如即时通信工具、邮箱客户端等 (仅为示例)。
49.终端设备101、终端设备102和终端设备103可以是具有显示屏的台式计算机等终端设备。或者,终端设备101、终端设备102和终端设备103也可以是银行网点的专用终端设备。
50.服务端105和服务器106可以是提供各种服务的服务器,例如对用户利用终端设备101、终端设备102和终端设备103进行银行业务办理提供支持的后台管理服务端(仅为示例)。后台管理服务端可以对接收到的用户请求等数据进行分析等处理,并将处理结果反馈给终端设备。
51.需要说明的是,本公开实施例所提供的软件升级方法可以由服务端105、终端设备101共同执行。相应地,本公开实施例所提供的软件升级装置一般可以设置于服务器105和终端设备101中。也可以由服务端105、服务端106、终端设备101、终端设备102和终端设备
103共同执行。相应地,本公开实施例所提供的软件升级装置一般可以设置于服务器105、服务端106、终端设备 101、终端设备102和终端设备103中。
52.显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
53.参见图2,图2为本技术实施例提供的一种软件升级方法流程图,该方法包括:
54.步骤s201:客户端获取升级指令。
55.当客户端中安装的软件需要升级时,客户端可以获取升级指令。升级指令是客户端软件操作人员触发的操作命令。升级指令可以选择人工输入,或通过识别用户身份自动输入的方式实现。具体地,技术人员可以通过在客户端软件页面输入操作命令,以使客户端获取到升级指令并执行升级操作。
56.步骤s202:所述客户端基于预设算法,生成第一校验码。
57.在获取到升级指令之后,客户端可以根据预设算法和第一升级软件库中的软件得到第一校验码。所谓第一校验码是指与第一升级软件库中的软件对应的一串数字标识码。比如,客户端利用预设算法遍历第一升级软件库,生成软件摘要文件。客户端根据生成的软件摘要文件,生成第一校验码。其中,软件摘要文件可以唯一标识第一升级软件库中所包括的软件。如果两个软件库对应的软件摘要文件不同,则这两个软件库所包括的软件不同。第一升级软件库是指已经存在于客户端中的多个软件集合。第一升级软件库中包括客户端已经安装的多个软件。
58.在本技术实施例中,客户端可以基于预设算法生成第一校验码。可选的,第一升级软件库可能包括多个软件,所述多个软件中每个软件可能包括多个文件。那么客户端可以先获取每个文件的摘要信息,再根据每个文件的摘要信息确定软件对应的软件摘要文件,最终基于软件摘要文件确定第一校验码。
59.具体地,假设第一升级软件库包括第一软件,且第一软件包括多个文件,那么客户端可以通过预设算法获取第一软件中每个文件的摘要信息。接着,客户端可以根据预设算法对第一软件中所有文件的摘要信息进行处理,从而得到第一软件摘要文件。在得到第一软件摘要文件之后,客户端可以根据第一软件摘要文件生成第一校验码。
60.可选的,客户端可以通过上述方式得到第一升级软件库中每个软件对应的软件摘要文件。接着,客户端可以将多个软件的软件摘要文件整合处理,得到第一校验码。
61.例如,上述第一升级软件库还可以包括第二软件。那么客户端可以获取第二软件中每个文件的摘要信息,从而得到第二软件摘要文件。接着,客户端可以通过对第一软件摘要文件和第二软件摘要文件进行处理,得到第一校验码。
62.这样,通过校验码代替软件进行处理,可以减少后续处理对带宽资源的占用量,且能够提高处理效率。关于预设算法,可以是哈希算法,比如信息摘要算法第五版md5算法。这样,一方面能够减少后续处理时占用的带宽资源,另一方面通过将软件信息变换成md码,利用公钥加密的方式提高软件升级安全性。也就是说,采用哈希算法获得校验码的方式可以实现只有授权的客户才能够进行软件升级的目的。
63.步骤s203:当所述第一校验码与第二检验码不匹配时,所述客户端提取所述第一校验码与所述第二校验码的差异码。
64.第二校验码是服务端采用与客户端同样的预设算法,对第二升级软件库处理获得一串数字标识码。比如,生成第一校验码采用预设算法为md5算法,则生成第二校验码的预设算法同样是md5算法。其中,第二升级软件库是指技术人员想要升级的多个软件。可以理解的是,第二升级软件库中的部分软件可以与第一升级软件库中的部分软件相同。第二升级软件库还可以包括未安装到客户端的一个或多个软件。
65.在本技术实施例中,可以通过判断第一校验码和第二校验码是否相等的方式判断第一校验码与第二校验码是否匹配。比如,第一校验码为 123abcd456,第二校验码为123abce556。由于第一校验码和第二校验码不相等,因此第一校验码与第二校验码不匹配。
66.差异码是指第一校验码与第二校验码的不同码组成的坐标集合,坐标可以表示成(a,b)。其中,a为第一校验码包括但第二校验码不包括的数字码, b为第二校验码包括但第一校验码不包括的数字码。对于上述举例校验码,差异码可以表示成{(d,e),(4,5)}。
67.可选的,客户端可以经过分布式消息中间件从服务端获取第二校验码。比如,采用zookeeper分布式中间件。采用这种中间件能够实现同步更新,并且该中间件仅需要一个客户端版本更新,便可实现所有客户端版本的同步更新。
68.步骤s204:所述客户端利用所述差异码对应的所述第二升级软件库中的软件,更新所述第一升级软件库中的软件。
69.当客户端判断出第一校验码与第二校验码不匹配的情况下,客户端可以提取出第一校验码和第二校验码中的差异码,并可以利用上述差异码进行软件更新。
70.差异码可以以坐标的形式标识,其中差异码的横坐标表示第一升级软件库中对应的软件的文件,纵坐标表示第二升级软件库中对应软件的文件。例如,假设差异码为坐标(a,b)。其中,a对应的第一升级软件库中对应的一个软件的一个文件,b对应第二升级软件库中对应的一个软件的一个文件。这样,在利用第二升级软件库中的软件更新第一升级软件库中的软件时,可以利用b对应软件的文件更新a对应软件的文件。对于更新,可以是删除a对应软件的文件,下载b对应软件的文件。
71.本技术实施例提供了一种软件升级方法。在执行所述方法时,首先客户端基于预设算法,生成与第一升级软件库对应的第一校验码,服务端基于上述预设算法,生成与第二升级软件库对应的第二校验码。当第一校验码和第二校验码不匹配时,客户端提取两校验码的差异码,并从服务端下载差异码对应的软件。这样,升级软件时只需要传递差异码对应的软件,无需传递整个软件包。如此,可以实现通过减少升级包传输内容的方式,降低升级时对网络带宽资源的占用量。
72.可选的,在软件版本升级之前,可以预设生效时点。其中,生效时间为下载差异码对应的软件的时间。生效时间的格式可以是ccyymmdd hh: mm:ss,用于表示ccyy年mm月dd日hh时mm分ss秒的下载时间。若系统时间大于生效时点,下载差异码对应的第二升级软件库中的软件。当系统时间小于或等于生效时点,客户端不更新第一升级软件库。
73.图3所示,为本技术实施例提供一种基于生效时点的升级方式示意图。假设图3所提供的系统时间为2022年2月22日10:00:00。a实例的生效时间为2022022204:30:00,b实例的生效时间为2022022212:30:00,c实例的生效时间为2022022218:30:00。v1为旧软件版本,即第一升级软件库中的软件, v2为新软件版本,即第二升级软件库的软件。由于系统时间大于a实例生效时间,小于b、c实例生效时间,则a下载旧版本v1,b、c实例下载新版本v2。
74.可选的,生效时点可以选择业务流量低于流量阈值、服务压力小于压力阈值的时间段内的时间点,从而可以避免升级时,其他资源占用网络带宽资源量,达到网络带宽资源被占用量小,进而可以提高传输距离。
75.在本技术实施例中,上述图2所述的步骤s202存在多种可能的实现方式,下面分别进行介绍。需要说明的是,下文介绍中给出的实现方式仅作为示例性的说明,并不代表本技术实施例的全部实现方式。
76.参见图4,该图为本技术实施例提供的一种获取第一校验码的流程图。
77.根据图4可知,步骤s202具体实现方式为:
78.步骤s401:客户端根据预设算法,遍历第一升级软件库中的软件a下所有的文件,获得每个文件的摘要信息。
79.可选的,预设算法为md5算法,获得每个文件的摘要信息是指获得每个文件的md5码。
80.步骤s402:根据每个文件的摘要信息,生成软件a的软件摘要文件。
81.可以采用递归顺排方式将每个文件的摘要信息进行组合,得到一个包括所有文件的摘要信息的软件a的软件摘要文件。其中,递归顺排方式为客户端依照顺序依次将多个数字标识码排列成一串新的数字标识码的方式。假设软件a包括三个文件,分别是文件a、文件b和文件c,通过预设算法处理后获得文件a的摘要信息为12345,文件b的摘要信息为35678,文件c的摘要信息为abc75,那么软件a的软件摘要文件为1234535678abc75。
82.步骤s403:客户端遍历第一升级软件库中的所有软件,获得所有软件的软件摘要文件。
83.步骤s404:整合所有软件的软件摘要文件,生成第一校验码。
84.可选的,采用同样的递归顺排方式对每个软件摘要文件进行,生成第一校验码。假设软件摘要文件a为2014abc3,软件摘要文件b为2022cde2,软件摘要文件c为10364578,则生成的第一校验码为 2014abc32022cde210364578。
85.上面介绍了本技术实施例提供的获取第一校验码方法,下面结合具体的应用场景,对该获取方法做示例性的说明。
86.参见图5,为本技术实施例提供的一种的单软件升级方法流程图。
87.步骤s501:预设生效时点,根据系统时间与生效时点之间的关系,确定下载优先级。
88.可选的,将生效时点预设成2022040510:00:00。若系统时间大于生效时点,下载差异码对应的第二升级软件库中的软件;当系统时间小于或等于生效时点,软件不进行版本更新。
89.步骤s502:服务端创建升级软件库b,存放客户端已经安装或者未安装的多个软件及软件对应的软件包;升级软件库包括未安装软件b1。
90.步骤s503:服务端利用md5算法,遍历软件b1对应的软件包中的所有的文件,获得软件b1的软件摘要文件。
91.步骤s504:服务端根据软件b1的软件摘要文件,获得软件b1的校验码 b码。
92.步骤s505:客户端根据md5算法,遍历客户端软件库a中软件a1的所有文件,获得软件a1的软件摘要文件;
93.步骤s506:客户端根据软件a1的软件摘要文件,生成软件a1的校验码 a码。
94.步骤s507:客户端判断b码与a码是否相等。当不相等时,提取a码与b码的差异码c码。
95.步骤s508:客户端删除差异码c码中与已安装软件a1中对应的文件,并下载差异码c码中与未安装软件b1中对应的文件。
96.图6,为本技术实施例提供的一种多软件升级方法流程图。具体包括:
97.步骤s601:预设生效时点,以及根据系统时间与生效时点之间的关系,确定下载优先级。
98.可选的,将生效时点预设成2022040510:00:00。若系统时间大于生效时点,下载差异码对应的第二升级软件库中的软件;当系统时间小于或等于生效时点,下载差异码对应的第一升级软件库中的软件。
99.步骤s602:服务端利用md5算法,遍历升级软件库b中多个软件以及软件下所有的文件,获得每个软件对应的软件摘要文件。
100.步骤s603:服务端采用递归顺排的方式对多个软件摘要文件进行整合处理,获得校验码b码。
101.步骤s605:客户端基于同样的md5算法和递归顺排方式对客户端软件库a中软件进行处理,获得检验码a码。
102.步骤s606:客户端判断b码与a码是否相等,如果不相等,提取a码与b码的差异码c码。
103.步骤s607:客户端删除差异码c码中与客户端软件库a中已安装的软件对应的文件,并下载差异码c码中与升级软件b中未安装的软件对应的文件。
104.本技术实施例提供了一种多软件升级方法。在执行上述方法时,首先生成每个软件的软件摘要文件,再通过递归顺排的方式将多个软件摘要文件组合获得校验码。这种获取校验码进行升级方式,在进行多软件升级时,可以快速获得差异码对应的软件下客户端需要升级的文件。如此,相对于每个软件依次单独升级,本技术实施例提供的多软件升级方式,能够提高多软件升级效率。
105.以上为本技术实施例提供软件升级方法的一些具体实现方式,基于此,本技术还提供了对应的装置。下面将从功能模块化的角度对本技术实施例提供的装置进行介绍。
106.参见图7所示的软件升级装置700的结构示意图,该装置700包括:
107.获取单元701,用于获取升级指令。
108.生成单元702,用于基于预设算法,生成第一校验码。
109.其中,第一校验码与第一升级软件库对应,第一升级软件库包括客户端上已安装的多个软件;
110.提取单元703,用于当第一校验码与第二检验码不匹配时,客户端提取第一校验码与所述第二校验码的差异码;第二校验码为客户端从服务端获取并基于预设算法生成的校验码,第二校验码与第二升级软件库对应;第二升级软件库包括客户端未安装的多个软件。
111.升级单元704,用于客户端利用所述差异码对应的第二升级软件库中的软件,更新差异码对应的第一升级软件库中的软件。
112.可选的,生成单元,包括:摘要生成单元,用于根据预设算法,基于第一升级软件
库,得到软件摘要文件;校验码生成单元,用于根据软件摘要文件,生成第一校验码。
113.此外,上述装置还包括:预处理单元,用于预设生效时点,生效时点为下载的时间;权限设置单元,用于当系统时间大于生效时间,差异码对应的第二升级软件库中的软件高于第一升级软件库中的软件;当系统时间小于或等于生效时间,差异码对应的第二升级软件库中的软件低于第一升级软件库中的软件。
114.本技术实施例提供的软件升级的装置,通过生成单元702,用于基于预设算法生成第一校验码,提取单元703,用于当第一校验码和第二校验码不匹配时,客户端提取第一校验码和第二校验码的差异码,利用差异码对应的需要升级的软件更新客户端中已经安装的软件。这样,升级软件时只需要传递差异码对应的软件文件,无需传递整个软件包。如此,可以实现通过减少升级包传输内容的方式,降低升级时对网络带宽资源的占用量,进而解决升级时网络资源紧张问题。
115.需要说明的是,本发明提供的软件升级方法可用于人工智能领域、区块链领域、分布式领域、云计算领域、大数据领域、物联网领域、移动互联领域、网络安全领域、芯片领域、虚拟现实领域、增强现实领域、全息技术领域、量子计算领域、量子通信领域、量子测量领域、数字孪生领域或金融领域。上述仅为示例,并不对本发明提供的软件升级方法的应用领域进行限定。
116.本技术实施例还提供了对应的设备以及计算机存储介质,用于实现本技术实施例提供的方案。
117.其中,所述设备包括存储器和处理器,所述存储器用于存储指令或代码,所述处理器用于执行所述指令或代码,以使所述设备执行本技术任一实施例所述的软件升级方法。
118.所述计算机存储介质中存储有代码,当所述代码被运行时,运行所述代码的设备实现本技术任一实施例所述的软件升级方法。
119.本技术实施例中提到的“第一”、“第二”(若存在)等名称中的“第一”、“第二”只是用来做名字标识,并不代表顺序上的第一、第二。
120.通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本技术的技术方案可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如只读存储器(英文:read-onlymemory,rom)/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如路由器等网络通信设备)执行本技术各个实施例或者实施例的某些部分所述的方法。
121.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
122.以上所述仅是本技术示例性的实施方式,并非用于限定本技术的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1