SlideShare ist ein Scribd-Unternehmen logo
1 von 63
Downloaden Sie, um offline zu lesen
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
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
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
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
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
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, . . .
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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)
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)
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)
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)
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 ...]
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; />
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]
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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)
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)
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>
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/

Weitere ähnliche Inhalte

Was ist angesagt?

Apresentação feita em 2005 no Annual Simulation Symposium.
Apresentação feita em 2005 no Annual Simulation Symposium.Apresentação feita em 2005 no Annual Simulation Symposium.
Apresentação feita em 2005 no Annual Simulation Symposium.Antonio Marcos Alberti
 
Optimize Performance of I/O-intensive Java applications Using Zero Copy
Optimize Performance of I/O-intensive Java applications Using Zero CopyOptimize Performance of I/O-intensive Java applications Using Zero Copy
Optimize Performance of I/O-intensive Java applications Using Zero CopyIndicThreads
 
CSP as a Domain-Specific Language Embedded in Python and Jython
CSP as a Domain-Specific Language Embedded in Python and JythonCSP as a Domain-Specific Language Embedded in Python and Jython
CSP as a Domain-Specific Language Embedded in Python and JythonM H
 
Troubleshooting Dual-Protocol Networks and Systems by Scott Hogg at gogoNET L...
Troubleshooting Dual-Protocol Networks and Systems by Scott Hogg at gogoNET L...Troubleshooting Dual-Protocol Networks and Systems by Scott Hogg at gogoNET L...
Troubleshooting Dual-Protocol Networks and Systems by Scott Hogg at gogoNET L...gogo6
 
Ds objects and models
Ds objects and modelsDs objects and models
Ds objects and modelsMayank Jain
 
How does ping_work_style_1_gv
How does ping_work_style_1_gvHow does ping_work_style_1_gv
How does ping_work_style_1_gvvgy_a
 
Zero-Copy Event-Driven Servers with Netty
Zero-Copy Event-Driven Servers with NettyZero-Copy Event-Driven Servers with Netty
Zero-Copy Event-Driven Servers with NettyDaniel Bimschas
 
Introduction to Remote Procedure Call
Introduction to Remote Procedure CallIntroduction to Remote Procedure Call
Introduction to Remote Procedure CallAbdelrahman Al-Ogail
 
Toward an Understanding of the Processing Delay of Peer-to-Peer Relay Nodes
Toward an Understanding of the Processing Delay of Peer-to-Peer Relay NodesToward an Understanding of the Processing Delay of Peer-to-Peer Relay Nodes
Toward an Understanding of the Processing Delay of Peer-to-Peer Relay NodesAcademia Sinica
 
protocol architecture
 protocol architecture protocol architecture
protocol architectureSrinivasa Rao
 
OOPSLA02 BehavioralSemantics.ppt
OOPSLA02 BehavioralSemantics.pptOOPSLA02 BehavioralSemantics.ppt
OOPSLA02 BehavioralSemantics.pptPtidej Team
 
Distributes objects and Rmi
Distributes objects and RmiDistributes objects and Rmi
Distributes objects and RmiMayank Jain
 
The H.264 Video Compression Standard
The H.264 Video Compression StandardThe H.264 Video Compression Standard
The H.264 Video Compression StandardVideoguy
 
Cn osi model
Cn osi modelCn osi model
Cn osi modelNAME245
 

Was ist angesagt? (20)

Apresentação feita em 2005 no Annual Simulation Symposium.
Apresentação feita em 2005 no Annual Simulation Symposium.Apresentação feita em 2005 no Annual Simulation Symposium.
Apresentação feita em 2005 no Annual Simulation Symposium.
 
Optimize Performance of I/O-intensive Java applications Using Zero Copy
Optimize Performance of I/O-intensive Java applications Using Zero CopyOptimize Performance of I/O-intensive Java applications Using Zero Copy
Optimize Performance of I/O-intensive Java applications Using Zero Copy
 
Tma ph d_school_2011
Tma ph d_school_2011Tma ph d_school_2011
Tma ph d_school_2011
 
