一种报文匹配方法及装置与流程

文档序号:12493577阅读:279来源:国知局
一种报文匹配方法及装置与流程

本发明属于网络通信技术领域,尤其涉及一种报文匹配方法及装置。



背景技术:

在金融领域的双工网络传输系统中,请求报文和返回报文使用两个独立的网络通道进行传输,并且在报文中,没有明显的用于将返回报文与请求报文相匹配的信息。针对此类系统,测试人员在进行功能测试时,首先需要对系统中的请求报文和返回报文进行匹配,才能在测试过程中实现对生产业务场景的仿真。然而,因报文中缺少明显的匹配信息,所以此类系统的请求报文与返回报文的匹配一直是业界的难题。

目前业界已有的解决方案主要是依靠人工从海量报文中,逐条识别、匹配请求报文与返回报文。该方案人力成本高,且匹配效率低。现有技术中,也有通过修改源代码的方式,在应用源代码中插入生成报文标识的代码,使得报文中携带报文标识信息,通过对比报文标识信息,自动匹配请求报文和返回报文。但是,修改应用源代码会增加单个报文的数据量,降低传输效率。



技术实现要素:

基于上述现有技术的缺陷和不足,本发明提出一种报文匹配方法及装置,能够在不对应用源代码进行修改,保证传输效率的前提下,自动完成对请求报文与返回报文的匹配工作。

一种报文匹配方法,包括:

分别获取设定时间段内的请求报文数据包和返回报文数据包;

对于所述请求报文数据包中的任意一条请求报文,利用与所述请求报文相对应的时间窗口,从所述返回报文数据包中选出与所述请求报文相对应的返回报文集;

从与所述请求报文相对应的返回报文集中,查找与所述请求报文的交易类型相同的返回报文,组成第二返回报文集;

通过将所述请求报文的交易关键字段,与所述请求报文对应的第二返回报文集中的每一条返回报文的交易关键字段进行比对,获得与所述请求报文相匹配的返回报文。

优选地,所述分别获取设定时间段内的请求报文数据包和返回报文数据包,包括:

分别从请求报文网络通道上抓取设定时间段内的请求报文数据包,以及从返回报文网络通道上抓取设定时间段内的返回报文数据包。

优选地,所述分别从请求报文网络通道上抓取设定时间段内的请求报文数据包,以及从返回报文网络通道上抓取设定时间段内的返回报文数据包之后,该方法还包括:

分别判断抓取得到的所述请求报文数据包和所述返回报文数据包是否为空;

如果所述请求报文数据包为空,或所述返回报文数据报为空,则重复分别从请求报文网络通道上抓取设定时间段内的请求报文数据包,以及从返回报文网络通道上抓取设定时间段内的返回报文数据包,直到抓取得到的请求报文数据包和返回报文数据包都不为空。

优选地,所述从与所述请求报文相对应的返回报文集中,查找与所述请求报文的交易类型相同的返回报文,组成第二返回报文集,包括:

对与所述请求报文相对应的返回报文集中的每一条返回报文,分别提取能够唯一标识所述返回报文的交易类型的交易类型标识信息;

分别将所述返回报文集中的每一条返回报文的交易类型标识信息,输入哈希算法,计算得到所述每一条返回报文的指纹信息;

识别所述请求报文的交易类型;

将与所述请求报文的交易类型相对应的预期返回报文的指纹信息,分别与所述返回报文集中的每一条返回报文的指纹信息进行比对,找出指纹信息与所述请求报文的交易类型对应的预期返回报文的指纹信息相同的返回报文,组成第二返回报文集。

优选地,在利用与所述请求报文相对应的时间窗口,从所述返回报文数据包中选出与所述请求报文相对应的返回报文集之后,该方法还包括:

判断所述返回报文集是否为空;

如果所述返回报文集为空,则重复执行以下操作设定次数:

放大与所述请求报文相对应的时间窗口,并利用放大后的时间窗口,从所述返回报文数据包中选出与所述请求报文相对应的返回报文集;

