OpenSplice DDS Finance

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 69

OpenSplice DDS

Meeting Skyrocketing
Message Rates in Complex
Financial Trading Applications

Angelo Corsaro, Ph.D.


angelo.corsaro@prismtech.com
Product Marketing Manager | PrismTech
OMG RTESS and DDS SIG Co-Chair
Agenda

OpenSplice DDS
‣ Current Challenges
‣ OpenSplice DDS
‣ Technology Ecosystem
‣ DDS TouchStone
‣ Use Cases Dr. Angelo Corsaro

‣ Concluding Remarks

© 2008, PrismTech. All Rights Reserved


Historical Perspective

Once upon a time


‣ Trading was an activity entirely centered
around humans
‣ Trading rates were limited by human speed
From 1980’s to 1990’s
‣ 1985 signed the birth of digital trading and
the surge of data aggregators
‣ Humans increasingly assisted by machines
From early 2000’s to today
‣ The rise of completely automated
electronic trading and exchange
‣ Direct connection to stock exchange
‣ Decimalization and exceptional market
growth leading to rise in data volumes

© 2008, PrismTech. All Rights Reserved


Trends & Challenges - Financial Firms

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!

© 2008, PrismTech. All Rights Reserved


Trends Challenges - Stock Exchanges

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

Deployed middleware solutions were not


designed to address these challenges!

© 2008, PrismTech. All Rights Reserved


Resulting Technical Challenges
Power is nothing without control!

We need a Topic-Based Publish/Subscribe Middleware that provides...

Most Hyped
Low latency and predictable data dissemination
Support for several 100K messages/sec, up to
Millions messages/sec

© 2008, PrismTech. All Rights Reserved


Resulting Technical Challenges
Power is nothing without control!

We need a Topic-Based Publish/Subscribe Middleware that provides...

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

© 2008, PrismTech. All Rights Reserved


OpenSplice DDS
The future of Publish/Subscribe has come!

A High Performance Real-Time Data-Centric Publish/Subscribe Middleware


‣ The right data, at the right place, at the right time -- all the time!
‣ Fully distributed, multicast-enabled, high performance, highly scalable, and high availability,
hot-swap, architecture

Perfect Blend of Data-Centric and Real-Time Publish/Subscribe Technologies


‣ Content based subscriptions, (continuous) queries, filters, and windows
‣ Fine grained tuning of resource usage and data delivery and availability QoS
‣ Optimal networking and computing resources usage
Loosely coupled Subscriber
Publisher
‣ Plug and Play Architecture with Dynamic
Discovery B

‣ Time and Space Decoupling


m

A F Subscriber
Open Standard Publisher J
D C

‣ Complies with the full profile of the OMG K Subscriber


DDS v1.2
E

Publisher
Subscriber

Global Data Space

© 2008, PrismTech. All Rights Reserved


OpenSplice DDS: Foundational Abstractions

‣ Information Model. Defines the structure, relations, and QoS, of the


information exchanged by the applications, and supports Flat, Relational, and
Object Oriented Modeling
‣ Typed Global Data Space. A logical data space in which applications read and
write data anonymously and asynchronously, decoupled in space and time
‣ Publisher/Subscriber. Produce/Consume information into/from the Global
Data Space
‣ QoS. Regulates the non-functional properties of information in the Global Data
Space, e.g., reliability, availability, and timeliness, etc.
Subscriber
Publisher

A F Subscriber
Publisher J
D C

K
E
Subscriber

Publisher
Global Data Space Subscriber

© 2008, PrismTech. All Rights Reserved


Flat Modeling
How do I define the data and subscribe to it?

‣ Modeling. Items distributed within the


system are modeled as Topics

‣ Topics. Defined as the associations between


a data type and a set of QoS and identified
by a unique name.

‣ Data Types. The data type associated to a


Topic is specified by means of IDL

‣ Subscriptions. Topics, Content-Filtered


