Selecionando application procotocols para IoT

917 visualizações

Publicada em

Apresentação feita no TDC 2015 em Florianópolis sobre um método para seleção de protocolos em implementações de IoT.

Publicada em: Internet
0 comentários
8 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
917
No SlideShare
0
A partir de incorporações
0
Número de incorporações
52
Ações
Compartilhamentos
0
Downloads
179
Comentários
0
Gostaram
8
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Selecionando application procotocols para IoT

  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 Introdução O método Cenário de exemplo
  3. 3. Globalcode – Open4education Quem somos? Anderson Santos (adsantos@gmail.com) Cesar Nascimento (cesar.nascimento@gmail.com) Anderson - Arquiteto de sistemas com mais de 20 anos de experiência em TI, onde os últimos 10 anos em empresas de telecomunicações. Graduado em Matemática, PMP, com MBA em Gestão de Projetos pela FGV e mestrando pelo IPT. Especializado em SOA, atuando como consultor para Telefonica | Vivo. Cesar Nascimento é formado em Ciência da Computação, pós- graduado em Desenvolvimento de Jogos Eletrônicos 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 opiniões expressas são pessoais e não representam nenhuma empresa ou instituição.
  4. 4. Globalcode – Open4education O segredo do sucesso de uma implementação de IoT começa com a correta seleção dos protocolos de comunicação. Introdução ...
  5. 5. Globalcode – Open4education Introdução ... Gartner 4.8 Billion 25 Billion
  6. 6. Globalcode – Open4education Introdução ... 7 pessoas para cada website http://www.internetlivestats.com 09 Maio 2015 http://www.worldometers.info/world-population/
  7. 7. Globalcode – Open4education Introdução ... http://populationpyramid.net/world/2020/ 7 dispositivos para cada pessoa
  8. 8. Globalcode – Open4education Introdução ... http://blogs.sap.com/innovation/innovation/seeings-believing-the-mother-of-all-iot-infographics-is-here-01245973
  9. 9. Globalcode – Open4education O método ... ① Identificar o tipo de aplicação que queremos implementar; ② Coletar os requisitos não-funcionais da aplicação relevantes à seleção do protocolo; ③ Listar os protocolos candidatos; ④ Elencar as suas características; ⑤ Identificar quais características dos protocolos atendem os requisitos não-funcionais da aplicação; ⑥ Selecionar o(s) protocolo(s) mais adequado(s).
  10. 10. Globalcode – Open4education Application protocols
  11. 11. Globalcode – Open4education ①Identificar o tipo de aplicação que queremos implementar;
  12. 12. Globalcode – Open4education Cenário ... Aplicação Controle de iluminação publica. Requisitos Funcionais 1. Monitorar e controlar 600.000 lâmpadas para a cidade X; 2. As lâmpadas devem ser acionadas gradualmente ao anoitecer (100 lux); 3. As lâmpadas devem ser desligadas ao amanhecer (1.000 lux); 4. Acionamento e desligamento acidentais devem ser ignorados; 5. Em caso de não-acionamento ou não-desligamento uma mensagem deve ser enviada indicado a situação; 6. As unidades de controle deverão aceitar comandos de acionamento (100%, desligamento (0%) e incrementos de luminosidade (0 < x < 100%); 7. A cada transição de estado da lâmpada, uma mensagem deve ser enviada; 8. Deve ser possível verificar o estado de uma lâmpada em qualquer momento. Não funcionais 1. A unidade de controle da lâmpada deve enviar mensagens utilizando protocolo(s) aberto(s); 2. O tempo entre a detecção de um estado e o recebimento de uma mensagem, ou o envio de um comando, não deve ser superior a 2 segundos; 3. As mensagens serão enviadas, via internet sem fio, para as aplicações 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 não- funcionais [18] da aplicação relevantes a seleção do protocolo; Auditoria, Privacidade, Desempenho, Usabilidade, Confiabilidade, Segurança, Disponibilidade, Manutenibilidade, Interoperabilidade, Integridade, Recuperabilidade
  16. 16. Globalcode – Open4educationIoT - Internet of Things - na Iluminação Pública – CPqD Cenário ... 100 lâmpadas por gateway
  17. 17. Globalcode – Open4education D2S Devices Control panel Monitoring App ID Thing [15] Emissor -> Canal [Código(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 Não 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 características;
  27. 27. Globalcode – Open4education Características Característica Descrição / Critério Rede Camada de rede (IPv4, IPv6, Camada física Ethernet, GSM/GPRS, Wi-Fi Taxa mensagens* Número de mensagens por segundo considerando um nó em uma rede local. Rede/Comunicação Camada da rede / comunicação Suporte a IPv6 Se o protocolo suporta IPv6 Latência Tempo que a mensagem leva de um ponto a outro. Segurança Protocolos de segurança suportados. QoS Qualidade do Serviço, um acordo entre o remetente e o destinatário sobre o envio da mensagem. Real-time De acordo com a definição deste apresentação é um serviço cujo a latência esta entre 10us a 10ms. Interoperabilidade É uma propriedade do sistema de trabalhar com outros sistemas sem restrições. Tipo de aplicação Taxonomia que classifica os sistemas quanto ao fluxo de suas mensagens. S2S, D2S e D2D. Recurso utilizado pelo protocolo Recursos (memória) utilizado pelo protocolo. Padrão de mensagem Padrão de distribuição da mensagem adotado pela arquitetura do sistema. Plataforma independente Dispõe de clientes e servidores em diversas plataformas. Padrão aberto Indica se a definição do protocolo é aberto ou proprietário.
  28. 28. Globalcode – Open4education ⑤ Identificar quais características dos protocolos atendem os requisitos não-funcionais da aplicação; ⑥Selecionar o(s) protocolo(s) mais adequado(s).
  29. 29. Globalcode – Open4education XMPP DDS* Rede WAN e LAN Memória compartilhada, WAN e LAN Física Ethernet / Wi-fi / GPRS Ethernet / Wi-fi Taxa mensagens ~ 1.900 m/s [24] ~ 11.000 m/s [26] Rede/Comunicação TCP UDP, TCP Suporte a IPv6 Sim Sim Latência 100ms a segundos 100us a milisegundos Segurança TLS DTLS QoS N/A Availability, Delivery, Timeliness, Res Real-time Não Sim Interoperabilidade Java, DotNet, C Java, C Tipo de aplicação D2S D2D Recurso utilizado pelo protocolo ~ 14k Flash * Padrão de mensagem Publish/Subscriber, Request/Response, Spoke-hub Publish/Subscriber, Point-to-Point Plataforma independente Sim Sim Padrão aberto Sim Sim * Não encontramos implementação para arduino Característicasdosprotocolos ** Não encontramos implementação 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 Referências 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 Iluminação Pública - 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

×