CSP as a Domain-Specific Language Embedded in Python and Jython
CSP as a Domain-Specific Language Embedded in Python and JythonCSP as a Domain-Specific Language Embedded in Python and Jython
CSP as a Domain-Specific Language Embedded in Python and Jython
 
Troubleshooting Dual-Protocol Networks and Systems by Scott Hogg at gogoNET L...
Troubleshooting Dual-Protocol Networks and Systems by Scott Hogg at gogoNET L...Troubleshooting Dual-Protocol Networks and Systems by Scott Hogg at gogoNET L...
Troubleshooting Dual-Protocol Networks and Systems by Scott Hogg at gogoNET L...
 
Ds objects and models
Ds objects and modelsDs objects and models
Ds objects and models
 
Ctp
CtpCtp
Ctp
 
How does ping_work_style_1_gv
How does ping_work_style_1_gvHow does ping_work_style_1_gv
How does ping_work_style_1_gv
 
Zero-Copy Event-Driven Servers with Netty
Zero-Copy Event-Driven Servers with NettyZero-Copy Event-Driven Servers with Netty
Zero-Copy Event-Driven Servers with Netty
 
Introduction to Remote Procedure Call
Introduction to Remote Procedure CallIntroduction to Remote Procedure Call
Introduction to Remote Procedure Call
 
Toward an Understanding of the Processing Delay of Peer-to-Peer Relay Nodes
Toward an Understanding of the Processing Delay of Peer-to-Peer Relay NodesToward an Understanding of the Processing Delay of Peer-to-Peer Relay Nodes
Toward an Understanding of the Processing Delay of Peer-to-Peer Relay Nodes
 
Hybrid Programmable Forwarding Planes: BoF Session
Hybrid Programmable Forwarding Planes: BoF SessionHybrid Programmable Forwarding Planes: BoF Session
Hybrid Programmable Forwarding Planes: BoF Session
 
protocol architecture
 protocol architecture protocol architecture
protocol architecture
 
OOPSLA02 BehavioralSemantics.ppt
OOPSLA02 BehavioralSemantics.pptOOPSLA02 BehavioralSemantics.ppt
OOPSLA02 BehavioralSemantics.ppt
 
My DIaries
My DIariesMy DIaries
My DIaries
 
Distributes objects and Rmi
Distributes objects and RmiDistributes objects and Rmi
Distributes objects and Rmi
 
The H.264 Video Compression Standard
The H.264 Video Compression StandardThe H.264 Video Compression Standard
The H.264 Video Compression Standard
 
Erlang
ErlangErlang
Erlang
 
Cn osi model
Cn osi modelCn osi model
Cn osi model
 
report
reportreport
report
 

Ähnlich wie XMPP - Introduction And LAS Implementation (Presentation)

A vision for ejabberd - ejabberd SF Meetup
A vision for ejabberd - ejabberd SF MeetupA vision for ejabberd - ejabberd SF Meetup
A vision for ejabberd - ejabberd SF MeetupMickaël Rémond
 
(ATS3-PLAT06) Handling “Big Data” with Pipeline Pilot (MapReduce/NoSQL)
(ATS3-PLAT06) Handling “Big Data” with Pipeline Pilot (MapReduce/NoSQL)(ATS3-PLAT06) Handling “Big Data” with Pipeline Pilot (MapReduce/NoSQL)
(ATS3-PLAT06) Handling “Big Data” with Pipeline Pilot (MapReduce/NoSQL)BIOVIA
 
Easy enterprise application integration with RabbitMQ and AMQP
Easy enterprise application integration with RabbitMQ and AMQPEasy enterprise application integration with RabbitMQ and AMQP
Easy enterprise application integration with RabbitMQ and AMQPRabbit MQ
 
Spirit20090924poly
Spirit20090924polySpirit20090924poly
Spirit20090924polyGary Dare
 
Professional XML with PHP
Professional XML with PHPProfessional XML with PHP
Professional XML with PHPTobias Schlitt
 
