业务处理方法、装置、设备及存储介质转让专利

申请号 : CN201910170430.0

文献号 : CN109947564B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈科杰

申请人 : 蚂蚁金服(杭州)网络技术有限公司

摘要 :

本申请实施例提供了一种业务处理方法、装置、设备及存储介质,涉及计算机技术领域。该方法包括:在接收到对目标服务的调用请求时,确定目标服务的多个子服务,子服务包含多个分支,多个分支基于子服务的输入参数确定;确定各个子服务的各个分支的执行概率;基于所确定的各个子服务的各个分支的执行概率的大小选择各个子服务对应的分支,并发执行所选择的各个子服务的分支;将各个子服务的执行结果进行合并处理,以确定目标服务的执行结果。本申请实施例的技术方案能够减少分支执行错误导致的回滚耗时,优化后端服务的调用效率。

权利要求 :

1.一种业务处理方法,其特征在于,包括:

在接收到对目标服务的调用请求时,确定所述目标服务的多个子服务,所述子服务包含多个分支,所述多个分支基于所述子服务的输入参数确定;

确定各个所述子服务的各个分支的执行概率;

基于所确定的各个所述子服务的各个分支的执行概率的大小选择各个所述子服务对应的分支,并发执行所选择的各个所述子服务的分支;

将各个所述子服务的执行结果进行合并处理,以确定所述目标服务的执行结果。

2.根据权利要求1所述的业务处理方法,其特征在于,基于所确定的各个所述子服务的各个分支的执行概率的大小选择各个所述子服务对应的分支,包括:基于所确定的各个所述子服务的各个分支的执行概率生成各个所述子服务的分支队列;

基于各个分支的执行概率的大小对各个所述子服务的分支队列中的各个分支进行排序;

按照执行概率从大到小的顺序依次从各个所述子服务的分支队列中选择对应的分支。

3.根据权利要求1所述的业务处理方法,其特征在于,将各个所述子服务的执行结果进行合并处理,包括:在执行所述子服务之后,将所述子服务标记为可合并状态;

在所有子服务都处于可合并状态时,将各个所述子服务的执行结果进行合并处理。

4.根据权利要求3所述的业务处理方法,其特征在于,在将各个所述子服务的执行结果进行合并处理之前,所述业务处理方法还包括:基于所述目标服务的各个所述子服务的一个或多个分支的执行结果生成执行结果队列;

基于各个所述子服务的逻辑顺序对所述执行结果队列中的各个子服务的执行结果进行排序。

5.根据权利要求4所述的业务处理方法,其特征在于,将各个所述子服务的执行结果进行合并处理,包括:将所述执行结果队列中上一个子服务的执行结果与当前子服务的已执行完毕的分支的输入参数进行匹配;

若匹配到对应分支的输入参数,则将匹配到的对应分支的执行结果与下一个子服务的已执行完毕的分支的输入参数进行匹配,直到所有子服务匹配完成为止;

若未匹配到对应分支的输入参数,将所述上一个服务的执行结果作为所述当前子服务的输入参数,重新执行所述当前子服务;

在重新执行之后,将所述当前子服务的执行结果与下一个子服务的已执行完毕的分支的输入参数进行匹配,直到所有子服务匹配完成为止;

在所有子服务匹配完成之后,将最后一个子服务的执行结果作为合并处理后的执行结果。

6.根据权利要求5所述的业务处理方法,其特征在于,所述业务处理方法还包括:若匹配到对应分支的输入参数,则基于匹配的结果更新所述对应分支的执行概率。

7.根据权利要求1所述的业务处理方法,其特征在于,确定各个所述子服务的各个分支的执行概率,包括:获取各个所述子服务的各个分支的历史执行数据;

基于所述历史执行数据对各个所述子服务的各个分支的执行次数进行统计;

基于统计结果确定各个分支的执行次数占总执行次数的比例,将所述比例作为对应分支的执行概率。

8.根据权利要求1至7中任一项所述的业务处理方法,其特征在于,并发执行所选择的各个所述子服务的分支,包括:将所选择的各个所述子服务的分支提交到并发任务池;

通过并发任务池按照各个所述子服务的分支的执行概率从大到小的顺序依次并发执行各个所述子服务的分支。

9.根据权利要求8所述的业务处理方法,其特征在于,确定所述目标服务的多个子服务,包括:将所述目标服务按照预定粒度拆分成多个子服务;

基于各个所述子服务的输入参数的范围确定各个所述子服务的所述多个分支。

10.一种业务处理装置,其特征在于,包括:

子服务确定单元,用于在接收到对目标服务的调用请求时,确定所述目标服务的多个子服务,所述子服务包含多个分支,所述多个分支基于所述子服务的输入参数确定;

执行概率预测单元,用于确定各个所述子服务的各个分支的执行概率;

并发执行单元,用于基于所确定的各个所述子服务的各个分支的执行概率的大小选择各个所述子服务对应的分支,并发执行所选择的各个所述子服务的分支;

结果处理单元,用于将各个所述子服务的执行结果进行合并处理,以确定所述目标服务的执行结果。

11.一种业务处理设备,其特征在于,包括:处理器;以及被配置成存储计算机可执行指令的存储器,所述计算机可执行指令在被执行时使所述处理器实现上述权利要求1至9中任一项所述的业务处理方法的步骤。

