Apresentação feita no QCon Rio 2015. (www.qconrio.com)
Um dispositivo, mesmo conectado à nuvem, pode não tirar proveito total do potencial da Internet das Coisas. Ao projetar um dispositivo IoT, deve-se considerar vários aspectos: entre eles o hardware em si, o software embarcado, o protocolo e o meio de comunicação – além do serviço que recebe dados e faz análises, possibilitando aprendizado e predição. É também necessário exercitar um trade-off, pois muita inteligência no hardware pode gerar maior custo de desenvolvimento e produção; já uma carga maior na nuvem torna o produto mais “burro” mas simplifica seu ciclo de vida de produção.
Nesta apresentação, será mostrada uma proposta de arquitetura para um dispositivo IoT, desde sua conectividade até a análise de dados – passando pelo equilíbrio entre inteligência de hardware e carga de dados na nuvem. Apresentaremos o MQTT, um protocolo leve e extremamente aderente a esse contexto, onde um concentrador atua como intermediário entre os dispositivos locais e a nuvem. Temas como plataformas de desenvolvimento de hardware, linguagens, padronização, protocolos e mercado também serão discutidos, dentro do contexto IoT.
2. Globalcode – Open4education
Jorge Maia
Cientista da Computação;
20+ anos de experiência entre TI e Dev;
Especialista em Desenvolvimento de Sistemas e Produtos
Consultor Hardware, Software e IoT;
Fundador do CrazyTechGuys;
Organizador do IoT Weekend Brasil
www.jorgemaia.com.br
www.jorgecast.com.br
@jorgemaia
8. Globalcode – Open4education
IOT (Internet of Things)
Também chamada de IoE
(Internet of Everything)
Objetos e aparelhos
ligados a Internet
Informação, estado e
controle sobre objetos
Comunicação entre
pessoas e dispositivos e
dispositivos-dispositivos
Carros, Casas, Relógios,
Geladeiras (?)...
INTELIGÊNCIA ENTRE
DISPOSITIVOS!
Fonte: http://edition.cnn.com/2013/05/02/travel/london-city-
airport-internet-of-things/
11. Globalcode – Open4education
IOT (Internet of Things)
Os exemplos
atuais ainda são
de dispositivos
que funcionam de
forma “Solitária”
ou via nuvem
proprietária.
Ainda estamos na
Primeira onda de
dispositivos
12. Globalcode – Open4education
…”The system proved 95 percent accurate in
detecting the onset of ovulation and the
number of calves born across the farms
rose by an average of 12 percent. Farmers
also reported having more time as they no
longer had to watch for the signs
themselves.
Researchers from Fujitsu, Microsoft's
partner on the project, also discovered a
link between when a cow's egg was
fertilised and the sex of the calf. An animal
conceived during the first half of the
window for insemination would more likely
be female and during the latter half would
probably be male. This finding helped
farmers control the number of cows and
bulls in their herds.”…
24. Globalcode – Open4education
…“LiteOS is exceedingly small
in size, coming in at just
10KB (for comparison's sake,
mobile operating systems are
several gigabytes in size), and
requires no configuration on the
user's part, Huawei said during a
press conference on Wednesday at
Huawei Network Congress 2015,
held in Beijing on Wednesday and
Thursday. The LiteOS
platform can also work
on everything from
wearables to connected
vehicles”…
http://www.cnet.com/news/huawei
s-liteos-looks-to-play-central-role-
in-internet-of-things/
28. Globalcode – Open4education
MQTT
“Message Queue Telemetry Transport”
(Fila de transporte de mensagens de
telemetria)
Criado em 1999 pelo Dr. Andy Stanford-
Clark da IBM e Arlen Nipper da Arcom
(hoje Eurotech)
Protocolo para troca de mensagens
M2M/IOT
Comunicação Assíncrona
Extremamente leve e simples de ser
implementado
Usa um modelo que envolve um
“Broker” e um “Client”
Fonte: http://mganis.blogspot.com.br/
29. Globalcode – Open4education
MQTT
• Desenvolvido
para dispositivos
com restrição de
banda de
comunicação
• Muito utilizado
em conexões
com localizações
remotas,
aplicações
mobile.
Fonte: https://www.ibm.com/developerworks/community/blogs/c565c720-fe84-4f63-873f-
607d87787327/entry/tc_overview?lang=en
30. Globalcode – Open4education
MQTT
O protocolo MQTT inclui:
Padrão publish/subscribe que provê distribuição de mensagens
de um-para-muitos e desacoplamento de aplicações
Transporte de mensagem sem preocupação com o conteúdo da
mensagem
Uso de TCP/IP para conexão básica de rede
Mecanismo para avisar aos “interessados” sobre uma
desconexão anormal de um cliente
Header de 2 bytes;
Três níveis de QoS para entrega de mensagens:
Fonte: http://www.eureka-
time.com/fr/author/loughlin/
32. Globalcode – Open4education
RSMB
“Really Small Message Broker”
Broker de mensagens MQTT produzido de modo
gratuito pela IBM (não é “open Source”)
O RSMB permite fazer a conexão com outros
brokers RSMB assim como com outros servidores
que usem o MQTT
Ocupa apenas 80 KB de HD e 200 KB ou menos
de RAM, fazendo-o ideal para aplicações em
ambientes de pouca memória
33. Globalcode – Open4education
AllJoyn
Desenvolvido pela Allseen Alliance a partir de 2011 (Linux Fundation,
Canon, Panasonic, Cisco, Qualcomm, HTC, Microsoft,...);
Framework de código aberto que provê um ambiente para aplicações
distribuídas, rodando em diferentes classes de dispositivos;
Ênfase em mobilidade, segurança e configuração dinâmica;
Visto no mercado como um substituto dos sistemas bluetooth e wi-fi
nas comunicações p2p;
Implementado pelo Windows 10;
Multilinguagem;
Verboso;
34. Globalcode – Open4education
IOT (Internet of Things)
Desafios
Segurança
Privacidade
Infraestrutura (dados)
Futuro
Miniaturização
Diminuição de custos
Teleoperações e
Telepresença
Integração de Sensores
“At most once” (no máximo uma): as mensagens são entregues de acordo com as melhores condições da rede TCP/IP. Normalmente utilizado em comunicações com sensores onde não importa aquela leitura individual se a próxima será recebida logo em seguida
“At least once” (pelo menos uma): as mensagens tem sua entrega garantida, mas duplicatas podem ocorrer
“Exactly one” (exatamente Uma): Garantia de entrega de apenas uma mensagem. Normalmente usados em sistemas de pagamento, onde mensagens duplicadas ou a não chegada delas acarreta em perdas.