102
Angelo Corsaro, Ph.D. Chief Technology Officer OMG DDS SIG Co-Chair [email protected] Delivering Performance, Openness, and Freedom Open Splice DDS A Gentle Introduction

A Gentle Introduction to OpenSplice DDS

Embed Size (px)

DESCRIPTION

This presentation provides a primer into the DDS standard and OpenSplice DDS.

Citation preview

Page 1: 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

Page 2: A Gentle Introduction to OpenSplice 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

“Historical” Perspective

Page 3: A Gentle Introduction to OpenSplice DDS

© 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

Page 4: A Gentle Introduction to OpenSplice DDS

© 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

Page 5: A Gentle Introduction to OpenSplice 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

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

Page 6: A Gentle Introduction to OpenSplice 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

As Simple as it Gets

Page 7: A Gentle Introduction to OpenSplice 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)

Global Data Space

DDS

Page 8: A Gentle Introduction to OpenSplice 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

Page 9: A Gentle Introduction to OpenSplice 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

Page 10: A Gentle Introduction to OpenSplice 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

‣ 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

Page 11: A Gentle Introduction to OpenSplice 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

‣ 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

Page 12: A Gentle Introduction to OpenSplice 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

‣ 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

Page 13: A Gentle Introduction to OpenSplice 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

‣ 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

Page 14: A Gentle Introduction to OpenSplice 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

Defining Data

Page 15: A Gentle Introduction to OpenSplice DDS

© 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

Page 16: A Gentle Introduction to OpenSplice DDS

© 2009, PrismTech. All Rights Reserved

DDS Topics

Circle

struct ShapeType { long x; long y; long shapesize; string color;};#pragma keylist ShapeType color

Topic QoS

Page 17: A Gentle Introduction to OpenSplice DDS

© 2009, PrismTech. All Rights Reserved

DDS Topics

Triangle

struct ShapeType { long x; long y; long shapesize; string color;};#pragma keylist ShapeType color

Topic QoS

Page 18: A Gentle Introduction to OpenSplice DDS

© 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

Page 19: A Gentle Introduction to OpenSplice DDS

© 2009, PrismTech. All Rights Reserved

Topic/Instances/Samples Recap.Topics Instances

Samples

timeti tj tnow

Page 20: A Gentle Introduction to OpenSplice DDS

© 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

Page 21: A Gentle Introduction to OpenSplice DDS

© 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

Page 22: A Gentle Introduction to OpenSplice DDS

© 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

Page 23: A Gentle Introduction to OpenSplice 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

Organizing Data

Page 24: A Gentle Introduction to OpenSplice DDS

© 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

Page 25: A Gentle Introduction to OpenSplice DDS

© 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

Page 26: A Gentle Introduction to OpenSplice 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

Quality of Service

Page 27: A Gentle Introduction to OpenSplice DDS

© 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

Page 28: A Gentle Introduction to OpenSplice DDS

© 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

Page 29: A Gentle Introduction to OpenSplice DDS

© 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

Page 30: A Gentle Introduction to OpenSplice DDS

© 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

Page 31: A Gentle Introduction to OpenSplice DDS

© 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

Page 32: A Gentle Introduction to OpenSplice 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

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?

Page 33: A Gentle Introduction to OpenSplice 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

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?

Page 34: A Gentle Introduction to OpenSplice 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

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?

Page 35: A Gentle Introduction to OpenSplice DDS

© 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

Page 36: A Gentle Introduction to OpenSplice DDS

© 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

Page 37: A Gentle Introduction to OpenSplice 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

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

Page 38: A Gentle Introduction to OpenSplice 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

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

Page 39: A Gentle Introduction to OpenSplice 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

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

Page 40: A Gentle Introduction to OpenSplice 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

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

Page 41: A Gentle Introduction to OpenSplice 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

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

Page 42: A Gentle Introduction to OpenSplice 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

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

Page 43: A Gentle Introduction to OpenSplice 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

Page 44: A Gentle Introduction to OpenSplice 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

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

