IoT	
  Buildout	
  
Tools,	
  Standards,	
  and	
  Best	
  Prac4ces	
  for	
  
Building	
  Out	
  the	
  Internet	
  of	
  Things	
  
What	
  is	
  the	
  Internet	
  of	
  Things?	
  
Things	
  
People	
   So.ware	
  
Inform	
  
Command	
  
Inform	
  
Actuate	
  
Autonomic	
  
Feedback	
  
Loop	
  
Cyberne>c	
  
Feedback	
  
Loop	
  
Observe	
  
Control	
  
A	
  Founda4on	
  for	
  the	
  Internet	
  of	
  Things	
  
Standards	
  Tools	
  
Best	
  
Prac4ces	
  
Build	
  Out	
  
Web	
  Design	
  
Pa?erns	
  
M2M	
  
Extensions	
  
Open	
  Source	
  
and	
  
Commercial	
  
Open	
  
Internet	
  
Standards	
  
Collec>vely	
  Enable	
  
The	
  development	
  and	
  evolu>on	
  of:	
  
Best	
  Prac4ces:	
  	
  
Well-­‐Known	
  Design	
  Pa?erns	
  
•  Connected	
  Intelligence	
  and	
  Embedded	
  Intelligence	
  
•  Discovery	
  and	
  Linking	
  
•  Deployment	
  Pa?erns	
  
–  Device	
  to	
  device	
  
–  Managed	
  Devices	
  
–  Servers	
  and	
  Gateways	
  
•  Internet	
  and	
  Web	
  Design	
  Pa?erns	
  
–  IP	
  Connec4vity	
  
–  REST	
  APIs,	
  device	
  as	
  Origin	
  Server	
  
–  Hypermedia	
  (Web	
  Linking)	
  
–  Publish-­‐Subscribe	
  
Connected	
  Intelligence	
  Disrupts	
  
Embedded	
  Intelligence	
  	
  
Thing	
  
SoTware	
  
Connected	
  
Intelligence	
  
Embedded	
  Intelligence	
  
Network	
  
Virtualiza4on	
  of	
  Things	
  
Thing	
  
SoTware	
  
Network	
  
SoTware	
  
Abstrac4on	
  
(Network)	
  
Firmware,	
  
Middleware	
  
Device	
  
Applica4on	
  
Virtualiza4on	
  Enables	
  Many-­‐to-­‐Many	
  
SoTware	
  Applica4ons	
  to	
  Things	
  
Thing	
  
SoTware	
  
SoTware	
  
Abstrac4ons	
  
Middleware	
  
SoTware	
   SoTware	
  
Thing	
  Thing	
  
Data	
  Model	
  
Thing	
  
SoTware	
  
Data	
  Model	
  
SoTware	
   SoTware	
  
Data	
  Model	
  
Thing	
  
SoTware	
  
Middleware	
  
SoTware	
   SoTware	
  
Interac4on	
  Pa?erns	
  
Applica4on	
  
Sensor/
Actuator	
  
Device	
  
Service	
  e.g.	
  LWM2M	
  
Device	
  with	
  
Embedded	
  
Applica4on	
  
Applica4on	
  
Web	
  
Applica4on	
  
Client	
  
Server	
  
Peer-­‐Peer	
  
Constrained	
  
Device,	
  e.g.	
  
16KB	
  RAM,	
  
128KB	
  Flash	
  
Smart	
  Object	
  Registra4on,	
  
Discovery	
  and	
  Data	
  Layer	
  Service,	
  
Device	
  Proxy	
  and	
  Cache	
  
Applica4ons	
  can	
  Discover	
  
and	
  Interact	
  with	
  devices	
  
using	
  Peer-­‐Peer	
  
networking	
  or	
  through	
  
Services,	
  using	
  the	
  Same	
  
Seman4cs	
  
Device	
  Registers	
  With	
  LWM2M	
  Server,	
  	
  
Applica4on	
  Discovers	
  
App	
  
LWM2M	
  
Server	
  
SoT	
  Endpoints	
  
IP	
  
Device	
  
IP	
  
Device	
  
LWM2M	
  Clients	
  
/3303/0/5700	
  
/domain/endpoints/3303/0/5700	
  
HTTP	
  
CoAP	
  
Applica4on	
  Interacts	
  With	
  Device	
  
Through	
  Stateless	
  Proxy	
  Server	
  
App	
  
LWM2M	
  
Server	
  
IP	
  
Device	
  
IP	
  
Device	
  
LWM2M	
  Clients	
  
/domain/endpoints/3303/0/5700	
  
