工业物联网(IIoT)是一种真正的技术字母汤。OPC UA, HTTP, REST, JSON, MQTT, CoAP, DDS, AMQP,等等。从概念上讲,我们已经讨论了工业物联网很长一段时间,了解了它的基本思想和技术可行性。现在我们继续前进,确定用例并构建原型。所以现在是时候学习字母表了。
工业物联网的一大挑战是互操作性。在最近的Nexus调查中,77%的受访者表示,在工业物联网方面,互操作性是他们面临的最大挑战。将工业设备连接到IT和物联网平台是一项巨大的业务,这也是许多缩写的来源。有许多协议可以实现这一点——一些是专有的,另一些是基于开放标准的。所有人都想成为唯一的物联网协议,但很明显,这是不可能的。这些协议将共存——每个协议都有自己的优点和缺点——我们的工作是了解在哪里和何时使用它们。
我将在本文中讨论的两个协议—http和mqtt—具有将工业设备与物联网平台连接起来的潜力。
HTTP (REST / JSON)
超文本传输协议(HTTP)是一种无连接的客户端/服务器协议,普遍存在于IT和网络中。因为有无数使用HTTP的开源工具,而且每种编码语言都有HTTP库,所以它是非常容易访问的。
在物联网中,HTTP的重点是具像状态传输(Representational State Transfer, REST),这是一种无状态模型,客户端可以通过请求访问服务器上的资源。在大多数情况下,资源是设备和设备包含的数据。
HTTP提供传输,但不定义数据的表示。因此,HTTP请求可以包含HTML、JavaScript、JavaScript对象表示法(JSON)、XML等等。在大多数情况下,物联网是基于HTTP对JSON进行标准化的。JSON类似于xml——没有所有的开销和模式验证——这使得它更加轻量级和灵活。JSON也被大多数工具和编程语言所支持。
业界有一些将HTTP用于设备和产品配置的经验,但没有用于数据访问。因此,许多物联网和IT平台支持以HTTP形式消费和提供数据,但很少有工业平台这样做。随着越来越多的网关和可编程逻辑控制器(plc)开始增加本地HTTP支持,这种情况正在发生变化。
使用HTTP发送数据块,比如每小时一分钟的温度读数。不要使用HTTP流传输高速数据。HTTP可以处理亚秒级的数据,但是通过HTTP进行100毫秒的更新是很困难的。每条消息都有大量的开销,因此流化小消息的效率很低。并且始终使用HTTPS保护通信安全。开销是最小的。
注意HTTP产品的互操作性问题。仅仅因为两个产品支持HTTP/REST/JSON并不意味着它们可以开箱即用。通常JSON格式是不同的,需要最小的集成才能正常工作。
MQTT
消息队列遥测传输(Message Queuing Telemetry Transport, MQTT)是一种为SCADA和远程网络设计的发布/订阅协议。它专注于最小开销(2字节头)和可靠的通信。它也非常简单。与HTTP一样,MQTT的有效负载是特定于应用程序的,大多数实现使用定制的JSON或二进制格式。
MQTT的应用不如HTTP广泛,但它在it领域仍然占有很大的市场份额。每一种语言都有许多开源客户/制作人、经纪人、项目和例子。许多物联网平台支持HTTP和MQTT作为数据的前两个入站协议。
当带宽很昂贵且不了解自己的基础设施时,请使用MQTT。确保您或您的供应商有一个MQTT代理,您可以通过传输层安全性(Transport Layer Security, TLS)发布数据,并且始终保证通信的安全。
最终应用程序不支持MQTT吗?如果是这样的话,有很多开源工具可以将MQTT数据转换为数据库和其他格式(如HTTP)。
注意类似于HTTP的互操作性问题。两个应用程序支持MQTT并不意味着它们是可互操作的。主题和JSON格式可能需要调整,以使这两个产品可互操作。
下一个步骤
重要的是要选择最适合您需求的协议,然后选择能够适应这些协议的技术合作伙伴。这将确保您的物联网应用的成功,并保护您免受协议战争的影响。
如果您想了解更多有关该主题的内容,请在以下网站下载完整的白皮书《工业物联网监控协议》www.kepware.com/iiot-protocols-to-watch.