cloudbrew - internet of things
DESCRIPTION
Evolution of the internet of things & architectural considerations when designing systems for the internet of things.TRANSCRIPT
Internet Of Things
MEYves Goeleven
• Co-founder Azug• Windows Azure MVP• Specialised in web dev & messaging• Dev on NServiceBus• Founder of MessageHandler.net
Thank You!To our sponsors!
Agenda
Session outlineProposal
• Introduction to the internet of things• What’s all the hype about & why now• Architecture• Loads of demo’s
#IoT
1809Samuel Thomas von Sömmering
I bet you have
one of these to?
System of systems
CineCare
Exhibition theater @ kinepolis
Wearables
CareFlux
The internet of thingsDefinition
• Physical Things with embedded processing power• Communicating with each other and the internet• Augmented by software and services
The hype
212bn
Why now?
Convergence of technologies
Converging technologiesEverything seems to fall into place
• Smaller & cheaper hardware: Sensors, microcontrollers, ...• Open source hardware: Arduino, netduino, gadgeteer, raspberry PI, ...• Ubiquitous connectivity: Wifi, LTE, BLE, Zigbee, NFC, ...• Open protocols: AMQP, MQTT, XMPP, HTTP/REST, CoAP …• Cloud: Massive & cheap compute power & storage as a service
Open source hardware
Let me show you!
Connectivity
ConnectivityMany options
Wifi LTE Zigbee BLE NFC ANT Nike+ IrDA
PPC 116 mA 1200 mA 40 mA 12.5 mA 50 mA 17 mA 12.3 mA 10.2 mA
Throughput 6 Mbps 300 Mbps 100 kbps 305 kbps 424 kbps 20 kbps 272 bps 200 kbps
Range 150 m 30km 100 m 50 m 5 cm 10 m 10 m 10 cm
Latency 1.5 ms 35ms 20 ms 2.5 ms 1 s 0 1 s 25 ms
Encryption WPA2 SNOW-UEA2-UIA2
WEP AES-CCM - SCE ? -
http://www.csr.com/sites/default/files/white-papers/comparisons_between_low_power_wireless_technologies.pdf
Open Protocols
Open protocolsReal-time, typically publish-subscribe, protocols
Target Purpose Real Time Topology Transport
DDS Device -> Device Data Distribution 10µs -> 10ms Bus UDP
MQTT Device -> Server Telemetry 10ms -> 1s Hub & Spoke TCP
XMPP Server -> Device Presence / addressing 10ms -> 1s Targeted TCP
AMQP Server -> Server Messaging > 1s Topics TCP
HTTP API Server -> Server RESTFul services 10ms -> 1s Request - Reply TCP
CoAP Device -> Server RESTFul services 10ms -> 1s Request - Reply UDP
SignalR* Server -> Server Messaging 10ms -> 1s Hub & Spoke TCP
Go!Bus* Device -> Device Device Virtualization 10µs -> 10ms Bus SPI
http://electronicdesign.com/embedded/understanding-protocols-behind-internet-things
Architecture
Challenges
ConnectivityPick your poison
Wifi LTE Zigbee BLE NFC ANT Nike+ IrDA
PPC 116 mA 1200 mA 40 mA 12.5 mA 50 mA 17 mA 12.3 mA 10.2 mA
Throughput 6 Mbps 300 Mbps 100 kbps 305 kbps 424 kbps 20 kbps 272 bps 200 kbps
Range 150 m 30km 100 m 50 m 5 cm 10 m 10 m 10 cm
Latency 1.5 ms 35ms 20 ms 2.5 ms 1 s 0 1 s 25 ms
Encryption WPA2 SNOW-UEA2-UIA2
WEP AES-CCM - SCE ? -
ConnectivityEven if you have the power
IPV6 AdoptionSlow adoption rate
Historically evolved ‘islands’
Explosion of dataEver heard of Brontobytes?
All of these challengesPoint to the same solution architecture
Federated Bus
Federated Message Bus
D2D D2DD2S/S2D
S2SS2S
D2S/S2D
D2S
MessageHandlerIntroducing
Channels & handlers
End to end demo
Messaging
What’s a message?Data on the move
• Data: Sensors measurements, ...• Headers: Context, time sent, origin, destination, conversation, ...• Format: Xml, json, binary, ....• In transit: Traveling from origin to known (or unknown) destination, transient ...
Messaging PatternsCommand
Show me the code
Messaging PatternsEvents
Show me the code
Event stream processing
Reactive ExtensionsDetermine what is interesting
• Linq to events• Linq: Standing queries, always running• IObservable: Event streams, data flow through as it happens ...• Windowing: Provides time-based context
Reactive ExtensionsTime based
http://blogs.msdn.com/b/rafaelf/archive/2013/01/17/how-to-express-common-windowing-patterns-using-rx.aspx
Reactive ExtensionsCombining streams
Show me the code
Takeaways
TakeawaysProposal
• Evolution of the internet of things• The stars may align to make hype reality• Challenges
• Connectivity (Power consumption VS security)• Addressing (IPV6)• Data Volume• Physical Boundaries & propriatary implementations
• Solution: Federated Bus• Different transport• Different protocol• Same patterns (Command, Event, Query)• Multiple levels (Device, Local Network, Cloud)• Gateway takes care of translation, filtering & security
• MH: Message/Event processing as a service• Standing Query: Rx• Action
Now go build epic things!
The Cloud for Modern Business
Grab your benefit
aka.ms/azuretry
Deploy fast in the cloud, scale elastically and minimize test cost
Activate your Windows Azure MSDN benefit at no additional charge
aka.ms/msdnsubscr