<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
xmlns:media="http://search.yahoo.com/mrss/"
> <channel><title>Blog Xebia France &#187; J2EE</title> <atom:link href="http://blog.xebia.fr/tag/j2ee/feed/" rel="self" type="application/rss+xml" /><link>http://blog.xebia.fr</link> <description>J2EE, Agilité et SOA</description> <lastBuildDate>Wed, 08 Feb 2012 09:23:16 +0000</lastBuildDate> <language>fr</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=</generator> <copyright>CC BY-NC-ND 2.0 http://creativecommons.org/licenses/by-nc-nd/2.0/fr/</copyright> <managingEditor>blog-france@xebia.com (Xebia France)</managingEditor> <webMaster>blog-france@xebia.com (Xebia France)</webMaster> <ttl>1440</ttl> <image> <url>http://blog.xebia.fr/videos/xebia-podcast.png</url><title>Blog Xebia France</title><link>http://blog.xebia.fr</link> <width>144</width> <height>144</height> </image> <itunes:new-feed-url>http://blog.xebia.fr/feed/podcast/</itunes:new-feed-url> <itunes:subtitle>Les podcasts de Xebia France vous permettent de suivre l&#039;actualité autour de Java, de l&#039;agilité, des technologies Web et bien d&#039;autres. Xebia France est une entreprise spécialisée dans les technologies Java et JEE en environnement agi[...]</itunes:subtitle> <itunes:summary>Les podcasts de Xebia France vous permettent de suivre l&#039;actualité autour de Java, de l&#039;agilité, des technologies Web et bien d&#039;autres. Xebia France est une entreprise spécialisée dans les technologies Java et JEE en environnement agile.</itunes:summary> <itunes:keywords>Xebia, Java, JEE, SOA, Agile, Méthodes, Agiles</itunes:keywords> <itunes:category text="Technology" /> <itunes:category text="Technology"> <itunes:category text="Software How-To" /> </itunes:category> <itunes:category text="Technology"> <itunes:category text="Tech News" /> </itunes:category> <itunes:author>Xebia France</itunes:author> <itunes:owner> <itunes:name>Xebia France</itunes:name> <itunes:email>blog-france@xebia.com</itunes:email> </itunes:owner> <itunes:block>no</itunes:block> <itunes:explicit>no</itunes:explicit> <itunes:image href="http://blog.xebia.fr/videos/xebia-podcast.png" /> <item><title>Jazoon&#8217;10 &#8211; Jour 2</title><link>http://blog.xebia.fr/2010/06/07/jazoon10-jour-2/</link> <comments>http://blog.xebia.fr/2010/06/07/jazoon10-jour-2/#comments</comments> <pubDate>Mon, 07 Jun 2010 12:57:07 +0000</pubDate> <dc:creator>Aurélien Maury</dc:creator> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[JavaFX]]></category> <category><![CDATA[jazoon]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=4877</guid> <description><![CDATA[Deuxième journée de la réunion annuelle des Java-holic européens. Le programme est chargé : Total cost of ownership Unleash your processor(s) What&#8217;s new in hibernate iPhone/Ipad development from Java perspective Harnessing the power of HTML5 Web Sockets to create scalable real-time applications GPars: Parallel programming concepts for the JVM in Groovy Cloud Computing with Scala [...]]]></description> <content:encoded><![CDATA[<p><img
style="margin: 1em 1em 1em 1em; float: right;" src="http://blog.xebia.fr/wp-content/uploads/2010/06/jazoon_10_peluche.jpg" alt="Jazoon 2010" /></p><p>Deuxième journée de la réunion annuelle des Java-holic européens. Le programme est chargé :</p><ul><li><a
href="http://blog.xebia.fr/2010/06/07/jazoon10-jour-2/#Totalcostofownership">Total cost of ownership</a></li><li><a
href="http://blog.xebia.fr/2010/06/07/jazoon10-jour-2/#Unleashyourprocessors">Unleash your processor(s)</a></li><li><a
href="http://blog.xebia.fr/2010/06/07/jazoon10-jour-2/#Whatsnewinhibernate">What&#8217;s new in hibernate</a></li><li><a
href="http://blog.xebia.fr/2010/06/07/jazoon10-jour-2/#IphoneiPaddevfromJavaperspecti">iPhone/Ipad development from Java perspective</a></li><li><a
href="http://blog.xebia.fr/2010/06/07/jazoon10-jour-2/#HarnessingthepowerofHTMLWebSoc">Harnessing the power of HTML5 Web Sockets to create scalable real-time applications</a></li><li><a
href="http://blog.xebia.fr/2010/06/07/jazoon10-jour-2/#GParsParallelprogrammingconcep">GPars: Parallel programming concepts for the JVM in Groovy</a></li><li><a
href="http://blog.xebia.fr/2010/06/07/jazoon10-jour-2/#CloudComputingwithScalaandGrid">Cloud Computing with Scala and GridGain</a></li><li><a
href="http://blog.xebia.fr/2010/06/07/jazoon10-jour-2/#HowJavapowerslargeonlineretail">How Java powers large online retail sites</a></li></ul><p>Suivez le guide &#8230;</p><h3><a
name="Totalcostofownership"></a>Total cost of ownership</h3><p>La keynote de la seconde journée est tenue par Ken Schwaber, le co-fondateur de Scrum. Il revient sur les bénéfices à tirer de Scrum. Le message n&#8217;est pas très neuf pour la communauté des agilistes mais il est toujours bon de se rappeler pourquoi nous essayons de changer les façons de faire. Dans un style très posé, il nous expose quelques axes pour inviter les spectateurs à s&#8217;améliorer.</p><ul><li>Les gens ne sont pas des ressources</li><li>Il est important de définir la notion de tâche &laquo;&nbsp;terminé&nbsp;&raquo; pour chaque projet (<em>Definition of Done</em>)</li></ul><p>Si votre définition de <em>Done</em> laisse de côté des points importants comme l&#8217;écriture de tests ou l&#8217;intégration aux autres composants, l&#8217;équipe accumule rapidement une grande quantité de tâches non réellement finies. Cette dette devra être prise en compte en mettant en place des sprints dédiés à la stabilisation. Cette solution est bien souvent beaucoup plus coûteuse que de correctement définir et de respecter la <code>definition of done</code> au fil des développements.</p><p>Il annonce également le lancement d&#8217;une formation de 5 jours spécialement adaptée aux développeurs destinés à travailler en équipe Scrum : <em>Professional Scrum Developper Program</em>.</p><h3><a
name="Unleashyourprocessors"></a>Unleash your processor(s)</h3><p><a
href="http://www.jroller.com/vaclav/" title="Vclav Pech" >Václav Pech</a> nous fait ensuite une présentation sur différents patterns de programmation concurrente. Selon lui, pratiquement aucune application ne profite des architectures multicore et celles qui en profitent ne le font que par hasard.<br
/> Václav présente ensuite un ensemble de patterns notamment :</p><ul><li><strong>Parallel Arrays</strong> qui permet d&#8217;effectuer des opérations comme du filtrage ou du calcul sur des éléments stockés dans une collection en parallèle. Tout ce qu&#8217;il y a à faire, c&#8217;est de définir les opérations qui seront appliquées à la collection. Ceci de facon simple sans manipuler de thread, ni gérer de moniteur transactionnel.</li></ul><pre class="brush: java; title: ; notranslate">
//create a thread pool and store the collection in a Parallel Array
final ForkJoinPool pool = new ForkJoinPool(2);
final ParallelArray people = ParallelArray.createFromCopy(friends, pool);
//Create a predicate for filtering
final Ops.Predicate aWoman = new Ops.Predicate() {
   public boolean op(final Person friend) {
      return !friend.isMale();
   }
};
//Create an operation to retrieve the name from an element
final Ops.Op retrieveName = new Ops.Op() {
   public Object op(final Person friend) {
      return friend.getName();
   }
};
//Perform filtering and mapping concurrently on all elements of the collection
final ParallelArray namesOfWomen =
   people.withFilter(aWoman).withMapping(retrieveName).all();
System.out.println(&quot;namesOfWomen = &quot; + namesOfWomen);
</pre><ul><li><strong>Fork and join</strong> A partir du JDK 7, une nouvelle API du package java.util.concurrency va permettre de définir des tâches et de gérer leur exécution. Le principe de base est de diviser les données à traiter en petites unités de travail et de traiter ces unités en parallèle. Les résultats obtenus en retour seront ensuite agrégés.</li></ul><p>Václav présente ensuite d&#8217;autres patterns tels que le <code>dataflow concurrency</code>, les <code>actors</code>, les <code>agents</code>, le principe de <code>Shared Mutable State</code> et de <code>Persistent data structures</code>. Ces patterns seront présentés plus en détail dans un futur article dédié à la programmation concurrente.</p><h3><a
name="Whatsnewinhibernate"></a>What&#8217;s new in hibernate</h3><p>Emmanuel Bernard présente les principales évolutions intégrées dans la dernière version d&#8217;Hibernate. Le but principal de la version 3.5 était d&#8217;implémenter la spécification JPA2. Il revient sur quelques fonctionnalités de la spécification. Notamment :</p><ul><li><strong>Packaging</strong></li></ul><p>Hibernate Annotations et Hibernate Entity Manager sont maintenant dans le même projet que Hibernate Core. Les releases sont maintenant toutes synchronisées, ce qui met fin à la complexe matrice de compatibilité. Les releases du projet d&#8217;audit et de gestion de version Envers seront également synchronisées avec le core.</p><ul><li><strong>Application de formule</strong></li></ul><p>Il est désormais possible d&#8217;appliquer des fonctions avant la lecture ou l&#8217;écriture dans une colonne par la base de données. Un des cas possibles peut être l&#8217;utilisation des fonctions d&#8217;encryption native d&#8217;un SGBD.</p><pre class="brush: xml; title: ; notranslate">
&lt;property name=&quot;password&quot;&gt;
   &lt;column name=&quot;PASSWORD&quot; not-null=&quot;true&quot;
      write=&quot;encrypt(?)&quot;
      read=&quot;decrypt(PASSWORD)&quot;/&gt;
&lt;/property&gt;
</pre><ul><li><strong>Fetch profile</strong></li></ul><p>Pour éviter de générer un trop grand nombre de requêtes, il est possible de charger un arbre d&#8217;entités lors du chargement par clé primaire. On paramètre alors dans le fichier de mapping la stratégie de chargement.</p><pre class="brush: xml; title: ; notranslate">
&lt;hibernate-mapping&gt;
   &lt;class name=&quot;Client&quot;&gt;
      &lt;set name=&quot;factures&quot; inverse=&quot;true&quot; fetch=&quot;join&quot;&gt;
         &lt;key column=&quot;client_id&quot;/&gt;
         &lt;one-to-many class=&quot;Facture&quot;/&gt;
      &lt;/set&gt;
   &lt;/class&gt;
&lt;/hibernate-mapping&gt;
</pre><p>La stratégie sera statique et appliquée que l&#8217;on charge les entités par la méthode <code>get</code>, les <code>Criteria</code> ou le chargement implicite durant la navigation à travers une association. Une des solutions était de créer un ensemble de méthodes, du type <code>loadCustomer</code>, <code>loadCustomerWithAddress</code>, <code>loadCustomerWithOrders</code>, et d&#8217;utiliser une requête HQL pour dynamiquement appliquer une stratégie de chargement (en HQL : <code>inner join fetch</code>). Mais ceci ne permet pas de définir des stratégies dynamiques pour les chargements implicites.</p><p>Hibernate propose maintenant une manière plus simple de gérer les stratégies de chargements. On peut désormais définir dans le fichier de mapping plusieurs stratégies pour une association.</p><pre class="brush: xml; title: ; notranslate">
&lt;hibernate-mapping&gt;
   &lt;class name=&quot;Client&quot;&gt;
      ...
      &lt;fetch-profile name=&quot;clientAvecFacture&quot;&gt;
         &lt;fetch association=&quot;factures&quot; style=&quot;join&quot;/&gt;
      &lt;/fetch-profile&gt;
   &lt;/class&gt;
&lt;/hibernate-mapping&gt;
</pre><p>et définir la stratégie à utiliser pour chacune des sessions avec la méthode suivante :</p><pre class="brush: java; title: ; notranslate">
Session session = ...;
session.enableFetchProfile( &quot;clientAvecFacture&quot; );
Client client = (Client) session.get( Client.class, clientId );
</pre><h3><a
name="IphoneiPaddevfromJavaperspecti"></a>iPhone/iPad dev from Java perspective</h3><p><a
href="http://twitter.com/ognenivanovski" title="Ognen Ivanovski" >Ognen Ivanovski</a>, de la société Netcetera, nous présente son retour d&#8217;expérience sur les développements pour l&#8217;iPhone (et donc pour l&#8217;iPad). Étant développeur Java à la base, il nous expose les écueils auxquels risquent de se heurter les développeurs Java en arrivant sur cette plateforme, ainsi que les points importants à garder en tête pour le design.</p><p>N&#8217;espérez donc pas voir apparaitre une méthode magique pour développer en Java pour l&#8217;iPhone. Comme Ognen l&#8217;a rappelé, Apple n&#8217;autorise dans AppStore que les applications <em>rédigées</em> en Objective-C. Il commence par un petit rappel sur l&#8217;environnement de développement sanctifié par Apple, à savoir : XCode, Interface Builder, iPhone Simulator et Instruments (pour le profiling).</p><p>Voici, d&#8217;après lui, les facteurs clés à garder en tête lors d&#8217;un développement pour cette plateforme :</p><ul><li><strong>Le hardware est limité, en mémoire comme en CPU :</strong> Cependant la performance est cruciale. Il faut donc designer ses applications pour la vitesse et les tester sur de vrais appareils. L&#8217;émulateur fourni dans le kit de développement ne rend pas compte des performances réelles. Pensez donc à gérer votre mémoire: ici, pas de Garbage Collector. Et si par hasard le SDK ne vous fourni pas ce que vous voulez, vous pouvez toujours embarquer des librairies en C pur.</li><li><strong>La résolution est différente :</strong> Là encore, un test sur un device réel ne saurait être remplacé par un test sur l&#8217;émulateur, des changements subtils peuvent impacter fortement l&#8217;effet obtenu, à cause de la taille et de la résolution de l&#8217;écran.</li><li><strong>Le mode d&#8217;utilisation change :</strong> En développement web on suppose l&#8217;utilisateur assis avec clavier, souris, etc. Mais en mobile, il sera plutôt en déplacement, ou dans un canapé avec l&#8217;iPad. Ceci doit être pris en compte dans le design. L&#8217;interface multitouch, la taille des doigts, etc., tous ces paramètres doivent être exploités intelligemment.</li><li><strong>Les barrières posées par Apple :</strong> Le <a
href="http://www.eff.org/files/20100302_iphone_dev_agr.pdf" title="iPhone Developer License Agreement" >iPhone Developer License Agreement</a> est fluctuant et contraignant. Il existe une constante inquiétude de la censure quand on développe. La médaille de ce revers est que, si votre application passe la censure, les utilisateurs feront confiance à l&#8217;AppStore et n&#8217;auront aucune réticence à l&#8217;installer sur leur iPhone/iPad.</li><li><strong>Chaque application est partie intégrante de l&#8217;appareil :</strong> D&#8217;après les retours d &#8216;Apple, les utilisateurs d&#8217;iPhones ne se servent que marginalement de la fonction de <em>recherche</em>. Ils trouvent une application qui leur récolte et présente les données d&#8217;un domaine particulier. Il faut donc penser une application comme partie intégrante du device physique et travailler au mieux son intégration.</li></ul><p>Il enchaîne sur un rapide exposé des API disponibles, puis met en garde son auditoire sur les méfaits du <em>hype</em>. En effet, le positionnement marketing peut amener à se lancer dans un développement iPhone mais il faut faire les choses bien. Une application médiocre, même si elle offre une visibilité sur l&#8217;AppStore, sera mal notée par les utilisateurs et occasionnera donc une perte d&#8217;image.</p><p>Une présentation avec très peu de technique mais qui donne une bonne idée des contraintes à considérer pour ne pas perdre son temps lors d&#8217;un premier développement.</p><h3><a
name="HarnessingthepowerofHTMLWebSoc"></a>Harnessing the power of HTML5 Web Sockets to create scalable real-time applications</h3><p>Peter Lubbers, de chez Kaazing Corporation, nous présente les avantages à tirer d&#8217;une communication full-duplex entre navigateurs et serveurs web. Il commence par rappeler les besoins de réactivité des pages web et les problèmes des solutions actuelles :</p><ul><li><strong>polling :</strong> Basé sur des requêtes AJAX périodiques pour récupérer les données. Le martelage du serveur par des requêtes AJAX en provenance de tous les clients connectés pose des problèmes de charge et d&#8217;occupation de la bande passante (chaque requête arrive avec ses headers HTTP). De plus cette solution ne fait que fournir du <em>presque temps réel</em> et scale très mal.</li><li><strong>long polling :</strong> Technique des architectures Comet. Cela permet d&#8217;éviter de marteler le réseau pendant les périodes où il n&#8217;y a pas de données à fournir, mais dès que le flux est continu, la fréquence des polling augmente et revient au même que le polling classique.</li><li><strong>streaming :</strong> fonctionne bien mais la conservation d&#8217;une connexion ouverte trop longtemps peut poser des problèmes avec les proxies et firewall sur la route.</li></ul><p>Peter enchaîne sur une démonstration de Comet et de son occupation du réseau en capturant les trames réseau avec WireShark, et nous présente enfin la solution d&#8217;avenir : les WebSockets de HTML5.</p><p>Nous avions parlé il y a quelques temps des <a
href="http://blog.xebia.fr/2010/03/18/html5-les-api-javascript/#WebSocket" title="API Javascripts qui y sont lies" >API Javascripts qui y sont liées</a>. Un autre point mis en avant est qu&#8217;une fois établi, les communications passant par une WebSocket se passent de header HTTP (871 octet en moyenne) et sont remplacées par 2 octets qui encadrent chaque message, diminuant d&#8217;autant l&#8217;occupation de la bande passante.</p><p>Il détaille un peu l&#8217;aspect sécurité de la chose, les WebSockets sont également disponibles en version sécurisé, basé sur TLS (comme HTTPS) et s&#8217;établissent simplement par une poignée de main (<a
href="http://en.wikipedia.org/wiki/Handshaking" title="Handshaking" >Handshaking</a>) sur HTTP. Actuellement les WebSockets du coté browser ne sont supportés que par Chrome 4.0+, et les <em>nightly builds</em> de WebKit. Opera et Firefox promettent de le supporter bientôt.</p><p>Il termine par la démonstration d&#8217;une application de Poker, avec WebSockets liés à un <a
href="http://www.kaazing.org" title="Kaazing Gateway" >Kaazing Gateway</a> et nous montre les trames réseau.</p><p>On peut regretter tout de même que Peter ne fasse aucun autre commentaire sur la partie serveur que d&#8217;évoquer le Kaazing WebSockets Gateway. A aucun moment la spécification Servlet 3.0, ni GlassFish, ni Jetty, ne sont évoqués.</p><h3><a
name="GParsParallelprogrammingconcep"></a>GPars: Parallel programming concepts for the JVM in Groovy</h3><p>Dans une session presque purement technique, <a
href="http://twitter.com/mittie" title="Dierk Knig" >Dierk König</a> nous présente la librairie GPars, destinée à apporter la facilité à la gestion de la concurrence dans Groovy. Il commence par un rappel reprenant les concepts déjà exposés par Václav Pech dans sa session du matin, puis enchaîne sur une session de <em>live coding</em> pour démontrer la simplicité d&#8217;usage de la librairie.</p><p>Parmi les exemples codés devant nos yeux ébahis, on trouve notamment :</p><ul><li>la <a
href="http://gpars.codehaus.org/Parallelizer" title="paralllisation doprations" >parallélisation d&#8217;opérations</a> sur des collections</li><li>les <a
href="http://gpars.codehaus.org/Asynchronizer" title="oprations asynchrones" >opérations asynchrones</a> avec pool de thread</li><li>les <a
href="http://gpars.codehaus.org/Actor" title="Actors" >Actors</a> inspiré de Scala</li><li>les <a
href="http://gpars.codehaus.org/Agent" title="Agents" >Agents</a> inspirés de Clojure, destinés à protéger des ressources non <em>thread-safe</em></li></ul><p>Il est pratiquement impossible de coucher un live-coding dans un article, mais la vidéo devrait sortir en même temps que les autres tournées dans la salle 5 de Jazoon. Vous les retrouverez dans la revue de presse, dès leur sortie.</p><p>A noter qu&#8217;un problème avec son IDE favori l&#8217;a forcé à utiliser uniquement la Groovy Console, exercice mené donc sans filet, et avec brio.</p><h3><a
name="CloudComputingwithScalaandGrid"></a>Cloud Computing with Scala and GridGain</h3><p>Nikita Ivanov, de chez GridGain Technologies, vient nous exposer les travaux de sa société autour de Scala. Il commence par nous rappeler le contexte en revenant de façon synthétique sur certaines définitions :</p><ul><li><strong>Grid :</strong> 2 ordinateurs ou plus fonctionnant en parallèle sur des parties distinctes d&#8217;une tâche commune</li><li><strong>Grid Computing :</strong> Grid de calcul et data Grid fonctionnant de concert</li><li><strong>Cloud :</strong> Virtualisation de Data Center</li><li><strong>Cloud Computing :</strong> Cloud et Grid Computing</li></ul><p>GridGain Technologies a choisi d&#8217;adopter un langage plus simple pour exploiter leur architecture de Cloud Computing. Nikita nous explique que Groovy a été écarté à cause de ses performances, que JRuby a été écarté pour des problèmes d&#8217;intégrations et que Scala remplissait tous les critères de choix de GridGain :</p><ul><li>Scalable</li><li>Post fonctionnel</li><li>Performances égales à Java</li><li>Statiquement typé</li><li>Pleinement compatible Java</li></ul><p>Ils ont donc développé un DSL nommé <a
href="http://www.jroller.com/nivanov/entry/introducing_scalar_scala_based_dsl" title="ScalaR" >ScalaR</a>, qui permet de créer des programmes à lancer dans un Cloud GridGain en quelques lignes. S&#8217;en suit une nouvelle session de <em>live coding</em>, comparant l&#8217;approche traditionnelle de l&#8217;API GridGain, et l&#8217;utilisation de ScalaR. On devine assez bien quelle version a remporté la manche. DSL intéressant, dommage que le manque de temps a forcé Nikita à écourter un peu la démonstration.</p><h3><a
name="HowJavapowerslargeonlineretail"></a>How Java powers large online retail sites</h3><p>Notre journée se conclut par une présentation de Robert Brazile, CTO chez ATG, qui rend hommage à l&#8217;apport des technologies Java au monde du commerce en ligne. Il revient sur la place grandissante de la vente sur internet dans l&#8217;ensemble des ventes sur le territoire américain, puis nous expose les problématiques générales des sociétés de vente :</p><ul><li><strong>haute disponibilité :</strong> les sites de vente en ligne doivent rester disponibles malgré les pics d&#8217;affluence. Les travaux sur le load balancing ont beaucoup apporté.</li><li><strong>la vitesse avant tout :</strong> bien plus que le design graphique, c&#8217;est la performance d&#8217;une application qui est cruciale. Un peu trop d&#8217;attente, trop de clic à faire, et la vente est perdu.</li><li><strong>la couche de présentation séparée :</strong> pour pouvoir déléguer les manipulations de présentation et de gestion des backend à des équipes séparées. Cela évite que les développeurs soient pris par des tâches &laquo;&nbsp;subalternes&nbsp;&raquo; alors qu&#8217;ils doivent réfléchir à des problèmes complexes comme la charge ou la récupération des données.</li><li><strong>éviter de payer l&#8217;infrastructure nécessaire aux pics de charge pendant les creux :</strong> grâce aux avancées dans le Cloud computing, les vendeurs en ligne ont pu faire beaucoup d&#8217;économies.</li></ul><p>Robert a multiplié les anecdotes sur les ratés de l&#8217;automatisation, comme ce moteur de recherche qui a mal réglé son moteur de suggestion :</p><p>search for : abortion => Did you mean <em>adoption</em> ?<br
/> <em>(trad. : rechercher : avortement => Vous voulez dire adoption ?)</em></p><p>Son expérience encyclopédique du monde des systèmes d&#8217;informations pour les sites de vente en ligne lui a servi à illustrer à quel point le langage Java a permis la percée des techniques de vente en lignes modernes. Il prévoit d&#8217;ailleurs que cela continue dans les années à venir avec certains sujets qui animent déjà la communauté Java :</p><ul><li><strong>Virtualisation et Cloud Computing :</strong> pour toujours plus de scalabilité</li><li><strong>Bases de données NoSQL :</strong> pour un meilleur accès aux données, chaque archi répondant à des besoins spécifiques</li><li><strong>Scripting :</strong> PHP, Ruby, Groovy et autres, pour des modifications rapides sur les sites publics</li><li><strong>Frameworks :</strong> Rails, Grails, Lift et autres, pour concevoir et déployer rapidement des sites vitrines à faible durée de vie</li><li><strong>Parallélisme et concurence :</strong> Pour exploiter de façon efficace les architecture multi-core et le Cloud</li></ul><p>Java est mature donc, mais certainement pas proche de la retraite.</p><h3><a
name="Epilogue"></a>Epilogue</h3><p>Nous avons dû choisir entre les sessions Jazoon Rookie et notre avion. Vous devinez sûrement ce que nous avons décidé <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Dans l&#8217;ensemble, Jazoon est toujours une conférence très intéressante, les orateurs sont de très bon niveau et très accessibles pour discuter en dehors des présentations.</p><p>Un grand merci aux organisateurs et aux orateurs. Nous attendons avec impatience les vidéos.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/06/07/jazoon10-jour-2/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Jazoon&#8217;10 &#8211; Jour 1</title><link>http://blog.xebia.fr/2010/06/04/jazoon10-jour-1/</link> <comments>http://blog.xebia.fr/2010/06/04/jazoon10-jour-1/#comments</comments> <pubDate>Fri, 04 Jun 2010 08:07:06 +0000</pubDate> <dc:creator>Aurélien Maury</dc:creator> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[JavaFX]]></category> <category><![CDATA[jazoon]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=4860</guid> <description><![CDATA[Comme nous vous l&#8217;avions annoncé, Xebia était présent aux deux premières journées de la conférence annuelle Jazoon. Des soucis d&#8217;ubiquité nous ont évidemment empêché de suivre toutes les sessions, tenues dans 4 salles différentes en même temps. Nous avons dû faire des choix, parfois difficiles, pour vous relater le meilleur de cet évènement. Premières observations [...]]]></description> <content:encoded><![CDATA[<p><img
style="margin: 1em 1em 1em 1em; float: right;" src="http://blog.xebia.fr/wp-content/uploads/2010/06/welcome_jazoon_10.jpg" alt="Jazoon 2010" /><br
/> Comme nous vous l&#8217;avions annoncé, Xebia était présent aux deux premières journées de la conférence annuelle Jazoon. Des soucis d&#8217;ubiquité nous ont évidemment empêché de suivre toutes les sessions, tenues dans 4 salles différentes en même temps. Nous avons dû faire des choix, parfois difficiles, pour vous relater le meilleur de cet évènement.</p><p>Premières observations :</p><ul><li>légère baisse d&#8217;affluence par rapport à l&#8217;année dernière,</li><li>forte présence de JavaFX avec pas moins de six sessions, ainsi que d&#8217;OSGi,</li><li>très bonne ambiance et organisation,</li><li>excellents speakers, merci à eux.</li></ul><p>Nous allons vous rendre compte des sessions suivantes :</p><ul><li><a
href="http://blog.xebia.fr/2010/06/04/jazoon10-jour-1/#JavaSEandJavaFXTheRoadAhead">Java SE and JavaFX: The Road Ahead</a></li><li><a
href="http://blog.xebia.fr/2010/06/04/jazoon10-jour-1/#ClientServerwithJavaandFlex">Client / Server 2.0 with Java and Flex</a></li><li><a
href="http://blog.xebia.fr/2010/06/04/jazoon10-jour-1/#Frameworksandsecurityhowtheyki">Frameworks and security : how they kill your security scanning</a></li><li><a
href="http://blog.xebia.fr/2010/06/04/jazoon10-jour-1/#Objectofvalue">Object of value</a></li><li><a
href="http://blog.xebia.fr/2010/06/04/jazoon10-jour-1/#Constructiontechniquesfordomai">Construction techniques for domain specific languages</a></li><li><a
href="http://blog.xebia.fr/2010/06/04/jazoon10-jour-1/#Servlet">Servlet 3.0</a></li><li><a
href="http://blog.xebia.fr/2010/06/04/jazoon10-jour-1/#faitsquetoutprogrammeurdevrait">97 things every programmer should know</a></li></ul><h3><a
name="JavaSEandJavaFXTheRoadAhead"></a>Java SE and JavaFX: The Road Ahead</h3><p>Jazoon 2010 commence par une keynote de Danny Coward sur l&#8217;évolution du langage java. Danny revient sur l&#8217;évolution de Java depuis le début du langage (Java a 15 ans depuis le 24 mai). Il y a désormais plus de 7 millions de développeurs Java à travers la planète, près d&#8217;un milliard de JVM déployées, et plus de 2 milliards de téléphones mobiles avec une JME.</p><p>Il nous montre également une <a
href="http://www.youtube.com/watch?v=Ahg8OBYixL0" title="vido" >vidéo</a> de 1995, avec James Gosling présentant un prototype de PDA avec des interactions proches des smartphones récents, notamment la navigation dans les menus, l&#8217;écran tactile, un véritable iPhone préhistorique.</p><p>Danny insiste fortement sur l&#8217;effort de modularisation de la JVM, illustré par le projet <a
href="http://blogs.sun.com/theplanetarium/entry/project_jigsaw_modularizing_jdk_7" title="Jigsaw" >Jigsaw</a>, pour améliorer la taille de la JVM et sa rapidité de démarrage. Il nous parle également de la gestion du parallélisme avec le récent travail sur le garbage collector G1, mais aussi de l&#8217;API fork/join et ParallelArray sur laquelle nous reviendrons en détails.</p><p>Danny nous parle également du grand nombre de langages qui tournent sur la JVM : près de 200. Il met en lumière le projet <a
href="http://openjdk.java.net/projects/mlvm/" title="Da Vinci Machine" >Da Vinci Machine</a>, destiné à fournir des optimisations bas niveau aux langages tiers pour obtenir des performances proches de Java sur tous les langages tournant sur la JVM.</p><p>Puis viennent toutes les nouveautés du langage attendues prochainement :</p><ul><li>nouvelles annotations,</li><li>amélioration de l&#8217;<a
href="http://mail.openjdk.java.net/pipermail/coin-dev/2009-February/000009.html" title="infrence de type" >inférence de type</a> pour les Generics (mieux connu sous le nom de &#8216;diamond operator&#8217;)</li><li>possibilité de catcher plusieurs exceptions à la fois,</li><li>supports des chaines de caractères pour les commandes switch/case,</li><li>support des closures à travers le projet <a
href="http://openjdk.java.net/projects/lambda/" title="Lambda" >Lambda</a>.</li></ul><p>Danny consacre également beaucoup de temps pour nous parler de <a
href="http://javafx.com/" title="JavaFX" >JavaFX</a>. Il a tenu à rappeler que JavaFX est bien vivant, la preuve en est qu&#8217;il y a eu 4 releases en 18 mois. Parmi les nouveautés de la version 1.3 on peut noter :</p><ul><li>l&#8217;arrivée de nouveaux composants graphiques plus scalables,</li><li>la nouvelle stack graphique nommée Prism,</li><li>des optimisations : il annonce un démarrage 2 à 3 fois plus rapide sur un Java SE 6 update 18,</li><li>JavaFX TV : annoncé comme nouveauté mais déjà présent dans la version 1.2, avec son émulateur de TV.</li></ul><p>Et pour finir cette keynote de lancement, il nous fait la démonstration d&#8217;une partie du site des <a
href="http://www.vancouver2010.com/olympic-medals/geo-view/" title="JO de Vancouver 2010" >JO de Vancouver 2010</a>, écrite avec JavaFX.</p><p>Si l&#8217;on se replonge dans les sessions de l&#8217;année dernière, il est troublant de voir que les sujets abordés dans cette keynote sont exactement les mêmes que ceux abordés par James Gosling et Danny Coward l&#8217;an passé, au même endroit (si l&#8217;on omet l&#8217;omniprésence de JEE6 en 2009). Si nous étions taquins, on pourrait presque dire que cette keynote d&#8217;ouverture est un copier / coller de celle de l&#8217;année dernière. Et si nous étions  vraiment irrévérencieux, nous dirions que depuis un an, Sun / Oracle n&#8217;a pas grand chose à annoncer concernant Java.</p><h3><a
name="ClientServerwithJavaandFlex"></a>Client / Server 2.0 with Java and Flex</h3><p><a
href="http://www.jamesward.com/" title="James Ward" >James Ward</a> nous présente les interactions entre le monde Flex et le monde Java. James revient sur toutes les méthodes de communication, d&#8217;une jsp renvoyant du contenu en xml, en passant par les appels SOAP, jusqu&#8217;à l&#8217;utilisation des annotations fournies dans spring-blazeds.</p><p>L&#8217;annotation <code>@RemotingDestination</code> permet d&#8217;exposer automatiquement un service Java vers le monde Flex en utilisant le protocole AMF.</p><p>Il insiste également sur le coût du parsing de chacun des formats. AMF est peu coûteux en CPU et en mémoire comparé au parseur XML. Ce point peut être important dans le cadre de clients Flash sur mobile, ne possédant pas la même puissance de calcul et de mémoire qu&#8217;un desktop. Pour conclure, James nous présente Flash sur un téléphone Android.</p><h3><a
name="Frameworksandsecurityhowtheyki"></a>Frameworks and security : how they kill your security scanning</h3><p>Christian Hang, de chez Armorize Technologies, nous fait part de son point de vue sur les problèmes d&#8217;audit de sécurité posés par l&#8217;utilisation des frameworks. Il commence par un rappel assez complet sur la sécurité en général et les méthodes de détection de failles :</p><ul><li>black box testing : simulation d&#8217;attaques extérieures</li><li>white box testing : analyse statique de code pour trouver des failles potentielles (ou SCA : Static Code Analysis)</li><li>analyse dynamique : mise en place d&#8217;agents ou de moniteurs sur une application en fonctionnement pour tracer les failles</li></ul><p>Il expose rapidement les risques de détection de faux positifs et faux négatifs et leurs conséquences avant d&#8217;approfondir sur l&#8217;analyse statique de code et ses limites. C&#8217;est là qu&#8217;arrivent les frameworks et le défi lancé aux outils de SCA. En effet, la forte utilisation de fichiers configuration casse la chaine d&#8217;invocation que tentent de suivre les outils de SCA. Comme chaque framework possède ses propres normes de configuration, il est très complexe de poser une méthode générique. De plus comme les frameworks sont des librairies tierces, la chaine d&#8217;invocation va se perdre au sein d&#8217;un jar et oblige à inspecter le framework en lui-même et non l&#8217;application seule. Il nous fait la démonstration de son propos avec le déroulement d&#8217;une requête dans Struts.</p><p>Christian termine en exposant les solutions qu&#8217;il entrevoit à ces problèmes, à savoir la génération de code source &#8216;glue&#8217;, basée sur les fichiers de configuration, qui permette aux outils actuels de SCA de continuer à suivre la chaine d&#8217;invocation jusqu&#8217;au bout. Ce code &#8216;glue&#8217; serait injecté avant le passage de l&#8217;analyse de code et évidemment pas committé sur l&#8217;application.</p><p>Avec ses propositions, Christian nous ouvre de nouvelles perspectives d&#8217;améliorations pour les outils de SCA. Il y a du chemin à faire mais le gain en détection automatique de failles est potentiellement énorme.</p><h3><a
name="Objectofvalue"></a>Object of value</h3><p>Première présentation de la journée pour Kevlin Henney. Il revient sur le concept de Value Object en insistant beaucoup sur la différence fondamentale qui existe entre une Valeur et son implémentation.</p><p>L&#8217;exemple le plus parlant qu&#8217;il donne est celui d&#8217;un md5 de fichier. Pour être manipulé, nous aurons sûrement tendance à le stocker dans un <code>String</code>, mais fondamentalement, ce n&#8217;est pas une quelconque chaîne de caractères, c&#8217;est un <code>MD5</code> qu&#8217;on souhaite manipuler. Ce qui devrait se traduire par la création d&#8217;un Value Object <code>MD5</code>.</p><p>Pour un rappel sur ce concept, vous pouvez vous pencher sur <a
href="http://blog.abdennebi.com/2007/03/le-value-object.html" title="ce blog" >ce blog</a>.</p><p>Kevlin Henney nous invite à réfléchir à la meilleure façon de manipuler des Valeurs dans nos programmes et non un énorme assemblage de String et de numériques.</p><p>Nous reparlerons prochainement de ses idées sur la question.</p><h3><a
name="Constructiontechniquesfordomai"></a>Construction techniques for domain specific languages</h3><p><a
href="http://www.nealford.com/my/bio.htm" title="Neal Ford" >Neal Ford</a>, de ThoughtWorks, nous parle de l&#8217;élaboration de <a
href="http://en.wikipedia.org/wiki/Domain-specific_language" title="DSL" >DSL</a> et des outils les plus adaptés à cela. Après un rappel sur les motivations de l&#8217;écriture de DSL et la différence fondamentale entre une API et un DSL, il nous livre ses cinq clés pour l&#8217;élaboration de DSL :</p><ul><li>langage de programmation</li><li>langage naturel, proche d&#8217;un langage oral</li><li>focalisé sur un aspect particulier du domaine</li><li>expressivité limitée</li><li>ne doit pas être <a
href="http://fr.wikipedia.org/wiki/Turing-complet" title="Turingcomplet" >Turing-complet</a></li></ul><p>Il tente alors une approche des principes exposés en Java, code à l&#8217;appui. De son point de vue, il n&#8217;est pas possible de réaliser de vrais DSL en Java pur. Ce qui s&#8217;en rapproche le plus est le method chaining, qui consiste à retourner <code>this</code> à la fin de chaque méthode pour pouvoir enchainer les appels. Un bon exemple illustrant ce principe est l&#8217;API Criteria d&#8217;Hibernate :</p><pre class="brush: java; title: ; notranslate">
List cats = sess.createCriteria(Cat.class)
    .add( Restrictions.like(&quot;name&quot;, &quot;Fritz%&quot;) )
    .add( Restrictions.between(&quot;weight&quot;, minWeight, maxWeight) )
    .list();
</pre><p>Puis il passe au langage Groovy, qui lui semble bien plus adapté que Java pour ce cas de figure. Certains aspects de Groovy facilitent la tâche :</p><ul><li>le typage dynamique</li><li>les closures</li><li>2 techniques de classes ouvertes : les <a
href="http://communitymapbuilder.osgeo.org/display/GROOVY/Groovy+Categories" title="Categories" >Categories</a>, et les <a
href="http://groovy.codehaus.org/api/groovy/lang/MetaClass.html" title="MetaClasses" >MetaClasses</a></li></ul><p>Ce qui amène Neal a parler de EasyB, projet codé en Groovy pour rédiger des spécifications en <a
href="http://fr.wikipedia.org/wiki/Behavior_Driven_Development" title="BDD" >BDD</a>, de la forme :</p><pre class="brush: java; title: ; notranslate">
given &quot;an invalid zip code&quot;, {
  invalidzipcode = &quot;221o1&quot;
}
and &quot;given the zipcodevalidator is initialized&quot;, {
  zipvalidate = new ZipCodeValidator()
}
when &quot;validate is invoked with the invalid zip code&quot;, {
  value = zipvalidate.validate(invalidzipcode)
}
then &quot;the validator instance should return false&quot;, {
  value.shouldBe false
}
</pre><p>EasyB étant basé sur RSpec, un projet BDD pour Ruby, Neal enchaîne naturellement sur les avantages de ce langage pour la rédaction de DSL, à savoir :</p><ul><li>classes ouvertes</li><li>aliasing de méthodes</li><li>polishing, méthodes de nettoyage de code &#8216;presque&#8217; Ruby en &#8216;vrai&#8217; Ruby.</li></ul><p>Pour information, il est tout à fait possible de réaliser ses DSL en Ruby et de les faire exécuter en Java, grâce à <a
href="http://jruby.org/" title="JRuby" >JRuby</a>. Neal nous livre donc son choix pour les DSL : Ruby. Et il termine sa présentation en rappelant les éléments indispensables à conserver en tête lors de la rédaction de DSL :</p><ul><li>c&#8217;est un langage de programmation limité à un aspect du domaine.</li><li>construire par composition et non par élaboration : il vaut mieux faire beaucoup d&#8217;opérateurs simples qu&#8217;on composera en utilisant le DSL.</li><li>démarrer par la fin : il faut poser la syntaxe que l&#8217;on souhaite obtenir dès le début et créer le DSL de façon à respecter cette syntaxe.</li><li>évolution, pas révolution : un DSL se construit petit à petit, il ne faut pas espérer penser tous les opérateurs dès le début, les besoins apparaitront à l&#8217;usage.</li></ul><h3><a
name="Servlet"></a>Servlet 3.0</h3><p>Ravij Mordani présente la spécification Servlet 3.0, introduite dans la plateforme JEE6. Il nous présente les améliorations selon quatre axes qui reflètent le nouveau visage des Servlets.</p><h4><a
name="Facilitdedveloppement"></a>Facilité de développement</h4><p>Profite des améliorations de Java 5, comme les annotations.<br
/> On peut directement annoter une servlet plutôt que de devoir la configurer dans le fichier web.xml. Le très verbeux</p><pre class="brush: xml; title: ; notranslate">
&lt;servlet&gt;
   &lt;servlet-class&gt;com.servlet.HelloWorldServlet&lt;/servlet-class&gt;
   &lt;servlet-name&gt;HelloWorld&lt;/servlet-name&gt;
&lt;/servlet&gt;
&lt;servlet-mapping&gt;
   &lt;servlet-name&gt;HelloWorld&lt;/servlet-name&gt;
   &lt;url-pattern&gt;/hello-world&lt;/url-pattern&gt;
&lt;/servlet-mapping&gt;
</pre><p>devient donc</p><pre class="brush: java; title: ; notranslate">
@WebServlet(urlPatterns=&quot;/hello-world&quot;)
public class HelloWorldServlet extends HttpServlet
</pre><p>On notera qu&#8217;il est toujours obligatoire d&#8217;étendre <code>HttpServlet</code> et de fournir une implémentation aux méthodes <code>doGet</code>, <code>doPost</code>, etc.</p><p>De la même manière, on peut définir des <code>Filter</code> ou des <code>ContextListener</code> directement par annotations. Le fichier de configuration web.xml devient optionnel, les annotations suffisent. Si toutefois vous le voulez, vous pouvez écrire un fichier web.xml, qui surchargera alors les directives des annotations.</p><p>La configuration peut également être faite de façon programmatique, grâce à une nouvelle API, mais uniquement au chargement du contexte.</p><pre class="brush: java; title: ; notranslate">
context.addServlet(String servletName)
context.addServlet(String className)
context.addServlet(Class&lt;?&gt; servletClass)
context.addServlet(Servlet servlet)
...
</pre><h4><a
name="Pluggabilit"></a>Pluggabilité</h4><p>La notion de web-fragment fournit un moyen de partitionner le descripteur de déploiement. On peut directement fournir de la configuration dans un jar, en plaçant un fichier nommé web-fragment.xml dans META-INF. De la même manière on peut intégrer des JSP dans les jars dans le répertoire META-INF/resources/.</p><p>La notion de plug-in de container apparait également. Elle est déjà utilisée notamment par les implémentations de référence JSF (Mojora) et JAX-RS (Jersey).</p><h4><a
name="Excutionasynchrone"></a>Exécution asynchrone</h4><p>L&#8217;exécution asynchrone de servlet permet de s&#8217;affranchir du pattern <em>Thread by request</em>. Les requêtes demandant un traitement long au back-end, telles que des requêtes bases de données couteuses ou les appels à des systèmes externes de type webservice, peuvent désormais être facilement exécutées de manière asynchrone. Cela permet de rendre le thread disponible pour le traitement des autres requêtes.<br
/> Cette fonctionnalité est également très utile pour le développement de fonctionnalités poussant des données vers le client. Le thread n&#8217;est plus en permanence bloqué pour un client, mais uniquement lors de l&#8217;arrivée d&#8217;un évènement.<br
/> Pour que le mode asynchrone fonctionne, il faut que toute la chaîne de traitement soit effectivement compatible (filtres, servlets&#8230;).</p><h4><a
name="Scurit"></a>Sécurité</h4><p>Un ensemble d&#8217;annotations permet désormais de gérer le contrôle d&#8217;accès à une servlet. On peut également obliger l&#8217;utilisation d&#8217;un protocole sécurisé (HTTPS) pour l&#8217;appel à la servlet. Les 4 annotations suivantes : <code>@DenyAll</code>, <code>@PermitAll</code>, <code>@RolesAllowed</code>, <code>@TransportProtected</code> pourront être utilisées sur les méthodes traitant les requêtes dans <code>HttpServlet</code> (<code>doGet</code>, <code>doPost</code> et les autres) ou bien directement sur la classe.</p><pre class="brush: java; title: ; notranslate">
@WebServlet(urlPatterns=&quot;/secure/hello-world&quot;)
@RolesAllowed(&quot;authentified&quot;)
@TransportProtected
public class HelloWorldServlet extends HttpServlet
</pre><p>Il est aussi possible d&#8217;implémenter directement la méthode d&#8217;authentification <code>HttpServletRequest.login(String username, String password)</code>;</p><h3><a
name="faitsquetoutprogrammeurdevrait"></a>97 faits que tout programmeur devrait connaître</h3><p>Pour clore la journée, tout le monde se regroupe dans la salle 5 (la plus grande) pour écouter <a
href="http://www.two-sdg.demon.co.uk/curbralan/kevlin.htm" title="Kevlin Henney" >Kevlin Henney</a> présenter quelques conseils extraits du livre publié par O&#8217;Reilly <a
href="http://programmer.97things.oreilly.com/wiki/index.php/Contributions_Appearing_in_the_Book" title="97 things every programmer should know" >97 things every programmer should know</a></p><p>Le livre étant très conséquent, il a choisi de se focaliser sur :</p><ul><li>Apprenez à estimer : <a
href="http://programmer.97things.oreilly.com/wiki/index.php/Learn_to_Estimate" title="Learn to estimate" >Learn to estimate</a></li><li>Ne commentez que ce que le code ne dit pas : <a
href="http://programmer.97things.oreilly.com/wiki/index.php/Comment_Only_What_the_Code_Cannot_Say" title="Comment only What the code cannot say" >Comment only What the code cannot say</a></li><li>Encaspulez un comportement, pas seulement un état : <a
href="http://programmer.97things.oreilly.com/wiki/index.php/Encapsulate_Behavior%2C_not_Just_State" title="Encapsulate behavior not just state" >Encapsulate behavior not just state</a></li><li>La règle du boyscout : <a
href="http://programmer.97things.oreilly.com/wiki/index.php/The_Boy_Scout_Rule" title="The boy scout rule" >The boy scout rule</a> (Try to leave this world a litte better than you found it&#8230;)</li><li>Le test est la rigueur professionnelle du développement logiciel : <a
href="http://programmer.97things.oreilly.com/wiki/index.php/Testing_Is_the_Engineering_Rigor_of_Software_Development" title="Testing is the Engineering rigor of software development" >Testing is the Engineering rigor of software development</a></li><li>Écrivez des tests accessibles aux autres  : <a
href="http://programmer.97things.oreilly.com/wiki/index.php/Write_Tests_for_People" title="Write test for people" >Write test for people</a></li></ul><p>Les anecdotes et la verve de Kevlin nous font passer un très bon moment, avant de nous rendre au Jazoon Networking Event, où tous les participants peuvent souffler un peu autour d&#8217;un verre, partager leurs impressions sur les différentes sessions de la journée, ou discuter avec les speakers.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/06/04/jazoon10-jour-1/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Kirk Pepperdine : Java Performance Tuning</title><link>http://blog.xebia.fr/2010/05/04/kirk-pepperdine-java-performance-tuning-2/</link> <comments>http://blog.xebia.fr/2010/05/04/kirk-pepperdine-java-performance-tuning-2/#comments</comments> <pubDate>Tue, 04 May 2010 09:24:40 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Performance]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[JEE]]></category> <category><![CDATA[optimisation]]></category> <category><![CDATA[tuning]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=4546</guid> <description><![CDATA[Xebia-training a le plaisir d’accueillir Kirk Pepperdine, un référent de la communauté Java EE pour une formation d’optimisation des performances Java EE (Java performance tuning) les 7, 8, 9 et 10 juin dans nos locaux. Cette formation approfondie de 4 jours vous permettra d’obtenir les compétences nécessaires pour optimiser la performance de vos applications Java. [...]]]></description> <content:encoded><![CDATA[<p><a
href="http://training.xebia.fr">Xebia-training</a> a le plaisir d’accueillir Kirk Pepperdine, un référent de la communauté Java EE pour une formation d’optimisation des performances Java EE <em>(Java performance tuning)</em> les 7, 8, 9 et 10 juin dans nos locaux.</p><p>Cette formation approfondie de 4 jours vous permettra d’obtenir les compétences nécessaires pour optimiser la performance de vos applications Java. Vous aborderez pendant cette formation tous les aspects de la performance : l’outillage nécessaire, les méthodologies à appliquer, les concepts d’architecture sous jacents à la performance, les meilleures pratiques, le benchmarking et la gestion de mémoire.</p><p>A l’issue de cette formation, vous serez en mesure :</p><ul><li>D’identifier rapidement et régler les problèmes de performance de vos applications.</li><li>D’identifier et résoudre des problèmes de fuite mémoire en quelques heures.</li><li>D’isoler des problèmes classiques et d’éviter de s’engager dans des plans d’actions couteux et inefficaces.</li><li>D’identifier des problèmes de performance avant qu’ils ne deviennent critiques pour les applications.</li></ul><p>Les stagiaires bénéficieront des Tips de Kirk Pepperdine, référence reconnue dans le monde de l’optimisation de performance objet.<br
/> Kirk Pepperdine dispose de 15 ans d’expérience dans les technologies OO et l’optimisation de la performance. Figure emblématique du monde Java et élu <em>&laquo;&nbsp;Champion JAVA&nbsp;&raquo;</em> en 2005, Kirk est reconnu comme le référent de l’optimisation de performance Java.<br
/> Vous pouvez consulter le programme complet de cette formation en consultant notre site : <a
href="http://training.xebia.fr/formation-java-performance-tuning-kirk-pepperdine/">http://training.xebia.fr/formation-java-performance-tuning-kirk-pepperdine/</a>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/05/04/kirk-pepperdine-java-performance-tuning-2/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2010/01/18/revue-de-presse-xebia-143/</link> <comments>http://blog.xebia.fr/2010/01/18/revue-de-presse-xebia-143/#comments</comments> <pubDate>Mon, 18 Jan 2010 18:55:11 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[dmServer]]></category> <category><![CDATA[Eclipse]]></category> <category><![CDATA[Flex]]></category> <category><![CDATA[HornetQ 2.0]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JEE]]></category> <category><![CDATA[jQuery]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[Nexus]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[Sonatype]]></category> <category><![CDATA[SpringSource]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3835</guid> <description><![CDATA[La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII dm Server 2.0 transféré de SpringSource à Eclipse HornetQ 2.0, un véritable renouveau ? Nexus sous license GPL: Sonatype explique son choix Agilité Le rôle des leaders dans une équipe agile RIA Le nouveau jQuery est arrivé ! Survol de [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/01/18/revue-de-presse-xebia-143/#dmServertransfrdeSpringSourceE">dm Server 2.0 transféré de SpringSource à Eclipse</a></li><li><a
href="http://blog.xebia.fr/2010/01/18/revue-de-presse-xebia-143/#HornetQunvritablerenouveau">HornetQ 2.0, un véritable renouveau ?</a></li><li><a
href="http://blog.xebia.fr/2010/01/18/revue-de-presse-xebia-143/#NexussouslicenseGPLSonatypeexp">Nexus sous license GPL: Sonatype explique son choix</a></li></ul><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/01/18/revue-de-presse-xebia-143/#Lerledesleadersdansunequipeagi">Le rôle des leaders dans une équipe agile</a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/01/18/revue-de-presse-xebia-143/#LenouveaujQueryestarriv">Le nouveau jQuery est arrivé !</a></li><li><a
href="http://blog.xebia.fr/2010/01/18/revue-de-presse-xebia-143/#SurvoldelagalaxieFlex">Survol de la galaxie Flex.</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="dmServertransfrdeSpringSourceE"></a>dm Server 2.0 transféré de SpringSource à Eclipse</h4><p>SpringSource annonce cette semaine <a
href="http://blog.springsource.com/2010/01/12/dm-server-2-0-0-released/" title="la finalisation de dm Server 20" >la finalisation de dm Server 2.0</a>. Il s&#8217;agit là d&#8217;une mise à jour importante qui agit principalement sur la réduction des nuisances causées au développeur de par la nature même d&#8217;OSGi. En effet, si beaucoup peuvent s&#8217;accorder sur le fait que la modularité dynamique peut constituer un intérêt sur de nombreux projets, c&#8217;est le coût en nuisances et en lourdeurs qui fait que cette solution n&#8217;est toujours pas très populaire au sein des applications d&#8217;entreprise. L&#8217;enjeu est donc crucial puisqu&#8217;il s&#8217;agit maintenant pour SpringSource de rendre attractif son serveur modulaire pour les entreprises. Un an et demi après le lancement du projet l&#8217;évolution de cette version 2.0 sera donc à suivre&#8230;</p><p>Parallèlement, SpringSource <a
href="http://blog.springsource.com/2010/01/12/dm-server-project-moves-to-eclipse-org/" title="annonce le transfert" >annonce le transfert</a> de dm Server au sein de la fondation Eclipse. Il tiendra alors le rôle d&#8217;implémentation de référence de la spécification BluePrint OSGi 4.2 <a
href="http://blog.xebia.fr/2009/09/21/revue-de-presse-xebia-127/#OSGi" title="rcemment finalise" >récemment finalisée</a>. Tout comme le travail de simplification apporté à la nouvelle version, la standardisation permettra de rassurer les entreprises sur la pérennité de la technologie proposée par dm Server, qui restait jusqu&#8217;alors propriétaire.</p><h4><a
name="HornetQunvritablerenouveau"></a>HornetQ 2.0, un véritable renouveau ?</h4><p>Pour mémoire, <a
href="http://jboss.org/hornetq/" title="HornetQ" >HornetQ</a> est le nouveau nom de JBoss messaging. En bref, c&#8217;est pour le moment un projet Open Source sans support ayant vocation à s&#8217;intégrer dans le futur aux produits d&#8217;entreprise RedHat. <a
href="http://blog.xebia.fr/2009/08/31/revue-de-presse-xebia-124/#JBossHornetQ" title="Nous en parlions dj en aout lanne dernire" >Nous en parlions déjà en aout l&#8217;année dernière</a>. La <em>roadmap</em> visait alors clairement la mise à disposition d&#8217;une API de <em>messaging</em> RESTful. Malheureusement, il n&#8217;y en a même pas l&#8217;ombre pour le moment et cela reste dans la <em>roadmap</em>. Gageons que quelques problèmes d&#8217;architecture accompagnés de bugs bloquants ont empêché le développement de cette nouvelle fonctionnalité.</p><p>L&#8217;annonce reprend principalement la précédente et ne liste rien de neuf par rapport à Aout 2009. Mais s&#8217;il y a bien dans le <a
href="https://jira.jboss.org/jira/browse/HORNETQ?report=com.atlassian.jira.plugin.system.project:changelog-panel" title="Jira du projet" >Jira du projet</a> un grand nombre de bugs corrigés, c&#8217;est surtout la maturité du source qui a grandi.<br
/> Malgré tout, la bonne nouvelle est que JBoss espère bien pouvoir l&#8217;intégrer dans sa ligne produit et que RedHat continue l&#8217;investissement sur le projet.</p><h4><a
name="NexussouslicenseGPLSonatypeexp"></a>Nexus sous license GPL: Sonatype explique son choix</h4><p><a
href="http://nexus.sonatype.org/" title="Nexus" >Nexus</a> est le gestionnaire de dépôts Maven développé par Sonatype. La version 1.0 est sortie à l&#8217;été 2008 sous la licence GPL. Il faut croire que Sonatype a fait face à de nombreuses critiques car la société vient de publier sur son blog un post intitulé &laquo;&nbsp;<a
href="http://www.sonatype.com/people/2010/01/why-we-chose-the-gpl-for-nexus/" title="Why we chose the GPL for Nexus" >Why we chose the GPL for Nexus</a>&nbsp;&raquo; lui permettant d&#8217;argumenter son choix. Alors quelles furent ces raisons ?<br
/> Le &laquo;&nbsp;problème&nbsp;&raquo; de <a
href="http://fr.wikipedia.org/wiki/Licence_publique_g%C3%A9n%C3%A9rale_GNU" title="la GPL" >la GPL</a> est qu&#8217;elle force à redonner à la communauté les changements effectués dans le source au cas où le logiciel obtenu est redistribué. Dans le cas spécifique de Nexus, Sonatype explique que le produit était vu dès l&#8217;origine comme un produit commercial, sans question d&#8217;open source. Puis, trouvant le processus de développement plus fun, intéressant et plus productif, couplé au fait que l&#8217;équipe voulait &laquo;&nbsp;protéger son investissement&nbsp;&raquo;, il fut décidé de passer en Open Source. Sonatype est franc sur ce dernier point et affirme l&#8217;avoir toujours été.<br
/> Ensuite, la société explique les idées qui guident généralement ses choix de licence:</p><ul><li>L&#8217;<a
href="http://fr.wikipedia.org/wiki/Affero_General_Public_License" title="Affero GPL" >Affero GPL</a> ne permet pas aux utilisateurs de développer des extensions, même à usage interne, sans avoir à redistribuer les sources. Dans le cas de Nexus, cela aurait sans doute impacté négativement son adoption.</li><li>Sonatype considère que, pour un projet open source, passer d&#8217;une licence donnée à une licence plus restrictive n&#8217;est pas correct. On se souvient que certains on déjà réalisé cette transition en s&#8217;attirant alors <a
href="http://www.extjs.com/forum/showthread.php?t=33096" title="des critiques dutilisateurs" >des critiques d&#8217;utilisateurs</a>. Sonatype déclare que ce ne sera pas leur cas.</li><li>La documentation, elle, est soumise à un principe différent. En effet, la compagnie pense que celle-ci constitue une bonne partie de la plus-value apportée. Ainsi, ils ne veulent pas voir de concurrents se servir de leur travail. C&#8217;est pourquoi ils ont choisi la licence <a
href="http://creativecommons.org/licenses/by-nc-nd/3.0/deed.fr" title="Creative Common 30 BYNDNC" >Creative Common 3.0 BY-ND-NC</a> interdisant à quiconque de modifier cette documentation.</li></ul><p>Au final, cet article est passionnant dans la mesure où il nous permet de bien appréhender le raisonnement derrière le choix d&#8217;une License pour des produits très répandus dans l&#8217;écosystème Java. Nous les utilisons tous les jours sans forcément nous poser de questions. Pourtant, pour certains clients, il peut être important de garder fermées leurs sources. Après, savoir si c&#8217;est une réelle nécessité ou un simple état d&#8217;esprit difficile à changer est une autre histoire !</p><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="Lerledesleadersdansunequipeagi"></a>Le rôle des leaders dans une équipe agile</h4><p><a
href="http://blog.mountaingoatsoftware.com/the-role-of-leaders-on-a-self-organizing-team" title="Mike Cohn" >Mike Cohn</a>, auteur de nombreux livres sur l&#8217;agilité et membre fondateur de <a
href="http://www.agilealliance.org/" title="lAlliance Agile" >l&#8217;Alliance Agile</a>, revient sur le rôle des managers au sein d&#8217;une organisation de type agile. Un des principes forts des méthodes agiles est la mise en place d&#8217;une équipe auto-organisée, où il n&#8217;y a théoriquement plus de chef de projet. Cependant, Mike nous averti qu&#8217;une auto-organisation ne veut pas dire les développeurs font tout ce qu&#8217;ils veulent. Au contraire, Mike explique que des managers ont tout à fait leur rôle à jouer dans ce type d&#8217;organisation. Ainsi, il développe l&#8217;idée d&#8217;une influence subtile et indirecte des managers sur l&#8217;équipe.<br
/> C&#8217;est alors au fur et à mesure des challenges, des échecs et réussites que l&#8217;équipe évolue d&#8217;elle-même vers l&#8217;organisation la plus appropriée. Les managers sont néanmoins là pour poser certaines limites et contraintes.<br
/> A la fin de son article, Mike nous présente un exemple concret d&#8217;un scrum master au prise avec un développeur, qui est un peu trop solitaire, et nous expose comment il pourrait résoudre ce problème de manière subtile. Le scrum master peut être alors vu comme un agitateur au sein de l&#8217;équipe pour l&#8217;aider à devenir plus agile. Et, c&#8217;est là l&#8217;un des plus gros challenges d&#8217;un scrum master, qui consiste à naviguer entre un subtil mélange de contrôle et d&#8217;influence.</p><h3><a
name="RIA"></a>RIA</h3><h4><a
name="LenouveaujQueryestarriv"></a>Le nouveau jQuery est arrivé !</h4><p>Un an jour pour jour (ou presque) après la <a
href="http://blog.xebia.fr/2009/01/19/revue-de-presse-xebia-92/#SortieduframeworkJavaScriptJQu" title="sortie de jQuery 1.3" >sortie de jQuery 1.3</a>, voici venir la nouvelle mouture du framework qui nous arrive dans une <a
href="http://jquery14.com/day-01" title="version 1.4" >version 1.4</a>. Le détail complet des nouveautés se trouve sur cette <a
href="http://jquery14.com/day-01" title="page" >page</a>. Le mot d&#8217;ordre : <em>performance</em> !</p><p>L&#8217;API a subit une réécriture complète. Un des points marquants  est la fonction <code>live()</code>, déjà présente dans la version précédente, qui supporte désormais tous les évènements Javascript <em>(click, change&#8230;)</em>. Pour ce qui est des nouveautés au niveau de l&#8217;API, on retiendra plus particulièrement :</p><ul><li><code>contains()</code> : vérifie l&#8217;existence d&#8217;un nœud DOM dans un autre nœud DOM,</li><li><code>isEmptyObject()</code> et <code>isPlainObject()</code> :  vérifie si un objet est vide ou existant <em>(new Object ou {})</em>,</li><li><code>detach()</code> : supprime du DOM un set d&#8217;éléments,</li><li><code>focusin()</code> et <code>focusout()</code> : ajoute un événement de type focus,</li><li><code>clearQueue()</code> : supprime de la pile les éléments qui n&#8217;ont pas encore été lancés,</li><li><code>delay()</code> : définit un <em>timer</em> pour l&#8217;exécution de certains éléments dans la pile,</li><li><code>toArray()</code> : récupère tous les éléments du conteneur jQuery dans un tableau.</li></ul><p>Côté performance, on peut noter une réelle <a
href="http://www.flickr.com/photos/jeresig/4271690739/" title="amélioration" >amélioration</a> pour les méthodes <em>remove</em>, <em>html</em> et <em>empty</em>. Un gros travail a donc été effectué au niveau des méthodes de manipulation du DOM. Il en va de même pour la gestion des <a
href="http://www.flickr.com/photos/jeresig/4271691147/" title="attributs et des proprits css" >attributs et des propriétés css</a>.</p><p>Pour le téléchargement de la librairie production <em>(minifié et GZippé)</em> ou développement <em>(code non compressé)</em> ou pour consulter la documentation, je vous renvoie directement sur la <a
href="http://jquery.com/" title="home page" >home page</a> du site. Et pour les fans de CheatSheet <em>(comme moi <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</em>, la version 1.4 est déjà disponible au format <a
href="http://www.futurecolors.ru/jquery/" title="HTML" >HTML</a>, <a
href="http://www.futurecolors.ru/jquery/jquery.cheatsheet.1.4.pdf" title="PDF" >PDF</a> ou <a
href="http://www.futurecolors.ru/jquery/jquery.cheatsheet.1.4.png" title="PNG" >PNG</a>.</p><p>Et si vous appréciez jQuery et le travail de toute l&#8217;équipe qui se trouve derrière, vous pouvez faire une <a
href="http://jquery14.com/donate" title="donation de 20$ et ainsi recevoir un eBook jQuery gratuitement" >donation de 20$ et ainsi recevoir un eBook jQuery gratuitement</a> !</p><h4><a
name="SurvoldelagalaxieFlex"></a>Survol de la galaxie Flex.</h4><p>Vous voulez passer à Flex, mais vous ne savez pas par où commencer ? Suivant l&#8217;adage &laquo;&nbsp;Pour bien travailler il faut avoir de bons outils&nbsp;&raquo;, InfoQ propose <a
href="http://www.infoq.com/news/2010/01/state-of-flex-dev-tools" title="un survol de la galaxie Flex" >un survol de la galaxie Flex</a>. Sans rentrer dans les détails de l&#8217;article, on notera :</p><ul><li>les IDE : le célèbre FlexBuilder, mais aussi IntelliJ, ou encore des environnements plus exotiques comme Amethyst, EnsembleTofino et FlashDevelop. Nous n&#8217;avons pas (encore) eu l&#8217;occasion d&#8217;essayer ces derniers, mais si l&#8217;un de nos lecteurs possède une expérience avec ces outils, qu&#8217;il n&#8217;hésite pas à la partager !</li><li>les frameworks : là encore, outre les classiques (PureMvc, Cairgorm&#8230;), quelques petits nouveaux tentent d&#8217;émerger, dont deux qui nous ont interpellé : Ruboss (pour intégrer Ruby on Rails) et Prana (IoC). Nous espérons bientôt les tester.</li><li>les outils de support du developpement : là encore, Flex commence à se doter d&#8217;un arsenal conséquent : tests unitaires (FlexMonkey), couverture de code (FlexCover), tests de GUI (RIATest). Il ne reste plus qu&#8217;à monter une usine logicielle digne de ce nom en agrégeant ces utilitaires.</li><li>les outils d&#8217;intégration dans l&#8217;entreprise : là encore, un certains nombre de ces outils sont archi-connus (comme BlazeDs), et d&#8217;autres plus confidentiels, peuvent présenter un réel intérêt : intégration à Struts (FxStruts), AmFast (Python)&#8230; Nous aurons probablement l&#8217;occasion d&#8217;en reparler.</li></ul><p>Au final, InfoQ propose un survol relativement complet et permet de découvrir de nouveaux outils. Ne reste plus qu&#8217;à les tester, ou à recueilli vos retours d&#8217;expérience !</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/01/18/revue-de-presse-xebia-143/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2010/01/04/revue-de-presse-xebia-141/</link> <comments>http://blog.xebia.fr/2010/01/04/revue-de-presse-xebia-141/#comments</comments> <pubDate>Mon, 04 Jan 2010 19:12:31 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Apache]]></category> <category><![CDATA[Camel]]></category> <category><![CDATA[Impala]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JEE]]></category> <category><![CDATA[OSGi]]></category> <category><![CDATA[SOA]]></category> <category><![CDATA[Spring]]></category> <category><![CDATA[Spring Integration]]></category> <category><![CDATA[Spring ROO]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3702</guid> <description><![CDATA[La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia. SOA Spring Integration et Apache Camel : 2 ESB lightweight en action Le coin de la technique Impala, la modularité pour Spring sans OSGi La définition de DataSources dans JEE 6 Les google-collections sont finales ! Spring Roo en 1.0.0 pour terminer l&#8217;année SOA [...]]]></description> <content:encoded><![CDATA[<p><img
style="margin: 1em 1em 1em 1em; float: right;" src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" /><br
/> <em>La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>SOA</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/01/04/revue-de-presse-xebia-141/#SpringIntegrationetApacheCamel">Spring Integration et Apache Camel : 2 ESB <em>lightweight</em> en action</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/01/04/revue-de-presse-xebia-141/#ImpalalamodularitpourSpringsan">Impala, la modularité pour Spring sans OSGi</a></li><li><a
href="http://blog.xebia.fr/2010/01/04/revue-de-presse-xebia-141/#LadfinitiondeDataSourcesdansJE">La définition de <em>DataSources</em> dans JEE 6</a></li><li><a
href="http://blog.xebia.fr/2010/01/04/revue-de-presse-xebia-141/#Lesgooglecollectionssontfinale">Les google-collections sont finales !</a></li><li><a
href="http://blog.xebia.fr/2010/01/04/revue-de-presse-xebia-141/#SpringRooenpourterminerlanne">Spring Roo en 1.0.0 pour terminer l&#8217;année</a></li></ul><h3><a
name="SOA"></a>SOA</h3><h4><a
name="SpringIntegrationetApacheCamel"></a>Spring Integration et Apache Camel : 2 ESB <em>lightweight</em> en action</h4><p>La mouvance SOA a amené un certain nombre de produits classifiés comme ESB (<em>Enterprise Service Bus</em>) dont le but est de répondre aux problématiques d&#8217;intégration courantes en entreprise. Dans un premier temps, ces produits prenaient la forme de <em>middlewares</em> très lourds dont la mise en œuvre devait être justifiée par des besoins importants. Il y a deux ans, <a
title="nous assistions  lavnement" href="http://blog.xebia.fr/2007/12/17/spring-integration-lavenement-des-lightweight-esb/">nous assistions à l&#8217;avènement</a> d&#8217;ESB qualifiés de <em>lightweight</em> car ils prenaient la forme de <em>frameworks</em> moins gourmands en ressources et plus simples à utiliser. Spring Integration et Apache Camel sont les deux principales options à envisager en matière d&#8217;ESB léger.</p><p>C&#8217;est justement de l&#8217;utilisation de chacun de ces deux <em>frameworks</em> que discute <a
title="larticle que vient de publier Biju Kunjummen" href="http://java.dzone.com/articles/spring-integration-and-apache">l&#8217;article que vient de publier Biju Kunjummen</a>. Il y propose une problématique d&#8217;intégration qui consiste en l&#8217;exposition d&#8217;un service qui, lorsqu&#8217;il est invoqué, entraîne l&#8217;invocation multiple d&#8217;un même service de bas niveau via l&#8217;utilisation d&#8217;un pattern <em>splitter</em> sur la requête et d&#8217;un pattern <em>aggregator</em> sur la réponse. Les deux <em>frameworks</em> offrent nativement ce type d&#8217;EIP (<em>Enterprise Intergration Pattern</em>).</p><p>Aucun favori ne se démarque clairement dans la comparaison entre ces deux implémentations : Spring Integration vient s&#8217;intégrer naturellement à l&#8217;<em>Application Context</em> de Spring en reprenant le même type de structure de définition XML, tandis qu&#8217;Apache Camel, bien qu&#8217;offrant également la possibilité d&#8217;une configuration XML, sera surtout apprécié pour son DSL Java permettant la définition des routes d&#8217;intégration.</p><p>Le lecteur intéressé par ces deux <em>frameworks</em> pourra se tourner, au-delà des documentations respectives, vers les deux livres en préparation chez l&#8217;éditeur Manning, <a
title="Spring Integration in Action" href="http://manning.com/fisher/">Spring Integration in Action</a> et <a
title="Camel in Action" href="http://manning.com/ibsen/">Camel in Action</a>, prévus pour l&#8217;été prochain.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="ImpalalamodularitpourSpringsan"></a>Impala, la modularité pour Spring sans OSGi</h4><p>La modularité est un sujet porteur en ce moment, tant du côté du JDK avec Jigsaw, que du côté Java Entreprise avec OSGi dont le principal acteur actuellement est sans conteste SpringSource avec Spring Dynamic Modules et son serveur d&#8217;application associé Spring dm Server.</p><p>Phil Zoio <a
title="a été interviewé il y a peu" href="http://osgi.dzone.com/articles/impala-alternative-module">a été interviewé il y a peu</a> pour présenter le projet Open Source qu&#8217;il a fondé : <a
title="Impala" href="http://code.google.com/p/impala/">Impala</a>. Il s&#8217;agit d&#8217;une vision différente de la modularité pour applications d&#8217;entreprise. Ainsi, Impala repose sur Spring, tout comme Spring Dynamic Modules, mais contrairement à ce dernier, il n&#8217;utilise pas OSGi et adopte une stratégie radicalement différente : il constitue lui-même des modules encapsulant chacun un <em>application context</em> qui déclare un certain nombre de <em>beans</em>. La solution de modularité ainsi produite offre tout comme OSGi un fonctionnement dynamique permettant le chargement à chaud de nouveaux modules.</p><p>Dans un climat où beaucoup s&#8217;interrogent sur la potentielle lourdeur d&#8217;OSGi, ce type d&#8217;initiative proposant une solution alternative plus simple face au standard prend tout son sens et n&#8217;est pas sans rappeler l&#8217;offensive de <em>Spring Framework</em> lui-même, il y a quelques années, face au contesté standard EJB.</p><h4><a
name="LadfinitiondeDataSourcesdansJE"></a>La définition de <em>DataSources</em> dans Java EE 6</h4><p>Matt Corey <a
title="poste cette semaine un article" href="http://smokeandice.blogspot.com/2009/12/datasourcedefinition-hidden-gem-from.html">poste cette semaine un article</a> mettant en avant une facilité rarement (jamais ?) évoquée de Java EE 6 : la configuration des sources de données par annotation. En effet, si la nouvelle spécification de Sun est largement couverte depuis des mois, y compris sur notre blog, il est en général question des nouveautés qui retiennent le plus l&#8217;attention telles que les <em>beans</em> singletons d&#8217;EJB 3.1, l&#8217;API <em>query builder</em> de JPA 2.0 ou encore ses nouveaux modèles de composants.</p><p>En fait il s&#8217;agit d&#8217;une standardisation de la technique de configuration des sources de données dans les serveurs d&#8217;application Java EE. Cette définition était en effet jusqu&#8217;alors un détail d&#8217;implémentation des serveurs et n&#8217;était donc pas portable. Cette configuration peut donc maintenant se faire par l&#8217;annotation <a
title="DataSourceDefinition" href="http://java.sun.com/javaee/6/docs/api/javax/annotation/sql/DataSourceDefinition.html"><code>@DataSourceDefinition</code></a> ce qui évite ainsi l&#8217;utilisation de XML et va donc dans le sens de la logique initiée depuis Java EE 5. L&#8217;exemple suivant permet de mieux se rendre compte de son utilisation :</p><pre class="brush: java; title: ; notranslate">
@DataSourceDefinition (
className=&quot;org.apache.derby.jdbc.ClientDataSource&quot;,
name=&quot;java:global/jdbc/AppDB&quot;,
serverName=&quot;localhost&quot;,
portNumber=1527,
user=&quot;user&quot;,
password=&quot;password&quot;,
databaseName=&quot;dev-db&quot;
)
public class Config {
...
}
</pre><p>Si tout le monde n&#8217;appréciera pas forcément d&#8217;avoir recours à une annotation pour ce type de configuration, les projets souhaitant distribuer des <code>war</code> ou <code>ear</code> portables qui se connectent à une base de données embarquée ou locale devraient en revanche y trouver leur compte.</p><h4><a
name="Lesgooglecollectionssontfinale"></a>Les google-collections sont finales !</h4><p>Annoncée sur la <a
title="&lt;i&gt;users list&lt;/i&gt;" href="http://groups.google.com/group/google-collections-users/browse_thread/thread/8001013ee996b3c9?pli=1"><em>users list</em></a> du projet, l&#8217;API <a
title="google-collections" href="http://code.google.com/p/google-collections/">google-collections</a> passe en version <a
title="finale 10" href="http://code.google.com/p/google-collections/downloads/list">finale 1.0</a>.<br
/> Pour ceux qui ne connaissent pas encore cette API de collections <em>type-safe</em>, rendez-vous sur <a
title="cette page" href="http://bwinterberg.blogspot.com/2009/09/introduction-to-google-collections.html">cette page</a> pour une introduction à la librairie.</p><p>La finalisation de Google Collections constitue un changement majeur dans l&#8217;environnement des développeurs Java. En effet Apache Commons Collections constituait jusqu&#8217;alors le principal complément à l&#8217;API de base du JDK. Or, la librairie de la fondation Apache est vieillissante et ne propose toujours pas les <em>generics</em> de Java 5. Google Collection se positionne donc ni plus ni moins que comme un remplaçant.</p><p>La <a
title="FAQ" href="http://code.google.com/p/google-collections/wiki/Faq">FAQ</a> répondra à bon nombre de questions que l&#8217;on peut se poser sur cette API notamment sur les raisons qui ont poussé Google à créer sa propre API plutôt que de contribuer à Commons Collections.</p><p>Enfin on notera que Google Collections sera intégré à <a
href="http://code.google.com/p/guava-libraries/">Guava</a> sous peu pour constituer la librairie d&#8217;extension du JDK de Google.</p><p>De par la nature de ces APIs, Google Collections et Guava peuvent également constituer un premier pas vers la programmation <em>un peu</em> plus orientée fonctionnelle. A ce sujet, il est aussi possible de regarder du côté de <a
title="lambdaj" href="http://code.google.com/p/lambdaj/">lambdaj</a>, une API de parcours de collections sans boucle explicite. Et pour ceux qui souhaitent aller encore plus loin, rendez-vous sur <a
title="functionaljava" href="http://functionaljava.org/">functional.java</a> ou  tournez vous vers la préparation des <em>closures</em> dans Java.</p><h4><a
name="SpringRooenpourterminerlanne"></a>Spring Roo en 1.0.0 pour terminer l&#8217;année</h4><p>Encore une <em>release</em> pour Spring pour clôturer en beauté l&#8217;année 2009. Bravo!<br
/> <a
title="Spring Roo" href="http://www.springsource.org/roo">Spring Roo</a>, 8 mois après sa première version alpha, vient de sortir en <a
title="100" href="https://jira.springsource.org/browse/ROO#selectedTab=com.atlassian.jira.plugin.system.project%3Achangelog-panel">1.0.0</a>. Roo, en quelques mots, permet de développer des applications plus rapidement en générant et maintenant, tout au long des développements, une partie importante du code source (du POJO à la JSP).<br
/> Un effort a été mis sur la documentation qui a intégré un tutoriel et les commandes. La seule partie encore en travaux est le chapitre 3, celle qui concerne le fonctionnement interne de ROO. Cette partie permet entre autres d&#8217;avoir les bases pour développer des extensions.<br
/> En standard, Roo propose déjà des extensions, comme par exemple les fonctionnalités de sécurité, basées sur Spring Security et des flows avec Spring Webflow.</p><p>Spring Roo présente un formidable intérêt pédagogique, car il s&#8217;appuie systématiquement sur les toutes dernières versions des jars de Spring et d&#8217;Hibernate.<br
/> On peut par contre trouver peu commode son mécanisme interne qui se base sur la technologie AspectJ. Son principe est de générer les méthodes de classe en se basant sur des fichiers d&#8217;aspects. Jusqu&#8217;à présent, notre expérience avec Spring Roo a montré que cela ne fonctionnait pas de manière complètement transparente pour le développeur, même avec l&#8217;Eclipse de SpringSource (<a
title="STS" href="http://www.springsource.com/products/sts">STS</a>). Cette limitation pourra donc dissuader certaines équipes de partir sur un projet avec ROO tout au long des développements.</p><p>Voici sur Slideshare, les deux présentations mises en ligne par le <em>leader</em> du projet, Ben Alex:</p><ul><li><a
title="Introduction To Spring Roo 100" href="http://www.slideshare.net/benalexau/introduction-to-spring-roo-100-2805183">Introduction To Spring Roo 1.0.0</a></li><li><a
title="Spring Roo 100 Technical Deep Dive" href="http://www.slideshare.net/benalexau/spring-roo-100-technical-deep-dive">Spring Roo 1.0.0 Technical Deep Dive</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/01/04/revue-de-presse-xebia-141/feed/</wfw:commentRss> <slash:comments>8</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/12/28/revue-de-presse-xebia-140/</link> <comments>http://blog.xebia.fr/2009/12/28/revue-de-presse-xebia-140/#comments</comments> <pubDate>Mon, 28 Dec 2009 19:02:30 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Cloud Computing]]></category> <category><![CDATA[EC2]]></category> <category><![CDATA[GAE]]></category> <category><![CDATA[GlassFish]]></category> <category><![CDATA[Hibernate]]></category> <category><![CDATA[IBM]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[JEE]]></category> <category><![CDATA[JEE6]]></category> <category><![CDATA[JGroups]]></category> <category><![CDATA[JPA]]></category> <category><![CDATA[Spring]]></category> <category><![CDATA[Spring Security]]></category> <category><![CDATA[Sun]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3665</guid> <description><![CDATA[La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Le meilleur de The Server Side Le coin de la technique Spring Security seulement un alignement sur Spring 3.0 ? Tour d&#8217;horizon de JBoss Infinispan JGroups à l&#8217;heure du Cloud Computing Actualité éditeurs / SSII Le meilleur de The Server [...]]]></description> <content:encoded><![CDATA[<p><img
style="margin: 1em 1em 1em 1em; float: right;" src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" /><br
/> <em>La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/12/28/revue-de-presse-xebia-140/#LemeilleurdeTheServerSide">Le meilleur de The Server Side</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/12/28/revue-de-presse-xebia-140/#SpringSecurityseulementunalign">Spring Security seulement un alignement sur Spring 3.0 ?</a></li><li><a
href="http://blog.xebia.fr/2009/12/28/revue-de-presse-xebia-140/#TourdhorizondeJBossInfinispan">Tour d&#8217;horizon de JBoss Infinispan</a></li><li><a
href="http://blog.xebia.fr/2009/12/28/revue-de-presse-xebia-140/#JGroupslheureduCloudComputing">JGroups à l&#8217;heure du Cloud Computing</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="LemeilleurdeTheServerSide"></a>Le meilleur de The Server Side</h4><p>Avec les fêtes vient le temps des rétrospectives. Et c&#8217;est TheServerSide qui ouvre le bal, avec son hit parade des neuf fils de discussion les plus vus en 2009. Sans surprise, on retrouve quelques stars de l&#8217;année, dont la popularité ne devrait pas faiblir en 2010 : <a
title="JavaEE 6" href="http://www.theserverside.com/news/thread.tss?thread_id=53459">JavaEE 6</a> et <a
title="Glassfish 3" href="http://www.theserverside.com/news/thread.tss?thread_id=58858">Glassfish 3</a>, la persistance (<a
title="JPA" href="http://www.theserverside.com/news/thread.tss?thread_id=53142">JPA</a>, <a
title="les caches d'Hibernate" href="http://www.theserverside.com/news/thread.tss?thread_id=53716">les caches d&#8217;Hibernate</a>, <a
title="la démarcation transactionnelle avec Spring" href="http://www.theserverside.com/news/thread.tss?thread_id=53529">la démarcation transactionnelle avec Spring</a>)&#8230; Mais aussi les buzz de l&#8217;année : <a
title="Google App Engine" href="http://www.theserverside.com/news/thread.tss?thread_id=54215">Google App Engine</a>, <a
title="les langages next-gen" href="http://www.theserverside.com/news/thread.tss?thread_id=55185">les langages next-gen</a>&#8230; On trouve ensuite un grand article communautaire, <a
title="sur ce que doit savoir un architecte applicatif" href="http://www.theserverside.com/news/thread.tss?thread_id=53819">sur ce que doit savoir un architecte applicatif</a>.<br
/> Enfin, et nous devons bien avouer qu&#8217;à la vue des évènements passés, cela prête à sourire, un très beau fil de prospective : <a
title="IBM parle de racheter Sun" href="http://www.theserverside.com/news/thread.tss?thread_id=54007">IBM parle de racheter Sun</a>.</p><p>Cette première rétrospective reflète pour nous bien les tendances de l&#8217;année passée : pas mal de grandes manœuvres chez les éditeurs, des <em>concurrents</em> à Java de plus en plus présent, un nouvelle spécification très attendue, et des frameworks incontournables qui continuent à mener la danse.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="SpringSecurityseulementunalign"></a>Spring Security seulement un alignement sur Spring 3.0 ?</h4><p>Dans la foulée de la sortie de la version 3 de Spring Framework, c&#8217;est au tour de Spring Security de faire <a
title="son annonce" href="http://www.springsource.org/node/2271">son annonce</a>. Le point le plus marquant de cette version est l&#8217;utilisation du Spring Expression Language pour décrire les règles de contrôle d&#8217;accès qui simplifieront des vérifications simples comme <code>@PreAuthorize("#contact.name == principal.name)")</code> et surtout, couplé à des classes java transverses de sécurité, permettra d&#8217;effectuer élégamment des contrôles déclaratifs sophistiqués tels que :</p><pre class="brush: java; title: ; notranslate">
@PreAuthorize(&quot;isPhysician(#patientFile.patient)&quot;)
public void create(PatientFile patientFile);
</pre><p>Bien sûr, il faudra programmer la méthode <code>isPhysician()</code>, Spring Security ne se substituera pas au code métier de votre application, il sera juste une aide précieuse <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .<br
/> Nous noterons au passage que l&#8217;<em>Expression Language</em> apporte à l&#8217;<em>Aspect Oriented Programming</em> le haut niveau d&#8217;abstraction qui permet de programmer des fonctionnalités métiers transverses sans être un spécialiste de la plomberie <code>ProceedingJoinPoint</code> et autres joyeusetés. L&#8217;AOP devient alors beaucoup plus accessible pour les développeurs d&#8217;informatique de gestion.</p><p>Les autres nouveautés que nous garderons en tête : des contrôles pré et post traitement (<code>@PreAuthorize</code> et <code>@PostAuthorize</code>), la restructuration des jars similaire à celle que Spring 2.5 a connu, et une clarification des règles de redirection post authentification.</p><h4><a
name="TourdhorizondeJBossInfinispan"></a>Tour d&#8217;horizon de JBoss Infinispan</h4><p>Le projet <a
title="Infinispan" href="http://www.jboss.org/infinispan.html">Infinispan</a> a été <a
title="initié en milieu d'année 2009" href="http://blog.xebia.fr/2009/05/04/revue-de-presse-xebia-107/#JBossveutsonDataGrid">initié en milieu d&#8217;année 2009</a> chez JBoss. Il s&#8217;agit d&#8217;une évolution de <a
title="JBoss Cache" href="http://www.jboss.org/jbosscache/">JBoss Cache</a> d&#8217;un simple cache vers un DataGrid.</p><p>Dans le <a
title="dernier pisode en date de JBoss Asylum" href="http://asylum.libsyn.com/index.php?post_id=562565">dernier épisode en date de JBoss Asylum</a>, le podcast dédié à la communauté JBoss maintenu par Emmanuel Bernard et Max R Andersen, Mark Surtani, <em>leader</em> du projet Infinispan, était invité pour parler de son projet. Il a pu faire un tour d&#8217;horizon global en commençant par le lien entre JBoss Cache et Infinispan :</p><ul><li>Contrairement à JBoss Cache qui utilisait une organisation arborescente, Infinispan se base uniquement sur une structure clé-valeur à plat.</li><li>Tout comme le faisait JBoss Cache, Inifinispan utilise JGroups pour assurer la découverte de ses instances.</li><li>Une API d&#8217;adaptation permettra d&#8217;assurer la transition entre JBoss Cache et Infinispan, notamment en offrant une arborescence au dessus de la structure de base d&#8217;Infinispan. Des outils seront fournis afin de migrer les fichiers de configuration.</li></ul><p>Manik Surtani a également abordé les fonctionnalités à venir, après la finalisation de la première version, dévoilant ainsi les ambitions de positionnement de ce produit :</p><ul><li>Utilisation de Lucene pour offrir une API de requêtes puissante permettant des recherches dans le DataGrid. Plusieurs possibilités d&#8217;architecture ont été évoquées telles que la réplication d&#8217;un index complet sur l&#8217;ensemble des noeuds ou la distribution de <em>shards</em> de l&#8217;index complet sur les noeuds via l&#8217;utilisation d&#8217;un <code>InfinispanDirectory</code> pour Lucene, actuellement en cours de développement.</li><li>Intégration éventuelle avec Hibernate Search. Infinispan se substituerait à Hibernate Core et Hibernate Search lui apporterait alors la fonctionnalité de recherche.</li><li>Possibilité d&#8217;effectuer des <em>continuous requests</em> pour que les résultats d&#8217;une requête s&#8217;enrichissent au fur et a mesure de l&#8217;arrivée de données sur la grille.</li><li>API de MapReduce permettant de soumettre un <code>Callable</code> et un ensemble de clés d&#8217;objets sur lesquels doivent s&#8217;appliquer le traitement pour obtenir un <code>Future</code> représentant le résultat, à venir, après opération de réduction.</li></ul><p>La plupart des fonctionnalités évoquées sont présentes dans les produits commerciaux que sont <a
title="Oracle Coherence" href="http://www.oracle.com/technology/products/coherence/index.html">Oracle Coherence</a> ou <a
title="IBM eXtreme Scale" href="http://www.ibm.com/software/webservers/appserv/extremescale/">IBM eXtreme Scale</a>. Toutefois, de telles possibilités seraient inédites dans un produit Open Source ce qui devrait faire d&#8217;Inifinispan un produit très intéressant à suivre en 2010&#8230;</p><h4><a
name="JGroupslheureduCloudComputing"></a>JGroups à l&#8217;heure du Cloud Computing</h4><p>JGroups est un <em>framework</em> permettant la communication au sein d&#8217;un groupe de serveurs. Actuellement développé au sein de JBoss, il est à la base de nombreux <em>middlewares</em> et frameworks d&#8217;entreprise permettant un fonctionnement distribué tels que JBoss Cache ou plus récemment Infinispan.</p><p>Après un an sans mise à jour majeure, Bela Ban, <em>leader</em> du projet, <a
title="annonce la version 28" href="http://belaban.blogspot.com/2009/12/jgroups-280ga-released.html">annonce la version 2.8</a>. Outre de nombreuses évolutions améliorant la flexibilité de JGroups, un apport notable s&#8217;est glissé dans la liste : le support d&#8217;Amazon EC2. Il s&#8217;agit là d&#8217;une nouveauté emblématique de cette année 2009 qui va se conclure ; la majorité des <em>frameworks</em> cherche à afficher une compatibilité voire une synergie avec les environnements de Cloud Computing courant.<br
/> En pratique, cette intégration de JGroups à EC2 se fait par l&#8217;ajout d&#8217;un nouveau protocole de découverte de voisinage nommé S3_PING. Comme son nom l&#8217;indique, il utilise un stockage S3 commun dans lequel tous les membres d&#8217;un groupe écrivent leurs coordonnées. Ce mécanisme est particulièrement bien adapté à EC2 qui, de part la topologie réseau qu&#8217;il offre, ne permet pas le <em>multicasting</em> et n&#8217;est guère adapté aux autres protocoles de découvertes qui existaient jusqu&#8217;alors dans JGroups.</p><p>Notons tout de même que la principale nouveauté de cette version 2.8 est l&#8217;ajout du concept d&#8217;adresse logique que Bela Ban <a
title="presentait il y a quelques mois" href="http://belaban.blogspot.com/2009/02/whats-cool-about-logical-addresses.html">présentait il y a quelques mois</a>. Une adresse logique permet de découpler l&#8217;identité d&#8217;un nœud JGroups de son adresse réseau ; l&#8217;association entre adresse logique et physique est résolue lors de la découverte des nœuds. Outre le découplage offert par ce concept, ces adresses permettent également de simplifier la gestion des pertes de messages lors de la ré-incarnation d&#8217;un nœud suite a son indisponibilité temporaire.</p><p>10 ans après sa création, JGroups continue donc de se maintenir à jour et, dans la mesure où il remplit toujours parfaitement son rôle, il devrait rester présent encore des années dans plusieurs <em>middlewares</em> et <em>frameworks</em> majeurs.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/12/28/revue-de-presse-xebia-140/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/12/07/revue-de-presse-xebia-137/</link> <comments>http://blog.xebia.fr/2009/12/07/revue-de-presse-xebia-137/#comments</comments> <pubDate>Mon, 07 Dec 2009 18:47:07 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Apache]]></category> <category><![CDATA[Camel]]></category> <category><![CDATA[DDD]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[JEE]]></category> <category><![CDATA[JEE 6]]></category> <category><![CDATA[TeamCity]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3510</guid> <description><![CDATA[La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII JEE 6 commence à apparaître chez JBoss Le coin de la technique Sortie de TeamCity 5 Apache Camel continue d&#8217;évoluer Evènements de notre communauté en France et à l&#8217;étranger Suite et fin, traduction de la deuxième partie de DDD Quickly [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/12/07/revue-de-presse-xebia-137/#JEEcommenceapparatrechezJBoss">JEE 6 commence à apparaître chez JBoss</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/12/07/revue-de-presse-xebia-137/#SortiedeTeamCity">Sortie de TeamCity 5</a></li><li><a
href="http://blog.xebia.fr/2009/12/07/revue-de-presse-xebia-137/#ApacheCamelcontinuedvoluer">Apache Camel continue d&#8217;évoluer</a></li></ul><p><strong>Evènements de notre communauté en France et à l&#8217;étranger</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/12/07/revue-de-presse-xebia-137/#Suiteetfintraductiondeladeuxim">Suite et fin, traduction de la deuxième partie de DDD Quickly</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="JEEcommenceapparatrechezJBoss"></a>JEE 6 commence à apparaître chez JBoss</h4><p>Quelques jours avant la finalisation de <a
href="https://glassfish.dev.java.net/" title="Glassfish V3" >Glassfish V3</a>, l&#8217;implémentation de référence de la nouvelle spécification JEE, <a
href="http://in.relation.to/13275.lace" title="JBoss met  disposition" >JBoss met à disposition</a> une première <em>milestone</em> de JBoss AS 6.0, le serveur d&#8217;application que l&#8217;éditeur destine à implémenter JEE 6.</p><p>Ce premier jet apporte seulement 3 des composants propres à JEE 6 :</p><ul><li><a
href="http://seamframework.org/Weld" title="Weld" >Weld</a>, un conteneur CDI implémentant la <a
href="http://www.jcp.org/en/jsr/detail?id=299" title="JSR-299 (Contexts and Dependency Injection)" >JSR-299 (Contexts and Dependency Injection)</a>.</li><li>Un moteur de validation implémentant la <a
href="http://www.jcp.org/en/jsr/detail?id=303" title="JSR-303 (Bean Validation)" >JSR-303 (Bean Validation)</a>. L&#8217;implémentation utilisée est Hibernate Validator 4.0.</li><li>Une implémentation de JSF 2. Il s&#8217;agit de l&#8217;implémentation de référence de Sun.</li></ul><p>Pourquoi ces composants en particulier ? Parce qu&#8217;il s&#8217;agit soit des composants pour lesquels JBoss est responsable de l&#8217;implémentation de référence, soit, dans le cas de JSF 2, d&#8217;une implémentation de référence empruntée à Sun. Or, ces composants sont forcément finalisés puisqu&#8217;ils seront intégrés à l&#8217;implémentation de référence de l&#8217;ensemble de la spécification JEE 6 qu&#8217;est Glassfish V3, qui sera disponible dans quelques jours (peu après la finalisation de la spécification le 10 décembre).</p><p>JBoss AS 6.0 M1 embarque Hibernate 3.5.0 beta 2, or Steve Ebersole, un des membres de l&#8217;équipe Hibernate, <a
href="http://relation.to/12696.lace" title="expliquait" >expliquait</a> que le support de JPA 2 dans cette version était encore partiel. Aucune indication n&#8217;est par contre donnée quant au statut de l&#8217;autre composant majeur de JEE 6 qu&#8217;est EJB 3.1.</p><p>Aucune <em>roadmap</em> n&#8217;est annoncée, mais il semble raisonnable de penser à une finalisation pour fin 2010. Si l&#8217;on regarde la vitesse de déploiement des serveurs Java EE 5, rares seront donc les privilégiés qui pourront utiliser Java EE 6 avant 2011 voire 2012&#8230;</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="SortiedeTeamCity"></a>Sortie de TeamCity 5</h4><p>Fin de semaine dernière est sortie la nouvelle version du serveur d&#8217;intégration continue de <a
href="http://www.jetbrains.com/index.html" title="JetBrains" >JetBrains</a> à savoir <a
href="http://www.jetbrains.com/teamcity/index.html" title="TeamCity" >TeamCity</a> <em>(via <a
href="http://jetbrains.dzone.com/announcements/jetbrains-releases-teamcity-50" title="JavaLobby" >JavaLobby</a>)</em>. Cette version 5 apporte son <a
href="http://www.jetbrains.com/teamcity/whatsnew/index.html" title="lot de nouveauts" >lot de nouveautés</a> et elles sont assez alléchantes, jugez par vous-même :</p><ul><li>support d&#8217;Amazon EC2 avec un agent de build sur le Cloud permettant de faire du build distribué,</li><li>meilleur support de maven,</li><li>templates de build <em>(préférences partagées)</em>,</li><li>intégration avec les gestionnaires de bugs <a
href="http://www.jetbrains.com/youtrack?utm_source=DZone&#038;utm_medium=Post&#038;utm_term=Release&#038;utm_campaign=YouTrack" title="YouTrack" >YouTrack</a>, <a
href="http://www.atlassian.com/software/jira/" title="Jira" >Jira</a> et <a
href="http://www.bugzilla.org/" title="Bugzilla" >Bugzilla</a>,</li><li>archivage de projets,</li><li>command line tool <em>(build sans plugin intégré à l&#8217;IDE)</em>,</li><li><em>back-up and restore</em> pour simplifier la maintenance de TeamCity,</li><li>ainsi que <a
href="http://www.jetbrains.com/teamcity/whatsnew/index.html#Many_Other_Improvements" title="plusieurs nouvelles fonctionnalits et corrections de bugs" >plusieurs nouvelles fonctionnalités et corrections de bugs</a> dont le support de Git et la compatibilité du plugin TeamCity avec IntelliJ IDEA CE.</li></ul><p>Les <a
href="http://www.jetbrains.com/teamcity/buy/index.jsp" title="licences" >licences</a> ne changent pas, <a
href="http://www.jetbrains.com/teamcity/download/index.html" title="laissezvous tenter" >laissez-vous tenter</a> !</p><h4><a
name="ApacheCamelcontinuedvoluer"></a>Apache Camel continue d&#8217;évoluer</h4><p>Claus Ibsen, un membre de l&#8217;équipe Apache Camel, <a
href="http://davsclaus.blogspot.com/2009/12/apache-camel-21-released.html" title="annonce une nouvelle version 21" >annonce une nouvelle version 2.1</a> du moteur de médiation d&#8217;Apache.</p><p>Il liste les principales nouveautés parmi lesquelles on notera un effort particulier pour apporter une gestion plus robuste des routes&nbsp;:</p><ul><li>Amélioration des messages d&#8217;erreur fournit au démarrage en cas de mauvaise définition d&#8217;une route.</li><li>Il est désormais possible de définir un ordre de démarrage pour les routes.</li><li>Il est également possible d&#8217;indiquer si une route doit être auto-démarrée.</li></ul><p>Poursuivant dans cette voie, Claus Ibsen explique son intention d&#8217;apporter un <em>graceful shutdown</em> à Camel pour la version 2.2, ce qui permettrait un arrêt de l&#8217;ESB sans perdre de messages. Cet arrêt sans perte est dors et déjà possible avec la version 2.1 mais nécessite plusieurs manipulations via JMX (arrêt des routes, puis arrêt du moteur lorsque plus aucun message n&#8217;est en cours de traitement).</p><p>James Strachan, créateur du projet, expliquait lors de Devoxx 2009 que la majorité de ses clients déployaient Camel sur Tomcat, Jetty ou ServiceMix pour bénéficier d&#8217;un environnement de <em>monitoring</em> plus riche et d&#8217;une structure plus familière pour l&#8217;administration. Ces pratiques montrent les besoins de robustesse des entreprises quant aux déploiements Camel. Ces améliorations, répondant à des problématiques réelles lors de l&#8217;utilisation de Camel pour la médiation, devraient donc être accueillies avec joie par les équipes utilisant ce <em>framework</em>.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="Suiteetfintraductiondeladeuxim"></a>Suite et fin, traduction de la deuxième partie de DDD Quickly</h4><p>Dans la revue de presse du 10 octobre 2009, nous avons relayé l&#8217;information de la <a
href="http://blog.xebia.fr/2009/10/19/revue-de-presse-xebia-130/#TraductiondelapremirepartiedeD" title="traduction de la premire partie de DDD Quickly" >traduction de la première partie de DDD Quickly</a>.</p><p>La traduction de la deuxième et dernière partie est terminée. <a
href="http://www.dddfrance.org/DDDViteFait" title="Ce livre" >Ce livre</a> est disponible sur le portail <a
href="http://www.dddfrance.org/" title="DDD France" >DDD France</a>.</p><p>Dans cette deuxième partie : <em>On y retrouve des techniques pour mettre en oeuvre DDD sur de gros projets impliquant plusieurs équipes, mais aussi pour refactorer un domaine et gérer sa croissance, notamment à travers la distillation et l&#8217;identification d&#8217;un Coeur de Domaine.</em> (<a
href="http://blog.infosaurus.fr/post/2009/12/06/DDD-Vite-Fait%2C-notions-avanc%C3%A9es" title="source sur le blog de Guillaume" >source sur le blog de Guillaume</a>)</p><p>Félicitations à <a
href="http://blog.infosaurus.fr/" title="Guillaume Lebur" >Guillaume Lebur</a> pour ce gros travail, et bonne lecture de <em>DDD Vite fait</em> au pied de votre arbre de Noël !</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/12/07/revue-de-presse-xebia-137/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/11/30/revue-de-presse-xebia-136/</link> <comments>http://blog.xebia.fr/2009/11/30/revue-de-presse-xebia-136/#comments</comments> <pubDate>Mon, 30 Nov 2009 17:30:44 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[closure]]></category> <category><![CDATA[Cloud / NoSQL]]></category> <category><![CDATA[Devoxx]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Lucene]]></category> <category><![CDATA[Oracle]]></category> <category><![CDATA[OSGi]]></category> <category><![CDATA[SpringSource]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3455</guid> <description><![CDATA[La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII SpringSource et Oracle ensemble pour l&#8217;OSGi d&#8217;entreprise Le coin de la technique Lucene passe à Java 5 Mark Reinhold justifie l&#8217;introduction des closures Patterns NoSQL Evènements de notre communauté en France et à l&#8217;étranger Devoxx 2009 : le bilan Actualité [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/11/30/revue-de-presse-xebia-136/#SpringSourceetOracleensemblepo">SpringSource et Oracle ensemble pour l&#8217;OSGi d&#8217;entreprise</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/11/30/revue-de-presse-xebia-136/#LucenepasseJava">Lucene passe à Java 5</a></li><li><a
href="http://blog.xebia.fr/2009/11/30/revue-de-presse-xebia-136/#MarkReinholdjustifielintroduct">Mark Reinhold justifie l&#8217;introduction des <em>closures</em></a></li><li><a
href="http://blog.xebia.fr/2009/11/30/revue-de-presse-xebia-136/#PatternsNoSQL">Patterns NoSQL</a></li></ul><p><strong>Evènements de notre communauté en France et à l&#8217;étranger</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/11/30/revue-de-presse-xebia-136/#Devoxxlebilan">Devoxx 2009 : le bilan</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="SpringSourceetOracleensemblepo"></a>SpringSource et Oracle ensemble pour l&#8217;OSGi d&#8217;entreprise</h4><p>Adrian Colyer, SpringSource, <a
href="http://blog.springsource.com/2009/11/24/gemini-project-proposal-at-eclipse-org/" title="a annonc" >a annoncé</a> la création d&#8217;un nouveau projet au sein de la fondation Eclipse : Gemini. Il s&#8217;agit d&#8217;un sous-projet d&#8217;Eclipse Runtime qui a pour but de réunir l&#8217;ensemble des implémentations de référence des spécifications OSGi liées au monde de l&#8217;entreprise. Il s&#8217;agit d&#8217;un effort commun de SpringSource et d&#8217;Oracle.</p><p>Deux composants fondamentaux sont apportés par SpringSource :</p><ul><li>Gemini Web Container : il permet le fonctionnement d&#8217;un conteneur de Servlets dans un environnement OSGi. Cette implémentation est actuellement utilisée dans SpringSource dm Server et est donc prévue pour fonctionner sur Tomcat. Mike Keith, Oracle, <a
href="http://www.eclipse.org/forums/index.php?t=msg&#038;th=158265&#038;start=0&#038;S=f24c757f3b4f75d223bf59aad88061b0" title="assure" >assure</a> que l&#8217;adaptation pour Jetty arrivera par la suite grâce à une collaboration avec l&#8217;équipe de ce projet.</li><li>Gemini Blueprint Service : il s&#8217;agit de <a
href="http://www.springsource.org/osgi" title="Spring Dynamic Modules" >Spring Dynamic Modules</a>. Ce projet, qui a fortement inspiré la spécification du <em>Blueprint Service</em> intégré à OSGi 4.2, devient logiquement son implémentation de référence.</li></ul><p>Il est important de noter qu&#8217;Adryan Colyer explique que SpringSource continuera désormais le développement de ces deux projets directement au sein de la fondation Eclipse et non plus en interne.</p><p>Oracle, pour sa part, apporte plusieurs implémentations de référence pour des RFC supplémentaires <a
href="http://modualrit.blogspot.com/2009/08/purity-or-compromise.html" title="non intgres  la spcification OSGi 42" >non intégrées à la spécification OSGi 4.2</a> : RFC 98 (transactions), RFC 122 (database access), RFC 139 (JMX integration), RFC 142 (JNDI integration), RFC 143 (JPA integration), RFC 146 (JCA integration).<br
/> Mike Keith indique qu&#8217;EclipseLink est à même de fonctionner correctement avec OSGi depuis longtemps, mais qu&#8217;il n&#8217;implémentait pas JPA lorsque cette intégration a été mise en œuvre au sein du projet. Par conséquent, une adaptation est nécessaire pour passer à la RFC 143, afin d&#8217;assurer une intégration JPA standard.</p><p>Alors que la spécification 4.2 a été finalisée <a
href="http://blog.xebia.fr/2009/09/21/revue-de-presse-xebia-127/#OSGi" title="il y a 2 mois" >il y a 2 mois</a>, les implémentations de référence étaient toujours attendues. Cette réunification des implémentations liées a l&#8217;OSGi d&#8217;entreprise au sein d&#8217;un même projet Eclipse est une excellente nouvelle : elle met en avant la standardisation dont on pourra désormais bénéficier pour les développements intégrant OSGi dans les applications JEE. Mais cela suffira-t-il à démocratiser OSGi en entreprise ?!</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="LucenepasseJava"></a>Lucene passe à Java 5</h4><p>L&#8217;équipe du projet Lucene <a
href="http://lucene.apache.org/java/docs/index.html#25+November+2009+-+Lucene+Java+3.0.0+available" title="annonce la sortie de Lucene 3.0" >annonce la sortie de Lucene 3.0</a>. Comme <a
href="http://blog.xebia.fr/2009/09/28/revue-de-presse-xebia-126/#Lucenevolueetprparelavenir" title="nous lexpliquions prcedemment" >nous l&#8217;expliquions précedemment</a>, cette version marque une évolution majeure puisqu&#8217;elle est la première a nécessiter Java 5.0 au minimum.</p><p>L&#8217;API bénéficie donc désormais de l&#8217;ensemble des améliorations du langage de Java 5.0 dont les <em>generics</em>, le <em>varargs</em>, les <em>enums</em> et l&#8217;<em>autoboxing</em>.</p><p>Tempérons cette annonce : l&#8217;API Lucene n&#8217;a pas été refondue, il ne s&#8217;agit que de quelques améliorations visant à la rendre <em>type-safe</em>. Citons par exemple :</p><ul><li>Apparition d&#8217;<em>enums</em> <code>BooleanClause.Occur</code>, <code>Field.Index</code>, <code>Field.Store</code> et <code>Field.TermVector</code> ; ces concepts étaient jusqu&#8217;alors représentées sous forme de constantes <em>type-safe</em>.</li><li>La méthode <code>getFields()</code> de la classe <code>Document</code> retourne désormais une <code>List&lt;Fieldable&gt;</code> alors qu&#8217;elle retournait une simple <code>List</code> jusqu&#8217;alors.</li><li>La classe <code>Term</code> implémente désormais <code>Comparable&lt;Term&gt;</code> et non plus simplement <code>Comparable</code>.</li></ul><p>Ces changements légers décevront peut-être certains utilisateurs lassés par l&#8217;API vieillissante de Lucene, mais on appréciera toutefois la facilité de migration, puisqu&#8217;il s&#8217;agira la plupart du temps de supprimer quelques <em>casts</em> (l&#8217;équipe Lucene cite <a
href="http://lucene.apache.org/java/3_0_0/changes/Changes.html" title="quelques cas  surveiller" >quelques cas à surveiller</a> lors de la migration).</p><p>Cette nouvelle version, qui apporte par ailleurs quelques modifications mineures, conclut donc un cycle d&#8217;évolutions importantes sur le projet Lucene.</p><h4><a
name="MarkReinholdjustifielintroduct"></a>Mark Reinhold justifie l&#8217;introduction des <em>closures</em></h4><p>C&#8217;était l&#8217;Annonce de cette édition de Devoxx, <a
href="http://blog.xebia.fr/2009/11/23/revue-de-presse-xebia-135/#JDKJEEetMavenlesannoncesdeDevo" title="lapparition des closures en Java 7" >l&#8217;apparition des <em>closures</em> en Java 7</a>. Mark Reinhold revient, sur <a
href="http://blogs.sun.com/mr/entry/closures">son blog</a>, sur les raisons à l&#8217;origine de cette petite bombe.<br
/> Il justifie cette évolution majeure du langage par la nécessité pour Java de tirer partie des nouvelles générations de processeurs, multi-cœurs.<br
/> Jusqu&#8217;ici, pour exploiter cette puissance, il fallait utiliser des <em>Parallel Array</em> et tout le code inutile nécessaire à leur fonctionnement. Les <em>closures</em> permettent de supprimer ce code, et il est temps de les introduire en Java.<br
/> Java doit se concentrer sur deux fonctionnalités clés : la syntaxe littérale, et les fonctions typées. L&#8217;arrivée des <em>closures</em> requiert deux autres évolutions de Java : les conversions, et l&#8217;extensibilité des méthodes.<br
/> Il est temps pour Mark Reinhold d&#8217;oublier <a
href="http://www.javaworld.com/javaworld/jw-06-2008/jw-06-closures.html" title="les querelles" >les querelles</a>. Sun spécifiera et implémentera un premier jet des <em>closures</em> pour le JDK 7. Cela permettra une expérimentation à grande échelle, et si tout se passe bien, cela conduira à une JSR de modification du langage, qui pourra être incluse dans Java SE 7.<br
/> La tâche est immense et Mark Reinhold appelle bien évidement toutes les bonnes volontés à contribuer.</p><p>Bien au-delà de la manipulation du <em>multi-threading</em>, les <em>closures</em> pourraient permettre une simplification des APIs courantes. Cette perspective semble essentielle à Mark Reinhold qui ne pouvait attendre le JDK 8 pour une nouvelle tentative, dans 3 à 4 ans&#8230;</p><h4><a
name="PatternsNoSQL"></a>Patterns NoSQL</h4><p>Nous vous parlions récemment <a
href="http://blog.xebia.fr/2009/11/09/revue-de-presse-xebia-133/#LemouvementNoSQLdiviseetintrig" title="dans une revue de presse" >dans une revue de presse</a> et <a
href="http://blog.xebia.fr/2009/11/18/devoxx-jour-1-nosql-avec-hbase/" title="un article" >un article</a> du mouvement NoSQL, qui se caractérise par &laquo;&nbsp;une absence de requête et par un relâchement des caractéristiques ACID propres aux RDBMS&nbsp;&raquo;. Ricky Ho, architecte chez Adobe, <a
href="http://horicky.blogspot.com/2009/11/nosql-patterns.html" title="revient sur son blog" >revient sur son blog</a> sur les caractéristiques communes de plusieurs technologies permettant de &laquo;&nbsp;faire du NoSQL&nbsp;&raquo;, et extrait quelques patterns récurrents. Ne vous arrêtez pas à la mise en page étriquée de l&#8217;article, car la description est très complète. Ricky Ho y explore successivement:</p><ul><li>Les types de noeud possibles (physiques et virtuels) ainsi que leur fonctionnement.</li><li>Le partitionnement des données.</li><li>La réplication de ces données, ainsi que le maintien de leur consistance.</li><li>La gestion des pannes.</li></ul><p>On notera quand même que l&#8217;une des solutions retenue pour le stockage des données reste&#8230; une base de donnée relationnelle ! <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> Humour mis à part, une telle formalisation de patterns est vraiment bienvenue dans un environnement aussi émergeant.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="Devoxxlebilan"></a>Devoxx 2009 : le bilan</h4><p>Nous concluons aujourd&#8217;hui notre série de billets sur Devoxx 2009. Ces 5 jours passés à Anvers furent riches en informations et en rencontres et nous souhaitions vous les faire partager.</p><p>A l&#8217;heure du bilan, voici ce que nous retiendrons de cette édition :</p><ul><li><a
href="http://blog.xebia.fr/2009/11/23/revue-de-presse-xebia-135/#JDKJEEetMavenlesannoncesdeDevo" title="Les annonces concernant JDK 7 JEE 6 et Maven 30" >Les annonces concernant JDK 7, JEE 6 et Maven 3.0</a>.</li><li>Le succès de JEE 6 : toutes les sessions sur le sujet ont fait salle comble.</li><li>La place réservée à la nouvelle plateforme Flash d&#8217;Adobe, présente au <em>keynote</em> et dans de nombreuses sessions ; il est intéressant de noter que cette place correspond exactement à celle occupée par JavaFX lors de la précédente édition.</li><li>L&#8217;omniprésence de Scala ; au-delà des sessions qui lui étaient consacrées, il était cité dans beaucoup d&#8217;autres présentations lorsqu&#8217;il était question de DSL par exemple.</li><li>L&#8217;intérêt persistant de la communauté pour le Cloud Computing. Ce nouveau concept a rencontré un large succès à Devoxx.</li></ul><p>Pour rentrer plus en détails dans les enseignements de cette conférence, vous pouvez désormais retrouver l&#8217;intégralité de nos billets Devoxx :</p><ul><li><a
href="http://blog.xebia.fr/2009/11/17/devoxx-jour-1-adobe-university/" title="Devoxx  Jour 1  Adobe University" >Devoxx &#8211; Jour 1 &#8211; Adobe University</a></li><li><a
href="http://blog.xebia.fr/2009/11/18/devoxx-jour-1-applications-robustes-avec-amazon-ec2/" title="Devoxx  Jour 1  Applications robustes avec Amazon EC2" >Devoxx &#8211; Jour 1 &#8211; Applications robustes avec Amazon EC2</a></li><li><a
href="http://blog.xebia.fr/2009/11/18/devoxx-jour-1-kanban-in-action/" title="Devoxx  Jour 1  Kanban in action" >Devoxx &#8211; Jour 1 &#8211; Kanban in action</a></li><li><a
href="http://blog.xebia.fr/2009/11/18/devoxx-jour-1-jsf-2/" title="Devoxx  Jour 1  JSF 2" >Devoxx &#8211; Jour 1 &#8211; JSF 2</a></li><li><a
href="http://blog.xebia.fr/2009/11/18/devoxx-jour-1-nosql-avec-hbase/" title="Devoxx  Jour 1  NoSQL avec HBase" >Devoxx &#8211; Jour 1 &#8211; NoSQL avec HBase</a></li><li><a
href="http://blog.xebia.fr/2009/11/19/devoxx-jour-2-google-app-engine/" title="Devoxx  Jour 2  Google App Engine" >Devoxx &#8211; Jour 2 &#8211; Google App Engine</a></li><li><a
href="http://blog.xebia.fr/2009/11/19/devoxx-jour-2-les-effets-avec-flex-4/" title="Devoxx  Jour 2  Les effets avec Flex 4" >Devoxx &#8211; Jour 2 &#8211; Les effets avec Flex 4</a></li><li><a
href="http://blog.xebia.fr/2009/11/23/devoxx-jour-2-hibernate-search/" title="Devoxx  Jour 2  Hibernate Search" >Devoxx &#8211; Jour 2 &#8211; Hibernate Search</a></li><li><a
href="http://blog.xebia.fr/2009/11/23/devoxx-jour-2-java-fx-the-developer-guide/" title="Devoxx  Jour 2  Java FX The developer guide" >Devoxx &#8211; Jour 2 &#8211; Java FX The developer guide</a></li><li><a
href="http://blog.xebia.fr/2009/11/23/devoxx-jour-2-soa-en-pratique/" title="Devoxx  Jour 2  SOA en pratique" >Devoxx &#8211; Jour 2 &#8211; SOA en pratique</a></li><li><a
href="http://blog.xebia.fr/2009/11/23/devoxx-jour-2-scala-actors/" title="Devoxx  Jour 2  Scala Actors" >Devoxx &#8211; Jour 2 &#8211; Scala Actors</a></li><li><a
href="http://blog.xebia.fr/2009/11/24/devoxx-jour-3-spring-actionscript/" title="Devoxx  Jour 3  Spring Actionscript" >Devoxx &#8211; Jour 3 &#8211; Spring Actionscript</a></li><li><a
href="http://blog.xebia.fr/2009/11/24/devoxx-jour-3-scalatest/" title="Devoxx  Jour 3  ScalaTest" >Devoxx &#8211; Jour 3 &#8211; ScalaTest</a></li><li><a
href="http://blog.xebia.fr/2009/11/24/devoxx-jour-3-la-keynote/" title="Devoxx  Jour 3  La keynote" >Devoxx &#8211; Jour 3 &#8211; La keynote</a></li><li><a
href="http://blog.xebia.fr/2009/11/25/devoxx-jour-3-jee6/" title="Devoxx  Jour 3  JEE6" >Devoxx &#8211; Jour 3 &#8211; JEE6</a></li><li><a
href="http://blog.xebia.fr/2009/11/27/devoxx-jour-4-maven-reloaded/" title="Devoxx  Jour 4  Maven Reloaded" >Devoxx &#8211; Jour 4 &#8211; Maven Reloaded</a></li><li><a
href="http://blog.xebia.fr/2009/11/27/devoxx-jour-4-java-performance-tuning/" title="Devoxx  Jour 4  Java Performance Tuning" >Devoxx &#8211; Jour 4 &#8211; Java Performance Tuning</a></li><li><a
href="http://blog.xebia.fr/2009/11/30/devoxx-jour-4-integration-pour-le-web-avec-ibeans/" title="Devoxx  Jour 4  Intgration pour le Web avec iBeans" >Devoxx &#8211; Jour 4 &#8211; Intégration pour le Web avec iBeans</a></li><li><a
href="http://blog.xebia.fr/2009/11/27/devoxx-jour-5-projet-lombok/" title="Devoxx  Jour 5  Projet Lombok" >Devoxx &#8211; Jour 5 &#8211; Projet Lombok</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/11/30/revue-de-presse-xebia-136/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Devoxx &#8211; Jour 3 &#8211; JEE6</title><link>http://blog.xebia.fr/2009/11/25/devoxx-jour-3-jee6/</link> <comments>http://blog.xebia.fr/2009/11/25/devoxx-jour-3-jee6/#comments</comments> <pubDate>Wed, 25 Nov 2009 07:46:47 +0000</pubDate> <dc:creator>Romain Maton</dc:creator> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Devoxx]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[JEE]]></category> <category><![CDATA[JEE 6]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3338</guid> <description><![CDATA[Comme énoncé dans notre résumé de la keynote du mercredi, la star de ce Devoxx 2009 est clairement JEE6. Et, au premier rang avec mon superbe t-shirt &#171;&#160;I Love Spring&#160;&#187;, j&#8217;ai pu profiter d&#8217;une présentation générale de cette nouvelle version de JEE par Antonio Goncalves et la petite caricature de Rod Johnson . &#160; Introduction [...]]]></description> <content:encoded><![CDATA[<p><a
href="http://blog.xebia.fr/wp-content/uploads/2009/11/jee6-speaker.jpg"><img
src="http://blog.xebia.fr/wp-content/uploads/2009/11/jee6-speaker-150x150.jpg" border="0" alt="" style="margin: 0em 5em 1em 5em; float: right;" /></a></p><p>Comme énoncé dans notre résumé de la <a
href="http://blog.xebia.fr/2009/11/24/devoxx-jour-3-la-keynote/" title="keynote du mercredi" >keynote du mercredi</a>, la <em>star</em> de ce Devoxx 2009  est clairement JEE6. Et, au premier rang avec mon superbe t-shirt <em>&laquo;&nbsp;I Love Spring&nbsp;&raquo;</em>, j&#8217;ai pu profiter d&#8217;une <a
href="http://www.devoxx.com/display/DV09/The+Java+EE+6++Platform" title="présentation générale de cette nouvelle version de JEE" >présentation générale de cette nouvelle version de JEE</a> par <a
href="http://www.devoxx.com/display/DV09/Antonio+Goncalves" title="Antonio Goncalves" >Antonio Goncalves</a> et la petite caricature de Rod Johnson <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p><p>&nbsp;</p><h3><a
name="Introduction"></a>Introduction</h3><p>Tout d&#8217;abord quelques chiffres autour de JEE6 :</p><ul><li>une sortie prévue le 10 décembre 2009</li><li>11 ans de JEE (JPE / J2EE / JEE)</li><li>le plus grand intervalle entre 2 versions (3 ans et demi avec JEE5)</li><li>28 spécifications</li></ul><p>Un récapitulatif nous montre les différentes spécifications utilisées (ainsi que quelques technos Java SE 6) avec en jaune les nouvelles spécifications et en noir les montées de version majeures :</p><div
align="center"> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/11/jee6_summary.jpg" border="0" alt="" /></div><p>Il y en a pour tous les goûts : de l&#8217;injection, du back-end et du web et cela a de quoi séduire.</p><p>Certaines spécifications sont marquées comme <em>pruned</em> par JEE6 et pourraient éventuellement disparaître dans JEE7. Nous parlons ici des Entity CMP 2.x, de JAX-RPC, JAX-R et de JSR-88 (Java EE Application Deployment).</p><p>Antonio nous fait ensuite un rapide tour d&#8217;horizon des spécifications marquantes de ce JEE6.</p><h3><a
name="WebProfile"></a>Web Profile</h3><p>Web Profile est un sous-ensemble de la plateforme JEE orienté Web. On compte parmi les spécifications retenues JSF, Servlet, JSP, JPA, JTA, JCDI, @Inject ou bien encore EJB Lite. La liste complète en image :</p><div
align="center"> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/11/web_profile.jpg" border="0" alt="" /></div><h3><a
name="EJBLite"></a>EJB Lite</h3><p>De même que pour Web Profile, EJB Lite est un sous-ensemble d&#8217;EJB 3.1, le tout packagé dans un fichier War. Retenues dans EJB Lite :</p><ul><li>Local Session Bean</li><li>Injection</li><li>CMT / BMT</li><li>Interceptors</li><li>Security</li></ul><p><em>Out</em> donc les Messages Driven Beans, les Remote Interfaces ou bien encore les Timer Services.</p><h3><a
name="ManagedBeans"></a>Managed Beans</h3><p>Les Managed Beans sont de simples POJOs gérés par le container <em>(lightweight model)</em>. Ces beans supportent un ensemble de services basiques <em>(par annotations)</em> dont :</p><ul><li>Injection (<code>@Resource</code> &#8230;)</li><li>Life-Cycle (<code>@PostConstruct</code>, <code>@PreDestroy</code>)</li><li>Interceptor (<code>@Interceptor</code>, <code>@AroundInvoke</code>)</li></ul><pre class="brush: java; title: ; notranslate">
@javax.annotation.ManagedBean
public class MyPojo {
   @Resource
   private DataSource dataSource ;
   @PostConstruct
   private void init() {
      // ...
   }
   @Interceptor(LoggingInterceptor.class)
   public void perform() {
       // ...
   }
}
</pre><h3><a
name="BeanValidation"></a>Bean Validation</h3><p>Antonio nous parle ensuite de Bean Validation, spécification qui va nous permettre de définir des contraintes directement sur nos POJOs par annotations. L&#8217;accroche : <em>constrain once, validate anywhere</em> ! Nous pouvons donc ajouter des validations de type <code>@NotNull</code>, <code>@Size</code> ou autres sur nos propriétés de bean. Il est aussi possible de définir nos propres validateurs.</p><p>Cette spécification définit ainsi un standard de validation pour Java, Bean Validation étant déjà supportée par JPA 2.0 et JSF 2.0. On a ainsi une validation qui part de la base de données et va jusqu&#8217;à la couche cliente.</p><h3><a
name="JAXRS"></a>JAX-RS</h3><p>Un peu de RESTful dans JEE avec JAX-RS qui passe au passage en version 1.1 pour supporter les EJBs. L&#8217;API reste bien sûr orientée POJO et annotations. Voici un exemple d&#8217;intégration de JAX-RS avec un EJB :</p><pre class="brush: java; title: ; notranslate">
@Path(&quot;/users/{userId}&quot;)
@Stateless
public class UserResource {
   @GET @Produces(&quot;image/jpeg&quot;)
   public byte[] getPhoto() {
      // ...
   }
   @GET @Produces(&quot;text/xml&quot;)
   public String getUser(@PathParam(&quot;userId&quot;) String id) {
      // ...
   }
}
</pre><h3><a
name="InjectetCDIContextandDependenc"></a>@Inject et CDI (Context and Dependency Injection)</h3><p>Nous vous avons déjà beaucoup parlé de ces JSRs (<a
href="http://blog.xebia.fr/2009/05/11/inject-standardisation-de-linjection-de-dependances/" title="ici" >ici</a>, <a
href=" http://blog.xebia.fr/2009/01/26/revue-de-presse-xebia-93/#JSRexWebBeansUneJSRDependencyI" title="ici" >ici</a>, <a
href="http://blog.xebia.fr/2009/08/10/revue-de-presse-xebia-121/#FinofficielledelaguerredesJSRd" title="ici" >ici</a> mais aussi <a
href="http://blog.xebia.fr/2009/05/11/revue-de-presse-xebia-108/#Inject" title="l" >là</a> et encore <a
href="http://blog.xebia.fr/2009/10/05/revue-de-presse-xebia-128/#WebBeansestmortLonguevieaWeld" title="l" >là</a>).<br
/> <code>@Inject</code>, <code>@Named</code>, <code>@Qualifier</code>, <code>@Scope</code> ou bien encore <code>@Singleton</code>, voici les annotations de JSR-330 que nous allons pouvoir utiliser.<br
/> Quant à CDI (JSR-299), qui utilise @Inject, elle nous propose un set de services utilisables par nos composants EE (servlets, beans&#8230;). Elle nous permet aussi d&#8217;utiliser nos EJBs directement dans JSF en tant que <em>backing beans</em>.<br
/> Évidemment, le contenu de ces spécifications est beaucoup plus large et nous n&#8217;avons ici qu&#8217;un rapide résumé.</p><h3><a
name="Maisaussi"></a>Mais aussi&#8230;</h3><p>Parmi les autres nouveautés, on peut citer en vrac :</p><ul><li>Appels asynchrones avec <code>@Asynchronous</code> avec un retour <code>void</code> ou <code>Future&lt;T&gt;</code> ;</li><li>Annotation <code>@Singleton</code> ;</li><li>Annotation <code>@Cacheable</code> avec toute l&#8217;API de cache <em>(contain, evict ou evictAll)</em> qui permet le support d&#8217;un cache de second niveau ;</li><li><em>Embeddable Container</em>, API qui permet d&#8217;initialiser le container, de récupérer les contextes&#8230; faisant qu&#8217;il est possible de le faire tourner dans un environnement Java SE (par exemple une application Swing), ce ne sera qu&#8217;un JAR dans votre classpath ;</li><li><em>Timer Service</em> pour gérer la planification de tâche avec l&#8217;annotation <code>@Schedule</code> ;</li><li>Fichier <code>web.xml</code> optionnel grâce entre autres aux annotations <code>@WebServlet</code>, <code>@WebFilter</code>,<code>@WebListener</code> ou bien encore <code>@WebInitParam</code> ;</li></ul><h3><a
name="Conclusion"></a>Conclusion</h3><p>L&#8217;opération séduction fonctionne plutôt bien pour JEE6 si l&#8217;on écoute les différents commentaires des conférenciers en sortie de session. La simplicité et facilité d&#8217;utilisation des EJBs, le profile web ou encore les injections ont vraiment convaincus et nombreux sont ceux qui attendent désormais avec impatience ce 10 décembre 2009. En effet, il n&#8217;y a plus qu&#8217;à tester et à voir si JEE6 tient vraiment toutes ses promesses&#8230;</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/11/25/devoxx-jour-3-jee6/feed/</wfw:commentRss> <slash:comments>15</slash:comments> </item> <item><title>Devoxx &#8211; Jour 3 &#8211; La keynote</title><link>http://blog.xebia.fr/2009/11/24/devoxx-jour-3-la-keynote/</link> <comments>http://blog.xebia.fr/2009/11/24/devoxx-jour-3-la-keynote/#comments</comments> <pubDate>Tue, 24 Nov 2009 17:09:31 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Divers]]></category> <category><![CDATA[Adobe]]></category> <category><![CDATA[Devoxx]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JEE]]></category> <category><![CDATA[parleys]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3327</guid> <description><![CDATA[Cette première keynote qui a eu lieu Mercredi marque le début officiel des conférences de Devoxx. Stephan Janssen nous a souhaité la bienvenue en nous précisant quelques chiffres pour Devoxx 2009 : 2500 participants, 737 compagnies représentées comme Xebia par exemple , 132 sessions, 120 speakers, 56 JUGs (dont 10 en France), 36 pays, et [...]]]></description> <content:encoded><![CDATA[<p><a
href="http://www.devoxx.com/"><img
src="http://blog.xebia.fr/wp-content/uploads/2009/11/logo.jpeg" alt="Devoxx" style="margin: 1em 1em 1em 1em; float: right;" /></a><br
/> Cette première keynote qui a eu lieu Mercredi marque le début officiel des conférences de Devoxx. <a
href="http://www.devoxx.com/display/DV09/Stephan+Janssen" title="Stephan Janssen" >Stephan Janssen</a> nous a souhaité la bienvenue en nous précisant quelques chiffres pour Devoxx 2009 :</p><ul><li>2500 participants,</li><li>737 compagnies représentées comme Xebia par exemple <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ,</li><li>132 sessions,</li><li>120 speakers,</li><li>56 JUGs (dont 10 en France),</li><li>36 pays,</li><li>et 19 partenaires ce qui est moins que d&#8217;habitude.</li></ul><h3><a
name="LanouvelleversiondeParleyscom"></a>La nouvelle version de Parleys.com</h3><p>Stephen Janseen débute en nous expliquant ce que fournira la nouvelle version de Parleys.com. Gratuites et disponibles, le nombre de vidéos augmente sur les serveurs, ce qui est très coûteux. Pour pallier ce problème, il a décidé de publier le plus tôt possible les conférences de Devoxx (ce week end même d&#8217;ailleurs <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ). Et avec un abonnement de 49€ pour 6 mois, un utilisateur pourra soit  télécharger toutes les vidéos qu&#8217;il souhaite sur le site soit les regarder directement en streaming. Pour les plus patients, la video sera rendue publique en streaming pour tous au bout d&#8217;un an.<br
/> Dans cette nouvelle version, il sera possible :</p><ul><li>De définir des channels privés ou publiques selon les besoins du publieur,</li><li>De choisir son look&#8217;n'feel,</li><li>D&#8217;ajouter des commentaires sur la piste video.</li></ul><p>Ces nouveautés sont actuellement disponibles sur <a
href="http://beta.parleys.com" title="httpbetaparleyscom" >http://beta.parleys.com</a>.</p><h3><a
name="LakeynotedeJavaEE"></a>La keynote de Java EE 6</h3><p>Cette année à Devoxx, la <em>star</em> est clairement JEE6 avec pas moins de 7 sessions autour de ce sujet :</p><ul><li>Une keynote.</li><li>Une université et un BOF JEE6.</li><li>Une université et un BOF JSF 2.0.</li><li>Une conférence JEE6.</li><li>Une conférence JEE6 et Glassfish V3.</li></ul><p>La keynote met en avant les spécifications les plus <em>hypes</em> de JEE6 avec entre autres :</p><ul><li>EJB 3.1,</li><li>DI 1.0 (@Inject),</li><li>CDI 1.0 (Context and Dependency Injection),</li><li>JSF 2.0 (<a
href="http://blog.xebia.fr/2009/11/18/devoxx-jour-1-jsf-2/" title="vnement que nous avons couvert" >événement que nous avons couvert</a>),</li><li>Bean Validation 1.0,</li><li>Servlet 3.0,</li><li>et JAX-RS 1.1.</li></ul><p>Un article plus complet décrivant JEE6 arrivera très prochainement, l&#8217;information principale de cette keynote étant la date de sortie de JEE6 qui est prévue pour le 10 décembre 2009 <em>(Cf. notre <a
href="http://blog.xebia.fr/2009/11/23/revue-de-presse-xebia-135/#JDKJEEetMavenlesannoncesdeDevo" title="prcdente revue de presse" >précédente revue de presse</a>)</em>.</p><div
align="center"> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/11/keynote_jee6.jpg" border="0" alt="" /></div><h3><a
name="LakeynotedAdobeavecengueststar"></a>La keynote d&#8217;Adobe avec en guest-star Flash Catalyst</h3><p>Adobe fut à l&#8217;honneur cette année <strike>à l&#8217;instar de JavaFX</strike>. La keynote fut l&#8217;occasion pour l&#8217;éditeur de tenter une opération séduction de la communauté Java avec des annonces autour de Flex, Air, Flash Player Lite et Flash Catalyst.</p><p>Pour commencer, Flash Player 10.1 fut présenté. Cette version a surtout été travaillée pour fonctionner sur téléphone mobile :</p><ul><li>Réduction de la mémoire utilisée.</li><li>Limitation de la consommation de batterie.</li><li>Gestion du multi-touch et de l&#8217;accéléromètre.</li></ul><p><a
href="http://www.webkitchen.be/" title="Serge Jespers" >Serge Jespers</a> a présenté un Flash Player déployé sur mobile : oui, il est enfin possible d&#8217;accéder à Parleys depuis son mobile !</p><div
align="center"> <img
src="http://blog.xebia.fr/wp-content/uploads/2009/11/keynote_flash.jpg" border="0" alt="" /></div><p>La liste des partenariats entre Adobe et les fabricants de smartphone et d&#8217;OS a considérablement augmenté depuis l&#8217;année dernière. Avec, entre autres, le petit dernier : RIM, l&#8217;OS de BlackBerry. Actuellement, Apple ne fait toujours pas partie de cette liste. Aucun accord n&#8217;a été trouvé pour le moment. Il n&#8217;est donc pas possible de lire une application Flex par exemple depuis le navigateur de son iPhone. En revanche, il est possible de déployer une application Flex sur l&#8217;AppStore et de l&#8217;utiliser. En effet, Adobe a mis en place un <a
href="http://www.insideria.com/2009/10/flash-and-iphone.html" title="moyen" >moyen</a> permettant de convertir un swf en code natif pour l&#8217;iPhone. Des jeux Flash sont d&#8217;ailleurs déjà disponibles sur l&#8217;AppStore.</p><p>Autre annonce, la sortie depuis quelques jours de la béta de Adobe Air 2.0. Cette version fournit les nouveautés suivantes :</p><ul><li>Le support de l&#8217;usb.</li><li>Le support du multi-touch.</li><li>De nouvelles APIs permettant de récupérer la sortie du microphone.</li><li>Une sécurité améliorée pour mieux répondre aux standards des entreprises et gouvernements.</li></ul><p>Nos deux speakers ont ensuite impressionné la salle en réalisant rapidement à partir d&#8217;un dessin issu d&#8217;Illustrator une application Flex comportant des effets, gérant un évènement <em>click</em> sur un bouton, et le plus impressionnant de tous, la gestion d&#8217;une scrollbar provenant d&#8217;un dessin. Cette génération fut ensuite exportée dans Flash Builder 4 en tant que projet Flex. La salle semblait séduite par la démo. Attendons maintenant 2010, pour voir si cette plateforme tiendra ses promesses et si la communauté continuera à suivre.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/11/24/devoxx-jour-3-la-keynote/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/11/23/revue-de-presse-xebia-135/</link> <comments>http://blog.xebia.fr/2009/11/23/revue-de-presse-xebia-135/#comments</comments> <pubDate>Mon, 23 Nov 2009 19:07:04 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Devoxx]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[jdk-7]]></category> <category><![CDATA[JEE 6]]></category> <category><![CDATA[Maven 3.0]]></category> <category><![CDATA[owasp]]></category> <category><![CDATA[Quartz]]></category> <category><![CDATA[Terracotta]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3296</guid> <description><![CDATA[La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Terracotta a faim d&#8217;Open Source : acquisition de Quartz JDK 7, JEE 6, et Maven 3.0 : les annonces de Devoxx RIA GWT version 2.0 RC1 Le coin de la technique OWASP Security Top Ten, la cuvée 2010 est arrivée [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/11/23/revue-de-presse-xebia-135/#TerracottaafaimdOpenSourceacqu">Terracotta a faim d&#8217;Open Source : acquisition de Quartz</a></li><li><a
href="http://blog.xebia.fr/2009/11/23/revue-de-presse-xebia-135/#JDKJEEetMavenlesannoncesdeDevo">JDK 7, JEE 6, et Maven 3.0 : les annonces de Devoxx</a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/11/23/revue-de-presse-xebia-135/#GWTversionRC">GWT version 2.0 RC1</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/11/23/revue-de-presse-xebia-135/#OWASPSecurityTopTenlacuveestar">OWASP Security Top Ten, la cuvée 2010 est arrivée</a></li><li><a
href="http://blog.xebia.fr/2009/11/23/revue-de-presse-xebia-135/#QuedevientSpringRichClient">Que devient Spring Rich Client ?</a></li></ul><p><strong>Evènements de notre communauté en France et à l&#8217;étranger</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/11/23/revue-de-presse-xebia-135/#Devoxx">Devoxx 2009</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="TerracottaafaimdOpenSourceacqu"></a>Terracotta a faim d&#8217;Open Source : acquisition de Quartz</h4><p>Terracotta a annoncé cette semaine <a
href=" http://terracotta.org/news/terracotta-acquires-quartz" title="l'acquisition de Quartz" >l&#8217;acquisition de Quartz</a>, le scheduler open source le plus connu est le mieux intégré du marché. Cette acquisition est <a
href="http://blog.xebia.fr/2009/08/24/revue-de-presse-xebia-123/#AcquisitiondEhcacheparTerracot" title="lexacte copie de celle opre cet t avec Ehcache" >l&#8217;exacte copie de celle opérée cet été avec Ehcache</a>. Tout comme ehCache, Quartz est un projet open source, largement utilisé et bien intégré avec la plupart des solutions stars de leur secteur &#8230; et porté par un seul homme (James House). Cible idéale pour Terracotta ? Probablement. Mais il se pose toujours la question suivante : comment Terracotta compte t&#8217;il rentabiliser cette acquisition, quand on sait a quel point la monétisation d&#8217;un projet open source est difficile. Quoi qu&#8217;il arrive, d&#8217;ici la prochaine acquisition, Terracotta touche, par ce biais, une communauté de plus en plus large. Cela sera-t-il suffisant pour séduire un éventuel racheteur ?</p><p>D&#8217;autre part, comme le signale <a
href="http://puredanger.com/tech/2009/11/19/terracotta-acquires-quart/" title="Alex Miller" >Alex Miller</a>, Quartz c&#8217;est :</p><ul><li>Un nouveau <a
href="http://www.quartz-scheduler.org/" title="site web" >site web</a>.</li><li>Un nouveau <a
href="http://svn.terracotta.org/svn/quartz/" title="gestionnaire de sources" >gestionnaire de sources</a>.</li><li>Un nouveau <a
href="http://jira.terracotta.org/jira/browse/QTZ" title="gestionnaire danomalies" >gestionnaire d&#8217;anomalies</a>.</li><li>Un nouveau <a
href=" http://forums.terracotta.org/forums/forums/show/17.page" title="forum" >forum</a>.</li><li>Mais toujours la même licence, Apache 2.</li></ul><h4><a
name="JDKJEEetMavenlesannoncesdeDevo"></a>JDK 7, JEE 6, et Maven 3.0 : les annonces de Devoxx</h4><p>La conférence Devoxx ayant eu lieu la semaine dernière a été l&#8217;occasion de plusieurs annonces importantes qui ont rapidement fait le tour de la blogosphère.</p><p><strong>JDK 7 avec les closures, mais retardé à nouveau</strong></p><p>C&#8217;est surement l&#8217;annonce qui à fait le plus de bruit. Elle s&#8217;est répandue comme une trainée de poudre tant elle était inattendue. Lors d&#8217;une présentation en apparence sans surprise sur les nouveautés du JDK 7, Mark Reinhold explique que le temps est venu pour Java de supporter les <em>closures</em>. Afin de permettre leur implémentation, la finalisation du JDK 7 est repoussée à septembre 2010. Trois nouveaux <em>milestones</em> sont donc ajoutés au calendrier initial avec une finalisation des fonctionnalités <em>(features complete)</em> prévue pour Juin 2010. Ce nouveau délai permet donc à l&#8217;équipe du JDK de travailler sereinement sur la finalisation de Jigsaw, d&#8217;implémenter les <em>closures</em>, et devrait vraisemblablement permettre également l&#8217;inclusion du <a
href="http://mail.openjdk.java.net/pipermail/coin-dev/2009-February/000003.html" title="multicatch pour les exceptions" >multi-catch pour les exceptions</a>.</p><p>En fait ce délai semble laisser la possibilité à de nombreuses autres fonctionnalités et spécifications qui avaient été mises de coté de prétendre de nouveau intégrer le JDK 7. On peut ainsi imaginer :</p><ul><li>JMX 2, qui avait <a
href="http://blog.xebia.fr/2009/06/29/revue-de-presse-xebia-115/#QuedevientJMX" title="t repouss au JDK 8" >été repoussé au JDK 8</a></li><li>La <a
href="http://www.jcp.org/en/jsr/detail?id=310" title="JSR-310 (Date and Time API)" >JSR-310 (Date and Time API)</a> qui avait connu des difficultés par manque de contributions et <a
href="http://blog.xebia.fr/2009/03/30/revue-de-presse-xebia-102/#EnfinuneroadmapdtaillepourleJD" title="navait finalement pas t incluse" >n&#8217;avait finalement pas été incluse</a> à la liste <em>finale</em> des fonctionnalités du JDK 7</li><li>La <a
href="http://www.jcp.org/en/jsr/detail?id=296" title="JSR-296 (Swing Application Framework)" >JSR-296 (Swing Application Framework)</a> dont le retrait du JDK 7 <a
href="http://blog.xebia.fr/2009/08/24/revue-de-presse-xebia-123/#PasdeSwingApplicationFramework" title="avait t annonc cet t" >avait été annoncé cet été</a></li><li>Le <a
href="http://www.jroller.com/scolebourne/entry/java_7_properties_terminology" title="support des proprits" >support des propriétés</a></li></ul><p>Questionné à Devoxx sur l&#8217;étendue des fonctionnalités pouvant être concernées par une potentielle inclusion, Mark Reinhold ne ferme la porte à aucune hypothèse. Il explique ainsi qu&#8217;il n&#8217;a pas eu l&#8217;occasion de voir de <em>proposal</em> pour les propriétés qui lui semblait satisfaisante jusqu&#8217;à présent mais n&#8217;exclue pas une telle possibilité d&#8217;ici la finalisation des fonctionnalités du JDK 7.</p><p><strong>JEE 6 finalisé en décembre</strong></p><p>Lors du <em>keynote</em> du premier jour des conférences, Roberto Chinnici (<em>Spec lead</em> JEE 6) a annoncé la finalisation de l&#8217;ensemble des spécifications JEE 6 ainsi que de l&#8217;implémentation de référence associée (<a
href="https://glassfish.dev.java.net/" title="Glassfish V3" >Glassfish V3</a>) pour le 10 décembre 2009.</p><p>Cette nouvelle intervient alors que JEE 6 a été très bien accueilli par le public à Devoxx comme il l&#8217;a été maintes fois répété dans <a
href="http://lescastcodeurs.com/2009/11/les-cast-codeurs-episode-12-special-devoxx-2009/" title="le dernier pisode des Cast Codeurs" >le dernier épisode des Cast Codeurs</a>.</p><p><strong>Maven 3.0 finalisé en Janvier</strong></p><p>Cette annonce est passée plus inaperçue parmi l&#8217;actualité de Sun. Pourtant Jason van Zyl, lors de sa présentation des nouveautés de Maven 3.0, a annoncé une finalisation de la nouvelle version de son outil de <em>build</em> pour la fin janvier 2010.</p><p>Cette nouvelle version apportera le support des <a
href="http://www.sonatype.com/people/2009/11/maven-3x-community-participation-multi-threaded-execution/" title="builds multithreadés" >builds multithreadés</a> ainsi qu&#8217;un <a
href="http://www.sonatype.com/people/2009/11/maven-3x-community-participation-multi-threaded-execution/" title="environnement de base" >environnement de base</a> pour les extensions très intéressantes que sont Polyglot Maven et Maven Shell.</p><p>Nous publierons rapidement un article plus détaillé sur l&#8217;ensemble des nouveautés à venir sur Maven 3.x.</p><h3><a
name="RIA"></a>RIA</h3><h4><a
name="GWTversionRC"></a>GWT version 2.0 RC1</h4><p>Une nouvelle version majeure du RIA de Google, <a
href="http://code.google.com/intl/fr/webtoolkit/" title="GWT" >GWT</a>, sort en <a
href="http://code.google.com/p/google-web-toolkit/wiki/GWT_2_0_RC" title="version 20 RC 1" >version 2.0 RC 1</a>. Cependant, aucune date de sortie n&#8217;est encore annoncée.<br
/> Cette version s&#8217;accompagne d&#8217;un plugin pour Eclipse, nommé Google Plugin for Eclipse 1.2 RC1, dont l&#8217;on recommande vivement la mise à jour.<br
/> Parmi les nouveautés, on peut citer:</p><ul><li>Utilisation du Development Mode (anciennement appelé Hosted Mode) dans le navigateur de votre choix via un plugin.</li><li>Possibilité de fragmenter le code JavaScript généré en plusieurs morceaux en utilisant GWT.runAsync() va permettre d&#8217;accélérer considérablement les temps de chargement.</li><li>Story Of Your Compile (SOYC) génère un rapport sur le processus de compilation et permet d&#8217;avoir une meilleure vision du code généré.</li><li>Facilitation de la création d&#8217;IHM par déclaration avec Ui Binder.</li><li>Apparition d&#8217;un ClientBundle, similaire au ImageBundle, qui permet la généralisation du sprinting à d&#8217;autres formats les fichiers textes, css, etc.</li><li>Utilisation de HtmlUnit pour les tests unitaires, qui permet maintenant de débugger directement dans le débuggeur Java.</li></ul><p>Les nouveautés sont donc nombreuses et apportent un réel gain de productivité.<br
/> Le combat auquel se livrent actuellement les RIA est loin d&#8217;être terminé&#8230;</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="OWASPSecurityTopTenlacuveestar"></a>OWASP Security Top Ten, la cuvée 2010 est arrivée</h4><p>Après le Beaujolais Nouveau et le calendrier des pompiers, c&#8217;est au tour de l&#8217;OWASP de faire son annonce avec la <a
href="http://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project" title="mouture 2010 de son "Security Top Ten"" >mouture 2010 de son &laquo;&nbsp;Security Top Ten&nbsp;&raquo;</a>. En attendant de rédiger un billet complet sur ces failles et leur prévention en Java, voici un <a
href="http://www.slideshare.net/XebiaFrance/xebia-knowledge-exchange-owasp-top-ten-2565878" title="lien vers une prsentation que nous avions fait pour une formation interne" >lien vers une présentation que nous avions fait pour une formation interne</a> et la liste 2010 avec une présentation très succincte des parades dont nous disposons en Java :</p><p><strong>A1 &#8211; Injection :</strong> injection sql, hibernate ql, jpa ql, http, etc.<br
/> Utiliser des prepared statements, les paramètres de commons http, etc.</p><p><strong>A2 &#8211; Cross Site Scripting (XSS)</strong><br
/> Utiliser JSR 303 Bean Validation pour valider les données entrantes et <em>escaper</em> les données sortantes avec JSTL ou un équivalent.</p><p><strong>A3 &#8211; Failles d&#8217;Authentification et de gestion de Gestion de Session</strong><br
/> Utiliser Spring Security ou les mécanismes du moteur de servlet.</p><p><strong>A4 &#8211; Référence Directe Non Sécurisée aux Objets de données</strong><br
/> Revalider tous les ID provenants des requêtes HTTP ou utiliser un <em>aliasing par random</em> (cf. org.owasp.esapi.AccessReferenceMap).</p><p><strong>A5 &#8211; Cross Site Request Forgery (CSRF)</strong></p><p>Protéger les invocations d&#8217;URL par le contrôle d&#8217;un nombre aléatoire généré côté serveur. En cas de risque majeur, utiliser un framework Web de description de flow (Spring Web Flow, JBoss Seam, etc).</p><p><strong>A6 &#8211; Mauvaise configuration de sécurité (Nouveau)</strong><br
/> Utiliser les installation standard des systèmes d&#8217;exploitation et des middlewares, restreindre les droits des utilisateurs unix, etc.</p><p><strong>A7 &#8211; Mauvaise protection des URL</strong></p><p>Utiliser des mécanismes de sécurité déclarative par URL ou par annotation sur les beans controlleurs et de service.</p><p><strong>A8 &#8211; Utilisation de redirects et forwards non controlés (nouveau)</strong></p><p>Ne pas construire l&#8217;url de redirection ou de forward avec des données saisies par l&#8217;internaute. Figer les valeurs possibles de redirection dans le code ou dans des fichiers de configuration.</p><p><strong>A9 &#8211; Failles des systèmes de stockages encryptés</strong></p><p>Ne jamais stocker un mot de passe en clair, éviter de stocker des informations sensibles comme les numéros de carte bleue, . Si c&#8217;est finalement nécessaire, mettre en place un système de stockage dédié avec une gestion très attentive.<br
/> Documenter dans les configurations de logging (e.g. log4j.properties) les loggers à ne pas activer si des informations sensibles ne doivent pas sortir dans les logs (e.g. couche de binding des frameworks web).</p><p><strong>A10 &#8211; Protection insuffisante des canaux de communication</strong></p><p>Ne pas réinventer de canal de transport sécurisé, utiliser SSL quand c&#8217;est possible ; sinon, regarder WS-Security même s&#8217;il est très couteux à mettre en œuvre (debugging, etc).</p><h4><a
name="QuedevientSpringRichClient"></a>Que devient Spring Rich Client ?</h4><p><a
href="http://spring-rich-c.sourceforge.net/1.1.0/index.html" title="Spring Rich Client" >Spring Rich Client</a> est un <em>framework</em> applicatif basé sur Spring. Il permet de créer des applications clients lourds plus facilement qu&#8217;en utilisant l&#8217;environnement Swing de base.</p><p>La promesse est séduisante, toutefois le projet initié en 2004 ne s&#8217;est vu finalisé que 4 ans plus tard, en mars 2008. Dès lors certains doutes planent quant à la santé de cette communauté.</p><p>Lieven Doclo, <em>leader</em> du projet, en a présenté les fonctionnalités lors d&#8217;un <a
href="http://devoxx.com/display/DV09/Spring+Rich+Client" title="BOF  Devoxx" >BOF à Devoxx</a>. Ce fut également l&#8217;occasion d&#8217;un certain nombre de questions quant à la santé et au positionnement de ce projet méconnu :</p><ul><li>Bien qu&#8217;il soit directement référencé au sein du <a
href="http://www.springsource.org/projects" title="portfolio de SpringSource" >portfolio de SpringSource</a>, l&#8217;éditeur n&#8217;investit pas dans ce projet. On notera d&#8217;ailleurs que Lieven Doclo n&#8217;est pas employé par SpringSource mais consultant Java externe.</li><li>Le projet souhaite se positionner face à <a
href="http://www.eclipse.org/community/rcp.php" title="Eclipse RCP" >Eclipse RCP</a> et <a
href="http://platform.netbeans.org/" title="NetBeans RCP" >NetBeans RCP</a> en mettant en avant l&#8217;obligation d&#8217;utiliser SWT pour le premier et le manque de perspectives pour le second du fait des récentes déclarations d&#8217;Oracle.</li><li>Les évolutions lentes du projet s&#8217;expliquent par la taille réduite de l&#8217;équipe. Lieven Doclo appelle d&#8217;ailleurs les volontaires à le rejoindre.</li></ul><p>Si l&#8217;utilisation du <em>framework</em> Spring pour l&#8217;assemblage des composants des applications Spring RC est attirante car elle permet de reproduire les paradigmes de programmation utilisés pour le développement d&#8217;applications Web, Spring Rich Client peine encore à convaincre face aux poids lourds que sont les solutions d&#8217;Eclipse et de Netbeans. Il pourra toutefois intéresser les équipes souhaitant réutiliser des composants Spring existants.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="Devoxx"></a>Devoxx 2009</h4><p>La semaine dernière se tenait <a
href="http://www.devoxx.com/display/DV09/Home" title="ldition 2009 de Devoxx" >l&#8217;édition 2009 de Devoxx</a> à Anvers. Retrouvez nos premiers billets sur cette semaine de conférence&nbsp;:</p><ul><li><a
href="http://blog.xebia.fr/2009/11/17/devoxx-jour-1-adobe-university/" title="Devoxx  Jour 1  Adobe University" >Devoxx &#8211; Jour 1 &#8211; Adobe University</a></li><li><a
href="http://blog.xebia.fr/2009/11/18/devoxx-jour-1-applications-robustes-avec-amazon-ec2/" title="Devoxx  Jour 1  Applications robustes avec Amazon EC2" >Devoxx &#8211; Jour 1 &#8211; Applications robustes avec Amazon EC2</a></li><li><a
href="http://blog.xebia.fr/2009/11/18/devoxx-jour-1-kanban-in-action/" title="Devoxx  Jour 1  Kanban in action" >Devoxx &#8211; Jour 1 &#8211; Kanban in action</a></li><li><a
href="http://blog.xebia.fr/2009/11/18/devoxx-jour-1-jsf-2/" title="Devoxx  Jour 1  JSF 2" >Devoxx &#8211; Jour 1 &#8211; JSF 2</a></li><li><a
href="http://blog.xebia.fr/2009/11/18/devoxx-jour-1-nosql-avec-hbase/" title="Devoxx  Jour 1  NoSQL avec HBase" >Devoxx &#8211; Jour 1 &#8211; NoSQL avec HBase</a></li><li><a
href="http://blog.xebia.fr/2009/11/19/devoxx-jour-2-google-app-engine/" title="Devoxx  Jour 2  Google App Engine" >Devoxx &#8211; Jour 2 &#8211; Google App Engine</a></li><li><a
href="http://blog.xebia.fr/2009/11/19/devoxx-jour-2-les-effets-avec-flex-4/" title="Devoxx  Jour 2  Les effets avec Flex 4" >Devoxx &#8211; Jour 2 &#8211; Les effets avec Flex 4</a></li><li><a
href="http://blog.xebia.fr/2009/11/23/devoxx-jour-2-hibernate-search/" title="Devoxx  Jour 2  Hibernate Search" >Devoxx &#8211; Jour 2 &#8211; Hibernate Search</a></li><li><a
href="http://blog.xebia.fr/2009/11/23/devoxx-jour-2-java-fx-the-developer-guide/" title="Devoxx  Jour 2  Java FX The developer guide" >Devoxx &#8211; Jour 2 &#8211; Java FX The developer guide</a></li><li><a
href="http://blog.xebia.fr/2009/11/23/devoxx-jour-2-soa-en-pratique/" title="Devoxx  Jour 2  SOA en pratique" >Devoxx &#8211; Jour 2 &#8211; SOA en pratique</a></li><li><a
href="http://blog.xebia.fr/2009/11/23/devoxx-jour-2-scala-actors/" title="Devoxx  Jour 2  Scala Actors" >Devoxx &#8211; Jour 2 &#8211; Scala Actors</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/11/23/revue-de-presse-xebia-135/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/11/16/revue-de-presse-xebia-134/</link> <comments>http://blog.xebia.fr/2009/11/16/revue-de-presse-xebia-134/#comments</comments> <pubDate>Mon, 16 Nov 2009 17:47:49 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[Google App Engine]]></category> <category><![CDATA[Google Wave]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[jdk-7]]></category> <category><![CDATA[SOA]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3140</guid> <description><![CDATA[La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Innovation permanente chez Google Java SE 5 en fin de vie, JDK 7 en approche SOA 10 mythes au sujet des SOA Evènements de notre communauté en France et à l&#8217;étranger Soirée Google au LyonJUG Actualité éditeurs / SSII Innovation [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/11/16/revue-de-presse-xebia-134/#InnovationpermanentechezGoogle">Innovation permanente chez Google</a></li><li><a
href="http://blog.xebia.fr/2009/11/16/revue-de-presse-xebia-134/#JavaSEenfindevieJDKenapproche">Java SE 5 en fin de vie, JDK 7 en approche</a></li></ul><p><strong>SOA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/11/16/revue-de-presse-xebia-134/#mythesausujetdesSOA">10 mythes au sujet des SOA</a></li></ul><p><strong>Evènements de notre communauté en France et à l&#8217;étranger</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/11/16/revue-de-presse-xebia-134/#SoireGoogleauLyonJUG">Soirée Google au LyonJUG</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="InnovationpermanentechezGoogle"></a>Innovation permanente chez Google</h4><p>Google est encore une fois au cœur de l&#8217;actualité cette semaine avec la mise à disposition d&#8217;un nouveau langage de programmation et d&#8217;un protocole destiné à remplacer HTTP.</p><p><a
href="http://golang.org/" title="Le langage Go" >Le langage Go</a> est à la croisée de C, Java et Pascal et est annoncé comme ayant des performances proches du C. Go se distingue par le fait que son compilateur produise directement du code natif, et qu&#8217;il ne requiert donc pas de machine virtuelle. Il apporte toutefois un ramasse-miette et un ensemble d&#8217;abstractions permettant de simplifier la programmation parallèle.</p><p>Très rapidement, plusieurs opinions et résultats d&#8217;expérimentations sont apparus. Ainsi, <a
href="http://timyang.net/programming/c-erlang-java-performance/" title="Tim Yang montre les performances" >Tim Yang montre les performances</a> obtenues par une application serveur développée en Java (en utilisant Mina), C (avec Nginx) et Go. Les résultats qu&#8217;il obtient montre que Go est en retrait par rapport aux deux autres solutions. Ces résultats doivent toutefois être relativisés par la maturité acquise par le système d&#8217;entrée / sortie de la JVM, le design très performant offert par Mina, la réputation de performance de Nginx et enfin, bien sûr, par le stade embryonnaire de Go.</p><p>Google a également diffusé les spécifications de <a
href="http://dev.chromium.org/spdy/spdy-protocol" title="SPDY" >SPDY</a> (prononcer Speedy), un protocole visant à remplacer HTTP. On le sait, HTTP n&#8217;est pas adapté au Web moderne. En particulier il n&#8217;est pas optimisé pour obtenir une latence minimale. SPDY ne redéfinit pas tout, il se base sur HTTP et y ajoute un ensemble de possibilités supplémentaires telles que la compression d&#8217;en-têtes, le multiplexage de flux ou encore la priorisation de requêtes.</p><p>Des tests sur le transport du contenu des sites Web les plus populaires, permettent à Google d&#8217;annoncer un gain moyen de 55%.</p><p>L&#8217;entreprise américaine continue donc d&#8217;impressionner par son innovation permanente, n&#8217;hésitant pas à remettre en cause régulièrement des technologies considérées comme incontournables.</p><h4><a
name="JavaSEenfindevieJDKenapproche"></a>Java SE 5 en fin de vie, JDK 7 en approche</h4><p>Sur la <a
href="http://java.sun.com/javase/downloads/index_jdk5.jsp" title="page ddie  J2SE 50" >page dédiée à J2SE 5.0</a>, Sun notifie depuis début novembre les utilisateurs de l&#8217;arrivée en fin de vie <em>(End of Service Life)</em> de cette version de Java.</p><p>Arrivé <a
href="http://java.sun.com/j2se/codenames.html" title="il y a 5 ans" >il y a 5 ans</a>, Java 5 avait constitué la mise à jour la plus importante de la plate-forme et de son langage depuis sa création. Son adoption en entreprise fut longue, mais s&#8217;est concrétisée au fil du temps. Ainsi aujourd&#8217;hui, on ne compte plus qu&#8217;une minorité de projets fonctionnant encore exclusivement avec la version 1.4 ou inférieure de Java.</p><p>Il en est tout autrement pour Java 6.0. En effet, contrairement à la version 5.0 dont l&#8217;adoption était indispensable pour profiter des technologies d&#8217;entreprise les plus récentes, les principales motivations pour passer à la version 6.0 concernent la JVM elle-même et les améliorations qu&#8217;elle a connue.</p><p>L&#8217;arrivée en EOSL pourrait accélérer les choses dans certaines entreprises, tandis que d&#8217;autres préfèreront se tourner vers l&#8217;offre <a
href="http://www.sun.com/software/javaforbusiness/" title="Java for Business" >Java for Business</a> de Sun qui permet de continuer de bénéficier du support de l&#8217;éditeur.</p><p>Une autre possibilité pourrait se trouver dans l&#8217;arrivée de JDK 7. En effet, la <a
href="http://openjdk.java.net/projects/jdk7/milestones/" title="roadmap" >roadmap</a> du projet promet un début de phase <em>Release Candidate</em> débutant à la fin du premier trimestre 2010 pour une durée d&#8217;un à deux mois, ce qui permettrait donc l&#8217;arrivée d&#8217;une version finale dans 6 mois. Si la confiance dans les dates de finalisation annoncées de JDK 7 s&#8217;est évaporée au fil des reports successifs, la situation semble maintenant se stabiliser : <a
href="http://blogs.sun.com/mr/entry/jdk7_m5" title="Mark Reinhold vient dannoncer" >Mark Reinhold vient d&#8217;annoncer</a> la disponibilité de la M5 de JDK 7, en accord avec le calendrier prévisionnel de la <em>roadmap</em>. Quatre des fameuses évolutions du langage apportées par le projet Coin y sont implémentées et peuvent donc être d&#8217;ores et déjà testées.</p><h3><a
name="SOA"></a>SOA</h3><h4><a
name="mythesausujetdesSOA"></a>10 mythes au sujet des SOA</h4><p><a
href="http://www.ebizq.net/webinars/11585.html" title="Yefim Natis de Gartner a expos durant lvnement SOA in Action dix mythes communs" >Yefim Natis, de Gartner, a exposé durant l&#8217;évènement <em>SOA in Action</em>, dix mythes communs</a> <em>(et la réponse qu&#8217;il faut leur apporter)</em> sur la mise en place d&#8217;une SOA.<br
/> Là où l&#8217;article porte à sourire, c&#8217;est que, pour une fois, la faute est partagée : cinq de ces mythes sont propagés par les fanatiques de la SOA, et sont mis en regard de cinq autres portés par les allergiques.</p><p>Pour les fanatiques, nous avons :</p><ul><li>Les services sont portés par l&#8217;IT et propagés vers les acteurs fonctionnels.<br
/> Pour Yefim Natis, une SOA est un moyen pour l&#8217;IT de mieux comprendre et appréhender les problématiques métier.</li><li>Les plate formes orientées services reposent sur des briques pré-fabriquées.<br
/> Les SOA ne reposent pas uniquement sur des applications &#8216;services&#8217;, mais aussi sur des batchs et des applications héritées.</li><li>Partager et réutiliser sont les principaux apports d&#8217;une SOA.<br
/> C&#8217;est en effet un des bénéfices attendus, mais c&#8217;est loin d&#8217;être le seul. On peut citer : meilleure exploitation, meilleure montée en charge &#8230;</li><li>Mettre en place une SOA permet de s&#8217;abstenir de réaliser une phase d&#8217;intégration.<br
/> Même si la SOA permet d&#8217;introduire une stabilité dans les interactions entre services, elle ne dispense pas de réaliser de vrais tests d&#8217;intégration, bien au contraire.</li><li>Une SOA réduit les coûts du SI.<br
/> Sur le long terme, peut être &#8230; Mais dans un premier temps, une SOA peut s&#8217;avérer couteuse : nouvelle façon de penser, nouveaux outils, formations à prévoir&#8230;</li></ul><p>Pour les allergiques, la liste est la suivante :</p><ul><li>Une SOA introduit une grande complexité et de nouveaux problèmes.<br
/> La plupart des problèmes liés à la mise en place d&#8217;une SOA sont des problèmes existants partout ailleurs dans le monde de l&#8217;informatique distribuée. La mise en œuvre d&#8217;une SOA ne fait souvent que mettre en exergue des problèmes existants.</li><li>SOA n&#8217;est pas nouveau, c&#8217;est juste un effet de mode.<br
/> Il faut voir au delà de l&#8217;aspect technique : certes SOA repose sur les principes de l&#8217;informatique distribué, mais c&#8217;est l&#8217;ensemble de la démarche qui est nouvelle et qui a au moins l&#8217;avantage de crystaliser certaines bonnes pratiques.</li><li>Une SOA est vouée à l&#8217;échec, parce que les Web Services sont un standard trop instable.<br
/> SOA et SOAP sont deux choses complètement différentes. Les Web Services sont &#8216;juste&#8217; un moyen d&#8217;exposer des services.</li><li>Il est difficile de vendre une SOA, car les acteurs fonctionnels n&#8217;en voient pas les bénéfices.<br
/> Certains bénéfices sont apparents de manières quasi instantanée <em>(on pense aux indicateurs BAM)</em>, et les acteurs fonctionnels gagnent rapidement une nouvelle compréhension de leur environnement IT.</li><li>SOA est déjà dépassé, il faut passer à la suite.<br
/> Le challenge d&#8217;une SOA basique est en effet dépassé. Mais il reste de nombreux enjeux à adresser, notamment dans les architectures les plus complexes.</li></ul><p><a
href="http://www.infoq.com/news/2009/11/SOA10" title="via InfoQ" >via InfoQ</a></p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="SoireGoogleauLyonJUG"></a>Soirée Google au LyonJUG</h4><p>Lundi 23 Novembre, le <a
href="http://www.lyonjug.org/bin/view/Main/" title="LyonJUG" >LyonJUG</a> organise une soirée dédiée aux technologies Google. L&#8217;occasion de découvrir, démonstration à l&#8217;appui, Google Web Toolkit, Google App Engine, Android et le dernier né Google Wave. L&#8217;objectif est aussi de présenter l&#8217;architecture globale de ces produits pour mieux en saisir le fonctionnement et le but.<br
/> Pour faciliter l&#8217;organisation de la soirée dans les locaux d&#8217;EPITECH, vous devez vous inscrire <a
href="http://www.jugevents.org/jugevents/event/show.html?id=21154" title="ici" >ici</a>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/11/16/revue-de-presse-xebia-134/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Formation Java Performance Tuning par Kirk Pepperdine</title><link>http://blog.xebia.fr/2009/11/06/formation-java-performance-tuning-par-kirk-pepperdine/</link> <comments>http://blog.xebia.fr/2009/11/06/formation-java-performance-tuning-par-kirk-pepperdine/#comments</comments> <pubDate>Fri, 06 Nov 2009 16:31:12 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Performance]]></category> <category><![CDATA[J2EE]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3071</guid> <description><![CDATA[Xebia organise une formation d’optimisation des performances d’applications Java/J2EE avec Kirk Pepperdine, une première en France, entre le 18 et 21 janvier 2010. Pour ceux qui ne le connaissent pas, Kirk Pepperdine dispose de plus de 15 ans d’expérience dans les technologies orientées objets et l’optimisation de la performance. Figure emblématique du monde Java et [...]]]></description> <content:encoded><![CDATA[<p>Xebia organise une <a
href="http://www.xebia.fr/sites/default/files/formation-java-performance-tuning-kirk-pepperdine.pdf">formation d’optimisation des performances d’applications Java/J2EE</a> avec <strong>Kirk Pepperdine</strong>, une première en France, entre le 18 et 21 janvier 2010.</p><p>Pour ceux qui ne le connaissent pas, Kirk Pepperdine dispose de plus de 15 ans d’expérience dans les technologies orientées objets et l’optimisation de la performance. Figure emblématique du monde Java et élu <em>&laquo;&nbsp;Champion JAVA&nbsp;&raquo;</em> en 2005, Kirk est reconnu comme le référent de l’optimisation de performance Java. Il est le DSI de Kodewerk Ltd et le principal contributeur de <a
href="http://javaperformancetuning.com">javaperformancetuning.com</a>.</p><p>Cette formation approfondie de 4 jours permettra aux stagiaires d’obtenir les compétences nécessaires pour optimiser la performance de leurs applications Java/J2EE. Vous aborderez pendant cette formation tous les aspects de la performance :</p><ul><li>L’outillage nécessaire.</li><li>Les méthodologies à appliquer.</li><li>Les concepts d’architecture sous jacents à la performance.</li><li>Les meilleures pratiques.</li><li>Le benchmarking.</li><li>La gestion de mémoire.</li></ul><p>Si cette formation vous intéresse, n’hésitez pas à contacter Roderic Pratt au 06.09.69.05.49.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/11/06/formation-java-performance-tuning-par-kirk-pepperdine/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/11/02/revue-de-presse-xebia-132/</link> <comments>http://blog.xebia.fr/2009/11/02/revue-de-presse-xebia-132/#comments</comments> <pubDate>Mon, 02 Nov 2009 17:35:24 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Amazon]]></category> <category><![CDATA[Flex]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Oracle]]></category> <category><![CDATA[POI]]></category> <category><![CDATA[RDS]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[Spring]]></category> <category><![CDATA[SpringOne]]></category> <category><![CDATA[Sun]]></category> <category><![CDATA[tcServer]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3056</guid> <description><![CDATA[La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Amazon lance Relational Database Service Oracle tente de rassurer la communauté Sun Keynote de Rod Johnson à SpringOne/2GX 2009 Le coin de la technique Optimisez vos requêtes SQL Apache POI 3.5 Interminables débats sur la mort de Java Une version [...]]]></description> <content:encoded><![CDATA[<p><img
style="margin: 1em 1em 1em 1em; float: right;" src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" /><br
/> <em>La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/11/02/revue-de-presse-xebia-132/#AmazonlanceRelationalDatabaseS">Amazon lance Relational Database Service</a></li><li><a
href="http://blog.xebia.fr/2009/11/02/revue-de-presse-xebia-132/#Oracletentederassurerlacommuna">Oracle tente de rassurer la communauté Sun</a></li><li><a
href="http://blog.xebia.fr/2009/11/02/revue-de-presse-xebia-132/#KeynotedeRodJohnsonSpringOneGX">Keynote de Rod Johnson à SpringOne/2GX 2009</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/11/02/revue-de-presse-xebia-132/#OptimisezvosrequtesSQL">Optimisez vos requêtes SQL</a></li><li><a
href="http://blog.xebia.fr/2009/11/02/revue-de-presse-xebia-132/#ApachePOI">Apache POI 3.5</a></li><li><a
href="http://blog.xebia.fr/2009/11/02/revue-de-presse-xebia-132/#InterminablesdbatssurlamortdeJ">Interminables débats sur la mort de Java</a></li><li><a
href="http://blog.xebia.fr/2009/11/02/revue-de-presse-xebia-132/#UneversiondetcServerpourlesdve">Une version de tcServer pour les développeurs</a></li></ul><p><strong>Evènements de notre communauté en France et à l&#8217;étranger</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/11/02/revue-de-presse-xebia-132/#FlexchezlesTontonsFlexeurs">Flex 4 chez les Tontons Flexeurs</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="AmazonlanceRelationalDatabaseS"></a>Amazon lance Relational Database Service</h4><p>Quelques mois après la disponibilité d&#8217;Amazon Elastic MapReduce, le libraire américain continue d&#8217;enrichir sa gamme de services de Cloud Computing en lançant <a
title="Amazon Relational Database Service (RDS)" href="http://aws.amazon.com/rds/">Amazon Relational Database Service (RDS)</a>.</p><p>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&#8217;aide d&#8217;un Web Service spécifique à RDS et leur monitoring est possible par <a
title="CloudWatch" href="http://aws.amazon.com/cloudwatch/">CloudWatch</a>.</p><p>Outre ces caractéristiques communes aux services d&#8217;Amazon, on retiendra principalement de RDS :</p><ul><li>Utilisation de MySQL 5.1 avec <a
title="InnoDB" href="http://www.innodb.com/">InnoDB</a>,</li><li>Offre de réplication prévue pour assurer la haute disponibilité, mais non disponible à ce jour,</li><li>Système de gestion des backups.</li></ul><p>Par ce service, Amazon déleste ses clients des principales tâches liées à l&#8217;administration d&#8217;une base de données relationnelle. Répondant ainsi à un besoin réel, on peut s&#8217;attendre à ce que ce service, s&#8217;inscrivant dans l&#8217;offre homogène d&#8217;Amazon, rencontre un succès commercial.</p><p>Plusieurs réactions et commentaires ont suivi cette annonce, on retiendra particulièrement <a
title="l'observation de Krishnan Subramanian" href="http://www.cloudave.com/link/amazon-releases-relational-database-as-a-service-my-initial-thoughts">l&#8217;observation de Krishnan Subramanian</a>, sur le coup dur que constitue ce nouveau service pour <a
title="FathomDB" href="http://fathomdb.com/about/home">FathomDB</a>, une entreprise qui proposait un service d&#8217;hébergement MySQL sur EC2. Il remarque alors qu&#8217;il est délicat pour des <em>startups</em> de parier sur de tels services propriétaires.</p><h4><a
name="Oracletentederassurerlacommuna"></a>Oracle tente de rassurer la communauté Sun</h4><p>Depuis l&#8217;<a
title="acquisition de Sun par Oracle en avril dernier" href="http://blog.xebia.fr/2009/04/20/oracle-rachete-sun/">acquisition de Sun par Oracle en avril dernier</a>, le futur de la stack Sun a fait l&#8217;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&#8217;est peut-être pour couper court à ce genre de bruits de couloir qu&#8217;Oracle présente ses intentions sur la stack Sun via la <a
title="mise  jour de sa FAQ" href="http://www.oracle.com/ocom/groups/public/documents/webcontent/038563.pdf">mise à jour de sa FAQ</a> . En résumé « on garde tout, et on en fait toujours plus » :</p><ul><li>Oracle dit vouloir passer plus de temps sur Solaris et Sparc que Sun ne l&#8217;a fait par le passé.  La collaboration d&#8217;ingénieurs base de données Oracle et Sun ouvre d&#8217;ailleurs de <a
title="nouvelles perspectives" href="http://www.oracle.com/technology/oramag/oracle/09-nov/o69news.html">nouvelles perspectives</a>.</li><li>Côté virtualisation, tous les produits Sun &#8216;devraient&#8217; continuer à être développés : VDI, Secure Global Desktop, Sun Ray, and VirtualBox.</li><li>Un alignement entre Oracle Weblogic Server et Glassfish Enterprise Server va être effectué. Glassfish reste l&#8217;implémentation de référence open source pour Java EE 6.</li><li>Netbeans restera une solution alternative open source à Oracle JDeveloper et Oracle Enterprise Pack pour Eclipse.</li><li>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.</li></ul><p>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.</p><h4><a
name="KeynotedeRodJohnsonSpringOneGX"></a>Keynote de Rod Johnson à SpringOne/2GX 2009</h4><p>SpringSource est actuellement un des plus grands agitateurs de notre écosystème. Et donc quand Rod Johnson, le <em>papa</em> de Spring, vient donner un keynote en ouverture du plus gros évènements annuel de l&#8217;éditeur, on écoute avec attention. Grâce à InfoQ, il est possible de retrouver cette <a
title="intervention en diffr" href="http://www.infoq.com/presentations/johnson-keynote-springone2gx">intervention en différé</a>.<br
/> 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à :</p><ul><li>Spring 3.0 : les nouvelles fonctionnalités, et les scénarios d&#8217;upgrade.</li><li>Les languages dynamiques : Groovy et Grails, une fois encore à l&#8217;honneur</li><li>Les outils destinés aux developpeurs: tcServer (voir par ailleurs), Spring Insight, SpringSource Tool Suite</li><li>Les grandes manœuvre de l&#8217;éditeur : aquisition par VMWare (pas grand chose à se mettre sous la dent de ce coté là)</li><li>Le futur de SpringSource : CloudFoundry et les Cloud d&#8217;entreprise en Java</li></ul><p>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&#8217;un des éditeurs les plus dynamiques du monde JEE.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="OptimisezvosrequtesSQL"></a>Optimisez vos requêtes SQL</h4><p>Nous sommes tombés sur ce post qui nous propose <a
title="15 moyens pour optimiser vos requtes SQL" href="http://hungred.com/useful-information/ways-optimize-sql-queries/">15 moyens pour optimiser vos requêtes SQL</a>. Si quelques-unes d&#8217;entre elles vous paraitront être issues du bon sens commun, d&#8217;autres méritent le détour :</p><ul><li><strong>Prenez le plus grand soin de vos index</strong> : Le contenu des index primaires se doit d&#8217;être le plus petit possible, les index uniques sont en règle générale plus performants.</li><li><strong>Recherchez par wildcard avec certaines précautions</strong> : Privilégiez l&#8217;utilisation de wildcard à l&#8217;utilisation de <em>SUBSTR</em>. Les wildcards postfixés sont plus performants que les wildcards préfixés. Dans la mesure du possible n&#8217;hésitez pas à n&#8217;indexer qu&#8217;une sous partie d&#8217;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.</li><li><strong>Simplifiez vos requêtes</strong> : Privilégiez l&#8217;utilisation de l&#8217;opérateur <em>EXIST</em> à une utilisation de <em>COUNT</em>. Limitez le nombre de lignes à retourner pour éviter la récupération complète d&#8217;une table. Utilisez des valeurs par défaut dans vos colonnes pour simplifier vos requêtes.</li><li><strong>Évitez les scans inutiles</strong> : Remplacer l&#8217;opérateur <em>NOT</em> d&#8217;une expression complexe par son inverse permet de ne pas évaluer l&#8217;intégralité de celle-ci. Transformez une sous-requête dans un <em>IN</em> par une sous-requête dans un <em>FROM</em> <em>(et simulez ainsi une table virtuelle)</em>. Les <em>UNION</em> sont en principe plus efficaces que les <em>OR</em> car ils permettent d&#8217;optimiser l&#8217;utilisation des index.</li></ul><p>Le tuning de requêtes SQL n&#8217;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&#8217;amélioration de la performance de vos requêtes commence le plus souvent par une <a
title="analyse du plan d'exécution" href=" http://www.adp-gmbh.ch/ora/sql/execution_plan.html">analyse du plan d&#8217;exécution</a> de celles-ci. Celui-ci vous permettra de trouver comment poser vos index. Enfin, certaines bases de données comme Oracle vous permettent d&#8217;agir directement sur son plan d&#8217;exécution à partir de votre requête, par l&#8217;intermédiaire de <a
title="SQL HINT" href="http://www.adp-gmbh.ch/ora/sql/hints/index.html">SQL HINT</a>. A n&#8217;utiliser qu&#8217;en dernier recours <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /></p><h4><a
name="ApachePOI"></a>Apache POI 3.5</h4><p>Du nouveau sur le support des documents Office 2007 en Java <em>(sujet déjà abordé <a
title="il y a un an" href="http://blog.xebia.fr/2008/11/17/revue-de-presse-xebia-83/#GestiondesdocumentsOffice">il y a un an</a>)</em> avec <a
title="Apache POI" href="http://poi.apache.org/">Apache POI</a> qui est sorti il y a un mois en version finale 3.5 <em>(via <a
title="InfoQ" href="http://www.infoq.com/news/2009/10/poi35">InfoQ</a>)</em>. Parmi les nombreuses nouveautés, on retiendra surtout le support des fichiers <em>.docx</em> et <em>.xlsx</em> et plus globalement des documents Office 2007 <em>(mais il aura fallu attendre un an entre la beta 3 et la version finale !)</em>.</p><p>Plusieurs librairies nous offrent déjà la possibilité de gérer nos fichiers Office 97-2003 <em>(format Microsoft OLE2)</em>. Peu d&#8217;entre elles proposent la gestion des fichiers Office 2007 <em>(format Microsoft Office Open XML ou OOXML)</em> : par exemple <a
title="AsposeWord" href=" http://www.aspose.com/community/blogs/aspose.words-product-family/archive/2008/11/07/this-aspose-words-for-java-2-6-0-released.aspx">Aspose.Word</a> gère uniquement les fichiers Word 2007. Avec Apache POI 3.5, c&#8217;est toute la gamme de produits Office 2007 qui se trouve ainsi supportée.</p><p>Quelques modifications seront toutefois nécessaires dans votre code pour supporter ce nouveau format. En effet, le modèle <code>org.apache.poi.hssf.usermodel.HSSF</code> actuel reste compatible OLE2 mais ne supportera pas OOXML. Il faudra ainsi passer par le nouveau modèle <code>org.apache.poi.ss.usermodel.HSSF</code> pour bénéficier de ce support. Ce nouveau modèle s&#8217;appuyant fortement sur l&#8217;ancien, l&#8217;équipe précise que le <em>switch</em> ne devrait pas être trop ardu.</p><p>Le téléchargement se passe comme d&#8217;habitude sur les <a
title="miroirs" href=" http://www.apache.org/dyn/closer.cgi/poi/">miroirs</a> d&#8217;Apache.</p><h4><a
name="InterminablesdbatssurlamortdeJ"></a>Interminables débats sur la mort de Java</h4><p>A chaque année ses raisons d&#8217;annoncer la mort de Java ; le débat n&#8217;est pas nouveau et les arguments se renouvellent depuis le début des années 2000 :</p><ul><li>Lourdeur de J2EE</li><li>Complexité et densité de l&#8217;écosystème Java</li><li>Manque d&#8217;intégration des solutions et les faiblesses du langage face au rival Microsoft .Net</li><li>Inadaptation à la création d&#8217;interfaces pour le Web et pour les clients lourds</li><li>Manque de productivité face aux nouveaux langages : Python, Ruby, &#8230;</li></ul><p>En 2009 l&#8217;argumentaire se tourne maintenant vers les langages alternatifs pour la JVM &#8211; principalement Groovy et Scala &#8211; et vers l&#8217;incertitude liée à la gouvernance de Java. Ainsi il y a quelque semaines, Stephen Colebourne <a
title="postait un inquitant graphique" href="http://www.jroller.com/scolebourne/entry/jsrs_submitted_over_time">postait un inquiétant graphique</a> montrant l&#8217;é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&#8217;innovation était maintenant principalement portée par les communautés Open Source.</p><p>Stephan Schmidt apportait, en septembre dernier, <a
title="une analyse" href="http://codemonkeyism.com/java-dead/">une analyse</a> 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 :</p><ul><li>La quantité d&#8217;offres d&#8217;emploi en Java reste constante comme le montre le <a
title="graphe Indeed" href="http://www.indeed.com/jobtrends?q=java">graphe Indeed</a> (devenant un classique en argumentaire).</li><li>Avant la mort de Java, un successeur doit se distinguer. Or Ruby et Python ont peiné à faire leur place dans le monde de l&#8217;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&#8217;innovation intéressante portée par Scala.</li><li>Java est toujours à même d&#8217;apporter les caractéristiques qui ont amené son succès : pas de pointeurs, gestion de la mémoire, orientation vers l&#8217;entreprise et Internet, gestion simple du parallélisme.</li><li>C&#8217;est le monde de l&#8217;entreprise qui permet le succès d&#8217;un langage, or Java répond toujours à ses besoins même si le langage présente des défauts nuisant à la productivité.</li><li>Java a perdu il y a bien longtemps le <em>hype</em> qui l&#8217;entourait, mais cela ne signifie pas pour autant sa mort.</li></ul><p>A travers l&#8217;é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&#8217;est faite autour d&#8217;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&#8217;environnement x86 d&#8217;Intel des années auparavant.</p><p>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 <a
title="dcrit comme la plus grosse communaut" href="http://www.sun.com/java/everywhere/">décrit comme la plus grosse communauté</a> de développeurs au monde, n&#8217;est actuellement clairement pas menacé.</p><h4><a
name="UneversiondetcServerpourlesdve"></a>Une version de tcServer pour les développeurs</h4><p>SpringSource vient d&#8217;annoncer la sortie prochaine (pour l&#8217;instant, une preview est téléchargeable) de tcServer Developer Edition. Que trouve t&#8217;on dans ce joli package ?</p><p>Côté serveur d&#8217;application, rien de nouveau, c&#8217;est toujours du 100% Tomcat.<br
/> C&#8217;est une fois de plus dans les à-côtés que tcServer se distingue, avec l&#8217;arrivée de Spring Insight. Spring Insight, c&#8217;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.</p><p>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&#8217;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.<br
/> En revanche, Spring est très clair : il s&#8217;agit d&#8217;un outil de développement : son utilisation en production exposerait vos applications d&#8217;un point de vue sécurité.<br
/> 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&amp;A un tant soit peu sensibles à la qualité intrinsèque d&#8217;une application.</p><p>Nous avons aimé :</p><ul><li>L&#8217;expressivité des métriques qui identifient les URL d&#8217;invocation, les principaux composants (actions Spring MVC, composants métier, etc), les transactions et les accès SGBD avec les requêtes SQL.</li><li>La granularité <em>macro</em> qui est souvent plus facile à comprendre que les mesures ultra-détaillées que nous proposent les profilers java.</li></ul><p>Notre souhait : l&#8217;intégration à l&#8217;environnement de développement et au code source de l&#8217;application en cliquant sur les graphes de Spring Insight.</p><p>Le screencast et la preview de tcServer Dev. se trouvent sur <a
title="le blog de SpringSource" href="http://blog.springsource.com/2009/10/21/introducing-tc-server-developer-edition-with-spring-insight/">le blog de SpringSource</a>.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="FlexchezlesTontonsFlexeurs"></a>Flex 4 chez les Tontons Flexeurs</h4><p>Les <a
title="tontons flexeurs" href="http://groups.adobe.com/groups/193bcaff5f/summary">tontons flexeurs</a>, le rendez-vous incontournable des flexeurs et des autres, nous propose une nouvelle présentation qui portera sur <a
title="les nouveauts de Flex 4" href="http://groups.adobe.com/posts/413b601182">les nouveautés de Flex 4</a>.<br
/> <a
title="Christophe Coenraets" href="http://coenraets.org/">Christophe Coenraets</a>, é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&#8217;intégration de Flex avec Spring.<br
/> La présentation se déroulera le mardi 10 novembre de 14h à 16h. Les inscriptions se font comme d&#8217;habitude sur l&#8217;<a
title="evenbrite" href="http://coenraets-flex4.eventbrite.com">evenbrite</a>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/11/02/revue-de-presse-xebia-132/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/10/19/revue-de-presse-xebia-130/</link> <comments>http://blog.xebia.fr/2009/10/19/revue-de-presse-xebia-130/#comments</comments> <pubDate>Mon, 19 Oct 2009 17:00:25 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[ActiveMQ]]></category> <category><![CDATA[Beans Validation]]></category> <category><![CDATA[Datagrid]]></category> <category><![CDATA[DDD]]></category> <category><![CDATA[dm Server]]></category> <category><![CDATA[G2X]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[KahaDB]]></category> <category><![CDATA[Spring 3]]></category> <category><![CDATA[SpringOne]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3024</guid> <description><![CDATA[La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII SpringOne G2X : c&#8217;est parti pour Spring 3 ! RIA GWT 2.0 Milestone 1 Le coin de la technique memcached vs. DataGrid, serveur stupide vs. serveur astucieux ? Finalisation de l&#8217;implémentation de référence de Beans Validation Le noyau de dm [...]]]></description> <content:encoded><![CDATA[<p><img
style="margin: 1em 1em 1em 1em; float: right;" src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" /><br
/> <em>La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/10/19/revue-de-presse-xebia-130/#SpringOneGXcestpartipourSpring">SpringOne G2X : c&#8217;est parti pour Spring 3 !</a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/10/19/revue-de-presse-xebia-130/#GWTMilestone">GWT 2.0 Milestone 1</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/10/19/revue-de-presse-xebia-130/#memcachedvsDataGridserveurstup">memcached vs. DataGrid, serveur stupide vs. serveur astucieux ?</a></li><li><a
href="http://blog.xebia.fr/2009/10/19/revue-de-presse-xebia-130/#Finalisationdelimplmentationde">Finalisation de l&#8217;implémentation de référence de Beans Validation</a></li><li><a
href="http://blog.xebia.fr/2009/10/19/revue-de-presse-xebia-130/#LenoyaudedmServerdisponiblespa">Le noyau de dm Server disponible séparément, pourquoi ?</a></li><li><a
href="http://blog.xebia.fr/2009/10/19/revue-de-presse-xebia-130/#UnnouveaumoteurdestockagepourA">Un nouveau moteur de stockage pour ActiveMQ 5.3 : KahaDB</a></li></ul><p><strong>Evènements de notre communauté en France et à l&#8217;étranger</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/10/19/revue-de-presse-xebia-130/#TraductiondelapremirepartiedeD">Traduction de la première partie de DDD Quickly</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="SpringOneGXcestpartipourSpring"></a>SpringOne G2X : c&#8217;est parti pour Spring 3 !</h4><p>L&#8217;édition américaine de <a
title="cette conférence" href="http://www.springone2gx.com">cette conférence</a> dédiée aux produits SpringSource commence aujourd&#8217;hui à la Nouvelle Orléans et durera 4 jours. Elle est donc plus longue que les années précédentes en raison de l&#8217;intégration de nombreuses présentations dédiées à Groovy, mais également plus dense puisqu&#8217;on compte pas moins de 8 sessions en parallèle. La lecture du <a
title="planning" href="http://www.springone2gx.com/conference/new_orleans/2009/10/schedule">planning</a> permet de noter la présence fortement marquée de Spring 3.0 et Spring Roo. Par ailleurs SpringSource offre de nombreuses sessions à Groovy / Grails, avec des sujets rarement évoqués tels que <a
title="Grails and the JVM Memory Management" href="http://www.springone2gx.com/conference/new_orleans/2009/10/session?id=16449">Grails and the JVM Memory Management</a> ou <a
title="OSGi and Groovy" href="http://www.springone2gx.com/conference/new_orleans/2009/10/session?id=15408">OSGi and Groovy</a>.</p><p>En accord avec les préceptes du <em>Conference Driven Development</em>, évoqués par Guillaume Laforge dans <a
title="un podcast" href="http://lescastcodeurs.com/">un podcast</a> <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> , SpringOne G2X est l&#8217;occasion d&#8217;un certain nombre d&#8217;annonces. Ainsi SpringSource vient d&#8217;annoncer dans <a
title="un communiqu" href="http://www.springsource.com/newsevents/springsource">un communiqué</a> la finalisation du très attendu Spring 3.0, qui était jusqu&#8217;alors en statut <em>release candidate</em>.</p><p>Cette version est la première mise à jour majeure de Spring depuis la version 2.5 sortie il y a maintenant 2 ans et qui avait notamment apporté la configuration massive par annotations. Les principaux apports de la version 3.0 sont :</p><ul><li>Support de REST dans Spring MVC</li><li>Transition de l&#8217;ensemble du code du <em>framework</em> vers Java 5, tirant ainsi partie des <em>generics</em></li><li>Support de <a
title="Spring Expression Language (SpEL)" href="http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/ch06.html">Spring Expression Language (SpEL)</a> dans les annotations comme dans la configuration XML</li><li>Intégration de certains des mécanismes de configuration de <a
title="Spring JavaConfig" href="http://www.springsource.org/javaconfig">Spring JavaConfig</a></li><li>Intégration d&#8217;OXM, l&#8217;abstraction de mapping Objet / XML jusqu&#8217;alors incluse dans Spring WS</li><li>Support initial de la JSR-330 (Dependency Injection)</li></ul><p>Ces nouveautés étaient très attendues par la communauté et le succès à venir de Spring 3.0 semble acquis. Si cette projection est évidente, il est par contre plus délicat de dire qui aura la préférence dans les projets entre JAX-RS et le support de REST intégré à Spring MVC ou encore entre le nouveau standard qu&#8217;est la JSR-330 face à l&#8217;API propriétaire de Spring&#8230;</p><h3><a
name="RIA"></a>RIA</h3><h4><a
name="GWTMilestone"></a>GWT 2.0 Milestone 1</h4><p>GWT 2.0 arrive à grands pas ! Un petit avant goût nous est proposé depuis quelques jours avec la <a
title="Milestone 1" href="http://code.google.com/p/google-web-toolkit/downloads/list?can=1&amp;q=2.0+Milestone+1">Milestone 1</a> de ce nouveau cru GWT (via <a
title="InfoQ" href="http://www.infoq.com/news/2009/10/gwt-2-m1">InfoQ</a>).</p><p>Des nouveautés, il y en a ! Du changement de terminologie en passant par de nouveaux composants, GWT 2.0 apporte son lots de gros changements :</p><ul><li>nouvelle terminologie : le <em>hosted mode</em> devient le <em>developpement mode</em> et le <em>web mode</em> devient le <em>production mode</em> ;</li><li>distribution unique avec, vous le verrez sur la page de téléchargement, un JAR unique et non plus un JAR par environnement (Windows, Mac et Linux) ;</li><li><em>developpement mode</em> directement dans le navigateur (GWT utilise pour cela un <em>plugin</em> de lecture de code natif), les fenêtres du mode hosté disparaissent ;</li><li>ajout du <em>code splitting</em> qui découpera le code en plusieurs fragments : l&#8217;idée ici est que l&#8217;on pourra commencer à utiliser une application web GWT alors que certains fragments (non nécessaires au démarrage de la webapp) n&#8217;auront pas été chargés, ce qui permettra entre autres un démarrage plus rapide de l&#8217;application (chargement différé) ;</li><li><code>UIBinder</code> qui offrira la possibilité de déclarer nos écrans dans un fichier XML (swing-like ou flex-like, à vous de choisir <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) ;</li><li><em>ClientBundle</em> qui optimisera et combinera des ressources telles que les fichiers texte, les CSS ou les XML, ce qui permettra de réduire le trafic réseau et les temps de latence ;</li><li>utilisation d&#8217;<code>HtmlUnit</code> pour les tests unitaires ;</li><li>suppression des APIs GWT dépréciées jusqu&#8217;à la version 1.6.</li></ul><p>Les défauts que l&#8217;on remarquait sur les premières versions se corrigent donc petit à petit et GWT 2.0 affiche le souhait d&#8217;aider / simplifier la vie du développeur. Google confirme ainsi qu&#8217;il faut toujours compter sur GWT dans la course effréné au meilleur RIA du marché. Il est vrai que des applications comme <a
title="Google Wave" href="https://wave.google.com/wave/">Google Wave</a> montrent clairement le potentiel technique de GWT (robustesse, rapidité&#8230;).</p><p>Concernant l&#8217;<em>upgrade</em> vers cette nouvelle mouture, l&#8217;équipe se veut rassurante et précise qu&#8217;une montée de version entre la 1.7 et la 2.0 ne devrait pas demander beaucoup d&#8217;efforts.<br
/> Le JAR se récupère à cette <a
title="adresse" href="http://code.google.com/p/google-web-toolkit/downloads/list?can=1&amp;q=2.0+Milestone+1">adresse</a>.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="memcachedvsDataGridserveurstup"></a>memcached vs. DataGrid, serveur stupide vs. serveur astucieux ?</h4><p>Billy Newport, Websphere eXtreme Scale, est juge et partie dans son billet <a
title="memcached versus DataGrid, dumb server versus smart server..." href="http://www.devwebsphere.com/devwebsphere/2009/10/memcached-versus-datagrid-dumb-server-versus-smart-server.html">memcached versus DataGrid, dumb server versus smart server&#8230;</a> dans lequel il compare le très à la mode <a
title="memcached" href="http://www.danga.com/memcached/">memcached</a> avec les sophistiquées DataGrid (<a
title="IBM Websphere eXtreme Scale" href="http://www-01.ibm.com/software/webservers/appserv/extremescale/">IBM Websphere eXtreme Scale</a>, <a
title="Gigaspaces XAP" href="http://www.gigaspaces.com/xap">Gigaspaces XAP</a>, <a
title="Oracle Coherence" href="http://www.oracle.com/technology/products/coherence/index.html">Oracle Coherence</a>).<br
/> Le point d&#8217;attention de Billy Newport est la <strong>rusticité de memcached qui amène souvent les utilisateurs à inventer au dessus un ensemble de <em>rustines</em> qui rendent la solution finalement complexe et sous optimale</strong>. Le principal défi est la gestion de la haute disponibilité et la faiblesse du <em>failover</em>. En effet, l&#8217;intelligence de memcached se limite à être un gros entrepôt de clés-valeurs ; un serveur memcached n&#8217;est pas conscient qu&#8217;il est utilisé en mode partitionné et clusterisé avec d&#8217;autres serveurs, ce sont les clients memcached qui connaissent la topologie et ont une intelligence de routage des plus rudimentaire avec un modulo sur le <em>hash</em> de la clef à stocker.<br
/> De ce fait, les mécanismes de <em>failover</em> en cas d&#8217;arrêt d&#8217;un serveur sont très limités ; une extension de <a
title="consistent hashing" href="http://www.spiteful.com/2008/03/17/programmers-toolbox-part-3-consistent-hashing/">consistent hashing</a> améliore la situation en évitant un transfert brutal de toutes les données que causerait la perte d&#8217;un nœud (tous les modulos changent). Ce ne sont que les débuts des difficultés, les ingénieurs de Facebook, gros consommateurs de memcached, détaillent dans <a
title="Designing the Facebook username land rush" href="http://www.facebook.com/note.php?note_id=114979233919">Designing the Facebook username land rush</a> les défis de fiabilité qu&#8217;ils ont rencontrés.<br
/> A cette rusticité de memcached, Billy Newport oppose la sophistication des DataGrids qui assurent en standard la fiabilité des données qu&#8217;elles gèrent, en consommant souvent moins de ressources mémoire, CPU et réseau.</p><p>Mesquinerie d&#8217;un éditeur qui cherche à tacler un concurrent ?</p><p>On peut en douter, l&#8217;argumentaire de Billy Newport est parfaitement cohérent. Memcached a été initialement créé pour mettre en cache des fragments html pour le site web <a
title="LiveJournal" href="http://www.livejournal.com/">LiveJournal</a>, des données en lecture seule qui ne nécessitent de fiabilité, alors que les DataGrids ont été dès leur conception destinées au monde de la finance qui a besoin d&#8217;une fiabilité sans faille.</p><p>Alors que vaut-il mieux, un serveur rudimentaire étoffé par des gens astucieux ou des DataGrids astucieuses directement utilisables par des équipes qui n&#8217;ont pas le temps ou les compétences pour inventer un cache distribué fiable ?</p><p>Sans négliger le coût des DataGrids, rappelons nous l&#8217;adage <em>&laquo;&nbsp;There is a fine line between clever and stupid&nbsp;&raquo;</em>, tout le monde n&#8217;est pas ingénieur <em>clustering</em> chez Facebook <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /></p><h4><a
name="Finalisationdelimplmentationde"></a>Finalisation de l&#8217;implémentation de référence de Beans Validation</h4><p>Emmanuel Bernard <a
title="annonce la disponibilité" href="http://in.relation.to/Bloggers/HibernateValidator4Unleashed">annonce la disponibilité</a> de la version 4.0 finale d&#8217;<a
title="Hibernate Validator" href="https://www.hibernate.org/412.html">Hibernate Validator</a>. Cette version est la première à implémenter la <a
title="JSR-303 (Beans Validation)" href="http://www.jcp.org/en/jsr/detail?id=303">JSR-303 (Beans Validation)</a> qui devrait se voir également finalisée dans le même temps.</p><p>En pratique, Validator 4.0 apporte principalement :</p><ul><li>La composition de contraintes : il est ainsi possible de créer des contraintes qui réutilisent des contraintes existantes afin d&#8217;éviter la duplication de code.</li><li>La notion de groupe : en catégorisant les contraintes dans des groupes, il est possible de ne valider qu&#8217;une partie des contraintes, ce qui trouvera son intérêt dans de nombreux cas d&#8217;utilisation.</li><li>Les contraintes <em>type-safe</em> : la compatibilité entre le type supporté par une contrainte et celui de la valeur qu&#8217;elle valide est maintenant vérifié par Validator.</li><li>Une API de création de contraintes : il est désormais possible de définir des contraintes par programmation et non plus uniquement par Annotation.</li><li>La définition de contraintes par XML : alors que la version précédente ne permettait la définition de contraintes que par annotations, il est désormais possible de les définir également dans un fichier XML.</li></ul><p>Les utilisateurs d&#8217;Hibernate Validator reconnaitront dans ces nouveautés des manques qu&#8217;ils avaient pu constater dans les versions précédentes. Toutefois, c&#8217;est probablement dans le support de la JSR-303 que réside la vraie révolution, puisqu&#8217;il s&#8217;agit d&#8217;unifier les très nombreux <em>frameworks</em> de validation qui se sont multipliés dans le monde Java depuis des années afin que nos applications ne dépendent plus que de <code>javax.validation</code>.</p><h4><a
name="LenoyaudedmServerdisponiblespa"></a>Le noyau de dm Server disponible séparément, pourquoi ?</h4><p>Steve Powell, SpringSource, <a
title="annonce" href="http://blog.springsource.com/">annonce</a> la disponibilité d&#8217;une version autonome du noyau de dm Server : dm Kernel. Il s&#8217;agit d&#8217;une abstraction autour d&#8217;OSGi qui offre un environnement plus élaboré pour la construction de modules indépendants.</p><p>Par cette annonce SpringSource s&#8217;aligne sur un certain nombre d&#8217;autres <em>middlewares</em> qui mettaient déjà à disposition leur noyau assurant leur modularité tel que <a
title="HK2" href="https://hk2.dev.java.net/">HK2</a> pour Glassfish, <a
title="MicroContainer" href="http://www.jboss.org/community/wiki/JBossMicrocontainer">MicroContainer</a> pour JBoss AS ou encore <a
title="Karaf" href="http://felix.apache.org/site/apache-felix-karaf.html">Karaf</a> pour Apache ServiceMix. Une question vient alors naturellement en tête, pourquoi une telle séparation entre un <em>middleware</em> et son noyau en deux projets distincts ? On trouve des éléments de réponse en revenant sur le contexte entourant la sortie de chacun des noyaux concernés :</p><ul><li>Guillaume Nodet <a
title="expliquait" href="http://gnodet.blogspot.com/2009/04/apache-karaf.html">expliquait</a> la création d&#8217;un projet à part pour le noyau de ServiceMix par le souhait exprimé par plusieurs projets Apache de se baser sur celui-ci.</li><li>Steve Powell dans son annonce de dm Kernel met surtout en avant le fait qu&#8217;il ait pu être extrait de dm Server sans modification, prouvant ainsi le <em>design</em> propre et modulaire du serveur d&#8217;application de SpringSource.</li><li>Glassfish HK2 et JBoss MicroContainer ont quant à eux été l&#8217;occasion de mettre en avant la légèreté du serveur d&#8217;application auquel ils sont liés.</li></ul><p>Si la raison d&#8217;être de ces projets de noyaux modulaires se situe quelque part entre design, partage, et marketing, la communauté Java s&#8217;en trouve dans tous les cas enrichie puisqu&#8217;ils permettent à des projets naissant de bénéficier immédiatement d&#8217;une architecture flexible et d&#8217;un socle robuste.</p><h4><a
name="UnnouveaumoteurdestockagepourA"></a>Un nouveau moteur de stockage pour ActiveMQ 5.3 : KahaDB</h4><p>Rob Davies <a
title="annonce" href="http://rajdavies.blogspot.com/2009/10/apache-activemq-53-released.html">annonce</a> la disponibilité d&#8217;ActiveMQ 5.3. Cette nouvelle version apporte son lot de nouveautés et d&#8217;améliorations à ce <em>Message Oriented Middleware</em> très populaire dans le monde Open Source.</p><p>Parmi les nouveautés, c&#8217;est la finalisation du nouveau moteur de persistance de messages KahaDB qui retient l&#8217;attention. Annoncé il y a un an sur la <a
title="mailing list" href="http://markmail.org/message/c3wqvpkvhpo5gyfv#query:KahaDB%20kaha+page:1+mid:c3wqvpkvhpo5gyfv+state:results">mailing list</a> du projet, et en gestation depuis, le but de KahaDB est d&#8217;apporter la vélocité de <em>Kaha Message Store</em> et la fiabilité de <em>AMQ Message Store</em>. Ce nouveau moteur de persistance offre ainsi :</p><ul><li>Journal transactionnel assurant la consistance des données</li><li>Réplication des données très performante</li><li>Support de plusieurs nœuds <em>slaves</em></li><li>Aucun point central d&#8217;échec, le noeud <em>master</em> peut être reconstruit sur un <em>slave</em> suite à une défaillance</li></ul><p>KahaDB se base sur <a
title="ZooKeeper" href="http://hadoop.apache.org/zookeeper/">ZooKeeper</a> pour assurer l&#8217;élection d&#8217;un nouveau nœud <em>master</em>.</p><p>Ce nouveau moteur de persistance s&#8217;annonce très novateur et devrait assurer l&#8217;attractivité de cette nouvelle version d&#8217;ActiveMQ. Les lecteurs intéressés par ActiveMQ noteront par ailleurs qu&#8217;<a
title="un ouvrage" href="http://www.manning.com/snyder/">un ouvrage</a> lui étant entièrement consacré paraitra courant 2010 chez Manning.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="TraductiondelapremirepartiedeD"></a>Traduction de la première partie de DDD Quickly</h4><p><em>Pour rappel, DDD = Domain Driven Design</em></p><p><a
title="Guillaume Lebur" href="http://blog.infosaurus.fr">Guillaume Lebur</a> est à l&#8217;initiative d&#8217;un travail intéressant et difficile : la traduction en anglais du livre <a
title="DDD Quickly" href="http://www.infoq.com/news/2006/12/domain-driven-design">DDD Quickly</a>. Ce livre propose une approche plus rapide du DDD afin d&#8217;en cerner les problématiques, contrairement au <a
title="livre" href="http://domaindrivendesign.org/books#DDD">livre</a> d&#8217;<a
title="Eric Evans" href="http://domaindrivendesign.org/about#eric">Eric Evans</a> qui se veut plus exhaustif et précis sur le sujet.</p><p>Son travail est disponible sur le site <a
title="DDD France" href="http://www.dddfrance.org">DDD France</a>, communauté libre qui ne parle que du DDD en français. En bon français cela donne <a
title="DDD vite fait" href="http://www.dddfrance.org/DDDViteFait">DDD vite fait</a> et surtout beaucoup de travail. La première partie est d&#8217;ores et déjà traduite, donc félicitations Guillaume et bon courage pour la suite !</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/10/19/revue-de-presse-xebia-130/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/10/12/revue-de-presse-xebia-129/</link> <comments>http://blog.xebia.fr/2009/10/12/revue-de-presse-xebia-129/#comments</comments> <pubDate>Mon, 12 Oct 2009 16:41:35 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Adobe]]></category> <category><![CDATA[AIR]]></category> <category><![CDATA[DHTMLX]]></category> <category><![CDATA[Eclipse]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[jdk-6]]></category> <category><![CDATA[jdk-7]]></category> <category><![CDATA[Jetty]]></category> <category><![CDATA[Maven]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[Servlet 3.0]]></category> <category><![CDATA[Sonar]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2984</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII La fondation Eclipse se prépare à Servlet 3.0 avec Jetty 7.0 Sonar 1.11 RIA Air &#8216;Athena&#8217; DHTMLX 2.5 Tips and Tricks Maven 2 Le coin de la technique Sécurité : 5 choses de plus que les agresseurs d&#8217;applications web ne [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/10/12/revue-de-presse-xebia-129/#LafondationEclipseseprpareServ">La fondation Eclipse se prépare à Servlet 3.0 avec Jetty 7.0</a></li><li><a
href="http://blog.xebia.fr/2009/10/12/revue-de-presse-xebia-129/#Sonar">Sonar 1.11</a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/10/12/revue-de-presse-xebia-129/#AirAthena">Air &#8216;Athena&#8217;</a></li><li><a
href="http://blog.xebia.fr/2009/10/12/revue-de-presse-xebia-129/#DHTMLX">DHTMLX 2.5</a></li><li><a
href="http://blog.xebia.fr/2009/10/12/revue-de-presse-xebia-129/#TipsandTricksMaven">Tips and Tricks Maven 2</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/10/12/revue-de-presse-xebia-129/#Scuritchosesdeplusquelesagress">Sécurité : 5 choses de plus que les agresseurs d&#8217;applications web ne vous diront pas</a></li><li><a
href="http://blog.xebia.fr/2009/10/12/revue-de-presse-xebia-129/#LesoptimisationsduJDKuactivesp">Les optimisations du JDK 6u14 activées par défaut sur le JDK 7</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="LafondationEclipseseprpareServ"></a>La fondation Eclipse se prépare à Servlet 3.0 avec Jetty 7.0</h4><p>La fondation Eclipse nous livre une nouvelle version de Jetty estampillée 7.0. Côté nouveauté, pas grand chose à vrai dire. Il y a évidemment l&#8217;habituelle série de corrections de bugs et d&#8217;améliorations de performance. Cette nouvelle version marque surtout le début de la route vers l&#8217;implémentation des servlets 3.0 prévue pour Jetty 8.0. C&#8217;est aussi l&#8217;occasion pour Eclipse d&#8217;assimiler un peu plus le projet en changeant principalement le <em>package</em> ancêtre de <code>org.mortbay</code> vers <code>org.eclipse</code>, gare au <em>refactoring</em> donc. A noter tout de même, Jetty est maintenant livré sous une forme modulaire pleinement compatible OSGI. Webtide en profite pour livrer la même version de Jetty, en y intégrant des modules additionnels:</p><ul><li>JSP de glassfish</li><li>JTA d&#8217;atomikos</li><li>plugin maven</li><li>integration d&#8217;ant</li><li>configuration Spring</li></ul><p>Jetty 6 sera encore maintenu pendant quelques temps (aucune précision de la part d&#8217;Eclipse), tous les nouveaux développements seront faits sur Jetty 7, et la branche 8 sera en pré-release dans les prochains mois et supportera l&#8217;API Servlet 3.0.</p><ul><li><a
href="http://dev.eclipse.org/mhonarc/lists/jetty-dev/msg00294.html" title="Lannonce sur la ML" >L&#8217;annonce sur la ML</a></li><li><a
href="http://www.infoq.com/news/2009/10/jetty-7-0-released" title="La news dInfoQ" >La news d&#8217;InfoQ</a></li><li><a
href="http://www.eclipse.org/jetty/" title="La page Jetty chez Eclipse" >La page Jetty chez Eclipse</a></li><li><a
href="http://jetty.mortbay.org/jetty/index.html" title="La page Jetty chez Codehaus" >La page Jetty chez Codehaus</a></li></ul><h4><a
name="Sonar"></a>Sonar 1.11</h4><p>SonarSource nous gratifie d&#8217;une version 1.11 du désormais célèbre outil de suivi de qualité Sonar. Comme souvent, de nombreux de <em>bugs</em> ont été corrigés. Parmi les améliorations, on peut noter les passages à Hibernate 3.3 et GWT 1.7. Au chapitre des nouvelles fonctionnalités, la possibilité de réutiliser les fichiers de configuration PMD et CheckStyle définis dans le <em>pom</em> permettra de plus aisément éviter les doublons.</p><p>SonarSource tente de faciliter la vie des développeurs de <em>plugins</em> avec l&#8217;apparition d&#8217;un archétype Maven pour créer des <em>plugins</em> Sonar. D&#8217;autres nouveautés d&#8217;API, comme le filtrage de widgets suivant différents critères (comme le rôle utilisateur ou la langue choisie), ajoutent de la flexibilité.</p><ul><li><a
href="http://sonar.codehaus.org/sonar-111-in-screenshots/" title="Lannonce sur le blog Sonar" >L&#8217;annonce sur le blog Sonar</a> avec plein de jolies images.</li><li><a
href="http://sonar.codehaus.org/downloads/" title="La release note" >La release note</a>.</li></ul><h3><a
name="RIA"></a>RIA</h3><h4><a
name="AirAthena"></a>Air &#8216;Athena&#8217;</h4><p>Non, ce n&#8217;est pas une nouvelle marque de baskets, mais, comme les flexeurs le savent depuis le Flash Camp de mai, le nom de code de la future version de Adobe Air, la version 2.0. Comme on s&#8217;y attendait, celle-ci fonctionnera avec Flash 10 et Flex 4. Même si aucune date officielle n&#8217;a été avancée, Adobe dévoile peu à peu les principales évolutions de sa plate-forme, <a
href="http://www.insideria.com/2009/10/air-2-enhancements-complete-ov.html" title="nouveauts rpertories par Elad Elrom sur InsideRIA" >nouveautés répertoriées par Elad Elrom sur InsideRIA</a>.<br
/> Commençons par celle qui nous semble vitale dans l&#8217;adoption de AIR / Flex à grande échelle, à savoir une amélioration drastique des performances. Les équipes d&#8217;Adobe ont mis l&#8217;accent sur la réduction des ressources (CPU et mémoire) consommées par le runtime AIR. Les tests effectués sur une mini application montrent en effet une diminution des ressources utilisées (en regard de la version 1.5). Reste à tester ces optimisations sur une application gourmande&#8230; Toujours au chapitre performance, Adobe promet une optimisation de Webkit (le browser open source embarqué par AIR) et une installation Linux native.<br
/> Au menu des nouveautés, nous avons :</p><ul><li>Une meilleure connaissance de la plate-forme matérielle, avec la gestion des devices multi-touch et la gestion des périphériques de stockage USB ou réseau &#8216;à chaud&#8217;.</li><li>Un enrichissement des fonctionnalités des APIs existantes : points de sauvegarde dans les transactions, support IPv6, augmentation de la taille maximale de la fenêtre AIR, manipulation des données de l&#8217;API Microphone, time-out d&#8217;inactivité&#8230;</li><li>De nouvelles fonctionnalités via de nouvelles API, dont la plus étonnante est l&#8217;API File promises. Celle-ci permet de télécharger en local, depuis une application AIR, un ensemble de fichiers par simple Drag &#038; Drop. D&#8217;autres API font également leur apparition, en particulier au niveau du support réseau et de l&#8217;adhérence de AIR à l&#8217;OS (les fichiers peuvent maintenant être ouverts par des processus natifs de l&#8217;OS, par exemple Notepad pour un .txt sous Windows).</li></ul><p>Une évolution assez naturelle donc (correction des gros points de blocage des versions précédentes), mais quelques promesses de fonctionnalités intéressantes, en particulier via <em>l&#8217;adhérence</em> à l&#8217;OS.</p><h4><a
name="DHTMLX"></a>DHTMLX 2.5</h4><p>Des nouvelles de <a
href=" http://dhtmlx.com/" title="DTHMLX" >DTHMLX</a> (la 11ème librairie de notre <a
href="http://blog.xebia.fr/2009/01/26/revue-de-presse-xebia-93/#belleslibrairiesWebUI" title="revue de presse de fin janvier dernier" >revue de presse de fin janvier dernier</a>) qui est sorti il y a quelques semaines en <a
href="http://dhtmlx.com/docs/news/index.shtml?show=44" title="version 25" >version 2.5</a>.</p><p>Cette release apporte plusieurs corrections et améliorations sur tous les composants de la suite. On retiendra plus particulièrement :</p><ul><li>Une API orientée objet (l&#8217;API fonctionnelle est toujours disponible) ,</li><li>Nouvelle skin par défaut avec d&#8217;ici peu (mais non présent dans cette release) un <em>Skin Customizer</em> qui permettra de modifier facilement les couleurs principales du thème standard,</li><li>Nouveau moteur de rendu qui améliore la performance d&#8217;affichage des composants <code>Layout</code>, <code>Windows</code>, <code>Accordion</code> et <code>Tabbar</code>,</li><li>Une API de conteneurs unifiée (toujours pour les <code>Layout</code>, <code>Windows</code>, <code>Accordion</code> et <code>Tabbar</code>),</li><li>Améliorations générales pour les composants <code>Grid</code>, <code>Tree</code> et <code>TreeGrid</code>,</li><li>Révision complète du <a
href="http://www.dhtmlx.com/docs/products/docsExplorer/" title="DocsExplorer" >DocsExplorer</a>.</li></ul><p>Puisque nous sommes sur DHTMLX, notons aussi le composant <a
href="http://www.dhtmlx.com/docs//products/dhtmlxScheduler/index.shtml" title="Scheduler v20" >Scheduler v.2.0</a>, sorti en juillet dernier, qui n&#8217;est pas inclus dans la suite mais qui vaut tout de même le détour si vous avez besoin d&#8217;un composant calendrier haut niveau.</p><p>Les téléchargements se passent par <a
href="http://www.dhtmlx.com/docs/download.shtml" title="ici" >ici</a> et comme d&#8217;habitude vous aurez le choix entre le téléchargement composant par composant ou le téléchargement de la suite complète.<br
/> Chaque composant existe en édition standard ou professionnelle. Pour résumer la version standard contient moins de fonctionnalités et est sous licence GPL alors que la professionnelle contient toutes les fonctionnalités, un support prioritaire en cas de bugs/questions sur le forum et plusieurs centaines d&#8217;exemples de fonctionnalités avancées.<br
/> Pour le détail des licences et des différents prix proposés pour les composants et pour la suite complète, cela se passe sur cette <a
href="http://www.dhtmlx.com/docs/products/licenses.shtml" title="page" >page</a>.</p><h4><a
name="TipsandTricksMaven"></a>Tips and Tricks Maven 2</h4><p>Sonatype nous présente <a
href="http://www.sonatype.com/people/2009/10/maven-tips-and-tricks-advanced-reactor-options/" title="ici" >ici</a> quelques nouveautés intéressantes de maven disponibles depuis la version 2.1 concernant les projets multi-modules. Cela se traduit par de nouvelles commandes disponibles telles que:</p><ul><li><code>-rf</code>, <code>-resume-from</code>: permet de spécifier au maven reactor le projet à partir duquel on veut reprendre le build</li><li><code>-pl</code>, <code>-projects</code>: permet de sélectionner une liste de modules d&#8217;un projet multi-modules</li><li><code>-am</code>, <code>-also-make</code>: combinée avec l&#8217;option <code>-pl</code>, elle permet de construire tous les modules dépendants du module passé à l&#8217;option <code>pl</code></li><li><code>-amd</code>, <code>-also-make-dependents</code>: combinée avec l&#8217;option <code>-pl</code>, elle permet de construire tous les modules qui ont une dépendance vers le module passé à l&#8217;option <code>pl</code></li></ul><p>Très bonne nouvelle donc pour les développeurs dont le build prenait beaucoup de temps à cause de la reconstruction de modules non modifiés (et non impactés) par leurs nouveaux développements.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="Scuritchosesdeplusquelesagress"></a>Sécurité : 5 choses de plus que les agresseurs d&#8217;applications web ne vous diront pas</h4><p>Le Denim Group continue sa série <a
href="http://denimgroup.typepad.com/denim_group/2009/09/13-things-a-web-application-attacker-wont-tell-you.html" title="13 Things a Web Applications Attacker Won't Tell You" >13 Things a Web Applications Attacker Won&#8217;t Tell You</a> que nous avions <a
href="http://blog.xebia.fr/2009/10/05/revue-de-presse-xebia-128/#Scuritchosesquelesagresseursda" title="traitée la semaine dernière" >traitée la semaine dernière</a> avec <a
href="http://denimgroup.typepad.com/denim_group/2009/10/5-more-things-a-web-application-attacker-wont-tell-you.html" title="5 nouvelles failles de scurit" >5 nouvelles failles de sécurité</a> de nos applications web :</p><ul><li>Ce n&#8217;est pas parce que vous utilisez un framework de sécurité que votre application est sécurisée.</li><li>Je n&#8217;utilise pas un browser pour attaquer votre application web.</li><li>J&#8217;adore quand votre site me permet d&#8217;<em>uploader</em> des fichiers dans l&#8217;arborescence des répertoires servis par l&#8217;application web.</li><li>Je peux intercepter et voler toutes les informations qui passent sur HTTP si elles ne sont pas protégées par SSL ou un mécanisme équivalent.</li><li>Une sécurité obscurantiste n&#8217;en est pas une (ne pas savoir faire ou se dire que ca n&#8217;arrivera pas ne protège pas).</li></ul><p>Si le dernier point est un débat éternel chez les experts de la sécurité les premiers sont en revanche communément admis.</p><h4><a
name="LesoptimisationsduJDKuactivesp"></a>Les optimisations du JDK 6u14 activées par défaut sur le JDK 7</h4><p>Rémi Forax, un contributeur sur <a
href="http://openjdk.java.net/" title="OpenJDK" >OpenJDK</a> et sur la <a
href="http://jcp.org/en/jsr/detail?id=292" title="JSR-292" >JSR-292</a>, <a
href="http://weblogs.java.net/blog/forax/archive/2009/10/06/jdk7-do-escape-analysis-default" title="a fait part de son étonnement" >a fait part de son étonnement</a> en constatant un gain significatif de performance entre deux <em>builds</em> successifs de l&#8217;OpenJDK 7 actuellement en cours de développement. C&#8217;est ainsi qu&#8217;il a pu se rendre compte que deux optimisations majeures du compilateur JIT de la JVM étaient activées par défaut <a
href="http://download.java.net/jdk7/changes/jdk7-b72.html" title="depuis le build 72" >depuis le <em>build</em> 72</a> du projet : l&#8217;<em>escape analysis</em> et la compression de pointeurs. Celles-ci étaient apparues dans le JDK 6u14 mais n&#8217;y étaient pas activées par défaut.</p><p>Pour rappel l&#8217;<em>escape analysis</em> consiste en l&#8217;analyse du bytecode d&#8217;une méthode pour découvrir les références vers les objets qui ne &laquo;&nbsp;s&#8217;échappent&nbsp;&raquo; pas du contexte de la méthode. Grâce à cette analyse, la JVM peut alors décider d&#8217;allouer ces objets directement sur la <em>stack</em> plutôt qu&#8217;en <em>heap</em> comme c&#8217;est normalement le cas. Il en résulte un gain de performance évident puisque le coût d&#8217;allocation et de libération de mémoire est alors supprimé pour ces objets.</p><p>La <a
href="http://wikis.sun.com/display/HotSpotInternals/CompressedOops" title="compression de pointeurs" >compression de pointeurs</a>, quant à elle, concerne uniquement les JVM 64 bits. En effet le passage d&#8217;un adressage de 32 à 64 bits entraîne une consommation plus élevée de la mémoire du fait de l&#8217;augmentation de la taille des pointeurs, induisant elle-même des temps de chargement plus longs et une surconsommation du cache du processeur. Pour palier ce problème, la compression de pointeurs se base sur le fait que la JVM aligne l&#8217;adresse des objets sur 64 bits (ceci afin de simplifier et donc d&#8217;accélérer leur accès en mémoire), pour procéder à un <em>scaling</em> des pointeurs. Ainsi, en limitant l&#8217;espace mémoire adressable à 32 Go, il est possible de contenir un pointeur dans 32 bits et donc de revenir à une consommation mémoire proche de celle d&#8217;une JVM 32 bits.</p><p>L&#8217;activation par défaut de ces deux optimisations sur le JDK 7 montre que l&#8217;équipe du projet estime désormais qu&#8217;elles ne sont plus expérimentales et qu&#8217;elles conviennent dans la majorité des cas. Ismael Juma <a
href="http://weblogs.java.net/blog/forax/archive/2009/10/06/jdk7-do-escape-analysis-default#comment-10698" title="prcise" >précise</a> par ailleurs qu&#8217;il est possible que ces activations par défaut soient reportées également au JDK 6 courant 2010.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/10/12/revue-de-presse-xebia-129/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/10/05/revue-de-presse-xebia-128/</link> <comments>http://blog.xebia.fr/2009/10/05/revue-de-presse-xebia-128/#comments</comments> <pubDate>Mon, 05 Oct 2009 16:06:26 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[j2me]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JPA]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[MIDP]]></category> <category><![CDATA[MSA]]></category> <category><![CDATA[NDK]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[Web Beans]]></category> <category><![CDATA[Weld]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2972</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Google essuie les plâtres et met à jour l&#8217;Android NDK MIDP 3 et MSA 2 pour sauver J2ME ? Agilité Départs de la Scrum Alliance : bruits de couloirs RIA Sécurité : 13 choses que les agresseurs d&#8217;applications web ne [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/10/05/revue-de-presse-xebia-128/#Googleessuielespltresetmetjour">Google essuie les plâtres et met à jour l&#8217;Android NDK</a></li><li><a
href="http://blog.xebia.fr/2009/10/05/revue-de-presse-xebia-128/#MIDPetMSApoursauverJME">MIDP 3 et MSA 2 pour sauver J2ME ?</a></li></ul><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/10/05/revue-de-presse-xebia-128/#DpartsdelaScrumAlliancebruitsd">Départs de la Scrum Alliance : bruits de couloirs</a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/10/05/revue-de-presse-xebia-128/#Scuritchosesquelesagresseursda">Sécurité : 13 choses que les agresseurs d&#8217;applications web ne vous diront pas</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/10/05/revue-de-presse-xebia-128/#Lesroadmapsdesimplmentationsde">Les roadmaps des implémentations de JPA 2.0</a></li><li><a
href="http://blog.xebia.fr/2009/10/05/revue-de-presse-xebia-128/#WebBeansestmortLonguevieaWeld">Web Beans est mort ! Longue vie a Weld !</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="Googleessuielespltresetmetjour"></a>Google essuie les plâtres et met à jour l&#8217;Android NDK</h4><p>Pour rappel, le NDK est un environnement de développement complémentaire au SDK qui permet d&#8217;utiliser des langages autres que Java pour développer sur Android. Ce NDK est principalement dédié au développement C et C++. Parmi les nouveautés de la version 1.6, vous trouverez :</p><ul><li>Les librairies OpenGL ES 1.1 qui rapprochent encore un peu Android de l&#8217;IphoneOS.</li><li>Ciblage de version Android pour garantir le fonctionnement de votre application.</li><li>Possibilité de mélanger les sources Java et le code natif dans un même projet.</li></ul><p>Mais la semaine passée fût aussi l&#8217;occasion d&#8217;une joute entre Google et certains développeurs Android. Sujet de la discorde, le <a
href="http://www.cyanogenmod.com/" title="CyanogenMod" >CyanogenMod</a> une version libre, modifiée, d&#8217;Android. Google n&#8217;a pas apprécié le fait que son développeur ait la riche idée de distribuer avec son mod, les applications propriétaires qui lui sont chères. Citons par exemple : GMail, YouTube, Maps et Market. Nul besoin de dire que le système perd de son intérêt quand il est privé de ces outils estampillés Google&#8230;</p><p>Le spécialiste de la recherche a donc demandé l&#8217;interruption de toute distribution de ce mod, en attendant que le développeur trouve un moyen de livrer de l&#8217;Android sans aucune des G-Apps. C&#8217;est un baptême du feu pour ce système que Google a voulu ouvert. D&#8217;aucun disent que Google avait la possibilité de créer une alternative libre au jardin d&#8217;Eden d&#8217;Apple entouré de hauts remparts, à la place ce sera un autre jardin avec des murs un peu plus bas.</p><h4><a
name="MIDPetMSApoursauverJME"></a>MIDP 3 et MSA 2 pour sauver J2ME ?</h4><p><a
href="http://java.sun.com/products/midp/" title="Mobile Information Device Profile" >Mobile Information Device Profile</a> <em>(MIDP)</em>, associé à <a
href="http://java.sun.com/products/cldc/" title="Connected Limited Device Configuration" >Connected Limited Device Configuration</a> <em>(CLDC)</em> constitue l&#8217;API de base de J2ME, c&#8217;est cette architecture qui constitue le parc de 2 milliards de <em>devices</em> revendiqués par SUN.</p><p>La <a
href="http://jcp.org/en/jsr/detail?id=248" title="JSR-248 (Mobile Service Architecture)" >JSR-248 (Mobile Service Architecture)</a>, quant à elle, définit un ensemble d&#8217;APIs additionnelles pour les environnements MIDP J2ME apportant chacune un service particulier permettant souvent d&#8217;accéder à des fonctionnalités matérielles sous-jacentes (Bluetooth, GPS, Camera, &#8230;).</p><p>Ces deux piliers de J2ME sont en train d&#8217;évoluer avec la finalisation de <a
href="http://jcp.org/en/jsr/detail?id=271" title="MIDP 3" >MIDP 3</a> et <a
href="http://jcp.org/en/jsr/detail?id=249" title="MSA 2" >MSA 2</a>. Tandis que le premier apportera un rafraichissement de l&#8217;API de base de J2ME, le second poussera plus loin les possibilités d&#8217;intégration des applications mobiles J2ME.</p><p>Alors que les valeurs montantes du moment dans le monde du développement mobile sont clairement les plates-formes Android et iPhone, le rafraîchissement des APIs J2ME vieillissantes est le bienvenue et viendra épauler JavaFX Mobile dans son hypothétique ascension. On peut toutefois douter que cela suffira à inverser la tendance même si J2ME, fort de son parc colossal, n&#8217;est clairement pas menacé à court terme.</p><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="DpartsdelaScrumAlliancebruitsd"></a>Départs de la Scrum Alliance : bruits de couloirs</h4><p>Vous le savez surement, la fin de l&#8217;été a marqué un tournant au sein de la Scrum Alliance.<br
/> Le 15 Septembre, dans un <a
href="http://www.scrumalliance.org/news_items/75" title="communiqu laconique" >communiqué laconique</a> <em>(et très américain &#8211; nous remercions &#8230; blablabla pour son excellent travail &#8230; blabla)</em>, il nous était annoncé le départ de deux éminents membres de la Scrum Alliance, Ken Schwaber <em>(son CEO)</em> et Jim Cundiff <em>(son Managing Director)</em>.<br
/> Après une enquête acharnée et au détour de quelques indiscrétions de sources <em>(que nous ne citerons pas)</em>, il s&#8217;avère que Ken a eu un grave accident de vélo et que Jim a été démissionné compte tenu de ses manquements dans la refonte du processus de certification dont il était en charge.</p><h3><a
name="RIA"></a>RIA</h3><h4><a
name="Scuritchosesquelesagresseursda"></a>Sécurité : 13 choses que les agresseurs d&#8217;applications web ne vous diront pas</h4><p>Le Denim Group regroupe dans <a
href="http://denimgroup.typepad.com/denim_group/2009/09/13-things-a-web-application-attacker-wont-tell-you.html" title="13 Things a Web Applications Attacker Wont Tell You" >13 Things a Web Applications Attacker Won&#8217;t Tell You</a> les principales failles de sécurité de nos applications web :</p><ol><li>Transformer une requête GET en POST ne cachera pas les paramètres même s&#8217;ils n&#8217;apparaissent plus dans la barre d&#8217;adresse du navigateur <em>(vérifiez avec <a
href="http://www.charlesproxy.com/" title="Charles Proxy" >Charles Proxy</a> ou <a
href="http://www.fiddler2.com/fiddler2/" title="Fiddler" >Fiddler</a> si vous en doutez)</em>.</li><li>Utiliser un champ de formulaire <code>hidden</code> ne permet ni de cacher une information ni d&#8217;empêcher sa modification.</li><li>Idem pour les cookies <em>(voir #1)</em>.</li><li>Contrôler les données coté client avec du javascript ne m&#8217;empêchera pas de modifier leur valeur.</li><li>J&#8217;aime vous entendre dire &laquo;&nbsp;Cela n&#8217;arrivera jamais en production&nbsp;&raquo;.</li><li>Et j&#8217;adore quand vous dites &laquo;&nbsp;Un pirate ne ferait jamais ça&nbsp;&raquo;.</li><li>Je déteste les validations strictes cote serveur.</li><li>Cette page d&#8217;erreur avec le message détaillé me facilite tellement la vie.</li><li>La plupart des bannières &laquo;&nbsp;Sécurité Garantie !&nbsp;&raquo; ne me servent qu&#8217;a voir que vous n&#8217;avez pas compris les bases de la sécurité.</li><li>Ce scanneur d&#8217;application web que vous avez lancé, il n&#8217;a rien trouvé. Il n&#8217;a même pas effleuré les failles de votre application.</li><li>Ce scanneur réseau que vous avez lancé, il n&#8217;a même pas commencé a tester la sécurité de votre application.</li><li>Je connais AJAX (et toutes les nouvelles technologies a la mode) mieux que vous et mieux que vous ne pouvez imaginer.</li><li>Le plus astucieux vous vous croyiez, le mieux je me sens.</li></ol><p>Moralité, soyons humble et rigoureux, nous ne pourrons pas dire que nous ne savions pas, ces conseils sont répétés par la plupart des tutoriaux de frameworks web <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="Lesroadmapsdesimplmentationsde"></a>Les roadmaps des implémentations de JPA 2.0</h4><p>Alors que la <a
href="http://jcp.org/en/jsr/detail?id=317" title="JSR-317 (Java Persistence API 2.0)" >JSR-317 (Java Persistence API 2.0)</a> vient de diffuser une <em>Proposed Final Draft 2</em> et que sa finalisation approche, nous souhaitions faire un tour d&#8217;horizon des principales implémentations en préparation. Comme c&#8217;est souvent le cas avec les JSRs, les développeurs n&#8217;attendent pas la finalisation des spécifications pour commencer à les implémenter. Ainsi, on se souvient que JPA 1.0, intégré à la <a
href="http://jcp.org/en/jsr/summary?id=220" title="JSR-220 (Enterprise JavaBeans 3.0)" >JSR-220 (Enterprise JavaBeans 3.0)</a> avait fait l&#8217;objet d&#8217;implémentations alpha chez JBoss dès la diffusion des <em>early drafts</em>, ce qui avait permis la stabilisation du conteneur peu après la finalisation de la JSR.</p><ul><li><strong>Hibernate</strong> : l&#8217;équipe de développement Hibernate <a
href="http://relation.to/12153.lace" title="a annonc" >a annoncé</a> fin aout la disponibilité d&#8217;une version 3.5 beta 1 qui implémentait la majorité des nouveautés de JPA 2.0. Aucune indication n&#8217;était alors donnée sur la date de finalisation, mais le bon avancement permet de supposer qu&#8217;elle arrivera rapidement. A noter toutefois que certaines optimisations importantes telles que la compilation des requêtes <em>criteria</em> n&#8217;arriveront que dans une version ultérieure.</li><li><strong>EclipseLink</strong> : la fondation Eclipse <a
href="http://www.eclipse.org/org/press-release/20080317_Eclipselink.php" title="avait annoncé" >avait annoncé</a> fièrement en début d&#8217;année 2008 qu&#8217;EclipseLink serait l&#8217;implémentation JPA 2.0 de référence. Une <a
href="http://wiki.eclipse.org/EclipseLink/RoadMap" title="roadmap" >roadmap</a> mise à jour en avril dernier fait état d&#8217;une version 2.0 d&#8217;EclipseLink implémentant JPA 2.0 pour l&#8217;automne 2009.</li><li><strong>Apache OpenJPA</strong> : le projet OpenJPA maintient <a
href="http://openjpa.apache.org/jpa-20-roadmap.html" title="une roadmap" >une roadmap</a> très rigoureuse tablant sur un démarrage de phase <em>release candidate</em> pour la fin de l&#8217;année. Il s&#8217;agira de la version 2.0 d&#8217;OpenJPA, elle est actuellement développée sur le <em>trunk</em> du projet.</li></ul><p>La première version de la spécification JPA a été un succès puisque de nombreux développeurs ont reconnu sa légitimité et l&#8217;ont adopté dans leurs projets plutôt que de se reposer sur l&#8217;API propre à leur <em>framework</em> de persistance. Toutefois, pour certaines fonctionnalités telles que les requêtes <em>criteria</em> ou des options de <em>mapping</em> évoluées, il était jusqu&#8217;alors nécessaire de contourner JPA. Dès lors, on imagine aisément que JPA 2.0, comblant les manques de son ainée, bénéficiera d&#8217;une large adoption. La disponibilité des moteurs JPA 2.0 qui seront utilisés par JBoss AS, Glassfish et WebSphere autour de la fin de l&#8217;année devrait par ailleurs accélérer l&#8217;omniprésence de cette nouvelle API.</p><h4><a
name="WebBeansestmortLonguevieaWeld"></a>Web Beans est mort ! Longue vie a Weld !</h4><p>Apres les bruits de couloir de la Scrum Alliance, nous continuons la rubrique people avec une fois encore Web Beans. Après le changement de nom de la <a
href="http://jcp.org/en/jsr/detail?id=299" title="JSR 299" >JSR 299</a> en Java Contexts and Dependency Injection, voici que la Reference Implementation se <a
href="http://in.relation.to/Bloggers/TheJSR299ReferenceImplementationGetsANewName" title="rebaptise Weld" >rebaptise Weld</a>.<br
/> Pendant ce temps, la <a
href="http://www.jcp.org/en/jsr/summary?id=330" title="JSR 330: Dependency Injection for Java" >JSR 330: Dependency Injection for Java</a> continue son chemin avec son implémentation partielle dans <a
href="http://blog.springsource.com/2009/09/29/spring-framework-3-0-rc1-released/" title="Spring Framework 3.0 RC1" >Spring Framework 3.0 RC1</a> et son intégration dans <a
href="http://code.google.com/p/google-guice/issues/detail?id=424" title="Google Guice" >Google Guice</a>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/10/05/revue-de-presse-xebia-128/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/09/28/revue-de-presse-xebia-126/</link> <comments>http://blog.xebia.fr/2009/09/28/revue-de-presse-xebia-126/#comments</comments> <pubDate>Mon, 28 Sep 2009 16:36:38 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Chrome]]></category> <category><![CDATA[Devoxx]]></category> <category><![CDATA[IE]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[JBoss Microcontainer]]></category> <category><![CDATA[Lucene]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[Tellurium]]></category> <category><![CDATA[VFS]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2922</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Condamnation pour non respect de licence RIA Chrome dans IE avec Google Chrome Frame Le coin de la technique Guide utilisateur de Tellurium Lucene évolue et prépare l&#8217;avenir JBoss Microcontainer et son Virtual File System Injection de dépendances en Javascript [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/09/28/revue-de-presse-xebia-126/#Condamnationpournonrespectdeli">Condamnation pour non respect de licence</a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/09/28/revue-de-presse-xebia-126/#ChromedansIEavecGoogleChromeFr">Chrome dans IE avec Google Chrome Frame</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/09/28/revue-de-presse-xebia-126/#GuideutilisateurdeTellurium">Guide utilisateur de Tellurium</a></li><li><a
href="http://blog.xebia.fr/2009/09/28/revue-de-presse-xebia-126/#Lucenevolueetprparelavenir">Lucene évolue et prépare l&#8217;avenir</a></li><li><a
href="http://blog.xebia.fr/2009/09/28/revue-de-presse-xebia-126/#JBossMicrocontaineretsonVirtua">JBoss Microcontainer et son Virtual File System</a></li><li><a
href="http://blog.xebia.fr/2009/09/28/revue-de-presse-xebia-126/#InjectiondedpendancesenJavascr">Injection de dépendances en Javascript &#8230;</a></li></ul><p><strong>Evènements de notre communauté en France et à l&#8217;étranger</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/09/28/revue-de-presse-xebia-126/#Devoxxleplanningdessessionsest">Devoxx 2009 : le planning des sessions est maintenant connu</a></li><li><a
href="http://blog.xebia.fr/2009/09/28/revue-de-presse-xebia-126/#AsylumunnouveaupodcastddiJBoss">Asylum, un nouveau podcast dédié à JBoss</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="Condamnationpournonrespectdeli"></a>Condamnation pour non respect de licence</h4><p>Qu&#8217;arrive-t-il lorsque l&#8217;on réutilise du code open source sans se soucier de sa licence ? On se fait taper sur les doigts. C&#8217;est en effet la mésaventure qui est arrivé à la société Edu4, comme le présente l&#8217;<a
href="http://fsffrance.org/news/article2009-09-22.fr.html" title="article de la Free Software Foundation France sur laffaire" >article de la Free Software Foundation France sur l&#8217;affaire</a>.<br
/> Ayant fourni en 2000 à l&#8217;<a
href="http://www.afpa.fr/" title="AFPA" >AFPA</a> (un organisme de formation professionnelle) un logiciel basé sur VNC, Edu4 a reçu une requête de cet organisme demandant le code source du logiciel, conformément à ce qu&#8217;autorise la licence GPL.<br
/> Edu4, dans un premier temps, a refusé de fournir les sources de VNC modifiées par ses soins. Puis, à la suite d&#8217;une décision de justice de 2002, a fourni des sources ne correspondant pas à la version livrée et dans lesquelles le texte de la licence GPL de VNC avait été retiré.<br
/> Cette semaine, la cour d&#8217;Appel de Paris a reconnu Edu4 coupable.<br
/> Nous savons tous comment se passent les projets sur lesquels il y a une certaine pression et certains enjeux qui poussent à sortir des produits le plus vite possible sans mesurer toutes les conséquences. Nous ne jetterons donc pas la pierre à Edu4. Mais cette histoire permet de préciser que (1) la licence GNU GPL a bien valeur légale en France et que (2) n&#8217;importe quel utilisateur de logiciel basé sur la licence GNU GPL est en droit de réclamer les sources, et pas seulement les auteurs du code original (dans le cas présent, les auteurs de VNC n&#8217;ont pas participé au procès).</p><p>Il faut donc être bien conscient des conséquences que peut avoir la réutilisation de code open-source. Selon la licence (<a
href="http://fr.wikipedia.org/wiki/Logiciel_libre#Licences" title="article de Wikipedia sur les licences du logiciel libre" >article de Wikipedia sur les licences du logiciel libre</a>), il y a des obligations et des contraintes. Mais c&#8217;est bien là la moindre des choses pour pouvoir profiter de code déjà testé, éprouvé et amélioré par nombre de contributeurs. Cette prise de conscience est d&#8217;autant plus nécessaire que les composants open-source sont <a
href="http://www.zdnet.fr/galerie-image/0,50018840,39707056,00.htm" title="de plus en plus présents dans les SI des entreprises françaises" >de plus en plus présents dans les SI des entreprises françaises</a>. Pour un autre éclairage sur ces questions, on peut citer <a
href="http://www.itrmanager.com/articles/95161/trois-questions-posent-dsi-propos-logiciels-libres-br-matt-light-vice-president-recherche-gartner.html" title="linterview de Matt Light par ITRManager" >l&#8217;interview de Matt Light par ITRManager</a>.</p><h3><a
name="RIA"></a>RIA</h3><h4><a
name="ChromedansIEavecGoogleChromeFr"></a>Chrome dans IE avec Google Chrome Frame</h4><p>Une des sensations de la semaine dernière est l&#8217;annonce de <a
href="http://blog.chromium.org/2009/09/introducing-google-chrome-frame.html" title="Google Chrome Frame" >Google Chrome Frame</a> ou comment transformer Internet Explorer en Google Chrome.<br
/> On ne compte plus les sites ayant relayé l&#8217;information : cela passe par <a
href="http://www.infoq.com/news/2009/09/Google-Chrome-Frame" title="InfoQ" >InfoQ</a>, <a
href="http://ajaxian.com/archives/chrome-frame" title="Ajaxian" >Ajaxian</a>, <a
href="http://www.insideria.com/2009/09/google-releases-google-chrome.html" title="Inside RIA" >Inside RIA</a> ou encore <a
href="http://www.techcrunch.com/2009/09/22/google-turns-internet-explorer-into-chrome-yes-seriously/" title="TechCrunch" >TechCrunch</a>.<br
/> <a
href="http://code.google.com/intl/fr-FR/chrome/chromeframe/" title="Google Chrome Frame" >Google Chrome Frame</a> se présente sous la forme d&#8217;un plug-in pour Internet Explorer (6, 7 et 8). Le plug-in se lancera sur la balise suivante (ce qui implique donc que tous nos <code>header</code> HTML doivent être changés) :</p><pre class="brush: java; title: ; notranslate">
&lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;chrome=1&quot;&gt;
</pre><p>À partir de là, 2 possibilités :</p><ul><li>Le plug-in est installé : il détecte le tag et lance le moteur de rendu de Chrome (<a
href="http://webkit.org/" title="WebKit" >WebKit</a>) dans IE</li><li>Le plug-in n&#8217;est pas installé : la page s&#8217;affiche normalement dans IE mais il est possible de rediriger l&#8217;utilisateur vers une page d&#8217;installation</li></ul><p>Les avantages sont multiples : on retiendra de nombreuses optimisations de performances Javascript, un chargement de page plus rapide mais aussi l&#8217;utilisation de HTML 5 avec le offline et les <code>canvas</code>.<br
/> Il sera alors possible, comme le rappelle <a
href="http://www.infoq.com/news/2009/09/Google-Chrome-Frame" title="InfoQ" >InfoQ</a>, pour <a
href="http://wave.google.com/" title="Google Wave" >Google Wave</a> d&#8217;offrir une expérience utilisateur complète à tous les utilisateurs d&#8217;Internet Explorer (en effet, celui-ci utilisera de nombreuses fonctionnalités de HTML 5).<br
/> Le support d&#8217;IE continuera comme le rappelle Lars Rasmussen (Team manager de Google Wave) qui insiste aussi sur le fait que les différentes versions d&#8217;IEs ralentissent l&#8217;élaboration d&#8217;applications web dîtes riches (avec des <em>quick fixes</em> à n&#8217;en plus finir pour obtenir des résultats présents out of the box chez les autres navigateurs).</p><p>Plusieurs réactions ont suivi cette annonce. On pourra retenir celle de <a
href="http://robertnyman.com/2009/09/23/google-chrome-frame-google-wave-not-supporting-any-version-of-internet-explorer/" title="Robert Nyman" >Robert Nyman</a> (par <a
href="http://ajaxian.com/archives/chrome-frame-no-one-will-care-but-it%E2%80%99s-fantastic" title="Ajaxian" >Ajaxian</a>) qui rappelle fort justement que les utilisateurs restant sur de vielles versions d&#8217;IEs sont (pour résumer grossièrement) :</p><ul><li>soit des utilisateurs qui ne savent pas ce qu&#8217;est un navigateur (et donc n&#8217;installeront jamais ce plug-in)</li><li>soit (malheureusement pour ceux qui y sont confrontés) des sociétés qui bloquent les mises à jours logicielles (il sera donc peu probable que le plug-in soit autorisé à être installé)</li></ul><p><a
href="http://ajaxian.com/archives/chrome-frame" title="Dion Almaer" >Dion Almaer</a> se pose la question de l&#8217;inversion des rôles quant à l&#8217;expérience utilisateur : est-ce au développeur de choisir (forcer ?) le renderer/navigateur à utiliser ?<br
/> En tous cas, on ne peut que saluer le travail effectué et espérer que cela aidera, ne serait-ce qu&#8217;un peu, à réduire les IE 6 de ce monde <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /></p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="GuideutilisateurdeTellurium"></a>Guide utilisateur de Tellurium</h4><p><a
href="http://code.google.com/p/aost/" title="Tellurium" >Tellurium</a> nous <a
href="http://code.google.com/p/aost/wiki/announcements#The_Tellurium_User_Guide_0.6.0_is_Available_Now" title="annonce" >annonce</a> la sortie de son guide utilisateur version 0.6.0.<br
/> En 5 chapitres, celui-ci parcourt :</p><ul><li>Les concepts et fonctionnalités principaux de l&#8217;outil</li><li>Un Getting Started</li><li>Les sous-projets de Tellurium (archetype Maven, TrUMP&#8230;)</li><li>L&#8217;architecture de Tellurium</li><li>Ses APIs (DSLs, data access&#8230;)</li></ul><p>Le PDF se récupère à  cette <a
href="http://aost.googlecode.com/files/TelluriumUserGuide.0.6.0.pdf" title="url" >url</a>.<br
/> Et pour un petit aperçu du projet, je vous renvoie vers notre article sur comment <a
href="http://blog.xebia.fr/2009/04/08/ameliorer-lecriture-de-vos-tests-selenium/" title="amliorer lcriture de vos tests selenium" >améliorer l&#8217;écriture de vos tests selenium</a>.</p><h4><a
name="Lucenevolueetprparelavenir"></a>Lucene évolue et prépare l&#8217;avenir</h4><p>Le projet Apache Lucene <a
href="http://lucene.apache.org/#25+September+2009+-+Lucene+Java+2.9.0+available" title="annonce" >annonce</a> la disponibilité de la version 2.9 du célèbre <em>framework</em> de recherche d&#8217;information. La <a
href="http://lucene.apache.org/java/2_9_0/changes/Changes.html" title="liste des changements" >liste des changements</a> est conséquente.</p><p>Shalin Shekhar Mangar, <em>committer</em> sur Apache Solr, <a
href="http://shalinsays.blogspot.com/2009/04/burst-of-activity-in-lucene.html" title="faisait part" >faisait part</a> il y a quelques mois d&#8217;une activité très dense sur le projet Lucene pour préparer cette nouvelle version. Il expliquait alors que la majorité du travail était imputable au <em>near real-time search</em>, amélioration permettant de refléter très rapidement les modifications des données dans les résultats des requêtes alors que celles-ci sont habituellement rendues visibles seulement après le <em>commit</em> des changements dans l&#8217;index.</p><p>Outre cette nouvelle possibilité de recherche en <em>temps réel</em>, les principaux apports de Lucene 2.9 :</p><ul><li>Optimisations portant sur la mise en cache de segments inchangés de l&#8217;index, apportant un gain significatif de performance</li><li>Gestion plus efficace des champs numériques avec l&#8217;ajout des classes <code><a
href="http://lucene.apache.org/java/2_9_0/api/core/org/apache/lucene/document/NumericField.html" title="NumericField" >NumericField</a></code> et <code><a
href="http://lucene.apache.org/java/2_9_0/api/core/org/apache/lucene/search/NumericRangeQuery.html" title="NumericRangeQuery" >NumericRangeQuery</a></code>. Il en résulte un gain de performance sur les requêtes par intervalles</li><li>Support des requêtes géo-spaciales (module <code>contrib/spatial</code>)</li><li>Nouveaux <em>analyzers</em> (<code>PersianAnalyzer</code>, <code>ArabicAnalyzer</code>, et <code>SmartChineseAnalyser</code>)</li><li>Diverses améliorations d&#8217;API notamment sur le <code>Collector</code> / <code>Scorer</code> et le <code>QueryParser</code></li></ul><p>Par ailleurs, Lucid Imagination, une société américaine d&#8217;expertise Lucene, propose un <em>webinar</em> sur <a
href="http://www.lucidimagination.com/blog/2009/09/22/lucene29_webinar/" title="les nouveauts" >les nouveautés</a> de cette version. On y retrouve également les plans pour la version 3.0 : les changements seront majeurs puisqu&#8217;il est prévu de passer l&#8217;API à Java 5 et de supprimer les éléments précédemment dépréciés.</p><p>La documentation du projet évolue également mais reste moins fournie qu&#8217;on ne le souhaiterait et les développements avec Lucene doivent souvent être accompagnés de l&#8217;ouvrage <a
href="http://www.manning.com/hatcher2/" title="Lucene In Action" >Lucene In Action</a> paru chez Manning. Ce livre paraîtra dans <a
href="http://manning.com/hatcher3/" title="une seconde dition" >une seconde édition</a>, mise à jour pour la version 3.0 du framework, en mars 2010.</p><p>Cette activité dense de l&#8217;équipe Lucene est en rapport avec l&#8217;importance que prend ce projet dans la mise en œuvre des nombreux cas d&#8217;utilisations issus du Web moderne, tels que les recherches intelligentes et rapides, les systèmes de suggestions, et les analyses de contenu.</p><h4><a
name="JBossMicrocontaineretsonVirtua"></a>JBoss Microcontainer et son Virtual File System</h4><p>Le projet Microcontainer de JBoss est le noyau de la version 5.0 du serveur d&#8217;application de l&#8217;éditeur <a
href="http://blog.xebia.fr/2008/12/08/revue-de-presse-xebia-86/#JBossAScefutlongmaiscestparti" title="sortie en fin danne dernire" >sortie en fin d&#8217;année dernière</a>. Il remplace le Microkernel JMX qui était utilisé jusqu&#8217;alors dans les version 4.x de JBoss AS. Le choix d&#8217;un tel noyau développé en interne avait fait l&#8217;objet de quelques remarques lors de son développement puisqu&#8217;il offre des fonctionnalités très classiques telles que la gestion du cycle de vie de ses composants, l&#8217;injection de dépendances et de propriétés, et des fonctionnalités d&#8217;AOP.</p><p>Ce Microcontainer s&#8217;illustre malgré tout par son système de déploiement reposant sur une abstraction très flexible encapsulant le chargement de ressources qu&#8217;elles soient sous forme de Jar, de fichiers, ou de répertoires : le <em>Virtual File System</em>. Cette fonctionnalité très puissante est malheureusement <a
href="http://www.jboss.org/file-access/default/members/jbossmc/freezone/docs/2.0.x/userGuide/ch20.html" title="trs peu documente dans le manuel utilisateur" >très peu documentée dans le manuel utilisateur</a> du projet. Sa bonne maîtrise est pourtant souhaitable pour bien comprendre le comportement et les possibilités du déploiement d&#8217;applications dans JBoss AS 5.0 ou encore (scénario certes beaucoup moins courant) pour utiliser directement le Microcontainer dans un projet.</p><p>Ce manque de documentation est maintenant partiellement comblé grâce à Ales Justin, travaillant chez JBoss sur leur serveur d&#8217;application, qui a mis en ligne <a
href="http://java.dzone.com/news/jboss-virtual-file-system" title="un article sur VFS" >un article sur VFS</a>. Cet article fait suite à deux articles précédents sur le <a
href="http://java.dzone.com/articles/a-look-inside-jboss-microconta" title="modèle de composants" >modèle de composants</a> et <a
href="http://java.dzone.com/articles/a-look-inside-jboss-microconta-0" title="linjection de dpendances" >l&#8217;injection de dépendances</a> dans JBoss Microcontainer.</p><p>Il y présente l&#8217;architecture de VFS et les abstractions et APIs mises en œuvre. On découvre alors des interfaces très claires et on se rend compte qu&#8217;il est envisageable de développer son propre protocole pour VFS afin de permettre le chargement de ressources depuis n&#8217;importe quelle source de stockage (réseau, base de données, repository, &#8230;).</p><p>Au-delà de la compréhension de cette architecture et de son comportement standard, on retiendra donc cette possibilité d&#8217;adapter le déploiement des applications sur JBoss AS 5.x à l&#8217;infrastructure mise en place dans l&#8217;entreprise, et ce, pour un coût raisonnable.</p><p>A noter que l&#8217;auteur annonce que le prochain article portera sur le système de <em>classloading</em> du Microcontainer. A suivre donc &#8230;</p><h4><a
name="InjectiondedpendancesenJavascr"></a>Injection de dépendances en Javascript &#8230;</h4><p>Dans la série <em>pourquoi faire simple quand on peut faire compliqué</em>, à l&#8217;heure où Spring vient d&#8217;annoncer la sortie de la <a
href=" http://jira.springframework.org/secure/ReleaseNote.jspa?projectId=10040&#038;styleName=Html&#038;version=11172" title="version 3-RC1" >version 3-RC1</a> de son framework, à l&#8217;heure où Google sort son nouveau framework web <a
href="http://www.infoq.com/news/2009/09/google-sitebricks" title="sitebricks" >sitebricks</a> basé sur <a
href="http://code.google.com/p/google-guice/" title="Google Guice" >Google Guice</a>, son framework d&#8217;injection de dépendances, pourquoi ne pas abandonner tout cela et gérer vous-même l&#8217;injection des dépendances de votre application Java en &#8230; Javascript ! C&#8217;est ce que nous propose <a
href="http://tuxychandru.blogspot.com/2009/08/using-javascript-as-di-container-in.html" title="lauteur de cet article" >l&#8217;auteur de cet article</a>.</p><p>S&#8217;il est clair que vous n&#8217;allez pas jeter votre framework préféré dés la lecture de ce billet, cette solution<br
/> a tout de même le mérite, en plus d&#8217;être originale, d&#8217;utiliser uniquement les fonctions du JDK : <a
href="http://java.sun.com/javase/6/docs/technotes/guides/scripting/programmer_guide/index.html" title="Scripting API" >Scripting API</a> + <a
href="http://java.sun.com/j2se/1.4.2/docs/api/java/lang/reflect/Proxy.html" title="proxy dynamique" >proxy dynamique</a>.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="Devoxxleplanningdessessionsest"></a>Devoxx 2009 : le planning des sessions est maintenant connu</h4><p><a
href="http://www.devoxx.com/" title="Devoxx" >Devoxx</a> (anciennement JavaPolis) est la première conférence Java au niveau européen et la seconde au niveau mondial, après JavaOne. L&#8217;édition 2009 se déroulera du 16 au 20 novembre et devrait, cette année encore, réunir plus de 3000 personnes.</p><p>Le <a
href="http://www.devoxx.com/display/DV09/Schedule" title="planning des sessions" >planning des sessions</a> est maintenant connu, ce qui permet d&#8217;observer les tendances du moment. On dégage ainsi une présence marquée du Cloud Computing, de JDK 7 et des langages alternatifs pour la JVM, notamment Scala.</p><p>On peut également noter quelques sessions particulièrement alléchantes telles que :</p><ul><li>Le keynote de Steven Harris (Oracle, <em>Product Development</em> &#038; <em>Server Technologies</em>)</li><li>Le keynote d&#8217;Ivar Jacobson</li><li><a
href="http://www.devoxx.com/display/DV09/Distributed+Programming+the+Google+Way" title="Distributed Programming the Google Way" >Distributed Programming the Google Way</a> par Gregor Hohpe (l&#8217;auteur de <a
href="http://www.informit.com/store/product.aspx?isbn=0321200683" title="Enterprise Integration Patterns" >Enterprise Integration Patterns</a>), qui présentera les technologies mises au point par Google (MapReduce, GFS, Sawzall, Chubby, Protocol Buffers, &#8230;) pour rendre leurs applications distribuées optimales et surtout réalisables</li><li><a
href="http://www.devoxx.com/pages/viewpage.action?pageId=2753089" title="The Modular Java Platform  Project Jigsaw" >The Modular Java Platform &#038; Project Jigsaw</a> par Mark Reinold, qui permettra de faire le point sur cette technologie clé du JDK 7 qui est encore peu documentée.</li><li><a
href="http://www.devoxx.com/display/DV09/Maven3" title="Maven 3" >Maven 3</a> par Jason van Zyl (créateur de Maven)</li></ul><p>En outre, pour ceux qui n&#8217;auraient pu assister à la <a
href="http://www.parisjug.org/xwiki/bin/view/Meeting/20090113" title="présentation de JEE 6" >présentation de JEE 6</a> par Antonio Goncalves au ParisJUG en début d&#8217;année, ou qui souhaiteraient être au fait des dernières évolutions, il présentera de nouveau <a
href="http://www.devoxx.com/display/DV09/The+Java+EE+6++Platform" title="une session sur ce sujet" >une session sur ce sujet</a> à Devoxx.</p><p>L&#8217;édition 2009 s&#8217;annonce donc aussi riche que les précédentes, ce qui laisse présager que, comme les années passées, les places seront toutes vendues 1 ou 2 semaines avant le début de la conférence, alors ne tardez pas à vous inscrire si vous êtes intéressés !</p><h4><a
name="AsylumunnouveaupodcastddiJBoss"></a>Asylum, un nouveau podcast dédié à JBoss</h4><p><a
href="http://asylum.libsyn.com/" title="JBoss Community Asylum" >JBoss Community Asylum</a> est un nouveau <em>podcast</em> créé par Max R. Andersen (JBoss Tools), Emmanuel Bernard (Hibernate), et Michael Neale (Drools) dont le contenu sera entièrement centré sur l&#8217;actualité et les informations relatives à la communauté JBoss.</p><p>Le premier épisode est en ligne et revient sur la conférence JBoss World et les nouveautés qui y ont été présentées, notamment :</p><ul><li><a
href="http://blog.xebia.fr/2009/05/04/revue-de-presse-xebia-107/#JBossveutsonDataGrid" title="Infinispan" >Infinispan</a>, une évolution majeure de JBoss Cache</li><li><a
href="http://blog.xebia.fr/2009/09/21/revue-de-presse-xebia-127/#LinitiativeRESTfaitdbat" title="REST" >REST-*</a>, un ensemble de spécifications de services pour REST</li><li><a
href="http://www.jboss.org/gatein" title="GateIn" >GateIn</a>, le nouveau portail issu du <a
href="http://blog.xebia.fr/2009/06/15/revue-de-presse-xebia-113/#JBosseteXofusionnentleurssolut" title="partenariat entre JBoss et eXo" >partenariat entre JBoss et eXo</a></li><li><a
href="http://torquebox.org/" title="TorqueBox" >TorqueBox</a>, un conteneur d&#8217;applications Ruby On Rails pour JBoss AS</li><li><a
href="http://blog.xebia.fr/2009/08/31/revue-de-presse-xebia-124/#JBossHornetQ" title="HornetQ" >HornetQ</a>, la nouvelle version de JBoss Messaging</li><li><a
href="http://www.jboss.org/community/wiki/ShrinkWrap" title="Shrinkwrap" >Shrinkwrap</a>, une API d&#8217;assemblage d&#8217;archives applicatives Java</li></ul><p>Pour rappel, Emmanuel Bernard participe également à un <em>podcast</em> en français, <a
href="http://lescastcodeurs.com" title="les Cast Codeurs" >les Cast Codeurs</a>, dont le dernier épisode en date est <a
href="http://lescastcodeurs.com/2009/09/les-cast-codeurs-podcast-episode-9-tout-le-monde-rachete-tout-le-monde/" title="disponible depuis hier" >disponible depuis hier</a>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/09/28/revue-de-presse-xebia-126/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Java Cloud : après Tomcat, c&#8217;est au tour de Jetty !</title><link>http://blog.xebia.fr/2009/09/03/java-cloud-apres-tomcat-cest-au-tour-de-jetty/</link> <comments>http://blog.xebia.fr/2009/09/03/java-cloud-apres-tomcat-cest-au-tour-de-jetty/#comments</comments> <pubDate>Thu, 03 Sep 2009 17:24:25 +0000</pubDate> <dc:creator>Cyrille Le Clerc</dc:creator> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Cloud Computing]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Jetty]]></category> <category><![CDATA[SpringSource]]></category> <category><![CDATA[Tomcat]]></category> <category><![CDATA[VMWare]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2774</guid> <description><![CDATA[Après Tomcat qui rentrait cet été de plain-pied dans l&#8217;univers du Java Platform as a Service avec le mariage de SpringSource à VMWare et à CloudFoundry, c&#8217;est au tour de l&#8217;autre moteur léger de servlets, Jetty/Webtide, de s&#8217;adosser à un acteur du Cloud Computing, Intalio, pour développer son offre. Une reconnaissance méritée C&#8217;est une très [...]]]></description> <content:encoded><![CDATA[<p>Après Tomcat qui rentrait cet été de plain-pied dans l&#8217;univers du Java Platform as a Service avec le mariage de SpringSource à VMWare et à CloudFoundry, c&#8217;est au tour de l&#8217;autre moteur léger de servlets, Jetty/<a
href="http://www.webtide.com/">Webtide</a>, de s&#8217;adosser à un acteur du Cloud Computing, <a
href="http://www.intalio.com">Intalio</a>, pour développer son offre.</p><p><strong>Une reconnaissance méritée</strong><br
/> C&#8217;est une très belle opportunité pour Jetty qui était jusqu&#8217;à présent beaucoup plus embarqué que Tomcat par des grands projets de Cloud Computing (Google App Engine, Hadoop, Gigaspace XAP, etc) mais n&#8217;avait pas constitué sa propre offre.</p><p><strong>Sur les pas d&#8217;Amazon ?</strong><br
/> Le mariage d&#8217;Intalio avec Webtide est assez différent de celui de SpringSource avec VMWare et Cloud Foundry. Alors que la deuxième union concerne des spécialistes de l&#8217;infrastructure, Intalio est lui issu de l&#8217;univers des applications CRM et s&#8217;étend vers les infrastructures de Cloud Computing comme l&#8217;a fait Amazon auparavant.</p><p><strong>Des serveurs J2EE <em>lourds</em> absents</strong><br
/> Nous remarquerons à l&#8217;occasion que les serveurs J2EE <em>heavyweight</em> se font très discrets dans cette période d&#8217;avalanche d&#8217;annonces sur Java Platform as a Service, on peut s&#8217;attendre à ce qu&#8217;ils répondent sur cette tendance qui va bouleverser les modes de fonctionnement dans les data centers et menacer leurs parts de marché.</p><p><strong>Ils en parlent</strong></p><ul><li><a
href="http://www.intalio.com/news/press-releases/intalio-acquires-webtide-developer-of-the-jetty-application-server/">L&#8217;annonce officielle par Intalio</a></li><li><a
href="http://blogs.webtide.com/gregw/entry/urbanization_in_the_noosphere_intalio">L&#8217;annonce par Greg Wilkins, co-fondateur de Webtide</a></li><li>InfoQ : <a
href="http://www.infoq.com/news/2009/09/intalio-acquires-webtide">Intalio acquires Webtide</a></li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/09/03/java-cloud-apres-tomcat-cest-au-tour-de-jetty/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/08/31/revue-de-presse-xebia-124/</link> <comments>http://blog.xebia.fr/2009/08/31/revue-de-presse-xebia-124/#comments</comments> <pubDate>Mon, 31 Aug 2009 16:13:33 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[BlazeMonster]]></category> <category><![CDATA[Eclipse RCP]]></category> <category><![CDATA[Gartner]]></category> <category><![CDATA[HornetQ]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[jdk-7]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[TestSwarm]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2734</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Architecture Gartner adopte le pragmatisme avec l&#8217;Architecture Émergente Actualité éditeurs / SSII JBoss HornetQ RIA BlazeMonster Le coin de la technique Liste finale des évolutions du langage Java apportées par le JDK 7 Fin d&#8217;Eclipse RCP, place à&#8230; TestSwarm Architecture Gartner adopte le pragmatisme [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Architecture</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/08/31/revue-de-presse-xebia-124/#Gartneradoptelepragmatismeavec">Gartner adopte le pragmatisme avec l&#8217;Architecture Émergente</a></li></ul><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/08/31/revue-de-presse-xebia-124/#JBossHornetQ">JBoss HornetQ</a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/08/31/revue-de-presse-xebia-124/#BlazeMonster">BlazeMonster</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/08/31/revue-de-presse-xebia-124/#Listefinaledesvolutionsdulanga">Liste finale des évolutions du langage Java apportées par le JDK 7</a></li><li><a
href="http://blog.xebia.fr/2009/08/31/revue-de-presse-xebia-124/#FindEclipseRCPplace">Fin d&#8217;Eclipse RCP, place à&#8230;</a></li><li><a
href="http://blog.xebia.fr/2009/08/31/revue-de-presse-xebia-124/#TestSwarm">TestSwarm</a></li></ul><h3><a
name="Architecture"></a>Architecture</h3><h4><a
name="Gartneradoptelepragmatismeavec"></a>Gartner adopte le pragmatisme avec l&#8217;Architecture Émergente</h4><p>Gartner nous livre un plaidoyer pour la pragmatisme avec <a
href="http://www.infoq.com/news/2009/08/Emergent-Architecture" title="Emergent Architecture" >Emergent Architecture</a>. La formulation est parfois compliquée mais on se réjouira de trouver la responsabilisation des équipes sur le terrain et des Architectes d&#8217;Entreprise évangélistes de lignes directrices. Pour reprendre une expression chère au Lean Manufacturing, &laquo;&nbsp;Empower the People&nbsp;&raquo; <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> :</p><ol><li><strong>Non déterminisme</strong> &#8211; Dans le passé, les architectes d&#8217;entreprise prenaient des décisions centralisées qui s&#8217;appliquaient à tous. Dans une architecture émergente, ces architectes d&#8217;entreprise doivent au contraire décentraliser la prise de décisions pour permettre l&#8217;innovation.</li><li><strong>Acteurs autonomes</strong> &#8211; Les architectes d&#8217;entreprise ne peuvent plus contrôler tous les aspects de l&#8217;architecture comme ils le faisaient auparavant ; ils doivent désormais reconnaître l&#8217;étendue et la variété du SI ; ils doivent déléguer le contrôle aux équipes sur le terrain.</li><li><strong>Limiter les contraintes aux lignes directrices</strong> &#8211; Jusqu&#8217;à présent, les architectes d&#8217;entreprise ont fourni des spécifications détaillées de tous les aspects de l&#8217;architecture ; ils doivent désormais limiter leurs prescriptions aux lignes directrices et de permettre le choix.</li><li><strong>Acteurs orientés objectif</strong> &#8211; Auparavant, les seuls objectifs qui comptaient étaient les objectifs de l&#8217;entreprise mais cela s&#8217;est maintenant déplacé et chaque acteur agit dans ses propres intérêt. Il ne faut pas pour autant oublier les lignes directrices.</li><li><strong>Influences locales</strong>: Les acteurs sont influencés par des interactions locales et des informations limitées. Les feedbacks au sein de leur sphère de communication modifie leur comportement. Aucun acteur individuel ne possède la vision globale d&#8217;un système émergent. Les architectes d&#8217;entreprise doivent intensifier leur travail coordonner et de transmission de l&#8217;information.</li><li><strong>Systèmes dynamiques et adaptatifs</strong>: le système (les différents acteurs et leur environnement)  changent avec le temps. Les architectes d&#8217;entreprise doivent définir les pourtours des systèmes émergents et ajuster en fonction des changements.</li><li><strong>Environnement aux ressources limitées</strong>: L&#8217;abondance, les budgets illimités, ne permet pas de créer une architecture émergente ; c&#8217;est au contraire la rareté des moyens qui permet une architecture émergente.</li></ol><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="JBossHornetQ"></a>JBoss HornetQ</h4><p>Après 2 ans de développement, le projet JBoss Messaging 2.0 sort enfin dans les bacs sous le nom HornetQ. Ce Message Oriented Middleware n&#8217;est pas une évolution de son prédécesseur qui continue d&#8217;exister dans sa version 1.0, mais belle et bien une réécriture (presque) intégrale. Redhat nous le vend comme un MoM opensource, multi-protocol, embarquable, haute performance, réparti, et asynchrone.<br
/> HornetQ peut-être utilisé en standalone ou bien embarqué dans un serveur d&#8217;application JBoss AS par exemple. Chose appréciable, HornetQ est léger, il dépend uniquement du JDK (5 minimum) pour être complètement fonctionnel.<br
/> Dans sa présentation, Redhat nous annonce que le projet est facile d&#8217;utilisation avec une documentation déjà très complète et la bagatelle de 65 exemples de codes sources. <a
href="http://www.jboss.org/community/wiki/GettingstartedwithHornetQinlessthanfiveminutes" title="Il est mme possible de dmarrer en moins de 5 minutes" >Il est même possible de démarrer en moins de 5 minutes</a>.<br
/> HornetQ bénéficie d&#8217;une conception orientée Pojo qui lui permet d&#8217;être utilisé directement dans Spring ou Guice. La performance a fait l&#8217;objet d&#8217;une attention importante, avec un <a
href="http://hornetq.sourceforge.net/docs/hornetq-2.0.0.BETA5/user-manual/en/html/persistence.html" title="journal haute performance" >journal haute performance</a> et <a
href="http://jboss.org/netty/" title="JBoss Netty" >JBoss Netty</a> pour la scalabilité.<br
/> JBoss nous livre une <a
href="http://www.jboss.org/community/wiki/HornetQFeatures" title="liste sans fin des fonctionnalits embarques" >liste sans fin des fonctionnalités embarquées</a> parmi lesquels on retiendra:</p><ul><li>JMS 1.1</li><li>JTA</li><li>Adaptateur JCA</li></ul><p>Enfin, l&#8217;editeur annonce orienter ses développements vers le support d&#8217;API RestFull qu&#8217;il voit comme le futur du cloud computing. Redhat souhaite donc pousser la porte des clouds privé en tentant de s&#8217;imposer comme le provider de message incontournable dans le nuage.</p><ul><li><a
href="http://jboss.org/hornetq/" title="Site du projet" >Site du projet</a></li><li><a
href="http://www.jboss.org/community/wiki/HornetQ" title="Wiki" >Wiki</a></li></ul><h3><a
name="RIA"></a>RIA</h3><h4><a
name="BlazeMonster"></a>BlazeMonster</h4><p><a
href="http://sujitreddyg.wordpress.com/blazemonster/" title="BlazeMonster" >BlazeMonster</a> vient de sortir dans sa deuxième version. Pour rappel cet outil, basée sur la technologie AIR, permet le support et l&#8217;aide à la génération de code pour consommer/exposer des services Java en tant que service Remote pour BlazeDS ou LCDS (LiveCycle Data Services).<br
/> Parmi les supports, nous avons entre autre :</p><ul><li>Génération des fichiers de configurations : déclarations des services, channels..</li><li>Génération du code appelant le service Remote</li><li>Génération des beans ActionScript (Value Object)</li><li>Visualisation des réponses des services Remote</li></ul><p>Dans cette deuxième version, <a
href="http://sujitreddyg.wordpress.com/blazemonster/" title="BlazeMonster" >BlazeMonster</a> intègre le support de <a
href="http://www.springsource.org/spring-flex" title="Spring BlazeDS" >Spring BlazeDS</a>, permettant la génération de services Remote en utilisant cette librairie. Je vous invite à jeter un coup d&#8217;œil sur les autres corrections et évolutions apportées à ce projet <a
href="http://sujitreddyg.wordpress.com/2009/08/26/blazemonster-v2-with-support-for-spring-blazeds/" title="ici" >ici</a>.<br
/> Facile d&#8217;utilisation, ce projet permet de copier/coller des morceaux de code dans votre application, facilitant le développement.<br
/> Enfin, à travers ce projet nous voyons, une fois de plus, l&#8217;engouement que les technologies Flex et BlazeDS remportent. Peut être pouvons nous espérer l&#8217;intégration de ce type d&#8217;outil dans le Flash Builder 4. Alors messieurs d&#8217;Adobe, qu&#8217;attendez vous ?</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="Listefinaledesvolutionsdulanga"></a>Liste finale des évolutions du langage Java apportées par le JDK 7</h4><p>En début d&#8217;année, Sun <a
href="http://blog.xebia.fr/2009/03/16/revue-de-presse-xebia-100/#OpenJdkProjectCoinproposezvosv" title="a initié" >a initié</a> le <a
href="http://openjdk.java.net/projects/coin/" title="Project Coin" >Project Coin</a>, un sous-projet d&#8217;OpenJDK visant à recueillir les propositions d&#8217;évolutions du langage Java pour le JDK 7 prévu pour début 2010. Les soumissions ont été nombreuses et Joseph D. Darcy, <em>leader</em> du projet, informait régulièrement la communauté sur l&#8217;avancement du processus de sélection. C&#8217;est maintenant la liste finale des évolutions <a
href="http://blogs.sun.com/darcy/entry/project_coin_final_five" title="quil annonce" >qu&#8217;il annonce</a>. Sauf problème de planning, il s&#8217;agit donc là de ce que le langage Java sera dans JDK 7 :</p><ul><li>Clause <code>switch</code> utilisable sur les <code>String</code>.</li><li><a
href="http://mail.openjdk.java.net/pipermail/coin-dev/2009-February/000011.html" title="Gestion automatique des resources" >Gestion automatique des resources</a>. Cette évolution vise à simplifier la gestion de la fermeture des flux ou autre ressources par l&#8217;utilisation d&#8217;une clause <code>try</code> spécifique pour les objets implémentant l&#8217;interface <code>Disposable</code> introduite dans le JDK pour l&#8217;occasion.</li><li><a
href="http://mail.openjdk.java.net/pipermail/coin-dev/2009-February/000009.html" title="Infrence de type amliore" >Inférence de type améliorée</a> pour la création d&#8217;objets génériques grâce à une syntaxe du type <code>List&lt;String&gt; list = new ArrayList<>()</code>.</li><li>Evolution de la gestion des <em>warnings</em> pour l&#8217;utilisation des <em>generics</em> dans des <em>varargs</em>.</li><li><a
href="http://mail.openjdk.java.net/pipermail/coin-dev/2009-March/000929.html" title="Autorisation de la notation binaire" >Autorisation de la notation binaire</a> pour les entiers comme en C/C++ et <a
href="http://mail.openjdk.java.net/pipermail/coin-dev/2009-April/001628.html" title="possibilit de placer des underscores" >possibilité de placer des underscores</a> dans les nombres pour en simplifier la relecture tel que <code>long creditCardNumber = 1234_5678_9012_3456L</code></li><li><a
href="http://mail.openjdk.java.net/pipermail/coin-dev/2009-March/001108.html" title="Accès en lecture et écriture aux valeurs des collections Java" >Accès en lecture et écriture aux valeurs des collections Java</a> par la notation <code><a
href="" title="" ></a></code> utilisé jusqu&#8217;alors uniquement pour les tableaux.</li></ul><p>On est loin de la liste d&#8217;évolutions très audacieuses initialement prévue pour JDK 7, mais les évolutions finalement retenues ont l&#8217;avantage d&#8217;être réalistes en terme de temps d&#8217;implémentation, tout en apportant un confort supplémentaire au quotidien pour les développeurs Java.</p><p>Rémi Forax, très au fait des développements sur l&#8217;OpenJDK, <a
href="http://weblogs.java.net/blog/forax/archive/2009/08/29/seven-small-languages-changes-will-be-jdk7" title="propose dailleurs son analyse" >propose d&#8217;ailleurs son analyse</a> des tâches restant à accomplir et de leur complexité pour chacune des évolutions.</p><h4><a
name="FindEclipseRCPplace"></a>Fin d&#8217;Eclipse RCP, place à&#8230;</h4><p>Après <a
href="http://blog.xebia.fr/2009/07/20/revue-de-presse-xebia-118/#FindeJavaRebelplace" title="Java Rebel" >Java Rebel</a>, c&#8217;est Eclipse RCP qui se trouve sur la voie du <a
href="http://eclipse.dzone.com/articles/renaming-eclipse-rcp-%e2%80%93-vote" title="changement de nom" >changement de nom</a>.<br
/> Cette fois-ci, ce n&#8217;est pas pour une raison de marque déposée mais tout simplement, <a
href="http://eclipse.dzone.com/articles/renaming-eclipse-rcp-%e2%80%93-vote" title="dixit lauteur" >dixit l&#8217;auteur</a>, parce que ce nom est <em>horrible</em> <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .<br
/> Un vote est organisé avec tous les noms remontés par la communauté Eclipse depuis 3 mois.<br
/> Alors, <em>Aurora</em>, <em>Montage</em> ou <em>Tangram</em>, c&#8217;est à vous de voter ! Et ça se passe sur cette <a
href="http://www.surveymonkey.com/s.aspx?sm=D9ZYFUQdiRI4b2kNPE7Rwg_3d_3d" title="page" >page</a>.</p><h4><a
name="TestSwarm"></a>TestSwarm</h4><p><a
href="http://ejohn.org/blog/test-swarm-alpha-open/" title="John Resig" >John Resig</a>, créateur de <a
href="http://jquery.com/" title="jQuery" >jQuery</a>, nous annonce que <a
href="http://testswarm.com/" title="Test Swarm" >Test Swarm</a> est maintenant ouvert au public (par <a
href="http://ajaxian.com/archives/testswarm-crowdsource-your-continuous-tests-for-javascript" title="ajaxian" >ajaxian</a>).</p><p>Test Swarm permet de tester le code Javascript sur différents navigateurs de différentes plateformes de manières continues. A l&#8217;origine utilisé pour jQuery, il est désormais possible de tester son propre code Javascript, moyennant 8 steps d&#8217;installation <a
href="http://wiki.github.com/jeresig/testswarm" title="paragraphe Setting Up Your Own Swarm" >paragraphe Setting Up Your Own Swarm</a>. Les tests (jobs) peuvent être lancés à chaque commits (SVN ou Git) ou bien en appelant une URL spécifique. Les résultats des tests sont résumés dans un <a
href="http://farm4.static.flickr.com/3500/3723002475_d628e85afb.jpg" title="tableau" >tableau</a> avec une colonne pour chaque navigateur/plateforme. Il est possible de rester au niveau projet mais on peut affiner l&#8217;affichage au niveau commit voir au niveau de chaque fichier js de tests. Côté couleur, les tests vert se sont bien passés, les rouges contiennent au moins une erreur, les noirs ont au moins une erreur critiques et les gris sous en cours/en attente. Des logs sont disponibles pour chaque <em>run</em> de tests et permettent de voir ceux qui ne seraient pas passés.</p><p>Les frameworks de tests unitaires Javascript gérés (bien d&#8217;autres suivront) sont pour l&#8217;instant :</p><ul><li>QUnit (jQuery)</li><li>UnitTestJS (Prototype)</li><li>JSSpec (MooTools)</li><li>JSUnit</li><li>Selenium</li><li>Dojo Objective Harness</li></ul><p>Une <a
href="http://www.vimeo.com/6281121" title="vido de type quick tour" >vidéo de type quick tour</a> nous donne un bon aperçu  du site. Plusieurs directions sont possible concernant la <em>roadmap</em> du produit dont l&#8217;intégration à l&#8217;IDE, tests sur encore plus de browser&#8230; Un produit à suivre.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/08/31/revue-de-presse-xebia-124/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Création de Xebia Labs</title><link>http://blog.xebia.fr/2009/08/25/creation-de-xebia-labs/</link> <comments>http://blog.xebia.fr/2009/08/25/creation-de-xebia-labs/#comments</comments> <pubDate>Tue, 25 Aug 2009 07:44:33 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Exploitation]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Déploiement]]></category> <category><![CDATA[DeployIt]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Xebia]]></category> <category><![CDATA[Xebia Labs]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2692</guid> <description><![CDATA[Le groupe Xebia a créé en Juin 2009, Xebia Labs une société de droit néerlandais dont les actionnaires sont Xebia NL, Coert Baart, Vincent Partington et Luc Legardeur. Erreurs humaines, interventions &#171;&#160;pompier&#160;&#187;, manque de prédictibilité, complexité des guides et procédures de mise en production, manque d&#8217;évolutivité des scripts, frictions entre les départements Etudes et Production, [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2009/08/labs.png" alt="Xebia Labs" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> Le groupe Xebia a créé en Juin 2009, <a
href="http://www.xebialabs.com">Xebia Labs</a> une société de droit néerlandais dont les actionnaires sont Xebia NL, Coert Baart, Vincent Partington et Luc Legardeur.</p><p><strong>Erreurs humaines</strong>, <strong>interventions &laquo;&nbsp;pompier&nbsp;&raquo;</strong>, <strong>manque de prédictibilité</strong>, <strong>complexité des guides et procédures de mise en production</strong>, <strong>manque d&#8217;évolutivité des scripts</strong>, <strong>frictions entre les départements Etudes et Production</strong>, <strong>mises à jour des middleware et des applicatifs coûteuses</strong> sont autant de maux que rencontrent les utilisateurs des technologies Java/J2EE.</p><p>Fort de nos  8 ans d&#8217;expérience dans la conception, la mise en place et la gestion d&#8217;applications et d&#8217;infrastructures basées sur Java/J2EE chez plus de 200 clients en Europe, Xebia a créé <a
href="http://www.xebialabs.com/deployit-automated-deployment-java-applications">DeployIT</a>, une offre logicielle, exclusivement dédiée aux déploiements Java/J2EE.</p><p><a
href="http://www.xebialabs.com/deployit-automated-deployment-java-applications">DeployIT</a> permet de sécuriser et de réduire les coûts des déploiements des applications et des infrastructures Java/J2EE, jugés de plus en plus périlleux, coûteux et aléatoires.</p><p><a
href="http://www.xebialabs.com">Xebia Labs</a> propose donc une plateforme logicielle incluant les spécificités des applications et infrastructures Java/J2EE, adossée à  une approche méthodologique éprouvée, offrant les avantages suivants :</p><ul><li><strong>Réduction des risques</strong> d&#8217;échecs des déploiements liés aux trop nombreuses  interventions humaines.</li><li><strong>Réduction des coûts</strong> liés au développement et à la maintenance de scripts coûteux et hétérogènes.</li><li><strong>Suppression des interventions &laquo;&nbsp;pompier&nbsp;&raquo;</strong> des équipes de développement pour aider les cellules d&#8217;exploitation à mettre en production.</li><li><strong>Réduction du Time to Market</strong> des nouvelles applications ainsi que de leurs évolutions fonctionnelles.</li><li><strong>Standardisation</strong> autour d&#8217;un outil commun des départements Etudes et Production.</li><li><strong>Garantie des SLA</strong> par une professionnalisation de la filière de déploiement.</li></ul><p>Pour avoir plus d&#8217;informations sur cette solution, n&#8217;hésitez pas à contacter Luc Legardeur au 01 42 91 27 93 ou par mail : <a
href="mailto:llegardeur@xebia.fr">llegardeur@xebia.fr</a>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/08/25/creation-de-xebia-labs/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/08/24/revue-de-presse-xebia-123/</link> <comments>http://blog.xebia.fr/2009/08/24/revue-de-presse-xebia-123/#comments</comments> <pubDate>Mon, 24 Aug 2009 16:35:23 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[ChromeDevTools]]></category> <category><![CDATA[CloudFoundry]]></category> <category><![CDATA[Ehcache]]></category> <category><![CDATA[Hadoop]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[SOA]]></category> <category><![CDATA[SpringSource]]></category> <category><![CDATA[Swing]]></category> <category><![CDATA[Terracotta]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2686</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII SpringSource lance CloudFoundry SOA David Chappell et Ted Neward : SOA est un échec &#8230; mais aussi un progrès Le coin de la technique Acquisition d&#8217;Ehcache par Terracotta, nécessaire et suffisant ? ChromeDevTools Pas de Swing Application Framework dans le [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/08/24/revue-de-presse-xebia-123/#SpringSourcelanceCloudFoundry">SpringSource lance CloudFoundry</a></li></ul><p><strong>SOA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/08/24/revue-de-presse-xebia-123/#DavidChappelletTedNewardSOAest">David Chappell et Ted Neward : SOA est un échec &#8230; mais aussi un progrès</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/08/24/revue-de-presse-xebia-123/#AcquisitiondEhcacheparTerracot">Acquisition d&#8217;Ehcache par Terracotta, nécessaire et suffisant ?</a></li><li><a
href="http://blog.xebia.fr/2009/08/24/revue-de-presse-xebia-123/#ChromeDevTools">ChromeDevTools</a></li><li><a
href="http://blog.xebia.fr/2009/08/24/revue-de-presse-xebia-123/#PasdeSwingApplicationFramework">Pas de Swing Application Framework dans le JDK 7</a></li></ul><p><strong>Evènements de notre communauté en France et à l&#8217;étranger</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/08/24/revue-de-presse-xebia-123/#HadoopWorld">Hadoop World 2009</a></li><li><a
href="http://blog.xebia.fr/2009/08/24/revue-de-presse-xebia-123/#SortieleseptembredeGoogleWaveP">Sortie le 30 septembre de Google Wave Preview </a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="SpringSourcelanceCloudFoundry"></a>SpringSource lance CloudFoundry</h4><p>Rod Johnson l&#8217;annonçait jeudi dernier sur son <a
href="http://blog.springsource.com/2009/08/19/cloud-foundry/" title="blog" >blog</a>, l&#8217;éditeur fait ses premiers pas dans le monde du cloud computing. Il s&#8217;agit en effet d&#8217;une interface web qui ne manque pas de rappeller Google App Engine permettant d&#8217;installer des applications Java sur le nuage. Dans cette première version, on nous propose de déployer des applications hébergées sur le fameux Spring Tc Server, avec out of the box, la supervision Hyperic, la possibilité d&#8217;utiliser une base de données MySQL, et évidemment le support de Grail, si cher à Rod.</p><p>Au menu, bien évidemment le support et la répartition automatique de la montée en charge. Pour le moment, le tout est déployé sur Amazon EC2, mais Rod espère bien le voir déployé prochainement sur vSphere (la solution de cloud computing de VMWare). Nous souhaitons longue vie à ce nouveau produit de SpringSource qui confirme une fois encore sa montée en puissance. Notez, tout de même pour information que c&#8217;est Chris Richardson et son équipe qui s&#8217;est chargé de la réalisation de <a
href="http://www.cloudfoundry.com/" title="CloudFoundry" >CloudFoundry</a>.</p><p><a
href="http://blog.xebia.fr/2009/08/19/java-platform-as-a-service-springsource-accelere/" title="Larticle" >L&#8217;article</a> de Cyrille Le Clerc sur SpringSource et Java Platform As A Service vous permettra d&#8217;y voir un peu plus clair sur la stratégie poursuivie par SpringSource.</p><h3><a
name="SOA"></a>SOA</h3><h4><a
name="DavidChappelletTedNewardSOAest"></a>David Chappell et Ted Neward : SOA est un échec &#8230; mais aussi un progrès</h4><p>David Chappell a retrouvé une <a
href="http://www.davidchappell.com/blog/2009/08/is-soa-failing-2008-interview.html" title="discussion quil a eu avec Ted Neward en 2008 sur SOA" >discussion qu&#8217;il a eu avec Ted Neward en 2008 sur SOA</a>.</p><p>Au-delà de l&#8217;évocation des liens entre Service Oriented Architecture <em>(SOA)</em>, Software as a Service <em>(SaaS)</em> et Cloud computing, nous retiendrons de cet échange : <strong>SOA a échoué à tenir sa double promesse &laquo;&nbsp;Réutilisation et agilité&nbsp;&raquo;</strong>.<br
/> L&#8217;agilité est une forme de réutilisation puisqu&#8217;elle permet de créer de nouveaux services en assemblant facilement des services existant. La <a
href="http://blog.xebia.fr/2009/04/16/soa-du-composant-au-service-la-reutilisabilite/" title="rutilisation des services mtiers" >réutilisation des services métiers</a> a échoué, et par effet de bord, l&#8217;agilité n&#8217;a pas été obtenue. La réutilisation des services métiers est analogue à la réutilisation des objets métiers à la fin des années 90.<br
/> La cause de cet échec, pour SOA comme pour les objets métier, n&#8217;est pas technique mais principalement humaine. Les organisations n&#8217;ont pas créé les conditions pour inciter les équipes à partager leur travail ni à réutiliser le travail des autres <em>(Cf. &laquo;&nbsp;<a
href="http://blog.xebia.fr/2008/05/16/les-10-pieges-de-la-soa-10-le-syndrome-not-invented-here/" title="Le syndrome Not Invented Here" >Le syndrome Not Invented Here</a>&nbsp;&raquo; et &laquo;&nbsp;<a
href="http://blog.xebia.fr/2008/06/24/les-10-pieges-de-la-soa-02-propriete-des-composants-et-financement-au-projet/" title="Proprit des composants et Financement au projet" >Propriété des composants et Financement au projet</a>&laquo;&nbsp;)</em>.</p><p>En revanche, la réutilisation des objets techniques a réussi, les frameworks .Net et Java EE en sont des exemples. De plus, l&#8217;orienté objet a convaincu comme paradigme de programmation. Pour SOA, la réutilisation de services techniques comme la gestion de l&#8217;identité ou la couche d&#8217;accès aux données <em>basiques</em> fonctionne.</p><p>Il s&#8217;agit donc d&#8217;un échec du SOA tel qu&#8217;on nous l&#8217;a promis mais en revanche d&#8217;un succès de l&#8217;approche par service.</p><p>Pour ce qui est des <strong>ESB</strong>, il s&#8217;agit principalement d&#8217;un <strong>coup marketing</strong> des éditeurs de solutions d&#8217;intégrations mais <strong>aussi d&#8217;une évolution des paradigmes d&#8217;intégration</strong> : l&#8217;intégration par services à succédé à l&#8217;intégration par base de données.</p><p><strong>Alors SOA est un échec ? Oui si l&#8217;on regarde les promesses initiales qui n&#8217;ont pas été tenues ; non si l&#8217;on voit les transformations orientées service qu&#8217;elle apporte.</strong></p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="AcquisitiondEhcacheparTerracot"></a>Acquisition d&#8217;Ehcache par Terracotta, nécessaire et suffisant ?</h4><p>Le teaser largement propagé via Twitter et les différents blogs des acteurs de Terracotta est tombé. Terracotta a <a
href="http://www.terracotta.org/web/display/orgsite/Terracotta+Acquires+Ehcache" title="fait l'acquisition" >fait l&#8217;acquisition</a> d&#8217;un des frameworks open-source les plus populaires du marché : Ehcache. Drôle de teasing, sous la forme d&#8217;un <a
href="http://gregluck.com/blog/archives/2009/08/ehcache_joins_w.html" title="hash md5" >hash md5</a>, pour une drôle d&#8217;annonce. Ce mariage ressemble plus à un arrangement entre amis qu&#8217;a un véritable rachat :</p><ul><li>Ehcache et Terracotta fonctionnent conjointement depuis bien longtemps.</li><li>Ehcache est porté par une seule personne : Greg Luck.</li><li>La vente de support Ehcache ne fonctionne pas vraiment, <a
href="http://www.linuxworld.com/news/2009/081809-terracotta-boosts-app-scaling-prowess-with.html?fsrc=rss-linux-news" title="dixit Greg Luck" >dixit Greg Luck</a>.</li><li>Le code source de Ehcache est très léger, et sa partie la plus complexe, le cache distribué, concurrence avec une grande simplicité Terracotta.</li></ul><p>Alors, pourquoi avoir racheté Ehcache ?</p><p>Selon certains analystes,  après le rachat de SpringSource, VMWare a la volonté d&#8217;élargir son portefeuille d&#8217;outils et de middleware Java, et Terracotta serait pressenti. C&#8217;est en tout cas l&#8217;hypothèse mise en avant par quelques gaillards de Terracotta (encore une fois, merci Twitter). Notre sentiment, trop de bruit pour que cela soit d&#8217;actualité. Par contre, il nous semble clair que Terracotta désire se faire racheter. Et pour cela, plusieurs problèmes doivent être réglés :</p><ul><li>Malgré les différentes versions, Terracotta suscite des résistances, en cause son approche bas niveau (JVM / Bytecode) qui freine bon nombre d&#8217;utilisateurs. D&#8217;ailleurs, Terracotta ne fonctionne pas avec toutes les JVM.</li><li>L&#8217;utilisation de ce framework n&#8217;est pas transparente, quoi qu&#8217;en disent les documentations. Il est facile de se tromper sur le choix des objets à partager et les poses de lock. Tout cela fait qu&#8217;à l&#8217;utilisation, la mise en place de celui-ci est tout sauf triviale.</li></ul><p>Et c&#8217;est là qu&#8217;Ehcache intervient !</p><ul><li>Mis en lumière par le cache L2 d&#8217;hibernate, Ehcache fonctionne également avec d&#8217;autres produits star comme Spring, Alfresco et Liferay. Il est devenu l&#8217;une des apis de cache les plus utilisées par les développeurs. On parle de plusieurs centaines de milliers de projets utilisant celui-ci. Avec ce rachat, Terracotta espère se rapprocher davantage de cette communauté en s&#8217;appuyant sur la bonne image d&#8217;Ehcache pour rassurer les développeurs.</li><li>D&#8217;autre part, Terracotta gonfle sa stack logiciel et propose dans son portefeuille un mécanisme de cache distribué alternatif plus haut niveau.</li></ul><p>Au final, petite annonce ? Pas si sûr ! Terracotta signe ici un joli coup de communication et se met dans les meilleures conditions en vue d&#8217;un éventuel prochain rachat.</p><h4><a
name="ChromeDevTools"></a>ChromeDevTools</h4><p>Pour ceux qui ne sont pas à l&#8217;aise avec le débogage Javascript par l&#8217;interface de <a
href="https://addons.mozilla.org/fr/firefox/addon/1843" title="Firebug" >Firebug</a> ou tout simplement ceux qui souhaitent débugger intégralement leur application dans Eclipse, y compris le Javascript client, voici un petit outil (développé par Google) qui vous le permettra : le <a
href="http://code.google.com/p/chromedevtools/" title="Google Chrome Dev Tools" >Google Chrome Dev Tools</a> (par l&#8217;<a
href="http://eclipse.dzone.com/news/debug-javascript-eclipse" title="Eclipse Zone" >Eclipse Zone</a>).</p><p>Le projet se compose du <a
href="http://code.google.com/p/chromedevtools/wiki/ChromeDevToolsSdk" title="Chrome Dev Tools SDK" >Chrome Dev Tools SDK</a>, API Java permettant à une application en mode debug de communiquer avec le navigateur Google Chrome (localhost en TCP/IP) , et de l&#8217;<a
href="http://code.google.com/p/chromedevtools/wiki/EclipseDebugger" title="Eclipse Debugger" >Eclipse Debugger</a>, le plugin Eclipse qui vous permettra de débugger votre application.</p><p>Ce dernier propose entre autres :</p><ul><li>Breackpoints</li><li>Watches</li><li>Step in / over / into</li><li>Évaluation d&#8217;une sélection de texte</li><li>Évaluation sur <code>mouse hover</code></li><li>Exceptions reportées dans la vue <code>Error Log</code></li></ul><p>Côté mise en place, il vous faudra au minimum, comme vous pouvez vous en doutez, un navigateur Google Chrome en version 3.0.189.0 (actuellement en beta) et un Eclipse 3.4.2. L&#8217;installation du plugin se fera par l&#8217;Update Site avec cette <a
href="http://chromedevtools.googlecode.com/svn/update/dev/" title="URL" >URL</a>.<br
/> Il vous faudra ensuite lancer votre Chrome avec le paramètre <code>--remote-shell-port=9222</code> (ou le port de votre choix) et définir, dans le menu <code>Debug Configurations</code> d&#8217;Eclipse, une nouvelle <code>Chromium Javascript</code> configuration avec le port spécifié pour Chrome. Et à partir de là, à vous les breakpoints et le debug de votre application dans Eclipse !</p><h4><a
name="PasdeSwingApplicationFramework"></a>Pas de Swing Application Framework dans le JDK 7</h4><p>Il y a quelques mois <a
href="http://blog.xebia.fr/2009/03/30/revue-de-presse-xebia-102/#EnfinuneroadmapdtaillepourleJD" title="nous vous parlions" >nous vous parlions</a> de la disponibilité d&#8217;une <em>roadmap</em> détaillée pour le JDK 7. Elle incluait entre autre la <a
href="http://www.jcp.org/en/jsr/detail?id=296" title="JSR-296 (Swing Application Framework)" >JSR-296 (Swing Application Framework)</a>, une spécification destinée à simplifier le développement d&#8217;applications Swing grâce à :</p><ul><li>Des annotations <code>@Action</code> pour déclarer les actions Swing plus facilement qu&#8217;en sous-classant <code>AbstractAction</code> puis en redéfinissant la méthode <code>actionPerformed()</code></li><li>Gestion de l&#8217;enregistrement de l&#8217;état des fenêtres à la fermeture de l&#8217;application</li><li>Simplification de la gestion des ressources</li><li>Gestion du cycle de vie de l&#8217;application</li></ul><p>Les apports sont intéressants car répondent bien aux réalités des projets Swing courants, mais n&#8217;y répondent que partiellement. En effet il aurait été interessant de voir se créer une synergie avec la <a
href="http://www.jcp.org/en/jsr/detail?id=330" title="JSR-330 (Dependency Injection for Java)" >JSR-330 (Dependency Injection for Java)</a> afin d&#8217;apporter l&#8217;injection de dépendance aux applications client lourds. De plus, ce <em>framework</em> ne simplifie pas la définition des interfaces en Swing, opération se révélant souvent assez laborieuse en raison d&#8217;APIs vieillissantes et probablement trop bas niveau.</p><p>Alexander Potochkin <a
href="http://weblogs.java.net/blog/alexfromsun/archive/2009/08/saf_and_jdk7.html" title="nous apprend" >nous apprend</a> maintenant que cette JSR ne sera pas prête dans les temps pour la <em>roadmap</em> prévue et qu&#8217;en conséquence son intégration au JDK 7 est annulée. Dans ces conditions, les apports du JDK 7 à Swing seront quasi nuls, ce qui constituera une réponse bien peu satisfaisante <a
href="http://blog.xebia.fr/2009/03/02/revue-de-presse-xebia-98/#LinitiativeSwingcritique" title="aux dbats ayant anim" >aux débats ayant animé</a> cette communauté il y a quelques mois.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="HadoopWorld"></a>Hadoop World 2009</h4><p>La société <a
href="http://cloudera.com/" title="Cloudera" >Cloudera</a>, spécialisée dans le support aux utilisateurs de <a
href="http://hadoop.apache.org/" title="Hadoop" >Hadoop</a>, a annoncé la première conférence mondiale consacré à Hadoop : <a
href="http://cloudera.com/hadoop-world-nyc" title="Hadoop World" >Hadoop World</a>. Cette conférence se tiendra à New-York City en octobre de cette année. Elle est soutenue par des sponsors de taille comme IBM, Intel et Yahoo.</p><p>Le nombre de candidat à la prise de parole est tellement important que l&#8217;agenda n&#8217;est pas encore fixé. Le thème sera &laquo;&nbsp;Hadoop is everywhere&nbsp;&raquo;, on aura donc droit à des sujets aussi bien sur des applications utilisant déjà Hadoop, que sur les implications coté administration de parc.</p><p>Les inscriptions sont ouvertes &#8230;</p><h4><a
name="SortieleseptembredeGoogleWaveP"></a>Sortie le 30 septembre de Google Wave Preview</h4><p>Présenté il y a quelques mois comme une évolution majeure de notre façon de communiquer en ligne, Google Wave sera bientôt disponible au public. 100 000 utilisateurs sont attendus une fois le service ouvert.</p><p>A l&#8217;heure actuelle, les développeurs qui ont pu testés ont eu de gros problèmes de disponibilité de la plateforme. Sur <a
href="http://www.infoq.com/news/2009/08/wave-preview-opens" title="InfoQ" >InfoQ</a>, on apprend que pour le 30 septembre, l&#8217;objectif du responsable technique de Wave API, Douwe Osinga, est bien sûr d&#8217;améliorer la stabilité du système mais aussi d&#8217;ajouter des fonctionnalités à l&#8217;API. Par conséquent, il ne leur restait que peu de temps pour stabiliser le bac à sable.</p><p>Dans les nouvelles fonctionnalités, l&#8217;accent a été mis sur l&#8217;API liée aux <a
href="http://code.google.com/apis/wave/extensions/robots/index.html" title="robots" >robots</a> qui est à présent ouverte.  Grâce aux robots, on peut répondre de manière applicative à des évènement sur la wave, ce qui permet d&#8217;interagir avec les autres participants, ou d&#8217;échanger des informations avec des systèmes extérieurs.</p><p>Si vous souhaitez être averti de l&#8217;ouverture du service, <a
href="https://services.google.com/fb/forms/wavesignup/" title="inscrivezvous" >inscrivez-vous</a>. Vous pouvez même écrire un message d&#8217;encouragement à l&#8217;équipe de Google Wave. Ils en auront certainement besoin pendant le moins prochain&#8230;</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/08/24/revue-de-presse-xebia-123/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/08/17/revue-de-presse-xebia-122/</link> <comments>http://blog.xebia.fr/2009/08/17/revue-de-presse-xebia-122/#comments</comments> <pubDate>Mon, 17 Aug 2009 16:04:56 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Apache HTTP Client]]></category> <category><![CDATA[CEP]]></category> <category><![CDATA[Complex Event Processing]]></category> <category><![CDATA[Coral8]]></category> <category><![CDATA[CouchDB]]></category> <category><![CDATA[Drools]]></category> <category><![CDATA[Esper]]></category> <category><![CDATA[iBatis]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Progress]]></category> <category><![CDATA[SpringSource]]></category> <category><![CDATA[StreamBase]]></category> <category><![CDATA[VMWare]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2642</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII VMWare &#8211; SpringSource, pourquoi ? Les acteurs du marché du Complex Event Processing Le coin de la technique iBatis suit les dernières tendances Java Apache HTTP Client 4.0 finalisé Tour d&#8217;horizon de CouchDB Actualité éditeurs / SSII VMWare &#8211; SpringSource, [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/08/17/revue-de-presse-xebia-122/#VMWareSpringSourcepourquoi">VMWare &#8211; SpringSource, pourquoi ?</a></li><li><a
href="http://blog.xebia.fr/2009/08/17/revue-de-presse-xebia-122/#LesacteursdumarchduComplexEven">Les acteurs du marché du Complex Event Processing</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/08/17/revue-de-presse-xebia-122/#iBatissuitlesdernirestendances">iBatis suit les dernières tendances Java</a></li><li><a
href="http://blog.xebia.fr/2009/08/17/revue-de-presse-xebia-122/#ApacheHTTPClientfinalis">Apache HTTP Client 4.0 finalisé</a></li><li><a
href="http://blog.xebia.fr/2009/08/17/revue-de-presse-xebia-122/#TourdhorizondeCouchDB">Tour d&#8217;horizon de CouchDB</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="VMWareSpringSourcepourquoi"></a>VMWare &#8211; SpringSource, pourquoi ?</h4><p>Pourquoi VMWare a racheté SpringSource dont le métier et la culture sont si différents ? Pourquoi un tel prix ?</p><p>Cyrille Le Clerc <em>(Xebia)</em> propose son analyse du rachat de SpringSource par VMWare : <em>&laquo;&nbsp;<a
href="http://blog.xebia.fr/2009/08/17/pourquoi-vmware-springsource-virtualisation-materielle-vs-cloud/" title="Pourquoi VMWare / SpringSource ? Virtualisation matérielle vs. Cloud" >Pourquoi VMWare / SpringSource ? Virtualisation matérielle vs. Cloud</a>&laquo;&nbsp;</em>.</p><h4><a
name="LesacteursdumarchduComplexEven"></a>Les acteurs du marché du Complex Event Processing</h4><p>Paul Vincent, Tibco, a diffusé <a
href="http://tibcoblogs.com/cep/2009/07/31/the-cep-market-2009-a-brief-history-lesson/" title="un récapitulatif" >un récapitulatif</a> des différents acteurs du marché du <a
href="http://en.wikipedia.org/wiki/Complex_Event_Processing" title="Complex Event Processing" >Complex Event Processing</a> listant l&#8217;ensemble des éditeurs proposant des solutions classés par date d&#8217;arrivée sur ce marché.<br
/> Il y fait bien la distinction entre les produits se basant sur un système de requêtes temps réelles et ceux basés sur un système de règles.</p><p>Il est ainsi possible de visualiser l&#8217;arrivée successive des nombreux acteurs sur ce marché en pleine croissance. Par ailleurs on remarque qu&#8217;Esper est le seul moteur de requêtes CEP Open Source du marché tandis que Drools, grâce à sa récente version 5 est devenu l&#8217;unique moteur de règles CEP qui soit Open Source. Ces nouveaux entrants viennent ainsi perturber StreamBase, Coral8 et Progress sur leurs positions investies il y a plusieurs années.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="iBatissuitlesdernirestendances"></a>iBatis suit les dernières tendances Java</h4><p><a
href="http://ibatis.apache.org/" title="iBatis" >iBatis</a> est un <em>framework</em> Apache souvent positionné face aux solutions ORM telles qu&#8217;Hibernate. En effet il adopte une stratégie différente puisqu&#8217;il ne cherche pas à créer un modèle objet au dessus du modèle relationnel, mais plutôt à faire un <em>mapping</em> objet des données d&#8217;entrée et de sortie des requêtes SQL. Traditionnellement ce <em>mapping</em> se décrivait par un lot de fichiers XML de configuration.</p><p>Début 2007, l&#8217;équipe des développeurs d&#8217;iBatis a créé <a
href="http://opensource.atlassian.com/confluence/oss/display/IBATIS/iBATIS+3.0+Whiteboard" title="une page Wiki" >une page Wiki</a> pour recueillir les propositions pour une version 3.0 qui profiterait des nouveautés de Java 5 pour améliorer l&#8217;ergonomie de leur <em>framework</em>.</p><p>Après de longs débats, et développements, une série de 2 versions bêta <a
href="http://ibatis.apache.org/java.cgi" title="a été diffusé" >a été diffusé</a>. Une première version de <a
href="http://svn.apache.org/repos/asf/ibatis/java/ibatis-3/trunk/doc/en/iBATIS-3-User-Guide.pdf" title="documentation est galement disponible" >documentation est également disponible</a>, permettant de faire le tour des nouveautés les plus intéressantes :</p><ul><li>Ajout d&#8217;un <code>SelectBuilder</code> permettant de construire dynamiquement des requêtes SQL, remplissant ainsi un rôle similaire aux <em>Criterias</em> d&#8217;Hibernate. Ce <em>builder</em> offre aux développeurs un DSL interne très élégant basé sur une clause <code>import static</code> Java.</li><li>Configuration du <em>mapping</em> par annotations. On dispose ainsi d&#8217;annotations <code>@Insert</code>, <code>@Update</code>, <code>@Delete</code>, <code>@Select</code> et <code>@Result</code> à placer sur les Pojos. L&#8217;équipe iBatis reconnaît par contre la possible lourdeur de ce modèle de configuration lorsque des <em>mapping</em> très complexes doivent être définis.</li><li>Possibilité de créer des DAOs utilisant des <em>generics</em> en type de retour. Typiquement une méthode <code>listAllEmployees()</code> retournera un type <code>List&lt;Employee&gt;</code> et non plus un type <code>List</code>.</li></ul><p>iBatis répond à un besoin réel, car il propose une solution de persistance dont le niveau d&#8217;abstraction est intermédiaire entre JDBC et JPA. On ne peut donc que se réjouir de ce rafraichissement de l&#8217;API, l&#8217;alignant ainsi sur les tendances du moment dans le monde Java que sont les annotations, les DSLs, et autres interfaces simplifiés, qui permettent d&#8217;améliorer la productivité du développement.</p><h4><a
name="ApacheHTTPClientfinalis"></a>Apache HTTP Client 4.0 finalisé</h4><p>La refonte du client HTTP d&#8217;Apache <a
href="http://jakarta.apache.org/site/news/news-2007-q3.html" title="a été initiée il y a deux ans" >a été initiée il y a deux ans</a> avec l&#8217;arrivée d&#8217;une première version alpha. Un an après arrivait une première version bêta. Apache <a
href="http://hc.apache.org/news.html" title="annonce maintenant" >annonce maintenant</a> la disponibilité d&#8217;une version finalisée du projet.</p><p>Au fil des années un nombre croissant de projets se sont basés sur HTTP Client lui concédant ainsi une certaine omniprésence. Son intérêt par rapport au client HTTP standard de Java est d&#8217;offrir une plus grande richesse de fonctionnalités liées à une meilleure flexibilité d&#8217;utilisation.</p><p>Cette nouvelle version majeure est une réécriture totale du projet, expliquant donc son temps de gestation particulièrement long. L&#8217;architecture y est repensée pour offrir une meilleure modularité et des possibilités d&#8217;extensions supplémentaires. Le client est ainsi désormais constitué de deux modules :</p><ul><li><a
href="http://hc.apache.org/httpcomponents-core/index.html" title="HttpCore" >HttpCore</a> apporte les fonctionnalités fondamentales du protocole HTTP et offre le choix entre un modèle d&#8217;I/O bloquant ou non bloquant en s&#8217;appuyant sur NIO.</li><li><a
href="http://hc.apache.org/httpcomponents-client/index.html" title="HttpClient" >HttpClient</a> se base sur HttpCore pour offrir des fonctionnalités supplémentaires de HTTP telles que la gestion des <em>cookies</em> et l&#8217;authentification.</li></ul><p>Une documentation très complète est déjà disponible <a
href="http://hc.apache.org/httpcomponents-core/tutorial/html/" title="pour HttpCore" >pour HttpCore</a> comme <a
href="http://hc.apache.org/httpcomponents-client/index.html" title="pour HttpClient" >pour HttpClient</a>.</p><h4><a
name="TourdhorizondeCouchDB"></a>Tour d&#8217;horizon de CouchDB</h4><p>Une présentation de <a
href="http://couchdb.apache.org/" title="CouchDB" >CouchDB</a> par Jan Lehnardt, développeur sur le projet, lors du QCon de novembre 2008 vient <a
href="http://www.infoq.com/presentations/couchDB-from-10K-feet" title="dtre mise  disposition" >d&#8217;être mise à disposition</a>. Elle offre un aperçu global de CouchDB qui permettra de saisir l&#8217;ensemble de ses intérêts. Ainsi les principales caractéristiques de cette base de données mises en avant sont :</p><ul><li>Base de données orientée documents : les informations sont groupées par documents qui sont stockés de manière versionnée.</li><li><em>Optimistic locking</em> : CouchDB se base sur un numéro de version stocké au sein du document.</li><li>API Restful : les fonctions d&#8217;ajout, lecture, modification et suppression (CRUD) sont accessibles par une API Resful permettant ainsi une intégration triviale avec n&#8217;importe quel langage et plate-forme.</li><li><em>Views</em> : CouchDB n&#8217;offre pas de mécanisme de requête tel qu&#8217;on en trouve habituellement sur les bases de données relationnelles. Ici tout n&#8217;est que <em>vue</em> des documents générée dynamiquement par MapReduce.</li><li>Réplication et résistance aux crashs : CouchDB supporte un mécanisme de réplication <em>peer to peer</em> lui permettant d&#8217;offrir une haute disponibilité des données sans effort supplémentaire.</li></ul><p>Jan Lehnardt rappelle en outre que CouchDB est distribué sous licence Apache et que le projet est soutenu par IBM. Les lecteurs intéressés par CouchDB pourront également se tourner vers la <a
href="http://wiki.apache.org/couchdb/" title="documentation du projet" >documentation du projet</a> ou encore vers le livre qui <a
href="http://oreilly.com/catalog/9780596158163/" title="lui est consacré" >lui est consacré</a> chez O&#8217;Reilly, prévu pour novembre, et d&#8217;ores et déjà <a
href="http://books.couchdb.org/relax/" title="librement accessible en ligne" >librement accessible en ligne</a>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/08/17/revue-de-presse-xebia-122/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Pourquoi VMWare / SpringSource ? Virtualisation matérielle vs. Cloud</title><link>http://blog.xebia.fr/2009/08/17/pourquoi-vmware-springsource-virtualisation-materielle-vs-cloud/</link> <comments>http://blog.xebia.fr/2009/08/17/pourquoi-vmware-springsource-virtualisation-materielle-vs-cloud/#comments</comments> <pubDate>Mon, 17 Aug 2009 11:16:27 +0000</pubDate> <dc:creator>Cyrille Le Clerc</dc:creator> <category><![CDATA[Cloud / NoSQL]]></category> <category><![CDATA[Cloud Computing]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[SpringSource]]></category> <category><![CDATA[Virtualisation]]></category> <category><![CDATA[VMWare]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2637</guid> <description><![CDATA[Pourquoi VMWare a racheté SpringSource dont le métier et la culture sont si différents ? Pourquoi un tel prix ? Mon analyse est que VMWare a racheté SpringSource parce que le cloud computing de forme Platform As A Service (PaaS) à la Google App Engine va bientôt mieux répondre que la virtualisation matérielle aux besoins [...]]]></description> <content:encoded><![CDATA[<p>Pourquoi VMWare a racheté SpringSource dont le métier et la culture sont si différents ? Pourquoi un tel prix ?</p><p>Mon analyse est que VMWare a racheté SpringSource parce que <strong>le cloud computing de forme Platform As A Service (PaaS) <em>à la Google App Engine</em> va bientôt mieux répondre que la virtualisation matérielle aux besoins d&#8217;optimisation des data centers Java</strong>. Selon l&#8217;adage &laquo;&nbsp;Si quelqu&#8217;un scie la branche sur laquelle je suis assis, mieux vaut que ce soit moi&nbsp;&raquo;, VMWare s&#8217;est dotée de l&#8217;expertise de SpringSource sur Tomcat et Hyperic.<br
/> Je parlerai des applications Java <em>légères</em> (Servlets, JDBC, JPA et JMS) qui sont aujourd&#8217;hui largement majoritaires dans nos data centers Java. Billy Newport, IBM WebSphere, <a
href="http://www.devwebsphere.com/devwebsphere/2009/08/why-java-is-so-important-to-vmware.html" title="reconnait quelles reprsentent 80 des cas" >reconnait qu&#8217;elles représentent 80% des cas</a>, SpringSource aurait sûrement des chiffres plus élevés.</p><ul><li><a
href="http://blog.xebia.fr/2009/08/17/pourquoi-vmware-springsource-virtualisation-materielle-vs-cloud/#OptimiserlaCPUdesdatacenters">Optimiser la CPU des data centers</a></li><li><a
href="http://blog.xebia.fr/2009/08/17/pourquoi-vmware-springsource-virtualisation-materielle-vs-cloud/#Lesatoutsdelavirtualisationmat">Les atouts de la virtualisation matérielle</a></li><li><a
href="http://blog.xebia.fr/2009/08/17/pourquoi-vmware-springsource-virtualisation-materielle-vs-cloud/#Leslimitationsdelavirtualisati">Les limitations de la virtualisation matérielle pour Java</a></li><li><a
href="http://blog.xebia.fr/2009/08/17/pourquoi-vmware-springsource-virtualisation-materielle-vs-cloud/#MutualisationenJavaDesimplesse">Mutualisation en Java : De simples serveurs Linux-Tomcat suffisent</a></li><li><a
href="http://blog.xebia.fr/2009/08/17/pourquoi-vmware-springsource-virtualisation-materielle-vs-cloud/#AdaptationCPUetRAMenJavaLemodl">Adaptation CPU et RAM en Java : Le modèle &#8216;scale out&#8217;</a></li><li><a
href="http://blog.xebia.fr/2009/08/17/pourquoi-vmware-springsource-virtualisation-materielle-vs-cloud/#VirtualisationmatrielUnmarchpl">Virtualisation matériel : Un marché plus concurrentiel et moins lucratif</a></li><li><a
href="http://blog.xebia.fr/2009/08/17/pourquoi-vmware-springsource-virtualisation-materielle-vs-cloud/#OnesizedoesnotfitallConcilierv">One size does not fit all : Concilier virtualisation matérielle et cloud pour optimiser l&#8217;utilisation des data centers</a></li></ul><h4><a
name="OptimiserlaCPUdesdatacenters"></a>Optimiser la CPU des data centers</h4><p>Les data centers débordent, l&#8217;électricité manque, les climatisations saturent, les planchers s&#8217;effondrent, les racks sont pleins et pourtant, les serveurs ne font rien, les CPU ne sont utilisées qu&#8217;à quelques pourcents !<br
/> La virtualisation matérielle, dont VMWare est un des leaders, propose d&#8217;adresser ce problème en introduisant une couche d&#8217;abstraction appelée hyperviseur entre le matériel et le système d&#8217;exploitation : plusieurs instances de système d&#8217;exploitation s&#8217;exécutent ainsi sur la même machine.<br
/> Considérons 10 serveurs qui consomment chacun en moyenne 5% de CPU, la virtualisation matérielle permet de les regrouper sur une seule machine physique qui atteindrait alors un taux d&#8217;utilisation de l&#8217;ordre de 50%. Malgré la chute du prix de la RAM, la mémoire vive de ce serveur mutualisé risque fort d&#8217;être insuffisante, l&#8217;hyperviseur règlera ce problème en recourant à la pagination de la mémoire (swap) comme un système d&#8217;exploitation le fait déjà à son niveau.<br
/> Et si par malheur ces serveurs venaient à être sollicités en même temps et à saturer la machine qui les héberge, les solutions de virtualisation parviennent maintenant à déplacer certaines instances sur d&#8217;autres serveurs physiques de façon transparente, sans même arrêter le service.</p><h4><a
name="Lesatoutsdelavirtualisationmat"></a>Les atouts de la virtualisation matérielle</h4><p>Un atout essentiel de la virtualisation est le <strong>très faible coût d&#8217;adaptation des applications existantes</strong> puisqu&#8217;elles continuent à s&#8217;exécuter sur le même système d&#8217;exploitation avec le même voisinage. <strong>La virtualisation matérielle est transparente pour les applications</strong>, elle n&#8217;exige pas de changement de version du système d&#8217;exploitation, des librairies utilisées, des répertoires de travail ou des ports d&#8217;écoute.<br
/> Si une application est tellement exigeante qu&#8217;elle requiert une version de système d&#8217;exploitation dépassée ou qu&#8217;elle a été compilée avec la version très ancienne d&#8217;un driver de base de données, ce n&#8217;est pas grave. La virtualisation matérielle maintiendra cette application revêche isolée dans sa bulle et elle sera mutualisée comme les autres.<br
/> Un autre atout de la virtualisation est l&#8217;<strong>adaptation de la CPU et de la RAM allouée à chaque application selon ses besoins</strong>. De la même façon qu&#8217;un système d&#8217;exploitation sait allouer du temps CPU et de la RAM à une application qui a un pic d&#8217;utilisation, l&#8217;hyperviseur sait privilégier une instance parmi toutes celles qu&#8217;il exécute simultanément. Considérons 20 applications qui s&#8217;exécutent chacune sur un serveur bi-processeurs, la virtualisation matérielle permet de les regrouper sur un seul serveur quadri-processeurs et en cas de pic, allouer quatre processeurs à une seule application, le double de ce qu&#8217;offrait la solution non virtualisée.</p><h4><a
name="Leslimitationsdelavirtualisati"></a>Les limitations de la virtualisation matérielle pour Java</h4><p>La première limitation de Java à la virtualisation matérielle est la gestion de la mémoire par les machines virtuelles. Les JVM assument que toute la mémoire qu&#8217;on leur alloue est en RAM, elles accèdent indifféremment à tout cet espace mémoire et le parcourent intégralement très souvent pour les garbage collections. De ce fait, <strong>la performance des applications Java s&#8217;effondre dès que leur mémoire est paginée</strong>. Pire encore, certains composants comme les timers des caches ou des gestionnaires de transactions échouent lorsque les temps de réponse sont anormalement longs et les applications tombent alors en erreur.<br
/> Ce problème est d&#8217;autant plus crucial pour la virtualisation matérielle que, du fait des techniques de garbage collection, les <strong>JVM libèrent peu de mémoire quand les applications sont moins utilisées</strong>.<br
/> Par ailleurs, l&#8217;<strong>adaptation à l&#8217;exécution de la CPU et de la RAM allouée à chaque application selon ses besoins est inadaptée en Java.</strong><br
/> Le premier point bloquant est que l&#8217;espace mémoire utilisé par une JVM est défini au démarrage (Xmx) et ne peut changer lors de l&#8217;exécution. Ensuite, augmenter la puissance de traitement d&#8217;une application web Java nécessite non seulement d&#8217;allouer de la CPU et de la RAM, mais aussi de redimensionner les pools de threads http ou de connexions à la base de données ainsi que la taille de nombreux caches applicatifs (sessions http, objet venant de la base, etc).<br
/> Il faudrait donc que l&#8217;hyperviseur change les configurations Java, cela nécessite aujourd&#8217;hui d&#8217;interrompre le service pour redémarrer les applications. La promesse de transparence de la virtualisation matérielle devient caduque, le palliatif est d&#8217;avoir des middlewares qui interagissent avec la virtualisation matérielle.</p><h4><a
name="MutualisationenJavaDesimplesse"></a>Mutualisation en Java : De simples serveurs Linux-Tomcat suffisent</h4><p>Si certaines applications sont revêches à la mutualisation, Java fait plutôt preuve de très bon voisinage.<br
/> Une application Java est quasiment agnostique du système d&#8217;exploitation et des libraires qui l&#8217;entourent, il lui suffit d&#8217;un répertoire pour &#8216;dezipper&#8217; une JVM (<20 Mo), un moteur d'exécution (Tomcat < 5 Mo) et l'application.<br
/> Cette facilité d'installation est utilisée au quotidien. Nous développons sous Windows, MacOS ou Ubuntu pour déployer sur RHEL, AIX ou Solaris. Beaucoup d'équipes qui déploient en production sur un 'gros serveur' J2EE poussent même souvent plus loin cette portabilité en préférant utiliser pour le développement un serveur léger : Tomcat ou Jetty.<br
/> Pour ce qui est des problèmes de voisinage liés au port d'écoute ou aux répertoires utilisés, le monde Java, particulièrement sous Tomcat, a déjà banalisé ce partage en démarrant une instance de serveur par application web. De ce fait, il est fréquent de voir sur de simples serveurs bi-processeurs plus de quatre instances Tomcat démarrées.<br
/> Grâce à la faible adhérence d'une application Java à son environnement d'exécution et à l'habitude d'installer plusieurs serveurs « à la Tomcat », <strong>le niveau naturel de</strong> <strong>mutualisation des ressources CPU et RAM pour des applications Java est au dessus du système d&#8217;exploitation</strong>. La complexité et les coûts de la virtualisation matérielle sont très rarement justifiés avec Java. Une simple batterie de serveur Linux avec des serveurs Java &#8216;légers&#8217; comme Tomcat, Jetty ou Glassfish V3 répond au besoin d&#8217;optimisation des data centers Java en conciliant simplicité et faible coût.</p><h4><a
name="AdaptationCPUetRAMenJavaLemodl"></a>Adaptation CPU et RAM en Java : Le modèle &#8216;scale out&#8217;</h4><p>A la différence du modèle &#8216;scale-up&#8217; de la virtualisation matérielle qui augmente la CPU et la RAM d&#8217;une instance pour tenir la charge, Java utilise un modèle &#8216;scale-out&#8217; qui consiste à augmenter le nombre d&#8217;instances de l&#8217;application. Pour garantir la haute disponibilité ou la tenue à la charge, nous déployons des clusters de 2, plutôt 3, voire plus, instances de nos applications Java.<br
/> Déployer un nouveau nœud se fait aujourd&#8217;hui en moins d&#8217;une heure pour une équipe entrainée et ce délai va sensiblement diminuer. <strong>La roadmap de SpringSource Tc Server permettra d&#8217;adapter les ressources CPU et RAM d&#8217;une application Java en moins de 5 minutes d&#8217;ici deux ans au plus</strong> par simple démarrage ou arrêt de nœuds d&#8217;un cluster.<br
/> Les tâches à accomplir sont limitées pour SpringSource, IBM le propose depuis des années sur son sophistiqués mais complexe WebSphere eXtended Deployment et Gigaspace vient de l&#8217;introduire sur sa grille XAP sur un socle Jetty, SpringSource doit principalement ajouter un mécanisme de déploiement de Tomcat à l&#8217;agent Hyperic/AMS et améliorer le scripting de la gestion de configuration Tomcat du serveur d&#8217;administration Hyperic/AMS.</p><h4><a
name="VirtualisationmatrielUnmarchpl"></a>Virtualisation matériel : Un marché plus concurrentiel et moins lucratif</h4><p>En plus d&#8217;être remise en cause par la rupture technologique du cloud computing, la virtualisation matérielle est aujourd&#8217;hui confrontée à une baisse des marges. VMWare a connu des années très lucratives pendant lesquelles elle a été pionnière &#8216;pure player&#8217;. Certains disaient que « VMWare a porté sur architecture x86 la virtualisation des mainframes ».<br
/> Le marché de la virtualisation est aujourd&#8217;hui mature, les grands acteurs des systèmes d&#8217;exploitation se jettent dans la bataille et la concurrence s&#8217;annonce rude pour VMWare.<br
/> L&#8217;univers Windows est condamné à rétrécir mécaniquement pour VMWare avec l&#8217;arrivée en force de Microsoft. Les perspectives sont toutes aussi dures dans le monde Linux avec la montée en puissance des offres de RedHat ou de Sun. Nous avons vu par le passé que toutes les fonctionnalités clefs des gros Unix sont arrivées dans Linux ; les zones Solaris et les partitions AIX sont aujourd&#8217;hui banalisées, il n&#8217;y a pas de raison que ces technologies n&#8217;arrivent pas dans le système d&#8217;exploitation au pingouin.</p><h4><a
name="OnesizedoesnotfitallConcilierv"></a>One size does not fit all : Concilier virtualisation matérielle et cloud pour optimiser l&#8217;utilisation des data centers</h4><p>A l&#8217;époque où les applications n&#8217;étaient pas <em>friendly</em> à la mutualisation, la virtualisation était la technologie de prédilection pour optimiser l&#8217;utilisation des ressources des data centers. Aujourd&#8217;hui, les applications java légères déployées sous forme de cloud Platform As A Service sont très <em>friendly</em> à la mutualisation et se passent de la virtualisation matérielle. <strong>VMWare a suivi cette redistribution des cartes en achetant la solution de cloud computing Hyperic-TcServer-Tomcat de SpringSource.</strong><br
/> La virtualisation matérielle risque de ne pas être utilisée sur les applications légères (Java, .Net, PHP, etc) qui représentent aujourd&#8217;hui la tendance dominante mais garde sa position de leader pour optimiser l&#8217;utilisation des ressources CPU et RAM des autres types d&#8217;applications.</p><h4><a
name="Ressources"></a>Ressources</h4><ul><li>&laquo;&nbsp;<a
href="http://blog.springsource.com/2009/08/10/springsource-chapter-two/" title="SpringSource Chapter Two" >SpringSource: Chapter Two</a>&nbsp;&raquo; : L&#8217;annonce du rachat par Rod Johnson, fondateur de SpringSource.</li><li>&laquo;&nbsp;<a
href="http://blogs.vmware.com/console/2009/08/vmware-acquires-springsource.html" title="VMWare to acquire SpringSource" >VMWare to acquire SpringSource</a>&nbsp;&raquo; : L&#8217;annonce par Steve Herrod, CTO de VMWare.</li><li>&laquo;&nbsp;<a
href="http://www.devwebsphere.com/devwebsphere/2009/08/why-java-is-so-important-to-vmware.html" title="Why Java is important to VMware but may not matter long term" >Why Java is important to VMware but may not matter long term</a>&nbsp;&raquo; par Billy Newport, IBM WebSphere.</li><li>&laquo;&nbsp;<a
href="http://www.touilleur-express.fr/2009/08/11/springsource-rachete-par-vmware/" title="SpringSource rachet par VMware" >SpringSource racheté par VMware</a>&nbsp;&raquo; par Le Touilleur Express.</li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/08/17/pourquoi-vmware-springsource-virtualisation-materielle-vs-cloud/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/08/10/revue-de-presse-xebia-121/</link> <comments>http://blog.xebia.fr/2009/08/10/revue-de-presse-xebia-121/#comments</comments> <pubDate>Mon, 10 Aug 2009 16:08:43 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Eclipse]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JavaCampParis]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[JSR-299]]></category> <category><![CDATA[JSR-330]]></category> <category><![CDATA[Spring]]></category> <category><![CDATA[SpringSource Tool Suite]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2616</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Fin officielle de la guerre des JSR d&#8217;injection de dépendances Le coin de la technique SpringSource Tool Suite 2.1.0 JBoss vous aide à manipuler vos annotations Eclipse 3.6 M1 Evènements de notre communauté en France et à l&#8217;étranger JavaCampParis en [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br
/> <em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/08/10/revue-de-presse-xebia-121/#FinofficielledelaguerredesJSRd">Fin officielle de la guerre des JSR d&#8217;injection de dépendances</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/08/10/revue-de-presse-xebia-121/#SpringSourceToolSuite">SpringSource Tool Suite 2.1.0</a></li><li><a
href="http://blog.xebia.fr/2009/08/10/revue-de-presse-xebia-121/#JBossvousaidemanipulervosannot">JBoss vous aide à manipuler vos annotations</a></li><li><a
href="http://blog.xebia.fr/2009/08/10/revue-de-presse-xebia-121/#EclipseM">Eclipse 3.6 M1</a></li></ul><p><strong>Evènements de notre communauté en France et à l&#8217;étranger</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/08/10/revue-de-presse-xebia-121/#JavaCampParisenpleinair">JavaCampParis en plein air !</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="FinofficielledelaguerredesJSRd"></a>Fin officielle de la guerre des JSR d&#8217;injection de dépendances</h4><p>Nous en parlions <a
href="http://blog.xebia.fr/2009/08/03/revue-de-presse-xebia-120/#Avancementdesspcificationsetim" title="dès la semaine dernière" >dès la semaine dernière</a> (grâce aux informations fournies par les <a
href="http://lescastcodeurs.com/2009/08/les-cast-codeurs-podcast-episode-7-le-dsl-et-ses-amantes/" title="Cast Codeurs" >Cast Codeurs</a>), la <a
href="http://blog.xebia.fr/2009/05/11/inject-standardisation-de-linjection-de-dependances/" title="rivalit JSR299  JSR330" >rivalité JSR-299 / JSR-330</a>, portant sur l&#8217;injection de dépendances, débouche sur une harmonisation des deux JSR.<br
/> Roberto Chinnici, leader de la spécification Java EE 6, <a
href="http://weblogs.java.net/blog/robc/archive/2009/08/dependency_inje.html" title="lannonce sur son blog" >l&#8217;annonce sur son blog</a>. Les deux JSR seront intégrées à la spécification JEE 6.</p><ul><li>la JSR 299 (dite &laquo;&nbsp;Web Beans&nbsp;&raquo;) intègrera les annotations proposées par la JSR 330.</li><li>la JSR 330 (dite &laquo;&nbsp;@Inject&nbsp;&raquo;) intègre, dès aujourd&#8217;hui en draft, les objectifs de la JSR 299</li></ul><p>L&#8217;équipe en charge de la JSR 330 a fait d&#8217;importants efforts sur le planning pour que celle ci puisse être intégrée à JEE6 : early draft d&#8217;ores et déjà <a
href="http://jcp.org/aboutJava/communityprocess/edr/jsr330/index.html" title="disponible" >disponible</a>, et navigation à travers les différentes étapes du processus du JCP accélérée.<br
/> Cela aura un impact mineur sur la finalisation de la spécification Java EE 6 (estimé entre 4 et 6 semaines). Celle ci devrait donc être disponible en version finale en novembre.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="SpringSourceToolSuite"></a>SpringSource Tool Suite 2.1.0</h4><p>Quelques mois après l&#8217;annonce de la <a
href="http://blog.springsource.com/2009/05/07/springsource-tool-suite-now-free/" title="gratuité de STS ou SpringSource Tool Suite" >gratuité de STS ou SpringSource Tool Suite</a>, le produit sort fin de semaine dernière en <a
href="http://blog.springsource.com/2009/08/06/springsource-tool-suite-210-now-available/" title="version 210 GA" >version 2.1.0 GA</a>.</p><p>Côté packaging, on a le choix entre une version d&#8217;eclipse 3.4 ou 3.5, les 2 étant disponibles sous Windows, Mac et Linux. La suite inclut les dernières versions de tc Server et dm Server ainsi que Roo. Une autre release contenant le plugin Groovy est aussi disponible (uniquement en 3.5).</p><p>Comme le signale <a
href="http://blog.springsource.com/author/cdupuis/" title="Christian Dupuis" >Christian Dupuis</a>, la liste des nouveautés est assez <a
href="http://www.springsource.com/files/uploads/all/pdf_files/product/STS-new_and_noteworthy-2.1.0.RELEASE.pdf" title="consquente" >conséquente</a>. On retiendra plus particulièrement :</p><ul><li>Support des milestones Spring 3.0 (@Configuration, @Bean, validation XML&#8230;)</li><li>Support des milestones de SpringSource dm Server 2.0</li><li>Déploiement sur les plateformes virtuels de type EC2 ou VMWare Lab Manager</li><li>Amélioration des performances de l&#8217;IDE et réduction de l&#8217;empreinte mémoire</li><li>Et plusieurs corrections de bugs (cf. la <a
href="https://issuetracker.springsource.com/secure/ReleaseNote.jspa?version=10183&#038;styleName=Html&#038;projectId=10010&#038;Create=Create" title="release notes du Jira" >release notes du Jira</a>)</li></ul><p>L&#8217;équipe travaille déjà sur la prochaine version 2.2.0 avec dans les tuyaux :</p><ul><li>Intégration du support Spring 3.0 pour le développement d&#8217;application RESTful</li><li>Support de Grails</li><li>Support de dm Server 2.0</li></ul><p>Téléchargement sur le site de <a
href="http://www.springsource.com/products/springsource-tool-suite-download" title="SpringSource" >SpringSource</a> après avoir rempli le formulaire d&#8217;accord.</p><h4><a
name="JBossvousaidemanipulervosannot"></a>JBoss vous aide à manipuler vos annotations</h4><p>Début 2008, Bill Burke (<em>project lead</em> de JBoss RestEasy) présentait une petite librairie Java très pratique nommée <a
href="http://scannotation.sourceforge.net/" title="Scannotation" >Scannotation</a> permettant de scanner les annotations présentes dans les classes d&#8217;un <em>package</em> donné. Il <a
href="http://bill.burkecentral.com/2008/01/14/scanning-java-annotations-at-runtime/" title="expliquait alors le besoin rel" >expliquait alors le besoin réel</a> pour un tel <em>framework</em> par le fait qu&#8217;en standard, cette découverte de classes annotées n&#8217;est possible que par un coûteux mécanisme d&#8217;introspection nécessitant le chargement dans la JVM de l&#8217;ensemble des classes scannées (induisant donc une consommation de mémoire <em>PermGen</em> excessive puisque toutes les classes concernées n&#8217;auraient pas forcément été chargées lors de l&#8217;exécution de l&#8217;application).</p><p>JBoss <a
href="http://in.relation.to/12078.lace" title="présente maintenant" >présente maintenant</a> un framework remplissant le même rôle et nommé JBoss Annotations, prévu pour être intégré aux différents projets de l&#8217;éditeur. Il vous permettra ainsi de constituer une base de données des annotations présentes sur l&#8217;ensemble des classes que vous aurez sélectionnées pour analyse, que vous pourrez ainsi facilement interroger. La documentation et la javadoc de JBoss Annotations sont pour le moment uniquement disponibles dans <a
href="http://sourceforge.net/projects/jboss" title="larchive de distribution" >l&#8217;archive de distribution</a> du projet.</p><h4><a
name="EclipseM"></a>Eclipse 3.6 M1</h4><p>Quelques semaines après la <a
href="http://blog.xebia.fr/2009/06/29/revue-de-presse-xebia-115/#SortiedEclipseGalileo" title="sortie fin juin d'eclipse 3.5 galileo" >sortie fin juin d&#8217;eclipse 3.5 galileo</a>, voici venir la première milestone de la prochaine version de l&#8217;IDE à savoir eclipse 3.6 helios (par le <a
href="http://keulkeul.blogspot.com/2009/08/eclipse-36-m1-est-disponible.html" title="blog de keulkeul" >blog de keulkeul</a>).</p><p>Au menu des <a
href="http://download.eclipse.org/eclipse/downloads/drops/S-3.6M1-200908061400/eclipse-news-M1.html" title="nouveauts" >nouveautés</a> :</p><ul><li>Regroupement des licences dans le <em>wizard</em> d&#8217;installation</li><li>Ajout d&#8217;un <em>Footer</em> customisable pour l&#8217;aide</li><li><em>Content assist</em> et <em>Hover Pop-Up</em> redimensionnable sous Linux</li><li>Amélioration d&#8217;<em>Extract Method</em> au niveau de <code>continue</code> et de retours multiples</li><li><em>Export All</em> pour les <em>Formatters</em></li><li>Nouvelles entrées de menu (<em>Remove Nodes</em> dans <em>Call Hierarchy</em>, <em>Open Implementation</em>&#8230;)</li></ul><p>Early adopters, c&#8217;est <a
href="http://download.eclipse.org/eclipse/downloads/drops/S-3.6M1-200908061400/index.php" title="par ici" >par ici</a> que ça se passe !</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="JavaCampParisenpleinair"></a>JavaCampParis en plein air !</h4><p>Fort du succès des précédentes rencontres, le JavaCamp Paris organise une nouvelle session le 27 août dans un format très original puisqu&#8217;elle se tiendra en plein air, au Jardin des Tuileries.</p><p>Pour rappel, le principe des JavaCamp repose sur la constitution de groupes de discussion improvisés échangeant des informations et des idées sur des sujets décidés en début de session.</p><p>Si cette expérience vous intéresse, n&#8217;hésitez pas à vous inscrire sur le <a
href="http://barcamp.org/JavaCampParis5" title="wiki du JavaCamp Paris 5" >wiki du JavaCamp Paris 5</a>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/08/10/revue-de-presse-xebia-121/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
