mardi 26 août 2008

Google Data Eclipse Plugin

Une petite vidéo qui explique comment installer et utiliser le plugin Eclipse pour faciliter le développement de projet utilisant Google Data en Java :



Par contre, j'ai fait l'essai avec Eclipse 3.4 (Ganymede), et si l'installation du plugin ne pose pas de soucis, la création d'un projet avec ce dernier n'a pas abouti. Dommage... comme écrirait Isaac Asimov, cela sera certainement pour Noël sur Ganymède... désolé je n'ai pas pu m'empêcher... shame on me ;-)

Ci-après, une courte vidéo d'introduction à "Google Data" pour ceux qui ne connaissent pas :



En tous les cas, le plugin semble intéressant dès l'instant où l'on souhaite réaliser des développements autour de l'API Google Data.

mardi 19 août 2008

Protocol Buffers

Google a mis a disposition récemment, un outil utilisé en interne : les "Protocol Buffers".

Ces "Protocol Buffers" sont la solution maison de Google "indépendante de la plateforme, indépendante du langage et extensible" pour sérialiser/désérialiser des données structurées.

Il faut d'abord définir un protocole - c'est-à-dire la manière dont les données sont structurées - dans un fichier avec l'extension .proto. Puis ce fichier .proto est compilé avec l'outil protoc pour générer un format binaire compact et le code source dans le langage adéquat (Java, Python et C++ pour l'instant) pour lire et écrire dans fichiers dans ce format de manière transparente.

Les données dans le fichier de protocole sont typées : sont disponibles des types simples génériques correspondant aux types simples des langages cibles. Et il est également possible de définir des nouveaux types dans le fichier de protocole.

Les "Protocol Buffers" semblent pour l'instant être utilisés principalement avec du RPC (Remote Procedure Call) ou pour stocker des données structurées simples.

En fait par rapport à XML, l'avantage des "Protocol Buffers" est d'être un format compact dont le traitement est rapide et facile (comparée à la manipulation d'arbres DOM en XML). Par contre, les "Protocol Buffers" ne sont pas conçus pour des données structurées complexes, dans lesquelles la structure est elle-même significative, comme par exemple une structure décrivant un document.

Si dans la petite vidéo qui suit, une comparaison des "Protocol Buffers" est effectuée avec XML et IDL/Corba (les "Protocol Buffers" sont un outil de sérialisation/desérialisation utilisable dans du RPC mais ne sont pas une solution de RPC), il n'y a pas de comparaison avec JSON et YAML. Ces 2 formats sont beaucoup plus compacts que XML mais le sont moins qu'un format binaire, mais reste par contre "lisible par un être humain".

Enfin, un aspect mis en avant et qui semble en effet un point important c'est l'extensibilité des données mises en oeuvre par les "Protocol Buffers". En effet, il semble possible de faire évoluer le format du protocole, en ajoutant des nouveaux champs par exemple, sans pour autant gêner les applications qui utiliseraient l'ancien format. Bien sûr, il faut voir jusqu'à quel point on peut faire évoluer un protocole sans que cela est d'impact sur l'existant.



Encore un outil de Google pour les développeurs même si ces derniers doivent d'abord déterminer si cela peut convenir à leur besoin. Cependant cela peut être une solution de sérialisation/déserialisation séduisante et dans tous les cas à étudier. Surtout qu'il va certainement rapidement y avoir des bindings ou des mises en oeuvre pour d'autres langages que Python, Java et C++.

Site des "Protocol Buffers" : http://code.google.com/apis/protocolbuffers/