一种基于中间件和mqtt协议的物联网通信系统和方法

文档序号:1966042 发布日期:2021-12-14 浏览:17次 >En<

阅读说明:本技术 一种基于中间件和mqtt协议的物联网通信系统和方法 (Internet of things communication system and method based on middleware and MQTT protocol ) 是由 刘宇 房海波 吴仁堂 王帅 于 2021-11-16 设计创作,主要内容包括:本发明属于物联网通信技术领域,具体涉及一种基于中间件和MQTT协议的物联网通信系统和方法,所述物联网通信系统包括通信设备层和传输层;所述通信设备层包括HTTP协议设备、COAP协议设备、MQTT二进制传输设备、TCP协议设备和UDP协议设备;所述传输层由下到上依次为数据接入层、MQTT自有协议中间件和AMQP协议内部数据通信中间件;所述AMQP协议内部数据通信中间件配置为与上层业务系统通信连接;本发明(1)通过建立传输层的各类协议通信设备接入中间件和数据解析中间件,使得本发明的物联网通信系统从传统业务系统中解耦,独立运行;(2)TCP、UDP通信采用脚本引擎进行数据解析,简化了数据解析的流程。(The invention belongs to the technical field of communication of the Internet of things, and particularly relates to a communication system and a method of the Internet of things based on middleware and an MQTT protocol, wherein the communication system of the Internet of things comprises a communication equipment layer and a transmission layer; the communication equipment layer comprises HTTP protocol equipment, COAP protocol equipment, MQTT binary transmission equipment, TCP protocol equipment and UDP protocol equipment; the transmission layer sequentially comprises a data access layer, an MQTT self-owned protocol middleware and an AMQP protocol internal data communication middleware from bottom to top; the AMQP protocol internal data communication middleware is configured to be in communication connection with an upper service system; the invention (1) enables the communication system of the Internet of things to be decoupled from the traditional service system and to operate independently by establishing various protocol communication equipment access middleware and data analysis middleware of a transmission layer; (2) TCP and UDP communication adopts a script engine to analyze data, thereby simplifying the flow of data analysis.)

一种基于中间件和MQTT协议的物联网通信系统和方法

技术领域

本发明专利属于物联网通信技术领域,具体涉及一种基于中间件和MQTT协议的物联网通信系统和方法 。

背景技术

现有的物联网通信中上层业务系统集成底层硬件设备,主要采用针对硬件做Socket通信以进行TCP或UDP通信的方式,或者使用HTTP、COAP协议方式,但这种方式需要业务系统做定制化改造,数据传输标准不统一,导致数据在各类协议之间进行频繁转换,造成硬件设备集成复杂、业务系统代码复用率低的问题。

发明内容

本发明针对上述现有的物联网通信中硬件设备集成复杂、业务系统代码复用率低的问题,提供了一种基于中间件和MQTT协议的物联网通信系统和方法 。

为了达到上述目的,本发明采用的技术方案为:一种基于中间件和MQTT协议的物联网通信系统,包括通信设备层和传输层;

所述通信设备层包括HTTP协议设备、COAP协议设备、MQTT二进制传输设备、TCP协议设备和UDP协议设备;

所述传输层由下到上依次为数据接入层、MQTT自有协议中间件和AMQP协议内部数据通信中间件;所述AMQP协议内部数据通信中间件配置为与上层业务系统通信连接;

所述数据接入层包括HTTP协议数据接收中间件、COAP自有协议数据接收中间件、MQTT二进制数据接收解析中间件、TCP协议数据接收脚本引擎中间件和UDP协议数据接收脚本引擎中间件;

所述HTTP协议数据接收中间件、COAP自有协议数据接收中间件、MQTT二进制数据接收解析中间件、TCP协议数据接收脚本引擎中间件和UDP协议数据接收脚本引擎中间件分别通过数据上传端口与通信设备层中相应的通信设备通信连接。

作为优选,所述物联网通信系统还包括数据存储中间件;所述数据存储中间件与AMQP协议内部数据通信中间件通信连接,所述数据存储中间件为通信设备层的每个设备建立一个数据库,并按照时间顺序存储数据。

作为优选,所述物联网通信系统还包括明文传输的MQTT设备,所述明文传输的MQTT设备与MQTT自有协议中间件通信连接。

作为优选,所述AMQP协议内部数据通信中间件开设有应用程序编程接口API,通过所述应用程序编程接口API上层业务系统调用所述物联网通信系统的历史数据。

