本发明涉及数据处理技术领域,尤其涉及一种边缘物联代理装置的数据打包方法及系统。
背景技术:
在电力物联网中,边缘物联代理装置是连接各类采集终端到云端系统的关键设备。边缘计算是指在靠近物或数据源头的网络边缘侧,融合网络、计算、存储、应用核心能力的开放平台,就近提供边缘智能服务,满足行业数字化在敏捷连接、实时业务、数据优化、安全与隐私保护等方面的关键需求。因此,边缘计算技术的突破将通过本地设备实现部分控制,并且在本地边缘计算层完成处理过程,均无需交由云端处理,这种方式将大大提升处理效率,从而减轻云端的负荷。同时,由于边缘计算更加靠近用户,从而能够为用户提供更快的响应,真正实现将需求在边缘端解决。
目前,边缘物联代理装置的软件架构采用的是基于docker容器的微服务架构。每个物联代理包含多个docker,每个docker包含多个应用app,docker为特定的应用app提供独立完整的运行环境,每个应用app采用不同介质和规约,可以外接多个子设备,每个子设备包含多种类型数据。基于以太网的mqtt协议是边缘物联代理装置和云端系统的主流协议,mqtt协议采用订阅发布机制,传输内容为json格式的文本。边缘物联代理装置采用不同介质和规约采集各种子设备的信息数据,再打包为json格式数据通过mqtt协议响应系统的订阅和主动发布数据包。
mqtt协议订阅主题“topic”需要事先约定,json格式的信息文本描述需要适应“topic”,所以信息点模型文件各厂家和各设备都不相同,造成联调困难。
因此如何建立嵌入式边缘物联代理装置信息点模型文件,统一打包数据是本领域亟待解决的技术问题。
技术实现要素:
针对现有技术中存在的问题,本发明提供一种边缘物联代理装置的数据打包方法及系统,采用json语法规则,对装置进行6级标签化的格式化字符串打包,主站只需根据自己的需要配置化订阅分级,无需和设备厂家约定。
为达到上述目的,本发明提供了一种边缘物联代理装置的数据打包方法,包括:
边缘物联代理装置接收到由物联代理平台发送的订阅信息后,对订阅信息中的主题(topic)字符串进行解析,解析出所要订阅的层级;层级包括节点(node)、容器(docker)、应用(app)、设备(device)、数据类型(datatype)以及数据(data);
将所要订阅的层级对应数据以json格式进行打包后,通过mqtt协议主动发送给物联代理平台。
进一步地,将所要订阅的层级对应数据以json格式进行打包,打包的内容包括:
如果层级是节点(node)则打包对应节点下的所有数据,如果层级是容器(docker)则打包对应节点下的对应容器的所有数据,如果层级是应用(app)则打包对应节点下的对应容器下的对应应用的所有数据,如果层级是设备(device)则打包对应节点下的对应容器下的对应应用下的对应设备的所有数据;如果层级是数据类型(datatype)则打包对应节点下的对应容器下的对应应用下的对应设备下的对应类型的所有数据;如果层级是数据(data)则打包对应节点下的对应容器下的对应应用下的对应设备下的对应数据类型下的对应数据。
进一步地,将所要订阅的层级对应数据以json格式进行打包,打包的规则如下:
花括号保存对象;方括号保存数组;数据的书写格式是:名称/值对,冒号,数值;数据之间由逗号分隔;名称/值对包括在双引号中的字段名称。
进一步地,打包的模型文件描述如下:
第一级对象是节点(node)对象用花括号表示,内容包括编号(id),名称(name)容器(docker)属性;第二级对象是容器(docker)对象用方括号表示,内容包括编号(id),名称(name),应用(app)属性,以数组的形式被嵌套在第一级对象的容器(docker)属性中;第三级对象是应用(app)对象,内容包括编号(id),名称(name),设备(device)属性,以数组的形式被嵌套在第二级对象的应用(app)属性中;第四级对象是设备(device)对象,内容包括编号(id),名称(name),类型(datatype)属性,以数组的形式被嵌套在第三级对象的设备(device)属性中;第五级对象是数据类型(datatype)对象,内容包括编号(id),名称(name),数据(data)属性,以数组的形式被嵌套在第四级对象的类型(datatype)属性中;第六级对象是数据(data)对象,内容包括编号(id),名称(name),值(value),fun,sec,info属性,以数组的形式被嵌套在第五级对象的数据类型(datatype)属性中。
进一步地,打包的模型文件描述兼容iec103、iec104、modbus以及cdt协议。
本发明另一方面提供一种边缘物联代理装置的数据打包系统,包括接收模块、解析模块以及打包模块;
接收模块接收到由物联代理平台发送的订阅信息;
解析模块对订阅信息中的主题(topic)字符串进行解析,解析出所要订阅的层级;层级包括节点(node)、容器(docker)、应用(app)、设备(device)、数据类型(datatype)以及数据(data);
打包模块将所要订阅的层级对应数据以json格式进行打包后,通过mqtt协议主动发送给物联代理平台。
进一步地,打包模块打包的内容包括:
如果层级是节点(node)则打包对应节点下的所有数据,如果层级是容器(docker)则打包对应节点下的对应容器的所有数据,如果层级是应用(app)则打包对应节点下的对应容器下的对应应用的所有数据,如果层级是设备(device)则打包对应节点下的对应容器下的对应应用下的对应设备的所有数据;如果层级是数据类型(datatype)则打包对应节点下的对应容器下的对应应用下的对应设备下的对应类型的所有数据;如果层级是数据(data)则打包对应节点下的对应容器下的对应应用下的对应设备下的对应类型的对应数据。
进一步地,打包模块打包的规则如下:
花括号保存对象;方括号保存数组;数据的书写格式是:名称/值对,、冒号,数值;数据之间由逗号分隔;名称/值对包括在双引号中的字段名称。
进一步地,打包模块内置打包模型,对打包的模型文件描述如下:
第一级对象是节点(node)对象用花括号表示,内容包括编号(id),名称(name)容器(docker)属性;第二级对象是容器(docker)对象用方括号表示,内容包括编号(id),名称(name),应用(app)属性,以数组的形式被嵌套在第一级对象的容器(docker)属性中;第三级对象是应用(app)对象,内容包括编号(id),名称(name),设备(device)属性,以数组的形式被嵌套在第二级对象的应用(app)属性中;第四级对象是设备(device)对象,内容包括编号(id),名称(name),类型(datatype)属性,以数组的形式被嵌套在第三级对象的设备(device)属性中;第五级对象是数据类型(datatype)对象,内容包括编号(id),名称(name),数据(data)属性,以数组的形式被嵌套在第四级对象的类型(datatype)属性中;第六级对象是数据(data)对象,内容包括编号(id),名称(name),值(value),fun,sec,info属性,以数组的形式被嵌套在第五级对象的数据类型(datatype)属性中。
进一步地,打包的模型文件描述兼容iec103、iec104、modbus以及cdt协议。
本发明的上述技术方案具有如下有益的技术效果:
本发明采用json语法规则,对装置进行6级标签化的格式化字符串描述,主站只需根据自己的需要配置化订阅分级即可,不用和设备厂家约定,兼容性好。
附图说明
图1为6级标签化的模型文件格式示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
本发明提供一种边缘物联代理装置的数据打包方法,包括如下步骤:
(1)边缘物联代理装置接收到由物联代理平台发送的订阅信息后,对订阅信息中的主题(topic)字符串进行解析,解析出所要订阅的层级;层级包括节点(node)、容器(docker)、应用(app)、设备(device)、数据类型(datatype)以及数据(data);
(2)将所要订阅的层级对应数据以json格式进行打包后,通过mqtt协议主动发送给物联代理平台。
本发明边缘物联代理装置的信息数据模型文件描述采用json格式;装置模型采用node/docker/app/device/datatype/data多级描述;模型文件兼容各种通信规约数据描述,包括:iec103/iec104/modbus/cdt等规约以及各种自定义规约;对mqtt规约需要约定的订阅主题“topic”做了自描述格式化(“/node/docker/app/device/datatype/data”)处理,方便了不同厂家设备的对接联调;解析“topic”字符串,根据解析出的层级打包发送对应层级的数据:如果是“node”级就打包发送该节点下的所有数据,如果是“docker”级就打包发送这个节点下的该容器的所有数据,如果是“app”级就打包发送该节点下的该容器下的该应用app的所有数据,如果是“device”级,就打包发送该节点下的该容器下的该app下的该设备的所有数据;如果层级是数据类型(datatype)则打包对应节点下的对应容器下的对应应用下的对应设备下的对应类型的所有数据;如果层级是数据(data)则打包对应节点下的对应容器下的对应应用下的对应设备下的对应类型的对应数据。
根据上述定义,边缘物联代理装置的模型文件采用分层的形式,6级标签化的模型文件描述如下示意图如图1所示。
json语法规则总结如下:
(1)花括号保存对象;
(2)方括号保存数组;
(3)数据的书写格式是:名称/值对,名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值;
(4)数据之间由逗号分隔。
根据上述的json语法规则,6级标签化的模型文件结构描述如下:在6级标签化的模型文件定义中,第一级对象"node"在花括号中书写;第二级对象"docker"也在花括号中书写;对象"docker"是包含多个第三级对象id、name和“app”的数组,这些第三级对象均在方括号中书写;对象“app”是包含多个第四级对象id、name和“device”的数组,这些第四级对象均在方括号中书写;对象“device”是包含多个第五级对象id、name和“datatype”的数组,这些第五级对象均在方括号中书写;对象“datatype”是包含多个第六级对象id、name和“data”的数组,这些第六级对象均在方括号中书写。
本发明另一方面提供一种边缘物联代理装置的数据打包系统,其特征在于,包括接收模块、解析模块以及打包模块。
接收模块接收到由物联代理平台发送的订阅信息;
解析模块对订阅信息中的主题(topic)字符串进行解析,解析出所要订阅的层级;层级包括节点(node)、容器(docker)、应用(app)、设备(device)、数据类型(datatype)以及数据(data);
打包模块将所要订阅的层级对应数据以json格式进行打包后,通过mqtt协议主动发送给物联代理平台。
打包模块打包的内容包括:
如果层级是节点(node)则打包对应节点下的所有数据,如果层级是容器(docker)则打包对应节点下的对应容器的所有数据,如果层级是应用(app)则打包对应节点下的对应容器下的对应应用的所有数据,如果层级是设备(device)则打包对应节点下的对应容器下的对应应用下的对应设备的所有数据;如果层级是数据类型(datatype)则打包对应节点下的对应容器下的对应应用下的对应设备下的对应类型的所有数据;如果层级是数据(data)则打包对应节点下的对应容器下的对应应用下的对应设备下的对应类型的对应数据。
打包模块打包的规则如下:
花括号保存对象;方括号保存数组;数据的书写格式是:名称/值对,、冒号,数值;数据之间由逗号分隔;名称/值对包括在双引号中的字段名称。
打包模块内置打包模型,对打包的模型文件描述如下:
第一级是节点(node)对象用花括号表示,内容包括编号(id),名称(name),等属性。第二级是容器(docker)对象,内容包括编号(id),名称(name)等属性,以数组的形式(方括号表示)被嵌套在第一级对象的“docker”属性中。第三级对象是应用(app)对象,内容包括编号(id),名称(name)等属性,以数组的形式被嵌套在第二级对象的“app”属性中。第四级对象是设备(device)对象,内容包括编号(id),名称(name)等属性,以数组的形式被嵌套在第三级对象的“dev”属性中。第五级对象是数据类型(datatype)对象,内容包括编号(id),名称(name)等属性,以数组的形式被嵌套在第四级对象的“type”属性中。第六级对象是数据(data)对象,内容包括编号(id),名称(name),值(value),fun(兼容103/104规约用),sec(兼容103/104规约用),info等属性,以数组的形式被嵌套在第五级对象的“data”属性中。
打包的模型文件描述兼容iec103、iec104、modbus以及cdt协议。
综上所述,本发明涉及一种边缘物联代理装置的数据打包方法及系统,边缘物联代理装置接收到由物联代理平台发送的订阅信息后,对订阅信息中的主题(topic)字符串进行解析,解析出所要订阅的层级;层级包括节点(node)、容器(docker)、应用(app)、设备(device)、数据类型(datatype)以及数据(data);将所要订阅的层级对应数据以json格式进行打包后,通过mqtt协议主动发送给物联代理平台。本发明采用json语法规则,对装置进行6级标签化的格式化字符串描述,主站只需根据自己的需要配置化订阅分级即可,不用和设备厂家约定,兼容性好。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
1.一种边缘物联代理装置的数据打包方法,其特征在于,包括:
边缘物联代理装置接收到由物联代理平台发送的订阅信息后,对订阅信息中的主题(topic)字符串进行解析,解析出所要订阅的层级;层级包括节点(node)、容器(docker)、应用(app)、设备(device)、数据类型(datatype)以及数据(data);
将所要订阅的层级对应数据以json格式进行打包后,通过mqtt协议主动发送给物联代理平台。
2.根据权利要求1所述的边缘物联代理装置的数据打包方法,其特征在于,将所要订阅的层级对应数据以json格式进行打包,打包的内容包括:
如果层级是节点(node)则打包对应节点下的所有数据,如果层级是容器(docker)则打包对应节点下的对应容器的所有数据,如果层级是应用(app)则打包对应节点下的对应容器下的对应应用的所有数据,如果层级是设备(device)则打包对应节点下的对应容器下的对应应用下的对应设备的所有数据;如果层级是数据类型(datatype)则打包对应节点下的对应容器下的对应应用下的对应设备下的对应类型的所有数据;如果层级是数据(data)则打包对应节点下的对应容器下的对应应用下的对应设备下的对应数据类型下的对应数据。
3.根据权利要求1或2所述的边缘物联代理装置的数据打包方法,其特征在于,将所要订阅的层级对应数据以json格式进行打包,打包的规则如下:
花括号保存对象;方括号保存数组;数据的书写格式是:名称/值对,、冒号,数值;数据之间由逗号分隔;名称/值对包括在双引号中的字段名称。
4.根据权利要求3所述的边缘物联代理装置的数据打包方法,其特征在于,打包的模型文件描述如下:
第一级对象是节点(node)对象用花括号表示,内容包括编号(id),名称(name)容器(docker)属性;第二级对象是容器(docker)对象用方括号表示,内容包括编号(id),名称(name),应用(app)属性,以数组的形式被嵌套在第一级对象的容器(docker)属性中;第三级对象是应用(app)对象,内容包括编号(id),名称(name),设备(device)属性,以数组的形式被嵌套在第二级对象的应用(app)属性中;第四级对象是设备(device)对象,内容包括编号(id),名称(name),类型(datatype)属性,以数组的形式被嵌套在第三级对象的设备(device)属性中;第五级对象是数据类型(datatype)对象,内容包括编号(id),名称(name),数据(data)属性,以数组的形式被嵌套在第四级对象的类型(datatype)属性中;第六级对象是数据(data)对象,内容包括编号(id),名称(name),值(value),fun,sec,info属性,以数组的形式被嵌套在第五级对象的数据类型(datatype)属性中。
5.根据权利要求1或2所述的边缘物联代理装置的数据打包方法,其特征在于,打包的模型文件描述兼容iec103、iec104、modbus以及cdt协议。
6.一种边缘物联代理装置的数据打包系统,其特征在于,包括接收模块、解析模块以及打包模块;
接收模块接收到由物联代理平台发送的订阅信息;
解析模块对订阅信息中的主题(topic)字符串进行解析,解析出所要订阅的层级;层级包括节点(node)、容器(docker)、应用(app)、设备(device)、数据类型(datatype)以及数据(data);
打包模块将所要订阅的层级对应数据以json格式进行打包后,通过mqtt协议主动发送给物联代理平台。
7.根据权利要求6所述的边缘物联代理装置的数据打包系统,其特征在于,打包模块打包的内容包括:
如果层级是节点(node)则打包对应节点下的所有数据,如果层级是容器(docker)则打包对应节点下的对应容器的所有数据,如果层级是应用(app)则打包对应节点下的对应容器下的对应应用的所有数据,如果层级是设备(device)则打包对应节点下的对应容器下的对应应用下的对应设备的所有数据;如果层级是数据类型(datatype)则打包对应节点下的对应容器下的对应应用下的对应设备下的对应类型的所有数据;如果层级是数据(data)则打包对应节点下的对应容器下的对应应用下的对应设备下的对应类型的对应数据。
8.根据权利要求6或7所述的边缘物联代理装置的数据打包系统,其特征在于,打包模块打包的规则如下:
花括号保存对象;方括号保存数组;数据的书写格式是:名称/值对,、冒号,数值;数据之间由逗号分隔;名称/值对包括在双引号中的字段名称。
9.根据权利要求8所述的边缘物联代理装置的数据打包系统,其特征在于,打包模块内置打包模型,对打包的模型文件描述如下:
第一级对象是节点(node)对象用花括号表示,内容包括编号(id),名称(name)容器(docker)属性;第二级对象是容器(docker)对象用方括号表示,内容包括编号(id),名称(name),应用(app)属性,以数组的形式被嵌套在第一级对象的容器(docker)属性中;第三级对象是应用(app)对象,内容包括编号(id),名称(name),设备(device)属性,以数组的形式被嵌套在第二级对象的应用(app)属性中;第四级对象是设备(device)对象,内容包括编号(id),名称(name),类型(datatype)属性,以数组的形式被嵌套在第三级对象的设备(device)属性中;第五级对象是数据类型(datatype)对象,内容包括编号(id),名称(name),数据(data)属性,以数组的形式被嵌套在第四级对象的类型(datatype)属性中;第六级对象是数据(data)对象,内容包括编号(id),名称(name),值(value),fun,sec,info属性,以数组的形式被嵌套在第五级对象的数据类型(datatype)属性中。
10.根据权利要求6或7所述的边缘物联代理装置的数据打包系统,其特征在于,打包的模型文件描述兼容iec103、iec104、modbus以及cdt协议。
技术总结