21 août 2008

Plain Old Binary Services


Les services web sont venu pour nous sauver de tout ces protocoles binaires, propriétaires et non-interopérant qui ont pourri l'informatique depuis tant d'année (alleluïa).

Pourtant, les performances n'étant pas toujours au rendez-vous, et le réseau véhiculant une quantité d'entêtes soap WS-TrucMuch qui fait peur, de nombreux petits malins cherchent à améliorer les choses.

Permière solution : SOAP 1.2 étant basé sur InfoSet (une norme de représentation pour un arbre de données) et non sur XML (une façon textuelle de représenter ce même arbre), rien n'interdit de véhiculer le message SOAP encodé en binaire par FastInfoset. Non seulement le message est très fortement réduit en taille, mais le parsing est nettement plus efficace.

Seconde solution : SOAP over TCP (développé par SUN), disponible pour .NET. Il s'agit cette fois de simplifier la couche de transport, puisqu'on s'est donné comme base de ne pas en dépendre. Donc autant faire au plus simple, et attaquer en TCP - j'attend de pied ferme SOAP sur IP ;-)

En combinant les deux, les perfs deviennent probablement exceptionnelles... Un format d'encodage binaire, basé sur un équivalence ASN.1 du schéma XML, et un transport sur TCP - je ne sais pas pour vous, mais moi ça me rappelle furieusement Tuxedo ou Corba !

Qui réussira à nous faire passer RMI/IP pour du "service web" ?

Google Developer Day '08


Mon inscription - bien que tardive - au Google Developer Day 2008 a été acceptée. Cette journée atelier/conférence autour des outils Google pour les développeurs rencontre un succès qui dépasse largement ses capacités d'accueil, d'ou un passage quasi obligé par la liste d'attente ...

Après l'ouverture de ses APIs de programmation, qui lui permettait de promouvoir ses sites, Google passe la vitesse supérieure avec GWT, Google App Engine, Androïd, plus de nouvelles APIs (Google Visualization, YouTube).

A son habiture, Google essaie d'être présent partout. Nouveaux monopole à la Microsoft crieront certains ! L'avenir nous le dira... mais pour l'instant tous les outils/services de Google sont gratuits !

18 août 2008

GPL : la license des pros

La licence GPL a fait couler beaucoup d'encre, et canalisé quelques frayeurs - auxquelles j'ai moi aussi participé - sur son aspect "viral". Symbole d'un idéalisme du libre, elle s'est longtemps heurtée à la réalité du monde économique purement guidé par des considérations lucratives.

Aujourd'hui, retournement de situation, la GPL devient l'arme numéro 1 de l'entreprise désireuse de porter son outil fétiche. Quelques exemples au hasard :
  • L'excellent librairie EXT-JS
  • SpringSource Application Platform
  • Le framework de Lyria
  • et plein d'autres que je vous laisse découvrir...
L'idée derrière tout ça ? Fàce aux géants du logiciel et à des développeurs Java qui misent beaucoup sur l'opensource, la licence GPL assure à une société de ne pas se voir canibaliser son code (et ses bonnes idées) tout en touchant un public aussi large que possible.

S'il s'avère que SpringSource à raison avec sa "plateforme", à mi-chemin entre OSGi et JEE, IBM ne pourra pas lui piquer - même par morceaux - pour l'intégrer à Websphere 9.

Retournement amusant de situation pour cette licence pas comme les autres ;-)

des Logs pour GWT

Lors d'un développement GWT, le mode Hosted permet de deboguer à loisir depuis Eclipse, ce qui est extrêmement puissant si on compare aux solutions existantes pour le développement JavaScript.

Mais le debogueur ne fait pas tout, et l'utilisation de logs est un complément indispensable.

Petit coup de pub donc pour la librairie gwt-log, qui propose une interface de type log4j pour produire des logs.

Premier point, le code des logs sera totalement supprimé lors de la compilation par GWT pour la combinaison log_level=OFF. Ceci permet donc de ne pas pourrir l'application de production avec des logs. Une "variante" peut être compilée en mode log_level=DEBUG pour le développement, et l'ajout d'un simple paramètre à l'URL permet de la sélectionner - merci la gestion combinatoire du compilo GWT !

Second point, gwt-log sait envoyer ses logs vers à peut près tout ce qu'il est possible d'imaginer :
un [div] de debug, le shell du mode Hosted, la sortie standard (i.e. la console d'Eclipse), ou la console de Firebug pour les amateurs ... Chacun prendra ce qui lui convient le mieux !

En attendant que le projet log4gwt du même auteur murisse, c'est une solution simple, utilisant le mécanisme de compilation de GWT avec intelligence.