/3303/0/5700	
  
HTTP	
  
CoAP	
  
Applica4on	
  Receives	
  No4fica4ons	
  
Through	
  Server	
  
App	
  
LWM2M	
  
Server	
  
IP	
  
Device	
  
IP	
  
Device	
  
LWM2M	
  Clients	
  
NOTIFY	
  
LWM2M	
  Communica4on	
  Through	
  NAT	
  
App	
  
LWM2M	
  
Server	
  
CoAP	
  
IP	
  
Device	
  
IP	
  
Device	
  
HW	
  Device	
  Endpoints	
  
REG	
  UPDATE	
  
NAT	
  Router	
  
GET/PUT	
  
Managed	
  Device	
  Interac4ons	
  
TV	
  
Audio	
  
DoorLock	
  
Light	
  
Washing	
  
Machine	
  
Router	
  
LWM2M	
  
Server	
  
Smart	
  
Phone	
  
Ethernet,	
  
WiFi,	
  
Thread	
  
Fitbit	
  
BTLE	
  
LWM2M	
  
Server	
  
Local	
  Applica4on	
  
Scene	
  Control	
  
Binding,	
  Pairing	
  
Remote	
  Applica4on	
  
Energy	
  Management	
  
The	
  Open	
  Standards	
  Are	
  Here	
  	
  
•  All	
  Levels	
  of	
  the	
  System	
  
–  Radios,	
  MCUs	
  –	
  Arduino,	
  mbed,	
  802.15.4	
  
–  Network	
  –	
  WiFi,	
  6LowPAN,	
  Thread,	
  BLIP	
  
–  Wire	
  Protocol	
  –	
  HTTP,	
  CoAP,	
  MQTT,	
  Websockets	
  
–  Device	
  Interac4on	
  –	
  OMA	
  LWM2M,	
  OIC,	
  Alljoyn	
  
–  Data	
  Models	
  –	
  IPSO	
  Smart	
  Objects	
  
–  Applica4ons	
  –	
  Node-­‐RED	
  
•  Fragmenta4on	
  =>	
  Convergence	
  
–  No	
  New	
  Standards	
  
–  Adopt	
  and	
  Integrate	
  Exis4ng	
  Standards	
  
–  Converge	
  on	
  a	
  Common	
  Set	
  
Layered	
  Architecture,	
  Narrow	
  Waist	
  
Applica4on	
  SoTware	
  
IPSO	
  Objects	
  
LWM2M	
  
CoAP	
   HTTP	
  
6LowPAN	
   IPV4/IPV6	
  
MCU	
  –	
  16KiB	
  RAM	
   MPU	
  
802.15.4	
   WiFi,	
  Ethernet	
  
Hardware	
  
HW	
  Network	
  
IP	
  Rou4ng	
  
REST	
  Protocol	
  
API	
  for	
  data	
  and	
  metadata	
  
Data	
  Models	
  
Applica4on	
  
HTTP	
  REST	
  
Server	
  
17	
  2/10/15	
  
Device	
  
Management	
  
The	
  Tools	
  Are	
  Available	
  Now	
  
•  Tools	
  
–  Device	
  -­‐	
  mbed	
  libraries,	
  Eclipse	
  Wakaama,	
  Io4vity	
  
–  Server	
  -­‐	
  ARM	
  mbed	
  Device	
  Server,	
  Eclipse	
  Leshan	
  
–  Communica4on	
  -­‐	
  MQTT	
  –	
  Mosqui?o,	
  Eclipse	
  Paho	
  
–  API	
  and	
  Protocol	
  Conversion	
  -­‐	
  IoT	
  Toolkit	
  
–  Applica4ons-­‐	
  Node-­‐RED	
  	
  
•  Tools	
  implement	
  Standards	
  
–  CoAP,	
  HTTP,	
  MQTT	
  
–  OMA	
  LWM2M,	
  IPSO	
  Smart	
  Objects	
  
Open	
  IoT	
  Stack	
  
•  Standards	
  for	
  Reuse	
  and	
  Interoperability	
  
–  CoAP,	
  HTTP,	
  MQTT	
  
–  OMA	
  LWM2M,	
  IPSO	
  Smart	
  Objects	
  
–  C++,	
  Node.js,	
  Python	
  
•  Device	
  Tools	
  	
  
–  ARM	
  mbed	
  Open	
  Source	
  IDE	
  and	
  IoT	
  Libraries	
  
•  Server	
  Tools	
  
–  ARM	
  mbed	
  Device	
  Server	
  
–  Mosqui?o	
  MQTT	
  	
  
