一种检测IMIX消息的方法、装置及电子设备与流程

文档序号:18197510发布日期:2019-07-17 05:56阅读:331来源:国知局
一种检测IMIX消息的方法、装置及电子设备与流程

本发明涉及通信技术领域,尤其涉及一种检测imix消息的方法、装置及电子设备。



背景技术:

随着银行市场的发展,采用银行间市场业务数据交换(inter-bankmarketinformationexchange,imix)协议实现银行间市场交易活动中交易中心与外部机构间的数据传输,需要传输的数据为imix消息,由于银行间市场交易系统的正常工作需要依赖于接口的正确性和一致性,因此测试人员需要对所述imix消息进行比对,发现错误反馈给研发人员,研发人员进一步完善接口的正确性和一致性。

在现有技术中,imix消息为日志中的字符串,测试人员在检测imix消息时,通过人工的方式比对imix消息和开发指引表格中对imix标准定义的描述来判断imix消息是否符合标准,效率低且准确性低。

综上所述,如何提高imix消息的检测效率和准确性,是目前需要解决的问题。



技术实现要素:

有鉴于此,本发明提供了一种检测imix消息的方法、装置及电子设备,用于解决现有技术中判如何提高imix消息的检测效率和准确性的问题。

根据本发明实施例的第一个方面,提供了一种检测imix消息的方法,包括:将银行间市场业务数据交换imix消息转换为设定格式的imix报文;将所述imix报文与imix标准报文进行比对,确定比对结果;输出所述比对结果。

在一个实施例中,将所述imix报文与imix标准报文进行比对,确定比对结果,具体包括:将所述imix报文与根据imix标准定义表格按照所述设定格式转换确定的所述imix标准报文进行比对,确定比对结果。

在一个实施例中,所述设定格式为可扩展标记语言xml格式。

在一个实施例中,所述将银行间市场业务数据交换imix消息转换为设定格式的imix报文之前,该方法还包括:在日志中获取所述imix消息。

在一个实施例中,所述将所述imix报文与根据imix标准定义表格按照所述设定格式转换确定的所述imix标准报文进行比对,确定比对结果,具体包括:采用设定方法检测所述imix报文中的消息头、消息体和消息尾,确定检测结果;将所述检测结果与所述imix标准报文进行比对,确定比对结果。

在一个实施例中,所述设定方法为遍历域的方法。

根据本发明实施例的第二个方面,提供了一种检测imix消息的装置,包括:转换单元,用于将银行间市场业务数据交换imix消息转换为设定格式的imix报文;比对单元,用于将所述imix报文与imix标准报文进行比对,确定比对结果;输出单元,用于输出所述比对结果。

在一个实施例中,所述比对单元具体用于:将所述imix报文与根据imix标准定义表格按照所述设定格式转换确定的所述imix标准报文进行比对,确定比对结果。

在一个实施例中,所述设定格式为可扩展标记语言xml格式。

在一个实施例中,所述装置还包括:获取单元,用于在日志中获取所述imix消息。

在一个实施例中,所述比对单元具体用于:采用设定方法检测所述imix报文中的消息头、消息体和消息尾,确定检测结果;将所述检测结果与所述imix标准报文进行比对,确定比对结果。

在一个实施例中,所述设定方法为遍历域的方法。

根据本发明实施例的第三个方面,提供了一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如第一方面或第一方面任一种可能所述的方法。

根据本发明实施例的第四个方面,提供了一种计算机可读存储介质,其上存储计算机程序指令,其特征在于,所述计算机程序指令在被处理器执行时实现如第一方面或第一方面任一种可能所述的方法。

本发明实施例的有益效果包括:首先将银行间市场业务数据交换imix消息转换为设定格式的imix报文,然后将所述imix报文与imix标准报文进行比对,确定比对结果,其中,所述imix标准报文为imix标准定义表格按照所述设定格式转换确定的,最后输出所述比对结果。采用本发明实施例所述的方式可以自动生成imix消息的比对结果,在判断imix消息是否符合标准时,提高了判断的效率和准确性。

附图说明

通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:

图1是本发明实施例提供的一种检测imix消息的方法流程图;

