DDS vs. XMPP



   Angelo Corsaro              Gerardo Pardo-Castellote
  OMG DDS Co-Chair               OMG DDS Co-Chair
        PrismTech                         RTI
angelo.corsaro@prismtech.com         gerardo@rti.com




                                                          1
Agenda

- XMPP Intro
- Some XMPP Extension
- XMPP vs DDS
- Concluding Remarks




                  OMG DDS SIG
XMPP History

XMPP = eXtensible Messaging and Presence Protocol

- 1999: Jabber starts as an Open Source project
- 2001: Jabber Software Foundation (JSF) is established
- 2002: XMPP Working Group started at IETF
- 2004: XMPP RFCs (3920-3923)
- 2006: JSF becomes the XMPP Standards Foundation




                        OMG DDS SIG
Core XMPP Features

- XMPP started as a standard for messaging and
 presence. Today it is more than simply messaging
 and presence, providing:
     Channel encryption and authentication
     Presence and Contact Lists
     One-to-one and Multi-Party Messaing
     Alerts and Notifications (XMPP Pub/Sub extension)
     Peer-to-Peer Media Sessions (Jingle)
     Data Forms and Remote Command


                          OMG DDS SIG
XMPP Architecture
- Client/Server
- Network of Decentralized Servers
- (Authenticated) Long Lived Connection from Client to Servers

             Server                                    Server
          jabber.org                                  mac.com




 <message to=‘giorgia@jabber.org’>
   <body> Have you seen my new
          stratocaster?
   </body>
 </message>




         Carmen                                         Giorgia
    carmen@jabber.org                OMG DDS SIG   giorgia@mac.com
Addressing

- User are addressed by Jabber ID (JID)
     es. carmen@jabber.com


- Resource can be addressed via full JID
     es. carme@jabber.com/concerts




                          OMG DDS SIG
Communication Primitives

- XMPP defines three different communication
 primitives--called stanzas

- XMPP Stanzas are:
     <message/>
     <presence/>
     <iq/>




                      OMG DDS SIG
<message/>

- A <message/> stanza contains:
     From, To
     Type
     Subject + Body (Payload)


      <message from=‘carmen@jabber.com
                to=‘giorgia@jabber.org’>
        <subject>Got a new Strato!</subject>
        <body> Have you seen my new
               stratocaster?
        </body>
      </message>

                           OMG DDS SIG
<presence/>

- The <presence/> stanza is used to advertise
 presence and contains:
     Status
     Status Message


      <presence from=‘carmen@jabber.com>
        <show>xa</show>
        <status>C9sus</status>
      </presence>




                         OMG DDS SIG
<iq/>

- The <iq/> stanza is used to perform Request/
 Response interactions (similar to HTTP GET, POST,
 PUT)
   <iq type=”get”>
     <query xmlns=”jabber:iq:roster”/>
   </iq>

   <iq type=”result”>
     <query xmlns=”jabber:iq:roster”>
         <item jid=”carmen@jabber.org”/>
         <item jid=”mario@jabber.org”/>
         <item jid=”franco@jabber.org/>
     </query>
   </iq>
                         OMG DDS SIG
Agenda

- XMPP Intro
- Some XMPP Extension
- XMPP vs DDS
- Concluding Remarks




                  OMG DDS SIG
Pub/Sub Extension

- XMPP has been extended with basic Pub/Sub
 capabilities

- <iq/> stanzas are used to manage subscriptions,
 as well as to do pub/sub




                      OMG DDS SIG
Pub/Sub Extension - Subscription


 <iq from=”carmen@jabber.org”
     id=”cc7409”
     to=”notify.jabber.org”
     type=”set”>

   <pubsub xmlns=”http://jabber.org/protocol/pubsub”>
     <subscribe node=”musicisti-ct”
                jid=”carmen@jabber.org”/>
 </iq>




                       OMG DDS SIG
Pub/Sub in XMPP
musicisti-ct {
  carmen@jabber.org
                                             Mario
  giorgia@mac.com             Server
  mario@xmpp.org                        mario@xmpp.org
}                          xmpp.org


             Server                         Server
           jabber.org                      mac.com




           Carmen                            Giorgia
      carmen@jabber.org                 giorgia@mac.com
                          OMG DDS SIG
