Você está na página 1de 85

Introdução a IoT

Professor Rivaldo J. Silva


Fatec Zona Leste
Introdução
Histórico
A história da Internet das Coisas (IoT, na sigla em inglês) começa na década
de 90, quando varejistas do Reino Unido passaram a experimentar cartões de
fidelidade com um chip de RFID.

A tecnologia foi apresentada a Kevin Ashton da P&G, Ashton que enfrentava


um desafio: descobrir uma forma de controlar o estoque de mercadorias nas
lojas que vendiam os produtos da marca.

Foi dessa forma que, em 1999, ele acabou idealizando um sistema de


sensores que poderiam conectar o mundo físico à Internet.
Definição
Segundo a IBM, IoT é o conceito de conectar
qualquer despositivo à internet. É uma rede
gigantesca de conexões entre coisas e pessoas, que
coleta e compartilha dados sobre a forma como os
aparelhos são usados e também sobre os ambientes
em que estão.

Segundo dados da empresa de pesquisas Juniper


Research revelaram que o número total de sensores
e dispositivos conectados deve ultrapassar 50
bilhões até 2022, mais que o dobro dos estimados
21 bilhões em 2018.
Aplicação
Tecnologias chave - Wireless
Frameworks

Cloud Computing
Tendências AI 2020

2018

2016

2014

Cloud
Internet Industrial das Coisas

Internet Industrial das Coisas


IIoT Use Cases

Internet Industrial das Coisas


IIoT Mercado

Internet Industrial das Coisas


Internet Industrial das Coisas
IIoT x IoT: Pontos de destaque
• Cybersecurity: ataques em sistema IIoT podem provocar danos e
prejuízos a empresas populações;
• Criticidade e operação 24x7;
• Soluções de IIoT devem prever compatibilidade retorativa (SCADAs,
CLPs, etc..) e integração com aplicações de backoffice como os ERPs;
• Dispositivos de IIoT devem prever operação determinística, com escala
de dezenas de milhares de sensores por planta;
• IIoT é composta por dispositivos mais complexos e que exigem
robustez e operação insalubre;
• IIoT a robustez, resiliência e disponibilidade são mais importantes do
que a experiência de usuário de aplicações IoT.
Middleware para
Sistemas Industriais
Sistemas Distribuídos na Industria
• Necessidade de integração de uma ampla variedade de dispositivos
de fabricantes diferentes nas plantas industriais;
• Necessidade de interoperabilidade com sistemas corporativos;
• Sistemas abertos (????);
• Tecnologias para RPC (Remote Procedures Call).
RPC
É uma técnica para desenvolvimento
de aplicações Cliente-Servidor.

De forma diferente dos SOCKETS


emprega um mecanismo de
RUNTIME que intercepta as
comunicação entre os processos.
Tecnologias de RPC
• DCOM: Distributed Common Object Model
• Microsoft;
• Padrão atual da indústria.
• CORBA: Common Object Request Broker
Arquitecture
• Multiplataforma/Multilinguagem; • JAVA/RMI
• Sistema Aberto. • Multiplataforma/Só Java
• Em declínio. • Sistema Livre;
• Pouco usado.
• Web Services
• Multiplataforma
• Sistema Aberto
• Versão para sistemas embarcados
(DPWS)
DCOM
A plataforma Distributed COM (DCOM) foi desenvolvido pela Microsoft
herdando as funcionalidade Component Object Model (COM) para
suportar a comunicação de diferentes objetos em diferentes
computadores em uma rede local ou de longa distância.

O COM é uma API para execução de RPC em processo locais.


O DCOM é a versão do COM para Sistemas Distribuídos.
DCOM: Arquitetura

Internet Industrial das Coisas


DCOM: Exemplo
Computador Y

Internet Industrial das Coisas