图2是本发明实施例提供的一种检测imix消息的方法流程图;

图3是本发明实施例提供的一种检测imix消息的装置示意图;

图4是本发明实施例提供的一种电子设备结构示意图。

具体实施方式

以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本申请。此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的。

除非上下文明确要求,否则整个说明书和权利要求书中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。

在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,不代表顺序,也不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。

本发明提供的一种检测imix消息的方法,具体如图1所示,包括:

步骤s100、将银行间市场业务数据交换imix消息转换为设定格式的imix报文。

其中,所述imix消息为字符串,所述设定格式为可扩展标记语言xml格式。

具体的,将字符串形式的imix消息转换为xml格式的imix报文,所述imix报文可以根据业务种类的不同分为不同的imix业务报文。

举例说明1:采用报文(message)标签定义一个xml格式的imix报文,具体如下:

其中,上述name属性表示报文名,version属性表示保存报文的版本,meta标签对该imix报文进行补充说明,例如,表示其所属系统、使用imix协议版本等内容,message标签下定义了消息头(header)、消息体(body)、消息(trailer)标签。

在一个具体实施例中,上述imix报文中,field标签代表域,具体举例如下:

其中,tag(标签)属性定义域号、data-type属性定义数据类型、required(需求)属性表示该域在imix报文中是否必需、accuracy(精度)标签是对data-type属性的补充,表示该域数据类型的精度,具体的,在imix报文与imix标准报文进行比对时,会结合data-type属性对报文该域的实际内容进行数据类型的校验、example-value(例子-值)标签保存该域的参考值、description(说明)标签保存该域的说明、rule(规则)标签定义对该域的补充规则校验,例如,rule包括固定值(fixed)和枚举值(enum)两种、param(参数)。

在一个具体实施例中,上述imix报文中,repeating-group标签代表重复组,具体举例如下:

其中,tag(标签)属性定义域号,例如“552”域的域号、required(需求)属性表示该重复组在imix报文中是否必需、group-template(组模版)标签定义组模版、name(名称)属性表示组模版的名称、min-occurs(最小出现)和max-occurs(最大出现)属性定义了该模版的数据在重复组中能够出现的次数,key(关键)-tag-value(值)标签定义了该模版对应关键域的取值、default(默认值)标签标识该模版是这个重复组的默认模版,即所有的已定义的关键域取值之外所使用的模版、key-tag标签定义本重复组的关键域。

可选的,对于重复组内数据,可以定义多个组模版,每个组模版可以单独定义其内容,模版之间使用关键域来进行区分。

步骤s101、将所述imix报文与imix标准报文进行比对,确定比对结果。

具体的,将所述imix报文与根据imix标准定义表格按照所述设定格式转换确定的所述imix标准报文进行比对,确定比对结果。

其中,所述imix标准定义表格即开发指引表格,通过所述开发指引表格中对imix标准定义的描述来判断imix消息是否符合标准,所述开发指引表格如表1所示:

表1

可选的,所述表1仅仅是一个示例性的表格,具体应用中开发指引表格中还包括其他内容,不同的业务对应的表格也不相同,具体根据使用情况确定,本发明对其不做限定。

具体的,将上述imix标准定义表格转换为xml格式的imix标准报文,根据所述imix标准报文采用遍历域的方法检测所述imix报文中的消息头、消息体和消息尾,确定检测结果;将所述检测结果与所述imix标准报文进行比对,确定比对结果,具体的比对流程如下文具体实施例所述。

举例说明2:xml格式的imix标准报文与举例说明1中的报文相似,根据开发指引表格生成imix标准报文,然后与举例说明1中的报文进行比对。

步骤s102、输出所述比对结果。

举例说明,比对结果可以如表2所示,假设比对两条imix消息转换成的两条imix报文,具体结果如下:

表2

本发明实施例中,首先将银行间市场业务数据交换imix消息转换为设定格式的imix报文,然后将所述imix报文与imix标准报文进行比对,确定比对结果,其中,所述imix标准报文为imix标准定义表格按照所述设定格式转换确定的,最后输出所述比对结果。采用本发明实施例所述的方式可以自动生成imix消息的比对结果,在判断imix消息是否符合标准时,提高了判断的效率和准确性。