判断选出的返回报文集是否为空;

如果在设定的重复次数中的某一次操作中,判断选出的返回报文集不为空,则停止重复执行上述操作;

如果在设定的重复次数内,均判断选出的返回报文集为空,则确认无法得到与所述请求报文相对应的返回报文集,退出报文匹配流程。

优选地,所述从与所述请求报文相对应的返回报文集中,查找与所述请求报文的交易类型相同的返回报文,组成第二返回报文集之后,该方法还包括:

判断所述第二返回报文集是否为空;

如果所述第二返回报文集为空,则重复执行以下操作设定次数:

放大与所述请求报文相对应的时间窗口,利用放大后的时间窗口,从所述返回报文数据包中选出与所述请求报文相对应的返回报文集;

从与所述请求报文相对应的返回报文集中,查找与所述请求报文的交易类型相同的返回报文,组成第二返回报文集;

判断组成的第二返回报文集是否为空;

如果在设定的重复次数中的某一次操作中,判断组成的第二返回报文集不为空,则停止重复执行上述操作;

如果在设定的重复次数内,均判断组成的第二返回报文集为空,则确认无法得到与所述任意一组请求报文对应的第二返回报文集,退出报文匹配流程。

优选地,所述通过将所述请求报文的交易关键字段,与所述请求报文对应的第二返回报文集中的每一条返回报文的交易关键字段进行比对,获得与所述请求报文相匹配的返回报文之后,该方法还包括:

判断是否已获得与所述请求报文相匹配的返回报文;

如果没有获得与所述请求报文相匹配的返回报文,则重复执行以下操作设定次数:

放大与所述请求报文相对应的时间窗口,利用放大后的时间窗口,从所述返回报文数据包中选出与所述请求报文相对应的返回报文集;

从与所述请求报文相对应的返回报文集中,查找与所述请求报文的交易类型相同的返回报文,组成第二返回报文集;

通过将所述请求报文的交易关键字段,与所述请求报文对应的第二返回报文集中的每一条返回报文的交易关键字段进行比对,获得与所述请求报文相匹配的返回报文;

判断是否已获得与所述请求报文相匹配的返回报文;

如果在设定的重复次数中的某一次操作中,判断已获得与所述请求报文相匹配的返回报文,则停止重复执行上述操作;

如果在设定的重复次数内,均判断没有获得与所述请求报文相匹配的返回报文,则确认无法获得与所述请求报文相匹配的返回报文。

优选地,在判断已获得与所述请求报文相匹配的返回报文后,该方法还包括:

判断与所述请求报文相匹配的返回报文是否唯一;

如果与所述请求报文相匹配的返回报文不唯一,则通过人工识别,获得与所述请求报文相匹配的唯一的返回报文。

一种报文匹配装置,包括:

获取单元,用于分别获取设定时间段内的请求报文数据包和返回报文数据包;

筛选单元,用于对于所述请求报文数据包中的任意一条请求报文,利用与所述请求报文相对应的时间窗口,从所述返回报文数据包中选出与所述请求报文相对应的返回报文集;

第二筛选单元,用于从与所述请求报文相对应的返回报文集中,查找与所述请求报文的交易类型相同的返回报文,组成第二返回报文集;

处理单元,用于通过将所述请求报文的交易关键字段,与所述请求报文对应的第二返回报文集中的每一条返回报文的交易关键字段进行比对,获得与所述请求报文相匹配的返回报文。

优选地,所述获取单元分别获取设定时间段内的请求报文数据包和返回报文数据包时,具体用于:

分别从请求报文网络通道上抓取设定时间段内的请求报文数据包,以及从返回报文网络通道上抓取设定时间段内的返回报文数据包。

优选地,所述获取单元分别从请求报文网络通道上抓取设定时间段内的请求报文数据包,以及从返回报文网络通道上抓取设定时间段内的返回报文数据包之后,还用于:

分别判断抓取得到的所述请求报文数据包和所述返回报文数据包是否为空;