12.一种存储介质,用于存储计算机可执行指令,其特征在于,所述计算机可执行指令在被执行时实现上述权利要求1至9中任一项所述的业务处理方法的步骤。

说明书 :

业务处理方法、装置、设备及存储介质

技术领域

[0001] 本申请涉及计算机技术领域,尤其涉及一种业务处理方法、业务处理装置、业务处理设备以及计算机可读存储介质。

背景技术

[0002] 随着互联网技术的飞速发展,越来越多的人选择通过网络开展业务,向用户提供各种各样的服务。随着业务的发展,业务系统需要提供的服务也越来越复杂,对互联网服务的性能提出了更高的要求。
[0003] 在一种技术方案中,利用计算机的并行处理能力并发执行业务逻辑无关联的服务。但是,在这种技术方案中,对于服务链路上下游存在逻辑关联的服务,难以通过并行处理对该服务链路的服务性能进行优化。

发明内容

[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] 图1示出了根据本申请的一些实施例提供的业务处理方法的应用场景的示意框图;
[0029] 图2示出了根据本申请的一些实施例提供的业务处理方法的流程示意图;
[0030] 图3示出了根据本申请的一些实施例提供的确定各个子服务的各个分支的执行概率的流程示意图;
[0031] 图4示出了根据本申请的一些实施例提供的将各个子服务的执行结果进行合并处理的流程示意图;
[0032] 图5示出了根据本申请的另一些实施例提供的业务处理方法的流程示意图;
[0033] 图6示出了根据本申请的一些实施例提供的业务处理装置的示意框图;
[0034] 图7示出了根据本申请的一些实施例提供的并发执行单元的示意框图;
[0035] 图8示出了根据本申请的一些实施例提供的执行概率预测单元的示意框图;以及[0036] 图9示出了根据本申请的一些实施例提供的业务处理设备的示意框图;

具体实施方式

