Revue de Presse Xebia

Revue de Presse Xebia
La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.

Actualité éditeurs / SSII

RIA

Le coin de la technique

Actualité éditeurs / SSII

Glassfish v2.1 et Glassfish Portfolio

La version 2.1 du serveur d’applications GlassFish de Sun est sortie fin janvier. Cette nouvelle release apporte peu de grosses nouveautés. Comme le souligne Alexis Moussine-Pouchkine, la sortie de SailFin v1 a motivé la v2.1 de Glassfish. SailFin repose sur des servlets SIP et le protocole SIP (Session Initiation Protocol). Ce protocole est notamment utilisé pour réaliser de la VoIP ou de la messagerie instantanée.

Outre la correction des quelques 500 bugs, cette nouvelle version apporte avec elle son lot de nouveautés intéressantes :

  • un nouveau service de Shoal Group Management (GMS), qui permet à une JVM d’appartenir à un cluster et d’être notifiée lors d’événements sur celui-ci ;
  • une implémentation plus robuste des mécanismes de réplication de sessions ;
  • l’implémentation de Glassfish Enterprise Manager. Il s’agit en fait de la grosse nouveauté de cette version, cette plateforme offre trois nouveaux outils pour gérer GlassFish en production :
    • un Support SNMP ;
    • Performance Advisor, qui permet d’ajuster et de monitorer à chaud la configuration en fonction de la charge et des performances de l’application en cours d’exécution ;
    • Performance Monitor, gestion de la performance basée sur VisualVM.

Avec cette nouvelle version, Sun se lance donc dans une opération séduction destinée aux exploitants. Sera-t-elle suffisante pour transformer le chouchou des développeurs en machine de guerre prête à concurrencer les plus gros en production ? Quoi qu’il en soit, une marche de plus a été franchie.

D’après la roadmap de GlassFish, cette mise à jour sera la dernière évolution majeure de la branche v2, actuellement utilisée sur les serveurs de production.
GlassFish v3, dont la version Prelude est qualifiée de « production-ready » par Sun, reste le véritable avenir de GlassFish. Son architecture modulaire et la possibilité de redéploiement rapide qu’il offre lui permettront de rivaliser avec les serveurs d’applications de nouvelle génération tels que JBoss AS 5.0.

D’autre part, Sun a annoncé le 10 février dernier la sortie de GlassFish Portfolio. Il s’agit d’une plateforme applicative unifiée regroupant 4 produits déjà existants : Enterprise Server, ESB, Web Stack et Web Space Server.
Cette nouvelle plateforme n’apporte pas de réelles nouveautés et peut être considérée comme un repackaging marketing. Alexis Moussine-Pouchkine est plus mitigé sur la question.

GlassFish Mobility Platform 1.1

Sun annonce la disponibilité de GlassFish Mobility Platform 1.1 qui constitue une mise à jour de son produit anciennement nommé Mobile Enterprise Platform 1.0 qui avait été introduit en Juillet 2008. Cette plate-forme a pour but de faciliter le développement d’applications mobiles communiquant avec un back-end Java.

Dans cette optique, la première version offrait déjà la possibilité de synchroniser les données d’un appareil mobile avec celle d’un serveur via l’utilisation du protocole SyncML.

Cette nouvelle version offre maintenant également le support de JAX-RS, apporté par un connecteur coté serveur, et par JerseyME coté client mobile CLDC.

Parmi les possibilités de middleware mobile, GlassFish Mobility Platform représente ainsi une alternative intéressante à l’utilisation d’un serveur d’application JEE classique invoqué par Web Services SOAP via la JSR-172 (J2ME Web Services Specification) qui est dorénavant implémentée dans de nombreux appareils J2ME.

RIA

Mozilla Labs sort Bespin, un IDE web

Mi-Octobre 2008, Dion Almaer et Ben Galbraith, les fondateurs du site Ajaxian, rejoignaient Mozilla, pour travailler sur des outils pour le développeur (l’employeur précédent de Dion Almaer était… Google).
Dion et Ben ont annoncé la semaine dernière le premier fruit de leurs travaux chez Mozilla Labs : Bespin, un éditeur de code web en ligne, avec le cahier des charges suivant :

  • accessible de n’importe où
  • facile à utiliser
  • rapide
  • collaboration en temps réel
  • ligne de commande à la vi intégrée
  • extensible

