Extensible Messaging and Presence Protocol (XMPP), voorheen Jabber geheten,[1] is een open en op XML gebaseerd netwerkprotocol voor instant messaging en presence notification. Het wordt op dit moment gebruikt op duizenden XMPP-servers op het internet en door miljoenen mensen wereldwijd. Het protocol wordt ook gebruikt door Google Talk en Google Wave.[2]
De XML-streamingtechnologie zag in 1998 het levenslicht onder de naam Jabber. De specificaties zijn publiekelijk beschikbaar, waardoor vele implementaties open-source zijn. De basis van Jabber werd in 2004 door het Internet Engineering Task Force (IETF) goedgekeurd als Extensible Messaging and Presence Protocol (XMPP).
Hoe werkt het
Veronderstel dat juliet@capulet.com wil chatten met romeo@montague.net. Juliet en Romeo hebben respectievelijk een account op de servers capulet.com en montague.net. Als Juliet een bericht wil verzenden naar Romeo gebeurt het volgende:
- Juliets XMPP-client zendt het bericht naar de XMPP-server capulet.com.
- Als montague.net geblokkeerd wordt op capulet.com, dan wordt het bericht verwijderd.
- De XMPP-server capulet.com opent een verbinding met de XMPP-server montague.net.
- De server montague.net verzendt het bericht naar Romeo's XMPP-client.
- Als capulet.com geblokkeerd wordt op montague.net, dan wordt het bericht verwijderd
- Als Romeo niet verbonden is, dan wordt het bericht opgeslagen tot wanneer Romeo terug online komt. (In de veronderstelling dat de server offline berichten toestaat.)
- Romeo ontvangt het bericht.
Juliet
|
↔
|
capulet.com
|
→
|
montague.net
|
↔
|
Romeo
|
Specificaties
De XMPP-werkgroep van het IETF heeft een reeks Request for Comments (RFCs) gecreëerd die op 4 oktober 2004 zijn uitgebracht:
- RFC 3920,[3] "Extensible Messaging and Presence Protocol (XMPP): Core" definieert het versturen van berichten tussen client en server door gebruik te maken van twee XML-streams. Die streams bestaan uit de tags <presence/>, <message/> en <iq/> (info/query). Een verbinding wordt geverifieerd met Simple Authentication and Security Layer (SASL) en versleuteld met Transport Layer Security (TLS).
- RFC 3921,[4] "Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence" definieert instant messaging (IM), de bekendste toepassing van XMPP.
- RFC 3922,[5] "Mapping the Extensible Messaging and Presence Protocol (XMPP) to Common Presence and Instant Messaging (CPIM)" bevat een vergelijking van XMPP en de Common Presence and Instant Messaging (CPIM) specificaties.
- RFC 3923,[6] "End-to-End Signing and Object Encryption for the Extensible Messaging and Presence Protocol (XMPP)" definieert volledige versleuteling van XMPP-berichten en maakt daarvoor gebruik van S/MIME. Hiermee strijdig gebruiken vele clients momenteel GPG voor het versleutelen van berichten.
Ontstaan
Een beknopt overzicht van de belangrijkste gebeurtenissen:
- 1998: Jeremie Miller onthulde het bestaan van Jabber aan het grote publiek.
- 2000: In mei werd de eerste versie van de serversoftware vrijgegeven: jabberd 1.0.
- 2001: In augustus zag de Jabber Software Foundation (JSF) het levenslicht. Haar taak was het groeiende aantal gebruikers van Jabber beter te kunnen coördineren. De voornaamste taak van de JSF is het beheren van het protocol. Derden kunnen Jabber Enhancement Proposals (JEPs) indienen die na overleg al dan niet worden goedgekeurd.
- 2002-2004: De JSF ijverde bij het IETF voor de opname van het protocol (dat de naam XMPP krijgt) als standaard.
- 2004: Na 3 jaar werk werden de 4 belangrijkste specificaties goedgekeurd door het IETF wat XMPP brede erkenning oplevert.
- 2005: Google Talk werd gelanceerd en is gebaseerd op XMPP.
- 2006: De JEPs veranderden van naam en heten sindsdien XMPP Extension Protocols (XEPs). Ze kregen ook een afzonderlijke website.
- 2007: De JSF veranderde haar naam in XMPP Standards Foundation (XSF)[7] en legde zo nog meer de nadruk op het ontwikkelen van nieuwe protocoluitbreidingen en niet op het ontwikkelen van software.
- 2014: Een 70-tal diensten en programma's stappen over op beveiligde TLS-verbindingen.[8]