引言
Sparkplug 是一种为 SCADA 系统量身定制的工业物联网通信协议。它为工业设备和应用提供了一种标准的通信格式,实现了不同厂商设备的互操作性。Sparkplug 规范由 Cirrus Link Solutions 和 Eclipse Foundation 共同制定。它是开放的,不属于某一家公司。因此,它给 Sparkplug 社区带来了以下益处:
- 促进不同系统和技术之间的顺畅协作,提升效率、降低成本,为消费者提供更多选择。
- 保证不同厂商产品的兼容性和协作性,增加消费者的选择,促进厂商之间的良性竞争。
- 通过推动协作、分享想法和方案,激发创新,促进新产品、新服务和新技术的发展。
- 提高透明度、建立信任,降低厂商锁定或依赖单一供应商的风险。
- 让产品和服务对各种用户开放,包括残障人士。
Sparkplug 旨在提供一种标准化的方式,将 MQTT 用于工业应用,并促进不同厂商的设备和系统之间的互操作性。因此,Sparkplug 规范受到了工业物联网社区的广泛认可,并得到了众多厂商和组织的支持。
概念 1 - MQTT 消息传递架构
Sparkplug 规范基于 MQTT 协议,这是一种广泛用于物联网应用的轻量级消息协议。它专为低带宽、高延迟的网络设计,由于具备以下能力而受到物联网应用的青睐。
- 轻量级:MQTT 是一种轻量级协议,占用极少的网络带宽,非常适合低带宽环境。
- 可靠性:MQTT 支持不同的服务质量(QoS)等级,能够保证即使在网络故障或连接不稳定的情况下,消息也能可靠地传递。
- 扩展性:MQTT 具有很好的扩展性,可以支持百万级的设备和客户端。
- 灵活性:MQTT 可以用于一对一和一对多的通信,并支持发布/订阅和请求/响应两种消息模式。
- 安全性:MQTT 支持安全特性,例如认证和加密,有助于确保数据安全保密地传输。
综上所述,使用 MQTT 实现 Sparkplug 规范有许多好处,非常适合工业物联网应用。最重要的是,基于 MQTT 发布/订阅消息架构,Sparkplug 系统实现了数据生产者和消费者的解耦。这使得数据交换过程更加灵活和可扩展,因为数据生产者和消费者可以独立地运行。
概念 2 - 会话状态感知
解耦带来了扩展性、灵活性和弹性等多方面的益处,但同时也需要对会话进行管理,以确保系统在多个请求和组件之间保持一致的状态。
会话状态感知是 Sparkplug 的核心特性之一,它使设备在网络连接中断或丢失的情况下仍能与 Broker 维持连接。这是通过利用 Broker 存储的会话状态信息来实现的。当连接恢复时,这些信息可用于重新建立通信。
当设备连接到 Sparkplug Broker 时,它会与 Broker 创建一个会话。在此会话期间,设备可以发布和订阅消息。Broker 会记录设备的会话状态,包括由于网络中断而未能传递的任何订阅或消息。
对于需要高可用性和可靠通信的工业物联网应用而言,会话状态感知是一个非常重要的特性。Sparkplug 通过维护会话状态信息来确保设备在网络中断后能够快速与 Broker 重新建立通信,从而降低宕机和数据丢失的风险。
概念 3 - 统一命名空间
统一命名空间指的是,在工业环境中不同的设备和系统能够不受厂商或通信协议的影响顺畅共享数据的能力。为了保证互操作性和便利的数据交换,它采用一种标准的命名规则和数据模型。
另一方面,Sparkplug 是一种消息传递规范,用于使工业物联网设备和应用之间的通信更加高效和安全。它基于 MQTT 协议,融合了统一命名空间的概念,提供了一种标准化的方式来表达不同设备和系统之间的数据和元数据。
换言之,Sparkplug 借助统一命名空间的概念,为工业设备和系统之间的数据交换提供了一种通用语言。这有助于简化集成和提高互操作性,使得在工业环境中构建和维护复杂的物联网应用变得更加方便。
概念 4 - 中央数据仓库
在 Sparkplug 规范中,中央数据仓库(CDR)是一个集中的服务器或平台,它充当一个枢纽,接收、处理和分发来自不同工业设备和应用的数据。CDR 提供了一种标准化的方式来管理和存储数据,以达到可扩展性和高效性,并使不同设备和应用之间能够互操作。
CDR 的优势包括以下几点:
- 改善数据质量:CDR 保证所有数据在组织内部是统一和一致的,提升了数据的精确性和可信性。
- 简化数据管理:由于所有数据都保存在同一个地方,因此更方便管理和维护。
- 快速访问数据:CDR 为数据提供了一个集中的位置,使得访问和分析数据更快捷和更容易。
- 减少数据冗余:通过消除重复数据,CDR 减少了存储成本,并降低了数据不一致的风险。
CDR 负责接收来自不同设备和应用的 MQTT 消息,解析和验证数据,并以其他系统可以轻松访问和处理的格式保存。此外,它还提供了一组 API 和接口,使得其他系统可以访问和获取存储在 CDR 中的数据,从而可以向连接到它的设备和应用发送命令或指令。
概念 5 - 单一可信数据源
单一可信数据源(SSOT)是信息管理中常用的一个概念,指的是对于某个特定的数据,应该有一个权威的数据来源。所有与某个特定主题有关的数据,例如客户订单、产品信息或产品详细信息,都应该保存在一个单一的位置,并保持一致。
使用 SSOT 也是 Sparkplug 规范的一个关键特性,它提供了一种标准化的方式来管理和存储数据,保证数据的一致性和可靠性。通过使用单一可信数据源,可以更容易地确保所有系统和应用都能获取最新和最准确的信息,这对于保持系统的完整性和可靠性非常重要。
在实际应用中,SSOT 通常作为 CDR 的一部分来实现,它负责接收和处理来自不同设备和应用的数据。CDR 以标准化的格式保存所有数据,使得其他系统能够轻松地获取和处理数据,并且 CDR 也作为管理和监控不同设备和系统的控制中心。通过使用集中的 SSOT,可以实现不同设备和系统之间的高度互操作性,并保证所有系统都能访问到相同的数据和信息。
Sparkplug 规范中的 MQTT Broker
在 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