SlideShare a Scribd company logo
1 of 66
Download to read offline
Angelo Corsaro, Ph.D.
Chief Technology Officer!
OMG DDS Sig Co-Chair
PrismTech
angelo.corsaro@prismtech.com!
Standards Scopes
Standards Compared




                                                                     Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
DDS Standard v1.2      2004
                                  JMS Standard v1.1     2001


¨    Programming Language        ¨    Java Messaging API (Pub/
      Independent API for Data-         Sub + PTP) portable across
      Centric Pub/Sub                   messaging implementations

¨    Interoperable Wire-
      Protocol (DDSI/RTPS)
Standards Compared
      DDS ensures portability and            JMS focuses only on application




                                                                               Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
¨                                     ¨ 

      interoperability across                portability across
      implementation of the standard         implementation of the standard

        Application                               Application

          DDS API                                   JMS API      Standard
                      Standard
           DDSI                                   JMS Provider
Standards Compared
DDS Standard




                                                                        Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
                                     JMS Standard
¨    Promotes Fully Distributed     ¨    Promotes Hub and Spoke
      Architectures                        Architectures
¨    Provides mechanisms for        ¨    Fully distributed
      transparently using Brokers/         architectures are possible
      Routers                              but complicated by some
                                           use cases
Standardization "
       Activity
JMS 




                                                         Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
¨    The JMS standard has not been evolving after the
      v1.1 released in 2002
DDS Standard Evolution




                                                       Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
   App          Standard API

         2004

   DDS             §    Standard API for Data-
                         Centric Real-Time Pub/Sub
                   §    Automatic fail-over
                   §    Persistence
                   §    Dynamic Discovery
                   §    Content Filtering / Queries
DDS Standard Evolution




                                                                  Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
    App                                              App
                                 Standard API

          2004                                             2004

    DDS                                              DDS
          2006                                             2006

  DDSI/RTPS                          network       DDSI/RTPS
                                Interoperable
                                 Wire Protocol
                 §  High Performance
                 §  Interoperable Wire Protocol
DDS Standard Evolution
          2008                                         2008
  UML4DDS        §  UML-Based Modeling   of   UML4DDS




                                                              Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
                     DDS applications

    App                                          App
                       Standard API

          2004                                         2004

    DDS                                          DDS
          2006                                         2006

  DDSI/RTPS               network              DDSI/RTPS

                      Interoperable
                       Wire Protocol
DDS Standard Evolution
                          2008                                        2008

                UML4DDS                                       UML4DDS




                                                                                          Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
                   App                                          App
                                             Standard API

                          2004                                        2004
2010




                                                                             2010
                   DDS                                          DDS
   X-Types




                                                                                X-Types
                          2006                                        2006

                DDSI/RTPS                       network       DDSI/RTPS

             §  Extensible/Evolvable Type   Interoperable
                 System                       Wire Protocol
             §  Dynamic Topic Types, Data
                 Readers & Writers
             §  Encoding Negotiation
DDS Standard Evolution
                     2008      §  ISO C++ DDS PSM                     2008
                               §  Simple, Safe, Efficient,
             UML4DDS                                           UML4DDS




                                                                                           Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
                                   Elegant and Ergonomic API


               App                                               App
                                    Standard API

                     2004           2010                               2004
                            ISO-C++ PSM
2010




                                                                              2010
               DDS                                               DDS
   X-Types




                                                                                 X-Types
                     2006                                              2006

             DDSI/RTPS                  network                DDSI/RTPS

                                   Interoperable
                                    Wire Protocol
DDS Standard Evolution
                     2008      §  Java 5 DDS PSM                      2008
                               §  Simple, Safe, Efficient,
             UML4DDS                                           UML4DDS




                                                                                           Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
                                   Elegant and Ergonomic API


               App                                               App
                                    Standard API

                     2004           2010              2010             2004
                            ISO-C++ PSM      Java5 PSM
2010




                                                                              2010
               DDS                                               DDS
   X-Types




                                                                                 X-Types
                     2006                                              2006

             DDSI/RTPS                  network                DDSI/RTPS

                                   Interoperable
                                    Wire Protocol
DDS Standard Evolution
                     2008                                                                      2008

             UML4DDS                                                                 UML4DDS




                                                                                                                   Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
               App                                                                      App
                                              Standard API

                     2004                        2010          2010                            2004




                                                                      2011
                            2011




                                                                         Web-DDS
                               Web-DDS
                                         ISO-C++ PSM    Java5 PSM
2010




                                                                                                      2010
               DDS                                                                      DDS
   X-Types




                                                                                                         X-Types
                     2006                                                                      2006

             DDSI/RTPS                            network                           DDSI/RTPS

                                              Interoperable
                                                                             §  Standardized way of
                                               Wire Protocol                     accessing DDS from Web
                                                                                 Technologies
                                                                             §  REST, W3C WS-*, RSS, etc.
DDS Standard Evolution
                      2008                                                                   2008

             UML4DDS                                                                 UML4DDS




                                                                                                                 Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
              App                                                                     App
                                                Standard API

                     2004                         2010           2010                        2004




                                                                        2011
                             2011




                                                                           Web-DDS
                                Web-DDS
                                          ISO-C++ PSM     Java5 PSM
2010




                                                                                                    2010
               DDS                                                                     DDS
   X-Types




                                                                                                       X-Types
                     2011                                                                    2011

             ULS-DDSI                              network                           ULS-DDSI

             §  Ultra-Large Scale Extensions   Interoperable
                 to the DDSI/RTPS wire-          Wire Protocol
                 protocol
             §  New Discovery
             §  Support for TCP, etc.
DDS Standard Evolution
                     2008                                                                                               2008

             UML4DDS                                                                                            UML4DDS




                                                                                                                                            Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
               App                                                                                               App
                                                             Standard API

                     2004                                      2010           2010                                      2004




                                                                                     2012


                                                                                                   2011
                            2011


                                         2012




                                                                                                      Web-DDS
                               Web-DDS

                                                       ISO-C++ PSM    Java5 PSM




                                                                                        Security
                                            Security
2010




                                                                                                                               2010
               DDS                                                                                                DDS
   X-Types




                                                                                                                                  X-Types
                     2011                                                                                               2011
             ULS-DDSI                                            network                                        ULS-DDSI

                                                             Interoperable                  §  Interoperable Security
                                                              Wire Protocol                     Architecture
                                                                                            §  Pluggable Policy / Labeling
                                                                                                and Tagging
DDS Standard Evolution
                     2008                                                                                                 2008

             UML4DDS                            §  Remote Method                                                 UML4DDS
                                                    Invocations over DDS




                                                                                                                                                  Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
                                                §  Synchronous, Asynchronous
              App                                   and one ways RMI                                               App
             2012                                                                                                                2012
                                                              Standard API
        DDS-RMI                                                                                                       DDS-RMI
                     2004                                       2010            2010                                      2004




                                                                                       2012


                                                                                                     2011
                            2011


                                         2012




                                                                                                        Web-DDS
                               Web-DDS

                                                       ISO-C++ PSM      Java5 PSM




                                                                                          Security
                                            Security
2010




                                                                                                                                   2010
               DDS                                                                                                  DDS
   X-Types




                                                                                                                                        X-Types
                     2011                                                                                                 2011
             ULS-DDSI                                             network                                         ULS-DDSI

                                                              Interoperable
                                                               Wire Protocol
Mapping JMS to DDS
JMS                                          DDS
Connection
                        Connection                                    Domain
                                                                     Participant




                                                                                                Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
Session                   Session                  Publisher                       Subscriber
      Establishes
      connection with                            Gives access to a
      the Broker                                 DDS Domain


Pub/Sub   Producer      Destination   Consumer    DataWriter           Topic       DataReader
JMS                                         DDS
Connection
                           Connection                                  Domain
                                                                      Participant




                                                                                                   Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
Session
                             Session                 Publisher                        Subscriber




Pub/Sub   Producer          Destination   Consumer   DataWriter   Manage publishers
                                                                           Topic      DataReader
            Establishes a JMS                                     and subscribers
            Session                                               sessions
JMS                                           DDS
Connection
                              Connection                                      Domain
                                                                             Participant




                                                                                                        Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
Session
                                    Session                 Publisher                      Subscriber



Pub/Sub

              Producer         Destination    Consumer     DataWriter          Topic       DataReader




                                                         Reader/Writer for
          Messaging Abstractions.
                                                         application
          A Destination can be a
                                                         defined Topic
          Topic or a Queue
                                                         Types
