This document compares the Data Distribution Service (DDS) and the eXtensible Messaging and Presence Protocol (XMPP). It provides an introduction to XMPP including its history, core features like messaging and presence, and extensions like pub/sub. It then compares aspects of XMPP and DDS like their standardization, architecture, communication primitives, performance, and target application domains. The concluding remarks note that DDS targets more sophisticated data distribution with quality of service requirements while XMPP focuses on interactive web applications.
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 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
7. Communication Primitives
- XMPP defines 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
- 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
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
- 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
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
- 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