Pub/Sub in XMPP
musicisti-ct {
  carmen@jabber.org
                                                      Mario
  giorgia@mac.com                      Server
  mario@xmpp.org                                 mario@xmpp.org
}                                   xmpp.org


              Server                                 Server
            jabber.org                              mac.com


      <iq
      from=”carme@jabber.org”
          to=notify.jabber.org”>
      ...
      </iq>




           Carmen                                     Giorgia
      carmen@jabber.org                          giorgia@mac.com
                                   OMG DDS SIG
Pub/Sub in XMPP
musicisti-ct {
  carmen@jabber.org
                                                                          Mario
  giorgia@mac.com
                <iq                              Server
  mario@xmpp.orgfrom=”carme@jabber.org”                              mario@xmpp.org
                    to=notify.jabber.org”>    xmpp.org
}               ...
                  </iq>


               Server                                                    Server
             jabber.org                                                 mac.com
                                        <iq
                                        from=”carme@jabber.org”
                                            to=notify.jabber.org”>
                                        ...
                                        </iq>




            Carmen                                                        Giorgia
       carmen@jabber.org                                             giorgia@mac.com
                                             OMG DDS SIG
Pub/Sub in XMPP                           <iq
                                            from=”carme@jabber.org”
                                                to=notify.jabber.org”>
                                            ...
                                            </iq>
musicisti-ct {
  carmen@jabber.org
                                                               Mario
  giorgia@mac.com             Server
  mario@xmpp.org                                          mario@xmpp.org
}                          xmpp.org


             Server                                                  Server
           jabber.org                                           mac.com


                                        <iq
                                        from=”carme@jabber.org”
                                            to=notify.jabber.org”>
                                        ...
                                        </iq>



           Carmen                                               Giorgia
      carmen@jabber.org                                    giorgia@mac.com
                          OMG DDS SIG
Jingle Extension

- XMPP is not designed for distributing data with
 real-time constraints

- XMPP Jingle is used to set-up direct connections
 between points for streaming
     Voice
     Audio
     Video
     ...

- After negotiating a connection via XMPP,
 communication goes through other protocols, e.g.,
 RTP, etc.
                         OMG DDS SIG
Agenda

- XMPP Intro
- Some XMPP Extension
- XMPP vs DDS
- Concluding Remarks




                  OMG DDS SIG
What is Standardized?
- DDS                                                     - XMPP
     API Standard
     Wire Protocol Standard                                      Wire Protocol Standard

                 Application
                                                                            Application
                     Object/Relational Mapping

              Data Local Reconstruction Layer (DLRL)




                                                       DDS v1.2
                                         Content
Ownership           Durability
                                       Subscription

                Minimum Profile
                                                                                API (?)
      Data Centric Publish/Subscribe (DCPS)
                                                       DDSI v2.1




                                                                                                      RFC-3920/9
                                                                           eXtensible Messaging and
      Real-Time Publish/Subscribe Protocol                                     Presence Protocol

        DDS Interoperability Wire Protocol                                      Wire Protocol

                     UDP/IP                                                         TCP

                                                 OMG DDS SIG
Architecture
- DDS                                                         - XMPP
           Fully Distributed                                    Store and Forward
           Topic-Based Pub/Sub                                  Client/Server
           QoS Enabled                                          Pub/Sub as a protocol extension
           Data Centric (keys, queries, etc.)                   “Source Addressing”-based
                                                                  discovery
           Dynamic Discovery



                       DDS                                                     XMPP
                                         Subscriber
Publisher
                                                                   Server             Server
                   B

                       m
                                                                  jabber.org        mac.com
                   A           F

                                           Subscriber
Publisher          J
                           D       C


                   K
                           E




Publisher
                                                                   Client             Client
                                       Subscriber


                                                OMG DDS SIG
Type/Message Encoding

- DDS                              - XMPP
     Efficient binary encoding          XML encoding for both data
      for both data-payload               payload and protocol
      and protocol messages               messages
     Strongly Typed Topic               Just one message type, an
      Types                               XML message
     Polymorphic Type
     Type extensibility/                Type extensibility/evolvability
      evolvability supported by           by leveraging XML
      upcoming xTopics RFP

     Note: Multiple encoding
      supported via xTopics


                            OMG DDS SIG
Performance

- DDS                                    - XMPP
    Targeting high performance             Targeting interactive systems
     systems                                Discovery traffic often shown
    Very low latencies                      to introduce non-negligible
    Very high throughputs                   load
    Real-Time determinism




                           OMG DDS SIG