如果所述请求报文数据包为空,或所述返回报文数据报为空,则重复分别从请求报文网络通道上抓取设定时间段内的请求报文数据包,以及从返回报文网络通道上抓取设定时间段内的返回报文数据包,直到抓取得到的请求报文数据包和返回报文数据包都不为空。

优选地,所述第二筛选单元,包括:

信息提取单元,用于对与所述请求报文相对应的返回报文集中的每一条返回报文,分别提取能够唯一标识所述返回报文的交易类型的交易类型标识信息;

计算单元,用于分别将所述返回报文集中的每一条返回报文的交易类型标识信息,输入哈希算法,计算得到所述每一条返回报文的指纹信息;

识别单元,用于识别所述请求报文的交易类型;

第三筛选单元,用于将与所述请求报文的交易类型相对应的预期返回报文的指纹信息,分别与所述返回报文集中的每一条返回报文的指纹信息进行比对,找出指纹信息与所述请求报文的交易类型对应的预期返回报文的指纹信息相同的返回报文,组成第二返回报文集。

优选地,所述装置还包括:

第一判断处理单元,用于在所述筛选单元利用与所述请求报文相对应的时间窗口,从所述返回报文数据包中选出与所述请求报文相对应的返回报文集之后,判断所述返回报文集是否为空;

如果所述返回报文集为空,则重复执行以下操作设定次数:

放大与所述请求报文相对应的时间窗口,并调用所述筛选单元利用放大后的时间窗口,从所述返回报文数据包中选出与所述请求报文相对应的返回报文集;

判断选出的返回报文集是否为空;

如果在设定的重复次数中的某一次操作中,判断选出的返回报文集不为空,则停止重复执行上述操作;

如果在设定的重复次数内,均判断选出的返回报文集为空,则确认无法得到与所述请求报文相对应的返回报文集,退出报文匹配流程。

优选地,所述装置还包括:

第二判断处理单元,用于在所述第二筛选单元从与所述请求报文相对应的返回报文集中,查找与所述请求报文的交易类型相同的返回报文,组成第二返回报文集之后,判断所述第二返回报文集是否为空;

如果所述第二返回报文集为空,则重复执行以下操作设定次数:

放大与所述请求报文相对应的时间窗口,并调用所述筛选单元利用放大后的时间窗口,从所述返回报文数据包中选出与所述请求报文相对应的返回报文集;以使所述第二筛选单元从与所述请求报文相对应的返回报文集中,查找与所述请求报文的交易类型相同的返回报文,组成第二返回报文集;

判断组成的第二返回报文集是否为空;

如果在设定的重复次数中的某一次操作中,判断组成的第二返回报文集不为空,则停止重复执行上述操作;

如果在设定的重复次数内,均判断组成的第二返回报文集为空,则确认无法得到与所述任意一组请求报文对应的第二返回报文集,退出报文匹配流程。

优选地,所述装置还包括:

第三判断处理单元,用于在所述处理单元通过将所述请求报文的交易关键字段,与所述请求报文对应的第二返回报文集中的每一条返回报文的交易关键字段进行比对,获得与所述请求报文相匹配的返回报文之后,判断是否已获得与所述请求报文相匹配的返回报文;

如果没有获得与所述请求报文相匹配的返回报文,则重复执行以下操作设定次数:

放大与所述请求报文相对应的时间窗口,并调用所述筛选单元利用放大后的时间窗口,从所述返回报文数据包中选出与所述请求报文相对应的返回报文集;以使所述第二筛选单元从与所述请求报文相对应的返回报文集中,查找与所述请求报文的交易类型相同的返回报文,组成第二返回报文集;进一步地,使所述处理单元通过将所述请求报文的交易关键字段,与所述请求报文对应的第二返回报文集中的每一条返回报文的交易关键字段进行比对,获得与所述请求报文相匹配的返回报文;

判断是否已获得与所述请求报文相匹配的返回报文;

如果在设定的重复次数中的某一次操作中,判断已获得与所述请求报文相匹配的返回报文,则停止重复执行上述操作;

