消息队列遥测传输(MQTT)协议是最受欢迎的数据传输方法的主要竞争者。主要原因是MQTT的开源设计和轻量级的地位使它非常适合将不同的设备连接到监视控制和数据采集(SCADA)系统以及其他工业网络。
奥马尔·卡德里,edge和HMI产品的产品营销经理Aveva, MQTT使用发布/订阅体系结构,与使用超文本传输协议(HTTP)的传统轮询通信和客户机/服务器通信相比,该体系结构降低了95%的带宽利用率。“HTTP标头通常在8000字节左右,”他说,“但是MQTT协议只使用两个字节和几行代码。”在这个部署了数百万工业物联网(IIoT)设备的时代,这是关键,其中许多设备的内部内存和处理能力都很低。
除了在网络上占用的空间小得多之外,MQTT的发布/订阅体系结构也比传统工业自动化协议(如Modbus、EtherNet/IP和Profinet)使用的体系结构更平坦。“这个(MQTT)架构取代了传统的自动化金字塔,”通信接口高级产品经理Garrett Schmidt说美国菲尼克斯.
客户机/服务器体系结构中的客户机直接与端点或服务器通信,而在发布/订阅体系结构中,发布者和订阅者(分别为消息发送者和接收者)从不直接相互通信。相反,它们与一个叫做经纪人的中间体进行通信;发布者向代理提供数据,订阅者使用数据。
“代理可以驻留在任何地方——在云上,在私有服务器上,或者只是在某个地方的PC上运行,”Schmidt说。“它会过滤传入的消息,并将它们分发给适当的订阅者。”
他补充说,出版商和订阅者的分离至少从三个方面增强了工业物联网应用的灵活性:“首先,出版商和订阅者只需要知道如何联系代理,而不需要知道如何联系对方。其次,代理可以为未在线的客户机存储消息,并在资源可用时传递消息。第三,当等待接收或发布消息时,操作不必中断,这与大多数客户端库的异步特性一致。”
MQTT还有一个优点,那就是它是建立在TCP/IP(传输控制协议和互联网协议)之上的开源协议。MQTT的共同创建者、at的总裁兼首席技术官Arlen Nipper表示,从本质上讲,MQTT允许用户来回发送TCP/IP消息卷云连接解决方案.
与HTTP类似,MQTT只定义了一个传输协议。它不能提供安全性;它依赖于TCP/IP协议。与HTTP一样,MQTT也不定义有效负载规范。尽管负载不可知提供了传输任何负载(包括来自遗留系统的负载)的灵活性,但它可能会使某些设备的连接复杂化。在这些情况下,需要程序员翻译数据。
为了消除这种转换工作并简化实现,开源的Sparkplug有效负载规范于2016年发布。“这标志着在工业应用中对MQTT的互操作格式进行标准化的第一次尝试,”科技营销总监Josh Eastburn说光电子的22.
在2018年,Eclipse基金会赞助了Tahu项目,收集了Sparkplug的参考实现。其结果是使用MQTT的即插即用工业物联网设备的出现。
Nipper说Sparkplug对于工业物联网的作用就像超文本标记语言(HTML)对于人联网的作用一样。因此,他预计工业物联网应用将出现爆炸式增长,就像人们的互联网在定义HTTP和HTML之后所做的那样。
爆炸性增长预期
MQTT已经在工业自动化领域取得了重大进展,并在其他应用程序中得到了广泛应用。例如,Facebook早在2011年就将其作为其Messenger应用程序的传输层。
“一夜之间,8亿人在使用MQTT,”MQTT的另一位共同创造者、杰出工程师和麻省理工学院的大师发明家安迪·斯坦福-克拉克(Andy Stanford-Clark)说IBM英国.
从那以后,其他大型科技公司纷纷效仿。Amazon AWS,微软Azure,IBM ' s的华生,谷歌例如,物联网平台都在使用MQTT。据斯坦福-克拉克报道,在如此广泛的应用下,MQTT在2018年取代HTTP成为物联网的首选传输协议。
许多自动化供应商预计MQTT最终将主导工业网络领域。“我们相信MQTT将在未来10年成为事实上的工业标准,”Qadri预测道。随着业界取代传统Modbus、OPC和其他在SCADA应用中仍然占主导地位的遥测协议,它将得到广泛采用。”
关键里程碑
MQTT在消费者领域的成功掩盖了关于其起源的一些基本事实。也就是说该协议已经存在了23年最初是为工业自动化而开发的,特别是菲利普斯66.
MQTT的开发发生在AT&T被拆分之后,许多供应商开始提供他们自己的SCADA系统,通过卫星实时传输数据。“所有这些公司都有一个专有的传输层,”尼珀回忆道,当时他在Arcom控制系统公司工作,这家公司是他共同创立的,现在是它的一部分荷兰欧.
唯一的例外是美国电话电报公司(AT&T)该公司设计的新SCADA产品在TCP/IP上本机运行。Phillips 66安装了其中一个系统,并请求Nipper帮助提高现场设备和多个数据消费者之间的实时数据流的效率。“VSAT(非常小孔径终端)上的轮询很慢,”尼珀解释道。“如果你有数百个站点,就像我们在菲利普斯66号做的那样,那是非常昂贵的。”其他限制包括使用依赖于8位嵌入式微处理器和300波特通信的设备。
因为Phillips 66的SCADA经理想要复制IT部门使用IBM的面向消息中间件(MOM)所取得的成功,他将Nipper介绍给了IBM的Stanford-Clark。1999年,两人为基于mom的SCADA开发了MQTT。
尽管MQTT是一种高效的开源协议,但在近十年的时间里,它并没有获得太多的发展势头。伊斯特本解释说:“直到该协议在一个免版税的许可证中可用,它才开始在IBM之外流行起来。”2010年,第一个开源的MQTT代理mosquito发布了,证明了MQTT在IBM之外也有自己的生命,标志着其采用的一个转折点。”
行业采用该协议的另外两个里程碑发生在2011年。首先是Eclipse基金会启动了Paho项目,该项目收集了用各种语言实现的MQTT客户机。“2011年,IBM和Eurotech向基金会捐赠了C和Java的MQTT客户端实现,允许从开源组件构建一个完整的MQTT系统,”Eastburn说。
同年,IBM还开始了MQTT的标准化过程,结构化信息标准推进组织(OASIS)最终在2014年采用了3.1.1版本作为标准。然后,在2016年,国际标准化组织(ISO)和总部位于日内瓦的国际电工委员会(IEC)也将其批准为ISO/IEC 20922:2016。
为了跟上相关技术的进步,绿洲2019年3月发布了MQTT的第5版。这个版本允许用户通过云、大型分布式基础设施和多个代理集群使用MQTT做新事情。斯坦福-克拉克说:“我们很小心,不让太多的东西渗透进去,因为我们必须坚持基本原则,保持协议易于理解,在网络上不太健谈。”ISO目前也在考虑采用版本5。
应用前景的担忧
的创始人兼首席执行官Kenneth Tran表示,尽管MQTT及其发布/订阅架构取得了成功,但它并不是对每个应用程序都是最优的Koidra公司是一家人工智能驱动物联网技术的供应商。“我们发现发布/订阅模型通常不是高级应用程序的最佳解决方案,部分原因是它们必须配置为考虑异步数据可用性,”他说。在工厂中,通常有许多传感器连接到控制器、服务器或现场的传感器集线器。”
在Koidra提供的物联网系统中,一个室内物联网枢纽通过较小的本地传感器枢纽聚合来自工厂传感器的数据。Tran解释说:“这些物联网中心执行轻量级数据清理、处理和压缩,然后将产生的信息推送到云端。”在这种情况下,“因为只有一个消费者,即中央云,发布/订阅框架将是多余的。”
另一个潜在的陷阱是被锁定在特定供应商的专有物联网平台上。这可能发生在发送到供应商云服务的数据时,尽管MQTT是开源的起源,但这也可能发生。在这些情况下,用户购买他们的边缘设备和软件并使用MQTT连接它们。
“但如果所有数据都保存在供应商的云环境中,你就无法访问这些数据。归纳自动化.
因此,Cox敦促用户确保这些基于云的系统的配置允许他们访问自己的数据。“你可以把数据发送到他们的云端,”他说,“但最终你也应该能够把这些数据发送到你的系统。”
尽管使用了MQTT,但锁定专有技术的第二种方法是通过有效负载格式。这是因为MQTT可以以任何格式传输有效负载,包括供应商的专有二进制格式。
考克斯指出:“如果你不明白发送的是什么,那么你就很难利用它。”为了避免这个陷阱,要么坚持有一个定义来告诉您数据是什么样子的,要么使用开源的Sparkplug有效负载规范。
考克斯还建议建造一个有弹性的建筑。他说:“如果您失去了与中央代理的连接或访问权限,那么您的应用程序将是盲目的。”他建议的一种针对这种中断连接建立弹性的方法是将数据存储在本地缓存中,以便在连接重新建立时进行转发。另一种增强弹性的方法是拥有两个代理,这样在另一个失败时,其中一个可以继续工作。