A Gentle Introduction to OpenSplice DDS
-
Upload
angelo-corsaro -
Category
Technology
-
view
4.580 -
download
8
description
Transcript of A Gentle Introduction to OpenSplice DDS
Angelo Corsaro, Ph.D.Chief Technology Officer
OMG DDS SIG [email protected]
Delivering Performance, Openness, and Freedom
OpenSplice DDS
A Gentle Introduction
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
“Historical” Perspective
© 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
© 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
DDS RecommendationsIncreasingly Mandated/Recommended by 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
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
As Simple as it Gets
© 2009, PrismTech. All Rights Reserved
As Simple as it Gets‣ DDS is based around the concept
of a fully distributed Global Data Space (GDS)
Global Data Space
DDS
© 2009, PrismTech. All Rights Reserved
As Simple as it Gets‣ DDS is based around the concept
of a fully distributed Global Data Space (GDS)
‣ Publishers and Subscribers can join and leave the GDS at any time
Global Data Space
DDS
© 2009, PrismTech. All Rights Reserved
As Simple as it Gets‣ DDS is based around the concept
of a fully distributed Global Data Space (GDS)
‣ Publishers and Subscribers can join and leave the GDS at any time
Global Data Space
DDS
Subscriber
Subscriber
Subscriber
Publisher
Publisher
Publisher
© 2009, PrismTech. All Rights Reserved
As Simple as it Gets‣ DDS is based around the concept
of a fully distributed Global Data Space (GDS)
‣ Publishers and Subscribers can join and leave the GDS at any time
‣ Publishers and Subscribers express their intent to produce/consume specific type of data, e.g., Topics
Global Data Space
DDS
Subscriber
Subscriber
Subscriber
Publisher
Publisher
Publisher
© 2009, PrismTech. All Rights Reserved
As Simple as it Gets‣ DDS is based around the concept
of a fully distributed Global Data Space (GDS)
‣ Publishers and Subscribers can join and leave the GDS at any time
‣ Publishers and Subscribers express their intent to produce/consume specific type of data, e.g., Topics
Global Data Space
DDS
Subscriber
Subscriber
Subscriber
Publisher
Publisher
Publisher
© 2009, PrismTech. All Rights Reserved
As Simple as it Gets‣ DDS is based around the concept
of a fully distributed Global Data Space (GDS)
‣ Publishers and Subscribers can join and leave the GDS at any time
‣ Publishers and Subscribers express their intent to produce/consume specific type of data, e.g., Topics
‣ Data flows from Publisher to Subscribers
Global Data Space
DDS
Subscriber
Subscriber
Subscriber
Publisher
Publisher
Publisher
© 2009, PrismTech. All Rights Reserved
As Simple as it Gets‣ DDS is based around the concept
of a fully distributed Global Data Space (GDS)
‣ Publishers and Subscribers can join and leave the GDS at any time
‣ Publishers and Subscribers express their intent to produce/consume specific type of data, e.g., Topics
‣ Data flows from Publisher to Subscribers
Global Data Space
DDS
Subscriber
Subscriber
Subscriber
Publisher
Publisher
Publisher
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
Defining Data
© 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
© 2009, PrismTech. All Rights Reserved
DDS Topics
Circle
struct ShapeType { long x; long y; long shapesize; string color;};#pragma keylist ShapeType color
Topic QoS
© 2009, PrismTech. All Rights Reserved
DDS Topics
Triangle
struct ShapeType { long x; long y; long shapesize; string color;};#pragma keylist ShapeType color
Topic QoS
© 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
© 2009, PrismTech. All Rights Reserved
Topic/Instances/Samples Recap.Topics Instances
Samples
timeti tj tnow
© 2009, PrismTech. All Rights Reserved
Content Filtering
‣DDS allows to specify content-filtered Topics for which 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
© 2009, PrismTech. All Rights Reserved
Filtering Market Data
‣ DDS continuous queries can be used for filtering the stream of data produced for a specific stock symbol.
0
10
20
30
40
Microsoft
MSFT
154.0
156.5
159.0
161.5
164.0
Apple
AAPL
MSFT > $35AAPL < $157 | | AAPL > $162
© 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
Organizing Data
© 2009, PrismTech. All Rights Reserved
DDS Partitions
‣ All DDS communication is happens within a Domain
‣ Domain can divided into Partitions
‣ Topics are published and subscribed across on or more Partitions
A
B
CD
E
F
m
J
K
Publisher
SubscriberPublisher
Publisher
Subscriber
Subscriber
DomainPartition
© 2009, PrismTech. All Rights Reserved
OpenSplice Network Partitions‣ OpenSplice DDS allows to
define network partitions along with DDS partitions
‣ Network partitions are bound to a list of unicast/multicast network addresses
‣ Partition.Topic combination can be mapped into OpenSplice DDS Network Partitions
‣ Wildcards can be used when defining the mapping, and in case of multiple matches OpenSplice DDS will always consider the best match
A
B
CD
E
F
m
J
K
Publisher
SubscriberPublisher
Publisher
Subscriber
Subscriber
"Red"
"Green"
"Yellow"
Yellow.* => 224.1.1.1 Green.* => 224.1.1.2Green.E => 224.1.1.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
Quality of Service
© 2009, PrismTech. All Rights Reserved
Anatomy of a DDS Application
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
© 2009, PrismTech. All Rights Reserved
Anatomy of a DDS Application
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
© 2009, PrismTech. All Rights Reserved
Anatomy of a DDS Application
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
© 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
© 2009, PrismTech. All Rights Reserved
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?
© 2009, PrismTech. All Rights Reserved
ReliabilityThe reliability with which data is delivered to applications is impacted in DDS by the following qualities of service
‣ RELIABILITY‣ BEST_EFORT
‣RELIABLE
‣ HISTORY‣ KEEP_LAST (K)
‣ KEEP_ALL
‣ Theoretically, the only way to assure that an application will see all the samples produced by a writer is to use RELIABLE+KEEP_ALL. Any other combination could induce to samples being discarded on the receiving side because of the HISTORY depth
© 2009, PrismTech. All Rights Reserved
Real-TimeThe real-time properties with which data is delivered to applications is impacted in DDS by the following qualities of service:
‣ TRANSPORT_PRIORITY
‣ LATENCY_BUDGET
‣ In addition, DDS provides means for detecting performance failure, e.g., Deadline miss, by means of the DEADLINE QoS
‣ Given a periodic task-set {T} with periods Di (with Di < Di+1) and deadline equal to the period, than QoS should be set as follows:
‣ Assign to each task Ti a TRANSPORT_PRIORITY Pi such that Pi > Pi+1
‣ Set for each task Ti a DEADLINE QoS of Di
‣ For maximizing throughput and minimizing resource usage set for each Ti a LATENCY_BUDGET QoS between Di /2 and Di/3 (this is a rule of thumb, the upper bound is Di-(RTT/2))
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
High Availability‣ 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
W2’’
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
High Availability‣ 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
W2’’
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
High Availability‣ 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
W2’’
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
High Availability ‣ 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
R3W2’’
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
High Availability ‣ 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
R3W2’’
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
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
OpenSplice DDS Architecture
© 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
‣ Pluggable Service Architecture
‣ Full control over network scheduling
© 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
© 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
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
Product Organization
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
‣ 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
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
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
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
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
Use Cases
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
European Flight Data Processor
‣ Large program to replace existing Flight Data Processors (FDPs)‣ 5 Centers in France‣ 4 Centers in Italy‣ 2 Centers in Switzerland
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 (same as DO-178B Level B) 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
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 Other Use CasesDefense & Aerospace
‣ Combat Management Systems
‣e.g. THALES, Northrop Grumman
‣ Vetronics
‣e.g. European SI
‣ Tactical Links
‣e.g. ULTRA
‣ Simulation ‣ e.g. MIT Lincoln Labs
SCADA/Utilities
‣ Industrial Automation ‣ e.g. Chemtech
‣ Rocket Launch Systems (Telemetry)‣ e.g. NASA
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 Use Cases
Transportation
‣ Drones‣e.g. Navcom
Financial Services
‣ Automated Trading Firms‣e.g. ThinkTrade
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
Concluding Remarks
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
AMQP vs 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
Scope of Standardization
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
DD
SI
v2
.1D
DS
v1
.2
Interoperability Wire Protocol
(TCP, SCTP, UDP)/IP
Advanced Message Queuing Protocol
AM
QP
v0
.10
API (?)
Application
AMQP OMG 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
Scope of Standardization
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
DD
SI
v2
.1D
DS
v1
.2
Interoperability Wire Protocol
(TCP, SCTP, UDP)/IP
Advanced Message Queuing Protocol
AM
QP
v0
.10
API (?)
Application
Wire Protocol Standard
AMQP OMG 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
Scope of Standardization
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
DD
SI
v2
.1D
DS
v1
.2
Interoperability Wire Protocol
(TCP, SCTP, UDP)/IP
Advanced Message Queuing Protocol
AM
QP
v0
.10
API (?)
Application
Wire Protocol Standard
Pub/Sub Standard API
AMQP OMG 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
Scope of Standardization
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
DD
SI
v2
.1D
DS
v1
.2
Interoperability Wire Protocol
(TCP, SCTP, UDP)/IP
Advanced Message Queuing Protocol
AM
QP
v0
.10
API (?)
Application
Wire Protocol Standard
Pub/Sub Standard API
Object Relational Mapping Standard API
AMQP OMG 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
Architectural Style
Publisher
SubscriberPublisher
Publisher
Subscriber
Subscriber
Broker
OMG DDS
Publisher
SubscriberPublisher
Publisher
Subscriber
Subscriber
Broker
Broker
Broker
Broker
Broker
AMQP
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
Key Differences in Summary
‣ Brokered Communication Architecture
‣ Peer-to-Peer Communication Architecture
AMQP
‣ Wire Protocol Standard‣ Interoperability across AMQP
implementations
‣ Wire Protocol + API Standard‣ Interoperability across DDS implementations
‣ Application Portability across DDS Implementation
‣ Header Based Routing ‣ Content-Based Filtering/Quering
‣ Not geared for High-Performance ‣ Designed bottom-up for maximum performance and determinism
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
29West vs 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
29West vs DDS
‣ Peer-to-Peer Communication Architecture
‣ Peer-to-Peer Communication Architecture
29West
‣ Proprietary technology ‣ Wire Protocol + API Standard‣ Interoperability across DDS implementations
‣ Application Portability across DDS Implementation
‣ Topic are blobs of data
‣ No content-based routing‣ Topics have Types and Qos
‣ Content-Based Filtering/Quering
‣ Designed for High-Performance ‣ Designed bottom-up for High-Performance, Determinism, Reliability
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
29West vs DDS#include <lbm.h>
int main(int, char**) {
lbm_context_t *ctx; lbm_topic_t *topic; lbm_src_t *src; int lbm_failed;lbm_failed = lbm_context_create(&ctx, NULL, NULL, NULL);/* Create a Topic*/lbm_failed = lbm_src_topic_alloc(&topic, ctx, "Greeting", NULL);! /* Create a source*/lbm_failed = lbm_src_create(&src, ctx, topic, NULL, NULL, NULL);!SLEEP(3);! /* Send data*/lbm_failed = lbm_src_send(src, "Hello!", 6, LBM_MSG_FLUSH | LBM_SRC_BLOCK);/* Finished all sending to this topic, delete the source object. */ lbm_src_delete(src);/* Do not need to delete the topic object - LBM keeps track of topic * objects and deletes them as-needed. *//* Finished with all LBM functions, delete the context object. */ lbm_context_delete(ctx);return 0;
}
#include <dds/dds.hpp>
int main(int, char**) {
dds::Runtime::start();/* Create a Topic with default QoS. */ dds::Topic<dds::StringTopicType> strTopic(“Greeting”);/* Create a Writer with default QoS. */dds::Writer<dds::StringTopicType> writer(strTopic);/* Create a sample and write data. */dds::StringTopicType msg(“Hello”);writer.write(msg);dds::Runtime::stop();
}
29West 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
Concluding Remarks‣ OpenSplice DDS is the ideal fit for addressing
several of the data distribution and management challenges faced by financial firms, such as:‣ Market Data Distribution
‣ High Performance Caching
‣ Real-Time Business Intelligence
‣ OpenSplice DDS has great performance on standard COTS HW and its architecture is designed for exploiting at best high-end multi-cores such as the Intel XEON 5500
‣ OpenSplice DDS is Commercially Supported Open Source Software
Delivering Performance, Openness, and Freedom
OpenSplice DDS
Enterprise Ed.
Community Ed.
Compact Ed.
Professional Ed.
Embrace Performance, Openness and Freedom. Join the OpenSplice DDS Community at www.opensplice.org
Online Resources
http://www.opensplice.com/
emailto:[email protected]
http://www.youtube.com/OpenSpliceTube http://opensplice.blogspot.com
http://bit.ly/1Sreg
© 2009, PrismTech. All Rights Reserved
http://www.slideshare.net/angelo.corsaro
http://twitter.com/acorsaro/