如果在设定的重复次数内,均判断没有获得与所述请求报文相匹配的返回报文,则确认无法获得与所述请求报文相匹配的返回报文。

优选地,所述装置还包括:

第四判断处理单元,在所述第三判断处理单元判断已获得与所述请求报文相匹配的返回报文后,判断与所述请求报文相匹配的返回报文是否唯一;

如果与所述请求报文相匹配的返回报文不唯一,则将与所述请求报文相匹配的所有返回报文进行显示,以便通过人工识别,获得与所述请求报文相匹配的唯一的返回报文。

本发明提出的报文匹配方法,首先分别获取设定时间段内的请求报文数据包和返回报文数据包;对于所述请求报文数据包中的任意一条请求报文,利用与所述请求报文相对应的时间窗口,从所述返回报文数据包中选出与所述请求报文相对应的返回报文集;然后从与所述请求报文相对应的返回报文集中,查找与所述请求报文的交易类型相同的返回报文,组成第二返回报文集;最后通过将所述请求报文的交易关键字段,与所述请求报文对应的第二返回报文集中的每一条返回报文的交易关键字段进行比对,获得与所述请求报文相匹配的返回报文。本发明技术方案,不需要对应用源代码进行修改,在保证传输效率的前提下,能够自动完成对请求报文与返回报文的匹配工作。

附图说明

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

图1是本发明实施例提供的一种报文匹配方法的流程示意图;

图2是本发明实施例提供的一种报文匹配装置的结构示意图;

图3是本发明实施例提供的另一种报文匹配装置的结构示意图。

具体实施方式

在金融领域中,有部分交易系统使用双工网络传输协议,如Tuxedo协议。这类系统的请求报文和返回报文使用两个独立的网络通道进行传输,并且在报文中,没有明显用于将返回报文与请求报文相匹配的配对信息,如交易码等。针对此类系统,测试人员在进行功能测试时,需要首先对系统中的请求报文与返回报文进行匹配,才能在测试回放过程中实现对生产业务场景的仿真。然而,因为此类系统中的报文中没有明显的用于匹配请求报文与返回报文的配对信息,所以此类系统的请求报文与返回报文的匹配一直是业界难题。

在现有技术中,业界通常依靠人工在系统海量报文中进行逐条识别,并匹配请求报文与返回报文。但是依靠人工的匹配方法人力成本高,且匹配效率低。

为了解决上述问题,在现有技术中,技术人员在应用源代码中插入生成报文标识的代码,使得系统中的报文携带标识该报文的标识信息。通过匹配请求报文与返回报文的标识信息,将请求报文与返回报文进行匹配。但是,在应用源代码中插入代码,会增加单个报文的数据量,降低传输效率,影响交易性能。

为了解决上述现有技术的缺陷和不足,本发明实施例提供了一种报文匹配方法及装置,能够在不用修改应用源代码,不影响传输效率的前提下,自动完成对请求报文与返回报文的匹配。

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

本发明实施例提供的报文匹配方法,参见图1所示,包括以下步骤:

S101、通过网络交换机,分别从请求报文网络通道上抓取设定时间段内的请求报文数据包,以及从返回报文网络通道上抓取相同的设定时间段内的返回报文数据包;

在金融领域中,有部分交易系统使用双工网络传输协议,如Tuxedo协议。这类系统的请求报文和返回报文使用两个独立的网络通道进行传输,所述两个独立的网络通道根据所传输的报文类型不同,分为传输请求报文的请求报文网络通道和传输返回报文的返回报文网络通道。两个网络通道通过同一个网络交换机进行数据报文的转发,在所述网络交换机上,从两个网络通道上抓取相同的设定时间段内的数据包,例如,抓取几天、几周或几个月的数据包。

S102、分别判断抓取的数据包是否为空,如果抓取的请求报文数据包为空或返回报文数据包为空,则重复分别从请求报文网络通道上抓取请求报文数据包,以及从返回报文网络通道上抓取返回报文数据包,并分别判断抓取的数据包是否为空,直到判断抓取到的数据包均为非空为止;

