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
5. 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
6. 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
7. 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
8. 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
9. 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
10. 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
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