Note: Topics are the kind of
JMS Destination associated
with the Pub/Sub Domain




                               Pub/Sub & Topics
JMS Topics
¨    A Topic defines the subject of




                                       Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
      publications and subscriptions

¨    The topic name has a weakly
      defined semantics w.r.t. the
      subscription matching

¨    Topics are Administered
      Objects and should preferably
      be defined outside the
      application. API for local
      definition also exist
DDS Topics
                      [1/2]
                                                              “com.myco.VPos”

¨    A Topic defines the subject of




                                                                                          Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
      publications and subscriptions
¨    A Topic has associated a user
      defined extensible type and
      QoS
¨    The Topic name, type and
      QoS have a well defined role
      in matching subscriptions
¨    Topics can be discovered or
      locally defined                    struct VehiclePosition{!
                                            string plate; @Key!
                                                                            DURABILITY,
                                                                            DEADLINE,
                                            long x;!
                                                                            PRIORITY,
                                            longy;!
                                         }!                                 …
DDS Topics 
                  [2/2]
                                                           “com.myco.VPos”




                                                                                       Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
¨    DDS Topic types can have
      associated keys

¨    Each unique key-value
      identify a Topic Instance –
      a specific stream of values

                                      struct VehiclePosition{!           DURABILITY,
                                         string plate; @Key!             DEADLINE,
                                         long x;!
                                                                         PRIORITY,
                                         longy;!
                                      }!                                 …
Plugging into JMS/DDS
JMS
Connection
                                                          // Get connectionFactory from JNDI!
                         Connection                       Connection c = !
                                                              connectionFactory.createConnection();!




                                                                                                        Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
Session                    Session
                                                                          Domain
                                      Establishes                        Participant
                                      connection with
                                      the Broker


Pub/Sub    Producer        Topic        Consumer        Publisher          Topic           Subscriber




Reader/Writers
                                                        DataWrter                         DataReader
User Defined for Types
JMS
Connection
                                                        // Get connectionFactory from JNDI!
                           Connection                   Connection c = !
                                                            connectionFactory.createConnection();!




                                                                                                     Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
Session
                                                   Session s = !
                              Session                 c.createSession(false, !
                                                                      Session.AUTO_ACKNOWLDEGE);!




Pub/Sub    Producer            Topic    Consumer
             Establishes a JMS
             Session


Reader/Writers
User Defined for Types
JMS
Connection
                                                            // Get connectionFactory from JNDI!
                             Connection                     Connection c = !
                                                                connectionFactory.createConnection();!




                                                                                                         Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
Session
                                                      Session s = !
                                 Session                 c.createSession(false, !
                                                                         Session.AUTO_ACKNOWLDEGE);!


Pub/Sub                                                 // Look-up destination from JNDI!
                                                        Destination d = !
              Producer       Destination   Consumer         (Destination )jndi.lookup(destName);!
                                                        !
                                                        // Create a Producer!
                                                        MessageProducer mp = s.createProducer(d);!
                                                        !
                                                        // Create a Consumer!
Reader/Writers                                          MessageConsumer mc = s.createConsumer(d);!
       Messaging Abstractions.
User Defined for Types be a
       A Destination can
          Topic or a Queue
DDS
Connection
                                                                                  Domain
          DomainParticipant dp = !
            theDomainParticipantFactory().create_participant(0);!                Participant




                                                                                                            Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
Session
                                                               Publisher                       Subscriber
                                                             Gives access to a
                                                             DDS Domain


Pub/Sub                                                       DataWriter           Topic       DataReader
DDS
Connection
                                                                                Domain
          DomainParticipant dp = !
            theDomainParticipantFactory().create_participant(0);!              Participant




                                                                                                            Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
Session   // Create a Publisher / Subscriber!
          Publisher p = dp.create_publisher();!
          Subscriber s = dp.create_subscriber();!              Publisher                       Subscriber
          // Create a Topic!
          Topic<Foo> t = dp.create_topic<Foo>(name)!



Pub/Sub                                                       DataWriter   Manage publishers
                                                                                    Topic      DataReader
                                                                           and subscribers
                                                                           sessions
DDS
Connection
                                                                                 Domain
          DomainParticipant dp = !
            theDomainParticipantFactory().create_participant(0);!               Participant




                                                                                                           Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
Session   // Create a Publisher / Subscriber!
          Publisher p = dp.create_publisher();!
          Subscriber s = dp.create_subscriber();!              Publisher                      Subscriber
          // Create a Topic!
          Topic<Foo> t = dp.create_topic<Foo>(name)!
Pub/Sub
          // Create a DataWriter/DataWriter!
          DataWriter<Foo> dw = pub.create_datawriter(t);!     DataWriter          Topic       DataReader
          DataReader<Foo> dr = sub.create_datareader(t);!




                                                            Reader/Writer for
                                                            application
                                                            defined Topic
                                                            Types
¨    JMS allows to distribute Messages
¨    DDS allows to share Data
¨    Both DDS and JMS provide a
      Topic-Based Pub/Sub abstraction
      to match interests




                            Messages & Data
JMS Message
                                            Text
                                             Map                  Object
      JMS Messages are




                                                                                     Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
¨ 
      composed by
      ¨    Header – Used for routing    Stream        Body                   Byte
                                                        Body
      ¨    Property – Filtering, etc.
      ¨    Body – Data

      5 Different Body types
                                                       Message
¨ 

      are supported                           Header             Properties
Topic Types
                                                         struct VehiclePosition{!
                                                            string plate; //@Key!
¨    Topic types can be defined                            long x;!
      in IDL, UML, XML, Java




                                                                                           Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
                                                            long y;!
                                                         }!
¨    Topics types are extensible
      and evolvable
¨    Rich set of annotations to               Topic          TrakCo.VehiclePosition
      deal with fields that might be
      optional, shared, etc.             Topic Type               VehiclePosition
                                          Topic Key               plate        x       y
¨    Each unique key value
      identifies a Topic Instance                                “A123”       101 202
                                       Topic Instances           “B456”       303 202
¨    Topic Instance, can be
      Created, Read, Updated,                                    “C789”       101 606
      and Disposed (CRUD)
In Summary




                                                                 Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
DDS                              JMS
¨    Topics have associated     ¨    Topics represent a kind
      user defined Types               of Destination for
                                       Messages
¨    These user defined types   ¨    User-Types have to be
      are used to read/write           mapped into one of the
      topic instances                  5 message bodies
                                       defined by JMS
Sending/Receiving
        Messages
Sending Message




                                                                               Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
¨    JMS provides 5         // Create a Text Message!
                             TextMessage tm = s.createTextMessage(“Hello”);!

      message body types     // Send the Text Message!
                             mp.send(tm);!
                             !


¨    Messages are sent
      through the Producer
Sending Message
                              class VehiclePosition !
                                                implements java.io.Serializable {!
                                                 private String plate;!
                                                 private long x;!
                                                 private long y;!
                                              !
                                                   // Ctors / Setters / Getters!
                                              }!




                                                                                     Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
¨    JMS provides 5         !
                             VehiclePosition vp = !

      message body types     !
                                 new VehiclePosition(“Hello”, 10, 20);!

                             // Create an Object Message!
                             ObjectMessage om = s.createObjectMessage(vp);!

¨    Messages are sent      // Send the Object Message!
                             mp.send(om);!

      through the Producer
                             !
Receiving Messages
¨    JMS Application receive
      generic Message and




                                                                                 Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
      have to understand
      what the type is (usually   // Receive Message…!
                                  TextMessage tm = (TextMessage)ms.receive();!
      via down-casts)             String str = tm.getText();!
                                  !

¨    Messages can be read
      proactively or listener
      can be registered
¨    Messages are retrieved
      one at the time
Receiving Messages
¨    JMS Application receive
      generic Message and




                                                                                           Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
      have to understand
      what the type is (usually   !
                                  ObjectMessage om = (ObjectMessage)ms.receive();!
      via down-casts)             VehiclePosition vp = (VehiclePosition)om.getObject();!
                                  !
                                  // Notice that any of the casts above could fail !
¨    Messages can be read        // at runtime…!

      proactively or listener
      can be registered
¨    Messages are retrieved
      one at the time
Reading/Writing "
          Data
