SlideShare a Scribd company logo
1 of 58
Download to read offline
Taming the Dragon — Ep. 1
Zenoh Genesis
CEO/CTO
angelo@zettascale.tech
Angelo Corsaro, PhD
Taming the Dragon
Six Episodes
Nov 22nd — Zenoh Genesis
Nov 29th — Zenoh: Getting Started
Dec 6th — ROS/ROS2 Robot-to-Anything with Zenoh
Dec 13th — Zenoh on Microcontrollers and Low Power Networks
Dec 20th — Integrating DataBases and Messaging Protocols with Zenoh
Jan 6th — Data Flow Programming with Zenoh-Flow
All episodes run live on the given day at 10.00 CET and 18.00 CET to facilitate
participation from around the globe!
ZettaScale
Mission
Bring to every connected human and machine the unconstrained
freedom to communicate, compute and store — anywhere, at any
scale, e
ffi
ciently and securely
Values
Zettlers embrace the Seven Knightly Virtues of Courage, Justice,
Mercy, Generosity, Faith, Nobility and Hope.
The Team
Management team with 10+
years of experience in
running SW companies / BUs
Strong thought and
technological leadership
Over 50% of the Engineers
hold a PhD
We are ~50 shiny Zettlers and
growing quickly
World Talents
Several of our key technical
sta
ff
s are well recognised
world experts
DDS was literally born in our
team — Cyclone DDS is our
brand new DDS implementation
We are the inventor of Zenoh —
the most powerful and
e
ffi
cient protocol yet!
Zenoh Genesis
Historical Background
IoT & IIoT
We were involved in building
some of the very
fi
rst IoT and
IIoT systems
In 2008 we were involved with
the Nice’s Connected
Boulevards, one of the world
fi
rst Smart Cities
In 2014 we part for the core
team that build the Fog Platform
for Barcelona
It was
Laborious…
Building these systems was
laborious
We had to stitch several
technologies together already
to make data
fl
ow end-to-end
We had to stitch a few more to
deal with data storage, etc.
MQTT
MQTT, was popularised as the
protocol for IoT, yet it supports only
client/broker architecture
Requires TCP/IP, thus making it
inconvenient for constrained
networks
The choice of topic-names has an
impact on bandwidth usage
Push Mode Only
MQTT
Broker
Pub
Pub
Pub
Sub
Sub
Sub
Sub
Sub
Pub
Pub
Sub
Sub
OMG DDS
Designed to work on a wired-
network with low message loss
Does not work o
ff
the shelf over
the Internet
Hard to scale on at Internet Scale
without breaking its semantics
Steep Learning Curve
Push Mode Only
DDS Global Data Space
...
Data
Writer
Data
Writer
Data
Writer
Data
Reader
Data
Reader
Data
Reader
Data
Reader
Data
Writer
TopicA
QoS
TopicB
QoS
TopicC
QoS
TopicD
QoS
Kafka
Designed for the Data-Centre
“Centralised” Architecture
Supports only Pull Mode
Chaos
The situation was extremely
messy, yet it seamed that
just a few of us where
bothered by it
Everyone was pushing for
the technology they had
adopted or were selling and
ignoring the challenges…
We couldn’t!
A New Beginning
We decided to take up the
challenge to design a new
protocol that could work in
the Cloud-to-Device
continuum
We set us-up for the
additional challenge to unify
data in motion and data at
rest and as a consequence
bring location transparency
to data at rest
Zenoh
Dragons teach us that if we want to climb high we have to do it against the wind.
Pub/Sub/Query protocol that Uni
fi
es data
in motion, data at rest and computations
from embedded microcontrollers up the
data centre
Provides location-transparent
abstractions for high performance pub/
sub and distributed queries across
heterogeneous systems
Provides universal abstractions for
cloud-to-device data-
fl
ow programming
• Pub / Sub (push)
Peer
put(room/1/temp, 19)
Peer
declare_subscriber
(room/1/temp)
Pub / Sub... but not only!
Peer
declare_subscriber
(**/temp).mode(Pull)
• Pub / Sub (push)
Peer
put(room/1/temp, 19)
Peer
declare_subscriber
(room/1/temp)
pull()
• Pub / Sub (pull)
Pub / Sub... but not only!
Peer
declare_subscriber
(**/temp).mode(Pull)
Peer
get(room/**/hum)
Peer
put(room/2/hum, 42)
(room/**)
• Pub / Sub (push)
Peer
put(room/1/temp, 19)
Peer
declare_subscriber
(room/1/temp)
pull()
• Pub / Sub (pull)
• Pub / Store / Get
Pub / Sub... but not only!
Peer
declare_subscriber
(**/temp).mode(Pull)
Peer
declare_queryable
(elec_consumption)
Peer
get(elec_consumption)
Peer
get(room/**/hum)
Peer
put(room/2/hum, 42)
(room/**)
• Pub / Sub (push)
Peer
put(room/1/temp, 19)
Peer
declare_subscriber
(room/1/temp)
pull()
• Pub / Sub (pull)
• Get / Reply
• Pub / Store / Get
Pub / Sub... but not only!
Any topology
Any topology
Peer-to-peer
Clique and mesh topologies
Mesh
Peer
Peer
Peer
Peer
Peer
Clique
Peer
Peer
Peer
Peer
Any topology
Peer-to-peer
Clique and mesh topologies
Brokered
Client
Client
Brokered
Clients communicate
through a router or a peer
Mesh
Peer
Peer
Peer
Peer
Peer
Router
Client Client Client
Clique
Peer
Peer
Peer
Peer
Any topology
Peer-to-peer
Clique and mesh topologies
Brokered Routed
Client
Client
Routed
Routers forward data to and
from peers and clients
Brokered
Clients communicate
through a router or a peer
Mesh
Peer
Peer
Peer
Peer
Peer
Router
Client Client Client Client
Router
Router
Client
Clique
Peer
Peer
Peer
Peer
Router
Router
Any topology
Peer-to-peer
Clique and mesh topologies
Brokered Routed
Router
Router
Router
Client
Client
Routed
Routers forward data to and
from peers and clients
Brokered
Clients communicate
through a router or a peer
Mesh
Peer
Peer
Peer
Peer
Peer
Router
Client Client Client Client
Router
Router
Client
Clique
Peer
Peer
Peer
Peer
Runs Everywhere
Written in Rust for security, safety and performance
Native libraries and API bindings for many programming
languages, e.g., Rust, C/C++, Python, REST, C# Kotlin
Supports network technologies from transport layer
down-to the data link
Available on embedded and extremely constrained
devices and networks — 5 bytes minimal overhead
Data Link
Network
Transport
Physical
Why Rust?
70% of security vulnerability are
due to memory safety issues
Rust is memory and
concurrency safe, high
performance, productive and
has a great ecosystem
24
Zenoh on Your Favourite MCU
Abstractions
Resource. A named data, in other terms a (key, value)
(e.g. home/kitchen/sensor/temp, 21.5
home/kitchen/sensor/hum, 0.67)
(e.g. home/*/sensor/air?co2>12[humidity])
Selector. An expression identifying a set of resources
(e.g. home/kitchen/sensor/*
home/**/temp
Key expression. An expression identifying a set of keys
Abstractions
Publisher. A spring of values for a key expression
Subscriber. A sink of values for a key expression
Queryable. A well of values for a key expression
(e.g. home/kitchen/sensor/temp
home/kitchen/sensor/* )
(e.g. home/kitchen/sensor/temp
home/kitchen/sensor/*)
(e.g. home/**)
Zenoh’s Abstractions Universality
Zenoh’s abstraction are universal since they allow
to express the key patterns in distributed
computing, namely:
Publish/Subscribe. Trivially supported by Zenoh’s
Publisher and Subscriber
Remote Computation. A Queryable represents a
generalised computation, since it can
transparently deal with replication and partitioning
Storage. Represented by the combination of a
Queryable and a Subscriber
Additionally all these primitives enjoy location
transparency by the virtue of being data-centric.
Pub/Sub
Subscriber
fleet/*/robot/*/position
Storage
fleet/1/**
Storage
fleet/2/**
Publisher
fleet/2/robot/1/position
Publisher
fleet/1/robot/2/position
ZZ
Subscriber
fleet/2/robot/*/position
Pub/Sub
Subscriber
fleet/*/robot/*/position
Storage
fleet/1/**
Storage
fleet/2/**
Publisher
fleet/2/robot/1/position
Publisher
fleet/1/robot/2/position
ZZ
Subscriber
fleet/2/robot/*/position
Pub/Sub
Subscriber
fleet/*/robot/*/position
Storage
fleet/1/**
Storage
fleet/2/**
Publisher
fleet/2/robot/1/position
Publisher
fleet/1/robot/2/position
ZZ
Subscriber
fleet/2/robot/*/position
Query
Queryable
fleet/*/camera/position
Storage
fleet/1/robot/**
Storage
fleet/2/robot/**
Query
Queryable
fleet/*/camera/position
Storage
fleet/1/robot/**
Storage
fleet/2/robot/** Get
fleet/*/*/position
Primitives
open/close — Open/Close a zenoh session.
declare_subscriber — Declares a subscriber with a user provided call-
back that will be triggered when data is available.
declare_publisher — Declares a publisher and optimise the
communication stack for repetitive publications. Notice that Zenoh
does not require a publisher in order to perform publications, this is just
an optimisation.
declare_queryable — Declares a queryable with a user provided call-
back that will be triggered whenever a query needs to be answered.
Primitives
put — puts a value for a key expression.
pull — Pulls data for a pull subscriber.
get — Issues a distributed query and returns a stream of
results. The query target, coverage and consolidation depends
on policies.
Lorem ipsum dolor sit amet
Easy to Use
Extensible
SSE
…
Zenoh Plugins
Ease integration of other technologies
…
Zenoh vs.
MQTT & Kafka
Zenoh can deliver ~60Gbps which
is 15x higher throughput than Kafka
and up to 32x than MQTT for
8Kbyte payloads
Zenoh delivers over 60x or higher
throughput than MQTT for payload
larger than 32Kbytes
Zenoh’s latency 10usec compared
to 25usec for MQTT and 75usec for
Kafka
Zenoh vs DDS
Discovery
Open Robotics performed a
comparative evaluation of
Zenoh and DDS (full report)
The results showed how
much more e
ffi
cient zenoh
discovery is compared to
DDS
1
8
www.openrobotics.org
www.openrobotics.org
Some interesting results
Discovery traffic versus application traffic
Some interesting results
Multicast traffic versus unicast and TCP traffic
(Multicast is a great way to bring down a poorly-configured network)
DDS Kafka MQTT Zenoh
Pub/Sub (Push) ✔
𐄂
✔ ✔
Pub/Sub (Pull)
𐄂
✔
𐄂
✔
Distributed Query
𐄂𐄂𐄂
✔
High Performance ✔
𐄂𐄂
✔
Constrained HW
𐄂𐄂
✔ ✔
Constrained Networks
𐄂𐄂𐄂
✔
Internet Scale
Deployment
𐄂
✔ ✔ ✔
Standard Based ✔
𐄂
✔
𐄂
QoS ✔
𐄂
✔ ✔
Peer2Peer ✔
𐄂𐄂
✔
Brokered
𐄂
✔ ✔ ✔
Routed
𐄂𐄂𐄂
✔
Feature Matrix
Shiny, Happy Users
It's very important to inspire the next generation.
Zenoh is adopted on high visibility projects in robotics and
autonomous vehicles for on device and V2X/R2X
Next-Gen Devices built on Zenoh
Users Love it
Strong Endorsement #1
OpenRobotics openly taking a
position on Zenoh after
performing a comparative
evaluation against DDS
OpenRobotics calling for
contributions/fundings to have
Zenoh natively supported in ROS2
as an alternative of DDS by June
2023
Strong Endorsement #2
Zenoh selected by the ITU-T:
FGAI4AD-01 Automated driving safety data
protocol – Speci
fi
cation
At the result of a 2 years work-group evaluating
all available technologies for Intelligence
Transport Systems (ITS) communication and
having discarded DDS and MQTT among others
I n t e r n a t i o n a l T e l e c o m m u n i c a t i o n U n i o n
ITU-T Technical Report
TELECOMMUNICATION
STANDARDIZATION SECTOR
OF ITU
(29 September 2022)
Focus Group on AI for autonomous and assisted driving
(FG-AI4AD)
FGAI4AD-01
Automated driving safety data protocol
– Specification
Zenoh’s Key Highlights
Most wire/power/memory ef
fi
cient protocol in the market to
provide connectivity to extremely constrained targets
Supports push and pull pub/sub along with distributed queries
Resource keys are represented as integers on the wire, these
integer are local to a session => good for wire ef
fi
ciency
Supports for peer-to-peer and routed communication.
Support for zero-copy.
Ordered reliable data delivery and fragmentation.
Minimal wire overhead for user data is 5 bytes
Data Link
Network
Transport
Physical
Concluding Remarks
Zenoh has been designed to overcome the
limitations of existing protocols and provide
with a uni
fi
ed abstraction from the data-
centre to the micro-controller for dealing with
data in motion and data at rest
It is written in Rust for security and
performance
It has a vibrant and quickly growing community
Its has impressive performance
Concluding Remarks
Zenoh has been designed to overcome the
limitations of existing protocols and provide
with a uni
fi
ed abstraction from the data-
centre to the micro-controller for dealing with
data in motion and data at rest
It is written in Rust for security and
performance
It has a vibrant and quickly growing community
Its has impressive performance
References
Patience, persistence and perspiration
make an unbeatable combination for
success.
Thank You

More Related Content

Similar to "Taming the Dragon": Zenoh's Genesis

computer network NCC l4dc assingment
computer network NCC l4dc assingment computer network NCC l4dc assingment
computer network NCC l4dc assingment David Parker
 
From SDN to Cloud Networking
From SDN to Cloud NetworkingFrom SDN to Cloud Networking
From SDN to Cloud NetworkingJuniper Networks
 
JesusLopez-VitaeCurricular2016
JesusLopez-VitaeCurricular2016JesusLopez-VitaeCurricular2016
JesusLopez-VitaeCurricular2016Jesus Lopez
 
zenoh: The Edge Data Fabric
zenoh: The Edge Data Fabriczenoh: The Edge Data Fabric
zenoh: The Edge Data FabricAngelo Corsaro
 
Implementing Remote Procedure Calls
Implementing Remote Procedure CallsImplementing Remote Procedure Calls
Implementing Remote Procedure CallsThanh Nguyen
 
In search of the perfect IoT Stack - Scalable IoT Architectures with MQTT
In search of the perfect IoT Stack - Scalable IoT Architectures with MQTTIn search of the perfect IoT Stack - Scalable IoT Architectures with MQTT
In search of the perfect IoT Stack - Scalable IoT Architectures with MQTTDominik Obermaier
 
Large-Scale System Integration with DDS for SCADA, C2, and Finance
Large-Scale System Integration with DDS for SCADA, C2, and FinanceLarge-Scale System Integration with DDS for SCADA, C2, and Finance
Large-Scale System Integration with DDS for SCADA, C2, and FinanceRick Warren
 
Network Architecture for Containers
Network Architecture for ContainersNetwork Architecture for Containers
Network Architecture for ContainersCumulus Networks
 
Lecture12 ie321 dr_atifshahzad - networks
Lecture12 ie321 dr_atifshahzad - networksLecture12 ie321 dr_atifshahzad - networks
Lecture12 ie321 dr_atifshahzad - networksAtif Shahzad
 
12.) fabric (your next data center)
12.) fabric (your next data center)12.) fabric (your next data center)
12.) fabric (your next data center)Jeff Green
 
