SlideShare a Scribd company logo
1 of 30
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 like schema.org for common 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
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
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
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
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"}]"
}
}
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
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 Item
Link
Link
Link (self)
(sub)
Link
Collection
Link Item
Link
Link
Link
Item
Link Item
Sub Resource Collection
Collection
Link
Link
Collection
Link
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
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
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
• Descriptions and explanations, not tags; learning
not matching
• Incremental reveal discovery
– light => brightness => change => (targetBrightness,
transitionTime)
• Index search
– GET /index/?rt=“light+brightness+change”
• Schema based on W3C Interaction Model
– Events, Actions, Properties
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,
usedBy: [ light ],
mayHave: [ currentBrightness, targetBrightness,
stepBrightness, moveBrightness,
change, step, move, stop,
propertyValueChange ],
v._params: {_targetValue: _targetBrightness,
_stepSize: _stepBrightness,
_moveRate: _moveBrightness},
description: “brightness control”
}
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
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

More Related Content

What's hot

Ipso smart object seminar
Ipso smart object seminarIpso smart object seminar
Ipso smart object seminarMichael Koster
 
Hypermedia for Machine APIs
Hypermedia for Machine APIsHypermedia for Machine APIs
Hypermedia for Machine APIsMichael 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
 
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
 
Hypermedia design for machine apis
Hypermedia design for machine apisHypermedia design for machine apis
Hypermedia design for machine apisMichael Koster
 
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
 
Object models for interoperability
Object models for interoperabilityObject models for interoperability
Object models for interoperabilityMichael 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
 
Opentracing jaeger
Opentracing jaegerOpentracing jaeger
Opentracing jaegerOracle Korea
 
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
 
Distributed Crawler Service architecture presentation
Distributed Crawler Service architecture presentationDistributed Crawler Service architecture presentation
Distributed Crawler Service architecture presentationGennady Baranov
 
Introduction to Distributed Tracing
Introduction to Distributed TracingIntroduction to Distributed Tracing
Introduction to Distributed Tracingpetabridge
 
Streaming Visualization
Streaming VisualizationStreaming Visualization
Streaming VisualizationGuido Schmutz
 
Distributed tracing 101
Distributed tracing 101Distributed tracing 101
Distributed tracing 101Itiel Shwartz
 

What's hot (18)

Ipso smart object seminar
Ipso smart object seminarIpso smart object seminar
Ipso smart object seminar
 
Hypermedia for Machine APIs
Hypermedia for Machine APIsHypermedia for Machine APIs
Hypermedia for Machine APIs
 
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
 
Ipso eclipse-summary
Ipso eclipse-summaryIpso eclipse-summary
Ipso eclipse-summary
 
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
 
Iottoolkit wot
Iottoolkit wotIottoolkit wot
Iottoolkit wot
 
Hypermedia design for machine apis
Hypermedia design for machine apisHypermedia design for machine apis
Hypermedia design for machine apis
 
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
 
Object models for interoperability
Object models for interoperabilityObject models for interoperability
Object models for interoperability
 
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
 
Iottoolkit osiot
Iottoolkit osiotIottoolkit osiot
Iottoolkit osiot
 
Opentracing jaeger
Opentracing jaegerOpentracing jaeger
Opentracing jaeger
 
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
 
Distributed Crawler Service architecture presentation
Distributed Crawler Service architecture presentationDistributed Crawler Service architecture presentation
Distributed Crawler Service architecture presentation
 
Introduction to Distributed Tracing
Introduction to Distributed TracingIntroduction to Distributed Tracing
Introduction to Distributed Tracing
 
Streaming Visualization
Streaming VisualizationStreaming Visualization
Streaming Visualization
 
Distributed tracing 101
Distributed tracing 101Distributed tracing 101
Distributed tracing 101
 

Viewers also liked

Personal Agency on the IoT
Personal Agency on the IoTPersonal Agency on the IoT
Personal Agency on the IoTMichael 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
 
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
 
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
 
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
 
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
 
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 2013Michael 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
 
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 2013Michael 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
 
