Globalcode – Open4education Trilha – IoT Anderson Santos Arquiteto de Sistemas Cesar Nascimento Arquiteto de T.I Application Protocols Selecionando protocolos para IoT 16/05/2015 V2.0
1. Globalcode Open4education Trilha IoT Anderson Santos
Arquiteto de Sistemas Cesar Nascimento Arquiteto de T.I Application
Protocols Selecionando protocolos para IoT 16/05/2015 V2.0
2. Globalcode Open4education Agenda Introduo O mtodo Cenrio de
exemplo
3. Globalcode Open4education Quem somos? Anderson Santos
([email protected]) Cesar Nascimento ([email protected])
Anderson - Arquiteto de sistemas com mais de 20 anos de experincia
em TI, onde os ltimos 10 anos em empresas de telecomunicaes.
Graduado em Matemtica, PMP, com MBA em Gesto de Projetos pela FGV e
mestrando pelo IPT. Especializado em SOA, atuando como consultor
para Telefonica | Vivo. Cesar Nascimento formado em Cincia da
Computao, ps- graduado em Desenvolvimento de Jogos Eletrnicos e
mestrando em Eng de Soft pelo IPT. Desde 1998 atuando em T.I, j foi
consultor na Accenture e h 7 anos trabalha na IBM do Brasil como
Arquiteto de T.I com foco em SOA, BPM, Cloud e Arquitetura
Corporativa. Todas as opinies expressas so pessoais e no
representam nenhuma empresa ou instituio.
4. Globalcode Open4education O segredo do sucesso de uma
implementao de IoT comea com a correta seleo dos protocolos de
comunicao. Introduo ...
6. Globalcode Open4education Introduo ... 7 pessoas para cada
website http://www.internetlivestats.com 09 Maio 2015
http://www.worldometers.info/world-population/
7. Globalcode Open4education Introduo ...
http://populationpyramid.net/world/2020/ 7 dispositivos para cada
pessoa
9. Globalcode Open4education O mtodo ... Identificar o tipo de
aplicao que queremos implementar; Coletar os requisitos
no-funcionais da aplicao relevantes seleo do protocolo; Listar os
protocolos candidatos; Elencar as suas caractersticas; Identificar
quais caractersticas dos protocolos atendem os requisitos
no-funcionais da aplicao; Selecionar o(s) protocolo(s) mais
adequado(s).
11. Globalcode Open4education Identificar o tipo de aplicao que
queremos implementar;
12. Globalcode Open4education Cenrio ... Aplicao Controle de
iluminao publica. Requisitos Funcionais 1. Monitorar e controlar
600.000 lmpadas para a cidade X; 2. As lmpadas devem ser acionadas
gradualmente ao anoitecer (100 lux); 3. As lmpadas devem ser
desligadas ao amanhecer (1.000 lux); 4. Acionamento e desligamento
acidentais devem ser ignorados; 5. Em caso de no-acionamento ou
no-desligamento uma mensagem deve ser enviada indicado a situao; 6.
As unidades de controle devero aceitar comandos de acionamento
(100%, desligamento (0%) e incrementos de luminosidade (0 < x
< 100%); 7. A cada transio de estado da lmpada, uma mensagem
deve ser enviada; 8. Deve ser possvel verificar o estado de uma
lmpada em qualquer momento. No funcionais 1. A unidade de controle
da lmpada deve enviar mensagens utilizando protocolo(s) aberto(s);
2. O tempo entre a deteco de um estado e o recebimento de uma
mensagem, ou o envio de um comando, no deve ser superior a 2
segundos; 3. As mensagens sero enviadas, via internet sem fio, para
as aplicaes de controle e monitoramento.
13. Globalcode Open4education Monitor Search Manage Control
Play
14. Globalcode Open4education [1] Control Plane Device To
Server Timelinesofresponse 10usto10ms10msto1s>1s Web services
and business apps Server-to-Server (S2S) Devices and intelligent
systems Thing Thing ThingDevice-to-device (D2D) Manage Monitor
Control Control Play
15. Globalcode Open4education Coletar os requisitos no-
funcionais [18] da aplicao relevantes a seleo do protocolo;
Auditoria, Privacidade, Desempenho, Usabilidade, Confiabilidade,
Segurana, Disponibilidade, Manutenibilidade, Interoperabilidade,
Integridade, Recuperabilidade
16. Globalcode Open4educationIoT - Internet of Things - na
Iluminao Pblica CPqD Cenrio ... 100 lmpadas por gateway
17. Globalcode Open4education D2S Devices Control panel
Monitoring App ID Thing [15] Emissor -> Canal [Cdigo(Mensagem)]
-> Receptor
18. Globalcode Open4education ID Global Unique Identifier
19. Globalcode Open4education IP as Global Unique Identifier
IPv6 FE80:0000:0000:0000:0202:B3FF:FE1E:8329
20. Globalcode Open4education No se preocupe Cisco
21. Globalcode Open4education Ethernet Wi-fi GSM/GPRS SMS Stack
TCP/UDP, HTTP e HTTPS Internet
22. Globalcode Open4education Bluetooth XBee Internet Radio
Serial Gateway
23. Globalcode Open4education Listar os protocolos
candidatos;
25. Globalcode Open4education CoAP: The Constrained Application
Protocol (CoAP) is a specialized web transfer protocol for use with
constrained nodes and constrained networks in the Internet of
Things. [15] DDS - The OMG Data-Distribution Service for Real-Time
Systems (DDS) is the first open international middleware standard
directly addressing publish-subscribe communications for real-time
and embedded systems. [7] MQTT: is a machine-to-machine
(M2M)/"Internet of Things" connectivity protocol. It was designed
as an extremely lightweight publish/subscribe messaging transport.
[8] MQTT-SN: a pub/sub protocol for wireless sensor networks.
MQTT-SN can be considered as a version of MQTT which is adapted to
the peculiarities of a wireless communication environment. [8] REST
- Representational State Transfer (REST) is a software architecture
style consisting of guidelines and best practices for creating
scalable web services. [6] XMPP: The Extensible Messaging and
Presence Protocol (XMPP) is an open technology for real-time
communication, which powers a wide range of applications including
instant messaging, presence, multi-party chat, voice and video
calls, collaboration, lightweight middleware, content syndication,
and generalized routing of XML data. [14]
26. Globalcode Open4education Elencar as suas principais
caractersticas;
27. Globalcode Open4education Caractersticas Caracterstica
Descrio / Critrio Rede Camada de rede (IPv4, IPv6, Camada fsica
Ethernet, GSM/GPRS, Wi-Fi Taxa mensagens* Nmero de mensagens por
segundo considerando um n em uma rede local. Rede/Comunicao Camada
da rede / comunicao Suporte a IPv6 Se o protocolo suporta IPv6
Latncia Tempo que a mensagem leva de um ponto a outro. Segurana
Protocolos de segurana suportados. QoS Qualidade do Servio, um
acordo entre o remetente e o destinatrio sobre o envio da mensagem.
Real-time De acordo com a definio deste apresentao um servio cujo a
latncia esta entre 10us a 10ms. Interoperabilidade uma propriedade
do sistema de trabalhar com outros sistemas sem restries. Tipo de
aplicao Taxonomia que classifica os sistemas quanto ao fluxo de
suas mensagens. S2S, D2S e D2D. Recurso utilizado pelo protocolo
Recursos (memria) utilizado pelo protocolo. Padro de mensagem Padro
de distribuio da mensagem adotado pela arquitetura do sistema.
Plataforma independente Dispe de clientes e servidores em diversas
plataformas. Padro aberto Indica se a definio do protocolo aberto
ou proprietrio.
28. Globalcode Open4education Identificar quais caractersticas
dos protocolos atendem os requisitos no-funcionais da aplicao;
Selecionar o(s) protocolo(s) mais adequado(s).
29. Globalcode Open4education XMPP DDS* Rede WAN e LAN Memria
compartilhada, WAN e LAN Fsica Ethernet / Wi-fi / GPRS Ethernet /
Wi-fi Taxa mensagens ~ 1.900 m/s [24] ~ 11.000 m/s [26]
Rede/Comunicao TCP UDP, TCP Suporte a IPv6 Sim Sim Latncia 100ms a
segundos 100us a milisegundos Segurana TLS DTLS QoS N/A
Availability, Delivery, Timeliness, Res Real-time No Sim
Interoperabilidade Java, DotNet, C Java, C Tipo de aplicao D2S D2D
Recurso utilizado pelo protocolo ~ 14k Flash * Padro de mensagem
Publish/Subscriber, Request/Response, Spoke-hub Publish/Subscriber,
Point-to-Point Plataforma independente Sim Sim Padro aberto Sim Sim
* No encontramos implementao para arduino
Caractersticasdosprotocolos ** No encontramos implementao para
GSM/GPRS
30. Globalcode Open4education Obrigado isso que d deixar as
coisas interagirem :) fb.com/RasecNascimento Contatos
@asantos_2000
31. Globalcode Open4education Referncias 1. Understanding The
Protocols Behind The Internet Of Things -
http://electronicdesign.com/embedded/understanding-protocols-behind-internet-things
2. Understanding The Internet Of Things -
http://electronicdesign.com/communications/understanding-internet-things
3. IPV6: How Many IP Addresses Can Dance on the Head of a Pin? -
http://www.edn.com/electronics-blogs/other/4306822/IPV6-How-Many-IP-Addresses-Can-
Dance-on-the-Head-of-a-Pin- 4. Stomp - http://stomp.github.io 5.
AMQP - http://www.amqp.org 6. REST -
http://www.w3.org/2001/sw/wiki/REST 7. DDS -
http://portals.omg.org/dds/ 8. MQTT - http://mqtt.org 9. Choosing
Your Messaging Protocol: AMQP, MQTT, or STOMP -
http://blogs.vmware.com/vfabric/2013/02/choosing-your-messaging-protocol-amqp-mqtt-or-
stomp.html 10. The Internet of Things: Dr. John Barrett at TEDxCIT
- https://youtu.be/QaTIt1C5R-M 11. Uniduino: Arduino Plugin for
Unity - Teaser - https://youtu.be/EdSnjB-GIGg 12. 5 Things to Know
About MQTT The Protocol for Internet of Things -
https://www.ibm.com/developerworks/community/blogs/5things/entry/5_things_to_know_about_mqtt_the_protocol_for_internet_of_things?lang=en
13. Ending the IoT Protocol Wars -
http://www.apiacademy.co/blogs/index.php/ending-the-iot-protocol-wars/
14. IoT Protocol Wars: MQTT vs CoAP vs XMPP -
http://www.iotprimer.com/2013/11/iot-protocol-wars-mqtt-vs-coap-vs-xmpp.html
15. Constrained Application Protocol for Internet of Things -
http://www.cse.wustl.edu/~jain/cse574-14/ftp/coap/index.html 16.
M2M, IOT, Device Managment: COAP/LWM2M to rule them all? -
http://pt.slideshare.net/jvermillard/m2m-iot-device-managment-coaplwm2m-to-rule-them-all
17. ISO/IEC/IEEE 29148:2011(E), Systems and software engineering
Lifecycle processes - Requirements engineering 18. IoT-A Unified
Requirements list -
http://www.iot-a.eu/public/requirements/copy_of_requirements 19.
IoT - Internet of Things - na Iluminao Pblica -
http://pt.slideshare.net/cpqd/iot-internet-of-things-na-iluminacao-publica
20. Ethernet MAC And PHY -
http://electronicdesign.com/embedded/ethernet-mac-and-phy 21. What
can DDS do for You? -
http://www.omg.org/hot-topics/documents/dds/CoreDX_DDS_Why_Use_DDS.pdf
22. Internet of Things (IoT) protocols COAP MQTT OSCON2014 -
http://pt.slideshare.net/vgholkar/io-t-protocolsoscon2014 23. Five
Ways to Secure a Real-Time Distributed System Without Compromising
Performance -
http://pt.slideshare.net/RealTimeInnovations/five-ways-to-
secure-a-realtime-distributed-system-without-compromising-performance
24. Performance tests XMPP -
https://iotprotocols.wordpress.com/2015/03/31/performance-tests-xmpp/
25. Speedtests in a simulated IoT scenario with the CoAP protocol -
https://iotprotocols.wordpress.com/2015/01/19/speedtests-in-a-simulated-iot-scenario-with-
the-coap-protocol/ 26. Stresstesting an OpenDDS IoT scenario -
https://iotprotocols.wordpress.com/2015/01/20/stresstesting-an-opendds-iot-scenario/
27. A performance test of my MQTT scenario -
https://iotprotocols.wordpress.com/2015/01/18/a-performance-test-of-my-mqtt-scenario/
28. Comparing Performance of Web Service Interaction Styles: SOAP
vs. REST - http://proc.conisar.org/2012/pdf/2208.pdf