业务数据处理方法、装置及系统与流程

文档序号:13984527阅读:506来源:国知局
业务数据处理方法、装置及系统与流程

本申请涉及数据处理技术领域,尤其是涉及一种业务数据处理方法、装置及系统。



背景技术:

在业务数据处理中,通信双方之间的接口封装,目前多是基于不同的业务种类实现的,即每有一种业务,即实现一种接口。也就是说接口和业务之间一般维持着一一对应的关系,如图1所示。如此,每新增一项业务,就需要添加一个新的接口。

在实现本申请的过程中,本申请的发明人发现:在业务简单,且业务种类较少的情况下,这种方案实现简单,开发维护成本较低。然而,随着业务的不断发展,业务越来越复杂,业务种类也越来越繁多。相应的,涉及到的业务数据处理随之而变得越来越复杂,并且,对原有接口的维护也会越来越困难。由此可见,现有的业务数据处理方案的可复用性较低,维护成本高。



技术实现要素:

本申请实施例的目的在于提供一种业务数据处理方法、装置及系统,以提高现有的业务数据处理方案的代码可复用性,降低维护成本。

为达到上述目的,一方面,本申请实施例提供了一种业务数据处理方法,包括:

提供元服务集合;所述元服务集合包括多个不同的元服务,所述元服务是预先根据指定范围内所有业务拆分而成的功能单一的子处理指令;

在获取到客户端提供的业务请求时,将所述业务请求拆分为多个子请求,并根据拆分出的子请求从所述元服务集合中匹配出对应的元服务;

按照预设的控制逻辑将所述匹配出的元服务提供给服务端处理,并将所述服务端返回的业务响应提供给所述客户端。

优选的,还包括:当拆分所述业务请求出现异常时,终止对所述业务请求的处理并向所述客户端返回异常信息。

优选的,所述按照预设的控制逻辑将所述匹配出的元服务提供给服务端处理,包括:

按照预设的控制逻辑确定匹配出的元服务的控制流程;

按照所述控制流程调用匹配出的元服务,以提供给所述服务端处理。

优选的,所述按照所述控制流程调用匹配出的元服务,包括:

根据所述控制流程及所述服务端当前返回的元服务响应,确定是否执行下一个元服务的调用。

优选的,所述根据所述控制流程及所述服务端当前返回的元服务响应,确定是否执行下一个元服务的调用,包括:

在确认所述服务端当前返回的元服务响应为成功响应且存在尚未调用的所述匹配出的元服务时,执行下一个元服务的调用。

优选的,所述根据所述控制流程及所述服务端当前返回的元服务响应,确定是否执行下一个元服务的调用,包括:

在确认所述服务端当前返回的元服务响应为失败响应时,确定是否需要重新调用当前响应失败的元服务;

如果不需要,则中止下一个元服务的调用,并终止对所述业务请求的处理,然后向所述客户端返回失败信息。

优选的,还包括:在中止下一个元服务的调用,并终止对所述业务请求的处理后,确定是否需要进行回滚处理;

如果需要,则执行相应的回滚处理。

优选的,所述将所述服务端返回的业务响应提供给所述客户端,包括:

在确认匹配出的每个元服务的元服务响应为成功响应时,将其组装成业务响应并提供给所述客户端。

优选的,还包括:保存所述服务端的处理数据,所述处理数据包括业务请求及对应的业务响应。

优选的,所述业务请求包括读请求和/或写请求。

另一方面,本申请实施例还提供了一种业务数据处理装置,包括:

元服务集合,用于提供多个不同的元服务,所述元服务是预先根据指定范围内所有业务拆分而成的功能单一的子处理指令;

服务模块,用于在获取到客户端提供的业务请求时,将所述业务请求拆分为多个子请求,并根据拆分出的子请求从所述元服务集合中匹配出对应的元服务;

逻辑控制模块,用于按照预设的控制逻辑将所述匹配出的元服务提供给服务端处理,并通过所述服务模块将所述服务端返回的业务响应提供给所述客户端。

另一方面,本申请实施例还提供了另一种业务数据处理装置,包括存储器、处理器、以及存储在所述存储器上的计算机程序,所述计算机程序被所述处理器运行时执行如下步骤:

提供元服务集合;所述元服务集合包括多个不同的元服务,所述元服务是预先根据指定范围内所有业务拆分而成的功能单一的子处理指令;

