4. Intro - Objectives
Objectives
◦ Sharing of sensor data with cloud services
◦ Deployment of AGILE workflows on cloud
Benefits
◦ Performance
◦ Ex: Complex data processing is needed
◦ Availability
◦ Ex: Data or processing need to be available 24x7
◦ Accessibility
◦ Ex: Many users need to access the data
4
5. Intro - Classification of clouds
Classification of cloud services
◦ IoT services. Specifically intended for IoT usage (e.g. Xively)
◦ Closed devices services. These devices directly push sensor data to cloud (e.g. Misfit)
◦ Storage services (e.g. Dropbox)
◦ Deployment services (e.g. Heroku)
5
6. Application exports data
◦ IoT services
◦ Storage services
Application imports data
◦ Closed-device services
Intro - Use cases (I)
6
<X,Y>
<X,Y>
7. Intro - Use cases (II)
AGILE Applications Runtime deployed on cloud
Push an AGILE application to a remote runtime
7
8. Intro - Use cases (III)
Export sensor data to cloud
◦ Storage services
Get PaaS Recommendation
8
<X,Y,t>
Local
Storage
Cloud
Recommender
INPUT OUTPUTGW
profile
9. Intro - Approach
Node-RED
◦ Rapid prototyping
◦ IoT services and Storage services: Nodes to share data
◦ Reusing if possible!!
Kura Wires
◦ Industrial-oriented
◦ Access to Kura supported services
PaaS providers
◦ Deployment of Node-RED workflows
9
10. IoT services (I)
Supported services
◦ Xively
◦ FIWARE
◦ ThingSpeak
◦ Using Kura
◦ AWS IoT, Azure IoT, Kapua
◦ Using Shimmer
◦ Fitbit, Google Fit, Misfit…
Issues
◦ Domain translation
◦ A single sensor datum is expected to be
sent to service when it occurs.
◦ Very different behaviour and interface
10
11. IoT services (II)
Xively (LogMeIn)
◦ Pushes sensor data
◦ Automatic creation of a device
◦ https://github.com/Agile-IoT/node-red-contrib-agile-xively
FIWARE
◦ Pushes sensor data
◦ https://github.com/Agile-IoT/node-red-contrib-agile-fiware
ThingSpeak (MathWorks)
◦ Pushes sensor data
◦ Allows automatic creation of a channel
◦ https://github.com/Agile-IoT/node-red-contrib-agile-thingspeak
◦ Fork of existent node.
11
12. IoT services (III)
Health services
◦ Pulls sensor data from cloud service
◦ Integrating Shimmer: https://github.com/openmhealth/shimmer
◦ Supported services: Fitbit, Google Fit, Misfit…
◦ Open MHealth
◦ https://github.com/Agile-IoT/node-red-contrib-agile-fit
Kura Wires
◦ Pushes sensor data
◦ Integrating the Kura AGILE component
◦ Supported services: AWS IoT, Azure IoT, Kapua
◦ Pending integration with Kura REST API
◦ It will allow services to be supported from Node-RED
12
13. Storage services (I)
Supported services
◦ Dropbox
◦ Google Drive
◦ OwnCloud
◦ SOLID servers
Issues
◦ Appending to files not possible
◦ OAuth2 → IDM
13
14. Storage services (II)
Dropbox
◦ Uploads files
◦ https://github.com/Agile-IoT/node-red-contrib-agile-dropbox
◦ Fork of existent node
Google Drive
◦ Uploads files
◦ https://github.com/Agile-IoT/node-red-contrib-agile-googledrive
OwnCloud
◦ Uploads files
◦ https://github.com/Agile-IoT/node-red-contrib-agile-owncloud
SOLID servers
◦ Pushes sensor data
◦ Adds semantic information
◦ https://github.com/Agile-IoT/node-red-contrib-agile-solid
14
15. Storage services (III)
Cloud Data Management UI
◦ Allows uploading sensor data stored in Local Storage to a supported Storage
service
◦ Backend pending
15
16. Storage services - Demo
Upload sensor data to Owncloud
The workflow reads values from the dummy device (each 10s).
The values are buffered.
Each 30s, the contents of the buffer are uploaded to an ownCloud
repository.
Goal: demonstrate easy file uploading to a storage service
16
17. PaaS services
Node-RED deployment
◦ Offers uniform API for deployment of applications
◦ Not limited to Node-RED
◦ Supported services
◦ CloudFoundry v2 compatible
◦ Heroku
◦ OpenShift v2 (discontinued)
◦ OpenShift v3 (in progress)
◦ https://github.com/Agile-IoT/agile-paas-library
Workflow to cloud
◦ Move workflow to cloud
◦ Forwards incoming data to remote workflow
◦ https://github.com/Agile-IoT/flow-pusher
17
18. PaaS services - Demo
Deploy AGILE workflows to cloud
Three workflows
◦ Local: Read from dummy device
◦ Remote: Send to a FIWARE IoT endpoint
◦ Chart: Get values from FIWARE Context
Broker and plot
Two workflows to push to cloud.
◦ Remote workflow is pushed to cloud →
The local chart still being updated.
◦ Chart workflow is pushed to cloud →
The chart data is public on Internet.
Goals:
◦ offload computational processing
◦ easy public release of data
18
FW IoT FW Ctx Broker
LOCAL REMOTE GRAPH
LOCAL
REMOTE
GRAPH
FW IoT
FW Ctx Broker
19. Security
IDM Token
◦ Retrieves token from user authenticated with AGILE
◦ https://github.com/Agile-IoT/node-red-contrib-security-nodes/
Attribute
◦ Gets attribute for a particular entity
◦ https://github.com/Agile-IoT/node-red-contrib-security-nodes/
19
20. Next steps
Implementation of the Cloud Storage backend
Integration of the PaaS Deployer in the AGILE software stack
Integration of “moving a workflow to the cloud” functionality
Finalize support of OpenShift v3 on PaaS Deployer
Optional aspects, useful for pilots, that improve the functionality of the
implemented Node-RED nodes
Integration with pilots
20
21. Next steps – Pilots
Pilot A
◦ Current: Integration with Google Fit is used
◦ Export data to Dropbox or Google Drive
◦ Execution of workflows on remote Node-REDs
Pilot B
◦ Export data to a storage service (currently OwnCloud)
Pilot C
◦ Use of Kura WIRES and Kapua Cloud
Pilot D
◦ Deployment of a back-office application
Pilot E
◦ No integration expected
21
22. Summary
Objective
◦ Provide the essential connectors for allowing AGILE users to extend the
capabilities of the gateway by managing data and deploying apps in existing
cloud services.
Achievements
◦ Applications are able to share data with IoT and Storage services
◦ Applications are able to retrieve data from cloud services associated to
health devices
◦ Users are able to deploy Node-RED runtimes onto a PaaS service
◦ Users are able to move functionality of local AGILE workflows to remote
Node-REDs
◦ Users will be able to share data with Storage services
22