Internet of Things
Jeroen Hoebeke, Ingrid Moerman
www.ibcn.intec.ugent.be
Internet Based Communication
Networks and Services (IBCN)
Department of Information
Technology (INTEC)
Ghent University - iMinds
03/10/13
1
Introduction
Internet of Things
03/10/13
2
03/10/13
3
Source Cisco
Heterogeneous objects (sensors, actuators…) reveal
information about the physical world, inject it into the virtual
world (Internet) where it can be used as input to services,
which can act again upon the physical world.
= Uniquely identifiable things with a virtual representation
4
Application domains
03/10/13
Source: “Embedded Web Services”, Sensinode
5
04/10/13
6
Source: Quirky
•
•
•
•
Broad application domain
Many vertical solutions
Trend towards platforms (horizontals)
Building upon (communication) standards
03/10/13
7
A little history of IoT progress
Radio-frequency identification
• Equip objects with tags, read
radio tags, identify and inventory
• First use of IoT (1999)
Machine-to-machine (M2M)
• One device = one SIM card
• Operator managed access +
communication through
server
Internet of Things (IoT)
•
•
•
One device = one IP address
Internet-based device access:
operator = transport network
Direct interactions, flexible
applications
over
multiple
communication
technologies
03/10/13
8
A little history of IoT progress
! Internet integration: from proprietary stacks...
! … to IP-based integration
“Success in extending IP functionality to literally billions of devices
absolutely requires a framework of standards that defines the
necessary technology03/10/13
ecosystem” – CEO Sensinode –
9
IoT standardization
! Standards tailored to constrained devices
(focus on IETF)
! Physical layer: IEEE 802.15.4
! Network layer: integration in IPv6 world
! IETF 6LoWPAN: IPv6 over Low power WPAN
! IETF ROLL: Routing over Low power and Lossy
networks (LLNs)
! IETF CoRE: Constrained RESTful environments
Isam Ishaq, David Carels, Girum K. Teklemariam, Jeroen Hoebeke, Floris Van den Abeele, Eli De Poorter, Ingrid
Moerman and Piet Demeester, “IETF Standardization in the Field of Internet of Things (IoT): A Survey”, Journal of
Sensors and Actuator Networks, 2(2), 2013, pp. 235-287, doi:10.3390/jsan2020235
03/10/13
10
Need for and adoption of CoAP
Embedded web services
03/10/13
11
Need?
! Success of today’s Internet?
Web services (over HTTP)
! Not suited for constrained networks/LLNs
! Constrained devices
! Different interaction models
! Short exchanges
! Sleeping nodes
! Embedded counterpart needed
03/10/13
12
IETF CoRE - WG
! CoRE = Constrained RESTful environments
! Goal:
! Design of application transfer protocol that realizes
! a minimal subset of REST (GET, PUT, POST, DELETE on URIs)
! + resource discovery, subscription/notification
! + security measures
" Constrained Application Protocol (CoAP)
(+/- embedded version of HTTP)
! Bring successful web architecture to constrained devices
" realization of Web of Things
13
IETF CoRE – Status
!
1 RFC
! CoRE Link Format (RFC 6690)
!
1 draft in IESG processing phase
! CoAP v18: final evaluation, RFC soon
!
7 adopted drafts
(4 newly adopted, following charter)
!
!
!
!
!
!
!
!
Observe v9
Block transfer v12
Group communication v13 (Informational)
HTTP mapping v01 (Informational)
CoRE interfaces v00 (Informational)
Links JSON v00
Resource directory v00
32 other individual drafts (3 iMinds (co)-authored))
! Topics: Security, congestion control, CoAP over X,
profiles, sleepy nodes, new CoAP options…
*work started end of 2010
14
Is CoAP needed?
! Goal: turn constrained devices into web server
! Constraints?
! 802.15.4: max packet length is 127 bytes
! RAM and ROM limited
! HTTP/TCP?
CoAP
HTTP
TinyCoAP
HTTP/TCP
CoAP header: 4 bytes
GET /test HTTP/1.0\r\n
Host: fec0::2\r\n\r\n
31.812B ROM
39.484B ROM
Best TinyOS
implementation
Minimal TCP
CoAP URI path: 6 bytes
CoAP token: 0-8 bytes
Footprint
Payload: 0 bytes
TOTAL: 10-18 bytes + UDP
TOTAL: 37 bytes + TCP
GET request for resource /test
HTTP/TCP: footprint & communication overhead are too big!
03/10/13
15
Will CoAP be adopted by industry?
! ETSI interoperability events
! March 2012 (co-located with IETF):
Huawei, Intecs, Koanlogic, Sensinode, Toyota, Vitaverna, Watteco, Hitachi, Patavina
Technologies, ETH Zurich, iMinds, Uni Bremen, Uni Rostock, Ferrara
! November 2012:
Watteco, Sensinode, InterDigital, Intecs, Hitachi, iMinds, Uni Bremen, ETH Zurich…
! November 2013:
Assess interoperability of multivendor CoAP implementations + coverage of
OMA LWM2M and DTLS
Will CoAP be adopted by industry?
! First commercial products (sensor/sensorGW device manufacturers)
17
! Adoption by IPSO Alliance and OMA LWM2M
IPSO Alliance
! Primary advocate for IP networked
devices for use in energy, consumer,
healthcare and industrial
applications.
! Non-profit association of more than
60 members from leading
technology, communications and
energy companies around the world.
18
IPSO Alliance – CoAP adoption
! IPSO Application framework
! RESTful design for use in IP smart object systems
! Not a standard
! Definition of function sets
! REST interfaces that may be used to represent
available resources, interact with other smart objects
and backend services.
! E.g. light control function set
04/10/13
19
Open Mobile Alliance
! Develops standards for mobile phone industry
! OMA M2M
! Building common set of standards for managing light weight and
low capability devices on a variety of networks
! The ability to monitor, provision and manage these billions of
connected devices to be expected becomes absolutely essential.
! Focus on cellular devices
! OMA M2M challenges
S. Scarpina, Telecom Italia, Device Management
Working group Vice Chairman, OMA, 2012
04/10/13
20
OMA – CoAP Adoption
! OMA Lightweight M2M
(LWM2M)
! Efficient Device-Server interface
based on open IETF standards
! CoAP and DTLS bound to UDP or
SMS
! For bootstrapping, registration,
management, reporting, etc.
! Extensible Object and Resource
model for application semantics
! OMA, other SDOs/enterprises
can define & register objects
! Standard to be published in
2013
04/10/13
21
CoAP adoption / industrial interest
Key driver of IoT standardization (IETF, IPSO,
OMA, ZigBee IP, etc.),
03/10/13
22
CoAP primer
03/10/13
23
IETF CoRE - CoAP
! Constrained Application Protocol (CoAP)
! Embedded counterpart of HTTP
! Features:
!
!
!
!
!
!
!
Asynchronous transaction model
UDP with reliability and multicast support
GET, PUT, POST and DELETE using URIs
Small, simple header: 4 bytes base header + TLV options
Mapping to HTTP possible
coap:// scheme
Optional observation, block transfer and discovery
03/10/13
24
CoAP architecture
! Goal: provide RESTful access to resource constrained devices
! Similar to HTTP (get, put, post, …)
! Suitable for direct end-to-end communication between constrained
devices
03/10/13
25
CoAP message format
CoAP option format
Example CoAP options:
Uri-path, Content-Format, Max-Age, Uri-Query, Observe, etc.
04/10/13
26
CoAP example
CoAP Client
CoAP Server
Resource /.well-known/core
used for resource discovery
GET /.well-known/core
2.05 "Content"
</s/t>;rt="TemperatureC";if="sensor“,
</s/l>;rt="LightLux";if="sensor"
GET /s/t
Result = collection of resources in
“application/link-format”
• URI reference
• Target attributes: describe
information useful to access
the resource
" coap://[IPv6_sensor]/s/t exists
2.05 “Content”
23.5C
03/10/13
27
CoAP Observe option
Client
Server
Get/.well-known/core
!
!
Client can register
interest for having an
always fresh
representation of a
resource: send request
with observe option
Notifications upon
! Every state change of
resource
! When max-age expires
(for freshness)
04/10/13
2.05 “Content”
<s/t>;rt=“TemperatureC”;if=“sensor”,
<s/l>;rt=“LightLux”;if=“Sensor”
GET /s/t
Observe: 10
Token: 0x4a
2.05 “Content”
Observe: 12
Token: 0x4a
Payload: 22.7C
2.05 “Content”
Observe: 21
Token: 0x4a
Payload: 23.4C
(Resource
Discovery)
(Registration)
(Notification)
(Notification)
28
CoAP Blockwise transfers
! "Block" options, for transferring efficiently multiple blocks
of information from a resource representation in multiple
request-response pairs.
! Note: 802.15.4’s standard packet size = 127 bytes
04/10/13
29
Resource directory
! = Directory server: hosts descriptions of
resources held on other servers, allowing
lookups to be performed for those resources
! Functions
! Registration: registration of an endpoint’s resources
using the registration interface.
! Also: update, validation, removal
04/10/13
30
Resource directory
! Functions
! Lookup: allows lookups for domains, groups,
endpoints and resources using attributes.
! Resource lookup example
! Endpoint lookup example
04/10/13
31
Other relevant extensions
! Group Communication
! Group communication draft: using multicast
! HTTP/CoAP mapping
! Concept of caching
! Max-age of resources
! Solutions to interact with sleepy devices
03/10/13
32
1) Conditional observe
Building upon CoAP
Girum Ketema, Jeroen Hoebeke, Ingrid Moerman, Piet Demeester, Tao Shi, Antonio J. Jara, “Efficiently Observing Internet of Things
Resources”, 2012 IEEE International Conference on Green Computing and Communications, Conference on Internet of Things, and
Conference on Cyber, Physical and Social Computing, 2012, pp. 446-449, DOI: 10.1109/GreenCom.2012.70
Teklemariam Ketema Girum, Hoebeke Jeroen, Moerman Ingrid, Demeester Piet, “Facilitating the creation of IoT applications through
conditional observations in CoAP”, EURASIP Journal on Wireless Communications and Networking 2013, 2013:177, doi:
10.1186/1687-1499-2013-177
http://tools.ietf.org/html/draft-li-core-conditional-observe-04
03/10/13
33
CoAP Observe Limitations
E.g. Air Pollution Monitoring
Air Quality Sensor
Client Node (also Acts
as Gateway to HQ)
Possible scenario
• Collect data every 30 minutes
• If threshold exceeded, monitor
every 5 minutes
03/10/13
Pollution Control HQ
Possible solutions
• Polling
• Observe: collect ALL values and filter
" not efficient
34
CoAP Conditional observe
! Extension to observe to generate notifications
only when condition is fulfilled
•
•
Useful for / common to
wide range of resources
Co-authored IETF draft on
conditional observe
Implementation
• Contiki implementation based
on Erbium CoAP framework
• Running on Tmote Sky
(10kB RAM, 48kB Flash)
•
04/10/13
C++ implementation
35
CoAP Conditional Observe option
Server
Client
Get/.well-known/core
2.05 “Content”
<s/t>;rt=“TemperatureC”;if=“sensor”,
<s/l>;rt=“LightLux”;if=“Sensor”
GET /s/t
Observe: 10; Condition: T: >, V:23
Token: 0x4a
2.05 “Content”
Observe: 12
Token: 0x4a
Payload: 22.7C
(Resource Discovery)
(Registration)
22.7 (Initial Notification)
23
(Criteria not met. No Notification)
2.05 “Content”
Observe: 21
Token: 0x4a
Payload: 23.6C
23.6
(Criteria Met. Send Notification)
Evaluation: Cooja
CoAP server
on sensor
100 Pseudo Random Numbers
between 20 – 29 (Avg. 24)
Client: cond. observe with
condition “All Values Greater”
0-5 Intermediate
Nodes
Average Power Consumption vs Hop Count
Power Consumption (mW)
2.40
Normal observe
Cond. 20C
2.35
2.30
2.25
Cond. 25C
2.20
2.15
Cond. 29C
2.10
7-13% increase battery life (AA lithium)
2.05
0
1
2
3
4
5
Number of intermediary hops
!
Can greatly reduce traffic compared to observe + client-side filtering:
! Strongly dependent on the use case (and thus the conditions)
! More extreme conditions (e.g. alarms) are best
!
Implementation on very constrained device feasible
03/10/13
37
Evaluation: theoretical
04/10/13
S = time between resource changes
25% chance condition is fulfilled
38
2) Group communication
Building upon CoAP
Isam Ishaq, Jeroen Hoebeke, Floris Van den Abeele, Ingrid Moerman, Piet Demeester, “Group Communication in Constrained
Environments using CoAP-based Entities”, IEEE International Conference on Distributed Computing in Sensor Systems (DCOSS) - IoTIP
workshop, pp. 345-350, DOI: 10.1109/DCOSS.2013.14
http://tools.ietf.org/html/draft-ishaq-core-entities-00
03/10/13
39
CoAP-enabled Home Automation
+ No vertical proprietary solutions
+ Easy interaction with individual sensors
+ Simplified application development
As end user, how can I realize use cases
involving multiple sensors/actuators at the
same time?
03/10/13
40
Group Communication
! Need identified in the charter of CoRE WG.
! draft-ietf-core-groupcomm-07: multicast
Light Switch
Light-1
Light-2
Light-3
Mcast(PUT, Payload=lights ON)
! Limitations
! Not reliable, proposed draft tries to overcome this by allowing
optional unicast replies to multicasts
! Need additional implementation on constrained network
! Need to create and manage multicast group
23 May 2013
41
Alternative solution
! Based on unicast
! Easy way to create groups
! A way to validate the group members
! Possibility to manipulate the behavior after group
creation
03/10/13
42
System Overview
Resource
Directory
CoAP
Client
Resource
registration
LLN1
Entity
Manager
IPv6 Internet
LLN2
CoAP
Sensornode
03/10/13
43
Entity Creation
CoAP
Client
Internet
Entity
Manager
LLN1
Sen8
Sen5
POST coap://[EM]/e (application/link-format)
Body: <coap://[Sen5]/tmp>,<coap://[Sen8]/tmp>
Entity Validation
2.05 Content (text/plain)
Body: /1 created
03/10/13
44
Entity Creation Example (CoAP POST)
04/10/13
48
Usage Example: Client Perspective
03/10/13
50
Usage Example: Behind the Scenes
03/10/13
51
Summary
Feature
Multicast based group
communication
Our Approach
Way$of$communica,on$
Mul,cast$
Unicast$
What$is$grouped$
Endpoints$
Resource$or$Endpoint$
No$
Yes$
In$client$
In$En,ty$Manager$$
can$be$located$anywhere$$
(also$in$client)$
Complex$because$reliable$
mul,cast$is$needed$
Relies$on$$
builtDin$CoAP$confirmable$messages$
All$nodes$in$the$mul,cast$tree$
need$to$support$mul,cast$and$
process$all$packets$$
No$need$to$change$anything$on$the$
network$
Not$possible$in$mul,cast$
Possible$
Fixed$
Flexible$
Not$possible$at$CoAP$level$$
(DTLS$is$unicast$only)$
23 May
2013
Possible$
Valida,on$
Response$processing$
Reliability$
Impact$on$LLN$
Message$aggrega,on$
Group$behavior$
Secure$communica,on$
52
CoAP as enabler
03/10/13
60
Integration in web site
Drupal module
04/10/13
61
COMACOD
! Control and management of constrained devices
! Goals: Data transfer, and configurability and
management of constrained devices:
! Configurable data exchange middleware
! Backend service platform
! Building upon CoAP
! Spanning heterogeneous application domains
03/10/13
62
O’CareCloudS
Tagging + semantics
Reasoning on sensor
and other data
CoAP-enabled sensors
03/10/13
63
Summary
03/10/13
64
Summary
! IoT standarization is ongoing and becoming mature
! Shift towards open standards
! CoAP enables embedded web services: Web of Things
! Constrained devices will become a full end point at both
the communication and service level
! Standards cannot be ignored, but they are fertile ground
for further (applied) research
! E.g. advanced CoAP extensions, semantic Web of Things…
04/10/13
65
Questions ?
Jeroen Hoebeke
jeroen.hoebeke@intec.ugent.be
www.ibcn.intec.ugent.be
Internet Based Communication
Networks and Services (IBCN)
Department of Information
Technology (INTEC)
Ghent University - iMinds
03/10/13
66