Jabber

Un article de Wikipédia, l'encyclopédie libre.

Vous avez de nouveaux messages (diff ?).
Logo Jabber

Jabber est un système standard et ouvert de messagerie instantanée (pouvant être sécurisée), de notification de présence, de collaboration et d'échange multimédia.

Jabber est un ensemble de protocoles fondé sur le langage XML. Des logiciels fondés sur Jabber sont déployés sur des milliers de serveurs sur l'internet et sont utilisés par plus de dix millions d'utilisateurs ([1] en septembre 2003, soit bien avant l'ouverture de Google Talk) à travers le monde. Le protocole lui-même est maintenu par la Jabber Software Foundation et est standardisé par l'IETF sous le nom XMPP.

À la différence des autres systèmes de présence et de messagerie instantanées populaires, Jabber est conçu de manière plus large et ouverte que le simple « chat ». Jabber est ainsi également utilisé par les entreprises et administrations dans le cadre d'échange 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 et du monitoring système et réseau.

Jeremie Miller a commencé le projet 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.

Un exemple parmi d'autres : Gossip utilise Jabber.
Agrandir
Un exemple parmi d'autres : Gossip utilise Jabber.

Sommaire

[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, c'est-à-dire qu'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 ». Les messages instantanés sont transférés d'un utilisateur à l'autre par l'entremise de leur serveur respectif.

Par exemple, si un utilisateur bob@jabber.org souhaite communiquer avec gilles@jabber.cz, le logiciel client 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 gardé en attente). É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 ou « Jabber ID »

Une « adresse Jabber » ou un « Jabber ID » ou encore un « JID » est l'identifiant d'un utilisateur de Jabber.

Il est composé 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 le JID suivant :
bob@jabber.org/Travail ou plus simplement bob@jabber.org, comme une adresse de courrier électronique.

L'ensemble des contacts d'un utilisateur Jabber est appelé le roster et est stocké sur le serveur. Le roster est donc « portable » de poste en poste : un utilisateur retrouvera sa liste de contacts s'il se connecte à Jabber sur d'autres postes.

Il est possible d'avoir de multiples comptes Jabber en parallèle, paramétrés et connectés dans un même client. Ainsi, par exemple Bob peut avoir un compte sur jabber.org, mais aussi jabber.cz (bob@jabber.org et bob@jabber.cz). Ces deux Jabber ID peuvent être dans leur roster respectif, ainsi bob@jabber.org et bob@jabber.cz peuvent dialoguer par le même client. Cela est utile pour des tests d'un serveur par exemple ou plus simplement pour séparer les fonctions (travail et personnel par exemple).

[modifier] Présence et états

Lorsqu'un client Jabber se connecte à un serveur, ce dernier annonce automatiquement la présence en ligne ainsi que la déconnexion de l'utilisateur à tous ses contacts. L'annonce de présence et de déconnexion fonctionne de la même manière que l'envoi d'un message, à ceci près que c'est le logiciel client qui le fait automatiquement et non l'utilisateur.

Il est également possible de se rendre « invisible », c'est-à-dire que l'utilisateur apparaîtra déconnecté aux yeux de ses correspondants, alors que lui pourra voir les notifications de présence de ses contacts.

Il existe plusieurs états de présence : « en ligne » (« online»), « déconnecté » (« offline ») ou « personnalisé » (« custom »).

[modifier] Ressources et priorités

La ressource est une partie optionnelle du Jabber ID. C'est le dernier champ de celui-ci, séparé des autres par une barre oblique (« / » ou slash).

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 ou École sont courantes. La ressource devient utile lorsqu'un utilisateur se connecte de plusieurs endroits ou avec plusieurs clients au même moment. Ses contacts auront 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é à un JID sans ressource.

[modifier] Transports

Une des particularités et des points forts de Jabber est le fait qu'il permette l'utilisation de transports (également appelés passerelles) permettant à l'utilisateur de dialoguer avec les utilisateurs d'autres systèmes de messagerie instantanée fondés sur des protocoles différents.

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 et le mot de passe). Une fois cette opération effectuée, l'utilisateur peut ajouter des contacts utilisant un 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 MSN Messenger, Yahoo! Messenger et ICQ/AOL Instant Messenger.

Toutefois, certaines compagnies -- notamment AOL -- bloquent 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.

En utilisant un transport, l'utilisateur se limite aux fonctionnalités du client et du transport utilisés; il n'aura probablement pas tous les gadgets dernier cri implémentés par le client officiel du réseau cible.

Il existe également des transports vers les services de courrier électronique, de flux RSS/Atom, d'IRC et de transfert de fichiers, cette liste pouvant être encore étendue.

Les contacts des autres réseaux apparaissent dans le roster comme des contacts Jabber avec des Jabber ID particuliers : identifiant@transport. Ainsi, par exemple :

  • un contact ICQ d'UIN 12345678 sur le transport icq2.fritalk.com deviendra 12345678@icq2.fritalk.com,
  • un contact Yahoo! Messenger d'identifiant toto_le_hero sur le transport yahoo.amessage.info deviendra toto_le_hero@yahoo.amessage.info,
  • un contact MSN Messenger d'adresse petit_nuage@hotmail.com sur le transport msn.3gnt.org deviendra petit_nuage%hotmail.com@msn.3gnt.org (attention au « @ » transformé en « % »).

