SlideShare a Scribd company logo
Splice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS




             DDS QoS Unleashed
       :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::



                                                    Angelo Corsaro, Ph.D.
                                                       Chief Technology Officer
                                                               PrismTech
                                                       OMG DDS SIG Co-Chair
                                                    angelo.corsaro@prismtech.com


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




   ‣ Recap of DDS Basics
   ‣ QoS Model
   ‣ DDS QoS
   ‣ QoS Patterns
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                                     The OMG DDS
  :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::



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.
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
 The OMG Data Distribution Service
 :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::



DDS v1.2 API Standard                                                                          Application

‣ Language Independent, OS and                                                                     Object/Relational Mapping

  HW architecture independent                                                               Data Local Reconstruction Layer (DLRL)


                                                                                                                       Content
‣ DCPS. Standard API for Data-
                                                                              Ownership           Durability
                                                                                                                     Subscription


  Centric, Topic-Based, Real-Time                                                             Minimum Profile


  Publish/Subscribe
                                                                                    Data Centric Publish/Subscribe (DCPS)


                                                                                    Real-Time Publish/Subscribe Protocol

‣ DLRL. Standard API for creating                                                     DDS Interoperability Wire Protocol


  Object Views out of collection of                                                                UDP/IP

  Topics
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
 The OMG Data Distribution Service
 :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::



DDSI/RTPS v2.1 Wire Protocol                                                                   Application
Standard                                                                                           Object/Relational Mapping


‣ Standard wire protocol allowing                                                           Data Local Reconstruction Layer (DLRL)


  interoperability between different                                          Ownership           Durability
                                                                                                                       Content
                                                                                                                     Subscription
  implementations of the DDS                                                                  Minimum Profile

  standard                                                                          Data Centric Publish/Subscribe (DCPS)



‣ Interoperability demonstrated                                                     Real-Time Publish/Subscribe Protocol


  among key DDS vendors in March
                                                                                      DDS Interoperability Wire Protocol



  2009
                                                                                                   UDP/IP
OpenSplice DDS
Delivering Performance, Openness, and Freedom

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




                                                                           How Does it
                                                                             Works?!?
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                           How Does it Work?
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::
                                                                                                         as a
                                                                                            c an be seen
                                                                                 Note: DDS               NDA
                                                                                            n  of the LI
                                                                                  relaxatio
                                                                                                       odel
                                                                                     coord ination m

‣ DDS is based around the                                                                                  Brokers
    concept of a fully distributed
    Global Data Space (GDS)
                                                                                            DDS
‣ Applications can autonomously                                                     Global Data Space
    and asynchronously read/
    written data in the GDS
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                          How Does it Work?
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




                                                                                           Brokers

‣ Publishers and
    Subscribers can
                                                                                  DDS
    join and leave the
                                                    Publisher
    GDS at any time                                                    Global Data Space
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                          How Does it Work?
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




                                                     Publisher                             Brokers   Subscriber

‣ Publishers and
    Subscribers can
                                                                                  DDS
    join and leave the                                                                                Subscriber
                                                    Publisher
    GDS at any time                                                    Global Data Space




                                                      Publisher                                      Subscriber
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                           How Does it Work?
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




‣ Publishers and                                     Publisher                             Brokers   Subscriber

    Subscribers express
    their intent to
                                                                                  DDS
    produce/consume                                 Publisher
                                                                                                      Subscriber

    specific type of data,                                             Global Data Space

    e.g., Topics
                                                      Publisher                                      Subscriber
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                           How Does it Work?
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




                                                     Publisher                             Brokers   Subscriber
‣ Subscriptions are
    matched by taking
    into account topics                                                           DDS                 Subscriber
    (name, data type and                            Publisher          Global Data Space
    QoS)

                                                      Publisher                                      Subscriber
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                           How Does it Work?
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




                                                     Publisher                             Brokers   Subscriber

‣ Subscriptions are
    dynamically matched                                                           DDS
    and Data flows from                             Publisher
                                                                                                      Subscriber
                                                                       Global Data Space
    Publisher to
    Subscribers
                                                      Publisher                                      Subscriber
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                           How Does it Work?
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




                                                     Publisher                             Brokers   Subscriber

‣ Subscriptions are
    dynamically matched                                                           DDS
    and Data flows from                             Publisher
                                                                                                      Subscriber
                                                                       Global Data Space
    Publisher to
    Subscribers
                                                      Publisher                                      Subscriber
OpenSplice DDS
Delivering Performance, Openness, and Freedom

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




                                                                     Defining Data
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
          Topic -- the unit of information
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




    Topic:                                                                             Track, UFO, AirCraft, ...

    ‣ Unit of information
        exchanged between                                                                  Name

        Publisher and Subscribers.

    ‣ An association between a                                            Type             Topic              QoS

        unique name, a type and a
                                                                                                          {
        QoS setting                                                 TrackedObject
                                                                                                              Reliability
                                                                                                              Deadline,
                                                                                                              Priority
                                                                                                              Transient,
                                                                                                               ...
                                                                                                          }
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
          Topic -- the unit of information
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::



                                                                    struct TrackedObject {
   Topic Type:                                                         long   oId;
   ‣ Type describing the data                                          long   x;
                                                                       long   y;
     associated with one or more                                       long   size;
     Topics                                                         };
                                                                    #pragma keylist TrackedObject oId
   ‣ A Topic type can have a key
                                                                     struct FlightPlan {
       represented by an arbitrary                                      string code;
       number of attributes                                             long   trackId;
                                                                        string origin;
                                                                        string dest;
   ‣ Expressed in IDL (or XML)                                          sequence<Coord> trajectory;
                                                                     };
                                                                     #pragma keylist FlightPlan code
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
   DDS Topic Instances and Samples
 :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::


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;
                        };
Topic Samples           #pragma keylist TrackedObject oId

‣ The values assumed by a Topic Instance over time
  are referred as Instance Sample
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
        Topic/Instances/Samples Recap.
 :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::


             Topics                                                               Instances
                                 UFO



FlyingCar
                         Airfraft
                                               Samples




                                       ti              tj                 tnow              time
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                                 Content Filtering
 :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::
                                                                               X0           X0 <= X <= X1        X1

‣ DDS allows the use of a subset of
  SQL92 to specify content-filtered
  Topics
                                                                   Y0
‣ Content filters can be applied on
  the entire content of the Topic                            Y0 <= Y <= Y1
  Type

‣ Content filters are applied by DDS                               Y1
  each time a new sample is
  produced/delivered
                                                                                 (x BETWEEN (RANGE x0 AND x1))
                                                                                  AND
                                                                                 (y BETWEEN (RANGE y0 AND y1))
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                                 Content Filtering
 :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::
                                                                               X0           X0 <= X <= X1        X1

‣ DDS allows the use of a subset of
  SQL92 to specify content-filtered
  Topics
                                                                   Y0
‣ Content filters can be applied on
  the entire content of the Topic                            Y0 <= Y <= Y1
  Type

‣ Content filters are applied by DDS                               Y1
  each time a new sample is
  produced/delivered
                                                                                 (x BETWEEN (RANGE x0 AND x1))
                                                                                  AND
                                                                                 (y BETWEEN (RANGE y0 AND y1))
OpenSplice DDS
Delivering Performance, Openness, and Freedom

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




                                                     Quality of Service
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                                            QoS Model
  :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::


‣ QoS-Policies provide                                                                         Type Matching
                                                                                                                                  QoS matching


  control over local and                          QoS             QoS                QoS                   QoS                   QoS                QoS              QoS



  end-to-end properties of                                                                                 Topic
                                                                                                                     Name

  DDS entities
                                                                Publisher                                                                        Subscriber

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

‣ Local properties                                 DomainParticipant              DataWriter    writes     Type      reads    DataReader                  DomainParticipant



  controlled by QoS are
                                                                                                                     Name
                                                                                                           Topic



  related resource usage                                                            QoS                    QoS                    QoS




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




 QoS Policy   Applicability    RxO       Modifiable
DURABILITY     T, DR, DW        Y            N
                                                                      QoS Policy    Applicability   RxO   Modifiable
DURABILITY       T, DW          N            N
SERVICE                                                 Data         TIME BASED          DR         N/A      Y
                                                      Availability   FILTER
LIFESPAN         T, DW         N/A           Y                                                                        Resources
                                                                     RESOURCE         T, DR, DW      N       N
HISTORY        T, DR, DW        N            N                       LIMITS
PRESENTATIO       P, S          Y            N
                                                                     ENTITY
N
                                                                     FACTORY
RELIABILITY    T, DR, DW        Y            N
                                                                     USER DATA       DP, DR, DW      N       Y        Configuratio
PARTITION         P, S          N            Y
                                                        Data         TOPIC DATA          T           N       Y            n
DESTINATION    T, DR, DW        Y            N
                                                       Delivery      GROUP DATA         P, S         N       Y
ORDER
                                                                     LIVELINESS       T, DR, DW      Y       N
OWNERSHIP      T, DR, DW        Y            N
                                                                     WRITER DATA        DW          N/A      Y
OWNERSHIP         DW           N/A           Y
                                                                     LIFECYCLE
STRENGTH                                                                                                               Lifecycle
                                                                     READER DATA         DR         N/A      Y
DEADLINE       T, DR, DW        Y            Y
                                                                     LIFECYCLE
LATENCY        T, DR, DW        Y            Y
                                                         Data
BUDGET
                                                      Timeliness
