Professional Documents
Culture Documents
OpenSplice DDS Finance
OpenSplice DDS Finance
OpenSplice DDS Finance
Meeting Skyrocketing
Message Rates in Complex
Financial Trading Applications
OpenSplice DDS
‣ Current Challenges
‣ OpenSplice DDS
‣ Technology Ecosystem
‣ DDS TouchStone
‣ Use Cases Dr. Angelo Corsaro
‣ Concluding Remarks
Trends
‣ Direct connection to exchanges is increasingly
chosen over data aggregators to reduce trading
latency
‣ Market data is growing steadily
‣ Milliseconds speedup over competitors can be
worth millions of dollars
Challenges
‣ Process several hundreds-of-thousands of
messages, quickly approaching millions
messages, per second
‣ Minimize latency and jitter, while maintaining the
system stability and reliability
Deployed middleware solutions were not
designed to address these challenges!
Trends
‣ More and more firms connecting directly
‣ Increasing number of sources providing the
same quotes
‣ Competitive advantage obtained by
reducing latency on data feeds
Challenges
‣ Ensuring fairness of data distribution
‣ Minimizing latency
‣ Scaling with the number of destinations
Most Hyped
Low latency and predictable data dissemination
Support for several 100K messages/sec, up to
Millions messages/sec
Most Hyped
Low latency and predictable data dissemination
Support for several 100K messages/sec, up to
Millions messages/sec
Not so Hyped, yet Fundamentally Important
Stability under overload condition
Scalability
Fairness
Control over latency/throughput tradeoffs
Traffic Engineering
HW Filtering
Traffic Shaping
Priority driven delivery
High Performance Persistence
Event Processing
© 2008, PrismTech. All Rights Reserved
Agenda
OpenSplice DDS
‣ Current Challenges
‣ OpenSplice DDS
‣ Technology Ecosystem
‣ DDS TouchStone
‣ Use Cases
‣ Concluding Remarks
A F Subscriber
Open Standard Publisher J
D C
Publisher
Subscriber
A F Subscriber
Publisher J
D C
K
E
Subscriber
Publisher
Global Data Space Subscriber
StockQuote
symbol: "GOOG"
name: "Google Inc."
StockQuote
StockQuote exchange: "NASD"
symbol: "MSFT"
symbol: "AAPL" quote: 663.97
name: "Microsoft Corp."
name: "Apple Inc." xml_extra: "<ext>,,,</ext>
exchange: "NASD"
exchange: "NASD" quote: 33.73
quote: 165.37 xml_extra: "<ext>,,,</ext>
xml_extra: "<ext>,,,</ext>
‣ Encapsulation setX()
‣ Local Operations
getEmployer()
setEmployer()
‣ Inheritance 1
Attribute
Attribute
Operation
‣ Single inheritance supported for DLRL Objects Operation
‣ Navigable Relationships
‣ Single Relationships
‣ Multi Relationships (Set, Map, List)
© 2008, PrismTech. All Rights Reserved
Relational/OO Mapping
Unleashing the power of Objects...
OO ➡ Relational
Canvas
handle: Handle Object Oriented
‣ Middleware can automatically Flight
RadarTrack
manage the generation and FlightView
image: string
call_sign: string
route: list
x: float
association between the refresh_rate: int * 1 origin: string 1
y: float
1 z: float
Object-Oriented Model and the visible: bool
uid: GUID
dest: string
radar_id: string
aircraft: string
Relational Model display() operationX()
operationOne()
operationTwo()
operationY()
FlightViewTopic FlightViewAssociation
FlightTopic Relational
call_sign: string
image: string call_sign: string
route: list RadarTrackTopic
refresh_rate: int uid: GUID
origin: string x: float
visible: bool handle: Handle
dest: string y: float
uid: GUID
aircraft: string z: float
radar_id: string radar_id: string
Relational ➡ OO
‣ The Relational Model can be mapped to an Object Oriented model
‣ The mapping is under control of the architect
Object Oriented
FastFlightView
image: string
Canvas
handle: Handle Object Oriented
refresh_rate: int
visible: bool Flight
RadarTrack
uid: GUID FlightView call_sign: string
x: float
x: float image: string route: list
y: float
y: float refresh_rate: int * 1 origin: string 1 1 z: float
z: float visible: bool dest: string
radar_id: string
call_sign: string uid: GUID aircraft: string
operationOne()
display() display() operationX()
operationTwo()
operationY()
FlightViewTopic FlightViewAssociation
FlightTopic Relational
call_sign: string
image: string call_sign: string
route: list RadarTrackTopic
refresh_rate: int uid: GUID
origin: string x: float
visible: bool handle: Handle
dest: string y: float
uid: GUID
aircraft: string z: float
radar_id: string radar_id: string
Multiple Mappings
‣ Allow different, Object-Oriented, local reconstruction of the same underlying relation model
‣ The state is shared across all the local reconstruction
StockQuote
symbol: "AAPL"
S1
name: "AppleStockQuote
Inc."
symbol:
exchange: "AAPL"
"NASD"
name:
quote: 578.19 "Apple Inc."
StockQuote
exchange:
symbol:"NASD"
name:
quote:
"MSFT"
"Microsoft
387.74 Corp."
StockQuote
{symbol = “AAPL”}
exchange:symbol:
"NASD""GOOG"
StockQuote
quote: 33.73
name: "Google
symbol:Inc."
"AAPL"
exchange: "NASD"
name: "Apple Inc."
quote: 663.97
exchange: "NASD"
quote: 165.37
S2
P {quote > 500}
S3
{ name =”Microsoft Corp.”}
StockQuote
symbol: "AAPL"
name: "Apple Inc." StockQuote
symbol: "GOOG"
exchange: "NASD"
quote: 578.19 name: "Google Inc."
S2
P
exchange: "NASD"
quote: 663.97
{quote > 500}
StockQuote
symbol: "MSFT"
name: "Microsoft Corp."
exchange: "NASD"
quote: 33.73
S3
{ name =”Microsoft Corp.”}
A F Subscriber
Publisher J
D C
K
E
Subscriber
Publisher
Global Data Space Subscriber
‣ The Global Data Space can organized into domains which in turns
can have partitions
‣ Each partition is mapped to an IP Multicast Address
‣ QoS controls the availability and consistency of data
A F
J
D C
K
Partition E
Information Segregation
Traffic Confinement
A F Subscriber
Publisher J
D C
K
E
Subscriber
Publisher
Global Data Space Subscriber
Topic
Name
Publisher Subscriber
Name
Topic
Network
© 2008, PrismTech. All Rights Reserved
OpenSplice DDS: Foundational Abstractions
A F Subscriber
Publisher J
D C
K
E
Subscriber
Publisher
Global Data Space Subscriber
Topic
Name
Publisher Subscriber
Name
Topic
Name
PRESENTATION P, S Y N Data Delivery Topic
DESTINATION T, DR, DW Y N
ORDER
OWNERSHIP
OWNERSHIP
T, DR, DW
DW
Y
-
N
Y
‣ Rich set of QoS allow to
STRENGTH configure several
T, DR, DW Y Y
DEADLINE
LATENCY T, DR, DW Y Y
Data
Timeliness
different aspects of data
BUDGET availability, delivery and
TRANSPORT T, DW - Y
PRIORITY timeliness
‣ QoS can be used to
TIME BASED DR - Y Resources
FILTER
RESOURCE
LIMITS
T, DR, DW N N control and optimize
USER_DATA DP, DR, DW N Y Configuration network as well as
TOPIC_DATA T N Y
computing resource
GROUP_DATA P, S N Y
TimeBasedFilter Deadline
Data
Throughput
Latency
LatencyBudget TransportPriority
Data Data
Throughput Lifespan Durability
Latency Availability
Ownership
LatencyBudget TransportPriority Ownership
Strength
Data Data
Throughput Lifespan Durability
Latency Availability
Ownership
LatencyBudget TransportPriority Ownership
Strength
Reliability
OpenSplice DDS provides
Destination
programmatic QoS-driven
Presentation Data Delivery
Order support for configuring the
Control over data distribution reliability
most important properties of
Control over data ordering data distribution!
Control over presentation
Data
Throughput
Latency
LatencyBudget TransportPriority
Data Timeliness
‣ DataReaders are
DataWriter writes Type reads DataReader
QoS matching
Subscriber
... ...
enforced. ...
DataWriter writes Type reads DataReader
Name
Topic
QoS matching
QoS matching
Name
Topic
QoS matching
Shared Memory
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS
Binding Binding Binding Binding Binding
75 55 15 10
Priority Bands ensure that high priority data, always find its way preempting
lower priority data
55 60 60
15 10 30 30
Data
Lifespan Durability
Availability
Ownership
Ownership
Strength
Data Availability
QoS Policy Applicability RxO Modifiable
DURABILITY T, DR, DW Y N
DURABILITY T, DW N N
SERVICE Data
Availability
LIFESPAN T, DW - Y
HISTORY T, DR, DW N N
The DURABILITY QoS controls the data availability w.r.t. late joiners,
specifically the DDS provides the following variants:
‣ Volatile. No need to keep QoS Policy Applicability RxO Modifiable
‣
Name
Persistent. Data instance Topic
Goal Features
‣ Transient QoS. Keep state-data ‣ Fault-tolerant availability of non-volatile data
outside the scope/lifecycle of its
publishers
‣ Efficient delivery of initial data to late-joining
applications
‣ Persistence QoS. Keep ‣ Pluggable Durability Service
persistent settings to outlive the
system downtime ‣ Automatic alignment of replicated durability-services
© 2008, PrismTech. All Rights Reserved
Lifespan
For how long will this data be available?
written by the
DataWriter writes Type reads DataReader
interval is infinite
QoS QoS QoS
QoS matching
The 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:
known subscribers
QoS QoS QoS
Destination
Presentation Data Delivery
Order
Data Delivery
QoS Policy Applicability RxO Modifiable
PRESENTATION P, S Y N
RELIABILITY T, DR, DW Y N
PARTITION P, S N Y
DESTINATION T, DR, DW Y N Data Delivery
ORDER
OWNERSHIP T, DR, DW Y N
OWNERSHIP DW - Y
STRENGTH
‣ Reliable. In steady-state
the middleware QoS Policy Applicability RxO Modifiable
RELIABILITY T, DR, DW Y N
guarantees that all
samples in the QoS matching
Name
DataReader
QoS matching
Subscriber
... ...
the owner of an instance can ...
liveliness changes
Name
Topic
the
OWNERSHIP_STRENGTH
© 2008, PrismTech. All Rights Reserved
Ownership Strength
How strong are you?
only if the
QoS QoS QoS
Name
Topic
QoS matching
StockQuote
symbol: "MSFT"
StockQuote
name: "Microsoft Corp."
exchange:symbol:
"NASD" "GOOG"
quote: 33.73
name: "Google Inc."
exchange:StockQuote
"NASD"
P
quote:symbol:
663.97"AAPL"
name: "Apple Inc."
exchange: "NASD"
S1
quote: 165.37
STRENGTH=3
{symbol = “AAPL”}
StockQuote
symbol: "AAPL"
StockQuote
name: "Apple Inc."
symbol:exchange:
"GOOG""NASD"
name: quote:
"Google Inc."
165.37
StockQuote
exchange: "NASD"
symbol: "MSFT"
quote: 663.97
name: "Microsoft Corp."
exchange: "NASD"
quote: 33.73
P’ S2
{quote > 500}
STRENGTH=2 StockQuote
symbol: "AAPL"
StockQuote
name: "Apple Inc."
symbol:exchange:
"GOOG""NASD"
name: quote:
"Google Inc."
165.37
StockQuote
exchange: "NASD"
symbol: "MSFT"
quote: 663.97
name: "Microsoft Corp."
exchange: "NASD"
quote: 33.73
P’’ S3
{ name =”Microsoft Coorp.”}
STRENGTH=1
StockQuote
symbol: "MSFT"
StockQuote
name: "Microsoft Corp."
exchange:symbol:
"NASD" "GOOG"
quote: 33.73
name: "Google Inc."
exchange: "NASD"
P
quote: 663.97
StockQuote
symbol: "AAPL"
S1
STRENGTH=3 name: "Apple Inc."
{symbol = “AAPL”}
exchange: "NASD"
quote: 165.37
StockQuote
symbol: "GOOG"
name: "Google Inc."
StockQuote
exchange: "NASD"
symbol: "MSFT"
quote: 663.97
name: "Microsoft Corp."
exchange: "NASD"
quote: 33.73
P’ S2
{quote > 500}
STRENGTH=2 StockQuote
symbol: "GOOG"
name: "Google Inc."
StockQuote
exchange: "NASD"
symbol: "MSFT"
quote: 663.97
name: "Microsoft Corp."
exchange: "NASD"
quote: 33.73
P’’ S3
{ name =”Microsoft Coorp.”}
STRENGTH=1
StockQuote
symbol: "MSFT"
name: "Microsoft Corp."
exchange: "NASD"
quote: 33.73
P
StockQuote
symbol: "AAPL"
S1
STRENGTH=3 name: "Apple Inc."
{symbol = “AAPL”}
exchange: "NASD"
quote: 165.37
StockQuote
symbol: "MSFT"
name: "Microsoft Corp."
exchange: "NASD"
quote: 33.73
StockQuote
P’ S2
symbol: "GOOG"
name: "Google Inc."
exchange: "NASD"
quote: 663.97
P’’ S3
{ name =”Microsoft Coorp.”}
STRENGTH=1
S1
StockQuote
symbol: "AAPL"
name: "Apple Inc."
exchange: "NASD"
quote: 165.37
{symbol = “AAPL”}
StockQuote
S2
symbol: "GOOG"
name: "Google Inc."
exchange: "NASD"
quote: 663.97
P’’ S3
{ name =”Microsoft Coorp.”}
STRENGTH=1
S1
StockQuote
symbol: "AAPL"
name: "Apple Inc."
exchange: "NASD"
quote: 165.37
{symbol = “AAPL”}
StockQuote
S2
symbol: "GOOG"
name: "Google Inc."
exchange: "NASD"
quote: 663.97
StockQuote
symbol: "MSFT"
S3
name: "Microsoft Corp."
P’’
exchange: "NASD"
quote: 33.73
‣ Hot-Hot replicas could be used to ensure that only, and always, the
fastest sample is delivered
‣ This can be achieved in a few different manners, the most effecive
being a combination of DESTINATION_ORDER QoS and
write_with_timestamp()
StockQuote
symbol: "MSFT"
StockQuote
name: "Microsoft Corp."
exchange:symbol:
"NASD" "GOOG"
quote: 33.73
name: "Google Inc."
exchange:StockQuote
"NASD"
P
quote:symbol:
663.97"AAPL"
name: "Apple Inc."
exchange: "NASD"
S1
quote: 165.37
StockQuote
symbol: "AAPL"
StockQuote
name: "Apple Inc."
symbol:exchange:
"GOOG""NASD"
name: quote:
"Google Inc."
165.37
StockQuote
exchange: "NASD"
symbol: "MSFT"
quote: 663.97
name: "Microsoft Corp."
exchange: "NASD"
quote: 33.73
P’ S2
{quote > 500}
Satellite Data Feed StockQuote
symbol: "AAPL"
StockQuote
name: "Apple Inc."
symbol:exchange:
"GOOG""NASD"
name: quote:
"Google Inc."
165.37
StockQuote
exchange: "NASD"
symbol: "MSFT"
quote: 663.97
name: "Microsoft Corp."
exchange: "NASD"
quote: 33.73
P’’ S3
{ name =”Microsoft Coorp.”}
Another Data Feed
© 2008, PrismTech. All Rights Reserved
Agenda
OpenSplice DDS
‣ Current Challenges
‣ OpenSplice DDS
‣ Technology Ecosystem
‣ DDS TouchStone
‣ Use Cases
‣ Concluding Remarks
DLRL
OMG DDS
DCPS
Minimum Profile
DDS API
SOAP DBMS Durability Security Networking Pluggable
Services
OS RTOS Supported
[Linux, Windows, Solaris) [VxWorks, RT-Linux, LynxOS) Platforms
Eclipse Foundation
605
228
150
67
62 % Relational 71 %
OO & 123 %
reduction Modeling reduction increase SQL
MDE
Relational & MDE
Modeling
ODBC/SQL
MDE: a factor of 10 !
Features
Application Application
‣ Transparently ‘connect’
OpenSplice DDS ‘Real-time
OpenSplice DDS OpenSplice DDS Application information-space’ to the enterprise
Binding Binding DBMS space
JDBC/ODBC 3.0
Binding ‣ Share/access data in the most
‘natural way’ between Real-Time
and Enterprise applications
‣ Standards based (ODBC/JDBC)
Shared Memory and optimized performance for the
DBMS
ANTs™ data-server
‣ Seamless two-way data
exchange
‣ OpenSplice DDS persistence-
profile support for QoS-driven
OpenSplice DDS OpenSplice DDS OpenSplice DDS JDBC/ODBC 3.0
Binding Binding Binding Binding replication/persistence, even for
DBMS users
Config. Networking DBMS
‣ Highly configurable for
maximum performance
OpenSplice DDS
‣ Current Challenges
‣ OpenSplice DDS
‣ Technology Ecosystem
‣ DDS TouchStone
‣ Use Cases
‣ Concluding Remarks
OpenSplice DDS
‣ Current Challenges
‣ OpenSplice DDS
‣ Technology Ecosystem
‣ DDS TouchStone
‣ Use Cases
‣ Concluding Remarks
Transportation
‣ Amsterdam Metro
‣ Paris Metro
‣ CoFlight: Flight-plan management system upgrades
for France, Italy, Switzerland
Aerospace
‣ NASA Kennedy Space Center: Constellation
Program for next generation ARES Rocket Launch
System
SCADA
‣ Chemtech/Siemens in Brazil: since 2006
Homeland Security
‣ IDA: ‘Cybercrime Defense’ in WAN environment
OpenSplice DDS
‣ Current Challenges
‣ OpenSplice DDS
‣ Technology Ecosystem
‣ DDS TouchStone
‣ Use Cases
‣ Concluding Remarks