SlideShare a Scribd company logo
1 of 62
Download to read offline
Angelo	
  Corsaro,	
  PhD	
  
Chief	
  Technology	
  Officer	
  
angelo.corsaro@prismtech.com
Reactive Data Centric
Architectures with DDS
CopyrightPrismTech,2015
CopyrightPrismTech,2015
responsive
CopyrightPrismTech,2015
resilient
responsive
CopyrightPrismTech,2015
scalable
resilient
responsive
CopyrightPrismTech,2015
scalable
resilient
responsive
secure
CopyrightPrismTech,2015
scalable
resilient
responsive
extensible
secure
Architectural Trends
Up to recently Reactive Systems were
mainstream only domains such as Industrial,
Military, Telco, Finance and Aerospace
Challenges imposed by the Internet of Things
and Big Data Applications an increasing
number of architects and developers is
recognising the importance of the techniques
and technologies used for building Reactive
Systems
being
reactive
The Importance Of
Reactive
manifesto
http://datacentricmanifesto.org
Responsive
Scalable
Event-Driven Resilient
The prevailing application-/service-centric
mindset by focusing on the control-flow as
opposed than the data-flow has lead to
design systems that are hard to extend,
scale and make fault-tolerant
An increasing number of architects has
realised that the remedy is to change the
main point of attention: Data is the centre
of the universe — applications are
ephemeral
being
data-centric
The Importance Of
The data-centric revolution puts
data at the centre of the system
Applications are optional visitors to
the data
data-centric
manifesto
http://datacentricmanifesto.org
Data-centric
Reactive
manifesto
Responsive
Scalable
Data-Centric Resilient
Data-centric
Reactive
manifesto
Data-Centric: data is what matters.
Application autonomously and
asynchronously transform data
Responsive: Timely react to stimuli
Resilient: Tolerate failures functionally
and ideally temporally
Scalable: Gracefully scale up and down
depending on load demands
The DDS Standard
Standard
Adoption
CopyrightPrismTech,2015
John Deere’s machinery uses DDS for internal communication as well as for vehicle-to-vehicle
coordination
Telemetry Data is constantly sent to a Cloud for preventive maintenance
In this use case VORTEX enables fog computing as well as cloud computing
John Deere Autonomous FarmingSmart farming
smart cities
Smart Lightbulbs
96Kbytes Memory
Connected Medical Devices
CopyrightPrismTech,2015
Smart grids and power generation
European air traffic control
DDS is the standard recommended by
Eurocontrol/Eurocae for Pan-European
flight data sharing
Reactive Data-Centric
Systems with DDS
Step 1:
Data Centricity in DDS
CopyrightPrismTech,2015
DDS provides a Distributed Data
Space abstraction where
applications can autonomously
and asynchronously read and write
data enjoying spatial and temporal
decoupling
Its built-in dynamic discovery
isolates applications from network
topology and connectivity details
DDS’ Data Space is completely
decentralised
High Level Abstraction
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
Conceptual Model
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
Conceptual Model Actual Implementation
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
The	
  communication	
  between	
  
the	
  DataWriter	
  and	
  matching	
  
DataReaders	
  can	
  be	
  peer-­‐to-­‐
peer	
  exploiting	
  UDP/IP	
  
(Unicast	
  and	
  Multicast)or	
  
TCP/IP
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	
  
“brokered”	
  but	
  still	
  
exploiting	
  UDP/IP	
  (Unicast	
  
and	
  Multicast)or	
  TCP/IP
CopyrightPrismTech,2015
DDS supports the definition of Data
Models.
These data models allow to
naturally represent physical and
virtual entities characterising the
application domain
DDS types are extensible and
evolvable, thus allowing incremental
updates and upgrades
Data Centricity
CopyrightPrismTech,2015
A Topic defines a domain-wide information’s
class
A Topic is defined by means of a (name, type,
qos) tuple, where
• name: identifies the topic within the
domain
• type: is the programming language type
associated with the topic. Types are
extensible and evolvable
• qos: is a collection of policies that express
the non-functional properties of this topic,
e.g. reliability, persistence, etc.
Topic
Topic
Type
Name
QoS
struct	
  TemperatureSensor	
  {	
  
	
  	
  	
  @key	
  
	
  	
  	
  long	
  sid;	
  
	
  	
  	
  float	
  temp;	
  
	
  	
  	
  float	
  hum;	
  
}	
  
	
  
CopyrightPrismTech,2015
DDS “knows” about
application data types
and uses this
information provide
type-safety and content-
based routing
Content Awareness
struct	
  TemperatureSensor	
  {	
  
	
  	
  	
  @key	
  
	
  	
  	
  long	
  sid;	
  
	
  	
  	
  float	
  temp;	
  
	
  	
  	
  float	
  hum;	
  
}	
  
	
  
sid temp hum
101 25.3 0.6
507 33.2 0.7
913 27,5 0.55
1307 26.2 0.67
“temp	
  >	
  25	
  OR	
  hum	
  >=	
  0.6”