Topics or Multi-Topics (join between topics) struct StockQuote {
can be used to specify subscriptions. SQL string symbol;
string name;
expression are used to specify filters and sting exchange;
joins float quointe;
string xml_extra;
};

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>

© 2008, PrismTech. All Rights Reserved


Relational Modeling
How do I define the data and subscribe to it?

‣ Modeling. As in a Relational DB, an


OpenSplice DDS information model can be
represented by means of Entity Relationship
(ER) diagrams

‣ Topics. The entities, represented by means of


Topics, are in turns an association between a
data type and a set of QoS and identified by a
unique name (like tables in an RDBMS) struct StockQuote {
string symbol;

‣ Data Types. The data type associated to a string name;


sting exchange;
Topic must be a structured type expressed in float quote;
IDL };
string xml_extra;

#pragma keylist StockQuote symbol


‣ Instances. Key values in a datatype uniquely StockQuote
identify an instance (like rows in table) symbol: "AAPL"
name: "Apple Inc."
StockQuote
symbol: "MSFT"
exchange: "NASD" name: "Microsoft Corp."
quote: 165.37 exchange: "NASD"

‣ Correlation. SQL Expressions can be used to


xml_extra: "<ext>,,,</ext> quote: 33.73
xml_extra: "<ext>,,,</ext>
correlate information by means of key values StockQuote
symbol: "GOOG"
name: "Google Inc."
exchange: "NASD"
quote: 663.97
xml_extra: "<ext>,,,</ext>
© 2008, PrismTech. All Rights Reserved
Object Oriented Modeling
Unleashing the power of Objects...

The DDS supports true Object Oriented Distributed Person


Information Modeling by means of the DLRL layer ssn: string
age: short
‣ Reduced Complexity & Improved Productivity name: string
surname: string
‣ Focus on the architecture and business logic, while hiding away birth_date: string
sex: char
the details involved with the diffusion of shared objects state getX()

‣ Encapsulation setX()

‣ Attributes are only accessible through dedicated getter/setter


operations, i.e., don’t need to the messaging middleware or the Employee
title: string
application to have privileged access to business objects job_code: string *
representation salary: long

‣ Local Operations
getEmployer()
setEmployer()

‣ Besides getters/setters, all other kind of manipulations can be is employed employs


done using custom operations Employer

‣ 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

© 2008, PrismTech. All Rights Reserved


Multiple Mappings
Unleashing the power of Objects...

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

© 2008, PrismTech. All Rights Reserved


Processing Content & Structure
Complex Event Processing...

‣ Content-based Subscriptions OpenSplice DDS some of the most


useful features found in Complex
‣ Topics Joins & Projections Event Processing platforms!
‣ Queries
‣ Continuous Queries
‣ Correlation across topics (via joins)
‣ Events windows (via History QoS)

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.”}

© 2008, PrismTech. All Rights Reserved


Processing Content & Structure
Complex Event Processing...

‣ Content-based Subscriptions OpenSplice DDS some of the most


useful features found in Complex
‣ Topics Joins & Projections Event Processing platforms!
‣ Queries
‣ Continuous Queries
‣ Correlation across topics (via joins)
‣ Events windows (via History QoS) StockQuote
symbol: "AAPL"
name: "Apple Inc."
exchange: "NASD"StockQuote
symbol: "AAPL"
quote: 578.19
StockQuote
name: "Apple Inc."
S1
symbol: "AAPL"
exchange: "NASD"
quote: 387.74name: "Apple Inc."
exchange: "NASD"
quote: 165.37 {symbol = “AAPL”}

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.”}

© 2008, PrismTech. All Rights Reserved


OpenSplice DDS: Foundational Abstractions

‣ Information Model. Defines the structure, relations, and QoS, of the


information exchanged by the applications, and supports Simple, Relational,
and Object Oriented Modeling
‣ Typed Global Data Space. A logical data space in which applications read and
write data anonymously and asynchronously, decoupled in space and time
‣ Publisher/Subscriber. Produce/Consume information into/from the Global
Data Space
‣ QoS. Regulates the non-functional properties of information in the Global Data
Space, e.g., reliability, availability, and timeliness, etc.
Subscriber
Publisher

A F Subscriber
Publisher J
D C

K
E
Subscriber

Publisher
Global Data Space Subscriber

© 2008, PrismTech. All Rights Reserved


Global Data Space
How can I organize my data?

‣ 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

IP Multicast per Partition


Hardware Filtering
B Traffic Confinement

A F

J
D C

K
Partition E

Information Segregation
Traffic Confinement

© 2008, PrismTech. All Rights Reserved


OpenSplice DDS: Foundational Abstractions

‣ Information Model. Defines the structure, relations, and QoS, of the


information exchanged by the applications, and supports Simple, Relational,
and Object Oriented Modeling
‣ Typed Global Data Space. A logical data space in which applications read and
write data anonymously and asynchronously, decoupled in space and time
‣ Publisher/Subscriber. Produce/Consume information into/from the Global
Data Space
‣ QoS. Regulates the non-functional properties of information in the Global Data
Space, e.g., reliability, availability, and timeliness, etc.
Subscriber
Publisher

A F Subscriber
Publisher J
D C

K
E
Subscriber

Publisher
Global Data Space Subscriber

© 2008, PrismTech. All Rights Reserved


Publisher/DataWriter & Subscriber/DataReader
Publisher/DataWriter Subscriber/DataReader
‣ Publishers are responsible for managing the ‣ Subscribers are responsible for managing the
dissemination of publications reception of data resulting from subscriptions
‣ The dissemination is driven by the QoS ‣ The presentation of data is driven by the QoS
associated with the DataWriter, the Publisher, associated with the DataReader, the Publisher
and the Topic and the Topic
‣ A DataWriter is associated with only one ‣ A DataReader is associated with only one
Publisher and one Topic. It embeds the Publisher and one Topic. It embeds the
knowledge of dealing with the Topic’s Data knowledge of dealing with the Topic’s Data Type
Type
Type Matching
QoS matching

QoS QoS QoS QoS QoS

Topic
Name
Publisher Subscriber

... DataWriter writes Type reads DataReader


...
...
DataWriter writes Type reads DataReader

Name
Topic

QoS QoS QoS

Network
© 2008, PrismTech. All Rights Reserved
OpenSplice DDS: Foundational Abstractions

‣ Information Model. Defines the structure, relations, and QoS, of the


information exchanged by the applications, and supports Simple, Relational,
and Object Oriented Modeling
‣ Typed Global Data Space. A logical data space in which applications read and
write data anonymously and asynchronously, decoupled in space and time
‣ Publisher/Subscriber. Produce/Consume information into/from the Global
Data Space
‣ QoS. Regulates the non-functional properties of information in the Global Data
Space, e.g., reliability, availability, and timeliness, etc.
Subscriber
Publisher

A F Subscriber
Publisher J
D C

K
E
Subscriber

Publisher
Global Data Space Subscriber

© 2008, PrismTech. All Rights Reserved


QoS Model
How is QoS matched in the System?

‣ QoS can associated with all relevant OpenSplice DDS entities


‣ Some QoS are matched based on a Request vs. Offered Model
‣ Publications and Subscriptions match only if the declared and
requested QoS are compatible
‣ e.g., it is not possible to match a publisher which delivers data unreliably with a subscriber
which requires reliability
Type Matching
QoS matching

QoS QoS QoS QoS QoS

Topic
Name
Publisher Subscriber

... DataWriter writes Type reads DataReader


...
...
DataWriter writes Type reads DataReader

Name
Topic

QoS QoS QoS

© 2008, PrismTech. All Rights Reserved


QoS
What are the key QoS supported?
QoS Policy Applicability RxO Modifiable QoS matching

DURABILITY T, DR, DW Y N Data QoS QoS QoS

DURABILITY T, DW N N Availability Topic QoS


QoS
SERVICE
Name

