CN113905106B - 一种报文解析方法、装置、设备及存储介质 - Google Patents

一种报文解析方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN113905106B
CN113905106B CN202111159734.0A CN202111159734A CN113905106B CN 113905106 B CN113905106 B CN 113905106B CN 202111159734 A CN202111159734 A CN 202111159734A CN 113905106 B CN113905106 B CN 113905106B
Authority
CN
China
Prior art keywords
node
message
analyzed
dfa
length
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202111159734.0A
Other languages
English (en)
Other versions
CN113905106A (zh
Inventor
古毅伟
刘巍萍
罗喜为
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Pudong Development Bank Co Ltd
Original Assignee
Shanghai Pudong Development Bank Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Pudong Development Bank Co Ltd filed Critical Shanghai Pudong Development Bank Co Ltd
Priority to CN202111159734.0A priority Critical patent/CN113905106B/zh
Publication of CN113905106A publication Critical patent/CN113905106A/zh
Application granted granted Critical
Publication of CN113905106B publication Critical patent/CN113905106B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明公开了一种报文解析方法、装置、设备及存储介质。该方法包括:获取待解析报文和待解析报文的报文类型;根据所述报文类型确定报文开始标识、报文域参数和转移函数;根据所述报文开始标识、报文域参数和转移函数建立有限自动机DFA有向图;根据DFA有向图对所述待解析报文进行解析。本发明的技术方案,采用了动态规划的方法递归地实现有向图不同状态的转换,能够将报文格式的描述、报文数据内容和解析报文的程序解耦合,使得对报文格式的描述可以以一种类似参数的形式变得可配置,对报文格式的修改不会引起对系统程序代码的大量修改,从而大大增加了可维护性和可扩展性,降低了维护成本。

Description

一种报文解析方法、装置、设备及存储介质
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种报文解析方法、装置、设备及存储介质。
背景技术
在银行业务系统间或业务系统内,常使用不同格式的报文进行通信,这些报文被广泛应用于金融服务领域,并且根据市场的需要仍在不断的发展之中。而现有的报文格式不尽相同,纷繁复杂,业务流程也大相径庭,如国际银行间业务往来的专用报文格式Swift、人民银行二代支付系统所使用的CNPAS2系统报文以及银联银行卡交换系统8583报文等,对这些报文的解析工作也十分重要。目前对于不同的报文进行解析和打包的模块一般都是针对特定的报文来进行的。
对于常用的8583报文解析方案的流程为:①获取报文类型标识符,通过对比ASCALL码表得出其代表的报文类型;②解析位图,包括主位图数据以及第二位图数据,由此得知存在的位置域有哪些;③依照位图信息解析相关的域。
目前的报文解析方法对报文格式的描述通常是内嵌在代码中进行,且不开放接口。这样当某一报文格式出现变动时,就涉及到对相关系统的程序代码进行大幅度的修改,这不仅带来高昂的维护成本,也给银行系统的稳定运行带来了极大的风险。此外,当出现新的类型的报文时,又不得不针对性地开发新的解析/打包模块去解析/打包新的类型的报文。
发明内容
本发明实施例提供一种报文解析方法、装置、设备及存储介质,提升了可维护性、复用性和可扩展性,降低了维护成本。
第一方面,本发明实施例提供了一种报文解析方法,包括:
获取待解析报文和待解析报文的报文类型;
根据所述报文类型确定报文开始标识、报文域参数和转移函数;
根据所述报文开始标识、报文域参数和转移函数建立有限自动机DFA有向图;
根据DFA有向图对所述待解析报文进行解析。
第二方面,本发明实施例还提供了一种报文解析装置,该装置包括:
获取模块,用于获取待解析报文和待解析报文的报文类型;
确定模块,用于根据所述报文类型确定报文开始标识、报文域参数和转移函数;
建立模块,用于根据所述报文开始标识、报文域参数和转移函数建立有限自动机DFA有向图;
解析模块,用于根据DFA有向图对所述待解析报文进行解析。
第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本发明实施例中任一所述的报文解析方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例中任一所述的报文解析方法。
本发明实施例通过采用动态规划的方法递归地实现有向图不同状态的转换,能够将报文格式的描述、报文数据内容和解析报文的程序解耦合,使得对报文格式的描述可以以一种类似参数的形式变得可配置,对报文格式的修改不会引起对系统程序代码的大量修改,从而大大增加了可维护性和可扩展性,降低了维护成本。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是本发明实施例一提供的一种报文解析方法的流程图;
图2是本发明实施例一提供的另一种报文解析方法的流程图;
图3是本发明实施例一提供的报文解析算法示意图;
图4是本发明实施例二提供的一种报文解析装置的结构示意图;
图5是本发明实施例三提供的一种电子设备的结构示意图;
图6是本发明实施例四提供的一种包含计算机程序的计算机可读存储介质的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
本发明使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
实施例一
图1是本发明实施例一提供的一种报文解析方法的流程图,本实施例可适用于报文解析的情况,该方法可以由本发明实施例中的报文解析装置来执行,该装置可采用软件和/或硬件的方式实现,如图1所示,该方法具体包括如下步骤:
S101、获取待解析报文和待解析报文的报文类型。
其中,报文指的是网络中交换与传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,其长短很不一致,长度不限且可变。报文也是网络传输的单位,传输过程中会不断的封装成分组、包和帧来传输,封装的方式就是添加一些信息段,那些就是报文头以一定格式组织起来的数据。比如里面有报文类型,报文版本,报文长度,报文实体等等信息。
在本实施例中,待解析报文可以是待解析的在银行业务系统间或业务系统内常用的不同格式的报文。
具体的,获取待解析报文的报文类型的方式可以为:根据待解析报文携带的类型标识,确定待解析报文的报文类型;获取待解析报文的报文类型的方式还可以为:对待解析报文进行类型分析,得到待解析报文的报文类型,本发明实施例对此不进行限制。例如可以是,通过获取报文类型标识符,对比ASCALL码表得出其代表的报文类型。
S102、根据报文类型确定报文开始标识、报文域参数和转移函数。
在本实施例中,获取报文后,根据报文类型分割出的第一个字符串就是报文开始标识。
其中,报文域参数包括:根据报文类型配置的各报文域字段长度、各报文域字段对应的正则表达式以及域描述信息等。
具体的,根据报文类型确定报文开始标识、报文域参数和转移函数的方式可以为:根据报文类型确定报文域参数;根据报文域参数对待解析报文进行分割,得到报文开始标识;根据报文域字段长度确定转移函数。例如可以是,报文类型为Swift报文,根据报文类型确定Swift报文的报文域参数(即根据报文类型配置的Swift报文的报文域字段长度、Swift报文的报文域字段对应的正则表达式以及域描述信息等),根据报文域参数对待解析报文进行分割,得到Swift报文的开始标识(Swift报文的开始标识对应的正则表达式为\{2:,对应的域描述为Block2开始标识,报文域字段长度为3),根据报文域字段长度确定转移函数。
S103、根据报文开始标识、报文域参数和转移函数建立有限自动机DFA有向图。
有限自动机DFA(Deterministic Finite Automaton,确定有限状态自动机或确定有限自动机)是一个能实现状态转移的自动机。对于一个给定的属于该自动机的状态和一个属于该自动机字母表∑的字符,它都能根据事先给定的转移函数转移到下一个状态(这个状态可以是先前那个状态)。
在数学上,一个图(Graph)是表示物件与物件之间的关系的方法,是图论的基本研究对象。一个图看起来是由一些小圆点(称为顶点或结点)和连结这些圆点的直线或曲线(称为边)组成的。如果给图的每条边规定一个方向,那么得到的图称为有向图,其边也称为有向边。在有向图中,与一个结点相关联的边有出边和入边之分,而与一个有向边关联的两个点也有始点和终点之分。
示例性的,将Swift报文的Block2部分作为例子来建立有限自动机DFA有向图,具体过程如下:
首先,确定有限自动机DFA的起始状态以及转移函数。有限自动机DFA的工作方式是从起始状态开始一个接一个的读入字符串,并根据给定的转移函数,一步接一步的转移至下一个状态,在这里可以将Block2报文中的开始标识20101作为起始状态,结束标识21201作为终止状态,根据报文中各报文域里的逻辑关系给出各报文域到自身的一个映射,也就是转移函数。
其次,建立有限自动机DFA有向图。对于一个给定的有限自动机DFA,存在一个唯一的有向图与之对应,有向图的每个结点对应一个状态,每条有向边对应一种转移,根据Swift报文的格式将其建立成为一个有向判定图,以20101作为源结点,21201作为终止结点,其他状态分别设置为不同的结点,而结点之间的有向边的长度由结点对应域长度来决定,当对应域长度为不定长时,其边长度设为-1。建立这样的有限自动机DFA有向图的一个基本原则是,对于某个结点,其每一个邻接结点为根对应的子图所构成的解析模式不相同,这样的有向图就称为是在这个结点上可分辨的。
S104、根据DFA有向图对待解析报文进行解析。
在本实施例中,所用报文解析的基本算法是基于动态规划(DynamicProgramming)的思想,即将待求解的问题分解成若干个互相联系的子问题,先求解子问题,然后从这些子问题的解得到原问题的解。具体的,在本实施例中,将整个报文的结构具体化成了一张有向图,报文的解析问题也就分解为有向图中的所有结点的解析。从有向图中的一个起始结点开始进行解析,直到有向图中的所有结点全部解析结束,待解析报文也解析结束。
可选的,根据报文类型确定报文开始标识、报文域参数和转移函数,包括:
根据报文类型确定报文域参数。
具体的,根据报文类型配置各报文域字段长度。
根据报文域参数对待解析报文进行分割,得到报文开始标识。
示例性的,在实际操作过程中,获取报文后,将根据报文类型分割出的第一个字符串,也就是报文开始标识,作为有限自动机DFA的起始状态。
根据报文域字段长度确定转移函数。
具体的,根据报文类型配置各报文域字段长度,根据报文域字段长度确定有限自动机DFA的转移函数。
可选的,根据DFA有向图对待解析报文进行解析,包括:
根据DFA有向图生成DFA结点描述表和DFA结点之间的邻接关系描述表。
在本实施例中,DFA结点描述表主要描述结点,包括结点基本信息、结点字段长度、结点字段最大长度以及该结点字段的正则表达式等,邻接关系描述表主要描述DFA结点之间的邻接关系。
示例性的,将Swift报文的Block2部分作为例子来根据DFA有向图生成DFA结点描述表和DFA结点之间的邻接关系描述表(即确定有限自动机DFA的计算机表示)。
由于解析过程就是在不同状态的转换,而报文格式可以模型化为有限自动机DFA有向图,所以需要将这样的有限自动机DFA有向图进行计算机表示,在本实施例中采用两个表来描述。
第一个表是DFA结点描述表,主要描述结点,包括结点基本信息、结点字段长度、结点字段最大长度,该结点字段的正则表达式等。如表1所示:
表1
第二个表是描述结点之间的邻接关系,如表2所示:
表2
DFA结点之间的邻接关系描述表一方面表达了DFA有向图中父结点和子结点的依赖关系,同时,还表达了多级回溯依赖关系(Edge cond),即某一结点的分叉依赖于若干前置字段的某种字段条件。如表2中结点20301走哪一个路径取决于20201的取值(I或O)。
在实际操作过程中,对位于同一个域取值不同的不同结点,可以采用边束(Edgebatch)技术来简化边的邻接关系定义。譬如,可以以表2中一部分边的邻接关系为例,进行简化定义。
如表3所示,取出表2中的一部分边的邻接关系。
表3
201101 20501
201101 20502
20501 201201
20502 201201
采用边束技术简化边的邻接关系定义后,结果如表4所示:
表4
201101 #205
#205 201201
程序在建立有向图添加边的操作中,会自动展开带有“#”符号的域的连接关系(如表4所示)。而这一技术的引入大大减轻了配置DFA结点邻接关系的工作量。
根据DFA结点描述表和DFA结点之间的邻接关系描述表对待解析报文进行解析。
可选的,DFA结点描述表包括:每个结点长度和每个结点对应的正则表达式;
在本实施例中,建立有限自动机DFA对应的有向图后,根据报文域参数的报文格式分割报文字符串,将各报文域字段设置为不同的结点,该结点中报文字符串的长度即为该结点的结点长度。
需要解释的是,在本实施例中,正则表达式是一种匹配规则,比如规则要求不能以_开头,那么对应的正则表达式就可以是(?!_);比如规则要求至少包括一个汉字、数字、字母、下划线,那么对应的正则表达式就可以写成[a-zA-Z0-9_\uu4e00-\u9fa5]+,上述这些匹配规则都可以被写成正则表达式。对于一个报文的某个字段,虽然报文的内容不是固定的,但对报文的格式是有要求的,可以用正则表达式作为报文格式的匹配规则。
相应的,根据DFA结点描述表和DFA结点之间的邻接关系描述表对待解析报文进行解析,包括:
将DFA有向图中的当前结点确定为待解析结点。
具体的,对报文进行解析可以看作是将报文建立有限自动机DFA有向图后,对DFA有向图中的结点进行解析,将DFA有向图中的当前结点作为待解析结点开始解析。
查找DFA结点描述表,得到待解析结点的结点长度和待解析结点的正则表达式。
在本实施例中,查找DFA结点描述表就可以得到待解析结点的结点长度和待解析结点的正则表达式。例如,待解析结点可以是20201,通过查找上述表2的DFA结点描述表可知,待解析结点20201的结点长度为1,正则表达式为[IO]。
根据待解析结点的结点长度从待解析报文中取出待解析字符串。
需要说明的是,输入的报文就是一串文本,即报文本身就是一个字符串,所以待解析字符串指的就是待解析报文中的字符串。根据待解析结点的结点长度从待解析报文中取出待解析字符串,例如待解析结点的结点长度可以为3,则从待解析报文中的开始标识之后取出3个字符串作为待解析字符串。
将待解析字符串与待解析结点的正则表达式进行匹配,若匹配成功,则将当前结点的子结点确定为待解析结点,返回执行查找DFA结点描述表,得到待解析结点的结点长度和待解析结点的正则表达式操作,直至当前结点的子结点为终止结点。
需要解释的是,终止结点可以是报文类型为报文终止标识的结点,例如Swift报文的Block2部分的DFA结点描述表中,终止结点的结点编号可以是21201,域编号可以是212,匹配正则表达式可以是\},域描述可以是Block2结束标识,结束结点标识可以是1,结点长度可以是1,结点最大长度可以是1。
待解析字符串与待解析结点的正则表达式匹配成功,即当前结点解析完成,可以把当前结点看作是父结点,每个父结点下面会存在子结点,当父结点解析完成后,将子结点确定为当前待解析结点,返回执行查找DFA结点描述表,得到待解析结点的结点长度和待解析结点的正则表达式操作,直至当前结点的子结点为终止结点。
在实际操作过程中,当前结点包括至少一个子结点,检查边条件(check edgecond)能很大程度上加快算法的速度,在对当前结点的子结点进行继续搜索时,首先会检查依赖条件是否满足,如果不满足,则该路径不需要继续搜索,继续搜索其他路径。
可选的,当前结点包括:至少两个子结点。
相应的,将当前结点的子结点确定为待解析结点,返回执行查找DFA结点描述表,得到待解析结点的结点长度和待解析结点的正则表达式操作,直至当前结点的子结点为终止结点包括:
将第一子结点确定为待解析结点。
其中,第一子结点为当前结点的任一子结点。
根据第一子结点的结点长度从待解析报文中取出待解析字符串。
具体的,根据第一子结点的结点长度从待解析报文中取出待解析字符串的方法过程与上述根据待解析结点的结点长度从待解析报文中取出待解析字符串相同,在此不再一一赘述。
若待解析字符串与第一子结点的正则表达式进行匹配,则将第一子结点的子结点确定为待解析结点,返回执行查找DFA结点描述表,得到待解析结点的结点长度和待解析结点的正则表达式操作,直至当前结点的子结点为终止结点。
可以知道的是,当前结点包括至少两个子结点。当第一子结点匹配成功后,将不再进行其余子结点的匹配,若第一子结点匹配不成功,则将下一个子结点的匹配,若所有子结点均匹配失败,则解析失败。
在实际操作过程中,对于很多的报文都存在可选字段情形,即某个字段可能存在也可能不存在,如果这样的字段很少,可以采用分支连接的办法,即将某个结点与后面所有的可选字段结点都进行边的连接。但是当这样的可选结点较多时,就会导致需要在dependTable中去添加大量的边。当可选结点数量较大的时候,这项工作不仅庞大而且容易出错,此时就可以采用结点穿越(trans vertex)技术,使得判定图中边的数量大大减少。
结点穿越技术的核心就在于让程序去决定是否穿越某个结点(是否忽视其存在),而不是以边(即分支)的方式去指引程序的正确运转。当到达某个结点时候,程序首先使用正常搜索策略进行搜索,如果得不到正确解析的返回结果,再看该结点是否是可操作的结点(optional vertex),如果是,则尝试进行穿越搜索,返回穿越搜索结果。
在实现结点穿越算法的过程中,存在不是父结点从任意结点向子结点移动的情况。但是边条件是一步转移条件,它从父结点向子结点移动需要检查是否满足的条件,所以此时需要提出结点条件(vertex cond),它是对任意结点移动到该结点都需要检查是否满足的条件。对于一步转移的条件,可以作为边条件,而对于无论什么情形到达结点都需要检查的条件,使用结点条件。
可选的,根据待解析结点的结点长度从待解析报文中取出待解析字符串,包括:
若待解析结点为定长结点,则根据待解析结点的结点长度从待解析报文中取出待解析字符串。
其中,定长结点指的是长度有限且结点长度为定值的待解析结点。
示例性的,在实际操作过程中,若待解析结点为定长结点(可以假定结点长度为Len),对待解析字符串str从0位置开始取出长度Len的子串作为待解析字符串strDigest,而字符串剩下的部分就是strLeft。
若待解析结点非定长结点,则根据剩余字符串长度和待解析结点的最大结点长度中的最小值从待解析报文中取出待解析字符串。
需要说明的是,非定长结点指的是没有固定长度的待解析结点。剩余字符串长度指的是将待解析字符串从待解析报文中取出后剩余的字符串的长度。
示例性的,在实际操作过程中,对于非定长结点(假定结点最大长度为maxLen),设当前字符串长度strLen和maxLen中较小的长度为Len,程序将首先枚举出所有从0位置开始长度不大于Len的所有子串中匹配root结点正则表达式的那些子串,假设有n个满足条件的子串,则将这些子串中的任意一个子串作为待解析字符串strDigest,字符串余下部分为strLeft,循环执行后面的对strDigest的validate和对strLeft子问题的解析。若这样的划分中任何一个划分(不是所有)可以将源字符串成功解析,则解析成功;否则解析失败,通常意味着报文字符串有格式错误。
由于可以动态切割待解析字符串,所以解析算法不仅可以解析那些长度是定长或是长度取几个离散值的字段(可以通过分支或者正则表达式来解决),还可以解析那些非定长的字段。
无论是检查边条件还是检查结点条件技术,都采用了自顶向下的思想,维护了一个记录解析中间结果的表,在动态规划中对已经解析的部分进行备忘录查找技术,避免了已经解析部分的重复求解,从而达到剪枝目的。
而前向查看(Lookfoward)技术则是去挖掘针对尚未解析的字符串所可能带来的剪枝。目前实现了停止模式(StopPattern)检查,主要针对那些非定长字段,基本算法对处理非定长字段虽然有效,但通常很慢,穷举每一种可能的长度使得搜索树变得非常宽,停止模式检查可以有效地使得搜索树宽度变窄,还解决了连续非定长问题。
具体地,对当前的strDigest字符串通过停止模式检查收窄最大长度,程序首先定位停止模式在待解析字符串中的位置stopLen,那么strDigest的最大长度就是根结点字段定义的最大长度和stopLen中较小的那个。
可选的,在根据待解析结点的结点长度从待解析报文中取出待解析字符串之后,还包括:
根据DFA有向图确定当前结点到达终止结点的最短路径长度和最长路径长度。
可以知道的是,当前结点到终止结点之间可能存在至少一条路径,那么就可能存在最短路径长度和最长路径长度。路径长度可以是从当前结点到终止结点之间所经过的所有结点的长度之和。例如,从当前结点到终止结点之间存在三条路径,一条路径的路径长度为5,一条路径的路径长度为7,一条路径的路径长度为9,那么,最短路径长度就是5,最长路径长度就是9。
若待解析字符串的长度小于最短路径长度或者大于最长路径长度,则解析失败。
示例性的,从当前结点到终止结点之间存在三条路径,一条路径的路径长度为5,一条路径的路径长度为7,一条路径的路径长度为9,即最短路径长度为5,最长路径长度为9。若待解析字符串的长度小于最短路径长度5或者大于最长路径长度9,则解析失败。
在本实施例中,可以在建有向图以后,判断该图是否是拓扑图(即是否存在环)。如果不存在环(设计DFA有向图的时候也应该尽量消除不必要的环,这样可以提高效率),则可以预先计算某个结点到达终止结点的最短路径长度(Dijkstra算法)和最长路径长度(Floyd-Warshall算法),这里的长度指的是路径上的结点对应的结点长度之和。那么当解析到某一个根结点时,当前待解析的字符串长度如果不是介于最短路径长度和最长路径长度之间,则解析失败,这样在错误路径上尽早失败也起到了剪枝的目的,加速了解析速度。
本实施例的技术方案,通过采用动态规划的方法递归地实现有向图不同状态的转换,能够将报文格式的描述、报文数据内容和解析报文的程序解耦合,使得对报文格式的描述可以以一种类似参数的形式变得可配置,对报文格式的修改不会引起对系统程序代码的大量修改,从而大大增加了可维护性和可扩展性,降低了维护成本。
作为本实施例的一个示例性描述,图2是本发明实施例一提供的另一种报文解析方法的流程图。本发明实施例提出的通用报文解析方法本质上就是基于有限自动机DFA和图论的相关原理,进而设计出的一套灵活、高效、可配置的多报文解析系统。具体地说,可以将报文格式看成是一张带有源结点和结束结点的有向图,而解析的过程正是从源结点出发在各个中间结点之间流转直到到达结束结点为止。如果当字符串解析完以后,当前所在结点不是结束结点,则解析失败,通常意味着报文不合法。
如图2所示,另一种报文解析方法具体包括如下操作:
根据报文类型配置各报文域字段长度的参数。
获取报文,将根据报文类型分割出的第一个字符串,也就是报文开始标识作为DFA的起始状态,同时确定转移函数。
建立DFA对应的有向图,根据参数配置的报文格式分割报文字符串,将各报文域字段设置为不同的结点,根据各个域之间的关系确定各结点之间的有向边。
确定DFA的计算机表示,将确定有限状态自动机有向图中的结点用表格描述,包括该结点的基本信息以及字段长度、正则表达式等。
确定通用报文解析基本算法,基于动态规划的思想进行字符串匹配,并通过如检查边条件、点条件以及结点穿越等算法优化实现剪枝,减低算法的时间复杂度以及空间复杂度。
从源结点开始在DFA上解析报文,系统在任何一个状态下,从输入字符串读入一个字符,根据当前状态结点和读入的这个字符转到新的状态。
当字符串解析完以后,判断当前结点是否为结束结点,如果是则表示成功解析完成报文,输出解析后的报文;否则本次解析失败,此时需要抛出异常。
其中,在基本算法的基础上,DFA有向图建立的优劣直接决定了算法的速度,为了更快的解析报文串,应该尽量减少非定长字段的结点,非定长字段的解析远远慢于对定长字段的解析,在某些情况下甚至会导致有向图在某个结点不可分辨。尽量用图的分叉邻接来表达字段的父子依赖关系。
结点的正则表达式要尽量具体,越具体的正则表达式在递归过程中当某个路径是错误的时候越可以更快地被感知,从而确定该路径不需要继续向下搜索,进而加快解析速度。
作为本实施例的一个示例性描述,图3是本发明实施例一提供的报文解析算法示意图。在本实施例中,所用报文解析的基本算法是基于动态规划(Dynamic Programming)的思想,对于当前判定处于有向图根结点(root)处,字符串为str的解析问题定义为parse(root,str),那么该问题可以归约取出部分字符串(strDigest)并与当前结点信息进行匹配validate(root,strDigest),然后对根结点的邻接结点分别对剩下的字符串进行解析,那么原问题可以归约为最大k个parse(rootAdj,strLeft)子问题(假如当前结点下一步有k个可以继续匹配结点,当前结点与每个下一步结点之间各有一条边,就相当于下一步有k条路可以走。其中一条路走通,最后到达终止结点,就算匹配成功,所以这k个邻接结点相当于k个子问题),k为根结点的出度(outDegree);如果该方法匹配成功且对于k个问题的任何一个问题可以成功解决,那么整个问题就解决了。
如图3所示,报文解析算法具体包括如下操作:
获取当前根结点信息root,判断是否还有未解析的报文字符串。
若存在未解析的报文字符串,则取出报文中的未解析字符串中的部分字符串strDigest,将取得的字符串strDigest与当前结点信息root进行匹配。若匹配成功,则将当前解析结果存储起来,继续遍历当前结点的邻接结点;否则,匹配失败,解析结束。
若不存在未解析的报文字符串,则判断当前根结点是否为结束结点。若当前根结点为结束结点,则将当前解析结果存储起来,解析结束;否则,解析失败。
随着递归栈的不断加深,待解析的字符串str不断缩短,直到str缩短到空串,如果这时候根结点位于终止结点上,则解析成功,沿着过来的路径回溯不断弹出递归栈就能得到正确的解析结果,可以用一个结构体用来存储解析的具体结果,否则就是解析失败。
将strDigest与当前根结点进行匹配是采取正则表达式匹配的方式进行的,即看strDigest是否满足当前根结点的正则表达式,如果满足则验证成功,否则验证失败。
本发明实施例是在基于确定有限状态自动机DFA和图论的相关原理,将报文的格式信息抽象成一个确定有限状态自动机有向图,将有向图利用合适的表来让计算机进行存储,利用动态规划的方法递归地实现有向图不同状态的转换,完成解析报文工作。与现有技术相比,抽象出的模型将报文格式的描述、报文数据内容和解析报文的程序解耦合,使得对报文格式的描述可以以一种类似参数的形式变得可配置,对报文格式的修改不会引起对系统程序代码的大量修改,从而大大增加了可维护性和可扩展性,降低了维护成本。对现有的很多类型的报文可以使用同样的解析模块去进行解析。甚至,当出现新的类型的报文的时候,也不需要针对性的开发一个新的解析模块去解析该类型的报文,使得解析模块得到了很好的复用。同时在设计和编码过程中针对发现的问题,逐步构思并实现了一系列的优化技术,这些技术不仅帮助了通用报文解析模型正确解析报文,泛化了报文可以解析的报文范围,也大大加快了报文的解析速度。
实施例二
图4是本发明实施例二提供的一种报文解析装置的结构示意图。本实施例可适用于报文解析的情况,该装置可采用软件和/或硬件的方式实现,该装置可集成在任何提供报文解析的功能的设备中,如图4所示,所述报文解析装置具体包括:获取模块210、确定模块220、建立模块230和解析模块240。
其中,获取模块210,用于获取待解析报文和待解析报文的报文类型;
确定模块220,用于根据所述报文类型确定报文开始标识、报文域参数和转移函数;
建立模块230,用于根据所述报文开始标识、报文域参数和转移函数建立有限自动机DFA有向图;
解析模块240,用于根据DFA有向图对所述待解析报文进行解析。
进一步的,确定模块220可以包括:
第一确定单元,用于根据所述报文类型确定报文域参数;
分割单元,用于根据报文域参数对所述待解析报文进行分割,得到报文开始标识;
第二确定单元,用于根据报文域字段长度确定转移函数。
进一步的,解析模块240可以包括:
生成单元,用于根据DFA有向图生成DFA结点描述表和DFA结点之间的邻接关系描述表;
解析单元,用于根据DFA结点描述表和DFA结点之间的邻接关系描述表对所述待解析报文进行解析。
进一步的,所述DFA结点描述表包括:每个结点长度和每个结点对应的正则表达式;
相应的,解析单元还可以包括:
确定子单元,用于将DFA有向图中的当前结点确定为待解析结点;
查找子单元,用于查找所述DFA结点描述表,得到所述待解析结点的结点长度和所述待解析结点的正则表达式;
取出子单元,用于根据所述待解析结点的结点长度从所述待解析报文中取出待解析字符串;
匹配子单元,用于将所述待解析字符串与所述待解析结点的正则表达式进行匹配,若匹配成功,则将所述当前结点的子结点确定为待解析结点,返回执行查找所述DFA结点描述表,得到所述待解析结点的结点长度和所述待解析结点的正则表达式操作,直至所述当前结点的子结点为终止结点。
进一步的,所述当前结点包括:至少两个子结点;
相应的,匹配子单元具体用于:
将第一子结点确定为待解析结点,其中,所述第一子结点为当前结点的任一子结点;
根据所述第一子结点的结点长度从所述待解析报文中取出待解析字符串;
若所述待解析字符串与第一子结点的正则表达式进行匹配,则将所述第一子结点的子结点确定为待解析结点,返回执行查找所述DFA结点描述表,得到所述待解析结点的结点长度和所述待解析结点的正则表达式操作,直至所述当前结点的子结点为终止结点。
进一步的,取出子单元具体用于:
若所述待解析结点为定长结点,则根据所述待解析结点的结点长度从所述待解析报文中取出待解析字符串;
若所述待解析结点非定长结点,则根据剩余字符串长度和所述待解析结点的最大结点长度中的最小值从所述待解析报文中取出待解析字符串。
进一步的,在取出子单元根据所述待解析结点的结点长度从所述待解析报文中取出待解析字符串之后,还包括:
根据DFA有向图确定当前结点到达终止结点的最短路径长度和最长路径长度;
若待解析字符串的长度小于最短路径长度或者大于最长路径长度,则解析失败。
上述产品可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
本实施例的技术方案,通过采用动态规划的方法递归地实现有向图不同状态的转换,能够将报文格式的描述、报文数据内容和解析报文的程序解耦合,使得对报文格式的描述可以以一种类似参数的形式变得可配置,对报文格式的修改不会引起对系统程序代码的大量修改,从而大大增加了可维护性和可扩展性,降低了维护成本。
实施例三
图5是本发明实施例三提供的一种电子设备的结构示意图。图5示出了适于用来实现本发明实施方式的电子设备312的框图。图5显示的电子设备312仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。设备312是典型的报文解析功能的计算设备。
如图5所示,电子设备312以通用计算设备的形式表现。电子设备312的组件可以包括但不限于:一个或者多个处理器316,存储装置328,连接不同系统组件(包括存储装置328和处理器316)的总线318。
总线318表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture,ISA)总线,微通道体系结构(Micro Channel Architecture,MCA)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standards Association,VESA)局域总线以及外围组件互连(Peripheral Component Interconnect,PCI)总线。
电子设备312典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备312访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储装置328可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory,RAM)330和/或高速缓存存储器332。电子设备312可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统334可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如只读光盘(Compact Disc-Read Only Memory,CD-ROM)、数字视盘(Digital Video Disc-Read Only Memory,DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线318相连。存储装置328可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块326的程序336,可以存储在例如存储装置328中,这样的程序模块326包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块326通常执行本发明所描述的实施例中的功能和/或方法。
电子设备312也可以与一个或多个外部设备314(例如键盘、指向设备、摄像头、显示器324等)通信,还可与一个或者多个使得用户能与该电子设备312交互的设备通信,和/或与使得该电子设备312能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口322进行。并且,电子设备312还可以通过网络适配器320与一个或者多个网络(例如局域网(Local Area Network,LAN),广域网Wide Area Network,WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器320通过总线318与电子设备312的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备312使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(Redundant Arrays of Independent Disks,RAID)系统、磁带驱动器以及数据备份存储系统等。
处理器316通过运行存储在存储装置328中的程序,从而执行各种功能应用以及数据处理,例如实现本发明上述实施例所提供的报文解析方法。
实施例四
图6是本发明实施例四提供的一种包含计算机程序的计算机可读存储介质的结构示意图。本发明实施例提供了一种计算机可读存储介质61,其上存储有计算机程序610,该程序被一个或多个处理器执行时实现如本申请所有发明实施例提供的报文解析方法:
获取待解析报文和待解析报文的报文类型;
根据所述报文类型确定报文开始标识、报文域参数和转移函数;
根据所述报文开始标识、报文域参数和转移函数建立有限自动机DFA有向图;
根据DFA有向图对所述待解析报文进行解析。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(Hyper Text TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络包括局域网(LAN)或广域网(WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (9)

1.一种报文解析方法,其特征在于,包括:
获取待解析报文和待解析报文的报文类型;
根据所述报文类型确定报文开始标识、报文域参数和转移函数;
根据所述报文开始标识、报文域参数和转移函数建立有限自动机DFA有向图;
根据DFA有向图对所述待解析报文进行解析;
根据DFA有向图对所述待解析报文进行解析,包括:
根据DFA有向图生成DFA结点描述表和DFA结点之间的邻接关系描述表;
根据DFA结点描述表和DFA结点之间的邻接关系描述表对所述待解析报文进行解析;
所述DFA结点描述表包括:每个结点长度和每个结点对应的正则表达式。
2.根据权利要求1所述的方法,其特征在于,根据所述报文类型确定报文开始标识、报文域参数和转移函数,包括:
根据所述报文类型确定报文域参数;
根据报文域参数对所述待解析报文进行分割,得到报文开始标识;
根据报文域字段长度确定转移函数。
3.根据权利要求1所述的方法,其特征在于,根据DFA结点描述表和DFA结点之间的邻接关系描述表对所述待解析报文进行解析,包括:
将DFA有向图中的当前结点确定为待解析结点;
查找所述DFA结点描述表,得到所述待解析结点的结点长度和所述待解析结点的正则表达式;
根据所述待解析结点的结点长度从所述待解析报文中取出待解析字符串;
将所述待解析字符串与所述待解析结点的正则表达式进行匹配,若匹配成功,则将所述当前结点的子结点确定为待解析结点,返回执行查找所述DFA结点描述表,得到所述待解析结点的结点长度和所述待解析结点的正则表达式操作,直至所述当前结点的子结点为终止结点。
4.根据权利要求3所述的方法,其特征在于,所述当前结点包括:至少两个子结点;
相应的,将所述当前结点的子结点确定为待解析结点,返回执行查找所述DFA结点描述表,得到所述待解析结点的结点长度和所述待解析结点的正则表达式操作,直至所述当前结点的子结点为终止结点包括:
将第一子结点确定为待解析结点,其中,所述第一子结点为当前结点的任一子结点;
根据所述第一子结点的结点长度从所述待解析报文中取出待解析字符串;
若所述待解析字符串与第一子结点的正则表达式进行匹配,则将所述第一子结点的子结点确定为待解析结点,返回执行查找所述DFA结点描述表,得到所述待解析结点的结点长度和所述待解析结点的正则表达式操作,直至所述当前结点的子结点为终止结点。
5.根据权利要求3所述的方法,其特征在于,根据所述待解析结点的结点长度从所述待解析报文中取出待解析字符串,包括:
若所述待解析结点为定长结点,则根据所述待解析结点的结点长度从所述待解析报文中取出待解析字符串;
若所述待解析结点为非定长结点,则根据剩余字符串长度和所述待解析结点的最大结点长度中的最小值从所述待解析报文中取出待解析字符串。
6.根据权利要求3所述的方法,其特征在于,在根据所述待解析结点的结点长度从所述待解析报文中取出待解析字符串之后,还包括:
根据DFA有向图确定当前结点到达终止结点的最短路径长度和最长路径长度;
若待解析字符串的长度小于最短路径长度或者大于最长路径长度,则解析失败。
7.一种报文解析装置,其特征在于,包括:
获取模块,用于获取待解析报文和待解析报文的报文类型;
确定模块,用于根据所述报文类型确定报文开始标识、报文域参数和转移函数;
建立模块,用于根据所述报文开始标识、报文域参数和转移函数建立有限自动机DFA有向图;
解析模块,用于根据DFA有向图对所述待解析报文进行解析;
解析模块包括:
生成单元,用于根据DFA有向图生成DFA结点描述表和DFA结点之间的邻接关系描述表;
解析单元,用于根据DFA结点描述表和DFA结点之间的邻接关系描述表对所述待解析报文进行解析;
所述DFA结点描述表包括:每个结点长度和每个结点对应的正则表达式。
8.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述处理器实现如权利要求1-6中任一所述的方法。
9.一种包含计算机程序的计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被一个或多个处理器执行时实现如权利要求1-6中任一所述的方法。
CN202111159734.0A 2021-09-30 2021-09-30 一种报文解析方法、装置、设备及存储介质 Active CN113905106B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111159734.0A CN113905106B (zh) 2021-09-30 2021-09-30 一种报文解析方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111159734.0A CN113905106B (zh) 2021-09-30 2021-09-30 一种报文解析方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN113905106A CN113905106A (zh) 2022-01-07
CN113905106B true CN113905106B (zh) 2024-04-30

Family

ID=79189735

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111159734.0A Active CN113905106B (zh) 2021-09-30 2021-09-30 一种报文解析方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN113905106B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115242896B (zh) * 2022-07-29 2023-06-27 宁波三星医疗电气股份有限公司 动态报文解析方法、装置、电子设备及计算机可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101771697A (zh) * 2010-01-20 2010-07-07 西安电子科技大学 基于模式匹配方式的网络数据流识别方法
CN102143148A (zh) * 2010-11-29 2011-08-03 华为技术有限公司 用于通用协议解析的参数获取和通用协议解析方法及装置
CN103685222A (zh) * 2013-09-05 2014-03-26 北京科能腾达信息技术股份有限公司 基于确定性有穷状态自动机的数据匹配检测方法
CN105721402A (zh) * 2014-12-04 2016-06-29 北京航管科技有限公司 一种解析sita报文的方法和装置
CN112235262A (zh) * 2020-09-26 2021-01-15 建信金融科技有限责任公司 报文的解析方法、装置、电子设备及计算机可读存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101771697A (zh) * 2010-01-20 2010-07-07 西安电子科技大学 基于模式匹配方式的网络数据流识别方法
CN102143148A (zh) * 2010-11-29 2011-08-03 华为技术有限公司 用于通用协议解析的参数获取和通用协议解析方法及装置
CN103685222A (zh) * 2013-09-05 2014-03-26 北京科能腾达信息技术股份有限公司 基于确定性有穷状态自动机的数据匹配检测方法
CN105721402A (zh) * 2014-12-04 2016-06-29 北京航管科技有限公司 一种解析sita报文的方法和装置
CN112235262A (zh) * 2020-09-26 2021-01-15 建信金融科技有限责任公司 报文的解析方法、装置、电子设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN113905106A (zh) 2022-01-07

Similar Documents

Publication Publication Date Title
US7636657B2 (en) Method and apparatus for automatic grammar generation from data entries
US10885118B2 (en) Incremental graph computations for querying large graphs
US8793251B2 (en) Input partitioning and minimization for automaton implementations of capturing group regular expressions
US8380483B2 (en) Inter-procedural dataflow analysis of parameterized concurrent software
CN103853650A (zh) 一种模糊测试的测试用例生成方法及装置
US9336194B2 (en) Submatch extraction
CN113905106B (zh) 一种报文解析方法、装置、设备及存储介质
CN111737974A (zh) 一种语句的语义抽象化表示方法及装置
CN111079408A (zh) 一种语种识别方法、装置、设备及存储介质
CN105069306A (zh) 基于工作流网模型的事件日志审计方法
CN110780879A (zh) 一种基于智能编译技术的决策执行方法、装置、设备及介质
WO2023278052A1 (en) Automated troubleshooter
Belli et al. A formal framework for mutation testing
US20230419036A1 (en) Random token segmentation for training next token prediction models
CN113344214B (zh) 数据处理模型的训练方法、装置、电子设备及存储介质
US20060265695A1 (en) Software development preprocessing method, solftware control method, software development method, and software development device
US10810376B2 (en) Markov logic networks based alias links identification and canonical mention selection in text
CN113779200A (zh) 目标行业词库的生成方法、处理器及装置
WO2022085014A1 (en) Application fault analysis using machine learning
Jiang et al. A Text Similarity-based Protocol Parsing Scheme for Industrial Internet of Things
Vizovitin et al. Verifying UCM specifications of distributed systems using colored Petri nets
Juayong et al. Relating computations in non-cooperative transition P systems and evolution-communication P systems with energy
Zhang et al. Data driven business rule generation based on fog computing
US10067816B2 (en) Model checking apparatus and method, and storage medium having program stored therein
Kumar et al. Improving Live Sequence Chart to Automata Transformation for Verification

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant