专利名称:服务运行逻辑装配方法、电子设备和存储介质
专利类型:发明专利
专利申请号:CN202210102299.6
专利申请(专利权)人:广东省农村信用社联合社
权利人地址:广东省广州市天河区黄埔大道西638号广东农信大厦
专利发明(设计)人:陈俊,赵瑜,黄水华,孙斌,唐向京,植栋辉
专利摘要:本发明提供一种服务运行逻辑装配方法、电子设备和存储介质,其中方法包括:获取业务服务请求,并确定所述业务服务请求指示的目标业务场景;基于所述目标业务场景,从所述业务服务请求对应的目标业务场景组合配置集中确定出目标业务场景组合配置,所述目标业务场景组合配置集包括多个不同业务场景对应的业务场景组合配置;基于所述目标业务场景组合配置,对所述业务服务请求对应的服务运行逻辑进行装配。本发明提供的方法、电子设备、存储介质和程序产品,在提高服务复用程度的同时,可以降低服务的耦合度,最终实现高复用程度和低耦合度的可重用服务。
主权利要求:
1.一种服务运行逻辑装配方法,其特征在于,包括:获取业务服务请求,并确定所述业务服务请求指示的目标业务场景;
基于所述目标业务场景,从所述业务服务请求对应的目标业务场景组合配置集中确定出目标业务场景组合配置,所述目标业务场景组合配置集包括多个不同业务场景对应的业务场景组合配置;
基于所述目标业务场景组合配置,对所述业务服务请求对应的服务运行逻辑进行装配;所述业务服务请求对应一目标服务,所述目标服务为可重用服务,无论为何种业务场景,所述目标服务的服务处理逻辑中整体的执行流程是相同的;
所述基于所述目标业务场景组合配置,对所述业务服务请求对应的服务运行逻辑进行装配,包括:基于所述服务运行逻辑所规定的执行顺序,从所述目标业务场景组合配置中确定出目标接口实现;
实例化所述目标接口实现,得到实例化对象,并基于所述实例化对象对所述服务运行逻辑进行装配,以供装配后的服务运行逻辑执行所述目标接口实现对应的执行步骤;
返回基于所述服务运行逻辑所规定的执行顺序,从所述目标业务场景组合配置中确定出目标接口实现的步骤,直至所述目标业务场景组合配置中的所有接口实现均实例化且装配完毕;
所述目标业务场景组合配置集中任一业务场景对应的业务场景组合配置基于如下步骤确定:确定目标服务对应的若干目标接口,所述目标服务为所述业务服务请求对应的服务;
基于所述任一业务场景,确定所述若干目标接口中每一目标接口对应的接口实现;
基于所述每一目标接口对应的接口实现,确定所述任一业务场景对应的业务场景组合配置;
所述若干目标接口基于如下步骤确定:
对所述目标服务进行服务处理逻辑分析,确定所述目标服务对应的若干流程步骤;
基于所述若干流程步骤中任一流程步骤,定义所述任一流程步骤对应的目标接口;
基于所述若干流程步骤中各流程步骤对应的目标接口,确定所述若干目标接口。
2.根据权利要求1所述的服务运行逻辑装配方法,其特征在于,所述从所述目标业务场景组合配置中确定出目标接口实现,包括:从所述目标业务场景组合配置中确定出目标接口实现版本;
基于所述目标接口实现版本,确定所述目标接口实现。
3.根据权利要求1所述的服务运行逻辑装配方法,其特征在于,所述每一目标接口对应的接口实现基于如下步骤定义:对所述任一业务场景进行处理规则分析,得到分析结果;
基于所述分析结果,定义所述每一目标接口对应的接口实现。
4.根据权利要求1所述的服务运行逻辑装配方法,其特征在于,所述确定所述业务服务请求指示的目标业务场景,包括:对所述业务服务请求进行对象解析处理,得到场景解析对象;
对所述场景解析对象进行场景解析处理,得到所述目标业务场景。
5.根据权利要求1至4中任一项所述的服务运行逻辑装配方法,其特征在于,所述获取业务服务请求,并确定所述业务服务请求指示的目标业务场景之前,还包括:获取声明信息集,并读取所述声明信息集中的各声明信息;
将所述各声明信息进行缓存,以供基于缓存的各声明信息,确定所述目标业务场景、所述目标业务场景组合配置和所述服务运行逻辑。
6.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至5任一项所述服务运行逻辑装配方法的步骤。
7.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述服务运行逻辑装配方法的步骤。 说明书 : 服务运行逻辑装配方法、电子设备和存储介质技术领域[0001] 本发明涉及计算机技术领域,尤其涉及一种服务运行逻辑装配方法、电子设备和存储介质。背景技术[0002] 中台应用架构是随着IT架构不断演进而发展得到的一种新型企业IT架构风格,其是在原有前台与后台的架构基础上,增加的一个用于灵活应对前台快速变化要求的共享服务应用层。而中台应用作为共享服务应用,其关键核心是能够最大化服务的重用性。[0003] 目前,通常是在代码逻辑上增加if‑else判断以及对应规则下的代码处理逻辑,实现服务的重用,得到可重用服务。然而,随着中台应用的不断发展以及需要支撑的业务系统逐渐增多,判断逻辑需不断增加,且每次都需要去改动原有的服务代码逻辑,从而导致代码或者功能上的耦合度增加,而且服务复用的程度越大,耦合度越高,进而导致服务运行的异常概率增加。发明内容[0004] 本发明提供一种服务运行逻辑装配方法、电子设备和存储介质,用以解决现有技术中服务复用程度越大导致耦合度越高的缺陷,实现高复用程度和低耦合度的可重用服务。[0005] 本发明提供一种服务运行逻辑装配方法,包括:[0006] 获取业务服务请求,并确定所述业务服务请求指示的目标业务场景;[0007] 基于所述目标业务场景,从所述业务服务请求对应的目标业务场景组合配置集中确定出目标业务场景组合配置,所述目标业务场景组合配置集包括多个不同业务场景对应的业务场景组合配置;[0008] 基于所述目标业务场景组合配置,对所述业务服务请求对应的服务运行逻辑进行装配。[0009] 根据本发明提供的一种服务运行逻辑装配方法,所述基于所述目标业务场景组合配置,对所述业务服务请求对应的服务运行逻辑进行装配,包括:[0010] 基于所述服务运行逻辑所规定的执行顺序,从所述目标业务场景组合配置中确定出目标接口实现;[0011] 实例化所述目标接口实现,得到实例化对象,并基于所述实例化对象对所述服务运行逻辑进行装配,以供装配后的服务运行逻辑执行所述目标接口实现对应的执行步骤;[0012] 返回基于所述服务运行逻辑所规定的执行顺序,从所述目标业务场景组合配置中确定出目标接口实现的步骤,直至所述目标业务场景组合配置中的所有接口实现均实例化且装配完毕。[0013] 根据本发明提供的一种服务运行逻辑装配方法,所述从所述目标业务场景组合配置中确定出目标接口实现,包括:[0014] 从所述目标业务场景组合配置中确定出目标接口实现版本;[0015] 基于所述目标接口实现版本,确定所述目标接口实现。[0016] 根据本发明提供的一种服务运行逻辑装配方法,所述目标业务场景组合配置集中任一业务场景对应的业务场景组合配置基于如下步骤确定:[0017] 确定目标服务对应的若干目标接口,所述目标服务为所述业务服务请求对应的服务;[0018] 基于所述任一业务场景,确定所述若干目标接口中每一目标接口对应的接口实现;[0019] 基于所述每一目标接口对应的接口实现,确定所述任一业务场景对应的业务场景组合配置。[0020] 根据本发明提供的一种服务运行逻辑装配方法,所述若干目标接口基于如下步骤定义:[0021] 对所述目标服务进行服务处理逻辑分析,确定所述目标服务对应的若干流程步骤;[0022] 基于所述若干流程步骤中任一流程步骤,定义所述任一流程步骤对应的目标接口;[0023] 基于所述若干流程步骤中各流程步骤对应的目标接口,确定所述若干目标接口。[0024] 根据本发明提供的一种服务运行逻辑装配方法,所述每一目标接口对应的接口实现基于如下步骤定义:[0025] 对所述任一业务场景进行处理规则分析,得到分析结果;[0026] 基于所述分析结果,定义所述每一目标接口对应的接口实现。[0027] 根据本发明提供的一种服务运行逻辑装配方法,所述确定所述业务服务请求指示的目标业务场景,包括:[0028] 对所述业务服务请求进行对象解析处理,得到场景解析对象;[0029] 对所述场景解析对象进行场景解析处理,得到所述目标业务场景。[0030] 根据本发明提供的一种服务运行逻辑装配方法,所述获取业务服务请求,并确定所述业务服务请求指示的目标业务场景之前,还包括:[0031] 获取声明信息集,并读取所述声明信息集中的各声明信息;[0032] 将所述各声明信息进行缓存,以供基于缓存的各声明信息,确定所述目标业务场景、所述目标业务场景组合配置和所述服务运行逻辑。[0033] 本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述服务运行逻辑装配方法的步骤。[0034] 本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述服务运行逻辑装配方法的步骤。[0035] 本发明提供的服务运行逻辑装配方法、电子设备和存储介质,获取业务服务请求,并确定业务服务请求指示的目标业务场景;基于目标业务场景,从业务服务请求对应的目标业务场景组合配置集中确定出目标业务场景组合配置,目标业务场景组合配置集包括多个不同业务场景对应的业务场景组合配置;基于目标业务场景组合配置,对业务服务请求对应的服务运行逻辑进行装配。通过上述方式,目标业务场景组合配置是根据目标业务场景进行确定的,有助于根据目标业务场景对服务运行逻辑进行装配,进而在一服务运行逻辑中可以装配多种业务场景组合配置,即在一服务运行逻辑中可以实现不同业务场景的复用,进而提高服务复用程度,同时,由于对服务运行逻辑进行装配时,并未修改服务运行逻辑本身的代码逻辑,只需基于不同的业务场景,设置对应的业务场景组合配置即可,从而降低服务运行逻辑在不同业务场景间的耦合度,进而降低服务的耦合度。综上所述,本发明在提高服务复用程度的同时,可以降低服务的耦合度,最终实现高复用程度和低耦合度的可重用服务。附图说明[0036] 为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。[0037] 图1为本发明提供的服务运行逻辑装配方法的流程示意图;[0038] 图2为本发明提供的业务场景组合配置确定方法的流程示意图;[0039] 图3为本发明提供的接口定义方法的流程示意图;[0040] 图4为本发明提供的业务场景确定方法的流程示意图;[0041] 图5为本发明提供的电子设备的结构示意图。具体实施方式[0042] 为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0043] 中台应用架构是随着IT架构不断演进而发展得到的一种新型企业IT架构风格,其是在原有前台与后台的架构基础上,增加的一个用于灵活应对前台快速变化要求的共享服务应用层。而中台应用作为共享服务应用,其关键核心是能够最大化服务的重用性,即中台应用对外提供的接口服务能够满足同类功能在不同业务场景下规则差异化处理的要求,能够按照调用方传递的输入参数进行判断,按需运行对应的逻辑功能,最终响应调用方期待的对应场景功能,从而避免类似功能重复建设,提高服务的重用率,进一步降低系统复杂度,提高整体研发效率。[0044] 目前,在中台应用架构中,要实现一个服务接口支持多种业务场景的服务重用方式,通常是在代码逻辑上增加if‑else判断以及对应规则下的代码处理逻辑,实现服务的重用,得到可重用服务。具体地,当业务场景或者业务规则需要新增或者变更,需要统筹分析各业务场景之间的区分方式,并且分析如何在原有的判断逻辑代码上增加对应的判断规则,总体而言主要有以下几种模式:(1)在原有的if判断中增加条件,共用代码处理逻辑,该方式主要适用于不同业务场景下相同的处理规则;(2)在代码块中增加新增if‑else处理逻辑代码,该方式主要适用于在原有的业务场景中增加细分业务规则;(3)新增if‑else判断条件及对应的处理逻辑代码,该方式主要适用于新增完全新的业务场景规则。[0045] 然而,随着中台应用的不断发展以及需要支撑的业务系统逐渐增多,越来越多的新业务场景和新业务规则需要同时支撑,导致判断逻辑需不断增加,且每次都需要去改动原有的服务代码逻辑。具体地,在应对复杂的业务规则时,只能通过多层嵌套,一旦业务规则变更,往往需要对服务代码逻辑进行大量的分析及改造,而且新的业务接入,也需要对服务代码逻辑经过代码层面的分析,才能知道当前服务是否可以复用该新的业务。因此,上述服务复用方式将会导致代码或者功能上的耦合度增加,而且服务复用的程度越大,耦合度越高,从而导致判断逻辑之间可能会有重叠,进而导致判断条件错误的概率增加,而判断条件错误将会导致服务执行错误,甚至业务规则间将会相互影响,最终导致整个服务功能的异常,进而导致服务运行的异常概率增加。在这种情况下,中台应用的维护难度及维护成本就会越来越大,且其研发效率越来越低,同时其响应速度也不断下降,此时中台应用的建设违背了中台应用架构的初衷。综上所述,如何提高中台应用中可重用服务的复用程度,同时降低可重用服务中不同业务场景间的耦合度,是目前亟需解决的问题。[0046] 针对上述问题,本发明提供了一种服务运行逻辑装配方法。图1为本发明提供的服务运行逻辑装配方法的流程示意图,如图1所示,该方法包括:[0047] 步骤110,获取业务服务请求,并确定所述业务服务请求指示的目标业务场景。[0048] 在本发明实施例中,该方法的应用终端以部署中台应用的服务端为例进行说明。[0049] 此处,业务服务请求为调用方生成的请求,并由调用方发送至服务端,以供服务端接收并获取该业务服务请求。具体地,服务端对外提供若干服务接口,以通过某一服务接口接收业务服务请求。该调用方可以为前台(前端)。[0050] 该业务服务请求中包括输入参数,该输入参数用于确定对应的目标业务场景。具体地,根据业务服务请求的输入参数,进行业务场景解析,得到目标业务场景。更为具体地,根据业务服务请求的输入参数,进行业务场景标识解析,得到目标业务场景标识,以基于目标业务场景标识确定目标业务场景。[0051] 在一情况下,业务服务请求的输入参数包括业务场景标识所对应的字段,以供服务端直接基于该业务场景标识所对应的字段,确定目标业务场景标识,并确定目标业务场景。[0052] 在另一情况下,在服务端中包括业务场景标识解析器,该业务场景标识解析器用于对业务服务请求的输入参数进行解析处理,得到目标业务场景标识,并确定目标业务场景。[0053] 在另一实施例中,在服务端中包括业务场景标识解析器和对象解析器,该对象解析器用于对业务服务请求的输入参数进行解析处理,得到场景解析对象,该业务场景标识解析器用于对场景解析对象进行解析处理,得到目标业务场景标识,并确定目标业务场景。[0054] 具体地,将业务服务请求的输入参数输入至对象解析器,得到对象解析器输出的场景解析对象,将场景解析对象输入至业务场景标识解析器,得到业务场景标识解析器输出的目标业务场景标识。[0055] 此时,业务服务请求的输入参数可以包括对象id,该对象id用于确定对应的场景解析对象。该对象id可以为用户id、调用方的ip地址或调用方的机器id等等,本发明实施例对此不作限定。[0056] 此外,需要对对象解析器进行声明,该对象解析器对应的声明信息可以包括但不限于以下一种或多种:对象解析器类路径、对象解析器名称、对象解析器描述等等。还需要对业务场景标识解析器进行声明,该业务场景标识解析器对应的声明信息可以包括但不限于以下一种或多种:业务场景标识解析器类路径、业务场景标识解析器名称、业务场景标识解析器描述、业务场景标识解析器标识等等。上述声明信息可以以声明文件形式进行保存。[0057] 进一步地,所述确定所述业务服务请求指示的目标业务场景的步骤,包括:[0058] 确定当前线程是否缓存有业务场景标识,若缓存有业务场景标识,则将该缓存的业务场景标识确定为目标业务场景标识,并基于该目标业务场景标识确定目标业务场景,若未缓存有业务场景标识,则根据业务服务请求的输入参数,进行业务场景解析,得到目标业务场景标识,并基于该目标业务场景标识确定目标业务场景,同时,将目标业务场景标识缓存于当前线程缓存中。[0059] 可以理解的是,将目标业务场景标识缓存在线程缓存中,以使在同一线程中无需重复确定目标业务场景标识,从而减少该服务端后续的处理时间,提高整体运行效率。[0060] 步骤120,基于所述目标业务场景,从所述业务服务请求对应的目标业务场景组合配置集中确定出目标业务场景组合配置,所述目标业务场景组合配置集包括多个不同业务场景对应的业务场景组合配置。[0061] 此处,目标业务场景组合配置集包括多个业务场景组合配置,多个业务场景组合配置为同一服务下,不同业务场景对应的业务场景组合配置。其中,一业务场景对应一业务场景组合配置。[0062] 此外,不同服务对应不同的业务场景组合配置集,一服务对应一业务场景组合配置集。[0063] 可以理解,一可重用服务的服务处理逻辑中整体的执行流程是相同的,均可以按照具体执行的对象分为若干个流程步骤,每个流程步骤所处理的事情是同一种事件类型,而不同的业务场景下的差异,主要体现在具体流程步骤的执行中。基于此,一业务场景组合配合集中的所有业务场景组合配置的整体执行流程是相同的,而根据不同业务场景的差异,其每一具体流程步骤可能会有不同。[0064] 此处,业务场景组合配置包括若干流程步骤,以及各流程步骤所对应的具体流程步骤,当然,还可以包括各流程步骤的执行顺序。[0065] 可以理解的是,通过多态的实现方式,可以实现一服务所对应的业务场景组合配置。其中,多态是同一个行为具有多个不同表现形式和形态的能力,在代码中体现为同一个接口,使用不同的实例而执行不同操作。基于此,若干流程步骤对应若干接口,每一流程步骤所对应的具体流程步骤对应一接口实现,即业务场景组合配置包括若干接口,以及各接口所对应的接口实现。[0066] 此处,需要对业务场景组合配置进行声明,该业务场景组合配置对应的声明信息可以包括但不限于以下一种或多种:该业务场景组合配置中若干接口的声明信息、该业务场景组合配置中每一接口对应的接口实现的声明信息、每一接口实现的接口实现版本的声明信息等等。其中,接口的声明信息可以为接口的唯一标识,接口实现的声明信息可以为接口实现的唯一标识。上述声明信息可以以声明文件形式进行保存。[0067] 需要说明的是,若业务场景组合配置中一接口对应的接口实现存在不同版本,则在业务场景组合配置对应的声明信息中需要将指定的接口实现版本进行声明,若业务场景组合配置中一接口对应的接口实现只有一个版本,则可以不对接口实现版本进行声明,也可以对接口实现版本进行声明。[0068] 此外,还需要说明的是,一业务场景组合配置集中各业务场景组合配置均定义了一个全局唯一标识,即为每一种业务场景定义一个全局唯一标识,进而按照全局唯一标识对业务场景组合配置集进行分组,得到各业务场景组合配置。[0069] 例如,在一服务ServiceA下,该服务ServiceA包括两个接口InterfaceA、InterfaceB,接口InterfaceA存在AImlp1、AImlp2两个接口实现,接口InterfaceB存在BImlp1、BImlp2两个接口实现。可以存在业务场景YWBS1,服务ServiceA下接口InterfaceA使用接口实现AImpl1,接口InterfaceB使用接口实现Bimpl2,相应的确定得到一业务场景组合配置;也可以存在业务场景标识YWBS2,服务ServiceA下接口InterfaceA使用接口实现AImpl2,接口InterfaceB使用接口实现Bimpl1,相应的确定得到一业务场景组合配置。[0070] 步骤130,基于所述目标业务场景组合配置,对所述业务服务请求对应的服务运行逻辑进行装配。[0071] 此处,该业务服务请求对应一目标服务,该目服务对应一服务运行逻辑。[0072] 可以理解,目标服务为可重用服务,无论为何种业务场景,该目标服务的服务处理逻辑中整体的执行流程是相同的,基于此,可以基于目标服务的服务处理逻辑中整体的执行流程,确定得到该服务运行逻辑,此时,未装配前的服务运行逻辑只有整体的执行流程,并没有每一流程步骤的具体流程步骤,因此,需要对服务运行逻辑进行装配,才能执行业务服务请求对应的步骤。[0073] 具体地,基于目标业务场景组合配置,对业务服务请求对应的服务运行逻辑进行具体流程步骤的装配。更为具体地,基于目标业务场景组合配置,对业务服务请求对应的服务运行逻辑进行接口实现的装配。该接口实现需要实例化后才能装配至服务运行逻辑,以供服务运行逻辑进行执行。[0074] 在一些实施例中,可以在服务运行逻辑中,通过创建对象的方式(即new对象的方式)实施化接口实现。[0075] 在另一些实施例中,可以在服务运行逻辑中,定义一个统一的接口实现类获取方法,以通过该接口实现类获取方法获取接口实现的实例化对象。[0076] 该接口实现类获取方法的方法参数包括业务服务请求的输入参数、服务运行逻辑的服务标识、服务运行逻辑中任一接口(任一可装配接口)的接口标识。基于此,通过该接口实现类获取方法可以实现上述步骤110‑130,其具体执行流程,此处不再一一赘述。[0077] 为便于理解,在一具体实施例中,该接口实现类获取方法中通过调用对象解析器获取场景解析对象,接着调用业务场景标识解析器获取目标业务场景标识,该目标业务场景标识缓存在线程缓存中,在同一线程无需重复计算,从而减少该服务运行逻辑中后续待装配接口的计算处理时间,提高整体运行效率,之后,根据目标业务场景标识获取对应的目标业务场景组合配置,并确定该接口实现类获取方法传入的接口标识所定义的接口实现,对目标业务场景组合配置中的接口实现确定时需要判断所声明的接口实现版本,如果没有指定接口实现版本,则按照该接口实现下所有信息中版本号最高的进行返回,确定接口实现完成后,根据接口实现声明信息中的接口实现类路径,实例化接口实现并将实例后的对象返回,提供服务运行逻辑进行执行。[0078] 本发明实施例提供的服务运行逻辑装配方法,获取业务服务请求,并确定业务服务请求指示的目标业务场景;基于目标业务场景,从业务服务请求对应的目标业务场景组合配置集中确定出目标业务场景组合配置,目标业务场景组合配置集包括多个不同业务场景对应的业务场景组合配置;基于目标业务场景组合配置,对业务服务请求对应的服务运行逻辑进行装配。通过上述方式,目标业务场景组合配置是根据目标业务场景进行确定的,有助于根据目标业务场景对服务运行逻辑进行装配,进而在一服务运行逻辑中可以装配多种业务场景组合配置,即在一服务运行逻辑中可以实现不同业务场景的复用,进而提高服务复用程度,同时,由于对服务运行逻辑进行装配时,并未修改服务运行逻辑本身的代码逻辑,只需基于不同的业务场景,设置对应的业务场景组合配置即可,从而降低服务运行逻辑在不同业务场景间的耦合度,进而降低服务的耦合度。综上所述,本发明实施例在提高服务复用程度的同时,可以降低服务的耦合度,最终实现高复用程度和低耦合度的可重用服务。[0079] 基于上述实施例,该方法中,上述步骤130包括步骤131‑133:[0080] 步骤131,基于所述服务运行逻辑所规定的执行顺序,从所述目标业务场景组合配置中确定出目标接口实现。[0081] 此处,由于服务运行逻辑具备整体的执行流程,基于此可以得到服务运行逻辑所规定的执行顺序。[0082] 具体地,在服务运行逻辑执行过程中,若需要执行某一接口对应的流程步骤,则从目标业务场景组合配置中确定出目标接口实现,更为具体地,从目标业务场景组合配置中确定出目标接口实现标识。[0083] 在一具体实施例中,所述从所述目标业务场景组合配置中确定出目标接口实现,包括:[0084] 从所述目标业务场景组合配置中确定出目标接口实现版本;[0085] 基于所述目标接口实现版本,确定所述目标接口实现。[0086] 此处,在确定得到目标接口实现之前,先确定当前接口所对应的接口实现的目标接口实现版本,从而确定出该目标接口实现版本对应的目标接口实现。[0087] 具体地,对目标业务场景组合配置中的目标接口实现确定时需要判断所声明的目标接口实现版本,如果没有指定目标接口实现版本,则将对应的所有接口实现下所有声明信息中版本号最高的接口实现确定为目标接口实现。[0088] 步骤132,实例化所述目标接口实现,得到实例化对象,并基于所述实例化对象对所述服务运行逻辑进行装配,以供装配后的服务运行逻辑执行所述目标接口实现对应的执行步骤。[0089] 具体地,根据目标接口实现的声明信息中的接口实现类路径,实例化该目标接口实现,得到实施化对象,将实施化对象装配至服务运行逻辑,即将实施化对象返回至服务运行逻辑,以供服务运行逻辑执行目标接口实现对应的执行步骤。[0090] 步骤133,返回基于所述服务运行逻辑所规定的执行顺序,从所述目标业务场景组合配置中确定出目标接口实现的步骤,直至所述目标业务场景组合配置中的所有接口实现均实例化且装配完毕。[0091] 此处,应获取服务运行逻辑中所有接口对应的接口实现的实例化对象,以使服务运行逻辑执行当前服务所要求的所有执行步骤,即执行完业务服务请求的所有执行步骤,并返回执行结果至调用方(如前台、前端)。[0092] 可以理解的是,服务运行逻辑是根据目标业务场景组合配置来装配对应的接口实现,而目标业务场景组合配置是根据目标业务场景进行确定的,基于此,不同业务场景下的具体运行逻辑能够充分解耦,从而降低服务运行逻辑在不同业务场景间的耦合度。具体地,当某个业务场景规则需要修改时,只需要修改该业务场景所使用的接口实现,无需对其他不关联的地方进行修改,从而实现了同一个服务运行逻辑对多个业务场景的支持,并且服务运行逻辑更加清晰明确,不同业务场景的运行逻辑相互隔离,而且对于开发人员来讲,改造点更加清晰明确,极大地降低改造影响范围。同时,当接口的接口实现沉淀足够多的时候,当新的业务场景接入时,可以直接基于现有的接口实现,快速生成一个对应的业务场景组合配置,进而快速支持新的业务场景,实现业务的快速上线,大大降低研发周期。[0093] 本发明实施例提供的服务运行逻辑装配方法,对服务运行逻辑进行装配时,并未修改服务运行逻辑本身的代码逻辑,只需将目标接口实现的实例化对象装配至服务运行逻辑即可,从而降低服务运行逻辑在不同业务场景间的耦合度,进而降低服务的耦合度。[0094] 基于上述任一实施例,图2为本发明提供的业务场景组合配置确定方法的流程示意图,如图2所示,该方法中,所述目标业务场景组合配置集中任一业务场景对应的业务场景组合配置基于如下步骤确定:[0095] 步骤210,确定目标服务对应的若干目标接口,所述目标服务为所述业务服务请求对应的服务。[0096] 步骤220,基于所述任一业务场景,确定所述若干目标接口中每一目标接口对应的接口实现。[0097] 步骤230,基于所述每一目标接口对应的接口实现,确定所述任一业务场景对应的业务场景组合配置。[0098] 此处,一业务服务请求对应一目标服务,一目标服务对应一目标业务场景组合配置集,一目标服务对应一服务运行逻辑。[0099] 可以理解的是,无论业务场景如何更改,目标服务的服务处理逻辑中整体的执行流程是相同的,基于此,无论业务场景如何更改,目标服务对应的若干目标接口是确定的。[0100] 例如,目标服务ServiceB包括两个接口InterfaceA和InterfaceB。[0101] 可以理解的是,不同的业务场景下的差异,主要体现在具体流程步骤的执行中,基于此,在不同业务场景下,若干目标接口中每一目标接口可能会有不同的接口实现。[0102] 例如,目标服务ServiceB包括两个接口InterfaceA和InterfaceB,其中,接口InterfaceA存在AImlp1、AImlp2两个接口实现,接口InterfaceB存在BImlp1、BImlp2两个接口实现。在一业务场景YWBS1,服务ServiceB下接口InterfaceA使用接口实现AImpl1,接口InterfaceB使用接口实现Bimpl2;在另一业务场景YWBS2,服务ServiceB下接口InterfaceA使用接口实现AImpl2,接口InterfaceB使用接口实现Bimpl1。[0103] 具体地,对每一目标接口对应的接口实现进行声明,得到任一业务场景对应的业务场景组合配置的声明信息。该任一业务场景对应的业务场景组合配置的声明信息可以包括但不限于以下一种或多种:该若干接口的声明信息、该每一接口对应的接口实现的声明信息、每一接口实现的接口实现版本的声明信息等等。其中,接口的声明信息可以为接口的唯一标识,接口实现的声明信息可以为接口实现的唯一标识。上述声明信息可以以声明文件形式进行保存。[0104] 需要说明的是,若每一目标接口对应的接口实现存在不同版本,则需要将指定的接口实现版本进行声明,若每一目标接口对应的接口实现只有一个版本,则可以不对接口实现版本进行声明,也可以对接口实现版本进行声明。[0105] 此外,还需要说明的是,通过上述方式,可以得到目标业务场景组合配置集中所有的业务场景组合配置,此时,可以对每一业务场景组合配置均定义一个全局唯一标识,即为每一种业务场景定义一个全局唯一标识,进而按照全局唯一标识对业务场景组合配置进行分组,从而基于分组的各业务场景组合配置,得到目标业务场景组合配置集。[0106] 本发明实施例提供的服务运行逻辑装配方法,业务场景组合配置是根据对应的业务场景进行确定的,进而在一目标服务下可以根据不同的业务场景定义多种业务场景组合配置,即在一目标服务下可以实现不同业务场景的复用,进而提高服务复用程度。[0107] 基于上述任一实施例,图3为本发明提供的接口定义方法的流程示意图,如图3所示,该方法中,所述若干目标接口基于如下步骤定义:[0108] 步骤310,对所述目标服务进行服务处理逻辑分析,确定所述目标服务对应的若干流程步骤。[0109] 步骤320,基于所述若干流程步骤中任一流程步骤,定义所述任一流程步骤对应的目标接口。[0110] 步骤330,基于所述若干流程步骤中各流程步骤对应的目标接口,确定所述若干目标接口。[0111] 需要说明的是,无论业务场景如何更改,目标服务的服务处理逻辑中整体的执行流程是相同的,基于此,无论业务场景如何更改,目标服务对应的若干流程步骤不变,基于此,对目标服务进行服务处理逻辑分析,以将目标服务的整体执行流程分成若干流程步骤。[0112] 具体地,在代码逻辑上,若干流程步骤中每一流程步骤,均定义一个对应的目标接口。更为具体地,在目标接口中定义对应流程步骤所对应的若干函数方法。该若干函数方法可以包括一个或多个函数方法,通常在一个目标接口中定义一个函数方法即可。[0113] 此处,在对接口定义完成后,需要对接口进行声明,该接口对应的声明信息可以包括但不限于以下一种或多种:接口所属服务(接口所属分组)、接口标识(接口唯一标识)、接口类路径、接口名称、接口描述、接口版本等等。上述声明信息可以以声明文件形式进行保存。[0114] 进一步地,通过上述定义的接口以及接口的函数方法,进行串接可以得到目标服务对应的服务运行逻辑。[0115] 此处,在得到服务运行逻辑之后,需要对服务运行逻辑进行声明,该服务运行逻辑对应的声明信息可以包括但不限于以下一种或多种:服务名称、服务标识、服务描述、服务中所涉及的接口信息等等。该服务中所涉及的接口信息可以为接口标识(接口唯一标识)。上述声明信息可以以声明文件形式进行保存。[0116] 可以理解的是,通过对服务运行逻辑进行声明,可以更加容易地对服务运行逻辑内可装配的接口进行管理,极大提高软件资产管理效率。[0117] 本发明实施例提供的服务运行逻辑装配方法,对目标服务中每一流程步骤均定义一个对应的接口,以供后续可以基于不同的业务场景,定义每一接口对应的接口实现,进而在一目标服务下可以根据不同的业务场景定义多种业务场景组合配置,即在一目标服务下可以实现不同业务场景的复用,进而提高服务复用程度。[0118] 基于上述任一实施例,该方法中,所述每一目标接口对应的接口实现基于如下步骤定义:[0119] 对所述任一业务场景进行处理规则分析,得到分析结果;[0120] 基于所述分析结果,定义所述每一目标接口对应的接口实现。[0121] 需要说明的是,不同的业务场景下的差异,主要体现在具体流程步骤的执行中,基于此,根据任一业务场景的处理规则,对服务运行逻辑中涉及的每一目标接口进行接口实现编写。[0122] 此处,在对接口实现定义完成后,需要对接口实现进行声明,该接口实现对应的声明信息可以包括但不限于以下一种或多种:接口实现标识(接口实现唯一标识)、接口实现类路径、接口实现名称、接口实现描述、接口实现版本、接口实现所属接口标识等等。上述声明信息可以以声明文件形式进行保存。[0123] 此外,需要说明的是,对于接口实现,同一个接口实现标识可以存在不同的版本,不同版本所对应的接口实现类路径必须不同,否则无法正确解析并实例化对应的接口实现,基于此,要对每一接口实现声明其接口实现版本。[0124] 本发明实施例提供的服务运行逻辑装配方法,通过定义接口实现的方式确定每一目标接口的实现方式,其接口实现的函数方法的入参和出参均已明确,因此无需改动服务运行逻辑,进而在一目标服务下可以实现不同业务场景的复用,从而提高服务复用程度。[0125] 基于上述任一实施例,图4为本发明提供的业务场景确定方法的流程示意图,如图4所示,该方法中,所述确定所述业务服务请求指示的目标业务场景,包括:[0126] 步骤410,对所述业务服务请求进行对象解析处理,得到场景解析对象。[0127] 步骤420,对所述场景解析对象进行场景解析处理,得到所述目标业务场景。[0128] 具体地,对业务服务请求的输入参数进行对象解析处理,得到场景解析对象,对场景解析对象进行场景解析处理,得到目标业务场景。[0129] 在一具体实施例中,将业务服务请求的输入参数输入至对象解析器,进行对象解析处理,得到对象解析器输出的场景解析对象,将场景解析对象输入至业务场景标识解析器,进行场景解析处理,得到业务场景标识解析器输出的目标业务场景标识。[0130] 此处,业务服务请求的输入参数可以包括对象id,该对象id用于确定对应的场景解析对象。该对象id可以为用户id、调用方的ip地址或调用方的机器id等等,本发明实施例对此不作限定。[0131] 此处,需要对对象解析器进行声明,该对象解析器对应的声明信息可以包括但不限于以下一种或多种:对象解析器类路径、对象解析器名称、对象解析器描述等等。[0132] 此处,需要对业务场景标识解析器进行声明,该业务场景标识解析器对应的声明信息可以包括但不限于以下一种或多种:业务场景标识解析器类路径、业务场景标识解析器名称、业务场景标识解析器描述、业务场景标识解析器标识等等。上述声明信息可以以声明文件形式进行保存。[0133] 本发明实施例提供的服务运行逻辑装配方法,通过对业务服务请求进行对象解析处理,以及场景解析处理,准确得到目标业务场景,进而基于准确的目标业务场景确定目标业务场景组合配置,有助于后续根据目标业务场景对服务运行逻辑进行装配,进而在一服务运行逻辑中可以装配多种业务场景组合配置,即在一服务运行逻辑中可以实现不同业务场景的复用,进而提高服务复用程度,[0134] 基于上述任一实施例,该方法中,在上述步骤110之前,还包括:[0135] 获取声明信息集,并读取所述声明信息集中的各声明信息;[0136] 将所述各声明信息进行缓存,以供基于缓存的各声明信息,确定所述目标业务场景、所述目标业务场景组合配置和所述服务运行逻辑。[0137] 此处,声明信息集包括但不限于以下一种或多种:接口的声明信息、接口实现的声明信息、对象解析处理的声明信息、场景解析处理的声明信息和业务场景组合配置的声明信息、服务运行逻辑的声明信息等等。该声明信息集为目标服务所对应的声明信息集,一目标服务对应一声明信息集。[0138] 该声明信息集用于确定目标业务场景,具体地,基于声明信息集中的对象解析处理的声明信息、场景解析处理的声明信息,确定目标业务场景。其中,对象解析处理的声明信息可以为对象解析器的声明信息,场景解析处理的声明信息可以为业务场景标识解析器的声明信息,具体的执行过程参考上述各实施例,此处不再一一赘述。[0139] 该声明信息集还用于确定目标业务场景组合配置,具体地,基于声明信息集中的业务场景组合配置的声明信息、接口的声明信息、接口实现的声明信息,确定目标业务场景组合配置,具体的执行过程参考上述各实施例,此处不再一一赘述。[0140] 该声明信息集还用于确定服务运行逻辑,具体地,基于声明信息集中的服务运行逻辑的声明信息,确定服务运行逻辑,具体的执行过程参考上述各实施例,此处不再一一赘述。[0141] 本发明实施例提供的服务运行逻辑装配方法,将声明信息集中的各声明信息进行缓存,以供后续获取业务服务请求后,可以更快地进行服务运行逻辑装配,从而提高服务运行逻辑装配的效率。[0142] 下面对本发明提供的服务运行逻辑装配装置进行描述,下文描述的服务运行逻辑装配装置与上文描述的服务运行逻辑装配方法可相互对应参照。[0143] 在本实施例中,所述服务运行逻辑装配装置,包括:[0144] 获取模块,用于获取业务服务请求,并确定所述业务服务请求指示的目标业务场景;[0145] 确定模块,用于基于所述目标业务场景,从所述业务服务请求对应的目标业务场景组合配置集中确定出目标业务场景组合配置,所述目标业务场景组合配置集包括多个不同业务场景对应的业务场景组合配置;[0146] 装配模块,用于基于所述目标业务场景组合配置,对所述业务服务请求对应的服务运行逻辑进行装配。[0147] 本发明提供的装置,获取业务服务请求,并确定业务服务请求指示的目标业务场景;基于目标业务场景,从业务服务请求对应的目标业务场景组合配置集中确定出目标业务场景组合配置,目标业务场景组合配置集包括多个不同业务场景对应的业务场景组合配置;基于目标业务场景组合配置,对业务服务请求对应的服务运行逻辑进行装配。通过上述方式,目标业务场景组合配置是根据目标业务场景进行确定的,有助于根据目标业务场景对服务运行逻辑进行装配,进而在一服务运行逻辑中可以装配多种业务场景组合配置,即在一服务运行逻辑中可以实现不同业务场景的复用,进而提高服务复用程度,同时,由于对服务运行逻辑进行装配时,并未修改服务运行逻辑本身的代码逻辑,只需基于不同的业务场景,设置对应的业务场景组合配置即可,从而降低服务运行逻辑在不同业务场景间的耦合度,进而降低服务的耦合度。综上所述,本发明实施例在提高服务复用程度的同时,可以降低服务的耦合度,最终实现高复用程度和低耦合度的可重用服务。[0148] 基于上述任一实施例,所述装配模块还用于:[0149] 基于所述服务运行逻辑所规定的执行顺序,从所述目标业务场景组合配置中确定出目标接口实现;[0150] 实例化所述目标接口实现,得到实例化对象,并基于所述实例化对象对所述服务运行逻辑进行装配,以供装配后的服务运行逻辑执行所述目标接口实现对应的执行步骤;[0151] 返回基于所述服务运行逻辑所规定的执行顺序,从所述目标业务场景组合配置中确定出目标接口实现的步骤,直至所述目标业务场景组合配置中的所有接口实现均实例化且装配完毕。[0152] 基于上述任一实施例,所述装配模块还用于:[0153] 从所述目标业务场景组合配置中确定出目标接口实现版本;[0154] 基于所述目标接口实现版本,确定所述目标接口实现。[0155] 基于上述任一实施例,该装置还包括配置确定模块,该配置确定模块用于:[0156] 确定目标服务对应的若干目标接口,所述目标服务为所述业务服务请求对应的服务;[0157] 基于所述任一业务场景,确定所述若干目标接口中每一目标接口对应的接口实现;[0158] 基于所述每一目标接口对应的接口实现,确定所述任一业务场景对应的业务场景组合配置。[0159] 基于上述任一实施例,该装置还包括接口定义模块,该接口定义模块还用于:[0160] 对所述目标服务进行服务处理逻辑分析,确定所述目标服务对应的若干流程步骤;[0161] 基于所述若干流程步骤中任一流程步骤,定义所述任一流程步骤对应的目标接口;[0162] 基于所述若干流程步骤中各流程步骤对应的目标接口,确定所述若干目标接口。[0163] 基于上述任一实施例,该装置还包括实现定义模块,该实现定义模块还用于:[0164] 对所述任一业务场景进行处理规则分析,得到分析结果;[0165] 基于所述分析结果,定义所述每一目标接口对应的接口实现。[0166] 基于上述任一实施例,该获取模块还用于:[0167] 对所述业务服务请求进行对象解析处理,得到场景解析对象;[0168] 对所述场景解析对象进行场景解析处理,得到所述目标业务场景。[0169] 基于上述任一实施例,该装置还包括:[0170] 信息读取模块,用于获取声明信息集,并读取所述声明信息集中的各声明信息;[0171] 信息缓存模块,用于将所述各声明信息进行缓存,以供基于缓存的各声明信息,确定所述目标业务场景、所述目标业务场景组合配置和所述服务运行逻辑。[0172] 图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(CommunicationsInterface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行服务运行逻辑装配方法,该方法包括:获取业务服务请求,并确定所述业务服务请求指示的目标业务场景;基于所述目标业务场景,从所述业务服务请求对应的目标业务场景组合配置集中确定出目标业务场景组合配置,所述目标业务场景组合配置集包括多个不同业务场景对应的业务场景组合配置;基于所述目标业务场景组合配置,对所述业务服务请求对应的服务运行逻辑进行装配。[0173] 此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read‑OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。[0174] 另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的服务运行逻辑装配方法,该方法包括:获取业务服务请求,并确定所述业务服务请求指示的目标业务场景;基于所述目标业务场景,从所述业务服务请求对应的目标业务场景组合配置集中确定出目标业务场景组合配置,所述目标业务场景组合配置集包括多个不同业务场景对应的业务场景组合配置;基于所述目标业务场景组合配置,对所述业务服务请求对应的服务运行逻辑进行装配。[0175] 又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的服务运行逻辑装配方法,该方法包括:获取业务服务请求,并确定所述业务服务请求指示的目标业务场景;基于所述目标业务场景,从所述业务服务请求对应的目标业务场景组合配置集中确定出目标业务场景组合配置,所述目标业务场景组合配置集包括多个不同业务场景对应的业务场景组合配置;基于所述目标业务场景组合配置,对所述业务服务请求对应的服务运行逻辑进行装配。[0176] 以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。[0177] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。[0178] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
专利地区:广东
专利申请日期:2022-01-27
专利公开日期:2024-07-26
专利公告号:CN114489633B