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

Le coin de la technique

Evènements de notre communauté en France et à l’étranger

Actualité éditeurs / SSII

Amazon lance Relational Database Service

Quelques mois après la disponibilité d’Amazon Elastic MapReduce, le libraire américain continue d’enrichir sa gamme de services de Cloud Computing en lançant Amazon Relational Database Service (RDS).

RDS offre une base de données MySQL sur une plate-forme dynamiquement provisionnable. Suivant la logique initiée avec ses autres services, la facturation est fonction de la consommation réelle, la gestion des instances se fait à l’aide d’un Web Service spécifique à RDS et leur monitoring est possible par CloudWatch.

Outre ces caractéristiques communes aux services d’Amazon, on retiendra principalement de RDS :

  • Utilisation de MySQL 5.1 avec InnoDB,
  • Offre de réplication prévue pour assurer la haute disponibilité, mais non disponible à ce jour,
  • Système de gestion des backups.

Par ce service, Amazon déleste ses clients des principales tâches liées à l’administration d’une base de données relationnelle. Répondant ainsi à un besoin réel, on peut s’attendre à ce que ce service, s’inscrivant dans l’offre homogène d’Amazon, rencontre un succès commercial.

Plusieurs réactions et commentaires ont suivi cette annonce, on retiendra particulièrement l’observation de Krishnan Subramanian, sur le coup dur que constitue ce nouveau service pour FathomDB, une entreprise qui proposait un service d’hébergement MySQL sur EC2. Il remarque alors qu’il est délicat pour des startups de parier sur de tels services propriétaires.

Oracle tente de rassurer la communauté Sun

Depuis l’acquisition de Sun par Oracle en avril dernier, le futur de la stack Sun a fait l’objet de peu de communiqués. Quelques rumeurs ici ou là sur le futur de MySQL ont fait surface, après la disparition du lien permettant de télécharger les premières briques de MySQL 6. C’est peut-être pour couper court à ce genre de bruits de couloir qu’Oracle présente ses intentions sur la stack Sun via la mise à jour de sa FAQ . En résumé « on garde tout, et on en fait toujours plus » :

  • Oracle dit vouloir passer plus de temps sur Solaris et Sparc que Sun ne l’a fait par le passé. La collaboration d’ingénieurs base de données Oracle et Sun ouvre d’ailleurs de nouvelles perspectives.
  • Côté virtualisation, tous les produits Sun ‘devraient’ continuer à être développés : VDI, Secure Global Desktop, Sun Ray, and VirtualBox.
  • Un alignement entre Oracle Weblogic Server et Glassfish Enterprise Server va être effectué. Glassfish reste l’implémentation de référence open source pour Java EE 6.
  • Netbeans restera une solution alternative open source à Oracle JDeveloper et Oracle Enterprise Pack pour Eclipse.
  • MySQL devrait être ajouté à la liste des bases de données de la suite Oracle au même titre que Berkeley DB, une base de données open source.

Comme vous pouvez le constater, rien de très précis, tout est au conditionnel. Le but est avant tout de ne surtout pas se mettre à dos les différentes communautés.

Keynote de Rod Johnson à SpringOne/2GX 2009

SpringSource est actuellement un des plus grands agitateurs de notre écosystème. Et donc quand Rod Johnson, le papa de Spring, vient donner un keynote en ouverture du plus gros évènements annuel de l’éditeur, on écoute avec attention. Grâce à InfoQ, il est possible de retrouver cette intervention en différé.
En résumé, pas grand chose de nouveau, mais Rod Johnson enfonce le clou sur les sujets que Spring met en avant depuis quelques mois déjà :

  • Spring 3.0 : les nouvelles fonctionnalités, et les scénarios d’upgrade.
  • Les languages dynamiques : Groovy et Grails, une fois encore à l’honneur
  • Les outils destinés aux developpeurs: tcServer (voir par ailleurs), Spring Insight, SpringSource Tool Suite
  • Les grandes manœuvre de l’éditeur : aquisition par VMWare (pas grand chose à se mettre sous la dent de ce coté là)
  • Le futur de SpringSource : CloudFoundry et les Cloud d’entreprise en Java

En bref, un très bon résumé (pour ceux qui reviendraient de longues vacances) des changements qui nous attendent dans les mois à venir, impulsés par l’un des éditeurs les plus dynamiques du monde JEE.

Le coin de la technique

Optimisez vos requêtes SQL

