open source iot building blocks for startups
TRANSCRIPT
Open Source IoT Building Blocks for Startups
{datastore, app hosting, discovery}
Charalampos Doukas
@buildingiot
ServIoTicy Datastore
• Another IoT data cloud platform?
– Yes, sort of
• But why?
– Fully Open Source
– Free forever
– Download & Install
– Some special features
ServIoTicy Datastore
• Special Features:
– Store any kind of data {sensor values, media,..}
– Search & Fetch:
• Time values
• Features like location
– Define actions
• Trigger over HTTP/MQTT/STOMP/…
– Subscriptions
ServIoTicy Datastore
• Special Features:
– Subscriptions:
• Know when your device has posted data
• New data delivered over:– STOMP/WS (Web)
– MQTT (devices)
ServIoTicy Datastore
• An example:{
"name": "device","description": "COMPOSE device","URL": "Web Object URL ","streams": {
"sensor": {"channels": {
"light": {"type": "string","unit": "string"
},"sound": {
"type": "string","unit": "string"
}},"description": "cheap sensor","type": "sensor"
}},
"customFields": {},"actions": [
{"name": "sound","action": "buzzer"
}],"properties": [
{"location": {
"x": 1234,"y": 1245
}}
]}
ServIoTicy Datastore
• API: http://api.servioticy.com
• Store:
– PUThttp://api.servioticy.com/14168401605449a94ccf74f9d49a29ee0ce5f414c8938/streams/sensor
{"channels": {"light": {"current-value": "0.96774193548387"}},"lastUpdate": 1417016693212}
authorization: NDAwNmZjNWYtNTYxMS00YjVkLTllYzMtZTIxNTNhMzAwYjA0Njg5NjJjNDctMWUzNC00ZDY4LTgyZDItODkzMjVjNDI0YTli
ServIoTicy Datastore
• API: http://api.servioticy.com
• Store:
– GEThttp://api.servioticy.com/14168401605449a94ccf74f9d49a29ee0ce5f414c8938/streams/sensor
authorization: NDAwNmZjNWYtNTYxMS00YjVkLTllYzMtZTIxNTNhMzAwYjA0Njg5NjJjNDctMWUzNC00ZDY4LTgyZDItODkzMjVjNDI0YTli
ServIoTicy Datastore
• API: http://api.servioticy.com
• Actuate:
– POSThttp://api.servioticy.com/1417107154049186fff1f06b04ab59082aa84557a9f51/actuations/buzzer
{paramerters…}
authorization: NDAwNmZjNWYtNTYxMS00YjVkLTllYzMtZTIxNTNhMzAwYjA0Njg5NjJjNDctMWUzNC00ZDY4LTgyZDItODkzMjVjNDI0YTli
ServIoTicy Datastore
• API: http://api.servioticy.com
• Subscribe to notification on new data:
– MQTT/STOMP/WS
{topic: /topic/MDgwOTMxMDQtMTM3NS00ZWQ1LTk5Y2UtZjJhYjFlZjE0YjcwNmQyZjA2MGYtMzhiZS00MjAzLWE
zYzItZjRiNzdhYjg0MGIx.1417107154049186fff1f06b04ab59082aa84557a9f51.streams.sensor.updates}
ServIoTicy Datastore
• API: http://api.servioticy.com
• Subscribe to notification on new data and act:
ServIoTicy Datastore
• What is made of?
– Apache STORM
– CouchBase DB
– Apache Apollo
– Jetty
– ElasticSearch
– …
ServIoTicy Datastore
• Download it:
– Virtual Box VDI
– Vagrant script to install everything
• Documentation, samples, links:
• http://www.servioticy.com/
App Hosting
• CloudFoundry PaaS
• What is the easiest way to create IoTworkflows?
• Node-RED {www.nodered.org}
App Hosting
• UI for creating users and Objects (Service Objects)
• Integrated Node-RED environment
• Runs on top of Cloudfoundry
• Communicates with servIoTicy
Discovery
• Why ?
– You know your own stuff but what about others?
• Sensing services
• Services
• …
Discovery
• Integrate iServe:
– Registry for discovering APIs and Services
• Work with API descriptors
– Swagger
• Expose a way to make text queries
– Node-RED node: work in progress
Discovery
• Currently:
– Find an API using iServe
– Grab swagger descriptor
– Use the custom Node-RED node
Where is the Security?
• Data provenance
– Log all data transactions {users, devices} inside servIoTicy and make them available to device owners
– Authentication through API
– Identity Management system (work in progress):
• Allow users authorise apps for accessing their data
• Generate API tokens with different rights