SlideShare une entreprise Scribd logo
1  sur  19
Télécharger pour lire hors ligne
FRED: A Hosted Data
Flow Platform for the IoT
Mike Blackstock
Rodger Lea
2
Data Flow Programming
• Natural fit for common IoT development tasks:
• configurable black box nodes wired
together into flows
• connecting things, IoT infrastructures and
other services
• visual, flexible and easy to use; proven for
music, toys, engineering, integration
• Web of Things Toolkit (WoTKit) (2012)
• Device management, time series data
storage and visualization dashboards
• Processor - multi-user, cloud hosted data
flow programming tool to integrate devices
and cloud services
• Node-RED introduced for edge devices such
as Raspberry Pi for device-level integration
3
Node-RED
• Open source web-based tool
for ‘wiring up’ hardware (e.g.
sensors and actuators
connected to a Pi) to various
protocols and APIs.
• Browser based visual editor
and run time both
implemented using Javascript
• Large and growing community
with many contributors of
node packages.
Nodes
Node RED Architecture
• Editor generates JSON flow; all ‘tabs’
are part of a single file.
• On deploy to runtime, JSON flow is
parsed, nodes instantiated.
• Each node is a Node.js EventEmitter
object; on ‘send’ call, node looks up
wired nodes and calls emit.input(msg)
on downstream nodes.
• By calling EventEmitter API, uses
Node.js’ single threaded Event Loop.
• Concurrency achieved using
callbacks executed after long running
operations (e.g. I/O).
4
Based on http://www.aaronstannard.com/post/
2011/12/14/Intro-to-NodeJS-for-NET-Developers.aspx
Nodes
Event Loop
(single thread)
Non-blocking OS
threads
5. return results
Nodes
2. emit events
4. return
results
1. lookup
next
node(s)
3. do work
5
Why FRED?
• Make NR easily available for multiple
users
• NR is single threaded, single user
system, limited access control
• Requires manual configuration and
command line install to get started
• Manage and monitor instances for
users
• Control and limit instance resource use
• Install and remove node packages for
instances
• minimize cloud resources for system
as a whole
FRED Architecture
• ‘Smart proxy’ that creates and
manages instances of NR for
authorized users
• start/stop, view logs, install nodes,
monitor execution
• FRED Proxy: user and admin
management UI, and proxies to Node-
RED instances
• Billing System: login, registration
payments systems integration
• FRED IS: create, start and stop Node-
RED containers/processes
• Node-RED runs without modification
6
7
User Interface
Node-RED UIFRED Panel
8
Node Management
9
Example NR Flows
Bots
Data
processing &
Integration
Device connectivity
Web applications
Monitoring
10
Dashboards
11
What do you use FRED for?
Home automation
Remote Monitoring
Web services/APIs
>3000 users; >10 per day sign up.
~60% learning about Node-RED
~30% personal projects.
~ 8% work related projects
12
Lessons Learned
Smart proxy approach benefits
• Node-RED deployed as multi-user system without changes. May be generalized to other
services.
• Permits fine-grained access control to Node-RED UI and flows (e.g. public and private HTTP
inputs) by URL
Node.js runtime is memory hungry. 85MB+ RAM per instance ~$1.00 per month
• Package (node) management important to minimize memory.
• Added node count limits and auto shut down for non-paying users.
Appeals to DIY’ers, makers, educators, students … mostly
• low cost, quick and easy to set up… but many users will try it out and leave.
• Learning tool - can focus on NR instead of set up and installation
• Can be bundled with IoT hardware and platforms as rules engine & app prototyping
13
Future work
Simplify flow development
• Simpler nodes and sample flows for common use cases
Scalability
• Use cluster container management system - Docker Swarm
• Scale NR to use multiple cores & machines - sharing flow state & MQTT subscriptions
Support different instance deployments
• Prototype, test, and production instances - higher performance, replication, backup
• Multiple cloud and container systems - e.g. Cloud Foundry, AWS VMs, Google Cloud
Sharing instances
• In an organization with multiple users - flows, dashboards; public dashboards
Distributing flows to devices…
Distributed Node-RED
• Flows that coordinate multiple hosts: in the cloud, on
servers, gateways and devices.
• Associate sub-flows with individual or groups of devices.
• ‘Server’ flows must run on a server, ‘Device’ flows on a
specific device, or groups of devices.
• Local wires connect nodes on same device, remote
wires connect flows between devices directly, using
gateways or cloud.
• Association may change dynamically.
14
Early Prototype
15
Boxes visualize
device sub flows
Selector to
specify devices Import Flow from
Master Device
Flow Deployment
16
MQTT Broker
Server
send to ‘remote
wire’ topic
Presence Sensor
send to ‘remote wire’
topic
TV Controller
listen on ‘remote
wire’ Node topic
remote wire topic is generated
using connected node ids
DNR Open Issues
• Devices labelled explicitly -> how can we specify
constraints of device associated with sub-flows?
• How to deal with dynamic constraints (e.g. location
and mobility)?
• How to visualize/simulate distributed deployment
and execution?
17
Summary
• Data flow programming useful for many IoT tasks
• FRED enables data flows to be provisioned quickly
and easily
• takes advantage of contributions of the Node-
RED community without changes
• Future work includes Distributed Node-RED for
deployment of flows in the cloud, servers and
devices
18
Thank you!
fred.sensetecnic.com
sensetecnic.com
@mblackstock
@sensetecnic

