CN111711605B - 一种用于物联网平台的数据协议主动解析方法 - Google Patents
一种用于物联网平台的数据协议主动解析方法 Download PDFInfo
- Publication number
- CN111711605B CN111711605B CN202010417334.4A CN202010417334A CN111711605B CN 111711605 B CN111711605 B CN 111711605B CN 202010417334 A CN202010417334 A CN 202010417334A CN 111711605 B CN111711605 B CN 111711605B
- Authority
- CN
- China
- Prior art keywords
- data
- protocol
- internet
- tree
- feature
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
本发明提供一种用于物联网平台的数据协议主动解析方法,其能够通过互联网数据所使用的协议、数据长度和特征值的方式实现对该互联网数据所采用的数据格式的快速定位;通过自动生成代码的方式来解决数据含义代码编写,避免数据解析代码的编写。本发明能够提高数据解析的效率,增强数据解析平台的通用性,降低数据解析平台在项目实施过程中的复杂性和实施难度。
Description
技术领域
本发明实施例涉及物联网及计算机软件领域,尤其涉及一种用于物联网平台的数据协议主动解析方法。
背景技术
物联网数据因为生产的厂家不同,导致数据字段的含义五花八门,软件程序的对数据的解析需要根据特定的厂家和特定的设备单独定制解析程序。在一个项目中如果包含多个厂家多种设备的情况下,数据解析程序的编写难度和工作量就大大增加。
现有的物联网数据解析技术多是根据数据所使用的协议、字段长度等特征进行循环匹配,这种方式效率不高,需要循环的次数存在不确定性,且无法解决解析代码需要编写的问题。
发明内容
本发明提供了一种用于物联网平台的数据协议主动解析方法,其能够通过所使用的协议、数据长度和特征值的方式来实现数据格式快速定位;通过自动生成代码的方式来实现数据含义代码编写,避免数据解析代码的编写,并以此提高数据解析的效率,增强数据解析平台的通用性,降低数据解析平台在项目实施过程中的复杂性和实施难度,降低代码编写的工作量。
本发明所提供的用于物联网平台的数据协议主动解析方法,其包括如下步骤:
步骤1、接收配置程序,根据配置程序录入数据格式所使用的协议、包含的字段含义、字段长度、字段位置、数据类型、数据范围和校验算法;
步骤2、保存配置程序所对应的数据格式配置内容,并根据数据格式配置内容自动生成数据对象代码;
步骤3、对所述数据格式配置内容,按照其所使用的协议、字段长度,生成树形结构的特征树,并将所述特征树保存在数据格式特征库中;
步骤4、将用于判断数据的特征树从数据格式特征库中加载到缓存中;
步骤5、接收互联网数据后,对所述互联网数据按照所述特征树中所对应的数据格式配置内容进行数据解析格式匹配,确定一个数据解析所使用的类的名称,通过反射机制将该类实例化,并完成数据解析。
可选的,如上任一所述的用于物联网平台的数据协议主动解析方法,其中,步骤2中,在保存配置程序所对应的数据格式配置内容时,还包括以下步骤:进一步检查数据格式特征库中是否已存储有对应与该数据格式所使用的协议、字段长度相同的数据格式配置内容,若存在,则进一步获取当前需要保存的数据格式配置内容所对应的特征码,否则直接跳转至步骤3保存配置程序所对应的数据格式配置内容。
可选的,如上任一所述的用于物联网平台的数据协议主动解析方法,其中,已存储有对应与该数据格式所使用的协议、字段长度相同的数据格式配置内容时,还在所述步骤3的特征树中分别对各协议、字段长度所对应的特征树按照不同特征码生成子树,分别对所述数据格式配置内容,按照其所使用的协议、字段长度和特征码生成树形结构的不同子树,将所述特征树保存在数据格式特征库中。
可选的,如上任一所述的用于物联网平台的数据协议主动解析方法,其中,所述步骤4中具体按照如下步骤加载特征树:根据监听端口所使用的协议,对特征树中的各数据格式配置内容按照其所对应的协议进行拆分,将对应不同协议的数据格式配置内容分别加载至不同的缓存中。
可选的,如上任一所述的用于物联网平台的数据协议主动解析方法,其中,所述步骤5中在接收到互联网数据后分别按照以下步骤完成数据解析:
步骤5-1、根据监听端口所使用的协议,从对应的缓存中获取对应该协议下所有字段长度的特征树;
步骤5-2、计算收到的互联网数据的字段长度,并根据计算所获得的字段长度从缓存中获取对应该字段长度的特征树的子树数据,返回该子树所对应的用于解析该数据的类名称,通过反射机制调用生成类实例对该互联网数据进行数据解析。
可选的,如上任一所述的用于物联网平台的数据协议主动解析方法,其中,所述步骤5-2中,当子树只有1个时,直接返回该子树所对应的用于解析该数据的类名称,通过反射机制调用生成类实例对该互联网数据进行数据解析;当子树有多个时,还进一步根据特征码查找对应的子树数据,然后返回该子树所对应的用于解析该数据的类名称,通过反射机制调用生成类实例对该互联网数据进行数据解析。
可选的,如上任一所述的用于物联网平台的数据协议主动解析方法,其中,根据特征码查找对应的子树数据的步骤包括:在缓存中获取对应该字段长度的特征树的若干子树数据,然后在该若干子树数据中进一步根据特征码的要求查找其中符合该特征码要求的子树数据。
可选的,如上任一所述的用于物联网平台的数据协议主动解析方法,其中,所述特征码包括厂商编号和/或产品SN码。
可选的,如上任一所述的用于物联网平台的数据协议主动解析方法,其中,所述厂商编号固定设置在互联网数据的第20,21,22,23位中,所述产品SN码所对应的位置由该互联网数据所使用的协议、包含的字段含义、字段长度、字段位置、数据类型、数据范围确定。
综上所述,本发明具有以下有益效果:
1、本发明能够通过监听端口所使用的协议确定互联网数据所使用的协议,通过对字段长度的计算确定特征树中对应该互联网数据的数据格式配置内容,实现对数据格式的快速定位。
2、在互联网数据具有相同协议和字段长度时,本发明还可进一步根据厂商编号和/或产品SN码生成特征码,根据特征码进一步对与已存储的具有相同协议、字段长度相同的数据格式配置内容进行区分,从而在其所对应的若干子树数据中进一步根据特征码的要求查找出符合该特征码要求的子树数据,从而进一步明确数据格式,实现对数据的主动解析。
3、本发明能够根据数据格式配置内容自动生成数据对象代码,通过自动生成代码的方式来解决数据含义代码编写,避免数据解析代码的编写。
4、本发明能够提高数据解析的效率,增强数据解析平台的通用性,降低数据解析平台在项目实施过程中的复杂性和实施难度。
附图说明
图1为一种用于物联网平台的数据协议主动解析方法的数据解析方法流程图;
图2为一种用于物联网平台的数据协议主动解析方法的数据格式定位步骤示意图。
具体实施方式
为了使技术人员更好的理解本发明方案,下面将根据现场实施环境和具体应用场景举例对本发明进行清晰,较为详尽的说明。
图1所示,是本发明所提供的一种用于物联网平台的数据协议主动解析方法,其包括以下步骤:
(1)接收配置程序,根据配置程序录入数据格式所使用的协议、包含的字段含义、字段长度、字段位置、数据类型、数据范围和校验算法;
(2)保存配置程序所对应的数据格式配置内容,保存时可优选地进一步检查数据格式特征库中是否已存储有对应与该数据格式所使用的协议、字段长度相同的数据格式配置内容,如果有,则当前配置还需要提供特征值用于区分;
(3)保存配置程序所对应的数据格式配置内容,并根据数据格式配置内容自动生成数据对象代码;
(4)对所述数据格式配置内容,按照其所使用的协议、字段长度,生成树形结构的特征树,并将所述特征树保存在数据格式特征库中;
(5)将用于判断数据的特征树从数据格式特征库中加载到缓存中,以便于快速查找,减少数据库IO;
(6)在接收互联网数据后,对所述互联网数据按照所述特征树中所对应的数据格式配置内容进行数据解析格式匹配,确定一个数据解析所使用的类的名称,通过反射机制将该类实例化,并完成数据解析。
其中,所述特征树中可分别对各协议、字段长度所对应的特征树按照不同特征码生成子树,分别对所述数据格式配置内容,按照其所使用的协议、字段长度和特征码生成树形结构的不同子树,将所述特征树保存在数据格式特征库中。在进行数据解析格式匹配时,具体可根据特征树所对应的协议、字段长度以及特征码最终确定一个数据解析所使用的类的名称,通过反射机制将类实例化,并完成数据解析。
优选的,所述步骤(6)中,数据解析格式匹配具体可按照如下步骤进行:
步骤6-1、根据监听端口所使用的协议,将特征树根据协议进行拆分,将对应不同协议的数据格式配置内容分别加载至不同的缓存中;
步骤6-2、在接收互联网数据后,根据端口对应的协议从对应的缓存中获取对应该协议下所有字段长度的特征树;
步骤6-3、计算收到的互联网数据的字段长度,并根据计算所获得的字段长度从缓存中获取对应该字段长度的特征树的子树数据,当子树只有1个时,直接返回该子树所对应的用于解析该数据的类名称,通过反射机制调用生成类实例对该互联网数据进行数据解析;当子树有多个时,首先根据特征码查找对应的子树数据,然后返回该子树所对应的用于解析该数据的类名称,通过反射机制调用生成类实例对该互联网数据进行数据解析。
在其他实现方式下,本发明还可以直接按照如下的步骤进行数据协议主动解析:
1、通过配置程序录入数据格式所使用的协议、包含的字段含义、字段长度、字段位置、数据类型、数据范围和校验算法。【数据格式配置】
2、保存配置时检查是否有与当前配置所使用的协议、字段长度相同的数据格式,如果有,当前配置需要提供特征值用于区分。检查当前配置
3、保存配置并根据配置内容自动生成数据对象代码。【数据对象】【保存数据格式】
4、根据配置内容生成协议、长度、特征码组成的树形结构,可定义为特征树,如{HTTP:{64:{sn like‘129’:Object1,factory=234:Object2,……},31:{……},……},UDP:{46:{……},53:{……},……},……}
5、将用于判断数据的特征树结构从数据库中加载到缓存中,便于快速查找,减少数据库IO。
6、根据监听端口所使用的协议,将特征树根据协议进行拆分,分布保存到不同的缓存中。如80端口是HTTP协议,则所有80端口的数据对应HTTP的特征树解析;9300是UDP协议,则所有9300端口的数据都对应UDP的特征树解析。【协议解析定位】
7、收到数据后,首先根据端口对应的协议从缓存中获取所有数据长度的特征树,如64,32,46……等。【数据长度解析定位】
8、计算收到数据的长度,并根据计算的长度从缓存的数据长度特征树中获取子树数据,当子树只有1个时,则返回用于解析该数据的类名称,通过反射调用生成类实例对数据进行解析;当子树有多个时,则进行下一步特征值判断。【是否唯一】
9、从缓存中获取对应长度特征树下的子树即特征值树,根据特征值树中定义的特征值对数据进行内容解析,如数据的20,21,22,23位表示厂商编号,该编号以129开头。【特征值解析定位】
10、根据特征值树最终确定一个数据解析所使用的类的名称,通过反射机制将类实例化,并完成数据解析。
下面以某厂家设备使用UDP的物联网数据传输方式为例,详细介绍上述数据协议主动解析过程。该UDP的物联网数据传输方式所使用的数据格式可参照下表:
以根据上表所示的数据格式进行配置,生成配置格式为:
至此可保存配置。但在保存过程中可通过对数据格式特征库中的数据格式配置内容进行检查而发现存在同协议同数据长度的数据格式。此时可则返回配置,增加特征码“产品SN以129开头”。由此,对应的配置格式为:
下一步,可保存配置到数据格式特征库中,并同时生成数据对象代码如下:
当收到UDP协议报文为以下内容时:
01 01 01 00 01 00 36 00 4D 3A 22 01 00 41 06 00 01 00B3 00 05 00 0000 00 00 38 36 37 37 32 34 30 33 30 38 31 32 31 36 35 00 34 36 30 30 34 33 3134 35 37 30 38 35 30 31 00 0A 00 00 00 41 94
可根据端口判断对应的协议采用的是UDP,数据长度为64,将多个符合条件的数据格式配置加载到内存中。由于查询到对应协议和数据长度的子树中存在多个数据格式,所以还需要进一步进行特征码的判断:
本实施例中,数据格式所对应的特征码要求是sn like“129%”。据此,首先根据格式定义获取sn是第8,9,10,11这4个字节,解析后值为1295262209。其符合以“129”打头的条件,因而能够确定使用该数据格式解析数据;
由此可解析数据并将数据赋值给生成的代码对象,如
{prctVer:1,functionCode:1,……………………………};
由此完成解析,可进一步将解析所获得的数据对象传递给业务应用模块处理。
本具体实施例仅仅是对本发明的解释,其并不是对本发明的限制,本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本发明的权利要求范围内都受到专利法的保护。
Claims (7)
1.一种用于物联网平台的数据协议主动解析方法,其特征在于,包括如下步骤:
步骤1、接收配置程序,根据配置程序录入数据格式所使用的协议、包含的字段含义、字段长度、字段位置、数据类型、数据范围和校验算法;
步骤2、保存配置程序所对应的数据格式配置内容,根据数据格式配置内容自动生成数据对象代码,并在保存时进一步检查数据格式特征库中是否已存储有对应与该数据格式所使用的协议、字段长度相同的数据格式配置内容,若存在,则进一步获取当前需要保存的数据格式配置内容所对应的特征码,否则直接跳转至步骤3保存配置程序所对应的数据格式配置内容;
步骤3、对所述数据格式配置内容,按照其所使用的协议、字段长度,生成树形结构的特征树,并将所述特征树保存在数据格式特征库中,对于已存储有对应与该数据格式所使用的协议、字段长度相同的数据格式配置内容时,还在所述特征树中分别对各协议、字段长度所对应的特征树按照不同特征码生成子树,分别对所述数据格式配置内容,按照其所使用的协议、字段长度和特征码生成树形结构的不同子树,将所述特征树保存在数据格式特征库中;
步骤4、将用于判断数据的特征树从数据格式特征库中加载到缓存中;
步骤5、接收互联网数据后,对所述互联网数据按照所述特征树中所对应的数据格式配置内容进行数据解析格式匹配,确定一个数据解析所使用的类的名称,通过反射机制将该类实例化,并完成数据解析。
2.如权利要求1所述的用于物联网平台的数据协议主动解析方法,其特征在于,所述步骤4中具体按照如下步骤加载特征树:根据监听端口所使用的协议,对特征树中的各数据格式配置内容按照其所对应的协议进行拆分,将对应不同协议的数据格式配置内容分别加载至不同的缓存中。
3.根据权利要求2所述的用于物联网平台的数据协议主动解析方法,其特征在于,所述步骤5中在接收到互联网数据后分别按照以下步骤完成数据解析:步骤5-1、根据监听端口所使用的协议,从对应的缓存中获取对应该协议下所有字段长度的特征树;
步骤5-2、计算收到的互联网数据的字段长度,并根据计算所获得的字段长度从缓存中获取对应该字段长度的特征树的子树数据,返回该子树所对应的用于解析该数据的类名称,通过反射机制调用生成类实例对该互联网数据进行数据解析。
4.根据权利要求3所述的用于物联网平台的数据协议主动解析方法,其特征在于,所述步骤5-2中,当子树只有1个时,直接返回该子树所对应的用于解析该数据的类名称,通过反射机制调用生成类实例对该互联网数据进行数据解析;当子树有多个时,还进一步根据特征码查找对应的子树数据,然后返回该子树所对应的用于解析该数据的类名称,通过反射机制调用生成类实例对该互联网数据进行数据解析。
5.根据权利要求4所述的用于物联网平台的数据协议主动解析方法,其特征在于,根据特征码查找对应的子树数据的步骤包括:在缓存中获取对应该字段长度的特征树的若干子树数据,然后在该若干子树数据中进一步根据特征码的要求查找其中符合该特征码要求的子树数据。
6.根据权利要求2所述的用于物联网平台的数据协议主动解析方法,其特征在于,所述特征码包括厂商编号和/或产品SN码。
7.根据权利要求6所述的用于物联网平台的数据协议主动解析方法,其特征在于,所述厂商编号固定设置在互联网数据的第20,21,22,23位中,所述产品SN码所对应的位置由该互联网数据所使用的协议、包含的字段含义、字段长度、字段位置、数据类型、数据范围确定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010417334.4A CN111711605B (zh) | 2020-05-18 | 2020-05-18 | 一种用于物联网平台的数据协议主动解析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010417334.4A CN111711605B (zh) | 2020-05-18 | 2020-05-18 | 一种用于物联网平台的数据协议主动解析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111711605A CN111711605A (zh) | 2020-09-25 |
CN111711605B true CN111711605B (zh) | 2022-05-24 |
Family
ID=72537092
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010417334.4A Active CN111711605B (zh) | 2020-05-18 | 2020-05-18 | 一种用于物联网平台的数据协议主动解析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111711605B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112788000B (zh) * | 2020-12-28 | 2024-01-19 | 安徽百诚慧通科技股份有限公司 | 一种udp数据包解析方法、***和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7401326B1 (en) * | 2001-10-24 | 2008-07-15 | Finisar Corporation | Compiling protocol analysis code using protocol database |
WO2011050545A1 (zh) * | 2009-10-30 | 2011-05-05 | 中山大学 | 一种未知应用层协议自动分析方法 |
CN105282123A (zh) * | 2014-07-24 | 2016-01-27 | 亿阳安全技术有限公司 | 一种网络协议识别方法和装置 |
CN109788004A (zh) * | 2017-11-10 | 2019-05-21 | 厦门雅迅网络股份有限公司 | 自动适配新能源汽车国标自定义协议的解析方法及*** |
-
2020
- 2020-05-18 CN CN202010417334.4A patent/CN111711605B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7401326B1 (en) * | 2001-10-24 | 2008-07-15 | Finisar Corporation | Compiling protocol analysis code using protocol database |
WO2011050545A1 (zh) * | 2009-10-30 | 2011-05-05 | 中山大学 | 一种未知应用层协议自动分析方法 |
CN105282123A (zh) * | 2014-07-24 | 2016-01-27 | 亿阳安全技术有限公司 | 一种网络协议识别方法和装置 |
CN109788004A (zh) * | 2017-11-10 | 2019-05-21 | 厦门雅迅网络股份有限公司 | 自动适配新能源汽车国标自定义协议的解析方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN111711605A (zh) | 2020-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7194485B2 (en) | Mapping XML schema components to qualified java components | |
US11269694B2 (en) | Automated API code generation | |
US9058360B2 (en) | Extensible language framework using data cartridges | |
US20110196891A1 (en) | Class loading using java data cartridges | |
US7240101B2 (en) | Method and apparatus for efficiently reflecting complex systems of objects in XML documents | |
CN102662966B (zh) | 一种面向主题的获取动态页面内容的方法及*** | |
EP1777629A1 (en) | Method and apparatus for automatic form filling | |
CN110912782B (zh) | 一种数据采集方法、装置及存储介质 | |
US11263542B2 (en) | Technologies for auto discover and connect to a rest interface | |
CN110647316A (zh) | 通用业务对象的生成方法、装置、计算机设备及存储介质 | |
CN112035443A (zh) | 基于Linux平台的大数据执行方法、***、设备及存储介质 | |
CN111711605B (zh) | 一种用于物联网平台的数据协议主动解析方法 | |
CN108959454B (zh) | 一种提示子句指定方法、装置、设备及存储介质 | |
CN111240772A (zh) | 一种基于区块链的数据处理方法、装置及存储介质 | |
CN117493309A (zh) | 一种标准模型生成方法、装置、设备及存储介质 | |
CN114661298A (zh) | 公共方法自动生成方法、***、设备及介质 | |
CN114328572A (zh) | 基于sql解析器的数据查询方法、装置、***及介质 | |
CN115470127B (zh) | 页面兼容性处理方法、装置、计算机设备和存储介质 | |
CN117171800B (zh) | 一种基于零信任防护体系的敏感数据识别方法及装置 | |
CN114119263A (zh) | 基于大数据的数据核对方法、装置、电子设备及存储介质 | |
CN115827417A (zh) | 一种接口测试方法、相关设备、存储介质及程序产品 | |
CN113190736A (zh) | 数据处理方法、爬虫装置、介质及电子设备 | |
US20080307071A1 (en) | Retrieving specific hierarchical information using web services | |
CN117332140A (zh) | 用户画像数据处理方法和装置 | |
CN113190735A (zh) | 爬取数据的方法、装置、介质及电子设备 |
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 |