DataWriter writes Type reads DataReader

LIFESPAN T, DW - Y Publisher ...


Subscriber

HISTORY T, DR, DW N N DataWriter writes Type reads DataReader

Name
PRESENTATION P, S Y N Data Delivery Topic

RELIABILITY T, DR, DW Y N QoS QoS QoS

PARTITION P, S N Y QoS matching

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

© 2008, PrismTech. All Rights Reserved


Mapping QoS
Which properties does QoS controls?

TimeBasedFilter Deadline

Data
Throughput
Latency

LatencyBudget TransportPriority

Control over Latency/Throughput tradeoff


Control over data latency
Control over data priority

© 2008, PrismTech. All Rights Reserved


Mapping QoS
Which properties does QoS controls?

TimeBasedFilter Deadline History

Data Data
Throughput Lifespan Durability
Latency Availability

Ownership
LatencyBudget TransportPriority Ownership
Strength

Control over Latency/Throughput tradeoff


Control over data queueing
Control over data latency
Control over data persistency
Control over data priority
Control over data sources hot-swap

© 2008, PrismTech. All Rights Reserved


Mapping QoS
Which properties does QoS controls?

TimeBasedFilter Deadline History

Data Data
Throughput Lifespan Durability
Latency Availability

Ownership
LatencyBudget TransportPriority Ownership
Strength

Control over Latency/Throughput tradeoff


Control over data queueing
Control over data latency
Control over data persistency
Control over data priority
Control over data sources hot-swap

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

© 2008, PrismTech. All Rights Reserved


TimeBasedFilter Deadline

Data
Throughput
Latency

LatencyBudget TransportPriority

Data Timeliness

QoS Policy Applicability RxO Modifiable


DEADLINE T, DR, DW Y Y
LATENCY T, DR, DW Y Y
Data
BUDGET
Timeliness
TRANSPORT T, DW - Y
PRIORITY

© 2008, PrismTech. All Rights Reserved


Deadline
You can’t be later than...

The DEADLINE QoS policy allows to define the maximum inter-


arrival time between data samples
QoS Policy Applicability RxO Modifiable

‣ DataWriter indicates DEADLINE T, DR, DW Y Y

that the application


commits to write a new
QoS matching

value at least once


QoS QoS QoS

every deadline period QoS Topic


Name
QoS

‣ DataReaders are
DataWriter writes Type reads DataReader

Publisher ... Subscriber


... ...
notified by the DDS DataWriter writes Type reads DataReader

when the DEADLINE Name


Topic
QoS contract is
violated QoS QoS QoS

QoS matching

© 2008, PrismTech. All Rights Reserved


Latency Budget
I need to get there in at most...

The 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

‣ The default value of the QoS Policy Applicability RxO Modifiable


duration is zero LATENCY T, DR, DW Y Y
BUDGET
indicating that the delay
should be minimized QoS matching

‣ This policy is a hint to the


QoS QoS QoS

DDS, not something that QoS Topic


Name
QoS

must be monitored or Publisher


DataWriter writes Type reads DataReader

Subscriber
... ...
enforced. ...
DataWriter writes Type reads DataReader

Name
Topic

QoS QoS QoS

QoS matching

© 2008, PrismTech. All Rights Reserved


Transport Priority
VIP Data, stay clear!

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 T, DW - Y
PRIORITY

QoS matching

QoS QoS QoS

QoS Topic QoS


Name

DataWriter writes Type reads DataReader

Publisher ... Subscriber


... ...

DataWriter writes Type reads DataReader

Name
Topic

QoS QoS QoS

QoS matching

© 2008, PrismTech. All Rights Reserved


OpenSplice DDS Architectural Outlook
Scalable & Flexible

Application Application Application Application


OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS
Binding Binding Binding Binding

Shared Memory

OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS
Binding Binding Binding Binding Binding

Config. SOAP Networking Durability DBMS


Security

© 2008, PrismTech. All Rights Reserved


Networking Architecture
Getting control over the network!

Architecture Shared Single Copy per Node Shared


Pack Across Topics/Applications
‣ Network-channels Memory Optimal Unmarshaling Memory
‣ Priority bands
‣ Network-partitions
‣ Multicast Groups
‣ Traffic-shaping OpenSplice DDS OpenSplice DDS
‣ Burst/Throughput Binding Binding
Pre-emptive Network Scheduer
Priority Scheduler
Networking Data Urgency Traffic Pacing
Networking
Scalability and Efficiency
‣ Single shared library for Network Channels
Priority Bands
applications & services
‣ Ring-fenced shared memory Traffic Shaping
segment
‣ Data urgency driven network-
packing
Determinism & Safety
‣ Preemptive network-scheduler
‣ Data importance based network-channel selection
‣ Partition based multicast-group selection
‣ Managed critical network-resource

© 2008, PrismTech. All Rights Reserved


Head of Line Blocking
If a single connection is used for all the data, High Priority Data can experience
unbounded priority inversion -- also known as head-of-line blocking

This is a know problem of non priority preserving transport such as TCP-UDP/IP

75 55 15 10

Priority Bands ensure that high priority data, always find its way preempting
lower priority data

With priority bands, priority inversion is completely under control of the


Engineer that design/deploys the system
75 90 90

55 60 60

15 10 30 30

© 2008, PrismTech. All Rights Reserved


History

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

© 2008, PrismTech. All Rights Reserved


Durability
For who will this data be available?

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

data instances for late DURABILITY T, DR, DW Y N


DURABILITY T, DW N N
joining data readers SERVICE

‣ Transient Local. Data


instance availability for late
QoS matching

joining data reader is tied to


QoS QoS QoS

the data writer availability QoS Topic


Name
QoS

‣ Transient. Data instance DataWriter writes Type reads DataReader

availability outlives the data Publisher ... ... ... Subscriber

writer DataWriter writes Type reads DataReader


Name
Persistent. Data instance Topic

availability outlives system QoS QoS QoS

restarts QoS matching

The DURABILITY_SERVICE QoS provide control over configuration of the


service that implements the transient and persistent durability features
© 2008, PrismTech. All Rights Reserved
Persistence Architecture

Architecture Shared Memory Shared Memory


‣ Fault-Tolerant Data
Availability
‣ Transient -- on memory
‣ Persistent -- on disk OpenSplice DDS OpenSplice DDS
Disk
OpenSplice DDS OpenSplice DDS
Binding Binding Binding
‣ Partitioning
Binding

‣ DDS Partitions Networking Durability Durability Networking


Persist Partitions
‣ Alignment Persistent Data on Disk
Transient Data in Memory
‣ Dedicated Channels

Dedicated Persistence Service Alignment Channel

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?

‣ The LIFESPAN QoS


QoS Policy Applicability RxO Modifiable
LIFESPAN T, DW - Y
policy allows to
control what happens
QoS matching
to stale data QoS QoS QoS

‣ It specifies the validity Topic


interval for data
QoS QoS
Name

written by the
DataWriter writes Type reads DataReader

Publisher ... Subscriber


... ...
DataWriter writes Type reads DataReader
DataWriter

‣ The default validity Topic


Name

interval is infinite
QoS QoS QoS

QoS matching

© 2008, PrismTech. All Rights Reserved


History
How many data samples should I keep?

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:

‣ Keep Last. The DDS will only


attempt to keep the most QoS Policy Applicability RxO Modifiable
HISTORY T, DR, DW N N
recent “depth” samples of
each instance of data QoS matching

identified by its key QoS QoS QoS

‣ Keep All. The DDS will


QoS Topic QoS
attempt to keep all the Name

samples of each instance of DataWriter writes Type reads DataReader

data identified by its key.


Publisher ... Subscriber
... ...

‣ On the DataWriter Samples DataWriter writes Type reads DataReader

are kept until delivered to all Topic


Name

known subscribers
QoS QoS QoS