在获取到客户端提供的业务请求时,将所述业务请求拆分为多个子请求,并根据拆分出的子请求从所述元服务集合中匹配出对应的元服务;

按照预设的控制逻辑将所述匹配出的元服务提供给服务端处理,并将所述服务端返回的业务响应提供给所述客户端。

另一方面,本申请实施例还提供了一种业务数据处理系统包括:

客户端;

与所述客户端耦合的业务数据处理装置;以及,

与所述业务数据处理装置耦合的服务端;所述业务数据处理装置包括:

元服务集合,用于提供多个不同的元服务,所述元服务是预先根据指定范围内所有业务拆分而成的功能单一的子处理指令;

服务模块,用于在获取到客户端提供的业务请求时,将所述业务请求拆分为多个子请求,并根据拆分出的子请求从所述元服务集合中匹配出对应的元服务;

逻辑控制模块,用于按照预设的控制逻辑将所述匹配出的元服务提供给服务端处理,并通过所述服务模块将所述服务端返回的业务响应提供给所述客户端。

由以上本申请实施例提供的技术方案可见,本申请实施例在获取到客户端提供的业务请求时,将业务请求拆分为多个子请求,并根据拆分出的子请求从预设的元服务集合中匹配出对应的元服务;然后按照预设的控制逻辑将匹配出的元服务提供给服务端处理。因此,无论面对何种业务请求,在将其拆分为多个子请求后,均可以匹配到对应的元服务,使得后续可根据匹配出的元服务的组合与服务端通信,以完成业务处理。从而,通过配置可复用的元服务即可完成接口匹配,因此本申请实施例可非常好的适应业务的变化,从而提高了代码的可复用性,降低了维护成本。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为传统技术中的一种接口实现方式示意图;

图2为本申请一实施例的业务数据处理系统的组成结构框图;

图3为本申请一实施例中业务数据处理装置的业务数据处理方法的流程图;

图4为本申请另一实施例中业务数据处理装置的组成结构框图;

图5为本申请另一实施例中业务数据处理系统的组成结构框图;

图6为本申请一应用场景下业务数据处理装置的业务数据处理流程图;

图7为本申请另一应用场景下业务数据处理装置的业务数据处理流程图。

具体实施方式

为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

参考图2所示,本申请实施例的业务数据处理系统可以包括客户端,与所述客户端耦合的业务数据处理装置,以及与所述业务数据处理装置耦合的服务端。

本实施方式中,所述客户端可以用于向所述业务数据处理装置提供业务请求,并接收所述业务数据处理装置提供的业务响应。其中,所述业务请求可以为读请求,也可以为写请求,还可以为读写请求。

本实施方式中,所述业务数据处理装置可以用于提供多个不同的元服务;在获取到客户端提供的业务请求时,将所述业务请求拆分为多个子请求,并根据拆分出的子请求从所述元服务集合中匹配出对应的元服务;按照预设的控制逻辑将所述匹配出的元服务提供给服务端处理,并将所述服务端返回的业务响应提供给所述客户端。

本实施方式中,所述服务端可以用于在接收到所述业务数据处理装置提供的元服务后,对所述元服务进行处理,并将处理后获得的响应返回给所述业务数据处理装置。

在一实施方式中,所述客户端可以为面向用户的客户端,例如app客户端等;在另一实施方式中,所述客户端也可以为通过所述业务数据处理装置与所述服务端通信的上游装置或上游系统等。

在一实施方式中,所述业务数据处理装置可以为协调通信双方的实现接口。在另一实施方式中,所述业务数据处理装置还可以配置为前端服务器。

在一实施方式中,所述服务端可以为对外提供相应服务的服务器。所述服务器可以是分立的服务器,也可以是服务器集群或分布式服务器等。

在一实施方式中,如图2所示,所述业务数据处理装置可以包括服务配置模块、服务模块和逻辑控制模块。其中:

所述元服务集合可以用于提供多个不同的元服务,每个所述元服务是预先根据指定范围内所有业务拆分而成的功能单一的子处理指令,即每个所述元服务唯一对应一种处理步骤,是构成服务的最小单位,一般不可再分。通常,元服务集合中的元服务无需变动,除非出现了无法满足的新的业务需求。