ProcessOne Push Platform: pubsub.p1pp.net
ProcessOne Push Platform: pubsub.p1pp.netProcessOne Push Platform: pubsub.p1pp.net
ProcessOne Push Platform: pubsub.p1pp.netProcessOne
 
ARM LPC2300/LPC2400 TCP/IP Stack Porting
ARM LPC2300/LPC2400 TCP/IP Stack PortingARM LPC2300/LPC2400 TCP/IP Stack Porting
ARM LPC2300/LPC2400 TCP/IP Stack PortingMathivanan Elangovan
 
JSR82: Past, Present and Future
JSR82: Past, Present and FutureJSR82: Past, Present and Future
JSR82: Past, Present and FutureSean O'Sullivan
 
FOSS Sthlm: Realtime Communication Update
FOSS Sthlm: Realtime Communication UpdateFOSS Sthlm: Realtime Communication Update
FOSS Sthlm: Realtime Communication UpdateOlle E Johansson
 
New tcp-ip model (2)
New tcp-ip model (2)New tcp-ip model (2)
New tcp-ip model (2)Nitesh Singh
 
Maximizing Application Performance on Cray XT6 and XE6 Supercomputers DOD-MOD...
Maximizing Application Performance on Cray XT6 and XE6 Supercomputers DOD-MOD...Maximizing Application Performance on Cray XT6 and XE6 Supercomputers DOD-MOD...
Maximizing Application Performance on Cray XT6 and XE6 Supercomputers DOD-MOD...Jeff Larkin
 
Presenter manual embedded systems (specially for summer interns)
Presenter manual   embedded systems (specially for summer interns)Presenter manual   embedded systems (specially for summer interns)
Presenter manual embedded systems (specially for summer interns)XPERT INFOTECH
 
Ese2008 Swordfish
Ese2008 SwordfishEse2008 Swordfish
Ese2008 Swordfishwwtyler
 
IP QoS signaling in the IETF:Past, Present and Future
IP QoS signaling in the IETF:Past, Present and FutureIP QoS signaling in the IETF:Past, Present and Future
IP QoS signaling in the IETF:Past, Present and FutureJohn Loughney
 

Ähnlich wie XMPP - Introduction And LAS Implementation (Presentation) (20)

A vision for ejabberd - ejabberd SF Meetup
A vision for ejabberd - ejabberd SF MeetupA vision for ejabberd - ejabberd SF Meetup
A vision for ejabberd - ejabberd SF Meetup
 
(ATS3-PLAT06) Handling “Big Data” with Pipeline Pilot (MapReduce/NoSQL)
(ATS3-PLAT06) Handling “Big Data” with Pipeline Pilot (MapReduce/NoSQL)(ATS3-PLAT06) Handling “Big Data” with Pipeline Pilot (MapReduce/NoSQL)
(ATS3-PLAT06) Handling “Big Data” with Pipeline Pilot (MapReduce/NoSQL)
 
Exchange Server 2013 Architecture Deep Dive, Part 1
Exchange Server 2013 Architecture Deep Dive, Part 1Exchange Server 2013 Architecture Deep Dive, Part 1
Exchange Server 2013 Architecture Deep Dive, Part 1
 
Easy enterprise application integration with RabbitMQ and AMQP
Easy enterprise application integration with RabbitMQ and AMQPEasy enterprise application integration with RabbitMQ and AMQP
Easy enterprise application integration with RabbitMQ and AMQP
 
Spirit20090924poly
Spirit20090924polySpirit20090924poly
Spirit20090924poly
 
Professional XML with PHP
Professional XML with PHPProfessional XML with PHP
Professional XML with PHP
 
Tftp errors
Tftp errorsTftp errors
Tftp errors
 
ProcessOne Push Platform: pubsub.p1pp.net
ProcessOne Push Platform: pubsub.p1pp.netProcessOne Push Platform: pubsub.p1pp.net
ProcessOne Push Platform: pubsub.p1pp.net
 
ARM LPC2300/LPC2400 TCP/IP Stack Porting
ARM LPC2300/LPC2400 TCP/IP Stack PortingARM LPC2300/LPC2400 TCP/IP Stack Porting
ARM LPC2300/LPC2400 TCP/IP Stack Porting
 