Advanced Networking: The Critical Path for HPC, Cloud, Machine Learning and more
Advanced Networking: The Critical Path for HPC, Cloud, Machine Learning and moreAdvanced Networking: The Critical Path for HPC, Cloud, Machine Learning and more
Advanced Networking: The Critical Path for HPC, Cloud, Machine Learning and moreinside-BigData.com
 
Innovation in SDN Tools and Platforms
Innovation in SDN Tools and PlatformsInnovation in SDN Tools and Platforms
Innovation in SDN Tools and PlatformsUmesh Krishnaswamy
 
HTTP_SS_ENTERPRISE_EN
HTTP_SS_ENTERPRISE_ENHTTP_SS_ENTERPRISE_EN
HTTP_SS_ENTERPRISE_ENBernd Thomsen
 
ppbench - A Visualizing Network Benchmark for Microservices
ppbench - A Visualizing Network Benchmark for Microservicesppbench - A Visualizing Network Benchmark for Microservices
ppbench - A Visualizing Network Benchmark for MicroservicesNane Kratzke
 
A Deep Dive in the World of IT Networking (Part 2)
A Deep Dive in the World of IT Networking (Part 2)A Deep Dive in the World of IT Networking (Part 2)
A Deep Dive in the World of IT Networking (Part 2)Tuan Yang
 