系统发送请求报文及返回报文是随机进行的,因此,网络交换机抓取数据包时,可能由于偶然因素,导致网络交换机抓取不到数据包。基于上述情况,在本发明实施例中,网络交换机执行抓取数据包动作后,判断抓取到的数据包是否为空,如果抓取到的数据包为空,则重复抓取数据包,直到抓取到的数据包为非空为止。

S103、对于所述请求报文数据包中的任意一条请求报文,利用与所述请求报文相对应的时间窗口,从所述返回报文数据包中选出与所述请求报文相对应的返回报文集;

对于每一次交易过程,从系统发送请求报文,到接收到返回报文,中间会间隔一段响应时间。具体对于一组请求报文或一条请求报文,与其相对应的返回报文,一定在发出该组请求报文或该条请求报文的时刻,到经过最长响应时间之后的时刻之间的时间窗口内出现。因此,对于一组请求报文或一条请求报文,利用与其相对应的时间窗口,对返回报文数据包中的返回报文进行过滤,滤除不在所述时间窗口范围内的返回报文,即可从所抓取的返回报文中,选出一个与该组请求报文或该条请求报文相对应的返回报文集。

例如,假设本发明实施例定义交易的一组请求报文为Qj(j表示不同交易类型,j>=1),Qj的发送时间为T0,交易最长响应时间为T。则与该组请求报文对应的返回报文必出现在[T0,T]时间窗口内。将海量返回报文按[T0,T]时间窗口进行过滤,即可选出一个返回报文集P。对于每一组请求报文或每一条请求报文,按照上述方法,均可选出相对应的返回报文集。

需要说明的是,本发明实施例在执行步骤S101,分别从请求报文网络通道和返回报文网络通道上抓取数据包后,会得到多条请求报文和返回报文。此时,在执行步骤S103时,针对抓取得到的每一组请求报文或每一条请求报文,分别利用时间窗口选出与之相对应的返回报文集。具体的选出顺序,可以从多组请求报文中,按照先后顺序,分别选取每一组请求报文或每一条请求报文对应的返回报文集;也可以按照实际需要,指定特定的顺序,为多组请求报文中的每一组请求报文或每一条请求报文,分别选出与之相对应的返回报文集;显而易见的,还可以同时为多组请求报文或多条请求报文,选出相对应的返回报文集。本发明实施例仅提出利用时间窗口为请求报文选出与之相对应的返回报文集,对具体的选出形式不做限定,任何可用的选出形式都可以被本发明实施例采用。

进一步的,针对每一组请求报文或每一条请求报文,在选出与之相对应的返回报文集后,分别继续执行后续处理步骤,找到与之相对应的返回报文,直到为所有的请求报文,都找到与之相对应的返回报文为止。

S104、判断为所述请求报文选出的返回报文集是否为空,如果选出的返回报文集为空,则重复执行以下操作设定次数:放大时间窗口,利用放大后的时间窗口,从抓取得到的返回报文中,选出与请求报文相对应的返回报文集;判断选出的返回报文集是否为空,如果在设定的重复次数中的某一次操作中,判断选出的返回报文集不为空,则停止重复执行上述操作;如果在设定的重复次数内,均判断选出的返回报文集为空,则确认无法得到与所述请求报文相对应的返回报文集,退出报文匹配流程;

由于网络通信质量等非确定因素影响,与某一组请求报文或某一条请求报文对应的返回报文,可能未在预期的响应时间内返回,而是延后一段时间才能返回,这就导致按照预期的时间窗口,不能选出与请求报文相对应的返回报文集,即选出的返回报文集为空。如果选出的返回报文集为空,本发明实施例首先将用于选出返回报文集的时间窗口放大,使得选择范围扩大,然后利用放大的时间窗口,重新从抓取得到的返回报文中,选出与请求报文相对应的返回报文集。进一步的,再次判断选出的返回报文集是否为空,如果选出的返回报文集依然为空,则再次放大时间窗口,并利用放大后的时间窗口,选出与请求报文相对应的返回报文集,如果在设定的重复次数中的某一次操作中,判断选出的返回报文集不为空,则停止重复执行上述操作;如果重复执行上述操作设定次数,选出的返回报文集皆为空,则可以确认无法得到与所述请求报文相对应的返回报文集,退出报文匹配流程。