基于所述的基于中间件和MQTT协议的物联网通信系统的一种基于中间件和MQTT协议的物联网通信方法,包括AMPQ协议内部数据通信中间件通信方法、MQTT自有协议中间件通信方法和数据接入层通信方法;

所述MQTT自有协议中间件通信方法为所述MQTT自有协议中间件制定有TOPIC内部通信规范和数据内容内部通信规范,所述数据内容采用JSON格式并采用明文通信方式进行传输;所述MQTT自有协议中间件接收到数据接入层上传数据后进行解析,并打包为AMQP协议数据发送至 AMQP协议内部数据通信中间件;所述MQTT自有协议中间件接收到AMPQ协议内部数据通信中间件下发的数据后进行解析,并通过数据接入层相应的中间件将数据下发至通信设备层相应的通信设备;

所述数据接入层通信方法为:当上层业务系统需要获取数据时,所述HTTP协议数据接收中间件、COAP自有协议数据接收中间件、MQTT二进制数据接收解析中间件、TCP协议数据接收脚本引擎中间件和UDP协议数据接收脚本引擎中间件分别通过数据上传端口接收相应的通信设备上传的协议数据并进行解析,解析后的数据转换为MQTT协议数据,并按照MQTT自有协议中间件的数据发送规范发送给MQTT自有协议中间件;当上层业务系统需要下发数据时,所述HTTP协议数据接收中间件、COAP自有协议数据接收中间件、MQTT二进制数据接收解析中间件、TCP协议数据接收脚本引擎中间件和UDP协议数据接收脚本引擎中间件分别接收MQTT自有协议中间件按照数据内容内部通信规范下发的数据,并进行解析,解析后的数据转换为对应的协议数据并下发至对应的通信设备;

所述AMPQ协议内部数据通信中间件通信方法为AMPQ协议内部数据通信中间件接收MQTT自有协议中间件上传的数据,传递给上层业务系统;所述上层业务系统需要进行数据下发时,所述上层业务系统将数据打包为AMQP协议数据,下发给AMQP协议内部数据通信中间件,所述AMQP协议内部数据通信中间件进行数据解析,解析后的数据转换为MQTT协议数据,并按照MQTT自有协议中间件的数据发送规范发送给MQTT自有协议中间件。

作为优选,所述数据接入层通信方法包括HTTP协议数据接收中间件通信方法、COAP自有协议数据接收中间件通信方法、MQTT二进制数据接收解析中间件通信方法、TCP协议数据接收脚本引擎中间件通信方法和UDP协议数据接收脚本引擎中间件通信方法;

所述HTTP协议数据接收中间件通信方法为HTTP协议数据接收中间件接收HTTP协议设备上传的HTTP协议数据,并按照MQTT自有协议中间件的数据发送规范将数据上传至MQTT自有协议中间件;所述HTTP协议数据接收中间件接收到MQTT自有协议中间件按照数据内容内部通信规范下发的数据后,将所述数据转换为HTTP协议数据并下发给HTTP协议设备;

所述COAP自有协议数据接收中间件通信方法为COAP自有协议数据接收中间件接收COAP协议设备上传的COAP协议数据,并按照MQTT自有协议中间件的数据发送规范将数据上传至MQTT自有协议中间件;所述COAP自有协议数据接收中间件接收到MQTT自有协议中间件按照数据内容内部通信规范下发的数据后,将所述数据转换为COAP协议数据并下发给COAP协议设备;

所述MQTT二进制数据接收解析中间件通信方法为所述MQTT二进制数据接收解析中间件订阅MQTT二进制传输设备相关TOPIC规范,所述TOPIC规范中存储产品信息和MQTT二进制传输设备信息,所述MQTT二进制数据接收解析中间件根据产品信息热加载对应的数据解析处理程序,加载不到所述数据解析处理程序进行报错,加载成功将二进制数据解析成明文后按照MQTT自有协议中间件的数据内容内部通信规范进行上传;所述MQTT二进制数据接收解析中间件接收到MQTT自有协议中间件按照数据内容内部通信规范下发的数据后,将所述数据转换为MQTT二进制数据并下发给MQTT二进制传输设备;