TCP/IP – Transmission Control Protocol/ Internet Protocol
TCP/IP – Transmission Control Protocol/ Internet ProtocolTCP/IP – Transmission Control Protocol/ Internet Protocol
TCP/IP – Transmission Control Protocol/ Internet Protocol
 
Ejabberd Session
Ejabberd SessionEjabberd Session
Ejabberd Session
 
JSR82: Past, Present and Future
JSR82: Past, Present and FutureJSR82: Past, Present and Future
JSR82: Past, Present and Future
 
FOSS Sthlm: Realtime Communication Update
FOSS Sthlm: Realtime Communication UpdateFOSS Sthlm: Realtime Communication Update
FOSS Sthlm: Realtime Communication Update
 
New tcp-ip model
New tcp-ip modelNew tcp-ip model
New tcp-ip model
 
New tcp-ip model (2)
New tcp-ip model (2)New tcp-ip model (2)
New tcp-ip model (2)
 
Maximizing Application Performance on Cray XT6 and XE6 Supercomputers DOD-MOD...
Maximizing Application Performance on Cray XT6 and XE6 Supercomputers DOD-MOD...Maximizing Application Performance on Cray XT6 and XE6 Supercomputers DOD-MOD...
Maximizing Application Performance on Cray XT6 and XE6 Supercomputers DOD-MOD...
 
Presenter manual embedded systems (specially for summer interns)
Presenter manual   embedded systems (specially for summer interns)Presenter manual   embedded systems (specially for summer interns)
Presenter manual embedded systems (specially for summer interns)
 
Ese2008 Swordfish
Ese2008 SwordfishEse2008 Swordfish
Ese2008 Swordfish
 
MPLS
MPLSMPLS
MPLS
 
IP QoS signaling in the IETF:Past, Present and Future
IP QoS signaling in the IETF:Past, Present and FutureIP QoS signaling in the IETF:Past, Present and Future
IP QoS signaling in the IETF:Past, Present and Future
 

Mehr von Ralf Klamma

An Augmented Reality Framework for Gamified Learning
An Augmented Reality Framework for Gamified LearningAn Augmented Reality Framework for Gamified Learning
An Augmented Reality Framework for Gamified LearningRalf Klamma
 
The Legacy of ROLE - Where are we at the workplace?
The Legacy of ROLE - Where are we at the workplace?The Legacy of ROLE - Where are we at the workplace?
The Legacy of ROLE - Where are we at the workplace?Ralf Klamma
 
Gamification of Community Information Systems
Gamification of Community Information SystemsGamification of Community Information Systems
Gamification of Community Information SystemsRalf Klamma
 
The Legacy and the Future of Research Networks in Technology-Enhanced Learning
The Legacy and the Future of Research Networks in Technology-Enhanced LearningThe Legacy and the Future of Research Networks in Technology-Enhanced Learning
The Legacy and the Future of Research Networks in Technology-Enhanced LearningRalf Klamma
 
DevOpsUse for Large-Scale Social Requirements Engineering @ SIG WELL - EC-TEL...
DevOpsUse for Large-Scale Social Requirements Engineering @ SIG WELL - EC-TEL...DevOpsUse for Large-Scale Social Requirements Engineering @ SIG WELL - EC-TEL...
DevOpsUse for Large-Scale Social Requirements Engineering @ SIG WELL - EC-TEL...Ralf Klamma
 
Learning Analytics: Trends and Issues of the Empirical Research of the Years ...
Learning Analytics: Trends and Issues of the Empirical Research of the Years ...Learning Analytics: Trends and Issues of the Empirical Research of the Years ...
Learning Analytics: Trends and Issues of the Empirical Research of the Years ...Ralf Klamma
 
A Short Swim through the Personal Learning Pool
A Short Swim through the Personal Learning PoolA Short Swim through the Personal Learning Pool
A Short Swim through the Personal Learning PoolRalf Klamma
 