Scaling Streaming - Concepts, Research, Goals
Scaling Streaming - Concepts, Research, GoalsScaling Streaming - Concepts, Research, Goals
Scaling Streaming - Concepts, Research, Goalskamaelian
 
tezos_hands-on-training.pdf
tezos_hands-on-training.pdftezos_hands-on-training.pdf
tezos_hands-on-training.pdfNeven6
 
Encode x Tezos Hack: Hands-on dApp Training
Encode x Tezos Hack: Hands-on dApp Training Encode x Tezos Hack: Hands-on dApp Training
Encode x Tezos Hack: Hands-on dApp Training KlaraOrban
 
Sdwan webinar
Sdwan webinarSdwan webinar
Sdwan webinarpmohapat
 

Similar to "Taming the Dragon": Zenoh's Genesis (20)

computer network NCC l4dc assingment
computer network NCC l4dc assingment computer network NCC l4dc assingment
computer network NCC l4dc assingment
 
From SDN to Cloud Networking
From SDN to Cloud NetworkingFrom SDN to Cloud Networking
From SDN to Cloud Networking
 
JesusLopez-VitaeCurricular2016
JesusLopez-VitaeCurricular2016JesusLopez-VitaeCurricular2016
JesusLopez-VitaeCurricular2016
 
Bcs 052 solved assignment
Bcs 052 solved assignmentBcs 052 solved assignment
Bcs 052 solved assignment
 