class VehiclePosition {!



Writing Data
                                             public:!
                                                 const std::string& plate() const;!
                                                 void plate(const std::string& s);!
                                                 int32_t x() const;!
                                                 void x(int32_t i);!
                                                 int32_t y() const;!
                                                 void y(int32_t i);!

¨    DDS allows                             // Encapsulated State Representation!
                                             };!




                                                                                      Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
      applications to define
      their own data types     VehiclePosition vp(“Hello”, 10, 20);!
                               dw << vp;!
      and associate them       !
                               // Alternative Syntax!

      with Topics              dw.write(vp);!
                               !
                               !


¨    Topic updates are
      written through the
      DataWriter
Reading Data
¨    DDS provide a strongly




                                                                                  Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
      typed API for reading data
      that relies on DataReaders
                                    // Read Data!
                                    !
¨    Messages can be read          std::vector<VehiclePosition> data(size);!

      proactively or listener can   std::vector<SampleInfo> info(size);!
                                    !
      be registered                 dr.read(data.begin(), info.begin(), size);!



¨    DDS provides A very
      flexible selection
      mechanism for topic
      samples
DDS                           vs.                 JMS
    ¨    DDS provides an end-to-                   ¨    JMS requires user to “guess




                                                                                                         Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
          end type-safe abstraction                       types” this introduce
          for distributing publications                   potential for runtime errors
          of user defined topic types
                                                // Receive Message…!
                                                TextMessage tm = (TextMessage)ms.receive();!
                                                String str = tm.getText();!
// Read Data!                                   !
!                                               // =============================================!
std::vector<VehiclePosition> data(size);!       !
std::vector<SampleInfo> info(size);!            ObjectMessage om = (ObjectMessage)ms.receive();!
!                                               VehiclePosition vp = (VehiclePosition)om.getObject();!
dr.read(data.begin(), info.begin(), size);!     !
                                                // Notice that any of the casts above could fail !
                                                // at runtime…!
DDS. What Else?
Instance/History Management
¨    An Instance per unique key value




                                                                              Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
¨    An update for a Topic Instance is called Sample
¨    DDS can maintain a configurable history of samples per Topic Instance
com.myco.VPos




com.myco.VPos
                                                                                               DDS




                JMS
                                                                                                     Topic Instances vs. Messages




                  Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
Topic Instances vs. Messages
                                            DDS
                                                       New




                                                             Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
                                  “A01”   100   200

                  com.myco.VPos




                                                JMS

                                  “A01”   100    200

                  com.myco.VPos
Topic Instances vs. Messages
                                              DDS
                                                         New




                                                               Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
                                    “A01”   100   200

                                                         New
                                    “B41”   57     31

                  com.myco.VPos




                                                  JMS

                  “B41”   57   31   “A01”   100    200

                  com.myco.VPos
Topic Instances vs. Messages
                                                              DDS
                                                                         New




                                                                               Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
                                “A01”   110   210   “A01”   100   200

                                                                         New
                                                    “B41”   57     31

                                com.myco.VPos




                                                                  JMS

            “A01”   110   210   “B41”   57    31    “A01”   100    200

                                com.myco.VPos
Topic Instances vs. Messages
                                                                             DDS
                                                                                        New




                                                                                              Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
                           “A01”   120   220   “A01”   110   210   “A01”   100   200

                                                                                        New
                                                                   “B41”   57     31

                                               com.myco.VPos




                                                                                 JMS

       “A01”   120   220   “A01”   110   210   “B41”   57    31    “A01”   100    200

                                               com.myco.VPos
Topic Instances vs. Messages
                                                                                          DDS
                                                                                                     New




                                                                                                           Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
                                        “A01”   120   220   “A01”   110   210   “A01”   100   200

                                                                                                     New
                                                            “B41”   47    19    “B41”   57     31

                                                            com.myco.VPos




                                                                                              JMS

  “B41”   47   19   “A01”   120   220   “A01”   110   210   “B41”   57    31    “A01”   100    200

                                                            com.myco.VPos
Topic Instances vs. Messages
                                                                                          DDS
                                                                                                     New




                                                                                                           Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
                                        “A01”   120   220   “A01”   110   210   “A01”   100   200

                                                                                                     New
                                        “B41” Dis- osed
                                                 p     -    “B41”   47    19    “B41”   57     31

                                                            com.myco.VPos




                                                                                              JMS

  “B41”   47   19   “A01”   120   220   “A01”   110   210   “B41”   57    31    “A01”   100    200

                                                            com.myco.VPos
Dynamic Discovery




                                                             Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
¨    DDS dynamically discovers publishers, subscribers as
      well as Topics

¨    Dynamic Discovery has a key role in subscriptions
      matching
¨    No global configuration is required
QoS Framework
¨    DDS provides a
      mechanism for




                                                                                                                                                        Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
                                                                         Type Matching


      end-to-end QoS
                                                                                                            QoS matching




      matching
                            QoS             QoS                QoS                   QoS                   QoS                QoS              QoS


                                                                                     Topic
                                                                                               Name
                                          Publisher                                                                        Subscriber



      Communication is
                                                      ...   DataWriter      writes   Type       reads   DataReader
                                                                                                                     ...
¨                                                                                       ...

      established iff the    DomainParticipant              DataWriter    writes     Type      reads    DataReader                  DomainParticipant




      QoS offered by the
                                                                                               Name
                                                                                     Topic




      publisher                                               QoS                    QoS                    QoS




      matches/exceeds
      that requested by
      the subscriber
QoS Policies
QoS Policy    Applicability RxO   Modifiable
DURABILITY    T, DR, DW   Y       N
DURABILITY    T, DW       N       N




                                                                                                                         Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
SERVICE                                       Data
                                              Availability
LIFESPAN      T, DW       N/A     Y                          QoS Policy   Applicability RxO   Modifiable
HISTORY       T, DR, DW   N       N                          TIME BASED   DR           N/A    Y
PRESENTATION P, S         Y       N                          FILTER
                                                                                                          Resources
                                                             RESOURCE     T, DR, DW    N      N
RELIABILITY   T, DR, DW   Y       N                          LIMITS

PARTITION     P, S        N       Y                          ENTITY
                                              Data           FACTORY
DESTINATION   T, DR, DW   Y       N
                                              Delivery       USER DATA    DP, DR, DW   N      Y
ORDER
                                                                          T            N      Y
                                                                                                          Configuration
OWNERSHIP     T, DR, DW   Y       N                          TOPIC DATA
OWNERSHIP     DW          N/A     Y                          GROUP DATA   P, S         N      Y
STRENGTH                                                     LIVELINESS   T, DR, DW    Y      N
DEADLINE      T, DR, DW   Y       Y                          WRITER DATA DW            N/A    Y
LATENCY       T, DR, DW   Y       Y                          LIFECYCLE
                                              Data                                                        Lifecycle
BUDGET                                                       READER DATA DR            N/A    Y
                                              Timeliness
TRANSPORT     T, DW       N/A     Y                          LIFECYCLE
PRIORITY
Content Awareness
¨    DDS make it possible         struct VehiclePosition{!
                                      string plate; @Key!




                                                               Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
      express filters and             long x;!
                                      long y;!
      queries on the whole         }!
      content of a topic type

¨    Filters can be used to       Filter Examples:
      establish content filtered
      subscriptions                  “x < %0 AND y < %1”
                                     “y BETWEEN (10 AND 20)”
¨    Queries can be used to
      create local views of
      available data
High Performance




                            Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
¨    OpenSplice DDS is
      2.5x-3x faster than
      high performance
      JMS implementations
High Performance




                                                               Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
¨    OpenSplice DDS
      delivers very low and
      predictable latencies




                               Latency (usec)
¨    No other Pub/Sub
      technology can
      approach similar level
      of performance!

                                                Size (bytes)
JMS Legacy?
Integrating JMS with DDS
                                                 OpenSplice DDS Connector
      Existing JMS systems can be




                                                                                                      Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
¨                                                                 Custom Connectors
      easily integrated with DDS
      today using Apache Camel
                                                      OpenSplice DDS     Custom




                                           ULS DDSI
      High Performance, High                            BLEND-Box




                                                                                   WS-*
¨ 

      Availability Integration of
                                                      DDSI      REST       JMS
      DDS with JMS will also
      available through the Blend-
      Box (available later this year)   DDS Connectors
                                                                       Web Connectors compliant with
                                                                       the Web-Enabled DDS Specificaiton
DDS in Action
Summing Up
Concluding Remarks
¨    DDS is a powerful lively standard for publish/




                                                       Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
      subscribe
