Extensible Messaging and Presence Protocol (XMPP), voorheen Jabber geheten,Jabber Inc. - About Us is een Open standaard, een op XML gebaseerd netwerkprotocol voor instant messaging en presence notification.
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).
Ontwerpprincipes XMPP is ontworpen als een gedecentraliseerd communicatiesysteem, vergelijkbaar met e-mail. Dit betekent dat geen centrale server nodig is en dat verschillende servers met elkaar kunnen communiceren via federatie.
Een belangrijk uitgangspunt van het protocol is eenvoud van de kernspecificatie, gecombineerd met uitbreidbaarheid via gestandaardiseerde extensies. Hierdoor blijft de basis stabiel, terwijl nieuwe functies onafhankelijk kunnen worden ontwikkeld en geïmplementeerd.An Overview of XMPP
Het protocol is gebaseerd op open standaarden en bevordert interoperabiliteit tussen verschillende implementaties.
Architectuur Client-servermodel
In XMPP communiceren clients met een server via een permanente XML-stream. De server verzorgt authenticatie, routing van berichten en verbinding met andere servers.
Elke gebruiker heeft een unieke XMPP-adresvorm (een Jabber ID of JID), zoals: [email protected].
Server-servermodel (federatie)
Servers kunnen onderling verbinding maken om berichten uit te wisselen tussen gebruikers op verschillende domeinen. Dit federatieve model maakt communicatie mogelijk tussen onafhankelijke XMPP-domeinen.
Deze architectuur is vergelijkbaar met het e-mailprotocol SMTP.
Protocolwerking
XMPP is gebaseerd op het versturen van XML-streams tussen entiteiten. Binnen deze streams worden zogeheten stanzas gebruikt, die de basis vormen van communicatie:
<message/> voor berichten <presence/> voor statusinformatie <iq/> (info/query) voor gestructureerde verzoeken en antwoorden
De communicatie verloopt doorgaans via TCP, met optionele beveiliging via TLS. Authenticatie gebeurt via SASL-mechanismen.
Specificaties en extensies (standaarden en XEP's)
XMPP is opgebouwd uit een relatief kleine kernspecificatie die door de Internet Engineering Task Force (IETF) is gestandaardiseerd, aangevuld met een groot ecosysteem van uitbreidingen.
De kernspecificaties definiëren de basis van het protocol, zoals het transport van XML-streams, adressering en basisberichtenuitwisseling. Deze zijn vastgelegd in RFC 6120 (Core), RFC 6121 (Instant Messaging and Presence) en gerelateerde specificaties.
Naast deze kernspecificaties worden extra functies toegevoegd via XMPP Extension Protocols (XEP's). XEP's zijn gestandaardiseerde uitbreidingsdocumenten die worden ontwikkeld en onderhouden door de XMPP Standards Foundation (XSF). Ze maken het mogelijk om nieuwe functionaliteit te introduceren zonder de kern van het protocol aan te passen.
De XEP-structuur omvat zowel informatieve als strikt gestandaardiseerde specificaties en bestrijkt een breed scala aan toepassingen. Enkele voorbeelden zijn groepscommunicatie via Multi-User Chat (XEP-0045), bestandsoverdracht via HTTP Upload (XEP-0363) en end-to-end encryptie via OMEMO (XEP-0384).
Door deze scheiding tussen stabiele kernspecificaties en uitbreidbare XEP's kan XMPP enerzijds interoperabiliteit en stabiliteit garanderen, terwijl anderzijds innovatie en toepassing in uiteenlopende domeinen mogelijk blijft.
Beveiliging
XMPP ondersteunt het gebruik van TLS voor het beveiligen van zowel client-server- als server-serververbindingen.
Voor end-to-end-encryptie zijn aanvullende protocollen beschikbaar via XEP's. Veelgebruikte methoden zijn OMEMO, een end-to-end encryptieprotocol gebaseerd op het Signal protocol, en OpenPGP-gebaseerde encryptie.
De beschikbaarheid van beveiligingsfuncties is afhankelijk van de gebruikte client en serverimplementatie.
Toepassingen
XMPP wordt gebruikt in verschillende domeinen, waaronder instant messaging, bedrijfscommunicatie en gedecentraliseerde communicatiesystemen. Door de uitbreidbaarheid van het protocol wordt het ook toegepast in IoT-omgevingen en realtime datacommunicatie.
Bekende open-source implementaties zijn onder andere ejabberd en Openfire als servers, en clients zoals Gajim en Conversations. Historisch werd XMPP gebruikt in Google Talk en in de federatieve architectuur van Google Wave.Google Wave Federation Protocol Over XMPP - Draft Protocol Spec
Chronologie 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)Jabber Software Foundation Renamed to XMPP Standards Foundation 16 januari 2007 - jabber.org is still maintained en legde zo nog meer de nadruk op het ontwikkelen van nieuwe protocoluitbreidingen en niet op het ontwikkelen van software. 2011: Publicatie van RFC 6120 en RFC 6121, ter vervanging van verschillende in 2004 gepubliceerde specificaties. 2014: Een 70-tal diensten en programma's stappen over op beveiligde TLS-verbindingen.70-plus messaging services and XMPP software clients begin requiring TLS encryption. Gearchiveerd op 23 september 2021.
Vergelijkbare protocollen Matrix SIMPLE
Zie ook Lijst van XMPP-clients Lijst van XMPP-servers
Externe links XMPP Standards Foundation IETF Publishes XMPP RFCs (Nederlandstalige versie) De geschiedenis van XMPP (Origineel)
Categorie:XMPP Categorie:Open standaard Categorie:XML-gebaseerde standaard