在一个示例性应用场景中,小王和小张同为xx银行的客户。小王需要转账100元给小张。对于这样一种转账业务,则可以拆分出如下3个元服务:

1、从a(a可以为变量,例如为小王)的账户上扣除b元(b可以为变量,例如为100元),并存放在一个中间账户c(c可以为变量)上;

2、从中间账户c上扣除b元(例如100元),并将其存在d(可以为变量,例如为小张)的账户上;

3、将本次业务处理详情保存到f(f可以为变量,例如可以为专门负责收集交易的系统等)。

相应的,将所述业务请求拆分为多个子请求的处理,与上述根据指定范围内所有业务拆分成多个元服务原理相同,在此不再赘述。

以银行业务为例,可预先进行业务需求分析,梳理完成各个业务所需要调用的子处理指令,并分析清楚每一步子处理如果出现异常或失败时该如何处理,例如记账失败、核心未明等情况下程序逻辑该如何进行下去。如此,可按照上述拆分方式,将所述的银行业务拆分成多个元服务,然后将拆分出的元服务整合成一个元服务集合(例如可以为小数据库),在元服务集合中每个元服务各不相同。

所述服务模块可以用于在获取到客户端提供的业务请求时,将所述业务请求拆分为多个子请求,并根据拆分出的子请求从所述元服务集合中匹配出对应的元服务。由此可见,本实施方式中服务模块中的元服务可动态配置,在一示例性实施方式中,可利用现有的spring技术实现。由此可见,无论面对何种业务请求,在将其拆分为多个子请求后,均可以匹配到对应的元服务,使得后续逻辑控制模块可根据匹配出的元服务的组合与服务端通信,以完成业务处理。从而,通过配置可复用的元服务即可完成接口匹配,因此本申请实施例可非常好的适应业务的变化,从而提高了代码的可复用性,降低了维护成本。

当然,所述服务模块还可以将所述逻辑控制模块反馈的响应整合成业务响应返回给所述客户端,从而使得所述服务模块完成了业务的接口并对外呈现给所述客户端。

所述逻辑控制模块可以用于按照预设的控制逻辑将所述服务模块匹配出的元服务提供给服务端处理,并将所述服务端返回的业务响应提供给所述服务模块。

为了更清楚的理解本申请,图3示出上述业务数据处理装置的业务数据处理方法。

在图3中,首先,所述业务数据处理装置需根据上述描述提供一个元服务集合;所述元服务集合包括多个不同的元服务,所述元服务是预先根据指定范围内所有业务拆分而成的功能单一的子处理指令。所述业务数据处理装置在获取到客户端提供的业务请求时,可将所述业务请求拆分为多个子请求,并根据拆分出的子请求从所述元服务集合中匹配出对应的元服务;然后按照预设的控制逻辑将所述匹配出的元服务提供给服务端处理,并将所述服务端返回的响应整合成业务响应后提供给所述客户端。

在一实施方式中,当拆分所述业务请求出现异常时,可终止对所述业务请求的处理,并向所述客户端返回异常信息。

在一实施方式中,所述按照预设的控制逻辑将所述匹配出的元服务提供给服务端处理可以包括:先按照预设的控制逻辑确定匹配出的元服务的控制流程;然后按照所述控制流程调用匹配出的元服务,以提供给所述服务端处理。其中,所述按照所述控制流程调用匹配出的元服务可以是:根据所述控制流程及所述服务端当前返回的元服务响应,确定是否执行下一个元服务的调用。

例如在确认所述服务端当前返回的元服务响应为成功响应且存在尚未调用的所述匹配出的元服务时,执行下一个元服务的调用。而在确认所述服务端当前返回的元服务响应为失败响应时,确定是否需要重新调用当前响应失败的元服务;如果不需要,则中止下一个元服务的调用,并终止对所述业务请求的处理,然后向所述客户端返回失败信息。

因此,在本实施方式中,只有匹配出的每个元服务的处理均成功,才认为是业务请求处理成功,否则,其中任意一个元服务的处理失败,就会导致整个业务请求处理失败,以保证业务处理事件的一致性。而在确认匹配出的每个元服务的元服务响应为成功响应时,可将其组装成业务响应并提供给所述客户端。当然,在业务请求处理失败时,同样可以根据服务端已返回响应组装成业务响应并给所述客户端。