¨    DDS provides some very useful abstractions not
      available in JMS, such as user-defined types,
      instances, history, etc.
¨    DDS can be as simple to use as JMS, but when
      required provides far more knobs for tuning
      scalability, performance and QoS
OpenSplice DDS
Delivering Performance, Openness, and Freedom


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




                                                                                           Copyright	
  2010,	
  PrismTech	
  –	
  	
  All	
  Rights	
  Reserved.	
  
   http://bit.ly/1Sreg
                                                http://twitter.com/acorsaro/




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

More Related Content

What's hot

Distributed Simulations with DDS and HLA
Distributed Simulations with DDS and HLADistributed Simulations with DDS and HLA
Distributed Simulations with DDS and HLAAngelo Corsaro
 
Introduction to DDS
Introduction to DDSIntroduction to DDS
Introduction to DDSRick Warren
 
Patterns of Data Distribution
Patterns of Data DistributionPatterns of Data Distribution
Patterns of Data DistributionRick Warren
 
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time SystemsOMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time SystemsAngelo Corsaro
 
Integration Platform For JMPS Using DDS
Integration Platform For JMPS Using DDSIntegration Platform For JMPS Using DDS
Integration Platform For JMPS Using DDSSupreet Oberoi
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution ServiceAngelo Corsaro
 
OpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part IIOpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part IIAngelo Corsaro
 
Getting Started in DDS with C++ and Java
Getting Started in DDS with C++ and JavaGetting Started in DDS with C++ and Java
Getting Started in DDS with C++ and JavaAngelo Corsaro
 
A Converged Approach to Standards for Industrial Automation
A Converged Approach to Standards for Industrial AutomationA Converged Approach to Standards for Industrial Automation
A Converged Approach to Standards for Industrial AutomationGerardo Pardo-Castellote
 
A Gentle Introduction to OpenSplice DDS
A Gentle Introduction to OpenSplice DDSA Gentle Introduction to OpenSplice DDS
A Gentle Introduction to OpenSplice DDSAngelo Corsaro
 
Component Based DDS with C++11 and R2DDS
Component Based DDS with C++11 and R2DDSComponent Based DDS with C++11 and R2DDS
Component Based DDS with C++11 and R2DDSRemedy IT
 
DDS + Android = OpenSplice Mobile
DDS + Android = OpenSplice MobileDDS + Android = OpenSplice Mobile
DDS + Android = OpenSplice MobileAngelo Corsaro
 
Communication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/SubscribeCommunication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/SubscribeSumant Tambe
 
The DDS Tutorial - Part I
The DDS Tutorial - Part IThe DDS Tutorial - Part I
The DDS Tutorial - Part IAngelo Corsaro
 
The Data Distribution Service Tutorial
The Data Distribution Service TutorialThe Data Distribution Service Tutorial
The Data Distribution Service TutorialAngelo Corsaro
 
Getting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and ScalaGetting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and ScalaAngelo Corsaro
 

What's hot (20)

Distributed Simulations with DDS and HLA
Distributed Simulations with DDS and HLADistributed Simulations with DDS and HLA
Distributed Simulations with DDS and HLA
 
Introduction to DDS
Introduction to DDSIntroduction to DDS
Introduction to DDS
 
Patterns of Data Distribution
Patterns of Data DistributionPatterns of Data Distribution
Patterns of Data Distribution
 
OMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time SystemsOMG DDS: The Data Distribution Service for Real-Time Systems
OMG DDS: The Data Distribution Service for Real-Time Systems
 
Integration Platform For JMPS Using DDS
Integration Platform For JMPS Using DDSIntegration Platform For JMPS Using DDS
Integration Platform For JMPS Using DDS
 
The Data Distribution Service
The Data Distribution ServiceThe Data Distribution Service
The Data Distribution Service
 
OpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part IIOpenSplice DDS Tutorial -- Part II
OpenSplice DDS Tutorial -- Part II
 
Getting Started in DDS with C++ and Java
Getting Started in DDS with C++ and JavaGetting Started in DDS with C++ and Java
Getting Started in DDS with C++ and Java
 
DDS Security
DDS SecurityDDS Security
DDS Security
 
DDS vs AMQP
DDS vs AMQPDDS vs AMQP
DDS vs AMQP
 
A Converged Approach to Standards for Industrial Automation
A Converged Approach to Standards for Industrial AutomationA Converged Approach to Standards for Industrial Automation
A Converged Approach to Standards for Industrial Automation
 
A Gentle Introduction to OpenSplice DDS
A Gentle Introduction to OpenSplice DDSA Gentle Introduction to OpenSplice DDS
A Gentle Introduction to OpenSplice DDS
 
Component Based DDS with C++11 and R2DDS
Component Based DDS with C++11 and R2DDSComponent Based DDS with C++11 and R2DDS
Component Based DDS with C++11 and R2DDS
 
DDS + Android = OpenSplice Mobile
DDS + Android = OpenSplice MobileDDS + Android = OpenSplice Mobile
DDS + Android = OpenSplice Mobile
 
Communication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/SubscribeCommunication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/Subscribe
 
DDS QoS Unleashed
DDS QoS UnleashedDDS QoS Unleashed
DDS QoS Unleashed
 
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
 
Getting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and ScalaGetting Started with DDS in C++, Java and Scala
Getting Started with DDS in C++, Java and Scala
 
HLA over DDS
HLA over DDSHLA over DDS
HLA over DDS
 

Viewers also liked

DDS in Action -- Part I
DDS in Action -- Part IDDS in Action -- Part I
DDS in Action -- Part IAngelo Corsaro
 
What's the Right Messaging Standard for the IoT?
What's the Right Messaging  Standard for the IoT?What's the Right Messaging  Standard for the IoT?
What's the Right Messaging Standard for the IoT?Angelo Corsaro
 
DDS vs DDS4CCM
DDS vs DDS4CCMDDS vs DDS4CCM
DDS vs DDS4CCMRemedy IT
 
Hello World in OMG DDS and ZeroMQ
Hello World in OMG DDS and ZeroMQHello World in OMG DDS and ZeroMQ
Hello World in OMG DDS and ZeroMQSander Mertens
 
Two Approaches You Must Consider when Architecting Radar Systems
Two Approaches You Must Consider when Architecting Radar SystemsTwo Approaches You Must Consider when Architecting Radar Systems
Two Approaches You Must Consider when Architecting Radar SystemsReal-Time Innovations (RTI)
 
Comparison of MQTT and DDS as M2M Protocols for the Internet of Things
Comparison of MQTT and DDS as M2M Protocols for the Internet of ThingsComparison of MQTT and DDS as M2M Protocols for the Internet of Things
Comparison of MQTT and DDS as M2M Protocols for the Internet of ThingsReal-Time Innovations (RTI)
 
Designing the Mobile Experience
Designing the Mobile ExperienceDesigning the Mobile Experience
Designing the Mobile ExperienceKaKi Law
 
Ogunte intro feb2013
Ogunte intro feb2013Ogunte intro feb2013
Ogunte intro feb2013Ogunte CIC
 
Electing A President Individual Quiz
Electing A President Individual QuizElecting A President Individual Quiz
Electing A President Individual Quizguest71290aa
 
Visualizing Differential Equations
Visualizing Differential EquationsVisualizing Differential Equations
Visualizing Differential Equationspd3h
 
Building Distributed Systems in Scala with OpenSplice DDS
Building Distributed Systems in Scala with OpenSplice DDSBuilding Distributed Systems in Scala with OpenSplice DDS
Building Distributed Systems in Scala with OpenSplice DDSAngelo Corsaro
 

Viewers also liked (20)

DDS Made Simple
DDS Made SimpleDDS Made Simple
DDS Made Simple
 
DDS in Action -- Part I
DDS in Action -- Part IDDS in Action -- Part I
DDS in Action -- Part I
 
What's the Right Messaging Standard for the IoT?
What's the Right Messaging  Standard for the IoT?What's the Right Messaging  Standard for the IoT?
What's the Right Messaging Standard for the IoT?
 
DDS vs DDS4CCM
DDS vs DDS4CCMDDS vs DDS4CCM
DDS vs DDS4CCM
 
Hello World in OMG DDS and ZeroMQ
Hello World in OMG DDS and ZeroMQHello World in OMG DDS and ZeroMQ
Hello World in OMG DDS and ZeroMQ
 
