业务报文处理方法及装置与流程

文档序号:32350999发布日期:2022-11-26 13:06阅读:110来源:国知局
业务报文处理方法及装置与流程

1.本发明涉及大数据技术领域,尤其涉及一种业务报文处理方法及装置。


背景技术:

2.本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
3.现有技术在处理业务报文时,通常由单一线程从头到尾去处理一个业务报文。但是业务报文处理过程一般包括多个处理操作,链路很长,其中部分处理操作又可能会调用其他业务系统接口,致使处理流程更加复杂,容易造成系统资源长时间被占用,导致业务系统并发性能降低,影响业务报文的处理效率。
4.针对上述问题,目前尚未提出有效的解决方案。


技术实现要素:

5.本发明实施例提供一种业务报文处理方法,用以增强业务报文处理的灵活性,提高业务报文的处理效率,减少对业务系统资源的占用,提高业务系统的并发性能,该方法包括:
6.根据业务进程,确定对不同业务报文的多个处理操作以及多个处理操作的执行顺序;
7.根据对不同业务报文的多个处理操作以及多个处理操作的执行顺序,确定每一处理操作待执行时对应业务报文的处理状态;
8.在接收到每一业务报文时,设置业务报文的处理状态为已接收状态,将已接收状态的业务报文存储在数据库中,其中数据库中存储有处于不同处理状态的业务报文;
9.重复以下操作,直至对数据库中每一业务报文执行完毕全部处理操作:
10.以轮询的方式从数据库中取出处于同一处理状态的多个业务报文,根据取出的多个业务报文对应的处理状态,确定待执行的处理操作;根据待执行的处理操作,处理取出的多个业务报文,得到多个经过处理的业务报文;更新多个经过处理的业务报文的处理状态,将更新处理状态的多个经过处理的业务报文继续存储在数据库中,以待下一次轮询。
11.本发明实施例还提供一种业务报文处理装置,用以增强业务报文处理的灵活性,提高业务报文的处理效率,减少对业务系统资源的占用,提高业务系统的并发性能,该装置包括:
12.处理操作确定模块,用于根据业务进程,确定对不同业务报文的多个处理操作以及多个处理操作的执行顺序;
13.处理状态确定模块,用于根据对不同业务报文的多个处理操作以及多个处理操作的执行顺序,确定每一处理操作待执行时对应业务报文的处理状态;
14.存储模块,用于在接收到每一业务报文时,设置业务报文的处理状态为已接收状态,将已接收状态的业务报文存储在数据库中,其中数据库中存储有处于不同处理状态的
业务报文;
15.轮询与处理模块,用于重复以下操作,直至对数据库中每一业务报文执行完毕全部处理操作:
16.以轮询的方式从数据库中取出处于同一处理状态的多个业务报文,根据取出的多个业务报文对应的处理状态,确定待执行的处理操作;根据待执行的处理操作,处理取出的多个业务报文,得到多个经过处理的业务报文;更新多个经过处理的业务报文的处理状态,将更新处理状态的多个经过处理的业务报文继续存储在数据库中,以待下一次轮询。
17.本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述业务报文处理方法。
18.本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述业务报文处理方法。
19.本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述业务报文处理方法。
20.本发明实施例中,根据业务进程,确定对不同业务报文的多个处理操作以及多个处理操作的执行顺序;根据对不同业务报文的多个处理操作以及多个处理操作的执行顺序,确定每一处理操作待执行时对应业务报文的处理状态;在接收到每一业务报文时,设置业务报文的处理状态为已接收状态,将已接收状态的业务报文存储在数据库中,其中数据库中存储有处于不同处理状态的业务报文;重复以下操作,直至对数据库中每一业务报文执行完毕全部处理操作:以轮询的方式从数据库中取出处于同一处理状态的多个业务报文,根据取出的多个业务报文对应的处理状态,确定待执行的处理操作;根据待执行的处理操作,处理取出的多个业务报文,得到多个经过处理的业务报文;更新多个经过处理的业务报文的处理状态,将更新处理状态的多个经过处理的业务报文继续存储在数据库中,以待下一次轮询,可以增强业务报文处理的灵活性,提高业务报文的处理效率,减少对业务系统资源的占用,提高业务系统的并发性能。
附图说明
21.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
22.图1为本发明实施例中业务报文处理方法的流程示意图;
23.图2为本发明实施例中为业务报文赋予状态值的方法流程图;
24.图3为本发明实施例中对出错的业务报文执行补救操作的方法流程图;
25.图4为本发明实施例中业务报文处理装置的结构示意图;
26.图5为本发明实施例中业务报文处理装置的一具体实例结构示意图;
27.图6为本发明实施例中业务报文处理装置的一具体实例结构示意图;
28.图7为本发明实施例中业务报文处理装置的一具体实例结构示意图;
29.图8为本发明一实施例的计算机设备结构示意图。
具体实施方式
30.为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
31.首先对本发明实施例中的技术名词进行解释:
32.报文:应用系统间通讯交互时,发送的信息流。
33.接口:一个系统开放给另一个系统的交互方式,当对方传入规范格式的报文时,可以获取特定结果的报文输出。
34.进程:进程是资源(cpu、内存等)分配的基本单位,是程序执行时的一个实例。
35.线程:操作系统能够进行运算调度的最小单位,线程是程序执行时的最小单位,它是进程的一个执行流,是cpu调度和分派的基本单位。
36.发明人发现,业务系统中常见的逻辑处理采用瀑布式,即一个程序完成由接收报文到返回回执的全部工作,同时分配一个线程去处理。以银行业务系统为例,在一笔交易进入银行业务系统时,通常由一个单一线程从头到尾去处理这笔交易,直到这笔交易完成后,再释放线程去处理下一笔交易,易造成银行业务系统资源长时间被占用,导致银行业务系统的并发性能降低,影响银行业务的处理效率。因此,本发明提供了一种业务报文处理方法,可以解决上述技术问题。
37.图1为本发明实施例中业务报文处理方法的流程示意图。如图1所示,本发明实施例中业务报文处理方法可以包括:
38.步骤101、根据业务进程,确定对不同业务报文的多个处理操作以及多个处理操作的执行顺序;
39.步骤102、根据对不同业务报文的多个处理操作以及多个处理操作的执行顺序,确定每一处理操作待执行时对应业务报文的处理状态;
40.步骤103、在接收到每一业务报文时,设置业务报文的处理状态为已接收状态,将已接收状态的业务报文存储在数据库中,其中数据库中存储有处于不同处理状态的业务报文;
41.步骤104、重复以下操作,直至对数据库中每一业务报文执行完毕全部处理操作:以轮询的方式从数据库中取出处于同一处理状态的多个业务报文,根据取出的多个业务报文对应的处理状态,确定待执行的处理操作;根据待执行的处理操作,处理取出的多个业务报文,得到多个经过处理的业务报文;更新多个经过处理的业务报文的处理状态,将更新处理状态的多个经过处理的业务报文继续存储在数据库中,以待下一次轮询。
42.首先可以根据业务进程,确定对不同业务报文的多个处理操作以及多个处理操作的执行顺序,即将一个瀑布式的业务报文处理流程分为多个不同的处理操作。以银行业务为例,根据银行业务进程,确定对不同银行业务报文的多个处理操作及对应的执行顺序可以包括:报文接收操作、报文解析操作、报文逻辑处理操作和报文返回回执操作。
43.在一个实施例中,根据业务进程,在确定对不同业务报文的多个处理操作以及多个处理操作的执行顺序之后,还可以包括:根据对不同业务报文的多个处理操作以及多个处理操作的执行顺序,为每一处理操作分配处理线程。
44.具体实施时,仍以银行业务为例,在本发明实施中,不再需要一个线程从头到尾去
处理一笔交易,可以为不同的处理操作分配不同的线程。例如报文接收操作的处理速度较快,可以分配少数线程,循环利用;例如报文逻辑处理操作的处理速度相对慢,可以分配更多线程。基于前述的线程分配方法,可以匹配整个链路上的银行业务处理速度,使得资源利用率得到提高,银行业务系统的整体性能、并发处理能力得到增强。
45.然后,可以根据对不同业务报文的多个处理操作以及多个处理操作的执行顺序,确定每一处理操作待执行时对应业务报文的处理状态;在接收到每一业务报文时,设置业务报文的处理状态为已接收状态,将已接收状态的业务报文存储在数据库中,其中数据库中存储有处于不同处理状态的业务报文。
46.在一个实施例中,所述多个处理操作至少可以包括以下操作:报文接收操作、报文解析操作、报文逻辑处理操作和报文返回回执操作;所述多个业务报文对应的处理状态至少可以包括以下状态:初始状态、已接收状态、已解析状态和逻辑已处理状态。
47.具体实施时,根据已确定的多个处理操作以及多个处理操作的执行顺序,可以得到在数据库中:报文解析操作待执行时对应业务报文的处理状态为已接收状态;报文逻辑处理操作待执行时对应业务报文的处理状态为已解析状态;报文返回回执操作待执行时对应业务报文的处理状态为逻辑已处理状态。
48.接下来,利用数据库将业务报文的处理流程分割为多个处理操作,并根据预设的轮询顺序,从数据库中取出处于同一处理状态的多个业务报文进行处理,可以缩短每一业务报文对业务系统资源的占用时间,便于调度和高效处理。
49.具体实施步骤可以包括:重复以下操作,直至对数据库中每一业务报文执行完毕全部处理操作:以轮询的方式从数据库中取出处于同一处理状态的多个业务报文,根据取出的多个业务报文对应的处理状态,确定待执行的处理操作;根据待执行的处理操作,处理取出的多个业务报文,得到多个经过处理的业务报文;更新多个经过处理的业务报文的处理状态,将更新处理状态的多个经过处理的业务报文继续存储在数据库中,以待下一次轮询。
50.为快速识别出数据库中业务报文的不同处理状态,提高数据库的轮询效率,还可以为数据库中每一业务报文赋予对应的状态值。图2为本发明实施例中为业务报文赋予状态值的方法流程图。如图2所示,在一个实施例中,还可以包括:
51.步骤201、通过数据库标志字段,为数据库中每一业务报文赋予状态值,表示每一业务报文对应的处理状态,其中不同的处理状态对应不同的状态值;
52.步骤202、在有业务报文的处理状态更新时,根据更新后的处理状态修改对应业务报文的状态值。
53.具体实施时,可以在数据库中设定一个

