O documento discute a Internet das Coisas (IoT), onde o hardware não é mais um desafio. Resume que a evolução da tecnologia tornou o hardware mais barato e fácil de usar, permitindo a conectividade e transmissão de dados de objetos. Apresenta diferentes protocolos e modelos de comunicação para integrar dispositivos à nuvem e discute a computação na "névoa" como forma de descentralizar o processamento.
1. Engenharia das Coisas
IoT onde hardware não é mais um desafio
Alexandre Cardoso
1º Hackday FIESP – 16/Ago/2016
2. Quem sou eu?
• Líder em Arquitetura de Software
• Bacharel em Ciências da Computação / Pós-
graduação em Big Data e Data Science
• Construindo software há 16 anos
• Desenvolvedor / Consultor / Líder técnico
• Web, mobile, Big Data, Internet das Coisas
• Java, Scala, Python, Ruby, Javascript
4. • “Éa rede de objetos físicos dotados de tecnologia
embarcada para comunicar e sentir ou interagir
com si próprios ou o ambiente externo.” (Gartner)(1)
• “É o conceito sobre objetos do cotidiano – de
máquinas industriais à wearables – que utilizem
sensores e tecnologia embarcada para coletar
dados e tomar ações sobre estes dados através de
uma rede” (SAS)(2)
O que é IoT - “Internet das Coisas”?
(1) http://www.gartner.com/it-glossary/internet-of-things/
(2) http://www.sas.com/pt_br/insights/big-data/internet-das-coisas.html
5. O que podemos chamar de “coisa”?
“Qualquercoisa,antesdesconectada, masagoracapaz de
transmitirereceberdadose/oucomandosatravés deumarede”
6. IoT vs M2M – Machine to Machine
• Dispositivos conectados “by design”
• Ponto a ponto
• Intranet ou Internet
• Não dependem diretamente de
intervenção humana
• Automação industrial
• Formula 1
• Tráfego aéreo
7. Na Internet, primeiro vieram as pessoas
Fonte: http://dazeinfo.com/2014/11/19/growth-internet-telecom-users-india-q2-2014-disappoints/
9. Pra chegar lá, o que aconteceu?
• Desenvolvemos tecnologia:
• IPv6
• Cloud computing
• Tecnologia embarcada
• Microcontroladores
• SoC – System on a Chip
• Sensores
• Dispositivos de baixo
consumo
• Miniaturização
• Protocolos
10. Está mais fácil prototipar
• Hardware mais barato e acessível
• Linguagens e ambientes para
desenvolvimento
• Open-source
• Cada vez mais didático
11. Está mais fácil conectar
• Conectividade de baixo consumo
• Bluetooth Low Energy
• Zigbee
• 6LowPAN
• Z-Wave (RF)
• Conectividade como “commodity”
• Custo cada vez menor
• Fácil de integrar com o cotidiano
• Wi-fi doméstico
• Wi-fi corporativo
• Bluetooth veicular
WiFi
ESP8266 v12E
GSM
Arduino Uno +
Shield GSM
SoC (System
on a Chip)
Raspberry PI 3
ou Zero
12. Se tudo é “fácil”, qual o desafio??
• Distribuir
• Ampliar presença
• Escalar
• Adicionar mais capacidade
sem perder
desempenho/eficiência
13. Arquiteturas distribuídas
• Principais elementos
• Processamento
• Bare metal
• Virtualização
• Cloud computing
• Elasticidade x Granularidade
• Armazenamento (guardar e recuperar)
• Dados em todo o lugar
• Tolerância ao particionamento
• NoSQL, Hadoop, etc
• Transmissão
14. Arquiteturas distribuídas
“O recurso mais escasso e menos confiável de
uma arquitetura distribuída é, e sempre será, a
rede de dados que interliga seus elementos”
15. Redes de dados em IoT
• Wired e wireless
• IP-based ou não
• Maior parte com foco em baixo
consumo de energia e baixo
custo de implementação
• Todas oferecem níveis diferentes
de latência e largura de banda
• Todas oferecem caminhos à
Internet
16. O “vai e vem” na nuvem
• Dados são transportados mediante
protocolos estabelecidos:
• TCP / UDP
• Integração se dá em vários modelos:
• Request - Response
• Publish - Subscribe
• Message queuing
• Dados são trocados mediante protocolos
de aplicação
• HTTP(s)
• MQTT
• CoAP
• AMQP
17. TCP vs UDP
TCP UDP
Tipo de conexão Orientado à conexão Orientado à troca de pacotes
Uso Confiabilidade antes de velocidade Velocidade antes de controle de
integridade
Protocolos que
utilizam
HTTP (S), FTP, SMTP, Telnet DNS, DHCP, TFTP, SNMP, RIP, VoIP
Ordenação Garante Não garante
Velocidade Mais lento que UDP Rápido, pois não há controle de erros
Confiabilidade Garantia de integridade e ordenação
de todo os pacotes
Sem garantias (best effort)
Tamanho de
cabeçalho
20-60 bytes 8 bytes
Overhead Pesado (criação de conexões, ack) Leve (QA é responsabilidade do app)
Controle de
tráfego
Possui Não possui
Controle de erros Verificação e recuperação de erros Apenas verificação (descarte)
26. Muitas opções, alguns tradeoffs
• Tecnologias e protocolos disponíveis
para agregar eficiência e segurança
(entrega e violação) na transmissão
• Tecnologia disponível para embarcar
processamento e sensoreamento
em “coisas” do cotidiano
• A “nuvem” está aí pra guardar e
processar os dados.
CERTO??
28. Qual é a “real”?
“HáumaINTERNETdedistânciaentreanuvemeseudispositivo
maisfrágileremoto”
“O recurso mais escasso e menos confiável de uma
arquitetura distribuída é, e sempre será, a rede de
dados que interliga seus elementos”
“Dispositivos são restritos, frágeis, feitos para falhar.
Não confie a eles a guarda de dados”