SlideShare uma empresa Scribd logo
1 de 52
Baixar para ler offline
Advanced Technology Office
28 rue Jean Rostand
91400, Orsay
France
Angelo	Corsaro,	PhD
Chief	Technology	Officer	
ADLINK	Tech.	Inc.	
angelo.corsaro@adlinktech.com
AT()
Cyclone
Sharing Data in the IoT Age
DDS
Prologue
Data is the Currency of IoT
The value of IoT systems is
proportional to their ability to
ubiquitously and timely access data
and use it to derive relevant insights
As reported in the Eclipse IoT
Developer Survey Data collection
has grown to become the second
major concern with an year on year
increase of 50%
Data Sharing in IoT
Data should flow where needed transparently
and independently from the location its source
so to allow for analytics to be deployed/
migrate where it makes the most sense, i.e.
edge, cloud, etc.
Location Transparency
Data Sharing in IoT
Peer-to-Peer and brokered architectures for
data sharing are essential to address the edge
and scale-out
Peer-to-Peer and Brokered
Data Sharing in IoT
Temporal decoupling is an essential property to
build system that scale, thus data production
and consumption should be decoupled in time.
Additionally, historical data needs to be
available for query and non-real-time analytics.
Durability
Data Sharing in IoT
Data-Level security should be provided to
simplify the deployment of secure IoT
systems, while not impacting they scalability
and performance requirements
Security
Data Sharing in IoT
Data sharing standard are a pre-prerequisite
for IoT.
Without standards there is not interoperability,
without interoperability there is not IoT
Interoperability
Cyclone DDS
Cyclone DDS is a standard-based
technology for ubiquitous, interoperable,
secure, platform independent, and real-
time data sharing across network
connected devices
Use Cases
CopyrightPrismTech,2015
DDS is used to integrate and
normalise data sharing
among the various elements
of a smart grid at scale
Duke’s Energy COW
showed how only with DDS
it was possible to distribute
the phase alignment signal
at scale with the required
20ms periodicity
Smart Grid
CopyrightPrismTech,2015
DDS leveraged to
virtualise I/O and
provide better
decoupling between I/
O, Control and
Management functions
of the system
Smart Green
Houses
CopyrightPrismTech,2015
The NASA Kennedy Space
Centre uses DDS to collect
the Shuttle Launch System
Telemetry.
DDS streams over 400.000
Msgs/sec
In comparison, world-wide,
Twitter deals with less than
7000 msgs/sec
NASA Launch
Systems
CopyrightPrismTech,2015
DDS is used to share
Flight Data within and
across Air Traffic Control
Centres.
These applications have
extremely high
dependability constraints.
Air Traffic
Control
CopyrightPrismTech,2015
DDS is used in Smart
Factories to provide
horizontal and
vertical data
integration across the
traditional SCADA
layers.
Smart
Factory
CopyrightPrismTech,2015
DDS used to control
the 100.000 mirrors
that make up ELT’s
optics.
These mirrors are
adjusted 100 times per
second
Extremely Large
Telescope (ELT)
CopyrightPrismTech,2015
DDS is used inside
several medical
devices to share data
between the various
stages of data
acquisition, processing
and visualisation
Medical
Devices
CopyrightPrismTech,2015
DDS is heavily used
for data sharing in
Robotics and is today
at the heart of the
Robot Operating
System (ROS)
Robotics
CopyrightPrismTech,2015
Why are these
applications using DDS?
CopyrightPrismTech,2015
DDS PROVIDES AN EXTREMELY HIGH
LEVEL AND POWERFUL ABSTRACTIONS
ALONG WITH A ROCK SOLID
INFRASTRUCTURE TO BUILD HIGHLY
MODULAR AND DISTRIBUTED SYSTEMS
CopyrightPrismTech,2015
dds makes it much easier to solve some very
hard distributed system problems, such as
fault-tolerance, scalability and
asymmetry
CopyrightPrismTech,2015
DDS is like a universal glue that allows to
seal together highly heterogeneous
environments while maintaining a single,
elegant and efficient abstraction
Key Ideas
AT()
Abstraction
DDS applications
cooperate by
autonomously and
asynchronously
reading and writing
data on a Data Space
that provides spatial and
temporal decoupling 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
AT()
Topic
DDS uses Topics to capture
the properties of data
A DDS Topic is domain-wide
information’s class Topic
defined by means of a <name,
type, qos> tuple
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
Type
Name
QoS
AT()
QoS
DDS provides a rich set
of QoS policies to
express temporal and
availability
constraints of data
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
AT()
Dynamic Discovery
DDS has built-in
dynamic discovery
isolates applications
from network
topology and
connectivity details
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
AT()
Decentralised Data-Space
DDS data space is
decentralised.
Thus it has no
single point of
failure or
bottleneck
Data
Writer
Data
Writer
Data
Writer
Data
Reader
Data
Reader
Data
Reader
Data
Writer
TopicA
QoS
TopicB
QoS
TopicC
QoS
TopicD
QoS
TopicD
QoS
TopicD
QoS
TopicA
QoS
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
AT()
Adaptive Connectivity
Connectivity is
dynamically adapted to
chose the most effective
way of sharing data
Data
Writer
Data
Writer
Data
Writer
Data
Reader
Data
Reader
Data
Reader
Data
Writer
TopicA
QoS
TopicB
QoS
TopicC
QoS
TopicD
QoS
TopicD
QoS
TopicD
QoS
TopicA
QoS
The	communication	between	
the	DataWriter	and	matching	
DataReaders	can	be	peer-to-
peer	exploiting	UDP/IP	
(Unicast	and	Multicast)or	
TCP/IP
The	communication	between	
the	DataWriter	and	matching	
DataReaders	can	be	
“brokered”	but	still	
exploiting	UDP/IP	(Unicast	
and	Multicast)or	TCP/IP
AT()
Platform Independent
DDS implementation are
available for an incredible
numbers of platforms,
including enterprise,
desktop, embedded,
real-time, mobile, and
web
AT()
Polyglot
DDS applications can be
written in your favourite
programming language.
Interoperability across
languages is taken care
by DDS
Code Please…
Writing Data in Python
import cdds
import time