报文处理状态’栏位,记录不同业务报文的状态值。例如,业务报文a经过报文接收操作处理后被存入数据库,可以将业务报文a的

报文处理状态’栏位中的状态值设置为1;在以轮询的方式从数据库中取出状态值为1的业务报文时,业务报文a被取出,对业务报文a执行报文解析操作,将经过报文解析操作处理后的业务报文a继续存入数据库,并将业务报文a的

报文处理状态’栏位中的状态值设置为2;在以轮询的方式从数据库中取出状态值为2的业务报文时,业务报文a被取出,对业务报文a执行报文逻辑处理操作,将经过报文逻辑处理操作的业务报文a继续存入数据库,并将业务报文a的

报文处理状态’栏位中的状态值设置为3;在以轮询的方式从数据库中取出状态值
为3的业务报文时,业务报文a被取出,对业务报文a执行报文返回回执操作,将经过报文返回回执操作的业务报文a继续存入数据库,并将业务报文a的

报文处理状态’栏位中的状态值设置为4,说明业务报文a处理完成。
54.下面以银行业务为例说明本发明中业务报文处理方法的具体执行步骤:
55.(1)报文接收操作应用于通讯层,接收银行业务报文,接收银行业务报文后将报文内容存入数据库,同时将已接收状态对应的状态值写入数据库标志字段,以供执行下一处理操作时查询。
56.(2)通过轮询的方式取出处于已接收状态的银行业务报文,对取出的银行业务报文执行报文解析操作,具体包括进行简单的格式、字段校验等,同时将已解析状态对应的状态值写入数据库标志字段,以供执行下一处理操作时查询;其中,报文解析操作的作用为准入校验,确保校验后的报文都能够在执行报文逻辑处理操作时被正确处理;对于有问题的银行业务报文,可通过数据库标志位,跳过报文逻辑处理操作,直接执行报文返回回执操作,返回错误信息。
57.(3)通过轮询的方式取出处于已解析状态的银行业务报文,对取出的银行业务报文执行报文逻辑处理操作,可以调用相关接口进行银行业务处理,同时将逻辑已处理状态对应的状态值写入数据库标志字段,以供执行下一处理操作时查询。具体实施时,可以根据查询、支付、对账、报表等不同银行业务步骤设立不同的子模块,数据库标志字段还可以为每一个子模块赋予单独的状态值,以便将流程再一步细化。
58.(4)通过轮询的方式取出处于逻辑已处理状态的银行业务报文,对取出的银行业务报文执行报文返回回执操作,组装返回报文,将银行业务处理结果返回。
59.图3为本发明实施例中对出错的业务报文执行补救操作的方法流程图。如图3所示,在一个实施例中,还可以包括:
60.步骤301、在有业务报文出错时,获取出错的业务报文对应的状态值,根据出错的业务报文对应的状态值,确定上一步对出错的业务报文执行的处理操作;
61.步骤302、根据上一步对出错的业务报文执行的处理操作,确定对出错的业务报文的补救操作,对出错的业务报文执行补救操作。
62.具体实施时,在现有技术中,一旦业务报文的处理过程出现错误,维护人员往往需要逐个日志分析,找到业务断点,十分繁琐,不易于业务系统维护;此外,如果业务报文的处理过程出现错误,通常会被业务系统当成异常数据处理,用户需要重新发起新的业务请求,降低业务处理效率,影响用户体验。
63.而在本发明实施例中,通过查询数据库中出错业务报文对应的状态值,可以快速识别当前业务报文的处理状态,并定位到整个业务流程中的具体位置,及时采取补救措施排除故障,使得后续处理操作能够继续执行,用户无需重新发起业务请求,提高业务处理效率,改善用户体验。
64.本发明实施例中还提供了一种业务报文处理装置,如下面的实施例所述。由于该装置解决问题的原理与业务报文处理方法相似,因此该装置的实施可以参见业务报文处理方法的实施,重复之处不再赘述。
65.图4为本发明实施例中业务报文处理装置的结构示意图。如图4所示,本发明实施例中业务报文处理装置具体可以包括:
66.处理操作确定模块401,用于根据业务进程,确定对不同业务报文的多个处理操作以及多个处理操作的执行顺序;
67.处理状态确定模块402,用于根据对不同业务报文的多个处理操作以及多个处理操作的执行顺序,确定每一处理操作待执行时对应业务报文的处理状态;
68.存储模块403,用于在接收到每一业务报文时,设置业务报文的处理状态为已接收状态,将已接收状态的业务报文存储在数据库中,其中数据库中存储有处于不同处理状态的业务报文;
69.轮询与处理模块404,用于重复以下操作,直至对数据库中每一业务报文执行完毕全部处理操作:以轮询的方式从数据库中取出处于同一处理状态的多个业务报文,根据取出的多个业务报文对应的处理状态,确定待执行的处理操作;根据待执行的处理操作,处理取出的多个业务报文,得到多个经过处理的业务报文;更新多个经过处理的业务报文的处理状态,将更新处理状态的多个经过处理的业务报文继续存储在数据库中,以待下一次轮询。
70.图5为本发明实施例中业务报文处理装置的一具体实例结构示意图。如图5所示,在实施例中,图4所示的业务报文处理装置还包括:
71.处理线程分配模块501,用于在处理操作确定模块401确定对不同业务报文的多个处理操作以及多个处理操作的执行顺序之后:
72.根据对不同业务报文的多个处理操作以及多个处理操作的执行顺序,为每一处理操作分配处理线程。
73.在一个实施例中,所述多个处理操作至少包括以下操作:
74.报文接收操作、报文解析操作、报文逻辑处理操作和报文返回回执操作;
75.所述多个业务报文对应的处理状态至少包括以下状态:
76.初始状态、已接收状态、已解析状态和逻辑已处理状态。
77.图6为本发明实施例中业务报文处理装置的一具体实例结构示意图。如图6所示,在实施例中,图4所示的业务报文处理装置还包括:
78.状态值赋予模块601,用于:
79.通过数据库标志字段,为数据库中每一业务报文赋予状态值,表示每一业务报文对应的处理状态,其中不同的处理状态对应不同的状态值;
80.在有业务报文的处理状态更新时,根据更新后的处理状态修改对应业务报文的状态值。
81.图7为本发明实施例中业务报文处理装置的一具体实例结构示意图。如图7所示,在实施例中,图4所示的业务报文处理装置还包括:
82.补救模块701,用于:
83.在有业务报文出错时,获取出错的业务报文对应的状态值,根据出错的业务报文对应的状态值,确定上一步对出错的业务报文执行的处理操作;
84.根据上一步对出错的业务报文执行的处理操作,确定对出错的业务报文的补救操作,对出错的业务报文执行补救操作。
85.基于前述发明构思,如图8所示,本发明还提出了一种计算机设备800,包括存储器810、处理器820及存储在存储器810上并可在处理器820上运行的计算机程序830,所述处理
器820执行所述计算机程序830时实现前述业务报文处理方法。
86.本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述业务报文处理方法。
87.本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述业务报文处理方法。
88.综上所述,本发明实施例中,根据业务进程,确定对不同业务报文的多个处理操作以及多个处理操作的执行顺序;根据对不同业务报文的多个处理操作以及多个处理操作的执行顺序,确定每一处理操作待执行时对应业务报文的处理状态;在接收到每一业务报文时,设置业务报文的处理状态为已接收状态,将已接收状态的业务报文存储在数据库中,其中数据库中存储有处于不同处理状态的业务报文;重复以下操作,直至对数据库中每一业务报文执行完毕全部处理操作:以轮询的方式从数据库中取出处于同一处理状态的多个业务报文,根据取出的多个业务报文对应的处理状态,确定待执行的处理操作;根据待执行的处理操作,处理取出的多个业务报文,得到多个经过处理的业务报文;更新多个经过处理的业务报文的处理状态,将更新处理状态的多个经过处理的业务报文继续存储在数据库中,以待下一次轮询,可以增强业务报文处理的灵活性,提高业务报文的处理效率,减少对业务系统资源的占用,提高业务系统的并发性能。
89.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
90.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
91.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
92.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
93.以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1