Scaling up digital learning support for smart workforce development in cluste...
Scaling up digital learning support for smart workforce development in cluste...Scaling up digital learning support for smart workforce development in cluste...
Scaling up digital learning support for smart workforce development in cluste...Ralf Klamma
 
Scaling Community Information Systems
Scaling Community Information SystemsScaling Community Information Systems
Scaling Community Information SystemsRalf Klamma
 
Technical Challenges for Realizing Learning Analytics
Technical Challenges for Realizing Learning AnalyticsTechnical Challenges for Realizing Learning Analytics
Technical Challenges for Realizing Learning AnalyticsRalf Klamma
 
Technology-Enhanced Learning at the Workplace – From islands of automation to...
Technology-Enhanced Learning at the Workplace – From islands of automation to...Technology-Enhanced Learning at the Workplace – From islands of automation to...
Technology-Enhanced Learning at the Workplace – From islands of automation to...Ralf Klamma
 
ACIS Annual Report 2014
ACIS Annual Report 2014ACIS Annual Report 2014
ACIS Annual Report 2014Ralf Klamma
 
Blueprint for Software Engineering in Technology Enhanced Learning Projects
Blueprint for Software Engineering in Technology Enhanced Learning ProjectsBlueprint for Software Engineering in Technology Enhanced Learning Projects
Blueprint for Software Engineering in Technology Enhanced Learning ProjectsRalf Klamma
 
Navigation Support in Evolving Communities by a Web-based Dashboard
Navigation Support in Evolving Communities by a Web-based DashboardNavigation Support in Evolving Communities by a Web-based Dashboard
Navigation Support in Evolving Communities by a Web-based DashboardRalf Klamma
 
Community Learning Analytics – A New Research Field in TEL
Community Learning Analytics – A New Research Field in TELCommunity Learning Analytics – A New Research Field in TEL
Community Learning Analytics – A New Research Field in TELRalf Klamma
 
Do Mechanical Turks Dream of Big Data?
Do Mechanical Turks Dream of Big Data?Do Mechanical Turks Dream of Big Data?
Do Mechanical Turks Dream of Big Data?Ralf Klamma
 
Advanced Community Information Systems Group (ACIS) Annual Report 2013
Advanced Community Information Systems Group (ACIS) Annual Report 2013Advanced Community Information Systems Group (ACIS) Annual Report 2013
Advanced Community Information Systems Group (ACIS) Annual Report 2013Ralf Klamma
 
Community Learning Analytics - Challenges and Opportunities - ICWL 2013 Invit...
Community Learning Analytics - Challenges and Opportunities - ICWL 2013 Invit...Community Learning Analytics - Challenges and Opportunities - ICWL 2013 Invit...
Community Learning Analytics - Challenges and Opportunities - ICWL 2013 Invit...Ralf Klamma
 
Keynote Learning Layers Developer Camp 2013
Keynote Learning Layers Developer Camp 2013Keynote Learning Layers Developer Camp 2013
Keynote Learning Layers Developer Camp 2013Ralf Klamma
 
Supporting Professional Communities in the Next Web
Supporting Professional Communities in the Next Web Supporting Professional Communities in the Next Web
Supporting Professional Communities in the Next Web Ralf Klamma
 

Mehr von Ralf Klamma (20)

An Augmented Reality Framework for Gamified Learning
An Augmented Reality Framework for Gamified LearningAn Augmented Reality Framework for Gamified Learning
An Augmented Reality Framework for Gamified Learning
 
The Legacy of ROLE - Where are we at the workplace?
The Legacy of ROLE - Where are we at the workplace?The Legacy of ROLE - Where are we at the workplace?
The Legacy of ROLE - Where are we at the workplace?
 
Gamification of Community Information Systems
Gamification of Community Information SystemsGamification of Community Information Systems
Gamification of Community Information Systems
 
The Legacy and the Future of Research Networks in Technology-Enhanced Learning
The Legacy and the Future of Research Networks in Technology-Enhanced LearningThe Legacy and the Future of Research Networks in Technology-Enhanced Learning
The Legacy and the Future of Research Networks in Technology-Enhanced Learning
 
