XMPP - Introduction And LAS  Implementation (Presentation)
Upcoming SlideShare
Loading in...5
×
 

XMPP - Introduction And LAS Implementation (Presentation)

on

  • 3,449 views

Atlas Meeting

Atlas Meeting

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

Statistics

Views

Total Views
3,449
Views on SlideShare
3,401
Embed Views
48

Actions

Likes
1
Downloads
123
Comments
0

5 Embeds 48

http://beamtenherrschaft.blogspot.com 44
http://www.slideshare.net 1
http://webcache.googleusercontent.com 1
http://beamtenherrschaft.blogspot.be 1
http://beamtenherrschaft.blogspot.se 1

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

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