dds qos unleashed

99
Angelo Corsaro, Ph.D. Chief Technology Officer PrismTech OMG DDS SIG Co-Chair [email protected] :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Splice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS Splice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS DDS QoS Unleashed

Upload: angelo-corsaro

Post on 30-Apr-2015

6.902 views

Category:

Technology


0 download

DESCRIPTION

The DDS specification provides fine-grained control over the real-time behaviour, dependability, and performance of DDS applications by means of a rich set of QoS Policies. The challenge for many DDS users is that the specifications explains very clearly how each QoS allows to control very specific aspects of data distribution yet it provides no hints on how different QoS should be composed to control complex properties such as the consistency model, or to impose end-to-end real-time scheduling decision. This half-day tutorial will fill this gap by providing attendees with (1) an explanation of how the various QoS compose, and (2) providing attendees with a series of QoS-composition Patters that can be used to control macro-properties of an application, such as the consistency model.

TRANSCRIPT

Page 1: DDS QoS Unleashed

Angelo Corsaro, Ph.D.Chief Technology Officer

PrismTechOMG DDS SIG Co-Chair

[email protected]

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS

OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS

DDS QoS Unleashed

Page 3: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

The OMG DDS

The OMG DDS Standard‣ Introduced in 2004 to address the Data

distribution challenges typical of Defense and Aerospace Applications

‣ Key requirement for the standard were high performance and scalability from embedded to ultra-large-scale deployments

‣ Today recommended by key administration worldwide and widely adopted well beyond Aerospace and Defense in domains, such as, Automated Trading, Simulations, SCADA, Telemetry, etc.

Page 4: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

The OMG Data Distribution Service

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

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: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

The OMG Data Distribution Service

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 7: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

How Does it Work?

‣ DDS is based around the concept of a fully distributed Global Data Space (GDS)

‣ Applications can autonomously and asynchronously read/written data in the GDS

Brokers

Note: DDS can be seen as a

relaxation of the LINDA

coordination model

DDSGlobal Data Space

Page 9: DDS QoS Unleashed

Brokers

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

How Does it Work?

‣ Publishers and Subscribers can join and leave the GDS at any time

Subscriber

Subscriber

Subscriber

Publisher

Publisher

Publisher

DDSGlobal Data Space

Page 10: DDS QoS Unleashed

Brokers Subscriber

Subscriber

Subscriber

Publisher

Publisher

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

How Does it Work?

‣ Publishers and Subscribers express their intent to produce/consume specific type of data, e.g., Topics

Publisher

DDSGlobal Data Space

Page 11: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

How Does it Work?

‣ Subscriptions are matched by taking into account topics (name, data type and QoS)

Brokers Subscriber

Subscriber

Subscriber

Publisher

Publisher

Publisher

DDSGlobal Data Space

Page 12: DDS QoS Unleashed

Brokers

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

How Does it Work?

‣ Subscriptions are dynamically matched and Data flows from Publisher to Subscribers

Subscriber

Subscriber

Subscriber

Publisher

Publisher

Publisher

DDSGlobal Data Space

Page 13: DDS QoS Unleashed

Brokers

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

How Does it Work?

‣ Subscriptions are dynamically matched and Data flows from Publisher to Subscribers

Subscriber

Subscriber

Subscriber

Publisher

Publisher

Publisher

DDSGlobal Data Space

Page 15: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Topic -- the unit of information

Topic:

‣ Unit of information exchanged between Publisher and Subscribers.

‣ An association between a unique name, a type and a QoS setting TrackedObject

Track, UFO, AirCraft, ...

{ Reliability Deadline, Priority Transient, ...}

TopicType QoS

Name

Page 16: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Topic -- the unit of information

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 (or XML)

struct TrackedObject { long oId; long x; long y; long size;};#pragma keylist TrackedObject oId

struct FlightPlan { string code; long trackId; string origin; string dest; sequence<Coord> trajectory;};#pragma keylist FlightPlan code

Page 17: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

DDS Topic Instances and Samples

Topic Samples

‣ The values assumed by a Topic Instance over time are referred as Instance Sample

Topic Instances

‣ Each key value identifies a unique Topic Instance

‣ Topic’s instance lifetime can be explicitly managed in DDS

struct TrackedObject { long oId; long x; long y; long size;};#pragma keylist TrackedObject oId

Page 19: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Content Filtering

‣ DDS allows the use of a subset of SQL92 to specify content-filtered Topics

‣ 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