Aplicação R no computador
X compartilha dados com
uma planilha do Excel no
Computador Y
Computador X
DCOM:Vantagens
• Multilinguagem (C/C++, C#, Delphi, Visual Basic,
etc);
• Suporte nativo no Windows;
• API rica no .NET framework;
• Atual padrão da industria (OPC).
DCOM:Desvantagens
• É dependente de plataforma;
• Ao mandar mensagens pela internet, torna-se um
grande problema a presença de firewalls (usa
muitas portas);
• Não foi desenvolvido, originalmente, para
funcionar com a internet;
• O tipo de mensagens geradas é muito complexo.
CORBA: Definição
• Common Object Request Broker Architecture ;
• Proposta da Object Management Group (OMG)
para desenvolvimento de aplicações distribuídas;
• Multiplataforma e multilinguagem.
CORBA: Arquitetura

Internet Industrial das Coisas


CORBA:Vantagens
• Multilinguagem;
• Multiplataforma;
• Usa repositório de implementações;
• Robusto (segurança, estabilidade, confiabilidade);
• Mantido pela OMG (padrão de industria).
CORBA:Desvantagens
• Complexo;
• Desenvolvimento lento;
• Lento em comparação com o DCOM;
• Apesar de multilinguagem não suporta o .NET da
Microsoft;
• Não existe ambiente RAD para o CORBA;
• Não opera em modo multiprocessos.

COMO 700 EMPRESAS NO MUNDO APOIOARAM O DESENVOLVIMENTO DO CORBA??? The Rise and Fall of Corba!!!
JAVA/RMI
• RMI – Remote Metod Invocation
• Permitir que um método de uma classe Java em
execução em uma máquina virtual chame um
método de um objeto (instância de uma classe
Java) situado em outra máquina virtual, usando a
mesma sintaxe e com a mesma facilidade de se
chamar um método local.
JAVA/RMI: Arquitetura 1
naming service

Registry

1 get an object reference

object reference is published


Internet Industrial das Coisas
2
perceived

Server Client

actual
Skeleton Stub

communication
JAVA/RMI: Arquitetura 2
Interface source code

rmic compiler rmic compiler

Internet Industrial das Coisas


server source
code
Skeleton Stub

javac compiler javac compiler

Server bytecode Client bytecode


JAVA/RMI: Vantagens
• Simplicidade;
• Multiplataforma;
• Usa sockets para RPC;
• Não precisa de um linguagem de descrição de
interface (IDL) como no CORBA;
• Possui vários ambientes RAD disponíveis para o
desenvolvedor.
JAVA/RMI: Desvantagens
• É limitado a Java.
• Muitas vezes é necessário implementar partes do
sistema em C++ por questões de eficiência;
• Desempenho de RMI às vezes é um pouco menor
que o CORBA;
• A arquitetura de CORBA como um todo é mais
abrangente e robusta.
Serviços Web
Os Serviços Web são aplicativos disponíveis através
da Internet, compatíveis com a Arquitetura Orientada
a Serviços, que usam um sistema padrão eXtensible
Markup Language (XML) para troca de mensagens e
que são independentes do tipo de sistema
operacional ou linguagem de programação
Arquitetura Orientada a
Serviços (AOS)
São as políticas, práticas, estruturas que permitem a funcionalidade de aplicativo a ser
prestado e consumido como conjuntos de serviços publicados em uma granularidade
relevante para o consumidor do serviço. Serviços podem ser invocados, publicados e
descobertos, e são abstraídos da implementação usando um único formulário padronizado
como interface
JAVA/RMI: Arquitetura 2

Internet Industrial das Coisas


Web Services: Características
• Troca de mensagens XML request/reply através de protocolo
SOAP sobre HTTP;
• Descrição de serviços: Serviços Web fornecem uma
descrição completa dos seus serviços e como os usuários
podem criar aplicações para interagir com estes. Esta
descrição é feita através da Web Service Description
Language (WSDL).
• Auto-descoberta: os Serviços Web são registrados em
serviços especiais para que os potenciais usuários possam
achá-los. Este registro é feito na Universal Discovery
Description and Integration (UDDI).
Web Services: Arquitetura
Aplicação
UDDI
WS-SecureConversation
WS-Security
WS-Policy
Internet Industrial das Coisas