OMG DDS Security Standard
OMG DDS Security StandardOMG DDS Security Standard
OMG DDS Security Standard
 
Two Approaches You Must Consider when Architecting Radar Systems
Two Approaches You Must Consider when Architecting Radar SystemsTwo Approaches You Must Consider when Architecting Radar Systems
Two Approaches You Must Consider when Architecting Radar Systems
 
Comparison of MQTT and DDS as M2M Protocols for the Internet of Things
Comparison of MQTT and DDS as M2M Protocols for the Internet of ThingsComparison of MQTT and DDS as M2M Protocols for the Internet of Things
Comparison of MQTT and DDS as M2M Protocols for the Internet of Things
 
Pintura 2 Eso
Pintura 2 EsoPintura 2 Eso
Pintura 2 Eso
 
Designing the Mobile Experience
Designing the Mobile ExperienceDesigning the Mobile Experience
Designing the Mobile Experience
 
ikh331-05-transaction
ikh331-05-transactionikh331-05-transaction
ikh331-05-transaction
 
Bill haley
Bill haleyBill haley
Bill haley
 
Ogunte intro feb2013
Ogunte intro feb2013Ogunte intro feb2013
Ogunte intro feb2013
 
Electing A President Individual Quiz
Electing A President Individual QuizElecting A President Individual Quiz
Electing A President Individual Quiz
 
Visualizing Differential Equations
Visualizing Differential EquationsVisualizing Differential Equations
Visualizing Differential Equations
 
You, Your Family & Your Estate
You, Your Family & Your EstateYou, Your Family & Your Estate
You, Your Family & Your Estate
 
Undop Paris09pp
Undop Paris09ppUndop Paris09pp
Undop Paris09pp
 
Sph 107 Ch 11
Sph 107 Ch 11Sph 107 Ch 11
Sph 107 Ch 11
 
Building Distributed Systems in Scala with OpenSplice DDS
Building Distributed Systems in Scala with OpenSplice DDSBuilding Distributed Systems in Scala with OpenSplice DDS
Building Distributed Systems in Scala with OpenSplice DDS
 
Good thoughts
Good thoughtsGood thoughts
Good thoughts
 

Similar to DDS for JMS Programmers

OMG DDS and its Relation to Unmanned Vehicle Interoperability
OMG DDS and its Relation to Unmanned Vehicle InteroperabilityOMG DDS and its Relation to Unmanned Vehicle Interoperability
OMG DDS and its Relation to Unmanned Vehicle InteroperabilityGerardo Pardo-Castellote
 
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
 
Communication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/SubscribeCommunication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/SubscribeReal-Time Innovations (RTI)
 
Interoperability for Intelligence Applications using Data-Centric Middleware
Interoperability for Intelligence Applications using Data-Centric MiddlewareInteroperability for Intelligence Applications using Data-Centric Middleware
Interoperability for Intelligence Applications using Data-Centric MiddlewareGerardo Pardo-Castellote
 
OMG DDS: The data centric future beyond message-based integration
OMG DDS: The data centric future beyond message-based integrationOMG DDS: The data centric future beyond message-based integration
OMG DDS: The data centric future beyond message-based integrationGerardo Pardo-Castellote
 
DDS Interoperability Demo
DDS Interoperability DemoDDS Interoperability Demo
DDS Interoperability DemoAngelo Corsaro
 
Easing Integration of Large-Scale Real-Time Systems with DDS
Easing Integration of Large-Scale Real-Time Systems with DDSEasing Integration of Large-Scale Real-Time Systems with DDS
Easing Integration of Large-Scale Real-Time Systems with DDSRick Warren
 
Optimizing Lustre and GPFS with DDN
Optimizing Lustre and GPFS with DDNOptimizing Lustre and GPFS with DDN
Optimizing Lustre and GPFS with DDNinside-BigData.com
 
MPEG DASH Developments in ST
MPEG DASH Developments in STMPEG DASH Developments in ST
MPEG DASH Developments in STIMTC
 
Introduction to WebSphere Message Broker
Introduction to WebSphere Message BrokerIntroduction to WebSphere Message Broker
Introduction to WebSphere Message BrokerAnt Phillips
 
The OpenSplice DDS Revolution -- Episode II
The OpenSplice DDS Revolution -- Episode IIThe OpenSplice DDS Revolution -- Episode II
The OpenSplice DDS Revolution -- Episode IIAngelo Corsaro
 
Dds presentation brussels
Dds presentation brusselsDds presentation brussels
Dds presentation brusselsmilsoftSDC
 
Tuning and Troubleshooting OpenSplice DDS Applications
Tuning and Troubleshooting OpenSplice DDS ApplicationsTuning and Troubleshooting OpenSplice DDS Applications
Tuning and Troubleshooting OpenSplice DDS ApplicationsAngelo Corsaro
 
Why join eccma 2013 02-26
Why join eccma 2013 02-26Why join eccma 2013 02-26
Why join eccma 2013 02-26PeterBenson
 

Similar to DDS for JMS Programmers (20)

OMG DDS and its Relation to Unmanned Vehicle Interoperability
OMG DDS and its Relation to Unmanned Vehicle InteroperabilityOMG DDS and its Relation to Unmanned Vehicle Interoperability
OMG DDS and its Relation to Unmanned Vehicle Interoperability
 
Business Models for Interoperability
Business Models for InteroperabilityBusiness Models for Interoperability
Business Models for Interoperability
 
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.
 
Communication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/SubscribeCommunication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/Subscribe
 
Interoperability for Intelligence Applications using Data-Centric Middleware
Interoperability for Intelligence Applications using Data-Centric MiddlewareInteroperability for Intelligence Applications using Data-Centric Middleware
Interoperability for Intelligence Applications using Data-Centric Middleware
 
OMG DDS: The data centric future beyond message-based integration
OMG DDS: The data centric future beyond message-based integrationOMG DDS: The data centric future beyond message-based integration
OMG DDS: The data centric future beyond message-based integration
 
DDS Interoperability Demo
DDS Interoperability DemoDDS Interoperability Demo
DDS Interoperability Demo
 
The Promise of Interoperability
The Promise of InteroperabilityThe Promise of Interoperability
The Promise of Interoperability
 
Interoperable DDS Strategies
Interoperable DDS StrategiesInteroperable DDS Strategies
Interoperable DDS Strategies
 
What Can DDS Do For You?
What Can DDS Do For You?What Can DDS Do For You?
What Can DDS Do For You?
 
Easing Integration of Large-Scale Real-Time Systems with DDS
Easing Integration of Large-Scale Real-Time Systems with DDSEasing Integration of Large-Scale Real-Time Systems with DDS
Easing Integration of Large-Scale Real-Time Systems with DDS
 
Optimizing Lustre and GPFS with DDN
Optimizing Lustre and GPFS with DDNOptimizing Lustre and GPFS with DDN
Optimizing Lustre and GPFS with DDN
 
OMG DDS Interoperability Demo 2009
OMG DDS Interoperability Demo 2009OMG DDS Interoperability Demo 2009
OMG DDS Interoperability Demo 2009
 
MPEG DASH Developments in ST
MPEG DASH Developments in STMPEG DASH Developments in ST
MPEG DASH Developments in ST
 
Introduction to WebSphere Message Broker
Introduction to WebSphere Message BrokerIntroduction to WebSphere Message Broker
Introduction to WebSphere Message Broker
 
The OpenSplice DDS Revolution -- Episode II
The OpenSplice DDS Revolution -- Episode IIThe OpenSplice DDS Revolution -- Episode II
The OpenSplice DDS Revolution -- Episode II
 
Dds presentation brussels
Dds presentation brusselsDds presentation brussels
Dds presentation brussels
 
Tuning and Troubleshooting OpenSplice DDS Applications
Tuning and Troubleshooting OpenSplice DDS ApplicationsTuning and Troubleshooting OpenSplice DDS Applications
Tuning and Troubleshooting OpenSplice DDS Applications
 
Why join ECCMA
Why join ECCMAWhy join ECCMA
Why join ECCMA
 
Why join eccma 2013 02-26
Why join eccma 2013 02-26Why join eccma 2013 02-26
Why join eccma 2013 02-26
 

More from Angelo Corsaro

zenoh: The Edge Data Fabric
zenoh: The Edge Data Fabriczenoh: The Edge Data Fabric
zenoh: The Edge Data FabricAngelo 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 MonetisationAngelo 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 computeAngelo Corsaro
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolAngelo Corsaro
 
zenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolzenoh -- the ZEro Network OverHead protocol
zenoh -- the ZEro Network OverHead protocolAngelo 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 ComputingAngelo Corsaro
 
fog05: The Fog Computing Infrastructure
fog05: The Fog Computing Infrastructurefog05: The Fog Computing Infrastructure
fog05: The Fog Computing InfrastructureAngelo 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 AgeAngelo Corsaro
 
fog05: The Fog Computing Platform
fog05: The Fog Computing Platformfog05: The Fog Computing Platform
fog05: The Fog Computing PlatformAngelo Corsaro
 
Programming in Scala - Lecture Four
Programming in Scala - Lecture FourProgramming in Scala - Lecture Four
Programming in Scala - Lecture FourAngelo Corsaro
 
Programming in Scala - Lecture Three
Programming in Scala - Lecture ThreeProgramming in Scala - Lecture Three
Programming in Scala - Lecture ThreeAngelo Corsaro
 
Programming in Scala - Lecture Two
Programming in Scala - Lecture TwoProgramming in Scala - Lecture Two
Programming in Scala - Lecture TwoAngelo Corsaro
 
Programming in Scala - Lecture One
Programming in Scala - Lecture OneProgramming in Scala - Lecture One
Programming in Scala - Lecture OneAngelo 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 EnvionrmentsAngelo Corsaro
 
The DDS Security Standard
The DDS Security StandardThe DDS Security Standard
The DDS Security StandardAngelo Corsaro
 
RUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming RuminationsRUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming RuminationsAngelo Corsaro
 
Vortex II -- The Industrial IoT Connectivity Standard
Vortex II -- The  Industrial IoT  Connectivity StandardVortex II -- The  Industrial IoT  Connectivity Standard
Vortex II -- The Industrial IoT Connectivity StandardAngelo 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
 
RUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming RuminationsRUSTing -- Partially Ordered Rust Programming Ruminations
RUSTing -- Partially Ordered Rust Programming Ruminations
 
Vortex II -- The Industrial IoT Connectivity Standard
Vortex II -- The  Industrial IoT  Connectivity StandardVortex II -- The  Industrial IoT  Connectivity Standard
Vortex II -- The Industrial IoT Connectivity Standard
 

Recently uploaded

Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 

