CN114900570A - 一种标准化数据采集传输方法及系统 - Google Patents
一种标准化数据采集传输方法及系统 Download PDFInfo
- Publication number
- CN114900570A CN114900570A CN202210817886.3A CN202210817886A CN114900570A CN 114900570 A CN114900570 A CN 114900570A CN 202210817886 A CN202210817886 A CN 202210817886A CN 114900570 A CN114900570 A CN 114900570A
- Authority
- CN
- China
- Prior art keywords
- message
- data
- network
- protocol
- message packet
- 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
-
- 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/03—Protocol definition or specification
-
- 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/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供一种标准化数据采集传输方法及系统,方法包括根据每种网络消息中的数据结构生成与网络消息一一对应的协议配置文件,根据每一网络消息对应的协议配置文件将网络消息分解成多个类的集合,多个类形成对应每个网络消息的结构对象,对每个网络消息的结构对象进行序列化处理得到包含消息包中所有信息内容的字节序列;将字节序列传输至接收端,对接收端接收的字节序列进行反序列化处理后,得到对应消息包的结构对象,结构对象包含消息包中所有的信息内容。本发明中的标准化数据采集传输方法及系统,通过将消息的结构转换为协议配置文件,标准化消息的数据结构,同时标准化对外接口,降低了解析工作量,提高了开发效率。
Description
技术领域
本发明涉及通信软件技术领域,特别涉及一种标准化数据采集传输方法及系统。
背景技术
通信系统一般采用分布式部署和集群部署的架构,该系统内各网元之间的数据交互相对封闭,没有对外公开数据交互接口。然而该通信系统的交互数据是模拟、评估、效能分析等领域的重要依据,如果获取不到这些交互数据,相关业务将无法展开。为采集到这部分交互数据,通常以动态库、网络传输等方式向第三方使用者提供服务。
现有的技术方案是采用代理动态库的方式,替换原有动态库中的发送函数,在发送之前拷贝一份发送的内容,提取相应数据组装成数据包发送到自定义的应用中。但是现有的通信系统中交互的数据以消息为单位,消息的种类超过了1000种,每个种类包含结构体、数据以及它们互相之间的嵌套结构,而每次传输解析这些数据时,都需要重新编译源代码,改变软件状态,使得解析所有种类的消息所需要的工作量巨大,导致每次开发时效率低下。
发明内容
基于此,本发明的目的是提供一种标准化数据采集传输方法及系统,解决背景技术中通信系统中需交互的数据复杂繁多使得解析工作量大,导致开发效率低下的问题。
本发明一方面提供一种标准化数据采集传输方法,方法包括:
获取数据接入需求,根据数据接入需求调取与数据接入需求对应的消息包,对消息包进行解析,以得到多种网络消息;
根据每种网络消息中的数据结构生成与网络消息一一对应的协议配置文件;
根据每一网络消息对应的协议配置文件将网络消息分解成多个类的集合,多个类形成对应每个网络消息的结构对象;
对每个网络消息的结构对象进行序列化处理得到包含消息包中所有信息内容的字节序列;
将字节序列传输至接收端,对接收端接收的字节序列进行反序列化处理后,得到对应消息包的结构对象,根据消息包的结构对象读取到消息包中所有的信息内容。
本发明中的标准化数据采集传输方法,通过将消息包中多种结构的网络消息转换为对应的协议配置文件,再根据协议配置文件构造所有类,生成一个结构对象,将结构对象进行序列化处理形成字节序列传输至第三方,再通过反序列化将字节序列恢复为结构对象,通过对应的协议配置文件对结构对象进行解析,从而实现消息输入输出的解耦,网络消息结构的变化仅需同步调整协议配置文件,降低了解析工作量,从而提高了开发效率。
进一步的,根据每种网络消息中的数据结构生成与网络消息一一对应的协议配置文件的步骤包括:
提取网络消息中的多个变量,确定每个变量在网络消息结构体中的基本属性,根据标准化的协议配置文件对每个变量的基本属性进行定义,得到与网络消息一一对应的协议配置文件。
进一步的,根据每一网络消息对应的协议配置文件将网络消息分解成多个类的集合,多个类形成对应每个网络消息的结构对象的步骤包括:
获取每一网络消息对应的协议配置文件的多个变量,根据每个变量构建对应的类,多个类形成对应网络消息的结构对象。
进一步的,对每个网络消息的结构对象进行序列化处理得到包含消息包中所有信息内容的字节序列的步骤包括:
获取结构对象的状态信息,将结构对象的状态信息写入数据存储区,得到可存储传输的字节序列,字节序列包含消息包中所有信息内容。
进一步的,对接收端接收的字节序列进行反序列化处理后,得到对应消息包的结构对象,根据消息包的结构对象读取到消息包中所有的信息内容的步骤包括:
根据字节序列获取结构对象中所有变量,根据每个变量的基本属性读取数据存储区的内容,并初始化字节序列得到对应网络消息的结构对象,网络消息的结构对象包含消息包的所有信息内容。
进一步的,数据接入需求包括数据传输方式,获取数据接入需求,根据数据接入需求调取与数据接入需求对应的消息包的步骤后还包括:
根据数据传输方式确定数据传输插件,数据传输插件用于消息包的数据采集、数据处理和数据传输。
进一步的,根据数据传输方式确定数据传输插件的步骤后包括:
获取插件的继承接口类型,根据继承接口类型确定插件重载纯虚函数或非纯虚函数。
进一步的,根据每种网络消息中的数据结构生成与网络消息一一对应的协议配置文件的步骤之前包括:
获取网络消息中的头文件,选取头文件中需转换的数据结构,对数据结构进行编辑协议名称、选择协议版本、修改协议有效期、添加变量说明以及勾选对外公布选项,最终生成标准化的协议配置文件。
进一步的,根据每种网络消息中的数据结构生成与网络消息一一对应的协议配置文件的步骤后包括:
获取标准化的协议配置文件的接口功能,根据接口功能生成对应标准化的协议配置文件的Excel接口文档,Excel接口文档即协议说明文件。
本发明另一方面提供一种标准化数据采集传输系统,系统包括:
数据接入模块,获取数据接入需求,根据数据接入需求调取与数据接入需求对应的消息包,对消息包进行解析,以得到多种网络消息;
协议配置文件转换模块,用于根据每种网络消息中的数据结构生成与网络消息一一对应的协议配置文件;
结构对象生成模块,用于根据每一网络消息对应的协议配置文件将网络消息分解成多个类的集合,多个类形成对应每个网络消息的结构对象;
序列化模块,用于对每个网络消息的结构对象进行序列化处理得到包含消息包中所有信息内容的字节序列;
反序列化模块,用于将字节序列传输至接收端,对接收端接收的字节序列进行反序列化处理后,得到对应消息包的结构对象,结构对象包含消息包中所有的信息内容。
附图说明
图1为本发明第一实施例中标准化数据采集传输方法流程图;
图2为本发明第二实施例中标准化数据采集传输方法流程图;
图3为本发明第三实施例中标准化数据采集传输系统框图;
图4为本发明实施例中框架平台软件与插件的工作流程图;
图5为本发明实施例中数据传递流程图;
图6为本发明实施例中协议说明文件示例;
图7为本发明实施例中框架平台软件体系结构示意图;
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的若干实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容更加透彻全面。
需要说明的是,当元件被称为“固设于”另一个元件,它可以直接在另一个元件上或者也可以存在居中的元件。当一个元件被认为是“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件。本文所使用的术语“垂直的”、“水平的”、“左”、“右”以及类似的表述只是为了说明的目的。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
实施例一
请参阅图1,所示为本发明第一实施例中的标准化数据采集传输方法,包括步骤S11-S15。
S11、获取数据接入需求,根据数据接入需求调取与数据接入需求对应的消息包,对消息包进行解析,以得到多种网络消息。
当系统接入接收端时,开始数据传输,其中,当网络消息由系统传输至第三方时,接收端为第三方,当第三方传输至系统时,系统为接收端,在本实施例中,接收端为第三方。根据数据接入需求分析需从系统中采集的消息包,对消息包进行解析可得到多种数据类型的网络消息。
S12、根据每种网络消息中的数据结构生成与网络消息一一对应的协议配置文件。
从系统中采集多种网络消息后,通信系统软件的传输结构通常为1字节对齐的结构,如果要使用这个结构,使用者必须将该结构加入到源代码中,然后重编译。这意味着每次处理消息个数的增减都需要改变软件状态,因此本发明实施例中,将软件与业务进行解偶处理,软件解耦的本质是提高各模块的内聚性,降低模块间的耦合性。
通过上述网络消息的结构体在内存中的存储方式进行分析,可以了解到各个变量在结构体中的相对存储位置、占空间大小和变量类型等属性,加上名称、粒度等基本属性,根据每个变量的基本属性,设计xml结构来描述各网络消息的结构体,该xml结构称为标准化的协议配置文件,最终得到与每个网络消息一一对应协议配置文件。
S13、根据每一网络消息对应的协议配置文件将网络消息分解成多个类的集合,多个类形成对应每个网络消息的结构对象。
协议配置文件中每个变量对应一个基本数据类型,且包含了该变量在所处大结构中的位置等信息,于是我们根据协议配置文件中每一种变量设计专属的“类”来维护该变量,使得每个变量都对应为一个专属“类”。这些专属的“类”的主要工作就是从大结构内存中截取该变量所占的内存,然后根据基本类型(配置文件中的“type_attr”)进行对外赋值。根据这种设计模式,可以将消息结构与软件彻底解偶,从而消息种类、个数、结构上的变更不再需要变更软件,只需要变更协议配置文件即可。
软件处理的主要对象由结构体转变为协议配置文件,对于协议配置文件中种类丰富的变量类型,需要设计对应的“类”来进行处理。
协议配置文件配合处理“类”协同工作就能实现消息结构的解析。一个消息的数据结构根据对应的协议配置文件,将它所包含的变量分解为多个“类”的集合,当解析一个消息时,每个类根据协议配置文件中的开始位置与内存大小,将其成员变量的内存数据读取到类之中,再根据变量类型输出为对应的值,这种由多个“类”组合成的集合即形成对应每个网络消息的结构对象,该网络消息的结构对象包含了消息包的所有信息内容。
由此可见,软件与结构体的结构之间彻底解偶,网络消息的内存从某通信系统中获取,通过预处理获取网络消息的协议配置文件,根据协议配置文件构造所有类,生成对应网络消息的结构对象,通过结构对象能定位到其所有变量类的实例对象从而实现变量访问。
S14、对每个网络消息的结构对象进行序列化处理得到包含消息包中所有信息内容的字节序列。
如图5所示,结构对象为了方便在不同的网元之间存储传输,获取结构对象中所有的状态信息,将结构对象的状态信息写入数据存储区,转换为可以存储传输的字节序列,这一过程称之为序列化。在序列化过程使用标准化的xml来描述千变万化的网络消息数据结构,从而实现了网络消息数据结构的标准化。
S15、将字节序列传输至接收端,对接收端接收的字节序列进行反序列化处理后,得到对应消息包的结构对象,根据消息包的结构对象读取到消息包中所有的信息内容。
在实现了消息包中所有网络消息数据结构的标准化之后,将这些消息的内容传递到第三方使用者。通过类的结构可知,在第三方得到结构对象之后,可以遍历取得所有变量的存储位置、数据大小、数据类型以及数据存储区的内容,通过这些信息,可以格式化一个结构对象,读取数据存储区的内容并初始化这个结构对象,使得字节序列恢复为网络消息的结构对象,该过程即反序列化。在反序列化之后可以得到一个对应协议配置文件的结构对象,通过结构对象可得到消息包中所有的信息内容,第三方使用者可以通过对象的成员函数方便的访问到结构的各个成员变量的值,至此完成了一个消息包的封装、传输、解析过程。
其中,封装好的消息数据无法被第三方使用者直接访问,因第三方使用者不具有解密、解压和解析消息的能力。可通过数据配置管理工具软件预先设计的包含以上几个能力的动态库提供给第三方使用者。对外接口由提供“struct”的结构体头文件的方式改为提供协议配置文件、协议说明文件以及第三方动态库的方式,这种方式使得业务上消息数的增减,消息结构的变化仅需同步调整xml协议,不再引起软件的变更。业务与软件的关联性进行了弱化,从而实现对外接口的标准化。
综上,本发明上述实施例当中的标准化数据采集传输方法,通过将消息包中多种结构的网络消息转换为对应的协议配置文件,再根据协议配置文件构造所有类,生成一个结构对象,将结构对象进行序列化处理形成字节序列传输至第三方,再通过反序列化将字节序列恢复为结构对象,通过对应的协议配置文件对结构对象进行解析,从而实现消息输入输出的解耦,网络消息结构的变化仅需同步调整协议配置文件,降低了解析工作量,从而提高了开发效率。
实施例二
请参阅图2,所示为本发明第二实施例中的标准化数据采集传输方法,包括步骤S21-S27。
S21、获取数据接入需求,根据数据接入需求调取与数据接入需求对应的消息包,对消息包进行解析,以得到多种网络消息。
当系统接入接收端时,开始数据传输,其中,当网络消息由系统传输至第三方时,接收端为第三方,当第三方传输至系统时,系统为接收端,在本实施例中,接收端为第三方。根据数据接入需求分析需从系统中采集的消息包,对消息包进行解析可得到多种数据类型的网络消息。
S22、数据接入需求包括数据传输方式,根据数据传输方式确定数据传输插件,数据传输插件用于消息包的数据采集、数据处理和数据传输。
针对不同的系统、不同的第三方使用者,代码与软件不可直接使用,需要重新建立项目,花费大量时间参考之前项目进行重写或者模块迁移,导致重复开发。
因此在本发明实施例中,消息的传递主要使用插件,插件按进度可分为采集插件、处理插件与传输插件。根据第三方的数据传输方式要求,确定加载不同类型的插件。
对于数据桥接来说,消息的来源是通过采集某通信系统的数据。按照采集方式来划分类别的话,可以分为网络采集与数据库采集;消息的输出是第三方使用者,常用的传输方式有udp、tcp、数据库,也可以在第三方使用者原有传输方式的基础上来做适配。现有的方案中,为了适配不同的运用场景,需要开发多个版本,在每次使用时即可在先前建立的多个版本插件中进行复用,避免出现重复开发的问题。
采集插件包含网络采集插件和数据库采集插件;处理插件包含网络消息处理插件和数据库数据处理插件;传输插件包含udp传输插件和tcp传输插件。采集插件和处理插件与前端业务联系较紧密,程序的状态比较稳定,传输插件与第三方使用者联系较紧密,为适配第三方多种类的通信所以程序的状态经常变更。
以上所有插件必须定义并申明继承自接口的派生类,实现接口的所有纯虚函数。根据实际接口情况确定是否重载非纯虚函数。接口的主要成员函数如表1中所示。
表1
序号 | 接口名称 | 是否纯虚 | 说明 |
1 | GetDefaultSettings | 否 | 返回插件的名称与说明 |
2 | UpdateSettings | 否 | 更新插件的配置并同步更新配置文件 |
3 | GetSettingValue | 否 | 通过关键词查询配置的值 |
4 | SetPlatformEntifyId | 否 | 设置插件所用公共资源的id号 |
5 | GetPlatformEntifyId | 否 | 返回插件所用公共资源的id号 |
6 | GetProtocalConfigMgr | 否 | 获取协议配置文件管理器对象 |
7 | InitSettings | 是 | 定义配置文件中的配置项与默认取值 |
8 | Process | 是 | 插件处理主函数 |
9 | SetNotifySender | 是 | 设置与平台交互数据时,数据的发送对象 |
10 | SetNotifyReceiver | 是 | 设置与平台交互数据时,数据的接收对象 |
根据数据接入需求分析需从系统中采集的网络消息和传输方式,根据采集的网络消息和传输方式确定插件。在加载所有的插件,针对不同的第三方使用者,向其发布不同插件。例如张三只需要获取网络采集中的某些消息,通过tcp的传输方式接收。那么发布给张三的软件只需包含框架平台软件、网络采集插件、网络处理插件和tcp传输件以及对应的协议配置文件即可。其中框架平台软件、各插件的状态都没有产生变更,只需要排列组合就可以满足不同第三方使用者。
如图4所示,当系统与第三方准备数据传输时,数据桥接平台加载插件目录下所有的插件,系统采集的网络消息生成消息包,数据桥接平台消息处理适配器根据消息包获取相关处理进度并实时更新处理进度,当开始进行传输时,通过预先加载好的插件开始传输处理,对外发送消息包,以将消息包从系统传输至第三方。
S23、根据网络消息的数据结构确定所需的协议配置文件。
每个网络消息对应一个协议配置文件,如果由人工来手动配置的话工作量很大,容易出错,不能很好的实现消息的标准化。通过协议转换配置工具自动为网络消息配置协议配置文件能够快速实现“struct”结构体转换为xml格式的协议配置文件。
如图6所示,协议转换配置工具的输入主要是网络消息的头文件(.h文件)中的结构,加载某类别所有的头文件,选择需要转换的结构,预览需要转换的结构中所有变量的基本情况;然后对结构数据进行预处理,为新生成的结构添加上统一协议头,同时对协议进行编辑,修改协议的名称、接口版本、有效期、变量的说明、变量是否对外公布等信息。协议编辑好了之后,通过生成协议功能,生成标准化的协议配置文件。并根据每个网络消息的数据结构最终确定消息包的所有标准化的协议配置文件。
标准化的协议配置文件为xml格式文件,不适合作为接口文档对外提供,可以通过生成Excel接口功能,将标准化的协议配置文件的数据接口生成为Excel的接口文档,也称协议说明文件,包括文件的结构、别名、名称、类型、粒度和取值说明。
协议转换配置工具的输入为包含了“struct”结构的头文件(.h文件),输出为协议配置文件和协议说明文件。协议配置文件提供给框架平台软件与第三方使用者开发的软件在运行时加载使用,协议说明文件提供给第三方使用者在开发阶段使用。
S24、根据每种网络消息中的数据结构生成与网络消息一一对应的协议配置文件。
从系统中采集多种网络消息后,通信系统软件的传输结构通常为1字节对齐的结构,如果要使用这个结构,使用者必须将该结构加入到源代码中,然后重编译。这意味着每次处理消息个数的增减都需要改变软件状态,因此本发明实施例中,将软件与业务进行解偶处理,软件解耦的本质是提高各模块的内聚性,降低模块间的耦合性。
通过上述网络消息的结构体在内存中的存储方式进行分析,可以了解到各个变量在结构体中的相对存储位置、占空间大小和变量类型等属性,加上名称、粒度等基本属性,根据每个变量的基本属性,设计xml结构来描述各网络消息的结构体,该xml结构称为标准化的协议配置文件,最终得到与每个网络消息一一对应协议配置文件。
S25、根据每一网络消息对应的协议配置文件将网络消息分解成多个类的集合,多个类形成对应每个网络消息的结构对象。
协议配置文件中每个变量对应一个基本数据类型,且包含了该变量在所处大结构中的位置等信息,于是我们根据协议配置文件中每一种变量设计专属的“类”来维护该变量,使得每个变量都对应为一个专属“类”。这些专属的“类”的主要工作就是从大结构内存中截取该变量所占的内存,然后根据基本类型(配置文件中的“type_attr”)进行对外赋值。根据这种设计模式,可以将消息结构与软件彻底解偶,从而消息种类、个数、结构上的变更不再需要变更软件,只需要变更协议配置文件即可。
软件处理的主要对象由结构体转变为协议配置文件,对于协议配置文件中种类丰富的变量类型,需要设计对应的“类”来进行处理。
协议配置文件配合处理“类”协同工作就能实现消息结构的解析。一个消息的数据结构根据对应的协议配置文件,将它所包含的变量分解为多个“类”的集合,当解析一个消息时,每个类根据协议配置文件中的开始位置与内存大小,将其成员变量的内存数据读取到类之中,再根据变量类型输出为对应的值,这种由多个“类”组合成的集合即形成对应每个网络消息的结构对象,该网络消息的结构对象包含了消息包的所有信息内容。
由此可见,软件与结构体的结构之间彻底解偶,网络消息的内存从某通信系统中获取,通过预处理获取网络消息的协议配置文件,根据协议配置文件构造所有类,生成对应网络消息的结构对象,通过结构对象能定位到其所有变量类的实例对象从而实现变量访问。
S26、对每个网络消息的结构对象进行序列化处理得到包含消息包中所有信息内容的字节序列。
如图5所示,结构对象为了方便在不同的网元之间存储传输,获取结构对象中所有的状态信息,将结构对象的状态信息写入数据存储区,转换为可以存储传输的字节序列,这一过程称之为序列化。在序列化过程使用标准化的xml来描述千变万化的网络消息数据结构,从而实现了网络消息数据结构的标准化。
S27、将字节序列传输至接收端,对接收端接收的字节序列进行反序列化处理后,得到对应消息包的结构对象,根据消息包的结构对象读取到消息包中所有的信息内容。
在实现了消息包中所有网络消息数据结构的标准化之后,将这些消息的内容传递到第三方使用者。通过类的结构可知,在第三方得到结构对象之后,可以遍历取得所有变量的存储位置、数据大小、数据类型以及数据存储区的内容,通过这些信息,可以格式化一个结构对象,读取数据存储区的内容并初始化这个结构对象,使得字节序列恢复为网络消息的结构对象,该过程即反序列化。在反序列化之后可以得到一个对应协议配置文件的结构对象,通过结构对象可得到消息包中所有的信息内容,第三方使用者可以通过对象的成员函数方便的访问到结构的各个成员变量的值,至此完成了一个消息包的封装、传输、解析过程。
其中,封装好的消息数据无法被第三方使用者直接访问,因第三方使用者不具有解密、解压和解析消息的能力。可通过数据配置管理工具软件预先设计的包含以上几个能力的动态库提供给第三方使用者。对外接口由提供“struct”的结构体头文件的方式改为提供协议配置文件、协议说明文件以及第三方动态库的方式,这种方式使得业务上消息数的增减,消息结构的变化仅需同步调整xml协议,不再引起软件的变更。业务与软件的关联性进行了弱化,从而实现对外接口的标准化。
可选的,在本发明实施例中还提供一框架平台软件,用于加载协议配置文件与各种功能插件,使之协同工作,完成数据传输任务。
如图7所示,框架平台软件的体系结构包括系统接入层、插件管理层、协议管理层和基础应用层。其中各层的功能包括:
网络接入服务:接入到某通信系统通信网络,通过网络获取网络消息。
数据库接入服务:接入到某通信系统数据库,通过数据库获取网络消息。
网络采集插件:获取通过网络接收的网络消息,设置处理进度并向下分发。
网络处理插件:获取采集插件分发的网络消息,进行识别、分类、解码、重新编码,设置处理进度并向下分发。
数据库采集插件:定时从数据库中查询新发送的网络消息,设置处理进度并向下分发。
数据库处理插件:获取采集插件分发的数据库消息,进行识别、分类、重新编码,设置处理进度并向下分发。
UDP传输插件:获取重新编码的消息,使用UDP协议进行网络传输。
TCP传输插件:获取重新编码的消息,使用TCP协议进行网络传输。
消息插件处理进度调度服务:所有插件分发的中转站,根据处理进度自动进行分发操作。
协议加载服务:递归加载指定目标下所有协议文件,使用协议管理器管理所有已加载的协议。
协议识别匹配服务:根据每个消息的特征码匹配对应协议,并且返回匹配成功协议的相关信息。
协议查询服务:对程序提供协议查询、协议扩展信息查询、协议属性列表查询。
授权监控服务:软件使用实施一机一码,新装用户要授权才可以正常使用。
系统运行监控服务:实时监控软件运行状态,如果异常崩溃能自动重启软件。
系统日志服务:实时打印软件的运行状态日志。
系统检测服务:实时检测某通信系统关键服务的运行状态,异常告警。
框架平台软件的主要功能是整合协议配置文件、各类别采集插件、处理插件和传输插件,使之协同完成网络消息从采集到协议转换,再传输给接收端使用。
通过本实施例中的标准化数据采集传输方法,同时对接石家庄某单位、南京某单位、北京某单位的数据采集业务需求。其实施方式如下:
其中石家庄需要采集网络消息60余种,传输方式是tcp传输;南京需要采集网络消息110余种,传输方式是dds传输;北京需要采集网络消息70余种,数据库数据40余种,传输方式是udp传输。这三个项目的研制工作量如表2所示。
表2
项目 | 框架平台 | 协议 | 采集插件 | 处理插件 | 传输插件 |
石家庄 | 初次研制,工作量较大 | 配置60余种协议 | 研制网络采集,工作量较大 | 研制网络消息处理,工作量较大 | 初次研制,工作量较大。主要研制了常用的udp、tcp传输 |
南京 | 仅修改联试问题,工作量小,系统进行迭代更稳定 | 原有基础上再配置50余种 | 基本无需研制工作 | 基本无需研制工作 | 研制dds传输插件,研制工作量较小 |
北京 | 仅修改联试问题,工作量小,系统进行迭代更稳定 | 原有基础上再配置40余种 | 研制数据库采集,之前功能可复用,工作量较小 | 研制数据库消息处理,之前功能可复用,工作量较小 | 基本无需研制工作 |
从上表可以看出,在初次建立框架平台时工作量较大,而在后期,协议配置文件可通过配置工具自行配置,插件可进行复用,随着整个产品的功能性越来越丰富,研制所需要花费的代价将越来越小,有效提升了工作效率。
综上,本发明上述实施例当中的标准化数据采集传输方法,通过将消息包中多种结构的网络消息转换为对应的协议配置文件,再根据协议配置文件构造所有类,生成一个结构对象,将结构对象进行序列化处理形成字节序列传输至第三方,再通过反序列化将字节序列恢复为结构对象,通过对应的协议配置文件对结构对象进行解析,从而实现消息输入输出的解耦,网络消息结构的变化仅需同步调整协议配置文件,降低了解析工作量,从而提高了开发效率。
实施例三
本发明实施例中提供一种标准化数据采集传输系统,请参阅图3,所示本实施例中的标准化数据采集传输方法系统,所述系统包括:
数据接入模块,获取数据接入需求,根据所述数据接入需求调取与所述数据接入需求对应的消息包,对所述消息包进行解析,以得到多种网络消息;
协议配置文件转换模块,用于根据每种所述网络消息中的数据结构生成与所述网络消息一一对应的协议配置文件;
结构对象生成模块,用于根据每一网络消息对应的协议配置文件将所述网络消息分解成多个类的集合,多个所述类形成对应每个所述网络消息的结构对象;
序列化模块,用于对每个所述网络消息的结构对象进行序列化处理得到包含所述消息包中所有信息内容的字节序列;
反序列化模块,用于将所述字节序列传输至接收端,对所述接收端接收的字节序列进行反序列化处理后,得到对应所述消息包的结构对象,所述结构对象包含所述消息包中所有的信息内容。
进一步的,在一些其他可选实施例中,所述协议配置文件转换模块包括:
协议配置单元,用于提取所述网络消息中的多个变量,确定每个所述变量在所述网络消息结构体中的基本属性,通过可扩展标记语言对每个所述变量的基本属性进行定义,得到与所述网络消息一一对应的协议配置文件。
进一步的,在一些其他可选实施例中,所述结构对象生成模块包括:
类构建单元,用于获取每一网络消息对应的协议配置文件的多个变量,根据每个所述变量构建对应的类,多个所述类形成对应所述网络消息的结构对象。
进一步的,在一些其他可选实施例中,所述序列化模块包括:
字节序列生成单元,用于获取所述结构对象的状态信息,将所述结构对象的状态信息写入数据存储区,得到可存储传输的字节序列,所述字节序列包含所述消息包中所有信息内容。
进一步的,在一些其他可选实施例中,所述反序列化模块包括:
字节序列初始化单元,用于根据所述字节序列获取所述结构对象中所有变量,根据每个所述变量的基本属性读取所述数据存储区的内容,并初始化所述字节序列得到对应所述网络消息的结构对象,所述网络消息的结构对象包含所述消息包的所有信息内容。
进一步的,在一些其他可选实施例中,所述数据接入需求包括数据传输方式,所述系统还包括:
插件加载模块,用于根据所述数据传输方式确定数据传输插件,所述数据传输插件用于所述消息包的数据采集、数据处理和数据传输。
进一步的,在一些其他可选实施例中,所述系统还包括:
纯虚函数模块,用于获取所述插件的继承接口类型,根据所述继承接口类型确定插件重载纯虚函数或非纯虚函数。
进一步的,在一些其他可选实施例中,所述协议配置模块包括:
协议配置工具模块,用于获取网络消息中的头文件,选取所述头文件中需转换的数据结构,对所述数据结构进行编辑协议名称、选择协议版本、修改协议有效期、添加变量说明以及勾选对外公布选项,最终生成标准化的协议配置文件。
进一步的,在一些其他可选实施例中,所述系统还包括:
协议说明生成模块,用于获取所述标准化的协议配置文件的接口功能,根据所述接口功能生成对应所述标准化的协议配置文件的Excel接口文档,所述Excel接口文档即协议说明文件。
上述各模块、单元被执行时所实现的功能或操作步骤与上述方法实施例大体相同,在此不再赘述。
综上,本发明上述实施例当中的标准化数据采集传输系统,通过将消息包中多种结构的网络消息转换为对应的协议配置文件,再根据协议配置文件构造所有类,生成一个结构对象,将结构对象进行序列化处理形成字节序列传输至第三方,再通过反序列化将字节序列恢复为结构对象,通过对应的协议配置文件对结构对象进行解析,从而实现消息输入输出的解耦,网络消息结构的变化仅需同步调整协议配置文件,降低了解析工作量,从而提高了开发效率。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种标准化数据采集传输方法,其特征在于,应用于标准化数据采集传输系统,所述方法包括:
获取数据接入需求,根据所述数据接入需求调取与所述数据接入需求对应的消息包,对所述消息包进行解析,以得到多种网络消息;
根据每种所述网络消息中的数据结构生成与所述网络消息一一对应的协议配置文件;
根据每一网络消息对应的协议配置文件将所述网络消息分解成多个类的集合,多个所述类形成对应每个所述网络消息的结构对象;
对每个所述网络消息的结构对象进行序列化处理得到包含所述消息包中所有信息内容的字节序列;
将所述字节序列传输至接收端,对所述接收端接收的字节序列进行反序列化处理后,得到对应所述消息包的结构对象,根据所述消息包的结构对象读取到所述消息包中所有的信息内容。
2.根据权利要求1所述的标准化数据采集传输方法,其特征在于,所述根据每种所述网络消息中的数据结构生成与所述网络消息一一对应的协议配置文件的步骤包括:
提取所述网络消息中的多个变量,确定每个所述变量在所述网络消息结构体中的基本属性,根据标准化的协议配置文件对每个所述变量的基本属性进行定义,得到与所述网络消息一一对应的协议配置文件。
3.根据权利要求2所述的标准化数据采集传输方法,其特征在于,所述根据每一网络消息对应的协议配置文件将所述网络消息分解成多个类的集合,多个所述类形成对应每个所述网络消息的结构对象的步骤包括:
获取每一网络消息对应的协议配置文件的多个变量,根据每个所述变量构建对应的类,多个所述类形成对应所述网络消息的结构对象。
4.根据权利要求3所述的标准化数据采集传输方法,其特征在于,所述对每个所述网络消息的结构对象进行序列化处理得到包含所述消息包中所有信息内容的字节序列的步骤包括:
获取所述结构对象的状态信息,将所述结构对象的状态信息写入数据存储区,得到可存储传输的字节序列,所述字节序列包含所述消息包中所有信息内容。
5.根据权利要求4所述的标准化数据采集传输方法,其特征在于,所述对所述接收端接收的字节序列进行反序列化处理后,得到对应所述消息包的结构对象,根据所述消息包的结构对象读取到所述消息包中所有的信息内容的步骤包括:
根据所述字节序列获取所述结构对象中所有变量,根据每个所述变量的基本属性读取所述数据存储区的内容,并初始化所述字节序列得到对应所述网络消息的结构对象,所述网络消息的结构对象包含所述消息包的所有信息内容。
6.根据权利要求1所述的标准化数据采集传输方法,其特征在于,所述数据接入需求包括数据传输方式,所述获取数据接入需求,根据所述数据接入需求调取与所述数据接入需求对应的消息包的步骤后还包括:
根据所述数据传输方式确定数据传输插件,所述数据传输插件用于所述消息包的数据采集、数据处理和数据传输。
7.根据权利要求6所述的标准化数据采集传输方法,其特征在于,所述根据所述数据传输方式确定数据传输插件的步骤后包括:
获取所述插件的继承接口类型,根据所述继承接口类型确定插件重载纯虚函数或非纯虚函数。
8.根据权利要求1所述的标准化数据采集传输方法,其特征在于,所述根据每种所述网络消息中的数据结构生成与所述网络消息一一对应的协议配置文件的步骤之前包括:
获取网络消息中的头文件,选取所述头文件中需转换的数据结构,对所述数据结构进行编辑协议名称、选择协议版本、修改协议有效期、添加变量说明以及勾选对外公布选项,最终生成标准化的协议配置文件。
9.根据权利要求8所述的标准化数据采集传输方法,其特征在于,所述根据每种所述网络消息中的数据结构生成与所述网络消息一一对应的协议配置文件的步骤后包括:
获取所述标准化的协议配置文件的接口功能,根据所述接口功能生成对应所述标准化的协议配置文件的Excel接口文档,所述Excel接口文档即协议说明文件。
10.一种标准化数据采集传输系统,其特征在于,所述系统包括:
数据接入模块,获取数据接入需求,根据所述数据接入需求调取与所述数据接入需求对应的消息包,对所述消息包进行解析,以得到多种网络消息;
协议配置文件转换模块,用于根据每种所述网络消息中的数据结构生成与所述网络消息一一对应的协议配置文件;
结构对象生成模块,用于根据每一网络消息对应的协议配置文件将所述网络消息分解成多个类的集合,多个所述类形成对应每个所述网络消息的结构对象;
序列化模块,用于对每个所述网络消息的结构对象进行序列化处理得到包含所述消息包中所有信息内容的字节序列;
反序列化模块,用于将所述字节序列传输至接收端,对所述接收端接收的字节序列进行反序列化处理后,得到对应所述消息包的结构对象,所述结构对象包含所述消息包中所有的信息内容。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210817886.3A CN114900570B (zh) | 2022-07-13 | 2022-07-13 | 一种标准化数据采集传输方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210817886.3A CN114900570B (zh) | 2022-07-13 | 2022-07-13 | 一种标准化数据采集传输方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114900570A true CN114900570A (zh) | 2022-08-12 |
CN114900570B CN114900570B (zh) | 2022-10-18 |
Family
ID=82729284
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210817886.3A Active CN114900570B (zh) | 2022-07-13 | 2022-07-13 | 一种标准化数据采集传输方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114900570B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115442157A (zh) * | 2022-11-03 | 2022-12-06 | 杭州乾冠数字物联技术有限公司 | 一种网络安全传输方法及系统 |
CN116431117A (zh) * | 2023-04-18 | 2023-07-14 | 南京朗立微集成电路有限公司 | 使用结构化数据与嵌入式主机通信的方法和系统 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1791119A (zh) * | 2005-12-12 | 2006-06-21 | 中兴通讯股份有限公司 | 对移动通信系统信令消息的追踪方法 |
CN103036877A (zh) * | 2012-12-10 | 2013-04-10 | 北京中创信测科技股份有限公司 | 一种基于tlv格式协议的编解码代码生成装置及方法 |
CN103150298A (zh) * | 2013-03-13 | 2013-06-12 | 河海大学 | 基于Web的流域水调业务可定制复杂表格生成方法 |
US20160050128A1 (en) * | 2014-08-12 | 2016-02-18 | Raco Wireless LLC | System and Method for Facilitating Communication with Network-Enabled Devices |
CN106598581A (zh) * | 2016-12-06 | 2017-04-26 | 成都能通科技有限公司 | 基于xml的asterix报文解析代码生成方法 |
CN106713423A (zh) * | 2016-12-06 | 2017-05-24 | 上海斐讯数据通信技术有限公司 | 一种云接入点控制器中分布式数据的处理方法及装置 |
CN108667725A (zh) * | 2018-04-25 | 2018-10-16 | 哈尔滨电气股份有限公司 | 一种基于多种接入及边缘计算的工业软网关以及实现方法 |
CN110597500A (zh) * | 2019-07-26 | 2019-12-20 | 北京柠檬微趣科技股份有限公司 | 消息结构的序列化和反序列化方法及装置 |
CN111125997A (zh) * | 2019-12-27 | 2020-05-08 | 中国银行股份有限公司 | 文本数据标准化处理方法及装置 |
KR20210007803A (ko) * | 2019-07-12 | 2021-01-20 | 쿠팡 주식회사 | 통합된 통신 방식을 사용하여 네트워크들을 인터페이싱하기 위한 시스템들 및 방법들 |
CN114449061A (zh) * | 2021-12-23 | 2022-05-06 | 深圳市长龙铁路电子工程有限公司 | 一种可配置式的协议解析方法、装置、设备及存储介质 |
-
2022
- 2022-07-13 CN CN202210817886.3A patent/CN114900570B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1791119A (zh) * | 2005-12-12 | 2006-06-21 | 中兴通讯股份有限公司 | 对移动通信系统信令消息的追踪方法 |
CN103036877A (zh) * | 2012-12-10 | 2013-04-10 | 北京中创信测科技股份有限公司 | 一种基于tlv格式协议的编解码代码生成装置及方法 |
CN103150298A (zh) * | 2013-03-13 | 2013-06-12 | 河海大学 | 基于Web的流域水调业务可定制复杂表格生成方法 |
US20160050128A1 (en) * | 2014-08-12 | 2016-02-18 | Raco Wireless LLC | System and Method for Facilitating Communication with Network-Enabled Devices |
CN106598581A (zh) * | 2016-12-06 | 2017-04-26 | 成都能通科技有限公司 | 基于xml的asterix报文解析代码生成方法 |
CN106713423A (zh) * | 2016-12-06 | 2017-05-24 | 上海斐讯数据通信技术有限公司 | 一种云接入点控制器中分布式数据的处理方法及装置 |
CN108667725A (zh) * | 2018-04-25 | 2018-10-16 | 哈尔滨电气股份有限公司 | 一种基于多种接入及边缘计算的工业软网关以及实现方法 |
KR20210007803A (ko) * | 2019-07-12 | 2021-01-20 | 쿠팡 주식회사 | 통합된 통신 방식을 사용하여 네트워크들을 인터페이싱하기 위한 시스템들 및 방법들 |
CN110597500A (zh) * | 2019-07-26 | 2019-12-20 | 北京柠檬微趣科技股份有限公司 | 消息结构的序列化和反序列化方法及装置 |
CN111125997A (zh) * | 2019-12-27 | 2020-05-08 | 中国银行股份有限公司 | 文本数据标准化处理方法及装置 |
CN114449061A (zh) * | 2021-12-23 | 2022-05-06 | 深圳市长龙铁路电子工程有限公司 | 一种可配置式的协议解析方法、装置、设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115442157A (zh) * | 2022-11-03 | 2022-12-06 | 杭州乾冠数字物联技术有限公司 | 一种网络安全传输方法及系统 |
CN116431117A (zh) * | 2023-04-18 | 2023-07-14 | 南京朗立微集成电路有限公司 | 使用结构化数据与嵌入式主机通信的方法和系统 |
CN116431117B (zh) * | 2023-04-18 | 2023-12-29 | 南京朗立微集成电路有限公司 | 使用结构化数据与嵌入式主机通信的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114900570B (zh) | 2022-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114900570B (zh) | 一种标准化数据采集传输方法及系统 | |
US7752598B2 (en) | Generating executable objects implementing methods for an information model | |
US8112388B2 (en) | Dependency processing of computer files | |
CN112532415B (zh) | 一种配置变更的方法及相关装置 | |
CN110912782B (zh) | 一种数据采集方法、装置及存储介质 | |
CN111400393B (zh) | 基于多应用平台的数据处理方法和装置、存储介质 | |
CN113467972A (zh) | 通信接口构造方法、装置以及计算机设备、存储介质 | |
CN111443901A (zh) | 一种基于Java反射的业务扩展方法及装置 | |
CN112445861B (zh) | 信息处理方法、装置、系统及存储介质 | |
CN117453280B (zh) | 一种代码拓扑和业务拓扑生成方法、装置、设备及介质 | |
CN113204558A (zh) | 数据表结构自动更新方法和装置 | |
CN113660307A (zh) | 一种算法综合集成服务系统 | |
CN111045928B (zh) | 一种接口数据测试方法、装置、终端及存储介质 | |
CN112579604A (zh) | 测试系统的造数方法、装置、设备及存储介质 | |
CN112134900A (zh) | 数据报文处理方法及装置 | |
CN111552713A (zh) | 一种数据校验方法及装置 | |
CN116483479A (zh) | 多维度调用接口的方法和装置、设备、介质 | |
CN106936643B (zh) | 一种设备联动方法以及终端设备 | |
CN114036178A (zh) | 服务接口生成方法、装置、计算机及可读存储介质 | |
KR20140123126A (ko) | 변전소 구성 언어 기반의 데이터베이스 생성 방법 및 시스템 | |
CN111324542B (zh) | 一种Web应用回归测试用例选择系统、方法以及设备 | |
US20030140081A1 (en) | Method and system of accessing shared resources using configurable management information bases | |
CN118092982A (zh) | 一种云原生应用的多集群运维方法、设备及介质 | |
US11966719B2 (en) | Event consumption for high-level programing language platform | |
Mihajlović et al. | Challenges of Integrating Machine Vision Algorithms Based on Franca IDL into Adaptive AUTOSAR Environment |
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 |