(x BETWEEN (RANGE x0 AND x1)) AND(y BETWEEN (RANGE y0 AND y1))

Page 20: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Content Filtering

‣ DDS allows the use of a subset of SQL92 to specify content-filtered Topics

‣ 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

(x BETWEEN (RANGE x0 AND x1)) AND(y BETWEEN (RANGE y0 AND y1))

Page 22: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

QoS Model

‣ End-to-end properties controlled by QoS are related to temporal and spatial aspects of data distribution

‣ Some QoS-Policies are matched based on a Request vs. Offered Model thus QoS-enforcement

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

‣ QoS-Policies provide control over local and end-to-end properties of DDS entities

‣ Local properties controlled by QoS are related resource usage

Page 23: DDS QoS Unleashed

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

QoS Policy Applicability RxO ModifiableDURABILITY

DURABILITY SERVICE

LIFESPAN

HISTORY

PRESENTATION

RELIABILITY

PARTITION

DESTINATION ORDER

OWNERSHIP

OWNERSHIP STRENGTH

DEADLINE

LATENCY BUDGET

TRANSPORT PRIORITY

T, DR, DW Y N

Data Availability

T, DW N NData

AvailabilityT, DW N/A Y

Data Availability

T, DR, DW N N

Data Availability

P, S Y N

Data Delivery

T, DR, DW Y N

Data Delivery

P, S N YData

DeliveryT, DR, DW Y NData

Delivery

T, DR, DW Y N

Data Delivery

DW N/A Y

Data Delivery

T, DR, DW Y Y

Data Timeliness

T, DR, DW Y YData

TimelinessT, DW N/A Y

Data Timeliness

TIME BASED FILTER

RESOURCE LIMITS

ENTITY FACTORY

USER DATA

TOPIC DATA

GROUP DATA

LIVELINESS

WRITER DATA LIFECYCLE

READER DATA LIFECYCLE

DR N/A Y

ResourcesT, DR, DW N N

Resources

Configuration

DP, DR, DW N Y ConfigurationT N Y

Configuration

P, S N Y

Configuration

T, DR, DW Y N

Configuration

DW N/A Y

LifecycleDR N/A Y

Lifecycle

QoS Policy Applicability RxO Modifiable

Page 24: DDS QoS Unleashed

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

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

Which properties does QoS controls?

Page 25: DDS QoS Unleashed

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

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

DDS provides programmatic QoS-driven support for configuring the most important properties of data distribution!

Which properties does QoS controls?

Page 26: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Design by Contract in DDS

‣ Design by contract was popularized by Bertrand Meyer as a way of making explicit the pre/post condition and invariants associated with methods and the state of a class

‣ DDS QoS allows to extend design by contract to non-functional aspects of an application

class ACCOUNT create makefeature balance: INTEGER owner: PERSON minimum_balance: INTEGER is 1000

deposit (sum: INTEGER) is -- Deposit sum into the account. require sum >= 0 do add(sum) ensure balance = old balance + sum end--- Other methodsinvariant balance >= minimum_balanceend -- class ACCOUNT

Page 27: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Design by Contract in DDS

Capturing System Invariants‣ The weakest precondition, meaning the weakest QoS, required

by the system to properly perform should be captured as QoS attached to the information model, e.g. Topics.

Refining Invariants‣ QoS associated with the information model, should be only

strengthened by overriding QoS at a DataWriter level ‣ QoS should never be weakened by overriding it at a

DataReader level

Page 28: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Design by Contract in DDS

QoS Contract Enforcements‣ The RxO model ensures that unless QoS are matched no

actual subscription will be established

‣ This ensure that only if QoS contracts are satisfied communication will be established

Page 29: DDS QoS Unleashed

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

ENTITY FACTORY

HISTORY

LIFESPAN

DURABILITY

OWENERSHIP

OWN. STRENGTH

DEADLINE

LATENCY BUDGET

TRANSPORT PRIO

TIME-BASED FILTER

RESOURCE LIMITSUSER DATA

TOPIC DATA

GROUP DATA

LIVELINESS

DW LIFECYCLE

DR LIFECYCLE

PRESENTATION

RELIABILITY

PARTITION

DEST. ORDER

RxO QoS Local QoS

Page 30: DDS QoS Unleashed

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

ENTITY FACTORY

HISTORY

LIFESPAN

DURABILITY

OWENERSHIP

OWN. STRENGTH

DEADLINE

LATENCY BUDGET

TRANSPORT PRIO