[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 et de modérer des groupes (kick et ban comme IRC).

[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.

Du fait de leur aspect propriétaire et fermé, il est très difficile d'échanger des fichiers avec les utilisateurs d'autres protocoles, mais c'est théoriquement possible.

[modifier] Multimédia (Jingle)

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 (dans les JEP), on peut espérer que les premières solutions seront mises en place avant la fin 2006.

Jingle est utilisé par Google Talk et est actuellement en cours d'intégration (2006) dans plusieurs clients Jabber tels que Psi, Kopete et Gaim.

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.

[modifier] Standard ouvert, norme

Le protocole Jabber a été soumis comme une ébauche (« draft ») à l'IETF, pour qu'il puisse devenir un standard de messagerie instantanée. En 2002, le groupe XMPP a été formé et a travaillé à standardiser le protocole. C'est ainsi que le 4 octobre 2004, les spécifications du protocole ont été publiées en tant que RFC (cf. section liens pour développeurs). Depuis cette date, la Jabber Software Foundation a cédé le contrôle de ses principales technologies à l'IETF tout en continuant à développer de nombreuses extensions à XMPP (série des JEP).

[modifier] Avantages et inconvénients

[modifier] Avantages

  • Ouvert : 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 Jabber Software Foundation
  • Décentralisé : comme le courrier électronique, les services Jabber 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 « JEP »
  • Flexible : Jabber est également utilisé dans de nombreuses autres application que le simple chat : communication inter-applicative, supervision, diffusion de messages, etc.
  • Confidentialité : Jabber autorise le chiffrement OpenPGP, les serveurs intermédiaires ne peuvent alors pas observer le contenu des messages
  • Adoption : Jabber est adopté par des grands noms : Google, IBM, Sun, France Telecom, SkyRock, Wengo, Gizmo, etc.

[modifier] Inconvénients

  • Existant : le monde des systèmes de messageries instantanées est fermé, propriétaire et non-interopérable. De plus, il souffre de leur effet réseau respectif, leurs utilisateurs sont ainsi captifs. Il existe toutefois de nombreux transports, des passerelles vers ces services, mais c'est le monde Jabber qui produit l'effort d'interopérabilité
  • Audio et visio conférence : Jabber a été conçu comme un système de messagerie instantanée et de présence, transportant des flux XML donc du texte structuré. Après diverses tentatives, notamment avec le protocole de voix sur réseau IP SIP, la communauté Jabber s'est arrêtée récemment sur le protocole Jingle, en cours de standardisation, implémenté par Google Talk qui a mis librement à disposition la bibliothèque libjingle, afin que celui-ci puisse être ajouté rapidement aux nombreux clients Jabber
  • Faible nombre d'utilisateurs : Jabber est encore peu connu du grand public, n'ayant pas atteint une masse critique, il ne bénéficie pas encore de son propre effet réseau. Toutefois, Google Talk, iChat AV, OpenWengo, SkyMessager et Gizmo Project sont des logiciels grand public qui accroissent sensiblement sa popularité.

[modifier] Serveurs Jabber publics

Il existe une grande quantité de serveurs Jabber en fonctionnement. Certains sont publics, c'est-à-dire accessibles par tous, et d'autres sont réservés exclusivement à un groupe de personnes, par exemple les employés d'une entreprise, d'une administration ou association.

Jabber.org maintient une liste non-exhaustive de serveurs publics avec les transports qu'ils fournissent : http://www.jabber.org/network/

Voici une liste de quelques serveurs Jabber publics :

[modifier] Comment utiliser Jabber concrètement

Au lancement du client Jabber que vous avez installé, il vous demandera (selon le client) si vous souhaitez créer un nouveau compte ou utiliser un compte existant. Vous devrez alors remplir les champs demandés et une fois enregistré, vous pourrez alors vous connecter depuis votre compte sur le serveur que vous avez choisi.

Une fois en ligne, vous pourrez ajouter des contacts en entrant leur adresse Jabber (Jabber ID).

Il se passe un dialogue entre le client de votre contact et le vôtre pour que vous vous autorisiez mutuellement à pouvoir discuter et connaître le statut (en ligne, absent, occupé, etc.) de votre interlocuteur.

Vous pouvez également vous inscrire à des transports (passerelles) et ajouter vos contacts liés à ces systèmes de messagerie instantanée.

Il est également possible de parcourir les services disponibles sur les serveurs Jabber publics, d'envoyer des fichiers ou de participer à des conversations à plusieurs.

[modifier] Liens internes

[modifier] Liens externes

Voir aussi sur Wikilivres :
Jabber.

[modifier] Utilisateurs

[modifier] Développeurs

  • (en) Le protocole
  • (en) Les RFC :
    • (en) RFC 3920 : Extensible Messaging and Presence Protocol (XMPP) : Core
    • (en) RFC 3921 : Extensible Messaging and Presence Protocol (XMPP) : Instant Messaging and Presence
    • (en) RFC 3922 : Mapping the Extensible Messaging and Presence Protocol (XMPP) to Common Presence and Instant Messaging (CPIM)
    • (en) RFC 3923 : End-to-End Signing and Object Encryption for the Extensible Messaging and Presence Protocol (XMPP)
  • (en) Les JEPs (Jabber Enhancement Proposals)
  • (en) Planet Jabber : Blog de développeurs
Portail de l'informatique – Accédez aux articles de Wikipédia concernant l’informatique.