SlideShare a Scribd company logo
OpenSplice DDS
                                      Delivering Performance, Openness, and Freedom




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



                                           ::Part II
                                                                                      1
Tutorial Scope
Scope & Goals
‣ The Tutorial will cover the DCPS layer of DDS                                                   Application

‣ It will give you enough details and examples                                                        Object/Relational Mapping

  to make sure that you can get started                                                        Data Local Reconstruction Layer (DLRL)

  writing DDS applications
                                                                                                                          Content
                                                                                 Ownership           Durability
                                                                                                                        Subscription
Software
‣ OpenSplice DDS
                                                                                                 Minimum Profile

                                                                                      Data Centric Publish/Subscribe (DCPS)

  ‣ http://www.opensplice.org                                                          Real-Time Publish/Subscribe Protocol
‣ SIMple Dds (SIMD)                                                                      DDS Interoperability Wire Protocol

  ‣http://code.google.com/p/simd-cxx                                                                  UDP/IP

Prerequisite
‣ Basic C++ understanding
                                        © 2010, PrismTech. All Rights Reserved


                                                                                                                                        2
What You’ve Learned on Part I


‣Defining Topics and Topic Types
‣Scoping Information with Partitions
‣Writing Data
‣Reading (Taking) data with Waitsets and Listeners
‣Writing an example that demonstrate all of the above


                          © 2010, PrismTech. All Rights Reserved


                                                                   3
What we’ll Cover Today


‣Content Filtered Topics and Queries
‣QoS and the Request vs. Offered Model
‣Setting QoS on DDS Entities
‣Tuning OpenSplice DDS Configuration


                        © 2010, PrismTech. All Rights Reserved


                                                                 4
OpenSplice DDS
Delivering Performance, Openness, and Freedom


Your will learn:
- What Filters and Queries are
- The available SQL92 subset
- Programming Filters and Queries   Filters and Queries

                                                      5
DDS Filters & Queries


‣ DDS provides means for filtering data using an application
 specified condition expression
‣ The two mechanism provided in order to filter data are:
 ‣ ContentFilteredTopics
 ‣ QueryCondition
‣ Both working in conjunction with a DataReader

                             © 2010, PrismTech. All Rights Reserved


                                                                      6
ContentFilteredTopic
‣ A ContentFilteredTopic can be seen
  as a decorator of a user defined topic
  defining a specific filter over the data
  published for the given topic
‣ As a result, a ContentFilteredTopic
  always exist in conjunction with its related
  Topic                                                                             related topic

‣ A DataReader created with a specific
  ContentFilteredTopic will only
  receive the data that matches the filter
  condition
‣ ContentFilteredTopic can be
  thought of as Continuous Queries

                                           © 2010, PrismTech. All Rights Reserved


                                                                                                    7
QueryCondition


‣ A QueryCondition can be created over an existing DataReader
 in order to select, among received data, only the subset matching the
 condition associated with the QueryCondition
‣ QueryCondition are created for a specific DataReader and
 used as an argument of the DataReader::read_w_condition
 method



                             © 2010, PrismTech. All Rights Reserved


                                                                         8
Filters & Queries Grammar
Condition::= Predicate
       | Condition ‘AND’ Condition
       | Condition ‘OR’ Condition
       | ‘NOT’ Condition | ‘(’ Condition ‘)’

Predicate::= ComparisonPredicate | BetweenPredicate

ComparisonPredicate::= FIELDNAME RelOp Parameter | Parameter RelOp FIELDNAME

BetweenPredicate::= FIELDNAME ‘BETWEEN’ Range | FIELDNAME ‘NOT BETWEEN’ Range

RelOp::= ‘=’ | ‘>’ | ‘>=’ | ‘<’ | ‘<=’ | ‘<>’ | like

Range::= Parameter ‘AND’ Parameter

Parameter::= INTEGERVALUE | FLOATVALUE
    | STRING | ENUMERATEDVALUE | PARAMETER

where PARAMETER has the for %n (with n in 0..100)
                                     © 2010, PrismTech. All Rights Reserved


                                                                                9
ContentFilteredTopics in SIMD
  template <typename T>
  class dds::ContentFilteredTopic : public dds::TopicDescription {
  public:
     ContentFilteredTopic(const std::string& name,
                          const dds::Topic<T>& t,
                          const std::string& filter,
                          const std::vector<std::string>& params);

     virtual ~ContentFilteredTopic();
  public:
     std::string get_filter_expression() const;

       std::vector<std::string> get_expression_parameters() const;
       void set_expression_parameters(const std::vector<std::string>& params);

       dds::Topic<T> get_related_topic() const;

       virtual std::string get_name() const;

       virtual std::string get_type_name() const;

       virtual dds::DomainParticipant get_participant() const;

       TopicQos get_qos() const;
       void set_qos(const TopicQos& qos);
  };
                                       © 2010, PrismTech. All Rights Reserved


                                                                                 10
Using ContentFilteredTopics
                                                                                   enum TemperatureScale {
                                                                                      CELSIUS,
// Create the "TempSensor" Topic                                                      FAHRENHEIT,
dds::Topic<TempSensorType> tsTopic("TempSensor");                                     KELVIN
                                                                                   };
