Extensible Messaging and Presence Protocol

Un article de Wikipédia, l'encyclopédie libre.
Aller à : Navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Jabber.


Logo de XMPP
Logo de Extensible Messaging and Presence Protocol
Fonction Messagerie instantanée
Sigle XMPP
RFC RFC 3920 - RFC 3921 - RFC 3922 - RFC 3923

XMPP (Extensible Messaging and Presence Protocol, en français « protocole extensible de présence et de messagerie », anciennement appelé Jabber[1]) est un ensemble de protocoles standards ouverts de l’IETF de messagerie instantanée et de présence, et plus généralement une architecture décentralisée d’échange de données. Jabber est également un système de collaboration en quasi-temps-réel et d’échange multimédia via Jingle, dont la VoIP (téléphonie sur Internet), la visioconférence et l’échange de fichiers sont des exemples d’applications.

C’est un protocole basé sur 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.

La force du protocole XMPP réside dans sa séparation en deux parties différentes :

À la différence des autres systèmes de présence et de messagerie instantanée populaires et propriétaires, Jabber est conçu de manière bien plus large et ouverte que le simple « chat » (discussion sur Internet, clavardage). Jabber est ainsi également 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’informations, mais aussi dans le cadre du grid computing, des notifications d’alertes ou d’informations, de la supervision système et réseau, ou le cloud computing. Jabber est enfin également utilisé dans le domaine du partage et de la collaboration en quasi-temps-réel comme le tableau blanc (« whiteboard ») ou l’édition et le développement collaboratifs, mais aussi des jeux sur Internet (notamment les jeux de carte et de plateaux pour l’instant).

XMPP est utilisé à travers le monde par des centaines de serveurs publics et privés, et des millions d’utilisateurs. De très nombreux acteurs industriels utilisent XMPP, notamment Apple, Cisco, Gizmo5, GNOME, Google, IBM, Oracle Corporation, Sun Microsystems, etc.

Sommaire

[modifier] Historique

[modifier] Le début : jabberd

C’est en 1998 que Jeremie Miller a inventé Jabber, un protocole de messagerie instantanée basé sur XML. Ses travaux se sont inspirés de ICQ, créé en 1996, le premier système du genre.

En janvier 1999, il annonce publiquement[2] sur Slashdot « une plate-forme en informatique open source complète pour la messagerie instantanée avec communication transparente vers les autres systèmes d’IM ». Le protocole était conçu, ainsi qu’un serveur fonctionnel (jabberd) et des clients de test (WinJab et Gabber).

En août 1999, Jeremie Miller lance un appel à la standardisation du protocole par l’IETF afin de promouvoir les standards ouverts et l’interopérabilité. L’IMPP WG est alors créé et publie en février 2000 les RFC 2778 et 2779 mais n’atteint pas de consensus.

Le serveur open source jabberd 1.0 est publié en mai 2000 et stabilise le protocole. En juin, Jeremie Miller publie un Internet-Draft mais le délai est dépassé. La version 1.2 de jabberd introduit le dialback qui empêche les usurpations d’identités de serveurs.

[modifier] La Jabber Software Foundation et la reconnaissance par l'IETF

La Jabber Software Foundation est créée en août 2001, afin d’assurer la coordination du nombre grandissant de développeurs open source 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 Internet-Draft sont à nouveau soumis à l’IETF en tant que XMPP Core et XMPP IM, et un XMPP WG est créé.

Les RFC 3920 XMPP-Core et 3921 XMPP-IM, ainsi que les RFC 3922 CPIM et 3923 E2E, sont acceptées en octobre 2004.


La JSF deviendra en 2007 la XSF pour XMPP Standards Foundation, et propose des services d’autorité intermédiaire de certification TLS/SSL.

[modifier] L'adoption par les acteurs d'Internet

[modifier] D'abord Apple et Google…

Apple introduit le support de Jabber dans son logiciel de messagerie iChat livré avec OS X Tiger en avril 2005. L’entreprise Google publie Google Talk en août 2005, un client Jabber propriétaire lié aux serveurs Jabber 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.

[modifier] …Puis ICQ/AIM, Yahoo! et Facebook

En janvier 2008, AOL, alors fournisseur des logiciels de messagerie instantanée ICQ et AIM (compatibles et basés sur le protocole OSCAR), met en place un serveur expérimental permettant de se connecter via XMPP[3]. C’est donc une base de plus de 50 millions d’utilisateurs[réf. nécessaire] qui vient agrandir le réseau Jabber.

En février 2008, c’est Yahoo!, propriétaire de Yahoo! Messenger, un autre réseau de messagerie instantanée important qui annonce mener des expériences sur XMPP[4].