zenoh: The Edge Data Fabric
zenoh: The Edge Data Fabriczenoh: The Edge Data Fabric
zenoh: The Edge Data Fabric
 
Implementing Remote Procedure Calls
Implementing Remote Procedure CallsImplementing Remote Procedure Calls
Implementing Remote Procedure Calls
 
In search of the perfect IoT Stack - Scalable IoT Architectures with MQTT
In search of the perfect IoT Stack - Scalable IoT Architectures with MQTTIn search of the perfect IoT Stack - Scalable IoT Architectures with MQTT
In search of the perfect IoT Stack - Scalable IoT Architectures with MQTT
 
Large-Scale System Integration with DDS for SCADA, C2, and Finance
Large-Scale System Integration with DDS for SCADA, C2, and FinanceLarge-Scale System Integration with DDS for SCADA, C2, and Finance
Large-Scale System Integration with DDS for SCADA, C2, and Finance
 
Network Architecture for Containers
Network Architecture for ContainersNetwork Architecture for Containers
Network Architecture for Containers
 
Lecture12 ie321 dr_atifshahzad - networks
Lecture12 ie321 dr_atifshahzad - networksLecture12 ie321 dr_atifshahzad - networks
Lecture12 ie321 dr_atifshahzad - networks
 
12.) fabric (your next data center)
12.) fabric (your next data center)12.) fabric (your next data center)
12.) fabric (your next data center)
 