‣ On the DataReader side QoS matching


samples are kept until the
application “takes” them

© 2008, PrismTech. All Rights Reserved


Reliability

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

© 2008, PrismTech. All Rights Reserved


Reliability
How much effort should be taken to deliver data?

The RELIABILITY QoS indicate the level of guarantee offered by


the DDS in delivering data to subscribers. Possible variants are:

‣ 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

DataWriter history will QoS QoS QoS

eventually be delivered QoS Topic


Name
QoS

to all the DataReader DataWriter writes Type reads DataReader

‣ Best Effort. Indicates


Publisher ... Subscriber
... ...

that it is acceptable to DataWriter writes Type reads

Name
DataReader

not retry propagation of Topic

any samples QoS QoS QoS

QoS matching

© 2008, PrismTech. All Rights Reserved


Ownership
Who owns the data?

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:

‣ Shared. Multiple writers are


allowed to update the same QoS Policy Applicability RxO Modifiable

instance and all the updates OWNERSHIP T, DR, DW Y N

are made available to the QoS matching


reader QoS QoS QoS

‣ Exclusive. Indicates that Topic


each instance can only be
QoS QoS
Name

owned by one DataWriter, but Publisher


DataWriter writes Type reads DataReader

Subscriber
... ...
the owner of an instance can ...

change dynamically -- due to DataWriter writes Type reads DataReader

liveliness changes
Name
Topic

‣ The selection of the owner is QoS QoS QoS

controlled by the setting of QoS matching

the
OWNERSHIP_STRENGTH
© 2008, PrismTech. All Rights Reserved
Ownership Strength
How strong are you?

The OWNERSHIP_STRENGTH Specifies the value of the “strength”


used to arbitrate among DataWriters that attempt to modify the same
data instance

‣ Data instance are QoS Policy Applicability RxO Modifiable

identified by the OWNERSHIP


STRENGTH
DW - Y

couple (Topic, Key)


‣ The policy applies QoS matching

only if the
QoS QoS QoS

OWNERSHIP is QoS Topic


Name
QoS

EXCLUSIVE DataWriter writes Type reads DataReader

Publisher ... Subscriber


... ...

DataWriter writes Type reads DataReader

Name
Topic

QoS QoS QoS

QoS matching

© 2008, PrismTech. All Rights Reserved


Hot-Swap & Hot-Hot

© 2008, 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

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

© 2008, 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

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

© 2008, 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

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

{quote > 500}


STRENGTH=2
StockQuote
symbol: "MSFT"
name: "Microsoft Corp."
exchange: "NASD"
quote: 33.73

P’’ S3
{ name =”Microsoft Coorp.”}
STRENGTH=1

© 2008, 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
‣ Similar behavior, could be achieved by relying on write_with_timestamp

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

{quote > 500}


StockQuote
symbol: "MSFT"
name: "Microsoft Corp."
exchange: "NASD"
quote: 33.73

P’’ S3
{ name =”Microsoft Coorp.”}
STRENGTH=1

© 2008, 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
‣ Similar behavior, could be achieved by relying on write_with_timestamp

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

{quote > 500}

StockQuote
symbol: "MSFT"

S3
name: "Microsoft Corp."

P’’
exchange: "NASD"
quote: 33.73

{ name =”Microsoft Coorp.”}


STRENGTH=1

© 2008, PrismTech. All Rights Reserved


Managing Hot-Hot Data Replication

‣ 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

T1 Data Feed {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}
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

© 2008, PrismTech. All Rights Reserved


OpenSplice™ DDS

Monitor & Control Logging & Replay Configuration High-Level


Services

C/C++ Java XML

DLRL

OMG DDS
DCPS

Ownership Persistence Content Subscription


Profiles

Minimum Profile

DDS API
SOAP DBMS Durability Security Networking Pluggable
Services

OS RTOS Supported
[Linux, Windows, Solaris) [VxWorks, RT-Linux, LynxOS) Platforms

