XMPP - Introduction And LAS Implementation (Presentation)

Post on 11-May-2015

2.643 views 5 download

Tags:

description

Atlas MeetingHolger Janßenjanssen [at] i5.informatik.rwth-aachen.deChair of Computer Science 5Information SystemsRWTH Aachen23rd of March 2009

Transcript of XMPP - Introduction And LAS Implementation (Presentation)

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ßenjanssen@i5.informatik.rwth-aachen.de

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,

someone@someserver.tld/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,

someone@someserver.tld/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,

someone@someserver.tld/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,

someone@someserver.tld/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,

someone@someserver.tld/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="tom@server.tld/work"

to="bob@server.tld"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="tom@server.tld/work"

to="bob@server.tld/mobile"type="chat" xml:lang="en">

<body>Hel lo Bob ,how are you?

</body><thread>2132842</thread>

</message>� �

� �<message from="tom@server.tld/work"

to="bob@server.tld/home"type="chat" xml:lang="en">

<body>Hel lo Bob ,how are you?

</body><thread>2132842</thread>

</message>� �

� �<message from="tom@server.tld/work"

to="bob@server.tld/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="holger@xmpp-server.de/frontdesk"to="audience@xmpp-server.de/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/