2. A Foundation for the Internet of Things
StandardsTools
Best
Practices
Build Out
Web Design
Patterns
M2M
Extensions
Open Source
and
Commercial
Open
Internet
Standards
Collectively Enable
The development and evolution of:
6. The Open Standards Are Here
• All Levels of the System
– Radios, MCUs – Arduino, mbed, 802.15.4, WiFi
– Network – WiFi, 6LowPAN, Thread, BLIP
– Protocol – HTTP, CoAP, MQTT, Websockets
– Device Interaction – OMA LWM2M, OIC, Alljoyn
– Data Models – IPSO Smart Objects
– Applications – Node-RED
• Fragmentation => Convergence
– No New Standards
– Adopt and Integrate Existing Standards
– Converge on a Common Set
7. Layered Architecture, Narrow Waist
Application Software
IPSO Objects
LWM2M
CoAP HTTP
6LowPAN IPV4/IPV6
MCU – 16KiB RAM MPU
802.15.4 WiFi, Ethernet
Hardware
HW Network
IP Routing
REST Protocol
API for data and metadata
Data Models
Application
HTTP REST
Server
73/11/2015
Device
Management
8. LWM2M: Application Interacts With
Device Through Stateless Proxy Server
App
LWM2M
Server
DeviceDevice
LWM2M Clients
/domain/endpoints/3303/0/5700
/3303/0/5700
HTTP
CoAP
9. The Tools Are Available Now
• Tools implement Standards
– Protocols: CoAP, HTTP, MQTT
– Service: OMA Lightweight M2M (LWM2M)
– Data Models: IPSO Smart Objects
• Tools
– Device - mbed libraries, Eclipse Wakaama
– Server - ARM mbed Device Server, Eclipse Leshan
– Communication - MQTT – Eclipse Mosquitto, Paho
– API and Protocol Conversion - IoT Toolkit
– Applications- Node-RED
10. Tools and Software Components
App
LWM2M
Server
DeviceDevice
LWM2M Clients
- Eclipse Wakaama
- mbed Libraries
- OMA DevKit
- Eclipse Leshan
- mbed Device Server
- OMA DevKit
- Node-RED
- MQTT
- IoT Toolkit
App
11. The OMA LWM2M DevKit
LWM2M Protocol Handling in the Web Browser
13. References
Slide Presentations
http://www.slideshare.net/michaeljohnkoster/presentations
IPSO Smart Object Guideline
http://www.ipso-alliance.org/smart-object-guidelines
OMA LWM2M Specification
http://openmobilealliance.hs-sites.com/lightweight-m2m-
specification-from-oma
CoAP
http://coap.technology/
mbed
http://mbed.org/
Node-RED
http://nodered.org/
Eclipse IoT
http://iot.eclipse.org/
OMA DevKit
https://github.com/OpenMobileAlliance/OMA-LWM2M-DevKit
Notas do Editor
Things should be a dumb as possible, but no dumber
Things themselves should only be as smart as they absolutely have to be, otherwise incompatibility – Jeff Hagins Smart Things
Intelligence has been built into things using embedded processing
Embedded processing is getting more powerful, resulting in smarter things
At the same time, network connectivity is becoming available to most devices
This results in both a disruption to embedded functionality on devices, and an opportunity to optimize the system to provide simple fixed functions on the Thing and make it smarter by connecting it to software
At the same time, more than one thing can be connected together by software to create a more intelligent system
The defining feature of the Internet of Things is the connection of things to software through networks.
The software may execute in other things, or in nearby computers, or in cloud services and web applications
This is a much higher value return than relying only on embedded software for new functionality
The connection of software to things is enabled by Virtualization.
Firmware on the device and middleware in the system create abstractions that application software is programmed to interact with
Abstractions are software models of the physical features of interest observed and controlled by the device
Devices, middleware, and application software are be connected together using IP networks
An example of such middleware is Sensinode NSP
More than one application at a time can connect to a virtualized thing, each having it’s own access permissions
And of course, an application can connect to multiple devices, resulting an a many-to-many potential mapping of applications to devices
Many IoT applications will be a subset of this, such as a personal tracking device connecting to a single user application