例如,假设定义交易的一组请求报文为Qj(j表示不同交易类型,j>=1),Qj的发送时间为T0,交易最长响应时间为T。则与该组请求报文对应的返回报文应当出现在[T0,T]时间窗口内。将海量返回报文按[T0,T]时间窗口进行过滤,选出一个返回报文集P,如果选出的返回报文集P为空,则重复放大时间窗口为[T0,(1+n)T],并利用时间窗口[T0,(1+n)T]再次从返回报文中选出返回报文集。其中,n为正整数,表示重复放大时间窗口的次数。

S105、对与所述请求报文相对应的返回报文集中的每一条返回报文,分别提取能够唯一标识所述返回报文的交易类型的交易类型标识信息;

在金融系统中,每一组返回报文或每一条返回报文,都对应着一种类型的交易,例如:存款交易、取款交易、转账交易等。对于不同类型的交易,与其请求报文相对应的返回报文中,可以提取得到能够唯一标识该类型交易的信息,即交易类型标识信息。所述能够唯一标识该类型交易的信息,能够用来区分返回报文所对应的交易类型,本发明实施例从返回报文集中的返回报文中,分别提取能够唯一标识该返回报文对应的交易类型的信息,以期通过唯一标识报文的交易类型的信息,对返回报文及请求报文进行类型匹配。

S106、分别将所述返回报文集中的每一条返回报文的交易类型标识信息,输入哈希算法,计算得到所述每一条返回报文的指纹信息;

通常情况下,步骤S105从返回报文中提取得到的交易类型标识信息,是一个字符串,直接通过字符串对比,对请求报文和返回报文进行类型匹配,工作量大且效率低下。本发明实施例在得到返回报文的交易类型标识信息后,将返回报文的标识信息输入哈希算法,计算得到一个哈希值,将该哈希值作为返回报文的指纹信息。所述指纹信息即为一个数值,通过对比返回报文与请求报文的指纹信息,可以快速的对返回报文和请求报文进行类型匹配。

以XML报文和8583报文这两类金融通用交易报文为例说明。对于XML报文,提取报文中全部标签并排序成一个字符串,作为XML报文的交易类型标识信息。把该字符串输入哈希算法,得到一个哈希值,即为报文的指纹信息。对于8583报文,提取全部报文标识位信息并组成一个字符串,作为8583报文的交易类型标识信息,把该字符串输入哈希算法,得到一个哈希值,即为报文的指纹信息。

S107、识别所述请求报文的交易类型;

S108、将与所述请求报文的交易类型相对应的预期返回报文的指纹信息,分别与所述返回报文集中的每一条返回报文的指纹信息进行比对,找出指纹信息与所述请求报文的交易类型对应的预期返回报文的指纹信息相同的返回报文,组成第二返回报文集;

在执行本发明实施例技术方案的软件系统中,保存有预先计算好的,与请求报文的交易类型相对应的预期的返回报文格式模板,并根据所述预期的返回报文格式模板,利用哈希算法计算得到了所述预期的返回报文的指纹信息。

本发明实施例在识别得到所述请求报文的交易类型后,直接从数据库中调用与所述交易类型相对应的预期的返回报文的指纹信息。将所述预期的返回报文的指纹信息,分别与步骤S106中计算得到的返回报文集中的返回报文的指纹信息进行对比,将指纹信息与所述预期的返回报文的指纹信息相同的返回报文,组成一个新的返回报文集,称为第二返回报文集。在所述第二返回报文集中,所有返回报文的指纹信息与所述预期的返回报文的指纹信息相同,因此,所述第二返回报文集中的返回报文,与所述请求报文的交易类型匹配。也就是说,截止步骤S108,本发明实施例进一步地从返回报文集中,选出了交易类型与请求报文相匹配的返回报文。