Page 45: A Gentle Introduction to OpenSplice 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

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}

Page 46: A Gentle Introduction to OpenSplice 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

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}

Page 47: A Gentle Introduction to OpenSplice 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

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}

Page 48: A Gentle Introduction to OpenSplice 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

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}

Page 49: A Gentle Introduction to OpenSplice 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

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}

Page 50: A Gentle Introduction to OpenSplice 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

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}

Page 51: A Gentle Introduction to OpenSplice 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

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}

Page 52: A Gentle Introduction to OpenSplice 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

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}

Page 53: A Gentle Introduction to OpenSplice 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

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}

Page 54: A Gentle Introduction to OpenSplice 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

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}

Page 55: A Gentle Introduction to OpenSplice 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

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}

Page 56: A Gentle Introduction to OpenSplice 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

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

Page 57: A Gentle Introduction to OpenSplice 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

OpenSplice DDS Architecture

Page 58: A Gentle Introduction to OpenSplice DDS

© 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

Page 59: A Gentle Introduction to OpenSplice DDS

© 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

Page 60: A Gentle Introduction to OpenSplice DDS

© 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

Page 61: A Gentle Introduction to OpenSplice 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

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

Page 62: A Gentle Introduction to OpenSplice 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

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

Page 63: A Gentle Introduction to OpenSplice 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

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

Page 64: A Gentle Introduction to OpenSplice 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

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

Page 65: A Gentle Introduction to OpenSplice 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

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

Page 66: A Gentle Introduction to OpenSplice 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

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

Page 67: A Gentle Introduction to OpenSplice 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

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

Page 68: A Gentle Introduction to OpenSplice 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

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

Page 69: A Gentle Introduction to OpenSplice 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

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

Page 70: A Gentle Introduction to OpenSplice 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

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

Page 71: A Gentle Introduction to OpenSplice 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

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

Page 72: A Gentle Introduction to OpenSplice 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

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

Page 73: A Gentle Introduction to OpenSplice 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

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

Page 74: A Gentle Introduction to OpenSplice 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

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

Page 75: A Gentle Introduction to OpenSplice 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

Product Organization

Page 76: A Gentle Introduction to OpenSplice DDS

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.

Page 77: A Gentle Introduction to OpenSplice 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

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

Page 78: A Gentle Introduction to OpenSplice 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

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

Page 79: A Gentle Introduction to OpenSplice 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

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

Page 80: A Gentle Introduction to OpenSplice 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

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

Page 81: A Gentle Introduction to OpenSplice 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

Performance

Page 82: A Gentle Introduction to OpenSplice 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

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

Page 83: A Gentle Introduction to OpenSplice 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

Use Cases

Page 84: A Gentle Introduction to OpenSplice 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

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

Page 85: A Gentle Introduction to OpenSplice 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

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

Page 86: A Gentle Introduction to OpenSplice 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

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

Page 87: A Gentle Introduction to OpenSplice 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

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

Page 88: A Gentle Introduction to OpenSplice 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

Page 89: A Gentle Introduction to OpenSplice 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 Use Cases

Transportation

‣ Drones‣e.g. Navcom

Financial Services

‣ Automated Trading Firms‣e.g. ThinkTrade

Page 90: A Gentle Introduction to OpenSplice 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

Concluding Remarks

Page 91: A Gentle Introduction to OpenSplice 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

AMQP vs DDS

Page 92: A Gentle Introduction to OpenSplice 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

Page 93: A Gentle Introduction to OpenSplice 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

Page 94: A Gentle Introduction to OpenSplice 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

Page 95: A Gentle Introduction to OpenSplice 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

Page 96: A Gentle Introduction to OpenSplice 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

Page 97: A Gentle Introduction to OpenSplice 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

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

Page 98: A Gentle Introduction to OpenSplice 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

Page 99: A Gentle Introduction to OpenSplice 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

Page 100: A Gentle Introduction to OpenSplice 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

Page 101: A Gentle Introduction to OpenSplice 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