// Create the filter parameters
std::vector<std::string> params(2);                                                struct TempSensorType {
                                                                                      short id;
params[0] = "30";
                                                                                      float temp;
params[1] = "0.6";                                                                    float hum;
                                                                                      TemperatureScale scale;
// Create the ContentFilteredTopic                                                 };
dds::ContentFilteredTopic<TempSensorType>                                          #pragma keylist TempSensorType id
    cfTsTopic("TempSensor-1",
              tsTopic,
              "(temp < %0) AND (hum < %1)",
              params);

// Create the DataReader with for the ContentFilteredTopic
dds::DataReader<TempSensorType> dr(cfTsTopic);




                                          © 2010, PrismTech. All Rights Reserved


                                                                                                                       11
QueryCondition in SIMD
template <typename T>
class DataReader {
public:
   // [...] Other DataReader methods
   QueryCondition create_querycondition(const std::string& expression, const std::vector& params);

    QueryCondition create_querycondition(const    SampleStateMask& samples_state,
                                         const    ViewStateMask& views_state,
                                         const    InstanceStateMask& instances_state,
                                         const    std::string& expression, const std::vector& params);

    ReturnCode_t read_w_condition(TSeq& samples, SampleInfoSeq& infos, const QueryCondition& cond);

    ReturnCode_t read_w_condition(TSeq& samples, SampleInfoSeq& infos,
                                  const QueryCondition& cond, long max_samples);


    ReturnCode_t take_w_condition(TSeq& samples, SampleInfoSeq& infos, const QueryCondition& cond);

    ReturnCode_t take_w_condition(TSeq& samples, SampleInfoSeq& infos, const QueryCondition& cond,
                                  long max_samples);
}

                                           © 2010, PrismTech. All Rights Reserved


                                                                                                         12
Using QueryConditions

dds::Topic<TempSensorType> tsTopic("TempSensor");
dds::DataReader<TempSensorType> dr(tsTopic);

std::vector<std::string> params(2);
params[0] = "30";
params[1] = "0.6";

// Create Query Condition
dds::QueryCondition cond =
   dr.create_querycondition("(temp < %0) AND (hum < %1)", params);

TempSensorTypeSeq data;
SampleInfoSeq info;
// Read with Condition
dr.read_w_condition(data, info, cond);




                                © 2010, PrismTech. All Rights Reserved


                                                                         13
Filters vs Queries

                                                                            QueryCondition
                                                                       (temp < 30) AND (hum < 0.6)

      DataReader                                                              DataReader




      ReaderCache                    1     26 0.4 C                            ReaderCache
                                     1     28 0.5 C
(temp < 30) AND (hum < 0.6)
                                     1     31 0.5 C
 ContentFilteredTopic                1     30 0.7 C
                                     1     29 0.5 C


                              © 2010, PrismTech. All Rights Reserved


                                                                                                     14
Filters vs Queries

                                                                            QueryCondition
                                                                       (temp < 30) AND (hum < 0.6)

      DataReader                                                              DataReader
       1   26 0.4 C                                                             1   26 0.4 C

       1   28 0.5 C                                                             1   28 0.5 C
                                                                                1   31 0.5 C
       1   29 0.5 C
                                                                                1   30 0.7 C
                                                                                1   29 0.5 C
      ReaderCache                                                              ReaderCache
(temp < 30) AND (hum < 0.6)

 ContentFilteredTopic


                              © 2010, PrismTech. All Rights Reserved


                                                                                                     15
Filters vs Queries
                              1   26 0.4 C
                  read()                                           read_w_condition()
                              1   28 0.5 C
                                                                                 QueryCondition
                              1   29 0.5 C
                                                                           (temp < 30) AND (hum < 0.6)

      DataReader                                                                  DataReader
       1   26 0.4 C                                                                 1   26 0.4 C

       1   28 0.5 C                                                                 1   28 0.5 C
                                                                                    1   31 0.5 C
       1   29 0.5 C
                                                                                    1   30 0.7 C
                                                                                    1   29 0.5 C
      ReaderCache                                                                  ReaderCache
(temp < 30) AND (hum < 0.6)

 ContentFilteredTopic


                                  © 2010, PrismTech. All Rights Reserved


                                                                                                         16
OpenSplice DDS
Delivering Performance, Openness, and Freedom


Your will learn:
- What can you control with QoS
- Request vs. Offered in DDS
- QoS Patterns                    Quality of Service
                                              (QoS)
                                                   17
Anatomy of a DDS Application

                                                                Topic
                                                                 Topic
                                                                  Topic
                                                                       Samples
                                                                        Samples
               Instances                                                 Samples
                Instances
                 Instances
                                         1 21 62
                                             1
                                            21 62
                                                    1 22 62
                                                      1 22 62
                                                                                   1 23 63
                                                                                     1 23 63
  DataReader
  DataReader
                                           1 21 0.6 C
                                         2 20 61    2 19 60
                                                           1 22                    0.6 C   1    23 0.7   C
   DataReader
    DataReader                            2 20 61
                                           2 20 0.6 F
                                                     2 19 60                                                 DataWriter
                                                                                                             DataWriter
     DataReader
      DataReader                         3 25 70   3 25 71
                                                       25
                                                           2 19                    0.6 F
                                                                                    3 25 74     3  26 77
                                                                                                 3 26 77
                                                                                                              DataWriter
                                                                                                               DataWriter
                   struct TempSensor {    3 25 70    3 25 71
                                                        25                            3 25 74
                      int tID;             3 75 0.1 K      3 8                     0.1 K    3   95 0.2 K
                      float temp;
                      float humidity;
                      TemperatureScale scale;
                   };
                   #pragma keylist TempSensor tID




                                                    © 2010, PrismTech. All Rights Reserved


                                                                                                                            18
Anatomy of a DDS Application

                                                                               Topic
                                                                                Topic
                                                                                 Topic
                                                                                      Samples
                                                                                       Samples
                              Instances                                                 Samples
                               Instances
                                Instances
                                                        1 21 62
                                                            1
                                                           21 62
                                                                   1 22 62
                                                                     1 22 62
                                                                                                  1 23 63
                                                                                                    1 23 63
               DataReader
               DataReader
                                                          1 21 0.6 C
                                                        2 20 61    2 19 60
                                                                          1 22                    0.6 C   1    23 0.7   C
                DataReader
                 DataReader                              2 20 61
                                                          2 20 0.6 F
                                                                    2 19 60                                                  DataWriter
                                                                                                                             DataWriter
                  DataReader
                   DataReader                           3 25 70   3 25 71
                                                                      25
                                                                          2 19                    0.6 F
                                                                                                   3 25 74     3  26 77
                                                                                                                3 26 77
                                                                                                                              DataWriter
                                                                                                                               DataWriter
                                  struct TempSensor {    3 25 70    3 25 71
                                                                       25                            3 25 74
                                     int tID;             3 75 0.1 K      3 8                     0.1 K    3   95 0.2 K
                                     float temp;
                                     float humidity;
Arrows                               TemperatureScale scale;
                                  };
show                              #pragma keylist TempSensor tID
structural
relationship
s, not data-         Subscriber                                                                                             Publisher
flows                                                                       Partition




                                                                   © 2010, PrismTech. All Rights Reserved


                                                                                                                                            19
Anatomy of a DDS Application

                                                                               Topic
                                                                                Topic
                                                                                 Topic
                                                                                      Samples
                                                                                       Samples
                              Instances                                                 Samples
                               Instances
                                Instances
                                                        1 21 62
                                                            1
                                                           21 62
                                                                   1 22 62
                                                                     1 22 62
                                                                                                  1 23 63
                                                                                                    1 23 63
               DataReader
               DataReader
                                                          1 21 0.6 C
                                                        2 20 61    2 19 60
                                                                          1 22                    0.6 C   1    23 0.7   C
                DataReader
                 DataReader                              2 20 61
                                                          2 20 0.6 F
                                                                    2 19 60                                                  DataWriter
                                                                                                                             DataWriter
                  DataReader
                   DataReader                           3 25 70   3 25 71
                                                                      25
                                                                          2 19                    0.6 F
                                                                                                   3 25 74     3  26 77
                                                                                                                3 26 77
                                                                                                                              DataWriter
                                                                                                                               DataWriter
                                  struct TempSensor {    3 25 70    3 25 71
                                                                       25                            3 25 74
                                     int tID;             3 75 0.1 K      3 8                     0.1 K    3   95 0.2 K
                                     float temp;
                                     float humidity;
Arrows                               TemperatureScale scale;
                                  };
show                              #pragma keylist TempSensor tID
structural
relationship
s, not data-         Subscriber                                                                                             Publisher
flows                                                                       Partition

                                                                   Domain Participant

                                                                            Domain
                                                                   © 2010, PrismTech. All Rights Reserved


                                                                                                                                            20
QoS Model
‣ QoS-Policies are used to control relevant
  properties of OpenSplice DDS entities,                                                                Type Matching
                                                                                                                                           QoS matching

  such as:                                   QoS              QoS                      QoS                          QoS                   QoS                QoS              QoS

  ‣ Temporal Properties                                                                                             Topic

  ‣ Priority                                                Publisher
                                                                                                                              Name
                                                                                                                                                          Subscriber

                                                                             ...    DataWriter             writes   Type       reads   DataReader
                                                                                                                                                    ...
  ‣ Durability                                                                                                          ...
  ‣ Availability                               DomainParticipant                    DataWriter           writes     Type      reads    DataReader                  DomainParticipant

  ‣ ...                                                                                                             Topic
                                                                                                                              Name



‣ Some QoS-Policies are matched based on                                               QoS                          QoS                    QoS

  a Request vs. Offered Model thus QoS-
  enforcement

‣ Publications and Subscriptions match only if the declared vs. requested QoS are compatible
 ‣ e.g., it is not possible to match a publisher which delivers data unreliably with a subscriber which requires reliability
                                                               © 2010, PrismTech. All Rights Reserved


                                                                                                                                                                                       21
QoS Policies
QoS Policy           Applicability   RxO   Modifiable                                                                                         Type Matching
                                                                                                                                                                                QoS matching
DURABILITY            T, DR, DW       Y       N                   Data Availability             QoS             QoS                QoS                   QoS                   QoS                QoS              QoS

DURABILITY SERVICE      T, DW        N        N
                                                                                                                                                         Topic
                                                                                                                                                                   Name
                                                                                                              Publisher                                                                        Subscriber

LIFESPAN                T, DW        N/A      Y                                                                           ...   DataWriter      writes   Type       reads   DataReader
                                                                                                                                                                                         ...

                      T, DR, DW      N        N                                                                                                              ...
HISTORY
                                                                                                 DomainParticipant              DataWriter    writes     Type      reads    DataReader                  DomainParticipant
PRESENTATION             P, S         Y       N                     Data Delivery                                                                                  Name
                                                                                                                                                         Topic
RELIABILITY           T, DR, DW       Y       N
PARTITION                P, S        N        Y                                                                                   QoS                    QoS                    QoS



DESTINATION ORDER     T, DR, DW       Y       N


OWNERSHIP             T, DR, DW       Y       N
OWNERSHIP                DW          N/A      Y
STRENGTH
DEADLINE              T, DR, DW       Y       Y                   Data Timeliness
                                                                                                         ‣ Rich set of QoS allow to configure
LATENCY BUDGET        T, DR, DW       Y       Y                                                                  several different aspects of data
TRANSPORT PRIORITY      T, DW        N/A      Y
                                                                                                                 availability, delivery and timeliness
TIME BASED FILTER        DR          N/A      Y                       Resources                          ‣       QoS can be used to control and
RESOURCE LIMITS       T, DR, DW      N        N
                                                                                                                 optimize network as well as
                     DP, DR, DW      N        Y
                                                                                                                 computing resource
USER_DATA                                                           Configuration
TOPIC_DATA                T          N        Y
GROUP_DATA               P, S        N        Y

                                                       © 2010, PrismTech. All Rights Reserved


                                                                                                                                                                                                                            22
OpenSplice DDS
Delivering Performance, Openness, and Freedom




                  Controlling Reliability

                                                23
Reliability

The RELIABILITY QoS indicate the level of guarantee offered by the DDS in delivering data
to subscribers. Possible variants are:             QoS Policy Applicability RxO Modifiable

‣ Reliable. In steady-state the                                    RELIABILITY        T, DR, DW             Y                    N

  middleware guarantees that all
  samples in the DataWriter history will                                                                          QoS matching

  eventually be delivered to all the                                         QoS                  QoS                       QoS

  DataReader
                                                   QoS                                            Topic                                         QoS

‣ Best Effort. Indicates that it is                                      DataWriter    writes     Type
                                                                                                          Name

                                                                                                           reads         DataReader
  acceptable to not retry propagation of        Publisher        ...                                                                         Subscriber
                                                                                                   ...                                 ...
  any samples
                                                                         DataWriter   writes      Type    reads           DataReader

                                                                                                          Name
                                                                                                  Topic


                                                                             QoS                  QoS                        QoS


                                                                                                                  QoS matching




                                           © 2010, PrismTech. All Rights Reserved


                                                                                                                                                          24
History
   ‣ The History QoS Controls the number of samples-per-instance that will be stored by the middleware on
     behalf of a Reader
   ‣ Keep Last K. The History QoS can be set so to always                                                                                                      QoS matching


     have the latest K samples                                                                                            QoS                 QoS                        QoS



   ‣ Keep All. The History QoS can be set so keep all                                             QoS                                         Topic
                                                                                                                                                       Name
                                                                                                                                                                                             QoS


     samples produced by the writer and not yet taken,                                                                 DataWriter    writes   Type      reads         DataReader


     until resource limits are not reached                                                      Publisher      ...                               ...                                ...   Subscriber



                                                                                                                       DataWriter   writes    Type     reads           DataReader



    DataReader                                DataReader                                                                                      Topic
                                                                                                                                                       Name




                                                                                                                         QoS                  QoS                         QoS

         1   1                    1   1   1    2    1   3   1     4     1    5                                                                                 QoS matching

         2   1                    2   1   2    2    2   3   2     4     2    5

         3   1                    3   1   3    2    3   3   3     4     3    5                                         QoS Policy   Applicability         RxO            Modifiable
                                                                                                                     HISTORY         T, DR, DW             N                    N
         Topic                                                        Topic
History Depth = 1 (DDS Default)               History Depth = 5

                                                                      © 2010, PrismTech. All Rights Reserved


                                                                                                                                                                                                       25
OpenSplice DDS
Delivering Performance, Openness, and Freedom



 Topic Used in next section.
  struct Counter {


  };
     int cID;
     int count;

  #pragma keylist Counter cID
                                History in Action
                                                    26
History in Action

                  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




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

                                          © 2010, PrismTech. All Rights Reserved


                                                                                                                    27
History in Action

                  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

                                          © 2010, PrismTech. All Rights Reserved


                                                                                                                    28
History in Action

                  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

                                          © 2010, PrismTech. All Rights Reserved


                                                                                                                    29
History in Action

                  History Depth = 2                                                History Depth = 1
                                                                                    (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




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

                                          © 2010, PrismTech. All Rights Reserved


                                                                                                                    30
History in Action

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

 DataReader        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

                                          © 2010, PrismTech. All Rights Reserved


                                                                                                                    31
History in Action

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

 DataReader        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

                                          © 2010, PrismTech. All Rights Reserved


                                                                                                                    32
Putting it All Together
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
‣ 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


                                       © 2010, PrismTech. All Rights Reserved


                                                                                         33
OpenSplice DDS
Delivering Performance, Openness, and Freedom




                Controlling Real-Time
                            Properties
                                                34
Deadline                                                                                                                                                            You can’t be later than...



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

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




‣ DataWriter indicates that the application                                          QoS                                       Topic
                                                                                                                                       Name
                                                                                                                                                                             QoS


     commits to write a new value at least once                                                         DataWriter    writes   Type     reads         DataReader

                                                                                   Publisher      ...                                                                     Subscriber
     every deadline period                                                                                                      ...                                 ...


‣                                                                                                                    writes    Type    reads           DataReader
     DataReaders are notified by the DDS when                                                           DataWriter

                                                                                                                                       Name

     the DEADLINE QoS contract is violated                                                                                     Topic


                                                                                                          QoS                  QoS                        QoS


                                                                                                                                               QoS matching




                   Publisher                                                                                                                     Subscriber
                                         Deadline       Deadline          Deadline                 Deadline          Deadline



                                                Deadline Violation
                                                               © 2010, PrismTech. All Rights Reserved


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



The LATENCY_BUDGET QoS policy specifies the maximum acceptable delay from the time the data is written
until the data is inserted in the receiver's application-cache   QoS Policy Applicability RxO Modifiable
                                                                                                                 LATENCY                T, DR, DW              Y                 Y
                                                                                                                 BUDGET
‣ The default value of the duration is zero indicating that the delay
    should be minimized                                                                                                                                                    QoS matching


‣   This policy is a hint to the DDS, not something that must be                                                              QoS                       QoS                          QoS


    monitored or enforced.                                                                             QoS                                              Topic                                            QoS
                                                                                                                                                                   Name

                                                                                                                           DataWriter          writes   Type        reads         DataReader

                                                                                                     Publisher      ...                                                                               Subscriber
                                                                                                                                                         ...                                    ...

                                                                                                                           DataWriter         writes    Type       reads           DataReader

                                                                                                                                                                   Name
                        TBuff   Latency Budget = Latency = TBuff +T1+T2+T3                                                                              Topic


                                                                                                                             QoS                        QoS                           QoS


                                                                                                                                                                           QoS matching
                                                                    T3
                         T1


                                             T2




                                                            © 2010, PrismTech. All Rights Reserved


                                                                                                                                                                                                                   36
Transport Priority                                                                                                                                VIP Data, stay clear!




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



                                                            QoS                                          Topic                                            QoS
                                                                                                                 Name
The TRANSPORT_PRIORITY QoS policy                                                 DataWriter    writes   Type     reads         DataReader

is a hint to the infrastructure as to how                Publisher        ...                             ...                                 ...      Subscriber


to set the priority of the underlying                                             DataWriter   writes    Type    reads           DataReader

transport used to send the data.                                                                                 Name
                                                                                                         Topic


                                                                                      QoS                QoS                        QoS


                                                                                                                         QoS matching




                                                  © 2010, PrismTech. All Rights Reserved


                                                                                                                                                                       37
Putting it all Together
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))
                                              © 2010, PrismTech. All Rights Reserved


                                                                                                                                          38
