63
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 XMPP Introduction and LAS Implementation Holger Janßen [email protected] Chair of Computer Science 5 Information Systems RWTH Aachen 23rd of March 2009 Atlas Meeting

XMPP - Introduction And LAS Implementation (Presentation)

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

Page 1: 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ß[email protected]

Chair of Computer Science 5Information Systems

RWTH Aachen

23rd of March 2009Atlas Meeting

Page 2: 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

Outline

1 XMPP in GeneralBasic AttributesTechnical OverviewXML in XMPPDeeper Look InsideProtocol ExtensionsProgramming Libraries

2 LAS ImplementationLAS ArchitectureXMPP PartsFuture Plans

3 The End

Page 3: 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

Outline

1 XMPP in GeneralBasic AttributesTechnical OverviewXML in XMPPDeeper Look InsideProtocol ExtensionsProgramming Libraries

2 LAS ImplementationLAS ArchitectureXMPP PartsFuture Plans

3 The End

Page 4: 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

Outline

1 XMPP in GeneralBasic AttributesTechnical OverviewXML in XMPPDeeper Look InsideProtocol ExtensionsProgramming Libraries

2 LAS ImplementationLAS ArchitectureXMPP PartsFuture Plans

3 The End

Page 5: 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

What XMPP stands for

XMPP - eXtensible Messaging and Presence ProtocoleXtensible: with XEPs (later)independent of connectionbut usually transported via TCP on port

Page 6: 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

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, . . .

Page 7: 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

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

Page 8: 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

Network Structure

Figure: XMPP Network Structure

Page 9: 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

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

Page 10: 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

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

Page 11: 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

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

Page 12: 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

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

Page 13: 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

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

Page 14: 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

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

Page 15: 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

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

Page 16: 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

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

Page 17: 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

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

Page 18: 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

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

Page 19: 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

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

Page 20: 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

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

Page 21: 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

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

Page 22: 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

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

Page 23: 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

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

Page 24: 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

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

Page 25: 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

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

Page 26: 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

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

Page 27: 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

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

Page 28: 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

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

Page 29: 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

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)

Page 30: 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

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)

Page 31: 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

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)

Page 32: 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

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)

Page 33: 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

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)

Page 34: 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

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 ...]

Page 35: 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

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

Page 36: 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

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]

Page 37: 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

Sending Messages

Page 38: 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

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>� �

Page 39: 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

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>� �

Page 40: 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

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

Page 41: 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

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

Page 42: 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

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

Page 43: 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

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

Page 44: 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

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

Page 45: 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

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

Page 46: 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

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)

Page 47: 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

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)

Page 48: 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

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)

Page 49: 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

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

Page 50: 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

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

Page 51: 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

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

Page 52: 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

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

Page 53: 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

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

Page 54: 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

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

Page 55: 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

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

Page 56: 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

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

Page 57: 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

LAS - Architectural Overview

Figure: LAS Architecture

Page 58: 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

XMPP Parts for LAS

Figure: LAS XMPP Parts

Page 59: 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

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)

Page 60: 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

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)

Page 61: 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

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)

Page 62: 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

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>

Page 63: XMPP - Introduction And LAS  Implementation (Presentation)

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/