所述TCP协议数据接收脚本引擎中间件通信方法为TCP协议数据接收脚本引擎中间件根据配置的脚本程序建立通信端口进行TCP协议设备上传的数据接收,并根据配置的脚本程序进行数据解析,脚本程序由脚本引擎负责启动运行,解析后的数据按照MQTT自有协议中间件的数据发送规范进行上传;所述TCP协议数据接收脚本引擎中间件接收到MQTT自有协议中间件按照数据内容内部通信规范下发的数据后,根据内部针对TCP协议设备配置的脚本,将所述数据转换为TCP协议数据并下发给TCP协议设备;

所述UDP协议数据接收脚本引擎中间件通信方法为UDP协议数据接收脚本引擎中间件根据配置的脚本程序建立通信端口进行UDP协议设备上传数据的接收,并根据配置的脚本程序进行数据解析,脚本程序由脚本引擎负责启动运行,解析后的数据按照MQTT自有协议中间件数据发送规范进行上传;所述UDP协议数据接收脚本引擎中间件接收到MQTT自有协议中间件按照数据内容内部通信规范下发的数据后,根据内部针对UDP协议设备配置的脚本,将所述数据转换为UDP协议数据并下发给UDP协议设备。

作为优选,所述MQTT自有协议中间件通信方法中还包括MQTT自有协议中间件直接接收到明文传输的MQTT设备上传数据,并打包为AMQP协议数据发送至 AMQP协议内部数据通信中间件;所述MQTT自有协议中间件接收到AMPQ协议内部数据通信中间件下发的数据后进行解析,并将解析后的数据下发到明文传输的MQTT设备。

作为优选,所述物联网通信方法还包括上层业务系统通过调用应用程序编程接口API,从数据存储中间件获取历史数据。

作为优选,所述MQTT自有协议中间件制定的TOPIC内部通信规范包含设备类型信息和设备唯一编号信息;所述数据内容内部通信规范包含数据发送时间戳、设备属性信息、设备状态信息和数据校验码。

与现有技术相比,本发明的基于中间件和MQTT协议的物联网通信系统和方法 优点和积极效果在于:

(1)通过建立传输层的各类协议通信设备接入中间件(数据接入层)和数据解析中间件(MQTT自有协议中间件和AMQP协议内部数据通信中间件),将传输层从传统业务系统中解耦,独立运行。

(2)传统方式TCP、UDP通信需要经过编码、编译、人工上线部署程序三个步骤;本发明中TCP、UDP通信采用脚本引擎方式进行数据解析,采用脚本引擎后不需要进行编译,且可实现部署的自动化上线,简化了数据解析的整个开发流程。

(3)传统二进制数据解析程序需要经过编码、编译、人工上线部署程序3个步骤;本发明中MQTT二进制数据接收解析中间件将二进制数据采用热加载程序进行解析,可提前将编译好的解析程序以插件形式安装到系统,接收到二进制数据后根据产品信息和设备信息找到对应的解析程序并进行热加载,加载成功后就可以进行数据解析。简化数据解析的整个流程。

(4)设备数据独立建库

数据存储中间件为通信设备层的每个设备建立一个数据库,并按照时间顺序存储数据;此建库及存储方式可保证设备数据相互隔离及数据查询的时效性。

(5)提供实时获取数据和非实时获取历史数据两种系统集成方式

上层业务系统同本系统进行集成,可通过AMQP协议内部数据通信中间件获取实时数据;在数据时效性要求不高的场景,可通过应用程序编程接口API获取历史数据。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,图1为实施例1提供的基于中间件和MQTT协议的物联网通信系统示意图,

图2为实施例1提供的基于中间件和MQTT协议的物联网通信方法示意图。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和实施例对本发明做进一步说明。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开说明书的具体实施例的限制。

实施例1

下面结合附图1-2对本发明作进一步的描述,本发明解决其技术问题所采用的技术方案是:

一种基于中间件和MQTT协议的物联网通信系统,如图1所示,包括通信设备层和传输层;通信设备层包括HTTP协议设备、COAP协议设备、MQTT二进制传输设备、TCP协议设备和UDP协议设备;传输层由下到上依次为数据接入层、MQTT自有协议中间件和AMQP协议内部数据通信中间件;AMQP协议内部数据通信中间件配置为与上层业务系统通信连接。

如图1所示,数据接入层包括HTTP协议数据接收中间件、COAP自有协议数据接收中间件、MQTT二进制数据接收解析中间件、TCP协议数据接收脚本引擎中间件和UDP协议数据接收脚本引擎中间件。

如图1和2所示,HTTP协议数据接收中间件、COAP自有协议数据接收中间件、MQTT二进制数据接收解析中间件、TCP协议数据接收脚本引擎中间件和UDP协议数据接收脚本引擎中间件分别通过数据上传端口与通信设备层中相应的通信设备通信连接。