可选的,在所述步骤s100之前,该方法还包括:在日志中获取所述imix消息。

下面通过一个具体实施例,对本发明步骤s101中imix报文与imix标准报文进行比对,进行详细的说明,具体流程如图2所示,具体包括:

步骤s200、确定检查imix报文中的消息头。

其中,也可以检查imix报文中的消息体、或者消息尾。

步骤s201、采用遍历域的方法遍历每个域。

步骤s202、检测任一域,若所述任一域为单独的域,则执行步骤s2031、若所述任一域为重复组,则执行步骤s2041、若没有检查到所述任一域,则执行步骤s2051。

步骤s2031、若所述任一域为单独的域,检查该任一域。

步骤s2032判断该任一域是否满足数据类型规则,若不满足,则执行步骤s2033。

具体的,所述数据类型规则(datatyperule)包括数据类型(data-type)和格式/精度(accuracy),具体规则如下:若数据类型是数字,则根据格式x,y进行校验,x表示数字总的最大长度,y表示小数点后面的最大长度;若数据类型是日期,则根据格式来校验,如格式为yyyymmdd-hh:mm:ss,则利用simpledateformat(yyyymmdd-hh:mm:ss)检查;若数据类型是布尔型,则值为y或者n;若数据类型是整数型,则值必须为整数;若定义域为固定值,则域的值必须等于固定值;若定义域为枚举值,则域的值必须为列举的枚举值之一。

步骤s2033、若不满足,则报错,报错的内容为“规则校验失败”。

步骤s2041、若所述任一域为重复组,验证所述任一域。

步骤s2042、判断所述任一域是否为非定义组模板,若是,则执行步骤s2043,若否,执行步骤s2046。

步骤s2043、循环遍历所述非定义组模板。

步骤s2044、根据关键域和关键域值弹出重复组中的每个组。

步骤s2045、验证所述每个组,返回步骤s201。

步骤s2046、判断是否有默认组模板,若是,则执行步骤s2047,若否,则执行步骤s2048。

步骤s2047、获取剩余的组,执行步骤s2045。

步骤s2048、判断是否还有剩余的组,若是,则执行步骤s2049。

步骤s2049、若是,则报错,报错的内容是“重复组的部分数据在报文定义中没有默认模板”

步骤s2051、若没有检测到所述任一域,则报错,报错的内容是“域在报文定义中不存在”。

步骤s206、在步骤s2045之后,判断组模板的数量是否符合定义的数量,若否,则执行步骤s207。

步骤s207、当大于设置的最大次数时,则报错,报错的内容是“模板的组的数量大于定义的最大数量”,当小于设置的最小次数时,则报错,报错的内容是“模板的组的数量小于定义的最小数量”。

图3是本发明实施例提供的一种检测imix消息的装置示意图。如图3所示,本实施例的检测imix消息的装置包括:转换单元31、比对单元32和输出单元33,其中,所述转换单元31,用于将银行间市场业务数据交换imix消息转换为设定格式的imix报文;比对单元32,用于将所述imix报文与imix标准报文进行比对,确定比对结果,其中,所述imix标准报文为imix标准定义表格按照所述设定格式转换确定的;输出单元33,用于输出所述比对结果。

可选的,所述设定格式为可扩展标记语言xml格式。

在一个可能的实施例中,所述装置还包括:获取单元,用于在日志中获取所述imix消息。

可选的,所述比对单元具体用于:采用设定方法检测所述imix报文中的消息头、消息体和消息尾,确定检测结果;将所述检测结果与所述imix标准报文进行比对,确定比对结果。

可选的,所述设定方法为遍历域的方法。

