Presentation is loading. Please wait.

Presentation is loading. Please wait.

Jabber and Extensible Messaging and Presence Protocol (XMPP) Presenter: Michael Smith Cisc 856 Dec. 6, 2005.

Similar presentations


Presentation on theme: "Jabber and Extensible Messaging and Presence Protocol (XMPP) Presenter: Michael Smith Cisc 856 Dec. 6, 2005."— Presentation transcript:

1 Jabber and Extensible Messaging and Presence Protocol (XMPP) Presenter: Michael Smith Cisc 856 Dec. 6, 2005

2 What are they? Jabber –Open XML protocol for near-real-time messaging, presence and request-response services –Developed in the open source community Extensible Messaging and Presence Protocol (XMPP) –IETF proposed standard based on Jabber –Often still referred to as Jabber

3

4

5 Motivation Jeremie Miller became tired of having multiple instant messaging clients open Industry continues the push –Companies want IM/presence service for employees control over the communication –Companies don’t want traffic leaving company network

6 History Early 1998: Jeremie Miller starts jabberd server project. Jan : First announcement on Slashdot. May 2000: jabberd 1.0 released. August 2001: Jabber Software Foundation (JSF) formed to manage protocols. January 2002: JSF submits core protocols to IETF as XMPP. October 2002: IETF forms XMPP Working Group. February 2004: IESG approves XMPP specs as Proposed Standards. October 2004: IETF publishes XMPP RFCs ( ).

7 Jabber client Jabber server Gateway AOL IM network AOL IM client Jabber protocol communication AOL Instant Messaging communication Jabber example

8 Addressing Entities –Anything that can be a network end-point –Entity address is called a JID (Jabber ID) JID Contains –Domain identifier –Node identifier –Resource identifier

9 Addressing domainnoderesource Jabber server

10 Ollie.org Jabber.org Sifl.org Frank Heather Jane Mike Initial setup sends message to sends message to sends message to Negotiate connection between Ollie.org and Sifl.org Generic XMPP Message Routing

11 Extensible Markup Language (XML) Structured markup language related to HTML, but more general The semantics of data are defined by tags and attributes Elements have opening and closing tags Elements can have attributes and child elements Basic bread Flour Yeast Warm Water Salt Mix all ingredients together Cover with a cloth, and leave for one hour Knead again, and then bake in the oven. Recipe = root element Name = attribute Title = child element

12 XMPP mechanics XML-Stanzas –An element of communication –3 types message IQ (Information Query) presence XML-Streams –Entire communication between client and server –Contains unbounded number of XML-Stanzas

13 Common Attributes Attributes common to Message, Presence, and IQ stanzas –to –from –id –type

14 Message Elements Used when one client “talks” to another Push mechanism similar to Should have ‘to’ attribute Possible types (defined by type attribute) –Chat –Groupchat –Error –Headline –Normal Child elements –Subject –Body –Thread

15 Presence Elements Used to inform users of who is online Pub-Sub mechanism Types –unavailable –subscribe –unsubscribe –probe Child elements –show –status

16 Information Query (IQ) Elements Request-Response mechanism similar to HTTP Interactions tracked by ‘id’ Type (required) –get –set –result –error Semantics defined very broadly by RFC –Example use is to retrieve rosters

17 XMPP and TCP Ollie.org Mike Heather Mike wants to sign on: 1. Establish TCP connection 2. Establish XML streams One TCP connection per stream One stream from client to server, one from server to client TCP connection stays active for entire length of stream XML stream

18 XML stream establishment MikeOllie.org Start stream to server Start stream to client Negotiate TLS use TLS – Transport Layer Security. Used for data encryption (optional) Start new encrypted stream to server Start new encrypted stream to client Negotiate SASL use SASL– Simple Authentication and Security Layer. Used for authentication (required) Start final stream to server Start final stream to client

19 XMPP-IM conversation Mike Ollie.org Start stream Start IM session ACK IM session Request roster Send roster Send initial presence Send all presence info Send message to Heather Forward Message from Heather Heather logged out Log out Heather sends message Heather logs out Close stream

20 Let’s meet at the mall later Logged out Simple Client-to-Server Stream (document view) XML Stanza (A-PDU) XML Stream Start session Get roster Send initial presence Send message Log out Close stream Open stream

21 Logged out Ok. See you at 8 Logged out Simple Client-to-Server Stream (document view) Offer services Start session Send roster Send contact’s presence Send presence update Send message Open stream Send presence update Close stream

22 Extensions to Jabber Jabber Enhancement Proposals –Similar to RFCs –Final, Draft, Informational, Historical, Procedural, Humorous Examples –Service discovery –Non-SASL registration –User Avatar

23 Beyond IM XMPP has been called “Web-services lite” Generic XML routing platform XMPP used by major Wall Street firms for trading systems


Download ppt "Jabber and Extensible Messaging and Presence Protocol (XMPP) Presenter: Michael Smith Cisc 856 Dec. 6, 2005."

Similar presentations


Ads by Google