Extensible Messaging and Presence Protocol

{{#ifeq:||Un article de Ziki, l'encyclopédie libre.|Une page de Ziki, l'encyclopédie libre.}}
(Redirigé depuis XMPP)

Modèle:Langue du titre Modèle:Voir homonymes Modèle:Infobox Protocole réseau sur la couche application

Modèle:Lang (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’Modèle:Langue (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 Modèle:Langue (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é à travers le monde par des centaines de serveurs publics et privés et des millions d’utilisateurs. De nombreux acteurs industriels utilisent XMPP, comme Modèle:Refsou.

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 Modèle:RFC 6120Modèle:RFC, 6121Modèle:RFC, 6122Modèle:RFC (qui remplacent depuis 2011 les 3920Modèle:RFC et 3921Modèle:RFC), 3922Modèle:RFC et 3923Modèle:RFC. Théoriquement, une telle infrastructure ne peut pas fonctionner sans appliquer complètement ces protocoles ;
  • les Modèle:Lang (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’informations, mais aussi dans le cadre du Modèle:Lang, des notifications d’alertes ou d’informations, de la supervision système et réseau, ou le Modèle:Langue (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).

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 janvier 1999, il annonce publiquement<ref>annonce sur Slashdot.</ref> 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 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é<ref>http://xmpp.org/about/ietf-1999.shtml</ref>. L’IMPP WG est alors créé et publie en février 2000 les Modèle:RFC 2778Modèle:RFC et 2779Modèle:RFC mais n’atteint pas de consensus.

Le serveur Modèle:Lang jabberd 1.0 est publié en mai 2000 et stabilise le protocole. En juin, Jeremie Miller publie un Modèle:Lang mais le délai est dépassé. La Modèle:Nobr de jabberd introduit le Modèle:Lang qui empêche les usurpations d’identités de serveurs.

La Modèle:Lang et la reconnaissance par l'IETF

La Modèle:Lang est créée en août 2001, afin d’assurer la coordination du nombre grandissant de développeurs Modèle:Lang 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 Modèle:Lang sont à nouveau soumis à l’IETF en tant que XMPP Core et XMPP IM, et un XMPP WG est créé.

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

La JSF devient en 2007 la XSF pour Modèle:Lang, et propose des services d’autorité intermédiaire de certification TLS/SSL.

L'adoption par les acteurs d'Internet

Apple en 2005

Modèle:Lang introduit le support de Jabber dans son logiciel de messagerie iChat livré avec OS X Tiger en mai 2005.

Google de 2005 à 2013

L’entreprise Google publie Modèle:Lang en août 2005, 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 mai 2013, Google annonce son intention d'abandonner XMPP au profit du protocole propriétaire Google+ Hangouts<ref>Modèle:Lien web</ref>.

Facebook de 2008 à 2015

En mai 2008, les développeurs de Modèle:Lang annoncent le support de XMPP pour leur application de chat<ref>{{#invoke:Langue|indicationDeLangue}} Modèle:Lien web.</ref>. La mise en place sera effective le 10 février 2010<ref>{{#invoke:Langue|indicationDeLangue}}Modèle:Lang, posté le 10 février 2010.</ref>, cependant le serveur n’est pas raccordé au reste du réseau Jabber. En juillet 2015, Facebook supprime le support de XMPP, obligeant à passer par sa propre API<ref>Modèle:Lien web.</ref>.

Tests de ICQ/AIM et Yahoo!

En janvier 2008, 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<ref>{{#invoke:Langue|indicationDeLangue}} Modèle:Lang.</ref>. C’est donc une base de Modèle:Référence nécessaire qui agrandit le réseau Jabber.

En février 2008, Yahoo!, propriétaire de Yahoo! Messenger, annonce également s’intéresser à XMPP<ref>{{#invoke:Langue|indicationDeLangue}} Modèle:Lang.</ref>. Depuis, les serveurs peuvent se connecter aux autres serveurs XMPP<ref>Modèle:Lien web.</ref>

Skype en 2011

En juin 2011, Skype annonce la création d'un connecteur XMPP sur la version Windows de leur logiciel client en développement<ref>Modèle:Lien web.</ref>. 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 XMPPModèle:Refnec.

WLM en 2011

En septembre 2011, 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<ref>Modèle:Lien web.</ref> à l'aide du système authentification OAuth<ref>Modèle:Lien web.</ref> 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<ref>Modèle:Lien web.</ref>.

Cette annonce a été vite suivie d'intégration dans les clients de messagerie alternatifs supportant plusieurs protocoles<ref>Modèle:Lien web.</ref>.

Il peut être intéressant de relever que Microsoft a des parts dans Facebook<ref>Microsoft investit Modèle:Unité de dollars dans Facebook, valorisé à 15 milliards Modèle:Lien archive - AFP, 25 octobre 2007</ref> et a racheté Skype en mai 2011<ref>Modèle:Lien web.</ref>,<ref>Modèle:Lien web.</ref>

Rachat de la société Jabber Inc.

En septembre 2008, Cisco annonce un accord de rachat de la société Jabber Inc.<ref>{{#invoke:Langue|indicationDeLangue}} Modèle:Lang.</ref>. Ni XSF, la fondation à but non lucratif, ni le protocole XMPP ne sont concernés par ce rachat<ref>Modèle:Lien web.</ref>.

XMPP et Jabber

Fichier:Jabber logo.svg
Logo officiel de la messagerie instantanée Jabber.

XMPP est le cœur de Jabber ; XMPP est à Jabber ce que le Modèle:Langue (HTTP) est au Modèle:Langue.

Le protocole est maintenu par la Modèle:Lang (ancienne Modèle:Lang) et est standardisé par l’Modèle:Langue (IETF) sous le nom XMPP.

Applications Jabber

Fichier:Gossipfr.jpg
Le logiciel libre Gossip utilise 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.

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érenceModèle:Etc.

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 une arobase « @ ». 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

Adresses Jabber

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

Elle est composée de deux ou trois parties :

  • un nom d’utilisateur (unique sur un serveur) ;
  • un nom de serveur ;
  • une ressource (optionnelle) qui peut changer.

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.

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 »Modèle:Etc.

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, Modèle:Lang 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.

Transports

Fichier:SL07 Gajim.png
Le client Jabber libre Gajim.

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 (Modèle:Lang) 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 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 :

  • un contact ICQ d’UIN 12345678 sur le transport icq2.fritalk.com devient 12345678@icq2.fritalk.com,
  • un contact Yahoo! Messenger d’identifiant Blanche-Marie.Michu sur le transport yahoo.amessage.info devient Blanche-Marie.Michu@yahoo.amessage.info,
  • un contact MSN Messenger d’adresse Marie-Blanche.Michu@hotmail.com sur le transport msn.3gnt.org devient Marie-Blanche.Michu%hotmail.com@msn.3gnt.org (le « @ » est transformé en « % »).

Modèle:Référence nécessaire

Groupes de discussion

Fichier:SL07 Spark.png
Le client Jabber libre Spark.

Les groupes de discussion ou conférences (« MUC » pour « Modèle:Lang » ou encore « Modèle:Lang ») 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 (« Modèle:Lang » et « Modèle:Lang » comme sur IRC), journaliser les discussions et rendre la salle persistante.

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 de reprendre le transfert.

Jingle

Modèle:Article détaillé Jingle permet les sessions de voix sur réseau IP et de visioconférence. Jingle est intégré dans plusieurs clients Jabber tels que Psi, Kopete, Spark et Pidgin depuis 2008. Il a été utilisé par Modèle:Lang jusqu'en 2014 avant que ce dernier soit remplacé par Google Hangout<ref>Modèle:Article</ref>,<ref>Modèle:Lien web</ref>.

Publication-souscription

Un mécanisme de publication-souscription (« Modèle:Lang ») est en cours de développement et standardisation, XEP-0060 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 Modèle:Lang, des notifications d’évènement…

Présence étendue

Un mécanisme de présence étendue est en cours de développement et standardisation Modèle:Référence 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.

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 (Modèle:Lang)
  • VoIP et visioconférence ou plus généralement initialisation de sessions multimédia
  • notifications et alertes
  • Modèle:Lang 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ésentationModèle:Etc.)
  • contrôle à distance
  • monitoring et supervision
  • réseaux sociaux
  • jeux en ligne

Standard ouvert, norme

Le protocole XMPP (Jabber) a été publié comme une ébauche (« Modèle:Lang ») 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 Modèle:Lang 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

Modèle:Section à sourcer

Avantages

Inconvénients

  • Effet réseau : les principaux systèmes de messagerie instantanée existants (MSN, AIM, Yahoo…) sont non interopérables, et leur effet réseau rend difficile la migration des utilisateurs à un autre système. Jabber est lui-même peu connu du grand public, et ne dispose pas de son propre effet réseau.
  • Audio et visio conférence : XMPP a été conçu comme un système de messagerie instantanée et de présence, transportant du texte structuré sous forme de flux XML. Après diverses tentatives, notamment avec le protocole de voix sur réseau IP SIP, la communauté XMPP s’est arrêtée en 2005 sur le protocole Jingle. La plupart des développeurs de clients XMPP attendaient une version finale de Jingle avant de vraiment commencer l’implémentation de ce protocole ce qui explique qu’Modèle:Quand, peu de clients proposent la fonctionnalité de VoIP. Cependant, Modèle:Qui de logiciels ont une version de développement avec la prise en charge de Jingle.

Références

Modèle:Références

Voir aussi

Modèle:Autres projets

Articles connexes

Liens externes

Modèle:Palette Modèle:Portail