mercredi, août 30, 2006

En quoi le RSS bidirectionnel peut-il bien me concerner ? (23.11.2005)

Derrière une annonce particulièrement technique de Microsoft, à propos de RSS, se cache peut-être l’amorce d’un mouvement architectural plus profond illustrant l’impact du Web sur la gestion des données.


RSS qui signifie, selon les uns, Really Simple Syndication (une syndication vraiment simple), et selon les autres Rich Site Summary (résumé complet d’un site) ou encore RDF Site Summary (le RDF étant lui-même un format XML sanctifié par le W3C pour la description de ressources en général), désigne un format XML véhiculant un condensé des informations publiées sur un site Web, sous forme d’un flux qui est réactualisé lorsque sont publiées de nouvelles informations.


On parle aussi de « lecteur RSS » qui sont des programmes, soit indépendants, soit de plus en plus souvent intégrés aux versions courantes des navigateurs Web, décodant, filtrant éventuellement, et affichant « en temps réel » ce format soit seul, soit sur une autre page Web (d’où l’idée de syndication). Ces flux RSS qui circulent sur le Web sont dès lors particulièrement bien adaptés aux fils d’actualités et aux blogs, dont ils permettent, par exemple, une lecture rapide et une agrégation par centres d’intérêt (ce que propose, entre autres, la startup Rojo Networks sous une forme hébergée). Il existe également de nombreux annuaires RSS qui recensent les flux disponibles suivant un classement thématique. Enfin, on trouve aujourd'hui des moteurs de recherche spécialisés dans la recherche dans les flux RSS, comme Feedster et Technorati.


La spécification RSS en est actuellement à la version 2.0 (http://blogs.law.harvard.edu/tech/rss) mais c’est un standard plutôt "de facto" puisque historiquement proposé par des éditeurs comme Netscape et Userland, puis repris progressivement par « contagion » par d’autres éditeurs et par des sociétés de l’industrie des média. Il existe aussi d’autres dialectes XML destinés à la syndication de contenus changeant périodiquement comme Atom mais celui-ci n’est pas fondamentalement différent de RSS et, en pratique, les lecteurs de flux décodent l’un comme l’autre. Dans la même sphère de standards, OPML, Outline Processor Markup Language, au départ développé par le même Userland pour regrouper et identifier les titres d’un texte, a vu son usage amplifié comme standard d’échange de liste de flux RSS ou Atom entre acteurs de l’agrégation et de la syndication de contenus. (Les billets de cette chronique peuvent, par exemple, être lus sous forme de flux RSS à l’adresse URL suivante http://del.icio.us/rss/itrmanagertribune/)


L’annonce de Microsoft est intéressante à double titre. D’abord, et c’est une première, Microsoft propose une extension des formats RSS et OPML, appelée SSE, pour Simple Sharing Extensions, sous le régime de la licence Creative Commons. Cette licence, élaborée par l’organisation à but non lucratif du même nom, se présente comme une alternative au régime légal du copyright américain, dont, et c’est toute la saveur de cette annonce, la rédaction avait été suscitée à l’époque par le procès fait à Microsoft sur sa politique de gestion des droits de ses logiciels. (Lawrence Lessig l’avocat rendu fameux par son rôle dans ces procès Microsoft et auteur de divers pamphlets attaquant le régime actuel du copyright américain – lire « Free Culture », par exemple – est un des promoteurs actifs de Creative Commons.) Mais comme c’est Ray Ozzie en personne, le nouveau CTO de Microsoft, fondateur de Notes chez Lotus, puis de Groove, racheté par Microsoft, expert reconnu sur ces sujets d’agrégation/syndication et de travail collaboratif et, surtout, au positionnement plus « ouvert » que la moyenne des porte-parole de Microsoft qui est l’auteur de l’annonce SSE, on s’en étonnera déjà un peu moins.


Mais l’intérêt réside aussi dans le contenu technique de l’annonce, ces fameuses extensions du format RSS. Positionné par Microsoft comme simplifiant la circulation des flux RSS, en particulier relatifs aux événements des calendriers et aux contacts personnels, entre applications ; il s’agit d’un dispositif de synchronisation de flux RSS, même lorsqu’ils dépendent les uns des autres. L’exemple du partage des rendez-vous sur un calendrier commun est l’archétype de ce type de synchronisation. La spécification SSE propose donc de rajouter un historique des changements aux flux RSS (création, modification et destruction des publications individuelles dans le flux). Ainsi avec SSE, le flux RSS peut être considéré comme une base de données, chaque publication atomique RSS jouant le rôle d’un enregistrement dans une table d’une base de données relationnelle, avec toutes ses opérations de création, de sélection, de mise à jour et de destruction.


Adam Bosworth, un ancien de Microsoft – où il travaillait déjà sur XML – devenu Chief Architect de BEA Systems avant d’être recruté par Google en 2004 comme VP Engineering, s’interrogeait en octobre dernier sur cette même question : s’il est facile de publier (INSERT), lire et filtrer (SELECT) les publications dans le flux RSS, comment fait-on pour les actualiser (UPDATE) ou les effacer (DELETE) dans ce même flux ? Google proposait alors, par sa voix, de mettre en œuvre un mécanisme déjà contenu dans le standard Atom pour actualiser ou modifier les flux Atom (et RSS par analogie) via les déclinaisons moins connues du protocole HTTP. Pour rester bref, le protocole HTTP définit les commandes « GET » et « POST » pour télécharger des pages Web ou envoyer des formulaires : ce sont les plus connues et les plus utilisées. Mais il existe deux autres commandes, « PUT » et « DELETE », pour actualiser et détruire, respectivement, une ressource sur le Web, qui sont si peu usitées qu’en règle générale elles sont mal ou pas implémentées par les serveurs Web. Le « Atom Publishing Protocol », une spécification pour le moment à l’état de draft de l’IETF, propose d’employer ces commandes pour éditer en temps réel, via le simple protocole HTTP, les flux RSS et les rendre ainsi véritablement bidirectionnels.


Pour Microsoft, le RSS bidirectionnel est le moyen de partage d’informations élémentaires entre applications faiblement couplées, relativement indépendantes les unes de autres ; pour Google le RSS bidirectionnel permet de transformer les flux RSS en véritables bases de données munies de toutes les opérations élémentaires de transactions.


Le RSS bidirectionnel, s’il finit par être largement adopté, est tout simplement une proposition assez révolutionnaire de gestion partagée des multiples fragments d’information devenus indispensables dans nos vies professionnelle et quotidienne : contacts, noms, adresses, événements, rendez-vous, réunions, news, opinions, blogs etc. en permanence classés et reclassés selon nos catégories personnelles et incessamment produits et reproduits par diverses applications sur différentes machines (du téléphone portable au PDA et au PC). Le dispositif technique promet une synchronisation généralisée (et sans douleur : heureux sont ceux qui ignorent les subtilités de la synchronisation ActiveSync !) de ces données émiettées mais devenues indispensables.


Et il est heureux de voir que Microsoft choisisse les auspices de Creative Commons pour engager la discussion technique sur ce sujet.

ShareThis