Aller au contenu principal

Yahoo Pipe et Google App Engine : si Yahoo Pipes disparaît, que deviendrons-nous ?

03/11/2010

L’info

Traduction de http://blog.ouseful.info/2010/10/25/backup-and-run-yahoo-pipes-pipework-on-google-app-engine/

Ne serait-ce pas formidable si vous pouviez utiliser Yahoo Pipes comme un environnement de développement rapide et gratuit de code, puis exporter ce code et l’exécuter sur votre propre serveur ou n’importe où in the cloud ? Désormais c’est possible, en utilisant le  pipe2py [Pipe to Python] de Greg Gaughan’s et le Google App Engine “Pipes Engine” app.

Comme de nombreux lecteurs de OUseful.info le savent déjà, je milite pour l’utilisation de l’éditeur visuel, application de programmation pour flux avec drag and drop qu’est Yahoo Pipes. Il y a quelques temps j’ai demandé Que se passera-t-il si Yahoo Pipes disparaît ?, en partie en réaction aux préoccupations exprimées aux cours de nombreux ateliers consacrés à Yahoo Pipes que j’ai animés, autour de la maintenance et de la fiabilité de la plate-forme Yahoo Pipes.

Un des aspects importants était que les « programmes » développés dans l’environnement Yahoo Pipes ne pouvaient s’exécuter que dans cet environnement. Comme je l’ai appris du gourou des pipes, @hapdaniel, il est toutefois possible d’exporter une représentatoin JSON d’un pipe et récupérer ainsi au moins une sorte de copie du programme. Cela m’a amené à jeter quelques idées sur le papier autour de l’idée d’un Yahoo Pipes Documentation Project, qui permettrait d’exporter le code d’un pipe dans un format fonctionnel.

Ce qui conduit naturellement à commencer à réfléchir à un générateur de code Yahoo Pipes, où l’on pourrait prendre la description d’un pipe et générer le code correspondant. Greg Gaughan a relevé le défi avec Pipe2Py (décrit ici)pour produire un compilateur de pipes capable de générer et exécuter l’équivalent en Python d’un Yahoo pipe (tous les modules de Yahoo Pipes  ne sont pas encore implémentés, mais ça marche pour les pipes les plus simples).

Et Greg est désormais allé un pas plus loin, en hébergeant pipe2py sur le Google App Engine : ainsi on peut faire une sauvegarde en Python d’un pipe dans cet environnement, et l’exécuter : Running Yahoo! Pipes on Google App Engine.

Comme avec pipe2py, ça ne fonctionne pas (encore) pour tous les pipes, mais vous devriez y arriver avec des pipes assez simples […].

@paulgeraghty a tweeté le lien vers un vieux billet de @progrium au sujet de “POSS == Public Open Source Services: … or User Powered Self-sustaining Cloud-based Services of Open Source Software”:

Combien de bons outils de programmation sont créés puis abandonnés sur le web parce que les gens se rendent compte qu’il n’y a pas vraiment d’argent à se faire avec ? […]

C’est très fréquent dans le monde de l’open source. Une communauté passionnée veut construire un truc cool et utile. Beaucoup de grandes choses viennent de l’open source. Mais l’open source  est juste … du code source. Ce n’est pas son exécution. Vous avez besoin d’exécuter le code. Comment avoir l’équivalent de l’open source pour les services ? C’est une question qui me préoccupe depuis des années. Mais aujourd’hui…

Arrive POSS.

POSS est une extension d’open source. Vous commencez avec un logiciel qui fournit un service (par exemple un service web, que ce soit une web app ou une API — en tout cas in the clouds). Le code est open source. N’importe qui peut corriger les bugs ou améliorer la chose. Mais il y a toujours une seule instance de référence pour cette source, qui s’exécute comme service dans les nuages. D’où le dernier S (de POSS)… mais c’est un service public. Fait pour le bénéfice public. Pas pour le profit. Juste « pour être utile ». Comme presque tout ce qui est open source.

La procédure

Si vous voulez convertir un de vos pypes en utilisant cet outil, c’est par là.

Concrètement : en bas de la liste qui vous indique qui s’est déjà amusé à tester cet outil, vous avez un formulaire où indiquer l’identifiant du pype que vous voulez convertir (n’essayez pas avec le pype du Bouillon : d’une part il est complexe, et en outre il est le résultat de 4 ou 5 pypes combinés les uns à la suite des autres, voire les uns dans les autres).

Vous collez l’identifiant (qui ressemble à ef600e7d9356fcf6b9621d4f45edc915 et apparaît dans l’URL du pype) et vous exécutez. Aussitôt vous apparaissez en tête de liste, et un lien vers le code du programme obtenu vous est donné, sous la forme : http://pipes-engine.appspot.com/run/ef600e7d9356fcf6b9621d4f45edc915 (en l’occurrence, c’est juste un pype de démo fusionnant les flux RSS des Une du Monde et de Libé).

Et vous pouvez le supprimer ensuite si sa visibilité publique vous embarrasse.

Bon, je vous l’avoue volontiers, je ne parle pas Python (ni couramment ni rien du tout). Mais je suis déjà un peu plus rassuré du fait que certains s’inquiètent de la pérennité de leurs (et nos) oeuvres au-delà de Yahoo Pipes, et plus encore ont les moyens de construire des réponses au regard de ces inquiétudes.