Advanced Networking: The Critical Path for HPC, Cloud, Machine Learning and more
Advanced Networking: The Critical Path for HPC, Cloud, Machine Learning and moreAdvanced Networking: The Critical Path for HPC, Cloud, Machine Learning and more
Advanced Networking: The Critical Path for HPC, Cloud, Machine Learning and more
 
Innovation in SDN Tools and Platforms
Innovation in SDN Tools and PlatformsInnovation in SDN Tools and Platforms
Innovation in SDN Tools and Platforms
 
HTTP_SS_ENTERPRISE_EN
HTTP_SS_ENTERPRISE_ENHTTP_SS_ENTERPRISE_EN
HTTP_SS_ENTERPRISE_EN
 
ppbench - A Visualizing Network Benchmark for Microservices
ppbench - A Visualizing Network Benchmark for Microservicesppbench - A Visualizing Network Benchmark for Microservices
ppbench - A Visualizing Network Benchmark for Microservices
 
A Deep Dive in the World of IT Networking (Part 2)
A Deep Dive in the World of IT Networking (Part 2)A Deep Dive in the World of IT Networking (Part 2)
A Deep Dive in the World of IT Networking (Part 2)
 
Scaling Streaming - Concepts, Research, Goals
Scaling Streaming - Concepts, Research, GoalsScaling Streaming - Concepts, Research, Goals
Scaling Streaming - Concepts, Research, Goals
 
tezos_hands-on-training.pdf
tezos_hands-on-training.pdftezos_hands-on-training.pdf
tezos_hands-on-training.pdf
 
Encode x Tezos Hack: Hands-on dApp Training
Encode x Tezos Hack: Hands-on dApp Training Encode x Tezos Hack: Hands-on dApp Training
Encode x Tezos Hack: Hands-on dApp Training
 
Sdwan webinar
Sdwan webinarSdwan webinar
Sdwan webinar
 

More from ZettaScaleTechnology

Cyclone DDS Unleashed: ROS & Cyclone DDS.pdf
Cyclone DDS Unleashed: ROS & Cyclone DDS.pdfCyclone DDS Unleashed: ROS & Cyclone DDS.pdf
Cyclone DDS Unleashed: ROS & Cyclone DDS.pdfZettaScaleTechnology
 
Cyclone DDS Unleashed: Reasons for Choosing Cyclone DDS Shared Memory
Cyclone DDS Unleashed: Reasons for Choosing Cyclone DDS Shared MemoryCyclone DDS Unleashed: Reasons for Choosing Cyclone DDS Shared Memory
Cyclone DDS Unleashed: Reasons for Choosing Cyclone DDS Shared MemoryZettaScaleTechnology
 
Cyclone DDS Unleashed: Scalability in DDS and Dealing with Large Systems
Cyclone DDS Unleashed: Scalability in DDS and Dealing with Large SystemsCyclone DDS Unleashed: Scalability in DDS and Dealing with Large Systems
Cyclone DDS Unleashed: Scalability in DDS and Dealing with Large SystemsZettaScaleTechnology
 
Cyclone DDS Unleashed: The Origins
Cyclone DDS Unleashed: The OriginsCyclone DDS Unleashed: The Origins
Cyclone DDS Unleashed: The OriginsZettaScaleTechnology
 
"Taming the Dragon": Data Flow Programming with Zenoh-Flow
"Taming the Dragon": Data Flow Programming with Zenoh-Flow"Taming the Dragon": Data Flow Programming with Zenoh-Flow
"Taming the Dragon": Data Flow Programming with Zenoh-FlowZettaScaleTechnology
 
"Taming the Dragon": ROS2 Robot-to-Anything with Zenoh
"Taming the Dragon": ROS2 Robot-to-Anything with Zenoh"Taming the Dragon": ROS2 Robot-to-Anything with Zenoh
"Taming the Dragon": ROS2 Robot-to-Anything with ZenohZettaScaleTechnology
 
