服务接口异步调用的实现方法和装置与流程

文档序号:12729911阅读:1200来源:国知局
服务接口异步调用的实现方法和装置与流程

本申请涉及网络通信技术领域,尤其涉及一种服务接口异步调用的实现方法和装置。



背景技术:

随着技术的发展,越来越多的生活和工作事项可以通过网络来完成。有的事项需要属于不同企业的不同应用系统之间的相互协作,因此,很多应用系统都提供了服务接口,供其他系统通过调用这些服务接口来使用相应的系统功能。不同应用系统之间服务接口的调用通常采用异步的方式,即服务使用方通过服务接口向服务提供方发起请求,服务提供方在对该服务请求处理完毕后,将对该请求的响应返回给服务使用方。

通常应用系统采用业务标识来唯一代表一个业务过程,该业务标识也常常用作应用系统数据库表的索引或索引的一部分,用来对该业务过程的业务数据进行查询、修改等操作。由于各个应用系统按照自行定义的规范生成各自的业务标识,在服务接口调用的请求和响应中会携带使用方业务标识和提供方业务标识,供双方来识别请求或响应属于哪一个业务过程。

现有技术中,服务使用方和服务提供方分别保存使用方业务标识和提供方业务标识的对应关系,在生成请求或响应时,根据本方的业务标识查找对方的业务标识,并封装在请求或响应中发送给对方。这种方式在应用于多个服务使用方和/或多个服务提供方时,不同服务使用方或不同服务提供方的业务标识可能会相同,从而无法按照本方的业务标识唯一确定对方的业务标识。当服务使用方无法在响应中得到本方业务标识时,只能按照响应中的其他数据来在数据库表中操作该业务过程的业务数据,大大降低了数据使用方的处理效率。当数据使用方采用分库分表结构存储业务数据时,将引发对所有分库分表的扫描,在高并发的情况下会对业务造成无法容忍的影响。



技术实现要素:

有鉴于此,本申请提供一种服务接口异步调用的实现方法,应用在接入一个到多个服务使用方和一个到多个服务提供方的网关上,所述方法包括:

在收到来自服务使用方、包括调用接口和使用方业务标识的使用方调用请求后,根据使用方调用请求中至少一个关联字段生成关联值,保存关联值与使用方业务标识的对应关系,按照调用接口获取提供方业务标识;所述所有关联字段能够唯一代表所述使用方业务标识;

基于使用方调用请求,向具有所述调用接口的服务提供方发送网关调用请求,所述网关调用请求中包括提供方业务标识和所有关联字段;

在从调用接口收到服务提供方包括关联字段的网关调用响应后,根据网关调用响应中的关联字段生成关联值,获取与关联值对应的使用方业务标识;

基于网关调用响应,向服务使用方发送包括使用方业务标识的使用方调用响应。

本申请还提供了一种服务接口异步调用的实现装置,应用在接入一个到多个服务使用方和一个到多个服务提供方的网关上,所述装置包括:

使用方请求处理单元,用于在收到来自服务使用方、包括调用接口和使用方业务标识的使用方调用请求后,根据使用方调用请求中至少一个关联字段生成关联值,保存关联值与使用方业务标识的对应关系,按照调用接口获取提供方业务标识;所述所有关联字段能够唯一代表所述使用方业务标识;

使用方请求转达单元,用于基于使用方调用请求,向具有所述调用接口的服务提供方发送网关调用请求,所述网关调用请求中包括提供方业务标识和所有关联字段;

网关响应处理单元,用于在从调用接口收到服务提供方包括关联字段的网关调用响应后,根据网关调用响应中的关联字段生成关联值,获取与关联值对应的使用方业务标识;

网关响应转达单元,用于基于网关调用响应,向服务使用方发送包括使用方业务标识的使用方调用响应。

由以上技术方案可见,本申请的实施例中,由接入服务提供方和服务使用方的网关根据能够唯一代表使用方业务标识的一个到多个关联字段生成关联值,保存关联值与使用方业务标识的对应关系,并在向服务提供方发出的调用请求中携带所有关联字段;在收到服务提供方包括关联字段的响应后,照关联字段的关联值查找使用方业务标识,用来向服务使用方回复响应;通过关联字段的唯一性来区分服务使用方以及业务过程,避免了因响应中缺少使用方业务标识导致的数据库操作速度下降。

