Quand Jabber ne sert pas qu'à la causette

Jabber est, la plupart du temps, comparé aux logiciels de messagerie instantanée (IM) tels que ICQ, MSN, AIM... Et pourtant, l'IM n'est qu'un des aspects du protocole, qui est avant tout un moyen de faire circuler de l'information sous forme de flux XML.

On peut alors imaginer tout un tas d'autres applications possibles, qui renvoient aisément MSN au rang des gadgets. Voici un petit inventaire non exhaustif de ce que l'on peut faire.

Avant tout il faut savoir que la plupart des idées tournant autour de Jabber sont regroupées au sein des JEPs (Jabber Enhancement Proposals). Certaines sont d'ores et déjà implémentées dans la plupart des clients, notamment celles qui tournent autour des fonctions basiques d'IM, mais nombreuses sont celles qui restent encore à l'état de projet. Parmis ces JEPs, il en existe une centrale que l'on surnomme "pubsub" (pour "publish-subscribe", soit publier et s'abonner). Elle est le point central d'un grand nombre d'idées puisqu'elle permet d'étendre XMPP, le protocole de communication de Jabber. Maintenant pubsub n'est pas suffisament répandu parmi les serveurs et les clients (voir la page des implémentations) pour que son usage soit généralisé dès maintenant.

Ainsi il existe plusieurs manières d'étendre les fonctionnalités de Jabber : les composants serveurs (cf pyMSNt, pyListC, MUC), pubsub et les Robots. Cette troisième solution ne limite pas la fonctionnalité à Jabber, puisqu'un robot peut être multiprotocole.

Les Notifications
Une des fonctions les plus pratiques de la messagerie instantanée est de pouvoir être notifié d'un nouvel évènement. Les possibilités et les idées sont nombreuses :
  • Email, arrivée d'un nouveau message (ILE, JMC, IMN)
  • Saisie dans un formulaire (pour surveiller la saisie d'une entrée dans un wiki, d'un post ou d'un commentaire sur un blog, d'une participation sur un forum...)
  • News/Actualité par le biais de la surveillance des fils de syndication rss/atom (JRS, pyrss, rss2jabber, JabRSS, janchor, Pubsub.com et ça)
  • Calendrier personnel ou collectif (rappel et alarme de rendez-vous)
  • Surveillance de répertoires de dépôt (CVS/SVN)
  • Etc...
Ce type de tâches est le plus souvent accompli par des robots chargés de la surveillance et de l'envoi des notifications.

Travail collaboratif
Jabber étant un outil de communication, il est tout indiqué pour la collaboration à distance. Les façons d'implémenter cette idée se situent pour la plupart au niveau du client : il doit être capable d'accepter les données particulières qui sont à échanger.
Présence
Par présence, on parle de l'information qui permet de savoir quel est l'état de disponibilité d'un client jabber, sa localisation ou ce qu'est en train de faire son utilisateur.
  • Géolocalisation (Jep 112, Talk Maps, trakm8 qui localise ses véhicules par XMPP)
  • Administration système : surveillance de l'uptime d'une machine à distance (par le biais d'un robot)
  • Affichage de la présence d'un utilisateur sur une page web (Edgar the Bot)
  • Qu'est-ce que j'écoute en ce moment (Jep 163)
Administration système
L'administration système c'est à la fois la surveillance, mais aussi la commande à distance (à manipuler avec précaution et sécurité). Composants et robots sont bien utiles pour ces tâches. Pour la surveillance, on peut imaginer une ruche de robots qui centralisent la notification mais se répartissent la surveillance (soit entre services à surveiller, soit entre machines à surveiller)
  • Surveillance à distance des niveaux d'une
    machine : uptime, bande passante, logs, attaques, tâches cron, alertes dépassement de limites, pings, état de la mémoire, charge réseau et CPU, activité réseau... On est dans le domaine de la notification, encore une fois (voir la
    compagnie de gestion réseau HighStreet Networks qui fournit des logiciels qui permettent à un administrateur
    système de surveiller la disponibilité, l'uptime,
    ainsi que d'autres statistiques vitales pour des routeurs et autres
    infrastructures déployées.)
  • Commandes à distance : Mises à jour, backup, interrogation de logs, backdoors... (voir Jabberwatcher)
Divers
  • Jeux en réseau (Seps...)
  • Mise à jour d'un blog
  • Consultation de moteurs de recherches, de la météo ou d'autes services
  • Bookmark en ligne
Et naturellement, la liste est ouverte !
EDIT du 31 juillet 2006 : un tour chez Olivier pour creuser le sujet...

Commentaires

1. Le mardi, mars 21 2006, 16:32 par Nÿco

Qu'il est bon de lire des choses aussi sensées ! ;-)


J'ajouterais ceci :
- le mail : XMPP ajoute l'immédiateté à l'e-mail, mais aussi des mécanismes de base manquant cruellement au mail (un seul serveur Jabber contre un SMTP et un POP/IMAP, roster contre white et blacklist, etc.) Le clients n'ont plus qu'à gérer l'archivage et la recherche de messages XMPP. XMPP remplace le SMTP/POP/IMAP, en mieux.
- le web : avec XHTML-IM, un client Jabber peut interprêter des pages web, envoyer et rapatrier des données de formulaires par pubsub, l'authentification étant déjà réalisée par le protocole XMPP et non par l'applicatif. De plus, XMPP permet le push. XMPP remplace HTTP(S), en mieux.

Donc XMPP peut être aussi vu comme la fusion du mail et du web, avec l'immédiateté en plus, et bien entendu en mieux et plus moderne.


Tu l'as démontré et j'en ai rajouté une couche :

Aujourd'hui, l'étendue vertigineuse des applications Jabber potentielles est telle que l'étaient le web et l'e-mail à l'époque de leur émergeance respective.

2. Le mardi, mars 21 2006, 20:37 par gghh

"Maintenant pubsub n'est pas suffisament répandu parmi les serveurs et les clients"
It is atl least implemented by ejabberd and by J-EAI (based on ejabberd). The Jabber client Coccinella has some early (not working!) code for it in cvs.

3. Le mercredi, mars 22 2006, 15:21 par Caribou

Impressionnant !!!!!

Merci pour toutes ces infos !!!!