"Taming the Dragon": Get Started with Zenoh
"Taming the Dragon": Get Started with Zenoh"Taming the Dragon": Get Started with Zenoh
"Taming the Dragon": Get Started with ZenohZettaScaleTechnology
 

More from ZettaScaleTechnology (7)

Cyclone DDS Unleashed: ROS & Cyclone DDS.pdf
Cyclone DDS Unleashed: ROS & Cyclone DDS.pdfCyclone DDS Unleashed: ROS & Cyclone DDS.pdf
Cyclone DDS Unleashed: ROS & Cyclone DDS.pdf
 
Cyclone DDS Unleashed: Reasons for Choosing Cyclone DDS Shared Memory
Cyclone DDS Unleashed: Reasons for Choosing Cyclone DDS Shared MemoryCyclone DDS Unleashed: Reasons for Choosing Cyclone DDS Shared Memory
Cyclone DDS Unleashed: Reasons for Choosing Cyclone DDS Shared Memory
 
Cyclone DDS Unleashed: Scalability in DDS and Dealing with Large Systems
Cyclone DDS Unleashed: Scalability in DDS and Dealing with Large SystemsCyclone DDS Unleashed: Scalability in DDS and Dealing with Large Systems
Cyclone DDS Unleashed: Scalability in DDS and Dealing with Large Systems
 
Cyclone DDS Unleashed: The Origins
Cyclone DDS Unleashed: The OriginsCyclone DDS Unleashed: The Origins
Cyclone DDS Unleashed: The Origins
 
"Taming the Dragon": Data Flow Programming with Zenoh-Flow
"Taming the Dragon": Data Flow Programming with Zenoh-Flow"Taming the Dragon": Data Flow Programming with Zenoh-Flow
"Taming the Dragon": Data Flow Programming with Zenoh-Flow
 
"Taming the Dragon": ROS2 Robot-to-Anything with Zenoh
"Taming the Dragon": ROS2 Robot-to-Anything with Zenoh"Taming the Dragon": ROS2 Robot-to-Anything with Zenoh
"Taming the Dragon": ROS2 Robot-to-Anything with Zenoh
 
"Taming the Dragon": Get Started with Zenoh
"Taming the Dragon": Get Started with Zenoh"Taming the Dragon": Get Started with Zenoh
"Taming the Dragon": Get Started with Zenoh
 

Recently uploaded

Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 

Recently uploaded (20)

Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 