TIME-BASED FILTER

RESOURCE LIMITSUSER DATA

TOPIC DATA

GROUP DATA

LIVELINESS

DW LIFECYCLE

DR LIFECYCLE

PRESENTATION

RELIABILITY

PARTITION

DEST. ORDER

Topic

RxO QoS Local QoS Not Applicable

Page 31: DDS QoS Unleashed

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

ENTITY FACTORY

HISTORY

LIFESPAN

DURABILITY

OWENERSHIP

OWN. STRENGTH

DEADLINE

LATENCY BUDGET

TRANSPORT PRIO

TIME-BASED FILTER

RESOURCE LIMITSUSER DATA

TOPIC DATA

GROUP DATA

LIVELINESS

DW LIFECYCLE

DR LIFECYCLE

PRESENTATION

RELIABILITY

PARTITION

DEST. ORDER

DataWriter

RxO QoS Local QoS Not Applicable

Page 32: DDS QoS Unleashed

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

ENTITY FACTORY

HISTORY

LIFESPAN

DURABILITY

OWENERSHIP

OWN. STRENGTH

DEADLINE

LATENCY BUDGET

TRANSPORT PRIO

TIME-BASED FILTER

RESOURCE LIMITSUSER DATA

TOPIC DATA

GROUP DATA

LIVELINESS

DW LIFECYCLE

DR LIFECYCLE

PRESENTATION

RELIABILITY

PARTITION

DEST. ORDER

DataReader

RxO QoS Local QoS Not Applicable

Page 33: DDS QoS Unleashed

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

ENTITY FACTORY

HISTORY

LIFESPAN

DURABILITY

OWENERSHIP

OWN. STRENGTH

DEADLINE

LATENCY BUDGET

TRANSPORT PRIO

TIME-BASED FILTER

RESOURCE LIMITSUSER DATA

TOPIC DATA

GROUP DATA

LIVELINESS

DW LIFECYCLE

DR LIFECYCLE

PRESENTATION

RELIABILITY

PARTITION

DEST. ORDER

Publisher

RxO QoS Local QoS Not Applicable

Page 34: DDS QoS Unleashed

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

HISTORY

LIFESPAN

DURABILITY

OWENERSHIP

OWN. STRENGTH

DEADLINE

LATENCY BUDGET

TRANSPORT PRIO

TIME-BASED FILTER

RESOURCE LIMITSUSER DATA

TOPIC DATA

GROUP DATA

LIVELINESS

DW LIFECYCLE

DR LIFECYCLE

PRESENTATION

RELIABILITY

PARTITION

DEST. ORDER

Subscriber

ENTITY FACTORY

RxO QoS Local QoS Not Applicable

Page 35: DDS QoS Unleashed

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

HISTORY

LIFESPAN

DURABILITY

OWENERSHIP

OWN. STRENGTH

DEADLINE

LATENCY BUDGET

TRANSPORT PRIO

TIME-BASED FILTER

RESOURCE LIMITSUSER DATA

TOPIC DATA

GROUP DATA

LIVELINESS

DW LIFECYCLE

DR LIFECYCLE

PRESENTATION

RELIABILITY

PARTITION

DEST. ORDER

Domain Participant

ENTITY FACTORY

RxO QoS Local QoS Not Applicable

Page 37: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Partitions QoS

‣ The Partition QoS Policy can be used as subjects organizing the flow of data

‣ The Partition QoS Policy is used to connect Publishers/Subscribers to a Partitions’ List which might also contain wildcards, e.g. tracks.*

‣ Topics are published and subscribed across one or more Partitions

Domain

Subscriber

Subscriber

Subscriber

"tracks.kfo" "tracks.ufo"

Publisher

Publisher

Publisher

Partition

PARTITION P, S N Y

QoS Policy Applicability RxO Modifiable

Page 39: DDS QoS Unleashed

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

"airspace.kfo.aircrafts"

"airspace.kfo.flyingcars"

"airspace.tfo"

TracksPublisher

Publisher

Publisher

Subscriber

Subscriber

Subscriber

DataWriter<TrakedObject>

DataWriter<FlightPlan>

DataReader<TrakedObject>

DataWriter<FlightPlan>

DataWriter<TrakedObject>

DataWriter<FlightPlan>

DataReader<TrakedObject>

DataReader<Tracks>

Subscriber DataReader<FlightPlan>

DataReader<TrackedObject>

DataReader<FlightPlan>

Global Data Space (GDS)Partition

Topic

