0
XMPP




                                     XMPP
XMPP in
General
                      Introduction and LAS Implementati...
Outline

     XMPP

                          XMPP in General
                      1
                            Basic At...
Outline

     XMPP

                          XMPP in General
                      1
                            Basic At...
Outline

     XMPP

                          XMPP in General
                      1
                            Basic At...
What XMPP stands for

     XMPP




XMPP in
General
Basic Attributes
Technical Overview
XML in XMPP
                      ...
Some Dates and Facts

     XMPP




XMPP in
                         developed on the basis of Jabber (1992)
General
Basic...
Comparison with HTTP and ICQ

     XMPP

                                                 XMPP              OSCAR (ICQ / A...
Network Structure

     XMPP




XMPP in
General
Basic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protoc...
Use Cases

     XMPP
                      Client - Server
                          Presence Handling
XMPP in
           ...
Use Cases

     XMPP
                      Client - Server
                          Presence Handling
XMPP in
           ...
Use Cases

     XMPP
                      Client - Server
                          Presence Handling
XMPP in
           ...
Terms and Concepts (1)

     XMPP




XMPP in
General
                      Some Terms (1)
Basic Attributes
Technical Over...
Terms and Concepts (1)

     XMPP




XMPP in
General
                      Some Terms (1)
Basic Attributes
Technical Over...
Terms and Concepts (1)

     XMPP




XMPP in
General
                      Some Terms (1)
Basic Attributes
Technical Over...
Terms and Concepts (1)

     XMPP




XMPP in
General
                      Some Terms (1)
Basic Attributes
Technical Over...
Terms and Concepts (2)

     XMPP




                      Some Terms (2)
XMPP in
General
                              J...
Terms and Concepts (2)

     XMPP




                      Some Terms (2)
XMPP in
General
                              J...
Terms and Concepts (2)

     XMPP




                      Some Terms (2)
XMPP in
General
                              J...
Terms and Concepts (2)

     XMPP




                      Some Terms (2)
XMPP in
General
                              J...
Terms and Concepts (2)

     XMPP




                      Some Terms (2)
XMPP in
General
                              J...
Restrictions

     XMPP

                      XML Streams: Restrictions
                         Namespaces jabber:client...
Restrictions

     XMPP

                      XML Streams: Restrictions
                         Namespaces jabber:client...
Restrictions

     XMPP

                      XML Streams: Restrictions
                         Namespaces jabber:client...
Restrictions

     XMPP

                      XML Streams: Restrictions
                         Namespaces jabber:client...
Restrictions

     XMPP

                      XML Streams: Restrictions
                         Namespaces jabber:client...
Restrictions

     XMPP

                      XML Streams: Restrictions
                         Namespaces jabber:client...
Restrictions

     XMPP

                      XML Streams: Restrictions
                         Namespaces jabber:client...
Restrictions

     XMPP

                      XML Streams: Restrictions
                         Namespaces jabber:client...
Remarks

     XMPP


                      Remarks
XMPP in
                         a connection consists of two stream do...
Remarks

     XMPP


                      Remarks
XMPP in
                         a connection consists of two stream do...
Remarks

     XMPP


                      Remarks
XMPP in
                         a connection consists of two stream do...
Remarks

     XMPP


                      Remarks
XMPP in
                         a connection consists of two stream do...
Remarks

     XMPP


                      Remarks
XMPP in
                         a connection consists of two stream do...
Session Establishment (1)

     XMPP
                      1    <stream:stream xmlns=quot;jabber:clientquot;
             ...
Session Establishment (2)

                          ...
     XMPP
                      1    <stream:stream xmlns=quot;ja...
Session Establishment (3)

                          ...
     XMPP
                      1    <stream:stream xmlns=quot;ja...
Sending Messages

     XMPP




XMPP in
General
Basic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protoco...
Sending Messages

     XMPP

                             §                                         ¤
                    ...
Sending Messages

                                         §                                         ¤
     XMPP
         ...
Presence Handling

     XMPP



                      Some Facts
XMPP in
                         subscription to presence...
Presence Handling

     XMPP



                      Some Facts
XMPP in
                         subscription to presence...
Presence Handling

     XMPP



                      Some Facts
XMPP in
                         subscription to presence...
Presence Handling

     XMPP



                      Some Facts
XMPP in
                         subscription to presence...
Presence Handling

     XMPP



                      Some Facts
XMPP in
                         subscription to presence...
Presence Handling

     XMPP



                      Some Facts
XMPP in
                         subscription to presence...
Roster Management

     XMPP




XMPP in
General
Basic Attributes

                      Some Facts
Technical Overview
XML...
Roster Management

     XMPP




XMPP in
General
Basic Attributes

                      Some Facts
Technical Overview
XML...
Roster Management

     XMPP




XMPP in
General
Basic Attributes

                      Some Facts
Technical Overview
XML...
The Idea of XEPs

     XMPP



                         managed by XMPP Standards Foundation
XMPP in
                     ...
The Idea of XEPs

     XMPP



                         managed by XMPP Standards Foundation
XMPP in
                     ...
The Idea of XEPs

     XMPP



                         managed by XMPP Standards Foundation
XMPP in
                     ...
The Idea of XEPs

     XMPP



                         managed by XMPP Standards Foundation
XMPP in
                     ...
The Idea of XEPs

     XMPP



                         managed by XMPP Standards Foundation
XMPP in
                     ...
The Idea of XEPs

     XMPP



                         managed by XMPP Standards Foundation
XMPP in
                     ...
The Idea of XEPs

     XMPP



                         managed by XMPP Standards Foundation
XMPP in
                     ...
Programming Libraries

     XMPP


                      Objective C
                      xmppframework http://code.googl...
LAS - Architectural Overview

     XMPP




XMPP in
General
Basic Attributes
Technical Overview
XML in XMPP
Deeper Look In...
XMPP Parts for LAS

     XMPP




XMPP in
General
Basic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Proto...
Future Plans

     XMPP




XMPP in
General
                      Plans with XMPP and LAS
Basic Attributes
Technical Overv...
Future Plans

     XMPP




XMPP in
General
                      Plans with XMPP and LAS
Basic Attributes
Technical Overv...
Future Plans

     XMPP




XMPP in
General
                      Plans with XMPP and LAS
Basic Attributes
Technical Overv...
Final Words

     XMPP




XMPP in
                      <message from=quot;holger@xmpp-server.de/frontdeskquot;
General
B...
Links and Materials

   XMPP




Links and
Materials
               XMPP Core
               http://xmpp.org/rfcs/rfc3920....
Upcoming SlideShare
Loading in...5
×

XMPP - Introduction And LAS Implementation (Presentation)

2,671

Published on

Atlas Meeting

Holger Janßen
janssen [at] i5.informatik.rwth-aachen.de
Chair of Computer Science 5
Information Systems
RWTH Aachen
23rd of March 2009

Published in: Technology, News & Politics
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,671
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
136
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "XMPP - Introduction And LAS Implementation (Presentation)"

  1. 1. XMPP XMPP XMPP in General Introduction and LAS Implementation Basic Attributes Technical Overview XML in XMPP Deeper Look Inside Protocol Extensions Programming Holger Janßen Libraries janssen@i5.informatik.rwth-aachen.de LAS Imple- mentation LAS Architecture XMPP Parts Chair of Computer Science 5 Future Plans Information Systems The End RWTH Aachen 23rd of March 2009 Atlas Meeting
  2. 2. Outline XMPP XMPP in General 1 Basic Attributes XMPP in General Technical Overview Basic Attributes XML in XMPP Technical Overview XML in XMPP Deeper Look Inside Deeper Look Inside Protocol Extensions Protocol Extensions Programming Libraries Programming Libraries LAS Imple- mentation LAS Architecture LAS Implementation 2 XMPP Parts Future Plans LAS Architecture The End XMPP Parts Future Plans The End 3
  3. 3. Outline XMPP XMPP in General 1 Basic Attributes XMPP in General Technical Overview Basic Attributes XML in XMPP Technical Overview XML in XMPP Deeper Look Inside Deeper Look Inside Protocol Extensions Protocol Extensions Programming Libraries Programming Libraries LAS Imple- mentation LAS Architecture LAS Implementation 2 XMPP Parts Future Plans LAS Architecture The End XMPP Parts Future Plans The End 3
  4. 4. Outline XMPP XMPP in General 1 Basic Attributes XMPP in General Technical Overview Basic Attributes XML in XMPP Technical Overview XML in XMPP Deeper Look Inside Deeper Look Inside Protocol Extensions Protocol Extensions Programming Libraries Programming Libraries LAS Imple- mentation LAS Architecture LAS Implementation 2 XMPP Parts Future Plans LAS Architecture The End XMPP Parts Future Plans The End 3
  5. 5. What XMPP stands for XMPP XMPP in General Basic Attributes Technical Overview XML in XMPP XMPP - eXtensible Messaging and Presence Protocol Deeper Look Inside Protocol Extensions eXtensible: with XEPs (later) Programming Libraries independent of connection LAS Imple- mentation but usually transported via TCP on port LAS Architecture XMPP Parts Future Plans The End
  6. 6. Some Dates and Facts XMPP XMPP in developed on the basis of Jabber (1992) General Basic Attributes XMPP WG started in 2002 Technical Overview XML in XMPP results Deeper Look Inside Protocol Extensions Programming RFC 2779 (IM-REQS) Libraries RFC 3920 (XMPP-Core, Core XMPP protocol definition) LAS Imple- mentation RFC 3921 (XMPP-IM, Messaging and Roster LAS Architecture Management) XMPP Parts Future Plans 5 further RFCs, 158 XEPs The End e.g. XML-RPC, SOAP over XMPP, user avatars, file transfer, . . .
  7. 7. Comparison with HTTP and ICQ XMPP XMPP OSCAR (ICQ / AIM) HTTP Licence free proprietary free XMPP in General Transport usually TCP only TCP only TCP Basic Attributes Type XML binary textual Technical Overview XML in XMPP User proprietary (auth per request headers / Deeper Look Inside SASL Authentication server) session extension Protocol Extensions Programming Security SSL/TLS, StartTLS messages SSL/TLS Libraries Client-Server, OSCAR: LAS Imple- Communication Server-Server, Client-Server, ICQ: Client-Server mentation Participants Gateways Client-Client too LAS Architecture XMPP Parts Communication request-response, request-response, client Future Plans Structure server-push server-push request-response The End stateless, even in statefull, keep alive statefull, keep alive keep alive Identity JID UIN — Table: Protocol Comparison1 1 http://en.wikipedia.org/wiki/Comparison_of_instant_messaging_protocols
  8. 8. Network Structure XMPP XMPP in General Basic Attributes Technical Overview XML in XMPP Deeper Look Inside Protocol Extensions Programming Libraries LAS Imple- mentation LAS Architecture XMPP Parts Future Plans The End Figure: XMPP Network Structure
  9. 9. Use Cases XMPP Client - Server Presence Handling XMPP in Roster Management General Basic Attributes Technical Overview sending messages XML in XMPP Deeper Look Inside Protocol Extensions Programming Server - Client Libraries LAS Imple- event notification mentation LAS Architecture presence changes XMPP Parts Future Plans roster updates (other clients of the same user) The End Server - Server forwading of XMPP messages acting as gateway between different networks
  10. 10. Use Cases XMPP Client - Server Presence Handling XMPP in Roster Management General Basic Attributes Technical Overview sending messages XML in XMPP Deeper Look Inside Protocol Extensions Programming Server - Client Libraries LAS Imple- event notification mentation LAS Architecture presence changes XMPP Parts Future Plans roster updates (other clients of the same user) The End Server - Server forwading of XMPP messages acting as gateway between different networks
  11. 11. Use Cases XMPP Client - Server Presence Handling XMPP in Roster Management General Basic Attributes Technical Overview sending messages XML in XMPP Deeper Look Inside Protocol Extensions Programming Server - Client Libraries LAS Imple- event notification mentation LAS Architecture presence changes XMPP Parts Future Plans roster updates (other clients of the same user) The End Server - Server forwading of XMPP messages acting as gateway between different networks
  12. 12. Terms and Concepts (1) XMPP XMPP in General Some Terms (1) Basic Attributes Technical Overview Client any XMPP speaking entity using jabber:client XML in XMPP Deeper Look Inside to talk to a server Protocol Extensions Programming Server . . . Libraries LAS Imple- Gateway Moderating Server between two different mentation LAS Architecture networks (e.g. ICQ, XMPP, MSN XMPP Parts Future Plans Stanza any level 1 XML node below stream, XMPP The End defines message, iq and presence
  13. 13. Terms and Concepts (1) XMPP XMPP in General Some Terms (1) Basic Attributes Technical Overview Client any XMPP speaking entity using jabber:client XML in XMPP Deeper Look Inside to talk to a server Protocol Extensions Programming Server . . . Libraries LAS Imple- Gateway Moderating Server between two different mentation LAS Architecture networks (e.g. ICQ, XMPP, MSN XMPP Parts Future Plans Stanza any level 1 XML node below stream, XMPP The End defines message, iq and presence
  14. 14. Terms and Concepts (1) XMPP XMPP in General Some Terms (1) Basic Attributes Technical Overview Client any XMPP speaking entity using jabber:client XML in XMPP Deeper Look Inside to talk to a server Protocol Extensions Programming Server . . . Libraries LAS Imple- Gateway Moderating Server between two different mentation LAS Architecture networks (e.g. ICQ, XMPP, MSN XMPP Parts Future Plans Stanza any level 1 XML node below stream, XMPP The End defines message, iq and presence
  15. 15. Terms and Concepts (1) XMPP XMPP in General Some Terms (1) Basic Attributes Technical Overview Client any XMPP speaking entity using jabber:client XML in XMPP Deeper Look Inside to talk to a server Protocol Extensions Programming Server . . . Libraries LAS Imple- Gateway Moderating Server between two different mentation LAS Architecture networks (e.g. ICQ, XMPP, MSN XMPP Parts Future Plans Stanza any level 1 XML node below stream, XMPP The End defines message, iq and presence
  16. 16. Terms and Concepts (2) XMPP Some Terms (2) XMPP in General JID Jabber ID for user identification, Basic Attributes Technical Overview someone@someserver.tld/someresource XML in XMPP Deeper Look Inside Resource defined by client, Protocol Extensions Programming Libraries each entity (e.g. user) may operate multiple LAS Imple- resources simultaneously, mentation LAS Architecture resource unique per entity XMPP Parts Future Plans Roster aka Buddy List, list of user’s contacts The End Presence current status information of a user Message a simple message
  17. 17. Terms and Concepts (2) XMPP Some Terms (2) XMPP in General JID Jabber ID for user identification, Basic Attributes Technical Overview someone@someserver.tld/someresource XML in XMPP Deeper Look Inside Resource defined by client, Protocol Extensions Programming Libraries each entity (e.g. user) may operate multiple LAS Imple- resources simultaneously, mentation LAS Architecture resource unique per entity XMPP Parts Future Plans Roster aka Buddy List, list of user’s contacts The End Presence current status information of a user Message a simple message
  18. 18. Terms and Concepts (2) XMPP Some Terms (2) XMPP in General JID Jabber ID for user identification, Basic Attributes Technical Overview someone@someserver.tld/someresource XML in XMPP Deeper Look Inside Resource defined by client, Protocol Extensions Programming Libraries each entity (e.g. user) may operate multiple LAS Imple- resources simultaneously, mentation LAS Architecture resource unique per entity XMPP Parts Future Plans Roster aka Buddy List, list of user’s contacts The End Presence current status information of a user Message a simple message
  19. 19. Terms and Concepts (2) XMPP Some Terms (2) XMPP in General JID Jabber ID for user identification, Basic Attributes Technical Overview someone@someserver.tld/someresource XML in XMPP Deeper Look Inside Resource defined by client, Protocol Extensions Programming Libraries each entity (e.g. user) may operate multiple LAS Imple- resources simultaneously, mentation LAS Architecture resource unique per entity XMPP Parts Future Plans Roster aka Buddy List, list of user’s contacts The End Presence current status information of a user Message a simple message
  20. 20. Terms and Concepts (2) XMPP Some Terms (2) XMPP in General JID Jabber ID for user identification, Basic Attributes Technical Overview someone@someserver.tld/someresource XML in XMPP Deeper Look Inside Resource defined by client, Protocol Extensions Programming Libraries each entity (e.g. user) may operate multiple LAS Imple- resources simultaneously, mentation LAS Architecture resource unique per entity XMPP Parts Future Plans Roster aka Buddy List, list of user’s contacts The End Presence current status information of a user Message a simple message
  21. 21. Restrictions XMPP XML Streams: Restrictions Namespaces jabber:client and jabber:server XMPP in General no comments Basic Attributes Technical Overview XML in XMPP no processing instructions Deeper Look Inside Protocol Extensions no internal or external DTD subsets Programming Libraries no internal or external entity references LAS Imple- mentation no character data mapping to the predefined entities LAS Architecture XMPP Parts (e.g. stream, iq, message) Future Plans The End a stream has to be properly namespaced (client or server) prefix is optional but restricted to stream
  22. 22. Restrictions XMPP XML Streams: Restrictions Namespaces jabber:client and jabber:server XMPP in General no comments Basic Attributes Technical Overview XML in XMPP no processing instructions Deeper Look Inside Protocol Extensions no internal or external DTD subsets Programming Libraries no internal or external entity references LAS Imple- mentation no character data mapping to the predefined entities LAS Architecture XMPP Parts (e.g. stream, iq, message) Future Plans The End a stream has to be properly namespaced (client or server) prefix is optional but restricted to stream
  23. 23. Restrictions XMPP XML Streams: Restrictions Namespaces jabber:client and jabber:server XMPP in General no comments Basic Attributes Technical Overview XML in XMPP no processing instructions Deeper Look Inside Protocol Extensions no internal or external DTD subsets Programming Libraries no internal or external entity references LAS Imple- mentation no character data mapping to the predefined entities LAS Architecture XMPP Parts (e.g. stream, iq, message) Future Plans The End a stream has to be properly namespaced (client or server) prefix is optional but restricted to stream
  24. 24. Restrictions XMPP XML Streams: Restrictions Namespaces jabber:client and jabber:server XMPP in General no comments Basic Attributes Technical Overview XML in XMPP no processing instructions Deeper Look Inside Protocol Extensions no internal or external DTD subsets Programming Libraries no internal or external entity references LAS Imple- mentation no character data mapping to the predefined entities LAS Architecture XMPP Parts (e.g. stream, iq, message) Future Plans The End a stream has to be properly namespaced (client or server) prefix is optional but restricted to stream
  25. 25. Restrictions XMPP XML Streams: Restrictions Namespaces jabber:client and jabber:server XMPP in General no comments Basic Attributes Technical Overview XML in XMPP no processing instructions Deeper Look Inside Protocol Extensions no internal or external DTD subsets Programming Libraries no internal or external entity references LAS Imple- mentation no character data mapping to the predefined entities LAS Architecture XMPP Parts (e.g. stream, iq, message) Future Plans The End a stream has to be properly namespaced (client or server) prefix is optional but restricted to stream
  26. 26. Restrictions XMPP XML Streams: Restrictions Namespaces jabber:client and jabber:server XMPP in General no comments Basic Attributes Technical Overview XML in XMPP no processing instructions Deeper Look Inside Protocol Extensions no internal or external DTD subsets Programming Libraries no internal or external entity references LAS Imple- mentation no character data mapping to the predefined entities LAS Architecture XMPP Parts (e.g. stream, iq, message) Future Plans The End a stream has to be properly namespaced (client or server) prefix is optional but restricted to stream
  27. 27. Restrictions XMPP XML Streams: Restrictions Namespaces jabber:client and jabber:server XMPP in General no comments Basic Attributes Technical Overview XML in XMPP no processing instructions Deeper Look Inside Protocol Extensions no internal or external DTD subsets Programming Libraries no internal or external entity references LAS Imple- mentation no character data mapping to the predefined entities LAS Architecture XMPP Parts (e.g. stream, iq, message) Future Plans The End a stream has to be properly namespaced (client or server) prefix is optional but restricted to stream
  28. 28. Restrictions XMPP XML Streams: Restrictions Namespaces jabber:client and jabber:server XMPP in General no comments Basic Attributes Technical Overview XML in XMPP no processing instructions Deeper Look Inside Protocol Extensions no internal or external DTD subsets Programming Libraries no internal or external entity references LAS Imple- mentation no character data mapping to the predefined entities LAS Architecture XMPP Parts (e.g. stream, iq, message) Future Plans The End a stream has to be properly namespaced (client or server) prefix is optional but restricted to stream
  29. 29. Remarks XMPP Remarks XMPP in a connection consists of two stream documents, one General for each direction Basic Attributes Technical Overview XML in XMPP both nodes may write to their outgoing stream Deeper Look Inside Protocol Extensions (not only client requests, server answers) Programming Libraries the stream documents may be interpreted as protocol LAS Imple- mentation (transcript) of the connection LAS Architecture XMPP Parts Future Plans validation is optional, but well-formed documents are The End necessary each entity is to ignore data it doesn’t understand (but to deliver in case of servers)
  30. 30. Remarks XMPP Remarks XMPP in a connection consists of two stream documents, one General for each direction Basic Attributes Technical Overview XML in XMPP both nodes may write to their outgoing stream Deeper Look Inside Protocol Extensions (not only client requests, server answers) Programming Libraries the stream documents may be interpreted as protocol LAS Imple- mentation (transcript) of the connection LAS Architecture XMPP Parts Future Plans validation is optional, but well-formed documents are The End necessary each entity is to ignore data it doesn’t understand (but to deliver in case of servers)
  31. 31. Remarks XMPP Remarks XMPP in a connection consists of two stream documents, one General for each direction Basic Attributes Technical Overview XML in XMPP both nodes may write to their outgoing stream Deeper Look Inside Protocol Extensions (not only client requests, server answers) Programming Libraries the stream documents may be interpreted as protocol LAS Imple- mentation (transcript) of the connection LAS Architecture XMPP Parts Future Plans validation is optional, but well-formed documents are The End necessary each entity is to ignore data it doesn’t understand (but to deliver in case of servers)
  32. 32. Remarks XMPP Remarks XMPP in a connection consists of two stream documents, one General for each direction Basic Attributes Technical Overview XML in XMPP both nodes may write to their outgoing stream Deeper Look Inside Protocol Extensions (not only client requests, server answers) Programming Libraries the stream documents may be interpreted as protocol LAS Imple- mentation (transcript) of the connection LAS Architecture XMPP Parts Future Plans validation is optional, but well-formed documents are The End necessary each entity is to ignore data it doesn’t understand (but to deliver in case of servers)
  33. 33. Remarks XMPP Remarks XMPP in a connection consists of two stream documents, one General for each direction Basic Attributes Technical Overview XML in XMPP both nodes may write to their outgoing stream Deeper Look Inside Protocol Extensions (not only client requests, server answers) Programming Libraries the stream documents may be interpreted as protocol LAS Imple- mentation (transcript) of the connection LAS Architecture XMPP Parts Future Plans validation is optional, but well-formed documents are The End necessary each entity is to ignore data it doesn’t understand (but to deliver in case of servers)
  34. 34. Session Establishment (1) XMPP 1 <stream:stream xmlns=quot;jabber:clientquot; 2 xmlns:stream=quot;http//etherx.jabber.org/streamsquot; 3 to=quot;server.tldquot; 4 version=quot;1.0quot;> XMPP in 1 <stream:stream xmlns=quot;jabber:clientquot; General 2 xmlns=quot;http://etherx.jabber.org/streamsquot; Basic Attributes 3 to=quot;c2s_234quot; Technical Overview 4 from=quot;server.tldquot; XML in XMPP 5 version=quot;1.0quot;> Deeper Look Inside 6 <stream:features> Protocol Extensions 7 <starttls xmlns=quot;urn:urn:ietf:params:xml:ns:xmpp-tlsquot;> Programming Libraries 8 <required /> 9 </starttls> LAS Imple- 10 <mechanisms xmlns=quot;urn:ietf:params:xml:ns:xmpp-saslquot;> mentation − <mechanism>DIGEST MD5</mechanism> 11 LAS Architecture 12 <mechanism>PLAIN</mechanism> XMPP Parts 13 </mechanism> Future Plans 14 <bind xmlns=quot;urn:ietf:params:xml:ns:xmpp-bindquot; /> 15 </stream:features> The End 5 <starttls xmlns=quot;urn:ietf:params:xml:ns:xmpp-tlsquot; /> 16 <proceed xmlns=quot;urn:ietf:params:xml:ns:xmpp-tlsquot; /> [TLS negotiation ...]
  35. 35. Session Establishment (2) ... XMPP 1 <stream:stream xmlns=quot;jabber:clientquot; 2 xmlns:stream=quot;http//etherx.jabber.org/streamsquot; 3 to=quot;server.tldquot; 4 version=quot;1.0quot;> XMPP in 1 <stream:stream xmlns=quot;jabber:clientquot; General 2 xmlns=quot;http://etherx.jabber.org/streamsquot; Basic Attributes 3 to=quot;c2s_234quot; Technical Overview 4 from=quot;server.tldquot; XML in XMPP 5 version=quot;1.0quot;> Deeper Look Inside 6 <stream:features> Protocol Extensions 7 <mechanisms xmlns=quot;urn:ietf:params:xml:ns:xmpp-saslquot;> Programming − <mechanism>DIGEST MD5</mechanism> 8 Libraries 9 <mechanism>PLAIN</mechanism> LAS Imple- 10 </mechanism> mentation 11 <bind xmlns=quot;urn:ietf:params:xml:ns:xmpp-bindquot; /> LAS Architecture 12 </stream:features> XMPP Parts 5 <auth xmlns=quot;urn:ietf:params:xml:ns:xmpp-saslquot; Future Plans 6 mechanism=quot;DIGEST-MD5quot; /> 14 <challenge xmlns=quot;urn:ietf:params:xml:ns:xmpp-saslquot;> The End . . . ( base64 encoded ) 15 16 </challenge> 7 <response xmlns=quot;urn:ietf:params:xml:ns:xmpp-saslquot;> . . . ( base64 encoded ) 8 9 </response> 17 <success xmlns=quot;urn:ietf:params:xml:ns:xmpp-saslquot; />
  36. 36. Session Establishment (3) ... XMPP 1 <stream:stream xmlns=quot;jabber:clientquot; 2 xmlns:stream=quot;http//etherx.jabber.org/streamsquot; 3 to=quot;server.tldquot; 4 version=quot;1.0quot;> XMPP in General 1 <stream:stream xmlns=quot;jabber:clientquot; Basic Attributes 2 xmlns=quot;http://etherx.jabber.org/streamsquot; Technical Overview 3 to=quot;c2s_234quot; XML in XMPP 4 from=quot;server.tldquot; Deeper Look Inside 5 version=quot;1.0quot;> Protocol Extensions 6 <stream:features> Programming 7 <bind xmlns=quot;urn:ietf:params:xml:ns:xmpp-bindquot; /> Libraries 8 </stream:features> 5 <iq type=quot;setquot; id=quot;bind_1quot;> LAS Imple- 6 <bind xmlns=quot;urn:ietf:params:xml:ns:xmpp-bindquot;> mentation 7 <resource>someresource</resource> LAS Architecture 8 </bind> XMPP Parts 9 </iq> Future Plans 9 <iq type=quot;resultquot; id=quot;bind_1quot;> The End 10 <bind xmlns=quot;urn:ietf:params:xml:ns:xmpp-bindquot;> <jid>user@server . t l d / someresource</jid> 11 12 </bind> 13 </iq> ... [send initial presence]
  37. 37. Sending Messages XMPP XMPP in General Basic Attributes Technical Overview XML in XMPP Deeper Look Inside Protocol Extensions Programming Libraries LAS Imple- mentation LAS Architecture XMPP Parts Future Plans The End
  38. 38. Sending Messages XMPP § ¤ <message from=quot;tom@server.tld/workquot; to=quot;bob@server.tldquot; XMPP in type=quot;chatquot; xml:lang=quot;enquot;> General <body> Basic Attributes H e l l o Bob , Technical Overview how are you? XML in XMPP </body> Deeper Look Inside <thread>2132842</thread> Protocol Extensions </message> ¦ ¥ Programming Libraries LAS Imple- mentation LAS Architecture XMPP Parts Future Plans The End
  39. 39. Sending Messages § ¤ XMPP § ¤ <message from=quot;tom@server.tld/workquot; § ¤ to=quot;bob@server.tld/workquot; <message from=quot;tom@server.tld/workquot; type=quot;chatquot; xml:lang=quot;enquot;> to=quot;bob@server.tld/homequot; <message from=quot;tom@server.tld/workquot; <body> type=quot;chatquot; xml:lang=quot;enquot;> to=quot;bob@server.tld/mobilequot; XMPP in H<body> , e l l o Bob type=quot;chatquot; xml:lang=quot;enquot;> General how H e l l o you? , are Bob <body> Basic Attributes </body> are you? how H e l l o Bob , Technical Overview <thread>2132842</thread> </body> are you? how XML in XMPP </message> ¦ ¥ <thread>2132842</thread> </body> Deeper Look Inside </message> ¦ ¥ <thread>2132842</thread> Protocol Extensions </message> ¦ ¥ Programming Libraries LAS Imple- mentation LAS Architecture XMPP Parts Future Plans The End
  40. 40. Presence Handling XMPP Some Facts XMPP in subscription to presence information only after General Basic Attributes confirmation Technical Overview XML in XMPP access to own roster only after sending initial presence Deeper Look Inside Protocol Extensions information to server Programming Libraries separate presence information to each entity possible LAS Imple- mentation LAS Architecture broadcasting of presence automatically pushed by XMPP Parts Future Plans server on updates The End server keeps track of specialized presence information blacklisting and whitelisting of incoming and outgoing presence information
  41. 41. Presence Handling XMPP Some Facts XMPP in subscription to presence information only after General Basic Attributes confirmation Technical Overview XML in XMPP access to own roster only after sending initial presence Deeper Look Inside Protocol Extensions information to server Programming Libraries separate presence information to each entity possible LAS Imple- mentation LAS Architecture broadcasting of presence automatically pushed by XMPP Parts Future Plans server on updates The End server keeps track of specialized presence information blacklisting and whitelisting of incoming and outgoing presence information
  42. 42. Presence Handling XMPP Some Facts XMPP in subscription to presence information only after General Basic Attributes confirmation Technical Overview XML in XMPP access to own roster only after sending initial presence Deeper Look Inside Protocol Extensions information to server Programming Libraries separate presence information to each entity possible LAS Imple- mentation LAS Architecture broadcasting of presence automatically pushed by XMPP Parts Future Plans server on updates The End server keeps track of specialized presence information blacklisting and whitelisting of incoming and outgoing presence information
  43. 43. Presence Handling XMPP Some Facts XMPP in subscription to presence information only after General Basic Attributes confirmation Technical Overview XML in XMPP access to own roster only after sending initial presence Deeper Look Inside Protocol Extensions information to server Programming Libraries separate presence information to each entity possible LAS Imple- mentation LAS Architecture broadcasting of presence automatically pushed by XMPP Parts Future Plans server on updates The End server keeps track of specialized presence information blacklisting and whitelisting of incoming and outgoing presence information
  44. 44. Presence Handling XMPP Some Facts XMPP in subscription to presence information only after General Basic Attributes confirmation Technical Overview XML in XMPP access to own roster only after sending initial presence Deeper Look Inside Protocol Extensions information to server Programming Libraries separate presence information to each entity possible LAS Imple- mentation LAS Architecture broadcasting of presence automatically pushed by XMPP Parts Future Plans server on updates The End server keeps track of specialized presence information blacklisting and whitelisting of incoming and outgoing presence information
  45. 45. Presence Handling XMPP Some Facts XMPP in subscription to presence information only after General Basic Attributes confirmation Technical Overview XML in XMPP access to own roster only after sending initial presence Deeper Look Inside Protocol Extensions information to server Programming Libraries separate presence information to each entity possible LAS Imple- mentation LAS Architecture broadcasting of presence automatically pushed by XMPP Parts Future Plans server on updates The End server keeps track of specialized presence information blacklisting and whitelisting of incoming and outgoing presence information
  46. 46. Roster Management XMPP XMPP in General Basic Attributes Some Facts Technical Overview XML in XMPP one roster per user Deeper Look Inside Protocol Extensions Programming updates cause push to all bound resources of a user Libraries LAS Imple- update of subscription state changes both involved mentation LAS Architecture rosters XMPP Parts Future Plans (outgoing of sender, incoming of subscriber) The End
  47. 47. Roster Management XMPP XMPP in General Basic Attributes Some Facts Technical Overview XML in XMPP one roster per user Deeper Look Inside Protocol Extensions Programming updates cause push to all bound resources of a user Libraries LAS Imple- update of subscription state changes both involved mentation LAS Architecture rosters XMPP Parts Future Plans (outgoing of sender, incoming of subscriber) The End
  48. 48. Roster Management XMPP XMPP in General Basic Attributes Some Facts Technical Overview XML in XMPP one roster per user Deeper Look Inside Protocol Extensions Programming updates cause push to all bound resources of a user Libraries LAS Imple- update of subscription state changes both involved mentation LAS Architecture rosters XMPP Parts Future Plans (outgoing of sender, incoming of subscriber) The End
  49. 49. The Idea of XEPs XMPP managed by XMPP Standards Foundation XMPP in described by XEP 001, General Basic Attributes http://xmpp.org/extensions/xep-0001.html Technical Overview XML in XMPP Deeper Look Inside types: standard track, informational, historical, Protocol Extensions Programming humorous, and procedural Libraries LAS Imple- informational: best practices or usage profile mentation LAS Architecture formal submission via XML document XMPP Parts Future Plans affect all parts of the XML communication below The End stream establishment work mostly by defining XML namespace schemas and their semantics
  50. 50. The Idea of XEPs XMPP managed by XMPP Standards Foundation XMPP in described by XEP 001, General Basic Attributes http://xmpp.org/extensions/xep-0001.html Technical Overview XML in XMPP Deeper Look Inside types: standard track, informational, historical, Protocol Extensions Programming humorous, and procedural Libraries LAS Imple- informational: best practices or usage profile mentation LAS Architecture formal submission via XML document XMPP Parts Future Plans affect all parts of the XML communication below The End stream establishment work mostly by defining XML namespace schemas and their semantics
  51. 51. The Idea of XEPs XMPP managed by XMPP Standards Foundation XMPP in described by XEP 001, General Basic Attributes http://xmpp.org/extensions/xep-0001.html Technical Overview XML in XMPP Deeper Look Inside types: standard track, informational, historical, Protocol Extensions Programming humorous, and procedural Libraries LAS Imple- informational: best practices or usage profile mentation LAS Architecture formal submission via XML document XMPP Parts Future Plans affect all parts of the XML communication below The End stream establishment work mostly by defining XML namespace schemas and their semantics
  52. 52. The Idea of XEPs XMPP managed by XMPP Standards Foundation XMPP in described by XEP 001, General Basic Attributes http://xmpp.org/extensions/xep-0001.html Technical Overview XML in XMPP Deeper Look Inside types: standard track, informational, historical, Protocol Extensions Programming humorous, and procedural Libraries LAS Imple- informational: best practices or usage profile mentation LAS Architecture formal submission via XML document XMPP Parts Future Plans affect all parts of the XML communication below The End stream establishment work mostly by defining XML namespace schemas and their semantics
  53. 53. The Idea of XEPs XMPP managed by XMPP Standards Foundation XMPP in described by XEP 001, General Basic Attributes http://xmpp.org/extensions/xep-0001.html Technical Overview XML in XMPP Deeper Look Inside types: standard track, informational, historical, Protocol Extensions Programming humorous, and procedural Libraries LAS Imple- informational: best practices or usage profile mentation LAS Architecture formal submission via XML document XMPP Parts Future Plans affect all parts of the XML communication below The End stream establishment work mostly by defining XML namespace schemas and their semantics
  54. 54. The Idea of XEPs XMPP managed by XMPP Standards Foundation XMPP in described by XEP 001, General Basic Attributes http://xmpp.org/extensions/xep-0001.html Technical Overview XML in XMPP Deeper Look Inside types: standard track, informational, historical, Protocol Extensions Programming humorous, and procedural Libraries LAS Imple- informational: best practices or usage profile mentation LAS Architecture formal submission via XML document XMPP Parts Future Plans affect all parts of the XML communication below The End stream establishment work mostly by defining XML namespace schemas and their semantics
  55. 55. The Idea of XEPs XMPP managed by XMPP Standards Foundation XMPP in described by XEP 001, General Basic Attributes http://xmpp.org/extensions/xep-0001.html Technical Overview XML in XMPP Deeper Look Inside types: standard track, informational, historical, Protocol Extensions Programming humorous, and procedural Libraries LAS Imple- informational: best practices or usage profile mentation LAS Architecture formal submission via XML document XMPP Parts Future Plans affect all parts of the XML communication below The End stream establishment work mostly by defining XML namespace schemas and their semantics
  56. 56. Programming Libraries XMPP Objective C xmppframework http://code.google.com/p/xmppframework/ (client) XMPP in General Basic Attributes Technical Overview Java XML in XMPP Deeper Look Inside Smack http://www.igniterealtime.org/projects/smack/ Protocol Extensions (Client) Programming Libraries LAS Imple- mentation Python LAS Architecture XMPP Parts PyXMPP http://pyxmpp.jajcus.net/ (Client) Future Plans Twisted Words http://twistedmatrix.com/trac/ The End Headstock http://trac.defuze.org/wiki/headstock (Client) see http://xmpp.org/software/libraries.shtml here: only active projects
  57. 57. LAS - Architectural Overview XMPP XMPP in General Basic Attributes Technical Overview XML in XMPP Deeper Look Inside Protocol Extensions Programming Libraries LAS Imple- mentation LAS Architecture XMPP Parts Future Plans The End Figure: LAS Architecture
  58. 58. XMPP Parts for LAS XMPP XMPP in General Basic Attributes Technical Overview XML in XMPP Deeper Look Inside Protocol Extensions Programming Libraries LAS Imple- mentation LAS Architecture XMPP Parts Future Plans The End Figure: LAS XMPP Parts
  59. 59. Future Plans XMPP XMPP in General Plans with XMPP and LAS Basic Attributes Technical Overview XEP 0009 Jabber-RPC (as adaption of XML-RPC to XML in XMPP Deeper Look Inside Jabber / XMPP) Protocol Extensions Programming XEP 0080 User Location (GPS data in presence Libraries LAS Imple- information, needs XEP 0060... (?) mentation LAS Architecture Own Extension GPS data in presence stanzas XMPP Parts Future Plans (disadvantage: incompatible with exiting The End tools)
  60. 60. Future Plans XMPP XMPP in General Plans with XMPP and LAS Basic Attributes Technical Overview XEP 0009 Jabber-RPC (as adaption of XML-RPC to XML in XMPP Deeper Look Inside Jabber / XMPP) Protocol Extensions Programming XEP 0080 User Location (GPS data in presence Libraries LAS Imple- information, needs XEP 0060... (?) mentation LAS Architecture Own Extension GPS data in presence stanzas XMPP Parts Future Plans (disadvantage: incompatible with exiting The End tools)
  61. 61. Future Plans XMPP XMPP in General Plans with XMPP and LAS Basic Attributes Technical Overview XEP 0009 Jabber-RPC (as adaption of XML-RPC to XML in XMPP Deeper Look Inside Jabber / XMPP) Protocol Extensions Programming XEP 0080 User Location (GPS data in presence Libraries LAS Imple- information, needs XEP 0060... (?) mentation LAS Architecture Own Extension GPS data in presence stanzas XMPP Parts Future Plans (disadvantage: incompatible with exiting The End tools)
  62. 62. Final Words XMPP XMPP in <message from=quot;holger@xmpp-server.de/frontdeskquot; General Basic Attributes to=quot;audience@xmpp-server.de/seminarRoomquot;> Technical Overview <subject language=quot;enquot;>The End</subject> XML in XMPP Deeper Look Inside <subject language=quot;dequot;>Ende</subject> Protocol Extensions Programming <body language=quot;enquot;> Libraries Thanks f o r your a t t e n t i o n ! LAS Imple- mentation </body> LAS Architecture XMPP Parts <body language=quot;dequot;> Future Plans V i e l e n Dank f u e r I h r e Aufmerksamkeit ! The End </body> <thread>MyTalk001231</thread> </message>
  63. 63. Links and Materials XMPP Links and Materials XMPP Core http://xmpp.org/rfcs/rfc3920.html XMPP IM http://xmpp.org/rfcs/rfc3921.html XMPP Working Group http://www.xmpp.org LTEXBeamer A http://latex-beamer.sourceforge.net/
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×