XMPP, protocole pour les lapins
On connait tous XMPP le protocole utilisé par Jabber, comme service de messagerie instantané que nous souhaiterions voir se démocratiser un peu plus.
Cependant il serait très réducteur de limiter ce protocole à un usage sur le frontend. En effet ce protocole est idéal pour permettre à des applications backend de communiquer entre elles, et ce de manière asynchrone.
J’avais écris un article à ce sujet, détaillant une implémentation de ce système avec Ruby on Rails (De la répartition de charge en Ruby on Rails).
Je viens de découvrir que certains lapins ont décidé de parler en XMPP :) Le fameux nabaztag.
Pour résumer mes recherches, il s’avère que ce robot est constamment connecté aux serveurs de l’éditeur afin de récupérer des données (mails, sons, mises à jour, ...). Or il utilisait un bon vieux pooling moisi. On imagine bien que ce fonctionnement a fini par saturer les serveurs d’autant plus que le problème est proprotionnel au nombre de nabaztag dans la nature. Ceci explique les problèmes de latences insupportables, voir d’indisponibilités observées par les clients furieux, voir aussi nabaztag-review.
Au début de cette année, la société Violet a donc modifié son backend afin d’utiliser Jabber, ou plutôt XMPP et les XEPs. Le site propose de tester cette version béta. Plus de détails de la “jabbérisation” ici beta-test-les-tagtags-sous-jabber et ici nabaztag bullet.
Violet a donc pu améliorer la qualité de son service en n’invoquant plus des pools mais des pushs serveurs -> clients, comme je le déduis.
XMPP suit donc son petit bonhomme de chemin, et il est à parier qu’il sera de plus en plus utilisé dans les backend, même si évidement les communications à ce sujet sont rare, mais on peut citer TiVo : XMPP in TiVo
La leçon à tirer est qu’il me parait vital pour une entreprise qui décide de fournir un service de qualité à ses utilisateurs, de prendre le temps de penser correctement son architecture dès la conception, d’autant plus lorsqu’on vise le grand public.
La deuxième leçon est que XMPP est l’outil idéal pour répondre aux critères de scalabilité et standards ouverts. Cependant je pense que le protocole ne fait pas tout et qu’il est nécessaire d’utiliser des outils et langages de développement adaptés à ce type d’architecture tel que Erlang mais cela fera peut être l’objet d’un futur billet.
Pour finir avec le nabaztag, je préfère de loin l’équivalent complètement libre et ouvert du tuxdroid, qui même s’il ne propose pas pour l’instant toutes les fonctionnalités du lapin ne peut que le surpasser à long terme.
Trackbacks
Utilisez le lien ci-dessous pour envoyer un trackback depuis votre site:
http://frederic.logier.org/trackbacks?article_id=xmpp-protocole-pour-les-lapins&day=06&month=03&year=2008



