DDS and XMPP

Preview:

DESCRIPTION

This presentation provides an overview of how DDS compares and contrast with respect to XMPP.

Citation preview

1

DDS vs. XMPP

Angelo CorsaroOMG DDS Co-Chair

PrismTechangelo.corsaro@prismtech.com

Gerardo Pardo-CastelloteOMG DDS Co-Chair

RTIgerardo@rti.com

OMG DDS SIG

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

Carmencarmen@jabber.org

Giorgiagiorgia@mac.com

jabber.orgServer

mac.comServer

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

OMG DDS SIG

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

Carmencarmen@jabber.org

Giorgiagiorgia@mac.com

jabber.orgServer

mac.comServer

musicisti-ct { carmen@jabber.org giorgia@mac.com mario@xmpp.org}

Server

xmpp.org

Mariomario@xmpp.org

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

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

OMG DDS SIG

Pub/Sub in XMPP

Carmencarmen@jabber.org

Giorgiagiorgia@mac.com

jabber.orgServer

mac.comServer

musicisti-ct { carmen@jabber.org giorgia@mac.com mario@xmpp.org}

Server

xmpp.org

Mariomario@xmpp.org

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

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

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?

Object/Relational Mapping

Ownership DurabilityContent

Subscription

Minimum Profile

Data Centric Publish/Subscribe (DCPS)

Data Local Reconstruction Layer (DLRL)

DDS Interoperability Wire Protocol

Application

UDP/IP

Real-Time Publish/Subscribe Protocol

DD

SI v

2.1

DD

S v

1.2

Wire Protocol

TCP

RF

C-3

92

0/9

API (?)

Application

eXtensible Messaging and Presence Protocol

- DDS API Standard Wire Protocol Standard

- XMPP

Wire Protocol Standard

OMG DDS SIG

Architecture

- DDS Fully Distributed Topic-Based Pub/Sub QoS Enabled Data Centric (keys, queries, etc.) Dynamic Discovery

- XMPP Store and Forward Client/Server Pub/Sub as a protocol extension “Source Addressing”-based

discovery

A

B

CD

E

F

m

J

K

Publisher

SubscriberPublisher

Publisher

Subscriber

Subscriber

Client

jabber.org

Server

mac.com

Server

Client

DDS XMPP

OMG DDS SIG

Type/Message Encoding

- DDS Efficient binary encoding

for both data-payload and protocol messages

Strongly Typed Topic Types

Polymorphic Type Type extensibility/

evolvability supported by upcoming xTopics RFP

Note: Multiple encoding supported via xTopics

- XMPP XML encoding for both data

payload and protocol messages

Just one message type, an XML message

Type extensibility/evolvability by leveraging XML

OMG DDS SIG

Performance

- DDS Targeting high performance

systems Very low latencies Very high throughputs Real-Time determinism

- XMPP Targeting interactive systems Discovery traffic often shown

to introduce non-negligible load

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

Recommended