DDS for JMS Programmers

  • 1. Angelo Corsaro, Ph.D. Chief Technology Officer! OMG DDS Sig Co-Chair PrismTech angelo.corsaro@prismtech.com!
  • 3. Standards Compared Copyright  2010,  PrismTech  –    All  Rights  Reserved.   DDS Standard v1.2 2004 JMS Standard v1.1 2001 ¨  Programming Language ¨  Java Messaging API (Pub/ Independent API for Data- Sub + PTP) portable across Centric Pub/Sub messaging implementations ¨  Interoperable Wire- Protocol (DDSI/RTPS)
  • 4. Standards Compared DDS ensures portability and JMS focuses only on application Copyright  2010,  PrismTech  –    All  Rights  Reserved.   ¨  ¨  interoperability across portability across implementation of the standard implementation of the standard Application Application DDS API JMS API Standard Standard DDSI JMS Provider
  • 5. Standards Compared DDS Standard Copyright  2010,  PrismTech  –    All  Rights  Reserved.   JMS Standard ¨  Promotes Fully Distributed ¨  Promotes Hub and Spoke Architectures Architectures ¨  Provides mechanisms for ¨  Fully distributed transparently using Brokers/ architectures are possible Routers but complicated by some use cases
  • 6. Standardization " Activity
  • 7. JMS Copyright  2010,  PrismTech  –    All  Rights  Reserved.   ¨  The JMS standard has not been evolving after the v1.1 released in 2002
  • 8. DDS Standard Evolution Copyright  2010,  PrismTech  –    All  Rights  Reserved.   App Standard API 2004 DDS §  Standard API for Data- Centric Real-Time Pub/Sub §  Automatic fail-over §  Persistence §  Dynamic Discovery §  Content Filtering / Queries
  • 9. DDS Standard Evolution Copyright  2010,  PrismTech  –    All  Rights  Reserved.   App App Standard API 2004 2004 DDS DDS 2006 2006 DDSI/RTPS network DDSI/RTPS Interoperable Wire Protocol §  High Performance §  Interoperable Wire Protocol
  • 10. DDS Standard Evolution 2008 2008 UML4DDS §  UML-Based Modeling of UML4DDS Copyright  2010,  PrismTech  –    All  Rights  Reserved.   DDS applications App App Standard API 2004 2004 DDS DDS 2006 2006 DDSI/RTPS network DDSI/RTPS Interoperable Wire Protocol
  • 11. DDS Standard Evolution 2008 2008 UML4DDS UML4DDS Copyright  2010,  PrismTech  –    All  Rights  Reserved.   App App Standard API 2004 2004 2010 2010 DDS DDS X-Types X-Types 2006 2006 DDSI/RTPS network DDSI/RTPS §  Extensible/Evolvable Type Interoperable System Wire Protocol §  Dynamic Topic Types, Data Readers & Writers §  Encoding Negotiation
  • 12. DDS Standard Evolution 2008 §  ISO C++ DDS PSM 2008 §  Simple, Safe, Efficient, UML4DDS UML4DDS Copyright  2010,  PrismTech  –    All  Rights  Reserved.   Elegant and Ergonomic API App App Standard API 2004 2010 2004 ISO-C++ PSM 2010 2010 DDS DDS X-Types X-Types 2006 2006 DDSI/RTPS network DDSI/RTPS Interoperable Wire Protocol
  • 13. DDS Standard Evolution 2008 §  Java 5 DDS PSM 2008 §  Simple, Safe, Efficient, UML4DDS UML4DDS Copyright  2010,  PrismTech  –    All  Rights  Reserved.   Elegant and Ergonomic API App App Standard API 2004 2010 2010 2004 ISO-C++ PSM Java5 PSM 2010 2010 DDS DDS X-Types X-Types 2006 2006 DDSI/RTPS network DDSI/RTPS Interoperable Wire Protocol
  • 14. DDS Standard Evolution 2008 2008 UML4DDS UML4DDS Copyright  2010,  PrismTech  –    All  Rights  Reserved.   App App Standard API 2004 2010 2010 2004 2011 2011 Web-DDS Web-DDS ISO-C++ PSM Java5 PSM 2010 2010 DDS DDS X-Types X-Types 2006 2006 DDSI/RTPS network DDSI/RTPS Interoperable §  Standardized way of Wire Protocol accessing DDS from Web Technologies §  REST, W3C WS-*, RSS, etc.
  • 15. DDS Standard Evolution 2008 2008 UML4DDS UML4DDS Copyright  2010,  PrismTech  –    All  Rights  Reserved.   App App Standard API 2004 2010 2010 2004 2011 2011 Web-DDS Web-DDS ISO-C++ PSM Java5 PSM 2010 2010 DDS DDS X-Types X-Types 2011 2011 ULS-DDSI network ULS-DDSI §  Ultra-Large Scale Extensions Interoperable to the DDSI/RTPS wire- Wire Protocol protocol §  New Discovery §  Support for TCP, etc.
  • 16. DDS Standard Evolution 2008 2008 UML4DDS UML4DDS Copyright  2010,  PrismTech  –    All  Rights  Reserved.   App App Standard API 2004 2010 2010 2004 2012 2011 2011 2012 Web-DDS Web-DDS ISO-C++ PSM Java5 PSM Security Security 2010 2010 DDS DDS X-Types X-Types 2011 2011 ULS-DDSI network ULS-DDSI Interoperable §  Interoperable Security Wire Protocol Architecture §  Pluggable Policy / Labeling and Tagging
  • 17. DDS Standard Evolution 2008 2008 UML4DDS §  Remote Method UML4DDS Invocations over DDS Copyright  2010,  PrismTech  –    All  Rights  Reserved.   §  Synchronous, Asynchronous App and one ways RMI App 2012 2012 Standard API DDS-RMI DDS-RMI 2004 2010 2010 2004 2012 2011 2011 2012 Web-DDS Web-DDS ISO-C++ PSM Java5 PSM Security Security 2010 2010 DDS DDS X-Types X-Types 2011 2011 ULS-DDSI network ULS-DDSI Interoperable Wire Protocol
  • 19. JMS DDS Connection Connection Domain Participant Copyright  2010,  PrismTech  –    All  Rights  Reserved.   Session Session Publisher Subscriber Establishes connection with Gives access to a the Broker DDS Domain Pub/Sub Producer Destination Consumer DataWriter Topic DataReader
  • 20. JMS DDS Connection Connection Domain Participant Copyright  2010,  PrismTech  –    All  Rights  Reserved.   Session Session Publisher Subscriber Pub/Sub Producer Destination Consumer DataWriter Manage publishers Topic DataReader Establishes a JMS and subscribers Session sessions
  • 21. JMS DDS Connection Connection Domain Participant Copyright  2010,  PrismTech  –    All  Rights  Reserved.   Session Session Publisher Subscriber Pub/Sub Producer Destination Consumer DataWriter Topic DataReader Reader/Writer for Messaging Abstractions. application A Destination can be a defined Topic Topic or a Queue Types
  • 22. Note: Topics are the kind of JMS Destination associated with the Pub/Sub Domain Pub/Sub & Topics
  • 23. JMS Topics ¨  A Topic defines the subject of Copyright  2010,  PrismTech  –    All  Rights  Reserved.   publications and subscriptions ¨  The topic name has a weakly defined semantics w.r.t. the subscription matching ¨  Topics are Administered Objects and should preferably be defined outside the application. API for local definition also exist
  • 24. DDS Topics [1/2] “com.myco.VPos” ¨  A Topic defines the subject of Copyright  2010,  PrismTech  –    All  Rights  Reserved.   publications and subscriptions ¨  A Topic has associated a user defined extensible type and QoS ¨  The Topic name, type and QoS have a well defined role in matching subscriptions ¨  Topics can be discovered or locally defined struct VehiclePosition{! string plate; @Key! DURABILITY, DEADLINE, long x;! PRIORITY, longy;! }! …
  • 25. DDS Topics [2/2] “com.myco.VPos” Copyright  2010,  PrismTech  –    All  Rights  Reserved.   ¨  DDS Topic types can have associated keys ¨  Each unique key-value identify a Topic Instance – a specific stream of values struct VehiclePosition{! DURABILITY, string plate; @Key! DEADLINE, long x;! PRIORITY, longy;! }! …
  • 27. JMS Connection // Get connectionFactory from JNDI! Connection Connection c = ! connectionFactory.createConnection();! Copyright  2010,  PrismTech  –    All  Rights  Reserved.   Session Session Domain Establishes Participant connection with the Broker Pub/Sub Producer Topic Consumer Publisher Topic Subscriber Reader/Writers DataWrter DataReader User Defined for Types
  • 28. JMS Connection // Get connectionFactory from JNDI! Connection Connection c = ! connectionFactory.createConnection();! Copyright  2010,  PrismTech  –    All  Rights  Reserved.   Session Session s = ! Session c.createSession(false, ! Session.AUTO_ACKNOWLDEGE);! Pub/Sub Producer Topic Consumer Establishes a JMS Session Reader/Writers User Defined for Types
  • 29. JMS Connection // Get connectionFactory from JNDI! Connection Connection c = ! connectionFactory.createConnection();! Copyright  2010,  PrismTech  –    All  Rights  Reserved.   Session Session s = ! Session c.createSession(false, ! Session.AUTO_ACKNOWLDEGE);! Pub/Sub // Look-up destination from JNDI! Destination d = ! Producer Destination Consumer (Destination )jndi.lookup(destName);! ! // Create a Producer! MessageProducer mp = s.createProducer(d);! ! // Create a Consumer! Reader/Writers MessageConsumer mc = s.createConsumer(d);! Messaging Abstractions. User Defined for Types be a A Destination can Topic or a Queue
  • 30. DDS Connection Domain DomainParticipant dp = ! theDomainParticipantFactory().create_participant(0);! Participant Copyright  2010,  PrismTech  –    All  Rights  Reserved.   Session Publisher Subscriber Gives access to a DDS Domain Pub/Sub DataWriter Topic DataReader
  • 31. DDS Connection Domain DomainParticipant dp = ! theDomainParticipantFactory().create_participant(0);! Participant Copyright  2010,  PrismTech  –    All  Rights  Reserved.   Session // Create a Publisher / Subscriber! Publisher p = dp.create_publisher();! Subscriber s = dp.create_subscriber();! Publisher Subscriber // Create a Topic! Topic<Foo> t = dp.create_topic<Foo>(name)! Pub/Sub DataWriter Manage publishers Topic DataReader and subscribers sessions
  • 32. DDS Connection Domain DomainParticipant dp = ! theDomainParticipantFactory().create_participant(0);! Participant Copyright  2010,  PrismTech  –    All  Rights  Reserved.   Session // Create a Publisher / Subscriber! Publisher p = dp.create_publisher();! Subscriber s = dp.create_subscriber();! Publisher Subscriber // Create a Topic! Topic<Foo> t = dp.create_topic<Foo>(name)! Pub/Sub // Create a DataWriter/DataWriter! DataWriter<Foo> dw = pub.create_datawriter(t);! DataWriter Topic DataReader DataReader<Foo> dr = sub.create_datareader(t);! Reader/Writer for application defined Topic Types
  • 33. ¨  JMS allows to distribute Messages ¨  DDS allows to share Data ¨  Both DDS and JMS provide a Topic-Based Pub/Sub abstraction to match interests Messages & Data
  • 34. JMS Message Text Map Object JMS Messages are Copyright  2010,  PrismTech  –    All  Rights  Reserved.   ¨  composed by ¨  Header – Used for routing Stream Body Byte Body ¨  Property – Filtering, etc. ¨  Body – Data 5 Different Body types Message ¨  are supported Header Properties
  • 35. Topic Types struct VehiclePosition{! string plate; //@Key! ¨  Topic types can be defined long x;! in IDL, UML, XML, Java Copyright  2010,  PrismTech  –    All  Rights  Reserved.   long y;! }! ¨  Topics types are extensible and evolvable ¨  Rich set of annotations to Topic TrakCo.VehiclePosition deal with fields that might be optional, shared, etc. Topic Type VehiclePosition Topic Key plate x y ¨  Each unique key value identifies a Topic Instance “A123” 101 202 Topic Instances “B456” 303 202 ¨  Topic Instance, can be Created, Read, Updated, “C789” 101 606 and Disposed (CRUD)
  • 36. In Summary Copyright  2010,  PrismTech  –    All  Rights  Reserved.   DDS JMS ¨  Topics have associated ¨  Topics represent a kind user defined Types of Destination for Messages ¨  These user defined types ¨  User-Types have to be are used to read/write mapped into one of the topic instances 5 message bodies defined by JMS
  • 37. Sending/Receiving Messages
  • 38. Sending Message Copyright  2010,  PrismTech  –    All  Rights  Reserved.   ¨  JMS provides 5 // Create a Text Message! TextMessage tm = s.createTextMessage(“Hello”);! message body types // Send the Text Message! mp.send(tm);! ! ¨  Messages are sent through the Producer
  • 39. Sending Message class VehiclePosition ! implements java.io.Serializable {! private String plate;! private long x;! private long y;! ! // Ctors / Setters / Getters! }! Copyright  2010,  PrismTech  –    All  Rights  Reserved.   ¨  JMS provides 5 ! VehiclePosition vp = ! message body types ! new VehiclePosition(“Hello”, 10, 20);! // Create an Object Message! ObjectMessage om = s.createObjectMessage(vp);! ¨  Messages are sent // Send the Object Message! mp.send(om);! through the Producer !
  • 40. Receiving Messages ¨  JMS Application receive generic Message and Copyright  2010,  PrismTech  –    All  Rights  Reserved.   have to understand what the type is (usually // Receive Message…! TextMessage tm = (TextMessage)ms.receive();! via down-casts) String str = tm.getText();! ! ¨  Messages can be read proactively or listener can be registered ¨  Messages are retrieved one at the time
  • 41. Receiving Messages ¨  JMS Application receive generic Message and Copyright  2010,  PrismTech  –    All  Rights  Reserved.   have to understand what the type is (usually ! ObjectMessage om = (ObjectMessage)ms.receive();! via down-casts) VehiclePosition vp = (VehiclePosition)om.getObject();! ! // Notice that any of the casts above could fail ! ¨  Messages can be read // at runtime…! proactively or listener can be registered ¨  Messages are retrieved one at the time
  • 43. class VehiclePosition {! Writing Data public:! const std::string& plate() const;! void plate(const std::string& s);! int32_t x() const;! void x(int32_t i);! int32_t y() const;! void y(int32_t i);! ¨  DDS allows // Encapsulated State Representation! };! Copyright  2010,  PrismTech  –    All  Rights  Reserved.   applications to define their own data types VehiclePosition vp(“Hello”, 10, 20);! dw << vp;! and associate them ! // Alternative Syntax! with Topics dw.write(vp);! ! ! ¨  Topic updates are written through the DataWriter
  • 44. Reading Data ¨  DDS provide a strongly Copyright  2010,  PrismTech  –    All  Rights  Reserved.   typed API for reading data that relies on DataReaders // Read Data! ! ¨  Messages can be read std::vector<VehiclePosition> data(size);! proactively or listener can std::vector<SampleInfo> info(size);! ! be registered dr.read(data.begin(), info.begin(), size);! ¨  DDS provides A very flexible selection mechanism for topic samples
  • 45. DDS vs. JMS ¨  DDS provides an end-to- ¨  JMS requires user to “guess Copyright  2010,  PrismTech  –    All  Rights  Reserved.   end type-safe abstraction types” this introduce for distributing publications potential for runtime errors of user defined topic types // Receive Message…! TextMessage tm = (TextMessage)ms.receive();! String str = tm.getText();! // Read Data! ! ! // =============================================! std::vector<VehiclePosition> data(size);! ! std::vector<SampleInfo> info(size);! ObjectMessage om = (ObjectMessage)ms.receive();! ! VehiclePosition vp = (VehiclePosition)om.getObject();! dr.read(data.begin(), info.begin(), size);! ! // Notice that any of the casts above could fail ! // at runtime…!
  • 47. Instance/History Management ¨  An Instance per unique key value Copyright  2010,  PrismTech  –    All  Rights  Reserved.   ¨  An update for a Topic Instance is called Sample ¨  DDS can maintain a configurable history of samples per Topic Instance
  • 48. com.myco.VPos com.myco.VPos DDS JMS Topic Instances vs. Messages Copyright  2010,  PrismTech  –    All  Rights  Reserved.  
  • 49. Topic Instances vs. Messages DDS New Copyright  2010,  PrismTech  –    All  Rights  Reserved.   “A01” 100 200 com.myco.VPos JMS “A01” 100 200 com.myco.VPos
  • 50. Topic Instances vs. Messages DDS New Copyright  2010,  PrismTech  –    All  Rights  Reserved.   “A01” 100 200 New “B41” 57 31 com.myco.VPos JMS “B41” 57 31 “A01” 100 200 com.myco.VPos
  • 51. Topic Instances vs. Messages DDS New Copyright  2010,  PrismTech  –    All  Rights  Reserved.   “A01” 110 210 “A01” 100 200 New “B41” 57 31 com.myco.VPos JMS “A01” 110 210 “B41” 57 31 “A01” 100 200 com.myco.VPos
  • 52. Topic Instances vs. Messages DDS New Copyright  2010,  PrismTech  –    All  Rights  Reserved.   “A01” 120 220 “A01” 110 210 “A01” 100 200 New “B41” 57 31 com.myco.VPos JMS “A01” 120 220 “A01” 110 210 “B41” 57 31 “A01” 100 200 com.myco.VPos
  • 53. Topic Instances vs. Messages DDS New Copyright  2010,  PrismTech  –    All  Rights  Reserved.   “A01” 120 220 “A01” 110 210 “A01” 100 200 New “B41” 47 19 “B41” 57 31 com.myco.VPos JMS “B41” 47 19 “A01” 120 220 “A01” 110 210 “B41” 57 31 “A01” 100 200 com.myco.VPos
  • 54. Topic Instances vs. Messages DDS New Copyright  2010,  PrismTech  –    All  Rights  Reserved.   “A01” 120 220 “A01” 110 210 “A01” 100 200 New “B41” Dis- osed p - “B41” 47 19 “B41” 57 31 com.myco.VPos JMS “B41” 47 19 “A01” 120 220 “A01” 110 210 “B41” 57 31 “A01” 100 200 com.myco.VPos
  • 55. Dynamic Discovery Copyright  2010,  PrismTech  –    All  Rights  Reserved.   ¨  DDS dynamically discovers publishers, subscribers as well as Topics ¨  Dynamic Discovery has a key role in subscriptions matching ¨  No global configuration is required
  • 56. QoS Framework ¨  DDS provides a mechanism for Copyright  2010,  PrismTech  –    All  Rights  Reserved.   Type Matching end-to-end QoS QoS matching matching QoS QoS QoS QoS QoS QoS QoS Topic Name Publisher Subscriber Communication is ... DataWriter writes Type reads DataReader ... ¨  ... established iff the DomainParticipant DataWriter writes Type reads DataReader DomainParticipant QoS offered by the Name Topic publisher QoS QoS QoS matches/exceeds that requested by the subscriber
  • 57. QoS Policies QoS Policy Applicability RxO Modifiable DURABILITY T, DR, DW Y N DURABILITY T, DW N N Copyright  2010,  PrismTech  –    All  Rights  Reserved.   SERVICE Data Availability LIFESPAN T, DW N/A Y QoS Policy Applicability RxO Modifiable HISTORY T, DR, DW N N TIME BASED DR N/A Y PRESENTATION P, S Y N FILTER Resources RESOURCE T, DR, DW N N RELIABILITY T, DR, DW Y N LIMITS PARTITION P, S N Y ENTITY Data FACTORY DESTINATION T, DR, DW Y N Delivery USER DATA DP, DR, DW N Y ORDER T N Y Configuration OWNERSHIP T, DR, DW Y N TOPIC DATA OWNERSHIP DW N/A Y GROUP DATA P, S N Y STRENGTH LIVELINESS T, DR, DW Y N DEADLINE T, DR, DW Y Y WRITER DATA DW N/A Y LATENCY T, DR, DW Y Y LIFECYCLE Data Lifecycle BUDGET READER DATA DR N/A Y Timeliness TRANSPORT T, DW N/A Y LIFECYCLE PRIORITY
  • 58. Content Awareness ¨  DDS make it possible struct VehiclePosition{! string plate; @Key! Copyright  2010,  PrismTech  –    All  Rights  Reserved.   express filters and long x;! long y;! queries on the whole }! content of a topic type ¨  Filters can be used to Filter Examples: establish content filtered subscriptions “x < %0 AND y < %1” “y BETWEEN (10 AND 20)” ¨  Queries can be used to create local views of available data
  • 59. High Performance Copyright  2010,  PrismTech  –    All  Rights  Reserved.   ¨  OpenSplice DDS is 2.5x-3x faster than high performance JMS implementations
  • 60. High Performance Copyright  2010,  PrismTech  –    All  Rights  Reserved.   ¨  OpenSplice DDS delivers very low and predictable latencies Latency (usec) ¨  No other Pub/Sub technology can approach similar level of performance! Size (bytes)
  • 62. Integrating JMS with DDS OpenSplice DDS Connector Existing JMS systems can be Copyright  2010,  PrismTech  –    All  Rights  Reserved.   ¨  Custom Connectors easily integrated with DDS today using Apache Camel OpenSplice DDS Custom ULS DDSI High Performance, High BLEND-Box WS-* ¨  Availability Integration of DDSI REST JMS DDS with JMS will also available through the Blend- Box (available later this year) DDS Connectors Web Connectors compliant with the Web-Enabled DDS Specificaiton
  • 65. Concluding Remarks ¨  DDS is a powerful lively standard for publish/ Copyright  2010,  PrismTech  –    All  Rights  Reserved.   subscribe ¨  DDS provides some very useful abstractions not available in JMS, such as user-defined types, instances, history, etc. ¨  DDS can be as simple to use as JMS, but when required provides far more knobs for tuning scalability, performance and QoS
  • 66. OpenSplice DDS Delivering Performance, Openness, and Freedom http://www.opensplice.com/ http://www.opensplice.org/ http://www.slideshare.net/angelo.corsaro emailto:opensplicedds@prismtech.com Copyright  2010,  PrismTech  –    All  Rights  Reserved.   http://bit.ly/1Sreg http://twitter.com/acorsaro/ http://www.youtube.com/OpenSpliceTube http://opensplice.blogspot.com