Sparkplug 是一种为 SCADA 系统量身定制的工业物联网通信协议。它为工业设备和应用提供了一种标准的通信格式,实现了不同厂商设备的互操作性。Sparkplug 规范由 Cirrus Link Solutions 和 Eclipse Foundation 共同制定。它是开放的,不属于某一家公司。因此,它给 Sparkplug 社区带来了以下益处:
Sparkplug 旨在提供一种标准化的方式,将 MQTT 用于工业应用,并促进不同厂商的设备和系统之间的互操作性。因此,Sparkplug 规范受到了工业物联网社区的广泛认可,并得到了众多厂商和组织的支持。
Sparkplug 规范基于 MQTT 协议,这是一种广泛用于物联网应用的轻量级消息协议。它专为低带宽、高延迟的网络设计,由于具备以下能力而受到物联网应用的青睐。
综上所述,使用 MQTT 实现 Sparkplug 规范有许多好处,非常适合工业物联网应用。最重要的是,基于 MQTT 发布/订阅消息架构,Sparkplug 系统实现了数据生产者和消费者的解耦。这使得数据交换过程更加灵活和可扩展,因为数据生产者和消费者可以独立地运行。
解耦带来了扩展性、灵活性和弹性等多方面的益处,但同时也需要对会话进行管理,以确保系统在多个请求和组件之间保持一致的状态。
会话状态感知是 Sparkplug 的核心特性之一,它使设备在网络连接中断或丢失的情况下仍能与 Broker 维持连接。这是通过利用 Broker 存储的会话状态信息来实现的。当连接恢复时,这些信息可用于重新建立通信。
当设备连接到 Sparkplug Broker 时,它会与 Broker 创建一个会话。在此会话期间,设备可以发布和订阅消息。Broker 会记录设备的会话状态,包括由于网络中断而未能传递的任何订阅或消息。
对于需要高可用性和可靠通信的工业物联网应用而言,会话状态感知是一个非常重要的特性。Sparkplug 通过维护会话状态信息来确保设备在网络中断后能够快速与 Broker 重新建立通信,从而降低宕机和数据丢失的风险。
统一命名空间指的是,在工业环境中不同的设备和系统能够不受厂商或通信协议的影响顺畅共享数据的能力。为了保证互操作性和便利的数据交换,它采用一种标准的命名规则和数据模型。
另一方面,Sparkplug 是一种消息传递规范,用于使工业物联网设备和应用之间的通信更加高效和安全。它基于 MQTT 协议,融合了统一命名空间的概念,提供了一种标准化的方式来表达不同设备和系统之间的数据和元数据。
换言之,Sparkplug 借助统一命名空间的概念,为工业设备和系统之间的数据交换提供了一种通用语言。这有助于简化集成和提高互操作性,使得在工业环境中构建和维护复杂的物联网应用变得更加方便。
在 Sparkplug 规范中,中央数据仓库(CDR)是一个集中的服务器或平台,它充当一个枢纽,接收、处理和分发来自不同工业设备和应用的数据。CDR 提供了一种标准化的方式来管理和存储数据,以达到可扩展性和高效性,并使不同设备和应用之间能够互操作。
CDR 的优势包括以下几点:
CDR 负责接收来自不同设备和应用的 MQTT 消息,解析和验证数据,并以其他系统可以轻松访问和处理的格式保存。此外,它还提供了一组 API 和接口,使得其他系统可以访问和获取存储在 CDR 中的数据,从而可以向连接到它的设备和应用发送命令或指令。
单一可信数据源(SSOT)是信息管理中常用的一个概念,指的是对于某个特定的数据,应该有一个权威的数据来源。所有与某个特定主题有关的数据,例如客户订单、产品信息或产品详细信息,都应该保存在一个单一的位置,并保持一致。
使用 SSOT 也是 Sparkplug 规范的一个关键特性,它提供了一种标准化的方式来管理和存储数据,保证数据的一致性和可靠性。通过使用单一可信数据源,可以更容易地确保所有系统和应用都能获取最新和最准确的信息,这对于保持系统的完整性和可靠性非常重要。
在实际应用中,SSOT 通常作为 CDR 的一部分来实现,它负责接收和处理来自不同设备和应用的数据。CDR 以标准化的格式保存所有数据,使得其他系统能够轻松地获取和处理数据,并且 CDR 也作为管理和监控不同设备和系统的控制中心。通过使用集中的 SSOT,可以实现不同设备和系统之间的高度互操作性,并保证所有系统都能访问到相同的数据和信息。
在 Sparkplug 规范中,MQTT Broker 是实现上述 5 个概念不可或缺的组件。
首先,MQTT Broker 提供了一个发布/订阅解耦的消息传递架构,用于让各种 Sparkplug 主机系统和设备独立运行。
其次,MQTT Broker 提供了一个遗嘱机制,用于支持 Sparkplug 主机系统和设备之间的会话状态感知。
第三,Sparkplug 规范按照统一命名空间的要求,在 MQTT Broker 中定义了消息有效载荷标准和主题命名空间。
第四,MQTT Broker 充当一个中央数据仓库,接收来自设备的消息,并转发给主机接收者。
最后,MQTT Broker 存储了最新和最准确的行业信息,用于维护整个系统的单一可信数据源。
因此,MQTT Broker 是适用于 Sparkplug 规范的正确选择。
版权声明: 本文为 EMQ 原创,转载请注明出处。
原文链接:https://www.emqx.com/zh/blog/5-key-concepts-for-mqtt-broker-in-sparkplug-specification