introducing the omg dds to the aerospace valley
DESCRIPTION
This presentation provides (1) a tutorial of the OMG DDS standard, (2) an overview of OpenSplice DDS, and (3) concludes with a use case showing how DDS is being used in the next generation European Air-Traffic Control and Management SystemTRANSCRIPT
Delivering Performance, Openness, and Freedom
OpenSplice DDS
OMG DDS: The Data Distribution Service for Real-Time Systems
• PART I -- The DDS Standard
• PART II -- OpenSplice DDS
• PART III -- CoFlight Use Case
Presentation Roadmap
Age
nda
Motivating Forces
The Standard
Architectural Principles
Programming Model
Future Directions
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
The Need for Data Distribution
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
The Need for Data DistributionTime Scale
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
The Need for Data DistributionGeographical ScaleTime Scale
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
The Need for Data DistributionGeographical ScaleTime Scale
Parallelism
Systemic Signal
Processing
Data Processing
Parallel Systems
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
The Need for Data DistributionGeographical ScaleTime Scale
Real-Time Information Processing
DeterminismParallelism
Systemic Signal
Processing
Data Processing
Parallel Systems
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
The Need for Data DistributionGeographical ScaleTime Scale
Near Real-Time Fault-Tolerant Information
Processing
Throughput, Availability
Real-Time Information Processing
DeterminismParallelism
Systemic Signal
Processing
Data Processing
Parallel Systems
Complex Information Management
Scalability, Persistence, Security
Distributed Systems
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
The Need for Data DistributionGeographical ScaleTime Scale
Near Real-Time Fault-Tolerant Information
Processing
Throughput, Availability
Real-Time Information Processing
DeterminismParallelism
Systemic Signal
Processing
Data Processing
Parallel Systems
Complex Information Management
Scalability, Persistence, Security
Distributed Systems
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
The Need for Data DistributionGeographical ScaleTime Scale
Near Real-Time Fault-Tolerant Information
Processing
Throughput, Availability
Real-Time Information Processing
DeterminismParallelism
Systemic Signal
Processing
Data Processing
Parallel Systems
Data Distribution
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Data Exchange / Distribution‣ Network Centric Architectures are emerging as a key trend for next generation military and civil
system of systems
‣ Efficient, scalable and QoS-enabled data dissemination is an enabling technology for Network Centric Systems
Adapted from “The Future of AWACS”,
by LtCol Joe Chapa
Joint Forces
Global Info Grid
Joint Forces
Global Info Grid
The Right Information => To the Right People => At the Right Time
Age
nda
Motivating Forces
The Standard
Architectural Principles
Programming Model
Future Directions
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Addressing Data Distribution Challenges
The OMG DDS Standard‣ Introduced in 2004 to address the Data
Distribution challenges faced by a wide class of Defense and Aerospace Applications
‣ Key requirement for the standard were its ability to deliver very high performance while seamlessly scaling from embedded to ultra-large-scale deployments
‣ Today recommended by key administration worldwide and widely adopted across several different application domains, such as, Automated Trading, Simulations, SCADA, Telemetry, etc.
DDS is standard designed to address the data-distribution challenges across a wide class of Defense and Aerospace Applications
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
The OMG Data Distribution Service (DDS)
DDS v1.2 API Standard‣ Language Independent, OS and HW architecture
independent
‣ DCPS. Standard API for Data-Centric, Topic-Based, Real-Time Publish/Subscribe
‣ DLRL. Standard API for creating Object Views out of collection of Topics
DDSI/RTPS v2.1 Wire Protocol Standard‣ Standard wire protocol allowing interoperability
between different implementations of the DDS standard
‣ Interoperability demonstrated among key DDS vendors in March 2009
Object/Relational Mapping
Ownership DurabilityContent
Subscription
Minimum Profile
Data Centric Publish/Subscribe (DCPS)
Data Local Reconstruction Layer (DLRL)
DDS Interoperability Wire Protocol
Application
UDP/IP
Real-Time Publish/Subscribe Protocol
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
OMG DDS RecommendationsMandated/Recommended by key Administrations
‣US Navy: Open Architecture
‣DISR/DISA: Net-centric Systems
‣EuroControl: Air Traffic Control Center Operational Interoperability
‣QinetiQ: Recommending DDS for VSI
A Great Time for DDS!
! The infrastructure evolution cycle is churning…– New -> Emerging -> Standard -> Commodity
– Middleware is emerging as OS declines
! …DDS is maturing…– OMG focus
– Wire spec
– Tools
– Enterprise integration
– Multiple products fielded
– Deployed applications!
! …and adoption is on the rise– Navy
– DISR
– FCS/SoSCOE
– Many significant applications
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
OMG DDS AdoptionsAdopted by Most Challenging International Programs
‣US FCS/SOSCOE
‣European Next Generation Flight Data Processor
‣US ZUMWALT [DDG(1000)]
‣VTID adopting DDS for the architectural demonstrator
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
OMG DDS ApplicabilityAdapted from NSWC-DD Open Architecture Documentation
Non Real-Time Soft Real-Time Hard Real-Time Extreme Real-Time
Com
mun
icat
ion
Tech
nolo
gies
Sta
ndar
ds
The DDS is the only technology that spans across the board.
Web SVCs
Java RTSJ
JMS
CORBA RT-CORBA
OMG Data Distribution Service (DDS)
MPI
It guarantees exceptional real-time behavior, while providing unparalleled level of throughput !
Message Passing Interface
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Some DDS Use CasesDefense
‣ Combat Management Systems
‣ Flycatcher system
‣ Unmanned Vehicles (Air + Land)
‣ Tactical Links
‣ Radar Processing
‣ Submarine Systems
‣ Future Combat Systems
‣ Simulation
SCADA/Utilities
‣ Industrial Automation
‣ Power Grids
‣ Rocket Launch Systems
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Some DDS Use Cases
Transportation
‣ Air Traffic Management/Control
‣ Metropolitan Traffic Management
‣ Underground Metropolitan Transportation
Financial Services
‣ Automated Trading Firms
‣ Compliance Systems
‣ Market Data Platforms
Age
nda
Motivating Forces
The Standard
Architectural Principles
Programming Model
Future Directions
D e l i v e r i n g P e r f o r m a n c e , O p e n n e s s , a n d F r e e d o m
OpenSplice DDS
Loosely Coupled Technology
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Counting the “W’s” of Coupling
Client
Request
Reply
Server The “4Ws” of Client/Server‣ Who+Where: Space Coupling
‣ What: Structural Coupling
‣ When: Time CouplingClient/Server
CORBA, COM+, Java RMI, .Net Remoting, Web SVCs
DDS
A Single “W” for DDS‣ What: Structural Coupling
DDS features dynamic discovery and full time decoupling!
Publisher
SubscriberPublisher
Publisher
Subscriber
Subscriber
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Client Server vs. Publish SubscribeClient/Server‣ Tight Coupling (4W)
‣ Complex Deployment
‣ Inherently One-to-One
‣ Fragile to FaultServer
Client
Server
Client
Server
Client
Server
Client
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Client Server vs. Publish SubscribeClient/Server‣ Tight Coupling (4W)
‣ Complex Deployment
‣ Inherently One-to-One
‣ Fragile to FaultServer
Client
Server
Client
Server
Client
Server
Client
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Client Server vs. Publish SubscribeClient/Server‣ Tight Coupling (4W)
‣ Complex Deployment
‣ Inherently One-to-One
‣ Fragile to FaultServer
Client
Server
Client
Server
Client
Server
Client
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Client Server vs. Publish SubscribeClient/Server‣ Tight Coupling (4W)
‣ Complex Deployment
‣ Inherently One-to-One
‣ Fragile to FaultServer
Client
Server
Client
Server
Client
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Client Server vs. Publish SubscribeClient/Server‣ Tight Coupling (4W)
‣ Complex Deployment
‣ Inherently One-to-One
‣ Fragile to Fault
Server
Client
Server
Client
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Client Server vs. Publish SubscribeClient/Server‣ Tight Coupling (4W)
‣ Complex Deployment
‣ Inherently One-to-One
‣ Fragile to Fault
Server
Client
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Client Server vs. Publish Subscribe
Server
Client
Server
Client
Server
Client
Server
Client
Client/Server‣ Tight Coupling (4W)
‣ Complex Deployment
‣ Inherently One-to-One
‣ Fragile to Fault
Publisher
SubscriberPublisher
Publisher
Subscriber
Subscriber
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Client Server vs. Publish Subscribe
Server
Client
Server
Client
Server
Client
Server
Client
Client/Server‣ Tight Coupling (4W)
‣ Complex Deployment
‣ Inherently One-to-One
‣ Fragile to Fault
DDS
Publisher
SubscriberPublisher
Publisher
Subscriber
Subscriber
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Client Server vs. Publish Subscribe
Server
Client
Server
Client
Server
Client
Server
Client
Client/Server‣ Tight Coupling (4W)
‣ Complex Deployment
‣ Inherently One-to-One
‣ Fragile to Fault
DDS‣ Loosely Coupled (1W)
Publisher
SubscriberPublisher
Publisher
Subscriber
Subscriber
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Client Server vs. Publish Subscribe
Server
Client
Server
Client
Server
Client
Server
Client
Client/Server‣ Tight Coupling (4W)
‣ Complex Deployment
‣ Inherently One-to-One
‣ Fragile to Fault
DDS‣ Loosely Coupled (1W)
‣ Plug & Play
Publisher
SubscriberPublisher
Publisher
Subscriber
Subscriber
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Client Server vs. Publish Subscribe
Server
Client
Server
Client
Server
Client
Server
Client
Client/Server‣ Tight Coupling (4W)
‣ Complex Deployment
‣ Inherently One-to-One
‣ Fragile to Fault
DDS‣ Loosely Coupled (1W)
‣ Plug & Play
Publisher
SubscriberPublisher
Publisher
Subscriber
Subscriber
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Client Server vs. Publish Subscribe
Server
Client
Server
Client
Server
Client
Server
Client
Client/Server‣ Tight Coupling (4W)
‣ Complex Deployment
‣ Inherently One-to-One
‣ Fragile to Fault
DDS‣ Loosely Coupled (1W)
‣ Plug & Play‣ Inherently Many-to-Many
Publisher
SubscriberPublisher
Publisher
Subscriber
Subscriber
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Client Server vs. Publish Subscribe
Server
Client
Server
Client
Server
Client
Server
Client
Client/Server‣ Tight Coupling (4W)
‣ Complex Deployment
‣ Inherently One-to-One
‣ Fragile to Fault
DDS‣ Loosely Coupled (1W)
‣ Plug & Play‣ Inherently Many-to-Many‣ Fault Resilient
Publisher
SubscriberPublisher
Publisher
Subscriber
Subscriber
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Client Server vs. Publish Subscribe
Server
Client
Server
Client
Server
Client
Server
Client
Client/Server‣ Tight Coupling (4W)
‣ Complex Deployment
‣ Inherently One-to-One
‣ Fragile to Fault
DDS‣ Loosely Coupled (1W)
‣ Plug & Play‣ Inherently Many-to-Many‣ Fault Resilient
Publisher
SubscriberPublisher
Publisher
Subscriber
Subscriber
D e l i v e r i n g P e r f o r m a n c e , O p e n n e s s , a n d F r e e d o m
OpenSplice DDS
High Performance/Availability Pub/Sub
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
High Performance Pub/Sub
‣ Fully distributed, Peer-to-Peer Communication
‣No Single Point of Failure
‣No Single Point of Bottleneck
‣Multicast-enabled
‣High performance and highly scalable
‣High availability
‣hot-swap
‣hot-hot architecture
The right data, at the right place, at the right time
-- All the Time.
Publisher
SubscriberPublisher
Publisher
Subscriber
Subscriber
Brokers
D e l i v e r i n g P e r f o r m a n c e , O p e n n e s s , a n d F r e e d o m
OpenSplice DDS
Data-Centric Pub/SubFundamentals
Object/Relational Mapping
Ownership DurabilityContent
Subscription
Minimum Profile
Data Centric Publish/Subscribe (DCPS)
Data Local Reconstruction Layer (DLRL)
DDS Interoperability Wire Protocol
Application
UDP/IP
Real-Time Publish/Subscribe Protocol
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
DDS Topics
Topic
‣ Unit of information exchanged between Publisher and Subscribers.
‣ An association between a unique name, a type and a QoS setting
struct ShapeType { long x; long y; long shapesize; string color;};#pragma keylist ShapeType color
{ShapeType}
{Circle, Square, Triangle}
{...}
Topic Type.
‣ Type describing the data associated with one or more Topics
‣ A Topic type can have a key represented by an arbitrary number of attributes
‣ Expressed in IDL
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
DDS Topics
Circle
struct ShapeType { long x; long y; long shapesize; string color;};#pragma keylist ShapeType color
Topic QoS
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
DDS Topics
Triangle
struct ShapeType { long x; long y; long shapesize; string color;};#pragma keylist ShapeType color
Topic QoS
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
DDS Topics
Square
struct ShapeType { long x; long y; long shapesize; string color;};#pragma keylist ShapeType color
Topic QoS
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
DDS Topic Instances and Samples
Topic Instances
‣ Each key value identifies a unique Topic Instance,
‣ Topic’s instance lifetime can be explicitly managed in DDS
Topic Samples
‣ The values assumed by a Topic Instance over time are referred as Instance Sample
struct ShapeType { long x; long y; long shapesize; string color;};#pragma keylist ShapeType color
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Topic/Instances/Samples Recap.Topics Instances
Samples
timeti tj tnow
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Content Filtering
‣DDS allows to specify content-filtered Topics for which a a subset of SQL92 is used to express the filter condition
‣Content filters can be applied on the entire content of the Topic Type
‣Content filters are applied by DDS each time a new sample is produced/delivered
X0 X1
Y0
Y1
X0 <= X <= X1
Y0 <= Y <= Y1
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Local Queries‣ Subscribed Topics can be seen locally as “Tables”
‣ A subset of SQL92 can be used for performing queries on multiple topics as well as natural joins
Circle Topic
SELECT * FROM ShapeType s WHERE s.x > 25 AND s.y < 55
color x y shapesizeyellow 30 25 50
color x y shapesizeredblue
yellow
57 62 5090 85 5030 25 50
‣ Queries are performed under user control and provide a result that depends on the current snapshot of the system, e.g., samples currently available
X0
Y0Y0
Y1
Y0 <= Y <= Y1
D e l i v e r i n g P e r f o r m a n c e , O p e n n e s s , a n d F r e e d o m
OpenSplice DDS
Data-Centric Pub/SubPutting it all together
Object/Relational Mapping
Ownership DurabilityContent
Subscription
Minimum Profile
Data Centric Publish/Subscribe (DCPS)
Data Local Reconstruction Layer (DLRL)
DDS Interoperability Wire Protocol
Application
UDP/IP
Real-Time Publish/Subscribe Protocol
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Distributed Relational Information Modeling
‣ Topic Keys can be used to identify instances as well as relationships
‣ Relationships can be navigated by relying on a subset of SQL 92
‣ One-to-many relationships can be captured using foreign keys
‣Many-to-many relationships need to be modeled using a topics
‣ Keys can be represented by an arbitrary number of Topic fields
tID: longtemp: floathumidity: floatrID: long
TTempSensor
rID: longwidth: floatheight: floatlength: floatfID: long
TRoom
fID: longlevel: longopen: long
TFloor
cID: longtemp: floathumidity: floatfan_level: longstatus: longrID: long
TConditioner
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Data-Centric Pub/Sub
‣ Distributed Relational Data Model
‣ Local Queries
‣ Continuous Queries / Content Based Subscriptions
‣Windows
‣ Object/Relational Mapping
‣ Support for a subset of SQL-92
Perfect Blend of Data-Centric and Real-Time Publish/Subscribe Technologies
‣ Data-Centric Features are built-in and don’t rely on an external DBMS
‣ Providing thus performance, scalability, and availability
A
B
CD
E
F
m
J
K
Publisher
SubscriberPublisher
Publisher
Subscriber
Subscriber
DBMS
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
“Visualizing” Data-Centric Pub/Sub
A
B
CD
E
F
m
J
K
Publisher
D
E
J
K
A F
CD
A
B D
E
J
K
Subscriber
Subscriber
Subscriber
CD
A
B
Publisher
J
K
A F
Publisher
D
E
A
B
CD
E
F
m
J
K
Publisher
SubscriberPublisher
Publisher
Subscriber
Subscriber
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Organizing Information
‣ All DDS communication is happens within a Domain
‣ Domain can divided into Partitions
‣ Topics are published and subscribed across on or more Partitions
DomainPartition
D e l i v e r i n g P e r f o r m a n c e , O p e n n e s s , a n d F r e e d o m
OpenSplice DDS
Object-OrientedPub/Sub
Object/Relational Mapping
Ownership DurabilityContent
Subscription
Minimum Profile
Data Centric Publish/Subscribe (DCPS)
Data Local Reconstruction Layer (DLRL)
DDS Interoperability Wire Protocol
Application
UDP/IP
Real-Time Publish/Subscribe Protocol
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Object/Relational Mapping
‣ Automatically bridges the Object/Relational Impedance Mismatch
‣ Arbitrary object reconstructions
‣ Automatic Relationships Management
‣ Inheritance
‣ Local Operations
‣ Local/Distributed State
getTemp()getHumidity()
temp: floathumidity: float
TempSensor
set_climate();
width: floatheight: floatlength: floatclimate: int
Room
set_status()set_climate()get_level()
level: intopen: intclimate: int
Floor
setTemp()setHumidity()setFanLevel()start()stop()pause():
temp: floathumidity: float
Conditioner * 1
*
1
*1
tID: inttemp: floathumidity: floatrID: int
TTempSernsor
rID: intwidth: floatheight: floatlength: floatfID: int
TRoom
fID: intlevel: intopen: int
TFloor
cID: inttemp: floathumidity: floatfan_level: intstatus: intrID: int
TConditioner
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Object/Relational MappingUnleashing the power of Objects...
Relational
Object Oriented
call_sign: stringroute: listorigin: stringdest: stringaircraft: stringradar_id: string
FlightTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopicimage: stringrefresh_rate: intvisible: booluid: GUID
FlightViewTopiccall_sign: stringuid: GUIDhandle: Handle
FlightViewAssociation
OO ➡ Relational
‣ Middleware can automatically manage the generation and association between the Object-Oriented Model and the Relational Model
Relational ➡ OO
‣ The Relational Model can be mapped to an Object Oriented model‣ The mapping is under control of the architect
operationOne()operationTwo()
x: floaty: floatz: floatradar_id: string
RadarTrack
operationX()operationY()
call_sign: stringroute: listorigin: stringdest: stringaircraft: string
Flight
*1
display()
image: stringrefresh_rate: intvisible: booluid: GUID
FlightView
**
handle: HandleCanvas
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Multiple Object/Relational Mappings
DCPScall_sign: stringroute: listorigin: stringdest: stringaircraft: stringradar_id: string
FlightTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopicimage: stringrefresh_rate: intvisible: booluid: GUID
FlightViewTopiccall_sign: stringuid: GUIDhandle: Handle
FlightViewAssociation
DLRL
Multiple Mappings‣ Different Object/Relatioal Mappings (ORM) can be used for different subsystems‣ The state is shared across all the local reconstruction (ORMs)
operationOne()operationTwo()
x: floaty: floatz: floatradar_id: string
RadarTrack
operationX()operationY()
call_sign: stringroute: listorigin: stringdest: stringaircraft: string
Flight
*1
display()
image: stringrefresh_rate: intvisible: booluid: GUID
FlightView
**
handle: HandleCanvas
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Multiple Object/Relational Mappings
DCPScall_sign: stringroute: listorigin: stringdest: stringaircraft: stringradar_id: string
FlightTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopicimage: stringrefresh_rate: intvisible: booluid: GUID
FlightViewTopiccall_sign: stringuid: GUIDhandle: Handle
FlightViewAssociation
DLRL
Multiple Mappings‣ Different Object/Relatioal Mappings (ORM) can be used for different subsystems‣ The state is shared across all the local reconstruction (ORMs)
operationOne()operationTwo()
x: floaty: floatz: floatradar_id: string
RadarTrack
operationX()operationY()
call_sign: stringroute: listorigin: stringdest: stringaircraft: string
Flight
*1
display()
image: stringrefresh_rate: intvisible: booluid: GUID
FlightView
**
handle: HandleCanvas
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Multiple Object/Relational Mappings
DCPScall_sign: stringroute: listorigin: stringdest: stringaircraft: stringradar_id: string
FlightTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopicimage: stringrefresh_rate: intvisible: booluid: GUID
FlightViewTopiccall_sign: stringuid: GUIDhandle: Handle
FlightViewAssociation
DL
RL
display()
image: stringrefresh_rate: intvisible: booluid: GUIDx: floaty: floatz: floatcall_sign: string
FastFlightView DLRL
Multiple Mappings‣ Different Object/Relatioal Mappings (ORM) can be used for different subsystems‣ The state is shared across all the local reconstruction (ORMs)
operationOne()operationTwo()
x: floaty: floatz: floatradar_id: string
RadarTrack
operationX()operationY()
call_sign: stringroute: listorigin: stringdest: stringaircraft: string
Flight
*1
display()
image: stringrefresh_rate: intvisible: booluid: GUID
FlightView
**
handle: HandleCanvas
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Multiple Object/Relational Mappings
DCPScall_sign: stringroute: listorigin: stringdest: stringaircraft: stringradar_id: string
FlightTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopicimage: stringrefresh_rate: intvisible: booluid: GUID
FlightViewTopiccall_sign: stringuid: GUIDhandle: Handle
FlightViewAssociation
DL
RL
display()
image: stringrefresh_rate: intvisible: booluid: GUIDx: floaty: floatz: floatcall_sign: string
FastFlightView
DLRL
Multiple Mappings‣ Different Object/Relatioal Mappings (ORM) can be used for different subsystems‣ The state is shared across all the local reconstruction (ORMs)
operationOne()operationTwo()
x: floaty: floatz: floatradar_id: string
RadarTrack
operationX()operationY()
call_sign: stringroute: listorigin: stringdest: stringaircraft: string
Flight
*1
display()
image: stringrefresh_rate: intvisible: booluid: GUID
FlightView
**
handle: HandleCanvas
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
An Example
image: stringrefresh_rate: intvisible: booluid: GUID
FlightViewTopic
call_sign: stringroute: listorigin: stringdest: stringaircraft: stringradar_id: string
FlightTopic
operationOne()operationTwo()
x: floaty: floatz: floatradar_id: string
RadarTrack
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
display()
image: stringrefresh_rate: intvisible: booluid: GUIDx: floaty: floatz: floatcall_sign: string
FastFlightView
Primary RadarHigh-End 3D Visualization
Flight Data Processor
RadarTrack
operationX()operationY()
call_sign: stringroute: listorigin: stringdest: stringaircraft: string
Flight
RadarTrackList
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
An Example
image: stringrefresh_rate: intvisible: booluid: GUID
FlightViewTopic
call_sign: stringroute: listorigin: stringdest: stringaircraft: stringradar_id: string
FlightTopic
operationOne()operationTwo()
x: floaty: floatz: floatradar_id: string
RadarTrack
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
display()
image: stringrefresh_rate: intvisible: booluid: GUIDx: floaty: floatz: floatcall_sign: string
FastFlightView
Primary RadarHigh-End 3D Visualization
Flight Data Processor
RadarTrack
operationX()operationY()
call_sign: stringroute: listorigin: stringdest: stringaircraft: string
Flight
RadarTrackList
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
An Example
image: stringrefresh_rate: intvisible: booluid: GUID
FlightViewTopic
call_sign: stringroute: listorigin: stringdest: stringaircraft: stringradar_id: string
FlightTopic
operationOne()operationTwo()
x: floaty: floatz: floatradar_id: string
RadarTrack
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
display()
image: stringrefresh_rate: intvisible: booluid: GUIDx: floaty: floatz: floatcall_sign: string
FastFlightView
Primary RadarHigh-End 3D Visualization
Flight Data Processor
RadarTrack
operationX()operationY()
call_sign: stringroute: listorigin: stringdest: stringaircraft: string
Flight
RadarTrackList
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
An Example
image: stringrefresh_rate: intvisible: booluid: GUID
FlightViewTopic
call_sign: stringroute: listorigin: stringdest: stringaircraft: stringradar_id: string
FlightTopic
operationOne()operationTwo()
x: floaty: floatz: floatradar_id: string
RadarTrack
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
display()
image: stringrefresh_rate: intvisible: booluid: GUIDx: floaty: floatz: floatcall_sign: string
FastFlightView
Primary RadarHigh-End 3D Visualization
Flight Data Processor
RadarTrack
operationX()operationY()
call_sign: stringroute: listorigin: stringdest: stringaircraft: string
Flight
RadarTrackList
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
An Example
image: stringrefresh_rate: intvisible: booluid: GUID
FlightViewTopic
call_sign: stringroute: listorigin: stringdest: stringaircraft: stringradar_id: string
FlightTopic
operationOne()operationTwo()
x: floaty: floatz: floatradar_id: string
RadarTrack
display()
image: stringrefresh_rate: intvisible: booluid: GUIDx: floaty: floatz: floatcall_sign: string
FastFlightView
Primary RadarHigh-End 3D Visualization
Flight Data Processor
RadarTrack
operationX()operationY()
call_sign: stringroute: listorigin: stringdest: stringaircraft: string
Flight
RadarTrackList
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopicx: floaty: floatz: floatradar_id: string
RadarTrackTopicx: floaty: floatz: floatradar_id: string
RadarTrackTopic
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
An Example
image: stringrefresh_rate: intvisible: booluid: GUID
FlightViewTopic
call_sign: stringroute: listorigin: stringdest: stringaircraft: stringradar_id: string
FlightTopic
operationOne()operationTwo()
x: floaty: floatz: floatradar_id: string
RadarTrack
display()
image: stringrefresh_rate: intvisible: booluid: GUIDx: floaty: floatz: floatcall_sign: string
FastFlightView
Primary RadarHigh-End 3D Visualization
Flight Data Processor
RadarTrack
operationX()operationY()
call_sign: stringroute: listorigin: stringdest: stringaircraft: string
Flight
RadarTrackList
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopicx: floaty: floatz: floatradar_id: string
RadarTrackTopicx: floaty: floatz: floatradar_id: string
RadarTrackTopic
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
An Example
image: stringrefresh_rate: intvisible: booluid: GUID
FlightViewTopic
call_sign: stringroute: listorigin: stringdest: stringaircraft: stringradar_id: string
FlightTopic
operationOne()operationTwo()
x: floaty: floatz: floatradar_id: string
RadarTrack
display()
image: stringrefresh_rate: intvisible: booluid: GUIDx: floaty: floatz: floatcall_sign: string
FastFlightView
Primary RadarHigh-End 3D Visualization
Flight Data Processor
RadarTrack
operationX()operationY()
call_sign: stringroute: listorigin: stringdest: stringaircraft: string
Flight
RadarTrackList
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
An Example
image: stringrefresh_rate: intvisible: booluid: GUID
FlightViewTopic
call_sign: stringroute: listorigin: stringdest: stringaircraft: stringradar_id: string
FlightTopic
operationOne()operationTwo()
x: floaty: floatz: floatradar_id: string
RadarTrack
display()
image: stringrefresh_rate: intvisible: booluid: GUIDx: floaty: floatz: floatcall_sign: string
FastFlightView
Primary RadarHigh-End 3D Visualization
Flight Data Processor
RadarTrack
operationX()operationY()
call_sign: stringroute: listorigin: stringdest: stringaircraft: string
Flight
RadarTrackList
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
An Example
image: stringrefresh_rate: intvisible: booluid: GUID
FlightViewTopic
call_sign: stringroute: listorigin: stringdest: stringaircraft: stringradar_id: string
FlightTopic
operationOne()operationTwo()
x: floaty: floatz: floatradar_id: string
RadarTrack
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
display()
image: stringrefresh_rate: intvisible: booluid: GUIDx: floaty: floatz: floatcall_sign: string
FastFlightView
Primary RadarHigh-End 3D Visualization
Flight Data Processor
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
operationOne()operationTwo()
x: floaty: floatz: floatradar_id: string
RadarTrack
Secondary Radar
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
RadarTrack
operationX()operationY()
call_sign: stringroute: listorigin: stringdest: stringaircraft: string
Flight
RadarTrackList
RadarTrack
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
Automatically Manage Relationships
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Custom Filter Example
image: stringrefresh_rate: intvisible: booluid: GUID
FlightViewTopic
call_sign: stringroute: listorigin: stringdest: stringaircraft: stringradar_id: string
FlightTopic
operationOne()operationTwo()
x: floaty: floatz: floatradar_id: string
RadarTrack
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
display()
image: stringrefresh_rate: intvisible: booluid: GUIDx: floaty: floatz: floatcall_sign: string
FastFlightView
Primary RadarHigh-End 3D Visualization
Flight Data Processor
operationOne()operationTwo()
x: floaty: floatz: floatradar_id: string
RadarTrack
Secondary Radar
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
RadarTrack
operationX()operationY()
call_sign: stringroute: listorigin: stringdest: stringaircraft: string
Flight
RadarTrackList
RadarTrack
SQL FilterCustom Filter
SQL FilterCustom Filter
Filter based on Region-of-interest
Automatically Manage Relationships
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Custom Filter Example
image: stringrefresh_rate: intvisible: booluid: GUID
FlightViewTopic
call_sign: stringroute: listorigin: stringdest: stringaircraft: stringradar_id: string
FlightTopic
operationOne()operationTwo()
x: floaty: floatz: floatradar_id: string
RadarTrack
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
display()
image: stringrefresh_rate: intvisible: booluid: GUIDx: floaty: floatz: floatcall_sign: string
FastFlightView
Primary RadarHigh-End 3D Visualization
Flight Data Processor
operationOne()operationTwo()
x: floaty: floatz: floatradar_id: string
RadarTrack
Secondary Radar
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
RadarTrack
operationX()operationY()
call_sign: stringroute: listorigin: stringdest: stringaircraft: string
Flight
RadarTrackList
RadarTrack
SQL FilterCustom Filter
SQL FilterCustom Filter
Filter based on Region-of-interest
Automatically Manage Relationships
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Custom Filter Example
image: stringrefresh_rate: intvisible: booluid: GUID
FlightViewTopic
call_sign: stringroute: listorigin: stringdest: stringaircraft: stringradar_id: string
FlightTopic
operationOne()operationTwo()
x: floaty: floatz: floatradar_id: string
RadarTrack
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
display()
image: stringrefresh_rate: intvisible: booluid: GUIDx: floaty: floatz: floatcall_sign: string
FastFlightView
Primary RadarHigh-End 3D Visualization
Flight Data Processor
operationOne()operationTwo()
x: floaty: floatz: floatradar_id: string
RadarTrack
Secondary Radar
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
RadarTrack
operationX()operationY()
call_sign: stringroute: listorigin: stringdest: stringaircraft: string
Flight
RadarTrackList
RadarTrack
SQL FilterCustom Filter
SQL FilterCustom Filter
Filter based on Region-of-interest
Automatically Manage Relationships
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Custom Filter Example
image: stringrefresh_rate: intvisible: booluid: GUID
FlightViewTopic
call_sign: stringroute: listorigin: stringdest: stringaircraft: stringradar_id: string
FlightTopic
operationOne()operationTwo()
x: floaty: floatz: floatradar_id: string
RadarTrack
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
display()
image: stringrefresh_rate: intvisible: booluid: GUIDx: floaty: floatz: floatcall_sign: string
FastFlightView
Primary RadarHigh-End 3D Visualization
Flight Data Processor
operationOne()operationTwo()
x: floaty: floatz: floatradar_id: string
RadarTrack
Secondary Radar
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
RadarTrack
operationX()operationY()
call_sign: stringroute: listorigin: stringdest: stringaircraft: string
Flight
RadarTrackList
RadarTrack
SQL FilterCustom Filter
SQL FilterCustom Filter
Filter based on Region-of-interest
Automatically Manage Relationships
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
x: floaty: floatz: floatradar_id: string
RadarTrackTopic
D e l i v e r i n g P e r f o r m a n c e , O p e n n e s s , a n d F r e e d o m
OpenSplice DDS
...Putting it all Together
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
DCPS Application
‣ The application works directly at the DCPS level
‣When using OO Programming Languages the Object/Relational Impedance Mismatch has to be manually dealt
Ownership DurabilityContent
Subscription
Minimum Profile
Data Centric Publish/Subscribe (DCPS)
DD
S v
1.2
tID: inttemp: floathumidity: floatrID: int
TTempSensor
rID: intwidth: floatheight: floatlength: floatfID: int
TRoom
fID: intlevel: intopen: int
TFloor
cID: inttemp: floathumidity: floatfan_level: intstatus: intrID: int
TConditioner
Application
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
DLRL Application
‣ The DLRL Layer is used to provide a Language Integrated access to DDS data
‣ The Designer has great freedom in deciding how Objects have to map to Topics
‣ Different Object Reconstruction can be created for different applications Ownership Durability
Content Subscription
Minimum Profile
Data Centric Publish/Subscribe (DCPS)
DD
S v
1.2
getTemp()getHumidity()
temp: floathumidity: float
TempSensor
set_climate();set_temp()set_humidity()
width: floatheight: floatlength: floatclimate: int
Room
set_status()set_climate()get_level()
level: intopen: intclimate: int
Floor
setTemp()setHumidity()setFanLevel()start()stop()pause():
temp: floathumidity: floatfan_level: intstatus: int
Conditioner *1
*
1
*
1
tID: inttemp: floathumidity: floatrID: int
TTempSensor
rID: intwidth: floatheight: floatlength: floatfID: int
TRoom
fID: intlevel: intopen: int
TFloor
cID: inttemp: floathumidity: floatfan_level: intstatus: intrID: int
TConditioner
Object/Relational Mapping
Data Local Reconstruction Layer (DLRL) DD
S v
1.2
Application
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Generic DDS Application
‣ In the most general case, different portion of the application might rely on DLRL or DCPS depending on their specific needs
‣ DCPS access might be required for accessing and tuning some specific QoS
Object/Relational Mapping
Data Local Reconstruction Layer (DLRL)
Ownership DurabilityContent
Subscription
Minimum Profile
Data Centric Publish/Subscribe (DCPS)
DD
S v
1.2
getTemp()getHumidity()
temp: floathumidity: float
TempSensor
set_climate();set_temp()set_humidity()
width: floatheight: floatlength: floatclimate: int
Room
set_status()set_climate()get_level()
level: intopen: intclimate: int
Floor
setTemp()setHumidity()setFanLevel()start()stop()pause():
temp: floathumidity: floatfan_level: intstatus: int
Conditioner *1
*
1
*
1
tID: inttemp: floathumidity: floatrID: int
TTempSensor
rID: intwidth: floatheight: floatlength: floatfID: int
TRoom
fID: intlevel: intopen: int
TFloor
cID: inttemp: floathumidity: floatfan_level: intstatus: intrID: int
TConditioner
Application
Application
D e l i v e r i n g P e r f o r m a n c e , O p e n n e s s , a n d F r e e d o m
OpenSplice DDS
QoS-EnabledPub/Sub
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Communicating with Topics, Partitions and Domains
1 21 62
2 20 61
3 25 70 25
1 22 62 1 23 63
2 19 60
3 25 71 3 25 74 3 26 77
Samples
Topic
Instances1 21 62
2 20 61
3 25 70 25
1 22 62 1 23 63
2 19 60
3 25 71 3 25 74 3 26 77
Samples
Topic
Instances1 21 62
2 20 61
3 25 70 25
1 22 62 1 23 63
2 19 60
3 25 71 3 25 74 3 26 77
Samples
Topic
InstancesDataReaderDataReaderDataReaderDataReaderDataReaderDataReaderDataWriterDataWriterDataWriterDataWriter
struct TempSensor { int tID; float temp; float humidity; };#pragma keylist TempSensor tID
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Communicating with Topics, Partitions and Domains
1 21 62
2 20 61
3 25 70 25
1 22 62 1 23 63
2 19 60
3 25 71 3 25 74 3 26 77
Samples
Topic
Instances1 21 62
2 20 61
3 25 70 25
1 22 62 1 23 63
2 19 60
3 25 71 3 25 74 3 26 77
Samples
Topic
Instances1 21 62
2 20 61
3 25 70 25
1 22 62 1 23 63
2 19 60
3 25 71 3 25 74 3 26 77
Samples
Topic
InstancesDataReaderDataReaderDataReaderDataReaderDataReaderDataReaderDataWriterDataWriterDataWriterDataWriter
Partition
struct TempSensor { int tID; float temp; float humidity; };#pragma keylist TempSensor tID
PublisherSubscriber
Arrows show structural relationships, not data-flows
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Communicating with Topics, Partitions and Domains
1 21 62
2 20 61
3 25 70 25
1 22 62 1 23 63
2 19 60
3 25 71 3 25 74 3 26 77
Samples
Topic
Instances1 21 62
2 20 61
3 25 70 25
1 22 62 1 23 63
2 19 60
3 25 71 3 25 74 3 26 77
Samples
Topic
Instances1 21 62
2 20 61
3 25 70 25
1 22 62 1 23 63
2 19 60
3 25 71 3 25 74 3 26 77
Samples
Topic
InstancesDataReaderDataReaderDataReaderDataReaderDataReaderDataReaderDataWriterDataWriterDataWriterDataWriter
PublisherSubscriberPartition
Domain
Domain Participant
struct TempSensor { int tID; float temp; float humidity; };#pragma keylist TempSensor tID
Arrows show structural relationships, not data-flows
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
QoS Model
‣ QoS-Policies are used to control relevant properties of OpenSplice DDS entities, such as:‣ Temporal Properties
‣ Priority
‣ Durability
‣ Availability
‣ ...
‣ Some QoS-Policies are matched based on a Request vs. Offered Model thus QoS-enforcement
‣ Publications and Subscriptions match only if the declared vs. requested QoS are compatible ‣ e.g., it is not possible to match a publisher which delivers data unreliably with a subscriber which requires reliability
Publisher
DataWriter
Topic
Type
QoS
Name
writes
QoS
DataWriter
Topic
Typewrites
Subscriber
DataReaderreads
DataReaderreads
...
QoS
Name
QoS
QoS QoS
QoS matching
......
QoS QoS
Type Matching
DomainParticipant DomainParticipant
QoS QoS
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Sample QoS Policies
‣ Rich set of QoS allow to configure several different aspects of data availability, delivery and timeliness
‣ QoS can be used to control and optimize network as well as computing resource
QoS Policy Applicability RxO Modifiable
DURABILITY
DURABILITY SERVICE
LIFESPAN
HISTORY
PRESENTATION
RELIABILITY
PARTITION
DESTINATION ORDER
OWNERSHIP
OWNERSHIP STRENGTH
DEADLINE
LATENCY BUDGET
TRANSPORT PRIORITY
TIME BASED FILTER
RESOURCE LIMITS
USER_DATA
TOPIC_DATA
GROUP_DATA
T, DR, DW Y N Data AvailabilityT, DW N N
Data Availability
T, DW - Y
Data Availability
T, DR, DW N N
Data Availability
P, S Y N Data DeliveryT, DR, DW Y N
Data Delivery
P, S N Y
Data Delivery
T, DR, DW Y N
Data Delivery
T, DR, DW Y N
Data Delivery
DW - Y
Data Delivery
T, DR, DW Y Y Data TimelinessT, DR, DW Y Y
Data Timeliness
T, DW - Y
Data Timeliness
DR - Y Resources
T, DR, DW N N
Resources
DP, DR, DW N Y ConfigurationT N Y
Configuration
P, S N Y
Configuration
Publisher
DataWriter
Topic
Type
QoS
Name
writes
QoS
DataWriter
Topic
Typewrites
Subscriber
DataReaderreads
DataReaderreads
...
QoS
Name
QoS
QoS QoS
QoS matching
......
QoS QoS
Type Matching
DomainParticipant DomainParticipant
QoS QoS
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Mapping QoS
Data Latency
LatencyBudget TransportPriority
Throughput
DeadlineTimeBasedFilter
Control over Latency/Throughput tradeoff Control over data latency Control over data priority
Which properties does QoS controls?
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Mapping QoS
Data Latency
LatencyBudget TransportPriority
Throughput
DeadlineTimeBasedFilter
Control over Latency/Throughput tradeoff Control over data latency Control over data priority
Data Availability
OwnershipOwnershipStrength
Durability
History
Lifespan
Control over data queueing Control over data persistency Control over data sources hot-swap
Which properties does QoS controls?
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Mapping QoS
Data Latency
LatencyBudget TransportPriority
Throughput
DeadlineTimeBasedFilter
Control over Latency/Throughput tradeoff Control over data latency Control over data priority
Data Availability
OwnershipOwnershipStrength
Durability
History
Lifespan
Control over data queueing Control over data persistency Control over data sources hot-swap
Data Delivery
Reliability
DestinationOrder
Presentation
Control over data distribution reliability Control over data ordering Control over presentation
OpenSplice DDS provides programmatic QoS-driven support for configuring the most important properties of data distribution!
Which properties does QoS controls?
© 2008, PrismTech. All Rights Reserved
Data DeliveryData Delivery
Reliability
DestinationOrder
Presentation
QoS Policy Applicability RxO Modifiable
PRESENTATION
RELIABILITY
PARTITION
DESTINATION
ORDER
OWNERSHIP
OWNERSHIP
STRENGTH
P, S Y N
Data Delivery
T, DR, DW Y N
P, S N Y
T, DR, DW Y N
T, DR, DW Y N
DW - Y
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Reliability
The RELIABILITY QoS indicate the level of guarantee offered by the DDS in delivering data to subscribers. Possible variants are:
QoS Policy Applicability RxO Modifiable
RELIABILITY T, DR, DW Y N
Publisher
DataWriter
Topic
Type
QoS
Name
writes
QoS
QoS
DataWriter
Topic
Typewrites
Subscriber
DataReaderreads
QoS
DataReaderreads
...
QoS
Name
QoS
QoS QoS
QoS matching
QoS matching
......
‣ Reliable. In steady-state the middleware guarantees that all samples in the DataWriter history will eventually be delivered to all the DataReader
‣ Best Effort. Indicates that it is acceptable to not retry propagation of any samples
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Partition‣ All DDS communication is
happens within a Domain
‣ Domain can divided into Partitions
‣ Topics are published and subscribed across on or more Partitions
‣ The Partition QoS allows to specify to which “Partition(s)” is a publisher/subscriber connected
‣ Each Partition is identified by a string (e.g. “RedPartition, “YellowPartition”, “GreenPartition”)
A
B
CD
E
F
m
J
K
Publisher
SubscriberPublisher
Publisher
Subscriber
Subscriber
DomainPartition
PARTITION P, S N Y
QoS Policy Applicability RxO Modifiable
RedPartition
YellowPartitionGreenPartition
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Ownership The OWNERSHIP QoS specifies whether it is allowed for multiple DataWriters to write the same instance of the data and if so, how these modifications should be arbitrated. Possible choices are:
Publisher
DataWriter
Topic
Type
QoS
Name
writes
QoS
QoS
DataWriter
Topic
Typewrites
Subscriber
DataReaderreads
QoS
DataReaderreads
...
QoS
Name
QoS
QoS QoS
QoS matching
QoS matching
......
QoS Policy Applicability RxO Modifiable
OWNERSHIP T, DR, DW Y N
‣ Shared. Multiple writers are allowed to update the same instance and all the updates are made available to the reader
‣ Exclusive. Indicates that each instance can only be owned by one DataWriter, but the owner of an instance can change dynamically -- due to liveliness changes
‣ The selection of the owner is controlled by the setting of the OWNERSHIP_STRENGTH QoS policy
Who owns the data?
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Ownership StrengthThe OWNERSHIP_STRENGTH Specifies the value of the “strength” used to arbitrate among DataWriters that attempt to modify the same data instance
Publisher
DataWriter
Topic
Type
QoS
Name
writes
QoS
QoS
DataWriter
Topic
Typewrites
Subscriber
DataReaderreads
QoS
DataReaderreads
...
QoS
Name
QoS
QoS QoS
QoS matching
QoS matching
......QoS Policy Applicability RxO Modifiable
OWNERSHIP
STRENGTH
DW - Y
‣ Data instance are identified by the couple (Topic, Key)
‣ The policy applies only if the OWNERSHIP is EXCLUSIVE
How strong are you?
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Ownership @ Work‣ A Topic can have Shared or Exclusive Ownership
‣ Exclusively owned Topics can be modified by a single writer
‣ Writer strength is used to coordinate replicated writers
R1
R2
R3
symbol: "MSFT"name: "Microsoft Corp."exchange: "NASD"quote: 33.73
StockQuote
symbol: "GOOG"name: "Google Inc."exchange: "NASD"quote: 663.97
StockQuote
W1
W1’’
STRENGTH=3
STRENGTH=1
symbol: "MSFT"name: "Microsoft Corp."exchange: "NASD"quote: 33.73
StockQuote
symbol: "GOOG"name: "Google Inc."exchange: "NASD"quote: 663.97
StockQuotesymbol: "AAPL"name: "Apple Inc."exchange: "NASD"quote: 165.37
StockQuote
W1’
STRENGTH=2
symbol: "MSFT"name: "Microsoft Corp."exchange: "NASD"quote: 33.73
StockQuote
symbol: "GOOG"name: "Google Inc."exchange: "NASD"quote: 663.97
StockQuotesymbol: "AAPL"name: "Apple Inc."exchange: "NASD"quote: 165.37
StockQuote
symbol: "GOOG"name: "Google Inc."exchange: "NASD"quote: 663.97
StockQuote
symbol: "GOOG"name: "Google Inc."exchange: "NASD"quote: 663.97
StockQuote
symbol: "AAPL"name: "Apple Inc."exchange: "NASD"quote: 165.37
StockQuotesymbol: "AAPL"name: "Apple Inc."exchange: "NASD"quote: 165.37
StockQuote
symbol: "AAPL"name: "Apple Inc."exchange: "NASD"quote: 165.37
StockQuote
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Ownership @ Work‣ A Topic can have Shared or Exclusive Ownership
‣ Exclusively owned Topics can be modified by a single writer
‣ Writer strength is used to coordinate replicated writers
R1
R2
R3
symbol: "MSFT"name: "Microsoft Corp."exchange: "NASD"quote: 33.73
StockQuote
symbol: "GOOG"name: "Google Inc."exchange: "NASD"quote: 663.97
StockQuote
W1
W1’’
STRENGTH=3
STRENGTH=1
symbol: "MSFT"name: "Microsoft Corp."exchange: "NASD"quote: 33.73
StockQuote
symbol: "GOOG"name: "Google Inc."exchange: "NASD"quote: 663.97
StockQuote
W1’
STRENGTH=2
symbol: "MSFT"name: "Microsoft Corp."exchange: "NASD"quote: 33.73
StockQuote
symbol: "GOOG"name: "Google Inc."exchange: "NASD"quote: 663.97
StockQuote
symbol: "GOOG"name: "Google Inc."exchange: "NASD"quote: 663.97
StockQuote
symbol: "GOOG"name: "Google Inc."exchange: "NASD"quote: 663.97
StockQuote
symbol: "AAPL"name: "Apple Inc."exchange: "NASD"quote: 165.37
StockQuote
symbol: "AAPL"name: "Apple Inc."exchange: "NASD"quote: 165.37
StockQuote
symbol: "AAPL"name: "Apple Inc."exchange: "NASD"quote: 165.37
StockQuote
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Ownership @ Work‣ A Topic can have Shared or Exclusive Ownership
‣ Exclusively owned Topics can be modified by a single writer
‣ Writer strength is used to coordinate replicated writers
R1
R2
R3
symbol: "MSFT"name: "Microsoft Corp."exchange: "NASD"quote: 33.73
StockQuote
symbol: "GOOG"name: "Google Inc."exchange: "NASD"quote: 663.97
StockQuote
W1
W1’’
STRENGTH=3
STRENGTH=1
symbol: "MSFT"name: "Microsoft Corp."exchange: "NASD"quote: 33.73
StockQuote
W1’
STRENGTH=2
symbol: "MSFT"name: "Microsoft Corp."exchange: "NASD"quote: 33.73
StockQuote
symbol: "GOOG"name: "Google Inc."exchange: "NASD"quote: 663.97
StockQuote
symbol: "GOOG"name: "Google Inc."exchange: "NASD"quote: 663.97
StockQuote
symbol: "AAPL"name: "Apple Inc."exchange: "NASD"quote: 165.37
StockQuote
symbol: "AAPL"name: "Apple Inc."exchange: "NASD"quote: 165.37
StockQuote
symbol: "AAPL"name: "Apple Inc."exchange: "NASD"quote: 165.37
StockQuote
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Managing Hot-Swap‣ A Topic can have Shared or Exclusive Ownership
‣ Exclusively owned Topics can be modified by a single writer
‣ Writer strength is used to coordinate replicated writers
symbol: "MSFT"name: "Microsoft Corp."exchange: "NASD"quote: 33.73
StockQuote
symbol: "GOOG"name: "Google Inc."exchange: "NASD"quote: 663.97
StockQuote
symbol: "AAPL"name: "Apple Inc."exchange: "NASD"quote: 165.37
StockQuote
symbol: "AAPL"name: "Apple Inc."exchange: "NASD"quote: 165.37
StockQuote
symbol: "GOOG"name: "Google Inc."exchange: "NASD"quote: 663.97
StockQuote
symbol: "GOOG"name: "Google Inc."exchange: "NASD"quote: 663.97
StockQuote
symbol: "AAPL"name: "Apple Inc."exchange: "NASD"quote: 165.37
StockQuote
symbol: "MSFT"name: "Microsoft Corp."exchange: "NASD"quote: 33.73
StockQuote
symbol: "MSFT"name: "Microsoft Corp."exchange: "NASD"quote: 33.73
StockQuote
R1
R2
R3W1’’
STRENGTH=1
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Managing Hot-Swap‣ A Topic can have Shared or Exclusive Ownership
‣ Exclusively owned Topics can be modified by a single writer
‣ Writer strength is used to coordinate replicated writers
symbol: "MSFT"name: "Microsoft Corp."exchange: "NASD"quote: 33.73
StockQuote
symbol: "GOOG"name: "Google Inc."exchange: "NASD"quote: 663.97
StockQuote
symbol: "AAPL"name: "Apple Inc."exchange: "NASD"quote: 165.37
StockQuote
symbol: "AAPL"name: "Apple Inc."exchange: "NASD"quote: 165.37
StockQuote
symbol: "GOOG"name: "Google Inc."exchange: "NASD"quote: 663.97
StockQuote
symbol: "GOOG"name: "Google Inc."exchange: "NASD"quote: 663.97
StockQuote
symbol: "AAPL"name: "Apple Inc."exchange: "NASD"quote: 165.37
StockQuote
symbol: "MSFT"name: "Microsoft Corp."exchange: "NASD"quote: 33.73
StockQuote
symbol: "MSFT"name: "Microsoft Corp."exchange: "NASD"quote: 33.73
StockQuoteR1
R2
R3W1’’
STRENGTH=1
© 2008, PrismTech. All Rights Reserved
Data Timeliness
Data Latency
LatencyBudget TransportPriority
Throughput
DeadlineTimeBasedFilter
QoS Policy Applicability RxO Modifiable
DEADLINE
LATENCY
BUDGET
TRANSPORT
PRIORITY
T, DR, DW Y Y
Data
Timeliness
T, DR, DW Y Y
T, DW - Y
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
DeadlineThe DEADLINE QoS policy allows to define the maximum inter-arrival time between data samples
QoS Policy Applicability RxO Modifiable
DEADLINE T, DR, DW Y Y
Publisher
DataWriter
Topic
Type
QoS
Name
writes
QoS
QoS
DataWriter
Topic
Typewrites
Subscriber
DataReaderreads
QoS
DataReaderreads
...
QoS
Name
QoS
QoS QoS
QoS matching
QoS matching
......
You can’t be later than...
‣ DataWriter indicates that the application commits to write a new value at least once every deadline period
‣ DataReaders are notified by the DDS when the DEADLINE QoS contract is violated
Publisher Subscriber
DeadlineDeadlineDeadlineDeadlineDeadline
Deadline Violation
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Latency BudgetThe LATENCY_BUDGET QoS policy specifies the maximum acceptable delay from the time the data is written until the data is inserted in the receiver's application-cache
QoS Policy Applicability RxO Modifiable
LATENCY
BUDGET
T, DR, DW Y Y
‣ The default value of the duration is zero indicating that the delay should be minimized
‣ This policy is a hint to the DDS, not something that must be monitored or enforced.
I need to get there in at most...
Publisher
DataWriter
Topic
Type
QoS
Name
writes
QoS
QoS
DataWriter
Topic
Typewrites
Subscriber
DataReaderreads
QoS
DataReaderreads
...
QoS
Name
QoS
QoS QoS
QoS matching
QoS matching
......
T1
T2
T3
Latency Budget = Latency = TBuff +T1+T2+T3TBuff
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Transport Priority
The TRANSPORT_PRIORITY QoS policy is a hint to the infrastructure as to how to set the priority of the underlying transport used to send the data.
QoS Policy Applicability RxO Modifiable
TRANSPORT
PRIORITY
T, DW - Y
Publisher
DataWriter
Topic
Type
QoS
Name
writes
QoS
QoS
DataWriter
Topic
Typewrites
Subscriber
DataReaderreads
QoS
DataReaderreads
...
QoS
Name
QoS
QoS QoS
QoS matching
QoS matching
......
VIP Data, stay clear!
© 2008, PrismTech. All Rights Reserved
Data Availability
Data Availability
OwnershipOwnershipStrength
Durability
History
Lifespan
QoS Policy Applicability RxO Modifiable
DURABILITY
DURABILITY
SERVICE
LIFESPAN
HISTORY
T, DR, DW Y N
Data
Availability
T, DW N N
T, DW - Y
T, DR, DW N N
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Durability
‣ Volatile. No need to keep data instances for late joining data readers
‣ Transient Local. Data instance availability for late joining data reader is tied to the data writer availability
‣ Transient. Data instance availability outlives the data writer
‣ Persistent. Data instance availability outlives system restarts
Publisher
DataWriter
Topic
Type
QoS
Name
writes
QoS
QoS
DataWriter
Topic
Typewrites
Subscriber
DataReaderreads
QoS
DataReaderreads
...
QoS
Name
QoS
QoS QoS
QoS matching
QoS matching
......
The DURABILITY QoS controls the data availability w.r.t. late joiners, specifically the DDS provides the following variants:
The DURABILITY_SERVICE QoS provide control over configuration of the service that implements the transient and persistent durability features
QoS Policy Applicability RxO Modifiable
DURABILITY
DURABILITY
SERVICE
T, DR, DW Y N
T, DW N N
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Lifespan
‣ The LIFESPAN QoS policy allows to control what happens to stale data
‣ It specifies the validity interval for data written by the DataWriter
‣ The default validity interval is infinite
QoS Policy Applicability RxO Modifiable
LIFESPAN T, DW - Y
Publisher
DataWriter
Topic
Type
QoS
Name
writes
QoS
QoS
DataWriter
Topic
Typewrites
Subscriber
DataReaderreads
QoS
DataReaderreads
...
QoS
Name
QoS
QoS QoS
QoS matching
QoS matching
......
For how long will this data be available?
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
HistoryThe HISTORY QoS policy controls whether the DDS should deliver only the most recent value, attempt to deliver all intermediate values, or do something in between. The policy can be configured to provide the following semantics:
QoS Policy Applicability RxO Modifiable
HISTORY T, DR, DW N N
Publisher
DataWriter
Topic
Type
QoS
Name
writes
QoS
QoS
DataWriter
Topic
Typewrites
Subscriber
DataReaderreads
QoS
DataReaderreads
...
QoS
Name
QoS
QoS QoS
QoS matching
QoS matching
......
‣ Keep Last. The DDS will only attempt to keep the most recent “depth” samples of each instance of data identified by its key
‣ Keep All. The DDS will attempt to keep all the samples of each instance of data identified by its key.
‣ On the DataWriter Samples are kept until delivered to all known subscribers
‣ On the DataReader side samples are kept until the application “takes” them
How many data samples should I keep?
D e l i v e r i n g P e r f o r m a n c e , O p e n n e s s , a n d F r e e d o m
OpenSplice DDS
Managing Data History
struct Counter { int cID; int count;};#pragma keylist Counter cID
Topic Used in next section.
Topic
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
How many samples?
‣ The History QoS Controls the number of samples-per-instance that will be stored by the middleware on behalf of a Reader
‣ Keep Last K. The History QoS can be set so to always have the latest K samples
‣ Keep All. The History QoS can be set so keep all samples produced by the writer and not yet taken, until resource limits are not reached
DataReader
DataReader
1 1
2 1
3 1
History Depth = 1 (DDS Default)
History Depth = 5
Topic
1 1
2 1
3 1
1 2 1 3 1 4 1 5
2 2 2 3 2 4 2 5
3 2 3 3 3 4 3 5
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
History in Action
Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the DataWriter to matched DataReaders
Topic
DataReader
1 1
2 1
3 1
History Depth = 1 (DDS Default)
DataReader Cache
Topic
1 2
2 3
3 1
History Depth = 1 (DDS Default)
DataWriter Cache
DataWriter1 2
2 2 2 3
Network
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
History in Action
Topic
DataReader
1 2
2 2
3 1
History Depth = 1 (DDS Default)
DataReader Cache
Topic
1 2
2 3
3 1
History Depth = 1 (DDS Default)
DataWriter Cache
DataWriter2 3
Network
Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the DataWriter to matched DataReaders
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
History in Action
Topic
DataReader
1 2
2 3
3 1
History Depth = 1 (DDS Default)
DataReader Cache
Topic
1 2
2 3
3 1
History Depth = 1 (DDS Default)
DataWriter Cache
DataWriter
Network
Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the DataWriter to matched DataReaders
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
History in Action
Topic
DataReader
1 1
2 1
3 1
History Depth = 2
DataReader Cache
Topic
1 2
2 3
3 1
History Depth = 1 (DDS Default)
DataWriter Cache
DataWriter1 2
2 2 2 3
Network
Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the DataWriter to matched DataReaders
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
History in Action
Topic
DataReader
1 1
2 1
3 1
History Depth = 2
DataReader Cache
Topic
1 2
2 3
3 1
History Depth = 1 (DDS Default)
DataWriter Cache
DataWriter
1 2
2 2
2 3
Network
Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the DataWriter to matched DataReaders
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
History in Action
Topic
DataReader
1 1
2 2
3 1
History Depth = 2
DataReader Cache
Topic
1 2
2 3
3 1
History Depth = 1 (DDS Default)
DataWriter Cache
DataWriter
1 2
2 3
Network
Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the DataWriter to matched DataReaders
Age
nda
Motivating Forces
The Standard
Architectural Principles
Programming Model
Future Directions
D e l i v e r i n g P e r f o r m a n c e , O p e n n e s s , a n d F r e e d o m
OpenSplice DDS
Shared Global Data Space
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Shared Global Data SpaceCoordination Model
‣ DDS applications are asynchronous and communicate by reading/writing from/to a Global Data Space
‣ DDS applications communicate by simply addressing items in the Global Data Space and without any direct knowledge of the parties involved in the production/consumption of data
Consistency Model
‣ The Shared Global Data Space implemented by DDS, can be configured to supports at most the “Eventual Consistency Model”
‣ Under an Eventual Consistency Model we are guaranteed that eventually all application in the system will have a consistent view of the “world”s
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Eventual Consistency & R/W Caches
Under an Eventual Consistency Model, DDS guarantees that all matched Reader Caches will eventually be identical of the respective Writer Cache
Topic
DataReader
1 1
2 1
3 1
DataReader Cache Topic
1 2
2 3
3 1
DataWriter Cache
DataWriter
1 2
2 2 2 3
Topic
DataReader
1 1
2 1
3 1
DataReader Cache
Topic
DataReader
1 1
2 1
3 1
DataReader Cache
DDS
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
QoS Impacting the Consistency Model
The DDS Consistency Model is a property that can be associated to Topics or further refined by Reader/Writers. The property is controlled by the following QoS Policies:
‣ DURABILITY ‣ VOLATILE | TRANSIENT_LOCAL | TRANSIENT | PERSISTENT
‣ LIFESPAN
‣ RELIABILITY‣ RELIABLE | BEST_EFFORT
‣ DESTINATION ORDER‣ SOURCE_TIMESTAMP | DESTINATION_TIMESTAMP
QoS Policy Applicability RxO Modifiable
DURABILITY
LIFESPAN
RELIABILITY
DESTINATION ORDER
T, DR, DW Y N
T, DW - Y
T, DR, DW Y N
T, DR, DW Y N
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
QoS Impacting the Consistency Model
DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN
Eventual Consistency (No Crash / Recovery)
Eventual Consistency (Reader Crash / Recovery)
Eventual Consistency(Crash/Recovery)
Eventual Consistency(Crash/Recovery)
Weak Consistency
Weak ConsistencyWeak Consistency
VOLATILE RELIABLE SOURCE_TIMESTAMP INF.
TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF.
TRANSIENT RELIABLE SOURCE_TIMESTAMP INF.
PERSISTENT RELIABLE SOURCE_TIMESTAMP INF.
ANY ANY DESTINATION_TIMESTAMP ANY
ANY BEST_EFFORT ANY ANY
ANY ANY ANY N
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Eventual Consistency @ Work
A
B
CD
E
F
m
J
K
P1
P2
S1P = {A, B}
S = {A, D}
P = {D, C, J}
S4
S = {A}
Eventual Consistency (Reader Crash / Recovery)Eventual Consistency(Crash/Recovery)
TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF.
TRANSIENT RELIABLE SOURCE_TIMESTAMP INF.
DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN
{A}
{B}
Weak Consistency ANY ANY ANY N {J}
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Eventual Consistency @ Work
A
B
CD
E
F
m
J
K
A
P1
P2
S1P = {A, B}
S = {A, D}
P = {D, C, J}
S4
S = {A}
A
Eventual Consistency (Reader Crash / Recovery)Eventual Consistency(Crash/Recovery)
TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF.
TRANSIENT RELIABLE SOURCE_TIMESTAMP INF.
DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN
{A}
{B}
Weak Consistency ANY ANY ANY N {J}
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Eventual Consistency @ Work
A
B
CD
E
F
m
J
K
A
P1
P2
S1
A
P = {A, B}
S = {A, D}
P = {D, C, J}
S4
S = {A}
A
Eventual Consistency (Reader Crash / Recovery)Eventual Consistency(Crash/Recovery)
TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF.
TRANSIENT RELIABLE SOURCE_TIMESTAMP INF.
DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN
{A}
{B}
Weak Consistency ANY ANY ANY N {J}
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Eventual Consistency @ Work
B A
B
CD
E
F
m
J
K
A
P1
P2
S1
A
P = {A, B}
S = {A, D}
P = {D, C, J}
S4
S = {A}
A
Eventual Consistency (Reader Crash / Recovery)Eventual Consistency(Crash/Recovery)
TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF.
TRANSIENT RELIABLE SOURCE_TIMESTAMP INF.
DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN
{A}
{B}
Weak Consistency ANY ANY ANY N {J}
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Eventual Consistency @ Work
A
B
CD
E
F
m
J
K
A
P1
P2
S1B
A
P = {A, B}
S = {A, D}
P = {D, C, J}
S4
S = {A}
A
Eventual Consistency (Reader Crash / Recovery)Eventual Consistency(Crash/Recovery)
TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF.
TRANSIENT RELIABLE SOURCE_TIMESTAMP INF.
DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN
{A}
{B}
Weak Consistency ANY ANY ANY N {J}
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Eventual Consistency @ Work
A
B
CD
E
F
m
J
K
A
P1
P2
S1
S2
B
A
B
A
P = {A, B}
S = {A, D}
S= {A, B, J}
P = {D, C, J}
S4
S = {A}
A
Eventual Consistency (Reader Crash / Recovery)Eventual Consistency(Crash/Recovery)
TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF.
TRANSIENT RELIABLE SOURCE_TIMESTAMP INF.
DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN
{A}
{B}
Weak Consistency ANY ANY ANY N {J}
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Eventual Consistency @ Work
A
B
CD
E
F
m
J
K
A
P1
P2
S1
S2
B
A
B
A
P = {A, B}
S = {A, D}
S= {A, B, J}
P = {D, C, J}B
S4
S = {A}
A
Eventual Consistency (Reader Crash / Recovery)Eventual Consistency(Crash/Recovery)
TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF.
TRANSIENT RELIABLE SOURCE_TIMESTAMP INF.
DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN
{A}
{B}
Weak Consistency ANY ANY ANY N {J}
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Eventual Consistency @ Work
A
B
CD
E
F
m
J
KP2
S1
S2
A
BA
BB
S = {A, D}
S= {A, B, J}
P = {D, C, J}
S4
S = {A}
A
Eventual Consistency (Reader Crash / Recovery)Eventual Consistency(Crash/Recovery)
TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF.
TRANSIENT RELIABLE SOURCE_TIMESTAMP INF.
DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN
{A}
{B}
Weak Consistency ANY ANY ANY N {J}
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Eventual Consistency @ Work
A
B
CD
E
F
m
J
KP2
S1
S2
S3
A
BA
B
S= {A, B, D, J}
B
S = {A, D}
S= {A, B, J}
P = {D, C, J}
S4
S = {A}
A
Eventual Consistency (Reader Crash / Recovery)Eventual Consistency(Crash/Recovery)
TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF.
TRANSIENT RELIABLE SOURCE_TIMESTAMP INF.
DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN
{A}
{B}
Weak Consistency ANY ANY ANY N {J}
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Eventual Consistency @ Work
A
B
CD
E
F
m
J
KP2
S1
S2
S3
A
BA
B
S= {A, B, D, J}
J
B
D
J
S = {A, D}
S= {A, B, J}
P = {D, C, J}
S4
S = {A}
A
Eventual Consistency (Reader Crash / Recovery)Eventual Consistency(Crash/Recovery)
TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF.
TRANSIENT RELIABLE SOURCE_TIMESTAMP INF.
DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN
{A}
{B}
Weak Consistency ANY ANY ANY N {J}
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Eventual Consistency @ Work
A
B
CD
E
F
m
J
KP2
S1
S2
S3
A
BA
B
S= {A, B, D, J}
B
D
J
S = {A, D}
S= {A, B, J}
P = {D, C, J}
S4
S = {A}
A
Eventual Consistency (Reader Crash / Recovery)Eventual Consistency(Crash/Recovery)
TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF.
TRANSIENT RELIABLE SOURCE_TIMESTAMP INF.
DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN
{A}
{B}
Weak Consistency ANY ANY ANY N {J}
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Design Guidelines
‣ For all (non-periodic) Topics for which an eventually consistent model is required use the following QoS settings:
‣ For information produced periodically, with a period P, where P is small enough to be acceptable as a consistency convergence delay, the following QoS settings will provide an approximation of the eventual consistency:
Eventual Consistency (Crash / Recovery)
TRANSIENT RELIABLE SOURCE_TIMESTAMP INF.
DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN
Eventual Consistency (Crash / Recovery)
VOLATILE BEST_EFFORT SOURCE_TIMESTAMP INF.
DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN
D e l i v e r i n g P e r f o r m a n c e , O p e n n e s s , a n d F r e e d o m
OpenSplice DDS
Getting the DataRead Semanticsstruct Counter {
int cID; int count;};#pragma keylist Counter cID
Topic Used in next section.
DataReader Cache
Topic
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Reading Samples
‣ Read iterates over the available sample instances
‣ Samples are not removed from the local cache as result of a read
‣ Read samples can be read again, by accessing the cache with the proper options (more later)
DataReader
1 1
2 1
3 1
2 2
Samples Read Samples not Read
1 2 1 3 1 4
2 3
3 2 3 3 3 4 3 5
DataReader Cache
Topic
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Reading Samples
‣ Read iterates over the available sample instances
‣ Samples are not removed from the local cache as result of a read
‣ Read samples can be read again, by accessing the cache with the proper options (more later)
Samples Read Samples not Read
DataReader
1 1
2 1
3 1
2 2
1 2 1 3 1 4
2 3
3 2 3 3 3 4 3 5
DataReader Cache
Topic
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Reading Samples
‣ Read iterates over the available sample instances
‣ Samples are not removed from the local cache as result of a read
‣ Read samples can be read again, by accessing the cache with the proper options (more later)
Samples Read Samples not Read
DataReader
1 1
2 1
3 1
2 2
1 2 1 3 1 4
2 3
3 2 3 3 3 4 3 5
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Sample, Instance and View States
‣ DataReaders are provided with data samples ane state information allowing to detect relevant transitions in the life-cycle of data as well as data writers
‣ Sample State (READ | NOT_READ): Determines wether a sample has already been read by this DataWriter or not.
‣ Instance State (ALIVE, NOT_ALIVE, DISPOSED). Determines wether (1) writer exist for the specific instance, or (2) no matched writers are currently available, or (3) the instance has been disposed
‣ View State (NEW, NOT_NEW). Determines wether this is the first sample of a new (or re-born) instance
Dat
aRea
der
History Depth = 2
DataReader Cache
Samples
1 1
2 2
3 1
1 2
2 3
SampleInfo
Topic
D e l i v e r i n g P e r f o r m a n c e , O p e n n e s s , a n d F r e e d o m
OpenSplice DDS
Getting the DataTake Semanticsstruct Counter {
int cID; int count;};#pragma keylist Counter cID
Topic Used in next section.
DataReader Cache
Topic
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Taking Samples
‣ Take iterates over the available sample instances
‣ Taken Samples are removed from the local cache as result of a take
‣DataReader
1 1
2 1
3 1
2 2
Samples not Taken
1 2 1 3 1 4
2 3
3 2 3 3 3 4 3 5
DataReader Cache
Topic
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Taking Samples
‣ Take iterates over the available sample instances
‣ Taken Samples are removed from the local cache as result of a take
Samples not Taken
DataReader 2 2
1 2 1 3 1 4
2 3
3 2 3 3 3 4 3 5
DataReader Cache
Topic
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Taking Samples
‣ Take iterates over the available sample instances
‣ Taken Samples are removed from the local cache as result of a take
Samples not Taken
DataReader
1 3 1 4
2 3
3 3 3 4 3 5
D e l i v e r i n g P e r f o r m a n c e , O p e n n e s s , a n d F r e e d o m
OpenSplice DDS
Writing Datastruct Counter { int cID; int count;};#pragma keylist Counter cID
Topic Used in next section.
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Writing Samples
‣ Samples are written in the local cache
‣ Writer control the creation of instances
‣ The DDS ensures that the local caches for the matched DataReader will be eventually consistent with that of the Data Writer DataWriter Cache
Topic
1 1
Last Sample Written
DataWriter
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Writing Samples
‣ Samples are written in the local cache
‣ Writer control the creation of instances
‣ The DDS ensures that the local caches for the matched DataReader will be eventually consistent with that of the Data Writer DataWriter Cache
Topic
1 1
Last Sample Written
DataWriter1 2
DataWriter Cache
Topic
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Writing Samples
‣ Samples are written in the local cache
‣ Writer control the creation of instances
‣ The DDS ensures that the local caches for the matched DataReader will be eventually consistent with that of the Data Writer
1 2
Last Sample Written
DataWriter1 3
D e l i v e r i n g P e r f o r m a n c e , O p e n n e s s , a n d F r e e d o m
OpenSplice DDS
Application / DDS Coordination
struct Counter { int cID; int count;};#pragma keylist Counter cID
Topic Used in next section.
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Application / DDS Coordination
DDS provides three main mechanism for exchanging information with the application
‣ Polling. The application polls from time to time for new data or status changes. The interval might depend on the kind of applications as well as data
‣WaitSets. The application registers a WaitSet with DDS and waits (i.e. is suspended) until one of the specified events has happened.
‣ Listeners. The application registers a listener with a specific DDS entity to be notified when relevant events occur, such as state changes or
• PART I -- The DDS Standard
• PART II -- OpenSplice DDS
• PART III -- CoFlight Use Case
Presentation Roadmap
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
The Big News
‣PrismTech embrace the perspective that “The Future of Software is Open Source” and in alignment with its vision, strategy, and pedigree, releases OpenSplice | DDS as Open Source Software
‣This release, provides the Open Source Community with access to the most advanced and field proven extreme performance data distribution technology
‣This release, sets a landmark in middleware history!
D e l i v e r i n g P e r f o r m a n c e , O p e n n e s s , a n d F r e e d o m
OpenSplice DDS
Why Open Source?
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
The Future is Open SourceWinning Aspects of the Open Source Model
‣ The Open Source Model establishes a virtuous cycle based on generosity with a non-linear return for community members who donate their time, skills, ideas, money, etc.
‣ The Open Source Model empowers users
‣ The Open Source Model removes boundaries and is able to “pick the brain” of the smartest people around the world that are willing to contribute
‣ The Open Source Model removes adoptions barriers
‣ The Open Source Model is able to benefit even from egoistic/free-riding behaviour
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
The Future is Open SourceMarket Evidences
‣ Open Source software is being increasingly adopted and chosen in place of proprietary software by corporate and administrations
‣ Government EU/US/China
‣ DoD ACT HR 5658
‣ The Open Source Software consistently delivers higher quality and more innovative solutions when compared to closed proprietary software
‣ Ex. GNU Software, Linux OS, Firefox, etc.
‣ Open Source Software market share is consistently growing, and will be further propelled by the Financial Crisis
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Open Source Strategic Value
Open Source Software delivers key Strategic Value to Users:
‣No Technology Adoption Barriers
‣Larger Pool of Talent
‣Better Support
‣A Platform for User-Driven Innovation
‣Security of Supply
‣Better TCO when compared with Proprietary SW
...A User Perspective
D e l i v e r i n g P e r f o r m a n c e , O p e n n e s s , a n d F r e e d o m
OpenSplice DDS
OpenSplice DDS v4.1
Enterprise Ed.
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
OpenSplice DDS v4.1
‣ Product reorganized into Editions‣ Community Edition
‣ Compact Edition
‣ Professional Edition
‣ Enterprise Edition
‣ Product Editions provide a a growing set of functionality to address the needs of increasingly more sophisticated users
‣ The Community Edition is Open Source
‣ Compact, Enterprise and Professional Edition are available only through Commercial Subscriptions
Enterprise Ed.
Community Ed.
Compact Ed.
Professional Ed.
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Community EditionFeatures
‣ OMG DDS v1.2 DCPS‣Minimum Profile
‣ Content Subscription Profile
‣ Durability Profile
‣ Ownership Profile
‣ Networking‣ DDSI v2.1 Implementation
‣ Real-Time Networking Implementation
Ownership DurabilityContent
Subscription
Minimum Profile
Real-Time Pub/Sub (DCPS)
Networking Technology
Application
UDP/IP
Interoperable Wire Protocol (DDSI)
DD
SI v
2.1
DD
S v
1.2
Real-Time Networking
Open Source LGPL Licensed Edition -- The Best Way to Get Started with DDS
Licensing
‣ LGPLv3
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Compact EditionFeatures
‣ OMG DDS v1.2 DCPS‣Minimum Profile
‣ Content Subscription Profile
‣ Durability Profile
‣ Ownership Profile
‣ Networking‣ DDSI v2.1 Implementation
‣ Real-Time Networking Implementation
‣ PowerTools‣MDE PowerTools
‣Tuner
Ownership DurabilityContent
Subscription
Minimum Profile
Real-Time Pub/Sub (DCPS)
Networking Technology
Application
UDP/IP
Interoperable Wire Protocol (DDSI)
DD
SI v
2.1
DD
S v
1.2
Real-Time Networking
PowerTools
MDE
Tuner
Commercially Supported, Boosting Your Development with PowerTools
Licensing
‣ Commercial + PrismTech Source Code License
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Professional EditionFeatures
‣ OMG DDS v1.2 DCPS+DLRL‣Minimum Profile
‣ Content Subscription Profile
‣ Durability Profile
‣ Ownership Profile
‣ Data Local Reconstruction Layer
‣ Networking‣ DDSI v2.1 Implementation
‣ Real-Time Networking Implementation
‣ PowerTools‣MDE Power Tools
‣ Tuner
Object/Relational Mapping
Ownership DurabilityContent
Subscription
Minimum Profile
Real-Time Pub/Sub (DCPS)
Object-Oriented Pub/Sub (DLRL)
Application
UDP/IP
DD
SI v
2.1
DD
S v
1.2
SOAP
Connectors
PowerTools
MDE
Tuner
Networking Technology
Interoperable Wire Protocol (DDSI)
Real-Time Networking
Unleash the Full Power of the DDS Technology!
Licensing
‣ Commercial + PrismTech Source Code License
‣ Connectors‣ SOAP Connector
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Enterprise EditionFeatures
‣ OMG DDS v1.2 (DCPS+DLRL)‣ Minimum Profile
‣ Content Subscription Profile
‣ Durability Profile
‣ Ownership Profile
‣ Data Local Reconstruction Layer
‣ Networking‣ DDSI v2.1 Implementation
‣ Real-Time Networking Implementation
‣ Spiked Absorber
‣ Secure Networking
‣ PowerTools‣ MDE Power Tools
‣ Tuner
Object/Relational Mapping
Ownership PersistenceContent
Subscription
Minimum Profile
Real-Time Pub/Sub(DCPS)
Object-Oriented Pub/Sub (DLRL)
Networking Technology
Application
UDP/IP
Interoperable Wire Protocol (DDSI)
DD
SI v
2.1
DD
S v
1.2
Real-Time Networking
SOAPSecure Networking
DBMS
Spike Absorber
Connectors
PowerTools
MDE
Tuner
Connectors
Licensing
‣ Commercial + PrismTech Source Code License
Connect Your Enterprise Seamlessly and in Real-Time!
‣ Connectors‣ SOAP Connector
‣ DBMS Connector
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Editions and Commercial Support
Commercial Support
‣ Available only for Compact, Professional and Enterprise
‣ Supported SLA are:‣ Standard (8x5)
‣ Silver (12x5)
‣ Gold (24x7x365)
Community Compact Professional EnterpriseSOFTWARE
Real-Time Pub/Sub (DCPS)Interoperable Wire Protocol (DDSI)
Object Oriented Pub/Sub(DLRL)Spike Absorber
Security
CONNECTORSSOAP-ConnectorDBMS-Connector
TOOLSMDE PowerTools
TunerDDS TouchStone
Operating SystemsLinux
WindowsSolaris
AIXVxWorks
INTEGRITY
Language BindingC
C++Java
C#
LICENSE
x x x xx x x x
x xxx
x xx
x x xx x x
x x x x
x x(1) x(1) x(1)
x x(1) x(1) x(1)
x(1) x(1)
x(1) x(1)
x(1) x(1) x(1)
x(1) x(1) x(1)
x x x xx x x xx x x xx x x x
LGPL Commercial Commercial Commercial(1) One per subscription
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Service Offering‣ Enable our customers and partners to
deliver innovative solutions “on-time”, “on-budget”, and “on-quality”.
‣ Methodology covering the entire life-cycle of all customer projects, regardless of size, scope, and duration
‣ Provides all you need for supporting and catalyzing each stage of your project by means of training, workshops, and consulting.
‣ Services are delivered by highly-valued world-class consultants, including world-renowned technology and domain experts, and are available in 6 languages (English, French, German, Italian, Dutch, and Arabic).
Discover & Analyze
Mobilize & Plan
Design Implement Deploy Sustain
Tra
inin
gW
ork
sh
op
Co
ns
ult
ing
Beginner
Intermediate
Advanced
Accelerated Evaluation
Requirements Discovery
Architectural Patterns
System Analysis and Design
Customization / Enahncements
Infrastructure / Application Development
Information Modeling
Performance Optimization
Tuning Your Deployment
On Site Consulting, Support, and Mentoring
D e l i v e r i n g P e r f o r m a n c e , O p e n n e s s , a n d F r e e d o m
OpenSplice DDS
Who is Using OpenSplice DDS
© 2009, PrismTech. All Rights Reserved
Some OpenSplice DDS Users
!"#$%&'()('*+'##,-+.+/($$,012"0
!"(-/'0&3+4"25&0+-2",6+"78+29:;<=7>?
@A6BC+/DEF=7>>;>
4"25&0
'0,G+HII+JCKA+B@+CA+LI+L6
4DM+G+HII+JCKA+B@+CA+LI+LL
10NG!""#$%%&&&'#()*+",-!'. .-/+. .
Marcoussis, le 28/08/09
Expertise pour la RATPréalisée par Bernard MAUDRY les 29 et 29 juillet 2009
La RATP va utiliser OpenSplice/DDS pour remplacer son système AGS de gestion des équipements de station.
Dans ce cadre, elle a demandé à PrismTech d'effectuer une expertise de son ébauche de conception du nouveau système et de fournir des informations complémentaires et des conseils afin d'exploiter au mieux les possibilités d'OpenSplice/DDS.
La première journée a été consacrée à la présentation de la conception préliminaire, à sa correction et aux suggestions concernant son évolution. La conception initiale a été fortement impactée et les modifications nécessaires impliqueront probablement une nouvelle revue afin de valider les derniers détails.
La deuxième journée a principalement été dédiée à la réponse aux questions de comportement d'OpenSplice/DDS dans les situations les plus délicates que rencontrera le nouveau système, en tenant compte de l'architecture choisie.
Cette architecture comprend les éléments suivants:! le système est structuré en «lignes» comprenant un centre de contrôle de ligne (niveau 2) et des
stations (niveau 1). Une ligne de métro ou de RER peut être décomposée en plusieurs «lignes», auquel cas un des centre de contrôle peut être amené à supplanter un ou plusieurs des autres de cette ligne.
! Des centres de niveau 3 peuvent intervenir sur n'importe quelle ligne? Le centre de maintenance (Toscane)? Le centre de gestion de la ventilation? Des postes d'intervention (action à partir de n'importe quel endroit du réseau)
! Une adresse IP classe A est associée à chaque ligne! Une station comprend une noeud de gestion (redondé) chargé de la gestion des équipements de
la station et un poste opérateur0123.14..-5#) "56 .7,.89.:;;<=>[email protected](C.D.EFG.H=H.9GG.>>>E8.I.+5)*/J .+K(, . $ [email protected]<.2ARM0OA2AQ.MS.ASR31SQ.$!ST.G==9E=H'. .2ARM0OA2AQ.TUUM@A.$ [email protected]<.HO P.1WASVA.DV0MSA00.L12X< .OA1N.W133AY<.R1OA0PA1Q< .SA::.>SR
D e l i v e r i n g P e r f o r m a n c e , O p e n n e s s , a n d F r e e d o m
OpenSplice DDS
Technical Highlights
© 2009, PrismTech. All Rights Reserved
Technical Highlights
Architecture
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
OpenSplice DDS Architectural Outlook
Architectural Highlights
‣ Shared-Memory based architecture for minimizing intra-nodal latency, as well as maximizing nodal scalability
‣ Plugglable Service Architecture
‣ Full control over network scheduling
© 2009, PrismTech. All Rights Reserved
Technical Highlights
Performance
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
High-Performance on Commodity HW
!"#$%&#'
()(!%(*'
&")&%+)'
&!(,%!)'
),,%$#'
!,*%))'(("%!"'
&&)%*$' $"%"$' ,+%($',($%!+'
,*+%&)'
$&"%,,'
*!#%,&'
)$,%$*'
)"#%*)'
"!+%++'
"*(%)+' ")(%&!' ""&%,&'
,++%++'
!++%++'
$++%++'
#++%++'
*++%++'
)++%++'
"++%++'
&+++%++'
&&++%++'
(+%++'
&+(+%++'
(+(+%++'
,+(+%++'
!+(+%++'
$+(+%++'
#+(+%++'
)' &#' ,(' #!' &()' ($#' $&(' &+(!' (+!)' !+"#'
!"#$%
&'$($)$*+%
!*$$,(*%-./*%
-./0/1/23' 456/'
Test Scenario
‣ Single Threaded Application (multi-threaded networking service)
‣ 8192 bit message batches
Throughput Latency
Inter-Node Latency
‣ 60 usec
Inter-Core Read-Latency
‣ 2 usec
Inter-Core Latency
‣ <10 usec
HW:
‣ Dell blade-server
‣ Dual-core, Dual-CPU, AMD Opteron 2.4 GhzOS
‣ Linux 2.6.21-1.3194.fc7Network
‣ Gigabit Ethernet cards
‣ Dell PowerConnect 5324 switch
© 2009, PrismTech. All Rights Reserved
Technical Highlights
Networking
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Real-Time Networking Technology
Scalability and Efficiency
‣ Single shared library for applications & services
‣ Ring-fenced shared memory segment
‣ Data urgency driven network-packing
Architecture
‣ Network-channels
‣ Priority bands
‣ Network-partitions
‣ Multicast Groups
‣ Traffic-shaping‣ Burst/Throughput
Determinism & Safety
‣ Preemptive network-scheduler
‣ Data importance based network-channel selection
‣ Partition based multicast-group selection
‣ Managed critical network-resource
Traffic Shaping
OpenSplice DDSBinding
Networking
Shared
Memory
OpenSplice DDSBinding
Networking
Shared
Memory
Network Channels
Priority Bands
Pre-emptive Network Scheduler
Priority Scheduler
Data Urgency Traffic Pacing
Single Copy per Node
Pack Across Topics/Applications
Optimal Unmarshaling
Fault-Tolerance
‣ Active Channels
‣ Fall back on next highest priority active channel
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
The Power of Choice
‣ With OpenSplice DDS you can choose wether to use the Real-Time Networking Protocol or the DDSI Interoperability Protocol based on your system requirements w.r.t. real-time behavior, scalability and interoperability
‣ OpenSplice DDS can simultaneously run over its Native Protocol as well as DDSI thus allowing you to chose what best works for you
OpenSplice DDSReal-Time Networking DDSI v2.1
© 2009, PrismTech. All Rights Reserved
Technical Highlights
Durability
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Durable Data Technology
Goal
‣ Transient QoS. Keep state-data outside the scope/lifecycle of its publishers
‣ Persistence QoS. Keep persistent settings to outlive the system downtime
Architecture
‣ Fault-Tolerant Data Availability‣ Transient -- on memory
‣ Persistent -- on disk
‣ Partitioning‣ DDS Partitions
‣ Alignment‣ Dedicated Channels
Features
‣ Fault-tolerant availability of non-volatile data
‣ Efficient delivery of initial data to late-joining applications
‣ Pluggable Durability Service
‣ Automatic alignment of replicated durability-services
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Dedicated Persistence Service Alignment Channel
Persist Partitions
Persistent Data on Local Disk
Transient Data in Memory
Disk
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Durability Configuration
A
B
CD
E
F
m
J
K
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Durability Configuration
A
B
CD
E
F
m
J
K
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Durability Configuration
A
B
CD
E
F
m
J
K
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Durability Configuration
A
B
CD
E
F
m
J
K
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Durability Configuration
A
B
CD
E
F
m
J
K
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Durability Configuration
A
B
CD
E
F
m
J
K
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Durability Configuration
A
B
CD
E
F
m
J
K
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Durability Configuration
A
B
CD
E
F
m
J
K
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Durability Configuration
A
B
CD
E
F
m
J
K
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Durability Configuration
A
B
CD
E
F
m
J
K
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Durability Configuration
A
B
CD
E
F
m
J
K
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Durability Configuration
A
B
CD
E
F
m
J
K
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Durability Configuration
A
B
CD
E
F
m
J
K
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Durability Configuration
A
B
CD
E
F
m
J
K
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
OpenSplice DDSBinding
Networking
Shared Memory
OpenSplice DDSBinding
Durability
Disk
© 2009, PrismTech. All Rights Reserved
Technical Highlights
Productivity Tools
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Boosting Your Productivity
Provide MDE Tools supporting the various phases of a system development
Information Modeling
Application Modeling
Application Development
Testing
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Productivity ToolsEnd-to-End System Design cycle
‣ Information, Application, and Deployment Modeling
‣ Productive and correctness-enforcing modeling environment
Information Modeling
‣ Graphical system-wide Information and QoS Modeling
‣ OpenSplice DDS code-generation
Application Modeling
‣ Graphical application modeling
‣ Pattern-oriented code-generation
Deployment Modeling
‣ Modeling of DDS-configuration Service configuration (networking, durability)
‣ Runtime control with the OpenSplice DDS Tuner
• PART I -- The DDS Standard
• PART II -- OpenSplice DDS
• PART III -- CoFlight Use Case
Presentation Roadmap
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Challenges
‣ Predicted traffic growth are not sustainable with currently deployed infrastructures (even when considering HW upgrades)
Adapted from: “NextGen JPDO Overview”
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
ChallengesCapacity
‣ Avoid delays to Travelers
‣ With traffic growing fast the future air traffic management system needs a three-fold increase in capacity to avoid traffic congestion.
Efficiency
‣ Those who fly often bear the cost of air navigation services.
‣ Efficiency gains are obtained by improving flight operations and better coordinating airlines, military users, airports and air traffic management bodies.
Environment
‣ Air traffic management professionals reduce this impact by designing fuel-efficient routes, better distributing traffic flows within the available airspace, and optimizing the calculation of departure times.
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Challenges
Security
‣ The current security level of the Air Traffic Management (ATM) system has to increase to match threats, protect ATM operations and safeguard citizens’ safe mobility.
Safety
‣ When traffic doubles, the risk is squared
‣ Efforts to maintain safety must be intensified to ensure that the number of incidents does not increase.
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
The CoFlight Project
‣ Large program to replace existing Flight Data Processors (FDPs)‣ 5 Centers in France‣ 4 Centers in Italy‣ 2 Centers in Switzerland
‣ Initial Operational Capability by 2009
ATCCBrest
ATCCReimsATCC
Paris
ATCCMilano
ATCCBrindisi
ATCCAix-en-
Provence
ATCCBordeaux
ATCCRoma
ATCCPadova
ATCCGeneve
ATCCZurich
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
DDS in CoFlight -- FDP Core
‣OpenSplice DDS glues together the most critical components of the CoFlight FDP running at a SWAL-2 assurance level
‣ In this context OpenSplice DDS distributes flights data plans of redundant LANs
DDS
Flight Data Processing Servers
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
DDS in CoFlight -- CWP
‣ OpenSplice DDS is used within CoFlight to distribute the “external” Flight Data Plan to Controller Working Positions
DDS
Flight Data Processing Servers
DDS
Controllers
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
DDS in CoFlight -- IOP‣ OpenSplice DDS is used
to integrate CoFlight-based Centers
‣ OpenSplice DDS is used to provide interoperability with other Interoperable Centers (as per ICOG-2)
DDS
Controllers
Flight Data Processing Servers
Air Traffic Control Center
DDS
Controllers
Flight Data Processing Servers
Air Traffic Control Center
DDS
Controllers
Flight Data Processing Servers
Air Traffic Control Center
A
B
CD
E
F
m
J
K
DDS
D e l i v e r i n g P e r f o r m a n c e , O p e n n e s s , a n d F r e e d o m
OpenSplice DDS
Summing Up
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Concluding Remarks -- OMG StandardState of the Art
‣ The OMG DDS Standard uniquely addresses some of the key requirements for next generation Mission Critical Systems
‣ The OMG DDS is one of the few middleware standard defining both API as well as Wire-Protocol, thus ensuring application portability and interworking
‣ The DDS Standard has been recommended/mandated by key administration throughout the world as well as adopted by the most challenging Defense programs
Looking Ahead
‣ The DDS Standard is swiftly moving forward to expand its applicability (Ultra-Large/Small-Scale) simplify its use, and facilitate integration
Object/Relational Mapping
Ownership DurabilityContent
Subscription
Minimum Profile
Data Centric Publish/Subscribe (DCPS)
Data Local Reconstruction Layer (DLRL)
DDS Interoperability Wire Protocol
Application
UDP/IP
Real-Time Publish/Subscribe Protocol
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
© 2009, PrismTech. All Rights Reserved
Concluding Remarks‣ OpenSplice DDS is now available as Open
Source Software under LGPL Licensing
‣ This release provide users with access to the most powerful extreme performance data distribution technology available on the market
‣ A set of added value Editions along with a very rich set of Services is available through PrismTech
‣ A vibrant and innovative community is swiftly being established around OpenSplice DDS, thus...
Enterprise Ed.
Community Ed.
Compact Ed.
Professional Ed.
Delivering Performance, Openness, and Freedom
OpenSplice DDS
Embrace Performance, Openness and Freedom. Join the OpenSplice DDS Community
Pro
prie
tary
Info
rmat
ion
- D
istri
butio
n w
ithou
t Exp
ress
ed W
ritte
n P
erm
issi
on is
Pro
hibi
ted.
Online Resources
http://www.opensplice.com/
emailto:[email protected]
http://www.youtube.com/OpenSpliceTube
http://opensplice.blogspot.com http://bit.ly/1Sreg
http://www.dds-forum.org
http://portals.omg.org/dds
© 2009, PrismTech. All Rights Reserved
http://twitter.com/acorsaro/