Contenu connexe

Tendances

cncf overview and building edge computing using kubernetes
cncf overview and building edge computing using kubernetescncf overview and building edge computing using kubernetes
cncf overview and building edge computing using kubernetesKrishna-Kumar
 
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...Daniel Bryant
 
ZCloud Consensus on Hardware for Distributed Systems
ZCloud Consensus on Hardware for Distributed SystemsZCloud Consensus on Hardware for Distributed Systems
ZCloud Consensus on Hardware for Distributed SystemsGokhan Boranalp
 
Building Distributed Systems With Riak and Riak Core
Building Distributed Systems With Riak and Riak CoreBuilding Distributed Systems With Riak and Riak Core
Building Distributed Systems With Riak and Riak CoreAndy Gross
 
The missing signalling layer for WebRTC
The missing signalling layer for WebRTCThe missing signalling layer for WebRTC
The missing signalling layer for WebRTCWebRTCConferenceJapan
 
NECOS - EU-Brazil H2020 Project - Novel Enablers for Cloud Slicing
NECOS - EU-Brazil H2020 Project - Novel Enablers for Cloud SlicingNECOS - EU-Brazil H2020 Project - Novel Enablers for Cloud Slicing
NECOS - EU-Brazil H2020 Project - Novel Enablers for Cloud SlicingChristian Esteve Rothenberg
 
BYOP: Custom Processor Development with Apache NiFi
BYOP: Custom Processor Development with Apache NiFiBYOP: Custom Processor Development with Apache NiFi
BYOP: Custom Processor Development with Apache NiFiDataWorks Summit
 
Time Series Tech Stack for the IoT Edge
Time Series Tech Stack for the IoT EdgeTime Series Tech Stack for the IoT Edge
Time Series Tech Stack for the IoT EdgeInfluxData
 
InfluxDB Live Product Training
InfluxDB Live Product TrainingInfluxDB Live Product Training
InfluxDB Live Product TrainingInfluxData
 
Continus sql with sql stream builder
Continus sql with sql stream builderContinus sql with sql stream builder
Continus sql with sql stream builderTimothy Spann
 
Bitsy graph database
Bitsy graph databaseBitsy graph database
Bitsy graph databaseLambdaZen LLC
 
Upcoming services in OpenStack
Upcoming services in OpenStackUpcoming services in OpenStack
Upcoming services in OpenStackCisco DevNet
 
Object models for interoperability
Object models for interoperabilityObject models for interoperability
Object models for interoperabilityMichael Koster
 
FIWARE Wednesday Webinars - IoT Agents
FIWARE Wednesday Webinars - IoT AgentsFIWARE Wednesday Webinars - IoT Agents
FIWARE Wednesday Webinars - IoT AgentsFIWARE
 
Safer Commutes & Streaming Data | George Padavick, Ohio Department of Transpo...
Safer Commutes & Streaming Data | George Padavick, Ohio Department of Transpo...Safer Commutes & Streaming Data | George Padavick, Ohio Department of Transpo...
Safer Commutes & Streaming Data | George Padavick, Ohio Department of Transpo...HostedbyConfluent
 
Internet of Things (IoT) - in the cloud or rather on-premises?
Internet of Things (IoT) - in the cloud or rather on-premises?Internet of Things (IoT) - in the cloud or rather on-premises?
Internet of Things (IoT) - in the cloud or rather on-premises?Guido Schmutz
 