需要说明的是,本发明实施例从返回报文中提取交易类型标识信息,并经过哈希算法计算得到返回报文的指纹信息,通过将返回报文的指纹信息,与预期的与请求报文相对应的返回报文的指纹信息进行对比,旨在通过对比从返回报文集中,找出与请求报文交易类型相匹配的返回报文。理论上,通过对比任意的能够标识报文交易类型的信息,都能够从返回报文集中,找出与请求报文交易类型相匹配的返回报文。本发明实施例所述方法,仅是实践中最便利,也是最常用的方法。本发明实施例对进行对比所用的信息不做限定,同样的,对信息的处理以及对比方法也不做限定,任何能够通过对比找到与请求报文交易类型相匹配的返回报文的信息、信息处理方法及对比方法,都在本发明实施例保护范围内。

S109、判断所述第二返回报文集是否为空,如果所述第二返回报文集为空,则重复进行以下操作设定次数:放大时间窗口,并再次执行步骤S103~S109,如果在设定的重复次数中的某一次操作中,判断组成的第二返回报文集不为空,则停止重复执行上述操作;如果在设定的重复次数内,均判断组成的第二返回报文集为空,则确认无法得到与所述请求报文对应的第二返回报文集,退出报文匹配流程;

第二返回报文集为空,说明没有从返回报文集中,找到与请求报文交易类型相匹配的返回报文。此时,本发明实施例增加返回报文集包含的返回报文的数量,以期能够从返回报文集中,找到与请求报文交易类型相匹配的返回报文。具体做法是,放大用于选出返回报文集的时间窗口,使选出的返回报文集包含的返回报文的数量更多。然后,再次执行步骤S103~S109,并判断从返回报文集中找到的第二返回报文集是否为空,如果第二返回报文集还是为空,则再次放大时间窗口,并执行步骤S103~S109……如果在设定次数内的某一次放大时间窗口,并执行步骤S103~S109的过程中,判断选出的第二返回报文集不为空,则停止重复执行上述操作;如果经过设定次数的重复执行上述操作,依然判断选出的第二返回报文集为空,则可以确认无法得到与所述请求报文相对应的第二返回报文集,退出报文匹配流程。

S110、通过将所述请求报文的交易关键字段,与所述请求报文对应的第二返回报文集中的每一条返回报文的交易关键字段进行比对,获得与所述请求报文相匹配的返回报文;

在请求报文与返回报文中,分别携带交易关键字段,例如卡号、客户编号、身份证号等。对于某一次交易过程,其请求报文与返回报文的交易关键字段一定相同。基于上述原理,由于本发明实施例之前的处理步骤,已经从大量的返回报文中,找到与请求报文相对应的时间窗口内的,与请求报文交易类型相匹配的返回报文,并组成第二返回报文集。因此,在本步骤中,再从第二返回报文集中,找到与请求报文的交易关键字段相同的返回报文,即是与请求报文相对应的返回报文。进一步的,对于一组请求报文,将该组请求报文中每一支请求报文与第二返回报文集中的返回报文分别进行交易关键字匹配,可以分别得到与该组请求报文中的每一条请求报文相对应的返回报文。

S111、判断是否已获得与所述请求报文相匹配的返回报文,如果没有获得与所述请求报文相匹配的返回报文,则重复进行以下操作设定次数:放大时间窗口,并再次执行步骤S103~S111,如果在设定的重复次数中的某一次操作中,判断已获得与所述请求报文相匹配的返回报文,则停止重复执行上述操作;如果在设定的重复次数内,均判断没有获得与所述请求报文相匹配的返回报文,则确认无法获得与所述请求报文相匹配的返回报文,退出报文匹配流程;

