SlideShare a Scribd company logo
1 of 36
Hypermedia Design for Machine
Interfaces
Part 2 – Hypermedia Architecture
and Demonstrator for a Web of
Things
Hypermedia Architecture
• Web of Things system architecture and demonstrator
using the Hypermedia Collection with resource type
semantics
• HATEOAS discovery and client-server state machine
• Implements the W3C Web of Things interaction model
• Scripted applications based on a consistent Thing
Object Model
• Public resource at thingschema.org for semantics
• Uses IETF CoRE RD, Link-Format, SenML
• Pluggable protocols; Common CRUD interface allows
CoAP, HTTP, MQTT, Websockets, etc.
Base
Schema
Resource
Model
Application Logic
Thing Object Model
(Deferred Interface)
Hypermedia System Architecture
Domain
Schema
Resources
Hypermedia Controls
Discovery
Domain
Model
Hypermedia Client
Resource Logic
(Physical I/O)
Networks
Client
Server
Public
Resource
Tools
Base
Schema
Resource
Model
Application Logic
Thing Object Model
(Deferred Interface)
Model Driven Resource Construction
Domain
Schema
Resources
Hypermedia Controls
Discovery
Domain
Model
Hypermedia Client
Resource Logic
(Physical I/O)
Base
Schema
Resource
Model
Application Logic
Thing Object Model
(Deferred Interface)
HATEOAS Driven Discovery
Domain
Schema
Resources
Hypermedia Controls
Discovery
Domain
Model
Hypermedia Client
Resource Logic
(Physical I/O)
Base
Schema
Resource
Model
Application Logic
Thing Object Model
(Deferred Interface)
HATEOAS Driven Interaction
Domain
Schema
Resources
Hypermedia Controls
Discovery
Domain
Model
Hypermedia Client
Resource Logic
(Physical I/O)
Modular Architecture
Protocol Abstraction
Application Logic
Common CRUD Requests
MQTT
Common CRUD Responses
Resource Model
Resources
Resource Model
Thing Object Model
HTTP
CoA
P
Common Server
Common Client
Pluggable
Protocols
Resource Logic
WS
Base
Schema
Resource
Model
Application Logic
Thing Object Model
(Deferred Interface)
Information Model
Domain
Schema
Resources
Hypermedia Controls
Discovery
Domain
Model
Hypermedia Client
Resource Logic
(Physical I/O)
Networks
Client
Server
Public
Resource
Tools
Information Model
• Base Schema based on W3C Interaction Model
– Events, Actions, Properties
• Descriptions and explanations, not tags; learning
not matching
• Incremental reveal discovery
– light => brightness => change => (targetBrightness,
transitionTime)
• Enables index search
– Discover “light+brightness+change”
Base Schema – WoT Interaction Model
{
"class": "action",
"comment": "Action class",
"mayHave": [
"actuation",
"notification",
"params"
],
"subClassOf": "WoTinteractionModel",
"usedBy": [
"thing",
"capability"
]
},
Base
Schema
Resource
Model
Application Logic
Thing Object Model
(Deferred Interface)
Domain Schema
Domain
Schema
Resources
Hypermedia Controls
Discovery
Domain
Model
Hypermedia Client
Resource Logic
(Physical I/O)
Networks
Client
Server
Public
Resource
Tools
Domain Schema
• Domain Schema is based on a simple
information model and schema
• Logical entities are constrained by range and
domain terms
• Domain specific terms are mapped to the
information model to prodice a domain
schema
• Domain schema is used in resource
construction and discovery
Domain Schema and Model
• Reusable terms with mayHave and usedBy definitions
– “brightness” is used by “light” but not “motion sensor”
– “brightness” may have “change” action but not “reverse”
class: brightness,
type: capability,
description: “brightness control”
usedBy: [ light ],
mayHave: [
currentBrightness, targetBrightness,
stepBrightness, moveBrightness,
change, step, move, stop,
propertyValueChange ],
params: {_
targetValue: _targetBrightness,
_stepSize: _stepBrightness,
_moveRate: _moveBrightness},}
Domain Model Example
"@context": "http://thingschema.org",
"resource": [
{
"type": "light",
"name": "light",
"properties": [
{
"type": "currentstate",
"name": "currentState"
},
{
"type": "targetstate",
"name": "targetState"
},
{
"type": "delaytime",
"name": "delayTime"
}
Resource Model Construction
• The Resource Model is made of Collections,
Links, and Forms
• Resource Model Instances are constructed
from Domain Model instances
• A Domain Model applies structural constraints
to a Domain Schems and informs the
constructor which resources to instantiate and
how
Base
Schema
Resource
Model
Application Logic
Thing Object Model
(Deferred Interface)
Resource Model
Domain
Schema
Resources
Hypermedia Controls
Discovery
Domain
Model
Hypermedia Client
Resource Logic
(Physical I/O)
Networks
Client
Server
Public
Resource
Tools
Resource Model
• Hypermedia Collections use Content Format
to select resource interaction
• Uses “sub” link relation to create a resource
tree, collections of collections
• Properties, forms, items, and collection
subresources may be mixed in a collection
• Resource Type (the “rt” link attribute) is used
to select domain functionality for resources
Resource Model
Link Item
Link Form
Link
Link
Link (self)
(sub)
Link
Collection
Link Item
Link
Link
Link
Form
Link Item
Sub Resource Collection
Collection
Link
Link
Collection
Link
HATEOAS State Machines
• Describe the coupling between the application
and resources for Discovery and Interaction
Model operations
• Application state machine is coupled with
resource state machine through requests and
responses
• State diagrams show a sequence of operations
from request to response
HATEOAS
Response
Request
Application
Logic
Resource
State Machine - Discovery
App
logic
Start
Error
Query
Build
TOM
Capture
Link
Request
Response
State Machine - Interaction
App
logic
Start
Error
Request
Wait
Process
Resp
Retry
Request
Response
State Machine – Subscribe/Invoke
App
logic
Start
Error
Select
Form
Update
State
Submit
Form
Request
Response
Track
State
more
update
Base
Schema
Resource
Model
Application Logic
Thing Object Model
(Deferred Interface)
Thing Object Model
Domain
Schema
Resources
Hypermedia Controls
Discovery
Domain
Model
Hypermedia Client
Resource Logic
(Physical I/O)
Networks
Client
Server
Public
Resource
Tools
Thing Object Model
• Thing Object Model (TOM) is a container for a
set of resource references
• Application may use the domain schema to
understand terms describing TOM resources
• Provides discovery and interaction model
abstractions in the form of a scripting API
• Client State Machines, Discovery, and Form
Logic
Interaction Model
• Interaction model is a set of functional
abstractions that enable application state
machines to be standardized
• The W3C Interaction model consists of
Properties, Events, and Actions
• Properties are resource elements
• Actions and Events are behaviors
• The TOM maps actions and events to
hypermedia forms and POST operations
Interaction Model Classes
WoT Interaction Model
Index PropertyEvent Action
Capability
Subscription Notification Actuation
Thing
subClassOf
Interaction Model Relationships
PropertyEvent Action
(Capability)
Subscription
Notification
Actuation
Thing
Index
Capability
Notification
Capability
Index
has
pointsTo
Interaction Model – TOM elements
• Action
– Invoke (returns handle to actuation)
– updateActuation
– getActuations
• Event
– Subscribe (returns handle to subscription)
– updateSubscription
– getsubscriptions
• Property
– getValue
– setValue
Promise+
• New pattern is needed for application scripts to handle
recurring events like notifications from subscriptions and
actuations
• Deferred patern can be extended
• Fulfill may happen more than once
• Promise can be extended to include a handle to modify the
work in progress
• Some modifications (e.g. cancel) will result in the Promise
being fulfilled a final time or rejected
• Maybe a third option like “complete” in addition to fulfill
and reject:
promise = deferred(subscribe(…), fulfillHandler, completeHandler,
rejectHandler)
Common CRUD
REST Layer Abstraction
• Transport independent REST abstraction layer
• Does not use REST for message transport
• Instead, create a common abstraction layer
• Map abstraction to HTTP and CoAP request
and response fields
• Encapsulate the abstraction in WS and MQTT
payloads
Dictionary Mapping of
Common REST Transaction Layer
{
"uriPath": ["/","a", "b"],
"uriQuery": {"rt": "test", "obs": "", "if": "core.b"}
"contentFormat": "application/link-format+json",
"options": {}
"method": "GET",
"payload": null,
"response": {
"status": "Success",
"code": "204",
"reason": "No Content",
"contentFormat": "application/link-format+json",
"payload": "[{"href":"","rel":"self","rt":"index"}]"
}
}
Common CRUD
(IP)
Send/Rcv
(PHY)
Send/Rcv
URI Topic, URI
(IP)
Send/Rcv
(PHY)
(IP)
Pub/Sub
(PHY)
(IP)
Trx
(PHY)
URIURI
REST REST REST
CoAP HTTP MQTT WS CCML
URI
RESTREST
• Map abstraction to HTTP and CoAP request and responses
• Encapsulate the abstraction in WS and MQTT payloads
Consistent Resource Identifiers:
Cross-Protocol Hyperlinking
http://example.com:8000/b31/env/light/onoff
coap://example.com:5683/b31/env/light/onoff
ws://example.com:80/b31/env/light/onoff
mqtt://example.com:1883/b31/env/light/onoff
Mapped to URI
Mapped to URI
Part Topic --- Part Payload
Encapsulated in Payload
Demonstrator and Reference
Implementation
• Machine Hypermedia Toolkit is an open
source reference implementation
https://github.com/connectIOT/MachineHypermediaToolkit
• Demonstrator resource on Github for tutorial
introduction
https://github.com/connectIOT/HypermediaDemo
Resources…
• These slides
http://www.slideshare.net/michaeljohnkoster/hypermedia-system-architecture-for-a-
web-of-things-56982166
• Blog Article
http://iot-datamodels.blogspot.com/2015/10/hypermedia-design-for-machine-
interfaces.html
• Demo Resource
https://github.com/connectIOT/HypermediaDemo
• Reference Implementation (work in progress)
https://github.com/connectIOT/MachineHypermediaToolkit
• CoRE Interfaces
https://datatracker.ietf.org/doc/draft-ietf-core-interfaces/
• Link-Format
https://tools.ietf.org/html/rfc6690 , https://tools.ietf.org/html/draft-ietf-core-links-
json-04
• SenML-01
https://datatracker.ietf.org/doc/draft-jennings-core-senml/01/

More Related Content

What's hot

Ipso smart object seminar
Ipso smart object seminarIpso smart object seminar
Ipso smart object seminarMichael Koster
 
Object models for interoperability
Object models for interoperabilityObject models for interoperability
Object models for interoperabilityMichael Koster
 
Research Topics in Machine Hypermedia
Research Topics in Machine HypermediaResearch Topics in Machine Hypermedia
Research Topics in Machine HypermediaMichael Koster
 
Iot Toolkit and the Smart Object API - Architecture for Interoperability
Iot Toolkit and the Smart Object API - Architecture for InteroperabilityIot Toolkit and the Smart Object API - Architecture for Interoperability
Iot Toolkit and the Smart Object API - Architecture for InteroperabilityMichael Koster
 
REST APIs for the Internet of Things
REST APIs for the Internet of ThingsREST APIs for the Internet of Things
REST APIs for the Internet of ThingsMichael Koster
 
OMA LwM2M Workshop - Michael Koster, IPSO Alliance Objects
OMA LwM2M Workshop - Michael Koster, IPSO Alliance ObjectsOMA LwM2M Workshop - Michael Koster, IPSO Alliance Objects
OMA LwM2M Workshop - Michael Koster, IPSO Alliance ObjectsOpen Mobile Alliance
 
A Modular Open Source Platform for IoT
A Modular Open Source Platform for IoTA Modular Open Source Platform for IoT
A Modular Open Source Platform for IoTMichael Koster
 
Ipso application templates
Ipso application templatesIpso application templates
Ipso application templatesMichael Koster
 
Ietf91 ad hoc-coap-lwm2m-ipso
Ietf91 ad hoc-coap-lwm2m-ipsoIetf91 ad hoc-coap-lwm2m-ipso
Ietf91 ad hoc-coap-lwm2m-ipsoMichael Koster
 
Restful Asynchronous Notification
Restful Asynchronous NotificationRestful Asynchronous Notification
Restful Asynchronous NotificationMichael Koster
 
IoT Toolkit and the Smart Object API Tutorial Introduction
IoT Toolkit and the Smart Object API Tutorial IntroductionIoT Toolkit and the Smart Object API Tutorial Introduction
IoT Toolkit and the Smart Object API Tutorial IntroductionMichael Koster
 
Smart objectapi tutorial 092013
Smart objectapi tutorial 092013Smart objectapi tutorial 092013
Smart objectapi tutorial 092013Michael Koster
 
Ietf91 ad hoc-coap-lwm2m-ipso
Ietf91 ad hoc-coap-lwm2m-ipsoIetf91 ad hoc-coap-lwm2m-ipso
Ietf91 ad hoc-coap-lwm2m-ipsoMichael Koster
 
A Modular Open Source Platform for Web Scale IoT Interoperability
A Modular Open Source Platform for Web Scale IoT InteroperabilityA Modular Open Source Platform for Web Scale IoT Interoperability
A Modular Open Source Platform for Web Scale IoT InteroperabilityMichael Koster
 

What's hot (15)

Ipso smart object seminar
Ipso smart object seminarIpso smart object seminar
Ipso smart object seminar
 
Object models for interoperability
Object models for interoperabilityObject models for interoperability
Object models for interoperability
 
Research Topics in Machine Hypermedia
Research Topics in Machine HypermediaResearch Topics in Machine Hypermedia
Research Topics in Machine Hypermedia
 
Iot Toolkit and the Smart Object API - Architecture for Interoperability
Iot Toolkit and the Smart Object API - Architecture for InteroperabilityIot Toolkit and the Smart Object API - Architecture for Interoperability
Iot Toolkit and the Smart Object API - Architecture for Interoperability
 
REST APIs for the Internet of Things
REST APIs for the Internet of ThingsREST APIs for the Internet of Things
REST APIs for the Internet of Things
 
Iottoolkit osiot
Iottoolkit osiotIottoolkit osiot
Iottoolkit osiot
 
OMA LwM2M Workshop - Michael Koster, IPSO Alliance Objects
OMA LwM2M Workshop - Michael Koster, IPSO Alliance ObjectsOMA LwM2M Workshop - Michael Koster, IPSO Alliance Objects
OMA LwM2M Workshop - Michael Koster, IPSO Alliance Objects
 
A Modular Open Source Platform for IoT
A Modular Open Source Platform for IoTA Modular Open Source Platform for IoT
A Modular Open Source Platform for IoT
 
Ipso application templates
Ipso application templatesIpso application templates
Ipso application templates
 
Ietf91 ad hoc-coap-lwm2m-ipso
Ietf91 ad hoc-coap-lwm2m-ipsoIetf91 ad hoc-coap-lwm2m-ipso
Ietf91 ad hoc-coap-lwm2m-ipso
 
Restful Asynchronous Notification
Restful Asynchronous NotificationRestful Asynchronous Notification
Restful Asynchronous Notification
 
IoT Toolkit and the Smart Object API Tutorial Introduction
IoT Toolkit and the Smart Object API Tutorial IntroductionIoT Toolkit and the Smart Object API Tutorial Introduction
IoT Toolkit and the Smart Object API Tutorial Introduction
 
Smart objectapi tutorial 092013
Smart objectapi tutorial 092013Smart objectapi tutorial 092013
Smart objectapi tutorial 092013
 
Ietf91 ad hoc-coap-lwm2m-ipso
Ietf91 ad hoc-coap-lwm2m-ipsoIetf91 ad hoc-coap-lwm2m-ipso
Ietf91 ad hoc-coap-lwm2m-ipso
 
A Modular Open Source Platform for Web Scale IoT Interoperability
A Modular Open Source Platform for Web Scale IoT InteroperabilityA Modular Open Source Platform for Web Scale IoT Interoperability
A Modular Open Source Platform for Web Scale IoT Interoperability
 

Viewers also liked

Agilent ADS 模擬手冊 [實習2] 放大器設計
Agilent ADS 模擬手冊 [實習2]  放大器設計Agilent ADS 模擬手冊 [實習2]  放大器設計
Agilent ADS 模擬手冊 [實習2] 放大器設計Simen Li
 
IoT Toolkit and Smart Object API Tutorial Introduction
IoT Toolkit and Smart Object API Tutorial IntroductionIoT Toolkit and Smart Object API Tutorial Introduction
IoT Toolkit and Smart Object API Tutorial IntroductionMichael Koster
 
Agilent ADS 模擬手冊 [實習3] 壓控振盪器模擬
Agilent ADS 模擬手冊 [實習3] 壓控振盪器模擬Agilent ADS 模擬手冊 [實習3] 壓控振盪器模擬
Agilent ADS 模擬手冊 [實習3] 壓控振盪器模擬Simen Li
 
Agilent ADS 模擬手冊 [實習1] 基本操作與射頻放大器設計
Agilent ADS 模擬手冊 [實習1] 基本操作與射頻放大器設計Agilent ADS 模擬手冊 [實習1] 基本操作與射頻放大器設計
Agilent ADS 模擬手冊 [實習1] 基本操作與射頻放大器設計Simen Li
 
射頻電子實驗手冊 [實驗6] 阻抗匹配模擬
射頻電子實驗手冊 [實驗6] 阻抗匹配模擬射頻電子實驗手冊 [實驗6] 阻抗匹配模擬
射頻電子實驗手冊 [實驗6] 阻抗匹配模擬Simen Li
 
MQTT - REST Bridge using the Smart Object API
MQTT - REST Bridge using the Smart Object APIMQTT - REST Bridge using the Smart Object API
MQTT - REST Bridge using the Smart Object APIMichael Koster
 
Node.js Event Loop & EventEmitter
Node.js Event Loop & EventEmitterNode.js Event Loop & EventEmitter
Node.js Event Loop & EventEmitterSimen Li
 
全端物聯網探索之旅 - 重點整理版
全端物聯網探索之旅 - 重點整理版全端物聯網探索之旅 - 重點整理版
全端物聯網探索之旅 - 重點整理版Simen Li
 

Viewers also liked (9)

RESTful Notification
RESTful NotificationRESTful Notification
RESTful Notification
 
Agilent ADS 模擬手冊 [實習2] 放大器設計
Agilent ADS 模擬手冊 [實習2]  放大器設計Agilent ADS 模擬手冊 [實習2]  放大器設計
Agilent ADS 模擬手冊 [實習2] 放大器設計
 
IoT Toolkit and Smart Object API Tutorial Introduction
IoT Toolkit and Smart Object API Tutorial IntroductionIoT Toolkit and Smart Object API Tutorial Introduction
IoT Toolkit and Smart Object API Tutorial Introduction
 
Agilent ADS 模擬手冊 [實習3] 壓控振盪器模擬
Agilent ADS 模擬手冊 [實習3] 壓控振盪器模擬Agilent ADS 模擬手冊 [實習3] 壓控振盪器模擬
Agilent ADS 模擬手冊 [實習3] 壓控振盪器模擬
 
Agilent ADS 模擬手冊 [實習1] 基本操作與射頻放大器設計
Agilent ADS 模擬手冊 [實習1] 基本操作與射頻放大器設計Agilent ADS 模擬手冊 [實習1] 基本操作與射頻放大器設計
Agilent ADS 模擬手冊 [實習1] 基本操作與射頻放大器設計
 
射頻電子實驗手冊 [實驗6] 阻抗匹配模擬
射頻電子實驗手冊 [實驗6] 阻抗匹配模擬射頻電子實驗手冊 [實驗6] 阻抗匹配模擬
射頻電子實驗手冊 [實驗6] 阻抗匹配模擬
 
MQTT - REST Bridge using the Smart Object API
MQTT - REST Bridge using the Smart Object APIMQTT - REST Bridge using the Smart Object API
MQTT - REST Bridge using the Smart Object API
 
Node.js Event Loop & EventEmitter
Node.js Event Loop & EventEmitterNode.js Event Loop & EventEmitter
Node.js Event Loop & EventEmitter
 
全端物聯網探索之旅 - 重點整理版
全端物聯網探索之旅 - 重點整理版全端物聯網探索之旅 - 重點整理版
全端物聯網探索之旅 - 重點整理版
 

Similar to Hypermedia System Architecture for a Web of Things

Beyond the Basics: Advanced Infrastructure as Code Programming on AWS (DEV327...
Beyond the Basics: Advanced Infrastructure as Code Programming on AWS (DEV327...Beyond the Basics: Advanced Infrastructure as Code Programming on AWS (DEV327...
Beyond the Basics: Advanced Infrastructure as Code Programming on AWS (DEV327...Amazon Web Services
 
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and SparkVital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and SparkVital.AI
 
Adopting AnswerModules ModuleSuite
Adopting AnswerModules ModuleSuiteAdopting AnswerModules ModuleSuite
Adopting AnswerModules ModuleSuiteAnswerModules
 
The Meteor Framework
The Meteor FrameworkThe Meteor Framework
The Meteor FrameworkDamien Magoni
 
Apache Eagle at Hadoop Summit 2016 San Jose
Apache Eagle at Hadoop Summit 2016 San JoseApache Eagle at Hadoop Summit 2016 San Jose
Apache Eagle at Hadoop Summit 2016 San JoseHao Chen
 
M2M Protocol Interoperability using IoT Toolkit
M2M Protocol Interoperability using IoT ToolkitM2M Protocol Interoperability using IoT Toolkit
M2M Protocol Interoperability using IoT ToolkitMichael Koster
 
M2M Protocol Interoperability using IoT Toolkit
M2M Protocol Interoperability using IoT ToolkitM2M Protocol Interoperability using IoT Toolkit
M2M Protocol Interoperability using IoT ToolkitMichael Koster
 
Rp 6 session 2 naresh bhatia
Rp 6  session 2 naresh bhatiaRp 6  session 2 naresh bhatia
Rp 6 session 2 naresh bhatiasapientindia
 
Restful webservice
Restful webserviceRestful webservice
Restful webserviceDong Ngoc
 
Scalable Architectures - Microsoft Finland DevDays 2014
Scalable Architectures - Microsoft Finland DevDays 2014Scalable Architectures - Microsoft Finland DevDays 2014
Scalable Architectures - Microsoft Finland DevDays 2014Kallex
 
StackMate - CloudFormation for CloudStack
StackMate - CloudFormation for CloudStackStackMate - CloudFormation for CloudStack
StackMate - CloudFormation for CloudStackChiradeep Vittal
 
ASP.NET Mvc 4 web api
ASP.NET Mvc 4 web apiASP.NET Mvc 4 web api
ASP.NET Mvc 4 web apiTiago Knoch
 
SharePoint Saturday The Conference DC - How the client object model saved the...
SharePoint Saturday The Conference DC - How the client object model saved the...SharePoint Saturday The Conference DC - How the client object model saved the...
SharePoint Saturday The Conference DC - How the client object model saved the...Liam Cleary [MVP]
 
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...SPTechCon
 
Introduction to HTML language Web design.pptx
Introduction to HTML language Web design.pptxIntroduction to HTML language Web design.pptx
Introduction to HTML language Web design.pptxlekhacce
 

Similar to Hypermedia System Architecture for a Web of Things (20)

Beyond the Basics: Advanced Infrastructure as Code Programming on AWS (DEV327...
Beyond the Basics: Advanced Infrastructure as Code Programming on AWS (DEV327...Beyond the Basics: Advanced Infrastructure as Code Programming on AWS (DEV327...
Beyond the Basics: Advanced Infrastructure as Code Programming on AWS (DEV327...
 
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and SparkVital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
Vital AI MetaQL: Queries Across NoSQL, SQL, Sparql, and Spark
 
Bn1038 demo pega
Bn1038 demo  pegaBn1038 demo  pega
Bn1038 demo pega
 
Adopting AnswerModules ModuleSuite
Adopting AnswerModules ModuleSuiteAdopting AnswerModules ModuleSuite
Adopting AnswerModules ModuleSuite
 
The Meteor Framework
The Meteor FrameworkThe Meteor Framework
The Meteor Framework
 
Design patternsforiot
Design patternsforiotDesign patternsforiot
Design patternsforiot
 
Apache Eagle: Secure Hadoop in Real Time
Apache Eagle: Secure Hadoop in Real TimeApache Eagle: Secure Hadoop in Real Time
Apache Eagle: Secure Hadoop in Real Time
 
Apache Eagle at Hadoop Summit 2016 San Jose
Apache Eagle at Hadoop Summit 2016 San JoseApache Eagle at Hadoop Summit 2016 San Jose
Apache Eagle at Hadoop Summit 2016 San Jose
 
M2M Protocol Interoperability using IoT Toolkit
M2M Protocol Interoperability using IoT ToolkitM2M Protocol Interoperability using IoT Toolkit
M2M Protocol Interoperability using IoT Toolkit
 
M2M Protocol Interoperability using IoT Toolkit
M2M Protocol Interoperability using IoT ToolkitM2M Protocol Interoperability using IoT Toolkit
M2M Protocol Interoperability using IoT Toolkit
 
Rp 6 session 2 naresh bhatia
Rp 6  session 2 naresh bhatiaRp 6  session 2 naresh bhatia
Rp 6 session 2 naresh bhatia
 
025444215.pptx
025444215.pptx025444215.pptx
025444215.pptx
 
Restful webservice
Restful webserviceRestful webservice
Restful webservice
 
Scalable Architectures - Microsoft Finland DevDays 2014
Scalable Architectures - Microsoft Finland DevDays 2014Scalable Architectures - Microsoft Finland DevDays 2014
Scalable Architectures - Microsoft Finland DevDays 2014
 
StackMate - CloudFormation for CloudStack
StackMate - CloudFormation for CloudStackStackMate - CloudFormation for CloudStack
StackMate - CloudFormation for CloudStack
 
ASP.NET Mvc 4 web api
ASP.NET Mvc 4 web apiASP.NET Mvc 4 web api
ASP.NET Mvc 4 web api
 
SharePoint Saturday The Conference DC - How the client object model saved the...
SharePoint Saturday The Conference DC - How the client object model saved the...SharePoint Saturday The Conference DC - How the client object model saved the...
SharePoint Saturday The Conference DC - How the client object model saved the...
 
Metaworks4 intro
Metaworks4 introMetaworks4 intro
Metaworks4 intro
 
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
 
Introduction to HTML language Web design.pptx
Introduction to HTML language Web design.pptxIntroduction to HTML language Web design.pptx
Introduction to HTML language Web design.pptx
 

More from Michael Koster

Ipso smart objects for iot
Ipso smart objects for iotIpso smart objects for iot
Ipso smart objects for iotMichael Koster
 
Ietf91 ad hoc-coap-lwm2m-ipso
Ietf91 ad hoc-coap-lwm2m-ipsoIetf91 ad hoc-coap-lwm2m-ipso
Ietf91 ad hoc-coap-lwm2m-ipsoMichael Koster
 
REST APIs for an Internet of Things
REST APIs for an Internet of ThingsREST APIs for an Internet of Things
REST APIs for an Internet of ThingsMichael Koster
 
MQTT REST Bridge using the Smart Object API
MQTT REST Bridge using the Smart Object APIMQTT REST Bridge using the Smart Object API
MQTT REST Bridge using the Smart Object APIMichael Koster
 
The Network Effect - Open Source and the Internet Of Things - Helsinki Keynote
The Network Effect - Open Source and the Internet Of Things - Helsinki KeynoteThe Network Effect - Open Source and the Internet Of Things - Helsinki Keynote
The Network Effect - Open Source and the Internet Of Things - Helsinki KeynoteMichael Koster
 
IoT Toolkit and the Smart Object API - Architecture for Interoperability
IoT Toolkit and the Smart Object API - Architecture for InteroperabilityIoT Toolkit and the Smart Object API - Architecture for Interoperability
IoT Toolkit and the Smart Object API - Architecture for InteroperabilityMichael Koster
 
Tools for the Open Source Internet of Things
Tools for the Open Source Internet of ThingsTools for the Open Source Internet of Things
Tools for the Open Source Internet of ThingsMichael Koster
 
Open Standards for IoT - GSM Workshop on IoT Standards Atlanta 2013
Open Standards for IoT - GSM Workshop on IoT Standards Atlanta 2013Open Standards for IoT - GSM Workshop on IoT Standards Atlanta 2013
Open Standards for IoT - GSM Workshop on IoT Standards Atlanta 2013Michael Koster
 
Personal Agency on the IoT
Personal Agency on the IoTPersonal Agency on the IoT
Personal Agency on the IoTMichael Koster
 
Open Horizontal Platform - Web Scale Interoperability for the Internet of Thi...
Open Horizontal Platform - Web Scale Interoperability for the Internet of Thi...Open Horizontal Platform - Web Scale Interoperability for the Internet of Thi...
Open Horizontal Platform - Web Scale Interoperability for the Internet of Thi...Michael Koster
 
CCNA-Open-Platform-IoT
CCNA-Open-Platform-IoTCCNA-Open-Platform-IoT
CCNA-Open-Platform-IoTMichael Koster
 
Friend Of A Thing and IoT Resource access control #OSIOT
Friend Of A Thing and IoT Resource access control #OSIOTFriend Of A Thing and IoT Resource access control #OSIOT
Friend Of A Thing and IoT Resource access control #OSIOTMichael Koster
 

More from Michael Koster (14)

Osiot14 buildout
Osiot14 buildoutOsiot14 buildout
Osiot14 buildout
 
Osiot13 IoT buildout
Osiot13 IoT buildoutOsiot13 IoT buildout
Osiot13 IoT buildout
 
Ipso smart objects for iot
Ipso smart objects for iotIpso smart objects for iot
Ipso smart objects for iot
 
Ietf91 ad hoc-coap-lwm2m-ipso
Ietf91 ad hoc-coap-lwm2m-ipsoIetf91 ad hoc-coap-lwm2m-ipso
Ietf91 ad hoc-coap-lwm2m-ipso
 
REST APIs for an Internet of Things
REST APIs for an Internet of ThingsREST APIs for an Internet of Things
REST APIs for an Internet of Things
 
MQTT REST Bridge using the Smart Object API
MQTT REST Bridge using the Smart Object APIMQTT REST Bridge using the Smart Object API
MQTT REST Bridge using the Smart Object API
 
The Network Effect - Open Source and the Internet Of Things - Helsinki Keynote
The Network Effect - Open Source and the Internet Of Things - Helsinki KeynoteThe Network Effect - Open Source and the Internet Of Things - Helsinki Keynote
The Network Effect - Open Source and the Internet Of Things - Helsinki Keynote
 
IoT Toolkit and the Smart Object API - Architecture for Interoperability
IoT Toolkit and the Smart Object API - Architecture for InteroperabilityIoT Toolkit and the Smart Object API - Architecture for Interoperability
IoT Toolkit and the Smart Object API - Architecture for Interoperability
 
Tools for the Open Source Internet of Things
Tools for the Open Source Internet of ThingsTools for the Open Source Internet of Things
Tools for the Open Source Internet of Things
 
Open Standards for IoT - GSM Workshop on IoT Standards Atlanta 2013
Open Standards for IoT - GSM Workshop on IoT Standards Atlanta 2013Open Standards for IoT - GSM Workshop on IoT Standards Atlanta 2013
Open Standards for IoT - GSM Workshop on IoT Standards Atlanta 2013
 
Personal Agency on the IoT
Personal Agency on the IoTPersonal Agency on the IoT
Personal Agency on the IoT
 
Open Horizontal Platform - Web Scale Interoperability for the Internet of Thi...
Open Horizontal Platform - Web Scale Interoperability for the Internet of Thi...Open Horizontal Platform - Web Scale Interoperability for the Internet of Thi...
Open Horizontal Platform - Web Scale Interoperability for the Internet of Thi...
 
CCNA-Open-Platform-IoT
CCNA-Open-Platform-IoTCCNA-Open-Platform-IoT
CCNA-Open-Platform-IoT
 
Friend Of A Thing and IoT Resource access control #OSIOT
Friend Of A Thing and IoT Resource access control #OSIOTFriend Of A Thing and IoT Resource access control #OSIOT
Friend Of A Thing and IoT Resource access control #OSIOT
 

Recently uploaded

VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)Damian Radcliffe
 
Russian Call girls in Dubai +971563133746 Dubai Call girls
Russian  Call girls in Dubai +971563133746 Dubai  Call girlsRussian  Call girls in Dubai +971563133746 Dubai  Call girls
Russian Call girls in Dubai +971563133746 Dubai Call girlsstephieert
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024APNIC
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts servicesonalikaur4
 
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607dollysharma2066
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...Diya Sharma
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...APNIC
 
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebJames Anderson
 
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts servicevipmodelshub1
 
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls KolkataLow Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...tanu pandey
 
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Servicesexy call girls service in goa
 
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Standkumarajju5765
 
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Delhi Call girls
 
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024APNIC
 

Recently uploaded (20)

VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)
 
Russian Call girls in Dubai +971563133746 Dubai Call girls
Russian  Call girls in Dubai +971563133746 Dubai  Call girlsRussian  Call girls in Dubai +971563133746 Dubai  Call girls
Russian Call girls in Dubai +971563133746 Dubai Call girls
 
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
 
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
 
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
 
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
 
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls KolkataLow Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
 
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
 
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
 
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
 
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
 

Hypermedia System Architecture for a Web of Things

  • 1. Hypermedia Design for Machine Interfaces Part 2 – Hypermedia Architecture and Demonstrator for a Web of Things
  • 2. Hypermedia Architecture • Web of Things system architecture and demonstrator using the Hypermedia Collection with resource type semantics • HATEOAS discovery and client-server state machine • Implements the W3C Web of Things interaction model • Scripted applications based on a consistent Thing Object Model • Public resource at thingschema.org for semantics • Uses IETF CoRE RD, Link-Format, SenML • Pluggable protocols; Common CRUD interface allows CoAP, HTTP, MQTT, Websockets, etc.
  • 3. Base Schema Resource Model Application Logic Thing Object Model (Deferred Interface) Hypermedia System Architecture Domain Schema Resources Hypermedia Controls Discovery Domain Model Hypermedia Client Resource Logic (Physical I/O) Networks Client Server Public Resource Tools
  • 4. Base Schema Resource Model Application Logic Thing Object Model (Deferred Interface) Model Driven Resource Construction Domain Schema Resources Hypermedia Controls Discovery Domain Model Hypermedia Client Resource Logic (Physical I/O)
  • 5. Base Schema Resource Model Application Logic Thing Object Model (Deferred Interface) HATEOAS Driven Discovery Domain Schema Resources Hypermedia Controls Discovery Domain Model Hypermedia Client Resource Logic (Physical I/O)
  • 6. Base Schema Resource Model Application Logic Thing Object Model (Deferred Interface) HATEOAS Driven Interaction Domain Schema Resources Hypermedia Controls Discovery Domain Model Hypermedia Client Resource Logic (Physical I/O)
  • 7. Modular Architecture Protocol Abstraction Application Logic Common CRUD Requests MQTT Common CRUD Responses Resource Model Resources Resource Model Thing Object Model HTTP CoA P Common Server Common Client Pluggable Protocols Resource Logic WS
  • 8. Base Schema Resource Model Application Logic Thing Object Model (Deferred Interface) Information Model Domain Schema Resources Hypermedia Controls Discovery Domain Model Hypermedia Client Resource Logic (Physical I/O) Networks Client Server Public Resource Tools
  • 9. Information Model • Base Schema based on W3C Interaction Model – Events, Actions, Properties • Descriptions and explanations, not tags; learning not matching • Incremental reveal discovery – light => brightness => change => (targetBrightness, transitionTime) • Enables index search – Discover “light+brightness+change”
  • 10. Base Schema – WoT Interaction Model { "class": "action", "comment": "Action class", "mayHave": [ "actuation", "notification", "params" ], "subClassOf": "WoTinteractionModel", "usedBy": [ "thing", "capability" ] },
  • 11. Base Schema Resource Model Application Logic Thing Object Model (Deferred Interface) Domain Schema Domain Schema Resources Hypermedia Controls Discovery Domain Model Hypermedia Client Resource Logic (Physical I/O) Networks Client Server Public Resource Tools
  • 12. Domain Schema • Domain Schema is based on a simple information model and schema • Logical entities are constrained by range and domain terms • Domain specific terms are mapped to the information model to prodice a domain schema • Domain schema is used in resource construction and discovery
  • 13. Domain Schema and Model • Reusable terms with mayHave and usedBy definitions – “brightness” is used by “light” but not “motion sensor” – “brightness” may have “change” action but not “reverse” class: brightness, type: capability, description: “brightness control” usedBy: [ light ], mayHave: [ currentBrightness, targetBrightness, stepBrightness, moveBrightness, change, step, move, stop, propertyValueChange ], params: {_ targetValue: _targetBrightness, _stepSize: _stepBrightness, _moveRate: _moveBrightness},}
  • 14. Domain Model Example "@context": "http://thingschema.org", "resource": [ { "type": "light", "name": "light", "properties": [ { "type": "currentstate", "name": "currentState" }, { "type": "targetstate", "name": "targetState" }, { "type": "delaytime", "name": "delayTime" }
  • 15. Resource Model Construction • The Resource Model is made of Collections, Links, and Forms • Resource Model Instances are constructed from Domain Model instances • A Domain Model applies structural constraints to a Domain Schems and informs the constructor which resources to instantiate and how
  • 16. Base Schema Resource Model Application Logic Thing Object Model (Deferred Interface) Resource Model Domain Schema Resources Hypermedia Controls Discovery Domain Model Hypermedia Client Resource Logic (Physical I/O) Networks Client Server Public Resource Tools
  • 17. Resource Model • Hypermedia Collections use Content Format to select resource interaction • Uses “sub” link relation to create a resource tree, collections of collections • Properties, forms, items, and collection subresources may be mixed in a collection • Resource Type (the “rt” link attribute) is used to select domain functionality for resources
  • 18. Resource Model Link Item Link Form Link Link Link (self) (sub) Link Collection Link Item Link Link Link Form Link Item Sub Resource Collection Collection Link Link Collection Link
  • 19. HATEOAS State Machines • Describe the coupling between the application and resources for Discovery and Interaction Model operations • Application state machine is coupled with resource state machine through requests and responses • State diagrams show a sequence of operations from request to response
  • 21. State Machine - Discovery App logic Start Error Query Build TOM Capture Link Request Response
  • 22. State Machine - Interaction App logic Start Error Request Wait Process Resp Retry Request Response
  • 23. State Machine – Subscribe/Invoke App logic Start Error Select Form Update State Submit Form Request Response Track State more update
  • 24. Base Schema Resource Model Application Logic Thing Object Model (Deferred Interface) Thing Object Model Domain Schema Resources Hypermedia Controls Discovery Domain Model Hypermedia Client Resource Logic (Physical I/O) Networks Client Server Public Resource Tools
  • 25. Thing Object Model • Thing Object Model (TOM) is a container for a set of resource references • Application may use the domain schema to understand terms describing TOM resources • Provides discovery and interaction model abstractions in the form of a scripting API • Client State Machines, Discovery, and Form Logic
  • 26. Interaction Model • Interaction model is a set of functional abstractions that enable application state machines to be standardized • The W3C Interaction model consists of Properties, Events, and Actions • Properties are resource elements • Actions and Events are behaviors • The TOM maps actions and events to hypermedia forms and POST operations
  • 27. Interaction Model Classes WoT Interaction Model Index PropertyEvent Action Capability Subscription Notification Actuation Thing subClassOf
  • 28. Interaction Model Relationships PropertyEvent Action (Capability) Subscription Notification Actuation Thing Index Capability Notification Capability Index has pointsTo
  • 29. Interaction Model – TOM elements • Action – Invoke (returns handle to actuation) – updateActuation – getActuations • Event – Subscribe (returns handle to subscription) – updateSubscription – getsubscriptions • Property – getValue – setValue
  • 30. Promise+ • New pattern is needed for application scripts to handle recurring events like notifications from subscriptions and actuations • Deferred patern can be extended • Fulfill may happen more than once • Promise can be extended to include a handle to modify the work in progress • Some modifications (e.g. cancel) will result in the Promise being fulfilled a final time or rejected • Maybe a third option like “complete” in addition to fulfill and reject: promise = deferred(subscribe(…), fulfillHandler, completeHandler, rejectHandler)
  • 31. Common CRUD REST Layer Abstraction • Transport independent REST abstraction layer • Does not use REST for message transport • Instead, create a common abstraction layer • Map abstraction to HTTP and CoAP request and response fields • Encapsulate the abstraction in WS and MQTT payloads
  • 32. Dictionary Mapping of Common REST Transaction Layer { "uriPath": ["/","a", "b"], "uriQuery": {"rt": "test", "obs": "", "if": "core.b"} "contentFormat": "application/link-format+json", "options": {} "method": "GET", "payload": null, "response": { "status": "Success", "code": "204", "reason": "No Content", "contentFormat": "application/link-format+json", "payload": "[{"href":"","rel":"self","rt":"index"}]" } }
  • 33. Common CRUD (IP) Send/Rcv (PHY) Send/Rcv URI Topic, URI (IP) Send/Rcv (PHY) (IP) Pub/Sub (PHY) (IP) Trx (PHY) URIURI REST REST REST CoAP HTTP MQTT WS CCML URI RESTREST • Map abstraction to HTTP and CoAP request and responses • Encapsulate the abstraction in WS and MQTT payloads
  • 34. Consistent Resource Identifiers: Cross-Protocol Hyperlinking http://example.com:8000/b31/env/light/onoff coap://example.com:5683/b31/env/light/onoff ws://example.com:80/b31/env/light/onoff mqtt://example.com:1883/b31/env/light/onoff Mapped to URI Mapped to URI Part Topic --- Part Payload Encapsulated in Payload
  • 35. Demonstrator and Reference Implementation • Machine Hypermedia Toolkit is an open source reference implementation https://github.com/connectIOT/MachineHypermediaToolkit • Demonstrator resource on Github for tutorial introduction https://github.com/connectIOT/HypermediaDemo
  • 36. Resources… • These slides http://www.slideshare.net/michaeljohnkoster/hypermedia-system-architecture-for-a- web-of-things-56982166 • Blog Article http://iot-datamodels.blogspot.com/2015/10/hypermedia-design-for-machine- interfaces.html • Demo Resource https://github.com/connectIOT/HypermediaDemo • Reference Implementation (work in progress) https://github.com/connectIOT/MachineHypermediaToolkit • CoRE Interfaces https://datatracker.ietf.org/doc/draft-ietf-core-interfaces/ • Link-Format https://tools.ietf.org/html/rfc6690 , https://tools.ietf.org/html/draft-ietf-core-links- json-04 • SenML-01 https://datatracker.ietf.org/doc/draft-jennings-core-senml/01/