En mai 2008, les développeurs de Facebook, un des principaux site de réseautage social, annoncent le support de XMPP pour leur application de chat[5]. La mise en place sera effective le 10 février 2010[6], cependant le serveur n’est pas raccordé au reste du réseau Jabber.

[modifier] Rachat de la société Jabber Inc.

En septembre 2008, Cisco annonce un accord de rachat de la société Jabber Inc.[7]. Ni XSF, la fondation à but non lucratif, ni le protocole XMPP ne sont concernés par ce rachat[8].

[modifier] XMPP et Jabber

XMPP est le cœur de Jabber. XMPP est à Jabber ce que HTTP est au Web.

Le protocole lui-même est maintenu par la XMPP Standards Foundation (ancienne Jabber Software Foundation) et est standardisé par l’IETF sous le nom XMPP.

[modifier] Applications Jabber

Jeremie Miller a mis le projet sur pied en 1998 et la première version publique est sortie en mai 2000. 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.

Le logiciel libre Gossip utilise Jabber.
Logo officiel de la messagerie instantanée Jabber.

De très nombreuses applications Jabber peuvent être créées :

Grâce à Jingle, extension multimédia de XMPP, il sera bientôt possible d’étendre les flux à tout contenu binaire : téléphonie sur Internet, visioconférenceetc.

[modifier] Fonctionnement

Le réseau des utilisateurs de Jabber 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 un arrobe « @ » (arobas ou encore « at »). Cet identifiant est appelé Jabber ID ou plus simplement « adresse Jabber ».

Par exemple, si un utilisateur bob@jabber.org souhaite communiquer avec gilles@jabber.cz, 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

[modifier] Adresses Jabber

Une « adresse Jabber » est l’identifiant d’un utilisateur de Jabber.

Elle est composée de deux ou trois parties :

Ces deux ou trois champs sont présentés sous la forme utilisateur@serveur/ressource ou bien plus simplement en utilisateur@serveur, comme une adresse de courrier électronique.

Par exemple, l’usager bob sur le serveur jabber.org utilisant la ressource Travail aura l’adresse Jabber suivante :
bob@jabber.org/Travail ou plus simplement bob@jabber.org, comme une adresse de courrier électronique.

La liste des contacts d’un utilisateur Jabber est stockée sur le serveur. Un utilisateur retrouvera sa liste de contacts s’il se connecte à Jabber sur d’autres postes de travail ou avec d’autres clients.

Le client Jabber libre Gajim.

[modifier] Présence et états

Lorsqu’un client Jabber se connecte (ou se déconnecte) à un serveur, ce dernier annonce automatiquement la présence en ligne (respectivement la déconnexion) de l’utilisateur à l’ensemble de ses contacts.

Il est également possible de se rendre « invisible » : l’utilisateur apparaît alors déconnecté aux yeux de ses correspondants, alors que lui peut voir les notifications de présence de ses contacts.

Il existe plusieurs états de présence : « en ligne », « déconnecté », « absent », etc.

[modifier] Ressources et priorités

La ressource est une partie optionnelle d’une adresse Jabber. C’est le dernier champ de celle-ci, séparé des autres par une barre oblique (« / »).

Une ressource, librement paramétrable par l’utilisateur dans son logiciel client, indique généralement l’endroit où un utilisateur de Jabber est situé. Par exemple, les valeurs Maison, Travail, Laptop ou bien Logiciel sont courantes. La ressource devient utile lorsqu’un utilisateur se connecte de plusieurs endroits ou avec plusieurs clients au même moment. Ses contacts ont alors le choix de lui envoyer un message à l’une ou l’autre de ses ressources, ou bien à celle par défaut, c’est-à-dire celle ayant la plus haute priorité. Si plusieurs ressources connectées au même moment ont des priorités égales, alors le message est adressé à la dernière ressource connectée.

La priorité est un entier compris entre -128 et +127. Elle est optionnelle et configurable dans la plupart des clients Jabber. En cas d’absence, le serveur considère sa priorité comme étant égale à 0. Sa principale utilité est pour la livraison de message destiné à une adresse Jabber sans ressource.

[modifier] Transports

De nombreux serveurs Jabber offrent un service de transports (également appelés passerelles) permettant à l’utilisateur de dialoguer avec les utilisateurs d’autres systèmes de messagerie instantanée.

