YANG interaction model for IoT

YANG interaction model for IoT
Alexander Pelov <[email protected]>
Michel Veillette <[email protected]>
T2TRG@IETF97
1
A huge thanks to:
Peter van der Stok
Andy Bierman
Benoit Claise
And to our chairs:
Ari and Carsten
T2TRG@IETF97
2
A huge thanks to:
Jaime Jimenez
Hannes Tschofenig
Dave Thaler
For writing:
draft-iab-iotsi-workshop
T2TRG@IETF97
3
A huge thanks to:
Matthias Kovatsch
Klaus Hartke
Michael Koster
(and lots of people I’ve certainly omitted)
For:
Being RESTfull
T2TRG@IETF97
4
IoT
(small
stuff)
YANG
(routers)
CoMI
T2TRG@IETF97
5
IoT
(small stuff)
YANG
(routers)
CoMI
T2TRG@IETF97
6
IoT
(small stuff)
YANG
(routers)
CoMI
T2TRG@IETF97
7
IoT
(small stuff)
YANG
(routers)
NonYANG
IoT
CoMI
T2TRG@IETF97
8
NOT
Replacement for:
-  All CoRE stuff
B
A
T2TRG@IETF97
C
9
NOT
Replacement for:
-  Linked Data
-  HATEOAS
-  REST
-  PubSub
-  …
B
A
T2TRG@IETF97
C
10
NOT
Replacement for:
-  Semantics
-  RDF
-  …
B
A
T2TRG@IETF97
C
11
IS
Richer vocabulary, better foundation
to build upon
A
T2TRG@IETF97
B
C
12
IS
Richer exchange model
between two entities
B
A
T2TRG@IETF97
C
13
Interaction model (IN)
A
B
Defines how data is accessed and retrieved from the
endpoints , being therefore tied to the specific
communication pattern that the system
has (e.g. REST methods,Publish/
Subscribe operations or RPC-calls).
T2TRG@IETF97
draft-iab-iotsi-workshop
14
A non-interaction
B
Data representation A
IDL
CORBA
T2TRG@IETF97
A
Data representation B
CBOR
CoAP
C
Data representation C
ASN.1
SNMP
15
Interaction model description
•  REST
–  Follow the links
–  Get the content formats
–  Submit the forms
T2TRG@IETF97
16
PUT
T2TRG@IETF97
/temp
CBOR
25
17
PUT
/temp
CBOR
25
200 OK
T2TRG@IETF97
18
METHOD
PUT
+
URI
/temp
+
DATA SYNTAX
CBOR
+
DATA VALUES
25
200 OK
T2TRG@IETF97
19
Why?
When?
(content format)
(what?)
METHOD
PUT
(where?)
+
URI
/temp
(how?)
+
DATA SYNTAX
CBOR
(how much?)
+
DATA VALUES
25
200 OK
T2TRG@IETF97
20
SEMANTICS
Why?
When?
(content format)
(what?)
METHOD
PUT
(where?)
+
URI
/temp
(how?)
+
DATA SYNTAX
CBOR
(how much?)
+
DATA VALUES
25
2.04 Changed
T2TRG@IETF97
21
SEMANTICS
Why?
When?
(content format)
(what?)
METHOD
PUT
(where?)
+
URI
/temp
(how?)
+
DATA SYNTAX
CBOR
(how much?)
+
DATA VALUES
“One more Kimchi, please”
4.00 Bad Request
T2TRG@IETF97
22
SEMANTICS
Why?
When?
(content format)
(what?)
METHOD
PUT
(where?)
+
URI
/temp
(how?)
+
DATA SYNTAX
CBOR
(how much?)
+
DATA VALUES
189 756
4.00 Bad Request
T2TRG@IETF97
23
SEMANTICS
Why?
When?
(content format)
(what?)
METHOD
PUT
(where?)
+
URI
/temp
(how?)
+
DATA SYNTAX
CBOR
4.00 Bad Request
T2TRG@IETF97
(how much?)
+
DATA VALUES
189 756
How does the client
know the schema of the
data? How to handle
collections? …
24
SEMANTICS
Why?
When?
(content format)
(what?)
METHOD
PUT
T2TRG@IETF97
(where?)
+
(how?)
DATA SYNTAX
(how much?)
URI
+
+
DATA VALUES
/temp
application/cbor+positive-temp-less-than-100
25
Interaction model description
•  REST
–  Follow the links
–  Get the content formats
–  Submit the forms
•  How are these billions of potential content formats
handled?
–  Are we doomed of always referring to HTTP/CoAP
primitives?
•  I know of little Web devs that use Sockets today
T2TRG@IETF97
26
/a1
/a2
A
CoMI/YANG
/b1
/b2
B
Instead of limiting to “low-level” REST API,
use high-level CoMI API
Use HATEOAS to discover the CoMI entry point(s)
T2TRG@IETF97
27
Why?
•  YANG community – primarily routers
•  CoRe / T2T / W3C community – primarily IoT
•  Powerful tool… Disjoint communities… Getting
together…
•  Topic in T2TRG?
–  Something else?
–  Nothing else?
T2TRG@IETF97
28
Thanks!
Alexander Pelov <[email protected]>
Michel Veillette
<[email protected]>
T2TRG@IETF97
29