Il sera intéressant de voir le résultat de cette expérimentation : un logiciel qui a naturellement sa place sur le bureau peut-il être porté sur le web?
La première version mise en ligne est une « tech preview », en version 0.1. Elle ne supporte pour le moment que quelques fonctionnalités d’édition de base (coloration syntaxique ou prévisualisation du rendu des pages dans le navigateur par exemple), et ne fonctionne pour l’instant que sur Firefox 3 et une version nightly de WebKit.
Parmi les fonctionnalités attendues, citons en particulier la « collaboration en temps réel ». Cette fonctionnalité est soit absente de nos IDEs favoris, soit rarement utilisée. Elle est pourtant séduisante ! Prenons pour exemple l’éditeur SubEthaEdit, dont la fonction de collaboration inspire Mozilla Labs pour Bespin.

Blaze Data Service ou LiveCycle Data Service

Dans cet article, Ryan Knight clarifie les différentes offres d’Adobe concernant les data services. Comme nous l’avions expliqué dans cet article sur BlazeDS, ce dernier est OpenSource alors que le LiveCycle Data Services (LCDS) est propriétaire. Ces deux produits permettent notamment la communication entre un client Flex et un serveur d’applications Java par l’intermédiaire d’une Servlet (Message Broker), mais aussi grâce au protocole AMF.

Il existe cinq versions différentes:

  • Blaze Data Services
  • LiveCycle Data Services Community Edition
  • LiveCycle Data Services Single-CPU Licence
  • LiveCycle Data Services
  • LiveCycle Data Services Entreprise Suite

Afin d’effectuer un choix parmi ces offres, les questions suivantes se posent:

  • Avez-vous besoin de support ?
  • Avez-vous besoin d’un service de gestion des données ?
  • L’application devra-t-elle supporter beaucoup de connections ?
  • De quels channels (AMF, RTMP) avez-vous besoin ?

Par la suite, le NIO (Java New Input/Output) endpoint est décrit. Le NIO, basé sur une socket, permet de gérer un grand nombre de connexions avec moins de threads. Néanmoins, comparé à la Servlet MessageBroker, ce dernier est moins rapide à mettre en place (mise en place d’une meilleure authentification…). A l’origine NIO a été créé pour pallier les problèmes de performances, mais ces derniers sont remis en questions, car dorénavant sous le JDK 1.6 par exemple, la JVM possède une meilleure gestion des threads.

Enfin pour terminer, le choix parmi les offres proposées par Adobe, dépend essentiellement des besoins et de la criticité (besoin de support éventuel) du projet à mettre en place. De manière générale, l’utilisation de la Servlet MessageBroker et du protocole AMF permettent de gérer bon nombre de situations.

Le coin de la technique

Sonar en version 1.6

Décidément, l’équipe de Sonar Source est prolifique en versions et en nouvelles fonctionnalités pour sa plateforme d’observation des indicateurs qualité : Sonar.
Nous annoncions sur ce blog à la fin de l’année dernière la sortie de la version 1.5 et à peine deux mois après, c’est la version 1.6 qui est annoncée en images sur le blog lié à l’outil.
A noter donc, 3 features liées à la gestion des règles de qualité à observer sur les projets :

  • La possibilité de lier un ruleset qualité différent selon les projets (fonctionnalité qui permet par exemple, d’adapter le niveau d’exigence en matière de qualité selon l’expérience de l’équipe de développement ou l’existant du projet)
  • Des alertes peuvent désormais être paramétrées sur l’apparition de règles spécifiques ou selon des seuils à ne pas dépasser. Sur le dashboard, l’indicateur du projet dépassant ces seuils apparaitra surligné. Il est aussi possible de lier les projets à un flux RSS.
  • Les rulesets sont maintenant historisés et peuvent être rechargés par projet.

Sonar corrige et agrémente ses nouvelles versions en dépilant les fonctionnalités présentées dans sa roadmap (la version 1.7 est annoncée en Mars 2009).
Mais l’outil propose déjà un panel riche d’outils qui agrègent et présentent des données qualité à destination, aussi bien des directeurs de projet, pour une vision haut niveau, que des développeurs souhaitant une remontée continue d’informations qualitatives sur leur travail.

Groovy 1.6, tout pareil, mais en mieux

Guillaume Laforge a annoncé cette semaine sur son blog la sortie de Groovy 1.6. Notons qu’il s’agit de la première grosse release de Groovy depuis l’acquisition de G2One par SpringSource en Novembre dernier.