© 2008, PrismTech. All Rights Reserved


OpenSplice DDS PowerTools
Simply Productivity...

Domain Specific Language


User
Interface

Remote Information Application Deployment


Tuner Plug-ins
Connect Modeling Modeling Modeling

Eclipse Foundation

© 2008, PrismTech. All Rights Reserved


OpenSplice DDS PowerTools
Simply Productivity...

End-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
‣ Support for libraries of reusable Information
Model
Application Modeling
‣ Graphical application modeling
‣ Pattern-oriented code-generation (listener/
waitset/MVC)
Deployment Modeling
‣ Modeling of DDS-configuration Service
configuration (networking, durability)
‣ Runtime control (& round-trip engineering) by
OpenSplice DDS Tuner™

© 2008, PrismTech. All Rights Reserved


MessageBoard Example – Productivity
Simply Productivity...

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 !

© 2008, PrismTech. All Rights Reserved


Integration Technologies

51All Rights Reserved


© 2008, PrismTech.
DBMS-Connect™ Technology
Connecting to the Enterprise World...

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

© 2008, PrismTech. All Rights Reserved


Web Service Gateway
Expose you data to the WWW

Application Application Application Application


OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS
Binding Binding Binding Binding
Service
Management

SOAP SOAP (Dynamic)


Shared Memory
Interface DDS-API’s
service
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS
Configuration & Binding Binding Binding Binding Binding

Status Reporting Config. SOAP Networking Durability DBMS

Pluggable Service Framework Web Services Interface


‣ Service-management. Automatic start/stop, ‣ XML-based SOAP interface (remote
liveliness-monitoring, restart policy ‘connect’ via HTTP/URL)
‣ Maintenance. Common status and error ‣ XML-based Discovery of DDS-entities:
reporting Topics/Partitions, Subscribers/Readers,
‣ Configuration. XML-based configuration with Publishers/Writers
matching deployment tooling (‘OpenSplice ‣ XML-based Type-support: runtime creation
DDS configurator’) of topics/readers/writers
‣ Dynamic OpenSplice API’s. Untyped ‣ XML-based C&M: control and monitor of
readers/writers, dynamic type-support, C&M any DDS-entity (QoS, Resource-usage),
(discovery/control/monitoring) especially for OpenSplice Tuner™

© 2008, PrismTech. All Rights Reserved


Secure Networking
Securing you communication Infrastructure
Application Application Application Application
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS
Binding Binding Binding Binding

 Channel encryption between nodes


secure information distribution
over untrusted networks
between nodes of different security level Shared Memory
enforcement of need-to-know principle

 Integrity and data origin authentication for


information distribution over the network OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS
Binding Binding Binding Binding Binding

Config. SOAP Networking Durability DBMS


Security

A dedicated crypto channel per network Infrastructure solution


partition ‣ Security enforcement part of the
‣ Ensures that information received via the information backbone (transparent to
network (or eavesdropped on the network) applications)
can only be retrieved in its RED ‣ Secured Infrastructure
(unencrypted) form on nodes that are
accredited or have a need-to-know Secure networking is first building block for
complete IA
‣ Authentication of data origin
‣ Integrity preservation of information ‣ End-to-end security, incl. mandatory access
control per application, over the networked
exchanged between nodes
DDS backbone is next

© 2008, PrismTech. All Rights Reserved


Agenda

OpenSplice DDS
‣ Current Challenges
‣ OpenSplice DDS
‣ Technology Ecosystem
‣ DDS TouchStone
‣ Use Cases
‣ Concluding Remarks

© 2008, PrismTech. All Rights Reserved


Perspectives on Performance
Let’s make it easy, let’s make it real!

Everyone is Giving Numbers...


‣ Performance data abounds in Messaging Solutions Datasheets
‣ How meaningful is to provide that data?!?
‣ Depending on configuration and HW platform, OpenSplice DDS can
ship from several hundreds of thousands, to millions, of messages
per second, with latencies in the order of 100us...
‣ So What? What does this really buy you?
The Real Stuff
‣ Instead of being told about numbers...
‣ How about a benchmarking framework that allows with a few
clicks to set-up a benchmark representative of your application
that you can run on your lab, or even target system?
‣ Isn’t that much better than just numbers?