sid temp hum
101 25.3 0.6
507 33.2 0.7
1307 26.2 0.67
Type
TempSensor
CopyrightPrismTech,2014
DDS provides a rich set of QoS-
Policies to control local as well as
end-to-end properties of data
sharing
Some QoS-Policies are matched
based on a Request vs. Offered
(RxO) Model
QoS Policies
HISTORY
LIFESPAN
DURABILITY
DEADLINE
LATENCY BUDGET
TRANSPORT PRIO
TIME-BASED FILTER
RESOURCE LIMITS
USER DATA
TOPIC DATA
GROUP DATA
OWENERSHIP
OWN. STRENGTH
LIVELINESS
ENTITY FACTORY
DW LIFECYCLE
DR LIFECYCLE
PRESENTATION
RELIABILITY
PARTITION
DEST. ORDER
RxO QoS Local QoS
CopyrightPrismTech,2015
For data to flow from a DataWriter (DW) to
one or many DataReader (DR) a few
conditions have to apply:
The DR and DW domain participants have
to be in the same domain
The partition expression of the DR’s
Subscriber and the DW’s Publisher should
match (in terms of regular expression
match)
The QoS Policies offered by the DW should
exceed or match those requested by the DR
Quality of Service
Domain
Participant
DURABILITY
OWENERSHIP
DEADLINE
LATENCY BUDGET
LIVELINESS
RELIABILITY
DEST. ORDER
Publisher
DataWriter
PARTITION
DataReader
Subscriber
Domain
Participant
offered
QoS
Topic
writes reads
Domain Id
joins joins
produces-in consumes-from
RxO QoS Policies
requested
QoS
CopyrightPrismTech,2015
Support for fine grained
access control
Support for Symmetric and
Asymmetric Authentication
Standard Authentication,
Access Control, Crypto, and
Logging plug-in API
Security
Arthur Dent
Arthur Dent
Ford Prerfect
Zaphod Beeblebrox
Marvin
Trillian
A(r,w), B(r)
A(r,w), B(r,w), X(r)
*(r,w)
*(r)
A(r,w), B(r,w), C(r,w)
Ford Prerfect
Zaphod Beeblebrox
Trillian
Marvin
A
B
A,B
X
*
*
A,B,C
Identity Access Rights
Sessions are authenticated
and communication is
encrypted
Only the Topic included as
part of the access rights are
visible and accessible
CopyrightPrismTech,2014
DDS is independent from the
- Programming language,
- Operating System
- HW architecture
Platform Independent
Your First DDS App!
CopyrightPrismTech,2014
Anatomy of a DDS Application
CopyrightPrismTech,2015
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	
  
CopyrightPrismTech,2015
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	
  
CopyrightPrismTech,2015
Writing Data in Python
import dds
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	
  
CopyrightPrismTech,2015
Reading Data in Python
import dds

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
	
  	
  	
  	
  	
  enum	
  UtilityKind	
  {	
  
	
   	
  	
  	
  	
  ELECTRICITY,	
  
	
   	
  	
  	
  	
  GAS,	
  
	
   	
  	
  	
  	
  WATER	
  
	
  	
  	
  	
  	
  	
  };	
  
	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  struct	
  Meter	
  {	
  
	
   	
  	
  	
  	
  string	
  sn;	
  
	
   	
  	
  	
  	
  UtilityKind	
  utility;	
  
	
   	
  	
  	
  	
  float	
  reading;	
  
	
   	
  	
  	
  	
  float	
  error;	
  
	
  	
  	
  	
  	
  	
  };	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
	
  	
  	
  	
  	
  	
  #pragma	
  keylist	
  Meter	
  sn	
  
Step 2:
Reactive Architectures with DDS
Stream
Processing
Stream Processing is the commonly
adopted architectural pattern for building
reactive systems
CopyrightPrismTech,2015
Stream Processing Systems are typically
modelled as collection of concurrent modules
communicating via typed data channels
Modules usually play one of the following roles:
- Sources: Injecting data into the System
- Filters/Actors: Performing some computation
over sources
- Sinks: Consuming the data produced by the
system
Stream Processing
Filter
Source
Filter
Filter
Stream Sink
Stream Processing with
DDS
CopyrightPrismTech,2015
A stream represents a potentially infinite sequence of data samples of a
given type T
As such, in DDS, a stream can be naturally represented with a Topic
Example:
- Topic<PressureType>
- Topic<MarketData>
Streams in DDS
Filter
Filter
Filter
Stream
CopyrightPrismTech,2015
Sources in DDS are mapped to
DataWriters for a given Topic
Sinks in DDS are mapped to
DataReaders for a given Topic
Source and Sinks in DDS
Filter
Source
Filter
Filter
Sink
CopyrightPrismTech,2015
Filters implement bit and pieces of the
application business logic
Each Filter has one or more input stream and
one or more output streams
Obviously, a Filter consumes data from an input
stream through a DDS data reader and pushed
data into an output stream through a DDS data
writer
Filters in DDS
Filter
Filter
Filter
DDS Architectural
Benefits
CopyrightPrismTech,2015
Stream Processing Architectures in general and DDS-based architecture in
particular promote loose coupling
Anonymous Communication => No Spatial Coupling
Non-Blocking and Asynchronous Interaction => No control or temporal
coupling
In DDS the only thing that matters is the kind of information a module is
interested in consuming or producing — who is producing the data or when the
data has been produced is not relevant
Loose Coupling
CopyrightPrismTech,2015
Location Transparency is an important
architectural property as it makes it possible
to completely decouple the logical
decomposition of a system from its actual
physical deployment
DDS Automatic Discovery brings location
transparency to the next level by enabling
systems that are zero-conf, self-forming and
self-healing
Location Transparency
Module
Module
Module
Module
Module
Module
Physical
Deployment Unit
Logical
Deployment Unit
CopyrightPrismTech,2015
DDS provides full control over temporal
decoupling by means of its Durability Policy
As such the data produced by a Source can
be:
- Volatile: available for those that are
around at the time at production
- Transient: available as far as the
system/source is running
- Durable: available forever
Temporal Decoupling
tSource
t
t
Sink
Sink
Volatile Durability
tSource
t
t
Sink
Sink
Transient Durability
CopyrightPrismTech,2015
DDS provides mechanism for detecting
traditional faults as well as performance failures
The Fault-Detection mechanism is controlled by
means of the DDS Liveliness policy
Performance Failures can be detected using the
Deadline Policy which allows to receive
notification when data is not received within the
expected delays
Failure Detection
Source
tSink
Fault Notification
TD
Source
t
Sink
Performance Failure Notification
P
t
P P
CopyrightPrismTech,2015
DDS provides a built-in fault-masking
mechanism that allow to replicate
Sources and transparently switch over
when a failure occurs
At any point in time the “active” source
is the one with the highest strength.
Where the strength is an integer
parameter controller by the user
Fault-Masking
Source
tSink
Source t
CopyrightPrismTech,2015
DDS provides a built-in fault-masking
mechanism that allow to replicate
Sources and transparently switch over
when a failure occurs
At any point in time the “active” source
is the one with the highest strength.
Where the strength is an integer
parameter controller by the user
Fault-Masking
Source
tSink
Source t
Putting All Together
CopyrightPrismTech,2015
CopyrightPrismTech,2015
CopyrightPrismTech,2015
DDS is a standard technology for ubiquitous,
interoperable, secure, platform independent,
and real-time data sharing across network
connected devices
DDS provides a the ideal platform for
architecting and building Data-Centric
Reactive Systems
DDS
CopyrightPrismTech,2015
Reactive Data Architectures with DDS