"Taming the Dragon": Zenoh's Genesis

  • 1. Taming the Dragon — Ep. 1 Zenoh Genesis CEO/CTO angelo@zettascale.tech Angelo Corsaro, PhD
  • 3. Six Episodes Nov 22nd — Zenoh Genesis Nov 29th — Zenoh: Getting Started Dec 6th — ROS/ROS2 Robot-to-Anything with Zenoh Dec 13th — Zenoh on Microcontrollers and Low Power Networks Dec 20th — Integrating DataBases and Messaging Protocols with Zenoh Jan 6th — Data Flow Programming with Zenoh-Flow All episodes run live on the given day at 10.00 CET and 18.00 CET to facilitate participation from around the globe!
  • 5. Mission Bring to every connected human and machine the unconstrained freedom to communicate, compute and store — anywhere, at any scale, e ffi ciently and securely
  • 6. Values Zettlers embrace the Seven Knightly Virtues of Courage, Justice, Mercy, Generosity, Faith, Nobility and Hope.
  • 7. The Team Management team with 10+ years of experience in running SW companies / BUs Strong thought and technological leadership Over 50% of the Engineers hold a PhD We are ~50 shiny Zettlers and growing quickly
  • 8. World Talents Several of our key technical sta ff s are well recognised world experts DDS was literally born in our team — Cyclone DDS is our brand new DDS implementation We are the inventor of Zenoh — the most powerful and e ffi cient protocol yet!
  • 11. IoT & IIoT We were involved in building some of the very fi rst IoT and IIoT systems In 2008 we were involved with the Nice’s Connected Boulevards, one of the world fi rst Smart Cities In 2014 we part for the core team that build the Fog Platform for Barcelona
  • 12. It was Laborious… Building these systems was laborious We had to stitch several technologies together already to make data fl ow end-to-end We had to stitch a few more to deal with data storage, etc.
  • 13. MQTT MQTT, was popularised as the protocol for IoT, yet it supports only client/broker architecture Requires TCP/IP, thus making it inconvenient for constrained networks The choice of topic-names has an impact on bandwidth usage Push Mode Only MQTT Broker Pub Pub Pub Sub Sub Sub Sub Sub Pub Pub Sub Sub
  • 14. OMG DDS Designed to work on a wired- network with low message loss Does not work o ff the shelf over the Internet Hard to scale on at Internet Scale without breaking its semantics Steep Learning Curve Push Mode Only DDS Global Data Space ... Data Writer Data Writer Data Writer Data Reader Data Reader Data Reader Data Reader Data Writer TopicA QoS TopicB QoS TopicC QoS TopicD QoS
  • 15. Kafka Designed for the Data-Centre “Centralised” Architecture Supports only Pull Mode
  • 16. Chaos The situation was extremely messy, yet it seamed that just a few of us where bothered by it Everyone was pushing for the technology they had adopted or were selling and ignoring the challenges… We couldn’t!
  • 17. A New Beginning We decided to take up the challenge to design a new protocol that could work in the Cloud-to-Device continuum We set us-up for the additional challenge to unify data in motion and data at rest and as a consequence bring location transparency to data at rest
  • 18. Zenoh
  • 19. Dragons teach us that if we want to climb high we have to do it against the wind. Pub/Sub/Query protocol that Uni fi es data in motion, data at rest and computations from embedded microcontrollers up the data centre Provides location-transparent abstractions for high performance pub/ sub and distributed queries across heterogeneous systems Provides universal abstractions for cloud-to-device data- fl ow programming
  • 20. • Pub / Sub (push) Peer put(room/1/temp, 19) Peer declare_subscriber (room/1/temp) Pub / Sub... but not only!
  • 21. Peer declare_subscriber (**/temp).mode(Pull) • Pub / Sub (push) Peer put(room/1/temp, 19) Peer declare_subscriber (room/1/temp) pull() • Pub / Sub (pull) Pub / Sub... but not only!
  • 22. Peer declare_subscriber (**/temp).mode(Pull) Peer get(room/**/hum) Peer put(room/2/hum, 42) (room/**) • Pub / Sub (push) Peer put(room/1/temp, 19) Peer declare_subscriber (room/1/temp) pull() • Pub / Sub (pull) • Pub / Store / Get Pub / Sub... but not only!
  • 23. Peer declare_subscriber (**/temp).mode(Pull) Peer declare_queryable (elec_consumption) Peer get(elec_consumption) Peer get(room/**/hum) Peer put(room/2/hum, 42) (room/**) • Pub / Sub (push) Peer put(room/1/temp, 19) Peer declare_subscriber (room/1/temp) pull() • Pub / Sub (pull) • Get / Reply • Pub / Store / Get Pub / Sub... but not only!
  • 25. Any topology Peer-to-peer Clique and mesh topologies Mesh Peer Peer Peer Peer Peer Clique Peer Peer Peer Peer
  • 26. Any topology Peer-to-peer Clique and mesh topologies Brokered Client Client Brokered Clients communicate through a router or a peer Mesh Peer Peer Peer Peer Peer Router Client Client Client Clique Peer Peer Peer Peer
  • 27. Any topology Peer-to-peer Clique and mesh topologies Brokered Routed Client Client Routed Routers forward data to and from peers and clients Brokered Clients communicate through a router or a peer Mesh Peer Peer Peer Peer Peer Router Client Client Client Client Router Router Client Clique Peer Peer Peer Peer
  • 28. Router Router Any topology Peer-to-peer Clique and mesh topologies Brokered Routed Router Router Router Client Client Routed Routers forward data to and from peers and clients Brokered Clients communicate through a router or a peer Mesh Peer Peer Peer Peer Peer Router Client Client Client Client Router Router Client Clique Peer Peer Peer Peer
  • 29. Runs Everywhere Written in Rust for security, safety and performance Native libraries and API bindings for many programming languages, e.g., Rust, C/C++, Python, REST, C# Kotlin Supports network technologies from transport layer down-to the data link Available on embedded and extremely constrained devices and networks — 5 bytes minimal overhead Data Link Network Transport Physical
  • 30. Why Rust? 70% of security vulnerability are due to memory safety issues Rust is memory and concurrency safe, high performance, productive and has a great ecosystem
  • 31. 24 Zenoh on Your Favourite MCU
  • 32. Abstractions Resource. A named data, in other terms a (key, value) (e.g. home/kitchen/sensor/temp, 21.5 home/kitchen/sensor/hum, 0.67) (e.g. home/*/sensor/air?co2>12[humidity]) Selector. An expression identifying a set of resources (e.g. home/kitchen/sensor/* home/**/temp Key expression. An expression identifying a set of keys
  • 33. Abstractions Publisher. A spring of values for a key expression Subscriber. A sink of values for a key expression Queryable. A well of values for a key expression (e.g. home/kitchen/sensor/temp home/kitchen/sensor/* ) (e.g. home/kitchen/sensor/temp home/kitchen/sensor/*) (e.g. home/**)
  • 34. Zenoh’s Abstractions Universality Zenoh’s abstraction are universal since they allow to express the key patterns in distributed computing, namely: Publish/Subscribe. Trivially supported by Zenoh’s Publisher and Subscriber Remote Computation. A Queryable represents a generalised computation, since it can transparently deal with replication and partitioning Storage. Represented by the combination of a Queryable and a Subscriber Additionally all these primitives enjoy location transparency by the virtue of being data-centric.
  • 40. Primitives open/close — Open/Close a zenoh session. declare_subscriber — Declares a subscriber with a user provided call- back that will be triggered when data is available. declare_publisher — Declares a publisher and optimise the communication stack for repetitive publications. Notice that Zenoh does not require a publisher in order to perform publications, this is just an optimisation. declare_queryable — Declares a queryable with a user provided call- back that will be triggered whenever a query needs to be answered.
  • 41. Primitives put — puts a value for a key expression. pull — Pulls data for a pull subscriber. get — Issues a distributed query and returns a stream of results. The query target, coverage and consolidation depends on policies.
  • 42. Lorem ipsum dolor sit amet Easy to Use
  • 44. Zenoh vs. MQTT & Kafka Zenoh can deliver ~60Gbps which is 15x higher throughput than Kafka and up to 32x than MQTT for 8Kbyte payloads Zenoh delivers over 60x or higher throughput than MQTT for payload larger than 32Kbytes Zenoh’s latency 10usec compared to 25usec for MQTT and 75usec for Kafka
  • 45. Zenoh vs DDS Discovery Open Robotics performed a comparative evaluation of Zenoh and DDS (full report) The results showed how much more e ffi cient zenoh discovery is compared to DDS 1 8 www.openrobotics.org www.openrobotics.org Some interesting results Discovery traffic versus application traffic Some interesting results Multicast traffic versus unicast and TCP traffic (Multicast is a great way to bring down a poorly-configured network)
  • 46. DDS Kafka MQTT Zenoh Pub/Sub (Push) ✔ 𐄂 ✔ ✔ Pub/Sub (Pull) 𐄂 ✔ 𐄂 ✔ Distributed Query 𐄂𐄂𐄂 ✔ High Performance ✔ 𐄂𐄂 ✔ Constrained HW 𐄂𐄂 ✔ ✔ Constrained Networks 𐄂𐄂𐄂 ✔ Internet Scale Deployment 𐄂 ✔ ✔ ✔ Standard Based ✔ 𐄂 ✔ 𐄂 QoS ✔ 𐄂 ✔ ✔ Peer2Peer ✔ 𐄂𐄂 ✔ Brokered 𐄂 ✔ ✔ ✔ Routed 𐄂𐄂𐄂 ✔ Feature Matrix
  • 48. It's very important to inspire the next generation. Zenoh is adopted on high visibility projects in robotics and autonomous vehicles for on device and V2X/R2X Next-Gen Devices built on Zenoh
  • 49.
  • 50.
  • 52. Strong Endorsement #1 OpenRobotics openly taking a position on Zenoh after performing a comparative evaluation against DDS OpenRobotics calling for contributions/fundings to have Zenoh natively supported in ROS2 as an alternative of DDS by June 2023
  • 53. Strong Endorsement #2 Zenoh selected by the ITU-T: FGAI4AD-01 Automated driving safety data protocol – Speci fi cation At the result of a 2 years work-group evaluating all available technologies for Intelligence Transport Systems (ITS) communication and having discarded DDS and MQTT among others I n t e r n a t i o n a l T e l e c o m m u n i c a t i o n U n i o n ITU-T Technical Report TELECOMMUNICATION STANDARDIZATION SECTOR OF ITU (29 September 2022) Focus Group on AI for autonomous and assisted driving (FG-AI4AD) FGAI4AD-01 Automated driving safety data protocol – Specification
  • 54. Zenoh’s Key Highlights Most wire/power/memory ef fi cient protocol in the market to provide connectivity to extremely constrained targets Supports push and pull pub/sub along with distributed queries Resource keys are represented as integers on the wire, these integer are local to a session => good for wire ef fi ciency Supports for peer-to-peer and routed communication. Support for zero-copy. Ordered reliable data delivery and fragmentation. Minimal wire overhead for user data is 5 bytes Data Link Network Transport Physical
  • 55. Concluding Remarks Zenoh has been designed to overcome the limitations of existing protocols and provide with a uni fi ed abstraction from the data- centre to the micro-controller for dealing with data in motion and data at rest It is written in Rust for security and performance It has a vibrant and quickly growing community Its has impressive performance
  • 56. Concluding Remarks Zenoh has been designed to overcome the limitations of existing protocols and provide with a uni fi ed abstraction from the data- centre to the micro-controller for dealing with data in motion and data at rest It is written in Rust for security and performance It has a vibrant and quickly growing community Its has impressive performance
  • 58. Patience, persistence and perspiration make an unbeatable combination for success. Thank You