DevOpsUse for Large-Scale Social Requirements Engineering @ SIG WELL - EC-TEL...
DevOpsUse for Large-Scale Social Requirements Engineering @ SIG WELL - EC-TEL...DevOpsUse for Large-Scale Social Requirements Engineering @ SIG WELL - EC-TEL...
DevOpsUse for Large-Scale Social Requirements Engineering @ SIG WELL - EC-TEL...
 
Learning Analytics: Trends and Issues of the Empirical Research of the Years ...
Learning Analytics: Trends and Issues of the Empirical Research of the Years ...Learning Analytics: Trends and Issues of the Empirical Research of the Years ...
Learning Analytics: Trends and Issues of the Empirical Research of the Years ...
 
A Short Swim through the Personal Learning Pool
A Short Swim through the Personal Learning PoolA Short Swim through the Personal Learning Pool
A Short Swim through the Personal Learning Pool
 
Scaling up digital learning support for smart workforce development in cluste...
Scaling up digital learning support for smart workforce development in cluste...Scaling up digital learning support for smart workforce development in cluste...
Scaling up digital learning support for smart workforce development in cluste...
 
Scaling Community Information Systems
Scaling Community Information SystemsScaling Community Information Systems
Scaling Community Information Systems
 
Technical Challenges for Realizing Learning Analytics
Technical Challenges for Realizing Learning AnalyticsTechnical Challenges for Realizing Learning Analytics
Technical Challenges for Realizing Learning Analytics
 
Technology-Enhanced Learning at the Workplace – From islands of automation to...
Technology-Enhanced Learning at the Workplace – From islands of automation to...Technology-Enhanced Learning at the Workplace – From islands of automation to...
Technology-Enhanced Learning at the Workplace – From islands of automation to...
 
ACIS Annual Report 2014
ACIS Annual Report 2014ACIS Annual Report 2014
ACIS Annual Report 2014
 
Blueprint for Software Engineering in Technology Enhanced Learning Projects
Blueprint for Software Engineering in Technology Enhanced Learning ProjectsBlueprint for Software Engineering in Technology Enhanced Learning Projects
Blueprint for Software Engineering in Technology Enhanced Learning Projects
 
Navigation Support in Evolving Communities by a Web-based Dashboard
Navigation Support in Evolving Communities by a Web-based DashboardNavigation Support in Evolving Communities by a Web-based Dashboard
Navigation Support in Evolving Communities by a Web-based Dashboard
 
Community Learning Analytics – A New Research Field in TEL
Community Learning Analytics – A New Research Field in TELCommunity Learning Analytics – A New Research Field in TEL
Community Learning Analytics – A New Research Field in TEL
 
Do Mechanical Turks Dream of Big Data?
Do Mechanical Turks Dream of Big Data?Do Mechanical Turks Dream of Big Data?
Do Mechanical Turks Dream of Big Data?
 
Advanced Community Information Systems Group (ACIS) Annual Report 2013
Advanced Community Information Systems Group (ACIS) Annual Report 2013Advanced Community Information Systems Group (ACIS) Annual Report 2013
Advanced Community Information Systems Group (ACIS) Annual Report 2013
 
Community Learning Analytics - Challenges and Opportunities - ICWL 2013 Invit...
Community Learning Analytics - Challenges and Opportunities - ICWL 2013 Invit...Community Learning Analytics - Challenges and Opportunities - ICWL 2013 Invit...
Community Learning Analytics - Challenges and Opportunities - ICWL 2013 Invit...
 
Keynote Learning Layers Developer Camp 2013
Keynote Learning Layers Developer Camp 2013Keynote Learning Layers Developer Camp 2013
Keynote Learning Layers Developer Camp 2013
 
Supporting Professional Communities in the Next Web
Supporting Professional Communities in the Next Web Supporting Professional Communities in the Next Web
Supporting Professional Communities in the Next Web
 

Kürzlich hochgeladen

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 

Kürzlich hochgeladen (20)

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 

XMPP - Introduction And LAS Implementation (Presentation)

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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/