在一实施方式中,在中止下一个元服务的调用,并终止对所述业务请求的处理后,还可以确定是否需要进行回滚处理;如果需要,则执行相应的回滚处理,以将数据恢复到上一次正确状态。例如在银行业务中,所述的回滚即为冲正。

当然,在本实施方式中,在业务处理结束时,一般需要保存所述服务端的处理数据,所述处理数据例如可以包括所述业务响应等处理详情。

虽然上文描述的过程流程包括以特定顺序出现的多个操作,但是,应当清楚了解,这些过程可以包括更多或更少的操作,这些操作可以顺序执行或并行执行(例如使用并行处理器或多线程环境)。例如在银行业务应用场景中,一笔记账请求一般有严格的顺序性,例如a给b转账,一定是先从a的账户中扣钱,然后转入b的账户。但是对于多笔记账请求处理来说,可以并行执行。

结合图4所示,本申请的另一种业务数据处理装置可以包括存储器、处理器、以及存储在所述存储器上的计算机程序,所述计算机程序被所述处理器运行时执行如下步骤:

提供元服务集合;所述元服务集合包括多个不同的元服务,所述元服务是预先根据指定范围内所有业务拆分而成的功能单一的子处理指令;

在获取到客户端提供的业务请求时,将所述业务请求拆分为多个子请求,并根据拆分出的子请求从所述元服务集合中匹配出对应的元服务;

按照预设的控制逻辑将所述匹配出的元服务提供给服务端处理,并将所述服务端返回的业务响应提供给所述客户端。

需要说明的是,关于图4所示业务数据处理装置中涉及到的方法流程的细节,请参见本申请上述图3所示的方法流程,在此不再赘述。

下面介绍本申请的应用场景。

如图5所示,在本应用场景中,业务数据处理装置为gupp系统的pip层适配器。其中,gupp系统包括全球统一支付平台(gpp-sp)和支付集成平台(pip)。对应的服务端为核心系统。其中,核心系统对外提供记账和查询功能,根据借贷方账户的不同类型(对公账户、对私账户、中间账户、费用账户等),起息日期(当日正常计息、提前计息、延后计息)、交易类型(正常记账、查询、冲正等)等因素,核心系统有不同的模块来处理这些交易。

在本应用场景下,业务数据处理装置的账号查询处理流程可以如图6所示,其中:

(1)接收pip报文进行解析,如出现解析异常结束本次服务调用,将异常信息返回请求渠道,解析成功继续服务处理。

(2)对pip查询报文进行拆分,将pip报文拆分为多个bancs查询服务进行调用,如果拆分报文发生异常结束本次服务调用,将异常信息返回请求渠道,拆分成功继续服务处理。

(3)按照查询次序依次调用查询服务,如果查询服务1返回成功结果,则继续其他查询服务,如果失败则将失败信息返回并保存,直接结束掉本次服务调用。

(4)直至查询服务n调用成功结束本次查询服务的调用,综合n次查询服务调用的结果返回给渠道。

在本应用场景下,业务数据处理装置的记账处理流程可以如图7所示,其中:

(1)接收pip报文进行解析,如出现解析异常结束本次服务调用,将异常信息返回请求渠道,解析成功继续服务处理。

(2)对pip记账报文进行拆分,将pip报文拆分为多个bancs记账服务进行调用,如果拆分报文发生异常结束本次服务调用,将异常信息返回请求渠道,拆分成功继续服务处理。

(3)按照记账次序依次调用记账服务,如果记账服务1返回成功结果,则继续其他记账服务,如果失败则将失败信息返回并保存,直接结束掉本次服务调用。

(4)直至记账服务n调用成功结束本次记账服务的调用,综合n次记账服务调用的结果返回给渠道。

在以上应用场景中,还可以涉及错误处理流程。例如当调用元服务出现错误或异常时,通过控制流程可选择继续进行交易、对已完成的交易冲正或者直接结束交易并返回给用户。

在以上应用场景中,还可以涉及保存处理数据的流程。例如记账请求记录。

将每一笔记账请求保存到数据库中,以便跟踪监控记账处理流程。同时,如果由于gpp-sp与pip之间通讯失败导致记账响应没有成功发送给gppsp,当gppsp再次发起该记账请求时,pip通过查询数据库直接将成功的记账响应返回给gppsp。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

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

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

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

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

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

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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