如果没有找到与请求报文相匹配的返回报文,则本发明实施例增加返回报文集包含的返回报文的数量,以期能够从返回报文集中,找到与请求报文相匹配的返回报文。具体做法是,放大用于选出返回报文集的时间窗口,使选出的返回报文集包含的返回报文的数量更多。然后,再次执行步骤S103~S111,并判断是否找到与请求报文相匹配的返回报文,如果还是没有找到与请求报文相匹配的返回报文,则再次放大时间窗口,并执行步骤S103~S111……如果在设定次数内的某一次放大时间窗口,并执行步骤S103~S111的过程中,判断已获得与所述请求报文相匹配的返回报文,则停止重复执行上述操作;如果经过设定次数的重复执行上述操作,依然判断没有获得与所述请求报文相匹配的返回报文,则可以确认无法匹配得到与所述请求报文相匹配的返回报文,退出报文匹配流程。

S112、判断与所述请求报文相匹配的返回报文是否唯一,如果与所述请求报文相匹配的返回报文不唯一,则通过人工识别,获得与所述请求报文相匹配的唯一的返回报文。

在每一次交易过程中,每一条请求报文,都唯一对应一条返回报文。如果经过执行本发明实施例技术方案,找到与请求报文相匹配的唯一的返回报文,则说明找到了正确的与请求报文相匹配的返回报文。如果针对一条请求报文,经过执行本发明实施例技术方案,找到了多条与所述请求报文相匹配的返回报文,则说明有多条返回报文与所述请求报文的特征极其相似,此时,利用本发明实施例技术方案,不能找到唯一的与该请求报文相匹配的返回报文,只能依靠人工识别,根据报文全貌信息,识别与该请求报文相匹配的唯一的返回报文。

需要说明的是,经过实验数据,仅有0.01%的请求报文在利用本发明实施例技术方案匹配返回报文后,需要进一步依靠人工进行识别匹配。也就是说,本发明实施例技术方案,具有较高的识别准确度。

从上述过程可以看出,本发明实施例中,首先利用时间窗口从返回报文中选出与请求报文相对应的返回报文集;然后从返回报文集中,选出交易类型与请求报文相匹配的返回报文,组成第二返回报文集;最后,通过交易关键字段,从第二返回报文集中,选出与请求报文匹配的返回报文。本发明实施例,不需要对应用源代码进行修改,就可以自动完成对请求报文与返回报文的匹配。

图2为一种报文匹配装置的结构示意图,包括获取单元201、筛选单元202、第二筛选单元203及处理单元204。其中,获取单元201用于分别获取设定时间段内的请求报文数据包和返回报文数据包;筛选单元202,用于对于所述请求报文数据包中的任意一条请求报文,利用与所述请求报文相对应的时间窗口,从所述返回报文数据包中选出与所述请求报文相对应的返回报文集;第二筛选单元203,用于从与所述请求报文相对应的返回报文集中,查找与所述请求报文的交易类型相同的返回报文,组成第二返回报文集;处理单元204,用于通过将所述请求报文的交易关键字段,与所述请求报文对应的第二返回报文集中的每一条返回报文的交易关键字段进行比对,获得与所述请求报文相匹配的返回报文。

图3为另一种报文匹配装置的结构示意图,其第二筛选单元203包括信息提取单元2031、计算单元2032、识别单元2033及第三筛选单元2034。其中,信息提取单元2031用于对与所述请求报文相对应的返回报文集中的每一条返回报文,分别提取能够唯一标识所述返回报文的交易类型的交易类型标识信息;计算单元2032,用于分别将所述返回报文集中的每一条返回报文的交易类型标识信息,输入哈希算法,计算得到所述每一条返回报文的指纹信息;识别单元2033,用于识别所述请求报文的交易类型;第三筛选单元2034,用于将与所述请求报文的交易类型相对应的预期返回报文的指纹信息,分别与所述返回报文集中的每一条返回报文的指纹信息进行比对,找出指纹信息与所述请求报文的交易类型对应的预期返回报文的指纹信息相同的返回报文,组成第二返回报文集。

图2及图3中所示的报文匹配装置的各个单元的具体工作内容,请参见对应的方法实施例的内容,此处不再赘述。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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