L’utilisateur peut s’enregistrer à ces transports en fournissant ses informations spécifiques au réseau cible (par exemple, pour ICQ, il faut fournir l’UIN[Quoi ?] et le mot de passe). Une fois cette opération effectuée, l’utilisateur peut ajouter des contacts utilisant cet autre réseau comme il le ferait pour un contact utilisant Jabber. À l’heure actuelle, des transports sont disponibles pour les protocoles les plus utilisés, comme IRC, MSN Messenger, Yahoo! Messenger et ICQ/AOL Instant Messenger (AIM). Il existe également d’autres transports comme par exemple les services de courrier électronique.

En utilisant un transport, l’utilisateur se limite aux capacités du client et du transport utilisés ; il n’aura probablement pas toutes les fonctions du client officiel du réseau cible.

Les contacts des autres réseaux apparaissent dans la liste de contacts comme des contacts Jabber avec des adresses Jabber particulières : identifiant@transport. Ainsi, par exemple :

Toutefois, certaines compagnies gérant ces protocoles et services propriétaires bloquent ou ont bloqué l’accès aux serveurs Jabber importants, tel que jabber.org et jabber.com, sur leur réseau. Ceci rend donc impossible l’utilisation des transports concernés sur ces serveurs. Certaines entreprises ont aussi modifié leur protocole, selon certains dans le but de contrer l’utilisation de leur réseau par des clients alternatifs ou par des transports Jabber.[réf. nécessaire]

[modifier] Groupes de discussion

Les groupes de discussion ou conférences (« MUC » pour « Multi User Chat » ou encore « groupchat ») permettent de créer des conversations à plus de deux utilisateurs, à l’image des canaux IRC.

Il est possible de créer des groupes publics ou privés, d’inviter des contacts à un groupe, de modérer des groupes (« kick » et « ban » comme sur IRC), journaliser les discussions et rendre la salle persistante.

Le client Jabber libre Spark.

[modifier] Transferts de fichiers

Jabber permet de transférer des fichiers directement entre utilisateurs ou en utilisant un proxy intermédiaire, avec la possibilité d’interrompre et reprendre le transfert.

[modifier] Jingle

Article détaillé : Jingle (Jabber).

La voix sur Jabber par Jingle n’est pas encore complètement prête à ce jour. Sa standardisation et son implémentation dans les clients et serveurs sont en cours, les premières versions fonctionnelles de solutions Jingle sont en cours de développement et déploiement en 2007.

Jingle est utilisé par Google Talk et est en cours d’intégration dans plusieurs clients Jabber tels que Psi, Kopete, Spark et Pidgin depuis 2006.

La visio-conférence est à un stade moins avancé, il en va de même pour tous les flux multimédia, dont l’échange de fichiers par Jingle.

La grande force de Jingle est sa conception moderne basée sur XMPP, ainsi que sa facilité à traverser les NAT.

[modifier] Publication-souscription

Un mécanisme de publication-souscription (« Publish-Subscribe » ou « PubSub ») est en cours de développement et standardisation, [réf. nécessaire] il s’agit d’avoir la capacité de diffuser et stocker de l’information sur les serveurs Jabber, ainsi que de s’abonner à ces fils d’informations.

Ce mécanisme peut, entre autres, permettre de mettre en place des publications de brèves et articles, des abonnements à ces fils, de la présence étendue, des marque-pages partagés, des systèmes d’enchères et d’échanges, des catalogues en ligne, des systèmes de workflow, des notifications d’évènement, etc.

[modifier] Présence étendue

Un mécanisme de présence étendue est en cours de développement et standardisation [réf. nécessaire], il s’agit d’avoir la capacité de diffuser des informations dynamiques liées à l’état de l’utilisateur, à savoir son humeur, son activité, sa géolocalisation, sa musique en cours d’écoute, son profil, son surnom, sa navigation web, ses discussions de groupe, ses jeux, ses vidéos en cours de visualisation, et certainement bien d’autres à venir.

La présence étendue repose sur une simplification et spécialisation du mécanisme de publication-souscription.

[modifier] Applications

Jabber, grâce à sa conception large, son évolutivité et sa standardisation, offre un large spectre d’applications :

[modifier] Standard ouvert, norme

Le protocole XMPP (Jabber) a été publié comme une ébauche (« draft ») 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 4 octobre 2005, les spécifications du protocole ont été publiées en tant que RFC. Depuis cette date, la XMPP Standards Foundation 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 XEPs).

[modifier] Avantages et inconvénients

[modifier] Avantages

[modifier] Inconvénients

[modifier] Références

[modifier] Voir aussi

Sur les autres projets Wikimédia :

[modifier] Articles connexes

[modifier] Liens externes

Outils personnels
Espaces de noms
Variantes
Actions
Navigation
Contribuer
Imprimer / exporter
Boîte à outils
Autres langues