1. 12/12/2012 Michael J Koster Tools for the Open Source Internet of Things 1
Tools for the Open Source
Internet of Things
IoT Toolkit
Smart Object API
2. 12/12/2012 Michael J Koster Tools for the Open Source Internet of Things 2
Open Avenues for Participation
● Traditional manufacturer-consumer roles disrupted; Customize
Your Life is the new DIY
● Global innovation cycle is limited by serialized secret design
iterations and fear of lawsuits, improved by early and often
interaction during design protovation
● Industry SIGs limit participation to conforming entities
● Traditional IP trade for equity system limits access of
individuals to their own work, we need new equity value
models
● The Internet of Things will out-scale and out-last any walled
garden; what we need is an open ecosystem based on
individuals being the seat of control for their own data,
experience, and contribution
3. 12/12/2012 Michael J Koster Tools for the Open Source Internet of Things 3
Open Source Ecosystem
● What is a Platform? Developers and users sharing resources,
who controls it?
● What is an Infrastructure? Communities of developers and
users sharing resources, who controls it?
● What is an Ecosystem? Communities interacting around co-
development of shared resources, community controls it.
● What is meant by “open” in which context? Is there a single
source element in the system? Who controls the access?
● What is Open Source? Free speech vs. lunch, Open Source ==
Multiple Source
● What is an Open Source Ecosystem? Open Avenues of
Participation at all levels
4. 12/12/2012 Michael J Koster Tools for the Open Source Internet of Things 4
Internet of Things
● Network of Sensing, Reasoning, and Action
● Context Aware, Real-Time and Hyper-Local,
Granular Scale
● Integrating physical sensors and other data
sources, connecting the physical world to the
virtual world
● Consists of Physical Graph and Social Graph:
People connecting to things, things connecting
to things, people connecting to people
5. 12/12/2012 Michael J Koster Tools for the Open Source Internet of Things 5
IoT Early Deployment
● Sensors and Actuators => Gateway or Hub =>
Cloud Service
● Vertical integration around one primary vendor
● Each vendor has a variation of REST-like API
● No high level opportunistic integration between
vendors
● Single source lock-in strategies even for “open
platforms”, typical is open source client + single
(closed) source service i.e. freemium style
services
● Too many services for users to manage
6. 12/12/2012 Michael J Koster Tools for the Open Source Internet of Things 6
IoT Application is a Graph
● IoT applications will consist of graphs
● Sensors, acuators, and informing devices at the
edges
● Processing (rules, logic, filtering, aggregation) at
the nodes
● Linked according to user intentions
● Many connections, vertical, horizontal, diagonal
● Redundancy through a rugged overlay network
● Data push-on-update for scalability
7. 12/12/2012 Michael J Koster Tools for the Open Source Internet of Things 7
IoT Application is a Graph
Sensors
User Input
Data
Sources
Application
Logic
Services and
Gateways
Actuators
Storage
User
Display
8. 12/12/2012 Michael J Koster Tools for the Open Source Internet of Things 8
Semantic Web
● Nodes in the IoT application graph are linked by
semantic compatibility, e.g. data types and physical
types
● Semantic Web provides mechanism for discovery
and linkage of appropriate nodes by type
compatibility
● Self-describing data from ontologies
● Dynamic API to data types
● Drives high degree of articulation from simple
resource based RESTful API
● Replication and persistence formats, Big Data
compatible
9. 12/12/2012 Michael J Koster Tools for the Open Source Internet of Things 9
Smart Object API
Smart Object API based on Semantic Web Linked
Data resource description and a simple set of
resource types making up a Virtual Object:
● Description: The Linked Data describing the
Object's resources, it's structure, and data types
● Observable Properties: The encapsulated data
types e.g. time+location data stream
● Observers: dynamic links for data updates to be
pushed (http POST/PUT, CoAP obs, MQ, PubSub)
● Agent: Software process to invoke on data
updates
10. 12/12/2012 Michael J Koster Tools for the Open Source Internet of Things 10
Smart Object Encapsulation
of API Resources
Description
Observable
Property
Observers
Agent
HTTP Interface CoAP Interface
Application software
Agents handle state
changes and
application logic,
including filtering and
aggregation
Maps updates to
HTTP POST, MQTT,
PubSub
Data type
encapsulation
with description
RDF describes resources,
structure, types, and Linked
Data <=> CoAP RD proxy
11. 12/12/2012 Michael J Koster Tools for the Open Source Internet of Things 11
Smart Object
Smart Object
Observable
Property
Has
Agent
(API )Description
Describes
Describes
Calls
Handlers in
Invokes
Methods in
Has
Has
Applicatio
n Agent
Web API
Proxy
Web
API
Client
Routes
URLs to
M2M API
over Internet
D
escribes
Invokes methods in
Is
Interacts
with
Method
Exposes
API via
RDF
Triples
Has
Has
Is
Metho
d
Exposes
API via
CREATE
DELETE
ADDTRIPLES
REMOVETRIPL
ES
DESCRIBE
12. 12/12/2012 Michael J Koster Tools for the Open Source Internet of Things 12
Observable Property
Observable
Property
Has
Descriptio
n
Propert
y
Of
Interest
DescribesDescribes
HasHas
Subscriptio
n
Method
Exposes
API via
Handle
r
URL
Has
Has
Method
Exposes
API via
RDF
Triples
Has
Has
MethodExposes
API via
Instanc
e
Of
Type
Has
Has
SUBSCRIBE
UNSUBSCRIBE
ADDTRIPLES
REMOVETRIPLES
DESCRIBE
CREATE
DELETE
GET
SET
13. 12/12/2012 Michael J Koster Tools for the Open Source Internet of Things 13
IoT Toolkit: Gateway + Service
GaaS
● Constrained network gateway supporting multiple Wireless
Sensor Nets (WSN)
● Using CoAP as a sensor abstraction layer, create Resource
Description for each sensor using core-link-format and IPSO
application concepts from link-format compatibility ontology.
● HTTP LD <=> CoAP RD Semantic proxy
● Service and gateway use same reference implementation and
API
● Software Agents and Resources may be replicated across
gateways and services for redundancy
● Creates a compatibility layer for sensor nets and services
14. 12/12/2012 Michael J Koster Tools for the Open Source Internet of Things 14
Closed
Gateway
INTERNET
IoT MULTI-
PROTOCOL
GATEWAY
Multiple Sensor Nets,
Constrained
Protocols
IoT Gateway-
as-a-Service
Service
API
IoT “Silo”
or other
data source
Cloud
Apps
Gateway
Apps
IoT Toolkit
IoT Applications
run in Cloud
or on Gateway
15. 12/12/2012 Michael J Koster Tools for the Open Source Internet of Things 15
Access Control
● Rethinking of access control for granular
interaction between people and things
● Based on social graph connecting to physical
graph
● FOAF connects people to people
● SSN, O&M, IoT ontologies will connect things to
things and define situations and context
● FOAT ontology is proposed to connect people to
things with concepts of individual authority
16. 12/12/2012 Michael J Koster Tools for the Open Source Internet of Things 16
Ontologies
● Ontologies define the data architecture of
these systems
● This system needs various ontologies to drive
the interactions and propagate new constructs
– SSN, IoT, O&M define sensing, actuation, situations
– SmartObject to define resources in the SmartObject
API
– LinkFormat to map CoAP RD to Linked Data
– FOAT to define relationships between people and
things
– IoTServices to define services e.g. SPARQL,
MapReduce endpoints
17. 12/12/2012 Michael J Koster Tools for the Open Source Internet of Things 17
IoT Toolkit Project
● Reference implementation work in progress using
Python, rdflib, restlite
● Reference platforms Raspberry Pi + Ciseco EVE
multi-WSN, Ubuntu micro-instance GaaS
● Xbee, Z-Wave, EnOcean, XRF, RFM12B on
board, BT, WiFi, etc using USB plugs
● To Do: Document+Test complete API, high level
semantic patterns, ontologies, sensor nets,
service functionality e.g. SPARQL endpoint,
MapReduce