if __name__ == '__main__':

topic = dds.Topic("SmartMeter", "Meter")

dw = dds.Writer(topic)



while True:

m = readMeter()

dw.write(m)

time.sleep(0.1)
					enum	UtilityKind	{	
	 				ELECTRICITY,	
	 				GAS,	
	 				WATER	
						};	
							
						struct	Meter	{	
	 				string	sn;	
	 				UtilityKind	utility;	
	 				float	reading;	
	 				float	error;	
						};													
						#pragma	keylist	Meter	sn
Reading Data in Python 					enum	UtilityKind	{	
	 				ELECTRICITY,	
	 				GAS,	
	 				WATER	
						};	
							
						struct	Meter	{	
	 				string	sn;	
	 				UtilityKind	utility;	
	 				float	reading;	
	 				float	error;	
						};													
						#pragma	keylist	Meter	sn	
import cdds

import sys



def readData(dr): 

samples = dds.range(dr.read())

for s in samples:

sys.stdout.write(str(s.getData()))



if __name__ == '__main__':

t = dds.Topic("SmartMeter", "Meter")

dr = dds.Reader(t)

dr.onDataAvailable = readData
Writing Data in C++
#include <dds.hpp>
int main(int, char**) {
DomainParticipant dp(0);
Topic<Meter> topic(“SmartMeter”);
Publisher pub(dp);
DataWriter<Meter> dw(pub, topic);
while (!done) {
auto value = readMeter()
dw.write(value);
std::this_thread::sleep_for(SAMPLING_PERIOD);
}
return 0;
}
					enum	UtilityKind	{	
	 				ELECTRICITY,	
	 				GAS,	
	 				WATER	
						};	
							
						struct	Meter	{	
	 				string	sn;	
	 				UtilityKind	utility;	
	 				float	reading;	
	 				float	error;	
						};													
						#pragma	keylist	Meter	sn
