Welcome to the first webinar in the series of Cyclone DDS Unleashed.
In this session, our CEO and CTO, Angelo Corsaro, and our DDS Head of Technology, Erik Boasson, will share their expertise on how the DDS technology evolved to become the OMG standard we have today, the ZettaScale's approach to DDS and why during the ROSCon in Kyoto from 2022, we kept hearing from users that Cyclone DDS was their favourite OMG implementation.
If you have any questions and you want to reach out, you can send us an email at contact@zettascale.tech or join our Discord channel: https://discord.gg/6GwdBxntxt
You can read more about Cyclone DDS on our website: https://www.zettascale.tech/product/cyclone
Stay up to date with the latest news:
Twitter: https://twitter.com/zettascaletech
LinkedIn: https://www.linkedin.com/company/zettascaletech/
Website: https://www.zettascale.tech/
Newsletter: http://eepurl.com/igPw31
11. From JCP to
OMG
DDS was initially considered
for standardisation within
the JCP (Java Community
Process)
Due to a partial overlap
with Jini — any of you recall
that? — standardisation
ended up at the OMG
12. DDS Standard
Family
DDS is now a family of 14
standards
Not all of them have the
same relevance as we’ll
see…
13. Working @ OMG
Co-chaired the OMG DDS SIG
from 2003 to 2016
Worked hard to help making
good standards — it wasn’t
always easy/possible
Worked hard to ensure
portability / interoperability
— unfortunately this is not so
important to some vendors
14. Guardians
Over the years we have tried
to watch over the integrity
of DDS
We’ve not always
succeeded, and as a result
you need guidance when
considering the use of
available speci
fi
cations
15. The Key
Standards
These are the most important
standards
If vendors properly implement
the C++/Java standard you’ll
have portability
DDSI provides interoperability
for a few cases
17. Avoid These
RPC over DDS should be
avoided because it worsens
DDS’ discovery tra
ffi
c
Web-Enabled DDS leverages
obsolete technology
DDS-XRCE is complex and
ine
ffi
cient — far better
alternatives exists
19. New C++ API
We where the force behind the new
DDS C++ API
It took a pharaonic e
ff
ort to get it
standardised
We managed thanks to end-users
asking other vendors to support
SimD — the Open Source reference
implementation we had built!
Take Home Lesson — Don’t
underestimate the power of
Innovation and Open Source
20. Forefront of
DDS
Our team has always been innovating
and the forefront of DDS
We were the
fi
rst to show how to
route DDS tra
ffi
c across the internet
Take Home Lesson — To scale DDS
you need to break its end-to-end
semantics. Why not use on the WAN
a protocol than can scale w/o
contortionism
22. DDS and
Beyond
Before spinning-o
ff
our team was
operating as ADLINK’s Advanced
Technology O
ffi
ce (ATO)
There we had the luxury to start from
scratch and leverage our experience to:
- Build the best DDS yet
- Invent a new protocol that address
the cloud-to-microcontroller
continuum and easily expand DDS
systems to the wide-area and toward
the microcosm
23. Built to be the best and most
developer friendly DDS
implementation
A Pub/Sub/Query protocol unifying
data in motion, data at rest and
computations, that can span from
the data-centre to the micro-
controller
24. Working
Together as One
Zenoh routers can be used to
transparently route Cyclone DDS tra
ffi
c
Zenoh applications can transparently
interoperate with Cyclone DDS
applications anywhere on the network
Cyclone DDS applications transparently
leverage all Zenoh’s plugins for
storage, web, messaging protocols,
etc.
Router
Router Router
Router
Router
Client
Client
Zenoh
Peer
Peer
Peer
Peer
Peer
Router
Client Client Client
Client
Router
Router
DDS
Client
Peer Peer Peer Peer
Peer Peer Peer Peer
26. Most performing DDS
implementation on the market
Fastest growing DDS implementation
for ROS2 based Robots
Strong signals of adoptions in
proprietary Robotic Stacks from
several Unicorns
Growing momentum in Automotive
27. Di
ff
erentiation
OMG DDS standard compliance
limits several dimensions of
feature di
ff
erentiation. Thus our
approach is:
Welcoming and extremely
supporting community
Best developer experience, it
simply works!
Zero adoption barrier
Best integration with Zenoh
28. Open Source
For Real
Eclipse IoT Project
Open and transparent
governance
High standard release
project, which includes IP &
Patent checks
30. DDS introduction
Eventually consistent shared
data space
Structured using typed topics
with QoS, publishers and
subscribers
Targets low-latency and high-
throughput for maximally
decoupled processes
DDS’ Global Data Space
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
31. Eventual consistency
Data replication as a natural consequence
Primitives chosen for fail-stop tolerance and restarting
Expressive despite weak primitives
(e.g. Orzan, S.-M. (2001). Distributing requirements speci
fi
cations on
basic splice. Software Engineering [SEN]. CWI)
32. Data model
Careful modelling of application
data into topics
Mostly-independent development
of components
Relatively easy integration of these
components
Reuse of components in successive
iterations of system
DDS’ Global Data Space
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
Topic
T
y
p
e
Name
Q
o
S
33. Con
fi
gurability
Variety of QoS settings
- reliability, longevity of data
- controlling storage of data
- noti
fi
cations on loss of liveliness, not meeting data rates
- (odds and ends)
Can reduce to “ordinary” publish-subscribe messaging system
- e.g. ROS 2 chooses to use it this way
34. How to Get it
$ git clone
https://github.com/eclipse-
cyclonedds/cyclonedds.git
optionally:
$ git clone
https://github.com/eclipse-
cyclonedds/cyclonedds-cxx.git
37. Available Now
- DDS API in C, C++ and Python
- All QoS, but Transient and Persistent Durability, Presentation
- Support for X-Types
- Support for DDS Security
- Performance Benchmarking Tool
- CLI and GUI-based Monitoring Tool
43. Please,
Measure
The numbers you should trust are
those that you get in your
environment
The numbers that really matters are
those that you get with your
application, not those out of a
synthetic benchmark
If you use a vendor tool, make sure
you have access and carefully read
the sources
46. Don’t Trust.
Try it yourself
One of the advantages of using DDS
should be portability and
interoperability
Have you ever tried to port some
code?
You’ll learn a lot on vendors
commitment when trying to run the
same application across multiple
vendors
Cyclone is the reference, if you
fi
nd
a deviation
fi
le a PR ;-)
48. Interoperability
Works if you constrain your use of DDS
to a subset:
- No Transient or Persistent data
- No module Names, no “auto-
dispose”
- No vendor extensions (some
vendors make it hard to distinguish)
- (Except for some vendors where you
need some extensions to make it
work)
51. Working with
Dedication
We are working hard and
openly to make Cyclone
“The DDS implementation”
The goal is simple, our
dedication is wholehearted
It is our dream, followed by
action and held together by
dedication