FlightPlanAirCraft

FlightPlanFlyingCar

Page 40: DDS QoS Unleashed

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

"airspace.kfo.aircrafts"

"airspace.kfo.flyingcars"

"airspace.tfo"

TracksPublisher

Publisher

Publisher

Subscriber

Subscriber

Subscriber

DataWriter<TrakedObject>

DataWriter<FlightPlan>

DataReader<TrakedObject>

DataWriter<FlightPlan>

DataWriter<TrakedObject>

DataWriter<FlightPlan>

DataReader<TrakedObject>

DataReader<Tracks>

Subscriber DataReader<FlightPlan>

DataReader<TrackedObject>

DataReader<FlightPlan>

Global Data Space (GDS)Partition

Topic

FlightPlanAirCraft

FlightPlanFlyingCar

“airspace.*”

Page 41: DDS QoS Unleashed

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

"airspace.kfo.aircrafts"

"airspace.kfo.flyingcars"

"airspace.tfo"

TracksPublisher

Publisher

Publisher

Subscriber

Subscriber

Subscriber

DataWriter<TrakedObject>

DataWriter<FlightPlan>

DataReader<TrakedObject>

DataWriter<FlightPlan>

DataWriter<TrakedObject>

DataWriter<FlightPlan>

DataReader<TrakedObject>

DataReader<Tracks>

Subscriber DataReader<FlightPlan>

DataReader<TrackedObject>

DataReader<FlightPlan>

Global Data Space (GDS)Partition

Topic

FlightPlanAirCraft

FlightPlanFlyingCar

“airspace.kfo.*”

Page 43: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Reliability QoS

The RELIABILITY QoS indicate the level of guarantee offered by the DDS in delivering data to subscribers.

QoS Policy Applicability RxO Modifiable

RELIABILITY T, DR, DW Y N

Publisher

DataWriter

Topic

Type

QoS

Name

writes

QoS

QoS

DataWriter

Topic

Typewrites

Subscriber

DataReaderreads

QoS

DataReaderreads

...

QoS

Name

QoS

QoS QoS

QoS matching

QoS matching

......

Page 44: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Reliability QoS

Possible variants are:QoS Policy Applicability RxO Modifiable

RELIABILITY T, DR, DW Y N

Publisher

DataWriter

Topic

Type

QoS

Name

writes

QoS

QoS

DataWriter

Topic

Typewrites

Subscriber

DataReaderreads

QoS

DataReaderreads

...

QoS

Name

QoS

QoS QoS

QoS matching

QoS matching

......

‣ Reliable. In steady-state the middleware guarantees that all samples in the DataWriter history will eventually be delivered to all the DataReader

‣ Best Effort. Indicates that it is acceptable to not retry propagation of any samples

Page 45: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

History QoS

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.

QoS Policy Applicability RxO Modifiable

HISTORY T, DR, DW N N

Publisher

DataWriter

Topic

Type

QoS

Name

writes

QoS

QoS

DataWriter

Topic

Typewrites

Subscriber

DataReaderreads

QoS

DataReaderreads

...

QoS

Name

QoS

QoS QoS

QoS matching

QoS matching

......

How many data samples should I keep?

Page 46: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

History QoS

The policy can be configured to provide the following semantics:

How many data samples should I keep?

‣ Keep Last. The DDS will only attempt to keep the most recent “depth” samples of each instance of data identified by its key

‣ Keep All. The DDS will attempt to keep all the samples of each instance of data identified by its key.

1 1

2 1

3 1

History Depth = 1 (DDS Default)

1 1

2 1

3 1

1 2 1 3 1 4 1 5

2 2 2 3 2 4 2 5

3 2 3 3 3 4 3 5

History Depth = 5

Dat

aRea

der

Dat

aRea

der

Page 47: DDS QoS Unleashed

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:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

History in Action

struct Counter { int cID; int count;};#pragma keylist Counter cID

Topic Used in next section.

Page 48: DDS QoS Unleashed

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Topic

DataReader

1 1

2 1

3 1

History Depth = 1 (DDS Default)

DataReader Cache

Topic

1 2

2 3

3 1

History Depth = 1 (DDS Default)

DataWriter Cache

DataWriter1 2

2 2 2 3

Network

Page 49: DDS QoS Unleashed

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Topic

DataReader

1 2

2 2

3 1

History Depth = 1 (DDS Default)

DataReader Cache

Topic

1 2

2 3

3 1

History Depth = 1 (DDS Default)