M2M Protocol Interoperability using IoT Toolkit
M2M Protocol Interoperability using IoT ToolkitM2M Protocol Interoperability using IoT Toolkit
M2M Protocol Interoperability using IoT ToolkitMichael Koster
 

Viewers also liked (13)

Personal Agency on the IoT
Personal Agency on the IoTPersonal Agency on the IoT
Personal Agency on the IoT
 
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
 
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
 
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
 
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
 
Design patternsforiot
Design patternsforiotDesign patternsforiot
Design patternsforiot
 
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
 
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
 
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
 
RESTful Notification
RESTful NotificationRESTful Notification
RESTful Notification
 
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...
 
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 Hypermedia System Architecture for a Web of Things

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
 
ASP.NET Mvc 4 web api
ASP.NET Mvc 4 web apiASP.NET Mvc 4 web api
ASP.NET Mvc 4 web apiTiago Knoch
 
Approaches to machine actionable links
Approaches to machine actionable linksApproaches to machine actionable links
Approaches to machine actionable linksStephen Richard
 
Evolution Of The Web Platform & Browser Security
Evolution Of The Web Platform & Browser SecurityEvolution Of The Web Platform & Browser Security
Evolution Of The Web Platform & Browser SecuritySanjeev Verma, PhD
 
Enterprise guide to building a Data Mesh
Enterprise guide to building a Data MeshEnterprise guide to building a Data Mesh
Enterprise guide to building a Data MeshSion Smith
 
Semantic framework for web scraping.
Semantic framework for web scraping.Semantic framework for web scraping.
Semantic framework for web scraping.Shyjal Raazi
 
Stop Making The Web Harder Than It Is; Real-world REST, HATEOAS, and Hypermed...
Stop Making The Web Harder Than It Is; Real-world REST, HATEOAS, and Hypermed...Stop Making The Web Harder Than It Is; Real-world REST, HATEOAS, and Hypermed...
Stop Making The Web Harder Than It Is; Real-world REST, HATEOAS, and Hypermed...kiphampton
 
An architecture for federated data discovery and lineage over on-prem datasou...
An architecture for federated data discovery and lineage over on-prem datasou...An architecture for federated data discovery and lineage over on-prem datasou...
An architecture for federated data discovery and lineage over on-prem datasou...DataWorks Summit
 
Building Enterprise-Ready Knowledge Graph Applications in the Cloud
Building Enterprise-Ready Knowledge Graph Applications in the CloudBuilding Enterprise-Ready Knowledge Graph Applications in the Cloud
Building Enterprise-Ready Knowledge Graph Applications in the CloudPeter Haase
 
Restful webservice
Restful webserviceRestful webservice
Restful webserviceDong Ngoc
 
Building Tomorrow's Web Services
Building Tomorrow's Web ServicesBuilding Tomorrow's Web Services
Building Tomorrow's Web ServicesPat Cappelaere
 
Arabidopsis Information Portal, Developer Workshop 2014, Introduction
Arabidopsis Information Portal, Developer Workshop 2014, IntroductionArabidopsis Information Portal, Developer Workshop 2014, Introduction
Arabidopsis Information Portal, Developer Workshop 2014, IntroductionJasonRafeMiller
 
Evolving Hadoop into an Operational Platform with Data Applications
Evolving Hadoop into an Operational Platform with Data ApplicationsEvolving Hadoop into an Operational Platform with Data Applications
Evolving Hadoop into an Operational Platform with Data ApplicationsDataWorks Summit
 
Refactoring HUBzero for Linked Data
Refactoring HUBzero for Linked DataRefactoring HUBzero for Linked Data
Refactoring HUBzero for Linked DataYongyang Yu
 
Amish Umesh - Future Of Web App Testing - ClubHack2007
Amish Umesh - Future Of Web App Testing  - ClubHack2007Amish Umesh - Future Of Web App Testing  - ClubHack2007
Amish Umesh - Future Of Web App Testing - ClubHack2007ClubHack
 
StackMate - CloudFormation for CloudStack
StackMate - CloudFormation for CloudStackStackMate - CloudFormation for CloudStack
StackMate - CloudFormation for CloudStackChiradeep Vittal
 

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

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
 
