dds and xmpp

25
1 DDS vs. XMPP Angelo Corsaro OMG DDS Co-Chair PrismTech [email protected] Gerardo Pardo-Castellote OMG DDS Co-Chair RTI [email protected]

Upload: angelo-corsaro

Post on 15-Jan-2015

2.993 views

Category:

Technology


1 download

DESCRIPTION

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

TRANSCRIPT

Page 1: DDS and XMPP

1

DDS vs. XMPP

Angelo CorsaroOMG DDS Co-Chair

[email protected]

Gerardo Pardo-CastelloteOMG DDS Co-Chair

[email protected]

Page 2: DDS and XMPP

OMG DDS SIG

Agenda

- XMPP Intro

- Some XMPP Extension

- XMPP vs DDS

- Concluding Remarks

Page 3: DDS and XMPP

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

Page 4: DDS and XMPP

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

Page 5: DDS and XMPP

OMG DDS SIG

XMPP Architecture- Client/Server

- Network of Decentralized Servers

- (Authenticated) Long Lived Connection from Client to Servers

[email protected]

[email protected]

jabber.orgServer

mac.comServer

<message to=‘[email protected]’> <body> Have you seen my new stratocaster? </body></message>

Page 6: DDS and XMPP

OMG DDS SIG

Addressing

- User are addressed by Jabber ID (JID) es. [email protected]

- Resource can be addressed via full JID es. [email protected]/concerts

Page 7: DDS and XMPP

OMG DDS SIG

Communication Primitives

- XMPP defines three different communication primitives--called stanzas

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

Page 8: DDS and XMPP

OMG DDS SIG

<message/>

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

<message from=‘[email protected] to=‘[email protected]’> <subject>Got a new Strato!</subject> <body> Have you seen my new stratocaster? </body></message>

Page 9: DDS and XMPP

OMG DDS SIG

<presence/>

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

<presence from=‘[email protected]> <show>xa</show> <status>C9sus</status></presence>

Page 10: DDS and XMPP

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=”[email protected]”/> <item jid=”[email protected]”/> <item jid=”[email protected]/> </query></iq>

Page 11: DDS and XMPP

OMG DDS SIG

Agenda

- XMPP Intro

- Some XMPP Extension

- XMPP vs DDS

- Concluding Remarks

Page 12: DDS and XMPP

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

Page 13: DDS and XMPP

OMG DDS SIG

Pub/Sub Extension - Subscription

<iq from=”[email protected]” id=”cc7409” to=”notify.jabber.org” type=”set”>

<pubsub xmlns=”http://jabber.org/protocol/pubsub”> <subscribe node=”musicisti-ct” jid=”[email protected]”/></iq>

Page 18: DDS and XMPP

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.

Page 19: DDS and XMPP

OMG DDS SIG

Agenda

- XMPP Intro

- Some XMPP Extension

- XMPP vs DDS

- Concluding Remarks

Page 20: DDS and XMPP

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

Page 21: DDS and XMPP

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

Page 22: DDS and 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

Page 23: DDS and XMPP

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

Page 24: DDS and XMPP

OMG DDS SIG

Agenda

- XMPP Intro

- Some XMPP Extension

- XMPP vs DDS

- Concluding Remarks

Page 25: DDS and XMPP

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