OpenSplice DDS
Delivering Performance, Openness, and Freedom




                    Controlling the
                 Consistency Model
                                                39
Durability
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
                                                                      DURABILITY                    T, DW                 N                        N
‣ Volatile. No need to keep data instances                            SERVICE

  for late joining data readers
‣ Transient Local. Data instance availability
                                                                                                                       QoS matching

                                                                              QoS                      QoS                       QoS
  for late joining data reader is tied to the
  data writer availability                              QoS                                            Topic
                                                                                                               Name
                                                                                                                                                          QoS



‣ Transient. Data instance availability              Publisher      ...
                                                                           DataWriter       writes     Type     reads         DataReader

                                                                                                                                                       Subscriber
                                                                                                        ...                                  ...
  outlives the data writer
‣ Persistent. Data instance availability
                                                                           DataWriter      writes      Type    reads           DataReader

                                                                                                               Name
                                                                                                       Topic
  outlives system restarts
                                                                              QoS                      QoS                        QoS


                                                                                                                       QoS matching



The DURABILITY_SERVICE QoS provide control over configuration of the service that implements the transient and
persistent durability features
                                                  © 2010, PrismTech. All Rights Reserved


                                                                                                                                                                    40
Eventual Consistency & R/W Caches
                   DataReader

   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

                 Under an Eventual Consistency Model, DDS guarantees that all matched
                 Reader Caches will eventually be identical of the respective Writer Cache
                                         © 2010, PrismTech. All Rights Reserved


                                                                                                     41
QoS Impacting the Consistency Model

The DDS Consistency Model is a property that can be associated to Topics or further refined by
Reader/Writers. The property is controlled by the following QoS Policies:
‣ DURABILITY
 ‣ VOLATILE | TRANSIENT_LOCAL | TRANSIENT | PERSISTENT
‣ LIFESPAN
‣ RELIABILITY
 ‣ RELIABLE | BEST_EFFORT
‣ DESTINATION ORDER
 ‣ SOURCE_TIMESTAMP | DESTINATION_TIMESTAMP             QoS Policy                     Applicability   RxO   Modifiable
                                                        DURABILITY                      T, DR, DW       Y       N
                                                        LIFESPAN                          T, DW         -       Y
                                                        RELIABILITY                     T, DR, DW       Y       N
                                                        DESTINATION ORDER               T, DR, DW       Y       N


                                              © 2010, PrismTech. All Rights Reserved


                                                                                                                         42
QoS Impacting the Consistency Model

                           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



                                            © 2010, PrismTech. All Rights Reserved


                                                                                                                        43
Eventual Consistency @ Work
                                      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
                                                      © 2010, PrismTech. All Rights Reserved


                                                                                                                                   44
Eventual Consistency @ Work
                                      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
                                                      © 2010, PrismTech. All Rights Reserved


                                                                                                                                   44
Eventual Consistency @ Work
                                      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
                                                      © 2010, PrismTech. All Rights Reserved        A

                                                                                                                                   44
Eventual Consistency @ Work
                                      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
                                                      © 2010, PrismTech. All Rights Reserved        A

                                                                                                                                   44
Eventual Consistency @ Work
                                      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
                                                      © 2010, PrismTech. All Rights Reserved        A

                                                                                                                                   44
Eventual Consistency @ Work
                                      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
                                                      © 2010, PrismTech. All Rights Reserved        A

                                                                                                                                     44
Eventual Consistency @ Work
                                      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
                                                      © 2010, PrismTech. All Rights Reserved        A

                                                                                                                                     44
Eventual Consistency @ Work
                                      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
                                                      © 2010, PrismTech. All Rights Reserved         A

                                                                                                                                       45
Eventual Consistency @ Work
                                      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
                                                      © 2010, PrismTech. All Rights Reserved         A

                                                                                                                                           45
Eventual Consistency @ Work
                                      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
                                                      © 2010, PrismTech. All Rights Reserved         A

                                                                                                                                           45
Eventual Consistency @ Work
                                      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
                                                      © 2010, PrismTech. All Rights Reserved         A

                                                                                                                                           45
OpenSplice DDS
Delivering Performance, Openness, and Freedom




            Controlling Replication
                                                46
Ownership                                                                                                                                                        Who owns the data?



 The OWNERSHIP QoS specifies whether it is allowed for multiple DataWriters to write the
 same instance of the data and if so, how these modifications should be arbitrated. Possible
 choices are:
‣ Shared. Multiple writers are allowed to                            QoS Policy            Applicability           RxO              Modifiable
    update the same instance and all the                          OWNERSHIP                 T, DR, DW                Y                    N

    updates are made available to the reader
                                                                                                                         QoS matching

‣   Exclusive. Indicates that each instance can                                QoS                      QoS                        QoS

    only be owned by one DataWriter, but the
                                                                                                        Topic
    owner of an instance can change                      QoS
                                                                                                                 Name
                                                                                                                                                       QoS



    dynamically -- due to liveliness changes                                DataWriter         writes   Type      reads         DataReader

                                                      Publisher      ...                                                                            Subscriber
                                                                                                                                              ...
‣   The selection of the owner is controlled by
                                                                            DataWriter        writes
                                                                                                           ...
                                                                                                        Type     reads           DataReader
    the setting of the OWNERSHIP_STRENGTH                                                                        Name

    QoS policy                                                                                          Topic


                                                                               QoS                      QoS                         QoS


                                                                                                                         QoS matching




                                                  © 2010, PrismTech. All Rights Reserved


                                                                                                                                                                                 47
Ownership Strength                                                                                                                                    How strong are you?




The OWNERSHIP_STRENGTH Specifies the value of the “strength” used to arbitrate among
DataWriters that attempt to modify the same data instance
‣ Data instance are identified                                                                                             QoS matching
  by the couple (Topic, Key)
                                                                                           QoS             QoS                       QoS

‣ The policy applies only if the
  OWNERSHIP is EXCLUSIVE                                      QoS                                          Topic
                                                                                                                   Name
                                                                                                                                                            QoS


                                                                                    DataWriter    writes   Type     reads         DataReader

                                                           Publisher        ...                                                                          Subscriber
                                                                                                            ...                                 ...
  QoS Policy   Applicability   RxO   Modifiable
OWNERSHIP          DW           -        Y                                          DataWriter   writes    Type    reads           DataReader
STRENGTH
                                                                                                                   Name
                                                                                                           Topic


                                                                                           QoS             QoS                        QoS


                                                                                                                           QoS matching




                                                  © 2010, PrismTech. All Rights Reserved


                                                                                                                                                                       48
Next Steps

‣ By now you’ve learned most of what you need to write complex DDS
 applications

‣ However, as the wise Confucius used to say:
 ‣ I hear an I forget. I see and I remember. I do I understand.

‣ The best way of really getting into DDS is to write some DDS applications,
 utilities or extensions


                                © 2010, PrismTech. All Rights Reserved


                                                                               49
Online Resources

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




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




                                                                                  http://opensplice.blogspot.com
 http://www.youtube.com/OpenSpliceTube


                                         © 2009, PrismTech. All Rights Reserved


                                                                                                                             50

More Related Content

What's hot

Dremel: interactive analysis of web-scale datasets
Dremel: interactive analysis of web-scale datasetsDremel: interactive analysis of web-scale datasets
Dremel: interactive analysis of web-scale datasets
Hung-yu Lin
 
Oracle GoldenGate Veridata 12cR2 セットアップガイド
Oracle GoldenGate Veridata 12cR2 セットアップガイドOracle GoldenGate Veridata 12cR2 セットアップガイド
Oracle GoldenGate Veridata 12cR2 セットアップガイド
オラクルエンジニア通信
 
