Quatro protocolos de comunicação baseados em TCP que são fundamentais para a IIoT – Parte 4: API REST
Conteúdo deste artigo
- Série de blogs sobre protocolos de comunicação IIoT
- O que é API REST e como funciona?
- Interoperabilidade da API REST
- Comportamento em tempo real da API REST
- Segurança da API REST
- Implementação de API REST em comparação com MQTT, OPC UA e AMQP
- Uso da API REST
- Documento técnico: Quatro protocolos de comunicação baseados em TCP
- Mais informações
Quatro protocolos de comunicação baseados em TCP que são fundamentais para a IIoT – Parte 4: API REST
A automação do futuro envolve IIoT, fábricas inteligentes e dispositivos inteligentes. A conectividade é o foco desta nova era tecnológica. Em vez de pirâmides de automação rígidas e hierárquicas com camadas divisórias, estruturas de rede mais extensas estão sendo estabelecidas nas quais nós individuais estão ligados uns aos outros e trocam dados.
Os dispositivos compatíveis com IIoT são necessários para implementar esse tipo de rede inteligente. Eles devem ser padronizados, escaláveis, compatíveis com TI e OT e interoperáveis. Eles também devem ser capazes de se comunicar com segurança. Vários protocolos de comunicação estão disponíveis para isso: MQTT, OPC UA, AMQP e API REST permitem comunicação inteligente. Em nossa série de artigos de blog, você pode descobrir quais propriedades caracterizam o respectivo protocolo de comunicação IIoT, e para quais casos de uso é particularmente adequado. A quarta parte da série de artigos é sobre API REST.
Série de blogs sobre protocolos de comunicação IIoT
O que é API REST e como funciona?
A transferência de estado de representação (REST, Representation State Transfer) resume estruturas arquitetônicas que simplificam e harmonizam a comunicação entre dispositivos em uma rede. Foi desenvolvida em 2000 por Roy Fielding como parte de sua tese de doutorado. A REST pode ser implementada com base em qualquer protocolo, mas se estabeleceu em redes de Internet e é mais conhecida por definir estruturas arquitetônicas baseadas na especificação HTTP(S). HTTP é um protocolo de solicitação/resposta amplamente utilizado na camada de aplicação. No entanto, se todos usassem o HTTP com base em suas próprias ideias, não ocorreria nenhuma sincronização e, portanto, nenhuma comunicação entre os componentes. A REST corrigiu esta situação e harmonizou o uso de HTTP. A ideia central por trás da REST é transferir o estado (do servidor) de maneira representativa (para o cliente). Há dois pontos importantes que devem ser mencionados aqui. Por um lado, o servidor não tem estado. Nenhuma informação de estado é armazenada sobre se e quando ele foi conectado a um cliente. Ele envia apenas o estado instantâneo ao cliente, que pode criar um aplicativo baseado em estado com base nos estados específicos que recebe do servidor. Além disso, o servidor pode enviar os recursos ao cliente em diversos formatos representativos. Cada unidade de dados que o cliente pode acessar em REST é chamada de recurso e é acessível por meio de um ponto de acesso exclusivo chamado URI (Uniform Resource Identifier). Cada recurso possui um URI.
Um benefício da REST é que os recursos são dissociados de sua representação. O servidor pode armazenar os recursos em qualquer formato (em um banco de dados, arquivo CSV ou classe baseada em objeto). No entanto, pode fornecer os recursos em um ou mais formatos de apresentação, como binário, JSON, XML, YAML ou JPEG. Isso significa que o cliente acessa a representação, mas não o recurso em si. Aplicativos e interfaces que usam REST são chamados de RESTful.
As cinco condições gerais a seguir devem ser atendidas para que uma interface ou aplicativo seja considerado RESTful:
Cliente/Servidor
A comunicação deve ocorrer entre um cliente e um servidor. Conforme mencionado acima, o cliente é o buscador e o servidor é o fornecedor da informação. Por exemplo, na Figura 1, o cliente solicita a temperatura ao servidor e o servidor responde com uma mensagem contendo a temperatura no formato JSON. Dois componentes principais devem ser incluídos na solicitação do cliente: um URI e um método HTTP. Os métodos HTTP são ações solicitadas pelo cliente ao servidor. Existem seis métodos HTTP padrão (GET, PUT, POST, DELETE, HEAD e OPTIONS), que são usados em situações específicas. Por exemplo, GET deve ser usado para receber o estado de um recurso, PUT para atualizar um recurso, POST para criar um recurso e DELETE para excluir um recurso.
Sem estado
O servidor não lembra com qual cliente falou. Isso transfere a responsabilidade de armazenar o estado para o cliente, tornando a implantação do servidor mais compacta.
Capacidade de armazenamento em cache
O servidor contém informações sobre se seus recursos são adequados para armazenamento em cache. Se for esse o caso, os recursos contêm números de versão para que o cliente receba informações de validade e histórico.
Múltiplas camadas
Não importa quantas camadas existam entre o cliente e o servidor, eles devem ser capazes de se comunicar entre si, mesmo que existam proxies entre eles. Pode haver múltiplas camadas, como a camada de segurança, a camada de cache e a camada de balanceamento de carga, mas elas não devem afetar a transmissão de mensagens do cliente e do servidor.
Interface uniforme
Várias condições devem ser satisfeitas para uma interface uniforme:
- Cada recurso deve ter um identificador exclusivo na forma de um URI.
- Depois que o cliente tiver uma representação de um recurso e seus metadados (e a permissão apropriada), ele poderá adicionar, excluir ou modificar um recurso.
- As mensagens trocadas devem ser autodescritivas e conter informações suficientes para processar os recursos.
- Os recursos são interligados e o cliente pode obter informações sobre os URIs de todos os recursos acessando um URI específico.
Interoperabilidade da API REST
A interface RESTful fornece diversos recursos de padronização no nível sintático, como OpenAPI, RAML, API e Blueprint. Eles são padrões para descrever as interfaces RESTful para seres humanos e computadores e permitem a interação entre si sem a necessidade de consultar um manual. Isso permite que a interface RESTful realize interações máquina-máquina e homem-máquina. Para interação máquina-máquina, ambas as máquinas podem processar as APIs REST de seus parceiros de comunicação e acessar dados sem intervenção humana. Um ser humano só deve interagir com o sistema no caso de uma aplicação significativa precisar ser criada (interoperabilidade semântica). Em termos de interação homem-máquina, diversas ferramentas representativas permitem fácil entendimento e interação com a API REST.
Comportamento em tempo real da API REST
A interface RESTful, onde HTTP é um protocolo de comunicação de solicitação/resposta, não possui funcionalidade em tempo real. A velocidade da atualização dos dados depende da frequência com que o cliente consulta o servidor. Muitas consultas podem sobrecarregar a rede.
Segurança da API REST
A interface RESTful não possui mecanismos de segurança próprios, pois a segurança não era o foco no momento de seu desenvolvimento. No entanto, existem muitas práticas recomendadas, incluindo autenticação de nome de usuário e senha, tokens JWT e mecanismos de segurança OAuth.
Implementação de API REST em comparação com MQTT, OPC UA e AMQP
MQTT e AMQP são projetados para serem tão compactos quanto possível, de forma que não haja espaço de manobra nem necessidade de otimização, além de incluir ou excluir recursos de segurança. O mesmo se aplica à interface RESTful. No entanto, é necessário algum esforço: a interface RESTful não é tão simples quanto MQTT e nem tão complexa quanto AMQP e OPC UA. Uma aplicação pode ser desenvolvida muito rapidamente, especialmente se o HTTP já estiver disponível como protocolo. Do ponto de vista da implementação, o desafio se torna maior quando a API REST contém muitos recursos.
Uso da API REST
A interface RESTful é há muito tempo um padrão no setor da Internet, e a maioria dos usuários está familiarizada com ela. É ideal quando há comunicação direta entre duas partes que deve ser fácil de entender e usar, inclusive pelas pessoas. Há poucas empresas que não possuem uma definição de interface RESTful para seus próprios dispositivos ou para os serviços que fornecem. A Pepperl+Fuchs também conta com uma API RESTful para seus sensores. Além disso, REST é muito fácil de analisar no backend de um site e pode ser apresentado de uma forma extremamente fácil de usar.
Documento técnico: Quatro protocolos de comunicação baseados em TCP
Saiba mais sobre as diferenças e semelhanças dos quatro protocolos de comunicação IIoT: API REST, MQTT, OPC UA e AMQP.
Assine nossa newsletter e receba regularmente notícias e fatos interessantes do mundo da automação.