PEP : La publication d’informations inutiles donc indispensables

Ça fait un petit moment qu’on parle de PEP et de Pubsub dans le monde de jabber, ça commence gentillement à arriver, c’est donc le moment de faire un petit point sur ce que sont ces deux technologies et ce qu’elles permettent de faire.

Pubsub : comme RSS, mais en différent

Le principe de Pubsub est extrèmement simple (comme beaucoup de technologies géniales), une personne (ou un logiciel d’ailleurs) peut s’inscrire pour recevoir les messages que poste un autre utilisateur, on a donc un utilisateur qui publie (publish) et un qui souscrit (subscribe) d’où le nom Pubsub (publish-subscribe). Ok ça n’a pas vraiment grand chose de révolutionnaire à première vue, ça ressemble grandement à ce que fait RSS.

En effet RSS et Pubsub sont assez proches mais se distinguent par une grosse différences. Pour RSS la personne qui a souscrit doit activement récupérer le fil RSS pour savoir si il y’a eu des nouveaux items, pour pubsub c’est le serveur pubsub qui va pousser les nouveautés vers les personnes qui ont souscrits. Ça a deux gros avantages : on n’utilise que la bande passante nécessaire (pas besoin de télécharger 50 fois le fil pour n’avoir qu’une fois des nouveautés) et en plus c’est instantanée, les notifications arrivent en temps réel chez les personnes qui ont souscrits.

Cependant tout n’est pas rose dans le monde de pubsub, le protocole est assez compliqué, en fait il est prévu pour plein de cas de figures particuliers, ce qui rend son implémentation à la fois dans les serveurs et dans les clients Jabber compliquée. Un autre de ses inconvénients c’est qu’il faut connaitre l’adresse des nœuds (c’est la terminologie pubsub pour les endroits où des items sont publiés) auxquels on veut souscrire. Pour simplifier tout ça PEP a été inventé.

PEP : Une utilisation concrète de la puissance de Pubsub

PEP signifie Personnal Eventing via Pubsub, ce n’est pas simple à traduire mais en gros ça veut dire publication d’évènements personnels par Pubsub. Ça ne nous avance pas beaucoup plus. En fait PEP est une version simplifiée de Pubsub qui permet de diffuser des informations personnels du genre la musique en cours d’écoute ou son humeur. Je vous vois déjà objecter qu’on dispose déjà du message d’état dans lequel on peut mettre ces informations. Certes on peut, mais ce n’est pas idéal parce que dans ce cas là on ne laisse pas le choix à ses correspondant de recevoir ou non ces informations.

Prenons un exemple simple, supposons que je sois connecté sur Jabber en passant par un téléphone portable, je paie en fonction du débit, je souhaite donc avoir le moins de débit possible, je ne souhaite donc pas recevoir toutes les 3 minutes un changement d’état de la part de mes correspondants pour voir la musique qu’ils écoutent (ce qui en plus ne m’intéresse pas particulièrement). Si mes correspondants mettent la musique en cours dans leur message d’état, et bien je n’ai aucun moyen de filtrer ça, alors que si ils font ça avec la bonne méthode (c’est à dire avec PEP), et bien mon client ne va pas dire que ces informations l’intéresse, et le serveur ne les lui enverra pas.

PEP et Pubsub, c’est quoi les différences ?

Cette partie est un peu plus technique et demande certaines connaissances du protocole XMPP, désolé pour ceux qui ne comprennent pas tout.

Mais revenons à nos moutons, j’ai dit que PEP était une version simplifiée de Pubsub, en fait c’est un sous ensemble des fonctionnalités de Pubsub permettant une utilisation plus facile. Comme je l’ai dit un des problèmes de pubsub est la difficulté de connaître les nœuds où souscrire, avec PEP c’est facile, chaque identifiant Jabber est un serveur PEP, par exemple omega@im.apinc.org est un serveur PEP sur lequel je peux poster, je suis d’ailleurs le seul qui puisse poster dessus. Sur ce serveur les nœuds PEP correspondent aux namespace XML des extensions qui utilisent PEP. Par exemple pour la musique le nœud à utiliser est http://jabber.org/protocol/tune.

Cela simplifie donc déjà grandement le travail du client qui va publier, vu qu’il sait déjà où publier. Pour le client qui veut souscrire au nœud c’est encore plus simple, il n’a quasiment rien à faire, il faut qu’il soit autorisé à voir la présence de l’autre personne, et il doit en plus mettre dans ses capacités (c’est la liste d’informations renvoyées par disco#info, associé à un hash de ces informations qui sera placé dans les paquets de présence) qu’il supporte par exemple pour la musique : http://jabber.org/protocol/tune+notify (il faut donc rajouter +notify au namespace du protocole), et voila c’est tout, il recevra ensuite les notifications PEP pour ce protocole.

Et concrètement ça donne quoi

Dans les clients supportant PEP il est possible de mettre son humeur, la musique qu’on écoute, etc. (ça dépend de ce que supporte le client). Et après vos contacts verrons quelques choses du genre :

En plus omnipresence supporte déjà quelques profiles de PEP, ça permet par exemple d’afficher son humeur sur son blog, comme je l’ai fait dans ma boîte « Jabber ».

Pour la publication de la musique en cours d’écoute certains clients musicaux le permettent déjà, c’est par exemple le cas de Bluemindo, où c’est possible en natif. Pour ceux que ça intéresse j’ai aussi un petit bot pour MPD.

J’espère que ce petit article aura permis de clarifier un peu ce qu’est PEP et à quoi ça peut bien servir.

Vus : 739
Publié par Omega : 10