Talend Big Data Capabilities Overview
Talend Big Data Capabilities OverviewTalend Big Data Capabilities Overview
Talend Big Data Capabilities Overview
Rajan Kanitkar
 
ストリームデータ分散処理基盤Storm
ストリームデータ分散処理基盤Stormストリームデータ分散処理基盤Storm
ストリームデータ分散処理基盤Storm
NTT DATA OSS Professional Services
 
Oracle Cloud Infrastructure:2023年2月度サービス・アップデート
Oracle Cloud Infrastructure:2023年2月度サービス・アップデートOracle Cloud Infrastructure:2023年2月度サービス・アップデート
Oracle Cloud Infrastructure:2023年2月度サービス・アップデート
オラクルエンジニア通信
 
Taxonomy 101: Classifying DITA Tasks
Taxonomy 101: Classifying DITA TasksTaxonomy 101: Classifying DITA Tasks
Taxonomy 101: Classifying DITA Tasks
easyDITA
 
Drilling into Data with Apache Drill
Drilling into Data with Apache DrillDrilling into Data with Apache Drill
Drilling into Data with Apache Drill
DataWorks Summit
 
Oracle Integration Cloud 概要(20200507版)
Oracle Integration Cloud 概要(20200507版)Oracle Integration Cloud 概要(20200507版)
Oracle Integration Cloud 概要(20200507版)
オラクルエンジニア通信
 
Fast DDS Features & Tools
Fast DDS Features & ToolsFast DDS Features & Tools
Fast DDS Features & Tools
eProsima
 
Microservices Patterns with GoldenGate
Microservices Patterns with GoldenGateMicroservices Patterns with GoldenGate
Microservices Patterns with GoldenGate
Jeffrey T. Pollock
 
Oracle Database Vaultのご紹介
Oracle Database Vaultのご紹介Oracle Database Vaultのご紹介
Oracle Database Vaultのご紹介
オラクルエンジニア通信
 
オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)
オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)
オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)
オラクルエンジニア通信
 
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニングしばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
オラクルエンジニア通信
 
Oracle Cloud Infrastructure:2021年12月度サービス・アップデート
Oracle Cloud Infrastructure:2021年12月度サービス・アップデートOracle Cloud Infrastructure:2021年12月度サービス・アップデート
Oracle Cloud Infrastructure:2021年12月度サービス・アップデート
オラクルエンジニア通信
 
【旧版】Oracle Exadata Cloud Service:サービス概要のご紹介 [2021年7月版]
【旧版】Oracle Exadata Cloud Service:サービス概要のご紹介 [2021年7月版]【旧版】Oracle Exadata Cloud Service:サービス概要のご紹介 [2021年7月版]
【旧版】Oracle Exadata Cloud Service:サービス概要のご紹介 [2021年7月版]
オラクルエンジニア通信
 
Dremel: Interactive Analysis of Web-Scale Datasets
Dremel: Interactive Analysis of Web-Scale Datasets Dremel: Interactive Analysis of Web-Scale Datasets
Dremel: Interactive Analysis of Web-Scale Datasets
robertlz
 
DataGuard体験記
DataGuard体験記DataGuard体験記
DataGuard体験記
Shinnosuke Akita
 
Oracle Data Masking and Subsettingのご紹介
Oracle Data Masking and Subsettingのご紹介Oracle Data Masking and Subsettingのご紹介
Oracle Data Masking and Subsettingのご紹介
オラクルエンジニア通信
 
Apache Hive 紹介
Apache Hive 紹介Apache Hive 紹介
GoldenGateテクニカルセミナー4「テクニカルコンサルタントが語るOracle GoldenGate現場で使える極意」(2016/5/11)
GoldenGateテクニカルセミナー4「テクニカルコンサルタントが語るOracle GoldenGate現場で使える極意」(2016/5/11)GoldenGateテクニカルセミナー4「テクニカルコンサルタントが語るOracle GoldenGate現場で使える極意」(2016/5/11)
GoldenGateテクニカルセミナー4「テクニカルコンサルタントが語るOracle GoldenGate現場で使える極意」(2016/5/11)
オラクルエンジニア通信
 

What's hot (20)

Dremel: interactive analysis of web-scale datasets
Dremel: interactive analysis of web-scale datasetsDremel: interactive analysis of web-scale datasets
Dremel: interactive analysis of web-scale datasets
 
Oracle GoldenGate Veridata 12cR2 セットアップガイド
Oracle GoldenGate Veridata 12cR2 セットアップガイドOracle GoldenGate Veridata 12cR2 セットアップガイド
Oracle GoldenGate Veridata 12cR2 セットアップガイド
 
Talend Big Data Capabilities Overview
Talend Big Data Capabilities OverviewTalend Big Data Capabilities Overview
Talend Big Data Capabilities Overview
 
ストリームデータ分散処理基盤Storm
ストリームデータ分散処理基盤Stormストリームデータ分散処理基盤Storm
ストリームデータ分散処理基盤Storm
 
Oracle Cloud Infrastructure:2023年2月度サービス・アップデート
Oracle Cloud Infrastructure:2023年2月度サービス・アップデートOracle Cloud Infrastructure:2023年2月度サービス・アップデート
Oracle Cloud Infrastructure:2023年2月度サービス・アップデート
 
Taxonomy 101: Classifying DITA Tasks
Taxonomy 101: Classifying DITA TasksTaxonomy 101: Classifying DITA Tasks
Taxonomy 101: Classifying DITA Tasks
 
Drilling into Data with Apache Drill
Drilling into Data with Apache DrillDrilling into Data with Apache Drill
Drilling into Data with Apache Drill
 
Oracle Integration Cloud 概要(20200507版)
Oracle Integration Cloud 概要(20200507版)Oracle Integration Cloud 概要(20200507版)
Oracle Integration Cloud 概要(20200507版)
 
Fast DDS Features & Tools
Fast DDS Features & ToolsFast DDS Features & Tools
Fast DDS Features & Tools
 
Microservices Patterns with GoldenGate
Microservices Patterns with GoldenGateMicroservices Patterns with GoldenGate
Microservices Patterns with GoldenGate
 
Oracle Database Vaultのご紹介
Oracle Database Vaultのご紹介Oracle Database Vaultのご紹介
Oracle Database Vaultのご紹介
 
オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)
オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)
オンプレミスからクラウドへ:Oracle Databaseの移行ベストプラクティスを解説 (Oracle Cloudウェビナーシリーズ: 2021年2月18日)
 
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニングしばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
しばちょう先生による特別講義! RMANバックアップの運用と高速化チューニング
 
Oracle Cloud Infrastructure:2021年12月度サービス・アップデート
Oracle Cloud Infrastructure:2021年12月度サービス・アップデートOracle Cloud Infrastructure:2021年12月度サービス・アップデート
Oracle Cloud Infrastructure:2021年12月度サービス・アップデート
 
【旧版】Oracle Exadata Cloud Service:サービス概要のご紹介 [2021年7月版]
【旧版】Oracle Exadata Cloud Service:サービス概要のご紹介 [2021年7月版]【旧版】Oracle Exadata Cloud Service:サービス概要のご紹介 [2021年7月版]
【旧版】Oracle Exadata Cloud Service:サービス概要のご紹介 [2021年7月版]
 
Dremel: Interactive Analysis of Web-Scale Datasets
Dremel: Interactive Analysis of Web-Scale Datasets Dremel: Interactive Analysis of Web-Scale Datasets
Dremel: Interactive Analysis of Web-Scale Datasets
 
DataGuard体験記
DataGuard体験記DataGuard体験記
DataGuard体験記
 
Oracle Data Masking and Subsettingのご紹介
Oracle Data Masking and Subsettingのご紹介Oracle Data Masking and Subsettingのご紹介
Oracle Data Masking and Subsettingのご紹介
 
Apache Hive 紹介
Apache Hive 紹介Apache Hive 紹介
Apache Hive 紹介
 
GoldenGateテクニカルセミナー4「テクニカルコンサルタントが語るOracle GoldenGate現場で使える極意」(2016/5/11)
GoldenGateテクニカルセミナー4「テクニカルコンサルタントが語るOracle GoldenGate現場で使える極意」(2016/5/11)GoldenGateテクニカルセミナー4「テクニカルコンサルタントが語るOracle GoldenGate現場で使える極意」(2016/5/11)
GoldenGateテクニカルセミナー4「テクニカルコンサルタントが語るOracle GoldenGate現場で使える極意」(2016/5/11)
 

Viewers also liked

The DDS Tutorial - Part I
The DDS Tutorial - Part IThe DDS Tutorial - Part I
The DDS Tutorial - Part I
Angelo Corsaro
 
The Data Distribution Service Tutorial
The Data Distribution Service TutorialThe Data Distribution Service Tutorial
The Data Distribution Service Tutorial
Angelo Corsaro
 
OpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part IIOpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part II
Angelo Corsaro
 
Aforismi
AforismiAforismi
Aforismi
Angelo Corsaro
 
DDS In Action Part II
DDS In Action Part IIDDS In Action Part II
DDS In Action Part II
Angelo Corsaro
 
Stream Processing with DDS and CEP
Stream Processing with  DDS and CEPStream Processing with  DDS and CEP
Stream Processing with DDS and CEP
Angelo Corsaro
 
Vortex Tutorial Part II
Vortex Tutorial Part IIVortex Tutorial Part II
Vortex Tutorial Part II
Angelo Corsaro
 
Vortex Tutorial -- Part I
Vortex Tutorial -- Part IVortex Tutorial -- Part I
Vortex Tutorial -- Part I
Angelo Corsaro
 
Desktop, Embedded and Mobile Apps with Vortex Café
Desktop, Embedded and Mobile Apps with Vortex CaféDesktop, Embedded and Mobile Apps with Vortex Café
Desktop, Embedded and Mobile Apps with Vortex Café
Angelo Corsaro
 
Building Real-Time Web Applications with Vortex-Web
Building Real-Time Web Applications with Vortex-WebBuilding Real-Time Web Applications with Vortex-Web
Building Real-Time Web Applications with Vortex-Web
Angelo Corsaro
 
Connected Mobile and Web Applications with Vortex
Connected Mobile and Web Applications with VortexConnected Mobile and Web Applications with Vortex
Connected Mobile and Web Applications with Vortex
Angelo Corsaro
 