Nous sommes tombés sur ce post qui nous propose 15 moyens pour optimiser vos requêtes SQL. Si quelques-unes d’entre elles vous paraitront être issues du bon sens commun, d’autres méritent le détour :

  • Prenez le plus grand soin de vos index : Le contenu des index primaires se doit d’être le plus petit possible, les index uniques sont en règle générale plus performants.
  • Recherchez par wildcard avec certaines précautions : Privilégiez l’utilisation de wildcard à l’utilisation de SUBSTR. Les wildcards postfixés sont plus performants que les wildcards préfixés. Dans la mesure du possible n’hésitez pas à n’indexer qu’une sous partie d’une chaîne de caractères plutôt que la chaîne dans son ensemble. En général utilisez les types de données les plus petits possibles.
  • Simplifiez vos requêtes : Privilégiez l’utilisation de l’opérateur EXIST à une utilisation de COUNT. Limitez le nombre de lignes à retourner pour éviter la récupération complète d’une table. Utilisez des valeurs par défaut dans vos colonnes pour simplifier vos requêtes.
  • Évitez les scans inutiles : Remplacer l’opérateur NOT d’une expression complexe par son inverse permet de ne pas évaluer l’intégralité de celle-ci. Transformez une sous-requête dans un IN par une sous-requête dans un FROM (et simulez ainsi une table virtuelle). Les UNION sont en principe plus efficaces que les OR car ils permettent d’optimiser l’utilisation des index.

Le tuning de requêtes SQL n’est pas simple, les commentaires sur le billet original en témoignent. Il dépend grandement de la base de données et de sa configuration. La base de données repose sur des statistiques pour savoir quand utiliser ses index. De ce fait, l’amélioration de la performance de vos requêtes commence le plus souvent par une analyse du plan d’exécution de celles-ci. Celui-ci vous permettra de trouver comment poser vos index. Enfin, certaines bases de données comme Oracle vous permettent d’agir directement sur son plan d’exécution à partir de votre requête, par l’intermédiaire de SQL HINT. A n’utiliser qu’en dernier recours :-)

Apache POI 3.5

Du nouveau sur le support des documents Office 2007 en Java (sujet déjà abordé il y a un an) avec Apache POI qui est sorti il y a un mois en version finale 3.5 (via InfoQ). Parmi les nombreuses nouveautés, on retiendra surtout le support des fichiers .docx et .xlsx et plus globalement des documents Office 2007 (mais il aura fallu attendre un an entre la beta 3 et la version finale !).

Plusieurs librairies nous offrent déjà la possibilité de gérer nos fichiers Office 97-2003 (format Microsoft OLE2). Peu d’entre elles proposent la gestion des fichiers Office 2007 (format Microsoft Office Open XML ou OOXML) : par exemple Aspose.Word gère uniquement les fichiers Word 2007. Avec Apache POI 3.5, c’est toute la gamme de produits Office 2007 qui se trouve ainsi supportée.

Quelques modifications seront toutefois nécessaires dans votre code pour supporter ce nouveau format. En effet, le modèle org.apache.poi.hssf.usermodel.HSSF actuel reste compatible OLE2 mais ne supportera pas OOXML. Il faudra ainsi passer par le nouveau modèle org.apache.poi.ss.usermodel.HSSF pour bénéficier de ce support. Ce nouveau modèle s’appuyant fortement sur l’ancien, l’équipe précise que le switch ne devrait pas être trop ardu.

Le téléchargement se passe comme d’habitude sur les miroirs d’Apache.

Interminables débats sur la mort de Java

A chaque année ses raisons d’annoncer la mort de Java ; le débat n’est pas nouveau et les arguments se renouvellent depuis le début des années 2000 :

  • Lourdeur de J2EE
  • Complexité et densité de l’écosystème Java
  • Manque d’intégration des solutions et les faiblesses du langage face au rival Microsoft .Net
  • Inadaptation à la création d’interfaces pour le Web et pour les clients lourds
  • Manque de productivité face aux nouveaux langages : Python, Ruby, …

En 2009 l’argumentaire se tourne maintenant vers les langages alternatifs pour la JVM – principalement Groovy et Scala – et vers l’incertitude liée à la gouvernance de Java. Ainsi il y a quelque semaines, Stephen Colebourne postait un inquiétant graphique montrant l’évolution décroissante du nombre de JSR créées auprès du JCP au cours des années. Il se demandait alors si cela pouvait être pris comme une perte de vitesse ou comme un signe de maturité mais remarquait que l’innovation était maintenant principalement portée par les communautés Open Source.

Stephan Schmidt apportait, en septembre dernier, une analyse intéressante du débat sur la mort de Java. Il commençait par dissocier les 3 composantes de Java que sont le langage, la JVM et le JDK, chacun ayant une pérennité distincte. Il exposait alors différents points :

  • La quantité d’offres d’emploi en Java reste constante comme le montre le graphe Indeed (devenant un classique en argumentaire).
  • Avant la mort de Java, un successeur doit se distinguer. Or Ruby et Python ont peiné à faire leur place dans le monde de l’entreprise. Il reconnaît en revanche le positionnement appréciable de Groovy suite à sa prise de contrôle par SpringSource puis par VMWare et l’innovation intéressante portée par Scala.
  • Java est toujours à même d’apporter les caractéristiques qui ont amené son succès : pas de pointeurs, gestion de la mémoire, orientation vers l’entreprise et Internet, gestion simple du parallélisme.
  • C’est le monde de l’entreprise qui permet le succès d’un langage, or Java répond toujours à ses besoins même si le langage présente des défauts nuisant à la productivité.
  • Java a perdu il y a bien longtemps le hype qui l’entourait, mais cela ne signifie pas pour autant sa mort.