ASP.NET Mvc 4 web api
ASP.NET Mvc 4 web apiASP.NET Mvc 4 web api
ASP.NET Mvc 4 web api
 
Approaches to machine actionable links
Approaches to machine actionable linksApproaches to machine actionable links
Approaches to machine actionable links
 
LinkedinResume
LinkedinResumeLinkedinResume
LinkedinResume
 
Basics of the Web Platform
Basics of the Web PlatformBasics of the Web Platform
Basics of the Web Platform
 
Evolution Of The Web Platform & Browser Security
Evolution Of The Web Platform & Browser SecurityEvolution Of The Web Platform & Browser Security
Evolution Of The Web Platform & Browser Security
 
Enterprise guide to building a Data Mesh
Enterprise guide to building a Data MeshEnterprise guide to building a Data Mesh
Enterprise guide to building a Data Mesh
 
Semantic framework for web scraping.
Semantic framework for web scraping.Semantic framework for web scraping.
Semantic framework for web scraping.
 
Stop Making The Web Harder Than It Is; Real-world REST, HATEOAS, and Hypermed...
Stop Making The Web Harder Than It Is; Real-world REST, HATEOAS, and Hypermed...Stop Making The Web Harder Than It Is; Real-world REST, HATEOAS, and Hypermed...
Stop Making The Web Harder Than It Is; Real-world REST, HATEOAS, and Hypermed...
 
Excellent rest using asp.net web api
Excellent rest using asp.net web apiExcellent rest using asp.net web api
Excellent rest using asp.net web api
 
An architecture for federated data discovery and lineage over on-prem datasou...
An architecture for federated data discovery and lineage over on-prem datasou...An architecture for federated data discovery and lineage over on-prem datasou...
An architecture for federated data discovery and lineage over on-prem datasou...
 
Building Enterprise-Ready Knowledge Graph Applications in the Cloud
Building Enterprise-Ready Knowledge Graph Applications in the CloudBuilding Enterprise-Ready Knowledge Graph Applications in the Cloud
Building Enterprise-Ready Knowledge Graph Applications in the Cloud
 
Restful webservice
Restful webserviceRestful webservice
Restful webservice
 
Building Tomorrow's Web Services
Building Tomorrow's Web ServicesBuilding Tomorrow's Web Services
Building Tomorrow's Web Services
 
Arabidopsis Information Portal, Developer Workshop 2014, Introduction
Arabidopsis Information Portal, Developer Workshop 2014, IntroductionArabidopsis Information Portal, Developer Workshop 2014, Introduction
Arabidopsis Information Portal, Developer Workshop 2014, Introduction
 
Evolving Hadoop into an Operational Platform with Data Applications
Evolving Hadoop into an Operational Platform with Data ApplicationsEvolving Hadoop into an Operational Platform with Data Applications
Evolving Hadoop into an Operational Platform with Data Applications
 
Refactoring HUBzero for Linked Data
Refactoring HUBzero for Linked DataRefactoring HUBzero for Linked Data
Refactoring HUBzero for Linked Data
 
Amish Umesh - Future Of Web App Testing - ClubHack2007
Amish Umesh - Future Of Web App Testing  - ClubHack2007Amish Umesh - Future Of Web App Testing  - ClubHack2007
Amish Umesh - Future Of Web App Testing - ClubHack2007
 
Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655
Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655
Databasecentricapisonthecloudusingplsqlandnodejscon3153oow2016 160922021655
 
StackMate - CloudFormation for CloudStack
StackMate - CloudFormation for CloudStackStackMate - CloudFormation for CloudStack
StackMate - CloudFormation for CloudStack
 

Recently uploaded

PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationLinaWolf1
 
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130  Available With RoomVIP Kolkata Call Girl Kestopur 👉 8250192130  Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Roomdivyansh0kumar0
 
Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Excelmac1
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITMgdsc13
 
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一3sw2qly1
 
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
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作ys8omjxb
 
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130  Available With RoomVIP Kolkata Call Girl Alambazar 👉 8250192130  Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Roomdivyansh0kumar0
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一Fs
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhimiss dipika
 
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012rehmti665
 
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja VipCall Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja VipCall Girls Lucknow
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一z xss
 
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Dana Luther
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Sonam Pathan
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书zdzoqco
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Sonam Pathan
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Paul Calvano
 