Getting Started with OpenSplice DDS Community Ed.
Getting Started with OpenSplice DDS Community Ed.Getting Started with OpenSplice DDS Community Ed.
Getting Started with OpenSplice DDS Community Ed.
Angelo Corsaro
 
DDS Tutorial -- Part I
DDS Tutorial -- Part IDDS Tutorial -- Part I
DDS Tutorial -- Part I
Angelo Corsaro
 
Advanced OpenSplice Programming - Part II
Advanced OpenSplice Programming - Part IIAdvanced OpenSplice Programming - Part II
Advanced OpenSplice Programming - Part II
Angelo Corsaro
 
Building Reactive Applications with DDS
Building Reactive Applications with DDSBuilding Reactive Applications with DDS
Building Reactive Applications with DDS
Angelo Corsaro
 
OpenSplice DDS v6
OpenSplice DDS v6OpenSplice DDS v6
OpenSplice DDS v6
Angelo Corsaro
 
Getting Started with Vortex
Getting Started with VortexGetting Started with Vortex
Getting Started with Vortex
Angelo Corsaro
 
Introducing Vortex Lite
Introducing Vortex LiteIntroducing Vortex Lite
Introducing Vortex Lite
Angelo Corsaro
 
The Data Distribution Service Tutorial
The Data Distribution Service TutorialThe Data Distribution Service Tutorial
The Data Distribution Service Tutorial
Angelo Corsaro
 
Building and Scaling Internet of Things Applications with Vortex Cloud
Building and Scaling Internet of Things Applications with Vortex CloudBuilding and Scaling Internet of Things Applications with Vortex Cloud
Building and Scaling Internet of Things Applications with Vortex Cloud
Angelo Corsaro
 

Viewers also liked (20)

The DDS Tutorial - Part I
The DDS Tutorial - Part IThe DDS Tutorial - Part I
The DDS Tutorial - Part I
 
The Data Distribution Service Tutorial
The Data Distribution Service TutorialThe Data Distribution Service Tutorial
The Data Distribution Service Tutorial
 
OpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part IIOpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part II
 
Aforismi
AforismiAforismi
Aforismi
 
DDS In Action Part II
DDS In Action Part IIDDS In Action Part II
DDS In Action Part II
 
Stream Processing with DDS and CEP
Stream Processing with  DDS and CEPStream Processing with  DDS and CEP
Stream Processing with DDS and CEP
 
Vortex Tutorial Part II
Vortex Tutorial Part IIVortex Tutorial Part II
Vortex Tutorial Part II
 
Vortex Tutorial -- Part I
Vortex Tutorial -- Part IVortex Tutorial -- Part I
Vortex Tutorial -- Part I
 
Desktop, Embedded and Mobile Apps with Vortex Café
Desktop, Embedded and Mobile Apps with Vortex CaféDesktop, Embedded and Mobile Apps with Vortex Café
Desktop, Embedded and Mobile Apps with Vortex Café
 
Building Real-Time Web Applications with Vortex-Web
Building Real-Time Web Applications with Vortex-WebBuilding Real-Time Web Applications with Vortex-Web
Building Real-Time Web Applications with Vortex-Web
 
Connected Mobile and Web Applications with Vortex
Connected Mobile and Web Applications with VortexConnected Mobile and Web Applications with Vortex
Connected Mobile and Web Applications with Vortex
 
Getting Started with OpenSplice DDS Community Ed.
Getting Started with OpenSplice DDS Community Ed.Getting Started with OpenSplice DDS Community Ed.
Getting Started with OpenSplice DDS Community Ed.
 
DDS Tutorial -- Part I
DDS Tutorial -- Part IDDS Tutorial -- Part I
DDS Tutorial -- Part I
 
Advanced OpenSplice Programming - Part II
Advanced OpenSplice Programming - Part IIAdvanced OpenSplice Programming - Part II
Advanced OpenSplice Programming - Part II
 
Building Reactive Applications with DDS
Building Reactive Applications with DDSBuilding Reactive Applications with DDS
Building Reactive Applications with DDS
 
OpenSplice DDS v6
OpenSplice DDS v6OpenSplice DDS v6
OpenSplice DDS v6
 
Getting Started with Vortex
Getting Started with VortexGetting Started with Vortex
Getting Started with Vortex
 
Introducing Vortex Lite
Introducing Vortex LiteIntroducing Vortex Lite
Introducing Vortex Lite
 
The Data Distribution Service Tutorial
The Data Distribution Service TutorialThe Data Distribution Service Tutorial
The Data Distribution Service Tutorial
 
Building and Scaling Internet of Things Applications with Vortex Cloud
Building and Scaling Internet of Things Applications with Vortex CloudBuilding and Scaling Internet of Things Applications with Vortex Cloud
Building and Scaling Internet of Things Applications with Vortex Cloud
 

Similar to The DDS Tutorial Part II

DDS-PSM-Cxx and simd-cxx
DDS-PSM-Cxx and simd-cxxDDS-PSM-Cxx and simd-cxx
DDS-PSM-Cxx and simd-cxx
Angelo Corsaro
 
Beyond messaging
Beyond messagingBeyond messaging
Beyond messaging
Angelo Corsaro
 
ISO C++ DDS PSM
ISO C++ DDS PSMISO C++ DDS PSM
ISO C++ DDS PSM
Angelo Corsaro
 
Open splicedds espercep-webinar
Open splicedds espercep-webinarOpen splicedds espercep-webinar
Open splicedds espercep-webinar
Tomasz Waszczyk
 
Distributed Systems: How to connect your real-time applications
Distributed Systems: How to connect your real-time applicationsDistributed Systems: How to connect your real-time applications
Distributed Systems: How to connect your real-time applications
Jaime Martin Losa
 
DDS tutorial with connector
DDS tutorial with connectorDDS tutorial with connector
DDS tutorial with connector
Javier Povedano
 
DDS: The IoT Data Sharing Standard
DDS: The IoT Data Sharing StandardDDS: The IoT Data Sharing Standard
DDS: The IoT Data Sharing Standard
Angelo Corsaro
 
Real Time Java DDS
Real Time Java DDSReal Time Java DDS
Real Time Java DDS
kerush
 
PrismTech Vortex Tutorial Part 1
PrismTech Vortex Tutorial Part 1PrismTech Vortex Tutorial Part 1
PrismTech Vortex Tutorial Part 1
ADLINK Technology IoT
 
Reactive Data Centric Architectures with DDS
Reactive Data Centric Architectures with DDSReactive Data Centric Architectures with DDS
Reactive Data Centric Architectures with DDS
Angelo Corsaro
 
Distributed Algorithms with DDS
Distributed Algorithms with DDSDistributed Algorithms with DDS
Distributed Algorithms with DDS
Angelo Corsaro
 
Access control in decentralized online social networks applying a policy hidi...
Access control in decentralized online social networks applying a policy hidi...Access control in decentralized online social networks applying a policy hidi...
Access control in decentralized online social networks applying a policy hidi...
IGEEKS TECHNOLOGIES
 
Learning Series: RamSoft Gateway Router -'Yes we can do that'
Learning Series: RamSoft Gateway Router -'Yes we can do that'Learning Series: RamSoft Gateway Router -'Yes we can do that'
Learning Series: RamSoft Gateway Router -'Yes we can do that'
Ryan Furlough, BSCPE CPAS
 
DDS Made Simple
DDS Made SimpleDDS Made Simple
DDS Made Simple
Angelo Corsaro
 
DDS QoS Unleashed
DDS QoS UnleashedDDS QoS Unleashed
DDS QoS Unleashed
Angelo Corsaro
 
Deep Dive into the OPC UA / DDS Gateway Specification
Deep Dive into the OPC UA / DDS Gateway SpecificationDeep Dive into the OPC UA / DDS Gateway Specification
Deep Dive into the OPC UA / DDS Gateway Specification
Gerardo Pardo-Castellote
 
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin MeetingDDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
Jaime Martin Losa
 
Getting Started with OpenSplice and Esper
Getting Started with OpenSplice and EsperGetting Started with OpenSplice and Esper
Getting Started with OpenSplice and Esper
Angelo Corsaro
 
Fast RTPS Workshop at FIWARE Summit 2018
Fast RTPS Workshop at FIWARE Summit 2018Fast RTPS Workshop at FIWARE Summit 2018
Fast RTPS Workshop at FIWARE Summit 2018
Jaime Martin Losa
 
Architecting IoT Systems with Vortex
Architecting IoT Systems with VortexArchitecting IoT Systems with Vortex
Architecting IoT Systems with Vortex
Angelo Corsaro
 

Similar to The DDS Tutorial Part II (20)

DDS-PSM-Cxx and simd-cxx
DDS-PSM-Cxx and simd-cxxDDS-PSM-Cxx and simd-cxx
DDS-PSM-Cxx and simd-cxx
 
Beyond messaging
Beyond messagingBeyond messaging
Beyond messaging
 
ISO C++ DDS PSM
ISO C++ DDS PSMISO C++ DDS PSM
ISO C++ DDS PSM
 
Open splicedds espercep-webinar
Open splicedds espercep-webinarOpen splicedds espercep-webinar
Open splicedds espercep-webinar
 
Distributed Systems: How to connect your real-time applications
Distributed Systems: How to connect your real-time applicationsDistributed Systems: How to connect your real-time applications
Distributed Systems: How to connect your real-time applications
 
DDS tutorial with connector
DDS tutorial with connectorDDS tutorial with connector
DDS tutorial with connector
 
DDS: The IoT Data Sharing Standard
DDS: The IoT Data Sharing StandardDDS: The IoT Data Sharing Standard
DDS: The IoT Data Sharing Standard
 
Real Time Java DDS
Real Time Java DDSReal Time Java DDS
Real Time Java DDS
 
PrismTech Vortex Tutorial Part 1
PrismTech Vortex Tutorial Part 1PrismTech Vortex Tutorial Part 1
PrismTech Vortex Tutorial Part 1
 
Reactive Data Centric Architectures with DDS
Reactive Data Centric Architectures with DDSReactive Data Centric Architectures with DDS
Reactive Data Centric Architectures with DDS
 
Distributed Algorithms with DDS
Distributed Algorithms with DDSDistributed Algorithms with DDS
Distributed Algorithms with DDS
 
Access control in decentralized online social networks applying a policy hidi...
Access control in decentralized online social networks applying a policy hidi...Access control in decentralized online social networks applying a policy hidi...
Access control in decentralized online social networks applying a policy hidi...
 