图4是本发明实施例的电子设备的示意图。图4所示的电子设备为通用检测imix消息装置,其包括通用的计算机硬件结构,其至少包括处理器41和存储器42。处理器41和存储器42通过总线43连接。存储器42适于存储处理器41可执行的指令或程序。处理器41可以是独立的微处理器,也可以是一个或者多个微处理器集合。由此,处理器41通过执行存储器42所存储的指令,从而执行如上所述的本发明实施例的方法流程实现对于数据的处理和对于其它装置的控制。总线43将上述多个组件连接在一起,同时将上述组件连接到显示控制器44和显示装置以及输入/输出(i/o)装置45。输入/输出(i/o)装置45可以是鼠标、键盘、调制解调器、网络接口、触控输入装置、体感输入装置、打印机以及本领域公知的其他装置。典型地,输入/输出装置45通过输入/输出(i/o)控制器46与系统相连。

如本领域技术人员将意识到的,本发明实施例的各个方面可以被实现为系统、方法或计算机程序产品。因此,本发明实施例的各个方面可以采取如下形式:完全硬件实施方式、完全软件实施方式(包括固件、常驻软件、微代码等)或者在本文中通常可以都称为“电路”、“模块”或“系统”的将软件方面与硬件方面相结合的实施方式。此外,本发明实施例的各个方面可以采取如下形式:在一个或多个计算机可读介质中实现的计算机程序产品,计算机可读介质具有在其上实现的计算机可读程序代码。

可以利用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是如(但不限于)电子的、磁的、光学的、电磁的、红外的或半导体系统、设备或装置,或者前述的任意适当的组合。计算机可读存储介质的更具体的示例(非穷尽列举)将包括以下各项:具有一根或多根电线的电气连接、便携式计算机软盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪速存储器)、光纤、便携式光盘只读存储器(cd-rom)、光存储装置、磁存储装置或前述的任意适当的组合。在本发明实施例的上下文中,计算机可读存储介质可以为能够包含或存储由指令执行系统、设备或装置使用的程序或结合指令执行系统、设备或装置使用的程序的任意有形介质。

计算机可读信号介质可以包括传播的数据信号,所述传播的数据信号具有在其中如在基带中或作为载波的一部分实现的计算机可读程序代码。这样的传播的信号可以采用多种形式中的任何形式,包括但不限于:电磁的、光学的或其任何适当的组合。计算机可读信号介质可以是以下任意计算机可读介质:不是计算机可读存储介质,并且可以对由指令执行系统、设备或装置使用的或结合指令执行系统、设备或装置使用的程序进行通信、传播或传输。

可以使用包括但不限于无线、有线、光纤电缆、rf等或前述的任意适当组合的任意合适的介质来传送实现在计算机可读介质上的程序代码。

用于执行针对本发明实施例各方面的操作的计算机程序代码可以以一种或多种编程语言的任意组合来编写,所述编程语言包括:面向对象的编程语言如java、smalltalk、c++等;以及常规过程编程语言如“c”编程语言或类似的编程语言。程序代码可以作为独立软件包完全地在用户计算机上、部分地在用户计算机上执行;部分地在用户计算机上且部分地在远程计算机上执行;或者完全地在远程计算机或服务器上执行。在后一种情况下,可以将远程计算机通过包括局域网(lan)或广域网(wan)的任意类型的网络连接至用户计算机,或者可以与外部计算机进行连接(例如通过使用因特网服务供应商的因特网)。

上述根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图图例和/或框图描述了本发明实施例的各个方面。将要理解的是,流程图图例和/或框图的每个块以及流程图图例和/或框图中的块的组合可以由计算机程序指令来实现。这些计算机程序指令可以被提供至通用计算机、专用计算机或其它可编程数据处理设备的处理器,以产生机器,使得(经由计算机或其它可编程数据处理设备的处理器执行的)指令创建用于实现流程图和/或框图块或块中指定的功能/动作的装置。

还可以将这些计算机程序指令存储在可以指导计算机、其它可编程数据处理设备或其它装置以特定方式运行的计算机可读介质中,使得在计算机可读介质中存储的指令产生包括实现在流程图和/或框图块或块中指定的功能/动作的指令的制品。

计算机程序指令还可以被加载至计算机、其它可编程数据处理设备或其它装置上,以使在计算机、其它可编程设备或其它装置上执行一系列可操作步骤来产生计算机实现的过程,使得在计算机或其它可编程设备上执行的指令提供用于实现在流程图和/或框图块或块中指定的功能/动作的过程。

以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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