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