附图说明

图1是本申请实施例应用场景的一种网络结构图;

图2是本申请实施例中一种应用在网关上的服务接口异步调用的实现方法的流程图;

图3是本申请应用示例中一种服务使用方、网关与服务提供方之间的交互流程图;

图4是网关所在设备的一种硬件结构图;

图5是本申请实施例中一种应用在网关上的服务接口异步调用的实现装置的逻辑结构图。

具体实施方式

本申请实施例应用场景的一种逻辑结构如图1所示,当多个服务使用方需要调用多个服务提供方的服务接口时,相比于更改每个服务使用方和每个服务提供方的实现,可以将一个到多个服务使用方和一个到多个服务提供方分别接入网关,在网关上运行本申请的实施例,对服务使用方与服务提供方之间调用接口的请求和响应进行转达,通过将使用方调用请求中的唯一代表业务标识的关联字段携带在向服务提供方发起的调用请求中,从而能够从服务提供方返回的调用响应中获取关联字段,来进一步得到该响应对应的使用方业务标识,避免了对服务使用方数据库的全表扫描,不会造成数据库操作速度下降,以解决现有技术中存在的问题。

本申请的实施例中,网关与所接入的每个服务使用方和每个服务提供方相互可访问。需要说明的是,网关、服务使用方、服务提供方可以分别运行在独立的物理或逻辑设备上;网关也可以作为一个功能模块运行在一个服务使用方所在的设备上,用来进行对一个到多个服务提供方服务接口的调用;网关还可以作为一个功能模块运行在一个服务提供方所在的设备上,作为其服务接口的前置功能模块,来供一个到多个服务使用方调用。

本申请的实施例可以运行在任何具有计算和存储能力的设备上,例如可以是手机、平板电脑、PC(Personal Computer,个人电脑)、笔记本、服务器、虚拟机等物理设备或逻辑设备;也可以由两个或两个以上分担不同职责的物理或逻辑设备、相互协同来实现本申请实施例中的各项功能。

本申请的实施例中,服务接口异步调用的实现方法的流程如图2所示,该方法应用在接入一个到多个服务使用方和一个到多个服务提供方的网关上。

步骤210,在收到来自服务使用方、包括调用接口和使用方业务标识的使用方调用请求后,根据使用方调用请求中至少一个关联字段生成关联值,保存关联值与使用方业务标识的对应关系,按照调用接口获取提供方业务标识。

当在服务使用方进行的某个业务过程需要调用某个服务提供方的服务接口时,生成使用方调用请求并发送给网关。

使用调用请求中包括使用方业务标识和调用接口。其中,使用方业务标识是服务使用方为调用该服务接口的业务过程赋予的标识,在服务使用方能够唯一代表该业务过程;如果该业务过程中需要进行多次服务接口调用,则该使用方业务标识将用于每一次的使用方调用请求中。调用接口为服务使用方所调用的服务接口,能够在网关所接入的所有服务接口中唯一代表一个服务接口;可以根据实际应用场景的具体实现来确定调用接口所包含的内容,例如,对网关接入一个服务提供方的应用场景,调用接口可以是服务接口标识;对网关接入多个服务提供方的应用场景,调用接口可以是服务提供方标识与服务接口标识。

本申请的实施例中,使用方调用请求中携带有一个到多个关联字段,所有关联字段的组合在网关上能够唯一代表该服务使用方的该业务过程,或者说,所有关联字段能够唯一代表该使用方业务标识。需要说明的是,关联字段中可以包括使用方业务标识和/或调用接口。类似的,可以根据实际应用场景的具体实现来选择将哪些内容作为关联字段,例如,对网关接入一个服务使用方的应用场景,可以将使用方业务标识、或使用方业务标识和调用接口作为关联字段;对网关接入多个服务使用方的应用场景,可以将服务使用方标识和使用方业务标识作为关联字段,也可以将服务使用方标识、使用方业务标识和调用接口作为关联字段。

