(qu'on peut traduire par « protocole extensible de présence et de messagerie »), souvent abrégé en XMPP, est un ensemble de protocoles standards ouverts de l’ (IETF) pour la messagerie instantanée, et plus généralement une architecture décentralisée d’échange de données. XMPP est également un système de collaboration en quasi-temps réel et d’échange multimédia par son extension Jingle, dont la voix sur réseau IP (téléphonie sur Internet), la visioconférence et l’échange de fichiers sont des exemples d’applications.
XMPP est constitué d'un protocole TCP/IP exploitant une architecture client-serveur permettant les échanges décentralisés de messages instantanés ou non, entre clients, au format (XML). XMPP est en développement constant et ouvert au sein de l’IETF.
Les serveurs peuvent être privés (en intranet) ou bien publics, c'est-à-dire reliés aux autres serveurs publics via Internet. L'ensemble des serveurs publics créent le réseau Jabber (ou le réseau XMPP).
XMPP est ainsi utilisé par des centaines de serveurs publics et privés et des millions d’utilisateurs. De nombreux acteurs industriels utilisent XMPP, comme .
Le protocole XMPP comprend deux parties : le protocole de base contient les concepts fondamentaux pour faire fonctionner une infrastructure Jabber. Il est défini par les 6120, 6121, 6122 (qui remplacent depuis 2011 les 3920 et 3921), 3922 et 3923. Théoriquement, une telle infrastructure ne peut pas fonctionner sans appliquer complètement ces protocoles ; les (XEP) sont des propositions d'ajout de fonctionnalités au protocole Jabber. Les serveurs ou clients ne sont pas obligés d’adopter ces extensions. Cela peut bloquer certaines fonctionnalités entre deux utilisateurs.
XMPP est conçu de manière plus large et ouverte que la simple messagerie instantanée populaire et propriétaire. Il est ainsi utilisé par les entreprises et administrations dans le cadre d’échanges de données entre applications (ETL, EAI, ESB) au sein des systèmes d’information, mais aussi dans le cadre du , des notifications d’alertes ou d’informations, de la supervision système et réseau, ou le (informatique en nuage). Enfin, XMPP est également utilisé dans le domaine du partage et de la collaboration en quasi-temps-réel comme le tableau blanc interactif (TBI) ou l’édition et le développement collaboratifs, mais aussi des jeux sur Internet (notamment les jeux de cartes et de plateau).
Logiciels (clients) XMPP
De nombreux logiciels, différents et variés, peuvent être utilisés pour communiquer avec XMPP.
Historique Le début : Jabber C’est en 1998 que Jeremie Miller a inventé Jabber, un protocole de messagerie instantanée exploitant le XML. Ses travaux se sont inspirés de ICQ, créé en 1996, le premier système du genre.
En , il annonce publiquementannonce sur Slashdot. sur Slashdot « une plate-forme informatique open source complète pour la messagerie instantanée avec communication transparente vers les autres systèmes d’IM (messagerie Instantanée) ». Le protocole était conçu, ainsi qu’un serveur fonctionnel (jabberd) et des clients de test (WinJab et Gabber).
En , Jeremie Miller lance un appel à la standardisation du protocole par l’IETF afin de promouvoir les standards ouverts et l’interopérabilitéhttp://xmpp.org/about/ietf-1999.shtml. L’IMPP WG est alors créé et publie en les 2778 et 2779 mais n’atteint pas de consensus.
Le serveur jabberd 1.0 est publié en et stabilise le protocole. En juin, Jeremie Miller publie un mais le délai est dépassé. La de jabberd introduit le qui empêche les usurpations d’identités de serveurs.
La et la reconnaissance par l'IETF La est créée en , afin d’assurer la coordination du nombre grandissant de développeurs et entreprises qui adoptent les technologies Jabber ainsi que pour gérer la documentation, la création et le maintien des protocoles XML.
En 2002, des sont à nouveau soumis à l’IETF en tant que XMPP Core et XMPP IM, et un XMPP WG (Working Group) est créé.
Les 3920 XMPP-Core et 3921 XMPP-IM, ainsi que les 3922 CPIM et 3923 E2E, sont acceptées en .
La JSF devient en 2007 la XSF pour , et propose des services d’autorité intermédiaire de certification TLS/SSL.
L'adoption par les acteurs d'Internet Apple en 2005 introduit le support de Jabber dans son logiciel de messagerie iChat livré avec OS X Tiger en .
Google de 2005 à 2013 L’entreprise Google publie en , un client XMPP propriétaire lié aux serveurs de Google. Ce client apporte la voix (téléphonie sur Internet) par le protocole Jingle, dont les spécifications sont publiées avec la bibliothèque libjingle. La JSF prend alors en charge sa standardisation. Quelques mois plus tard, ces serveurs sont ouverts au réseau Jabber. En , Google annonce son intention d'abandonner XMPP au profit du protocole propriétaire Google+ Hangouts.
Facebook de 2008 à 2015 En , les développeurs de annoncent le support de XMPP pour leur application de chat. La mise en place sera effective le , cependant le serveur n’est pas raccordé au reste du réseau Jabber. En , Facebook supprime le support de XMPP, obligeant à passer par sa propre API..
Tests de ICQ/AIM et Yahoo! En , AOL, alors fournisseur des logiciels de messagerie instantanée ICQ et AIM (compatibles et exploitant le protocole OSCAR), met en place un serveur expérimental permettant de se connecter via XMPP.. C’est donc une base de qui agrandit le réseau Jabber.
En , Yahoo!, propriétaire de Yahoo! Messenger, annonce également s’intéresser à XMPP .. Depuis, les serveurs peuvent se connecter aux autres serveurs XMPP.
WhatsApp Plusieurs éléments indiquent que l'application de messagerie WhatsApp a utilisé le protocole XMPP comme base... En 2024, un document de la justice américaine met au jour que Whatsapp utilise FunXMPP sur ses infrastructures, comme adaptation de XMPP pour les communications..
Skype en 2011 En , Skype annonce la création d'un connecteur XMPP sur la version Windows de leur logiciel client en développement.. Toutefois, l'utilisation est limitée au texte et pas à la vidéo/audio. Cette intégration semblait avoir pour objectif de se connecter à Facebook qui utilisait XMPP.
WLM en 2011 En , Microsoft annonce que Windows Live Messenger (appelé aussi MSN (de MicroSoft Network)) va proposer un moyen de se connecter à leur messagerie instantanée via le protocole XMPP. à l'aide du système authentification OAuth. dans l'optique de son nouveau système d'exploitation Windows 8 et surtout des services en lignes qui y seront associés. Toutefois, l'intégration ne se fera qu'au niveau client-serveur, interdisant aux personnes présentes sur d'autres domaines XMPP (comme gmail.com ou jabber.org) d'interagir avec eux, les spécifications retenues étant peu nombreuses..
Cette annonce a été vite suivie d'intégration dans les clients de messagerie alternatifs supportant plusieurs protocoles..
Il peut être intéressant de relever que Microsoft a des parts dans FacebookMicrosoft investit de dollars dans Facebook, valorisé à 15 milliards - AFP, 25 octobre 2007 et a racheté Skype en ..
Rachat de la société Jabber Inc. En , Cisco annonce un accord de rachat de la société Jabber Inc... Ni XSF, la fondation à but non lucratif, ni le protocole XMPP ne sont concernés par ce rachat..
XMPP et Jabber thumb|Logo officiel de la messagerie instantanée Jabber. XMPP est le protocole au cœur de Jabber ; XMPP est à Jabber ce que le (HTTP) est au .
Le protocole est maintenu par la (ancienne ) et est standardisé par l’ (IETF) sous le nom XMPP.
Bien que les deux noms coexistent, XMPP est préféré pour désigner le protocole. Jabber pouvant parfois être employé comme synonyme de XMPP mais pouvant également désigner l'entreprise Jabber Inc.
Applications XMPP (Jabber) vignette|Le logiciel libre Conversations utilise XMPP. Jeremie Miller a mis le projet sur pied en 1998 et la première version publique est sortie en . La principale production du projet est jabberd, un serveur libre permettant aux logiciels clients de se connecter pour discuter. Ce serveur permet soit de créer un réseau Jabber privé (derrière un pare-feu), soit de rejoindre d’autres serveurs publics fédérés sur Internet, pour dialoguer en ligne avec ses correspondants.
De très nombreuses applications Jabber peuvent être créées : messagerie instantanée et présence notifications diffusion par push transferts de fichiers travail collaboratif en temps-réel échange de données jeux en ligne
Grâce à Jingle, extension multimédia de XMPP, il est possible d’étendre les flux à tout contenu binaire : téléphonie sur Internet, visioconférence
Fonctionnement Le réseau des utilisateurs de XMPP est décentralisé, c’est-à-dire qu’il est composé de plusieurs serveurs, reliés entre eux. Il fonctionne de manière similaire à celle du courrier électronique : les messages instantanés sont transférés d’un utilisateur à l’autre par l’entremise de leur serveur respectif. Autre similarité, un utilisateur est identifié par un nom d’utilisateur et un nom de serveur, les deux champs étant séparés par une arobase « @ ». Cet identifiant est appelé Jabber ID ou plus simplement « adresse Jabber » ou « adresse XMPP ».
Par exemple, si un utilisateur [email protected] souhaite communiquer avec [email protected], le logiciel client de Bob commence par envoyer son message à son serveur (jabber.org). Ensuite, le serveur de Bob contactera le serveur de Gilles (jabber.cz) via Internet et lui transférera le message. Enfin, le serveur jabber.cz pourra contacter le logiciel client de Gilles, s’il est en ligne et lui communiquer le message (sinon le message sera conservé en attente sur le serveur et délivré lorsque Gilles sera en ligne). Évidemment, toutes ces étapes se font de manière instantanée et transparente pour l’utilisateur, comme pour les courriers électroniques.
Bob ↔ jabber.org ← Internet → jabber.cz ↔ Gilles
thumb|Le client XMPP libre Gajim.
thumb|Le client Jabber libre Spark.
Jingle
Jingle permet les sessions de voix sur réseau IP et de visioconférence. Jingle est intégré dans plusieurs clients XMPP. Il a été utilisé par jusqu'en 2014 avant que ce dernier soit remplacé par Google Hangout.
Applications Jingle, grâce à sa conception large, son évolutivité et sa standardisation, offre un large spectre d’applications : discussion en ligne un à un (chat, clavardage), présence et discussion de groupe () VoIP et visioconférence ou plus généralement initialisation de sessions multimédia notifications et alertes comme les ETL, EAI et ESB applications d’édition collaborative en quasi-temps-réel comme les documents de bureautique (textes structurés, graphiques vectoriels, feuilles de calcul, présentation) contrôle à distance monitoring et supervision réseaux sociaux jeux en ligne
Standard ouvert, norme vignette|Capture d'écran d'un message XML interchange transmis via le protocole XMPP Le protocole XMPP (Jabber) a été publié comme une ébauche (« ») par l’IETF, pour qu’il puisse devenir un standard de messagerie instantanée.
En 2002, le groupe XMPP a été formé et a travaillé sur la standardisation du protocole. C’est ainsi que le , les spécifications du protocole ont été publiées en tant que RFC. Depuis cette date, la a cédé le contrôle de ses principales technologies à l’IETF tout en continuant à développer de nombreuses extensions au protocole (série de XEP).
Avantages et inconvénients
Avantages Libre : les protocoles et documents officiels sont détaillés et accessibles à tous en téléchargement Standard : l’IETF a normalisé les bases du protocole (XMPP) et son évolution continue par ses extensions avec la Décentralisé : comme le courrier électronique, les services XMPP ne dépendent pas d’un seul point d’accès. Sécurisé : la communication entre le client et le serveur peut être chiffrée à la demande du client et la communication entre serveurs est chiffrée Extensible : il est possible de créer et documenter des extensions du protocole par les « XEP »