Learning Series: RamSoft Gateway Router -'Yes we can do that'
Learning Series: RamSoft Gateway Router -'Yes we can do that'Learning Series: RamSoft Gateway Router -'Yes we can do that'
Learning Series: RamSoft Gateway Router -'Yes we can do that'
 
DDS Made Simple
DDS Made SimpleDDS Made Simple
DDS Made Simple
 
DDS QoS Unleashed
DDS QoS UnleashedDDS QoS Unleashed
DDS QoS Unleashed
 
Deep Dive into the OPC UA / DDS Gateway Specification
Deep Dive into the OPC UA / DDS Gateway SpecificationDeep Dive into the OPC UA / DDS Gateway Specification
Deep Dive into the OPC UA / DDS Gateway Specification
 
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin MeetingDDS Advanced Tutorial - OMG June 2013 Berlin Meeting
DDS Advanced Tutorial - OMG June 2013 Berlin Meeting
 
Getting Started with OpenSplice and Esper
Getting Started with OpenSplice and EsperGetting Started with OpenSplice and Esper
Getting Started with OpenSplice and Esper
 
Fast RTPS Workshop at FIWARE Summit 2018
Fast RTPS Workshop at FIWARE Summit 2018Fast RTPS Workshop at FIWARE Summit 2018
Fast RTPS Workshop at FIWARE Summit 2018
 
Architecting IoT Systems with Vortex
Architecting IoT Systems with VortexArchitecting IoT Systems with Vortex
Architecting IoT Systems with Vortex
 

More from Angelo Corsaro

Zenoh: The Genesis
Zenoh: The GenesisZenoh: The Genesis
Zenoh: The Genesis
Angelo Corsaro
 
zenoh: The Edge Data Fabric
zenoh: The Edge Data Fabriczenoh: The Edge Data Fabric
zenoh: The Edge Data Fabric
Angelo Corsaro
 
Zenoh Tutorial
Zenoh TutorialZenoh Tutorial
Zenoh Tutorial
Angelo Corsaro
 
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair MonetisationData Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
Angelo Corsaro
 
zenoh: zero overhead pub/sub store/query compute
zenoh: zero overhead pub/sub store/query computezenoh: zero overhead pub/sub store/query compute
zenoh: zero overhead pub/sub store/query compute
Angelo Corsaro
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocol
Angelo Corsaro
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocol
Angelo Corsaro
 
Breaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Breaking the Edge -- A Journey Through Cloud, Edge and Fog ComputingBreaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Breaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Angelo Corsaro
 
Eastern Sicily
Eastern SicilyEastern Sicily
Eastern Sicily
Angelo Corsaro
 
fog05: The Fog Computing Infrastructure
fog05: The Fog Computing Infrastructurefog05: The Fog Computing Infrastructure
fog05: The Fog Computing Infrastructure
Angelo Corsaro
 
Cyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT AgeCyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT Age
Angelo Corsaro
 
fog05: The Fog Computing Platform
fog05: The Fog Computing Platformfog05: The Fog Computing Platform
fog05: The Fog Computing Platform
Angelo Corsaro
 
Programming in Scala - Lecture Four
Programming in Scala - Lecture FourProgramming in Scala - Lecture Four
Programming in Scala - Lecture Four
Angelo Corsaro
 
Programming in Scala - Lecture Three
Programming in Scala - Lecture ThreeProgramming in Scala - Lecture Three
Programming in Scala - Lecture Three
Angelo Corsaro
 
Programming in Scala - Lecture Two
Programming in Scala - Lecture TwoProgramming in Scala - Lecture Two
Programming in Scala - Lecture Two
Angelo Corsaro
 
Programming in Scala - Lecture One
Programming in Scala - Lecture OneProgramming in Scala - Lecture One
Programming in Scala - Lecture One
Angelo Corsaro
 
Data Sharing in Extremely Resource Constrained Envionrments
Data Sharing in Extremely Resource Constrained EnvionrmentsData Sharing in Extremely Resource Constrained Envionrments
Data Sharing in Extremely Resource Constrained Envionrments
Angelo Corsaro
 
The DDS Security Standard
The DDS Security StandardThe DDS Security Standard
The DDS Security Standard
Angelo Corsaro
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution Service
Angelo Corsaro
 
RUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming RuminationsRUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming Ruminations
Angelo Corsaro
 

More from Angelo Corsaro (20)

Zenoh: The Genesis
Zenoh: The GenesisZenoh: The Genesis
Zenoh: The Genesis
 
zenoh: The Edge Data Fabric
zenoh: The Edge Data Fabriczenoh: The Edge Data Fabric
zenoh: The Edge Data Fabric
 
Zenoh Tutorial
Zenoh TutorialZenoh Tutorial
Zenoh Tutorial
 
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair MonetisationData Decentralisation: Efficiency, Privacy and Fair Monetisation
Data Decentralisation: Efficiency, Privacy and Fair Monetisation
 
zenoh: zero overhead pub/sub store/query compute
zenoh: zero overhead pub/sub store/query computezenoh: zero overhead pub/sub store/query compute
zenoh: zero overhead pub/sub store/query compute
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocol
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocol
 
Breaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Breaking the Edge -- A Journey Through Cloud, Edge and Fog ComputingBreaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
Breaking the Edge -- A Journey Through Cloud, Edge and Fog Computing
 
Eastern Sicily
Eastern SicilyEastern Sicily
Eastern Sicily
 
fog05: The Fog Computing Infrastructure
fog05: The Fog Computing Infrastructurefog05: The Fog Computing Infrastructure
fog05: The Fog Computing Infrastructure
 
Cyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT AgeCyclone DDS: Sharing Data in the IoT Age
Cyclone DDS: Sharing Data in the IoT Age
 
fog05: The Fog Computing Platform
fog05: The Fog Computing Platformfog05: The Fog Computing Platform
fog05: The Fog Computing Platform
 
Programming in Scala - Lecture Four
Programming in Scala - Lecture FourProgramming in Scala - Lecture Four
Programming in Scala - Lecture Four
 
Programming in Scala - Lecture Three
Programming in Scala - Lecture ThreeProgramming in Scala - Lecture Three
Programming in Scala - Lecture Three
 
Programming in Scala - Lecture Two
Programming in Scala - Lecture TwoProgramming in Scala - Lecture Two
Programming in Scala - Lecture Two
 
Programming in Scala - Lecture One
Programming in Scala - Lecture OneProgramming in Scala - Lecture One
Programming in Scala - Lecture One
 
Data Sharing in Extremely Resource Constrained Envionrments
Data Sharing in Extremely Resource Constrained EnvionrmentsData Sharing in Extremely Resource Constrained Envionrments
Data Sharing in Extremely Resource Constrained Envionrments
 
The DDS Security Standard
The DDS Security StandardThe DDS Security Standard
The DDS Security Standard
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution Service
 
RUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming RuminationsRUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming Ruminations
 

Recently uploaded

Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
Edge AI and Vision Alliance
 
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
Data Hops
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
c5vrf27qcz
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Neo4j
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
Neo4j
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
Neo4j
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
DianaGray10
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 

Recently uploaded (20)

Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
 
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3FREE A4 Cyber Security Awareness  Posters-Social Engineering part 3
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Y-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PPY-Combinator seed pitch deck template PP
Y-Combinator seed pitch deck template PP
 
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansBiomedical Knowledge Graphs for Data Scientists and Bioinformaticians
Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 

