Serviceline Industrial Sensors
Serviceline Explosion Protection

倍加福提供四种作为 IIoT 使能技术、基于 TCP 的通信协议——第四部分:REST API

2024-09-12

倍加福, 传感器, IIoT, 通信协议, REST API

未来自动化,受工业4.0、物联网(IIoT)、智能工厂和智能设备等概念的影响。这个新技术时代的核心是互联互通。我们正在建立更大更全面的网络结构,实现各个节点相互连接并交换数据,来取代僵化的、分层的自动化金字塔式结构。

为了实现这种智能网络,设备必须具备 IIoT 功能,即标准化、可扩展性、与 IT 和 OT 系统的兼容性以及互操作性。此外,还必须确保能够安全地进行通信。可以通过多种通信协议来实现这种智能通信,如 MQTT、OPC UA、AMQP 和 REST API。通过对倍加福四种基于 TCP 的通信协议的介绍和分析,您可以了解到这些 IIoT 通信协议的特性,以及其适用于哪些应用。

通过下文,了解该系列的第四部分—— REST API 通信协议


什么是 REST API,它是如何工作的?

表现层状态转化 (REST)是简化和协调网络设备间通信的架构框架。由 Roy Fielding 于2000年作为其博士论文的一部分开发。REST 可以在任何协议的基础上实现,但其实REST早已经在互联网上广泛使用,并且以基于 HTTP(S)规范定义架构框架而闻名。HTTP 是应用层广泛使用的请求/响应协议。但是,如果每个人都根据自己的想法使用HTTP,那组件之间就无法进行同步,也无法进行通信。REST 纠正了这种情况,并统一了 HTTP 的使用。REST 的核心思想是以表现层的方式(从服务器)传输状态(到客户端)。此处有两个要点。一方面,服务器是无状态的。它不会存储关于是否以及何时连接到客户端的状态信息。它只向客户端发送即时状态,客户端可以根据从服务器接收的特定状态构建自己的状态逻辑,从而实现应用。此外,服务器可以将资源以多种表现层格式发送到客户端。在 REST 架构中,客户端可以访问的每个数据单元都称为资源,并通过统一资源标识符(URI)对应的访问点进行访问。每个资源都有一个 URI。

REST 的优势之一在于资源与表现层解耦。服务器可以以任何格式(如数据库、CSV 文件或对象类)存储资源。然而在向客户端提供这些资源时,服务器能够根据客户端的需求以一种或多种表现层格式(如二进制、JSON、XML、YAML 或 JPEG)来表现。客户端访问的是表现层形式,而不是资源本身。使用 REST 的应用和接口称为 RESTful。

接口或应用必须满足以下五个一般条件才能被认为是 RESTful

Client/Server 客户端/服务器

通信应在客户端和服务器之间进行。如上所述,客户端是信息搜索者,服务器是信息提供者。如图 1 所示,客户端向服务器询问温度,服务器以 JSON 格式响应包含温度的消息。客户端请求中应包含两个关键组件,即 URI 和 HTTP 方法。HTTP 方法是客户请求服务器执行的操作。有6种标准 HTTP 方法(GET、PUT、POST、DELETE、HEAD 和 OPTIONS),用于特定情况下使用。例如,GET 用于接收资源状态,PUT 用于更新资源,POST 用于创建资源,DELETE 用于删除资源。


图 1:典型的 REST API 应用

无状态

服务器不会保留与之通信的客户端。这就将存储状态的责任转移给了客户端,则服务器更加易于部署。

可缓存

服务器包含关于其资源是否适合缓存的信息。如果是这种情况,资源将包含版本号,以便客户端接收有效性和历史信息。

多层级

无论客户端和服务器之间存在多少层级,它们都应该能够相互通信,即使它们之间存在代理。可能有多个层级,如安全层、缓存层、负载均衡层,并不会影响客户端和服务器的消息传输。

统一接口

统一接口必须满足以下几个条件:

  • 每个资源都必须具有 URI 形式的对应标识符。
  • 一旦客户端获得资源及其元数据的表现层形式(以及适当的权限),就可以添加、删除或修改资源。
  • 交换的消息应具有自描述性,并包含所有必要的信息以便处理资源。
  • 资源被链接在一起,客户端可以通过访问特定的 URI 获取有关所有资源的 URI 信息。

REST API 的互操作性

RESTful 接口在语法层级提供了多种标准化能力,如 OpenAPI、RAML、API、Blueprint。作为描述用户和计算机的 RESTful 接口标准,无需打开使用手册即可实现交互。RESTful 接口既能实现机器与机器的交互,也能实现人与机器的交互。在机器与机器的交互中,两台机器都可以处理来自其通信伙伴的 REST API,并在无需人工干预的情况下访问数据。只有在创建具有特定业务逻辑或用户界面的应用(实现所谓的"语义互操作性")时,用户才必须与系统进行交互。在人机交互方面,通过一些表现层的工具可以帮助用户轻松理解 REST API 并与之互动。

REST API 的实时行为

RESTful 接口(基于 HTTP 请求/响应通信协议)不具备实时功能。数据更新的速度取决于客户端查询服务器的频率。过于频繁的查询可能会导致网络过载。

REST API 的安全性

RESTful 接口没有自己的安全机制,因为在其开发时,安全性并不是重点。然而,随着 RESTful API 的广泛应用,已经形成了一系列保障安全性的实践,包括用户名和密码身份验证、JWT 令牌和 OAuth 安全机制。

实现:REST API 与 MQTT、OPC UA 、AMQP 进行比较

MQTT 和 AMQP 的设计非常紧凑,除了包含或排除安全功能外,没有任何操作空间,也不需要进行优化。这同样适用于 RESTful 接口。然而,其实现仍有一些额外的工作需求:RESTful 接口不像 MQTT 那样简单,也不像 AMQP 和 OPC UA 那样复杂。其应用可以非常快速地完成开发,尤其是在 HTTP 已经作为协议可用的情况下。从实现的角度,当 REST API 包含大量资源时,其挑战将变得更大。

REST API 的应用

RESTful 接口早已成为互联网领域的标准,大多数用户对它都很熟悉。当双方之间进行直接通信时,RESTful 接口是理想的解决方案,这种通信对于机器或系统应该是清晰、易于操作的,对于用户应该是直观、易于理解的。绝大部分公司都会针对其设备或提供的服务定义 RESTful 接口。倍加福传感器也是基于 RESTful API。此外,REST 在网站后端处理时非常简单、易解析,能够以非常便捷和直观的用户友好型方式呈现。

您想了解更多关于作为 IIoT 使能技术、基于 TCP 的各种通信协议吗?立即获取免费白皮书。