Reading Data in C++
#include <dds.hpp>
int main(int, char**) {
DomainParticipant dp(0);
Topic<Meter> topic(”SmartMeter”);
Subscriber sub(dp);
DataReader<Meter> dr(dp, topic);
LambdaDataReaderListener<DataReader<Meter>> lst;
lst.data_available = [](DataReader<Meter>& dr) {
auto samples = data.read();
std::for_each(samples.begin(), samples.end(), [](Sample<Meter>& sample) {
std::cout << sample.data() << std::endl;
}
}
dr.listener(lst);
// Print incoming data up to when the user does a Ctrl-C
std::this_thread::join();
return 0;
}
					enum	UtilityKind	{	
	 				ELECTRICITY,	
	 				GAS,	
	 				WATER	
						};	
							
						struct	Meter	{	
	 				string	sn;	
	 				UtilityKind	utility;	
	 				float	reading;	
	 				float	error;	
						};													
						#pragma	keylist	Meter	sn
Writing Data in Scala 					enum	UtilityKind	{	
	 				ELECTRICITY,	
	 				GAS,	
	 				WATER	
						};	
							
						struct	Meter	{	
	 				string	sn;	
	 				UtilityKind	utility;	
	 				float	reading;	
	 				float	error;	
						};													
						#pragma	keylist	Meter	sn	
import dds._

import dds.prelude._

import dds.config.DefaultEntities._

object SmartMeter {



def main(args: Array[String]): Unit = {

val topic = Topic[Meter](“SmartMeter”)

val dw = DataWriter[Meter](topic)
while (!done) {
val meter = readMeter()

dw.write(meter)
Thread.sleep(SAMPLING_PERIOD)
}

}

}
Reading Data in Scala 					enum	UtilityKind	{	
	 				ELECTRICITY,	
	 				GAS,	
	 				WATER	
						};	
							
						struct	Meter	{	
	 				string	sn;	
	 				UtilityKind	utility;	
	 				float	reading;	
	 				float	error;	
						};													
						#pragma	keylist	Meter	sn	
import dds._

import dds.prelude._

import dds.config.DefaultEntities._

object SmartMeterLog {

def main(args: Array[String]): Unit = {

val topic = Topic[Meter](“SmartMeter”)

val dr = DataReader[Meter](topic)

dr listen {

case DataAvailable(_) => dr.read.foreach(println)

}

}

}
Roadmap
AT()
Making it Simpler
IDL-less Topic Definition.
This will reduce the need for newcomers to learn about IDL and will reduce the
steps required to get started.
Pluggable Serialisation
Extend the API to allow the use of user-specified serialisers/deserialisers.
First Class State and Event.
Introduce first class concepts for State and Events so that user can avoid
understanding the various QoS.
DDS Browser.
Simple tool to list discovered participants, readers, writers and matches. This will be
quite useful for visualising and debugging DDS applications.
AT()
Networking
TSN Support.
TSN is very important for upcoming Industrial applications and we want
to have this in Cyclone ASAP. Thus thus will be made available in 2018.
Raw Ethernet Support.
The ability to run on Raw-Ethernet is useful for (1) performance and (2)
those cases in which DDS is used to provision the IP network.
ROS2
Replace OpenSplice with Cyclone in ROS2 and try to get eventually
Cyclone as the default implementation.
AT()
DDS Security
We are working on DDS Security for
Cyclone DDS.
This will provide protection against:
• Unauthorised Subscription
• Unauthorised Publication
• Tampering and Replay
• Unauthorised data access [See		DDS	Security	Specification	v1.0		p.9]
New Projects
Open Source Fog Stack
The fogOS unifies the compute,
storage and communication
fabric that spans across things,
edge and cloud infrastructure
It unifies administration,
management and monitoring
end-to-end
Designed to unify Fog and MEC
VM
C
UK C
BE UK
VM: Virtual Machine
C: Container
UK: Uni Kernel
BE: Binary Executable
uS: micro Service
uS
BE
UKUK
AT()
Architecture
fogOS is composed by:
NDN. At its lowest level, it leverages a Named Data
Network (NDN) infrastructure based on zenoh. DDS can
also be used as a transport — not necessarily an NDN
YAKS. A distributed key-value store that leverages the
NDN for scalability
Agent. The core logic of fogOS, it takes care of managing,
monitoring and orchestrating entities through plugins
Plugins. Plugins provide supports for atomic entities, OS,
networks, etc.
DDS | zenoh
YAKS
AgentPlugins
Network
Data Link
Physical
Transport
Call for Action
AT()
Action #1
DDS is still a niche
technology used
mostly in IIoT
applications
MESSAGING STANDARDS - TRENDS
62.61%
54.10%
34.95%
24.92%
22.49%
18.24%
12.77%
6.69%
5.78%
4.86%
4.26%
4.26%
1.52%
0%
10%
20%
30%
40%
50%
60%
70%
2016
2017
2018
Copyright (c) 2018, Eclipse Foundation, Inc. | Made available under a Creative Commons Attribution 4.0 International License (CC BY 4.0). 39
AT()
Action #1
We want to
collaborate with
Eclipse IoT
community to expand
the adoption of DDS
and have this be the
standard-de-facto for
applications that
require peer-to-peer
MESSAGING STANDARDS - TRENDS
62.61%
54.10%
34.95%
24.92%
22.49%
18.24%
12.77%
6.69%
5.78%
4.86%
4.26%
4.26%
1.52%
0%
10%
20%
30%
40%
50%
60%
70%
2016
2017
2018
Copyright (c) 2018, Eclipse Foundation, Inc. | Made available under a Creative Commons Attribution 4.0 International License (CC BY 4.0).
MESSAGING STANDARDS - TRENDS
62.61%
54.10%
34.95%
24.92%
22.49%
18.24%
12.77%
6.69%
5.78%
4.86%
4.26%
4.26%
1.52%
0%
10%
20%
30%
40%
50%
60%
70%
2016
2017
2018
Copyright (c) 2018, Eclipse Foundation, Inc. | Made available under a Creative Commons Attribution 4.0 International License (CC BY 4.0). 39
MESSAGING STANDARDS - TRENDS
62.61%
54.10%
34.95%
24.92%
22.49%
18.24%
12.77%
6.69%
5.78%
4.86%
4.26%
4.26%
1.52%
0%
10%
20%
30%
40%
50%
60%
70%
2016
2017
2018
Copyright (c) 2018, Eclipse Foundation, Inc. | Made available under a Creative Commons Attribution 4.0 International License (CC BY 4.0). 39
MESSAGING STANDARDS - TRENDS
62.61%
54.10%
34.95%
24.92%
22.49%
18.24%
12.77%
6.69%
5.78%
4.86%
4.26%
4.26%
1.52%
0%
10%
20%
30%
40%
50%
60%
70%
2016
2017
2018
Copyright (c) 2018, Eclipse Foundation, Inc. | Made available under a Creative Commons Attribution 4.0 International License (CC BY 4.0). 39
MESSAGING STANDARDS - TRENDS
62.61%
54.10%
34.95%
24.92%
22.49%
18.24%
12.77%
6.69%
5.78%
4.86%
4.26%
4.26%
1.52%
0%
10%
20%
30%
40%
50%
60%
70%
2016
2017
2018
Copyright (c) 2018, Eclipse Foundation, Inc. | Made available under a Creative Commons Attribution 4.0 International License (CC BY 4.0).
AT()
Action#2
Work with the Eclipse IoT
ecosystem to establish a
platform for fog computing
AT()
References
http://github.com/eclipse/cyclonedds
http://github.com/atolab/fog05
http://github.com/atolab/zhe

Mais conteúdo relacionado

Mais procurados

Getting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and ScalaGetting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and Scala
Angelo Corsaro
 

Mais procurados (20)

The DDS Tutorial - Part I
The DDS Tutorial - Part IThe DDS Tutorial - Part I
The DDS Tutorial - Part I
 
OpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part IIOpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part II
 
The DDS Tutorial Part II
The DDS Tutorial Part IIThe DDS Tutorial Part II
The DDS Tutorial Part II
 
The Data Distribution Service Tutorial
The Data Distribution Service TutorialThe Data Distribution Service Tutorial
The Data Distribution Service Tutorial
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution Service
 
Best Practices Using RTI Connext DDS
Best Practices Using RTI Connext DDSBest Practices Using RTI Connext DDS
Best Practices Using RTI Connext DDS
 
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time SystemsOMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
 
Micro XRCE-DDS: Bringing DDS into microcontrollers
Micro XRCE-DDS: Bringing DDS into microcontrollersMicro XRCE-DDS: Bringing DDS into microcontrollers
Micro XRCE-DDS: Bringing DDS into microcontrollers
 
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin MeetingDDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
 
Zenoh Tutorial
Zenoh TutorialZenoh Tutorial
Zenoh Tutorial
 
zenoh: The Edge Data Fabric
zenoh: The Edge Data Fabriczenoh: The Edge Data Fabric
zenoh: The Edge Data Fabric
 
Getting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and ScalaGetting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and Scala
 
Zenoh: The Genesis
Zenoh: The GenesisZenoh: The Genesis
Zenoh: The Genesis
 
zenoh: zero overhead pub/sub store/query compute
zenoh: zero overhead pub/sub store/query computezenoh: zero overhead pub/sub store/query compute
zenoh: zero overhead pub/sub store/query compute
 
Comparison of MQTT and DDS as M2M Protocols for the Internet of Things
Comparison of MQTT and DDS as M2M Protocols for the Internet of ThingsComparison of MQTT and DDS as M2M Protocols for the Internet of Things
Comparison of MQTT and DDS as M2M Protocols for the Internet of Things
 
DDS QoS Unleashed
DDS QoS UnleashedDDS QoS Unleashed
DDS QoS Unleashed
 
DDS Over Low Bandwidth Data Links
DDS Over Low Bandwidth Data LinksDDS Over Low Bandwidth Data Links
DDS Over Low Bandwidth Data Links
 
DDS Tutorial -- Part I
DDS Tutorial -- Part IDDS Tutorial -- Part I
DDS Tutorial -- Part I
 
The DDS Security Standard
The DDS Security StandardThe DDS Security Standard
The DDS Security Standard
 
OMG Data-Distribution Service (DDS) Tutorial - 2009
OMG Data-Distribution Service (DDS) Tutorial - 2009OMG Data-Distribution Service (DDS) Tutorial - 2009
OMG Data-Distribution Service (DDS) Tutorial - 2009
 

Semelhante a Cyclone DDS: Sharing Data in the IoT Age

Fog comuting
Fog comutingFog comuting
Fog comuting
TalhaMuhammad27
 
Building the Internet of Things
Building the Internet of ThingsBuilding the Internet of Things
Building the Internet of Things
Angelo Corsaro
 

Semelhante a Cyclone DDS: Sharing Data in the IoT Age (20)

Architecting IoT Systems with Vortex
Architecting IoT Systems with VortexArchitecting IoT Systems with Vortex
Architecting IoT Systems with Vortex
 
Smart, Secure and Efficient Data Sharing in IoT
Smart, Secure and Efficient Data Sharing in IoTSmart, Secure and Efficient Data Sharing in IoT
Smart, Secure and Efficient Data Sharing in IoT
 
Fog Computing with VORTEX
Fog Computing with VORTEXFog Computing with VORTEX
Fog Computing with VORTEX
 
DDS for Internet of Things (IoT)
DDS for Internet of Things (IoT)DDS for Internet of Things (IoT)
DDS for Internet of Things (IoT)
 
Breaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Breaking the Edge -- A Journey Through Cloud, Edge and Fog ComputingBreaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Breaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
 
Introduction to PrismTech's Vortex Intelligent Data Sharing Platform for the ...
Introduction to PrismTech's Vortex Intelligent Data Sharing Platform for the ...Introduction to PrismTech's Vortex Intelligent Data Sharing Platform for the ...
Introduction to PrismTech's Vortex Intelligent Data Sharing Platform for the ...
 
Vortex: The Intelligent Data Sharing Platform for the Internet of Things
Vortex: The Intelligent Data Sharing Platform for the Internet of ThingsVortex: The Intelligent Data Sharing Platform for the Internet of Things
Vortex: The Intelligent Data Sharing Platform for the Internet of Things
 
Fog comuting
Fog comutingFog comuting
Fog comuting
 
Building the Internet of Things
Building the Internet of ThingsBuilding the Internet of Things
Building the Internet of Things
 
Blueprint for the Industrial Internet: The Architecture
Blueprint for the Industrial Internet: The ArchitectureBlueprint for the Industrial Internet: The Architecture
Blueprint for the Industrial Internet: The Architecture
 
Edge Computing.pdf
Edge Computing.pdfEdge Computing.pdf
Edge Computing.pdf
 
The internet of things (beyond data management and analytics) jonathan cooper...
The internet of things (beyond data management and analytics) jonathan cooper...The internet of things (beyond data management and analytics) jonathan cooper...
The internet of things (beyond data management and analytics) jonathan cooper...
 
Understanding the Internet of Things Protocols
Understanding the Internet of Things ProtocolsUnderstanding the Internet of Things Protocols
Understanding the Internet of Things Protocols
 
Vortex Cloud Beyond Cloud Messaging
Vortex Cloud Beyond Cloud MessagingVortex Cloud Beyond Cloud Messaging
Vortex Cloud Beyond Cloud Messaging
 
MT85 Challenges at the Edge: Dell Edge Gateways
MT85 Challenges at the Edge: Dell Edge GatewaysMT85 Challenges at the Edge: Dell Edge Gateways
MT85 Challenges at the Edge: Dell Edge Gateways
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocol
 
8. 9590 1-pb
8. 9590 1-pb8. 9590 1-pb
8. 9590 1-pb
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocol
 
Phoenix Data Conference - Big Data Analytics for IoT 11/4/17
Phoenix Data Conference - Big Data Analytics for IoT 11/4/17Phoenix Data Conference - Big Data Analytics for IoT 11/4/17
Phoenix Data Conference - Big Data Analytics for IoT 11/4/17
 
Cloud computing vs edge computing
Cloud computing vs edge computingCloud computing vs edge computing
Cloud computing vs edge computing
 

Mais de Angelo Corsaro

Mais de Angelo Corsaro (19)

Data Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair MonetisationData Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
 
Eastern Sicily
Eastern SicilyEastern Sicily
Eastern Sicily
 
fog05: The Fog Computing Infrastructure
fog05: The Fog Computing Infrastructurefog05: The Fog Computing Infrastructure
fog05: The Fog Computing Infrastructure
 
fog05: The Fog Computing Platform
fog05: The Fog Computing Platformfog05: The Fog Computing Platform
fog05: The Fog Computing Platform
 
Programming in Scala - Lecture Four
Programming in Scala - Lecture FourProgramming in Scala - Lecture Four
Programming in Scala - Lecture Four
 
Programming in Scala - Lecture Three
Programming in Scala - Lecture ThreeProgramming in Scala - Lecture Three
Programming in Scala - Lecture Three
 
Programming in Scala - Lecture Two
Programming in Scala - Lecture TwoProgramming in Scala - Lecture Two
Programming in Scala - Lecture Two
 
Programming in Scala - Lecture One
Programming in Scala - Lecture OneProgramming in Scala - Lecture One
Programming in Scala - Lecture One
 
Data Sharing in Extremely Resource Constrained Envionrments
Data Sharing in Extremely Resource Constrained EnvionrmentsData Sharing in Extremely Resource Constrained Envionrments
Data Sharing in Extremely Resource Constrained Envionrments
 
RUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming RuminationsRUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming Ruminations
 
Vortex II -- The Industrial IoT Connectivity Standard
Vortex II -- The  Industrial IoT  Connectivity StandardVortex II -- The  Industrial IoT  Connectivity Standard
Vortex II -- The Industrial IoT Connectivity Standard
 
Fog Computing Defined
Fog Computing DefinedFog Computing Defined
Fog Computing Defined
 
DDS and OPC UA Explained
DDS and OPC UA ExplainedDDS and OPC UA Explained
DDS and OPC UA Explained
 
The Cloudy, Foggy and Misty Internet of Things -- Toward Fluid IoT Architect...
The Cloudy, Foggy and Misty Internet of Things --  Toward Fluid IoT Architect...The Cloudy, Foggy and Misty Internet of Things --  Toward Fluid IoT Architect...
The Cloudy, Foggy and Misty Internet of Things -- Toward Fluid IoT Architect...
 
Fluid IoT Architectures
Fluid IoT ArchitecturesFluid IoT Architectures
Fluid IoT Architectures
 
Building IoT Applications with Vortex and the Intel Edison Starter Kit
Building IoT Applications with Vortex and the Intel Edison Starter KitBuilding IoT Applications with Vortex and the Intel Edison Starter Kit
Building IoT Applications with Vortex and the Intel Edison Starter Kit
 
Microservices Architecture with Vortex — Part II
Microservices Architecture with Vortex — Part IIMicroservices Architecture with Vortex — Part II
Microservices Architecture with Vortex — Part II
 
Happy 2016!
Happy 2016!Happy 2016!
Happy 2016!
 
Vortex 2.0 -- The Industrial Internet of Things Platform
Vortex 2.0 -- The Industrial Internet of Things PlatformVortex 2.0 -- The Industrial Internet of Things Platform
Vortex 2.0 -- The Industrial Internet of Things Platform
 

Último

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Último (20)

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
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
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 

Cyclone DDS: Sharing Data in the IoT Age

  • 1. Advanced Technology Office 28 rue Jean Rostand 91400, Orsay France Angelo Corsaro, PhD Chief Technology Officer ADLINK Tech. Inc. angelo.corsaro@adlinktech.com AT() Cyclone Sharing Data in the IoT Age DDS
  • 3. Data is the Currency of IoT The value of IoT systems is proportional to their ability to ubiquitously and timely access data and use it to derive relevant insights As reported in the Eclipse IoT Developer Survey Data collection has grown to become the second major concern with an year on year increase of 50%
  • 4. Data Sharing in IoT Data should flow where needed transparently and independently from the location its source so to allow for analytics to be deployed/ migrate where it makes the most sense, i.e. edge, cloud, etc. Location Transparency
  • 5. Data Sharing in IoT Peer-to-Peer and brokered architectures for data sharing are essential to address the edge and scale-out Peer-to-Peer and Brokered
  • 6. Data Sharing in IoT Temporal decoupling is an essential property to build system that scale, thus data production and consumption should be decoupled in time. Additionally, historical data needs to be available for query and non-real-time analytics. Durability
  • 7. Data Sharing in IoT Data-Level security should be provided to simplify the deployment of secure IoT systems, while not impacting they scalability and performance requirements Security
  • 8. Data Sharing in IoT Data sharing standard are a pre-prerequisite for IoT. Without standards there is not interoperability, without interoperability there is not IoT Interoperability
  • 10. Cyclone DDS is a standard-based technology for ubiquitous, interoperable, secure, platform independent, and real- time data sharing across network connected devices
  • 12. CopyrightPrismTech,2015 DDS is used to integrate and normalise data sharing among the various elements of a smart grid at scale Duke’s Energy COW showed how only with DDS it was possible to distribute the phase alignment signal at scale with the required 20ms periodicity Smart Grid
  • 13. CopyrightPrismTech,2015 DDS leveraged to virtualise I/O and provide better decoupling between I/ O, Control and Management functions of the system Smart Green Houses
  • 14. CopyrightPrismTech,2015 The NASA Kennedy Space Centre uses DDS to collect the Shuttle Launch System Telemetry. DDS streams over 400.000 Msgs/sec In comparison, world-wide, Twitter deals with less than 7000 msgs/sec NASA Launch Systems
  • 15. CopyrightPrismTech,2015 DDS is used to share Flight Data within and across Air Traffic Control Centres. These applications have extremely high dependability constraints. Air Traffic Control
  • 16. CopyrightPrismTech,2015 DDS is used in Smart Factories to provide horizontal and vertical data integration across the traditional SCADA layers. Smart Factory
  • 17. CopyrightPrismTech,2015 DDS used to control the 100.000 mirrors that make up ELT’s optics. These mirrors are adjusted 100 times per second Extremely Large Telescope (ELT)
  • 18. CopyrightPrismTech,2015 DDS is used inside several medical devices to share data between the various stages of data acquisition, processing and visualisation Medical Devices
  • 19. CopyrightPrismTech,2015 DDS is heavily used for data sharing in Robotics and is today at the heart of the Robot Operating System (ROS) Robotics
  • 21. CopyrightPrismTech,2015 DDS PROVIDES AN EXTREMELY HIGH LEVEL AND POWERFUL ABSTRACTIONS ALONG WITH A ROCK SOLID INFRASTRUCTURE TO BUILD HIGHLY MODULAR AND DISTRIBUTED SYSTEMS
  • 22. CopyrightPrismTech,2015 dds makes it much easier to solve some very hard distributed system problems, such as fault-tolerance, scalability and asymmetry
  • 23. CopyrightPrismTech,2015 DDS is like a universal glue that allows to seal together highly heterogeneous environments while maintaining a single, elegant and efficient abstraction
  • 25. AT() Abstraction DDS applications cooperate by autonomously and asynchronously reading and writing data on a Data Space that provides spatial and temporal decoupling 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
  • 26. AT() Topic DDS uses Topics to capture the properties of data A DDS Topic is domain-wide information’s class Topic defined by means of a <name, type, qos> tuple 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 Type Name QoS
  • 27. AT() QoS DDS provides a rich set of QoS policies to express temporal and availability constraints of data 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
  • 28. AT() Dynamic Discovery DDS has built-in dynamic discovery isolates applications from network topology and connectivity details 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
  • 29. AT() Decentralised Data-Space DDS data space is decentralised. Thus it has no single point of failure or bottleneck Data Writer Data Writer Data Writer Data Reader Data Reader Data Reader Data Writer TopicA QoS TopicB QoS TopicC QoS TopicD QoS TopicD QoS TopicD QoS TopicA QoS 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
  • 30. AT() Adaptive Connectivity Connectivity is dynamically adapted to chose the most effective way of sharing data Data Writer Data Writer Data Writer Data Reader Data Reader Data Reader Data Writer TopicA QoS TopicB QoS TopicC QoS TopicD QoS TopicD QoS TopicD QoS TopicA QoS The communication between the DataWriter and matching DataReaders can be peer-to- peer exploiting UDP/IP (Unicast and Multicast)or TCP/IP The communication between the DataWriter and matching DataReaders can be “brokered” but still exploiting UDP/IP (Unicast and Multicast)or TCP/IP
  • 31. AT() Platform Independent DDS implementation are available for an incredible numbers of platforms, including enterprise, desktop, embedded, real-time, mobile, and web
  • 32. AT() Polyglot DDS applications can be written in your favourite programming language. Interoperability across languages is taken care by DDS
  • 34. Writing Data in Python import cdds import time
 
 if __name__ == '__main__':
 topic = dds.Topic("SmartMeter", "Meter")
 dw = dds.Writer(topic)
 
 while True:
 m = readMeter()
 dw.write(m)
 time.sleep(0.1) enum UtilityKind { ELECTRICITY, GAS, WATER }; struct Meter { string sn; UtilityKind utility; float reading; float error; }; #pragma keylist Meter sn
  • 35. Reading Data in Python enum UtilityKind { ELECTRICITY, GAS, WATER }; struct Meter { string sn; UtilityKind utility; float reading; float error; }; #pragma keylist Meter sn import cdds
 import sys
 
 def readData(dr): 
 samples = dds.range(dr.read())
 for s in samples:
 sys.stdout.write(str(s.getData()))
 
 if __name__ == '__main__':
 t = dds.Topic("SmartMeter", "Meter")
 dr = dds.Reader(t)
 dr.onDataAvailable = readData
  • 36. Writing Data in C++ #include <dds.hpp> int main(int, char**) { DomainParticipant dp(0); Topic<Meter> topic(“SmartMeter”); Publisher pub(dp); DataWriter<Meter> dw(pub, topic); while (!done) { auto value = readMeter() dw.write(value); std::this_thread::sleep_for(SAMPLING_PERIOD); } return 0; } enum UtilityKind { ELECTRICITY, GAS, WATER }; struct Meter { string sn; UtilityKind utility; float reading; float error; }; #pragma keylist Meter sn
  • 37. Reading Data in C++ #include <dds.hpp> int main(int, char**) { DomainParticipant dp(0); Topic<Meter> topic(”SmartMeter”); Subscriber sub(dp); DataReader<Meter> dr(dp, topic); LambdaDataReaderListener<DataReader<Meter>> lst; lst.data_available = [](DataReader<Meter>& dr) { auto samples = data.read(); std::for_each(samples.begin(), samples.end(), [](Sample<Meter>& sample) { std::cout << sample.data() << std::endl; } } dr.listener(lst); // Print incoming data up to when the user does a Ctrl-C std::this_thread::join(); return 0; } enum UtilityKind { ELECTRICITY, GAS, WATER }; struct Meter { string sn; UtilityKind utility; float reading; float error; }; #pragma keylist Meter sn
  • 38. Writing Data in Scala enum UtilityKind { ELECTRICITY, GAS, WATER }; struct Meter { string sn; UtilityKind utility; float reading; float error; }; #pragma keylist Meter sn import dds._
 import dds.prelude._
 import dds.config.DefaultEntities._
 object SmartMeter {
 
 def main(args: Array[String]): Unit = {
 val topic = Topic[Meter](“SmartMeter”)
 val dw = DataWriter[Meter](topic) while (!done) { val meter = readMeter()
 dw.write(meter) Thread.sleep(SAMPLING_PERIOD) }
 }
 }
  • 39. Reading Data in Scala enum UtilityKind { ELECTRICITY, GAS, WATER }; struct Meter { string sn; UtilityKind utility; float reading; float error; }; #pragma keylist Meter sn import dds._
 import dds.prelude._
 import dds.config.DefaultEntities._
 object SmartMeterLog {
 def main(args: Array[String]): Unit = {
 val topic = Topic[Meter](“SmartMeter”)
 val dr = DataReader[Meter](topic)
 dr listen {
 case DataAvailable(_) => dr.read.foreach(println)
 }
 }
 }
  • 41. AT() Making it Simpler IDL-less Topic Definition. This will reduce the need for newcomers to learn about IDL and will reduce the steps required to get started. Pluggable Serialisation Extend the API to allow the use of user-specified serialisers/deserialisers. First Class State and Event. Introduce first class concepts for State and Events so that user can avoid understanding the various QoS. DDS Browser. Simple tool to list discovered participants, readers, writers and matches. This will be quite useful for visualising and debugging DDS applications.
  • 42. AT() Networking TSN Support. TSN is very important for upcoming Industrial applications and we want to have this in Cyclone ASAP. Thus thus will be made available in 2018. Raw Ethernet Support. The ability to run on Raw-Ethernet is useful for (1) performance and (2) those cases in which DDS is used to provision the IP network. ROS2 Replace OpenSplice with Cyclone in ROS2 and try to get eventually Cyclone as the default implementation.
  • 43. AT() DDS Security We are working on DDS Security for Cyclone DDS. This will provide protection against: • Unauthorised Subscription • Unauthorised Publication • Tampering and Replay • Unauthorised data access [See DDS Security Specification v1.0 p.9]
  • 45.
  • 46. Open Source Fog Stack The fogOS unifies the compute, storage and communication fabric that spans across things, edge and cloud infrastructure It unifies administration, management and monitoring end-to-end Designed to unify Fog and MEC VM C UK C BE UK VM: Virtual Machine C: Container UK: Uni Kernel BE: Binary Executable uS: micro Service uS BE UKUK
  • 47. AT() Architecture fogOS is composed by: NDN. At its lowest level, it leverages a Named Data Network (NDN) infrastructure based on zenoh. DDS can also be used as a transport — not necessarily an NDN YAKS. A distributed key-value store that leverages the NDN for scalability Agent. The core logic of fogOS, it takes care of managing, monitoring and orchestrating entities through plugins Plugins. Plugins provide supports for atomic entities, OS, networks, etc. DDS | zenoh YAKS AgentPlugins Network Data Link Physical Transport
  • 49. AT() Action #1 DDS is still a niche technology used mostly in IIoT applications MESSAGING STANDARDS - TRENDS 62.61% 54.10% 34.95% 24.92% 22.49% 18.24% 12.77% 6.69% 5.78% 4.86% 4.26% 4.26% 1.52% 0% 10% 20% 30% 40% 50% 60% 70% 2016 2017 2018 Copyright (c) 2018, Eclipse Foundation, Inc. | Made available under a Creative Commons Attribution 4.0 International License (CC BY 4.0). 39
  • 50. AT() Action #1 We want to collaborate with Eclipse IoT community to expand the adoption of DDS and have this be the standard-de-facto for applications that require peer-to-peer MESSAGING STANDARDS - TRENDS 62.61% 54.10% 34.95% 24.92% 22.49% 18.24% 12.77% 6.69% 5.78% 4.86% 4.26% 4.26% 1.52% 0% 10% 20% 30% 40% 50% 60% 70% 2016 2017 2018 Copyright (c) 2018, Eclipse Foundation, Inc. | Made available under a Creative Commons Attribution 4.0 International License (CC BY 4.0). MESSAGING STANDARDS - TRENDS 62.61% 54.10% 34.95% 24.92% 22.49% 18.24% 12.77% 6.69% 5.78% 4.86% 4.26% 4.26% 1.52% 0% 10% 20% 30% 40% 50% 60% 70% 2016 2017 2018 Copyright (c) 2018, Eclipse Foundation, Inc. | Made available under a Creative Commons Attribution 4.0 International License (CC BY 4.0). 39 MESSAGING STANDARDS - TRENDS 62.61% 54.10% 34.95% 24.92% 22.49% 18.24% 12.77% 6.69% 5.78% 4.86% 4.26% 4.26% 1.52% 0% 10% 20% 30% 40% 50% 60% 70% 2016 2017 2018 Copyright (c) 2018, Eclipse Foundation, Inc. | Made available under a Creative Commons Attribution 4.0 International License (CC BY 4.0). 39 MESSAGING STANDARDS - TRENDS 62.61% 54.10% 34.95% 24.92% 22.49% 18.24% 12.77% 6.69% 5.78% 4.86% 4.26% 4.26% 1.52% 0% 10% 20% 30% 40% 50% 60% 70% 2016 2017 2018 Copyright (c) 2018, Eclipse Foundation, Inc. | Made available under a Creative Commons Attribution 4.0 International License (CC BY 4.0). 39 MESSAGING STANDARDS - TRENDS 62.61% 54.10% 34.95% 24.92% 22.49% 18.24% 12.77% 6.69% 5.78% 4.86% 4.26% 4.26% 1.52% 0% 10% 20% 30% 40% 50% 60% 70% 2016 2017 2018 Copyright (c) 2018, Eclipse Foundation, Inc. | Made available under a Creative Commons Attribution 4.0 International License (CC BY 4.0).
  • 51. AT() Action#2 Work with the Eclipse IoT ecosystem to establish a platform for fog computing