本节详细说明系统构成部分。
图 1 MQTT SCADA系统
3.1 MQTT服务器
MQTT系统要求1个或以上MQTT服务器(Server),Sparkplug规范只要求MQTT 服务器组件兼容MQTT V3.1.1规范,并能管理全部MQTT通讯负荷。
可以(在需要时)用多MQTT服务器,实现冗余、高可用性、可扩展。
3.2 MQTT网络边缘(EoN)节点
规范中的MQTT网络边缘(EoN)节点,是指管理MQTT会话,提供文档中说明的主题名和负载定义所需的物理或逻辑网关功能,兼容V3.1.1 MQTT的客户端应用。边缘节点负责与现有传统设备(PLC、RTU、流量计、传感器等)、本地数字I/O、逻辑内部过程变量(PV)的本地协议接口。
3.3 设备/传感器
设备/传感器指连接到MQTT 边缘节点上,提供数据、过程变量或计量的物理或逻辑设备。
3.4 MQTT设备(Sparkplug)
指能够使用带有本Sparkplug规范所列负载和主题名的、兼容MQTT3.1.1的连接,直接连接到MQTT网络的设备、传感器或硬件。在Sparkplug主题负载中将用边缘节点代表。
3.5 SCADA/IIoT主机
SCADA/IIoT主机(Host)节点,指订阅和发布本文档定义的消息的MQTT客户端。在典型的SCADA/IIoT实现中,仅有一个核心SCADA/IIoT主机节点负责监控一组MQTT 边缘节点。Sparkplug支持多关键主机应用概念,这并不排斥任意数量的MQTT SCADA/IIoT节点以纯监视模式,或作为核心SCADA/IIoT主机掉线时的热备存在。
3.6 MQTT应用节点
MQTT应用节点是非核心MQTT SCADA/IIoT客户端应用,在许可和安全的情况下,使用发布的实时消息和其他数据。
3.7 安全
3.7.1 身份验证
MQTT有多重安全和访问控制配置,单就MQTT客户端而言,客户端需要提供唯一的客户端ID,和可选的用户名、密码。
3.7.2 授权
尽管MQTT规范中没有强制要求MQTT服务器实现访问控制,大多数MQTT服务器都具有访问控制列表(Access Control List, ACL)功能,MQTT服务器ACL用来规范任何MQTT客户端可以订阅和发布的主题名。提供了有关如何设置和管理MQTT客户端凭证的示例,以及有关在MQTT服务器上设置适当ACL的一些考虑。
3.7.3 加密
考虑到TCP/IP安全会(并且已经)随时间变化,MQTT规范没有给出TCP/IP安全方案。尽管本文档没有给出TCP/IP安全方案,还是会提供如何使用TLS保护MQTT通讯的例子。
链接:
0. 目录
2. 背景
4. 引用标准和资源