网关在收到服务使用方发送的使用方调用请求后,从使用方调用请求中提取所有关联字段,根据所有的关联字段生成关联值,并保存关联值和使用方业务标识的对应关系。

在一些应用场景中,不同的调用接口可以采用不同的关联字段或关联字段组合。可以在网关上预置调用接口与和使用方关联规则的对应关系,网关可以从使用方调用请求中的调用接口得到对应的使用方关联规则,再按照该使用方关联规则中指定的关联字段从使用方调用请求中提取所有的关联字段,并按照该使用方关联规则中指定的组合方式将所有关联字段组合起来。

可以参考所有关联字段的长度、对网关处理接口调用的速度要求等因素来选择按照所有关联字段生成关联值的方式,本申请的实施例不做限定。例如,如果所有关联字段的组合长度较短,则可以直接将关联字段组合(只有一个关联字段时即为该关联字段本身)作为关联值;再如,如果关联字段组合的长度较长、或者要求网关能够快速处理接口调用,则可以将所有关联字段的组合输入到预定的摘要算法,以摘要算法输出的摘要值作为关联值。摘要算法可以是CRC(Cyclic Redundancy Check,循环冗余校验)、MD(Message-Digest Algorithm,消息摘要算法)、SHA(Secure Hash Algorithm,安全哈希算法)等。需要说明的是,上述两个例子中,如果只有一个关联字段,则关联字段组合即为该关联字段本身。

当本申请实施例所在的应用场景中只有一个服务使用方、或各个服务使用方的业务标识不会相同时,网关可以直接保存关联值和使用方业务标识的对应关系。如果各个服务使用方的业务标识可能相同,则可以在网关上采用两张数据库表:使用方业务标识记录表和关联关系表,来保存关联值和使用方业务标识的对应关系。具体而言,网关为该使用方调用请求生成唯一的索引码(该索引码在使用方业务标识记录表中唯一),在使用方业务标识记录表中以索引码为主键保存索引码与使用方业务标识的对应关系;在生成关联值后,网关在关联关系表中以关联值为主键保存关联值与该索引码的对应关系。这样,通过索引码,可以将同一个使用方调用请求的关联值和使用方业务标识对应起来。

根据使用方调用请求中的调用接口,网关获取该调用接口的提供方业务标识,用来进行调用该服务接口时在服务提供方的业务过程。根据服务提供方及其服务接口的具体实现,网关可以采用不同的方式获得提供方业务标识,本申请的实施例不做限定。例如,在有多个采用不同接口标识规则(用来生成提供方业务标识的规则)的服务接口时,可以在网关上保存调用接口与接口标识规则的对应关系,在收到使用方调用请求后,采用与其中调用接口对应的接口标识规则,生成提供方业务标识。再如,网关可以向使用方调用请求中的调用接口请求提供方业务标识,由调用接口所在的服务提供方根据自身业务标识的生成规则产生新的提供方业务标识,并返回给网关供其使用。

步骤220,基于使用方调用请求,向具有所述调用接口的服务提供方发送网关调用请求。

网关以使用方调用请求为基础,采用提供方业务标识生成对应于该使用方调用请求的网关调用请求,并发送给使用方调用请求中调用接口所在的服务提供方。网关调用请求中携带有使用方调用请求中的所有关联字段、和提供方业务标识。

网关调用请求用来按照该服务接口的规范,采用提供方业务标识对该服务接口进行调用。

步骤230,在从调用接口收到服务提供方包括关联字段的网关调用响应后,根据网关调用响应中的关联字段生成关联值,获取与关联值对应的使用方业务标识。

服务提供方从调用接口收到网关调用请求,执行具有网关调用请求中提供方业务标识的业务过程,并将执行结果、网关调用请求中所有关联字段封装在网关调用响应中,发送给网关。

在不同调用接口采用不同的关联字段或关联字段组合的应用场景中,在网关上预置调用接口和提供方关联规则的对应关系,网关可以用发送网关调用响应的调用接口按照该对应关系得到提供方关联规则,再按照该提供方关联规则中指定的关联字段从网关调用响应中提取所有的关联字段,并按照该提供方关联规则中指定的组合方式将所有关联字段组合起来。同一个调用接口的使用方关联规则和提供方关联规则能够基于相同的关联字段内容,生成相同的关联字段组合。

