程序更新处理方法、装置、设备、存储介质和程序产品与流程
未命名
07-27
阅读:135
评论:0
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.图1为一个实施例中程序更新处理方法的流程示意图;
33.图2为一个实施例中程序树的结构示意图;
34.图3为一个实施例中程序二叉树的结构示意图;
35.图4为一个实施例中获取程序二叉树的流程示意图;
36.图5为一个实施例中程序树转换为程序二叉树的示意图;
37.图6为一个实施例中目标程序版本更新处理的流程示意图;
38.图7为另一个实施例中程序更新处理方法的流程示意图;
39.图8为一个实施例中程序更新处理方法装置的结构框图;
40.图9为一个实施例中计算机设备的内部结构图。
具体实施方式
41.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
42.需要说明的是,本发明实施例所涉及的术语“第一\第二”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序。应该理解“第一\第二”区分的对象在适当情况下可以互换,以使这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
43.本技术实施例提供的程序更新处理方法,可以应用于金融科技的应用环境中。例如,针对现有银行软件程序迭代频繁的前提下,基于银行软件程序在更新后的运行风险问题,在银行软件目标程序对应的接口程序的缓存数据存在缓存值的情况下,获取银行软件目标程序的子程序;基于子程序,得到银行软件目标程序对应的程序树,并利用程序树,构建银行软件目标程序对应的程序二叉树;程序二叉树的程序节点与子程序一一对应;获取子程序各自的目标缓存值,并根据目标缓存值和程序二叉树,对银行软件目标程序进行版本更新处理。
44.在一个实施例中,如图1所示,提供了一种程序更新处理方法,本实施例以该方法应用于服务器进行举例说明,可以理解的是,该方法也可以应用于终端,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
45.步骤s101,针对金融系统中的目标程序,在目标程序对应的接口程序的缓存数据存在缓存值的情况下,获取目标程序的子程序。
46.其中,目标程序为待更新处理的银行软件的目标程序,而子程序为该目标程序中的某部份代码,由一个或多个语句块组成,它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性,也即,目标程序能够被拆分为多个子程序,至于接口程序,又称为应
用编程接口,指的是不同目标程序之间,或者目标程序不同组成部分衔接的约定。由于近年来银行软件系统的规模日益庞大,常常需要把复杂的银行软件系统划分成小的组成部分,编程接口的设计十分重要,程序设计的实践中,编程接口的设计首先要使银行软件系统的职责得到合理划分。良好的接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的维护性和扩展性。
47.然后,缓存数据指的是给上述目标程序对应的接口程序预先配置的缓存数据,而缓存值为上述缓存数据对应的哈希值,该哈希值指的是,哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值,哈希值是一段数据唯一且极其紧凑的数值表示形式,如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值,要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性,一般用于快速查找和加密算法。最后,该哈希值由sm3哈希算法得到,在商用密码体系中,sm3主要用于数字签名及验证、消息认证码生成及验证、随机数生成等,其算法公开,其安全性及效率与sha-256相当。
48.具体地,获取目标程序对应的接口程序的缓存数据,然后通过sm3哈希算法,计算上述缓存数据的哈希值,也即缓存值,如果上述缓存数据存在缓存值,则对目标程序进行下一步的版本更新,如果上述缓存数据不存在缓存值,则不对目标程序进行下一步的版本更新,维持目标程序当前版本不变。然后在缓存数据存在缓存值的请款下,依据目标程序的内在结构,获取目标程序的子程序。
49.步骤s102,基于子程序,得到目标程序对应的程序树,并利用程序树,构建目标程序对应的程序二叉树;程序二叉树的程序节点与子程序一一对应。
50.其中,程序树指的是一种程序结构,如图2所示,它是由一个或多个有限的子程序节点组成一个具有层次关系的子程序集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的,它具有以下的特点:每个节点有零个或多个子节点,没有父节点的节点称为根节点,每一个非根节点有且只有一个父节点,除了根节点外,每个子节点可以分为多个不相交的子树。例如,图2中的子程序a没有父节点,为根节点,子程序b、子程序c、子程序d、子程序e的父节点为子程序a,子程序b、子程序c、子程序d、子程序e分别与子程序a的关系为父子节点关系,而子程序c1和子程序c2之间的关系为兄弟节点关系,子程序c1和子程序c2的父节点为子程序c。
51.然后,程序二叉树也是一种程序结构,如图3所示,程序二叉树是程序树形结构的一个重要类型。许多实际问题抽象出来的程序结构往往是二叉树形式,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。二叉树特点是每个节点最多只能有两棵子树,且有左右之分。二叉树是多个有限子程序的集合,该集合或者为空、或者由一个称为根的子程序及两个不相交的、被分别称为左子树和右子树的二叉树组成,是有序树,当集合为空时,称该二叉树为空二叉树。在二叉树中,一个子程序也称作一个节点。
52.具体地,为了便于计算机程序处理,需要将程序树转换成程序二叉树,基于子程序,以及子程序之间的相互关系,以子程序作为节点,构建目标程序对应的程序树,并利用程序树,子程序之间的相互关系,以子程序作为节点,构建目标程序对应的程序二叉树。
53.步骤s103,获取子程序各自的目标缓存值,并根据目标缓存值和程序二叉树,对金融系统中的目标程序进行版本更新处理。
54.其中,目标缓存值指的是子程序对应的接口程序的缓存数据的缓存值,目标缓存值具体为该缓存数据的哈希值,而版本更新处理指的是目标程序的热更新处理,热更新指的是程序可以在线切换新旧版本,无需重新安装更新程序,即可完成更新。
55.具体地,通过sm3哈希算法,计算得到子程序各自的目标缓存值,根据程序二叉树上个节点,也即子程序的缓存值,来判断该节点对应的子程序是否需要进行版本更新处理,来实现对目标程序进行版本更新处理。
56.上述程序更新处理方法中,通过针对金融系统中的目标程序,在目标程序对应的接口程序的缓存数据存在缓存值的情况下,获取目标程序的子程序;基于子程序,得到目标程序对应的程序树,并利用程序树,构建目标程序对应的程序二叉树;程序二叉树的程序节点与子程序一一对应;获取子程序各自的目标缓存值,并根据目标缓存值和程序二叉树,对金融系统中的目标程序进行版本更新处理。本技术通过获取目标程序的子程序,并利用子程序构建程序二叉树,然后基于程序二叉树每个节点对应的缓存值,来对子程序进行更新处理,能够使得目标程序的更新处理更加合理。
57.在一个实施例中,如图4所示,利用程序树,构建目标程序对应的程序二叉树,包括以下步骤:
58.步骤s401,基于程序树,获取子程序之间的兄弟节点关系以及父子节点关系。
59.其中,兄弟节点关系,指的是程序树中,具有同一个父节点的节点之间的关系,例如,图2中,子程序b、子程序c、子程序d、子程序e之间即为兄弟节点关系,子程序c1和子程序c2之间的关系也为兄弟节点关系。而父子节点关系,指的是程序树中,父节点与子节点之间的关系,例如,图2中,子程序b和子程序a之间为父子节点关系,子程序c和子程序c2之间也为父子节点关系。
60.具体地,根据程序树,解析程序树的树结构,得到子程序之间的兄弟节点关系以及父子节点关系。
61.步骤s402,根据父子节点关系,得到符合预设条件的目标父子节点关系。
62.其中,预设条件为预先设定的条件,具体为,每个节点的左父子节点关系。
63.具体地,如图5所示,保留每个节点的左父子节点关系,并把其余的父子节点关系删除,例如,图5中,对于a节点,只保留ab父子节点关系,将ac、ad、ae父子节点关系删除,对于c节点,只保留cc1父子节点关系,将cc2父子节点关系删除。
64.步骤s403,根据兄弟节点关系,以及目标父子节点关系,将子程序作为节点,构建目标程序对应的程序二叉树。
65.具体地,利用兄弟节点关系,以及保留下来的左父子节点关系,将子程序作为节点,构建目标程序对应的程序二叉树。并且,得到的程序二叉树中,父节点关系被保留下来的节点被标记出来(例如颜色标记),用于后续应用该程序二叉树时,区分连线的两个节点之间是父子关系还是兄弟关系。
66.例如,如图5所示,颜色为深灰色的子程序节点b、b1、c1、d1、e1为各自父节点最左边的子节点,保留程序树的这5个子节点与各自父节点的父子节点关系,也即,保留ab父子节点关系、bb1父子节点关系、cc1父子节点关系、dd1父子节点关系、ee1父子节点关系作为上述目标父子节点关系,并将ac父子节点关系、ad父子节点关系、ae父子节点关系、cc2父子节点关系删除。然后获取bc兄弟节点关系、cd兄弟节点关系、de兄弟节点关系、c1c2兄弟节点关
系。最后通过各兄弟节点关系,和各目标父子节点关系,将各子程序节点之间连接,并将b节点和c1节点顺时针旋转一定的角度,得到目标程序对应的程序二叉树。在其他实施例中,也可以先对兄弟节点关系的节点进行连线,再删除对应的父子节点之间的连线,最后进行角度旋转调整。
67.本实施例中,通过基于程序树,获取子程序之间的兄弟节点关系以及父子节点关系,能够准确地构建目标程序对应的程序二叉树。
68.在一个实施例中,基于子程序,得到目标程序对应的程序树,包括以下步骤:
69.获取子程序之间的父子节点关系;基于父子节点关系,子程序作为节点,构建目标程序对应的程序树。
70.具体地,基于子程序之间的数据流向关系,获取子程序之间的父子节点关系,基于父子节点关系,子程序作为节点,构建目标程序对应的程序树。
71.本实施例中,通过获取子程序之间的父子节点关系,能够精准地构建目标程序对应的程序树。
72.在一个实施例中,获取子程序各自的目标缓存值,包括以下步骤:获取子程序对应的接口程序的缓存数据;基于缓存数据,得到子程序对应的目标缓存值。
73.具体地,获取子程序对应的接口程序的缓存数据,基于缓存数据,通过sm哈希值算法,计算得到子程序对应的哈希值,即为目标缓存值。
74.本实施例中,通过获取子程序对应的接口程序的缓存数据,能够准确得到子程序对应的目标缓存值。
75.在一个实施例中,如图6所示,根据目标缓存值和程序二叉树,对金融系统中的目标程序进行版本更新处理,包括以下步骤:
76.步骤s601,在程序二叉树中,对于具有目标缓存值为第一缓存预设值的子程序,将该子程序由当前版本更新为目标版本。
77.其中,第一缓存预设值为预设的哈希值,而当前版本指的是目标程序的原始版本,至于目标版本是目标程序的更新后的版本。
78.具体地,如果子程序的目标缓存值为第一缓存预设值,则将该子程序由当前版本更新为目标版本。
79.步骤s602,在程序二叉树中,对于具有目标缓存值为第二缓存预设值的子程序,维持该子程序的当前版本。
80.其中,第二缓存预设值为预设的哈希值,与第二缓存预设值不相同。
81.具体地,如果子程序的目标缓存值为第二缓存预设值,则维持该子程序的当前版本。
82.本实施例中,通过判断子程序的目标缓存值是第一缓存预设值还是第二缓存预设值,能够准确的判断是否将该子程序由当前版本更新为目标版本。
83.在一个实施例中,上述方法还包括以下步骤:若更新后的目标程序出现运行错误,则基于运行错误,获取运行错误对应的错误子程序;将错误子程序进行版本还原。
84.其中,运行错误为目标程序的运行时遇到的故障,而错误子程序为该运行错误对应的子程序。
85.具体地,如果更新后的目标程序出现运行错误,则查找该运行错误对应的错误子
程序,并将还错误子程序进行版本还原。
86.本实施例中,通过对运行错误对应的错误子程序进行版本还原,能够有效的保证更新后的目标程序的运行安全。.
87.在一个实施例中,上述方法还包括以下步骤:获取目标程序对应的接口程序的缓存数据;判断缓存数据是否存在缓存值;在目标程序对应的接口程序的缓存数据不存在缓存值的情况下,维持目标程序的当前版本。
88.具体地,获取目标程序对应的接口程序的缓存数据,通过sm哈希算法,判断缓存数据是否存在缓存值,如果缓存数据不存在缓存值,维持目标程序的当前版本。
89.本实施例中,通过判断缓存数据是否存在缓存值,如果缓存数据不存在缓存值,不需要版本更新的目标程序不进行版本更新,能够更合理地对目标程序进行更新处理。
90.在一个应用实施例中,如图7所示,本技术提供了一种程序更新处理方法,包括以下步骤:
91.步骤1:目标程序根据缓存主键读取对应的缓存值。步骤2:判读缓存值是否为空,如果非空,执行当前稳定版本,流程结束。如果缓存非空,步骤3。步骤3:将目标程序划分为多个子程序,并根据子程序构建程序二叉树,将子程序作为上述程序二叉树的节点,根据事先定义的哈希算法计算各个节点的缓存哈希值,判读缓存值是否为预设值,如果缓存值为预设值,则当前子程序执行更新版本,如果缓存值为a,当前子程序保持程序当前版本。步骤4:流程结束。
92.本技术提供了一种程序更新处理系统,程序更新处理系统改包括:应用软件,系统服务器、缓存服务器、数据库服务器、应用程序修改树系统。
93.应用软件:需具备tcp/ip功能可以访问缓存服务器,应用软件部署在系统服务器。
94.系统服务器:是计算机局域网的核心部件。网络操作系统是在网络服务器上运行的,网络服务器的效率直接影响整个网络的效率。因此,一般要用高档计算机或专用服务器计算机作为网络服务器。系统服务器主要有运行网络操作系统,控制和协调网络中各计算机之间的工作,最大限度地满足用户的要求,并做出响应和处理。存储和管理网络中的共享资源,如数据库、文件、应用程序、磁盘空间、打印机、绘图仪等。为各工作站的应用程序服务,如采用客户/服务器(client/server)结构使网络服务器不仅担当网络服务器,而且还担当应用程序服务器。对网络活动进行监督及控制,对网络进行实际管理,分配系统资源,了解和调整系统运行状态,关闭/启动某些资源等作用。
95.缓存服务器:除具备和系统服务器类似的功能外,还安装有分布式缓存软件,对外提供缓存服务。基于二叉树节点缓存值来判断是否更新的方法,需要借助分布式缓存来实现,分布式缓存:由一个服务端实现管理和控制,有客户端节点存储数据,可以进一步提高数据的读取速率。那么我们要读取某个数据的时候,如果挨个节点找,那效率就太低了。因此需要根据一致性哈希算法确定数据的存储和读取节点。以数据d,节点总个数n为基础,通过一致性哈希算法计算出数据d对应的哈希值(相当于门牌号),根据这个哈希值就可以找到对应的节点了。一致哈希算法的好处在于节点个数发生变化(减少或增加)时无需重新计算哈希值,保证数据储存或读取时可以正确、快速地找到对应的节点。分布式缓存能够高性能地读取数据、能够动态地扩展缓存节点、能够自动发现和切换故障节点、能够自动均衡数据分区,而且能够为使用者提供图形化的管理界面,部署和维护都十分方便。
96.应用程序修改树系统:我们将每个程序的修改作为一个树,对于每个修改点或者修改粒度作为树的节点,我们可以根据事先定义的规则,形成一个修改树,为了便于计算机程序处理,需要将修改树转换成二叉树,数字化后存储到系统。
97.应用软件需具备访问网络的功能。为了便于描述,我们定义接口程序为interfacea,程序的当前版本实现为implementa,程序的待更新版本为implementb,执行程序为executiona。对于每一接口interface a我们都需要配置对应的缓存数据cachea,对应的值为a或者b,缓存值a对应,执行implmenta,b对应执行implementb,implementb解析修改树,为了兼顾系统运行速度和安全性,casha采用sm3 hash算法,散列后存储在缓存服务器。
98.执行程序executiona根据主键interfacea通过缓存协议读取对应的缓存值,如果缓存值为空,执行interfacea的实现为implementa,如果缓存值非空,执行inferfacea的实现implementb。
99.按照上述流程,应用系统可以通过读取缓存的值,来判定程序分支是需要执行当前版本implementa,还是需要加载新版本implementb,新版本implementb通过缓存读取数字化的二叉树值,还原二叉树,后续对于每个修改点根据二叉树的节点确定是走新版本还是老版本。应用系统升级后,可以通过修改缓存的配置(版本以及修改树的结构),升级到新的版本,在发现生产问题后,可以通过修改二叉树的值,按修改粒度恢复到原始版本,极端情况下可以切回到原始版本implementa。
100.针对现有银行商业软件迭代频繁,在软件部署后,存在软件运行错误,造成应用软件投产和生产运营风险的情况,本实施例中,将程序二叉树以及分布式缓存技术引入到程序更新中,通过目标程序的子程序构建程序二叉树,来判断是否更新某一个子程序,实现应用软件的目标程序的部分热更新,而不是将目标程序全部更新,降低应用软件投产和生产运营风险。
101.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
102.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的程序更新处理方法的程序更新处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个程序更新处理装置实施例中的具体限定可以参见上文中对于程序更新处理方法的限定,在此不再赘述。
103.在一个实施例中,如图8所示,提供了一种程序更新处理装置,包括:子程序获取模块801、二叉树获取模块802和程序更新模块803,其中:
104.子程序获取模块801,针对金融系统中的目标程序,用于在目标程序对应的接口程序的缓存数据存在缓存值的情况下,获取目标程序的子程序;
105.二叉树获取模块802,用于基于子程序,得到目标程序对应的程序树,并利用程序树,构建目标程序对应的程序二叉树;程序二叉树的程序节点与子程序一一对应;
106.程序更新模块803,用于获取子程序各自的目标缓存值,并根据目标缓存值和程序二叉树,对金融系统中的目标程序进行版本更新处理。
107.在其中一个实施例中,二叉树获取模块802,进一步用于基于程序树,获取子程序之间的兄弟节点关系以及父子节点关系;根据父子节点关系,得到符合预设条件的目标父子节点关系;根据兄弟节点关系,以及目标父子节点关系,将子程序作为节点,构建目标程序对应的程序二叉树。
108.在其中一个实施例中,二叉树获取模块802,进一步用于获取子程序之间的父子节点关系;基于父子节点关系,将子程序作为节点,构建目标程序对应的程序树。
109.在其中一个实施例中,程序更新模块803,进一步用于获取子程序对应的接口程序的缓存数据;基于缓存数据,得到子程序对应的目标缓存值。
110.在其中一个实施例中,程序更新模块803,进一步用于在程序二叉树中,对于具有目标缓存值为第一缓存预设值的子程序,将该子程序由当前版本更新为目标版本;在程序二叉树中,对于具有目标缓存值为第二缓存预设值的子程序,维持该子程序的当前版本。
111.在其中一个实施例中,程序更新模块803,进一步用于若更新后的目标程序出现运行错误,则基于运行错误,获取运行错误对应的错误子程序;将错误子程序进行版本还原。
112.在其中一个实施例中,子程序获取模块801,进一步用于获取目标程序对应的接口程序的缓存数据;判断缓存数据是否存在缓存值;在目标程序对应的接口程序的缓存数据不存在缓存值的情况下,维持目标程序的当前版本。
113.上述程序更新处理装置中的模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上模块对应的操作。
114.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储程序更新处理数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种程序更新处理方法。
115.本领域技术人员可以理解,图9中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
116.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
117.针对金融系统中的目标程序,在目标程序对应的接口程序的缓存数据存在缓存值的情况下,获取目标程序的子程序;
118.基于子程序,得到目标程序对应的程序树,并利用程序树,构建目标程序对应的程序二叉树;程序二叉树的程序节点与子程序一一对应;
119.获取子程序各自的目标缓存值,并根据目标缓存值和程序二叉树,对金融系统中的目标程序进行版本更新处理。
120.在一个实施例中,处理器执行计算机程序时还实现以下步骤:基于程序树,获取子程序之间的兄弟节点关系以及父子节点关系;根据父子节点关系,得到符合预设条件的目标父子节点关系;根据兄弟节点关系,以及目标父子节点关系,将子程序作为节点,构建目标程序对应的程序二叉树。
121.在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取子程序之间的父子节点关系;基于父子节点关系,将子程序作为节点,构建目标程序对应的程序树。
122.在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取子程序对应的接口程序的缓存数据;基于缓存数据,得到子程序对应的目标缓存值。
123.在一个实施例中,处理器执行计算机程序时还实现以下步骤:在程序二叉树中,对于具有目标缓存值为第一缓存预设值的子程序,将该子程序由当前版本更新为目标版本;在程序二叉树中,对于具有目标缓存值为第二缓存预设值的子程序,维持该子程序的当前版本。
124.在一个实施例中,处理器执行计算机程序时还实现以下步骤:若更新后的目标程序出现运行错误,则基于运行错误,获取运行错误对应的错误子程序;将错误子程序进行版本还原。
125.在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取目标程序对应的接口程序的缓存数据;判断缓存数据是否存在缓存值;在目标程序对应的接口程序的缓存数据不存在缓存值的情况下,维持目标程序的当前版本。
126.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
127.针对金融系统中的目标程序,在目标程序对应的接口程序的缓存数据存在缓存值的情况下,获取目标程序的子程序;
128.基于子程序,得到目标程序对应的程序树,并利用程序树,构建目标程序对应的程序二叉树;程序二叉树的程序节点与子程序一一对应;
129.获取子程序各自的目标缓存值,并根据目标缓存值和程序二叉树,对金融系统中的目标程序进行版本更新处理。
130.在一个实施例中,处理器执行计算机程序时还实现以下步骤:基于程序树,获取子程序之间的兄弟节点关系以及父子节点关系;根据父子节点关系,得到符合预设条件的目标父子节点关系;根据兄弟节点关系,以及目标父子节点关系,将子程序作为节点,构建目标程序对应的程序二叉树。
131.在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取子程序之间的父子节点关系;基于父子节点关系,将子程序作为节点,构建目标程序对应的程序树。
132.在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取子程序对应的接口程序的缓存数据;基于缓存数据,得到子程序对应的目标缓存值。
133.在一个实施例中,处理器执行计算机程序时还实现以下步骤:在程序二叉树中,对于具有目标缓存值为第一缓存预设值的子程序,将该子程序由当前版本更新为目标版本;在程序二叉树中,对于具有目标缓存值为第二缓存预设值的子程序,维持该子程序的当前版本。
134.在一个实施例中,处理器执行计算机程序时还实现以下步骤:若更新后的目标程
memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
148.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
149.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
技术特征:
1.一种程序更新处理方法,其特征在于,所述方法包括:针对金融系统中的目标程序,在所述目标程序对应的接口程序的缓存数据存在缓存值的情况下,获取所述目标程序的子程序;基于所述子程序,得到所述目标程序对应的程序树,并利用所述程序树,构建所述目标程序对应的程序二叉树;所述程序二叉树的程序节点与所述子程序一一对应;获取所述子程序各自的目标缓存值,并根据所述目标缓存值和所述程序二叉树,对所述金融系统中的所述目标程序进行版本更新处理。2.根据权利要求1所述的方法,其特征在于,所述利用所述程序树,构建所述目标程序对应的程序二叉树,包括:基于所述程序树,获取所述子程序之间的兄弟节点关系以及父子节点关系;根据所述父子节点关系,得到符合预设条件的目标父子节点关系;根据所述兄弟节点关系,以及所述目标父子节点关系,将所述子程序作为节点,构建所述目标程序对应的程序二叉树。3.根据权利要求2所述的方法,其特征在于,所述基于所述子程序,得到所述目标程序对应的程序树,包括:获取所述子程序之间的父子节点关系;基于所述父子节点关系,将所述子程序作为节点,构建所述目标程序对应的程序树。4.根据权利要求1所述的方法,其特征在于,所述获取所述子程序各自的目标缓存值,包括:获取所述子程序对应的接口程序的缓存数据;基于所述缓存数据,得到所述子程序对应的目标缓存值。5.根据权利要求1至4任一项所述的方法,其特征在于,所述根据所述目标缓存值和所述程序二叉树,对所述金融系统中的所述目标程序进行版本更新处理,包括:在所述程序二叉树中,对于具有目标缓存值为第一缓存预设值的子程序,将该子程序由当前版本更新为目标版本;在所述程序二叉树中,对于具有目标缓存值为第二缓存预设值的子程序,维持该子程序的当前版本。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:若更新后的目标程序出现运行错误,则基于所述运行错误,获取所述运行错误对应的错误子程序;将所述错误子程序进行版本还原。7.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取所述目标程序对应的接口程序的缓存数据;判断所述缓存数据是否存在缓存值;在所述目标程序对应的接口程序的缓存数据不存在缓存值的情况下,维持所述目标程序的当前版本。8.一种程序更新处理装置,其特征在于,所述装置包括:子程序获取模块,用于针对金融系统中的目标程序,在所述目标程序对应的接口程序的缓存数据存在缓存值的情况下,获取所述目标程序的子程序;
二叉树获取模块,用于基于所述子程序,得到所述目标程序对应的程序树,并利用所述程序树,构建所述目标程序对应的程序二叉树;所述程序二叉树的程序节点与所述子程序一一对应;程序更新模块,用于获取所述子程序各自的目标缓存值,并根据所述目标缓存值和所述程序二叉树,对所述金融系统中的所述目标程序进行版本更新处理。9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。11.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
技术总结
本申请涉及一种程序更新处理方法、装置、计算机设备、存储介质和计算机程序产品,应用于金融科技领域或其他相关领域。该方法包括:针对金融系统中的目标程序,在目标程序对应的接口程序的缓存数据存在缓存值的情况下,获取目标程序的子程序;基于子程序,得到目标程序对应的程序树,并利用程序树,构建目标程序对应的程序二叉树;程序二叉树的程序节点与子程序一一对应;获取子程序各自的目标缓存值,并根据目标缓存值和程序二叉树,对金融系统中的目标程序进行版本更新处理。采用本方法能够使得目标程序的更新处理更加合理。得目标程序的更新处理更加合理。得目标程序的更新处理更加合理。
技术研发人员:王文耀 罗伟 刘强 徐玙萌
受保护的技术使用者:中国工商银行股份有限公司
技术研发日:2023.03.22
技术公布日:2023/7/25
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