Agenda

- XMPP Intro
- Some XMPP Extension
- XMPP vs DDS
- Concluding Remarks




                  OMG DDS SIG
Concluding Remarks

- DDS and XMPP target different application domains
- DDS is able to address very sophisticated data
 distribution needs, where complex QoS need to be
 satisfied

- XMPP is targeting interactive web applications
- DDS provides complete transparency w.r.t changes
 in the infrastructure

- Due to its “source-addressing”-based discovery
 XMPP might propagate back to the application
 changes into the infrastructure

                         OMG DDS SIG

DDS and XMPP

  • 1.
    DDS vs. XMPP Angelo Corsaro Gerardo Pardo-Castellote OMG DDS Co-Chair OMG DDS Co-Chair PrismTech RTI angelo.corsaro@prismtech.com gerardo@rti.com 1
  • 2.
    Agenda - XMPP Intro -Some XMPP Extension - XMPP vs DDS - Concluding Remarks OMG DDS SIG
  • 3.
    XMPP History XMPP =eXtensible Messaging and Presence Protocol - 1999: Jabber starts as an Open Source project - 2001: Jabber Software Foundation (JSF) is established - 2002: XMPP Working Group started at IETF - 2004: XMPP RFCs (3920-3923) - 2006: JSF becomes the XMPP Standards Foundation OMG DDS SIG
  • 4.
    Core XMPP Features -XMPP started as a standard for messaging and presence. Today it is more than simply messaging and presence, providing:  Channel encryption and authentication  Presence and Contact Lists  One-to-one and Multi-Party Messaing  Alerts and Notifications (XMPP Pub/Sub extension)  Peer-to-Peer Media Sessions (Jingle)  Data Forms and Remote Command OMG DDS SIG
  • 5.
    XMPP Architecture - Client/Server -Network of Decentralized Servers - (Authenticated) Long Lived Connection from Client to Servers Server Server jabber.org mac.com <message to=‘giorgia@jabber.org’> <body> Have you seen my new stratocaster? </body> </message> Carmen Giorgia carmen@jabber.org OMG DDS SIG giorgia@mac.com
  • 6.
    Addressing - User areaddressed by Jabber ID (JID)  es. carmen@jabber.com - Resource can be addressed via full JID  es. carme@jabber.com/concerts OMG DDS SIG
  • 7.
    Communication Primitives - XMPPdefines three different communication primitives--called stanzas - XMPP Stanzas are:  <message/>  <presence/>  <iq/> OMG DDS SIG
  • 8.
    <message/> - A <message/>stanza contains:  From, To  Type  Subject + Body (Payload) <message from=‘carmen@jabber.com to=‘giorgia@jabber.org’> <subject>Got a new Strato!</subject> <body> Have you seen my new stratocaster? </body> </message> OMG DDS SIG
  • 9.
    <presence/> - The <presence/>stanza is used to advertise presence and contains:  Status  Status Message <presence from=‘carmen@jabber.com> <show>xa</show> <status>C9sus</status> </presence> OMG DDS SIG
  • 10.
    <iq/> - The <iq/>stanza is used to perform Request/ Response interactions (similar to HTTP GET, POST, PUT) <iq type=”get”> <query xmlns=”jabber:iq:roster”/> </iq> <iq type=”result”> <query xmlns=”jabber:iq:roster”> <item jid=”carmen@jabber.org”/> <item jid=”mario@jabber.org”/> <item jid=”franco@jabber.org/> </query> </iq> OMG DDS SIG
  • 11.
    Agenda - XMPP Intro -Some XMPP Extension - XMPP vs DDS - Concluding Remarks OMG DDS SIG
  • 12.
    Pub/Sub Extension - XMPPhas been extended with basic Pub/Sub capabilities - <iq/> stanzas are used to manage subscriptions, as well as to do pub/sub OMG DDS SIG
  • 13.
    Pub/Sub Extension -Subscription <iq from=”carmen@jabber.org” id=”cc7409” to=”notify.jabber.org” type=”set”> <pubsub xmlns=”http://jabber.org/protocol/pubsub”> <subscribe node=”musicisti-ct” jid=”carmen@jabber.org”/> </iq> OMG DDS SIG
  • 14.
    Pub/Sub in XMPP musicisti-ct{ carmen@jabber.org Mario giorgia@mac.com Server mario@xmpp.org mario@xmpp.org } xmpp.org Server Server jabber.org mac.com Carmen Giorgia carmen@jabber.org giorgia@mac.com OMG DDS SIG
  • 15.
    Pub/Sub in XMPP musicisti-ct{ carmen@jabber.org Mario giorgia@mac.com Server mario@xmpp.org mario@xmpp.org } xmpp.org Server Server jabber.org mac.com <iq from=”carme@jabber.org” to=notify.jabber.org”> ... </iq> Carmen Giorgia carmen@jabber.org giorgia@mac.com OMG DDS SIG
  • 16.
    Pub/Sub in XMPP musicisti-ct{ carmen@jabber.org Mario giorgia@mac.com <iq Server mario@xmpp.orgfrom=”carme@jabber.org” mario@xmpp.org to=notify.jabber.org”> xmpp.org } ... </iq> Server Server jabber.org mac.com <iq from=”carme@jabber.org” to=notify.jabber.org”> ... </iq> Carmen Giorgia carmen@jabber.org giorgia@mac.com OMG DDS SIG
  • 17.
    Pub/Sub in XMPP <iq from=”carme@jabber.org” to=notify.jabber.org”> ... </iq> musicisti-ct { carmen@jabber.org Mario giorgia@mac.com Server mario@xmpp.org mario@xmpp.org } xmpp.org Server Server jabber.org mac.com <iq from=”carme@jabber.org” to=notify.jabber.org”> ... </iq> Carmen Giorgia carmen@jabber.org giorgia@mac.com OMG DDS SIG
  • 18.
    Jingle Extension - XMPPis not designed for distributing data with real-time constraints - XMPP Jingle is used to set-up direct connections between points for streaming  Voice  Audio  Video  ... - After negotiating a connection via XMPP, communication goes through other protocols, e.g., RTP, etc. OMG DDS SIG
  • 19.
    Agenda - XMPP Intro -Some XMPP Extension - XMPP vs DDS - Concluding Remarks OMG DDS SIG
  • 20.
    What is Standardized? -DDS - XMPP  API Standard  Wire Protocol Standard  Wire Protocol Standard Application Application Object/Relational Mapping Data Local Reconstruction Layer (DLRL) DDS v1.2 Content Ownership Durability Subscription Minimum Profile API (?) Data Centric Publish/Subscribe (DCPS) DDSI v2.1 RFC-3920/9 eXtensible Messaging and Real-Time Publish/Subscribe Protocol Presence Protocol DDS Interoperability Wire Protocol Wire Protocol UDP/IP TCP OMG DDS SIG
  • 21.
    Architecture - DDS - XMPP  Fully Distributed  Store and Forward  Topic-Based Pub/Sub  Client/Server  QoS Enabled  Pub/Sub as a protocol extension  Data Centric (keys, queries, etc.)  “Source Addressing”-based discovery  Dynamic Discovery DDS XMPP Subscriber Publisher Server Server B m jabber.org mac.com A F Subscriber Publisher J D C K E Publisher Client Client Subscriber OMG DDS SIG
  • 22.
    Type/Message Encoding - DDS - XMPP  Efficient binary encoding  XML encoding for both data for both data-payload payload and protocol and protocol messages messages  Strongly Typed Topic  Just one message type, an Types XML message  Polymorphic Type  Type extensibility/  Type extensibility/evolvability evolvability supported by by leveraging XML upcoming xTopics RFP  Note: Multiple encoding supported via xTopics OMG DDS SIG
  • 23.
    Performance - DDS - XMPP  Targeting high performance  Targeting interactive systems systems  Discovery traffic often shown  Very low latencies to introduce non-negligible  Very high throughputs load  Real-Time determinism OMG DDS SIG
  • 24.
    Agenda - XMPP Intro -Some XMPP Extension - XMPP vs DDS - Concluding Remarks OMG DDS SIG
  • 25.
    Concluding Remarks - DDSand XMPP target different application domains - DDS is able to address very sophisticated data distribution needs, where complex QoS need to be satisfied - XMPP is targeting interactive web applications - DDS provides complete transparency w.r.t changes in the infrastructure - Due to its “source-addressing”-based discovery XMPP might propagate back to the application changes into the infrastructure OMG DDS SIG