iottoolkit wot
TRANSCRIPT
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 SchemaSmartObject
Description
Agent
ObservableProperty
Description
Observer
PropertyOfInterest
SmartObject ClassOperation 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 ClassOperation 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 ClassOperation 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 ClassOperation 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 ClassOperation 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 ClassOperation 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 ServerCoAP Client
MQTT Client
/
OP
OBS
OBS
OBS
Server Bindings to Object Tree
Client (Observer) Bindings to Resource Endpoints
IoT Toolkit Core - Objects and Resources