[0037] 为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
[0038] 图1示出了根据本申请的一些实施例提供的业务处理方法的应用场景的示意框图。参照图1所示,该应用场景可以包括:至少一个客户端110以及服务器端120。客户端110与服务器端120之间通过网络130进行通信。客户端110上向服务器端120发起对目标服务的调用请求。服务器端120在接收到客户端110发送的调用请求之后,执行目标服务的多个子服务,对各个子服务的执行结果进行合并处理,并将最终的执行结果返回至客户端110。
[0039] 需要说明的是,客户端110可以为手机、平板电脑、台式计算机、便携笔记本式计算机或POS(Point Of Sales,销售点)终端等。服务器120可以为包含独立主机的物理服务器,或者为主机集群承载的虚拟服务器,或者为云服务器。网络130可以为有线网络或无线网络,例如,网络130可以为公共交换电话网络(Public Switched Telephone Network,PSTN)或因特网。
[0040] 需要说明的是,本申请的示例实施例中的业务处理方法中的步骤可以部分由客户端110执行,部分由服务器120执行,也可以全部由服务器120执行,本发明对此不进行特殊限定。
[0041] 下面结合图1的应用场景,参考图2来描述根据本申请的示例性实施例的业务处理方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施例在此方面不受任何限制。相反,本发明的实施例可以应用于适用的任何场景。
[0042] 图2示出了根据本申请的一些实施例提供的业务处理方法的流程示意图,该业务处理方法可以应用于图1中的服务器120。参照图2所示,该业务处理方法包括步骤S210至步骤S240,下面对图2的示例实施例中的业务处理方法进行详细的说明。
[0043] 参照图2所示,在步骤S210中,在接收到对目标服务的调用请求时,确定该目标服务的多个子服务,各个所述子服务包含多个分支,多个分支基于子服务的输入参数确定。
[0044] 在示例实施例中,目标服务为串行的服务链路例如互联网后端服务,该服务链路包含多个子服务或执行单元,每个子服务是一个或者一组相对较小且独立的功能单元或执行单元,多个子服务共同构成一个具备实际业务含义的执行流程,串行的服务链路的各个子服务之间存在逻辑上的依赖,即服务链路上后一个子服务的输入依赖前一个子服务的输出,子服务之间无直接依赖。进一步的,每个子服务包含由子服务的输入参数确定的多个分支。
[0045] 在示例实施例中,目标服务可以为下订单服务或投保服务、也可以为其他适当的服务例如购票服务或登录服务,本申请对此不进行特殊限定。下面以下订单服务为例进行说明。
[0046] 下订单服务可以包括多个子服务或执行单元,每个子服务包含多个分支,多个分支基于子服务的输入参数确定,例如,对目标商品的下订单服务可以包括:挑选商品子服务、确认订单子服务、付款子服务等,其中,挑选商品子服务可以为颜色尺寸选择业务逻辑,每种颜色与对应的尺寸为一个分支,例如黑色S码分支至黑色XL码分支、白色S码分支至白色XL码分支、红色S码分支至红色XL码分支;确认订单子服务可以为收货地址与配送方式选择确定业务逻辑,每个收货地址以及对应的配送方式为一个分支,例如第一收货地址节假日配送、第一收货地址工作日配送等分支;付款子服务的分支包括:支付宝支付分支、银行卡支付分支、余额支付分支等分支。
[0047] 进一步地,在示例实施例中,将目标服务的各个子服务按照在整个服务链路上的逻辑顺序组成有序子服务队列,并存储该服务队列。例如,可以按照各个子服务在整个服务链路上的逻辑顺序对各个子服务进行排序,按照排序的结果通过链表或数组的形式存储各个子服务的调用接口,以便于通过该链表或数组调用各个子服务。
[0048] 在步骤S220中,确定各个所述子服务的各个分支的执行概率。
[0049] 在示例实施例中,获取与目标服务对应的各个子服务的历史执行数据,基于目标服务的各个子服务的历史执行数据确定各个子服务的各个分支的执行概率。具体而言,可以从目标服务的历史执行数据中提取各个子服务的输入参数,对各个子服务的输入参数进行统计,基于统计结果确定各个子服务的各个分支的执行概率。
[0050] 举例而言,设目标服务为对目标商品的下订单服务,可以从目标商品的下订单服务的历史订单数据中提取下订单服务的各个子服务的输入参数,例如从挑选商品子服务中提取历史颜色信息以及尺寸信息;从确认订单子服务中提取历史收货地址以及历史配送方式信息;从付款子服务中提取支付方式信息等,对提取的历史颜色尺寸信息、历史收货地址及配送方式信息、支付方式信息进行统计,基于统计结果确定各个子服务的各个分支即各个输入参数下的子服务的执行概率,例如,基于统计结果确定挑选商品子服务的各个颜色尺寸分支的执行次数,将各个颜色尺寸分支的执行次数与总执行次数的比例作为各个颜色尺寸分支的执行概率。
[0051] 在步骤S230中,基于所确定的各个子服务的各个分支的执行概率的大小选择各个子服务对应的分支,并发执行所选择的各个子服务的分支。
[0052] 在示例实施例中,在得到各个子服务的各个分支的执行概率之后,基于所确定的各个子服务的各个分支的执行概率的大小选择各个子服务对应的分支,并发执行所选择的各个子服务的分支。例如,子服务1具有三个分支即分支1、分支2、分支3,得到子服务1的分支1的执行概率为15%、分支2的执行概率为60%,分支3的执行概率为25%;子服务2具有三个分支即分支1、分支2、分支3,得到子服务2的分支1的执行概率为70%,分支2的执行概率为20%,分支3的执行概率为10%,则优先选择子服务1的分支2、子服务2的分支1,并发执行所选择的子服务1的分支2和子服务2的分支1。
[0053] 进一步地,在示例实施例中,基于所确定的各个子服务的各个分支的执行概率生成各个子服务的分支队列;基于各个分支的执行概率的大小对各个子服务的分支队列中的各个分支进行排序;按照执行概率从大到小的顺序依次从各个子服务的分支队列中选择对应的分支。例如,对上述子服务1的分支队列中的各个分支进行排序得到排序后的子服务1的分支队列{分支2(60%);分支3(25%);分支1(15%)},对子服务2的分支队列中的各个分支进行排序得到排序后的子服务2的分支队列{分支1(70%);分支2(20%);分支1(10%)},依次从子服务1和子服务2的分支队列中选择对应的分支,并发执行所选择的对应的分支。
[0054] 在步骤S240中,将各个所述子服务的执行结果进行合并处理,以确定所述目标服务的执行结果。
[0055] 在示例实施例中,根据各个子服务的逻辑执行顺序对各个子服务的执行结果进行排序,依次将排序后的前一个子服务的执行结果与后一个子服务的已执行完毕的分支的输入参数进行匹配,直到所有子服务匹配完成为止。若未匹配到对应分支的输入参数,则将前一个子服务的执行结果作为后一个子服务的输入参数,重新执行后一个子服务,在重新执行后一个子服务之后,将后一个子服务的执行结果与下一个子服务的已执行完毕的分支的输入参数进行匹配,直到所有子服务匹配完成为止。在所有子服务匹配完成之后,将最后一个子服务的执行结果作为合并处理后的执行结果。
[0056] 举例而言,设目标服务为下订单服务时,按照挑选商品子服务、确认订单子服务、付款子服务的逻辑顺序将这三个子服务的执行结果进行排序,用挑选商品子服务的执行结果匹配确认订单子服务的输入结果,若匹配到确认订单子服务的输入结果,则将确认订单子服务的执行结果与付款子服务的输入结果进行匹配,若匹配到付款子服务的输入结果,则将付款子服务的执行结果作为最终的目标服务的执行结果。此外,若未匹配到确认订单子服务的输入结果,则将挑选商品子服务的执行结果即商品类型以及颜色尺寸作为确认订单子服务的输入结果,重新执行确认订单子服务,基于重新执行的执行结果进行下一轮匹配。在挑选商品子服务、确认订单子服务、付款子服务匹配完成之后,将付款子服务的执行结果例如从银行卡中扣除对应的商品金额作为目标服务的执行结果。
[0057] 根据图2的示例实施例中的业务处理方法,一方面,确定目标服务的多个子服务,子服务包含多个分支,能够将上下游存在逻辑关联的目标服务的服务链路拆分成多个子服务,从而能够便于对该目标服务进行性能优化;另一方面,对目标服务的各个子服务的各个分支的执行概率进行预测,基于各个分支的执行概率并发执行所选择的各个子服务的分支,不仅能够减少分支执行错误导致的回滚耗时,还能够优化后端服务的调用效率;再一方面,将各个子服务的执行结果进行合并处理,能够避免分支预测错误对执行结果造成影响,提高目标服务的执行结果的准确性。
[0058] 进一步地,在一些示例实施例中,将所选择的各个子服务的分支提交到并发任务池,并发任务池按照各个子服务的分支的执行概率从大到小的顺序依次并发执行各个子服务的分支。例如,并发任务池可以为线程池,将所选择的各个子服务的分支提交到线程池中,线程池从各个子服务中优先选择执行概率大的分支进行并发执行。并发任务池能够在子服务运行时,提供子服务运行的上下文环境,包括功能依赖、基础参数等;此外,还能够将子服务运行环境进行隔离,给子服务提供独立的事务执行空间,避免执行结果相互影响。通过并发任务池并发执行各个子服务的分支,能够进一步提高数据处理效率。
[0059] 此外,在示例实施例中,在执行所述子服务之后,将所述子服务标记为可合并状态;在所有子服务都处于可合并状态时,将各个所述子服务的执行结果进行合并处理。
[0060] 图3示出了根据本申请的一些实施例提供的确定各个子服务的各个分支的执行概率的流程示意图。
[0061] 参照图3所示,在步骤S310中,获取各个子服务的各个分支的历史执行数据。
[0062] 在示例实施例中,从服务器端获取各个子服务的各个分支的历史执行数据。例如,设目标服务为对目标商品的下订单服务,下订单服务的子服务包括挑选商品子服务、确认订单子服务、付款子服务等,从下订单服务的历史订单数据中提取下订单服务的各个子服务的输入参数,例如从挑选商品子服务中提取与该目标商品对应的历史颜色信息以及尺寸信息;从确认订单子服务中提取与该目标商品对应的历史收货地址以及历史配送方式信息;从付款子服务中提取与该目标商品对应的支付方式信息等。
[0063] 在步骤S320中,基于历史执行数据对各个子服务的各个分支的执行次数进行统计。
[0064] 在示例实施例中,在获取到各个子服务的各个分支的历史执行数据之后,基于历史执行数据对各个子服务的各个分支的执行次数进行统计。例如,设目标服务为对目标商品的下订单服务,下订单服务可以包括:挑选商品子服务、确认订单子服务、付款子服务,基于提取的历史颜色尺寸信息对各个颜色尺寸分支的执行次数进行统计;基于历史收货地址及配送方式信息对各个收货地址配送方式分支的执行次数进行统计;基于历史支付方式信息对各个支付方式分支的执行次数进行统计。
[0065] 在步骤S330中,基于统计结果确定各个分支的执行次数占总执行次数的比例,将所述比例作为对应分支的执行概率。
[0066] 在示例实施例中,在对各个子服务的各个分支的执行次数进行统计之后,确定各个分支的执行次数占总执行次数的比例,将各个分支的执行次数占总执行次数的比例作为各个分支的执行概率。例如,设黑色S码分支的执行次数为10、黑色L码分支的执行次数为50、黑色XL码分支的执行次数为10、白色S码分支的执行次数为10、白色L码分支的执行次数为20,总执行次数为100,则黑色S码分支的执行概率为10%、黑色L码分支的执行概率为
50%,黑色XL码分支的执行概率为10%、白色S码分支的执行概率为10%、白色L码分支的执行概率为20%。进一步地,可以基于各个子服务的执行结果动态更新对应分支的执行次数以及执行次数占总执行次数的比例。
[0067] 此外,在示例实施例中,可以通过统计学模型确定各个子服务的各个分支的执行概率。例如,以颜色尺寸选择子服务为例,设总执行次数为n,黑色S码分支的执行次数为a、黑色L码分支的执行次数为b、黑色XL码分支的执行次数为c、白色S码分支的执行次数为d、白色L码分支的执行次数为e,黑色S码分支的执行概率为f1=a/n、黑色L码分支的执行概率为f2=b/n,黑色XL码分支的执行概率为f3=c/n、白色S码分支的执行概率为f4=d/n、白色L码分支的执行概率为f5=e/n。在对颜色尺寸选择子服务执行完成之后,基于颜色尺寸选择子服务的输入参数即颜色尺寸参数更新对应分支的执行概率,例如在执行了黑色S码分支之后,黑色S码分支的执行概率f1=(a+1)/(n+1)。
[0068] 此外,在示例实施例中,还可以通过基于统计方式的概率预测模型来确定各个子服务的各个分支的执行概率,例如,可以提取各个子服务的各个分支的历史执行特征例如历史执行数量特征,基于历史执行特征对概率预测模型进行训练,通过训练后的概率预测模型确定各个子服务的各个分支的执行概率。
[0069] 进一步地,在示例实施例中,还可以基于各个子服务的执行结果对概率预测模型的参数进行调整,以优化该概率预测模型,例如,在一些实施例中,若在结果合并的过程中概率预测模型预测正确即匹配到对应分支的输入参数,则将匹配的结果反馈至该概率预测模型,基于匹配的结果调整该概率预测模型的参数。
[0070] 需要说明的是,该概率预测模型可以为贝叶斯模型、支持向量机模型或决策树模型,也可以为其他适当的统计模型例如神经网络模型或者逻辑回归模型等,本申请对此不进行特殊限定。
[0071] 图4示出了根据本申请的一些实施例提供的将各个子服务的执行结果进行合并处理的流程示意图。
[0072] 参照图4所示,在步骤S410中,对各个子服务的执行结果进行排序,将排序后的上一个子服务的执行结果与当前子服务的已执行完毕的分支的输入参数进行匹配。
[0073] 在示例实施例中,在各个子服务都执行过一次之后,根据各个子服务的逻辑顺序对已经执行的各个子服务的分支的执行结果进行排序,将排序后的上一个子服务的执行结果与当前子服务的已经执行完毕的分支输入参数进行匹配。例如,设目标服务为下订单服务,下订单服务的子服务包括挑选商品子服务、确认订单子服务、付款子服务等,确认订单子服务的已经执行完毕的输入参数为第一收货地址工作日配送、第一收货地址节假日配送,将挑选商品子服务的执行结果与确认订单子服务的已执行完毕的分支的输入参数进行匹配,例如,挑选商品子服务的执行结果包含商品信息以及默认地址配送方式信息,将默认地址配送方式信息与确认订单子服务的输入参数即收货地址配送方式参数进行匹配。
[0074] 进一步地,在示例实施例中,基于目标服务的各个子服务的一个或多个分支的执行结果生成执行结果队列;基于各个子服务的逻辑顺序对执行结果队列中的各个子服务的执行结果进行排序。
[0075] 在步骤S420中,若匹配到对应分支的输入参数,则将匹配到的对应分支的执行结果与下一个子服务的已执行完毕的分支的输入参数进行匹配,直到所有子服务匹配完成为止。例如,用挑选商品子服务的执行结果匹配确认订单子服务的输入结果时,若匹配到确认订单子服务的输入结果,则将确认订单子服务的执行结果与付款子服务的输入结果进行匹配,若匹配到付款子服务的输入结果,则将付款子服务的执行结果作为最终的目标服务的执行结果。
[0076] 在步骤S430中,若未匹配到对应分支的输入参数,将上一个服务的执行结果作为当前子服务的输入参数,重新执行当前子服务。例如,若未匹配到确认订单子服务的输入结果,则将挑选商品子服务的执行结果即商品类型以及颜色尺寸作为确认订单子服务的输入结果,重新执行确认订单子服务,基于重新执行的执行结果进行下一轮匹配。
[0077] 在步骤S440中,在重新执行之后,将当前子服务的执行结果与下一个子服务的已执行完毕的分支的输入参数进行匹配,直到所有子服务匹配完成为止。
[0078] 在步骤S450中,在所有子服务匹配完成之后,将最后一个子服务的执行结果作为合并处理后的执行结果。例如,在挑选商品子服务、确认订单子服务、付款子服务匹配完成之后,将付款子服务的执行结果例如从银行卡中扣除对应的商品金额作为目标服务的执行结果。
[0079] 图5示出了根据本申请的另一些实施例提供的业务处理方法的流程示意图。
[0080] 参照图5所示,在步骤S510中,将串行的目标服务的服务链路按照预定粒度拆分成独立的子服务或子执行单元,预定粒度可以为一个具有独立功能的服务单元,各个子服务之间仅有数据状态逻辑关系依赖,不存在直接依赖。通过将串行的目标服务拆分成多个子服务,能够并发执行目标服务的子服务,从而能够提高对目标服务的调用效率。
[0081] 在步骤S520中,基于各个子服务的输入参数确定各个子服务的分支,例如,将各个子服务的各个类型的输出参数作为子服务的分支,以选商品子服务为例,每种颜色与对应的尺寸为一个分支,例如黑色S码分支至黑色XL码分支、白色S码分支至白色XL码分支、红色S码分支至红色XL码分支
[0082] 在步骤S530中,基于各个子服务的分支生成分支队列,子服务2的分支队列包含分支1、分支2、分支3,子服务3的分支队列包含分支1、分支2、分支3。
[0083] 在步骤S540中,基于概率预测模型例对各个子服务的各个分支的执行概率进行预测。
[0084] 在示例实施例中,通过概率预测模型对子服务的各个分支的执行概率进行预测,例如,子服务2的分支1的执行概率为70%、分支2的执行概率为20%、分支3的执行概率为10%,子服务3的分支1的执行概率为15%、分支2的执行概率位60%、分支3的执行概率为
25%。进一步地,在示例实施例中,根据子服务的各个分支的执行概率的大小对子服务的分支进行排序。
[0085] 进一步地,还可以基于该概率预测模型的预测结果对该概率模型的参数进行调整,基于调整后的概率预测模型对各个子服务的各个分支的当前执行概率进行预测。
[0086] 需要说明的是,该概率预测模型可以为贝叶斯模型、支持向量机模型或决策树模型,也可以为其他适当的统计模型或者机器学习模型例如神经网络模型或者逻辑回归模型等,本申请对此不进行特殊限定。
[0087] 在步骤S550中,将经预测后的子服务的各个分支提交到并发任务池进行并发执行,并发任务池按照各个子服务的分支的执行概率从大到小的顺序依次并发执行各个子服务的分支。例如,并发任务池可以为线程池,将所选择的各个子服务的分支提交到线程池中,线程池从各个子服务中优先选择执行概率大的分支进行并发执行。并发任务池能够在子服务运行时,提供子服务运行的上下文环境,包括功能依赖、基础参数等;此外,还能够将子服务运行环境进行隔离,给子服务提供独立的事务执行空间,避免执行结果相互影响。通过并发任务池并发执行各个子服务的分支,能够提高数据处理效率。进一步地,在并发执行时,根据服务器的性能以及计算资源优先执行高概率的分支,不需要执行子服务的所有分支,以减少对运算资源的消耗,进一步提高数据处理效率。
[0088] 在示例实施例中,并发任务池根据业务系统的负载情况从子服务的分支队列中取出子服务的分支执行,保证每个子服务的分支中概率最高的分支一定被执行完成,在子服务的分支执行完成之后,将执行结果加入执行结果队列中,并将分支执行完成的子服务标记为可合并状态。当所有子服务处于可合并状态时,将整个目标服务的子服务提交以进行结果合并。
[0089] 在步骤S560中,对各个子服务的执行结果进行合并处理,步骤S560包括步骤S562至步骤S568,下面对步骤S562至步骤S568进行详细的说明。
[0090] 在步骤S562中,对各个子服务的执行结果进行排序,例如根据各个子服务在目标服务的服务链路上的逻辑执行顺序对各个子服务的执行结果进行排序。
[0091] 在步骤S564中,将排序后的上一个子服务的执行结果与当前子服务的已执行完毕的分支的输入参数进行匹配,若匹配到对应分支的输入参数,则将匹配到的对应分支的执行结果与下一个子服务的已执行完毕的分支的输入参数进行匹配,直到所有子服务匹配完成为止。
[0092] 在步骤S566中,若未匹配到对应分支的输入参数,将上一个服务的执行结果作为当前子服务的输入参数,重新执行当前子服务;在重新执行之后,将当前子服务的执行结果与下一个子服务的已执行完毕的分支的输入参数进行匹配,直到所有子服务匹配完成为止。
[0093] 在步骤S568中,在所有子服务匹配完成之后,将最后一个子服务的执行结果作为合并处理后的执行结果。
[0094] 此外,在步骤S570中还可以将步骤S564和/或步骤S566中的匹配结果反馈至概率预测模型,基于反馈的匹配结果调整概率预测模型的参数,从而能够提高概率预测模型的预测准确性,避免重新执行错判分支造成的回滚消耗,进一步提高数据处理效率。
[0095] 在本申请的示例实施例中,还提供了一种业务处理装置。参照图6所示,该业务处理装置600可以包括:子服务确定单元610、执行概率预测单元620、并发执行单元630以及结果处理单元640。其中,子服务确定单元610用于在接收到对目标服务的调用请求时,确定所述目标服务的多个子服务,所述子服务包含多个分支,所述多个分支基于所述子服务的输入参数确定;执行概率预测单元620用于确定各个所述子服务的各个分支的执行概率;并发执行单元630用于基于所确定的各个所述子服务的各个分支的执行概率的大小选择各个所述子服务对应的分支,并发执行所选择的各个所述子服务的分支;结果处理单元640用于将各个所述子服务的执行结果进行合并处理,以确定所述目标服务的执行结果。
[0096] 在本申请的一些示例实施例中,基于前述方案,参照图7所示,并发执行单元630包括:分支队列生成单元710,用于基于所确定的各个所述子服务的各个分支的执行概率生成各个所述子服务的分支队列;分支排序单元720,用于基于各个分支的执行概率的大小对各个所述子服务的分支队列中的各个分支进行排序;选择单元730,用于按照执行概率从大到小的顺序依次从各个所述子服务的分支队列中选择对应的分支。
[0097] 在本申请的一些示例实施例中,基于前述方案,结果处理单元640包括:标记单元,用于在执行所述子服务之后,将所述子服务标记为可合并状态;结果合并单元,用于在所有子服务都处于可合并状态时,将各个所述子服务的执行结果进行合并处理。
[0098] 在本申请的一些示例实施例中,基于前述方案,所述业务处理装置600还包括:结果队列生成队列,用于在将各个所述子服务的执行结果进行合并处理之前,基于所述目标服务的各个所述子服务的一个或多个分支的执行结果生成执行结果队列;结果排序单元,用于基于各个所述子服务的逻辑顺序对所述执行结果队列中的各个子服务的执行结果进行排序。
[0099] 在本申请的一些示例实施例中,基于前述方案,结果合并单元被配置为:将所述执行结果队列中上一个子服务的执行结果与当前子服务的已执行完毕的分支的输入参数进行匹配;若匹配到对应分支的输入参数,则将匹配到的对应分支的执行结果与下一个子服务的已执行完毕的分支的输入参数进行匹配,直到所有子服务匹配完成为止;若未匹配到对应分支的输入参数,将所述上一个服务的执行结果作为所述当前子服务的输入参数,重新执行所述当前子服务;在重新执行之后,将所述当前子服务的执行结果与下一个子服务的已执行完毕的分支的输入参数进行匹配,直到所有子服务匹配完成为止;在所有子服务匹配完成之后,将最后一个子服务的执行结果作为合并处理后的执行结果。
[0100] 在本申请的一些示例实施例中,基于前述方案,所述业务处理装置还包括:反馈单元,用于若匹配到对应分支的输入参数,则基于匹配的结果更新所述对应分支的执行概率。
[0101] 在本申请的一些示例实施例中,基于前述方案,参照图8所示,执行概率预测单元620包括:数据获取单元单元810,用于获取各个所述子服务的各个分支的历史执行数据统计单元820,用于基于所述历史执行数据对各个所述子服务的各个分支的执行次数进行统计;概率确定单元830,用于基于统计结果确定各个分支的执行次数占总执行次数的比例,将所述比例作为对应分支的执行概率。
[0102] 在本申请的一些示例实施例中,基于前述方案,并发执行单元包括:任务提交单元,用于将所选择的各个所述子服务的分支提交到并发任务池;执行单元,用于通过并发任务池按照各个所述子服务的分支的执行概率从大到小的顺序依次并发执行各个所述子服务的分支。
[0103] 在本申请的一些示例实施例中,基于前述方案,子服务确定单元包括:服务拆分单元,用于将所述目标服务按照预定粒度拆分成多个子服务;分支确定单元,用于基于各个所述子服务的输入参数的范围确定各个所述子服务的所述多个分支。
[0104] 根据图6的示例实施例中的业务处理装置,一方面,确定目标服务的多个子服务,子服务包含多个分支,能够将上下游存在逻辑关联的目标服务的服务链路拆分成多个子服务,从而能够便于对该目标服务进行性能优化;另一方面,对目标服务的各个子服务的各个分支的执行概率进行预测,基于各个分支的执行概率并发执行所选择的各个子服务的分支,不仅能够减少分支执行错误导致的回滚耗时,还能够优化后端服务的调用效率;再一方面,将各个子服务的执行结果进行合并处理,能够避免分支预测错误对执行结果造成影响,提高目标服务的执行结果的准确性。
[0105] 本申请实施例提供的业务处理装置能够实现前述方法实施例中的各个过程,并达到相同的功能和效果,这里不再重复。
[0106] 进一步地,本申请实施例还提供了一种业务处理设备,如图9所示。
[0107] 业务处理设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器901和存储器902,存储器902中可以存储有一个或一个以上存储应用程序或数据。其中,存储器902可以是短暂存储或持久存储。存储在存储器902的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对业务处理设备中的一系列计算机可执行指令。更进一步地,处理器901可以设置为与存储器902通信,在业务处理设备上执行存储器902中的一系列计算机可执行指令。业务处理设备还可以包括一个或一个以上电源903,一个或一个以上有线或无线网络接口904,一个或一个以上输入输出接口905,一个或一个以上键盘906等。
[0108] 在一个具体的实施例中,业务处理设备包括有存储器,以及一个或一个以上的程序,其中一个或者一个以上程序存储于存储器中,且一个或者一个以上程序可以包括一个或一个以上模块,且每个模块可以包括对业务处理设备中的一系列计算机可执行指令,且经配置以由一个或者一个以上处理器执行该一个或者一个以上程序包含用于进行以下计算机可执行指令:在接收到对目标服务的调用请求时,确定所述目标服务的多个子服务,所述子服务包含多个分支,所述多个分支基于所述子服务的输入参数确定;确定各个所述子服务的各个分支的执行概率;基于所确定的各个所述子服务的各个分支的执行概率的大小选择各个所述子服务对应的分支,并发执行所选择的各个所述子服务的分支;将各个所述子服务的执行结果进行合并处理,以确定所述目标服务的执行结果。
[0109] 可选地,计算机可执行指令在被执行时,基于所确定的各个所述子服务的各个分支的执行概率的大小选择各个所述子服务对应的分支,包括:基于所确定的各个所述子服务的各个分支的执行概率生成各个所述子服务的分支队列;基于各个分支的执行概率的大小对各个所述子服务的分支队列中的各个分支进行排序;按照执行概率从大到小的顺序依次从各个所述子服务的分支队列中选择对应的分支。
[0110] 可选地,计算机可执行指令在被执行时,将各个所述子服务的执行结果进行合并处理,包括:在执行所述子服务之后,将所述子服务标记为可合并状态;在所有子服务都处于可合并状态时,将各个所述子服务的执行结果进行合并处理。
[0111] 可选地,计算机可执行指令在被执行时,在将各个所述子服务的执行结果进行合并处理之前,所述业务处理方法还包括:基于所述目标服务的各个所述子服务的一个或多个分支的执行结果生成执行结果队列;基于各个所述子服务的逻辑顺序对所述执行结果队列中的各个子服务的执行结果进行排序。
[0112] 可选地,计算机可执行指令在被执行时,将各个所述子服务的执行结果进行合并处理,包括:将所述执行结果队列中上一个子服务的执行结果与当前子服务的已执行完毕的分支的输入参数进行匹配;若匹配到对应分支的输入参数,则将匹配到的对应分支的执行结果与下一个子服务的已执行完毕的分支的输入参数进行匹配,直到所有子服务匹配完成为止;若未匹配到对应分支的输入参数,将所述上一个服务的执行结果作为所述当前子服务的输入参数,重新执行所述当前子服务;在重新执行之后,将所述当前子服务的执行结果与下一个子服务的已执行完毕的分支的输入参数进行匹配,直到所有子服务匹配完成为止;在所有子服务匹配完成之后,将最后一个子服务的执行结果作为合并处理后的执行结果。
[0113] 可选地,计算机可执行指令在被执行时,所述业务处理方法还包括:若未匹配到对应分支的输入参数,则将匹配的结果反馈至所述概率预测模型;基于所述匹配的结果调整所述概率预测模型的参数。
[0114] 可选地,计算机可执行指令在被执行时,确定各个所述子服务的各个分支的执行概率包括:获取各个所述子服务的各个分支的历史执行数据;基于所述历史执行数据对各个所述子服务的各个分支的执行次数进行统计;基于统计结果确定各个分支的执行次数占总执行次数的比例,将所述比例作为对应分支的执行概率。
[0115] 可选地,计算机可执行指令在被执行时,并发执行所选择的各个所述子服务的分支,包括:将所选择的各个所述子服务的分支提交到并发任务池;通过并发任务池按照各个所述子服务的分支的执行概率从大到小的顺序依次并发执行各个所述子服务的分支。
[0116] 可选地,计算机可执行指令在被执行时,确定所述目标服务的多个子服务,包括:将所述目标服务按照预定粒度拆分成多个子服务;基于各个所述子服务的输入参数的范围确定各个所述子服务的所述多个分支。
[0117] 本申请实施例提供的业务处理设备能够实现前述方法实施例中的各个过程,并达到相同的功能和效果,这里不再重复。
[0118] 此外,本申请实施例还提供了一种存储介质,用于存储计算机可执行指令,一种具体的实施例中,该存储介质可以为U盘、光盘、硬盘等,该存储介质存储的计算机可执行指令在被处理器执行时,能实现以下流程:在接收到对目标服务的调用请求时,确定所述目标服务的多个子服务,所述子服务包含多个分支,所述多个分支基于所述子服务的输入参数确定;确定各个所述子服务的各个分支的执行概率;基于所确定的各个所述子服务的各个分支的执行概率的大小选择各个所述子服务对应的分支,并发执行所选择的各个所述子服务的分支;将各个所述子服务的执行结果进行合并处理,以确定所述目标服务的执行结果。
[0119] 可选地,该存储介质存储的计算机可执行指令在被处理器执行时,基于所确定的各个所述子服务的各个分支的执行概率的大小选择各个所述子服务对应的分支,包括:基于所确定的各个所述子服务的各个分支的执行概率生成各个所述子服务的分支队列;基于各个分支的执行概率的大小对各个所述子服务的分支队列中的各个分支进行排序;按照执行概率从大到小的顺序依次从各个所述子服务的分支队列中选择对应的分支。
[0120] 可选地,该存储介质存储的计算机可执行指令在被处理器执行时,将各个所述子服务的执行结果进行合并处理,包括:在执行所述子服务之后,将所述子服务标记为可合并状态;在所有子服务都处于可合并状态时,将各个所述子服务的执行结果进行合并处理。
[0121] 可选地,该存储介质存储的计算机可执行指令在被处理器执行时,在将各个所述子服务的执行结果进行合并处理之前,所述业务处理方法还包括:基于所述目标服务的各个所述子服务的一个或多个分支的执行结果生成执行结果队列;基于各个所述子服务的逻辑顺序对所述执行结果队列中的各个子服务的执行结果进行排序。
[0122] 可选地,该存储介质存储的计算机可执行指令在被处理器执行时,将各个所述子服务的执行结果进行合并处理,包括:将所述执行结果队列中上一个子服务的执行结果与当前子服务的已执行完毕的分支的输入参数进行匹配;若匹配到对应分支的输入参数,则将匹配到的对应分支的执行结果与下一个子服务的已执行完毕的分支的输入参数进行匹配,直到所有子服务匹配完成为止;若未匹配到对应分支的输入参数,将所述上一个服务的执行结果作为所述当前子服务的输入参数,重新执行所述当前子服务;在重新执行之后,将所述当前子服务的执行结果与下一个子服务的已执行完毕的分支的输入参数进行匹配,直到所有子服务匹配完成为止;在所有子服务匹配完成之后,将最后一个子服务的执行结果作为合并处理后的执行结果。
[0123] 可选地,该存储介质存储的计算机可执行指令在被处理器执行时,所述业务处理方法还包括:若未匹配到对应分支的输入参数,则将匹配的结果反馈至所述概率预测模型;基于所述匹配的结果调整所述概率预测模型的参数。
[0124] 可选地,该存储介质存储的计算机可执行指令在被处理器执行时,确定各个所述子服务的各个分支的执行概率,包括:获取各个所述子服务的各个分支的历史执行数据;基于所述历史执行数据对各个所述子服务的各个分支的执行次数进行统计;基于统计结果确定各个分支的执行次数占总执行次数的比例,将所述比例作为对应分支的执行概率。
[0125] 可选地,该存储介质存储的计算机可执行指令在被处理器执行时,并发执行所选择的各个所述子服务的分支,包括:将所选择的各个所述子服务的分支提交到并发任务池;通过并发任务池按照各个所述子服务的分支的执行概率从大到小的顺序依次并发执行各个所述子服务的分支。
[0126] 可选地,该存储介质存储的计算机可执行指令在被处理器执行时,确定所述目标服务的多个子服务,包括:将所述目标服务按照预定粒度拆分成多个子服务;基于各个所述子服务的输入参数的范围确定各个所述子服务的所述多个分支。
[0127] 本申请实施例提供的计算机可读存储介质能够实现前述方法实施例中的各个过程,并达到相同的功能和效果,这里不再重复。
[0128] 在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable Gate Array,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very‑High‑Speed Integrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
[0129] 控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
[0130] 上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
[0131] 为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0132] 本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0133] 本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0134] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0135] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0136] 在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0137] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
[0138] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD‑ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0139] 还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0140] 本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0141] 本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0142] 本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0143] 以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。