Upload
ralf-klamma
View
2.644
Download
5
Embed Size (px)
DESCRIPTION
Atlas MeetingHolger Janßenjanssen [at] i5.informatik.rwth-aachen.deChair of Computer Science 5Information SystemsRWTH Aachen23rd of March 2009
Citation preview
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
XMPPIntroduction and LAS Implementation
Holger Janß[email protected]
Chair of Computer Science 5Information Systems
RWTH Aachen
23rd of March 2009Atlas Meeting
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Outline
1 XMPP in GeneralBasic AttributesTechnical OverviewXML in XMPPDeeper Look InsideProtocol ExtensionsProgramming Libraries
2 LAS ImplementationLAS ArchitectureXMPP PartsFuture Plans
3 The End
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Outline
1 XMPP in GeneralBasic AttributesTechnical OverviewXML in XMPPDeeper Look InsideProtocol ExtensionsProgramming Libraries
2 LAS ImplementationLAS ArchitectureXMPP PartsFuture Plans
3 The End
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Outline
1 XMPP in GeneralBasic AttributesTechnical OverviewXML in XMPPDeeper Look InsideProtocol ExtensionsProgramming Libraries
2 LAS ImplementationLAS ArchitectureXMPP PartsFuture Plans
3 The End
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
What XMPP stands for
XMPP - eXtensible Messaging and Presence ProtocoleXtensible: with XEPs (later)independent of connectionbut usually transported via TCP on port
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Some Dates and Facts
developed on the basis of Jabber (1992)XMPP WG started in 2002results
RFC 2779 (IM-REQS)RFC 3920 (XMPP-Core, Core XMPP protocol definition)RFC 3921 (XMPP-IM, Messaging and RosterManagement)5 further RFCs, 158 XEPse.g. XML-RPC, SOAP over XMPP, user avatars, filetransfer, . . .
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Comparison with HTTP and ICQ
XMPP OSCAR (ICQ / AIM) HTTP
Licence free proprietary free
Transport usually TCP only TCP only TCP
Type XML binary textual
UserAuthentication SASL proprietary (auth
server)per request headers /
session extension
Security SSL/TLS, StartTLS messages SSL/TLS
CommunicationParticipants
Client-Server,Server-Server,
Gateways
OSCAR:Client-Server, ICQ:
Client-Client tooClient-Server
CommunicationStructure
request-response,server-push
request-response,server-push
clientrequest-response
statefull, keep alive statefull, keep alive stateless, even inkeep alive
Identity JID UIN —
Table: Protocol Comparison1
1http://en.wikipedia.org/wiki/Comparison_of_instant_messaging_protocols
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Network Structure
Figure: XMPP Network Structure
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Use Cases
Client - ServerPresence HandlingRoster Managementsending messages
Server - Clientevent notificationpresence changesroster updates (other clients of the same user)
Server - Serverforwading of XMPP messagesacting as gateway between different networks
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Use Cases
Client - ServerPresence HandlingRoster Managementsending messages
Server - Clientevent notificationpresence changesroster updates (other clients of the same user)
Server - Serverforwading of XMPP messagesacting as gateway between different networks
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Use Cases
Client - ServerPresence HandlingRoster Managementsending messages
Server - Clientevent notificationpresence changesroster updates (other clients of the same user)
Server - Serverforwading of XMPP messagesacting as gateway between different networks
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Terms and Concepts (1)
Some Terms (1)Client any XMPP speaking entity using jabber:client
to talk to a serverServer . . .
Gateway Moderating Server between two differentnetworks (e.g. ICQ, XMPP, MSN
Stanza any level 1 XML node below stream, XMPPdefines message, iq and presence
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Terms and Concepts (1)
Some Terms (1)Client any XMPP speaking entity using jabber:client
to talk to a serverServer . . .
Gateway Moderating Server between two differentnetworks (e.g. ICQ, XMPP, MSN
Stanza any level 1 XML node below stream, XMPPdefines message, iq and presence
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Terms and Concepts (1)
Some Terms (1)Client any XMPP speaking entity using jabber:client
to talk to a serverServer . . .
Gateway Moderating Server between two differentnetworks (e.g. ICQ, XMPP, MSN
Stanza any level 1 XML node below stream, XMPPdefines message, iq and presence
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Terms and Concepts (1)
Some Terms (1)Client any XMPP speaking entity using jabber:client
to talk to a serverServer . . .
Gateway Moderating Server between two differentnetworks (e.g. ICQ, XMPP, MSN
Stanza any level 1 XML node below stream, XMPPdefines message, iq and presence
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Terms and Concepts (2)
Some Terms (2)JID Jabber ID for user identification,
[email protected]/someresource
Resource defined by client,each entity (e.g. user) may operate multipleresources simultaneously,resource unique per entity
Roster aka Buddy List, list of user’s contactsPresence current status information of a userMessage a simple message
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Terms and Concepts (2)
Some Terms (2)JID Jabber ID for user identification,
[email protected]/someresource
Resource defined by client,each entity (e.g. user) may operate multipleresources simultaneously,resource unique per entity
Roster aka Buddy List, list of user’s contactsPresence current status information of a userMessage a simple message
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Terms and Concepts (2)
Some Terms (2)JID Jabber ID for user identification,
[email protected]/someresource
Resource defined by client,each entity (e.g. user) may operate multipleresources simultaneously,resource unique per entity
Roster aka Buddy List, list of user’s contactsPresence current status information of a userMessage a simple message
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Terms and Concepts (2)
Some Terms (2)JID Jabber ID for user identification,
[email protected]/someresource
Resource defined by client,each entity (e.g. user) may operate multipleresources simultaneously,resource unique per entity
Roster aka Buddy List, list of user’s contactsPresence current status information of a userMessage a simple message
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Terms and Concepts (2)
Some Terms (2)JID Jabber ID for user identification,
[email protected]/someresource
Resource defined by client,each entity (e.g. user) may operate multipleresources simultaneously,resource unique per entity
Roster aka Buddy List, list of user’s contactsPresence current status information of a userMessage a simple message
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Restrictions
XML Streams: RestrictionsNamespaces jabber:client and jabber:server
no commentsno processing instructionsno internal or external DTD subsetsno internal or external entity referencesno character data mapping to the predefined entities(e.g. stream, iq, message)
a stream has to be properly namespaced (client orserver)prefix is optional but restricted to stream
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Restrictions
XML Streams: RestrictionsNamespaces jabber:client and jabber:server
no commentsno processing instructionsno internal or external DTD subsetsno internal or external entity referencesno character data mapping to the predefined entities(e.g. stream, iq, message)
a stream has to be properly namespaced (client orserver)prefix is optional but restricted to stream
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Restrictions
XML Streams: RestrictionsNamespaces jabber:client and jabber:server
no commentsno processing instructionsno internal or external DTD subsetsno internal or external entity referencesno character data mapping to the predefined entities(e.g. stream, iq, message)
a stream has to be properly namespaced (client orserver)prefix is optional but restricted to stream
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Restrictions
XML Streams: RestrictionsNamespaces jabber:client and jabber:server
no commentsno processing instructionsno internal or external DTD subsetsno internal or external entity referencesno character data mapping to the predefined entities(e.g. stream, iq, message)
a stream has to be properly namespaced (client orserver)prefix is optional but restricted to stream
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Restrictions
XML Streams: RestrictionsNamespaces jabber:client and jabber:server
no commentsno processing instructionsno internal or external DTD subsetsno internal or external entity referencesno character data mapping to the predefined entities(e.g. stream, iq, message)
a stream has to be properly namespaced (client orserver)prefix is optional but restricted to stream
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Restrictions
XML Streams: RestrictionsNamespaces jabber:client and jabber:server
no commentsno processing instructionsno internal or external DTD subsetsno internal or external entity referencesno character data mapping to the predefined entities(e.g. stream, iq, message)
a stream has to be properly namespaced (client orserver)prefix is optional but restricted to stream
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Restrictions
XML Streams: RestrictionsNamespaces jabber:client and jabber:server
no commentsno processing instructionsno internal or external DTD subsetsno internal or external entity referencesno character data mapping to the predefined entities(e.g. stream, iq, message)
a stream has to be properly namespaced (client orserver)prefix is optional but restricted to stream
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Restrictions
XML Streams: RestrictionsNamespaces jabber:client and jabber:server
no commentsno processing instructionsno internal or external DTD subsetsno internal or external entity referencesno character data mapping to the predefined entities(e.g. stream, iq, message)
a stream has to be properly namespaced (client orserver)prefix is optional but restricted to stream
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Remarks
Remarksa connection consists of two stream documents, onefor each directionboth nodes may write to their outgoing stream(not only client requests, server answers)the stream documents may be interpreted as protocol(transcript) of the connection
validation is optional, but well-formed documents arenecessaryeach entity is to ignore data it doesn’t understand (butto deliver in case of servers)
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Remarks
Remarksa connection consists of two stream documents, onefor each directionboth nodes may write to their outgoing stream(not only client requests, server answers)the stream documents may be interpreted as protocol(transcript) of the connection
validation is optional, but well-formed documents arenecessaryeach entity is to ignore data it doesn’t understand (butto deliver in case of servers)
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Remarks
Remarksa connection consists of two stream documents, onefor each directionboth nodes may write to their outgoing stream(not only client requests, server answers)the stream documents may be interpreted as protocol(transcript) of the connection
validation is optional, but well-formed documents arenecessaryeach entity is to ignore data it doesn’t understand (butto deliver in case of servers)
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Remarks
Remarksa connection consists of two stream documents, onefor each directionboth nodes may write to their outgoing stream(not only client requests, server answers)the stream documents may be interpreted as protocol(transcript) of the connection
validation is optional, but well-formed documents arenecessaryeach entity is to ignore data it doesn’t understand (butto deliver in case of servers)
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Remarks
Remarksa connection consists of two stream documents, onefor each directionboth nodes may write to their outgoing stream(not only client requests, server answers)the stream documents may be interpreted as protocol(transcript) of the connection
validation is optional, but well-formed documents arenecessaryeach entity is to ignore data it doesn’t understand (butto deliver in case of servers)
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Session Establishment (1)
1 <stream:stream xmlns="jabber:client"2 xmlns:stream="http//etherx.jabber.org/streams"3 to="server.tld"4 version="1.0">
1 <stream:stream xmlns="jabber:client"2 xmlns="http://etherx.jabber.org/streams"3 to="c2s_234"4 from="server.tld"5 version="1.0">6 <stream:features>7 <starttls xmlns="urn:urn:ietf:params:xml:ns:xmpp-tls">8 <required />9 </starttls>10 <mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl">11 <mechanism>DIGEST−MD5</mechanism>12 <mechanism>PLAIN</mechanism>13 </mechanism>14 <bind xmlns="urn:ietf:params:xml:ns:xmpp-bind" />15 </stream:features>
5 <starttls xmlns="urn:ietf:params:xml:ns:xmpp-tls" />
16 <proceed xmlns="urn:ietf:params:xml:ns:xmpp-tls" />
[TLS negotiation ...]
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Session Establishment (2)
. . .1 <stream:stream xmlns="jabber:client"2 xmlns:stream="http//etherx.jabber.org/streams"3 to="server.tld"4 version="1.0">
1 <stream:stream xmlns="jabber:client"2 xmlns="http://etherx.jabber.org/streams"3 to="c2s_234"4 from="server.tld"5 version="1.0">6 <stream:features>7 <mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl">8 <mechanism>DIGEST−MD5</mechanism>9 <mechanism>PLAIN</mechanism>10 </mechanism>11 <bind xmlns="urn:ietf:params:xml:ns:xmpp-bind" />12 </stream:features>
5 <auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl"6 mechanism="DIGEST-MD5" />
14 <challenge xmlns="urn:ietf:params:xml:ns:xmpp-sasl">15 . . . ( base64 encoded )16 </challenge>
7 <response xmlns="urn:ietf:params:xml:ns:xmpp-sasl">8 . . . ( base64 encoded )9 </response>
17 <success xmlns="urn:ietf:params:xml:ns:xmpp-sasl" />
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Session Establishment (3)
. . .1 <stream:stream xmlns="jabber:client"2 xmlns:stream="http//etherx.jabber.org/streams"3 to="server.tld"4 version="1.0">
1 <stream:stream xmlns="jabber:client"2 xmlns="http://etherx.jabber.org/streams"3 to="c2s_234"4 from="server.tld"5 version="1.0">6 <stream:features>7 <bind xmlns="urn:ietf:params:xml:ns:xmpp-bind" />8 </stream:features>
5 <iq type="set" id="bind_1">6 <bind xmlns="urn:ietf:params:xml:ns:xmpp-bind">7 <resource>someresource</resource>8 </bind>9 </iq>
9 <iq type="result" id="bind_1">10 <bind xmlns="urn:ietf:params:xml:ns:xmpp-bind">11 <jid>user@server . t l d / someresource</jid>12 </bind>13 </iq>
. . .[send initial presence]
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Sending Messages
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Sending Messages
� �<message from="[email protected]/work"
to="[email protected]"type="chat" xml:lang="en">
<body>Hel lo Bob ,how are you?
</body><thread>2132842</thread>
</message>� �
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Sending Messages
� �<message from="[email protected]/work"
to="[email protected]/mobile"type="chat" xml:lang="en">
<body>Hel lo Bob ,how are you?
</body><thread>2132842</thread>
</message>� �
� �<message from="[email protected]/work"
to="[email protected]/home"type="chat" xml:lang="en">
<body>Hel lo Bob ,how are you?
</body><thread>2132842</thread>
</message>� �
� �<message from="[email protected]/work"
to="[email protected]/work"type="chat" xml:lang="en">
<body>Hel lo Bob ,how are you?
</body><thread>2132842</thread>
</message>� �
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Presence Handling
Some Factssubscription to presence information only afterconfirmationaccess to own roster only after sending initial presenceinformation to serverseparate presence information to each entity possiblebroadcasting of presence automatically pushed byserver on updatesserver keeps track of specialized presence informationblacklisting and whitelisting of incoming and outgoingpresence information
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Presence Handling
Some Factssubscription to presence information only afterconfirmationaccess to own roster only after sending initial presenceinformation to serverseparate presence information to each entity possiblebroadcasting of presence automatically pushed byserver on updatesserver keeps track of specialized presence informationblacklisting and whitelisting of incoming and outgoingpresence information
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Presence Handling
Some Factssubscription to presence information only afterconfirmationaccess to own roster only after sending initial presenceinformation to serverseparate presence information to each entity possiblebroadcasting of presence automatically pushed byserver on updatesserver keeps track of specialized presence informationblacklisting and whitelisting of incoming and outgoingpresence information
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Presence Handling
Some Factssubscription to presence information only afterconfirmationaccess to own roster only after sending initial presenceinformation to serverseparate presence information to each entity possiblebroadcasting of presence automatically pushed byserver on updatesserver keeps track of specialized presence informationblacklisting and whitelisting of incoming and outgoingpresence information
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Presence Handling
Some Factssubscription to presence information only afterconfirmationaccess to own roster only after sending initial presenceinformation to serverseparate presence information to each entity possiblebroadcasting of presence automatically pushed byserver on updatesserver keeps track of specialized presence informationblacklisting and whitelisting of incoming and outgoingpresence information
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Presence Handling
Some Factssubscription to presence information only afterconfirmationaccess to own roster only after sending initial presenceinformation to serverseparate presence information to each entity possiblebroadcasting of presence automatically pushed byserver on updatesserver keeps track of specialized presence informationblacklisting and whitelisting of incoming and outgoingpresence information
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Roster Management
Some Factsone roster per userupdates cause push to all bound resources of a userupdate of subscription state changes both involvedrosters(outgoing of sender, incoming of subscriber)
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Roster Management
Some Factsone roster per userupdates cause push to all bound resources of a userupdate of subscription state changes both involvedrosters(outgoing of sender, incoming of subscriber)
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Roster Management
Some Factsone roster per userupdates cause push to all bound resources of a userupdate of subscription state changes both involvedrosters(outgoing of sender, incoming of subscriber)
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
The Idea of XEPs
managed by XMPP Standards Foundationdescribed by XEP 001,http://xmpp.org/extensions/xep-0001.html
types: standard track, informational, historical,humorous, and proceduralinformational: best practices or usage profileformal submission via XML documentaffect all parts of the XML communication belowstream establishmentwork mostly by defining XML namespace schemas andtheir semantics
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
The Idea of XEPs
managed by XMPP Standards Foundationdescribed by XEP 001,http://xmpp.org/extensions/xep-0001.html
types: standard track, informational, historical,humorous, and proceduralinformational: best practices or usage profileformal submission via XML documentaffect all parts of the XML communication belowstream establishmentwork mostly by defining XML namespace schemas andtheir semantics
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
The Idea of XEPs
managed by XMPP Standards Foundationdescribed by XEP 001,http://xmpp.org/extensions/xep-0001.html
types: standard track, informational, historical,humorous, and proceduralinformational: best practices or usage profileformal submission via XML documentaffect all parts of the XML communication belowstream establishmentwork mostly by defining XML namespace schemas andtheir semantics
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
The Idea of XEPs
managed by XMPP Standards Foundationdescribed by XEP 001,http://xmpp.org/extensions/xep-0001.html
types: standard track, informational, historical,humorous, and proceduralinformational: best practices or usage profileformal submission via XML documentaffect all parts of the XML communication belowstream establishmentwork mostly by defining XML namespace schemas andtheir semantics
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
The Idea of XEPs
managed by XMPP Standards Foundationdescribed by XEP 001,http://xmpp.org/extensions/xep-0001.html
types: standard track, informational, historical,humorous, and proceduralinformational: best practices or usage profileformal submission via XML documentaffect all parts of the XML communication belowstream establishmentwork mostly by defining XML namespace schemas andtheir semantics
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
The Idea of XEPs
managed by XMPP Standards Foundationdescribed by XEP 001,http://xmpp.org/extensions/xep-0001.html
types: standard track, informational, historical,humorous, and proceduralinformational: best practices or usage profileformal submission via XML documentaffect all parts of the XML communication belowstream establishmentwork mostly by defining XML namespace schemas andtheir semantics
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
The Idea of XEPs
managed by XMPP Standards Foundationdescribed by XEP 001,http://xmpp.org/extensions/xep-0001.html
types: standard track, informational, historical,humorous, and proceduralinformational: best practices or usage profileformal submission via XML documentaffect all parts of the XML communication belowstream establishmentwork mostly by defining XML namespace schemas andtheir semantics
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Programming Libraries
Objective C
xmppframework http://code.google.com/p/xmppframework/ (client)
Java
Smack http://www.igniterealtime.org/projects/smack/(Client)
Python
PyXMPP http://pyxmpp.jajcus.net/ (Client)
Twisted Words http://twistedmatrix.com/trac/
Headstock http://trac.defuze.org/wiki/headstock (Client)
see http://xmpp.org/software/libraries.shtml
here: only active projects
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
LAS - Architectural Overview
Figure: LAS Architecture
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
XMPP Parts for LAS
Figure: LAS XMPP Parts
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Future Plans
Plans with XMPP and LASXEP 0009 Jabber-RPC (as adaption of XML-RPC to
Jabber / XMPP)XEP 0080 User Location (GPS data in presence
information, needs XEP 0060... (?)Own Extension GPS data in presence stanzas
(disadvantage: incompatible with exitingtools)
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Future Plans
Plans with XMPP and LASXEP 0009 Jabber-RPC (as adaption of XML-RPC to
Jabber / XMPP)XEP 0080 User Location (GPS data in presence
information, needs XEP 0060... (?)Own Extension GPS data in presence stanzas
(disadvantage: incompatible with exitingtools)
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Future Plans
Plans with XMPP and LASXEP 0009 Jabber-RPC (as adaption of XML-RPC to
Jabber / XMPP)XEP 0080 User Location (GPS data in presence
information, needs XEP 0060... (?)Own Extension GPS data in presence stanzas
(disadvantage: incompatible with exitingtools)
XMPP
XMPP inGeneralBasic Attributes
Technical Overview
XML in XMPP
Deeper Look Inside
Protocol Extensions
ProgrammingLibraries
LAS Imple-mentationLAS Architecture
XMPP Parts
Future Plans
The End
Final Words
<message from="[email protected]/frontdesk"to="[email protected]/seminarRoom">
<subject language="en">The End</subject><subject language="de">Ende</subject><body language="en">
Thanks f o r your a t t e n t i o n !</body><body language="de">
Vie len Dank fue r Ih re Aufmerksamkeit !</body><thread>MyTalk001231</thread>
</message>
XMPP
Links andMaterials
Links and Materials
XMPP Corehttp://xmpp.org/rfcs/rfc3920.html
XMPP IMhttp://xmpp.org/rfcs/rfc3921.html
XMPP Working Grouphttp://www.xmpp.org
LATEXBeamerhttp://latex-beamer.sourceforge.net/