Java : Utilisation de Protocol Buffers

Voici un petit tutoriel sur l’utilisation du nouveau format de Google : Protocol Buffers en Java. Ce format se veut être le remplaçant de XML, standard actuel pour le stockage et l’échange de données au format texte. Dans cet exemple nous allons créer un gestionnaire de contact. Ce billet est une traduction de la documentation de Google : Protocol Buffers Basics. Fichier de définition Tout d’abord le fichier de définition .proto permettant de définir le format des données. package fr.mkhelif.pb; option java_package = "fr.mkhelif.pb.demo"; option java_outer_classname = "AddressBook"; message Contact { required string name = 1; required int32 id = 2; optional string email = 3; enum PhoneType { MOBILE = 0; HOME = 1; WORK = 2; } message PhoneNumber { required string number = 1; optional PhoneType type = 2 [default = HOME]; } repeated PhoneNumber phone = 4; } message AddressBook { repeated Contact contact = 1; } La déclaration d’un package permet comme en Java d’éviter les conflits de nom. Si vous déclarez un package (comme dans cet exemple) le package de la classe Java sera le même. Ici on surcharge le package java avec l’option java_package. On définie le nom de la classe Java grâce...

Read article

Google lance Protocol Buffers

Vous pensiez que XML était un standard, Google veut changer la donne avec un nouveau format : Protocol Buffers. Google annonce ce nouveau format : “Pensez à XML mais en plus petit, plus rapide et plus simple”. Ce format est utilisé depuis longtemps par Google dans ses applications. Le principe de ce format ressemble à une sérialisation des données : on définie la structure des données, on compile pour obtenir du code source permettant de lire et écrire. Actuellement ce format est développé uniquement en C++, Java et Python. Le langage Perl est déjà prévu mais rien pour PHP, Ruby, DotNet. Ce nouveau format ne changera pour l’instant pas le standard qu’est XML. Mais si ce dernier n’évolue pas, surtout au niveau de la rapidité, il se pourrait bien que Protocol Buffers prenne sa place.

Read article

GWT : Créer un service RPC

Le framework GWT permet depuis le client JavaScript de faire des appels RPC (Remote Procedure Call ou appels de procédures distantes) au serveur GWT. L’objectif est de permettre au JavaScript client d’exécuter des méthodes sur le serveur et d’en récupérer le résultat. Tout cela de façon totalement asynchrone (Ajax). Les échanges entre le client et le serveur sont faites de façon asynchrone car la plupart des navigateurs n’accordent qu’un seul Thread pour exécuter le JavaScript. Infrastructure RPC Pour permettre à JavaScript de faire des appels RPC il faut écrire le service côté serveur et la vue qu’en a le client. Le code d’un service RPC est séparé en deux packages : fr.mkhelif.gwt.client et fr.mkhelif.gwt.server. Dans ce tutoriel nous allons créer un service Hello qui va tout simplement dire bonjour. Package client Le package client doit contenir les interfaces décrivant les méthodes du service. /** * @author Marwan KHELIF */ public interface HelloService extends RemoteService { public String sayHello (String name); } // HelloService Voilà le code du service côté client qui sera utilisé pour effectuer des appels RPC en JavaScript. On crée alors une interface qui sera utilisé par GWT pour effectuer les appels asynchrone. Cette interface est identique à...

Read article

GWT : Introduction au framework

Je travaille actuellement sur un plugin pour le logiciel NeoLoad permettant d’enregistrer des requêtes RPC effectuer par le framework GWT (Google Web Toolkit). Je vais donc en profiter pour présenter ce framework. Qu’est ce que GWT? Google Web Toolkit est un framework qui permet de créer un RIA (Rich Internet Application) sans avoir à écrire des centaines de lignes de JavaScript. GWT est un compilateur qui génére à partir de code source Java des fichiers JavaScript, XML et HTML. Pour rendre dynamique le site vous pouvez ajouter une couche client-serveur RPC (Remote Protocol Call) entre le JavaScript côté client et le Java côté serveur. Cela permet de faire transiter par HTTP des objets Java entre le client et le serveur et des objets JSON entre le serveur et le client. Afin de simplifier les étapes de tests et de débug, GWT fourni une JRE permettant d’exécuter l’application en local : Hosted Mode. Ceci évite la compilation de l’application et le déploiement sur le serveur. GWT a donc pour but principal de simplifier et d’unifier le développement d’application Web : le développeur crée les classes Java nécessaire à l’application et GWT s’occupe du reste. Le compilateur GWT Dans cet objectif le...

Read article

Google : référencement des contenus Flash

Beaucoup ont déjà du faire face au problème du référencement lorsque des animations Flash sont inclues dans une page Web. Adobe vient d’annoncer dans un communiqué de presse que Google était le premier à utiliser son SDK pour indexer le contenu d’une animation Flash. Amélioration de l’indexation Grâce à cela Google va améliorer son indexation du texte contenu dans une animation Flash. L’innovation la plus importante vient du fait de l’indexation des liens internes à l’animation Flash. Les différents liens (internes et externes) seront désormais indexés par GoogleBot permettant ainsi le référencement de certaines pages qui étaient invisible auparavant. Conclusion Même si cette nouvelle est un pas en avant pour tous les webmasters de sites en Flash, cela ne permettra jamais d’améliorer efficacement le référencement de tels sites. En effet un site en Flash ne possède qu’une seule URL (la page HTML qui embarque l’animation Flash), ce qui ne permet pas d’avoir de liens internes (très utile pour le référencement). Le SDK a aussi été fourni à Yahoo, mais le moteur de ce dernier doit encore être mis à jour pour prendre en charge les contenus Flash.

Read article