Jabber
Jabber_logo.png
Logo Jabber
À la différence des autres systèmes de messagerie instantanées populaires, Jabber est utilisé dans les systèmes d'information d'entreprises et administrations dans le cadre d'échange de données entre applications (EAI, ETL).
| Sommaire |
Fonctionnement
Image manquante Gossipfr.jpg Un exemple parmi d'autres : Gossip utilise Jabber. |
Le réseau des utilisateurs de Jabber est décentralisé. 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 arobas. Cet identificateur est appelé Jabber ID. 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, il commence par envoyer son message à son serveur (jabber.org). Ensuite, le serveur de Bob contactera le serveur de Gilles (jabber.cz) et lui transférera le message. Enfin, le serveur jabber.cz pourra contacter Gilles, s'il est en ligne (sinon le message sera gardé en attente), et lui communiquer le message. Évidemment, toutes ces étapes se font de manière transparente et instantanée à l'utilisateur, comme pour les courriers électroniques.
Transports
Une des particularités de ce protocole est le fait qu'il permette l'utilisation de transports (également appelés agents ou passerelles) vers d'autres systèmes de messagerie instantanée. Les utilisateurs peuvent s'enregistrer à ces transports en fournissant leurs informations (par exemple, pour ICQ, il faut fournir l'UIN et le mot de passe). Une fois cette opération faite, l'utilisateur peut ajouter des contacts utilisant un autre réseau comme il le ferait pour un contact utilisant Jabber. À l'heure actuelle, les protocoles les plus importants sont supportés, comme ICQ, MSN Messenger, Yahoo! Messenger et 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.
Jabber ID
Un Jabber ID, ou JID, est l'identifiant d'un utilisateur utilisant Jabber. Il est composé de 3 parties :
- un nom d'utilisateur (unique sur le serveur) ;
- un nom de serveur ;
- une ressource (optionnelle).
Ces trois champs sont présentés sous la forme utisateur@serveur/ressource.
Par exemple, l'usager toto sur le serveur jabber.org utilisant la ressource Travail aura le JID suivant : toto@jabber.org/Travail
Ressources
La ressource est une partie optionnelle du Jabber ID. C'est le dernier champ de celui-ci, séparé par une barre oblique ( / ) des autres. Une ressource 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 à plusieurs endroits au même moment. À ce 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é -- la priorité d'une ressource est une propriété configurable dans la plupart des clients Jabber.
Au sujet de la priorité, l'information est contradictoire avec : http://www.linux-quebec.org/presentations/2002-2003/2003-01-16/jabber/#sect27 (voir la fin) J'ai lu quelque part qu'en cas d'égalité sur la priorité, le message va à celui qui s'est connecté en premier. À vérifier.
Standard
Le protocole Jabber a été soumis comme une ébauche à 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. Documentation du protocole). 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).
Clients
Voici une liste de quelques clients Jabber populaires :
Jabber uniquement
- Akeni Jabber Client (Multi-plateforme, propriétaire)
- Exodus (Windows, GPL)
- Gabber (Linux/UNIX, GNOME, GPL) : http://gabber.sourceforge.net
- Gossip (Linux/Unix, GNOME, GPL) http://www.imendio.com/projects/gossip/
- Jabber Instant Messenger (Windows, Logiciel propriétaire) : http://www.jabber.com
- JabberFoX (Mac OS X, licence BSD) http://jabberfox.sourceforge.net
- JAJC (Windows, propriétaire)
- JBother (Java) http://linuxhelp.homeunix.com/cgi-bin/rblh/index.rb?handler=downloads&d=jbother
- Jeti (Multi-plateforme, GPL) : http://jeti.jabberstudio.org/
- Nitro (Mac OS X, GPL) http://nitro.jabberstudio.org/
- Pandion (Windows, propriétaire) http://www.pandion.be/
- Psi (Multi-plateforme, GPL) : http://psi.affinix.com/
- TKabber (Multi-plateforme) : http://tkabber.jabber.ru/
- Neos (Windows, Logiciel propriétaire) : http://www.neosmt.com
- Cabber : http://cabber.sourceforge.net
Multi protocoles
- Adium X (Mac OS X, GPL) http://www.adiumx.com/
- Bitlbee via IRC (Multi-plateforme, libre) http://www.bitlbee.org
- CenterICQ (Multi-plateforme, GPL)
- Fire (Mac OS X, GPL)
- Gaim (Multi-plateforme: Windows, Linux, MacOS; GPL) : http://gaim.sourceforge.net
- Kopete (Linux/Unix, GPL) http://kopete.kde.org
- Miranda IM (Windows, GPL) : http://www.miranda-im.org
- Proteus (Mac OS X, propriétaire) http://www.proteusx.com
- Trillian Pro (Windows, propriétaire) avec plug-in
- SIM (Linux/Windows, GPL) http://sim-icq.sourceforge.net
- ichat 3.0 de Apple (Mac OS X 10.4) http://www.apple.com/fr/macosx/features/ichat/
Serveurs
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 à un groupe de gens -- par exemple les employés d'une entreprise. Voici une liste de quelques serveurs Jabber publics :
- jabber.org : http://www.jabber.org (Jabber software fondation) (propose une liste des serveurs et des services disponibles sur chacun)
- jabber.com : http://www.jabber.com (Jabber inc.)
- develog.com : http://jabber.develog.com (Serveur jabber public de la société develog pour but de promouvoir ce protocole libre)
- njs.netlab.cz : http://njs.netlab.cz
- im.apinc.org : http://jabber.apinc.org/ (Association Pour un Internet Non Commercial)
- JaIM.at : http://jaim.at
- linux-quebec.org: http://www.linux-quebec.org/jabber/
Conversation client/serveur via Jabber
Exemple de conversation entre un client et un serveur utilisant le protocole Jabber :
Un client (clientjabber1) se connecte à un serveur jabber (amessage.de port 5222/tcp), envoie un message (Sujet : « test 1449 » et corps du texte : « test 1449 ») à un autre client (clientjabber2) puis quitte.
clientjabber1 :
<?xml version="1.0"?> <stream:stream xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client" to="amessage.de">
amessage.de :
<stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' from='amessage.de' id='1461777714'>
clientjabber1 :
<iq type="set" id="auth_2" to="amessage.de" >
<query xmlns="jabber:iq:auth">
<username>clientjabber1</username>
<password>mypassword</password>
<resource>Work</resource>
</query>
</iq>
amessage.de :
<iq from="amessage.de" id='auth_2' type='result'/>
clientjabber1 :
<message to="clientjabber2@example.com" > <subject>test 1449</subject> <body>test 1449</body> </message> <presence type="unavailable" > <status>Logged out</status> </presence> </stream:stream>
amessage.de :
</stream:stream>
Liens externes
- Jabber Software Foundation : http://www.jabber.org
- Jabber inc. : http://www.jabber.com
- Jabberfr : http://www.jabberfr.org/
Pour les utilisateurs de Jabber
- Liste des clients Jabber : http://www.jabber.org/software/clients.shtml
- Liste des serveurs publics : http://www.jabber.org/network/
- Guide de l'utilisateur : http://www.jabber.org/user/userguide/
- Pourquoi utiliser Jabber : http://lea-linux.org/fiches/formatslibres/fichewhyjabber.html
- Répartition des utilisateurs dans le monde : http://www.ralphm.net/world?language=en
- Tutoriel : Jabber sur Mac OS X avec Psi et iChat 3.0
Pour les administrateurs de serveurs
- Listes des serveurs : http://www.jabber.org/software/servers.shtml
- Guide d'administration de ejabberd : http://ejabberd.jabberstudio.org/guide.html
- Guide d'administration de Jabberd : http://www.jabber.org/admin/
- Mise en place d'un serveur Jabber : Article Jabber du Labo-Linux
Documentation du protocole
- Le protocole : http://www.jabber.org/protocol/
- Les JEP : http://www.jabber.org/jeps/jeplist.php
- Blog de développeurs : http://planet.jabber.org
- Les RFC :
- RFC 3920 : Extensible Messaging and Presence Protocol (XMPP) : Core
- RFC 3921 : Extensible Messaging and Presence Protocol (XMPP) : Instant Messaging and Presence
- RFC 3922 : Mapping the Extensible Messaging and Presence Protocol (XMPP) to Common Presence and Instant Messaging (CPIM)
- RFC 3923 : End-to-End Signing and Object Encryption for the Extensible Messaging and Presence Protocol (XMPP)
