CN112769795A - 一种基于数据仓库的报文通信解析***及方法 - Google Patents
一种基于数据仓库的报文通信解析***及方法 Download PDFInfo
- Publication number
- CN112769795A CN112769795A CN202011616489.7A CN202011616489A CN112769795A CN 112769795 A CN112769795 A CN 112769795A CN 202011616489 A CN202011616489 A CN 202011616489A CN 112769795 A CN112769795 A CN 112769795A
- Authority
- CN
- China
- Prior art keywords
- data
- message
- module
- communication
- configuration file
- 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.)
- Granted
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- 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/08—Protocols for interworking; Protocol conversion
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于数据仓库的报文通信解析***及方法,包括通信模块、数据管理模块、显示控制终端,通信模块用于建立报文通信连接、接收和发送报文,显示控制终端用于显示解析后的报文数据和人工输入的数据,数据管理模块用于解析报文;数据管理模块包括报文管理模块、数据字典模块、仓库管理模块、软件代理模块、数据存储模块,本发明采用模块化设计,通过对报文数据结构的抽象录入,对数据结构的注册、访问,实现从通信传输、数据处理、数据访问到数据展示,当应用场景进行变化时,只需要对数据字典中配置文件的数据块进行简单的增加、删除、修改操作就能完成整个报文通信解析,采用协议配置化的方式进行管理,实现无源码编程通信。
Description
技术领域
本发明涉及信息通信领域,具体涉及一种基于数据仓库的报文通信解析***及方法。
背景技术
目前,无论是在工业控制领域还是军事控制领域,信息传输控制协议种类繁多,且复杂多变,传统的报文解析方法存在以下几个问题1、开发难:无论是在工业控制领域还是军事控制领域,往往对协议的开发都是通过编码完成的,然而通信协议都存在不仅种类繁多,而且复杂多变,这样就暴露出来开发难度大、开发周期长等缺点。2、移植性差:随着Windows、macOS、Linux、Reworks、DOS等操作***的普及,软件开发越来越需要注重多个平台的兼容,使用的设备也越来越多。如果针对每个平台都采用原生语言开发,势必会增加工作量和人力成本,如果起初的业务需要扩展到其他平台时,重新开发则会导致大量的时间和费用产生。本发明旨在至少解决现有技术或相关技术中存在的技术问题,能有效适应跨平台移植的通信协议问题,不用关心操作***底层交互实现对协议通信的影响。3、维护性低:一套产品的设计,直观上往往是来源于用户的需求,需求跟随着应用,产品则跟随着需求。一套完美的产品不仅在于产品起初的设计,而且在于产品后期的可维护性。那么,在信息传输控制领域,协议的变化则是屡见不鲜,传统的协议应用,在后期维护时,经常要查询工程中的源码,如果从事开发过当前项目的人员进行维护,维护可能较快,但当没有从事过当前项目开发的人员进行维护,维护时间是会大打折扣的。4、扩展性差:在指挥通信领域,报文增加、报文变更、报文类型扩展等层出不穷,导致通信***对报文协议进行扩展性改进,不同的通信***的设计了各自的报文编解码应用软件,报文编解码软件可扩展性较差。
发明内容
本发明为了解决报文传输过程中的快速组包、拆包、解包等问题,提出了一种基于数据仓库的报文通信解析***及方法,通过采取配置文件的方式实现报文通信中对报文的新增、修改、删除等管理,提出一种全新的配置文件方式,达到无源码编程通信的目的。
本发明通过下述技术方案实现:
一种基于数据仓库的报文通信解析***,包括通信模块、数据管理模块、显示控制终端,其中,
所述通信模块用于建立报文通信连接、接收和发送原始报文数据和组包后的报文数据,将接收的原始报文数据传输至数据管理模块并发送从数据管理模块接收的组包后的报文数据;
所述显示控制终端用于显示解析后的报文数据和人工输入的数据,并将人工输入的数据传输至数据管理模块;
所述数据管理模块对接收到的原始报文数据进行解析拆包和对人工输入的数据进行组包,并将解析后的报文数据传输至显示控制终端,将组包后的报文数据传输至通信模块;
所述数据管理模块包括报文管理模块、数据字典模块、仓库管理模块、软件代理模块、数据存储模块,其中,
所述数据存储模块采用数据库作为存储介质存储数据管理模块中其他模块传输的数据;
报文管理模块用于对接收的原始报文数据和人工输入的数据进行预处理,分别对原始报文数据和人工输入的数据中对应通信协议的字段进行录入,分别生成对应的待配置文件,将原始报文数据、人工输入数据及对应的待配置文件存入数据库中,并将待配置文件传输至数据字典模块;
所述数据字典模块接收报文管理模块传输的待配置文件,对待配置文件采用XML进行配置,生成XML配置文件,对待配置文件中的报文数据进行抽象提取生成数据字典,数据字典模块提供应用程序接口供软件代理模块访问、调用,将生成的XML配置文件和数据字典存入数据库中并传送给仓库管理模块;
所述仓库管理模块用于对接收到的数据字典进行注册,形成数据帧,仓库管理模块提供应用程序接口供软件代理模块访问、调用;所述应用程序接口对显示控制终端的图层、控件ID进行注册,将注册后的显示控制终端的图层、控件ID形成管理配置文件,将数据帧、管理配置文件存入数据库中;
所述软件代理模块提供应用程序接口用于设置和获取显示控制终端的控件值,采用DDS通信方式与显示控制终端进行数据交互;
所述软件代理模块对于原始报文数据,先调取仓库管理模块提供的应用程序接口,结合数据字典模块的应用程序接口,对原始报文数据进行拆包处理和解析,得到拆包后的报文数据和解析后的报文数据,并将拆包后的报文数据和解析后的报文数据存入数据库中对应的报文数据表中,同时读取管理配置文件,将解析后的报文数据映射输出到显示控制终端上;
所述软件代理模块对于人工输入的数据,先读取管理配置文件,再调取仓库管理模块提供的应用程序接口结合数据字典模块的应用程序接口对人工输入的数据进行组包处理,得到组包后的报文数据,并将组包后的报文数据存入数据库中对应的数据表中,最后读取数据库中存储的报文发送配置文件中的通信连接方式、目标IP地址、目标端口,将组包后的报文数据和读取到的报文发送配置文件发送给通信模块,并根据读取的管理配置文件通过显示控制终端显示发送的结果。
进一步地,所述通信模块提供接口库,支持TCP/UDP的连接方式,且TCP/UDP的连接方式能切换,IP地址和端口文件能进行配置。
进一步地,所述报文管理模块对报文的预处理包括报文类型识别、报文内容校验、报文长度校验,报文类型区分包括接收报文和上报报文。
进一步地,数据存储模块的数据库中存储有原始报文数据、解析后的报文数据、组包后的报文数据、拆包后的报文数据以及***相关的配置文件数据,所述***相关的配置文件数据包括管理配置文件、报文发送配置文件、XML配置文件,所述数据库支持sqlite3、MySQL数据库,与报文数据相关的数据库表,其数据库表结构与通信协议的字段一一对应。
进一步地,所述数据字典是将所用到的所有报文信息格式定义进行转换的一个配置集合,在数据字典中,每一条报文格式对应数据字典中的一个数据块,对应XML配置文件中的一个节点,每一条报文在数据字典中都具有唯一性,数据字典模块中的配置文件可通过报文管理模块进行添加、删除、修改、查询,也可以手动进行修改配置文件。
进一步地,由于任何***和语言都能友好的支持XML语言,XML只描述数据,而不关心数据的本身,可以很好地进行跨平台交换数据,一般采用二进制的数据格式,而本发明所述XML使用普通文本格式对待配置文件进行配置,所述数据字典包含字段SPN号、字段名称、字段类型、字段重复项、字段起始位、字段长度,字段类型包括整型、浮点型、字符串、日期、汉字等。
进一步地,所述仓库管理模块采用工厂模式和单例模式,工厂模式录入了数据字典中的所有数据结构,一方面,提供了丰富的应用程序访问接口,供上层应用进行访问,例如,查询某个报文的结构,数据帧的注册与取消注册,数据帧的编解码,设置与获取数据帧的优先级等;另一方面,有效满足了报文协议变更、扩展等需求;工厂模式的主要特点是只要知道产品型号就可以创建一个产品,所以将数据字典中的报文定义为一个产品,同时,为了减少资源的开销,采用单例模式进行对象化管理。因此,本发明将数据字典中接收类报文定义为一个型号产品例如实例化一个对象1,上报类报文定义为另一个型号产品例如实例化一个对象2,当整个通信***启动时,报文接收和报文上报按各自的产品属性便可进行快速访问操作。
进一步地,所述软件代理模块采用ARINC SPECIFICIATION 661-4协议,通过数据字典中的数据结构与显控界面的控件进行一一映射关联,所述报文通信解析***的操作***采用Reworks操作***,Reworks操作***为嵌入式实时操作***能及时响应外部发生的随机事件。
另外本发明提供一种基于数据仓库的报文通信解析方法,应用于上述报文通信解析***中,当***启动时,包括以下步骤:
步骤S1、创建3个同步线程,包括数据仓库管理线程、报文接收线程和报文发送线程,其中,数据仓库管理线程优先级最高;
步骤S2、开启数据仓库管理线程,启动仓库管理模块并进行数据仓库初始化,数据仓库初始化包括数据字典的注册、显示控制终端的图层、控件ID的注册和数据仓库的自检,当数据仓库完成初始化后,将数据仓库初始化后的数据写入全局变量的缓冲区,提供给报文接收线程和报文发送线程访问;
步骤S3、开启报文接收线程,具体过程为:
步骤S31、根据通信模块配置的通信连接方式启动本端服务IP地址、本端服务端口;
步骤S32、报文管理模块接收报文数据,对报文数据进行预处理,报文数据进行预处理包括判断报文类型、校验报文长度和校验报文内容是否合法;
步骤S33、若步骤S32中判断结果为不合法,则结束处理当前接收到的报文数据,若步骤S32中判断结果为合法,则将合法的报文数据存入数据库中;
步骤S34、软件代理模块根据仓库管理模块提供的应用程序接口结合数据字典模块的应用程序接口对合法的报文数据进行拆包处理和解析,得到解析后的报文数据;
步骤S35、软件代理模块将解析后的报文数据存入数据库中对应的报文数据表中,并通过读取管理配置文件,将解析后的报文数据映射输出到显示控制终端进行显示,所述管理配置文件包括显示控制终端的图层ID、控件ID、枚举项常量;
步骤S4、开启报文发送线程,具体过程为:
步骤S41、数据管理模块接收显示控制终端上人工输入的数据,判断人工输入的数据是否选择上报;
步骤S42、若步骤S41的判断结果为否,则结束当前报文发送线程,若步骤S41的判断结果为是,则软件代理模块通过读取管理配置文件,管理配置文件包括绑定显示控制终端的图层ID、控件ID、枚举项常量;
步骤S43、软件代理模块调用仓库管理模块提供的应用程序接口结合数据字典模块的应用程序接口对人工输入数据的报文头、正文内容、报文尾以十六进制的方式进行组包处理,得到组包后的报文数据;
步骤S43、软件代理模块将组包后的报文数据存入数据库中对应的数据表中,并读取数据库中存储的报文发送配置文件中的通信连接方式、目标IP地址、目标端口,将组包后的报文数据和读取到的报文发送配置文件发送给通信模块;
步骤S44、通信模块根据读取到的通信连接方式、目标IP地址和目标端口发送组包好的报文数据,并通过步骤S42读取的管理配置文件通过显示控制终端显示报文发送的结果。
本发明与现有技术相比,具有如下的优点和有益效果:
1、本发明一种基于数据仓库的报文通信解析***及方法,采用协议配置化的方式进行管理,代替采用传统编码方式所进行的报文协议解析,大大提高了在指挥信息***领域、军事装配领域、武器装备保障领域中数据模型的建立,解决了报文协议的频繁变更,延伸了不同平台之间的协议互通,同时也大大减少了开发人员的开发周期,打破了传统协议开发的编码模式,实现了报文通信配置化。
2、本发明一种基于数据仓库的报文通信解析***及方法,在数据仓库里涵盖了对协议数据的整合,报文的每条协议以数据字典的方式存在于数据仓库中,解决了信息传输控制协议开发难,移植性差、维护性低、扩展性差等的问题,实现报文通信快速搭建。
3、本发明一种基于数据仓库的报文通信解析***及方法,采用模块化设计,通过对报文数据结构的抽象录入,对数据结构的注册、访问,能有效实现从通信传输、数据处理、数据访问最后到数据展示,当应用场景进行变化,诸如协议的变更,协议的扩展,仅仅只需要进行对数据字典中配置文件的“数据块”进行简单的增加、删除、修改操作就能完成整个报文通信解析。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:
图1为本发明***结构图;
图2为数据字典模块与仓库管理模块具体传输过程;
图3本发明方法流程示意图;
图4为一种实施例中的录入“简易气象条件报文”示例示意图;
图5为一种实施例中的数据字典示意图;
图6为一种实施例中的修改后的数据字典示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
在以下描述中,为了提供对本发明的透彻理解阐述了大量特定细节。然而,对于本领域普通技术人员显而易见的是:不必采用这些特定细节来实行本发明。在其他实例中,为了避免混淆本发明,未具体描述公知的结构、电路、材料或方法。
在整个说明书中,对“一个实施例”、“实施例”、“一个示例”或“示例”的提及意味着:结合该实施例或示例描述的特定特征、结构或特性被包含在本发明至少一个实施例中。因此,在整个说明书的各个地方出现的短语“一个实施例”、“实施例”、“一个示例”或“示例”不一定都指同一实施例或示例。此外,可以以任何适当的组合和、或子组合将特定的特征、结构或特性组合在一个或多个实施例或示例中。此外,本领域普通技术人员应当理解,在此提供的示图都是为了说明的目的,并且示图不一定是按比例绘制的。这里使用的术语“和/或”包括一个或多个相关列出的项目的任何和所有组合。
在本发明的描述中,需要理解的是,术语“前”、“后”、“左”、“右”、“上”、“下”、“竖直”、“水平”、“高”、“低”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明保护范围的限制。
实施例1
如图1所示,一种基于数据仓库的报文通信解析***,其特征在于,包括通信模块、数据管理模块、显示控制终端,其中,
所述通信模块用于建立报文通信连接、接收和发送原始报文数据和组包后的报文数据,将接收的原始报文数据传输至数据管理模块并发送从数据管理模块接收的组包后的报文数据;
所述显示控制终端用于显示解析后的报文数据和人工输入的数据,并将人工输入的数据传输至数据管理模块;
所述数据管理模块对接收到的原始报文数据进行解析拆包和对人工输入的数据进行组包,并将解析后的报文数据传输至显示控制终端,将组包后的报文数据传输至通信模块;
所述数据管理模块包括报文管理模块、数据字典模块、仓库管理模块、软件代理模块、数据存储模块,其中,
所述数据存储模块采用数据库作为存储介质存储数据管理模块中其他模块传输的数据;
报文管理模块用于对接收的原始报文数据和人工输入的数据进行预处理,分别对原始报文数据和人工输入的数据中对应通信协议的字段进行录入,分别生成对应的待配置文件,将原始报文数据及其待配置文件、人工输入数据及其待配置文件存入数据库中,并将对应的待配置文件传输至数据字典模块;
所述数据字典模块用于接收报文管理模块传输的待配置文件,分别对待配置文件采用XML进行配置,生成XML配置文件,对待配置文件中的报文数据进行抽象提取生成数据字典,数据字典模块提供应用程序接口供软件代理模块访问、调用,将生成的XML配置文件和数据字典存入数据库中并传送给仓库管理模块,所述待配置文件、数据字典包括原始报文数据的待配置文件、XML配置文件和数据字典,人工输入数据的待配置文件、XML配置文件和数据字典;
所述仓库管理模块用于对接收到的数据字典进行注册,形成数据帧,仓库管理模块提供应用程序接口供软件代理模块访问、调用;所述应用程序接口对显示控制终端的图层、控件ID进行注册,将注册后的显示控制终端的图层、控件ID形成管理配置文件,将数据帧、管理配置文件存入数据库中,管理配置文件是根据***需要在显示控制终端上显示的图层和控件ID在仓库管理模块中进行绑定注册形成的;
所述软件代理模块提供应用程序接口用于设置和获取显示控制终端的控件值,采用DDS通信方式与显示控制终端进行数据交互;
所述软件代理模块对于原始报文数据,先调取仓库管理模块提供的应用程序接口,结合数据字典模块的应用程序接口,对原始报文数据进行拆包处理和解析,得到拆包后的报文数据和解析后的报文数据,并将拆包后的报文数据和解析后的报文数据存入数据库中对应的报文数据表中,同时读取管理配置文件,将解析后的报文数据映射输出到显示控制终端上;
所述软件代理模块对于人工输入的数据,先读取管理配置文件,再调取仓库管理模块提供的应用程序接口结合数据字典模块的应用程序接口对人工输入的数据进行组包处理,得到组包后的报文数据,并将组包后的报文数据存入数据库中对应的数据表中,最后读取数据库中存储的报文发送配置文件中的通信连接方式、目标IP地址、目标端口,将组包后的报文数据和读取到的报文发送配置文件发送给通信模块,并根据读取的管理配置文件通过显示控制终端显示发送的结果。
通信模块提供接口库,支持TCP/UDP的连接方式,且TCP/UDP的连接方式能切换,IP地址和端口文件能进行配置。
报文管理模块对报文的预处理包括报文类型识别、报文内容校验、报文长度校验,报文类型包括接收报文和上报报文。
数据存储模块的数据库中存储有原始报文数据、解析后的报文数据、组包后的报文数据、拆包后的报文数据以及***相关的配置文件数据,所述***相关的配置文件数据包括管理配置文件、报文发送配置文件、XML配置文件,所述数据库支持sqlite3、MySQL数据库,与报文数据相关的数据库表,其数据库表结构与通信协议的字段一一对应。
数据字典是将所用到的所有报文信息格式定义进行转换的一个配置集合,如图2所示,在数据字典中,每一条报文格式对应数据字典中的一个数据块,对应XML配置文件中的一个节点,每一条报文在数据字典中都具有唯一性,在仓库管理模块中,数据字典中的每个数据块在数据仓库里以数据帧的形式存在,数据仓库将每一个数据帧进行注册,使每一个数据块对应一个数据帧,数据字典模块中的XML配置文件可通过报文管理模块进行添加、删除、修改、查询,也可以手动进行修改XML配置文件。
由于任何***和语言都能友好的支持XML语言,XML只描述数据,而不关心数据的本身,可以很好地进行跨平台交换数据,一般采用二进制的数据格式,而本发明所述XML使用普通文本格式对待配置文件进行配置,所述数据字典包含字段SPN号、字段名称、字段类型、字段重复项、字段起始位、字段长度,字段类型包括整型、浮点型、字符串、日期、汉字等。
仓库管理模块采用工厂模式和单例模式,工厂模式录入了数据字典中的所有数据结构,一方面,提供了丰富的应用程序访问接口,供上层应用进行访问,例如,查询某个报文的结构,数据帧的注册与取消注册,数据帧的编解码,设置与获取数据帧的优先级等;另一方面,有效满足了报文协议变更、扩展等需求;工厂模式的主要特点是只要知道产品型号就可以创建一个产品,所以将数据字典中的报文定义为一个产品,同时,为了减少资源的开销,采用单例模式进行对象化管理。因此,本发明将数据字典中接收类报文定义为一个型号产品例如实例化一个对象1,而上报类报文定义为另一个型号产品例如实例化一个对象2,当整个通信***启动时,报文接收和报文上报按各自的产品属性便可进行快速访问操作。
软件代理模块采用ARINC SPECIFICIATION 661-4协议,通过数据字典中的数据结构与显控界面的控件进行一一映射关联,所述报文通信解析***的操作***采用Reworks操作***,Reworks操作***为嵌入式实时操作***能及时响应外部发生的随机事件。
可以理解的是本发明采用模块化设计,通过对报文数据结构的抽象录入,对数据结构的注册、访问,能有效实现从通信传输、数据处理、数据访问最后到数据展示,当应用场景进行变化,诸如协议的变更,协议的扩展,仅仅只需要进行对数据字典中配置文件的数据块进行简单的增加、删除、修改操作就能完成整个报文通信解析。
实施例2
如图3所示,本发明提供一种基于数据仓库的报文通信解析方法,应用于上述报文通信解析***中,当***启动时,包括以下步骤:
步骤S1、创建3个同步线程,包括数据仓库管理线程、报文接收线程和报文发送线程,其中,数据仓库管理线程优先级最高;
步骤S2、开启数据仓库管理线程,启动仓库管理模块并进行数据仓库初始化,数据仓库初始化包括数据字典的注册、显示控制终端的图层、控件ID的注册和数据仓库的自检,当数据仓库完成初始化后,将数据仓库初始化后的数据写入全局变量的缓冲区,提供给报文接收线程和报文发送线程访问;
步骤S3、开启报文接收线程,具体过程为:
步骤S31、根据通信模块配置的通信连接方式启动本端服务IP地址、本端服务端口;
步骤S32、报文管理模块接收报文数据,对报文数据进行预处理,报文数据进行预处理包括判断报文类型、校验报文长度和校验报文内容是否合法;
步骤S33、若步骤S32中判断结果为不合法,则结束处理当前接收到的报文数据,若步骤S32中判断结果为合法,则将合法的报文数据存入数据库中;
步骤S34、软件代理模块根据仓库管理模块提供的应用程序接口结合数据字典模块的应用程序接口对合法的报文数据进行拆包处理和解析,得到解析后的报文数据;
步骤S35、软件代理模块将解析后的报文数据存入数据库中对应的报文数据表中,并通过读取管理配置文件,将解析后的报文数据映射输出到显示控制终端进行显示,所述管理配置文件包括显示控制终端的图层ID、控件ID、枚举项常量;
步骤S4、开启报文发送线程,具体过程为:
步骤S41、数据管理模块接收显示控制终端上人工输入的数据,判断人工输入的数据是否选择上报;
步骤S42、若步骤S41的判断结果为否,则结束当前报文发送线程,若步骤S41的判断结果为是,则软件代理模块通过读取管理配置文件,管理配置文件包括绑定显示控制终端的图层ID、控件ID、枚举项常量;
步骤S43、软件代理模块调用仓库管理模块提供的应用程序接口结合数据字典模块的应用程序接口对人工输入数据的报文头、正文内容、报文尾以十六进制的方式进行组包处理,得到组包后的报文数据;
步骤S43、软件代理模块将组包后的报文数据存入数据库中对应的数据表中,并读取数据库中存储的报文发送配置文件中的通信连接方式、目标IP地址、目标端口,将组包后的报文数据和读取到的报文发送配置文件发送给通信模块;
步骤S44、通信模块根据读取到的通信连接方式、目标IP地址和目标端口发送组包好的报文数据,并通过步骤S42读取的管理配置文件通过显示控制终端显示报文发送的结果。
具体实施例3
为了描述本发明的实施过程,本发明给出了针对《炮兵指挥***与武器平台信息传输格式GJB 8093-2013》指挥通信协议上的一个示例,具体实施操作采用如下步骤:
步骤1、通过报文管理软件录入报文数据结构,选用报文“简易气象条件报文”示例,如图4所示,生成的数据字典文件如图5所示;
步骤2、启动***,包括:通信的建立,数据字典的录入,仓库的注册,软件代理的启动;
上述步骤1、步骤2阐述了整个指挥通信的建立,对报文“简易气象条件报文”协议进行扩展,例如,在原有报文定义上增加字段“目标坐标”(<简易气象条件报文>:=<报文类型标识><地面气压><地面气温><地面风向><地面风速><目标直角坐标>)。那么,通过上述发明阐述中,通过报文管理软件或人工方式修改数据字典配置文件,修改后的字典文件如图6所示。
综上,本发明实施例仅通过报文管理软件修改数据仓库中“简易气象条件报文”数据字典的数据结构,就能完成扩展后的指挥通信接收,而无需增加源代码,实现了无源码编程通信。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于数据仓库的报文通信解析***,其特征在于,包括通信模块、数据管理模块、显示控制终端,其中,
所述通信模块用于建立报文通信连接、接收和发送原始报文数据和组包后的报文数据,将接收的原始报文数据传输至数据管理模块并发送从数据管理模块接收的组包后的报文数据;
所述显示控制终端用于显示解析后的报文数据和人工输入的数据,并将人工输入的数据传输至数据管理模块;
所述数据管理模块对接收到的原始报文数据进行解析拆包和对人工输入的数据进行组包,并将解析后的报文数据传输至显示控制终端,将组包后的报文数据传输至通信模块;
所述数据管理模块包括报文管理模块、数据字典模块、仓库管理模块、软件代理模块、数据存储模块,其中,
所述数据存储模块采用数据库作为存储介质存储数据管理模块中其他模块传输的数据;
报文管理模块用于对接收的原始报文数据和人工输入的数据进行预处理,分别对原始报文数据和人工输入的数据中对应通信协议的字段进行录入,分别生成对应的待配置文件,将原始报文数据、人工输入数据及对应的待配置文件存入数据库中,并将待配置文件传输至数据字典模块;
所述数据字典模块接收报文管理模块传输的待配置文件,对待配置文件采用XML进行配置,生成XML配置文件,对待配置文件中的报文数据进行抽象提取生成数据字典,数据字典模块提供应用程序接口供软件代理模块访问、调用,将生成的XML配置文件和数据字典存入数据库中并传送给仓库管理模块;
所述仓库管理模块用于对接收到的数据字典进行注册,形成数据帧,仓库管理模块提供应用程序接口供软件代理模块访问、调用;所述应用程序接口对显示控制终端的图层、控件ID进行注册,将注册后的显示控制终端的图层、控件ID形成管理配置文件,将数据帧、管理配置文件存入数据库中;
所述软件代理模块提供应用程序接口用于设置和获取显示控制终端的控件值,采用DDS通信方式与显示控制终端进行数据交互;
所述软件代理模块对于原始报文数据,先调取仓库管理模块提供的应用程序接口,结合数据字典模块的应用程序接口,对原始报文数据进行拆包处理和解析,得到拆包后的报文数据和解析后的报文数据,并将拆包后的报文数据和解析后的报文数据存入数据库中对应的报文数据表中,同时读取管理配置文件,将解析后的报文数据映射输出到显示控制终端上;
所述软件代理模块对于人工输入的数据,先读取管理配置文件,再调取仓库管理模块提供的应用程序接口结合数据字典模块的应用程序接口对人工输入的数据进行组包处理,得到组包后的报文数据,并将组包后的报文数据存入数据库中对应的数据表中,最后读取数据库中存储的报文发送配置文件中的通信连接方式、目标IP地址、目标端口,将组包后的报文数据和读取到的报文发送配置文件发送给通信模块,并根据读取的管理配置文件通过显示控制终端显示发送的结果。
2.根据权利要求1所述的一种基于数据仓库的报文通信解析***,其特征在于,所述通信模块提供接口库,支持TCP/UDP的连接方式,且TCP/UDP的连接方式能切换,IP地址和端口文件能进行配置。
3.根据权利要求1所述的一种基于数据仓库的报文通信解析***,其特征在于,所述报文管理模块对报文的预处理包括报文类型识别、报文内容校验、报文长度校验,报文类型包括接收报文和上报报文。
4.根据权利要求1所述的一种基于数据仓库的报文通信解析***,其特征在于,数据存储模块的数据库中存储有原始报文数据、解析后的报文数据、组包后的报文数据、拆包后的报文数据以及***相关的配置文件数据,所述***相关的配置文件数据包括管理配置文件、报文发送配置文件、XML配置文件,所述数据库支持sqlite3、MySQL数据库,与报文数据相关的数据库表,其数据库表结构与通信协议的字段一一对应。
5.根据权利要求1所述的一种基于数据仓库的报文通信解析***,其特征在于,所述数据字典是将所用到的所有报文信息格式定义进行转换的一个配置集合,在数据字典中,每一条报文格式对应数据字典中的一个数据块,对应XML配置文件中的一个节点,数据字典模块中的配置文件通过报文管理模块进行添加、删除、修改、查询。
6.根据权利要求1所述的一种基于数据仓库的报文通信解析***,其特征在于,所述XML使用普通文本格式对待配置文件进行配置,所述数据字典包含字段SPN号、字段名称、字段类型、字段重复项、字段起始位、字段长度。
7.根据权利要求1所述的一种基于数据仓库的报文通信解析***,其特征在于,所述仓库管理模块采用工厂模式和单例模式,工厂模式录入了数据字典中的所有数据结构,单例模式采用对象化管理。
8.根据权利要求1所述的一种基于数据仓库的报文通信解析***,其特征在于,所述软件代理模块采用ARINC SPECIFICIATION 661-4协议,通过数据字典中的数据结构与显控界面的控件进行一一映射关联,所述报文通信解析***的操作***采用Reworks操作***。
9.一种基于数据仓库的报文通信解析方法,其特征在于,应用于权利要求1中的基于数据仓库的报文通信解析***中,包括以下步骤:
步骤S1、创建3个同步线程,包括数据仓库管理线程、报文接收线程和报文发送线程,其中,数据仓库管理线程优先级最高;
步骤S2、开启数据仓库管理线程,启动仓库管理模块并进行数据仓库初始化,数据仓库初始化包括数据字典的注册、显示控制终端的图层、控件ID的注册和数据仓库的自检,当数据仓库完成初始化后,将数据仓库初始化后的数据写入全局变量的缓冲区,提供给报文接收线程和报文发送线程访问;
步骤S3、开启报文接收线程,具体过程为:
步骤S31、根据通信模块配置的通信连接方式启动本端服务IP地址、本端服务端口;
步骤S32、报文管理模块接收报文数据,对报文数据进行预处理,报文数据进行预处理包括判断报文类型、校验报文长度和校验报文内容是否合法;
步骤S33、若步骤S32中判断结果为不合法,则结束处理当前接收到的报文数据,若步骤S32中判断结果为合法,则将合法的报文数据存入数据库中;
步骤S34、软件代理模块根据仓库管理模块提供的应用程序接口结合数据字典模块的应用程序接口对合法的报文数据进行拆包处理和解析,得到解析后的报文数据;
步骤S35、软件代理模块将解析后的报文数据存入数据库中对应的报文数据表中,并通过读取管理配置文件,将解析后的报文数据映射输出到显示控制终端进行显示,所述管理配置文件包括显示控制终端的图层ID、控件ID、枚举项常量;
步骤S4、开启报文发送线程,具体过程为:
步骤S41、数据管理模块接收显示控制终端上人工输入的数据,判断人工输入的数据是否选择上报;
步骤S42、若步骤S41的判断结果为否,则结束当前报文发送线程,若步骤S41的判断结果为是,则软件代理模块通过读取管理配置文件,管理配置文件包括绑定显示控制终端的图层ID、控件ID、枚举项常量;
步骤S43、软件代理模块调用仓库管理模块提供的应用程序接口结合数据字典模块的应用程序接口对人工输入数据的报文头、正文内容、报文尾以十六进制的方式进行组包处理,得到组包后的报文数据;
步骤S43、软件代理模块将组包后的报文数据存入数据库中对应的数据表中,并读取数据库中存储的报文发送配置文件中的通信连接方式、目标IP地址、目标端口,将组包后的报文数据和读取到的报文发送配置文件发送给通信模块;
步骤S44、通信模块根据读取到的通信连接方式、目标IP地址和目标端口发送组包好的报文数据,并通过步骤S42读取的管理配置文件通过显示控制终端显示报文发送的结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011616489.7A CN112769795B (zh) | 2020-12-30 | 2020-12-30 | 一种基于数据仓库的报文通信解析***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011616489.7A CN112769795B (zh) | 2020-12-30 | 2020-12-30 | 一种基于数据仓库的报文通信解析***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112769795A true CN112769795A (zh) | 2021-05-07 |
CN112769795B CN112769795B (zh) | 2022-07-29 |
Family
ID=75697861
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011616489.7A Active CN112769795B (zh) | 2020-12-30 | 2020-12-30 | 一种基于数据仓库的报文通信解析***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112769795B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114827304A (zh) * | 2022-03-03 | 2022-07-29 | 宁波数益工联科技有限公司 | 一种高适配性工业数据采集*** |
CN116055589A (zh) * | 2023-01-28 | 2023-05-02 | 北京国科天迅科技有限公司 | 数据管理方法、装置及计算机设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070061244A1 (en) * | 2005-09-14 | 2007-03-15 | Jorey Ramer | Increasing mobile interactivity |
US20070226483A1 (en) * | 2006-03-24 | 2007-09-27 | Dennis Cox | System and method for storing and/or transmitting emulated network flows |
US20120143954A1 (en) * | 2009-05-26 | 2012-06-07 | Thales | Method for adapting data in a data transmission system, and associated system |
CN108134779A (zh) * | 2017-12-06 | 2018-06-08 | 交控科技股份有限公司 | Cbtc通信***协议解析方法、协议库管理方法及协议库 |
CN109818926A (zh) * | 2018-12-25 | 2019-05-28 | 西安长远电子工程有限责任公司 | 一种无需预先规划的通信方法 |
CN110505111A (zh) * | 2019-07-09 | 2019-11-26 | 杭州电子科技大学 | 基于流量重放的工控协议模糊测试方法 |
CN110719296A (zh) * | 2019-10-25 | 2020-01-21 | 福建网能科技开发有限责任公司 | 一种终端通信协议内的报文数据自动解析的方法 |
-
2020
- 2020-12-30 CN CN202011616489.7A patent/CN112769795B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070061244A1 (en) * | 2005-09-14 | 2007-03-15 | Jorey Ramer | Increasing mobile interactivity |
US20070226483A1 (en) * | 2006-03-24 | 2007-09-27 | Dennis Cox | System and method for storing and/or transmitting emulated network flows |
US20120143954A1 (en) * | 2009-05-26 | 2012-06-07 | Thales | Method for adapting data in a data transmission system, and associated system |
CN108134779A (zh) * | 2017-12-06 | 2018-06-08 | 交控科技股份有限公司 | Cbtc通信***协议解析方法、协议库管理方法及协议库 |
CN109818926A (zh) * | 2018-12-25 | 2019-05-28 | 西安长远电子工程有限责任公司 | 一种无需预先规划的通信方法 |
CN110505111A (zh) * | 2019-07-09 | 2019-11-26 | 杭州电子科技大学 | 基于流量重放的工控协议模糊测试方法 |
CN110719296A (zh) * | 2019-10-25 | 2020-01-21 | 福建网能科技开发有限责任公司 | 一种终端通信协议内的报文数据自动解析的方法 |
Non-Patent Citations (2)
Title |
---|
王瑞雪等: "数据字典在火控***报文解析中的应用", 《兵器装备工程学报》, no. 04, 25 March 2019 (2019-03-25) * |
陈军等: "异构数据报文统一表示服务研究", 《信息技术》, no. 04, 25 April 2010 (2010-04-25) * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114827304A (zh) * | 2022-03-03 | 2022-07-29 | 宁波数益工联科技有限公司 | 一种高适配性工业数据采集*** |
CN116055589A (zh) * | 2023-01-28 | 2023-05-02 | 北京国科天迅科技有限公司 | 数据管理方法、装置及计算机设备 |
CN116055589B (zh) * | 2023-01-28 | 2023-06-06 | 北京国科天迅科技有限公司 | 数据管理方法、装置及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112769795B (zh) | 2022-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112769795B (zh) | 一种基于数据仓库的报文通信解析***及方法 | |
US6836890B1 (en) | Methods and systems for message translation and parsing of data structures in a distributed component architecture | |
US10540190B2 (en) | Generic connector module capable of integrating multiple applications into an integration platform | |
CN101246486B (zh) | 用于改进的表达式处理的方法和装置 | |
CN101834848B (zh) | 一种使用xml描述协议的方法及其建立的协议解析*** | |
CN106775867B (zh) | Windows操作***环境下的飞行模拟*** | |
US7856415B2 (en) | System and method for mapping events into a data structure | |
US20090300063A1 (en) | Software, devices and methods facilitating execution of server-side applications at mobile devices | |
CN111683066B (zh) | 异构***集成方法、装置、计算机设备和存储介质 | |
CN102622444B (zh) | 一种xml报文处理方法和装置 | |
CN103631664A (zh) | 一种进程间的通信方法和装置 | |
CN105808165B (zh) | 在云计算管理平台中虚拟机访问存储设备的方法和装置 | |
US7290263B1 (en) | Method and system for a scriptable command line interface | |
CN112380718B (zh) | 自适应装备模拟器适配器 | |
CN112650077A (zh) | 基于工控业务仿真的plc蜜罐***、实现方法及仿真设备 | |
CN110647316A (zh) | 通用业务对象的生成方法、装置、计算机设备及存储介质 | |
US20180225247A1 (en) | Packet forwarding | |
CN110278272B (zh) | 模拟Socket请求的通用方法 | |
CN103647775A (zh) | 一种在网页中进行登录的方法和装置 | |
CN108133099B (zh) | 一种基于多分辨率模型框架的仿真***实现方法 | |
CN117278661A (zh) | 一种工业物联网多协议解析方法及*** | |
CN107872441B (zh) | 生成设备属性配置文件的方法和装置 | |
KR20190069960A (ko) | 산업용 통신 시스템 및 방법 | |
KR20050031954A (ko) | 데이터 객체 전송시스템 및 수신방법 | |
CN112948266B (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220707 Address after: 621000 building 31, No.7, Section 2, Xianren Road, Youxian District, Mianyang City, Sichuan Province Applicant after: China Ordnance Equipment Group Automation Research Institute Co.,Ltd. Address before: 621000 Mianyang province Sichuan City Youxian District Road No. 7 two immortals Applicant before: China Ordnance Equipment Group Automation Research Institute Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |