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
Globalcode – Open4education
Agenda
Introdução
O método
Cenário de exemplo
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.
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 ...
Globalcode – Open4education
Introdução ...
Gartner
4.8 Billion
25 Billion
Globalcode – Open4education
Introdução ...
7 pessoas para cada
website
http://www.internetlivestats.com
09 Maio 2015
http://www.worldometers.info/world-population/
Globalcode – Open4education
Introdução ...
http://populationpyramid.net/world/2020/
7 dispositivos para
cada pessoa
Globalcode – Open4education
Introdução ...
http://blogs.sap.com/innovation/innovation/seeings-believing-the-mother-of-all-iot-infographics-is-here-01245973
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).
Globalcode – Open4education
Application protocols
Globalcode – Open4education
①Identificar o tipo de aplicação
que queremos implementar;
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.
Globalcode – Open4education
Monitor Search Manage
Control Play
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
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
Globalcode – Open4educationIoT - Internet of Things - na Iluminação Pública – CPqD
Cenário ...
100 lâmpadas por gateway
Globalcode – Open4education
D2S
Devices
Control panel
Monitoring App
ID
Thing
[15]
Emissor -> Canal [Código(Mensagem)] -> Receptor
Globalcode – Open4education
ID
Global Unique Identifier
Globalcode – Open4education
IP
as Global Unique Identifier
IPv6
FE80:0000:0000:0000:0202:B3FF:FE1E:8329
Globalcode – Open4education
Não se preocupe
Cisco
Globalcode – Open4education
Ethernet
Wi-fi
GSM/GPRS
SMS
Stack TCP/UDP, HTTP e HTTPS
Internet
Globalcode – Open4education
Bluetooth
XBee
Internet
Radio Serial
Gateway
Globalcode – Open4education
③Listar os protocolos
candidatos;
Globalcode – Open4educationApplication protocols
RFC7252 /2013
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]
Globalcode – Open4education
④Elencar as suas principais
características;
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.
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).
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
Globalcode – Open4education
Obrigado
É isso que dá deixar as coisas interagirem :)
fb.com/RasecNascimento
Contatos
@asantos_2000
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

Selecionando application procotocols para IoT

  • 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.
  • 3.
    Globalcode – Open4education Quemsomos? 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.
    Globalcode – Open4education Osegredo do sucesso de uma implementação de IoT começa com a correta seleção dos protocolos de comunicação. Introdução ...
  • 5.
    Globalcode – Open4education Introdução... Gartner 4.8 Billion 25 Billion
  • 6.
    Globalcode – Open4education Introdução... 7 pessoas para cada website http://www.internetlivestats.com 09 Maio 2015 http://www.worldometers.info/world-population/
  • 7.
    Globalcode – Open4education Introdução... http://populationpyramid.net/world/2020/ 7 dispositivos para cada pessoa
  • 8.
    Globalcode – Open4education Introdução... http://blogs.sap.com/innovation/innovation/seeings-believing-the-mother-of-all-iot-infographics-is-here-01245973
  • 9.
    Globalcode – Open4education Omé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.
  • 11.
    Globalcode – Open4education ①Identificaro tipo de aplicação que queremos implementar;
  • 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.
    Globalcode – Open4education MonitorSearch Manage Control Play
  • 14.
    Globalcode – Open4education [1] Control Plane Device To Server Timelinesofresponse 10usto10ms10msto1s>1s Webservices 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 ②Coletaros 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.
    Globalcode – Open4educationIoT- Internet of Things - na Iluminação Pública – CPqD Cenário ... 100 lâmpadas por gateway
  • 17.
    Globalcode – Open4education D2S Devices Controlpanel Monitoring App ID Thing [15] Emissor -> Canal [Código(Mensagem)] -> Receptor
  • 18.
  • 19.
    Globalcode – Open4education IP asGlobal Unique Identifier IPv6 FE80:0000:0000:0000:0202:B3FF:FE1E:8329
  • 20.
  • 21.
  • 22.
  • 23.
    Globalcode – Open4education ③Listaros protocolos candidatos;
  • 24.
  • 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 ④Elencaras suas principais características;
  • 27.
    Globalcode – Open4education Características CaracterísticaDescriçã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.
    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.
    Globalcode – Open4education XMPPDDS* 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.
    Globalcode – Open4education Obrigado Éisso que dá deixar as coisas interagirem :) fb.com/RasecNascimento Contatos @asantos_2000
  • 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