Lors de la soirée Groovy du Paris JUG de Septembre, Guillaume nous parlait avec enthousiasme de cette version 1.6 (qui était déjà disponible en bêta) : elle devait permettre à Groovy de devenir le langage de scripting pour JVM le plus rapide du marché. C’est d’ailleurs cette course à la performance qui a certainement occupé le plus les équipes de développement ces derniers mois. On se souvient de l’amélioration notable des temps de compilation (x3) à l’arrivée de Groovy 1.5.5. Cette fois-ci, c’est le bytecode généré qui a été mis au régime et qui permet a Groovy 1.6 d’améliorer grandement ses performances.
Les chiffres annoncés lors de la sortie de la version bêta permettaient d’espérer une amélioration des performances spectaculaire. Ils annonçaient alors entre 150% et 400% d’amélioration… sur certains tests bien spécifiques. Alors, qu’en est-il réellement ? Difficile à dire pour le moment, aucun test de performance n’ayant encore été publié. Si Guillaume Laforge lit ces lignes et qu’il peut nous en dire un peu plus, qu’il n’hésite pas !

L’autre nouveauté intéressante ne concerne pas directement les développeurs : la transformation d’AST. Un AST (Abstract Syntax Tree) correspond à la représentation mémoire du code source telle que le voit le compilateur avant que le bytecode ne soit généré. Il s’agit donc d’une fonctionnalité avancée ouvrant la porte à certaines solutions intéressantes. Effectuer des transformations sur l’AST revient à modifier, avant la compilation, le code de votre application : soit pour l’optimiser (suppression de code inutile, des variables non utilisées, …), soit pour en modifier le comportement.
Il devient donc aisé, pour le compilateur, d’ajouter un traitement particulier avant la compilation en fonction du code source. Vous utilisiez le runtime weaving de Spring, le load time weaver des agents java, Grrovy vous propose le compilation time weaving.
Concrètement, le compilateur pourra directement détecter la présence d’annotations (ou autres) dans votre code et effectuer ses modifications avant même que le code source ne soit compilé. Ainsi, la transformation d’AST facilitera probablement grandement l’intégration de nouveaux bultins type Spring ou Seam et permettra de ce fait la gestion transparente d’annotations du type @Singleton, @Immutable, @Lazy, @Delegate ou @Binding.

D’autre part, voici en vrac la liste des nouveautés plus terre-à-terre apportées par cette nouvelle version (nous n’en détaillerons pas les cas d’utilisation ici) :

  • Affectations multiples : def (a,b) = [1,2]
  • Retours optionnels dans les blocks if/else et try/catch
  • Améliorations des builders Swing
  • Builtin permettant l’exécution de scripts au sens JSR-223 (si si, du script dans un language de scripting)
  • L’intégration d’un builder JMX

AribaWeb passe en OpenSource

Après quatre versions de sa stack de développement d’applications web, la société Ariba Inc. a décidé de la passer en OpenSource. La version 5, actuellement en Release Candidate 1 vient d’être publiée en même temps chez SourceForge et Google Code. Le projet AribaWeb passe donc en licence Apache Version 2.0 et l’équipe de développement nous gratifie pour sa sortie d’un joli site de promotion avec tutoriaux et screencasts de démonstration.

Relativement peu connu, du fait de son utilisation propriétaire dans ses premières versions, AribaWeb promet une productivité sans commune mesure avec les autres stacks de développement web : à application équivalente, 100 fois moins de code à écrire qu’avec Rails ! Ils annoncent également avoir besoin de 10 fois moins de code qu’avec GWT pour développer une application GoogleMaps. La fonction LiveEdit, permettant de replacer ses composants UI et éditer les règles d’accès aux écrans directement dans un navigateur, vaut le détour. Des plugins Eclipse et IntelliJ IDEA sont livrés en standard pour permettre de tester rapidement dans un environnement familier.

Souhaitons une longue vie à ce nouveau projet, dont le passage en OpenSource a été initié pour « offrir un retour à la communauté qui a rendu son développement possible ».

Maven 2.0.10

Dix mois après la sortie de la version 2.0.9, la version 2.0.10 de Maven vient d’être mise en ligne.
Au programme, essentiellement des corrections d’anomalies. De nouvelles fonctionnalités devaient au départ être intégrées dans cette version, mais elles ont été reportées dans la branche 2.1.
Vous trouverez plus d’informations sur la sortie de la nouvelle version sur le blog de Sonatype (la société de Jason van Zyl, le père de Maven), ils y donnent en particulier un rapide tour d’horizon des différentes branches actuelles (2.0.x, 2.1.x et 3.0.x).
Si vous utilisez Maven 2.0.9 et que vous n’êtes pas affectés par une des anomalies corrigées, la migration n’est pas bien urgente…

Billets sur le même thème :

2 commentaires

Laisser un commentaire