IoTaConf 2014 - IoT Connectivity, Standards, and Architecture
1. IoT Connectivity,
Standards & Architecture
Todd L. Montgomery
@toddlmontgomery
IOTAConf!
October 20-21, 2014!
2. Communication Patterns
Lead to…
Protocols (Standards?)
Lead to…
Architecture
“Fear is the path to the dark side. Fear leads to anger.
Anger leads to hate. Hate leads to suffering.”
— Yoda
16. HTCPCP
RFC 2324, Extended by RFC 7168
"there is a strong, dark, rich requirement for a protocol designed
espressoly [sic] for the brewing of coffee"
http://en.wikipedia.org/wiki/Hyper_Text_Coffee_Pot_Control_Protocol
@toddlmontgomery
18. BREW
418 I’m a teapot
WHEN
"This has a serious purpose – it identifies
many of the ways in which HTTP has
been extended inappropriately.”
— Larry Masinter, author
http://larry.masinter.net/
@toddlmontgomery
27. Internet of Things
Multi-Lingual
(and Polyglot)
Multi-Protocol &
Multi-Standard
Multi-“Platform” Massive Scale
Highly Integrated
What is already is…
29. pro·to·col noun ˈprō-tə-ˌkȯl, -ˌkōl, -ˌkäl, -kəl
@toddlmontgomery
!
...
!
3 b : a set of conventions governing the treatment and especially the
formatting of data in an electronic communications
system <network protocols>
...
3 a : a code prescribing strict adherence to correct etiquette
and precedence (as in diplomatic exchange and in the military
services) <a breach of protocol>
!
30. Protocols are the key to Integration
REST has demonstrated this!
@toddlmontgomery
32. Binary Encoding helps save CPU & Bandwidth!
Persistent connections help a LOT! (fewer frames)
Well designed protocols help a LOT MORE!
Battery Life
Many simultaneous connections hurt!
Using the wrong protocol with the wrong pattern hurts A LOT!
@toddlmontgomery
Stay out of High
Energy State!
One reason why we should care about Protocols…
ASCII Encoding hurts CPU & Bandwidth!
33. HTTP
RFC 2068, 2616, …, 7230-7240
Request
Response
Synchronous
Request/Response
@toddlmontgomery
Bi-Directional… kinda,
but…
Event
Event
June 2014
… only
one direction
at-a-time
37. There is emerging implementation experience and interest in a protocol that
retains the semantics of HTTP without the legacy of HTTP/1.x message
framing and syntax, which have been identified as hampering performance and
encouraging misuse of the underlying transport.
— IETF httpbis Charter
http://datatracker.ietf.org/wg/httpbis/charter/
38. Events Events
@toddlmontgomery
Async
Request
Async
Response
WebSocket over HTTP/2
IETF Draft
Streaming Ingest
Full Duplex, Asynchronous
with Multiple Channels/Streams
http://www.ietf.org/id/draft-hirano-httpbis-websocket-over-http2-01.txt
39. Runs over TCP
or WebSocket (v3.1.1)
Broker-Based
MQ Telemetry Transport (MQTT)
@toddlmontgomery
http://mqtt.org/
Lightweight
Publish/Subscribe
Messaging Transport
MQTT-SN for non-TCP/IP
OASIS Standard
40. Constrained Application Protocol
(CoAP)
IETF CoRE WG (Constrained RESTful Environments)
@toddlmontgomery
https://tools.ietf.org/html/rfc7252
Runs over UDP, DTLS,
or WebSocket
Request/Response
(either direction),
Publish/Subscribe
Standardized HTTP
Mapping
Resource Discovery,
Linking, etc.
RFC 7252