TRANSPORT        T, DW         N/A           Y
PRIORITY
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

                                                                                                          Which properties does QoS controls?

      TimeBasedFilter                   Deadline                                             History



                                          Data                                               Data
         Throughput                                                     Lifespan                                   Durability
                                         Latency                                           Availability


                                                                         Ownership
       LatencyBudget               TransportPriority                                       Ownership
                                                                          Strength


        Control over Latency/Throughput tradeoff                        Control over data queueing
        Control over data latency                                       Control over data persistency
        Control over data priority                                      Control over data sources hot-swap



                                        Reliability



                                                       Destination
           Presentation              Data Delivery
                                                         Order

     Control over data distribution reliability
     Control over data ordering
     Control over presentation
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

                                                                                                          Which properties does QoS controls?

      TimeBasedFilter                   Deadline                                             History



                                          Data                                               Data
         Throughput                                                     Lifespan                                   Durability
                                         Latency                                           Availability


                                                                         Ownership
       LatencyBudget               TransportPriority                                       Ownership
                                                                          Strength


        Control over Latency/Throughput tradeoff                        Control over data queueing
        Control over data latency                                       Control over data persistency
        Control over data priority                                      Control over data sources hot-swap



                                        Reliability



                                                       Destination           DDS provides programmatic QoS-driven
           Presentation              Data Delivery
                                                         Order               support for configuring the most important
     Control over data distribution reliability
                                                                             properties of data distribution!
     Control over data ordering
     Control over presentation
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
             Design by Contract in DDS
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

                                                                               class ACCOUNT create
                                                                                 make
   ‣ Design by contract was popularized                                        feature
                                                                                  balance: INTEGER
       by Bertrand Meyer as a way of                                              owner: PERSON
       making explicit the pre/post                                               minimum_balance: INTEGER is 1000

       condition and invariants associated                                        deposit (sum: INTEGER) is
       with methods and the state of a                                                    -- Deposit sum into the account.
                                                                                      require
       class                                                                          do
                                                                                        sum >= 0

                                                                                        add(sum)
   ‣ DDS QoS allows to extend design by                                               ensure
                                                                                        balance = old balance + sum
       contract to non-functional aspects of                                         end
       an application                                                          --- Other methods
                                                                               invariant
                                                                                  balance >= minimum_balance
                                                                               end -- class ACCOUNT
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
             Design by Contract in DDS
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




   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
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
             Design by Contract in DDS
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




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




                      DURABILITY
                                                                                            LIVELINESS
                        HISTORY
                                                                                            OWENERSHIP
                       LIFESPAN
                                                                                            OWN. STRENGTH


                     DEST. ORDER
                                                                                             DEADLINE
                       PARTITION
                                                                                           LATENCY BUDGET
                     PRESENTATION
                                                                                           TRANSPORT PRIO
                      RELIABILITY


                                                                                       TIME-BASED FILTER
                      USER DATA
                                                                                           RESOURCE LIMITS
                      TOPIC DATA
                      GROUP DATA
                                                                                           DW LIFECYCLE

                                                                                            DR LIFECYCLE

                                                                                           ENTITY FACTORY

                       RxO QoS             Local QoS
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




                      DURABILITY
                                                                                            LIVELINESS
                        HISTORY
                                                                                            OWENERSHIP
                       LIFESPAN
                                                                                            OWN. STRENGTH


                     DEST. ORDER
                                                                                             DEADLINE
                       PARTITION
                                                                                           LATENCY BUDGET
                     PRESENTATION                        Topic
                                                                                           TRANSPORT PRIO
                      RELIABILITY


                                                                                       TIME-BASED FILTER
                      USER DATA
                                                                                           RESOURCE LIMITS
                      TOPIC DATA
                      GROUP DATA
                                                                                           DW LIFECYCLE

                                                                                            DR LIFECYCLE

                                                                                           ENTITY FACTORY

                       RxO QoS             Local QoS           Not Applicable
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::



                      DURABILITY
                                                                                            LIVELINESS
                        HISTORY
                                                                                            OWENERSHIP
                       LIFESPAN
                                                                                            OWN. STRENGTH


                      DEST. ORDER
                                                                                             DEADLINE
                       PARTITION
                                                                                           LATENCY BUDGET
                     PRESENTATION                      DataWriter
                                                                                           TRANSPORT PRIO
                      RELIABILITY


                                                                                       TIME-BASED FILTER
                       USER DATA
                                                                                           RESOURCE LIMITS
                      TOPIC DATA
                      GROUP DATA
                                                                                           DW LIFECYCLE

                                                                                            DR LIFECYCLE

                                                                                           ENTITY FACTORY

                       RxO QoS             Local QoS           Not Applicable
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




                      DURABILITY
                                                                                            LIVELINESS
                        HISTORY
                                                                                            OWENERSHIP
                       LIFESPAN
                                                                                            OWN. STRENGTH


                      DEST. ORDER
                                                                                             DEADLINE
                       PARTITION
                                                                                           LATENCY BUDGET
                     PRESENTATION                   DataReader
                                                                                           TRANSPORT PRIO
                      RELIABILITY


                                                                                       TIME-BASED FILTER
                       USER DATA
                                                                                           RESOURCE LIMITS
                      TOPIC DATA
                      GROUP DATA
                                                                                           DW LIFECYCLE

                                                                                            DR LIFECYCLE

                                                                                           ENTITY FACTORY

                       RxO QoS             Local QoS           Not Applicable
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




                      DURABILITY
                                                                                            LIVELINESS
                        HISTORY
                                                                                            OWENERSHIP
                       LIFESPAN
                                                                                            OWN. STRENGTH


                     DEST. ORDER
                                                                                             DEADLINE
                       PARTITION
                                                                                           LATENCY BUDGET
                    PRESENTATION                       Publisher
                                                                                           TRANSPORT PRIO
                      RELIABILITY


                                                                                       TIME-BASED FILTER
                      USER DATA
                                                                                           RESOURCE LIMITS
                      TOPIC DATA
                      GROUP DATA
                                                                                           DW LIFECYCLE

                                                                                            DR LIFECYCLE

                                                                                           ENTITY FACTORY

                       RxO QoS             Local QoS           Not Applicable
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




                      DURABILITY
                                                                                            LIVELINESS
                        HISTORY
                                                                                            OWENERSHIP
                       LIFESPAN
                                                                                            OWN. STRENGTH


                     DEST. ORDER
                                                                                             DEADLINE
                       PARTITION
                                                                                           LATENCY BUDGET
                     PRESENTATION                      Subscriber
                                                                                           TRANSPORT PRIO
                      RELIABILITY


                                                                                       TIME-BASED FILTER
                      USER DATA
                                                                                           RESOURCE LIMITS
                      TOPIC DATA
                      GROUP DATA
                                                                                           DW LIFECYCLE

                                                                                           DR LIFECYCLE

                                                                                       ENTITY FACTORY

                       RxO QoS             Local QoS           Not Applicable
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::



                      DURABILITY
                                                                                            LIVELINESS
                        HISTORY
                                                                                            OWENERSHIP
                       LIFESPAN
                                                                                            OWN. STRENGTH


                     DEST. ORDER
                                                                                             DEADLINE
                       PARTITION
                                                        Domain                             LATENCY BUDGET
                     PRESENTATION
                                                       Participant                         TRANSPORT PRIO
                      RELIABILITY


                                                                                       TIME-BASED FILTER
                       USER DATA
                                                                                           RESOURCE LIMITS
                      TOPIC DATA

                      GROUP DATA
                                                                                           DW LIFECYCLE

                                                                                            DR LIFECYCLE

                                                                                           ENTITY FACTORY

                       RxO QoS             Local QoS           Not Applicable
OpenSplice DDS
Delivering Performance, Openness, and Freedom

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




                                                          Organizing Data
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                                         Partitions QoS
   :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::


‣ The Partition QoS Policy                                     QoS Domain Applicability
                                                                   Policy                     RxO      Modifiable
  can be used as subjects                                    PARTITION           P, S          N              Y

  organizing the flow of data
‣ The Partition QoS Policy is                                                                                      Subscriber

  used to connect
                                                         Publisher            "tracks.kfo"     "tracks.ufo"

  Publishers/Subscribers to a
  Partitions’ List which might
  also contain wildcards, e.g.                           Publisher
                                                                                                                      Subscriber
  tracks.*
‣ Topics are published and
  subscribed across one or                               Publisher                                                 Subscriber
  more Partitions                                                      Partition
OpenSplice DDS
Delivering Performance, Openness, and Freedom

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




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


                                                                                                           DataReader
                                                                                                          <TrakedObject>
         DataWriter                                                                      Subscriber
       <TrakedObject>                          "airspace.kfo.aircrafts"                                    DataReader
                                                                                                          <TrakedObject>
                          Publisher
        DataWriter                                  AirCraft            FlightPlan
        <FlightPlan>                                                                                         DataReader
                                                                                           Subscriber        <FlightPlan>

                                                    "airspace.tfo"
         DataWriter
         <FlightPlan>      Publisher                           Tracks
                                                                                             Subscriber
                                                                                                             DataReader
                                                                                                              <Tracks>


                                              "airspace.kfo.flyingcars"
                                                                                                             DataReader
          DataWriter                                                                                       <TrackedObject>
        <TrakedObject>                                                                     Subscriber
                           Publisher               FlyingCar            FlightPlan
         DataWriter                                                                                         DataReader
         <FlightPlan>                                                                                       <FlightPlan>




                                                     Partition              Global Data Space (GDS)

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


                                                                                                            DataReader
                                                                                                           <TrakedObject>
          DataWriter                                                                      Subscriber
        <TrakedObject>                          "airspace.kfo.aircrafts"                                    DataReader
                                                                                                           <TrakedObject>
                           Publisher
         DataWriter                                  AirCraft            FlightPlan
         <FlightPlan>                                                                                         DataReader
                                                                                            Subscriber        <FlightPlan>

                                                     "airspace.tfo"
          DataWriter
          <FlightPlan>      Publisher                           Tracks
                                                                                              Subscriber
                                                                                                              DataReader
                                                                                                               <Tracks>


                                               "airspace.kfo.flyingcars"
                                                                                                              DataReader
           DataWriter                                                                                       <TrackedObject>
         <TrakedObject>                                                                     Subscriber
                            Publisher               FlyingCar            FlightPlan
          DataWriter                                                                                         DataReader
          <FlightPlan>                                                                                       <FlightPlan>




“airspace.*”
                                                      Partition              Global Data Space (GDS)

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


                                                                                                             DataReader
                                                                                                            <TrakedObject>
           DataWriter                                                                      Subscriber
         <TrakedObject>                          "airspace.kfo.aircrafts"                                    DataReader
                                                                                                            <TrakedObject>
                            Publisher
          DataWriter                                  AirCraft            FlightPlan
          <FlightPlan>                                                                                         DataReader
                                                                                             Subscriber        <FlightPlan>

                                                      "airspace.tfo"
           DataWriter
           <FlightPlan>      Publisher                           Tracks
                                                                                               Subscriber
                                                                                                               DataReader
                                                                                                                <Tracks>


                                                "airspace.kfo.flyingcars"
                                                                                                               DataReader
            DataWriter                                                                                       <TrackedObject>
          <TrakedObject>                                                                     Subscriber
                             Publisher               FlyingCar            FlightPlan
           DataWriter                                                                                         DataReader
           <FlightPlan>                                                                                       <FlightPlan>




“airspace.kfo.*”
                                                       Partition              Global Data Space (GDS)

                                                                      Topic
OpenSplice DDS
Delivering Performance, Openness, and Freedom

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




                                                                              Controlling
                                                                               Reliability
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                                    Reliability QoS
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::



                                                                                    QoS Policy    Applicability        RxO             Modifiable
                                                                                  RELIABILITY      T, DR, DW             Y                   N



                                                                                                                             QoS matching

The RELIABILITY QoS indicate the                                                        QoS                  QoS                       QoS


level of guarantee offered by the                                 QoS                                        Topic                                         QoS
                                                                                                                     Name

DDS in delivering data to                                                            DataWriter     writes   Type     reads         DataReader


subscribers.
                                                                Publisher   ...                                                                         Subscriber
                                                                                                               ...                                ...

                                                                                     DataWriter   writes     Type    reads           DataReader

                                                                                                                     Name
                                                                                                             Topic


                                                                                       QoS                   QoS                        QoS


                                                                                                                             QoS matching
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                                    Reliability QoS
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::



                                                                                    QoS Policy    Applicability        RxO             Modifiable

 Possible variants are:                                                           RELIABILITY      T, DR, DW             Y                   N




‣ Reliable. In steady-state the                                                                                              QoS matching



    middleware guarantees that all
                                                                                        QoS                  QoS                       QoS




    samples in the DataWriter                                     QoS                                        Topic
                                                                                                                     Name
                                                                                                                                                           QoS



    history will eventually be                                  Publisher
                                                                                     DataWriter     writes   Type     reads         DataReader

                                                                                                                                                        Subscriber
                                                                            ...
    delivered to all the DataReader                                                                            ...                                ...

                                                                                     DataWriter   writes     Type    reads           DataReader



‣ Best Effort. Indicates that it is
                                                                                                                     Name
                                                                                                             Topic



    acceptable to not retry                                                            QoS                   QoS                        QoS


    propagation of any samples                                                                                               QoS matching
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                                        History QoS
                                                                                                                    How many data samples should I keep?



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




                                                                            QoS Policy            Applicability           RxO              Modifiable

  The HISTORY QoS policy                                             HISTORY                       T, DR, DW               N                       N


  controls whether the DDS should                                                                                                 QoS matching



  deliver only the most recent
                                                                                        QoS                       QoS                       QoS




  value, attempt to deliver all
                                                                  QoS                                             Topic                                         QoS
                                                                                                                          Name

                                                                                                                           reads         DataReader

  intermediate values, or do
                                                                                     DataWriter          writes   Type

                                                                Publisher      ...                                                                           Subscriber
                                                                                                                   ...                                 ...

  something in between.                                                              DataWriter         writes    Type    reads           DataReader

                                                                                                                          Name
                                                                                                                  Topic


                                                                                       QoS                        QoS                        QoS


                                                                                                                                  QoS matching
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                                        History QoS
                                                                                                           How many data samples should I keep?



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




  The policy can be configured to provide




                                                                              DataReader
                                                                                           1       1

  the following semantics:                                                                 2       1

                                                                                           3       1

   ‣ Keep Last. The DDS will only                                                                      History Depth = 1 (DDS Default)

       attempt to keep the most recent
       “depth” samples of each instance
       of data identified by its key




                                                                              DataReader
                                                                                               1       1   1   2   1   3   1   4    1    5

   ‣ Keep All. The DDS will attempt                                                            2       1   2   2   2   3   2   4    2    5

       to keep all the samples of each                                                         3       1   3   2   3   3   3   4    3    5

       instance of data identified by its
                                                                                                            History Depth = 5


       key.