如图1所示,物联网通信系统还包括数据存储中间件;数据存储中间件与AMQP协议内部数据通信中间件通信连接,数据存储中间件为通信设备层的每个设备建立一个数据库,并按照时间顺序存储数据。

如图1所示,物联网通信系统还包括明文传输的MQTT设备,明文传输的MQTT设备与MQTT自有协议中间件通信连接。

AMQP协议内部数据通信中间件开设有应用程序编程接口API,通过应用程序编程接口API上层业务系统调用物联网通信系统的历史数据。

如图2所示,基于上述的基于中间件和MQTT协议的物联网通信系统的一种基于中间件和MQTT协议的物联网通信方法,包括AMPQ协议内部数据通信中间件通信方法、MQTT自有协议中间件通信方法和数据接入层通信方法。

如图2所示,MQTT自有协议中间件通信方法为MQTT自有协议中间件制定有TOPIC内部通信规范和数据内容内部通信规范,数据内容采用JSON格式并采用明文通信方式进行传输;MQTT自有协议中间件接收到数据接入层上传数据后进行解析,并打包为AMQP协议数据发送至 AMQP协议内部数据通信中间件;MQTT自有协议中间件接收到AMPQ协议内部数据通信中间件下发的数据后进行解析,并通过数据接入层相应的中间件将数据下发至通信设备层相应的通信设备。

如图2所示,数据接入层通信方法为:当上层业务系统需要获取数据时,HTTP协议数据接收中间件、COAP自有协议数据接收中间件、MQTT二进制数据接收解析中间件、TCP协议数据接收脚本引擎中间件和UDP协议数据接收脚本引擎中间件分别通过数据上传端口接收相应的通信设备上传的协议数据并进行解析,解析后的数据转换为MQTT协议数据,并按照MQTT自有协议中间件的数据发送规范发送给MQTT自有协议中间件;当上层业务系统需要下发数据时,HTTP协议数据接收中间件、COAP自有协议数据接收中间件、MQTT二进制数据接收解析中间件、TCP协议数据接收脚本引擎中间件和UDP协议数据接收脚本引擎中间件分别接收MQTT自有协议中间件按照数据内容内部通信规范下发的数据,并进行解析,解析后的数据转换为对应的协议数据并下发至对应的通信设备。

如图2所示,AMPQ协议内部数据通信中间件通信方法为AMPQ协议内部数据通信中间件接收MQTT自有协议中间件上传的数据,传递给上层业务系统;上层业务系统需要进行数据下发时,上层业务系统将数据打包为AMQP协议数据,下发给AMQP协议内部数据通信中间件,AMQP协议内部数据通信中间件进行数据解析,解析后的数据转换为MQTT协议数据,并按照MQTT自有协议中间件的数据发送规范发送给MQTT自有协议中间件。

如图2所示,数据接入层通信方法包括HTTP协议数据接收中间件通信方法、COAP自有协议数据接收中间件通信方法、MQTT二进制数据接收解析中间件通信方法、TCP协议数据接收脚本引擎中间件通信方法和UDP协议数据接收脚本引擎中间件通信方法。

如图2所示,HTTP协议数据接收中间件通信方法为HTTP协议数据接收中间件接收HTTP协议设备上传的HTTP协议数据,并按照MQTT自有协议中间件的数据发送规范将数据上传至MQTT自有协议中间件;HTTP协议数据接收中间件接收到MQTT自有协议中间件按照数据内容内部通信规范下发的数据后,将数据转换为HTTP协议数据并下发给HTTP协议设备。

如图2所示,COAP自有协议数据接收中间件通信方法为COAP自有协议数据接收中间件接收COAP协议设备上传的COAP协议数据,并按照MQTT自有协议中间件的数据发送规范将数据上传至MQTT自有协议中间件;COAP自有协议数据接收中间件接收到MQTT自有协议中间件按照数据内容内部通信规范下发的数据后,将数据转换为COAP协议数据并下发给COAP协议设备。

如图2所示,MQTT二进制数据接收解析中间件通信方法为MQTT二进制数据接收解析中间件订阅MQTT二进制传输设备相关TOPIC规范,TOPIC规范中存储产品信息和MQTT二进制传输设备信息,MQTT二进制数据接收解析中间件根据产品信息热加载对应的数据解析处理程序,加载不到数据解析处理程序进行报错,加载成功将二进制数据解析成明文后按照MQTT自有协议中间件的数据内容内部通信规范进行上传;MQTT二进制数据接收解析中间件接收到MQTT自有协议中间件按照数据内容内部通信规范下发的数据后,将数据转换为MQTT二进制数据并下发给MQTT二进制传输设备。