WS-MetadataExchanging, WS-Transfer
WS-Addressing
SOAP
WSDL
XML
UDP HTTP
TCP
IPv4 / IPv6
O que é Web Service REST?
É um serviço Web onvocado a partir de
uma semântica simples baseado em
requisições de HTPP.

Internet Industrial das Coisas

•GET http://www.meusite.com/usuarios
•DELETE http://www.meusite.com/usuarios/jackson
•POST http://www.meusite.com/usuarios –data {nome: joaquim}
Formatos de retorno

Internet Industrial das Coisas


Web Services: Vantagens
• Mensagens SOAP são complexas (overhead);
• Processamento de código extra para manter sessões;
• Desacoplamento também pode ser uma desvantagem na
detecção de desligamento de um cliente.
Web Services: Desvantagens

• É limitado a Java.
• Muitas vezes é necessário implementar partes do
sistema em C++ por questões de eficiência;
• Desempenho de RMI às vezes é um pouco menor
que o CORBA;
• A arquitetura de CORBA como um todo é mais
abrangente e robusta.
OPC
• OLE for Process Control
• Criado em 1995 por um grupo de fabricantes de dispositivos
industriais e a MS;
• Suporte para integração de CLPs com aplicativos supervisórios
(SCADA);
• Usa DCOM como suporte;
• Opera somente em plataforma Windows (existem poucas
implementações em Linux).
OPC: Cenário 1
• Integração de SCADA com CLPs é feito por intermédio de drivers;
• podem existir vários drivers para um mesmo equipamento (para
diferentes ferramentas SCADA);
• qualquer mudança no hardware implica em mudanças nos drivers;
• Custo alto para desenvolvimento dos drives no SCADA;
OPC: Cenário 2
• Integração de SCADA com CLPs é feito por intermédio de drivers;
• podem existir vários drivers para um mesmo equipamento (para
diferentes ferramentas SCADA);
• qualquer mudança no hardware implica em mudanças nos drivers;
• Custo alto para desenvolvimento dos drives no SCADA.
Internet Industrial das Coisas
OPC: Solução
OPC serve de interface entre o driver do CLP e os softwares de
controle e supervisão.

Internet Industrial das Coisas


OPC: Arquitetura 1

Internet Industrial das Coisas


OPC: Arquitetura 2

Internet Industrial das Coisas


SCADA
• Supervisory Control And Data Acquisition;
• O SCADA é um sistema responsável pela coleta e transferência
de informações lógicas e analógicas sobre o estado corrente do
sistema, pela exibição desses dados na sala de controle e pelo
comando remoto de dispositivos
SCADA: Arquitetura

Internet Industrial das Coisas