More Related Content

What's hot

Deep Dive into the OPC UA / DDS Gateway Specification
Deep Dive into the OPC UA / DDS Gateway SpecificationDeep Dive into the OPC UA / DDS Gateway Specification
Deep Dive into the OPC UA / DDS Gateway SpecificationGerardo Pardo-Castellote
 
Distributed Algorithms with DDS
Distributed Algorithms with DDSDistributed Algorithms with DDS
Distributed Algorithms with DDSAngelo Corsaro
 
Architecting IoT Systems with Vortex
Architecting IoT Systems with VortexArchitecting IoT Systems with Vortex
Architecting IoT Systems with VortexAngelo Corsaro
 
Reactive Data Centric Architectures with Vortex, Spark and ReactiveX
Reactive Data Centric Architectures with Vortex, Spark and ReactiveXReactive Data Centric Architectures with Vortex, Spark and ReactiveX
Reactive Data Centric Architectures with Vortex, Spark and ReactiveXAngelo Corsaro
 
Introducing Vortex Lite
Introducing Vortex LiteIntroducing Vortex Lite
Introducing Vortex LiteAngelo Corsaro
 
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 MonetisationAngelo Corsaro
 
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 MeetingJaime Martin Losa
 
DDS Tutorial -- Part I
DDS Tutorial -- Part IDDS Tutorial -- Part I
DDS Tutorial -- Part IAngelo Corsaro
 
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 StandardAngelo Corsaro
 
A Converged Approach to Standards for Industrial Automation
A Converged Approach to Standards for Industrial AutomationA Converged Approach to Standards for Industrial Automation
A Converged Approach to Standards for Industrial AutomationGerardo Pardo-Castellote
 
The DDS Security Standard
The DDS Security StandardThe DDS Security Standard
The DDS Security StandardAngelo Corsaro
 
The Data Distribution Service Tutorial
The Data Distribution Service TutorialThe Data Distribution Service Tutorial
The Data Distribution Service TutorialAngelo Corsaro
 
DDS-Security Interoperability Demo - March 2018
DDS-Security Interoperability Demo - March 2018DDS-Security Interoperability Demo - March 2018
DDS-Security Interoperability Demo - March 2018Gerardo Pardo-Castellote
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolAngelo Corsaro
 
High Performance Distributed Computing with DDS and Scala
High Performance Distributed Computing with DDS and ScalaHigh Performance Distributed Computing with DDS and Scala
High Performance Distributed Computing with DDS and ScalaAngelo Corsaro
 
DDS over Low Bandwidth Data Links - Connext Conf London October 2014
DDS over Low Bandwidth Data Links - Connext Conf London October 2014DDS over Low Bandwidth Data Links - Connext Conf London October 2014
DDS over Low Bandwidth Data Links - Connext Conf London October 2014Jaime Martin Losa
 
The DDS Tutorial - Part I
The DDS Tutorial - Part IThe DDS Tutorial - Part I
The DDS Tutorial - Part IAngelo Corsaro
 

What's hot (20)

DDS In Action Part II
DDS In Action Part IIDDS In Action Part II
DDS In Action Part II
 
Deep Dive into the OPC UA / DDS Gateway Specification
Deep Dive into the OPC UA / DDS Gateway SpecificationDeep Dive into the OPC UA / DDS Gateway Specification
Deep Dive into the OPC UA / DDS Gateway Specification
 
Distributed Algorithms with DDS
Distributed Algorithms with DDSDistributed Algorithms with DDS
Distributed Algorithms with DDS
 
Architecting IoT Systems with Vortex
Architecting IoT Systems with VortexArchitecting IoT Systems with Vortex
Architecting IoT Systems with Vortex
 
Reactive Data Centric Architectures with Vortex, Spark and ReactiveX
Reactive Data Centric Architectures with Vortex, Spark and ReactiveXReactive Data Centric Architectures with Vortex, Spark and ReactiveX
Reactive Data Centric Architectures with Vortex, Spark and ReactiveX
 