–  Node-­‐RED	
  
–  IoT	
  Toolkit	
  
Demonstra4on	
  
mbed	
  Device	
  Server	
  	
  
mbed	
  
device	
  
MQTT	
  Broker	
  	
  
mbed	
  
device	
  
No4fica4on	
  Handler	
  
Control	
  Applica4on	
  	
  
Async	
  Handlers	
  Node-­‐RED	
  
All	
  	
  
No4fica4ons	
  	
  
All	
  Events	
  
CoAP	
  
No4fica4ons	
  	
  
State	
  Updates	
  
(HTTP	
  PUT)	
  
State	
  Updates	
  
(CoAP	
  PUT)	
  
Latency	
  ~	
  100	
  mSec	
  
Discover	
  And	
  Subscribe	
   Subscribed	
  	
  
No4fica4ons	
  	
  
Sensor	
   Actuator	
  
Local	
  or	
  Cloud	
  
References	
  
Slide	
  Presenta4ons	
  
h?p://www.slideshare.net/michaeljohnkoster/presenta4ons	
  
IPSO	
  Smart	
  Object	
  Guideline	
  
h?p://www.ipso-­‐alliance.org/smart-­‐object-­‐guidelines	
  
OMA	
  LWM2M	
  Specifica4on	
  
h?p://openmobilealliance.hs-­‐sites.com/lightweight-­‐m2m-­‐specifica4on-­‐
from-­‐oma	
  
CoAP	
  
h?p://coap.technology/	
  	
  
mbed	
  
h?p://mbed.org/	
  
Node-­‐RED	
  
h?p://nodered.org/	
  
Eclipse	
  
h?ps://eclipse.org/	
  