如图2所示,TCP协议数据接收脚本引擎中间件通信方法为TCP协议数据接收脚本引擎中间件根据配置的脚本程序建立通信端口进行TCP协议设备上传的数据接收,并根据配置的脚本程序进行数据解析,脚本程序由脚本引擎负责启动运行,解析后的数据按照MQTT自有协议中间件的数据发送规范进行上传;TCP协议数据接收脚本引擎中间件接收到MQTT自有协议中间件按照数据内容内部通信规范下发的数据后,根据内部针对TCP协议设备配置的脚本,将数据转换为TCP协议数据并下发给TCP协议设备。

如图2所示,UDP协议数据接收脚本引擎中间件通信方法为UDP协议数据接收脚本引擎中间件根据配置的脚本程序建立通信端口进行UDP协议设备上传数据的接收,并根据配置的脚本程序进行数据解析,脚本程序由脚本引擎负责启动运行,解析后的数据按照MQTT自有协议中间件数据发送规范进行上传;UDP协议数据接收脚本引擎中间件接收到MQTT自有协议中间件按照数据内容内部通信规范下发的数据后,根据内部针对UDP协议设备配置的脚本,将数据转换为UDP协议数据并下发给UDP协议设备。

如图1所示,MQTT自有协议中间件通信方法中还包括MQTT自有协议中间件直接接收到明文传输的MQTT设备上传数据,并打包为AMQP协议数据发送至 AMQP协议内部数据通信中间件;MQTT自有协议中间件接收到AMPQ协议内部数据通信中间件下发的数据后进行解析,并将解析后的数据下发到明文传输的MQTT设备。

物联网通信方法还包括上层业务系统通过调用应用程序编程接口API,从数据存储中间件获取历史数据。

MQTT自有协议中间件制定的TOPIC内部通信规范包含设备类型信息和设备唯一编号信息;数据内容内部通信规范包含数据发送时间戳、设备属性信息、设备状态信息和数据校验码。

通信设备层的通信设备接入步骤如下:

步骤一、确定设备本身支持的通讯协议,协议优先级为 MQTT明文>MQTT二进制>TCP协议(UDP协议)>HTTP协议(COAP协议)。

步骤二、按设备通信类型进行选择

如设备为MQTT明文传输设备,则根据本系统TOPIC规范和数据规范配置设备发送TOPIC和发送内容模板,配置完成后设备完成接入工作,且上传数据可以正常入库(数据存储中间件)存储。

如设备为MQTT二进制传输设备,则根据本系统TOPIC规范(包含设备类型信息和设备唯一编号信息,具体形式为Thing/设备类型/设备唯一编号)和数据规范(包含数据发送时间戳、设备属性信息、设备状态信息、数据校验码)配置设备发送TOPIC和发送内容模板,并将对应的协议解析程序上传系统,并配置程序路径和执行命令,配置完成后设备完成设备接入和数据解析工作,且上传数据可以正常入库(数据存储中间件)存储。

如设备为TCP协议设备,则在设备配置上传端口为系统脚本引擎启动的端口,并在系统配置脚本解析程序,配置完成后完成设备接入和数据解析工作,且上传数据可以正常入库(数据存储中间件)存储。

如设备为UDP协议设备,则在设备配置上传端口为系统脚本引擎启动的端口,并在系统配置脚本解析程序,配置完成后完成设备接入和数据解析工作,且上传数据可以正常入库(数据存储中间件)存储。

如设备为HTTP协议设备,则在设备端配置上传HTTP地址(HTTP协议数据接收中间件接收地址)和数据内容格式(HTTP协议数据接收中间件指定数据规范),配置完成后完成设备接入和数据解析工作,且上传数据可以正常入库存储。

如设备为COAP协议设备,则在设备端配置上传COAP地址(COAP自有协议数据接收中间件接收地址)和数据内容格式(COAP自有协议数据接收中间件指定数据规范),配置完成后完成设备接入和数据解析工作,且上传数据可以正常入库存储。

以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其他形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例应用于其他领域,但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化,仍属于本发明技术方案的保护范围。

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种获取边缘服务的方法和装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类