© 2008, PrismTech. All Rights Reserved


DDS TouchStone
Measure what you care, where you care!

‣ OpenSplice DDS ships with DDS TouchStone, a Benchmarking Framework that


allows to set-up, with a few clicks, a benchmarking application and to measure
latencies and throughputs
‣ All the most important characteristic of an application can be controlled, such as
data size, generation frequency, QoS, scheduling, and middleware
configuration
‣ DDS TouchStone provides a time-effective and meaningful way of assessing
OpenSplice DDS suitability for a specific appliation

© 2008, PrismTech. All Rights Reserved


Agenda

OpenSplice DDS
‣ Current Challenges
‣ OpenSplice DDS
‣ Technology Ecosystem
‣ DDS TouchStone
‣ Use Cases
‣ Concluding Remarks

© 2008, PrismTech. All Rights Reserved


OpenSplice DDS Beyond Finance
Defense
‣ TACTICOS-CMS: THALES Naval Netherlands’
CMS, 26 ships classes, >100 ships
‣ > 2.000 deployed runtimes (running on Solaris-servers, Linux-
consoles, and vxWorks embedded subsystems)
‣ 15 Navies worldwide (Netherlands, Germany, Turkey, Greece,
Oman, Qatar, Portugal, South Korea, Japan, Poland,…)

‣ USA programs: LCS/GD, ENFMC/NG, LHA-


LHD/DRS
‣ Brazilian Navy
‣ Australia: DSTO, ADI (Australia)
‣ THALES Naval NL’s Flycatcher system
‣ 4 army’s, >400 deployments
‣ NSWC: Open Architecture Test Facility (OA-TF)
Tactical networks
‣ Ultra Electronics (US, UK): OpenSplice DDS
selected over competition for superior
scalability and fault-tolerance

© 2008, PrismTech. All Rights Reserved


OpenSplice DDS Beyond Finance

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

© 2008, PrismTech. All Rights Reserved


Agenda

OpenSplice DDS
‣ Current Challenges
‣ OpenSplice DDS
‣ Technology Ecosystem
‣ DDS TouchStone
‣ Use Cases
‣ Concluding Remarks

© 2008, PrismTech. All Rights Reserved


Why OpenSplice DDS?
Giving you Power and Control!
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 Optimally addresses the requirements of next
Control over latency/throughput tradeoffs generation Financial Application
Traffic Engineering
HW Filtering
Traffic Shaping
Priority driven delivery
High Performance Persistence
Event Processing
Other
Security
DBMS/Web Services Connectivity
© 2008, PrismTech. All Rights Reserved
Concluding Remarks
Applicability
‣ OpenSplice DDS uniquely addresses some of the key requirements for next
generation Financial Applications
‣ Thanks to its architecture, OpenSplice DDS delivers extremely high
performance, high availability and reliability, while retaining low and
predictable latency even under burst of activities
Open Architecture
‣ OpenSplice DDS is the only implementation in the world which fully
implements the OMG DDS v1.2 standard
Technology Ecosystem
‣ Seamless cohabitation with CORBA (Java+C++) and RTSJ
‣ DBMS Integration
‣ Security Plug-in

OpenSplice DDS is the best solution available on the market for


solving next-generation Financial Application challenges!

© 2008, PrismTech. All Rights Reserved


Contact Us

‣ OpenSpliceDDS Resource Center


‣ http://www.prismtech.com/opensplice-dds/

‣ Evaluate OpenSplice DDS


‣ Training and Consulting
‣ sales@prismtech.com

‣ OMG DDS Information


‣ http://www.dds-forum.org/
‣ http://portals.omg.org/dds/

Thank You! © 2008, PrismTech. All Rights Reserved

You might also like