SlideShare a Scribd company logo
1 of 31
Research Topics in Machine
Hypermedia System Design
IRTF Thing to Thing Research Group
March 15, 2016
Research Goals
โ€ข Investigate design patterns for interoperable
hypertext driven machine interfaces
โ€ข Investigate RESTful design patterns for
sensing and actuation
โ€ข What is the role of modeling and ontology in
semantic interoperability?
Research Topics
โ€ข Reference System Architecture
โ€ข Content Format Design
โ€ข RESTful Asynchronous Communication
โ€ข RESTful Actuation
โ€ข REST Protocol Abstraction
โ€ข Model Based Hypertext Annotation
Reference Architecture
Base
Schema
Resource
Model
Client Application
Thing Object Model
(Deferred Interface)
Domain
Schema
Resources
Hypermedia Controls
Discovery
Domain
Model
Hypermedia Client
Resource Application
(Physical I/O)
Networks
Server
Public
Resource
Tools
Client
Content Format Design
โ€ข What should a content-format describe?
โ€ข Representation Formats
โ€ข Common Interaction Model
โ€“ Resource model e.g. CoRE Interfaces
โ€“ Data model e.g. SenML
โ€“ How links work, e.g. CoRE Link-Format
โ€“ How forms work
โ€“ How relation types are used
โ€“ Some base relation types
Content Format Design
Protocols
Representation Formats
Common Interaction Model
Application Meta-Model
Application Domain Model
HTTP, CoAP, RD, Web Linking
SenML, Link-Format, HTML
Resources, Links, Forms, Collections
Link Relations, Form Relations
Resource Types, Ontology
hsml
content type
describedBy
relation type
Resource Model
Link Item
Link Item
Link
Link
Link (self)
(sub)
Link
Collection
Link Item
Link
Link
Link
Form
Link Item
Sub Resource Collection
Collection
Link
Link
Collection
Link
Representation Format Example
{
"bn": "/light/onOff/currentState/",
"e": [
{
"vb": false,
"n": ""
}
],
"l": [
{
"href": "",
"rel": ["self","item"],
"rt": ["property", "currentstate"],
"ct": ["application/senml+json"]
}
]
}
Items may be represented in SenML
Links may be represented in CoRE link-format
Forms
{
"anchor": "/light3/brightness/",
"rel": "invokeAction",
"type": "change",
"method": "post",
"href": "actuations",
"accept": "application/hsml+json",
}
To "invokeAction" of type "change" on the
"/light3/brightness/" resource, perform a "post"
to the resource at "/light3/brightness/actuations"
using the "application/hsml+json" content format
Link and Form Relations
โ€ข Link Relations
โ€“ "item" (an embedded item in a collection)
โ€“ "sub" (a subresource item in a collection)
โ€“ "form" (a form item in a collection)
โ€“ "grp" (a group interaction link)
โ€ข Form Relations
โ€“ "addItem" (add an item to a collection)
RESTful Asynchronous Communication
โ€ข REST interaction is a state machine between
client and server โ€“ request and response
โ€ข Asynchronous Communication using REST is
one or more state transition responses that
take place after a request is made
โ€ข Two classes of interaction:
โ€“ Between resources and applications
โ€“ From Resource to Resource
Resource to Application
โ€ข CoAP Observe is a RESTful asynchronous communication
method
โ€ข Client application makes state changes based on server
responses
โ€ข Server is the name and state origin of the resource
ServerClient
OBSERVE
Responses
Resource to Application
โ€ข PUT or POST can be used for the client to update the state of
the server
โ€ข Client application changes state on server asynchronously
โ€ข Server is the name and state origin of the resource
ServerClient
PUT/POST
Responses
Resource to Resource
โ€ข A client instance may be "bound" to a resource and perform
state transfer between it and another resource
โ€ข Observe binding updates the state of the locally bound
resource based on responses from the "boundTo" resource
โ€ข Server B is the name and state origin of the resource
Server B
OBS
Bind
Observe
ResponsesServer A
Resource to Resource
โ€ข Push binding observes the state of the locally bound
resource and updates the "boundTo" resource
โ€ข Local binding may incorporate a filter and may be forms-
capable
โ€ข Server B is the name and state origin of the resource
Server B
Push
Bind
PUT/POST
ResponsesServer A
(obs)
Promise+
โ€ข Pattern for application scripts to handle
recurring events like notifications from
resource observations
โ€ข Extends the Promise pattern with an update
handler for recurring events
res.observe().then(onResolve, onReject, onUpdate)
(โ€ฆdo other stuff)
onUpdate(value){
processStateUpdate(value)
HTTP Observe
โ€ข Using a technique based on HTML5 Server Sent
Events (SSE)
โ€ข Header "Transfer-Encoding:chunked" enables
open TCP connection to be used for
asynchronous messages
โ€ข Messages could be formatted as HTTP Response
and header lines, with content-type and content-
length controls
โ€ข Header options e.g. Observe:0 could be used to
create a CoAP-compatible observe for HTTP
RESTful Actuation
โ€ข What is RESTful actuation?
โ€ข Change of state on a resource that has some
effect in the physical world
โ€ข Many different interpretations of this:
โ€“ Update of a resource directly changes physical state
โ€“ Update of a resource communicates intended state
โ€“ Creation of a resource that describes the intended
state transition
โ€“ Update of a setpoint resource of a controller
Update State Resource
โ€ข There is always some uncertainty, e.g. the
physical process may fail or be delayed
โ€ข Will the state returned on a subsequent read
reflect the intended state or the actual state?
โ€ข Intended state is technically RESTful but not
useful
โ€ข Actual state is useful but not RESTful
โ€ข Delaying the response until intended state is
observed might workโ€ฆ
Update Intended State Resource
โ€ข This will be both RESTful and Useful
โ€ข Allows a REST response to be generated for
the intended state and application can then
monitor observed state
โ€ข This could work, but what about where we
want to parameterize execution with
transition times, etc? How do we know if the
action is going to succeed or fail?
Create a State Transition Resource
โ€ข This is RESTful and useful, using the resource
create pattern with a form, and returning a
resource location that can be monitored for
state changes
โ€ข Allows asynchronous notification and promise
to be used to track progress, success, failure of
running actions, also to modify or cancel
โ€ข Multiple actions may be queued
Controllers
โ€ข Thermostat is an example of a controller
โ€ข Temperature setting is a set-point that is input
to a controller algorithm that decides whether
to operate an actuator based on the
relationship of the set-point to the measured
temperature, and perhaps other variables
โ€ข Thermostat has measurement temperature
and set-point temperature inputs, and an
actuator state output.
REST 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
Dictionary Mapping of
Common REST Transaction Layer
{
"uriPath": ["/","a", "b"],
"uriQuery": {"rt": "test", "obs": "true"}
"contentFormat": "application/link-format+json",
"options": {}
"method": "GET",
"payload": null,
"response": {
"status": "Success",
"contentFormat": "application/link-format+json",
"payload": "[{"href":"","rel":"self","rt":"test"}]"
}
}
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
Model Based Hypertext Annotation
PropertyEvent Action
(Capability)
Subscription
Notification
Actuation
Thing
Index
Capability
Notification
Capability
Index
has
pointsTo
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 โ€œopenโ€
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",
"capabilities": [
{
"type": "brightness",
"name": "brightness"
},
{
"type": "onoff",
"name": "onoff"
}
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/MichaelKoster/research-topics-in-machine-hypermedia
โ€ข 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

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
Michael 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 Interoperability
Michael Koster
ย 
Object models for interoperability
Object models for interoperabilityObject models for interoperability
Object models for interoperability
Michael Koster
ย 
Introduction to Stream Processing
Introduction to Stream ProcessingIntroduction to Stream Processing
Introduction to Stream Processing
Guido Schmutz
ย 

What's hot (17)

Ipso smart object seminar
Ipso smart object seminarIpso smart object seminar
Ipso smart object seminar
ย 
Ipso eclipse-summary
Ipso eclipse-summaryIpso eclipse-summary
Ipso eclipse-summary
ย 
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
ย 
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
ย 
Vip2p
Vip2pVip2p
Vip2p
ย 
Opentracing jaeger
Opentracing jaegerOpentracing jaeger
Opentracing jaeger
ย 
Object models for interoperability
Object models for interoperabilityObject models for interoperability
Object models for interoperability
ย 
Distributed Crawler Service architecture presentation
Distributed Crawler Service architecture presentationDistributed Crawler Service architecture presentation
Distributed Crawler Service architecture presentation
ย 
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
ย 
Introduction to Distributed Tracing
Introduction to Distributed TracingIntroduction to Distributed Tracing
Introduction to Distributed Tracing
ย 
Distributed tracing 101
Distributed tracing 101Distributed tracing 101
Distributed tracing 101
ย 
Spark (Structured) Streaming vs. Kafka Streams
Spark (Structured) Streaming vs. Kafka StreamsSpark (Structured) Streaming vs. Kafka Streams
Spark (Structured) Streaming vs. Kafka Streams
ย 
Ietf91 ad hoc-coap-lwm2m-ipso
Ietf91 ad hoc-coap-lwm2m-ipsoIetf91 ad hoc-coap-lwm2m-ipso
Ietf91 ad hoc-coap-lwm2m-ipso
ย 
Gladier: The Globus Architecture for Data Intensive Experimental Research (AP...
Gladier: The Globus Architecture for Data Intensive Experimental Research (AP...Gladier: The Globus Architecture for Data Intensive Experimental Research (AP...
Gladier: The Globus Architecture for Data Intensive Experimental Research (AP...
ย 
Sqoop2 refactoring for generic data transfer - NYC Sqoop Meetup
Sqoop2 refactoring for generic data transfer - NYC Sqoop MeetupSqoop2 refactoring for generic data transfer - NYC Sqoop Meetup
Sqoop2 refactoring for generic data transfer - NYC Sqoop Meetup
ย 
Log System As Backbone โ€“ How We Built the Worldโ€™s Most Advanced Vector Databa...
Log System As Backbone โ€“ How We Built the Worldโ€™s Most Advanced Vector Databa...Log System As Backbone โ€“ How We Built the Worldโ€™s Most Advanced Vector Databa...
Log System As Backbone โ€“ How We Built the Worldโ€™s Most Advanced Vector Databa...
ย 
Introduction to Stream Processing
Introduction to Stream ProcessingIntroduction to Stream Processing
Introduction to Stream Processing
ย 

Viewers also liked

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
Michael 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 API
Michael 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 Interoperability
Michael Koster
ย 
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
Michael Koster
ย 
Open Standards for IoT- GSC Workshop on IoT Atlanta 2013
Open Standards for IoT- GSC Workshop on IoT Atlanta 2013Open Standards for IoT- GSC Workshop on IoT Atlanta 2013
Open Standards for IoT- GSC Workshop on IoT Atlanta 2013
Michael Koster
ย 
Design patternsforiot
Design patternsforiotDesign patternsforiot
Design patternsforiot
Michael Koster
ย 
Open Horizontal Platform - Web Scale Interoperability for IoT - CCNA 2013
Open Horizontal Platform - Web Scale Interoperability for IoT - CCNA 2013Open Horizontal Platform - Web Scale Interoperability for IoT - CCNA 2013
Open Horizontal Platform - Web Scale Interoperability for IoT - CCNA 2013
Michael Koster
ย 
The Network Effect - Open Source and the Internet Of Things - Helsinki 2013 K...
The Network Effect - Open Source and the Internet Of Things - Helsinki 2013 K...The Network Effect - Open Source and the Internet Of Things - Helsinki 2013 K...
The Network Effect - Open Source and the Internet Of Things - Helsinki 2013 K...
Michael 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 Interoperability
Michael 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 API
Michael Koster
ย 
Personal Agency on the IoT
Personal Agency on the IoTPersonal Agency on the IoT
Personal Agency on the IoT
Michael Koster
ย 
M2M Protocol Interoperability using IoT Toolkit
M2M Protocol Interoperability using IoT ToolkitM2M Protocol Interoperability using IoT Toolkit
M2M Protocol Interoperability using IoT Toolkit
Michael Koster
ย 

Viewers also liked (13)

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
ย 
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
ย 
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
ย 
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
ย 
Open Standards for IoT- GSC Workshop on IoT Atlanta 2013
Open Standards for IoT- GSC Workshop on IoT Atlanta 2013Open Standards for IoT- GSC Workshop on IoT Atlanta 2013
Open Standards for IoT- GSC Workshop on IoT Atlanta 2013
ย 
Design patternsforiot
Design patternsforiotDesign patternsforiot
Design patternsforiot
ย 
Open Horizontal Platform - Web Scale Interoperability for IoT - CCNA 2013
Open Horizontal Platform - Web Scale Interoperability for IoT - CCNA 2013Open Horizontal Platform - Web Scale Interoperability for IoT - CCNA 2013
Open Horizontal Platform - Web Scale Interoperability for IoT - CCNA 2013
ย 
The Network Effect - Open Source and the Internet Of Things - Helsinki 2013 K...
The Network Effect - Open Source and the Internet Of Things - Helsinki 2013 K...The Network Effect - Open Source and the Internet Of Things - Helsinki 2013 K...
The Network Effect - Open Source and the Internet Of Things - Helsinki 2013 K...
ย 
RESTful Notification
RESTful NotificationRESTful Notification
RESTful Notification
ย 
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
ย 
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
ย 
Personal Agency on the IoT
Personal Agency on the IoTPersonal Agency on the IoT
Personal Agency on the IoT
ย 
M2M Protocol Interoperability using IoT Toolkit
M2M Protocol Interoperability using IoT ToolkitM2M Protocol Interoperability using IoT Toolkit
M2M Protocol Interoperability using IoT Toolkit
ย 

Similar to Research Topics in Machine Hypermedia

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
Michael Koster
ย 
RESTful APIs
RESTful APIsRESTful APIs
RESTful APIs
Adi Challa
ย 
restapitest-anil-200517181251.pdf
restapitest-anil-200517181251.pdfrestapitest-anil-200517181251.pdf
restapitest-anil-200517181251.pdf
mrle7
ย 

Similar to Research Topics in Machine Hypermedia (20)

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
ย 
A REST API (also called a RESTful API or RESTful web API) is an application p...
A REST API (also called a RESTful API or RESTful web API) is an application p...A REST API (also called a RESTful API or RESTful web API) is an application p...
A REST API (also called a RESTful API or RESTful web API) is an application p...
ย 
Hypermedia design for machine apis
Hypermedia design for machine apisHypermedia design for machine apis
Hypermedia design for machine apis
ย 
REST and RESTful Services
REST and RESTful ServicesREST and RESTful Services
REST and RESTful Services
ย 
Rest
RestRest
Rest
ย 
Restful web services
Restful web servicesRestful web services
Restful web services
ย 
Restful web services with java
Restful web services with javaRestful web services with java
Restful web services with java
ย 
Rest APIs Training
Rest APIs TrainingRest APIs Training
Rest APIs Training
ย 
Rest WebAPI with OData
Rest WebAPI with ODataRest WebAPI with OData
Rest WebAPI with OData
ย 
Pragmatic REST APIs
Pragmatic REST APIsPragmatic REST APIs
Pragmatic REST APIs
ย 
web connectivity in IoT
web connectivity in IoTweb connectivity in IoT
web connectivity in IoT
ย 
Modern REST API design principles and rules.pdf
Modern REST API design principles and rules.pdfModern REST API design principles and rules.pdf
Modern REST API design principles and rules.pdf
ย 
RESTful APIs
RESTful APIsRESTful APIs
RESTful APIs
ย 
REST & RESTful Web Services
REST & RESTful Web ServicesREST & RESTful Web Services
REST & RESTful Web Services
ย 
Lecture 12
Lecture 12Lecture 12
Lecture 12
ย 
Rest
Rest Rest
Rest
ย 
restapitest-anil-200517181251.pdf
restapitest-anil-200517181251.pdfrestapitest-anil-200517181251.pdf
restapitest-anil-200517181251.pdf
ย 
Rest API Testing
Rest API TestingRest API Testing
Rest API Testing
ย 
Overview of REST - Raihan Ullah
Overview of REST - Raihan UllahOverview of REST - Raihan Ullah
Overview of REST - Raihan Ullah
ย 
RESTful HATEOAS standards using Java based Katharsis
RESTful HATEOAS standards using Java based KatharsisRESTful HATEOAS standards using Java based Katharsis
RESTful HATEOAS standards using Java based Katharsis
ย 

Recently uploaded

Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
SUHANI PANDEY
ย 
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
SUHANI PANDEY
ย 
valsad Escorts Service โ˜Ž๏ธ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
valsad Escorts Service โ˜Ž๏ธ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...valsad Escorts Service โ˜Ž๏ธ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
valsad Escorts Service โ˜Ž๏ธ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
Call Girls In Delhi Whatsup 9873940964 Enjoy Unlimited Pleasure
ย 
Wadgaon Sheri $ Call Girls Pune 10k @ I'm VIP Independent Escorts Girls 80057...
Wadgaon Sheri $ Call Girls Pune 10k @ I'm VIP Independent Escorts Girls 80057...Wadgaon Sheri $ Call Girls Pune 10k @ I'm VIP Independent Escorts Girls 80057...
Wadgaon Sheri $ Call Girls Pune 10k @ I'm VIP Independent Escorts Girls 80057...
SUHANI PANDEY
ย 
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
SUHANI PANDEY
ย 
๐Ÿ’š๐Ÿ˜‹ Bilaspur Escort Service Call Girls, 9352852248 โ‚น5000 To 25K With AC๐Ÿ’š๐Ÿ˜‹
๐Ÿ’š๐Ÿ˜‹ Bilaspur Escort Service Call Girls, 9352852248 โ‚น5000 To 25K With AC๐Ÿ’š๐Ÿ˜‹๐Ÿ’š๐Ÿ˜‹ Bilaspur Escort Service Call Girls, 9352852248 โ‚น5000 To 25K With AC๐Ÿ’š๐Ÿ˜‹
๐Ÿ’š๐Ÿ˜‹ Bilaspur Escort Service Call Girls, 9352852248 โ‚น5000 To 25K With AC๐Ÿ’š๐Ÿ˜‹
nirzagarg
ย 
๐Ÿ’š๐Ÿ˜‹ Salem Escort Service Call Girls, 9352852248 โ‚น5000 To 25K With AC๐Ÿ’š๐Ÿ˜‹
๐Ÿ’š๐Ÿ˜‹ Salem Escort Service Call Girls, 9352852248 โ‚น5000 To 25K With AC๐Ÿ’š๐Ÿ˜‹๐Ÿ’š๐Ÿ˜‹ Salem Escort Service Call Girls, 9352852248 โ‚น5000 To 25K With AC๐Ÿ’š๐Ÿ˜‹
๐Ÿ’š๐Ÿ˜‹ Salem Escort Service Call Girls, 9352852248 โ‚น5000 To 25K With AC๐Ÿ’š๐Ÿ˜‹
nirzagarg
ย 
Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...
Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...
Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...
SUHANI PANDEY
ย 
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
ย 

Recently uploaded (20)

Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
ย 
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls DubaiDubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
Dubai=Desi Dubai Call Girls O525547819 Outdoor Call Girls Dubai
ย 
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
Ganeshkhind ! Call Girls Pune - 450+ Call Girl Cash Payment 8005736733 Neha T...
ย 
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrStory Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
Story Board.pptxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
ย 
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...
ย 
valsad Escorts Service โ˜Ž๏ธ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
valsad Escorts Service โ˜Ž๏ธ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...valsad Escorts Service โ˜Ž๏ธ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
valsad Escorts Service โ˜Ž๏ธ 6378878445 ( Sakshi Sinha ) High Profile Call Girls...
ย 
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
ย 
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
ย 
Wadgaon Sheri $ Call Girls Pune 10k @ I'm VIP Independent Escorts Girls 80057...
Wadgaon Sheri $ Call Girls Pune 10k @ I'm VIP Independent Escorts Girls 80057...Wadgaon Sheri $ Call Girls Pune 10k @ I'm VIP Independent Escorts Girls 80057...
Wadgaon Sheri $ Call Girls Pune 10k @ I'm VIP Independent Escorts Girls 80057...
ย 
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
ย 
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
ย 
๐Ÿ’š๐Ÿ˜‹ Bilaspur Escort Service Call Girls, 9352852248 โ‚น5000 To 25K With AC๐Ÿ’š๐Ÿ˜‹
๐Ÿ’š๐Ÿ˜‹ Bilaspur Escort Service Call Girls, 9352852248 โ‚น5000 To 25K With AC๐Ÿ’š๐Ÿ˜‹๐Ÿ’š๐Ÿ˜‹ Bilaspur Escort Service Call Girls, 9352852248 โ‚น5000 To 25K With AC๐Ÿ’š๐Ÿ˜‹
๐Ÿ’š๐Ÿ˜‹ Bilaspur Escort Service Call Girls, 9352852248 โ‚น5000 To 25K With AC๐Ÿ’š๐Ÿ˜‹
ย 
Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirt
ย 
Katraj ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For S...
Katraj ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For S...Katraj ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For S...
Katraj ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For S...
ย 
๐Ÿ’š๐Ÿ˜‹ Salem Escort Service Call Girls, 9352852248 โ‚น5000 To 25K With AC๐Ÿ’š๐Ÿ˜‹
๐Ÿ’š๐Ÿ˜‹ Salem Escort Service Call Girls, 9352852248 โ‚น5000 To 25K With AC๐Ÿ’š๐Ÿ˜‹๐Ÿ’š๐Ÿ˜‹ Salem Escort Service Call Girls, 9352852248 โ‚น5000 To 25K With AC๐Ÿ’š๐Ÿ˜‹
๐Ÿ’š๐Ÿ˜‹ Salem Escort Service Call Girls, 9352852248 โ‚น5000 To 25K With AC๐Ÿ’š๐Ÿ˜‹
ย 
Hireโ† Young Call Girls in Tilak nagar (Delhi) โ˜Ž๏ธ 9205541914 โ˜Ž๏ธ Independent Esc...
Hireโ† Young Call Girls in Tilak nagar (Delhi) โ˜Ž๏ธ 9205541914 โ˜Ž๏ธ Independent Esc...Hireโ† Young Call Girls in Tilak nagar (Delhi) โ˜Ž๏ธ 9205541914 โ˜Ž๏ธ Independent Esc...
Hireโ† Young Call Girls in Tilak nagar (Delhi) โ˜Ž๏ธ 9205541914 โ˜Ž๏ธ Independent Esc...
ย 
Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...
Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...
Sarola * Female Escorts Service in Pune | 8005736733 Independent Escorts & Da...
ย 
APNIC Updates presented by Paul Wilson at ARIN 53
APNIC Updates presented by Paul Wilson at ARIN 53APNIC Updates presented by Paul Wilson at ARIN 53
APNIC Updates presented by Paul Wilson at ARIN 53
ย 
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Pollachi 7001035870 Whatsapp Number, 24/07 Booking
ย 
20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf20240508 QFM014 Elixir Reading List April 2024.pdf
20240508 QFM014 Elixir Reading List April 2024.pdf
ย 

Research Topics in Machine Hypermedia

  • 1. Research Topics in Machine Hypermedia System Design IRTF Thing to Thing Research Group March 15, 2016
  • 2. Research Goals โ€ข Investigate design patterns for interoperable hypertext driven machine interfaces โ€ข Investigate RESTful design patterns for sensing and actuation โ€ข What is the role of modeling and ontology in semantic interoperability?
  • 3. Research Topics โ€ข Reference System Architecture โ€ข Content Format Design โ€ข RESTful Asynchronous Communication โ€ข RESTful Actuation โ€ข REST Protocol Abstraction โ€ข Model Based Hypertext Annotation
  • 4. Reference Architecture Base Schema Resource Model Client Application Thing Object Model (Deferred Interface) Domain Schema Resources Hypermedia Controls Discovery Domain Model Hypermedia Client Resource Application (Physical I/O) Networks Server Public Resource Tools Client
  • 5. Content Format Design โ€ข What should a content-format describe? โ€ข Representation Formats โ€ข Common Interaction Model โ€“ Resource model e.g. CoRE Interfaces โ€“ Data model e.g. SenML โ€“ How links work, e.g. CoRE Link-Format โ€“ How forms work โ€“ How relation types are used โ€“ Some base relation types
  • 6. Content Format Design Protocols Representation Formats Common Interaction Model Application Meta-Model Application Domain Model HTTP, CoAP, RD, Web Linking SenML, Link-Format, HTML Resources, Links, Forms, Collections Link Relations, Form Relations Resource Types, Ontology hsml content type describedBy relation type
  • 7. Resource Model Link Item Link Item Link Link Link (self) (sub) Link Collection Link Item Link Link Link Form Link Item Sub Resource Collection Collection Link Link Collection Link
  • 8. Representation Format Example { "bn": "/light/onOff/currentState/", "e": [ { "vb": false, "n": "" } ], "l": [ { "href": "", "rel": ["self","item"], "rt": ["property", "currentstate"], "ct": ["application/senml+json"] } ] } Items may be represented in SenML Links may be represented in CoRE link-format
  • 9. Forms { "anchor": "/light3/brightness/", "rel": "invokeAction", "type": "change", "method": "post", "href": "actuations", "accept": "application/hsml+json", } To "invokeAction" of type "change" on the "/light3/brightness/" resource, perform a "post" to the resource at "/light3/brightness/actuations" using the "application/hsml+json" content format
  • 10. Link and Form Relations โ€ข Link Relations โ€“ "item" (an embedded item in a collection) โ€“ "sub" (a subresource item in a collection) โ€“ "form" (a form item in a collection) โ€“ "grp" (a group interaction link) โ€ข Form Relations โ€“ "addItem" (add an item to a collection)
  • 11. RESTful Asynchronous Communication โ€ข REST interaction is a state machine between client and server โ€“ request and response โ€ข Asynchronous Communication using REST is one or more state transition responses that take place after a request is made โ€ข Two classes of interaction: โ€“ Between resources and applications โ€“ From Resource to Resource
  • 12. Resource to Application โ€ข CoAP Observe is a RESTful asynchronous communication method โ€ข Client application makes state changes based on server responses โ€ข Server is the name and state origin of the resource ServerClient OBSERVE Responses
  • 13. Resource to Application โ€ข PUT or POST can be used for the client to update the state of the server โ€ข Client application changes state on server asynchronously โ€ข Server is the name and state origin of the resource ServerClient PUT/POST Responses
  • 14. Resource to Resource โ€ข A client instance may be "bound" to a resource and perform state transfer between it and another resource โ€ข Observe binding updates the state of the locally bound resource based on responses from the "boundTo" resource โ€ข Server B is the name and state origin of the resource Server B OBS Bind Observe ResponsesServer A
  • 15. Resource to Resource โ€ข Push binding observes the state of the locally bound resource and updates the "boundTo" resource โ€ข Local binding may incorporate a filter and may be forms- capable โ€ข Server B is the name and state origin of the resource Server B Push Bind PUT/POST ResponsesServer A (obs)
  • 16. Promise+ โ€ข Pattern for application scripts to handle recurring events like notifications from resource observations โ€ข Extends the Promise pattern with an update handler for recurring events res.observe().then(onResolve, onReject, onUpdate) (โ€ฆdo other stuff) onUpdate(value){ processStateUpdate(value)
  • 17. HTTP Observe โ€ข Using a technique based on HTML5 Server Sent Events (SSE) โ€ข Header "Transfer-Encoding:chunked" enables open TCP connection to be used for asynchronous messages โ€ข Messages could be formatted as HTTP Response and header lines, with content-type and content- length controls โ€ข Header options e.g. Observe:0 could be used to create a CoAP-compatible observe for HTTP
  • 18. RESTful Actuation โ€ข What is RESTful actuation? โ€ข Change of state on a resource that has some effect in the physical world โ€ข Many different interpretations of this: โ€“ Update of a resource directly changes physical state โ€“ Update of a resource communicates intended state โ€“ Creation of a resource that describes the intended state transition โ€“ Update of a setpoint resource of a controller
  • 19. Update State Resource โ€ข There is always some uncertainty, e.g. the physical process may fail or be delayed โ€ข Will the state returned on a subsequent read reflect the intended state or the actual state? โ€ข Intended state is technically RESTful but not useful โ€ข Actual state is useful but not RESTful โ€ข Delaying the response until intended state is observed might workโ€ฆ
  • 20. Update Intended State Resource โ€ข This will be both RESTful and Useful โ€ข Allows a REST response to be generated for the intended state and application can then monitor observed state โ€ข This could work, but what about where we want to parameterize execution with transition times, etc? How do we know if the action is going to succeed or fail?
  • 21. Create a State Transition Resource โ€ข This is RESTful and useful, using the resource create pattern with a form, and returning a resource location that can be monitored for state changes โ€ข Allows asynchronous notification and promise to be used to track progress, success, failure of running actions, also to modify or cancel โ€ข Multiple actions may be queued
  • 22. Controllers โ€ข Thermostat is an example of a controller โ€ข Temperature setting is a set-point that is input to a controller algorithm that decides whether to operate an actuator based on the relationship of the set-point to the measured temperature, and perhaps other variables โ€ข Thermostat has measurement temperature and set-point temperature inputs, and an actuator state output.
  • 23. REST 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
  • 24. Dictionary Mapping of Common REST Transaction Layer { "uriPath": ["/","a", "b"], "uriQuery": {"rt": "test", "obs": "true"} "contentFormat": "application/link-format+json", "options": {} "method": "GET", "payload": null, "response": { "status": "Success", "contentFormat": "application/link-format+json", "payload": "[{"href":"","rel":"self","rt":"test"}]" } }
  • 25. 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
  • 26. 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
  • 27. Model Based Hypertext Annotation PropertyEvent Action (Capability) Subscription Notification Actuation Thing Index Capability Notification Capability Index has pointsTo
  • 28. 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 โ€œopenโ€ 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},}
  • 29. Domain Model Example "@context": "http://thingschema.org", "resource": [ { "type": "light", "name": "light", "capabilities": [ { "type": "brightness", "name": "brightness" }, { "type": "onoff", "name": "onoff" }
  • 30. 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
  • 31. Resourcesโ€ฆ โ€ข These slides http://www.slideshare.net/MichaelKoster/research-topics-in-machine-hypermedia โ€ข 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/