31
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

Selecionando application procotocols para IoT

Embed Size (px)

Citation preview

  1. 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. 2. Globalcode Open4education Agenda Introduo O mtodo Cenrio de exemplo
  3. 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. 4. Globalcode Open4education O segredo do sucesso de uma implementao de IoT comea com a correta seleo dos protocolos de comunicao. Introduo ...
  5. 5. Globalcode Open4education Introduo ... Gartner 4.8 Billion 25 Billion
  6. 6. Globalcode Open4education Introduo ... 7 pessoas para cada website http://www.internetlivestats.com 09 Maio 2015 http://www.worldometers.info/world-population/
  7. 7. Globalcode Open4education Introduo ... http://populationpyramid.net/world/2020/ 7 dispositivos para cada pessoa
  8. 8. Globalcode Open4education Introduo ... http://blogs.sap.com/innovation/innovation/seeings-believing-the-mother-of-all-iot-infographics-is-here-01245973
  9. 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).
  10. 10. Globalcode Open4education Application protocols
  11. 11. Globalcode Open4education Identificar o tipo de aplicao que queremos implementar;
  12. 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. 13. Globalcode Open4education Monitor Search Manage Control Play
  14. 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. 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. 16. Globalcode Open4educationIoT - Internet of Things - na Iluminao Pblica CPqD Cenrio ... 100 lmpadas por gateway
  17. 17. Globalcode Open4education D2S Devices Control panel Monitoring App ID Thing [15] Emissor -> Canal [Cdigo(Mensagem)] -> Receptor
  18. 18. Globalcode Open4education ID Global Unique Identifier
  19. 19. Globalcode Open4education IP as Global Unique Identifier IPv6 FE80:0000:0000:0000:0202:B3FF:FE1E:8329
  20. 20. Globalcode Open4education No se preocupe Cisco
  21. 21. Globalcode Open4education Ethernet Wi-fi GSM/GPRS SMS Stack TCP/UDP, HTTP e HTTPS Internet
  22. 22. Globalcode Open4education Bluetooth XBee Internet Radio Serial Gateway
  23. 23. Globalcode Open4education Listar os protocolos candidatos;
  24. 24. Globalcode Open4educationApplication protocols RFC7252 /2013
  25. 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. 26. Globalcode Open4education Elencar as suas principais caractersticas;
  27. 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. 28. Globalcode Open4education Identificar quais caractersticas dos protocolos atendem os requisitos no-funcionais da aplicao; Selecionar o(s) protocolo(s) mais adequado(s).
  29. 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. 30. Globalcode Open4education Obrigado isso que d deixar as coisas interagirem :) fb.com/RasecNascimento Contatos @asantos_2000
  31. 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