OpenSplice DDS
Delivering Performance, Openness, and Freedom

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




 Topic Used in next section.
  struct Counter {
     int cID;                                                                           History in
     int count;
  };
  #pragma keylist Counter cID                                                               Action
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




                         History Depth = 1                                        History Depth = 1
                          (DDS Default)                                            (DDS Default)
                                                         Network
                             1   1                                                    1    2

     DataReader              2   1                   1   2                            2    3
                                                                                                      DataWriter
                             3   1                   2   2   2   3                    3    1

                             Topic                                                   Topic

          DataReader Cache                                                             DataWriter Cache
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




                         History Depth = 1                                        History Depth = 1
                          (DDS Default)                                            (DDS Default)
                                                         Network
                             1   2                                                    1    2

     DataReader              2   2                                                    2    3
                                                                                                      DataWriter
                             3   1                   2   3                            3    1

                             Topic                                                   Topic

          DataReader Cache                                                             DataWriter Cache



         Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the
                                DataWriter to matched DataReaders
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




                         History Depth = 1                                        History Depth = 1
                          (DDS Default)                                            (DDS Default)
                                                      Network
                             1   2                                                    1    2

     DataReader              2   3                                                    2    3
                                                                                                      DataWriter
                             3   1                                                    3    1

                             Topic                                                   Topic

          DataReader Cache                                                             DataWriter Cache



         Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the
                                DataWriter to matched DataReaders
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




                               History = Keep All                                 History Depth = 1
                                                                                   (DDS Default)
                                                          Network
    DataReader




                      1   1                                                           1    2

                      2   1                           1   2                           2    3
                                                                                                      DataWriter
                      3   1                           2   2   2   3                   3    1

                              Topic                                                  Topic

                  DataReader Cache                                                     DataWriter Cache



                 Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the
                                        DataWriter to matched DataReaders
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




                                  History = Keep All                              History Depth = 1
                                                                                   (DDS Default)
                                                        Network
    DataReader




                      1   1   1   2                                                   1    2

                      2   1   2   2                                                   2    3
                                                                                                      DataWriter
                      3   1                                  2   3                    3    1

                              Topic                                                  Topic

                  DataReader Cache                                                     DataWriter Cache



                 Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the
                                        DataWriter to matched DataReaders
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




                                  History = Keep All                              History Depth = 1
                                                                                   (DDS Default)
                                                        Network
    DataReader




                      1   1   1   2                                                   1    2

                      2   1   2   2    2   3                                          2    3
                                                                                                      DataWriter
                      3   1                                                           3    1

                              Topic                                                  Topic

                  DataReader Cache                                                     DataWriter Cache



                 Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the
                                        DataWriter to matched DataReaders
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                        Putting it All Together
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::



 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
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                        Putting it All Together
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




‣ 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
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                             Reliability Gotchas
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




   ‣ 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
OpenSplice DDS
Delivering Performance, Openness, and Freedom

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




                                                                                            Example
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                        Tracks and Flight Plans
  :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




                     Track                                                               FlightPlan

                    Name                                                                     Name




   Type             Topic                QoS                              Type               Topic         QoS


                                    {                               TrackedObject                     {
TrackedObject                           BEST_EFFORT                                                       RELIABLE
                                        KEEP_LAST(1)                                                      KEEP_LAST(1)
                                        RESOURCE_LIMITS                                                   RESOURCE_LIMITS
                                    }                                                                 }
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                         Aerospace Violations
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




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

       Type               Topic               QoS


  ASViolation                             {
                                              RELIABLE
                                              KEEP_ALL
                                              RESOURCE_LIMITS
                                          }
OpenSplice DDS
Delivering Performance, Openness, and Freedom

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




                                                   Controlling
                                           Real-Time Properties
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                                      Deadline QoS
                                                                                                                                                 You can’t be later than...



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




                                                                   QoS Policy             Applicability             RxO               Modifiable
                                                               DEADLINE                    T, DR, DW                 Y                       Y


                                                                                                                            QoS matching




 The DEADLINE QoS policy allows
                                                                                    QoS                     QoS                       QoS



                                                                 QoS                                        Topic                                          QoS

 to define the maximum inter-
                                                                                                                     Name

                                                                                 DataWriter        writes   Type      reads        DataReader



 arrival time between data
                                                               Publisher   ...                                                                          Subscriber
                                                                                                             ...                                  ...


 samples
                                                                                 DataWriter       writes    Type    reads           DataReader

                                                                                                                     Name
                                                                                                            Topic


                                                                                   QoS                      QoS                        QoS


                                                                                                                            QoS matching
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                                      Deadline QoS
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




   ‣ 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
                                 Deadline     Deadline       Deadline   Deadline     Deadline



                                        Deadline Violation
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                          Latency Budget QoS
                                                                                                                                    I need to get there in at most...



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




                                                                         QoS Policy            Applicability              RxO                Modifiable
                                                                     LATENCY                      T, DR, DW                Y                        Y

The LATENCY_BUDGET QoS policy
                                                                     BUDGET



specifies the maximum acceptable                                                                                                   QoS matching



delay from the time the data is                                                             QoS                   QoS                        QoS




written until the data is inserted in the
                                                                         QoS                                      Topic                                          QoS
                                                                                                                           Name

                                                                                         DataWriter      writes   Type      reads         DataReader


receiver's application-cache                                           Publisher   ...                             ...                                  ...   Subscriber



                                                                                         DataWriter     writes    Type     reads           DataReader

                                                                                                                           Name
                                                                                                                  Topic


                                                                                           QoS                    QoS                         QoS


                                                                                                                                   QoS matching
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                          Latency Budget QoS
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




   ‣ The default value of the
       duration is zero indicating
       that the delay should be
       minimized
                                                                             TBuff   Latency Budget = Latency = TBuff +T1+T2+T3




   ‣ This policy is a hint to the
                                                                                                                       T3
                                                                              T1


       DDS, not something that                                                                    T2

       must be monitored or
       enforced.
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                     Transport Priority QoS
                                                                                                                                            VIP Data, stay clear!



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



                                                                         QoS Policy          Applicability            RxO                 Modifiable
                                                                     TRANSPORT                  T, DW                      -                    Y
                                                                     PRIORITY

The TRANSPORT_PRIORITY
QoS policy is a hint to the                                                                                                QoS matching



infrastructure as to how to
                                                                                   QoS                    QoS                        QoS




set the priority of the
                                                               QoS                                        Topic                                           QoS
                                                                                                                   Name

                                                                                DataWriter       writes   Type      reads         DataReader

underlying transport used to                                 Publisher    ...                                ...                                ...    Subscriber



send the data.                                                                  DataWriter      writes    Type     reads

                                                                                                                   Name
                                                                                                                                   DataReader


                                                                                                          Topic


                                                                                  QoS                     QoS                         QoS


                                                                                                                           QoS matching
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
               Putting it all Together QoS
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::


The real-time properties with which data is delivered to applications is impacted in DDS by the
following qualities of service:
                                             Publisher                                               Subscriber
‣ TRANSPORT_PRIORITY                      Deadline      Deadline    Deadline Deadline Deadline


‣ LATENCY_BUDGET
                                                 Deadline Violation
‣ 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))
OpenSplice DDS
Delivering Performance, Openness, and Freedom

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




                                                                                            Example
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                         Tracks and Flight Plans
   :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::



                     Track                                                              FlightPlan

                    Name                                                                      Name




   Type             Topic                QoS                            Type                  Topic        QoS


                                    {                              TrackedObject                      {
TrackedObject                           BEST_EFFORT                                                       RELIABLE
                                        KEEP_LAST(1)                                                      KEEP_LAST(1)
                                        RESOURCE_LIMITS                                                   RESOURCE_LIMITS
                                        DEADLINE (= Period)                                           }
                                        TRANSPORT_PRIORITY
                                        LATENCY_BUDGET (= Period/3)
                                    }
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                         Aerospace Violations
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




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

       Type               Topic              QoS

                                        {
  ASViolation                               RELIABLE
                                            KEEP_ALL
                                            RESOURCE_LIMITS
                                            LATENCY_BUDGET (=0)
                                            TRANSPORT_PRIORITY (= MAX_PRIO)
                                        }
OpenSplice DDS
Delivering Performance, Openness, and Freedom

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




                                                    Controlling the
                                                  Consistency Model
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                                    Durability QoS
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::

 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           T, DR, DW                   Y                        N
‣ Volatile. No need to keep data                                                  DURABILITY                 T, DW                 N                        N

 instances for late joining data readers                                          SERVICE




‣ Transient Local. Data instance                                                                                                QoS matching



 availability for late joining data reader is
                                                                                          QoS                   QoS                       QoS




 tied to the data writer availability                                  QoS                                      Topic
                                                                                                                        Name
                                                                                                                                                                   QoS


                                                                                       DataWriter    writes     Type     reads         DataReader



‣ Transient. Data instance availability
                                                                     Publisher   ...                                                                            Subscriber
                                                                                                                 ...                                  ...

 outlives the data writer                                                              DataWriter   writes      Type    reads           DataReader

                                                                                                                        Name
                                                                                                                Topic



‣ Persistent. Data instance availability                                                 QoS                    QoS                        QoS


 outlives system restarts                                                                                                       QoS matching
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
   Eventual Consistency & R/W Caches
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::


                                               Under an Eventual Consistency Model, DDS guarantees
                       DataReader                 that all matched Reader Caches will eventually be
                                                            identical of the respective Writer Cache
     DataReader             1   1

                            2   1                                                           DataWriter
          1   1
                            3   1
          2   1                                                                                 1   2
                         Topic
                    DataReader                            1   2                                 2   3
          3   1
                    DataReader Cache                      2   2    2    3                       3   1
          Topic
                        1   1
 DataReader Cache 2                                                                             Topic
                            1
                                                                  DDS                      DataWriter Cache
                        3   1

                        Topic
                  DataReader Cache
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
               QoS & Consistency Model
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::


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                                               QoS Policy                 Applicability   RxO   Modifiable
                                                         DURABILITY                  T, DR, DW       Y       N

‣ RELIABILITY                                            LIFESPAN                      T, DW         -       Y
                                                         RELIABILITY                 T, DR, DW       Y       N
   ‣ RELIABLE | BEST_EFFORT                              DESTINATION ORDER           T, DR, DW       Y       N

‣ DESTINATION ORDER
   ‣ SOURCE_TIMESTAMP | DESTINATION_TIMESTAMP
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                    QoS & Consistency Model
    :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::



                                  DURABILITY               RELIABILITY               DESTINATION_ORDER     LIFESPAN
