WoT Implementation With
IoT Toolkit
Implementing the Web of Things
Virtual Entity using IoT Toolkit
IoT Toolkit
• https://github.com/connectIOT/iottoolkit
• Project started in 2012
• Experimental framework to investigate web
architecture for IoT
• Core Ideas:
– Web Objects
– REST + Events
– Hypermedia
– Linked Data
Smart Object API
• Web Object API to encapsulate a thing’s:
– Properties
– Events
– Actions
– Description
• Based on a core object model with protocol
bindings and semantic bindings
– HTTP, CoAP, MQTT
– RDF, JSON-LD, CoRE Link-format
High Level Schema
SmartObject
Description
Agent
ObservableProperty
Description
Observer
PropertyOfInterest
SmartObject Class
Operation Action Data
Read Read Description Linked Data
Update Update Description Linked Data
Create Add New Resource Constructor
Delete Remove Resource
• Represents a thing
• Container for encapsulation of other
resources
• Can contain instances of SmartObjects
• API reflects the thing description
Description Class
Operation Action Data
Read Read Description Linked Data
Update Update Description Linked Data
Create Add New Links Linked Data
Delete Remove Links Link Template
• Describes a thing or a resource in a thing
• Sub-resource of SmartObject or
ObservableProperty
• Links to resources, links about resources
Agent Class
Operation Action Data
Read List Handlers List of Handlers
Update N/A
Create Add New Handler Constructor Object
Delete Remove Handler
• Contains Handlers, which are actions
invoked within an object
• Rules, filters, transforms, aggregations…
• Handlers contain pointers to input and
output ObservableProperties
ObservableProperty Class
Operation Action Data
Read Get value Property Value
Update Replace Value New Value
Create Add New Resource e.g.
Observer
Constructor Object
Delete Remove resource
• Represents a property of a thing
• API reflects the value of the property
• Zero or more per SmartObject
• Can generate Events and invoke actions
through Observers
Observer Class
Operation Action Data
Read Get constructor Constructor Object
Update Modify Constructor Constructor Template
Create N/A
Delete Remove Self
• Endpoint for Events, sub resource of
ObservableProperty
• Publisher, Subscriber, or Handler invoker
• Describes the event to be generated or received
• Specifies conditions for generating events
PropertyOfInterest Class
Operation Action Data
Read Get value Property Value
Update Update Value New Value
Create N/A
Delete N/A
• Optional within ObservableProperty
• Enables complex data types by invoking
custom methods
• Time series data, structured objects
IoT Toolkit – Protocol Bindings
HTTP Server HTTP Client
CoAP Server
CoAP Client
MQTT Client
/
OP
OBS
OBS
OBS
Server Bindings
to Object Tree
Client (Observer) Bindings
to Resource Endpoints
IoT Toolkit Core -
Objects and Resources

Iottoolkit wot

  • 1.
    WoT Implementation With IoTToolkit Implementing the Web of Things Virtual Entity using IoT Toolkit
  • 2.
    IoT Toolkit • https://github.com/connectIOT/iottoolkit •Project started in 2012 • Experimental framework to investigate web architecture for IoT • Core Ideas: – Web Objects – REST + Events – Hypermedia – Linked Data
  • 3.
    Smart Object API •Web Object API to encapsulate a thing’s: – Properties – Events – Actions – Description • Based on a core object model with protocol bindings and semantic bindings – HTTP, CoAP, MQTT – RDF, JSON-LD, CoRE Link-format
  • 4.
  • 5.
    SmartObject Class Operation ActionData Read Read Description Linked Data Update Update Description Linked Data Create Add New Resource Constructor Delete Remove Resource • Represents a thing • Container for encapsulation of other resources • Can contain instances of SmartObjects • API reflects the thing description
  • 6.
    Description Class Operation ActionData Read Read Description Linked Data Update Update Description Linked Data Create Add New Links Linked Data Delete Remove Links Link Template • Describes a thing or a resource in a thing • Sub-resource of SmartObject or ObservableProperty • Links to resources, links about resources
  • 7.
    Agent Class Operation ActionData Read List Handlers List of Handlers Update N/A Create Add New Handler Constructor Object Delete Remove Handler • Contains Handlers, which are actions invoked within an object • Rules, filters, transforms, aggregations… • Handlers contain pointers to input and output ObservableProperties
  • 8.
    ObservableProperty Class Operation ActionData Read Get value Property Value Update Replace Value New Value Create Add New Resource e.g. Observer Constructor Object Delete Remove resource • Represents a property of a thing • API reflects the value of the property • Zero or more per SmartObject • Can generate Events and invoke actions through Observers
  • 9.
    Observer Class Operation ActionData Read Get constructor Constructor Object Update Modify Constructor Constructor Template Create N/A Delete Remove Self • Endpoint for Events, sub resource of ObservableProperty • Publisher, Subscriber, or Handler invoker • Describes the event to be generated or received • Specifies conditions for generating events
  • 10.
    PropertyOfInterest Class Operation ActionData Read Get value Property Value Update Update Value New Value Create N/A Delete N/A • Optional within ObservableProperty • Enables complex data types by invoking custom methods • Time series data, structured objects
  • 11.
    IoT Toolkit –Protocol Bindings HTTP Server HTTP Client CoAP Server CoAP Client MQTT Client / OP OBS OBS OBS Server Bindings to Object Tree Client (Observer) Bindings to Resource Endpoints IoT Toolkit Core - Objects and Resources