Recently uploaded (20)

PHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 DocumentationPHP-based rendering of TYPO3 Documentation
PHP-based rendering of TYPO3 Documentation
 
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130  Available With RoomVIP Kolkata Call Girl Kestopur 👉 8250192130  Available With Room
VIP Kolkata Call Girl Kestopur 👉 8250192130 Available With Room
 
Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...Blepharitis inflammation of eyelid symptoms cause everything included along w...
Blepharitis inflammation of eyelid symptoms cause everything included along w...
 
Git and Github workshop GDSC MLRITM
Git and Github  workshop GDSC MLRITMGit and Github  workshop GDSC MLRITM
Git and Github workshop GDSC MLRITM
 
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一
定制(CC毕业证书)美国美国社区大学毕业证成绩单原版一比一
 
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
 
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
 
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
Potsdam FH学位证,波茨坦应用技术大学毕业证书1:1制作
 
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130  Available With RoomVIP Kolkata Call Girl Alambazar 👉 8250192130  Available With Room
VIP Kolkata Call Girl Alambazar 👉 8250192130 Available With Room
 
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
定制(Lincoln毕业证书)新西兰林肯大学毕业证成绩单原版一比一
 
Contact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New DelhiContact Rya Baby for Call Girls New Delhi
Contact Rya Baby for Call Girls New Delhi
 
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
 
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja VipCall Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
Call Girls Service Adil Nagar 7001305949 Need escorts Service Pooja Vip
 
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
办理(UofR毕业证书)罗切斯特大学毕业证成绩单原版一比一
 
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
Packaging the Monolith - PHP Tek 2024 (Breaking it down one bite at a time)
 
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
Call Girls In The Ocean Pearl Retreat Hotel New Delhi 9873777170
 
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
办理多伦多大学毕业证成绩单|购买加拿大UTSG文凭证书
 
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in  Rk Puram 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Rk Puram 🔝 9953056974 🔝 Delhi escort Service
 
Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170Call Girls Near The Suryaa Hotel New Delhi 9873777170
Call Girls Near The Suryaa Hotel New Delhi 9873777170
 
Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24Font Performance - NYC WebPerf Meetup April '24
Font Performance - NYC WebPerf Meetup April '24
 

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 like schema.org for common 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 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. 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
  • 9. 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
  • 10. 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"}]" } }
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. Resource Model Link Item Link Item Link Link Link (self) (sub) Link Collection Link Item Link Link Link Item Link Item Sub Resource Collection Collection Link Link Collection Link
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. Interaction Model Classes WoT Interaction Model Index PropertyEvent Action Capability Subscription Notification Actuation Thing subClassOf
  • 19. Interaction Model Relationships PropertyEvent Action (Capability) Subscription Notification Actuation Thing Index Capability Notification Capability Index has pointsTo
  • 20. 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
  • 21. 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
  • 22. 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
  • 23. Information Model • Descriptions and explanations, not tags; learning not matching • Incremental reveal discovery – light => brightness => change => (targetBrightness, transitionTime) • Index search – GET /index/?rt=“light+brightness+change” • Schema based on W3C Interaction Model – Events, Actions, Properties
  • 24. 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, usedBy: [ light ], mayHave: [ currentBrightness, targetBrightness, stepBrightness, moveBrightness, change, step, move, stop, propertyValueChange ], v._params: {_targetValue: _targetBrightness, _stepSize: _stepBrightness, _moveRate: _moveBrightness}, description: “brightness control” }
  • 25. 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
  • 26. 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
  • 28. State Machine - Discovery App logic Start Error Query Build TOM Capture Link Request Response
  • 29. State Machine - Interaction App logic Start Error Request Wait Process Resp Retry Request Response
  • 30. State Machine – Subscribe/Invoke App logic Start Error Select Form Update State Submit Form Request Response Track State more update