The DDS Tutorial Part II

  • 1. OpenSplice DDS Delivering Performance, Openness, and Freedom The DDS Tutorial Angelo Corsaro, Ph.D. Chief Technology Officer OMG DDS SIG Co-Chair angelo.corsaro@prismtech.com ::Part II 1
  • 2. Tutorial Scope Scope & Goals ‣ The Tutorial will cover the DCPS layer of DDS Application ‣ It will give you enough details and examples Object/Relational Mapping to make sure that you can get started Data Local Reconstruction Layer (DLRL) writing DDS applications Content Ownership Durability Subscription Software ‣ OpenSplice DDS Minimum Profile Data Centric Publish/Subscribe (DCPS) ‣ http://www.opensplice.org Real-Time Publish/Subscribe Protocol ‣ SIMple Dds (SIMD) DDS Interoperability Wire Protocol ‣http://code.google.com/p/simd-cxx UDP/IP Prerequisite ‣ Basic C++ understanding © 2010, PrismTech. All Rights Reserved 2
  • 3. What You’ve Learned on Part I ‣Defining Topics and Topic Types ‣Scoping Information with Partitions ‣Writing Data ‣Reading (Taking) data with Waitsets and Listeners ‣Writing an example that demonstrate all of the above © 2010, PrismTech. All Rights Reserved 3
  • 4. What we’ll Cover Today ‣Content Filtered Topics and Queries ‣QoS and the Request vs. Offered Model ‣Setting QoS on DDS Entities ‣Tuning OpenSplice DDS Configuration © 2010, PrismTech. All Rights Reserved 4
  • 5. OpenSplice DDS Delivering Performance, Openness, and Freedom Your will learn: - What Filters and Queries are - The available SQL92 subset - Programming Filters and Queries Filters and Queries 5
  • 6. DDS Filters & Queries ‣ DDS provides means for filtering data using an application specified condition expression ‣ The two mechanism provided in order to filter data are: ‣ ContentFilteredTopics ‣ QueryCondition ‣ Both working in conjunction with a DataReader © 2010, PrismTech. All Rights Reserved 6
  • 7. ContentFilteredTopic ‣ A ContentFilteredTopic can be seen as a decorator of a user defined topic defining a specific filter over the data published for the given topic ‣ As a result, a ContentFilteredTopic always exist in conjunction with its related Topic related topic ‣ A DataReader created with a specific ContentFilteredTopic will only receive the data that matches the filter condition ‣ ContentFilteredTopic can be thought of as Continuous Queries © 2010, PrismTech. All Rights Reserved 7
  • 8. QueryCondition ‣ A QueryCondition can be created over an existing DataReader in order to select, among received data, only the subset matching the condition associated with the QueryCondition ‣ QueryCondition are created for a specific DataReader and used as an argument of the DataReader::read_w_condition method © 2010, PrismTech. All Rights Reserved 8
  • 9. Filters & Queries Grammar Condition::= Predicate | Condition ‘AND’ Condition | Condition ‘OR’ Condition | ‘NOT’ Condition | ‘(’ Condition ‘)’ Predicate::= ComparisonPredicate | BetweenPredicate ComparisonPredicate::= FIELDNAME RelOp Parameter | Parameter RelOp FIELDNAME BetweenPredicate::= FIELDNAME ‘BETWEEN’ Range | FIELDNAME ‘NOT BETWEEN’ Range RelOp::= ‘=’ | ‘>’ | ‘>=’ | ‘<’ | ‘<=’ | ‘<>’ | like Range::= Parameter ‘AND’ Parameter Parameter::= INTEGERVALUE | FLOATVALUE | STRING | ENUMERATEDVALUE | PARAMETER where PARAMETER has the for %n (with n in 0..100) © 2010, PrismTech. All Rights Reserved 9
  • 10. ContentFilteredTopics in SIMD template <typename T> class dds::ContentFilteredTopic : public dds::TopicDescription { public: ContentFilteredTopic(const std::string& name, const dds::Topic<T>& t, const std::string& filter, const std::vector<std::string>& params); virtual ~ContentFilteredTopic(); public: std::string get_filter_expression() const; std::vector<std::string> get_expression_parameters() const; void set_expression_parameters(const std::vector<std::string>& params); dds::Topic<T> get_related_topic() const; virtual std::string get_name() const; virtual std::string get_type_name() const; virtual dds::DomainParticipant get_participant() const; TopicQos get_qos() const; void set_qos(const TopicQos& qos); }; © 2010, PrismTech. All Rights Reserved 10
  • 11. Using ContentFilteredTopics enum TemperatureScale { CELSIUS, // Create the "TempSensor" Topic FAHRENHEIT, dds::Topic<TempSensorType> tsTopic("TempSensor"); KELVIN }; // Create the filter parameters std::vector<std::string> params(2); struct TempSensorType { short id; params[0] = "30"; float temp; params[1] = "0.6"; float hum; TemperatureScale scale; // Create the ContentFilteredTopic }; dds::ContentFilteredTopic<TempSensorType> #pragma keylist TempSensorType id cfTsTopic("TempSensor-1", tsTopic, "(temp < %0) AND (hum < %1)", params); // Create the DataReader with for the ContentFilteredTopic dds::DataReader<TempSensorType> dr(cfTsTopic); © 2010, PrismTech. All Rights Reserved 11
  • 12. QueryCondition in SIMD template <typename T> class DataReader { public: // [...] Other DataReader methods QueryCondition create_querycondition(const std::string& expression, const std::vector& params); QueryCondition create_querycondition(const SampleStateMask& samples_state, const ViewStateMask& views_state, const InstanceStateMask& instances_state, const std::string& expression, const std::vector& params); ReturnCode_t read_w_condition(TSeq& samples, SampleInfoSeq& infos, const QueryCondition& cond); ReturnCode_t read_w_condition(TSeq& samples, SampleInfoSeq& infos, const QueryCondition& cond, long max_samples); ReturnCode_t take_w_condition(TSeq& samples, SampleInfoSeq& infos, const QueryCondition& cond); ReturnCode_t take_w_condition(TSeq& samples, SampleInfoSeq& infos, const QueryCondition& cond, long max_samples); } © 2010, PrismTech. All Rights Reserved 12
  • 13. Using QueryConditions dds::Topic<TempSensorType> tsTopic("TempSensor"); dds::DataReader<TempSensorType> dr(tsTopic); std::vector<std::string> params(2); params[0] = "30"; params[1] = "0.6"; // Create Query Condition dds::QueryCondition cond = dr.create_querycondition("(temp < %0) AND (hum < %1)", params); TempSensorTypeSeq data; SampleInfoSeq info; // Read with Condition dr.read_w_condition(data, info, cond); © 2010, PrismTech. All Rights Reserved 13
  • 14. Filters vs Queries QueryCondition (temp < 30) AND (hum < 0.6) DataReader DataReader ReaderCache 1 26 0.4 C ReaderCache 1 28 0.5 C (temp < 30) AND (hum < 0.6) 1 31 0.5 C ContentFilteredTopic 1 30 0.7 C 1 29 0.5 C © 2010, PrismTech. All Rights Reserved 14
  • 15. Filters vs Queries QueryCondition (temp < 30) AND (hum < 0.6) DataReader DataReader 1 26 0.4 C 1 26 0.4 C 1 28 0.5 C 1 28 0.5 C 1 31 0.5 C 1 29 0.5 C 1 30 0.7 C 1 29 0.5 C ReaderCache ReaderCache (temp < 30) AND (hum < 0.6) ContentFilteredTopic © 2010, PrismTech. All Rights Reserved 15
  • 16. Filters vs Queries 1 26 0.4 C read() read_w_condition() 1 28 0.5 C QueryCondition 1 29 0.5 C (temp < 30) AND (hum < 0.6) DataReader DataReader 1 26 0.4 C 1 26 0.4 C 1 28 0.5 C 1 28 0.5 C 1 31 0.5 C 1 29 0.5 C 1 30 0.7 C 1 29 0.5 C ReaderCache ReaderCache (temp < 30) AND (hum < 0.6) ContentFilteredTopic © 2010, PrismTech. All Rights Reserved 16
  • 17. OpenSplice DDS Delivering Performance, Openness, and Freedom Your will learn: - What can you control with QoS - Request vs. Offered in DDS - QoS Patterns Quality of Service (QoS) 17
  • 18. Anatomy of a DDS Application Topic Topic Topic Samples Samples Instances Samples Instances Instances 1 21 62 1 21 62 1 22 62 1 22 62 1 23 63 1 23 63 DataReader DataReader 1 21 0.6 C 2 20 61 2 19 60 1 22 0.6 C 1 23 0.7 C DataReader DataReader 2 20 61 2 20 0.6 F 2 19 60 DataWriter DataWriter DataReader DataReader 3 25 70 3 25 71 25 2 19 0.6 F 3 25 74 3 26 77 3 26 77 DataWriter DataWriter struct TempSensor { 3 25 70 3 25 71 25 3 25 74 int tID; 3 75 0.1 K 3 8 0.1 K 3 95 0.2 K float temp; float humidity; TemperatureScale scale; }; #pragma keylist TempSensor tID © 2010, PrismTech. All Rights Reserved 18
  • 19. Anatomy of a DDS Application Topic Topic Topic Samples Samples Instances Samples Instances Instances 1 21 62 1 21 62 1 22 62 1 22 62 1 23 63 1 23 63 DataReader DataReader 1 21 0.6 C 2 20 61 2 19 60 1 22 0.6 C 1 23 0.7 C DataReader DataReader 2 20 61 2 20 0.6 F 2 19 60 DataWriter DataWriter DataReader DataReader 3 25 70 3 25 71 25 2 19 0.6 F 3 25 74 3 26 77 3 26 77 DataWriter DataWriter struct TempSensor { 3 25 70 3 25 71 25 3 25 74 int tID; 3 75 0.1 K 3 8 0.1 K 3 95 0.2 K float temp; float humidity; Arrows TemperatureScale scale; }; show #pragma keylist TempSensor tID structural relationship s, not data- Subscriber Publisher flows Partition © 2010, PrismTech. All Rights Reserved 19
  • 20. Anatomy of a DDS Application Topic Topic Topic Samples Samples Instances Samples Instances Instances 1 21 62 1 21 62 1 22 62 1 22 62 1 23 63 1 23 63 DataReader DataReader 1 21 0.6 C 2 20 61 2 19 60 1 22 0.6 C 1 23 0.7 C DataReader DataReader 2 20 61 2 20 0.6 F 2 19 60 DataWriter DataWriter DataReader DataReader 3 25 70 3 25 71 25 2 19 0.6 F 3 25 74 3 26 77 3 26 77 DataWriter DataWriter struct TempSensor { 3 25 70 3 25 71 25 3 25 74 int tID; 3 75 0.1 K 3 8 0.1 K 3 95 0.2 K float temp; float humidity; Arrows TemperatureScale scale; }; show #pragma keylist TempSensor tID structural relationship s, not data- Subscriber Publisher flows Partition Domain Participant Domain © 2010, PrismTech. All Rights Reserved 20
  • 21. QoS Model ‣ QoS-Policies are used to control relevant properties of OpenSplice DDS entities, Type Matching QoS matching such as: QoS QoS QoS QoS QoS QoS QoS ‣ Temporal Properties Topic ‣ Priority Publisher Name Subscriber ... DataWriter writes Type reads DataReader ... ‣ Durability ... ‣ Availability DomainParticipant DataWriter writes Type reads DataReader DomainParticipant ‣ ... Topic Name ‣ Some QoS-Policies are matched based on QoS QoS QoS a Request vs. Offered Model thus QoS- enforcement ‣ Publications and Subscriptions match only if the declared vs. requested QoS are compatible ‣ e.g., it is not possible to match a publisher which delivers data unreliably with a subscriber which requires reliability © 2010, PrismTech. All Rights Reserved 21
  • 22. QoS Policies QoS Policy Applicability RxO Modifiable Type Matching QoS matching DURABILITY T, DR, DW Y N Data Availability QoS QoS QoS QoS QoS QoS QoS DURABILITY SERVICE T, DW N N Topic Name Publisher Subscriber LIFESPAN T, DW N/A Y ... DataWriter writes Type reads DataReader ... T, DR, DW N N ... HISTORY DomainParticipant DataWriter writes Type reads DataReader DomainParticipant PRESENTATION P, S Y N Data Delivery Name Topic RELIABILITY T, DR, DW Y N PARTITION P, S N Y QoS QoS QoS DESTINATION ORDER T, DR, DW Y N OWNERSHIP T, DR, DW Y N OWNERSHIP DW N/A Y STRENGTH DEADLINE T, DR, DW Y Y Data Timeliness ‣ Rich set of QoS allow to configure LATENCY BUDGET T, DR, DW Y Y several different aspects of data TRANSPORT PRIORITY T, DW N/A Y availability, delivery and timeliness TIME BASED FILTER DR N/A Y Resources ‣ QoS can be used to control and RESOURCE LIMITS T, DR, DW N N optimize network as well as DP, DR, DW N Y computing resource USER_DATA Configuration TOPIC_DATA T N Y GROUP_DATA P, S N Y © 2010, PrismTech. All Rights Reserved 22
  • 23. OpenSplice DDS Delivering Performance, Openness, and Freedom Controlling Reliability 23
  • 24. Reliability The RELIABILITY QoS indicate the level of guarantee offered by the DDS in delivering data to subscribers. Possible variants are: QoS Policy Applicability RxO Modifiable ‣ Reliable. In steady-state the RELIABILITY T, DR, DW Y N middleware guarantees that all samples in the DataWriter history will QoS matching eventually be delivered to all the QoS QoS QoS DataReader QoS Topic QoS ‣ Best Effort. Indicates that it is DataWriter writes Type Name reads DataReader acceptable to not retry propagation of Publisher ... Subscriber ... ... any samples DataWriter writes Type reads DataReader Name Topic QoS QoS QoS QoS matching © 2010, PrismTech. All Rights Reserved 24
  • 25. History ‣ The History QoS Controls the number of samples-per-instance that will be stored by the middleware on behalf of a Reader ‣ Keep Last K. The History QoS can be set so to always QoS matching have the latest K samples QoS QoS QoS ‣ Keep All. The History QoS can be set so keep all QoS Topic Name QoS samples produced by the writer and not yet taken, DataWriter writes Type reads DataReader until resource limits are not reached Publisher ... ... ... Subscriber DataWriter writes Type reads DataReader DataReader DataReader Topic Name QoS QoS QoS 1 1 1 1 1 2 1 3 1 4 1 5 QoS matching 2 1 2 1 2 2 2 3 2 4 2 5 3 1 3 1 3 2 3 3 3 4 3 5 QoS Policy Applicability RxO Modifiable HISTORY T, DR, DW N N Topic Topic History Depth = 1 (DDS Default) History Depth = 5 © 2010, PrismTech. All Rights Reserved 25
  • 26. OpenSplice DDS Delivering Performance, Openness, and Freedom Topic Used in next section. struct Counter { }; int cID; int count; #pragma keylist Counter cID History in Action 26
  • 27. History in Action 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 Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the DataWriter to matched DataReaders © 2010, PrismTech. All Rights Reserved 27
  • 28. History in Action 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 © 2010, PrismTech. All Rights Reserved 28
  • 29. History in Action 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 © 2010, PrismTech. All Rights Reserved 29
  • 30. History in Action History Depth = 2 History Depth = 1 (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 Note: The Reliability QoS controls wether data is sent reliably, or best-effort, from the DataWriter to matched DataReaders © 2010, PrismTech. All Rights Reserved 30
  • 31. History in Action History Depth = 2 History Depth = 1 (DDS Default) Network 1 1 1 2 1 2 DataReader 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 © 2010, PrismTech. All Rights Reserved 31
  • 32. History in Action History Depth = 2 History Depth = 1 (DDS Default) Network 1 1 1 2 1 2 DataReader 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 © 2010, PrismTech. All Rights Reserved 32
  • 33. Putting it All Together 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 ‣ 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 © 2010, PrismTech. All Rights Reserved 33
  • 34. OpenSplice DDS Delivering Performance, Openness, and Freedom Controlling Real-Time Properties 34
  • 35. Deadline You can’t be later than... The DEADLINE QoS policy allows to define the maximum inter-arrival time between data samples QoS Policy Applicability RxO Modifiable QoS matching DEADLINE T, DR, DW Y Y QoS QoS QoS ‣ DataWriter indicates that the application QoS Topic Name QoS commits to write a new value at least once DataWriter writes Type reads DataReader Publisher ... Subscriber every deadline period ... ... ‣ writes Type reads DataReader DataReaders are notified by the DDS when DataWriter Name the DEADLINE QoS contract is violated Topic QoS QoS QoS QoS matching Publisher Subscriber Deadline Deadline Deadline Deadline Deadline Deadline Violation © 2010, PrismTech. All Rights Reserved 35
  • 36. Latency Budget I need to get there in at most... The LATENCY_BUDGET QoS policy specifies the maximum acceptable delay from the time the data is written until the data is inserted in the receiver's application-cache QoS Policy Applicability RxO Modifiable LATENCY T, DR, DW Y Y BUDGET ‣ The default value of the duration is zero indicating that the delay should be minimized QoS matching ‣ This policy is a hint to the DDS, not something that must be QoS QoS QoS monitored or enforced. QoS Topic QoS Name DataWriter writes Type reads DataReader Publisher ... Subscriber ... ... DataWriter writes Type reads DataReader Name TBuff Latency Budget = Latency = TBuff +T1+T2+T3 Topic QoS QoS QoS QoS matching T3 T1 T2 © 2010, PrismTech. All Rights Reserved 36
  • 37. Transport Priority VIP Data, stay clear! QoS Policy Applicability RxO Modifiable TRANSPORT T, DW - Y QoS matching PRIORITY QoS QoS QoS QoS Topic QoS Name The TRANSPORT_PRIORITY QoS policy DataWriter writes Type reads DataReader is a hint to the infrastructure as to how Publisher ... ... ... Subscriber to set the priority of the underlying DataWriter writes Type reads DataReader transport used to send the data. Name Topic QoS QoS QoS QoS matching © 2010, PrismTech. All Rights Reserved 37
  • 38. Putting it all Together 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)) © 2010, PrismTech. All Rights Reserved 38
  • 39. OpenSplice DDS Delivering Performance, Openness, and Freedom Controlling the Consistency Model 39
  • 40. Durability 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 DURABILITY T, DW N N ‣ Volatile. No need to keep data instances SERVICE for late joining data readers ‣ Transient Local. Data instance availability QoS matching QoS QoS QoS for late joining data reader is tied to the data writer availability QoS Topic Name QoS ‣ Transient. Data instance availability Publisher ... DataWriter writes Type reads DataReader Subscriber ... ... outlives the data writer ‣ Persistent. Data instance availability DataWriter writes Type reads DataReader Name Topic outlives system restarts QoS QoS QoS QoS matching The DURABILITY_SERVICE QoS provide control over configuration of the service that implements the transient and persistent durability features © 2010, PrismTech. All Rights Reserved 40
  • 41. Eventual Consistency & R/W Caches DataReader 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 Under an Eventual Consistency Model, DDS guarantees that all matched Reader Caches will eventually be identical of the respective Writer Cache © 2010, PrismTech. All Rights Reserved 41
  • 42. QoS Impacting the Consistency Model The DDS Consistency Model is a property that can be associated to Topics or further refined by Reader/Writers. The property is controlled by the following QoS Policies: ‣ DURABILITY ‣ VOLATILE | TRANSIENT_LOCAL | TRANSIENT | PERSISTENT ‣ LIFESPAN ‣ RELIABILITY ‣ RELIABLE | BEST_EFFORT ‣ DESTINATION ORDER ‣ SOURCE_TIMESTAMP | DESTINATION_TIMESTAMP QoS Policy Applicability RxO Modifiable DURABILITY T, DR, DW Y N LIFESPAN T, DW - Y RELIABILITY T, DR, DW Y N DESTINATION ORDER T, DR, DW Y N © 2010, PrismTech. All Rights Reserved 42
  • 43. QoS Impacting the Consistency Model 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 © 2010, PrismTech. All Rights Reserved 43
  • 44. Eventual Consistency @ Work 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 © 2010, PrismTech. All Rights Reserved 44
  • 45. Eventual Consistency @ Work 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 © 2010, PrismTech. All Rights Reserved 44
  • 46. Eventual Consistency @ Work 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 © 2010, PrismTech. All Rights Reserved A 44
  • 47. Eventual Consistency @ Work 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 © 2010, PrismTech. All Rights Reserved A 44
  • 48. Eventual Consistency @ Work 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 © 2010, PrismTech. All Rights Reserved A 44
  • 49. Eventual Consistency @ Work 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 © 2010, PrismTech. All Rights Reserved A 44
  • 50. Eventual Consistency @ Work 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 © 2010, PrismTech. All Rights Reserved A 44
  • 51. Eventual Consistency @ Work 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 © 2010, PrismTech. All Rights Reserved A 45
  • 52. Eventual Consistency @ Work 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 © 2010, PrismTech. All Rights Reserved A 45
  • 53. Eventual Consistency @ Work 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 © 2010, PrismTech. All Rights Reserved A 45
  • 54. Eventual Consistency @ Work 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 © 2010, PrismTech. All Rights Reserved A 45
  • 55. OpenSplice DDS Delivering Performance, Openness, and Freedom Controlling Replication 46
  • 56. Ownership Who owns the data? The OWNERSHIP QoS specifies whether it is allowed for multiple DataWriters to write the same instance of the data and if so, how these modifications should be arbitrated. Possible choices are: ‣ Shared. Multiple writers are allowed to QoS Policy Applicability RxO Modifiable update the same instance and all the OWNERSHIP T, DR, DW Y N updates are made available to the reader QoS matching ‣ Exclusive. Indicates that each instance can QoS QoS QoS only be owned by one DataWriter, but the Topic owner of an instance can change QoS Name QoS dynamically -- due to liveliness changes DataWriter writes Type reads DataReader Publisher ... Subscriber ... ‣ The selection of the owner is controlled by DataWriter writes ... Type reads DataReader the setting of the OWNERSHIP_STRENGTH Name QoS policy Topic QoS QoS QoS QoS matching © 2010, PrismTech. All Rights Reserved 47
  • 57. Ownership Strength How strong are you? The OWNERSHIP_STRENGTH Specifies the value of the “strength” used to arbitrate among DataWriters that attempt to modify the same data instance ‣ Data instance are identified QoS matching by the couple (Topic, Key) QoS QoS QoS ‣ The policy applies only if the OWNERSHIP is EXCLUSIVE QoS Topic Name QoS DataWriter writes Type reads DataReader Publisher ... Subscriber ... ... QoS Policy Applicability RxO Modifiable OWNERSHIP DW - Y DataWriter writes Type reads DataReader STRENGTH Name Topic QoS QoS QoS QoS matching © 2010, PrismTech. All Rights Reserved 48
  • 58. Next Steps ‣ By now you’ve learned most of what you need to write complex DDS applications ‣ However, as the wise Confucius used to say: ‣ I hear an I forget. I see and I remember. I do I understand. ‣ The best way of really getting into DDS is to write some DDS applications, utilities or extensions © 2010, PrismTech. All Rights Reserved 49
  • 59. Online Resources http://www.opensplice.com/ http://www.slideshare.net/angelo.corsaro emailto:opensplicedds@prismtech.com http://bit.ly/1Sreg http://twitter.com/acorsaro/ http://opensplice.blogspot.com http://www.youtube.com/OpenSpliceTube © 2009, PrismTech. All Rights Reserved 50