Eventual Consistency                VOLATILE                 RELIABLE                SOURCE_TIMESTAMP        INF.
(No Crash / Recovery)
Eventual Consistency      TRANSIENT_LOCAL                    RELIABLE                SOURCE_TIMESTAMP        INF.
(Reader Crash / Recovery)
Eventual Consistency               TRANSIENT                 RELIABLE                SOURCE_TIMESTAMP        INF.
(Crash/Recovery)
Eventual Consistency              PERSISTENT                 RELIABLE                SOURCE_TIMESTAMP        INF.
(Crash/Recovery)
Weak Consistency                       ANY                      ANY                DESTINATION_TIMESTAMP     ANY
Weak Consistency                       ANY                BEST_EFFORT                          ANY           ANY
Weak Consistency                       ANY                      ANY                            ANY            N
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::



                                          DURABILITY        RELIABILITY DESTINATION_ORDER       LIFESPAN
       Eventual Consistency (Reader TRANSIENT_LOCAL          RELIABLE   SOURCE_TIMESTAMP             INF.
            Crash / Recovery)
                                                                                                            {A}
          Eventual Consistency         TRANSIENT             RELIABLE   SOURCE_TIMESTAMP             INF.
                                                                                                            {B}
             (Crash/Recovery)
            Weak Consistency              ANY                     ANY           ANY                   N     {J}


                                                                                        S = {A, D}

                                                                                           S1
                      P = {A, B}                 B


                         P1                             m

                                                 A                  F


                                                J
                                                             D            C
                        P = {D, C, J}

                           P2                   K
                                                              E



                                                                              S = {A}

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



                                          DURABILITY        RELIABILITY DESTINATION_ORDER       LIFESPAN
       Eventual Consistency (Reader TRANSIENT_LOCAL          RELIABLE   SOURCE_TIMESTAMP             INF.
            Crash / Recovery)
                                                                                                            {A}
          Eventual Consistency         TRANSIENT             RELIABLE   SOURCE_TIMESTAMP             INF.
                                                                                                            {B}
             (Crash/Recovery)
            Weak Consistency              ANY                     ANY           ANY                   N     {J}


                                                                                        S = {A, D}

                                                                                           S1
                      P = {A, B}                 B


                         P1                             m

                              A                  A                  F


                                                J
                                                             D            C
                        P = {D, C, J}

                           P2                   K
                                                              E



                                                                              S = {A}

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



                                          DURABILITY        RELIABILITY DESTINATION_ORDER         LIFESPAN
       Eventual Consistency (Reader TRANSIENT_LOCAL          RELIABLE   SOURCE_TIMESTAMP             INF.
            Crash / Recovery)
                                                                                                             {A}
          Eventual Consistency         TRANSIENT             RELIABLE   SOURCE_TIMESTAMP             INF.
                                                                                                             {B}
             (Crash/Recovery)
            Weak Consistency              ANY                     ANY             ANY                 N      {J}


                                                                                        S = {A, D}

                                                                                           S1
                      P = {A, B}                 B
                                                                                              A
                         P1                             m

                                                 A
                                                 A                  F


                                                J
                                                             D            C
                        P = {D, C, J}

                           P2                   K
                                                              E



                                                                              S = {A}

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



                                          DURABILITY        RELIABILITY DESTINATION_ORDER         LIFESPAN
       Eventual Consistency (Reader TRANSIENT_LOCAL          RELIABLE   SOURCE_TIMESTAMP             INF.
            Crash / Recovery)
                                                                                                             {A}
          Eventual Consistency         TRANSIENT             RELIABLE   SOURCE_TIMESTAMP             INF.
                                                                                                             {B}
             (Crash/Recovery)
            Weak Consistency              ANY                     ANY             ANY                 N      {J}


                                                                                        S = {A, D}

                                                                                           S1
                      P = {A, B}                 B
                                                                                              A
                         P1                             m

                            B                    A
                                                 A                  F


                                                J
                                                             D            C
                        P = {D, C, J}

                           P2                   K
                                                              E



                                                                              S = {A}

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



                                          DURABILITY        RELIABILITY DESTINATION_ORDER         LIFESPAN
       Eventual Consistency (Reader TRANSIENT_LOCAL          RELIABLE   SOURCE_TIMESTAMP             INF.
            Crash / Recovery)
                                                                                                             {A}
          Eventual Consistency         TRANSIENT             RELIABLE   SOURCE_TIMESTAMP             INF.
                                                                                                             {B}
             (Crash/Recovery)
            Weak Consistency              ANY                     ANY             ANY                 N      {J}


                                                                                        S = {A, D}

                                                                                           S1
                      P = {A, B}                 B
                                                 B
                                                                                              A
                         P1                             m

                                                 A
                                                 A                  F


                                                J
                                                             D            C
                        P = {D, C, J}

                           P2                   K
                                                              E



                                                                              S = {A}

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



                                          DURABILITY        RELIABILITY DESTINATION_ORDER          LIFESPAN
       Eventual Consistency (Reader TRANSIENT_LOCAL          RELIABLE   SOURCE_TIMESTAMP             INF.
            Crash / Recovery)
                                                                                                              {A}
          Eventual Consistency         TRANSIENT             RELIABLE   SOURCE_TIMESTAMP             INF.
                                                                                                              {B}
             (Crash/Recovery)
            Weak Consistency              ANY                     ANY             ANY                 N       {J}


                                                                                        S = {A, D}

                                                                                            S1
                      P = {A, B}                 B
                                                 B
                                                                                               A
                         P1                             m
                                                                                           S= {A, B, J}
                                                 A
                                                 A                  F

                                                                                              S2
                                                J
                                                             D            C
                        P = {D, C, J}

                           P2                   K
                                                              E



                                                                              S = {A}

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



                                          DURABILITY        RELIABILITY DESTINATION_ORDER          LIFESPAN
       Eventual Consistency (Reader TRANSIENT_LOCAL          RELIABLE   SOURCE_TIMESTAMP             INF.
            Crash / Recovery)
                                                                                                              {A}
          Eventual Consistency         TRANSIENT             RELIABLE   SOURCE_TIMESTAMP             INF.
                                                                                                              {B}
             (Crash/Recovery)
            Weak Consistency              ANY                     ANY             ANY                 N       {J}


                                                                                        S = {A, D}

                                                                                            S1
                      P = {A, B}                 B
                                                 B
                                                                                               A
                         P1                             m
                                                                                           S= {A, B, J}
                                                 A
                                                 A                  F

                                                                                              S2
                                                J
                                                             D            C                    BA
                        P = {D, C, J}

                           P2                   K
                                                              E



                                                                              S = {A}

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



                                          DURABILITY        RELIABILITY DESTINATION_ORDER                LIFESPAN
       Eventual Consistency (Reader TRANSIENT_LOCAL          RELIABLE   SOURCE_TIMESTAMP                   INF.
            Crash / Recovery)
                                                                                                                    {A}
          Eventual Consistency         TRANSIENT             RELIABLE   SOURCE_TIMESTAMP                   INF.
                                                                                                                    {B}
             (Crash/Recovery)
            Weak Consistency              ANY                     ANY           ANY                           N     {J}


                                                                                           S = {A, D}

                                                                                               S1
                                                 B
                                                 B
                                                                                                    A
                                                        m
                                                                                               S= {A, B, J}
                                                 A                  F

                                                                                                    S2
                                                J
                                                              D           C                         BA
                        P = {D, C, J}

                           P2                   K
                                                              E


                                                                              S = {A}

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



                                          DURABILITY        RELIABILITY DESTINATION_ORDER                 LIFESPAN
       Eventual Consistency (Reader TRANSIENT_LOCAL          RELIABLE   SOURCE_TIMESTAMP                    INF.
            Crash / Recovery)
                                                                                                                     {A}
          Eventual Consistency         TRANSIENT             RELIABLE   SOURCE_TIMESTAMP                    INF.
                                                                                                                     {B}
             (Crash/Recovery)
            Weak Consistency              ANY                     ANY           ANY                            N     {J}


                                                                                           S = {A, D}

                                                                                                S1
                                                 B
                                                 B
                                                                                                     A
                                                        m
                                                                                                S= {A, B, J}
                                                 A                  F

                                                                                                     S2
                                                J
                                                              D           C                          BA
                        P = {D, C, J}                                                   S= {A, B, D, J}

                           P2                   K
                                                              E                               S3

                                                                              S = {A}

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



                                          DURABILITY        RELIABILITY DESTINATION_ORDER                 LIFESPAN
       Eventual Consistency (Reader TRANSIENT_LOCAL          RELIABLE   SOURCE_TIMESTAMP                    INF.
            Crash / Recovery)
                                                                                                                     {A}
          Eventual Consistency         TRANSIENT             RELIABLE   SOURCE_TIMESTAMP                    INF.
                                                                                                                     {B}
             (Crash/Recovery)
            Weak Consistency              ANY                     ANY           ANY                            N     {J}


                                                                                           S = {A, D}

                                                                                                S1
                                                 B
                                                 B
                                                                                                      A
                                                        m
                                                                                                S= {A, B, J}
                                                 A                  F

                                                                                                     S2
                                                J
                                                J
                                                              D
                                                              D           C                           BA
                        P = {D, C, J}                                                   S= {A, B, D, J}

                           P2                   K
                                                              E                               S3

                                                                              S = {A}            JB


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



                                          DURABILITY        RELIABILITY DESTINATION_ORDER                 LIFESPAN
       Eventual Consistency (Reader TRANSIENT_LOCAL          RELIABLE   SOURCE_TIMESTAMP                    INF.
            Crash / Recovery)
                                                                                                                     {A}
          Eventual Consistency         TRANSIENT             RELIABLE   SOURCE_TIMESTAMP                    INF.
                                                                                                                     {B}
             (Crash/Recovery)
            Weak Consistency              ANY                     ANY           ANY                            N     {J}


                                                                                           S = {A, D}

                                                                                                S1
                                                 B
                                                 B
                                                                                                      A
                                                        m
                                                                                                S= {A, B, J}
                                                 A                  F

                                                                                                     S2
                                                J
                                                              D
                                                              D           C                           BA
                        P = {D, C, J}                                                   S= {A, B, D, J}

                           P2                   K
                                                              E                               S3

                                                                              S = {A}            JB


                                                                                S4
                                                                               A
OpenSplice DDS
Delivering Performance, Openness, and Freedom

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




                                                                                            Example
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                         Tracks and Flight Plans
   :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::



                     Track                                                              FlightPlan

                    Name                                                                      Name




   Type             Topic                QoS                            Type                  Topic           QoS

                                                                                                      {
                                    {                              TrackedObject
TrackedObject                                                                                             RELIABLE
                                        BEST_EFFORT
                                                                                                          KEEP_LAST(1)
                                        KEEP_LAST(1)
                                                                                                          TRANSIENT
                                        VOLATILE
                                                                                                             - or - PERSISTENT
                                        DEST_ORDER
                                                                                                          DEST_ORDER
                                        LIFESPAN (>= Period)
                                                                                                          LIFESPAN (Inf )
                                    }
                                                                                                      }
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                         Aerospace Violations
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




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

       Type               Topic              QoS

                                        {
  ASViolation                               RELIABLE
                                            KEEP_ALL
                                            PERSISTENT
                                            DEST_ORDER
                                            LIFESPAN (Inf )
                                        }
OpenSplice DDS
Delivering Performance, Openness, and Freedom

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




                                                                                Controlling
                                                                                 Replication
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                                            Availability
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




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




                                                                  StockQuote
                                                            symbol: "MSFT"
                                                                         StockQuote
                                                                         StockQuote
                                                            name: "Microsoft Corp."
                                                                         StockQuote
                                                                     symbol: "GOOG"
                                                                     symbol: "GOOG"
                                                            exchange: "NASD""GOOG"
                                                                     symbol:
                                                                     name: "Google Inc."
                                                            quote: 33.73
                                                                     name: "Google Inc."
                                                                   name: "Google Inc."
                                                                   exchange: "NASD"
                                                                   exchange: "NASD"
                                                                   exchange: "NASD"
                                                                            StockQuote
                                                                            StockQuote
                                                                            StockQuote
                                                                   quote: 663.97


                             W1
                                                                   quote: 663.97"AAPL"
                                                                        symbol: "AAPL"
                                                                   quote: 663.97
                                                                        symbol: "AAPL"
                                                                        symbol:
                                                                         name: "Apple Inc."
                                                                         name: "Apple Inc."
                                                                         name: "Apple Inc."
                                                                         exchange: "NASD"
                                                                         exchange: "NASD"
                                                                         exchange: "NASD"



                                                                                                             R1
                                                                         quote: 165.37
                                                                         quote: 165.37
                                                                         quote: 165.37




                       STRENGTH=3

                                                StockQuote
                                             symbol: "AAPL"
                                          StockQuote Inc."
                                             name: "Apple
                                      symbol: "GOOG""NASD"
                                             exchange:
                                      name: quote: 165.37
                                             "Google Inc."
                                  StockQuote "NASD"
                                      exchange:
                             symbol: "MSFT"
                                      quote: 663.97
                             name: "Microsoft Corp."
                             exchange: "NASD"
                             quote: 33.73




                    W1’                                                                                           R2
                STRENGTH=2                                  StockQuote
                                                         symbol: "AAPL"
                                                      StockQuote Inc."
                                                         name: "Apple
                                                  symbol: "GOOG""NASD"
                                                         exchange:
                                                  name: quote: 165.37
                                                         "Google Inc."
                                              StockQuote "NASD"
                                                  exchange:
                                         symbol: "MSFT"
                                                  quote: 663.97
                                         name: "Microsoft Corp."
                                         exchange: "NASD"
                                         quote: 33.73




                       W2’’                                                                                  R3

                   STRENGTH=1
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                                                                                        Availability
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




                                                               StockQuote
                                                         symbol: "MSFT"
                                                                      StockQuote
                                                                      StockQuote
                                                         name: "Microsoft Corp."
                                                                      StockQuote
                                                                  symbol: "GOOG"
                                                                  symbol: "GOOG"
                                                         exchange: "NASD""GOOG"
                                                                  symbol:
                                                                  name: "Google Inc."
                                                         quote: 33.73
                                                                  name: "Google Inc."
                                                                name: "Google Inc."
                                                                exchange: "NASD"
                                                                exchange: "NASD"
                                                                exchange: "NASD"
                                                                quote: 663.97


                             W1
                                                                quote: 663.97
                                                                quote: 663.97




                                                                                                       StockQuote
                                                                                                   symbol: "AAPL"
                                                                                                                                       R1
                       STRENGTH=3                                                                  name: "Apple Inc."
                                                                                                   exchange: "NASD"
                                                                                                   quote: 165.37




                                      StockQuote
                                   symbol: "GOOG"
                                   name: "Google Inc."
                                   StockQuote "NASD"
                                      exchange:
                             symbol: "MSFT"
                                      quote: 663.97
                             name: "Microsoft Corp."
                             exchange: "NASD"
                             quote: 33.73




                    W1’                                                                                                                     R2
                                                                                                                      StockQuote
                                                                                                                  symbol: "AAPL"
                                                                                                                  name: "Apple Inc."
                                                                                                                  exchange: "NASD"

                STRENGTH=2
                                                                                                                  quote: 165.37


                                                   StockQuote
                                               symbol: "GOOG"
                                               name: "Google Inc."
                                           StockQuote "NASD"
                                               exchange:
                                      symbol: "MSFT"
                                               quote: 663.97
                                      name: "Microsoft Corp."
                                      exchange: "NASD"
                                      quote: 33.73




                       W2’’
                                                                                                           StockQuote
                                                                                                       symbol: "AAPL"
                                                                                                       name: "Apple Inc."
                                                                                                       exchange: "NASD"
                                                                                                       quote: 165.37
                                                                                                                                       R3

                   STRENGTH=1
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                                                                                      Availability
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




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




                             W1
                                                                                                            StockQuote
                                                                                                        symbol: "AAPL"
                                                                                                                                            R1
                       STRENGTH=3                                                                       name: "Apple Inc."
                                                                                                        exchange: "NASD"
                                                                                                        quote: 165.37
                                                                                                     StockQuote
                                                                                                 symbol: "GOOG"
                                                                                                 name: "Google Inc."
                                                                                                 exchange: "NASD"
                                                                                                 quote: 663.97



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


                    W1’                                                                                                                          R2
                                                                                                                   symbol: "GOOG"
                                                                                                                   name: "Google Inc."
                                                                                                                   exchange: "NASD"
                                                                                                                   quote: 663.97
                                                                                                                           StockQuote
                                                                                                                       symbol: "AAPL"
                                                                                                                       name: "Apple Inc."
                                                                                                                       exchange: "NASD"

                STRENGTH=2
                                                                                                                       quote: 165.37




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



                                                                                                                                            R3
                                                                                                name: "Google Inc."



                       W2’’
                                                                                                exchange: "NASD"StockQuote
                                                                                                quote: 663.97symbol: "AAPL"
                                                                                                            name: "Apple Inc."
                                                                                                            exchange: "NASD"
                                                                                                            quote: 165.37




                   STRENGTH=1
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                                                          Availability
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




                                                                                          StockQuote



                                                                                                                   R1
                                                                                      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"
                                                                                                                        R2
                                                                                              quote: 165.37




                                      StockQuote
                                      StockQuote
                                      StockQuote                                   StockQuote
                                symbol: "MSFT"
                                symbol: "MSFT"
                                symbol: "MSFT"                                 symbol: "GOOG"
                                name: "Microsoft Corp."
                                name: "Microsoft Corp."
                                name: "Microsoft Corp."
                                exchange: "NASD"
                                exchange: "NASD"                               name: "Google Inc."
                                exchange: "NASD"
                                quote: 33.73
                                quote: 33.73
                                quote: 33.73                                   exchange: "NASD"
                                                                               quote: 663.97


                                                                                       StockQuote



                                                                                                                   R3
                                                                                   symbol: "AAPL"



                       W2’’
                                                                                   name: "Apple Inc."
                                                                                   exchange: "NASD"
                                                                                   quote: 165.37




                   STRENGTH=1
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                                            Availability
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




                                                                                                                StockQuote



                                                                                                                                         R1
                                                                                                            symbol: "AAPL"
                                                                                                            name: "Apple Inc."
                                                                                                            exchange: "NASD"
                                                                               StockQuote                   quote: 165.37
                                                                         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



                                                                                                                                              R2
                                                                                      symbol: "MSFT"
                                                                                      name: "Microsoft Corp."
                                                                                                                        StockQuote
                                                                                      exchange: "NASD"
                                                                                      quote: 33.73
                                                                                                                    symbol: "AAPL"
                                                                                                                    name: "Apple Inc."
                                                                                                                    exchange: "NASD"
                                                                                                                    quote: 165.37




                                                                                                        StockQuote
                                                                                                    symbol: "GOOG"
                                                                                                    name: "Google Inc."
                                                                                StockQuote          exchange: "NASD"
                                                                          symbol: "MSFT"            quote: 663.97
                                                                          name: "Microsoft Corp."
                                                                          exchange: "NASD"
                                                                          quote: 33.73
                                                                                                             StockQuote



                                                                                                                                         R3
                                                                                                         symbol: "AAPL"



                       W2’’
                                                                                                         name: "Apple Inc."
                                                                                                         exchange: "NASD"
                                                                                                         quote: 165.37




                   STRENGTH=1