采用与步骤210中同样的方式,网关根据网关调用响应中关联字段的组合生成关联值,利用步骤210中保存的关联值与使用方业务标识的对应关系,得到该网关调用响应的回复对象(即服务使用方的业务过程)的使用方标识。在网关采用使用方业务标识记录表和关联关系表来保存关联值和使用方业务标识对应关系的应用场景中,网关在根据网关调用响应中关联字段的组合生成关联值后,先在关联关系表中查找与该关联值对应的索引码,再到使用方业务标识记录表中查找与该索引码对应的使用方业务标识,即可得到与该关联值对应的使用方业务标识。

步骤240,基于网关调用响应,向服务使用方发送包括使用方业务标识的使用方调用响应。

网关以网关调用响应为基础,采用使用方业务标识生成对应于该网关调用响应的使用方调用响应,并发送给发起相对应的使用方调用请求的服务使用方。使用方调用响应中携带有服务接口调用的执行结果和使用方业务标识,供服务使用方识别该使用方调用响应是对哪个使用方调用请求的响应。

网关可以通过携带有相同的关联字段来识别相对应的网关调用请求和网关调用响应,通过携带有相同的使用方业务标识来识别相对应的服务使用方调用请求和服务使用方调用响应。

可见,本申请的实施例中,网关根据将使用方调用请求中的唯一代表使用方业务标识的关联字段生成关联值,并将关联字段携带在向服务提供方发起的网关调用请求中,使服务提供方返回带有关联字段的网关调用响应,通过关联值与使用方业务标识的对应关系,向服务使用方返回带有使用方业务标识的使用方调用响应,从而能够分别采用使用方业务标识和提供方业务标识来进行服务使用方和服务提供方的业务过程,避免了对服务使用方数据库的全表扫描,不会造成数据库操作速度下降。

在本申请的一个应用示例中,多个服务使用方和多个服务提供方接入同一个网关,每个服务使用方和每个服务提供方都有各自的业务流水号(业务标识)生成规则,服务提供方向外部系统开放可供调用的服务接口。当服务使用方在某个业务过程中调用某个服务提供方的服务接口时,该服务使用方、网关和该服务提供方的交互流程如图3所示。

服务使用方根据自身系统的分库分表规则生成使用方业务流水号,将使用方业务流水号、服务使用方标识、服务提供方标识和服务接口标识封装在使用方调用请求中,发送给网关。其中,调用接口为服务提供方标识和服务接口标识。

网关上维护有使用方关联表和提供方关联表,分别用来用来保存调用接口和使用方关联规则的对应关系、以及调用接口与提供方关联规则的对应关系。网关收到使用方调用请求后,从中提取服务提供方标识和服务接口标识,在使用方关联表中查找到用于该调用接口的使用方关联规则,即:以使用方标识、使用方业务流水号和提供方标识为关联字段,并以上述顺序组合为关联字段组合。网关按照该使用方关联规则从使用方调用请求中提取使用方标识、使用方业务流水号和提供方标识并生成关联字段组合,将关联字段组合的MD5(Message Digest Algorithm 5,消息摘要算法第5版)值作为关联值。

网关为该使用方调用请求生成索引码,以索引码为主键,将索引码和该使用方调用请求中的使用方业务流水号的对应关系保存在使用方业务流水表中;以关联值为主键,将关联值与该索引码的对应关系保存在关联关系表中。

网关按照调用接口的提供方流水号生成规则(接口标识规则),生成提供方业务流水号。

网关以该使用方调用请求为基础,将使用方标识、使用方业务流水号、提供方标识、提供方业务流水号、以及使用方调用请求中的其他业务信息封装在网关调用请求中,发送给该调用接口所在的服务提供方。

服务提供方依照网关调用请求,采用提供方业务流水号执行该调用接口的业务过程,得到执行结果。服务提供方将执行结果、使用方标识、使用方业务流水号和提供方标识封装在网关调用响应中,通过该调用接口回复给网关。