Introducing Vortex Lite
Introducing Vortex LiteIntroducing Vortex Lite
Introducing Vortex Lite
 
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
 
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
 
DDS Tutorial -- Part I
DDS Tutorial -- Part IDDS Tutorial -- Part I
DDS Tutorial -- Part I
 
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
 
A Converged Approach to Standards for Industrial Automation
A Converged Approach to Standards for Industrial AutomationA Converged Approach to Standards for Industrial Automation
A Converged Approach to Standards for Industrial Automation
 
The DDS Security Standard
The DDS Security StandardThe DDS Security Standard
The DDS Security Standard
 
The Data Distribution Service Tutorial
The Data Distribution Service TutorialThe Data Distribution Service Tutorial
The Data Distribution Service Tutorial
 
DDS Security
DDS SecurityDDS Security
DDS Security
 
DDS-Security Interoperability Demo - March 2018
DDS-Security Interoperability Demo - March 2018DDS-Security Interoperability Demo - March 2018
DDS-Security Interoperability Demo - March 2018
 
DDS-TSN OMG Request for Proposals (RFP)
DDS-TSN OMG Request for Proposals (RFP)DDS-TSN OMG Request for Proposals (RFP)
DDS-TSN OMG Request for Proposals (RFP)
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocol
 
High Performance Distributed Computing with DDS and Scala
High Performance Distributed Computing with DDS and ScalaHigh Performance Distributed Computing with DDS and Scala
High Performance Distributed Computing with DDS and Scala
 
DDS over Low Bandwidth Data Links - Connext Conf London October 2014
DDS over Low Bandwidth Data Links - Connext Conf London October 2014DDS over Low Bandwidth Data Links - Connext Conf London October 2014
DDS over Low Bandwidth Data Links - Connext Conf London October 2014
 
The DDS Tutorial - Part I
The DDS Tutorial - Part IThe DDS Tutorial - Part I
The DDS Tutorial - Part I
 

Viewers also liked

DDS in Action -- Part I
DDS in Action -- Part IDDS in Action -- Part I
DDS in Action -- Part IAngelo Corsaro
 
Migrating data centric applications to windows azure
Migrating data centric applications to windows azureMigrating data centric applications to windows azure
Migrating data centric applications to windows azureSteve Xu
 
Asia Food 6B
Asia Food 6BAsia Food 6B
Asia Food 6BC FM
 
Model sentences with preposition
Model sentences with prepositionModel sentences with preposition
Model sentences with prepositionMurely Ponnusamy
 
Roadmap and Technology Incubators
Roadmap and Technology IncubatorsRoadmap and Technology Incubators
Roadmap and Technology IncubatorsAngelo Corsaro
 
Test 2 Polymer Notes
Test 2 Polymer NotesTest 2 Polymer Notes
Test 2 Polymer Notessad asad
 
Pleno municipal infantil 2013
Pleno municipal infantil 2013Pleno municipal infantil 2013
Pleno municipal infantil 2013XXX XXX
 
Crosscurrents, 2011. It's All about Thinking
Crosscurrents, 2011. It's All about ThinkingCrosscurrents, 2011. It's All about Thinking
Crosscurrents, 2011. It's All about ThinkingFaye Brownlie
 
La coruña
La coruñaLa coruña
La coruñaC FM
 
Errenazimenduko pintura. Veneziako eskola ppt
Errenazimenduko pintura. Veneziako eskola pptErrenazimenduko pintura. Veneziako eskola ppt
Errenazimenduko pintura. Veneziako eskola pptasunasenjo
 
Office 365 + Windows Azure (del 2)
Office 365 + Windows Azure (del 2)Office 365 + Windows Azure (del 2)
Office 365 + Windows Azure (del 2)Wictor Wilén
 
Rupert - AFL - Jan, 2014
Rupert - AFL - Jan, 2014Rupert - AFL - Jan, 2014
Rupert - AFL - Jan, 2014Faye Brownlie
 
Sunshine coast admin
Sunshine coast adminSunshine coast admin
Sunshine coast adminFaye Brownlie
 
A Similarity Measure for Large Color Differences
A Similarity Measure for Large Color DifferencesA Similarity Measure for Large Color Differences
A Similarity Measure for Large Color Differencesnmoroney
 
Ingalaterra Eta Portugal
Ingalaterra Eta PortugalIngalaterra Eta Portugal
Ingalaterra Eta Portugalguestd4e08
 

Viewers also liked (20)

DDS in Action -- Part I
DDS in Action -- Part IDDS in Action -- Part I
DDS in Action -- Part I
 
Migrating data centric applications to windows azure
Migrating data centric applications to windows azureMigrating data centric applications to windows azure
Migrating data centric applications to windows azure
 
Asia Food 6B
Asia Food 6BAsia Food 6B
Asia Food 6B
 
Model sentences with preposition
Model sentences with prepositionModel sentences with preposition
Model sentences with preposition
 
ikh311-03
ikh311-03ikh311-03
ikh311-03
 
Roadmap and Technology Incubators
Roadmap and Technology IncubatorsRoadmap and Technology Incubators
Roadmap and Technology Incubators
 
Test 2 Polymer Notes
Test 2 Polymer NotesTest 2 Polymer Notes
Test 2 Polymer Notes
 
Pleno municipal infantil 2013
Pleno municipal infantil 2013Pleno municipal infantil 2013
Pleno municipal infantil 2013
 