OpenSplice DDS
Delivering Performance, Openness, and Freedom

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




                                                                                Summing Up
                                                                                        +/-
OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD
                                        Summing Up
:: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




   ‣ 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
OpenSplice DDS
             Delivering Performance, Openness, and Freedom


                http://www.opensplice.com/
References
               http://www.opensplice.org/                    http://www.slideshare.net/angelo.corsaro
                emailto:opensplicedds@prismtech.com




                http://bit.ly/1Sreg
                                                             http://twitter.com/acorsaro/




                http://www.youtube.com/OpenSpliceTube        http://opensplice.blogspot.com
S   at
                           e  DD       g
                       lic        . or
                    Sp       i ce
                pen nspl
             d O .ope

                              OpenSplice DDS
           a
     n Lo      ww
                  w
   w
Do      p ://
   h tt



                The Universal Data Bus
   :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com ::




     THANK You!                                                                                        d  the
                                                                                                              ta  lk? F
                                                                                                                 end
                                                                                                                       m
                                                                                                                         o und
                                                                                                                          e yo
                                                                                                                                it
                                                                                                                               ur
                                                                                                n joye         S
                                                                                          .S. E          ing?          :
                                                                                        P           bor          s at         h.co
                                                                                                                                   m
                                                                                           Blo ody         me nt           ec
                                                                                                      com         r ismt
                                                                                                         sa ro@p
                                                                                                 lo. cor
                                                                                           a nge

More Related Content

PDF
The Data Distribution Service
PPTX
Introduction to DDS
PDF
Micro XRCE-DDS: Bringing DDS into microcontrollers
PDF
The Data Distribution Service Tutorial
PDF
The DDS Tutorial - Part I
PPTX
DDS Over Low Bandwidth Data Links
PDF
DDS Tutorial -- Part I
PDF
OMG Data-Distribution Service (DDS) Tutorial - 2009
The Data Distribution Service
Introduction to DDS
Micro XRCE-DDS: Bringing DDS into microcontrollers
The Data Distribution Service Tutorial
The DDS Tutorial - Part I
DDS Over Low Bandwidth Data Links
DDS Tutorial -- Part I
OMG Data-Distribution Service (DDS) Tutorial - 2009

What's hot (20)

PPTX
Introduction to RTI DDS
PPT
RTI Data-Distribution Service (DDS) Master Class 2011
PDF
Communication Patterns Using Data-Centric Publish/Subscribe
PDF
The Data Distribution Service
PDF
The DDS Tutorial Part II
PDF
The Art and Science of DDS Data Modelling
PPTX
Comparison of MQTT and DDS as M2M Protocols for the Internet of Things
PDF
DDS Best Practices
PDF
Getting Started with DDS in C++, Java and Scala
PDF
Cyclone DDS: Sharing Data in the IoT Age
PPT
Active Directory
PPTX
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
PDF
RTI DDS Intro with DDS Secure
PDF
QoS Policies in ROS 2 Dashing
PPTX
Hadoop Architecture | HDFS Architecture | Hadoop Architecture Tutorial | HDFS...
PPTX
Presentation on dns
PDF
eProsima DDS Router: a micro-ROS Cloud scenario
PPTX
Basics of storage Technology
PPTX
Apache Spark Architecture
PPTX
DNS Security
Introduction to RTI DDS
RTI Data-Distribution Service (DDS) Master Class 2011
Communication Patterns Using Data-Centric Publish/Subscribe
The Data Distribution Service
The DDS Tutorial Part II
The Art and Science of DDS Data Modelling
Comparison of MQTT and DDS as M2M Protocols for the Internet of Things
DDS Best Practices
Getting Started with DDS in C++, Java and Scala
Cyclone DDS: Sharing Data in the IoT Age
Active Directory
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
RTI DDS Intro with DDS Secure
QoS Policies in ROS 2 Dashing
Hadoop Architecture | HDFS Architecture | Hadoop Architecture Tutorial | HDFS...
Presentation on dns
eProsima DDS Router: a micro-ROS Cloud scenario
Basics of storage Technology
Apache Spark Architecture
DNS Security
Ad

Viewers also liked (20)

PDF
Advanced OpenSplice Programming - Part II
PDF
The Data Distribution Service Tutorial
PDF
Stream Processing with DDS and CEP
PDF
DDS Made Simple
PDF
20 Tips for OpenSplice Newbies
PDF
Mavenir Thought Leadership Webinar
PPTX
Why is DDS the Right Technology for the Industrial Internet?
DOCX
Voice over LTE report
PPTX
Quality of service
PDF
VoLTE Service Monitoring - VoLTE Voice Call
PPTX
QoS In The Enterprise
PDF
Asis. educ. inic.
PDF
Pei 2010 2014
PDF
ikh311-04
DOC
Reach your peak stuff
PDF
ikh323-06
PDF
ikd312-02-three-schema
PDF
Surrey.english.hum.dept.heads.2011
PDF
ikp213-unifikasi
PDF
Real-Time Marketing With Twitter
Advanced OpenSplice Programming - Part II
The Data Distribution Service Tutorial
Stream Processing with DDS and CEP
DDS Made Simple
20 Tips for OpenSplice Newbies
Mavenir Thought Leadership Webinar
Why is DDS the Right Technology for the Industrial Internet?
Voice over LTE report
Quality of service
VoLTE Service Monitoring - VoLTE Voice Call
QoS In The Enterprise
Asis. educ. inic.
Pei 2010 2014
ikh311-04
Reach your peak stuff
ikh323-06
ikd312-02-three-schema
Surrey.english.hum.dept.heads.2011
ikp213-unifikasi
Real-Time Marketing With Twitter
Ad

Similar to DDS QoS Unleashed (20)

PDF
Tweeting with OpenSplice DDS
PDF
Cloudand Xchange
PDF
Getting Started with OpenSplice DDS Community Ed.
PDF
Tuning and Troubleshooting OpenSplice DDS Applications
PDF
A Gentle Introduction to OpenSplice DDS
PDF
OpenSplice DDS v5.1
PDF
10 Reasons for Choosing OpenSplice DDS
PDF
Getting Started in DDS with C++ and Java
PDF
Standardizing the Data Distribution Service (DDS) API for Modern C++
PDF
Cyclone DDS Unleashed: The Origins
PDF
OpenSplice DDS v6
PDF
DDS vs AMQP
PDF
OMG DDS: The Data Distribution Service for Real-Time Systems
PDF
The Open Splice.Org Community
PDF
DDS on the Web: Quick Recipes for Real-Time Web Applications
PDF
OMG DDS Interoperability Demo 2009
PPTX
What Can DDS Do For You?
PDF
Roadmap and Technology Incubators
PPTX
What is expected from Chief Cloud Officers?
Tweeting with OpenSplice DDS
Cloudand Xchange
Getting Started with OpenSplice DDS Community Ed.
Tuning and Troubleshooting OpenSplice DDS Applications
A Gentle Introduction to OpenSplice DDS
OpenSplice DDS v5.1
10 Reasons for Choosing OpenSplice DDS
Getting Started in DDS with C++ and Java
Standardizing the Data Distribution Service (DDS) API for Modern C++
Cyclone DDS Unleashed: The Origins
OpenSplice DDS v6
DDS vs AMQP
OMG DDS: The Data Distribution Service for Real-Time Systems
The Open Splice.Org Community
DDS on the Web: Quick Recipes for Real-Time Web Applications
OMG DDS Interoperability Demo 2009
What Can DDS Do For You?
Roadmap and Technology Incubators
What is expected from Chief Cloud Officers?

More from Angelo Corsaro (20)

PDF
Zenoh: The Genesis
PDF
zenoh: The Edge Data Fabric
PDF
Zenoh Tutorial
PDF
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
PDF
zenoh: zero overhead pub/sub store/query compute
PDF
zenoh -- the ZEro Network OverHead protocol
PDF
zenoh -- the ZEro Network OverHead protocol
PDF
Breaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
PDF
Eastern Sicily
PDF
fog05: The Fog Computing Infrastructure
PDF
fog05: The Fog Computing Platform
PDF
Programming in Scala - Lecture Four
PDF
Programming in Scala - Lecture Three
PDF
Programming in Scala - Lecture Two
PDF
Programming in Scala - Lecture One
PDF
Data Sharing in Extremely Resource Constrained Envionrments
PDF
The DDS Security Standard
PDF
RUSTing -- Partially Ordered Rust Programming Ruminations
PDF
Vortex II -- The Industrial IoT Connectivity Standard
PDF
Fog Computing Defined
Zenoh: The Genesis
zenoh: The Edge Data Fabric
Zenoh Tutorial
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
zenoh: zero overhead pub/sub store/query compute
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocol
Breaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Eastern Sicily
fog05: The Fog Computing Infrastructure
fog05: The Fog Computing Platform
Programming in Scala - Lecture Four
Programming in Scala - Lecture Three
Programming in Scala - Lecture Two
Programming in Scala - Lecture One
Data Sharing in Extremely Resource Constrained Envionrments
The DDS Security Standard
RUSTing -- Partially Ordered Rust Programming Ruminations
Vortex II -- The Industrial IoT Connectivity Standard
Fog Computing Defined