DataWriter Cache

DataWriter2 3

Network

Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the DataWriter to matched DataReaders

Page 50: DDS QoS Unleashed

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Topic

DataReader

1 2

2 3

3 1

History Depth = 1 (DDS Default)

DataReader Cache

Topic

1 2

2 3

3 1

History Depth = 1 (DDS Default)

DataWriter Cache

DataWriter

Network

Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the DataWriter to matched DataReaders

Page 51: DDS QoS Unleashed

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

TopicDat

aRea

der

1 1

2 1

3 1

History = Keep All

DataReader Cache

Topic

1 2

2 3

3 1

History Depth = 1 (DDS Default)

DataWriter Cache

DataWriter1 2

2 2 2 3

Network

Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the DataWriter to matched DataReaders

Page 52: DDS QoS Unleashed

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

TopicDat

aRea

der

1 1

2 1

3 1

History = Keep All

DataReader Cache

Topic

1 2

2 3

3 1

History Depth = 1 (DDS Default)

DataWriter Cache

DataWriter

1 2

2 2

2 3

Network

Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the DataWriter to matched DataReaders

Page 53: DDS QoS Unleashed

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

TopicDat

aRea

der

1 1

2 1

3 1

History = Keep All

DataReader Cache

Topic

1 2

2 3

3 1

History Depth = 1 (DDS Default)

DataWriter Cache

DataWriter

1 2

2 2 2 3

Network

Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the DataWriter to matched DataReaders

Page 54: DDS QoS Unleashed

The 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

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Putting it All Together

Page 55: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Putting it All Together

‣ 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 56: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Reliability Gotchas

‣ The RESOURCE_LIMITS QoS should always be taken in to account when dealing with the reliable data distribution since it impacts the memory usage (and potentially the DW blocking probability)

‣ Three values have to be provided:

‣ max_samples_per_instance (>= history depth)‣ max_samples (>= max_samples_per_instance)‣ max_instances

Page 58: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Tracks and Flight Plans

TrackedObject

Track

{ BEST_EFFORT KEEP_LAST(1) RESOURCE_LIMITS}

TopicType QoS

Name

TrackedObject

FlightPlan

{ RELIABLE KEEP_LAST(1) RESOURCE_LIMITS}

TopicType QoS

Name

Page 59: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Aerospace Violations

ASViolation

AerospaceViolation

{ RELIABLE KEEP_ALL RESOURCE_LIMITS}

TopicType QoS

Name

struct ASViolation { long oId; string sign; long vcode;};#pragma keylist ASViolation oId sign

Page 61: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Deadline QoS

The DEADLINE QoS policy allows to define the maximum inter-arrival time between data samples

QoS Policy Applicability RxO Modifiable

DEADLINE T, DR, DW Y Y

Publisher

DataWriter

Topic

Type

QoS

Name

writes

QoS

QoS

DataWriter

Topic

Typewrites

Subscriber

DataReaderreads

QoS

DataReaderreads

...

QoS

Name

QoS

QoS QoS

QoS matching

QoS matching

......

You can’t be later than...

Page 62: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Deadline QoS

‣ DataWriter indicates that the application commits to write a new value at least once every deadline period

‣ DataReaders are notified by the DDS when the DEADLINE QoS contract is violated

Publisher Subscriber

DeadlineDeadlineDeadlineDeadlineDeadline

Deadline Violation

Page 63: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Latency Budget QoS

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

QoS Policy Applicability RxO Modifiable

LATENCY

BUDGET

T, DR, DW Y Y

I need to get there in at most...

Publisher

DataWriter

Topic

Type

QoS

Name

writes

QoS

QoS

DataWriter

Topic

Typewrites

Subscriber

DataReaderreads

QoS

DataReaderreads

...

QoS

Name

QoS

QoS QoS

QoS matching

QoS matching

......

Page 64: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Latency Budget QoS

‣ The default value of the duration is zero indicating that the delay should be minimized

‣ This policy is a hint to the DDS, not something that must be monitored or enforced.

T1

T2

T3

Latency Budget = Latency = TBuff +T1+T2+T3TBuff

Page 65: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Transport Priority QoS

The TRANSPORT_PRIORITY QoS policy is a hint to the infrastructure as to how to set the priority of the underlying transport used to send the data.

QoS Policy Applicability RxO Modifiable

TRANSPORT

PRIORITY

T, DW - Y

Publisher

DataWriter

Topic

Type

QoS

Name

writes

QoS

QoS

DataWriter