Presentation 12.19
Presentation 12.19Presentation 12.19
Presentation 12.19
 
Crosscurrents, 2011. It's All about Thinking
Crosscurrents, 2011. It's All about ThinkingCrosscurrents, 2011. It's All about Thinking
Crosscurrents, 2011. It's All about Thinking
 
La coruña
La coruñaLa coruña
La coruña
 
Errenazimenduko pintura. Veneziako eskola ppt
Errenazimenduko pintura. Veneziako eskola pptErrenazimenduko pintura. Veneziako eskola ppt
Errenazimenduko pintura. Veneziako eskola ppt
 
2010 Regs&amp;Medi Links2
2010 Regs&amp;Medi Links22010 Regs&amp;Medi Links2
2010 Regs&amp;Medi Links2
 
Office 365 + Windows Azure (del 2)
Office 365 + Windows Azure (del 2)Office 365 + Windows Azure (del 2)
Office 365 + Windows Azure (del 2)
 
Rupert - AFL - Jan, 2014
Rupert - AFL - Jan, 2014Rupert - AFL - Jan, 2014
Rupert - AFL - Jan, 2014
 
Sunshine coast admin
Sunshine coast adminSunshine coast admin
Sunshine coast admin
 
A Similarity Measure for Large Color Differences
A Similarity Measure for Large Color DifferencesA Similarity Measure for Large Color Differences
A Similarity Measure for Large Color Differences
 
Ingalaterra Eta Portugal
Ingalaterra Eta PortugalIngalaterra Eta Portugal
Ingalaterra Eta Portugal
 
лэндинги
лэндингилэндинги
лэндинги
 
ikp213-07-stl
ikp213-07-stlikp213-07-stl
ikp213-07-stl
 

Similar to Reactive Data Architectures with DDS

Eclipse IoT Summit 2016: In The Age of IoT Think Data-Centric
Eclipse IoT Summit 2016: In The Age of IoT Think Data-CentricEclipse IoT Summit 2016: In The Age of IoT Think Data-Centric
Eclipse IoT Summit 2016: In The Age of IoT Think Data-CentricToby McClean
 
Connected Mobile and Web Applications with PrismTech Vortex Data Sharing Plat...
Connected Mobile and Web Applications with PrismTech Vortex Data Sharing Plat...Connected Mobile and Web Applications with PrismTech Vortex Data Sharing Plat...
Connected Mobile and Web Applications with PrismTech Vortex Data Sharing Plat...ADLINK Technology IoT
 
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 IoTAngelo Corsaro
 
Real Time Java DDS
Real Time Java DDSReal Time Java DDS
Real Time Java DDSkerush
 
Distributed Systems: How to connect your real-time applications
Distributed Systems: How to connect your real-time applicationsDistributed Systems: How to connect your real-time applications
Distributed Systems: How to connect your real-time applicationsJaime Martin Losa
 
Fog Computing with VORTEX
Fog Computing with VORTEXFog Computing with VORTEX
Fog Computing with VORTEXAngelo Corsaro
 
Desktop, Embedded and Mobile Apps with PrismTech Vortex Cafe
Desktop, Embedded and Mobile Apps with PrismTech Vortex CafeDesktop, Embedded and Mobile Apps with PrismTech Vortex Cafe
Desktop, Embedded and Mobile Apps with PrismTech Vortex CafeADLINK Technology IoT
 
Desktop, Embedded and Mobile Apps with Vortex Café
Desktop, Embedded and Mobile Apps with Vortex CaféDesktop, Embedded and Mobile Apps with Vortex Café
Desktop, Embedded and Mobile Apps with Vortex CaféAngelo Corsaro
 
Reactive Stream Processing Using DDS and Rx
Reactive Stream Processing Using DDS and RxReactive Stream Processing Using DDS and Rx
Reactive Stream Processing Using DDS and RxSumant Tambe
 
Vortex Tutorial Part II
Vortex Tutorial Part IIVortex Tutorial Part II
Vortex Tutorial Part IIAngelo Corsaro
 
Introduction to DDS: Context, Information Model, Security, and Applications.
Introduction to DDS: Context, Information Model, Security, and Applications.Introduction to DDS: Context, Information Model, Security, and Applications.
Introduction to DDS: Context, Information Model, Security, and Applications.Gerardo Pardo-Castellote
 
Cyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT AgeCyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT AgeAngelo Corsaro
 
Cloud infrastructure and Cloud Services
Cloud infrastructure and Cloud ServicesCloud infrastructure and Cloud Services
Cloud infrastructure and Cloud ServicesIntel Corporation
 
Enabling Next Gen Analytics with Azure Data Lake and StreamSets
Enabling Next Gen Analytics with Azure Data Lake and StreamSetsEnabling Next Gen Analytics with Azure Data Lake and StreamSets
Enabling Next Gen Analytics with Azure Data Lake and StreamSetsStreamsets Inc.
 
Introducing the New MagicDraw Plug-In for RTI Connext DDS: Industrial IoT Mee...
Introducing the New MagicDraw Plug-In for RTI Connext DDS: Industrial IoT Mee...Introducing the New MagicDraw Plug-In for RTI Connext DDS: Industrial IoT Mee...
Introducing the New MagicDraw Plug-In for RTI Connext DDS: Industrial IoT Mee...IncQuery Labs
 
Cloud computing - dien toan dam may
Cloud computing - dien toan dam mayCloud computing - dien toan dam may
Cloud computing - dien toan dam mayNguyen Duong
 