Osiot13 IoT buildout

  • 1.
    IoT  Buildout   Tools,  Standards,  and  Best  Prac4ces  for   Building  Out  the  Internet  of  Things  
  • 2.
    What  is  the  Internet  of  Things?   Things   People   So.ware   Inform   Command   Inform   Actuate   Autonomic   Feedback   Loop   Cyberne>c   Feedback   Loop   Observe   Control  
  • 3.
    A  Founda4on  for  the  Internet  of  Things   Standards  Tools   Best   Prac4ces   Build  Out   Web  Design   Pa?erns   M2M   Extensions   Open  Source   and   Commercial   Open   Internet   Standards   Collec>vely  Enable   The  development  and  evolu>on  of:  
  • 4.
    Best  Prac4ces:     Well-­‐Known  Design  Pa?erns   •  Connected  Intelligence  and  Embedded  Intelligence   •  Discovery  and  Linking   •  Deployment  Pa?erns   –  Device  to  device   –  Managed  Devices   –  Servers  and  Gateways   •  Internet  and  Web  Design  Pa?erns   –  IP  Connec4vity   –  REST  APIs,  device  as  Origin  Server   –  Hypermedia  (Web  Linking)   –  Publish-­‐Subscribe  
  • 5.
    Connected  Intelligence  Disrupts   Embedded  Intelligence     Thing   SoTware   Connected   Intelligence   Embedded  Intelligence   Network  
  • 6.
    Virtualiza4on  of  Things   Thing   SoTware   Network   SoTware   Abstrac4on   (Network)   Firmware,   Middleware   Device   Applica4on  
  • 7.
    Virtualiza4on  Enables  Many-­‐to-­‐Many   SoTware  Applica4ons  to  Things   Thing   SoTware   SoTware   Abstrac4ons   Middleware   SoTware   SoTware   Thing  Thing  
  • 8.
    Data  Model   Thing   SoTware   Data  Model   SoTware   SoTware  
  • 9.
    Data  Model   Thing   SoTware   Middleware   SoTware   SoTware  
  • 10.
    Interac4on  Pa?erns   Applica4on   Sensor/ Actuator   Device   Service  e.g.  LWM2M   Device  with   Embedded   Applica4on   Applica4on   Web   Applica4on   Client   Server   Peer-­‐Peer   Constrained   Device,  e.g.   16KB  RAM,   128KB  Flash   Smart  Object  Registra4on,   Discovery  and  Data  Layer  Service,   Device  Proxy  and  Cache   Applica4ons  can  Discover   and  Interact  with  devices   using  Peer-­‐Peer   networking  or  through   Services,  using  the  Same   Seman4cs  
  • 11.
    Device  Registers  With  LWM2M  Server,     Applica4on  Discovers   App   LWM2M   Server   SoT  Endpoints   IP   Device   IP   Device   LWM2M  Clients   /3303/0/5700   /domain/endpoints/3303/0/5700   HTTP   CoAP  
  • 12.
    Applica4on  Interacts  With  Device   Through  Stateless  Proxy  Server   App   LWM2M   Server   IP   Device   IP   Device   LWM2M  Clients   /domain/endpoints/3303/0/5700   /3303/0/5700   HTTP   CoAP  
  • 13.
    Applica4on  Receives  No4fica4ons   Through  Server   App   LWM2M   Server   IP   Device   IP   Device   LWM2M  Clients   NOTIFY  
  • 14.
    LWM2M  Communica4on  Through  NAT   App   LWM2M   Server   CoAP   IP   Device   IP   Device   HW  Device  Endpoints   REG  UPDATE   NAT  Router   GET/PUT  
  • 15.
    Managed  Device  Interac4ons   TV   Audio   DoorLock   Light   Washing   Machine   Router   LWM2M   Server   Smart   Phone   Ethernet,   WiFi,   Thread   Fitbit   BTLE   LWM2M   Server   Local  Applica4on   Scene  Control   Binding,  Pairing   Remote  Applica4on   Energy  Management  
  • 16.
    The  Open  Standards  Are  Here     •  All  Levels  of  the  System   –  Radios,  MCUs  –  Arduino,  mbed,  802.15.4   –  Network  –  WiFi,  6LowPAN,  Thread,  BLIP   –  Wire  Protocol  –  HTTP,  CoAP,  MQTT,  Websockets   –  Device  Interac4on  –  OMA  LWM2M,  OIC,  Alljoyn   –  Data  Models  –  IPSO  Smart  Objects   –  Applica4ons  –  Node-­‐RED   •  Fragmenta4on  =>  Convergence   –  No  New  Standards   –  Adopt  and  Integrate  Exis4ng  Standards   –  Converge  on  a  Common  Set  
  • 17.
    Layered  Architecture,  Narrow  Waist   Applica4on  SoTware   IPSO  Objects   LWM2M   CoAP   HTTP   6LowPAN   IPV4/IPV6   MCU  –  16KiB  RAM   MPU   802.15.4   WiFi,  Ethernet   Hardware   HW  Network   IP  Rou4ng   REST  Protocol   API  for  data  and  metadata   Data  Models   Applica4on   HTTP  REST   Server   17  2/10/15   Device   Management  
  • 18.
    The  Tools  Are  Available  Now   •  Tools   –  Device  -­‐  mbed  libraries,  Eclipse  Wakaama,  Io4vity   –  Server  -­‐  ARM  mbed  Device  Server,  Eclipse  Leshan   –  Communica4on  -­‐  MQTT  –  Mosqui?o,  Eclipse  Paho   –  API  and  Protocol  Conversion  -­‐  IoT  Toolkit   –  Applica4ons-­‐  Node-­‐RED     •  Tools  implement  Standards   –  CoAP,  HTTP,  MQTT   –  OMA  LWM2M,  IPSO  Smart  Objects  
  • 19.
    Open  IoT  Stack   •  Standards  for  Reuse  and  Interoperability   –  CoAP,  HTTP,  MQTT   –  OMA  LWM2M,  IPSO  Smart  Objects   –  C++,  Node.js,  Python   •  Device  Tools     –  ARM  mbed  Open  Source  IDE  and  IoT  Libraries   •  Server  Tools   –  ARM  mbed  Device  Server   –  Mosqui?o  MQTT     –  Node-­‐RED   –  IoT  Toolkit  
  • 20.
    Demonstra4on   mbed  Device  Server     mbed   device   MQTT  Broker     mbed   device   No4fica4on  Handler   Control  Applica4on     Async  Handlers  Node-­‐RED   All     No4fica4ons     All  Events   CoAP   No4fica4ons     State  Updates   (HTTP  PUT)   State  Updates   (CoAP  PUT)   Latency  ~  100  mSec   Discover  And  Subscribe   Subscribed     No4fica4ons     Sensor   Actuator   Local  or  Cloud  
  • 21.
    References   Slide  Presenta4ons   h?p://www.slideshare.net/michaeljohnkoster/presenta4ons   IPSO  Smart  Object  Guideline   h?p://www.ipso-­‐alliance.org/smart-­‐object-­‐guidelines   OMA  LWM2M  Specifica4on   h?p://openmobilealliance.hs-­‐sites.com/lightweight-­‐m2m-­‐specifica4on-­‐ from-­‐oma   CoAP   h?p://coap.technology/     mbed   h?p://mbed.org/   Node-­‐RED   h?p://nodered.org/   Eclipse   h?ps://eclipse.org/