A travers l’évolution du débat, un aspect majeur ressort : les critiques portent maintenant principalement sur le langage Java, la JVM étant reconnu pour ses qualités et la capitalisation qui s’est faite autour d’elle. Dès lors, la JVM se présente comme une plate-forme standard pour les développements, non sans rappeler le statut acquis par l’environnement x86 d’Intel des années auparavant.

La mort annoncée du langage Java au profit de langages alternatifs pour la JVM doit, quant à elle, probablement être modérée. En effet Java, fort de ce que Sun décrit comme la plus grosse communauté de développeurs au monde, n’est actuellement clairement pas menacé.

Une version de tcServer pour les développeurs

SpringSource vient d’annoncer la sortie prochaine (pour l’instant, une preview est téléchargeable) de tcServer Developer Edition. Que trouve t’on dans ce joli package ?

Côté serveur d’application, rien de nouveau, c’est toujours du 100% Tomcat.
C’est une fois de plus dans les à-côtés que tcServer se distingue, avec l’arrivée de Spring Insight. Spring Insight, c’est une console qui va vous permettre de surveiller ce qui se passe au cœur de votre application, à la fois en prenant un point de vue global, mais aussi en zoomant très précisément sur une requête HTTP donnée.

Et quoi de nouveau me direz vous ? Et bien, à vrai dire, pas de rupture technologique (plusieurs outils permettaient de réaliser des mesures comparables) mais une facilité d’intégration à votre application, sujet si cher à Spring. Tout se passe en AOP (rien à faire donc dans votre code), toutes les informations sont stockées en mémoire (pas de base de données, mais en contrepartie, une augmentation de la mémoire consommée par votre application) et les principaux frameworks du marché peuvent être scrutés en utilisant un mécanisme de plugin.
En revanche, Spring est très clair : il s’agit d’un outil de développement : son utilisation en production exposerait vos applications d’un point de vue sécurité.
Une fois de plus, SpringSource joue la carte du tout intégré et de la simplicité, et risque de séduire à la fois des développeurs et des Q&A un tant soit peu sensibles à la qualité intrinsèque d’une application.

Nous avons aimé :

  • L’expressivité des métriques qui identifient les URL d’invocation, les principaux composants (actions Spring MVC, composants métier, etc), les transactions et les accès SGBD avec les requêtes SQL.
  • La granularité macro qui est souvent plus facile à comprendre que les mesures ultra-détaillées que nous proposent les profilers java.

Notre souhait : l’intégration à l’environnement de développement et au code source de l’application en cliquant sur les graphes de Spring Insight.

Le screencast et la preview de tcServer Dev. se trouvent sur le blog de SpringSource.

Evènements de notre communauté en France et à l’étranger

Flex 4 chez les Tontons Flexeurs

Les tontons flexeurs, le rendez-vous incontournable des flexeurs et des autres, nous propose une nouvelle présentation qui portera sur les nouveautés de Flex 4.
Christophe Coenraets, évangéliste senior chez Adobe, nous présentera ainsi les nouveautés de LiveCycle Data Services 3, le Model-Driven Developpement avec FlashBuilder 4 et l’intégration de Flex avec Spring.
La présentation se déroulera le mardi 10 novembre de 14h à 16h. Les inscriptions se font comme d’habitude sur l’evenbrite.

4 commentaires

  • Espérons qu’il restera encore des employés chez SUN après les différents plans de licenciement, une fois que Oracle reprendra effectivement l’activité de SUN…

  • Le but pour Oracle c’est surtout de ne pas se mettre l’UE à dos…
    Je pense que « Un alignement entre Oracle Weblogic Server et Glassfish Enterprise Server » est une interprétation un peu libre du texte qui parle de « aligning common infrastructure components » plutôt que de fusion (!) des deux produits.
    Je trouve pour ma part l’information pour GlassFish très positive.

    -Alexis, fidèle au poste

  • Je ne suis pas sûr que le nombre d’offres d’emploi pour des développeurs soit signe qu’un langage reste à la pointe de l’innovation technologique. En effet, on trouve encore beaucoup d’offre d’emploi pour des développeur Cobol !!

  • Bonjour,
    Revue de Presse intéressante sur Apache POI 3.5 datée du 2 novembre 2009.
    Mais le site http://poi.apache.org/ annonce depuis le 15 Décembre 2009 la nouvelle version – POI 3.6 is now availables.

    Pas de rubrique sur jasperreports ? qui utilise deux exporters Excel : JExcelApiExporter et JRXlsExporter.

Laisser un commentaire