CN109194617B - Xml报文的自动解析、封装方法和装置 - Google Patents
Xml报文的自动解析、封装方法和装置 Download PDFInfo
- Publication number
- CN109194617B CN109194617B CN201810865984.8A CN201810865984A CN109194617B CN 109194617 B CN109194617 B CN 109194617B CN 201810865984 A CN201810865984 A CN 201810865984A CN 109194617 B CN109194617 B CN 109194617B
- Authority
- CN
- China
- Prior art keywords
- collector
- request message
- equipment
- data
- field device
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供一种XML报文的自动解析、封装方法和装置,该方法包括:接收服务器发送的请求报文,请求报文用于请求获取第一现场设备的监控数据,请求报文包括第一现场设备的标识;根据请求报文,从预先存储的解析规则中获取与请求报文对应的第一解析规则;根据第一解析规则解析请求报文,得到预先定义的第一结构的参数数据;根据第一现场设备的标识以及现场设备与采集器的对应关系,确定第一现场设备设置的第一采集器;将第一结构的参数数据发送给第一采集器,提高了开发效率,且易于后期维护。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种XML报文的自动解析、封装方法和装置。
背景技术
随着移动互联网的快速发展,人们的生活、工作和通信基站、数据中心等机房密不可分,保证机房的稳定运行变得极为重要,为保障机房稳定运行,需要实时获知机房设备的运行状态、环境参数以及异常信息等。因此,通常对机房进行实时监控,以获知机房的实时状态。
目前通常采用自动化的监控系统对机房进行实时监控,该监控系统分为平台端和设备端,平台端是动力环境监控系统的监控和管理中心,主要完成全网监控信息的统计处理及分析,一般是在管理的服务器中实现,设备端是动力环境监控系统的监控单元,例如:设置在机房中的监控设备,主要负责采集机房中的数据,进行简单的处理分析,并上报平台端,同时将平台下发的控制命令转发至现场设备。
然而,随着越来越多的行业使用自动化监控系统,由于每个行业对不同应用场景的监控需求有一定的差异,且每个行业存在多种不同的规范,因此现有的监控设备每接入一种使用不同协议的平台时,就要针对该平台开发一套新的报文解析和封装的程序,以使该平台和监控设备之间能进行数据交互,不仅导致耗时耗力,而且不易维护。
发明内容
本发明实施例提供一种可扩展标记语言(Extensible Markup Language,XML)报文的自动解析、封装方法和装置,以解决监控设备每接入一种使用不同协议的平台时,就要针对该平台开发一套新的报文解析和封装的程序,不仅导致耗时耗力,而且不易维护的问题。
第一方面,本发明实施例提供一种XML报文的自动解析、封装方法,包括:
接收服务器发送的请求报文,所述请求报文用于请求获取第一现场设备的监控数据,所述请求报文包括所述第一现场设备的标识;
根据所述请求报文,从预先存储的解析规则中获取与所述请求报文对应的第一解析规则;
根据所述第一解析规则解析所述请求报文,得到预先定义的第一结构的参数数据;
根据所述第一现场设备的标识以及现场设备与采集器的对应关系,确定所述第一现场设备设置的第一采集器;
将所述第一结构的参数数据发送给所述第一采集器。
可选的,所述方法还包括:
获取所述第一采集器采集的数据;
根据所述请求报文,从预先存储的封装规则中获取与所述请求报文对应的第一封装规则;
将所述第一采集器采集的数据的参数按照所述第一封装规则进行赋值,封装得到响应报文;
将所述响应报文发送给所述服务器。
可选的,所述接收第一采集器发送的请求报文之前,所述方法还包括:
接收所述第一采集器发送的连接请求;所述连接请求携带所述第一采集器的序列号;
在预先存储的采集器链表中查找所述第一采集器的序列号是否存在;
若所述采集器链表中不存在所述第一采集器的序列号,则对所述第一采集器进行初始化,并在所述采集器链表中增加所述第一采集器的操作句柄。
可选的,所述对所述第一采集器进行初始化,并在所述采集器链表中增加所述第一采集器的操作句柄,包括:
新建所述第一采集器的操作句柄;
从数据库中获取所述监控设备与所述第一采集器之间的心跳周期和心跳超时次数;
根据所述第一采集器的序列号初始化所述操作句柄中的序列号字段,并将所述心跳周期和心跳超时次数增加至所述操作句柄中,将得到的操作句柄增加至所述采集器链表中。
可选的,所述方法还包括:
向所述第一采集器获取所述第一采集器接入的设备信息,所述设备信息包括所述设备的设备类型、偏移地址以及资源编号;
根据所述设备信息,以及所述设备对应的监控点信息,建立对所述设备的监控点列表,所述监控点列表中的数据结构为所述第一结构。
第二方面,本发明实施例提供一种XML报文的自动解析、封装装置,包括:
接收模块,用于接收服务器发送的请求报文,所述请求报文用于请求获取第一现场设备的监控数据,所述请求报文包括所述第一现场设备的标识;
处理模块,用于根据所述请求报文,从预先存储的解析规则中获取与所述请求报文对应的第一解析规则;
根据所述第一解析规则解析所述请求报文,得到预先定义的第一结构的参数数据;
根据所述第一现场设备的标识以及现场设备与采集器的对应关系,确定所述第一现场设备设置的第一采集器;
发送模块,用于将所述第一结构的参数数据发送给所述第一采集器。
可选的,所述处理模块还用于:
获取所述第一采集器采集的数据;
根据所述请求报文,从预先存储的封装规则中获取与所述请求报文对应的第一封装规则;
将所述第一采集器采集的数据的参数按照所述第一封装规则进行赋值,封装得到响应报文;
所述发送模块还用于,将所述响应报文发送给所述服务器。
可选的,所述接收模块还用于:
接收所述第一采集器发送的连接请求;所述连接请求携带所述第一采集器的序列号;
可选的,所述处理模块还用于:
在预先存储的采集器链表中查找所述第一采集器的序列号是否存在;
若所述采集器链表中不存在所述第一采集器的序列号,则对所述第一采集器进行初始化,并在所述采集器链表中增加所述第一采集器的操作句柄。
可选的,所述处理模块具体用于:
新建所述第一采集器的操作句柄;
从数据库中获取所述监控设备与所述第一采集器之间的心跳周期和心跳超时次数;
根据所述第一采集器的序列号初始化所述操作句柄中的序列号字段,并将所述心跳周期和心跳超时次数增加至所述操作句柄中,将得到的操作句柄增加至所述采集器链表中。
可选的,所述处理模块还用于:
向所述第一采集器获取所述第一采集器安装的设备信息,所述设备信息包括所述设备的设备类型、偏移地址以及资源编号;
根据所述设备信息,以及所述设备对应的监控点信息,建立对所述设备的监控点列表,所述监控点列表中的数据结构为所述第一结构。
第三方面,本发明实施例提供一种电子设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面任一项所述的XML报文的自动解析、封装方法。
第四方面,本发明实施例提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面任一项所述的XML报文的自动解析、封装方法。
本实施例提供的XML报文的自动解析、封装方法和装置,该方法通过接收服务器发送的请求报文,该请求报文用于请求获取第一现场设备的监控数据,该请求报文包括第一现场设备的标识,根据请求报文,从预先存储的解析规则中获取与该请求报文对应的第一解析规则,根据该第一解析规则解析该请求报文,得到预先定义的第一结构的参数数据,根据第一现场设备的标识以及现场设备与采集器的对应关系,确定第一现场设备设置的第一采集器,再将第一结构的参数数据发送给第一采集器,提高了开发效率且易于后期维护。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的XML报文的自动解析、封装的系统的架构示意图;
图2为本发明实施例提供的XML报文的自动解析、封装方法的流程示意图一;
图3为本发明实施例提供的XML报文的自动解析、封装方法的流程示意图二;
图4为本发明实施例提供的XML报文的自动解析、封装方法的流程示意图三;
图5为本发明实施例提供的监控系统的示意图;
图6为本发明实施例提供的XML报文的自动解析、封装装置的结构示意图一;
图7为本发明实施例提供的电子设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为本发明实施例提供的XML报文的自动解析、封装的系统的架构示意图。如图1所示,本实施例提供的系统包括服务器101(即平台端)、监控设备102(即设备端)、采集器103、现场设备104,其中采集器103可以为温湿度采集器、电压采集器、电量采集器等;现场设备104可以为需要监控的设备,例如:网络机房、实验室测试机房、数据业务机房等,采集器103可以安装在现场设备104上,或通过网络和现场设备104建立连接,本方案对采集器103和现场设备104的连接方式不做特别限制。
应理解,服务器101可以和至少一个监控设备102进行数据交互,且每个监控设备102可以和至少一个采集器103进行数据交互,本方案以服务器、一个监控设备、一个采集器为例进行说明。
不同设备之间可以进行数据交互,例如,采集器103采集现场设备的至少一个参数,如:温度,再通过监控设备102将该温度发送给服务器101,服务器101记录并存储实时的温度,另外,该服务器101还可以根据预先设定的温度阈值,判断该温度是否超过该阈值并通过监控设备102下发指令以提示用户调节温度。
上述方案存在的问题在于,监控设备102每接入一种使用不同协议的平台101时,都要针对该平台开发一套新的报文解析和封装的程序,这对于开发人员来讲,不仅耗时耗力,且面对大量的程序不易统一维护。本实施例提供一种XML报文的自动解析、封装方法,该方法基于不同的解析规则完成报文的自动解析、封装,实现了不同设备间的数据交互,提高了开发效率且易于维护。下面采用具体的实施例进行说明。
图2为本发明实施例提供的XML报文的自动解析、封装方法的流程示意图一,本实施例的执行主体为图1所示实施例中的监控设备。如图2所示,该方法包括:
S201、接收服务器发送的请求报文。
请求报文可以用于请求获取第一现场设备的监控数据,这里的第一现场设备的监控数据可以为空调当前的温度、测试仪表当前的测试数据、电脑当前运行的参数等,另外,该请求报文包括第一现场设备的标识。应理解,监控设备本地存储有要监控的现场设备的标识以及现场设备和采集器的对应关系,比如,空调对应的标识为“空调”,对应的采集器为温度采集器,本方案对于现场设备的标识的形式不做特别限制。
可选的,请求报文还可以用于请求更改第一现场设备的配置参数,比如:空调的设定温度、工作模式、风力等。
需要说明的是,采用不同接口协议的服务器对应的请求报文的格式可以是不同的,以B接口协议为例,如表1所示,该请求报文包括一级节点、二级节点、二级节点还包括报文的类型和报文内容。
表1
S202、根据该请求报文,从预先存储的解析规则中获取与请求报文对应的第一解析规则。
在本步骤中,由于监控设备在出厂或升级后,本地会存储有多个XML描述文件,现有技术中可以利用XML描述解析文件获取多个解析、封装规则,在此不再赘述。当监控设备接收到服务器发送的请求报文,调用报文解析模块,查找该请求报文对应的第一解析规则,具体地,遍历所有的报文解析规则,以请求报文内容中的值类型为关键字进行查找,应理解,解析规则中包含值类型,找到节点的值类型和请求报文的报文内容中节点的值类型匹配的解析规则,再以请求报文中节点的名称和值进行查找,直到找到和请求报文中节点的名称和值匹配的第一解析规则。
S203、根据该第一解析规则解析该请求报文,得到预先定义的第一结构的参数数据。
在本步骤中,监控设备存储有预先定义的第一结构的参数数据,该第一结构是监控设备预存储的可识别的一种格式,该第一结构的参数数据即将请求报文赋值给第一结构。根据第一解析规则解析请求报文,得到预先定义的第一结构的参数数据,具体地,拷贝一份第一解析规则,将请求报文中相应节点的值赋值到第一解析规则中,得到预先定义的第一结构的参数数据,即完成对请求报文的解析。
S204、根据第一现场设备的标识以及现场设备与采集器的对应关系,确定该第一现场设备设置的第一采集器。
在本步骤中,监控设备本地存储要监控的现场设备的标识以及现场设备和采集器的对应关系。监控设备根据第一现场设备的标识,找到第一现场设备对应的第一采集器,应理解,第一采集器可以和第一现场设备可以通过网线连接接入。
S205、将该第一结构的参数数据发送给该第一采集器。
在本步骤中,监控设备将第一结构的参数数据发送给采集器,即将服务器的需求发送给第一采集器。需要说明的是,监控设备要将第一结构的参数数据进行封装才能发送给第一采集器,由于不同采集器和监控设备之间的接口协议可以是不同的,所以封装规则也可以是不同的,本方案对这里的封装规则不做限制。
本实施例提供的XML报文的自动解析、封装方法,通过接收服务器发送的请求报文,根据该请求报文,从预先存储的解析规则中获取与请求报文对应的第一解析规则,再根据该第一解析规则解析请求报文,得到预先定义的第一结构的参数数据,根据第一现场设备的标识以及现场设备与采集器的对应关系,确定该第一现场设备设置的第一采集器,将第一结构的参数数据发送给第一采集器,提高了开发效率且易于后期维护。
图3为本发明实施例提供的XML报文的自动解析、封装方法的流程示意图二,如图3所示,本实施例在图2实施例之后,该方法还包括:
S301、获取第一采集器采集的数据。
在本步骤中,第一采集器可以采集第一现场设备的当前数据即监控数据,如:空调的温度、测试仪表的电压、电流等。其中,第一采集器和第一现场设备可以通过网线连接,当第一采集器采集到第一现场设备的当前数据即监控数据时,监控设备可以定时向第一采集器发送获取监控数据的指令,或者,第一采集设备主动上报实时监控数据。
可选的,第一采集设备还可以获取第一现场设备当前的配置参数,如:电压、电流、频率等,监控设备可以在接收到用于请求更改第一现场设备的配置参数的请求报文后,再通过第一采集器发送给第一现场设备,第一现场设备按照指示修改配置参数后,第一采集器获取第一现场设备的当前配置参数并发送给监控设备,监控设备获取到第一采集器转发的第一现场设备的当前配置参数。
S302、根据请求报文,从预先存储的封装规则中获取与该请求报文对应的第一封装规则。
参见实施例S203中第一解析规则的实现过程,对于第一封装规则的实现过程,此处不再赘述。
S303、将该第一采集器采集的数据的参数按照第一封装规则进行赋值,封装得到响应报文。
S304、将该响应报文发送给服务器。
在上述步骤中,监控设备拷贝一份第一封装规则,遍历解析规则,从监控设备的结构体即数据库中找到相同编号的数据,并将监控数据赋值到第一封装规则中对应编号的字段中,需要说明的是,解析完成后数据库中保存的数据分别有对应的编号,比如:“1号(温度)”,封装规则里也包括“1号”,那么在封装时,在数据库中找到“1号”,将监控的温度值为20℃赋值到“1号”对应的字段里,即“1号(温度20℃)”。可选的,可以将第一现场设备的当前配置参数按照第一封装规则进行赋值,封装得到响应报文,并发送给服务器。应理解,不同服务器和监控设备之间的接口协议也可以是不同的,以B接口协议为例,响应报文的格式如表2所示,该响应报文包括一级节点、二级节点、二级节点还包括报文类型和报文内容。
表2
本实施例提供的XML报文的自动解析、封装方法,通过获取第一采集器采集的数据,根据请求报文,从预先存储的封装规则中获取与请求报文对应的第一封装规则,将第一采集器采集的数据的参数按照该第一封装规则进行赋值,封装得到响应报文,将该响应报文发送给服务器,提高了开发效率且易于后期维护。
图4为本发明实施例提供的XML报文的自动解析、封装方法的流程示意图三,如图4所示,在S201之前,所述方法还包括:
S401、接收第一采集器发送的连接请求。
S402、在预先存储的采集器链表中未查找到该第一采集器的序列号。
S403、对该第一采集器进行初始化,并在该采集器链表中增加该第一采集器的操作句柄。
在上述步骤中,监控设备预先存储采集器链表,该采集器链表包括采集器名称、采集器序列号、心跳周期等信息,当接收到第一采集器发送的连接请求时,其中,该连接请求中携带第一采集器的序列号,监控设备在采集器链表中查找该第一采集器的序列号是否存在,若不存在,则对该第一采集器进行初始化,并在该采集器链表中增加该第一采集器的操作句柄。
在一种可能的实现中,新建第一采集器的操作句柄,从数据库中获取监控设备与该第一采集器之间的心跳周期和心跳超时次数,再根据该第一采集器的序列号初始化操作句柄中的序列号字段,并将心跳周期和心跳超时次数增加至该操作句柄中,再将得到的操作句柄增加至采集器链表中。
可选的,监控设备还可以向第一采集器获取该第一采集器接入的设备信息即现场设备的信息,该设备信息包括设备的设备类型、偏移地址以及资源编号。根据设备信息,以及存储的该设备对应的监控点信息,建立对该设备的监控点列表,其中该监控点列表中的数据结构为上述步骤S103中的第一结构,此处不再赘述。
可选的,采集器链表中存在该第一采集器的序列号,则本实施例步骤结束,直接执行图2实施例中的S201。
本实施例提供的XML报文的自动解析、封装方法,通过接收第一采集器发送的连接请求,在预先存储的采集器链表中查找第一采集器的序列号是否存在,若采集器链表中不存在第一采集器的序列号,则对第一采集器进行初始化,并在采集器链表中增加所述第一采集器的操作句柄,本实施例在接收服务器发送的请求之前,确认了第一采集器的状态并确保第一采集器在预先存储的采集器链表中,提高了开发效率且易于维护。
下面对该方案进行详细说明,图5为本发明实施例提供的监控系统的示意图,如图5所示,监控设备包括:北向协议处理模块、数据采集模块、网络接口模块、数据库、Modbus协议模块,北向协议处理模块用于处理与服务器的数据交互;数据采集模块用于管理采集器,并和采集器进行数据交互;网络接口模块负责与采集器的网络通信;数据库用于保存系统的配置信息;Modbus协议模块负责解析和封装与采集器之间通信的Modbus协议报文。
以SQLite数据库为例,该数据库中包含主机(站点)信息表、设备(现场设备)信息表、监控点信息表、监控中心(Supervision Center,SC)服务器信息表、采集器信息表,如表3、4、5、6、7所示。
表3
表4
表5
表6
表7
在本实施例中,通过模板表来展示不同现场设备的监控点的区别,模板表包含设备寄存器信息模板表(表8)、监控点基本信息模板表(表9)、监控点属性模板表(表10)。
表8
设备类型 | 设备寄存器数量 |
dev_type | reg_total_num |
表9
表10
监控点ID | 监控点类型 | 监控点名称 |
signal_id | signal_type | signal_name |
第一步、监控系统启动时,监控设备先启动网络接口模块,并监听预先配置的端口,以监听采集器发送的数据。
首先,网络接口模块使用用户数据包协议(User Datagram Protocol,UDP)与建立采集器通信,再在网络接口模块中注册数据采集模块中的网络连接初始化回调函数和数据接收回调函数,等待采集器的连接。
第二步、启动数据采集模块并进行初始化。
初始化时,该模块先从数据库的采集器信息表中获取已保存的采集器信息,然后等待采集器发送的连接请求,当有采集器主动向监控设备发送连接请求时,该模块会先向采集器获取其序列号,然后在采集器链表中查找该序列号是否存在,若不存在,则新建对应采集器的操作句柄,将采集器名称初始化为“采集器”,用该采集器的序列号初始化序列号字段;该模块再从数据库中获取与采集器之间的心跳周期和心跳超时次数,然后将该句柄插入采集器链表中,同时保存到数据库中;再向采集器获取其设备的设备类型、偏移地址、资源编号,根据获取的这些信息,该模块从模板表中获取该设备对应的监控点信息,建立监控点列表,将监控点列表保存至监控设备的的结构体即数据库中,作为该监控设备的结构体成员。
第三步、监控设备调用XML描述文件解析模块,加载并解析对应的XML描述文件。
由于监控设备本地存储的是多个XML描述文件,监控设备调用XML描述文件解析模块,加载并解析对应的XML描述文件,获取对应的解析、封装规则,具体过程如下:
以本发明中使用B接口协议对应的报文为例,报文格式如下:
对应的XML描述文件如下:
由上可知,PacketType为报文类型0、1、2分别对应XML、JSON、字节流,每个节点的No属性为相应变量的编号,ValueType属性表示该节点值的类型,0、1、2、3、4分别对应节点、固定字符串、可变字符串、无值、关键字。
监控设备在解析上面的XML描述文件时,遍历并提取所有节点信息,将节点信息保存到结构体即数据库中,相同层级节点的结构体保存在节点链表中,作为报文封装/解析规则。其中,结构体中包含节点的编号、名称、值类型、值、属性链表、子节点链表,属性结构体中包含节点的编号、名称、值类型、值。
第四步、启动北向协议处理模块并进行初始化。
由于每个协议处理模块均作为独立的线程运行,且互不影响,这里将北向协议处理模块的数据初始化回调函数注册到数据采集模块中,该数据初始化回调函数主要完成北向接口中设备和监控点信息的初始化工作。具体地,对北向协议处理模块初始化时,数据采集模块首先从数据库的设备信息表(表4)中获取已保存的现场设备信息,从监控点属性模板表(表10)中获取监控点属性,并从该数据采集模块中获取采集器中的现场设备信息,然后根据采集器的现场设备信息查找北向协议处理模块中是否存在该设备,若不存在,则新增一个设备,每个设备通过采集器序列号以绑定采集器,这里通过资源编号与实际物理设备绑定,并将该现场设备的信息保存到数据库中,其余设备信息需要人为设定,再从该现场设备的监控点属性模板表(表10)中获取监控点的属性,通过序号与采集器中的监控点建立映射关系,并将新增的监控点属性信息保存到数据库中。
第五步、北向协议处理模块启动后,从数据库中加载主机信息和SC服务器信息,调用注册接口,传入主机编码、SC服务器的网络之间互连的协议(Internet Protocol,IP)、SC服务器的端口号,按照数据库中配置的注册间隔、注册次数上限,向SC服务器注册,注册成功后,按照数据库中配置的心跳周期、心跳超时次数上限,进行主机与SC服务器的链接状态判断。
第六步、当网络接口模块监听到有采集器的连接请求时,调用连接初始化回调函数,该回调函数主要用于将连接信息保存到连接队列中,数据采集模块会自动遍历该连接队列,通过队列中的连接信息向采集器获取其序列号,然后根据返回的序列号决定更新当前已有采集器的连接信息还是新增采集器。
第七步、当网络接口模块监听到有数据请求时,调用数据接收回调函数,该回调函数主要用于将采集器发送的数据放入对应采集器句柄的数据缓冲队列中。
第八步、数据采集模块会自动遍历采集器队列,若采集器处于在线状态且未初始化,则会先获取该采集器中的设备信息,然后根据设备信息中的资源编号来完成对现有设备的信息更新或者新增设备,以完成对采集器管理模块设备信息的初始化。
第九步、数据采集模块中的设备信息初始化完成后,会调用在该模块中注册的北向协议处理模块的初始化回调函数,该回调函数主要用于完成北向接口协议处理模块中的设备及监控点信息的初始化。
第十步、北向协议处理模块的数据初始化完成之后,即可正常运行数据处理逻辑。当接收到SC发送请求报文时,先调用报文解析模块,遍历报文解析规则,找到规则中值类型为关键字的节点,将这些节点的名称和值与请求报文中对应的节点和值进行比较,找到所有关键字均匹配的解析规则,拷贝一份该解析规则,同时遍历解析规则的非关键字字段和报文,将报文中相应节点的值赋值到解析规则的对应值字段中,完成报文的解析。解析完成后,调用报文封装模块,拷贝一份对应的封装规则,遍历解析规则,从保存数据的结构体中查找相同编号的数据,将将采集到的数据赋值到封装规则中对应编号的字段,然后遍历保存该封装规则的结构体,根据结构体成员变量的编号、名称、值类型、值,封装成响应报文并返回SC。
图6为本发明实施例提供的XML报文的自动解析、封装装置的结构示意图一。如图6所示,该装置60包括:接收模块601、处理模块602、发送模块603。
在该方案的具体实现中,处理模块602可以用来实现前述实施例中的北向协议处理模块、数据采集模块以及Modbus协议模块的功能,该装置还可以包括用于存储数据和计算机程序的存储模块,该存储模块可用于实现数据库的功能,上述接收模块601和发送模块603可以在网络接口模块的辅助下实现。
接收模块601,用于接收服务器发送的请求报文,所述请求报文用于请求获取第一现场设备的监控数据,所述请求报文包括所述第一现场设备的标识;
处理模块602,用于根据所述请求报文,从预先存储的解析规则中获取与所述请求报文对应的第一解析规则;
根据所述第一解析规则解析所述请求报文,得到预先定义的第一结构的参数数据;
根据所述第一现场设备的标识以及现场设备与采集器的对应关系,确定所述第一现场设备设置的第一采集器;
发送模块603,用于将所述第一结构的参数数据发送给所述第一采集器。
可选的,所述处理模块602还用于:
获取所述第一采集器采集的数据;
根据所述请求报文,从预先存储的封装规则中获取与所述请求报文对应的第一封装规则;
将所述第一采集器采集的数据的参数按照所述第一封装规则进行赋值,封装得到响应报文;
所述发送模块603还用于,将所述响应报文发送给所述服务器。
可选的,所述接收模块601还用于:
接收所述第一采集器发送的连接请求;所述连接请求携带所述第一采集器的序列号;
可选的,所述处理模块602还用于:
在预先存储的采集器链表中查找所述第一采集器的序列号是否存在;
若所述采集器链表中不存在所述第一采集器的序列号,则对所述第一采集器进行初始化,并在所述采集器链表中增加所述第一采集器的操作句柄。
可选的,所述处理模块602具体用于:
新建所述第一采集器的操作句柄;
从数据库中获取所述监控设备与所述第一采集器之间的心跳周期和心跳超时次数;
根据所述第一采集器的序列号初始化所述操作句柄中的序列号字段,并将所述心跳周期和心跳超时次数增加至所述操作句柄中,将得到的操作句柄增阿基至所述采集器链表中。
可选的,所述处理模块602还用于:
向所述第一采集器获取所述第一采集器接入的设备信息,所述设备信息包括所述设备的设备类型、偏移地址以及资源编号;
可选的,所述处理模块603还用于:
根据所述设备信息,以及所述设备对应的监控点信息,建立对所述设备的监控点列表,所述监控点列表中的数据结构为所述第一结构。
本实施例提供的装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,本实施例此处不再赘述。
图7为本发明实施例提供的电子设备的硬件结构示意图。如图7所示,本实施例的电子设备70包括:处理器701以及存储器702;其中
存储器702,用于存储计算机执行指令;
处理器701,用于执行存储器存储的计算机执行指令,以实现上述实施例中接收设备所执行的各个步骤。具体可以参见前述方法实施例中的相关描述。
可选地,存储器702既可以是独立的,也可以跟处理器701集成在一起。
当存储器702独立设置时,该电子设备还包括总线703,用于连接所述存储器702和处理器701。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上所述的XML报文的自动解析、封装方法。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。
应理解,上述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本发明附图中的总线并不限定仅有一根总线或一种类型的总线。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(Application Specific Integrated Circuits,ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (8)
1.一种XML报文的自动解析、封装方法,其特征在于,应用于监控设备,所述方法包括:
接收服务器发送的请求报文,所述请求报文用于请求获取第一现场设备的监控数据,所述请求报文包括所述第一现场设备的标识和与所述服务器的接口协议相关的一级节点、二级节点,所述二级节点还包括报文的类型和报文内容;
根据所述请求报文中的与所述服务器的接口协议相关的一级节点、二级节点,从预先存储的解析规则中获取与所述请求报文对应的第一解析规则;
根据所述第一解析规则解析所述请求报文,得到预先定义的第一结构的参数数据,其中,所述参数数据保存在数据库中,且所述数据库中保存的参数数据分别有对应的编号;
根据所述第一现场设备的标识以及现场设备与采集器的对应关系,确定所述第一现场设备设置的第一采集器;
将所述第一结构的参数数据发送给所述第一采集器;
获取所述第一采集器采集的数据;
根据所述请求报文,从预先存储的封装规则中获取与所述请求报文对应的第一封装规则,其中,所述第一封装规则中包括编号;
从所述数据库中找到与所述第一封装规则中的编号相同的编号,将所述第一采集器采集的数据的参数赋值到所述相同的编号对应的参数数据,封装得到响应报文;
将所述响应报文发送给所述服务器。
2.根据权利要求1所述的方法,其特征在于,所述接收服务器发送的请求报文之前,所述方法还包括:
接收所述第一采集器发送的连接请求;所述连接请求携带所述第一采集器的序列号;
在预先存储的采集器链表中查找所述第一采集器的序列号是否存在;
若所述采集器链表中不存在所述第一采集器的序列号,则对所述第一采集器进行初始化,并在所述采集器链表中增加所述第一采集器的操作句柄。
3.根据权利要求2所述的方法,其特征在于,所述对所述第一采集器进行初始化,并在所述采集器链表中增加所述第一采集器的操作句柄,包括:
新建所述第一采集器的操作句柄;
从数据库中获取所述监控设备与所述第一采集器之间的心跳周期和心跳超时次数;
根据所述第一采集器的序列号初始化所述操作句柄中的序列号字段,并将所述心跳周期和心跳超时次数增加至所述操作句柄中,将得到的操作句柄增加至所述采集器链表中。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
向所述第一采集器获取所述第一采集器接入的设备信息,所述设备信息包括所述设备的设备类型、偏移地址以及资源编号;
根据所述设备信息,以及所述设备对应的监控点信息,建立对所述设备的监控点列表,所述监控点列表中的数据结构为所述第一结构。
5.一种XML报文的自动解析、封装装置,其特征在于,包括:
接收模块,用于接收服务器发送的请求报文,所述请求报文用于请求获取第一现场设备的监控数据以及所述第一现场设备的标识和与所述服务器的接口协议相关的一级节点、二级节点,所述二级节点还包括报文的类型和报文内容;
处理模块,用于根据所述请求报文中的与所述服务器的接口协议相关的一级节点、二级节点,从预先存储的解析规则中获取与所述请求报文对应的第一解析规则;
根据所述第一解析规则解析所述请求报文,得到预先定义的第一结构的参数数据,其中,所述参数数据保存在数据库中,且所述数据库中保存的参数数据分别有对应的编号;
根据所述第一现场设备的标识以及现场设备与采集器的对应关系,确定所述第一现场设备设置的第一采集器;
发送模块,用于将所述第一结构的参数数据发送给所述第一采集器;
所述处理模块还用于:获取所述第一采集器采集的数据;
根据所述请求报文,从预先存储的封装规则中获取与所述请求报文对应的第一封装规则,其中,所述第一封装规则中包括编号;
从所述数据库中找到与所述第一封装规则的编号相同的编号,将所述第一采集器采集的数据的参数赋值到所述相同的编号对应的参数数据,封装得到响应报文;
所述发送模块还用于,将所述响应报文发送给所述服务器。
6.根据权利要求5所述的装置,其特征在于,所述接收模块还用于:
接收所述第一采集器发送的连接请求;所述连接请求携带所述第一采集器的序列号;
所述处理模块还用于,在预先存储的采集器链表中查找所述第一采集器的序列号是否存在;
若所述采集器链表中不存在所述第一采集器的序列号,则对所述第一采集器进行初始化,并在所述采集器链表中增加所述第一采集器的操作句柄。
7.根据权利要求6所述的装置,其特征在于,所述处理模块具体用于:
新建所述第一采集器的操作句柄;
从数据库中获取所述监控设备与所述第一采集器之间的心跳周期和心跳超时次数;
根据所述第一采集器的序列号初始化所述操作句柄中的序列号字段,并将所述心跳周期和心跳超时次数增加至所述操作句柄中,将得到的操作句柄增加至所述采集器链表中。
8.根据权利要求7所述的装置,其特征在于,所述处理装置还用于:
向所述第一采集器获取所述第一采集器接入的设备信息,所述设备信息包括所述设备的设备类型、偏移地址以及资源编号;
根据所述设备信息,以及所述设备对应的监控点信息,建立对所述设备的监控点列表,所述监控点列表中的数据结构为所述第一结构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810865984.8A CN109194617B (zh) | 2018-08-01 | 2018-08-01 | Xml报文的自动解析、封装方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810865984.8A CN109194617B (zh) | 2018-08-01 | 2018-08-01 | Xml报文的自动解析、封装方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109194617A CN109194617A (zh) | 2019-01-11 |
CN109194617B true CN109194617B (zh) | 2021-06-15 |
Family
ID=64920338
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810865984.8A Active CN109194617B (zh) | 2018-08-01 | 2018-08-01 | Xml报文的自动解析、封装方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109194617B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110324163B (zh) * | 2018-03-29 | 2020-11-17 | 华为技术有限公司 | 一种数据传输的方法及相关装置 |
CN109245980B (zh) * | 2018-11-20 | 2021-08-06 | 厦门科灿信息技术有限公司 | Modbus通信协议解析方法、系统及设备和存储介质 |
CN112987652B (zh) * | 2019-12-02 | 2023-01-24 | 智能云科信息科技有限公司 | 机床数据采集方法与装置、机床数据共享方法与装置 |
CN111355787B (zh) * | 2020-02-20 | 2022-11-15 | 北京汽车集团有限公司 | 信息传输方法、装置和电子设备 |
CN111399908B (zh) * | 2020-03-10 | 2023-05-19 | 上海斯同瑞电气科技有限公司 | Modbus协议设备数据采集方法、系统、终端以及介质 |
CN111885119A (zh) * | 2020-07-02 | 2020-11-03 | 天筑科技股份有限公司 | 一种监控单元的数据传输方法及装置 |
CN113504909B (zh) * | 2021-06-30 | 2022-10-14 | 中汽数据(天津)有限公司 | 工业app异构组件数据交换方法及相关设备 |
CN113887173B (zh) * | 2021-10-20 | 2024-06-18 | 中国电子科技集团公司第三十研究所 | 一种基于xml的协议动态组包和解析方法 |
CN114500305B (zh) * | 2022-02-09 | 2023-08-15 | 杭州义益钛迪信息技术有限公司 | 设备监控方法、装置、设备、存储介质及程序产品 |
CN114938397A (zh) * | 2022-05-17 | 2022-08-23 | 浙江木链物联网科技有限公司 | 一种基于kaitai的高效率协议解包组包方法、系统和可读存储介质 |
CN114928663B (zh) * | 2022-06-02 | 2024-08-16 | 蜂助手股份有限公司 | 一种识别回调报文的方法及装置 |
CN115242896B (zh) * | 2022-07-29 | 2023-06-27 | 宁波三星医疗电气股份有限公司 | 动态报文解析方法、装置、电子设备及计算机可读存储介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100454854C (zh) * | 2007-02-16 | 2009-01-21 | 北京航空航天大学 | 分布式网络化即插即用测控系统 |
CN103686848B (zh) * | 2012-09-18 | 2017-01-25 | 中国移动通信集团公司 | 一种家庭物联网报文处理方法、网关、平台及系统 |
CN103092732B (zh) * | 2013-01-23 | 2016-08-17 | 加弘科技咨询(上海)有限公司 | 利用脚本动态监控设备的系统 |
CN104125086A (zh) * | 2013-04-28 | 2014-10-29 | 深圳市同洲电子股份有限公司 | 一种网管多协议适配的方法、装置及系统 |
CN104572692A (zh) * | 2013-10-18 | 2015-04-29 | 镇江鼎拓科技信息有限公司 | 一种基于vs实现xml文档与海量数据库转换方法 |
CN103869787B (zh) * | 2014-03-24 | 2016-05-11 | 南京信息职业技术学院 | 一种基于xml的变电站房间温湿度监控系统 |
CN105025056A (zh) * | 2014-04-25 | 2015-11-04 | 上海迪爱斯通信设备有限公司 | 一种物联网信息采集及监控系统的设计方法 |
CN104717306A (zh) * | 2015-04-02 | 2015-06-17 | 江苏大学 | 一种温室物联网测控系统及其数据同步方法 |
-
2018
- 2018-08-01 CN CN201810865984.8A patent/CN109194617B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109194617A (zh) | 2019-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109194617B (zh) | Xml报文的自动解析、封装方法和装置 | |
CN109951325B (zh) | 一种网络线缆连接检查方法和装置 | |
CN110912782B (zh) | 一种数据采集方法、装置及存储介质 | |
CN113792008B (zh) | 网络拓扑结构的获取方法、装置、电子设备及存储介质 | |
CN111327647A (zh) | 一种容器对外提供服务的方法、装置及电子设备 | |
CN112506755B (zh) | 日志采集方法、装置、计算机设备和存储介质 | |
CN107291608B (zh) | 测试脚本的生成方法、接口的订阅/注册方法及装置 | |
CN111784516A (zh) | 业务路径的确定方法、装置和电子设备 | |
CN114500305B (zh) | 设备监控方法、装置、设备、存储介质及程序产品 | |
CN114430367B (zh) | 物联网的数据采集方法、装置、计算机设备及存储介质 | |
CN114500312B (zh) | 一种通信线路校验方法、装置、电子设备及系统 | |
CN105357267A (zh) | 一种获取服务器信息的方法、装置及系统 | |
CN114860271A (zh) | 一种pxe启动方法、系统、装置及可读存储介质 | |
CN114064312A (zh) | 一种数据处理系统及模型训练方法 | |
CN112202593B (zh) | 数据获取方法、装置、网管系统及计算机存储介质 | |
CN114025027A (zh) | 数据传输脚本的运行方法、装置、存储介质和电子装置 | |
CN108089968A (zh) | 一种宿主机监控虚拟机数据库状态的方法 | |
CN116467315A (zh) | 行为数据的分析方法、装置、设备及存储介质 | |
KR20210000041A (ko) | 로그 데이터의 실시간 분석 방법 및 그 장치 | |
CN116980286A (zh) | 设备配置方法、设备控制方法、存储介质以及终端 | |
CN114745743A (zh) | 一种基于知识图谱的网络分析方法及装置 | |
CN112688884A (zh) | 加密流量自定义应用识别方法、系统、装置及存储介质 | |
CN114079623B (zh) | 用户侧路由器传输能力的识别方法及装置 | |
CN114780432B (zh) | 接口测试方法、装置、设备及存储介质 | |
CN116886445B (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 | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20190111 Assignee: HANGZHOU KONGTROLINK INFORMATION TECHNOLOGY Co.,Ltd. Assignor: HANGZHOU DIANZI University Contract record no.: X2021330000786 Denomination of invention: Automatic parsing and packaging method and device of XML message Granted publication date: 20210615 License type: Common License Record date: 20211208 |
|
EE01 | Entry into force of recordation of patent licensing contract |