OPC: Vantagens
• Padrão atual da industria;
• Roda sobre Windows;
• Facilita a integração
• Bom desempenho em rede local..
OPC: Desvantagens
• Dependente da plataforma Windows;
• Dificuldade de integração com redes remotas (herdado do
DCOM);
• Vulnerabilidades de segurança, pois exige a abertura de
portas e “relaxamento” do sistema operacional – via
DCOMconfig (Vide Stuxnet Worm)
• Restrito à rede local.
OPC - UA
• OPC – Unified Arquitecture: nova geração do OPC;
• Primeira versão “Release Candidate” do padrão em Agosto de 2008;
• Já existem SCADAs e dispositivos OPC-UA no mercado!!!
• Estende as funcionalidades de integração do dados o OPC XML-DA;
• Substitui o DCOM como suporte ao OPC;
• Dispõe de pilha OPC-UA para sistemas embarcados em várias linguagens (C/C++, Java,
C# .NET);
• Promete alto desempenho!!!!
• Integração de dados via XML/SOAP (Web Services)
• Implementação de segurança via WS-Security
OPC – UA: Arquitetura 1

Internet Industrial das Coisas


OPC – UA: Pilha

Internet Industrial das Coisas


OPC – UA: Segurança

Internet Industrial das Coisas

WS –SecureConversation
SSL/TLS
UA-SecureConversation
OPC – UA: Cenário

Internet Industrial das Coisas


OPC – UA: Ferramentas
http://www.embeddedlabs.com/servermodule.html

Internet Industrial das Coisas

http://www.unified-automation.com/c++-
based-opc-ua-server-sdk.htm
http://www.inductiveautomation.com/pt/scada-software#
OPC – UA: Serviços de Eventos

Internet Industrial das Coisas


OPC - UA: Vantagens
• Será o novo padrão da indústria;
• Mesmas vantagens dos Serviços Web:
• Multiplataforma;
• Multilinguagem;
• Interoperabilidade;
• Maior desempenho que serviços Web (equivalente ao
DCOM) – Usando TCP-UA
• Segurança dos Serviços Web (WS-secureConversation/UA-
SecureConversation).
Protocolos e Padrões
para IoT
AMQP
AMQP significa Advanced Message Queuing Protocol (Protocolo Avançado de Filas de
Mensagem) . O AMQP define um protocolo padrão para publicação, enfileiramento,
armazenamento e consumo de mensagens. O produtor de mensagens utiliza uma API para
publicar as mensagens no servidor. O servidor/broker irá colocar as mensagens em filas e
armazená-las enquanto estes não são consumidos. Por fim, uma aplicação irá consumir as
mensagens removendo-as das filas.
AMQP
Device in_queue
Server out_queue

transfer (<cmd>, replyTo, messageId)

settlement (based on QoS)


Internet Industrial das Coisas

transfer (<result>, correlationId = messageId)

settlement (based on QoS)


COAP
• CoAP (Constrained Application Protocol – Protocolo de Aplicação Restrita)
• O modelo de interação do CoAP é semelhante ao modelo cliente/servidor do
protocolo HTTP. No entanto, as interações máquina-máquina normalmente
resultam em uma implementação do CoAP que atua nas funções do cliente e
do servidor.
• Ao contrário do HTTP, o CoAP lida com esses intercâmbios de forma assíncrona
ao longo de um transporte orientado a datagramas, como o UDP. Isso é feito
logicamente usando uma camada de mensagens que suporta uma
confiabilidade opcional (com back-off exponencial). O CoAP define quatro tipos
de mensagens:
• confirmação;
• não confirmação;
• reconhecimento;
• reset.
COAP e REST

Internet Industrial das Coisas


MQTT: Simples,
Robusto, Popular
MQTT, peça chave em IIoT
MQTT (Message Queuing Telemetry Transport) é protocol M2M
sobre arquitetura TCP-IP

Leve, simples, o MQTT é baseado em uma estrutura de assinatura


de publicação:
• Um Publisher (Publicador) envia mensagens de acordo com os
Tópicos para Brokers especificados.
• Um Boker que atua como uma central telefônica, aceitando
mensagens de editores em
tópicos especificados e enviá-los aos assinantes desses
Tópicos.
• Um Subscriber (Assinante) recebe mensagens de agentes
conectados e tópicos especificados.
Modelo de Mensagens do MQTT

Internet Industrial das Coisas


MQTT na Indústria

Internet Industrial das Coisas


MQTT: Vantagens
• Codificação mais simples, que permite que o protocolo
funcione mesmo em sistemas pouco modernos ou com
falhas de armazenamento. Além disso, ele será útil até em
redes onde a internet é limitada;
• Sistema que não se sobrecarrega: Só o necessário passa por
um protocolo MQTT, o que faz com que ele não fique
sobrecarregado e sofra panes.;
• Domínio Público: Um protocolo de domínio público garante
que haja mais flexibilidade e que ele seja instalado em
qualquer rede ou hardware. Além disso, ele permite ser
configurado conforme suas escolhas;
MQTT: Desvantagens
• Opera sobre TCP-IP podendo causar latências e jitter
• Emprego de broher centralizado pode limitar escala,
exigindo um servidor robusto para aplicações com milhares
de nós
• Não provê implementação de segurança fim-a-fim como os
Web Services, apenas suporta tunelamento TLS e SSL
• No entanto é possível criptografar o payload das
mensagens por software ou hardware
Computação em
Nuvem
Definição
• Cloud Computing é um termo geral usado para descrever uma nova classe de
computação baseada em rede que ocorre na Internet, basicamente um passo de Utility
Computing
• É uma coleção / grupo de hardware, software e infraestrutura de Internet integrados e
conectados em rede (chamada de plataforma).
• É Usar a Internet para comunicação e transporte fornece serviços de hardware,
software e rede para clientes
• Essas plataformas escondem a complexidade e os detalhes da infraestrutura subjacente
de usuários e aplicativos, fornecendo interface gráfica muito simples ou API
(Applications Programming Interface).
Arquitetura

Internet Industrial das Coisas


Modelo
SERVICES
APPLICATIONS

Internet Industrial das Coisas

COMPUTER
NETWORK

STORAGE
(DATABASE)

SERVERS
Características
Common Characteristics:

Massive Scale Resilient Computing

Homogeneity Geographic Distribution

Virtualization Service Orientation


Internet Industrial das Coisas

Low Cost Software Advanced Security

Essential Characteristics:

On Demand Self-Service

Broad Network Access Rapid Elasticity

Resource Pooling Measured Service


Modelos de Serviços
Infrastructure as a Service
Software as a Service (SaaS) Platform as a Service (PaaS)
(IaaS)

SalesForce CRM

LotusLive

Internet Industrial das Coisas


Google App
Engine
Camadas
Application Service MS Live/ExchangeLabs, IBM,
(SaaS) Google Apps; Salesforce.com
Quicken Online, Zoho, Cisco

Google
Internet Industrial das CoisasApp
Engine, Mosso,
Application Platform Force.com, Engine Yard,
Facebook, Heroku, AWS

3Tera, EC2, SliceHost,


Server Platform
GoGrid, RightScale, Linode

Storage Platform Amazon S3, Dell, Apple, ...


Virtualização
• Espaços de trabalho virtuais:
• Uma abstração de um ambiente de execução que pode ser disponibilizado
dinamicamente para clientes autorizados usando protocolos bem definidos,
• Cota de recursos (por exemplo, CPU, compartilhamento de memória)
• Configuração de software (por exemplo, O/S, serviços fornecidos).
• Implementar em máquinas virtuais (VMs):
• Abstração de uma máquina host física,
• O hipervisor intercepta e emula instruções de VMs e permite o gerenciamento de
VMs,
• VMWare, Xen, etc.
• Fornecer API de infraestrutura:
• Plug-ins para estruturas de hardware / suporte
Máquinas Virtuais
App App App App App

Xen

Guest OS Guest OS Guest OS


(Linux) (NetBSD) (Windows)
VMWare
Internet Industrial das Coisas
VM VM VM

UML
Virtual Machine Monitor (VMM) / Hypervisor

Denali
Hardware

etc.
Algumas soluções comerciais

Internet Industrial das Coisas


Custos: Amazon Simple Storage Service (S3)

• Unlimited Storage.
• Pay for what you use:
• $0.20 per GByte of data transferred,
• $0.15 per GByte-Month for storage used,
• Second Life Update:
• 1TBytes, 40,000 downloads in 24 hours - $200
Vantagens
• Custos de computação menores
• Performance melhorada
• Custos de software reduzidos
• Atualizações instantâneas de software
• Melhor compatibilidade de formato de documento
• Capacidade de armazenamento ilimitado
• Maior confiabilidade dos dados
Desvantagens
• Requer uma conexão com a Internet constante
• Não funciona bem com conexões de baixa velocidade
• Recursos podem ser limitados
• Pode ser lento
• Dados armazenados podem não ser seguros (governança)
• Dados armazenados podem ser perdidos

Você também pode gostar