Matrix - One-year in, Matthew Hodgson, Matrix.org
Matrix - One-year in, Matthew Hodgson, Matrix.orgMatrix - One-year in, Matthew Hodgson, Matrix.org
Matrix - One-year in, Matthew Hodgson, Matrix.orgAlan Quayle
 

Tendances (20)

cncf overview and building edge computing using kubernetes
cncf overview and building edge computing using kubernetescncf overview and building edge computing using kubernetes
cncf overview and building edge computing using kubernetes
 
Osiot14 buildout
Osiot14 buildoutOsiot14 buildout
Osiot14 buildout
 
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...
microXchg 2018: "What is a Service Mesh? Do I Need One When Developing 'Cloud...
 
ZCloud Consensus on Hardware for Distributed Systems
ZCloud Consensus on Hardware for Distributed SystemsZCloud Consensus on Hardware for Distributed Systems
ZCloud Consensus on Hardware for Distributed Systems
 
Building Distributed Systems With Riak and Riak Core
Building Distributed Systems With Riak and Riak CoreBuilding Distributed Systems With Riak and Riak Core
Building Distributed Systems With Riak and Riak Core
 
The missing signalling layer for WebRTC
The missing signalling layer for WebRTCThe missing signalling layer for WebRTC
The missing signalling layer for WebRTC
 
How to deploy a smart city platform?
How to deploy a smart city platform?How to deploy a smart city platform?
How to deploy a smart city platform?
 
NECOS - EU-Brazil H2020 Project - Novel Enablers for Cloud Slicing
NECOS - EU-Brazil H2020 Project - Novel Enablers for Cloud SlicingNECOS - EU-Brazil H2020 Project - Novel Enablers for Cloud Slicing
NECOS - EU-Brazil H2020 Project - Novel Enablers for Cloud Slicing
 
BYOP: Custom Processor Development with Apache NiFi
BYOP: Custom Processor Development with Apache NiFiBYOP: Custom Processor Development with Apache NiFi
BYOP: Custom Processor Development with Apache NiFi
 
Time Series Tech Stack for the IoT Edge
Time Series Tech Stack for the IoT EdgeTime Series Tech Stack for the IoT Edge
Time Series Tech Stack for the IoT Edge
 
InfluxDB Live Product Training
InfluxDB Live Product TrainingInfluxDB Live Product Training
InfluxDB Live Product Training
 
Continus sql with sql stream builder
Continus sql with sql stream builderContinus sql with sql stream builder
Continus sql with sql stream builder
 
Bitsy graph database
Bitsy graph databaseBitsy graph database
Bitsy graph database
 
Upcoming services in OpenStack
Upcoming services in OpenStackUpcoming services in OpenStack
Upcoming services in OpenStack
 
Object models for interoperability
Object models for interoperabilityObject models for interoperability
Object models for interoperability
 
FIWARE Wednesday Webinars - IoT Agents
FIWARE Wednesday Webinars - IoT AgentsFIWARE Wednesday Webinars - IoT Agents
FIWARE Wednesday Webinars - IoT Agents
 
Safer Commutes & Streaming Data | George Padavick, Ohio Department of Transpo...
Safer Commutes & Streaming Data | George Padavick, Ohio Department of Transpo...Safer Commutes & Streaming Data | George Padavick, Ohio Department of Transpo...
Safer Commutes & Streaming Data | George Padavick, Ohio Department of Transpo...
 
Internet of Things (IoT) - in the cloud or rather on-premises?
Internet of Things (IoT) - in the cloud or rather on-premises?Internet of Things (IoT) - in the cloud or rather on-premises?
Internet of Things (IoT) - in the cloud or rather on-premises?
 
Matrix - One-year in, Matthew Hodgson, Matrix.org
Matrix - One-year in, Matthew Hodgson, Matrix.orgMatrix - One-year in, Matthew Hodgson, Matrix.org
Matrix - One-year in, Matthew Hodgson, Matrix.org
 
"Volunteer Computing With Boinc" por Diamantino Cruz e Ricardo Madeira
"Volunteer Computing With Boinc" por Diamantino Cruz e Ricardo Madeira"Volunteer Computing With Boinc" por Diamantino Cruz e Ricardo Madeira
"Volunteer Computing With Boinc" por Diamantino Cruz e Ricardo Madeira
 

Similaire à FRED: A Hosted Data Flow Platform for the IoT

IoT Node-Red Presentation
IoT  Node-Red PresentationIoT  Node-Red Presentation
IoT Node-Red PresentationThe IOT Academy
 
Cloud Computing as Innovation Hub - Mohammad Fairus Khalid
Cloud Computing as Innovation Hub - Mohammad Fairus KhalidCloud Computing as Innovation Hub - Mohammad Fairus Khalid
Cloud Computing as Innovation Hub - Mohammad Fairus KhalidOpenNebula Project
 
OpenStack and OpenDaylight Workshop: ONUG Spring 2014
OpenStack and OpenDaylight Workshop: ONUG Spring 2014OpenStack and OpenDaylight Workshop: ONUG Spring 2014
OpenStack and OpenDaylight Workshop: ONUG Spring 2014mestery
 
Hacking apache cloud stack
Hacking apache cloud stackHacking apache cloud stack
Hacking apache cloud stackNitin Mehta
 
Open shift and docker - october,2014
Open shift and docker - october,2014Open shift and docker - october,2014
Open shift and docker - october,2014Hojoong Kim
 
.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los AngelesVMware Tanzu
 
The IoT Open Source World: Where WSO2 stands
The IoT Open Source World: Where WSO2 standsThe IoT Open Source World: Where WSO2 stands
The IoT Open Source World: Where WSO2 standsCharalampos Doukas
 
Automated Deployment and Management of Edge Clouds
Automated Deployment and Management of Edge CloudsAutomated Deployment and Management of Edge Clouds
Automated Deployment and Management of Edge CloudsJay Bryant
 
Using Node-RED for building IoT workflows
Using Node-RED for building IoT workflowsUsing Node-RED for building IoT workflows
Using Node-RED for building IoT workflowsAniruddha Chakrabarti
 
PLNOG14: The benefits of "OPEN" in networking for operators - Joerg Ammon, Br...
PLNOG14: The benefits of "OPEN" in networking for operators - Joerg Ammon, Br...PLNOG14: The benefits of "OPEN" in networking for operators - Joerg Ammon, Br...
PLNOG14: The benefits of "OPEN" in networking for operators - Joerg Ammon, Br...PROIDEA
 
128692851-Introducing-Windows-Azure.ppt
128692851-Introducing-Windows-Azure.ppt128692851-Introducing-Windows-Azure.ppt
128692851-Introducing-Windows-Azure.pptSaraNawghare
 
Webofthing_WOT_vs_IOT.pptx
Webofthing_WOT_vs_IOT.pptxWebofthing_WOT_vs_IOT.pptx
Webofthing_WOT_vs_IOT.pptxjainam bhavsar
 
Meteor South Bay Meetup - Kubernetes & Google Container Engine
Meteor South Bay Meetup - Kubernetes & Google Container EngineMeteor South Bay Meetup - Kubernetes & Google Container Engine
Meteor South Bay Meetup - Kubernetes & Google Container EngineKit Merker
 
Wifi direct p2p app
Wifi direct p2p appWifi direct p2p app
Wifi direct p2p appgeniushkg
 
Connect your datacenter to Microsoft Azure
Connect your datacenter to Microsoft AzureConnect your datacenter to Microsoft Azure
Connect your datacenter to Microsoft AzureK.Mohamed Faizal
 
Service fabric and azure service fabric mesh
Service fabric and azure service fabric meshService fabric and azure service fabric mesh
Service fabric and azure service fabric meshMikkel Mørk Hegnhøj
 

Similaire à FRED: A Hosted Data Flow Platform for the IoT (20)

IoT Node-Red Presentation
IoT  Node-Red PresentationIoT  Node-Red Presentation
IoT Node-Red Presentation
 
Cloud Computing as Innovation Hub - Mohammad Fairus Khalid
Cloud Computing as Innovation Hub - Mohammad Fairus KhalidCloud Computing as Innovation Hub - Mohammad Fairus Khalid
Cloud Computing as Innovation Hub - Mohammad Fairus Khalid
 
OpenStack and OpenDaylight Workshop: ONUG Spring 2014
OpenStack and OpenDaylight Workshop: ONUG Spring 2014OpenStack and OpenDaylight Workshop: ONUG Spring 2014
OpenStack and OpenDaylight Workshop: ONUG Spring 2014
 
Hacking apache cloud stack
Hacking apache cloud stackHacking apache cloud stack
Hacking apache cloud stack
 
Open shift and docker - october,2014
Open shift and docker - october,2014Open shift and docker - october,2014
Open shift and docker - october,2014
 
citus™ iot ecosystem
citus™ iot ecosystemcitus™ iot ecosystem
citus™ iot ecosystem
 
.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles
 
The IoT Open Source World: Where WSO2 stands
The IoT Open Source World: Where WSO2 standsThe IoT Open Source World: Where WSO2 stands
The IoT Open Source World: Where WSO2 stands
 
Automated Deployment and Management of Edge Clouds
Automated Deployment and Management of Edge CloudsAutomated Deployment and Management of Edge Clouds
Automated Deployment and Management of Edge Clouds
 
Using Node-RED for building IoT workflows
Using Node-RED for building IoT workflowsUsing Node-RED for building IoT workflows
Using Node-RED for building IoT workflows
 
PLNOG14: The benefits of "OPEN" in networking for operators - Joerg Ammon, Br...
PLNOG14: The benefits of "OPEN" in networking for operators - Joerg Ammon, Br...PLNOG14: The benefits of "OPEN" in networking for operators - Joerg Ammon, Br...
PLNOG14: The benefits of "OPEN" in networking for operators - Joerg Ammon, Br...
 
128692851-Introducing-Windows-Azure.ppt
128692851-Introducing-Windows-Azure.ppt128692851-Introducing-Windows-Azure.ppt
128692851-Introducing-Windows-Azure.ppt
 
Cloud robotics
Cloud roboticsCloud robotics
Cloud robotics
 
Duo World Architecture
Duo World ArchitectureDuo World Architecture
Duo World Architecture
 
State of the OpenDaylight Union
State of the OpenDaylight UnionState of the OpenDaylight Union
State of the OpenDaylight Union
 
Webofthing_WOT_vs_IOT.pptx
Webofthing_WOT_vs_IOT.pptxWebofthing_WOT_vs_IOT.pptx
Webofthing_WOT_vs_IOT.pptx
 
Meteor South Bay Meetup - Kubernetes & Google Container Engine
Meteor South Bay Meetup - Kubernetes & Google Container EngineMeteor South Bay Meetup - Kubernetes & Google Container Engine
Meteor South Bay Meetup - Kubernetes & Google Container Engine
 
Wifi direct p2p app
Wifi direct p2p appWifi direct p2p app
Wifi direct p2p app
 
Connect your datacenter to Microsoft Azure
Connect your datacenter to Microsoft AzureConnect your datacenter to Microsoft Azure
Connect your datacenter to Microsoft Azure
 
Service fabric and azure service fabric mesh
Service fabric and azure service fabric meshService fabric and azure service fabric mesh
Service fabric and azure service fabric mesh
 

Plus de Michael Blackstock

Plus de Michael Blackstock (7)

iot-and-smart-cities-lea-blackstock
iot-and-smart-cities-lea-blackstockiot-and-smart-cities-lea-blackstock
iot-and-smart-cities-lea-blackstock
 
IoT Interoperability: a Hub-based Approach
IoT Interoperability: a Hub-based ApproachIoT Interoperability: a Hub-based Approach
IoT Interoperability: a Hub-based Approach
 
WoT 2013 Thingbroker
WoT 2013 ThingbrokerWoT 2013 Thingbroker
WoT 2013 Thingbroker
 
WoT 2013 Interop
WoT 2013 InteropWoT 2013 Interop
WoT 2013 Interop
 
Wo t 2013-thingbroker
Wo t 2013-thingbrokerWo t 2013-thingbroker
Wo t 2013-thingbroker
 
WoTKit: a Lightweight Toolkit for the Web of Things
WoTKit: a Lightweight Toolkit for the Web of ThingsWoTKit: a Lightweight Toolkit for the Web of Things
WoTKit: a Lightweight Toolkit for the Web of Things
 
Blackstock wo t 2011
Blackstock wo t 2011Blackstock wo t 2011
Blackstock wo t 2011
 

Dernier

Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 

Dernier (20)

Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 

FRED: A Hosted Data Flow Platform for the IoT

  • 1. FRED: A Hosted Data Flow Platform for the IoT Mike Blackstock Rodger Lea
  • 2. 2 Data Flow Programming • Natural fit for common IoT development tasks: • configurable black box nodes wired together into flows • connecting things, IoT infrastructures and other services • visual, flexible and easy to use; proven for music, toys, engineering, integration • Web of Things Toolkit (WoTKit) (2012) • Device management, time series data storage and visualization dashboards • Processor - multi-user, cloud hosted data flow programming tool to integrate devices and cloud services • Node-RED introduced for edge devices such as Raspberry Pi for device-level integration
  • 3. 3 Node-RED • Open source web-based tool for ‘wiring up’ hardware (e.g. sensors and actuators connected to a Pi) to various protocols and APIs. • Browser based visual editor and run time both implemented using Javascript • Large and growing community with many contributors of node packages.
  • 4. Nodes Node RED Architecture • Editor generates JSON flow; all ‘tabs’ are part of a single file. • On deploy to runtime, JSON flow is parsed, nodes instantiated. • Each node is a Node.js EventEmitter object; on ‘send’ call, node looks up wired nodes and calls emit.input(msg) on downstream nodes. • By calling EventEmitter API, uses Node.js’ single threaded Event Loop. • Concurrency achieved using callbacks executed after long running operations (e.g. I/O). 4 Based on http://www.aaronstannard.com/post/ 2011/12/14/Intro-to-NodeJS-for-NET-Developers.aspx Nodes Event Loop (single thread) Non-blocking OS threads 5. return results Nodes 2. emit events 4. return results 1. lookup next node(s) 3. do work
  • 5. 5 Why FRED? • Make NR easily available for multiple users • NR is single threaded, single user system, limited access control • Requires manual configuration and command line install to get started • Manage and monitor instances for users • Control and limit instance resource use • Install and remove node packages for instances • minimize cloud resources for system as a whole
  • 6. FRED Architecture • ‘Smart proxy’ that creates and manages instances of NR for authorized users • start/stop, view logs, install nodes, monitor execution • FRED Proxy: user and admin management UI, and proxies to Node- RED instances • Billing System: login, registration payments systems integration • FRED IS: create, start and stop Node- RED containers/processes • Node-RED runs without modification 6
  • 9. 9 Example NR Flows Bots Data processing & Integration Device connectivity Web applications Monitoring
  • 11. 11 What do you use FRED for? Home automation Remote Monitoring Web services/APIs >3000 users; >10 per day sign up. ~60% learning about Node-RED ~30% personal projects. ~ 8% work related projects
  • 12. 12 Lessons Learned Smart proxy approach benefits • Node-RED deployed as multi-user system without changes. May be generalized to other services. • Permits fine-grained access control to Node-RED UI and flows (e.g. public and private HTTP inputs) by URL Node.js runtime is memory hungry. 85MB+ RAM per instance ~$1.00 per month • Package (node) management important to minimize memory. • Added node count limits and auto shut down for non-paying users. Appeals to DIY’ers, makers, educators, students … mostly • low cost, quick and easy to set up… but many users will try it out and leave. • Learning tool - can focus on NR instead of set up and installation • Can be bundled with IoT hardware and platforms as rules engine & app prototyping
  • 13. 13 Future work Simplify flow development • Simpler nodes and sample flows for common use cases Scalability • Use cluster container management system - Docker Swarm • Scale NR to use multiple cores & machines - sharing flow state & MQTT subscriptions Support different instance deployments • Prototype, test, and production instances - higher performance, replication, backup • Multiple cloud and container systems - e.g. Cloud Foundry, AWS VMs, Google Cloud Sharing instances • In an organization with multiple users - flows, dashboards; public dashboards Distributing flows to devices…
  • 14. Distributed Node-RED • Flows that coordinate multiple hosts: in the cloud, on servers, gateways and devices. • Associate sub-flows with individual or groups of devices. • ‘Server’ flows must run on a server, ‘Device’ flows on a specific device, or groups of devices. • Local wires connect nodes on same device, remote wires connect flows between devices directly, using gateways or cloud. • Association may change dynamically. 14
  • 15. Early Prototype 15 Boxes visualize device sub flows Selector to specify devices Import Flow from Master Device
  • 16. Flow Deployment 16 MQTT Broker Server send to ‘remote wire’ topic Presence Sensor send to ‘remote wire’ topic TV Controller listen on ‘remote wire’ Node topic remote wire topic is generated using connected node ids
  • 17. DNR Open Issues • Devices labelled explicitly -> how can we specify constraints of device associated with sub-flows? • How to deal with dynamic constraints (e.g. location and mobility)? • How to visualize/simulate distributed deployment and execution? 17
  • 18. Summary • Data flow programming useful for many IoT tasks • FRED enables data flows to be provisioned quickly and easily • takes advantage of contributions of the Node- RED community without changes • Future work includes Distributed Node-RED for deployment of flows in the cloud, servers and devices 18