Recently uploaded (20)

PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Encapsulation theory and applications.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Empathic Computing: Creating Shared Understanding
PPTX
MYSQL Presentation for SQL database connectivity
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PPTX
Cloud computing and distributed systems.
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Machine learning based COVID-19 study performance prediction
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PPTX
sap open course for s4hana steps from ECC to s4
Network Security Unit 5.pdf for BCA BBA.
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Encapsulation theory and applications.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
Empathic Computing: Creating Shared Understanding
MYSQL Presentation for SQL database connectivity
The Rise and Fall of 3GPP – Time for a Sabbatical?
Dropbox Q2 2025 Financial Results & Investor Presentation
Encapsulation_ Review paper, used for researhc scholars
Programs and apps: productivity, graphics, security and other tools
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Cloud computing and distributed systems.
Digital-Transformation-Roadmap-for-Companies.pptx
Machine learning based COVID-19 study performance prediction
Advanced methodologies resolving dimensionality complications for autism neur...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
20250228 LYD VKU AI Blended-Learning.pptx
sap open course for s4hana steps from ECC to s4

DDS QoS Unleashed

  • 1. Splice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS DDS QoS Unleashed :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Angelo Corsaro, Ph.D. Chief Technology Officer PrismTech OMG DDS SIG Co-Chair angelo.corsaro@prismtech.com Splice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS
  • 2. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Agenda :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: ‣ Recap of DDS Basics ‣ QoS Model ‣ DDS QoS ‣ QoS Patterns
  • 3. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD The OMG DDS :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: 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.
  • 4. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD The OMG Data Distribution Service :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DDS v1.2 API Standard Application ‣ Language Independent, OS and Object/Relational Mapping HW architecture independent Data Local Reconstruction Layer (DLRL) Content ‣ DCPS. Standard API for Data- Ownership Durability Subscription Centric, Topic-Based, Real-Time Minimum Profile Publish/Subscribe Data Centric Publish/Subscribe (DCPS) Real-Time Publish/Subscribe Protocol ‣ DLRL. Standard API for creating DDS Interoperability Wire Protocol Object Views out of collection of UDP/IP Topics
  • 5. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD The OMG Data Distribution Service :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DDSI/RTPS v2.1 Wire Protocol Application Standard Object/Relational Mapping ‣ Standard wire protocol allowing Data Local Reconstruction Layer (DLRL) interoperability between different Ownership Durability Content Subscription implementations of the DDS Minimum Profile standard Data Centric Publish/Subscribe (DCPS) ‣ Interoperability demonstrated Real-Time Publish/Subscribe Protocol among key DDS vendors in March DDS Interoperability Wire Protocol 2009 UDP/IP
  • 6. OpenSplice DDS Delivering Performance, Openness, and Freedom :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: How Does it Works?!?
  • 7. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD How Does it Work? :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: as a c an be seen Note: DDS NDA n of the LI relaxatio odel coord ination m ‣ DDS is based around the Brokers concept of a fully distributed Global Data Space (GDS) DDS ‣ Applications can autonomously Global Data Space and asynchronously read/ written data in the GDS
  • 8. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD How Does it Work? :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Brokers ‣ Publishers and Subscribers can DDS join and leave the Publisher GDS at any time Global Data Space
  • 9. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD How Does it Work? :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Publisher Brokers Subscriber ‣ Publishers and Subscribers can DDS join and leave the Subscriber Publisher GDS at any time Global Data Space Publisher Subscriber
  • 10. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD How Does it Work? :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: ‣ Publishers and Publisher Brokers Subscriber Subscribers express their intent to DDS produce/consume Publisher Subscriber specific type of data, Global Data Space e.g., Topics Publisher Subscriber
  • 11. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD How Does it Work? :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Publisher Brokers Subscriber ‣ Subscriptions are matched by taking into account topics DDS Subscriber (name, data type and Publisher Global Data Space QoS) Publisher Subscriber
  • 12. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD How Does it Work? :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Publisher Brokers Subscriber ‣ Subscriptions are dynamically matched DDS and Data flows from Publisher Subscriber Global Data Space Publisher to Subscribers Publisher Subscriber
  • 13. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD How Does it Work? :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Publisher Brokers Subscriber ‣ Subscriptions are dynamically matched DDS and Data flows from Publisher Subscriber Global Data Space Publisher to Subscribers Publisher Subscriber
  • 14. OpenSplice DDS Delivering Performance, Openness, and Freedom :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Defining Data
  • 15. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Topic -- the unit of information :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Topic: Track, UFO, AirCraft, ... ‣ Unit of information exchanged between Name Publisher and Subscribers. ‣ An association between a Type Topic QoS unique name, a type and a { QoS setting TrackedObject Reliability Deadline, Priority Transient, ... }
  • 16. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Topic -- the unit of information :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: struct TrackedObject { Topic Type: long oId; ‣ Type describing the data long x; long y; associated with one or more long size; Topics }; #pragma keylist TrackedObject oId ‣ A Topic type can have a key struct FlightPlan { represented by an arbitrary string code; number of attributes long trackId; string origin; string dest; ‣ Expressed in IDL (or XML) sequence<Coord> trajectory; }; #pragma keylist FlightPlan code
  • 17. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD DDS Topic Instances and Samples :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: 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; }; Topic Samples #pragma keylist TrackedObject oId ‣ The values assumed by a Topic Instance over time are referred as Instance Sample
  • 18. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Topic/Instances/Samples Recap. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Topics Instances UFO FlyingCar Airfraft Samples ti tj tnow time
  • 19. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Content Filtering :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: X0 X0 <= X <= X1 X1 ‣ DDS allows the use of a subset of SQL92 to specify content-filtered Topics Y0 ‣ Content filters can be applied on the entire content of the Topic Y0 <= Y <= Y1 Type ‣ Content filters are applied by DDS Y1 each time a new sample is produced/delivered (x BETWEEN (RANGE x0 AND x1)) AND (y BETWEEN (RANGE y0 AND y1))
  • 20. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Content Filtering :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: X0 X0 <= X <= X1 X1 ‣ DDS allows the use of a subset of SQL92 to specify content-filtered Topics Y0 ‣ Content filters can be applied on the entire content of the Topic Y0 <= Y <= Y1 Type ‣ Content filters are applied by DDS Y1 each time a new sample is produced/delivered (x BETWEEN (RANGE x0 AND x1)) AND (y BETWEEN (RANGE y0 AND y1))
  • 21. OpenSplice DDS Delivering Performance, Openness, and Freedom :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Quality of Service
  • 22. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD QoS Model :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: ‣ QoS-Policies provide Type Matching QoS matching control over local and QoS QoS QoS QoS QoS QoS QoS end-to-end properties of Topic Name DDS entities Publisher Subscriber ... DataWriter writes Type reads DataReader ... ... ‣ Local properties DomainParticipant DataWriter writes Type reads DataReader DomainParticipant controlled by QoS are Name Topic related resource usage QoS QoS QoS ‣ 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
  • 23. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: QoS Policy Applicability RxO Modifiable DURABILITY T, DR, DW Y N QoS Policy Applicability RxO Modifiable DURABILITY T, DW N N SERVICE Data TIME BASED DR N/A Y Availability FILTER LIFESPAN T, DW N/A Y Resources RESOURCE T, DR, DW N N HISTORY T, DR, DW N N LIMITS PRESENTATIO P, S Y N ENTITY N FACTORY RELIABILITY T, DR, DW Y N USER DATA DP, DR, DW N Y Configuratio PARTITION P, S N Y Data TOPIC DATA T N Y n DESTINATION T, DR, DW Y N Delivery GROUP DATA P, S N Y ORDER LIVELINESS T, DR, DW Y N OWNERSHIP T, DR, DW Y N WRITER DATA DW N/A Y OWNERSHIP DW N/A Y LIFECYCLE STRENGTH Lifecycle READER DATA DR N/A Y DEADLINE T, DR, DW Y Y LIFECYCLE LATENCY T, DR, DW Y Y Data BUDGET Timeliness TRANSPORT T, DW N/A Y PRIORITY
  • 24. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Which properties does QoS controls? TimeBasedFilter Deadline History Data Data Throughput Lifespan Durability Latency Availability Ownership LatencyBudget TransportPriority Ownership Strength Control over Latency/Throughput tradeoff Control over data queueing Control over data latency Control over data persistency Control over data priority Control over data sources hot-swap Reliability Destination Presentation Data Delivery Order Control over data distribution reliability Control over data ordering Control over presentation
  • 25. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Which properties does QoS controls? TimeBasedFilter Deadline History Data Data Throughput Lifespan Durability Latency Availability Ownership LatencyBudget TransportPriority Ownership Strength Control over Latency/Throughput tradeoff Control over data queueing Control over data latency Control over data persistency Control over data priority Control over data sources hot-swap Reliability Destination DDS provides programmatic QoS-driven Presentation Data Delivery Order support for configuring the most important Control over data distribution reliability properties of data distribution! Control over data ordering Control over presentation
  • 26. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Design by Contract in DDS :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: class ACCOUNT create make ‣ Design by contract was popularized feature balance: INTEGER by Bertrand Meyer as a way of owner: PERSON making explicit the pre/post minimum_balance: INTEGER is 1000 condition and invariants associated deposit (sum: INTEGER) is with methods and the state of a -- Deposit sum into the account. require class do sum >= 0 add(sum) ‣ DDS QoS allows to extend design by ensure balance = old balance + sum contract to non-functional aspects of end an application --- Other methods invariant balance >= minimum_balance end -- class ACCOUNT
  • 27. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Design by Contract in DDS :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: 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
  • 28. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Design by Contract in DDS :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: 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
  • 29. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DURABILITY LIVELINESS HISTORY OWENERSHIP LIFESPAN OWN. STRENGTH DEST. ORDER DEADLINE PARTITION LATENCY BUDGET PRESENTATION TRANSPORT PRIO RELIABILITY TIME-BASED FILTER USER DATA RESOURCE LIMITS TOPIC DATA GROUP DATA DW LIFECYCLE DR LIFECYCLE ENTITY FACTORY RxO QoS Local QoS
  • 30. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DURABILITY LIVELINESS HISTORY OWENERSHIP LIFESPAN OWN. STRENGTH DEST. ORDER DEADLINE PARTITION LATENCY BUDGET PRESENTATION Topic TRANSPORT PRIO RELIABILITY TIME-BASED FILTER USER DATA RESOURCE LIMITS TOPIC DATA GROUP DATA DW LIFECYCLE DR LIFECYCLE ENTITY FACTORY RxO QoS Local QoS Not Applicable
  • 31. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DURABILITY LIVELINESS HISTORY OWENERSHIP LIFESPAN OWN. STRENGTH DEST. ORDER DEADLINE PARTITION LATENCY BUDGET PRESENTATION DataWriter TRANSPORT PRIO RELIABILITY TIME-BASED FILTER USER DATA RESOURCE LIMITS TOPIC DATA GROUP DATA DW LIFECYCLE DR LIFECYCLE ENTITY FACTORY RxO QoS Local QoS Not Applicable
  • 32. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DURABILITY LIVELINESS HISTORY OWENERSHIP LIFESPAN OWN. STRENGTH DEST. ORDER DEADLINE PARTITION LATENCY BUDGET PRESENTATION DataReader TRANSPORT PRIO RELIABILITY TIME-BASED FILTER USER DATA RESOURCE LIMITS TOPIC DATA GROUP DATA DW LIFECYCLE DR LIFECYCLE ENTITY FACTORY RxO QoS Local QoS Not Applicable
  • 33. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DURABILITY LIVELINESS HISTORY OWENERSHIP LIFESPAN OWN. STRENGTH DEST. ORDER DEADLINE PARTITION LATENCY BUDGET PRESENTATION Publisher TRANSPORT PRIO RELIABILITY TIME-BASED FILTER USER DATA RESOURCE LIMITS TOPIC DATA GROUP DATA DW LIFECYCLE DR LIFECYCLE ENTITY FACTORY RxO QoS Local QoS Not Applicable
  • 34. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DURABILITY LIVELINESS HISTORY OWENERSHIP LIFESPAN OWN. STRENGTH DEST. ORDER DEADLINE PARTITION LATENCY BUDGET PRESENTATION Subscriber TRANSPORT PRIO RELIABILITY TIME-BASED FILTER USER DATA RESOURCE LIMITS TOPIC DATA GROUP DATA DW LIFECYCLE DR LIFECYCLE ENTITY FACTORY RxO QoS Local QoS Not Applicable
  • 35. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DURABILITY LIVELINESS HISTORY OWENERSHIP LIFESPAN OWN. STRENGTH DEST. ORDER DEADLINE PARTITION Domain LATENCY BUDGET PRESENTATION Participant TRANSPORT PRIO RELIABILITY TIME-BASED FILTER USER DATA RESOURCE LIMITS TOPIC DATA GROUP DATA DW LIFECYCLE DR LIFECYCLE ENTITY FACTORY RxO QoS Local QoS Not Applicable
  • 36. OpenSplice DDS Delivering Performance, Openness, and Freedom :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Organizing Data
  • 37. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Partitions QoS :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: ‣ The Partition QoS Policy QoS Domain Applicability Policy RxO Modifiable can be used as subjects PARTITION P, S N Y organizing the flow of data ‣ The Partition QoS Policy is Subscriber used to connect Publisher "tracks.kfo" "tracks.ufo" Publishers/Subscribers to a Partitions’ List which might also contain wildcards, e.g. Publisher Subscriber tracks.* ‣ Topics are published and subscribed across one or Publisher Subscriber more Partitions Partition
  • 38. OpenSplice DDS Delivering Performance, Openness, and Freedom :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Example
  • 39. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DataReader <TrakedObject> DataWriter Subscriber <TrakedObject> "airspace.kfo.aircrafts" DataReader <TrakedObject> Publisher DataWriter AirCraft FlightPlan <FlightPlan> DataReader Subscriber <FlightPlan> "airspace.tfo" DataWriter <FlightPlan> Publisher Tracks Subscriber DataReader <Tracks> "airspace.kfo.flyingcars" DataReader DataWriter <TrackedObject> <TrakedObject> Subscriber Publisher FlyingCar FlightPlan DataWriter DataReader <FlightPlan> <FlightPlan> Partition Global Data Space (GDS) Topic
  • 40. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DataReader <TrakedObject> DataWriter Subscriber <TrakedObject> "airspace.kfo.aircrafts" DataReader <TrakedObject> Publisher DataWriter AirCraft FlightPlan <FlightPlan> DataReader Subscriber <FlightPlan> "airspace.tfo" DataWriter <FlightPlan> Publisher Tracks Subscriber DataReader <Tracks> "airspace.kfo.flyingcars" DataReader DataWriter <TrackedObject> <TrakedObject> Subscriber Publisher FlyingCar FlightPlan DataWriter DataReader <FlightPlan> <FlightPlan> “airspace.*” Partition Global Data Space (GDS) Topic
  • 41. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DataReader <TrakedObject> DataWriter Subscriber <TrakedObject> "airspace.kfo.aircrafts" DataReader <TrakedObject> Publisher DataWriter AirCraft FlightPlan <FlightPlan> DataReader Subscriber <FlightPlan> "airspace.tfo" DataWriter <FlightPlan> Publisher Tracks Subscriber DataReader <Tracks> "airspace.kfo.flyingcars" DataReader DataWriter <TrackedObject> <TrakedObject> Subscriber Publisher FlyingCar FlightPlan DataWriter DataReader <FlightPlan> <FlightPlan> “airspace.kfo.*” Partition Global Data Space (GDS) Topic
  • 42. OpenSplice DDS Delivering Performance, Openness, and Freedom :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Controlling Reliability
  • 43. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Reliability QoS :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: QoS Policy Applicability RxO Modifiable RELIABILITY T, DR, DW Y N QoS matching The RELIABILITY QoS indicate the QoS QoS QoS level of guarantee offered by the QoS Topic QoS Name DDS in delivering data to DataWriter writes Type reads DataReader subscribers. Publisher ... Subscriber ... ... DataWriter writes Type reads DataReader Name Topic QoS QoS QoS QoS matching
  • 44. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Reliability QoS :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: QoS Policy Applicability RxO Modifiable Possible variants are: RELIABILITY T, DR, DW Y N ‣ Reliable. In steady-state the QoS matching middleware guarantees that all QoS QoS QoS samples in the DataWriter QoS Topic Name QoS history will eventually be Publisher DataWriter writes Type reads DataReader Subscriber ... delivered to all the DataReader ... ... DataWriter writes Type reads DataReader ‣ Best Effort. Indicates that it is Name Topic acceptable to not retry QoS QoS QoS propagation of any samples QoS matching
  • 45. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD History QoS How many data samples should I keep? :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: QoS Policy Applicability RxO Modifiable The HISTORY QoS policy HISTORY T, DR, DW N N controls whether the DDS should QoS matching deliver only the most recent QoS QoS QoS value, attempt to deliver all QoS Topic QoS Name reads DataReader intermediate values, or do DataWriter writes Type Publisher ... Subscriber ... ... something in between. DataWriter writes Type reads DataReader Name Topic QoS QoS QoS QoS matching
  • 46. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD History QoS How many data samples should I keep? :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: The policy can be configured to provide DataReader 1 1 the following semantics: 2 1 3 1 ‣ Keep Last. The DDS will only History Depth = 1 (DDS Default) attempt to keep the most recent “depth” samples of each instance of data identified by its key DataReader 1 1 1 2 1 3 1 4 1 5 ‣ Keep All. The DDS will attempt 2 1 2 2 2 3 2 4 2 5 to keep all the samples of each 3 1 3 2 3 3 3 4 3 5 instance of data identified by its History Depth = 5 key.
  • 47. OpenSplice DDS Delivering Performance, Openness, and Freedom :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Topic Used in next section. struct Counter { int cID; History in int count; }; #pragma keylist Counter cID Action
  • 48. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: History Depth = 1 History Depth = 1 (DDS Default) (DDS Default) Network 1 1 1 2 DataReader 2 1 1 2 2 3 DataWriter 3 1 2 2 2 3 3 1 Topic Topic DataReader Cache DataWriter Cache
  • 49. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: History Depth = 1 History Depth = 1 (DDS Default) (DDS Default) Network 1 2 1 2 DataReader 2 2 2 3 DataWriter 3 1 2 3 3 1 Topic Topic DataReader Cache DataWriter Cache Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the DataWriter to matched DataReaders
  • 50. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: History Depth = 1 History Depth = 1 (DDS Default) (DDS Default) Network 1 2 1 2 DataReader 2 3 2 3 DataWriter 3 1 3 1 Topic Topic DataReader Cache DataWriter Cache Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the DataWriter to matched DataReaders
  • 51. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: History = Keep All History Depth = 1 (DDS Default) Network DataReader 1 1 1 2 2 1 1 2 2 3 DataWriter 3 1 2 2 2 3 3 1 Topic Topic DataReader Cache DataWriter Cache Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the DataWriter to matched DataReaders
  • 52. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: History = Keep All History Depth = 1 (DDS Default) Network DataReader 1 1 1 2 1 2 2 1 2 2 2 3 DataWriter 3 1 2 3 3 1 Topic Topic DataReader Cache DataWriter Cache Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the DataWriter to matched DataReaders
  • 53. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: History = Keep All History Depth = 1 (DDS Default) Network DataReader 1 1 1 2 1 2 2 1 2 2 2 3 2 3 DataWriter 3 1 3 1 Topic Topic DataReader Cache DataWriter Cache Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the DataWriter to matched DataReaders
  • 54. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Putting it All Together :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: 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
  • 55. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Putting it All Together :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: ‣ 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
  • 56. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Reliability Gotchas :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: ‣ 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
  • 57. OpenSplice DDS Delivering Performance, Openness, and Freedom :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Example
  • 58. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Tracks and Flight Plans :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Track FlightPlan Name Name Type Topic QoS Type Topic QoS { TrackedObject { TrackedObject BEST_EFFORT RELIABLE KEEP_LAST(1) KEEP_LAST(1) RESOURCE_LIMITS RESOURCE_LIMITS } }
  • 59. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Aerospace Violations :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: AerospaceViolation struct ASViolation { long oId; Name string sign; long vcode; }; #pragma keylist ASViolation oId sign Type Topic QoS ASViolation { RELIABLE KEEP_ALL RESOURCE_LIMITS }
  • 60. OpenSplice DDS Delivering Performance, Openness, and Freedom :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Controlling Real-Time Properties
  • 61. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Deadline QoS You can’t be later than... :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: QoS Policy Applicability RxO Modifiable DEADLINE T, DR, DW Y Y QoS matching The DEADLINE QoS policy allows QoS QoS QoS QoS Topic QoS to define the maximum inter- Name DataWriter writes Type reads DataReader arrival time between data Publisher ... Subscriber ... ... samples DataWriter writes Type reads DataReader Name Topic QoS QoS QoS QoS matching
  • 62. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Deadline QoS :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: ‣ 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 Deadline Deadline Deadline Deadline Deadline Deadline Violation
  • 63. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Latency Budget QoS I need to get there in at most... :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: QoS Policy Applicability RxO Modifiable LATENCY T, DR, DW Y Y The LATENCY_BUDGET QoS policy BUDGET specifies the maximum acceptable QoS matching delay from the time the data is QoS QoS QoS written until the data is inserted in the QoS Topic QoS Name DataWriter writes Type reads DataReader receiver's application-cache Publisher ... ... ... Subscriber DataWriter writes Type reads DataReader Name Topic QoS QoS QoS QoS matching
  • 64. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Latency Budget QoS :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: ‣ The default value of the duration is zero indicating that the delay should be minimized TBuff Latency Budget = Latency = TBuff +T1+T2+T3 ‣ This policy is a hint to the T3 T1 DDS, not something that T2 must be monitored or enforced.
  • 65. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Transport Priority QoS VIP Data, stay clear! :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: QoS Policy Applicability RxO Modifiable TRANSPORT T, DW - Y PRIORITY The TRANSPORT_PRIORITY QoS policy is a hint to the QoS matching infrastructure as to how to QoS QoS QoS set the priority of the QoS Topic QoS Name DataWriter writes Type reads DataReader underlying transport used to Publisher ... ... ... Subscriber send the data. DataWriter writes Type reads Name DataReader Topic QoS QoS QoS QoS matching
  • 66. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Putting it all Together QoS :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: The real-time properties with which data is delivered to applications is impacted in DDS by the following qualities of service: Publisher Subscriber ‣ TRANSPORT_PRIORITY Deadline Deadline Deadline Deadline Deadline ‣ LATENCY_BUDGET Deadline Violation ‣ 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))
  • 67. OpenSplice DDS Delivering Performance, Openness, and Freedom :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Example
  • 68. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Tracks and Flight Plans :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Track FlightPlan Name Name Type Topic QoS Type Topic QoS { TrackedObject { TrackedObject BEST_EFFORT RELIABLE KEEP_LAST(1) KEEP_LAST(1) RESOURCE_LIMITS RESOURCE_LIMITS DEADLINE (= Period) } TRANSPORT_PRIORITY LATENCY_BUDGET (= Period/3) }
  • 69. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Aerospace Violations :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: AerospaceViolation struct ASViolation { long oId; Name string sign; long vcode; }; #pragma keylist ASViolation oId sign Type Topic QoS { ASViolation RELIABLE KEEP_ALL RESOURCE_LIMITS LATENCY_BUDGET (=0) TRANSPORT_PRIORITY (= MAX_PRIO) }
  • 70. OpenSplice DDS Delivering Performance, Openness, and Freedom :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Controlling the Consistency Model
  • 71. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Durability QoS :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: 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 T, DR, DW Y N ‣ Volatile. No need to keep data DURABILITY T, DW N N instances for late joining data readers SERVICE ‣ Transient Local. Data instance QoS matching availability for late joining data reader is QoS QoS QoS tied to the data writer availability QoS Topic Name QoS DataWriter writes Type reads DataReader ‣ Transient. Data instance availability Publisher ... Subscriber ... ... outlives the data writer DataWriter writes Type reads DataReader Name Topic ‣ Persistent. Data instance availability QoS QoS QoS outlives system restarts QoS matching
  • 72. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Eventual Consistency & R/W Caches :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Under an Eventual Consistency Model, DDS guarantees DataReader that all matched Reader Caches will eventually be identical of the respective Writer Cache DataReader 1 1 2 1 DataWriter 1 1 3 1 2 1 1 2 Topic DataReader 1 2 2 3 3 1 DataReader Cache 2 2 2 3 3 1 Topic 1 1 DataReader Cache 2 Topic 1 DDS DataWriter Cache 3 1 Topic DataReader Cache
  • 73. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD QoS & Consistency Model :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: 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 QoS Policy Applicability RxO Modifiable DURABILITY T, DR, DW Y N ‣ RELIABILITY LIFESPAN T, DW - Y RELIABILITY T, DR, DW Y N ‣ RELIABLE | BEST_EFFORT DESTINATION ORDER T, DR, DW Y N ‣ DESTINATION ORDER ‣ SOURCE_TIMESTAMP | DESTINATION_TIMESTAMP
  • 74. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD QoS & Consistency Model :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN Eventual Consistency VOLATILE RELIABLE SOURCE_TIMESTAMP INF. (No Crash / Recovery) Eventual Consistency TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF. (Reader Crash / Recovery) Eventual Consistency TRANSIENT RELIABLE SOURCE_TIMESTAMP INF. (Crash/Recovery) Eventual Consistency PERSISTENT RELIABLE SOURCE_TIMESTAMP INF. (Crash/Recovery) Weak Consistency ANY ANY DESTINATION_TIMESTAMP ANY Weak Consistency ANY BEST_EFFORT ANY ANY Weak Consistency ANY ANY ANY N
  • 75. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN Eventual Consistency (Reader TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF. Crash / Recovery) {A} Eventual Consistency TRANSIENT RELIABLE SOURCE_TIMESTAMP INF. {B} (Crash/Recovery) Weak Consistency ANY ANY ANY N {J} S = {A, D} S1 P = {A, B} B P1 m A F J D C P = {D, C, J} P2 K E S = {A} S4
  • 76. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN Eventual Consistency (Reader TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF. Crash / Recovery) {A} Eventual Consistency TRANSIENT RELIABLE SOURCE_TIMESTAMP INF. {B} (Crash/Recovery) Weak Consistency ANY ANY ANY N {J} S = {A, D} S1 P = {A, B} B P1 m A A F J D C P = {D, C, J} P2 K E S = {A} S4
  • 77. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN Eventual Consistency (Reader TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF. Crash / Recovery) {A} Eventual Consistency TRANSIENT RELIABLE SOURCE_TIMESTAMP INF. {B} (Crash/Recovery) Weak Consistency ANY ANY ANY N {J} S = {A, D} S1 P = {A, B} B A P1 m A A F J D C P = {D, C, J} P2 K E S = {A} S4 A
  • 78. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN Eventual Consistency (Reader TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF. Crash / Recovery) {A} Eventual Consistency TRANSIENT RELIABLE SOURCE_TIMESTAMP INF. {B} (Crash/Recovery) Weak Consistency ANY ANY ANY N {J} S = {A, D} S1 P = {A, B} B A P1 m B A A F J D C P = {D, C, J} P2 K E S = {A} S4 A
  • 79. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN Eventual Consistency (Reader TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF. Crash / Recovery) {A} Eventual Consistency TRANSIENT RELIABLE SOURCE_TIMESTAMP INF. {B} (Crash/Recovery) Weak Consistency ANY ANY ANY N {J} S = {A, D} S1 P = {A, B} B B A P1 m A A F J D C P = {D, C, J} P2 K E S = {A} S4 A
  • 80. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN Eventual Consistency (Reader TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF. Crash / Recovery) {A} Eventual Consistency TRANSIENT RELIABLE SOURCE_TIMESTAMP INF. {B} (Crash/Recovery) Weak Consistency ANY ANY ANY N {J} S = {A, D} S1 P = {A, B} B B A P1 m S= {A, B, J} A A F S2 J D C P = {D, C, J} P2 K E S = {A} S4 A
  • 81. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN Eventual Consistency (Reader TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF. Crash / Recovery) {A} Eventual Consistency TRANSIENT RELIABLE SOURCE_TIMESTAMP INF. {B} (Crash/Recovery) Weak Consistency ANY ANY ANY N {J} S = {A, D} S1 P = {A, B} B B A P1 m S= {A, B, J} A A F S2 J D C BA P = {D, C, J} P2 K E S = {A} S4 A
  • 82. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN Eventual Consistency (Reader TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF. Crash / Recovery) {A} Eventual Consistency TRANSIENT RELIABLE SOURCE_TIMESTAMP INF. {B} (Crash/Recovery) Weak Consistency ANY ANY ANY N {J} S = {A, D} S1 B B A m S= {A, B, J} A F S2 J D C BA P = {D, C, J} P2 K E S = {A} S4 A
  • 83. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN Eventual Consistency (Reader TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF. Crash / Recovery) {A} Eventual Consistency TRANSIENT RELIABLE SOURCE_TIMESTAMP INF. {B} (Crash/Recovery) Weak Consistency ANY ANY ANY N {J} S = {A, D} S1 B B A m S= {A, B, J} A F S2 J D C BA P = {D, C, J} S= {A, B, D, J} P2 K E S3 S = {A} S4 A
  • 84. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN Eventual Consistency (Reader TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF. Crash / Recovery) {A} Eventual Consistency TRANSIENT RELIABLE SOURCE_TIMESTAMP INF. {B} (Crash/Recovery) Weak Consistency ANY ANY ANY N {J} S = {A, D} S1 B B A m S= {A, B, J} A F S2 J J D D C BA P = {D, C, J} S= {A, B, D, J} P2 K E S3 S = {A} JB S4 A
  • 85. :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: DURABILITY RELIABILITY DESTINATION_ORDER LIFESPAN Eventual Consistency (Reader TRANSIENT_LOCAL RELIABLE SOURCE_TIMESTAMP INF. Crash / Recovery) {A} Eventual Consistency TRANSIENT RELIABLE SOURCE_TIMESTAMP INF. {B} (Crash/Recovery) Weak Consistency ANY ANY ANY N {J} S = {A, D} S1 B B A m S= {A, B, J} A F S2 J D D C BA P = {D, C, J} S= {A, B, D, J} P2 K E S3 S = {A} JB S4 A
  • 86. OpenSplice DDS Delivering Performance, Openness, and Freedom :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Example
  • 87. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Tracks and Flight Plans :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Track FlightPlan Name Name Type Topic QoS Type Topic QoS { { TrackedObject TrackedObject RELIABLE BEST_EFFORT KEEP_LAST(1) KEEP_LAST(1) TRANSIENT VOLATILE - or - PERSISTENT DEST_ORDER DEST_ORDER LIFESPAN (>= Period) LIFESPAN (Inf ) } }
  • 88. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Aerospace Violations :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: AerospaceViolation struct ASViolation { long oId; Name string sign; long vcode; }; #pragma keylist ASViolation oId sign Type Topic QoS { ASViolation RELIABLE KEEP_ALL PERSISTENT DEST_ORDER LIFESPAN (Inf ) }
  • 89. OpenSplice DDS Delivering Performance, Openness, and Freedom :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Controlling Replication
  • 90. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Availability :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: 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
  • 91. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Availability :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: StockQuote symbol: "MSFT" StockQuote StockQuote name: "Microsoft Corp." StockQuote symbol: "GOOG" symbol: "GOOG" exchange: "NASD""GOOG" symbol: name: "Google Inc." quote: 33.73 name: "Google Inc." name: "Google Inc." exchange: "NASD" exchange: "NASD" exchange: "NASD" StockQuote StockQuote StockQuote quote: 663.97 W1 quote: 663.97"AAPL" symbol: "AAPL" quote: 663.97 symbol: "AAPL" symbol: name: "Apple Inc." name: "Apple Inc." name: "Apple Inc." exchange: "NASD" exchange: "NASD" exchange: "NASD" R1 quote: 165.37 quote: 165.37 quote: 165.37 STRENGTH=3 StockQuote symbol: "AAPL" StockQuote Inc." name: "Apple symbol: "GOOG""NASD" exchange: name: quote: 165.37 "Google Inc." StockQuote "NASD" exchange: symbol: "MSFT" quote: 663.97 name: "Microsoft Corp." exchange: "NASD" quote: 33.73 W1’ R2 STRENGTH=2 StockQuote symbol: "AAPL" StockQuote Inc." name: "Apple symbol: "GOOG""NASD" exchange: name: quote: 165.37 "Google Inc." StockQuote "NASD" exchange: symbol: "MSFT" quote: 663.97 name: "Microsoft Corp." exchange: "NASD" quote: 33.73 W2’’ R3 STRENGTH=1
  • 92. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Availability :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: StockQuote symbol: "MSFT" StockQuote StockQuote name: "Microsoft Corp." StockQuote symbol: "GOOG" symbol: "GOOG" exchange: "NASD""GOOG" symbol: name: "Google Inc." quote: 33.73 name: "Google Inc." name: "Google Inc." exchange: "NASD" exchange: "NASD" exchange: "NASD" quote: 663.97 W1 quote: 663.97 quote: 663.97 StockQuote symbol: "AAPL" R1 STRENGTH=3 name: "Apple Inc." exchange: "NASD" quote: 165.37 StockQuote symbol: "GOOG" name: "Google Inc." StockQuote "NASD" exchange: symbol: "MSFT" quote: 663.97 name: "Microsoft Corp." exchange: "NASD" quote: 33.73 W1’ R2 StockQuote symbol: "AAPL" name: "Apple Inc." exchange: "NASD" STRENGTH=2 quote: 165.37 StockQuote symbol: "GOOG" name: "Google Inc." StockQuote "NASD" exchange: symbol: "MSFT" quote: 663.97 name: "Microsoft Corp." exchange: "NASD" quote: 33.73 W2’’ StockQuote symbol: "AAPL" name: "Apple Inc." exchange: "NASD" quote: 165.37 R3 STRENGTH=1
  • 93. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Availability :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: StockQuote symbol: "MSFT" name: "Microsoft Corp." exchange: "NASD" quote: 33.73 W1 StockQuote symbol: "AAPL" R1 STRENGTH=3 name: "Apple Inc." exchange: "NASD" quote: 165.37 StockQuote symbol: "GOOG" name: "Google Inc." exchange: "NASD" quote: 663.97 StockQuote symbol: "MSFT" name: "Microsoft Corp." exchange: "NASD" quote: 33.73 StockQuote W1’ R2 symbol: "GOOG" name: "Google Inc." exchange: "NASD" quote: 663.97 StockQuote symbol: "AAPL" name: "Apple Inc." exchange: "NASD" STRENGTH=2 quote: 165.37 StockQuote symbol: "MSFT" name: "Microsoft Corp." exchange: "NASD" StockQuote quote: 33.73 symbol: "GOOG" R3 name: "Google Inc." W2’’ exchange: "NASD"StockQuote quote: 663.97symbol: "AAPL" name: "Apple Inc." exchange: "NASD" quote: 165.37 STRENGTH=1
  • 94. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Availability :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: StockQuote R1 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" R2 quote: 165.37 StockQuote StockQuote StockQuote StockQuote symbol: "MSFT" symbol: "MSFT" symbol: "MSFT" symbol: "GOOG" name: "Microsoft Corp." name: "Microsoft Corp." name: "Microsoft Corp." exchange: "NASD" exchange: "NASD" name: "Google Inc." exchange: "NASD" quote: 33.73 quote: 33.73 quote: 33.73 exchange: "NASD" quote: 663.97 StockQuote R3 symbol: "AAPL" W2’’ name: "Apple Inc." exchange: "NASD" quote: 165.37 STRENGTH=1
  • 95. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Availability :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: StockQuote R1 symbol: "AAPL" name: "Apple Inc." exchange: "NASD" StockQuote quote: 165.37 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 R2 symbol: "MSFT" name: "Microsoft Corp." StockQuote exchange: "NASD" quote: 33.73 symbol: "AAPL" name: "Apple Inc." exchange: "NASD" quote: 165.37 StockQuote symbol: "GOOG" name: "Google Inc." StockQuote exchange: "NASD" symbol: "MSFT" quote: 663.97 name: "Microsoft Corp." exchange: "NASD" quote: 33.73 StockQuote R3 symbol: "AAPL" W2’’ name: "Apple Inc." exchange: "NASD" quote: 165.37 STRENGTH=1
  • 96. OpenSplice DDS Delivering Performance, Openness, and Freedom :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: Summing Up +/-
  • 97. OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DDS OpenSplice DD Summing Up :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: ‣ 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
  • 98. OpenSplice DDS Delivering Performance, Openness, and Freedom http://www.opensplice.com/ References http://www.opensplice.org/ http://www.slideshare.net/angelo.corsaro emailto:opensplicedds@prismtech.com http://bit.ly/1Sreg http://twitter.com/acorsaro/ http://www.youtube.com/OpenSpliceTube http://opensplice.blogspot.com
  • 99. S at e DD g lic . or Sp i ce pen nspl d O .ope OpenSplice DDS a n Lo ww w w Do p :// h tt The Universal Data Bus :: http://www.opensplice.org :: http://www.opensplice.com :: http://www.prismtech.com :: THANK You! d the ta lk? F end m o und e yo it ur n joye S .S. E ing? : P bor s at h.co m Blo ody me nt ec com r ismt sa ro@p lo. cor a nge