Similar to Reactive Data Architectures with DDS (20)

Eclipse IoT Summit 2016: In The Age of IoT Think Data-Centric
Eclipse IoT Summit 2016: In The Age of IoT Think Data-CentricEclipse IoT Summit 2016: In The Age of IoT Think Data-Centric
Eclipse IoT Summit 2016: In The Age of IoT Think Data-Centric
 
Connected Mobile and Web Applications with PrismTech Vortex Data Sharing Plat...
Connected Mobile and Web Applications with PrismTech Vortex Data Sharing Plat...Connected Mobile and Web Applications with PrismTech Vortex Data Sharing Plat...
Connected Mobile and Web Applications with PrismTech Vortex Data Sharing Plat...
 
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
 
Real Time Java DDS
Real Time Java DDSReal Time Java DDS
Real Time Java DDS
 
Distributed Systems: How to connect your real-time applications
Distributed Systems: How to connect your real-time applicationsDistributed Systems: How to connect your real-time applications
Distributed Systems: How to connect your real-time applications
 
Fog Computing with VORTEX
Fog Computing with VORTEXFog Computing with VORTEX
Fog Computing with VORTEX
 
PrismTech Vortex Tutorial Part 1
PrismTech Vortex Tutorial Part 1PrismTech Vortex Tutorial Part 1
PrismTech Vortex Tutorial Part 1
 
Vortex Cloud Beyond Cloud Messaging
Vortex Cloud Beyond Cloud MessagingVortex Cloud Beyond Cloud Messaging
Vortex Cloud Beyond Cloud Messaging
 
Desktop, Embedded and Mobile Apps with PrismTech Vortex Cafe
Desktop, Embedded and Mobile Apps with PrismTech Vortex CafeDesktop, Embedded and Mobile Apps with PrismTech Vortex Cafe
Desktop, Embedded and Mobile Apps with PrismTech Vortex Cafe
 
Desktop, Embedded and Mobile Apps with Vortex Café
Desktop, Embedded and Mobile Apps with Vortex CaféDesktop, Embedded and Mobile Apps with Vortex Café
Desktop, Embedded and Mobile Apps with Vortex Café
 
Reactive Stream Processing Using DDS and Rx
Reactive Stream Processing Using DDS and RxReactive Stream Processing Using DDS and Rx
Reactive Stream Processing Using DDS and Rx
 
Vortex Tutorial Part II
Vortex Tutorial Part IIVortex Tutorial Part II
Vortex Tutorial Part II
 
Vortex Tutorial Part 2
Vortex Tutorial Part 2Vortex Tutorial Part 2
Vortex Tutorial Part 2
 
Introduction to DDS: Context, Information Model, Security, and Applications.
Introduction to DDS: Context, Information Model, Security, and Applications.Introduction to DDS: Context, Information Model, Security, and Applications.
Introduction to DDS: Context, Information Model, Security, and Applications.
 
Cyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT AgeCyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT Age
 
Cloud infrastructure and Cloud Services
Cloud infrastructure and Cloud ServicesCloud infrastructure and Cloud Services
Cloud infrastructure and Cloud Services
 
Enabling Next Gen Analytics with Azure Data Lake and StreamSets
Enabling Next Gen Analytics with Azure Data Lake and StreamSetsEnabling Next Gen Analytics with Azure Data Lake and StreamSets
Enabling Next Gen Analytics with Azure Data Lake and StreamSets
 
Introducing the New MagicDraw Plug-In for RTI Connext DDS: Industrial IoT Mee...
Introducing the New MagicDraw Plug-In for RTI Connext DDS: Industrial IoT Mee...Introducing the New MagicDraw Plug-In for RTI Connext DDS: Industrial IoT Mee...
Introducing the New MagicDraw Plug-In for RTI Connext DDS: Industrial IoT Mee...
 
Cloud computing - dien toan dam may
Cloud computing - dien toan dam mayCloud computing - dien toan dam may
Cloud computing - dien toan dam may
 
Interoperable DDS Strategies
Interoperable DDS StrategiesInteroperable DDS Strategies
Interoperable DDS Strategies
 

More from Angelo Corsaro

zenoh: The Edge Data Fabric
zenoh: The Edge Data Fabriczenoh: The Edge Data Fabric
zenoh: The Edge Data FabricAngelo Corsaro
 
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 computeAngelo Corsaro
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolAngelo Corsaro
 
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 ComputingAngelo Corsaro
 
fog05: The Fog Computing Infrastructure
fog05: The Fog Computing Infrastructurefog05: The Fog Computing Infrastructure
fog05: The Fog Computing InfrastructureAngelo Corsaro
 
fog05: The Fog Computing Platform
fog05: The Fog Computing Platformfog05: The Fog Computing Platform
fog05: The Fog Computing PlatformAngelo Corsaro
 
Programming in Scala - Lecture Four
Programming in Scala - Lecture FourProgramming in Scala - Lecture Four
Programming in Scala - Lecture FourAngelo Corsaro
 
Programming in Scala - Lecture Three
Programming in Scala - Lecture ThreeProgramming in Scala - Lecture Three
Programming in Scala - Lecture ThreeAngelo Corsaro
 
Programming in Scala - Lecture Two
Programming in Scala - Lecture TwoProgramming in Scala - Lecture Two
Programming in Scala - Lecture TwoAngelo Corsaro
 
Programming in Scala - Lecture One
Programming in Scala - Lecture OneProgramming in Scala - Lecture One
Programming in Scala - Lecture OneAngelo Corsaro
 
RUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming RuminationsRUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming RuminationsAngelo Corsaro
 
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...Angelo Corsaro
 
Fluid IoT Architectures
Fluid IoT ArchitecturesFluid IoT Architectures
Fluid IoT ArchitecturesAngelo Corsaro
 
Microservices Architecture with Vortex — Part II
Microservices Architecture with Vortex — Part IIMicroservices Architecture with Vortex — Part II
Microservices Architecture with Vortex — Part IIAngelo Corsaro
 

More from Angelo Corsaro (19)

Zenoh: The Genesis
Zenoh: The GenesisZenoh: The Genesis
Zenoh: The Genesis
 
zenoh: The Edge Data Fabric
zenoh: The Edge Data Fabriczenoh: The Edge Data Fabric
zenoh: The Edge Data Fabric
 
Zenoh Tutorial
Zenoh TutorialZenoh Tutorial
Zenoh Tutorial
 
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
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocol
 
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
 
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
 
RUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming RuminationsRUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming Ruminations
 
Fog Computing Defined
Fog Computing DefinedFog Computing Defined
Fog Computing Defined
 
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
 
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!
 

Recently uploaded

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
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
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
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
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 

Recently uploaded (20)

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
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
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
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
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 

Reactive Data Architectures with DDS

  • 1. Angelo  Corsaro,  PhD   Chief  Technology  Officer   angelo.corsaro@prismtech.com Reactive Data Centric Architectures with DDS
  • 9. Up to recently Reactive Systems were mainstream only domains such as Industrial, Military, Telco, Finance and Aerospace Challenges imposed by the Internet of Things and Big Data Applications an increasing number of architects and developers is recognising the importance of the techniques and technologies used for building Reactive Systems being reactive The Importance Of
  • 11. The prevailing application-/service-centric mindset by focusing on the control-flow as opposed than the data-flow has lead to design systems that are hard to extend, scale and make fault-tolerant An increasing number of architects has realised that the remedy is to change the main point of attention: Data is the centre of the universe — applications are ephemeral being data-centric The Importance Of
  • 12. The data-centric revolution puts data at the centre of the system Applications are optional visitors to the data data-centric manifesto http://datacentricmanifesto.org
  • 14. Data-centric Reactive manifesto Data-Centric: data is what matters. Application autonomously and asynchronously transform data Responsive: Timely react to stimuli Resilient: Tolerate failures functionally and ideally temporally Scalable: Gracefully scale up and down depending on load demands
  • 18. CopyrightPrismTech,2015 John Deere’s machinery uses DDS for internal communication as well as for vehicle-to-vehicle coordination Telemetry Data is constantly sent to a Cloud for preventive maintenance In this use case VORTEX enables fog computing as well as cloud computing John Deere Autonomous FarmingSmart farming
  • 22. European air traffic control DDS is the standard recommended by Eurocontrol/Eurocae for Pan-European flight data sharing
  • 25. CopyrightPrismTech,2015 DDS provides a Distributed Data Space abstraction where applications can autonomously and asynchronously read and write data enjoying spatial and temporal decoupling Its built-in dynamic discovery isolates applications from network topology and connectivity details DDS’ Data Space is completely decentralised High Level Abstraction 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. Conceptual Model 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
  • 27. Conceptual Model Actual Implementation 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
  • 28. The  communication  between   the  DataWriter  and  matching   DataReaders  can  be  peer-­‐to-­‐ peer  exploiting  UDP/IP   (Unicast  and  Multicast)or   TCP/IP 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   “brokered”  but  still   exploiting  UDP/IP  (Unicast   and  Multicast)or  TCP/IP
  • 29. CopyrightPrismTech,2015 DDS supports the definition of Data Models. These data models allow to naturally represent physical and virtual entities characterising the application domain DDS types are extensible and evolvable, thus allowing incremental updates and upgrades Data Centricity
  • 30. CopyrightPrismTech,2015 A Topic defines a domain-wide information’s class A Topic is defined by means of a (name, type, qos) tuple, where • name: identifies the topic within the domain • type: is the programming language type associated with the topic. Types are extensible and evolvable • qos: is a collection of policies that express the non-functional properties of this topic, e.g. reliability, persistence, etc. Topic Topic Type Name QoS struct  TemperatureSensor  {        @key        long  sid;        float  temp;        float  hum;   }    
  • 31. CopyrightPrismTech,2015 DDS “knows” about application data types and uses this information provide type-safety and content- based routing Content Awareness struct  TemperatureSensor  {        @key        long  sid;        float  temp;        float  hum;   }     sid temp hum 101 25.3 0.6 507 33.2 0.7 913 27,5 0.55 1307 26.2 0.67 “temp  >  25  OR  hum  >=  0.6” sid temp hum 101 25.3 0.6 507 33.2 0.7 1307 26.2 0.67 Type TempSensor
  • 32. CopyrightPrismTech,2014 DDS provides a rich set of QoS- Policies to control local as well as end-to-end properties of data sharing Some QoS-Policies are matched based on a Request vs. Offered (RxO) Model QoS Policies HISTORY LIFESPAN DURABILITY DEADLINE LATENCY BUDGET TRANSPORT PRIO TIME-BASED FILTER RESOURCE LIMITS USER DATA TOPIC DATA GROUP DATA OWENERSHIP OWN. STRENGTH LIVELINESS ENTITY FACTORY DW LIFECYCLE DR LIFECYCLE PRESENTATION RELIABILITY PARTITION DEST. ORDER RxO QoS Local QoS
  • 33. CopyrightPrismTech,2015 For data to flow from a DataWriter (DW) to one or many DataReader (DR) a few conditions have to apply: The DR and DW domain participants have to be in the same domain The partition expression of the DR’s Subscriber and the DW’s Publisher should match (in terms of regular expression match) The QoS Policies offered by the DW should exceed or match those requested by the DR Quality of Service Domain Participant DURABILITY OWENERSHIP DEADLINE LATENCY BUDGET LIVELINESS RELIABILITY DEST. ORDER Publisher DataWriter PARTITION DataReader Subscriber Domain Participant offered QoS Topic writes reads Domain Id joins joins produces-in consumes-from RxO QoS Policies requested QoS
  • 34. CopyrightPrismTech,2015 Support for fine grained access control Support for Symmetric and Asymmetric Authentication Standard Authentication, Access Control, Crypto, and Logging plug-in API Security Arthur Dent Arthur Dent Ford Prerfect Zaphod Beeblebrox Marvin Trillian A(r,w), B(r) A(r,w), B(r,w), X(r) *(r,w) *(r) A(r,w), B(r,w), C(r,w) Ford Prerfect Zaphod Beeblebrox Trillian Marvin A B A,B X * * A,B,C Identity Access Rights Sessions are authenticated and communication is encrypted Only the Topic included as part of the access rights are visible and accessible
  • 35. CopyrightPrismTech,2014 DDS is independent from the - Programming language, - Operating System - HW architecture Platform Independent
  • 38. CopyrightPrismTech,2015 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  
  • 39. CopyrightPrismTech,2015 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  
  • 40. CopyrightPrismTech,2015 Writing Data in Python import dds 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  
  • 41. CopyrightPrismTech,2015 Reading Data in Python import dds
 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          enum  UtilityKind  {            ELECTRICITY,            GAS,            WATER              };                            struct  Meter  {            string  sn;            UtilityKind  utility;            float  reading;            float  error;              };                                      #pragma  keylist  Meter  sn  
  • 43. Stream Processing Stream Processing is the commonly adopted architectural pattern for building reactive systems
  • 44. CopyrightPrismTech,2015 Stream Processing Systems are typically modelled as collection of concurrent modules communicating via typed data channels Modules usually play one of the following roles: - Sources: Injecting data into the System - Filters/Actors: Performing some computation over sources - Sinks: Consuming the data produced by the system Stream Processing Filter Source Filter Filter Stream Sink
  • 46. CopyrightPrismTech,2015 A stream represents a potentially infinite sequence of data samples of a given type T As such, in DDS, a stream can be naturally represented with a Topic Example: - Topic<PressureType> - Topic<MarketData> Streams in DDS Filter Filter Filter Stream
  • 47. CopyrightPrismTech,2015 Sources in DDS are mapped to DataWriters for a given Topic Sinks in DDS are mapped to DataReaders for a given Topic Source and Sinks in DDS Filter Source Filter Filter Sink
  • 48. CopyrightPrismTech,2015 Filters implement bit and pieces of the application business logic Each Filter has one or more input stream and one or more output streams Obviously, a Filter consumes data from an input stream through a DDS data reader and pushed data into an output stream through a DDS data writer Filters in DDS Filter Filter Filter
  • 50. CopyrightPrismTech,2015 Stream Processing Architectures in general and DDS-based architecture in particular promote loose coupling Anonymous Communication => No Spatial Coupling Non-Blocking and Asynchronous Interaction => No control or temporal coupling In DDS the only thing that matters is the kind of information a module is interested in consuming or producing — who is producing the data or when the data has been produced is not relevant Loose Coupling
  • 51. CopyrightPrismTech,2015 Location Transparency is an important architectural property as it makes it possible to completely decouple the logical decomposition of a system from its actual physical deployment DDS Automatic Discovery brings location transparency to the next level by enabling systems that are zero-conf, self-forming and self-healing Location Transparency Module Module Module Module Module Module Physical Deployment Unit Logical Deployment Unit
  • 52. CopyrightPrismTech,2015 DDS provides full control over temporal decoupling by means of its Durability Policy As such the data produced by a Source can be: - Volatile: available for those that are around at the time at production - Transient: available as far as the system/source is running - Durable: available forever Temporal Decoupling tSource t t Sink Sink Volatile Durability tSource t t Sink Sink Transient Durability
  • 53. CopyrightPrismTech,2015 DDS provides mechanism for detecting traditional faults as well as performance failures The Fault-Detection mechanism is controlled by means of the DDS Liveliness policy Performance Failures can be detected using the Deadline Policy which allows to receive notification when data is not received within the expected delays Failure Detection Source tSink Fault Notification TD Source t Sink Performance Failure Notification P t P P
  • 54. CopyrightPrismTech,2015 DDS provides a built-in fault-masking mechanism that allow to replicate Sources and transparently switch over when a failure occurs At any point in time the “active” source is the one with the highest strength. Where the strength is an integer parameter controller by the user Fault-Masking Source tSink Source t
  • 55. CopyrightPrismTech,2015 DDS provides a built-in fault-masking mechanism that allow to replicate Sources and transparently switch over when a failure occurs At any point in time the “active” source is the one with the highest strength. Where the strength is an integer parameter controller by the user Fault-Masking Source tSink Source t
  • 60. DDS is a standard technology for ubiquitous, interoperable, secure, platform independent, and real-time data sharing across network connected devices DDS provides a the ideal platform for architecting and building Data-Centric Reactive Systems DDS