Topic

Typewrites

Subscriber

DataReaderreads

QoS

DataReaderreads

...

QoS

Name

QoS

QoS QoS

QoS matching

QoS matching

......

VIP Data, stay clear!

Page 66: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Putting it all Together QoSThe 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 68: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Tracks and Flight Plans

TrackedObject

Track

{ BEST_EFFORT KEEP_LAST(1) RESOURCE_LIMITS DEADLINE (= Period) TRANSPORT_PRIORITY LATENCY_BUDGET (= Period/3)}

TopicType QoS

Name

TrackedObject

FlightPlan

{ RELIABLE KEEP_LAST(1) RESOURCE_LIMITS}

TopicType QoS

Name

Page 69: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Aerospace Violations

ASViolation

AerospaceViolation

{ RELIABLE KEEP_ALL RESOURCE_LIMITS LATENCY_BUDGET (=0) TRANSPORT_PRIORITY (= MAX_PRIO)}

TopicType QoS

Name

struct ASViolation { long oId; string sign; long vcode;};#pragma keylist ASViolation oId sign

Page 71: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Durability QoS

‣Volatile. No need to keep data instances for late joining data readers

‣Transient Local. Data instance availability for late joining data reader is tied to the data writer availability

‣Transient. Data instance availability outlives the data writer

‣Persistent. Data instance availability outlives system restarts

Publisher

DataWriter

Topic

Type

QoS

Name

writes

QoS

QoS

DataWriter

Topic

Typewrites

Subscriber

DataReaderreads

QoS

DataReaderreads

...

QoS

Name

QoS

QoS QoS

QoS matching

QoS matching

......

The DURABILITY QoS controls the data availability w.r.t. late joiners, specifically the DDS provides the following variants:

QoS Policy Applicability RxO Modifiable

DURABILITY

DURABILITY

SERVICE

T, DR, DW Y N

T, DW N N

Page 72: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

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

1 1

2 1

3 1

DataReader Cache

Topic

DataReader

1 1

2 1

3 1

DataReader Cache

DDS

DataReader

Page 73: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

QoS & 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 74: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

QoS & 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 75: DDS QoS Unleashed

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

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 76: DDS QoS Unleashed

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

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 77: DDS QoS Unleashed

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

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 78: DDS QoS Unleashed

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

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 79: DDS QoS Unleashed

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

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 80: DDS QoS Unleashed

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

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 81: DDS QoS Unleashed

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

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 82: DDS QoS Unleashed

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

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 83: DDS QoS Unleashed

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

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 84: DDS QoS Unleashed

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

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 85: DDS QoS Unleashed

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

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 87: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Tracks and Flight Plans

TrackedObject

Track

{ BEST_EFFORT KEEP_LAST(1) VOLATILE DEST_ORDER LIFESPAN (>= Period) }

TopicType QoS

Name

TrackedObject

FlightPlan

{ RELIABLE KEEP_LAST(1) TRANSIENT - or - PERSISTENT DEST_ORDER LIFESPAN (Inf)}

TopicType QoS

Name

Page 88: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Aerospace Violations

ASViolation

AerospaceViolation

{ RELIABLE KEEP_ALL PERSISTENT DEST_ORDER LIFESPAN (Inf)}

TopicType QoS

Name

struct ASViolation { long oId; string sign; long vcode;};#pragma keylist ASViolation oId sign

Page 90: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Availability

Availability of data producers can be controlled via two QoS Policies

‣ OWNERSHIP (SHARED vs. EXCLUSIVE)

‣ OWNERSHIP STRENGTH

‣ Instances of exclusively owned Topics can be modified (are owned) by the higher strength writer

‣ Writer strength is used to coordinate replicated writers

Page 91: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Availability

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 92: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Availability

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 93: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Availability

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 94: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Availability

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 95: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Availability

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 97: DDS QoS Unleashed

Ope

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

SOpe

nSpl

ice

DD

S

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

Summing Up

‣ DDS makes it possible for you to express the non-functional contract for your distributed applications

‣ DDS QoS Policies give you control over local and end-to-end properties

‣ In summary QoS Policies and Data Centricity gives you the ability to apply Design by Contract at a functional and non-functional level

Page 99: DDS QoS Unleashed

:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

DownLoad OpenSplice DDS at

http://www.opensplice.org

THANK You!P.S. Enjoyed the talk? Found it

Bloody boring? Send me your

comments at:

[email protected]

The Universal Data BusOpenSplice DDS