网关以接收网关调用响应的调用接口,查找提供方关联表,得到提供方关联规则。该提供方关联规则与同一调用接口的使用方关联规则相匹配,即:以使用方标识、使用方业务流水号和提供方标识为关联字段,并以上述顺序组合为关联字段组合。网关按照提供方关联规则,从网关调用响应中提取使用方标识、使用方业务流水号和提供方标识,并生成关联字段组合。网关计算该关联字段组合的MD5值,将其作为关联值。

网关以关联值查找关联关系表,得到索引码;再以所得的索引码查找使用方业务流水表,得到使用方业务流水号。

网关以该网关调用响应为基础,将使用方业务流水号、执行结果封装在使用方调用响应中,发送给发起带有该使用方业务流水号的使用方调用请求的服务使用方。

服务使用方根据使用方业务流水号确定应用该执行结果的业务过程,并依据其业务逻辑进行后续业务处理。

与上述流程实现对应,本申请的实施例还提供了一种应用在网关上的服务接口异步调用的实现装置。该装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为逻辑意义上的装置,是通过所在设备的CPU(Central Process Unit,中央处理器)将对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,除了图4所示的CPU、内存以及非易失性存储器之外,服务接口异步调用的实现装置所在的设备通常还包括用于进行无线信号收发的芯片等其他硬件,和/或用于实现网络通信功能的板卡等其他硬件。

图5所示为本申请实施例提供的一种服务接口异步调用的实现装置,应用在接入一个到多个服务使用方和一个到多个服务提供方的网关上,所述装置包括使用方请求处理单元、使用方请求转达单元、网关响应处理单元和网关响应转达单元,其中:

使用方请求处理单元用于在收到来自服务使用方、包括调用接口和使用方业务标识的使用方调用请求后,根据使用方调用请求中至少一个关联字段生成关联值,保存关联值与使用方业务标识的对应关系,按照调用接口获取提供方业务标识;所述所有关联字段能够唯一代表所述使用方业务标识;

使用方请求转达单元用于基于使用方调用请求,向具有所述调用接口的服务提供方发送网关调用请求,所述网关调用请求中包括提供方业务标识和所有关联字段;

网关响应处理单元用于在从调用接口收到服务提供方包括关联字段的网关调用响应后,根据网关调用响应中的关联字段生成关联值,获取与关联值对应的使用方业务标识;

网关响应转达单元用于基于网关调用响应,向服务使用方发送包括使用方业务标识的使用方调用响应。

可选的,所述使用方请求处理单元保存关联值与使用方业务标识的对应关系,包括:为所述使用方调用请求生成唯一的索引码并在使用方业务标识记录表中以索引码为主键保存索引码与使用方业务标识的对应关系,在关联关系表中以关联值为主键保存关联值与索引码的对应关系;所述网关响应处理单元获取与关联值对应的使用方业务标识,包括:在关联关系表中查找与关联值对应的索引码,在使用方业务标识记录表中查找与所述索引码对应的使用方业务标识。

可选的,所述关联值以所有关联字段的组合为输入,采用预定的摘要算法生成。

可选的,所述使用方请求处理单元按照调用接口获取提供方业务标识,包括:按照与调用接口对应的接口标识规则,生成提供方业务标识。

一个例子中,所述使用方请求处理单元根据使用方调用请求中至少一个关联字段生成关联值,包括:按照与使用方调用请求中调用接口对应的使用方关联规则指定的关联字段和指定的组合方式,从使用方调用请求中提取关联字段后进行组合,并采用关联字段组合生成关联值;所述网关响应处理单元根据网关调用响应中的关联字段生成关联值,包括:按照接收所述网关调用响应的调用接口对应的提供方关联规则指定的关联字段和指定的组合方式,从网关调用响应中提取关联字段后进行组合,并采用关联字段组合生成关联值。

上述例子中,所述使用方业务标识包括:使用方业务流水号,所述提供方业务标识包括:提供方业务流水号;所述关联字段包括:使用方标识、使用方业务流水号和提供方标识。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1