物联网为什么都用mqtt:物联网数据流三宝 OPC-UA MQTT
物联网为什么都用mqtt:物联网数据流三宝 OPC-UA MQTT如上图所示,Apache Kafka通常作为分散式数据流的数据网格节点,能够集成各种系统,其中包括:边缘、物联网设备、以及业务软件,并能够独立于底层基础设施(如:边缘、本地、公共、多云和混合云等)来执行。因此,开放、可扩展、以及灵活的架构对于与旧环境的集成,和利用现代化云原生应用都是至关重要的。由事件驱动的Apache Kafka等数据流平台正好满足了此类需求。它们收集相关传感器的遥测数据、以及来自IT系统的数据,并在数据传输时,对其进行处理。这便是“动态数据”的概念。它区别于将事件存储到数据库中,以待日后查看的“静态数据”。在物联网用例中,我们通常认为处理静态数据的是一种“过时的架构”。全球Apache Kafka和事件流用例通常,由设备产生的数据必须在生成之后立即被转换,并在整个企业中可用,来体现数据被提取的最大价值,提高工厂的整体效率,进而避免严重故障。如今,宝马和特斯拉之类的汽车制
译者 | 陈峻
审校 | 孙淑娟
在物联网世界中,MQTT(消息队列遥测传输协议)和OPC-UA(OPC统一架构)已经成为了在工业物联网(IIoT)和工业4.0用例中,数据交换的开放协议和平立标准。而Apache Kafka的数据流用于实时集成和处理任何规模的、海量数据的数据中心。本文将探讨Kafka和各种IoT协议之间的关系,何时该使用哪种技术,以及为何有时HTTP/REST是更好的选择。最后,我们将探讨两个来自宝马和奥迪的使用案例。
工业4.0和工业物联网(IIoT)需要通过系统近乎实时地传输、处理、分析和提供数据。这会导致数据量的逐日攀升,并让制造商面临数据多样化的挑战。然而,使问题进一步复杂化的是,传统的IT环境持续存在于各种制造设施中。这往往限制了制造商实现跨业务进行数据有效集成的能力。因此,大多数制造商都需要将数据复制和同步策略予以混合实施。目前,他们也正在从产品设计和制造到运维环节,努力提高其生产设施的整体设备效率(OEE)。与此同时,由于新冠疫情的流行和2021年苏伊士运河的中断,都会导致即时生产与供应链问题的凸显。因此企业需要通过实时的流程和监控,在如下方面确保生产线的自适应能力:
- 准时(JIT)的预测
- 构建工厂的产能
- 人员配备与倒班状况
- 原材料和产品价格的波动
通常,由设备产生的数据必须在生成之后立即被转换,并在整个企业中可用,来体现数据被提取的最大价值,提高工厂的整体效率,进而避免严重故障。如今,宝马和特斯拉之类的汽车制造商已经认识到了数据流平台的潜力,正在利用Apache Kafka生态系统来流转数据。可以说,数据流对于数据驱型制造公司的好处,不仅体现在数字化和自动化转型上,还包括如下方面:
- 使生产过程更加高效
- 多快好省
- 尽量减少错误率
如前文所述,Kafka是一个出色的数据流平台,可被用于大规模的实时消息传递、存储、数据集成和处理。不过,Kafka并非包治百病,它未能实现如下方面:
- 数百万客户级别(如移动应用)的代理
- API管理平台
- 用于复杂查询和批量分析的数据库
- 具有设备管理等功能的物联网平台
- 一种用于硬实时应用的技术
鉴于上述原因,Kafka需要通过与MQTT和OPC-UA的协同使用,来补齐短板。以近乎实时的方式,在工厂、公司、以及在全球范围内,实现大量数据的处理和交换。
全球Apache Kafka和事件流用例
如上图所示,Apache Kafka通常作为分散式数据流的数据网格节点,能够集成各种系统,其中包括:边缘、物联网设备、以及业务软件,并能够独立于底层基础设施(如:边缘、本地、公共、多云和混合云等)来执行。因此,开放、可扩展、以及灵活的架构对于与旧环境的集成,和利用现代化云原生应用都是至关重要的。由事件驱动的Apache Kafka等数据流平台正好满足了此类需求。它们收集相关传感器的遥测数据、以及来自IT系统的数据,并在数据传输时,对其进行处理。这便是“动态数据”的概念。它区别于将事件存储到数据库中,以待日后查看的“静态数据”。在物联网用例中,我们通常认为处理静态数据的是一种“过时的架构”。
3.使用域驱动设计和真正的解耦来进行分离其实,工厂的IT环境被建立在什么样的基础设施上并不重要。重要的是,新旧系统能够实现数据的实时集成,能够以解耦的方式维持数据的持续流动和消息存储。而与其他消息系统(如IT领域的RabbitMQ、或物联网领域中的MQTT)相比,Apache Kafka的域驱动设计(DDD)实现了背压处理和数据可重放性的真正解耦,同时提升了高可用性和故障安全(fail-safe)性,这些都是生产环境中至关重要的。
用于工业物联网MQTT和OPC UA的Kafka域驱动设计
4.OPC-UA、MQTT、HTTP与其他目前,开放且标准化的物联网架构有三个通用的标准:OPC-UA(Open Platform Communications Unified Architecture,开放平台通信统一架构)和MQTT(Message Queuing Telemetry Transport,消息队列遥测传输),这两个是特定于物联网的协议,另一个是简单的REST/HTTP。当然,业界也有一些私有的特定协议。例如:Skynet的专有DataHub传输协议(DHTP,https://skkynet.com/iiot-protocol-comparison),以及开放标准的替代方案--AMQP等。下表展示了它们在特性上的比较:
工业物联网协议的比较
5.评估物联网协议的决策树那么,哪一种更值得我们去选用呢?首先,需要强调的是,此类讨论只有在您拥有选择权的情况下才有意义。如果您在车间购买并安装了一台新机器或PLC,而仅提供特定接口,那么您只有用的份,没有选择可言。当然,不同领域的人员可能会有不同的选择偏好。甚至有人会从TCO和ROI的角度,认为专有方案会是更好的选择。而总地说来,对于不同的物联网协议,我的建议是:尽可能地使用开放标准,甚至可以按需将它们组合到一起。下面,让我们来看一个简单的、如何在OPC-UA、MQTT、HTTP和其他专有的工业物联网协议之间,做出选择的“决策树”: