SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

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
 

La actualidad más candente (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
 

Similar a 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
 

Similar a 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
 

Más de Michael Blackstock

Más 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
 

Último

SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slidesvaideheekore1
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsJean Silva
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingShane Coughlan
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonApplitools
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesVictoriaMetrics
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxRTS corp
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfmaor17
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorTier1 app
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencessuser9e7c64
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...OnePlan Solutions
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogueitservices996
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxRTS corp
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingShane Coughlan
 
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
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...Bert Jan Schrijver
 

Último (20)

SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
Introduction to Firebase Workshop Slides
Introduction to Firebase Workshop SlidesIntroduction to Firebase Workshop Slides
Introduction to Firebase Workshop Slides
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero results
 
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full RecordingOpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
OpenChain AI Study Group - Europe and Asia Recap - 2024-04-11 - Full Recording
 
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + KobitonLeveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
Leveraging AI for Mobile App Testing on Real Devices | Applitools + Kobiton
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
What’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 UpdatesWhat’s New in VictoriaMetrics: Q1 2024 Updates
What’s New in VictoriaMetrics: Q1 2024 Updates
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Zer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdfZer0con 2024 final share short version.pdf
Zer0con 2024 final share short version.pdf
 
Effectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryErrorEffectively Troubleshoot 9 Types of OutOfMemoryError
Effectively Troubleshoot 9 Types of OutOfMemoryError
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conference
 
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
Tech Tuesday Slides - Introduction to Project Management with OnePlan's Work ...
 
Ronisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited CatalogueRonisha Informatics Private Limited Catalogue
Ronisha Informatics Private Limited Catalogue
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
 
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News UpdateVictoriaMetrics Q1 Meet Up '24 - Community & News Update
VictoriaMetrics Q1 Meet Up '24 - Community & News Update
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
 
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
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
 

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