<?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; Oracle</title> <atom:link href="http://blog.xebia.fr/tag/oracle/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>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2011/10/11/revue-de-presse-xebia-233/</link> <comments>http://blog.xebia.fr/2011/10/11/revue-de-presse-xebia-233/#comments</comments> <pubDate>Tue, 11 Oct 2011 21:00:41 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Apache]]></category> <category><![CDATA[crowdsourcing]]></category> <category><![CDATA[Dart]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[JavaOne]]></category> <category><![CDATA[Oracle]]></category> <category><![CDATA[SCRUM]]></category> <category><![CDATA[TomEE]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=8813</guid> <description><![CDATA[La revue de presse hebdomadaire des écosystèmes Java/JEE proposée par Xebia. Actualité éditeurs / SSII JavaOne Google Dart Google Cloud SQL Apache TomEE Agilité SCRUM se met au crowdsourcing Actualité éditeurs / SSII JavaOne La conférence JavaOne 2011 s&#8217;est tenue la semaine passée à San Francisco. Comme chaque année, elle a été l&#8217;occasion d&#8217;un grand [...]]]></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" /></p><p><em>La revue de presse hebdomadaire des écosystèmes Java/JEE proposée par Xebia.</em></p><p><strong>Actualité éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/10/11/revue-de-presse-xebia-233/#JavaOne">JavaOne</a></li><li><a
href="http://blog.xebia.fr/2011/10/11/revue-de-presse-xebia-233/#GoogleDart">Google Dart</a></li><li><a
href="http://blog.xebia.fr/2011/10/11/revue-de-presse-xebia-233/#GoogleCloudSQL">Google Cloud SQL</a></li><li><a
href="http://blog.xebia.fr/2011/10/11/revue-de-presse-xebia-233/#ApacheTomEE">Apache TomEE</a></li></ul><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/10/11/revue-de-presse-xebia-233/#SCRUMsemetaucrowdsourcing">SCRUM se met au crowdsourcing</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="JavaOne"></a>JavaOne</h4><p>La conférence <strong>JavaOne</strong> 2011 s&#8217;est tenue la semaine passée à San Francisco. Comme chaque année, elle a été l&#8217;occasion d&#8217;un grand nombre d&#8217;annonces, de <em>keynotes</em> et de plans sur le futur de Java. On notera après avoir pris la température auprès de la communauté, que celle-ci semble moins inquiète que dans un récent passé: Oracle est là depuis un moment maintenant, les choses semblent s’être stabilisées et clarifiées. La récente arrivée de Java 7 ne doit pas y être pour rien. Parmi les diverses annonces, on retiendra surtout :</p><ul><li>Java 8 est retardé à début 2013. Nous aurons le temps de vous reparler des nouveaux apports.</li><li>Java ME tend à se rapprocher de Java SE et vise à en devenir un sous ensemble. L’intérêt est d&#8217;unifier les communautés de ces 2 versions.</li><li>Java EE 7 est en préparation, orienté Cloud et <a
title="multitenancy" href="http://blog.loof.fr/2011/06/multi-tenancy.html">multi-tenancy</a></li><li>JavaFX n&#8217;est pas mort. Les mauvaises langues diront que le projet ressort du placard chaque année pour JavaOne. Mais Oracle semble décidé à le faire avancer: il devrait progressivement devenir complètement OpenSource et une version 3 est prévue, intégrée directement dans le JDK 8.</li><li>Pour rêver un peu, quelques pistes pour le JDK 9 ont été évoquées. On parle de VM s&#8217;adaptant toutes seules aux applications (plus de XmX et autres barbaries ?!), d&#8217;un nouveau Meta Object Protocol améliorant le support entre langages&#8230; Là encore, nous aurons laaaargement le temps d&#8217;en reparler !</li></ul><p>On regrettera encore malgré tout l&#8217;absence de <em>speakers</em> de Google, à cause du procès opposant celui-ci à Oracle et alors que la compagnie n&#8217;est pas la moins active dans l’écosystème Java.<br
/> Le <a
title="blog suivant" href="http://marxsoftware.blogspot.com/2011/10/javaone-2011-tremendous-success.html">blog suivant</a> recense nombre d&#8217;articles sur JavaOne et vous pourrez retrouver quelques <em>roadmaps</em> sur <a
title="le podcast JavaSpotlight" href="http://blogs.oracle.com/javaspotlight/entry/java_spotlight_episode_51_live">le podcast JavaSpotlight</a>.</p><p>Parmi les autres annonces intéressantes, on notera l&#8217;annonce du <strong>serveur Apache TomEE</strong> qui est maintenant certifié EE 6 Web Profile. C&#8217;est un serveur Java EE qui se veut léger, basé sur un Tomcat tout ce qu&#8217;il y a de plus standard avec utilisation d&#8217;une librairie Apache pour chacune des fonctionnalités requises par la norme Web Profile: on retrouvera ainsi Apache OpenWebBeans, Apache MyFaces, Apache ActiveMQ, Apache OpenJPA et Apache CXF.<br
/> Et pour finir, Oracle a annoncé une nouvelle solution <strong>NoSQL</strong>. Le géant des bases relationnelles compte donc se diversifier en élargissant son offre. Retrouvez tous les détails de cette solution basée sur Java <a
title="chez infoQ" href="http://www.infoq.com/news/2011/10/Oracle-NoSQL-Database">chez infoQ</a>.</p><h4><a
name="GoogleDart"></a>Google Dart</h4><p>A l&#8217;occasion de la <a
title="GotoCon" href="http://gotocon.com/">GotoCon</a>, Lars Bak le créateur de la machine JavaScript V8 de Chrome et Gilad Bracha auteur du langage <a
title="NewSpeak" href="http://newspeaklanguage.org/">NewSpeak</a> ont annoncé la naissance d&#8217;un nouveau langage de script pour les navigateurs nom de code Dart. L&#8217;annonce concerne le disponibilité de ce langage en Technology Preview, il n&#8217;est pour le moment pas supporté par Chrome.<br
/> Ce langage inspiré de la syntaxe JavaScript offre de plus le support de la concurrence de type acteurs. Notez de plus qu&#8217;il permet de créer des applications pour iPad.<br
/> Quelques caractéristiques du langage:</p><ul><li>Orienté objet avec classe, interface, et héritage</li><li>Typage optionnel</li><li>Mono-thread</li></ul><p>Selon le paradigme acteur, les pocessus dart sont isolés et ne peuvent communiquer entre eux que par une API de messaging.<br
/> Dart supporte différents type d’éxecutions:</p><ul><li>JavaScript &#8211; Avec le compilateur DartC les .dart sont compilés JavaScript.</li><li>DartVM &#8211; Une machine virtuelle permet d’éxecuter directement les scripts Dart.</li><li>Un utilitaire permet de créer et packager une image binaire de la heap qui pourra être exécutée par la suite.</li></ul><p>Côté outillage, Dart propose un éditeur basé sur Eclipse avec support de l’auto-complétion. Bref, avec Dart, Google semble vouloir proposer une alternative à JavaScript permettant enfin de structurer son code et probablement de réconcilier les Javaïstes avec la programmation côté navigateur. Une belle initiative à laquelle nous souhaitons un franc succès.<br
/> Pour plus d’information:</p><ul><li><a
title="Lannonce sur InfoQ" href="http://www.infoq.com/news/2011/10/google-dart-language">L’annonce sur InfoQ</a></li><li><a
title="Dartlangorg" href="http://www.dartlang.org/">Dartlang.org</a></li><li><a
title="Google code de Dart" href="http://code.google.com/p/dart/">Google code de Dart</a></li></ul><h4><a
name="GoogleCloudSQL"></a>Google Cloud SQL</h4><p>Google App Engine, la solution de cloud PaaS made in Google offre dorénavant la possibilité d&#8217;utiliser une base de données relationnelle de type MySql.<br
/> Ce service nommée <a
title="Google Cloud SQL" href="http://googleappengine.blogspot.com/2011/10/google-cloud-sql-your-database-in-cloud.html">Google Cloud SQL</a> répond à de nombreuses demandes d&#8217;utilisateurs, qui souhaitaient une manière plus simple de persister ses données que la solution <a
title="BigTable" href="http://labs.google.com/papers/bigtable.html">BigTable</a>.</p><p>Comme on pouvait s&#8217;y attendre, ce service ne nécessite aucune maintenance, ni administration. Une interface d&#8217;administration est néanmoins fournie. Vous avez la possibilité d&#8217;importer ou d&#8217;exporter votre base de données MySQL. De plus, il offre un mécanisme de réplication géolocalisé des données sur des centres de données.</p><p>Pour le moment, ce nouveau service est gratuit et mis à disposition d&#8217;un nombre limité d&#8217;utilisateurs. Par ailleurs, les quotas fixés sont plutôt modestes: 5 requêtes par seconde et la taille d&#8217;une requête est limitée à 15MO. Si vous êtes intéressé, c&#8217;est <a
title="ici" href="http://code.google.com/intl/fr/apis/sql/docs/before_you_begin.html#enroll">ici</a> pour s&#8217;inscrire.</p><h4><a
name="ApacheTomEE"></a>Apache TomEE</h4><p>Apache a profité de JavaOne pour annoncer la sortie de <a
title="TomEE" href="http://www.infoq.com/news/2011/10/apache-tomee">TomEE</a> en version Bêta. La particularité de ce serveur web est d&#8217;être certifié JEE 6 Web Profile.<br
/> Il s&#8217;ajoute à la liste des serveurs open source déjà existant compatibles JEE 6 Web Profile: GlassFish, JBoss et Apache Geronimo.</p><p>Ce serveur est assemblé à partir d&#8217;un simple Apache Tomcat, auquel ont été ajoutées différentes implémentations Apache pour fournir tous les services EE.<br
/> Voici les implémentations des différentes briques de la stack JEE embarquées dans TomEE:</p><ul><li>CDI: Apache OpenWebBeans</li><li>EJB: Apache OpenEJB</li><li>Javamail: Apache Geronimo JavaMail</li><li>JPA: Apache OpenJPA</li><li>JSF: Apache MyFaces</li><li>JTA: Apache Geronimo Transaction</li><li>Connector: Apache Geronimo Connector</li><li>JMS: Apache ActiveMQ</li><li>Web Services: Apache CXF</li></ul><p>La philosophie d&#8217;Apache TomEE est d&#8217;offrir une solution simple et légère pour faire du JEE. Ce serveur semble bien prédisposé pour les solutions de Cloud avec notamment sa faible taille mémoire (&lt; 24 Mo).<br
/> Toutes les informations et le téléchargement se trouvent <a
title="ici" href="http://openejb.apache.org/downloads.html">ici</a>.</p><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="SCRUMsemetaucrowdsourcing"></a>SCRUM se met au crowdsourcing</h4><p>La plus populaire des méthodes agiles marque un tournant significatif dans son histoire. Les co-créateurs ont décidé de laisser la possibilité à chacun de proposer des modifications ou des extensions au cadre de base. <a
title="Cette annonce" href="http://www.scrum.org/news/2011/10/6/scrum-is-open-for-modification-and-extension.html">Cette annonce</a> intervenue peu avant le week-end serait presque passé inaperçue. Il y a quand même eu quelques réactions spontanées, notamment David Anderson, le meneur du mouvement Kanban, qui se demandait sur Twitter qui serait le premier à proposer une extension Kanban pour Scrum.</p><div
align="center"><a
href="http://blog.xebia.fr/wp-content/uploads/2011/10/SCRUM_crowdsourcing.png"><br
/> <img
class="size-full wp-image-8815" title="SCRUM_crowdsourcing" src="http://blog.xebia.fr/wp-content/uploads/2011/10/SCRUM_crowdsourcing.png" alt="" width="200" height="108" /><br
/> </a></div><p>De notre côté on se demande qui sera la première SSII française à proposer une extension de SCRUM pour remettre un rôle de chef de projet et de MOA dans tout ça ? Heureusement pour veiller aux dérives, il existe un comité de revue des propositions dont on connait au moins 2 personnes: James Coplien et David Starr. Ce comité est en charge de revoir les propositions et interagir avec leur auteur. L&#8217;histoire nous dira si ce comité, censé veiller au grain, adopte une ligne plutôt rigide ou permissive. Dans tous les cas le modèle pour proposer une modification ou une extension (c&#8217;est le même) demande de bien préciser le contexte dans lequel l&#8217;élément proposé est utile, à la façon d&#8217;une approche par pattern. Il faut également que la proposition soit appuyée par un sponsor et on nous promet une réaction sous 3 mois. Il est possible de voir en ligne <a
title="la liste" href="http://www.scrum.org/scrum-extensions/">la liste</a> des extension proposées. Pour l&#8217;instant on en trouve une seule qui émane de David Starr, du comité de revue. Elle traite, d&#8217;après le titre, du découpage en tâche dans le sprint planning. Ah, mais ce n&#8217;est pas ce qui avait été supprimé de SCRUM en Juillet ça ? D&#8217;ailleurs les <a
title="explications" href="http://www.scrum.org/scrum-guide-updates/#backlog">explications</a> sur les modifications du Sprint Backlog provenaient également de David Starr. Donc si j&#8217;ai bien compris, il explique pourquoi ça disparait de SCRUM et ensuite il propose une extension pour le réintroduire si l&#8217;on veut. Bon, j&#8217;espère juste que SCRUM ne va pas finir comme le RUP avec un site web qu&#8217;on peut configurer à partir d&#8217;une bibliothèque d&#8217;extensions&#8230;</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/10/11/revue-de-presse-xebia-233/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2011/08/23/revue-de-presse-xebia-225/</link> <comments>http://blog.xebia.fr/2011/08/23/revue-de-presse-xebia-225/#comments</comments> <pubDate>Tue, 23 Aug 2011 05:58:51 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Coherence]]></category> <category><![CDATA[Google App Engine]]></category> <category><![CDATA[Oracle]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=8340</guid> <description><![CDATA[La revue de presse de l’actualité Java/JEE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Google App Engine 1.5.3 Le coin de la technique Bonnes pratiques pour la réplication de session dans Coherence Actualité éditeurs / SSII Google App Engine 1.5.3 Bien que sa sortie fut un peu chaotique (Un problème empêchait le déploiement via [...]]]></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/JEE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité  éditeurs / SSII</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/08/23/revue-de-presse-xebia-225/#GoogleAppEngine">Google App Engine 1.5.3</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/08/23/revue-de-presse-xebia-225/#Bonnespratiquespourlarplicatio">Bonnes pratiques pour la réplication de session dans Coherence</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité  éditeurs / SSII</h3><h4><a
name="GoogleAppEngine"></a>Google App Engine 1.5.3</h4><p>Bien que sa sortie fut un peu chaotique (Un <a
href="http://code.google.com/p/googleappengine/issues/detail?id=5612" title="problème" >problème</a> empêchait le déploiement via le plugin Google d&#8217;Eclipse), Google a annoncé le 17 août, la version <a
href="http://googleappengine.blogspot.com/2011/08/app-engine-153-sdk-released.html" title="153" >1.5.3</a> de son SDK App Engine, mettant cette fois-ci l&#8217;accent sur les fonctionnalités autour de l&#8217;administration des données. En plus des corrections d&#8217;anomalies, voici une liste non exhaustive des nouvelles fonctionnalités :</p><p><strong>Blobstore :</strong></p><p>Désormais, l&#8217;espace dédié à la sauvegarde de fichiers volumineux n&#8217;est plus limité à 2 Go par fichier. On regrette néanmoins que la sauvegarde via l&#8217;API Java soit toujours instable et comporte indirectement des limites.</p><p><strong>Datastore :</strong></p><p>Le statut d&#8217;un index peut maintenant être lu via une API Java au lieu d&#8217;utiliser la console d&#8217;administration. Bien que la création d&#8217;un index puisse être longue, l&#8217;utilité de cette fonctionnalité reste à prouver puisqu&#8217;il suffit de mettre à jour les index et d&#8217;attendre leurs constructions avant de déployer une version qui va les exploiter.</p><p>Vient ensuite une <a
href="http://code.google.com/intl/fr-FR/appengine/docs/adminconsole/datastoreadmin.html" title="console" >console</a> dédiée au Datastore permettant d&#8217;administrer les entités. Déjà disponible dans la version Python, on peut désormais s&#8217;affranchir de déployer une application Python temporaire avant de pouvoir l&#8217;utiliser. Elle permet d&#8217;effectuer les opérations suivantes :</p><ul><li>Suppression totale d&#8217;un type d&#8217;entité.</li><li>Copie d&#8217;entités vers une autre application App Engine : fonctionnalité particulièrement intéressante si on souhaite migrer un environnement de production. Toutefois, l&#8217;environnement source devra être en lecture seule le temps de la migration afin de garantir la copie complète.</li></ul><p>Ces opérations utilisent le système de tâches et reposent sur le Map/Reduce. Par conséquent, elles consomment différents quotas et plus particulièrement celui relatif au CPU.</p><p>Enfin, un nouvel outil de migration est ouvert aux testeurs afin de passer une application existante utilisant le plan de stockage MS (Master / Slave) vers le HR (High Replication).</p><p><strong>MemCache :</strong></p><p>L&#8217;API MemCache supporte désormais le CAS (Compare and Swap) déjà présent dans l&#8217;API Java.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="Bonnespratiquespourlarplicatio"></a>Bonnes pratiques pour la réplication de session dans Coherence</h4><p>Voici un <a
href="http://ankurkumar78.blogspot.com/2011/08/oracle-coherence-best-practices-in.html" title="article" >article</a> très pragmatique de Ankur Kumar sur la configuration de Coherence*Web en particulier et de Coherence en général. Coherence est une solution de <em>in memory data grid</em> d’Oracle, qui permet de mettre des structures de données dans un cache distribué ou répliqué. <a
href="http://coherence.oracle.com/display/COH35UG/Coherence*Web+and+WebLogic+Server" title="CoherenceWeb" >Coherence*Web</a> est un module construit au-dessus qui se focalise sur la mise en cache des sessions web. La configuration contient un certain nombre de chausse-trappes où il est facile de tomber, surtout au moment de passer la main aux équipes d’exploitations.</p><p>L’article commence par rappeler les différents types de déploiement (<strong>in-process</strong>, <strong>out-process</strong> et <strong>out-process</strong> avec <strong>Coherence*Extend</strong>) et les différentes topologies:</p><ul><li>locale</li><li>répliquée: la donnée est répliquée sur chaque instance</li><li>distribuée/partitionnée: la donnée est partagée sur chaque instance</li><li><em>near cache</em>: la donnée est globalement distribuée et partiellement colocalisée pour les données de référence par exemple</li></ul><p>Voici quelques exemples de configurations importantes:</p><ul><li>dans le cas du <strong>out-process</strong> (le serveur d’application ne contient pas la donnée mais se connecte à un cache externe), ne pas oublier de spécifier les paramètres <code>-Dtangosol.coherence.session.localstorage=false</code> pour les caches de session et <code>-Dtangosol.coherence.distributed.localstorage=false</code> pour les autres caches.</li><li>pour s&#8217;assurer qu’une instance ne se connecte pas à d’autres instances (sur un poste de développement par exemple), on peut préciser un _time-to_live_ à 0: <code>-Dtangosol.coherence.ttl=0</code></li><li>à noter également qu’il existe plusieurs modes (prod ou dev) qui selon les cas iront chercher tel ou tel fichier de configuration par défaut. Pour figer le mode : <code>-Dtangosol.coherence.mode=PROD</code> ou <code>-Dtangosol.coherence.mode=DEV</code>.</li></ul><p>Bref, avant toute mise en intégration ou en production il est important de se faire une <em>checklist</em> pour ne rien oublier.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/08/23/revue-de-presse-xebia-225/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Présentation &#171;&#160;In Memory Data Grids in Action&#160;&#187; au Paris NoSQL User Group</title><link>http://blog.xebia.fr/2011/05/27/presentation-in-memory-data-grids-in-action-au-paris-nosql-user-group/</link> <comments>http://blog.xebia.fr/2011/05/27/presentation-in-memory-data-grids-in-action-au-paris-nosql-user-group/#comments</comments> <pubDate>Fri, 27 May 2011 06:36:25 +0000</pubDate> <dc:creator>Cyrille Le Clerc</dc:creator> <category><![CDATA[Cloud / NoSQL]]></category> <category><![CDATA[Coherence]]></category> <category><![CDATA[Data Grid]]></category> <category><![CDATA[Oracle]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=7897</guid> <description><![CDATA[Voici la présentation &#171;&#160;In Memory Data Grids in Action with Oracle Coherence&#160;&#187; que j&#8217;ai faite lundi 23 Mai au Paris No SQL User Group. Pour la partie &#171;&#160;transactions &#038; eXtreme Transaction Processing (XTP)&#160;&#187; qui est une caractéristique remarquable des datagrids et que nous n&#8217;avons hélas pas eu le temps d&#8217;aborder, je vais voir avec Olivier [...]]]></description> <content:encoded><![CDATA[<p>Voici la présentation &laquo;&nbsp;In Memory Data Grids in Action with Oracle Coherence&nbsp;&raquo; que j&#8217;ai faite lundi 23 Mai au Paris No SQL User Group.</p><p>Pour la partie &laquo;&nbsp;transactions &#038; eXtreme Transaction Processing (XTP)&nbsp;&raquo; qui est une caractéristique remarquable des datagrids et que nous n&#8217;avons hélas pas eu le temps d&#8217;aborder, je vais voir avec Olivier Malassi si nous pouvons trouver une autre date.</p><p>Merci encore à tous ceux qui sont venus, merci pour toutes les questions et remarques qui ont permis d&#8217;enrichir la soirée. J&#8217;espère que vous avez passé un aussi bon moment que moi.</p><div
style="width:100%; text-align:center" id="__ss_8102777"> <strong
style="display:block;margin:12px 0 4px"><a
href="http://www.slideshare.net/XebiaFrance/paris-nosql-user-group-in-memory-data-grids-in-action-without-transactions-chapter-8102777" title="Paris NoSQL User Group - In Memory Data Grids in Action (without transactions chapter)">Paris NoSQL User Group &#8211; In Memory Data Grids in Action (without transactions chapter)</a></strong><br
/> <iframe
src="http://www.slideshare.net/slideshow/embed_code/8102777" width="595" height="497" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></p><div
style="padding:5px 0 12px"> View more <a
href="http://www.slideshare.net/">presentations</a> from <a
href="http://www.slideshare.net/XebiaFrance">Xebia France</a></div></div> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/05/27/presentation-in-memory-data-grids-in-action-au-paris-nosql-user-group/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Soirée Oracle Coherence et In Memory Data Grid inter-continentales au Paris NoSQL User Group le 23 mai</title><link>http://blog.xebia.fr/2011/05/17/soiree-oracle-coherence-et-in-memory-data-grid-inter-continentales-au-paris-nosql-user-group-le-23-mai/</link> <comments>http://blog.xebia.fr/2011/05/17/soiree-oracle-coherence-et-in-memory-data-grid-inter-continentales-au-paris-nosql-user-group-le-23-mai/#comments</comments> <pubDate>Tue, 17 May 2011 12:17:36 +0000</pubDate> <dc:creator>Cyrille Le Clerc</dc:creator> <category><![CDATA[Cloud / NoSQL]]></category> <category><![CDATA[Coherence]]></category> <category><![CDATA[Data Grid]]></category> <category><![CDATA[Oracle]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=7736</guid> <description><![CDATA[Les grilles de données mémoire sont de plus en plus utilisées en finance de marché et dans le monde de l&#8217;eXtreme Transaction Processing (gestion de stock de sites de eCommerce, systèmes de réservation informatiques / GDS , etc). Je présenterai lundi 23 Mai au Paris NoSQL User Group un retour d&#8217;expérience sur un projet de [...]]]></description> <content:encoded><![CDATA[<p>Les grilles de données mémoire sont de plus en plus utilisées en finance de marché et dans le monde de l&#8217;<a
href="http://en.wikipedia.org/wiki/Extreme_Transaction_Processing" title="eXtreme Transaction Processing" >eXtreme Transaction Processing</a> (gestion de stock de sites de eCommerce, <a
href="http://fr.wikipedia.org/wiki/Syst%C3%A8me_de_r%C3%A9servation_informatique" title="systèmes de réservation informatiques" >systèmes de réservation informatiques</a> / <a
href="http://en.wikipedia.org/wiki/Computer_reservations_system" title="GDS" >GDS</a> , etc).</p><p>Je présenterai lundi 23 Mai au Paris NoSQL User Group un retour d&#8217;expérience sur un projet de grille de données inter-continentale avec Oracle Coherence.</p><h4><a
name="Auprogramme"></a>Au programme</h4><ul><li>Valeur ajoutée d&#8217;une <em>In Memory Data Grid</em> (IMDG) dans une application d&#8217;informatique de gestion</li><li>Intégration d&#8217;une IMDG dans une application existante :<ul><li>Adaptation d&#8217;impédance : &laquo;&nbsp;modèle relationnel&nbsp;&raquo; versus &laquo;&nbsp;modèle hashtable / key-value store&nbsp;&raquo;.</li><li>Réutilisation des services métiers et asynchronisme des écritures en SGBD.</li></ul></li><li>Patterns de programmation avec une IMDG :<ul><li>Modélisation des données, Domain Driven Design et traitements au cœur des données.</li><li>Search = code !</li></ul></li><li>Évolutivité d&#8217;une IMDG : &laquo;&nbsp;<code>alter table add column</code>&nbsp;&raquo; versus &laquo;&nbsp;versionning des structures de données&nbsp;&raquo;.</li><li>Réplication inter-continentale :<ul><li>Mise en œuvre du théorème CAP : l&#8217;abaissement de la consistance.</li><li>Techniques de réplication et de résolution des collisions.</li></ul></li><li>Conclusion &#8211; Maturité des In Memory Data Grids :<ul><li>Quelle place dans le Système d&#8217;Information ? Entrepôts de données durable ou représentations optimisées de données stockées ailleurs ?</li><li>Technologie réservée à une élite chevronnée ou accessible à tous ?</li></ul></li></ul><h4><a
name="Logistique"></a>Logistique</h4><ul><li>L&#8217;heure : lundi 23 mai à 19h00.</li><li>L&#8217;adresse : OCTO Technology, 50 avenue des champs E lysées, 75008 Paris.</li><li>L&#8217;annonce sur le site du Paris NoSql User Group <a
href="https://sites.google.com/a/octo.com/nosql/23-05-2011-coherence" title="In Memory Data Grids  Retour dexprience Oracle Coherence" >In Memory Data Grids &#8211; Retour d&#8217;expérience Oracle Coherence</a>.</li><li>Inscriptions : nous vérifions mais il ne semble pas y avoir de mécanisme d&#8217;inscription.</li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/05/17/soiree-oracle-coherence-et-in-memory-data-grid-inter-continentales-au-paris-nosql-user-group-le-23-mai/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2011/02/22/revue-de-presse-xebia-199/</link> <comments>http://blog.xebia.fr/2011/02/22/revue-de-presse-xebia-199/#comments</comments> <pubDate>Tue, 22 Feb 2011 08:41:24 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Continuous Delivery]]></category> <category><![CDATA[Ehcache]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[Java FX]]></category> <category><![CDATA[jBPM 5]]></category> <category><![CDATA[Netbeans]]></category> <category><![CDATA[Oracle]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=7066</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSIIest Ehcache Search Chez Oracle: Netbeans 7, Java FX 2&#8230; Agilité Continuous Delivery selon Martin Fowler et Jez Humble Le coin de la technique jBPM 5 est de sortie Google Web Toolkit 2.2 Actualité éditeurs / SSII Ehcache Search La nouvelle [...]]]></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" /></p><p><em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Actualité  éditeurs / SSIIest<br
/> </strong></p><ul><li><a
href="http://blog.xebia.fr/2011/02/22/revue-de-presse-xebia-199/#EhcacheSearch">Ehcache Search</a></li><li><a
href="http://blog.xebia.fr/2011/02/22/revue-de-presse-xebia-199/#ChezOracleNetbeansJavaFX">Chez Oracle: Netbeans 7, Java FX 2&#8230;</a></li></ul><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/02/22/revue-de-presse-xebia-199/#ContinuousDeliveryselonMartinF">Continuous Delivery selon Martin Fowler et Jez Humble</a></li></ul><p><strong>Le coin de la  technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2011/02/22/revue-de-presse-xebia-199/#jBPMestdesortie">jBPM 5 est de sortie</a></li><li><a
href="http://blog.xebia.fr/2011/02/22/revue-de-presse-xebia-199/#GoogleWebToolkit">Google Web Toolkit 2.2</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité  éditeurs / SSII</h3><h4><a
name="EhcacheSearch"></a>Ehcache Search</h4><p>La nouvelle version Ehcache 2.4 est sortie la <a
title="semaine dernière" href="http://gregluck.com/blog/archives/2011/02/ehcache-2-4-with-the-new-search-feature-is-out/">semaine dernière</a>, elle apporte une nouvelle fonctionnalité importante, <a
title="Search" href="http://ehcache.org/documentation/search.html">Search</a>, qui améliore les mécanismes de recherche. Elle offre entre autre une API <em>fluent</em> (<a
title="Dsignation chaine" href="http://fr.wikipedia.org/wiki/D%C3%A9signation_cha%C3%AEn%C3%A9e">Désignation chainée</a> en français ?) qu’on retrouve souvent dans les API de recherche de ce type. Voici un exemple:</p><pre class="brush: java; title: ; notranslate">
Results results = cache.createQuery().includeKeys().addCriteria(age.eq(32).and(gender.eq(“male”))).execute();
</pre><p>Nous voici donc avec un nouveau <em>query language</em>, EQL, qui rassemble toutes les fonctionnalités classiques de requêtage: les critères ( <code>eq </code>, <code>lt</code>, <code>like</code>, <code>ilike</code>, <code>between</code>&#8230;), les tris descendant/ascendant et les agrégateurs ( <code>min </code>, <code>max</code>, <code>avg</code>, <code>sum</code>, <code>count</code>&#8230;). Par contre il n’y a pas de possibilités de jointure.</p><p>Deux approches ont été utilisées selon qu’on soit en mode <em>standalone</em> ou distribué. En <em>standalone</em> la recherche se fait simplement en parcourant l’ensemble des éléments. Même si il y a beaucoup d’éléments le fait d’être en local permet d’avoir un temps de réponse très bon (d’après Ehcache, 1 million d’entrée en moins d’une seconde environ). Par contre le mode distribué, qui ne sera disponible qu’avec la future <em>release</em> Terracota 3.5, s’appuie sur des indexes et est par conséquent beaucoup plus rapide sur des tailles de cache de plusieurs giga voire téra octets. Dans ce mode on peut doubler le volume en gardant quasiment le même temps de réponse si on ajoute tout simplement un cache. A noter que la mise à jour des indexes est asynchrone.</p><p>Sans être révolutionnaire voici une nouvelle fonctionnalité assez utile pour un outil déjà appréciable par sa simplicité.</p><h4><a
name="ChezOracleNetbeansJavaFX"></a>Chez Oracle: Netbeans 7, Java FX 2&#8230;</h4><p>Attention, cette info est réservée à un public averti. Aux aventuriers du code. A ceux qui aiment prendre des risques avec leurs sources en utilisant un IDE encore en bêta. En effet, la bêta 2 de Netbeans 7 vient de sortir. Et elle sait nous mettre l&#8217;eau à la bouche ! On ne sera pas surpris d&#8217;apprendre que le support des produits Oracle comme WebLogic ou la base de donnée a été amélioré, mais c&#8217;est surtout le support de Java 7 qui nous fait saliver: découvrez les possibilités de refactoring dans <a
title="les release notes" href="http://wiki.netbeans.org/NewAndNoteworthyNB70#JDK7_support">les release notes</a>.<br
/> Toujours concernant Netbeans, certains d&#8217;entre nous avaient été déçus de l&#8217;annonce de l&#8217;arrêt du développement du plugin Ruby. Rassurez-vous, la newsletter hebdomadaire de Netbeans annonce que <a
title="Tom Enebo et la communaut" href="http://blog.enebo.com/2011/02/ruby-on-netbeans-lives.html">Tom Enebo et la communauté</a> comptent continuer à le développer. C&#8217;est une bonne nouvelle pour les amateurs de multilinguisme.</p><p>Pour continuer sur Oracle, Gerbrand van Dieijen, notre collègue Xebian néerlandais, nous livre <a
title="quelques informations" href="http://www.gerbrand-ict.nl/2011/02/javafx-2-0-by-roger-brinkley/#">quelques informations</a> glanées lors d&#8217;un JUG. Les voici:</p><ul><li>comme prévu, le langage de script JavaFX est bien abandonné. Java FX 2 sera une librairie jar.</li><li>il sera possible de mixer Swing et JavaFX2&#8230;</li><li>&#8230; mais Swing est en mode maintenance. Comprendre &laquo;&nbsp;ne plus attendre d&#8217;innovations de ce coté&nbsp;&raquo;. Aie&#8230;</li></ul><p>Faut-il s&#8217;attendre à ce que Java FX2 soit en fait Swing 2 ? Nous verrons mais en attendant, <a
title="contrairement  dautres" href="http://www.adam-bien.com/roller/abien/entry/hello_javafx_2_a_tableview#">contrairement à d&#8217;autres</a>, nous avons du mal à nous enthousiasmer pour un simple composant TableView qui était absent de la librairie jusqu&#8217;ici (bien que gérer correctement une table soit beaucoup plus dur qu&#8217;il n&#8217;y parait !).</p><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="ContinuousDeliveryselonMartinF"></a>Continuous Delivery selon Martin Fowler et Jez Humble</h4><p>Martin Fowler et Jez Humble (product manager de <a
title="Go" href="http://www.thoughtworks-studios.com/go-agile-release-management/">Go</a> chez ThoughtWorks) ont présenté à QCon 2010 leur vision du <a
title="Continuous Delivery" href="http://www.infoq.com/interviews/jez-humble-martin-fowler-cd">Continuous Delivery</a>. Nous retiendrons :</p><h5>Qu&#8217;est ce que le &laquo;&nbsp;Continuous Delivery&nbsp;&raquo;</h5><p>L&#8217;objectif du &laquo;&nbsp;Continuous Delivery&nbsp;&raquo; est d&#8217;accélérer le rythme de <em>release</em> des logiciels. L&#8217;Agilité et le &laquo;&nbsp;Continuous Integration&nbsp;&raquo; ont traité les périmètres des équipes fonctionnelles et de développement ; &laquo;&nbsp;Continuous Delivery&nbsp;&raquo; prolonge cette dynamique aux équipes de production.</p><p>Les bénéfices majeurs sont :</p><ul><li>Valider plus rapidement le &laquo;&nbsp;business plan&nbsp;&raquo; en recueillant plus rapidement les retours d&#8217;expérience des utilisateurs,</li><li>Réduire les risques de mise en production (et donc des coûts) par rapport aux approches &laquo;&nbsp;Big Bang&nbsp;&raquo; grâce à des incréments plus petits, plus fréquents et automatisés.</li></ul><p>Pour atteindre cet objectif, &laquo;&nbsp;Continuous Delivery&nbsp;&raquo; propose d&#8217;automatiser les phases de &laquo;&nbsp;build-deploy-test-release&nbsp;&raquo; en un &laquo;&nbsp;Build Pipeline&nbsp;&raquo;. Cela comporte l&#8217;automatisation de tests intégrés (User Acceptance Tests, Performance Tests, etc), la gestion des configurations, des environnements et des données ainsi que l&#8217;automatisation des déploiements.</p><p>Plus de détails dans <a
title="InformIT  Continuous Delivery The Value Proposition" href="http://www.informit.com/articles/article.aspx?p=1641923">InformIT &#8211; Continuous Delivery: The Value Proposition</a>.</p><h5>&laquo;&nbsp;Continuous Delivery&nbsp;&raquo; versus &laquo;&nbsp;Continuous Deployment&nbsp;&raquo;</h5><p>&laquo;&nbsp;Continuous Delivery&nbsp;&raquo; et &laquo;&nbsp;Continuous Deployment&nbsp;&raquo; diffèrent par le fait que &laquo;&nbsp;Continous Delivery&nbsp;&raquo; laisse au <em>business</em> le choix du rythme des releases. Le logiciel doit toujours être <em>releasable</em> mais c&#8217;est le <em>business</em> qui choisit la date de la <em>release</em> (e.g. un éditeur limite le nombre de release à supporter, les équipes ne sont pas forcément disponibles pour supporter une mise en production, etc). A l&#8217;inverse, &laquo;&nbsp;Continuous Deployment&nbsp;&raquo; promeut la mise en production permanente ; chaque commit est l&#8217;occasion d&#8217;une <em>release</em>, il s&#8217;agit de &laquo;&nbsp;continuous release&nbsp;&raquo;.</p><p>Plus de détails dans <a
title="Jez Humble  Continuous Delivery vs Continuous Deployment" href="http://continuousdelivery.com/2010/08/continuous-delivery-vs-continuous-deployment/">Jez Humble &#8211; Continuous Delivery vs Continuous Deployment</a>.</p><h5>Les enjeux et pièges de l&#8217;adoption du &laquo;&nbsp;Continuous Delivery&nbsp;&raquo;</h5><p>Le principal enjeu du &laquo;&nbsp;Continuous Delivery&nbsp;&raquo; est culturel : il s&#8217;agit de faire travailler ensemble les équipes de développement, de validation (QA) et d&#8217;exploitation.</p><p>Le premier piège de l&#8217;adoption de &laquo;&nbsp;Continuous Deployment&nbsp;&raquo; est le même que pour l&#8217;adoption de l&#8217;Agilité : l&#8217;adoption en mode &laquo;&nbsp;Big Bang&nbsp;&raquo;. Il faut à la place procéder incrémentalement, automatiser les étapes une par une en identifiant à chaque fois l&#8217;action la plus bénéfique.</p><h5>&laquo;&nbsp;Continuous Delivery&nbsp;&raquo;, &laquo;&nbsp;Feature Branching&nbsp;&raquo; et &laquo;&nbsp;Feature Toggle Pattern&nbsp;&raquo;</h5><p>Martin Fowler et Jez Humble recommandent le développement sur le &#8216;trunk&#8217; plutôt qu&#8217;une approche de &laquo;&nbsp;feature branching&nbsp;&raquo; à cause des difficultés de merge.</p><p>Tant qu&#8217;une fonctionnalité n&#8217;est pas complètement &laquo;&nbsp;done&nbsp;&raquo; ou que le <em>business</em> n&#8217;a pas décidé de son activation définitive, on recourra à un pattern de &laquo;&nbsp;feature toggle&nbsp;&raquo; qui permet d&#8217;activer/désactiver par configuration la fonctionnalité. Cette approche permet notamment le <a
title="canary releasing" href="http://gotocon.com/dl/jaoo-aarhus-2010/slides/JezHumble_ContinuousDelivery.pdf">canary releasing</a> et le <a
title="AB testing" href="http://en.wikipedia.org/wiki/A/B_testing">A/B testing</a>.</p><p>Plus de détails sur <a
title="Martin Fowlers Bliki  Feature Toggle" href="http://martinfowler.com/bliki/FeatureToggle.html">Martin Fowler&#8217;s Bliki : Feature Toggle</a>.</p><h5>Les outils pour le &laquo;&nbsp;Continous Delivery&nbsp;&raquo;</h5><p>Il y a peu d&#8217;outils à part <a
title="Go" href="http://www.thoughtworks-studios.com/go-agile-release-management/">Go</a> de Toughtworks. Les serveurs d&#8217;intégration continue commencent à s&#8217;intéresser au sujet (cf <a
title="Atlassian Bamboo 3" href="http://www.theserverside.com/discussions/thread.tss?thread_id=61908">Atlassian Bamboo 3</a>). Les produits Open Source comme Maven ou Hudson n&#8217;ont pas de proposition pour le moment.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la  technique</h3><h4><a
name="jBPMestdesortie"></a>jBPM 5 est de sortie</h4><p>La version 5 de jBPM <a
title="est sortie" href="http://planet.jboss.org/post/jbpm_5_0_released">est sortie</a> il y a peu de temps. Pour mémoire, jBPM est une librairie open-source faite par JBoss pour faire du BPM (<a
title="Business Process Management" href="http://en.wikipedia.org/wiki/Business_process_management">Business Process Management</a>). On se rappellera que le projet a connu quelques heurts dont le départ de ses 2 principaux membres: Tom Baeyens et Joram Barrez avaient abandonné le navire pour aller faire Activiti sous la houlette de Alfresco. La 1ere version d&#8217;Activiti est d&#8217;ailleurs sortie récemment, avec le <a
title="numro de version 5" href="http://www.activiti.org/faq.html#WhyIsTheVersionCalled50">numéro de version 5</a>, sans doutes pour concurrencer jBPM 5 !</p><p>Tout comme Activiti, ce jBPM 5 voit la généralisation du langage BPMN 2 pour décrire les process. Et par conséquence l&#8217;abandon du langage propriétaire JPDL employé jusqu&#8217;alors en parallèle de BPMN 1.2.<br
/> JBPM 5 résulte d&#8217;un merge avec <a
title="Drools Flow" href="http://www.jboss.org/drools/drools-flow.html">Drools Flow</a> et sort accompagné entre autres de plugin Eclipse, d&#8217;une console web de management et d&#8217;un <em>Process Repository</em> <a
title="avec Guvnor" href="http://kverlaen.blogspot.com/2011/01/process-repository-using-guvnor.html">avec Guvnor</a>.</p><p>JBPM 3, lui, a joui et jouira pour encore quelques années d&#8217;un support complet de la part de jBoss. De plus, des outils sont prévus pour migrer les process vers jBPM 5. Ce sont les utilisateurs de jBPM 4 qui se retrouvent le bec dans l&#8217;eau: il semble que rien n&#8217;est prévu pour eux. Toutefois il est vrai que cette version n&#8217;a jamais été présentée comme étant officiellement supportée, mais plutôt <em>community</em>. Notons tout de même que, comme indiqué en fin de <a
title="cet article" href="http://kverlaen.blogspot.com/2011/01/migrating-to-jbpm5.html">cet article</a>, ce sont les process qui seront migrés, et non les données de ces process.</p><p>L&#8217;intégration avec Drools sera-t-elle un pari réussi pour JBoss ? En tout cas le projet semble n&#8217;avoir pas trop souffert du départ de ses leaders et le combat pour le titre de solution BPM Open Source ne fait que s&#8217;engager avec Activiti. Profitons en pour noter que les français de <a
title="Bonitasoft" href="http://www.bonitasoft.com/">Bonitasoft</a> proposent eux aussi une solution concurrente.</p><h4><a
name="GoogleWebToolkit"></a>Google Web Toolkit 2.2</h4><p>La <a
title="version 22" href="http://code.google.com/webtoolkit/doc/latest/ReleaseNotes.html">version 2.2</a> du framework GWT est sortie la semaine passée. Cette sortie, en plus d&#8217;un lot de correctifs, s&#8217;accompagne d&#8217;une mise à jour des outils de développement.</p><p>Le plugin GPE (Google Plugin for Eclipse) intègre donc en standard une <strong>version light</strong> de GWT Designer. <a
title="GWT Designer" href="http://code.google.com/webtoolkit/tools/download-gwtdesigner.html">GWT Designer</a> est un outil WYSIWYG pour la création d&#8217;interfaces GWT. La version allégée n&#8217;inclut pas le support des librairies GWT-Ext, GXT ou SmartGWT. Elle offre moins d&#8217;options de configuration, et n&#8217;inclut pas les assistants et vérificateurs de la version complète pour s&#8217;appuyer sur ceux de GPE. La version complète reste toujours disponible gratuitement.</p><p>Autre nouveauté, le framework inclut un support expérimentale pour les éléments HTML 5 Canvas, Video et Audio. Les API sont encore susceptibles d&#8217;évoluer, mais l&#8217;équipe de développement pense qu&#8217;elles sont suffisamment &laquo;&nbsp;stables&nbsp;&raquo; pour être publiées. Et une démo et son code source sont accessibles <a
title="ici" href="http://code.google.com/p/gwtcanvasdemo">ici</a>.</p><p>On notera également l&#8217;ajout des fonctionnalités de tri et de dimensionnement des colonnes sur le composant CellTable.</p><p>Enfin, cette version déprécie le support de Java 1.5. Noter que l&#8217;équipe s&#8217;engage à supporter Java 1.5 au moins jusqu&#8217;à la prochaine release. Toutefois, la migration vers une version plus récente du runtime est recommandé.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2011/02/22/revue-de-presse-xebia-199/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2010/12/21/revue-de-presse-xebia-190/</link> <comments>http://blog.xebia.fr/2010/12/21/revue-de-presse-xebia-190/#comments</comments> <pubDate>Tue, 21 Dec 2010 08:30:05 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Hibernate]]></category> <category><![CDATA[Hibernate Search]]></category> <category><![CDATA[InnoDB]]></category> <category><![CDATA[JPA]]></category> <category><![CDATA[Lucene]]></category> <category><![CDATA[MySQL]]></category> <category><![CDATA[Oracle]]></category> <category><![CDATA[Refcard]]></category> <category><![CDATA[Sonar]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=6295</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII MySQL 5.5 Sonar 2.4 Hibernate Search 3.3 Le coin de la technique Une Refcard sur JPA2 Actualité éditeurs / SSII MySQL 5.5 Après le rachat de MySQL en avril 2009 il y avait des craintes qu’Oracle continue à développer cette [...]]]></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" /></p><p><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/2010/12/21/revue-de-presse-xebia-190/#MySQL">MySQL 5.5</a></li><li><a
href="http://blog.xebia.fr/2010/12/21/revue-de-presse-xebia-190/#Sonar">Sonar 2.4</a></li><li><a
href="http://blog.xebia.fr/2010/12/21/revue-de-presse-xebia-190/#HibernateSearch">Hibernate Search 3.3</a></li></ul><p><strong>Le coin de la  technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/12/21/revue-de-presse-xebia-190/#UneRefcardsurJPA">Une Refcard sur JPA2</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité  éditeurs / SSII</h3><h4><a
name="MySQL"></a>MySQL 5.5</h4><p>Après le rachat de MySQL en avril 2009 il y avait des craintes qu’Oracle continue à développer cette application. Cette nouvelle <a
title="version 5.5" href="http://dev.mysql.com/downloads/mysql/5.5.html">version 5.5</a> devrait rassurer (un peu) les inquiets car elle vient avec un bon nombre d’améliorations (à lire par ailleurs <a
title="cette interview" href="http://www.infoworld.com/d/data-management/oracle-angles-mysql-web-apps-494">cette interview</a> de Monica Kumar, d’Oracle, sur la complémentarité des deux produits). Parmi les points intéressants à noter:</p><ul><li>InnoDB devient le choix par défaut pour le moteur de stockage à la place de MyISAM. Ce dernier n’était pas transactionnel, entre autres <a
title="dfauts" href="http://blogs.sitepoint.com/2010/11/19/mysql-mistakes-php-developers/">défauts</a>, et la plupart des utilisateurs changeaient leur configuration pour InnoDB.</li><li><a
title="meilleur gestion" href="http://dev.mysql.com/doc/refman/5.5/en/smp-improvements.html">meilleur gestion</a> dans l’utilisation des processeurs multi-coeurs dans le cas d’InnoDB</li><li>amélioration des mécanismes de réplication avec à présent un heartbeat entre le maître et les esclaves ainsi qu’un envoi d&#8217;une confirmation lorsque le premier esclave a fini sa réplication (<a
title="rplication semisynchrone" href="http://dev.mysql.com/doc/refman/5.5/en/replication-semisync.html">réplication semi-synchrone</a>).</li><li>un nouveau <em>statement</em> <code>LOAD XML</code> pour charger des données dans un fichier xml.</li><li>il est possible à présent de <em>plugger</em> son système d’authentification, par exemple le LDAP de son entreprise.</li></ul><p>Une liste plus complète des nouvelles fonctionnalités se trouve <a
title="ici" href="http://dev.mysql.com/doc/refman/5.5/en/mysql-nutshell.html">ici</a>. Oracle estime une amélioration de 360% des performances de MySQL comparée à l’ancienne version, à prendre bien sûr avec des pincettes en fonction des différents cas d’utilisation. Sur Windows les chiffres grimpent même jusqu’à 1500% (!) de gain, cette version proposant une meilleure intégration à ce système d’exploitation. Bref cette nouvelle version semble très recommandable.</p><h4><a
name="Sonar"></a>Sonar 2.4</h4><p>La sortie de Sonar 2.4 le <a
title="mois" href="http://www.sonarsource.org/sonar-2-4-in-screenshots/">mois</a> dernier nous avait échappé, profitons d’un rappel d’<a
title="InfoQ" href="http://www.sonarsource.org/sonar-2-4-in-screenshots/">InfoQ</a> cette semaine pour faire un tour des nouveautés:</p><ul><li>Régles d’architecture: une régle consiste à définir des exclusions de référence à un package. Par exemple on peut exclure les packages <code><strong>.web.</strong></code> (couche de présentation) dans les packages <code><strong>.dao.</strong></code> (couche basse  d’accès aux données). On peut aussi exclure des classes de java jugés obsolètes comme <code>Vector</code> ou <code>Hashtable</code>. Parler d’architecture à ce niveau semble un peu exagérer tant les règles sont relativement simple mais ça peut aider à améliorer du code <em>legacy</em>.</li><li>Personnalisation des <em>dashboards</em>: une vue synthétique peuvent être proposés à des chefs de projet ou des <em>managers</em> tandis qu’un développeur utilisera une vue détaillée qui contiendra plus de <em>widgets</em> par exemple. Sonar prévoit par ailleurs d’ajouter de nouvelles <em>widget</em>.</li><li>Un centre de mise à jour des <em>plugins</em>: une page permet à présent de lister les <em>plugins</em> installés, de les mettre à jours, d’en installer d’autres et de vérifier s’il existe une nouvelle version de Sonar.</li><li>Support pour Maven 3.0: cette mise à jour est appréciable. Il est à noter qu’il existe malgrès tout une incompatibilité avec <a
title="Clover" href="http://jira.codehaus.org/browse/SONAR-1985">Clover</a>.</li></ul><p>Dans ce même article, Olivier Gaudin, de l’équipe Sonar, nous informe des prochaines évolutions. Les règles d’architectures devraient se complexifier grâce à l’ajout d’un DSL permettant d’exprimer une règle comme “La couche A ne peut être utiliser que par la couche B et C”. Il identifie également 3 axes pour diminuer sa dette technique: meilleure visibilité de la dynamique d’un projet (ajout ou suppression de violations de certaines règles), une zone de partage d’information pour les revues de code et intégration d’une version légère dans Eclipse pour anticiper avant les <em>commits</em> les éventuelles violations.</p><h4><a
name="HibernateSearch"></a>Hibernate Search 3.3</h4><p>La nouvelle version d’Hibernate Search 3.3 est <a
title="disponible" href="http://in.relation.to/Bloggers/SantaBringsHibernateSearch33">disponible</a>. Elle contient en particulier un nouveau système de requêtes DSL qui permet de faciliter l’écriture des requêtes, Martin Fowler parlera plutôt de <a
title="Fluent Interface" href="http://martinfowler.com/bliki/FluentInterface.html">Fluent Interface</a>. Voici un exemple :</p><pre class="brush: java; title: ; notranslate">
Query luceneQuery = mythQB.keyword()
.onField(&quot;history&quot;)
.andField(&quot;name&quot;)
.boostedTo(5)
.andField(&quot;description&quot;)
.matching(&quot;storm&quot;)
.createQuery();
</pre><p>Ceci allège l’écriture et devrait donc faciliter l’élaboration de requêtes plus complexes.</p><p>Sous le capot, des modifications ont été apportées sur le mécanisme d’envoi de message pour mettre à jour les indexes, améliorant ainsi les performances. De plus ces indexes peuvent également être stockés sur une grille Infinispan (qui appartient à JBoss tout comme Hibernate Search). Pour ne rien gâcher, des nouveaux indicateurs sur les statistiques sont remontés via JMX pour mieux configurer l’outil.</p><p>Enfin Hibernate Search 3.3 est compatible avec Lucene 3.0. Bien que cette dernière version de Lucene contienne des problèmes de rétro-compatibilité, Hibernate Search les masquera. Par ailleurs il supporte le nouveau type <code>@NumericField</code> encore expérimental dans Lucene mais qui améliore beaucoup les performances.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la  technique</h3><h4><a
name="UneRefcardsurJPA"></a>Une Refcard sur JPA2</h4><p>Mike Keith, <a
title="un expert" href="http://jdc2010.egjug.org/node/2#Mike_Keith">un expert</a> en persistance Java nous avait offert la Refcard &laquo;&nbsp;<a
title="Getting started with JPA" href="http://refcardz.dzone.com/refcardz/getting-started-with-jpa">Getting started with JPA</a>&nbsp;&raquo; en septembre 2008. Il vient de récidiver pour notre plus grand plaisir avec &laquo;&nbsp;<a
title="Whats New in JPA 20" href="http://refcardz.dzone.com/refcardz/whats-new-jpa-20">What&#8217;s New in JPA 2.0</a>&nbsp;&raquo;<br
/> Une Refcard sur JPA est une très bonne idée, car qui n&#8217;a jamais pesté de ne pas savoir immédiatement quelles étaient les bonnes façons d&#8217;annoter ses entités. Entre les annotations <em>provider-specific</em> et &laquo;&nbsp;normalisées JPA&nbsp;&raquo;, il y a en effet souvent de quoi se perdre. En effet, on trouve parfois des pièges comme <code>@Mapkey</code> par exemple qui <a
title="se comporte diffremment" href="http://stackoverflow.com/questions/2327971/how-do-you-map-a-map-in-hibernate-using-annotations#2331068">se comporte différemment</a> selon le fournisseur.</p><p>La première Refcard était, tout comme JPA 1, assez basique et nous rappelait des notions comme les <em>entity managers</em> et les <em>transactions</em> (<em>container-managed</em> ou non) ainsi qu&#8217;une petite référence JPQL pour écrire ses requêtes&#8230;<br
/> Dans la nouvelle mouture, nous retrouvons les apports de JPA2 à la persistance comme par exemple:<br
/> - la suppression des orphelins avec l&#8217;attribut <code>orphanRemoval</code> de <code>@OneToMany</code><br
/> - les nouvelles fonctionnalités de JPQL (tiens, on peut utiliser un &#8216;CASE&#8217;, bon à savoir ! <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> )<br
/> - les requêtes typées pour ceux qui veulent éviter de caster les valeurs de retour</p><p>Et pour ceux désirant renforcer au maximum le typage de leur requêtes à la compilation, les requêtes Criteria <a
title="fortement types" href="http://www.ibm.com/developerworks/java/library/j-typesafejpa/">fortement typées</a> sont évoquées:</p><pre class="brush: java; title: ; notranslate">
CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery c = cb.createQuery(Account.class);
Root acct = c.from(Account.class);
c.select(acct).where(cb.equal(acct.get(Account_.name), “Jim Morrison”));
List result = em.createQuery(c).getResultList();
</pre><p>Certes, la façon de générer la classe du metamodèle canonique (le <code>Account_</code> avec l&#8217;underscore bizarre) n&#8217;est pas évoquée et il vous faudra trouver par vous même comment la générer <a
title="avec Hibernate" href="http://docs.jboss.org/hibernate/jpamodelgen/1.0/reference/en-US/html_single/">avec Hibernate</a> ou <a
title="avec EclipseLink" href="http://wiki.eclipse.org/UserGuide/JPA/Using_the_Canonical_Model_Generator_%28ELUG%29">avec EclipseLink</a>. Mais le principe d&#8217;une RefCard est justement de ne pas être exhaustif, mais de donner les clefs pour un survol rapide des possibilités. Se rafraîchir ainsi la mémoire fait généralement beaucoup de bien et cette nouvelle Refcard mérite donc de rejoindre sa grande sœur et de rester en permanence à porté de main.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/12/21/revue-de-presse-xebia-190/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2010/12/14/revue-de-presse-xebia-189/</link> <comments>http://blog.xebia.fr/2010/12/14/revue-de-presse-xebia-189/#comments</comments> <pubDate>Tue, 14 Dec 2010 06:13:51 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Apache]]></category> <category><![CDATA[git]]></category> <category><![CDATA[IntelliJ IDEA]]></category> <category><![CDATA[OpenJDK]]></category> <category><![CDATA[Oracle]]></category> <category><![CDATA[WebSocket]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=6142</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Java Community Process : la Fondation Apache tire sa révérence ! Sortie d&#8217;IntelliJ IDEA 10 Le coin de la technique WebSocket, un trou dans la raquette Evènements de notre communauté en France et à l&#8217;étranger #Gitfr vous dit tout sur [...]]]></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" /></p><p><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/2010/12/14/revue-de-presse-xebia-189/#JavaCommunityProcesslaFondatio">Java Community Process : la Fondation Apache tire sa révérence !</a></li><li><a
href="http://blog.xebia.fr/2010/12/14/revue-de-presse-xebia-189/#SortiedIntelliJIDEA">Sortie d&#8217;IntelliJ IDEA 10</a></li></ul><p><strong>Le coin de la  technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/12/14/revue-de-presse-xebia-189/#WebSocketuntroudanslaraquette">WebSocket, un trou dans la raquette</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/2010/12/14/revue-de-presse-xebia-189/#GitfrvousdittoutsurGit">#Gitfr vous dit tout sur Git</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité  éditeurs / SSII</h3><h4><a
name="JavaCommunityProcesslaFondatio"></a>Java Community Process : la Fondation Apache tire sa révérence !</h4><p>Après le départ de membres individuels du JCP comme Doug Lea et Tim Peierls (tous deux impliqués dans <code>util.concurrent</code>), c&#8217;est cette fois la Fondation Open Source qui quitte le navire.</p><p>Mort de Java ? Changer d&#8217;urgence de langage de programmation ? Ne nous emballons pas, Java est bien installé, il continue à évoluer (cf. les JSR Java SE 7 et Java SE 8 ) et Oracle a annoncé, au moins pour le moment, des contributions importantes à Open JDK, la JVM Open Source qu&#8217;il gouverne.</p><p>Nous constaterons quand même : &laquo;&nbsp;autres temps, autres moeurs&nbsp;&raquo;, on ne traite pas avec Oracle comme avec Sun Microsystem. Les acteurs de l&#8217;écosystème Java s&#8217;adaptent aux règles du jeux du nouveau maître des lieux :</p><ul><li>IBM abandonne son effort sur la très politique JVM Open Source Apache Harmony pour se rallier à la JVM Open Source &#8216;<em>officielle du parti&#8217;</em> Open JDK,</li><li>Google se fait trainer devant les tribunaux par Oracle,</li><li>Apple se désengage et rallie Open JDK avec un parfum de service minimum,</li><li>Les projets Open Source qu&#8217;Oracle a hérité de Sun traversent tempêtes et polémiques : <a
title="certains" href="http://pro.01net.com/editorial/511881/oracle-ferme-les-portes-de-la-forge-kenai/">certains</a> sont fermés sans préavis et <a
title="dautres" href="http://www.linux-magazine.com/Online/Blogs/Productivity-Sauce/LibreOffice-OpenOffice.org-Liberated">d&#8217;autres</a> <em>forkent</em></li><li>Les acteurs <em>non commerciaux</em> quittent le Java Community Process : après les individuels, c&#8217;est maintenant la Fondation Apache qui claque la porte.</li></ul><p>En somme, des inquiétudes pour l&#8217;avenir et déjà une certitude : sous le règne d&#8217;Oracle, Java s&#8217;éloigne de l&#8217;Open Source pour prendre des airs beaucoup plus orientés business.</p><h4><a
name="SortiedIntelliJIDEA"></a>Sortie d&#8217;IntelliJ IDEA 10</h4><p>JetBrains vient d&#8217;<a
title="annoncer" href="http://blogs.jetbrains.com/idea/2010/12/intellij-idea-10-released-new-decade-of-evolution-ahead">annoncer</a> la sortie de la version 10 d&#8217;IntelliJ IDEA.<br
/> Cette nouvelle mouture de l&#8217;IDE propose un certain nombre de nouveautés et d&#8217;optimisations dont :</p><ul><li>des changements significatifs au niveau de l&#8217;interface utilisateur, sensés améliorer l&#8217;expérience utilisateur,</li><li>une amélioration globale des performances et notamment du moteur d&#8217;indexation, permettant de réduire d&#8217;un facteur 2 le temps nécessaire à l&#8217;indexation de votre code source (utilisé par la suite pour tout ce qui est recherche, complétion de code etc …).</li><li>une complétion de code à la volée (_instant completion_),</li><li>l&#8217;amélioration du support de différents frameworks (Spring, GWT, Groovy/Grails, Flex/ActionScript),</li><li>l&#8217;intégration de Spring Roo, AspectJ et ColdFusion,</li><li>l&#8217;amélioration du support de Git et de Mercurial,</li><li>le support de maven 3,</li><li>l&#8217;ajout d&#8217;un éditeur de base de données.</li></ul><p>La liste des améliorations est plutôt longue et un bon nombre d&#8217;entre elles seront découvertes au cours de l&#8217;utilisation de cet IDE. Un petit tour sur le blog d&#8217;<a
title="IntelliJ IDEA" href="http://blogs.jetbrains.com/idea/">IntelliJ IDEA</a> vous permettra de prendre connaissance des différentes évolutions.</p><p>Dernier point intéressant pour les développeurs Android, le support de cette plateforme est maintenant disponible dans la version communautaire (et gratuite).</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la  technique</h3><h4><a
name="WebSocketuntroudanslaraquette"></a>WebSocket, un trou dans la raquette</h4><p>﻿</p><p>Suite à une étude d’<a
title="Adam Barth" href="http://www.ietf.org/mail-archive/web/hybi/current/msg04744.html">Adam Barth</a> sur la sécurité liée au protocole WebSocket, Mozilla <a
title="a décidé" href="http://hacks.mozilla.org/2010/12/websockets-disabled-in-firefox-4/">a décidé</a> de désactiver cette fonctionnalité dans Firefox 4 jusqu’à ce qu’une solution soit trouvée. Opera fera de même dans sa <a
title="future version" href="http://annevankesteren.nl/2010/12/websocket-protocol-vulnerability">future version</a> .</p><p>Pour rappel, WebSocket est un  nouveau protocole, standardisé par <a
title="IETF" href="http://en.wikipedia.org/wiki/Internet_Engineering_Task_Force">IETF</a> et inclus dans <a
title="HTML5" href="http://dev.w3.org/html5/websockets/">HTML5</a>. A l’aide d’une socket TCP, il est possible d’établir une transmission <em>full-duplex</em> entre le client (le navigateur) et le serveur.  Ceci permet d’éviter les techniques habituelles, comme par exemple le <a
title="long polling" href="http://en.wikipedia.org/wiki/Push_technology">long polling</a>, pour maintenir une connexion ouverte. De plus pour établir cette connexion, le protocole prévoit de passer par un <em>handshake</em> HTTP et donc d’utiliser les ports classiques 80 et 443, que les proxy autorisent en général.</p><p>Si la nouvelle a vite fait le tour de la blogosphère, cette nouvelle fonctionnalité étant très attendue, la faille trouvée a en réalité un périmètre restreint (comprendre <em>pas facile</em> à mettre en oeuvre par les pirates). La vulnérabilité cible certains <a
title="proxy transparents" href="http://en.wikipedia.org/wiki/Proxy_server#Intercepting_proxy_servers">proxy <em>transparents</em></a> qui contiennent des failles permettant de corrompre certaines données dans leur cache, en remplaçant des fichiers javascript populaire par exemple. Il ne s’agit pas d’un défaut des navigateurs en soi et touche plus généralement Java et Flash et demandera sûrement de faire évoluer le protocole.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements  de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="GitfrvousdittoutsurGit"></a>#Gitfr vous dit tout sur Git</h4><p>Tout a commencé par un banal mail sur la mailing liste du Paris JUG dans lequel il évoquait son souhait de créer des ateliers sur Git. Devant l&#8217;engouement général, ce n&#8217;est pas un mais 2 ateliers sur le gestionnaire de version <a
title="le plus populaire du moment" href="http://blog.xebia.fr/2010/06/08/revue-de-presse-xebia-162/#Gitpodcastcod">le plus populaire du moment</a> que Sébastien Douche a animé. Quitte à <a
title="dnigrer un peu trop" href="http://presentation-git.heroku.com/#37">dénigrer un peu trop</a> Subversion (qui nous a pourtant rendu de fiers services !) ces deux présentations, dont nous avons accueilli la première, se sont révélées enthousiasmantes. Plutôt que d&#8217;exposer directement la liste des commandes Git disponibles et comment les utiliser, Sébastien a préféré passer du temps sur le concept central de Git qui repose sur l&#8217;utilisation des <em>hash</em> SHA1 (à prononcer &laquo;&nbsp;Chawanne&nbsp;&raquo;). Car dans Git, tout est identifié par son SHA1: les fichiers, les répertoires, les tags&#8230; C&#8217;est un fondamental de Git.</p><p><a
title="Comme il dit" href="http://presentation-git.heroku.com/#101">Comme il dit</a>, &laquo;&nbsp;plus vous comprenez le backend, mieux vous maîtrisez le frontend&nbsp;&raquo;, d&#8217;où l&#8217;importance de comprendre les principes de base de l&#8217;implémentation avant de passer à l&#8217;utilisation proprement dite. Cette utilisation devrait d&#8217;ailleurs être à l&#8217;honneur lors d&#8217;une seconde session/atelier. Et pour ceux qui ne pourront y assister, vous pouvez toujours suivre les publications régulières sur <a
title="le blog GitFr" href="http://blog.gitfr.net/archive">le blog GitFr</a>. Après être parti simplement en décrivant l&#8217;installation sur les 3 OS principaux, <a
title="une série" href="http://blog.gitfr.net/post/2178910186/la-commande-init">une série</a> sur les différentes commandes a été initiée. Un travail à suivre donc. Mais en attendant, ce soir, c&#8217;est <a
title="soire Java avanc" href="http://www.parisjug.org/xwiki/bin/view/Meeting/20101214">soirée &laquo;&nbsp;Java avancé&nbsp;&raquo;</a> au Paris JUG !</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/12/14/revue-de-presse-xebia-189/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2010/11/09/revue-de-presse-xebia-184/</link> <comments>http://blog.xebia.fr/2010/11/09/revue-de-presse-xebia-184/#comments</comments> <pubDate>Tue, 09 Nov 2010 06:20:42 +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[Google]]></category> <category><![CDATA[JVM Premium]]></category> <category><![CDATA[mod_pagespeed]]></category> <category><![CDATA[Oracle]]></category> <category><![CDATA[StreamBase]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=5858</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Google accélère le web avec le mod_pagespeed Oracle proposera une JVM Premium SOA Le CEP, un domaine en expansion Actualité éditeurs / SSII Google accélère le web avec le mod_pagespeed Google a annoncé la première version de ce nouveau module [...]]]></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" /></p><p><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/2010/11/09/revue-de-presse-xebia-184/#Googleacclrelewebaveclemodpage">Google accélère le web avec le mod_pagespeed</a></li><li><a
href="http://blog.xebia.fr/2010/11/09/revue-de-presse-xebia-184/#OracleproposerauneJVMPremium">Oracle proposera une JVM Premium</a></li></ul><p><strong>SOA</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/11/09/revue-de-presse-xebia-184/#LeCEPundomaineenexpansion">Le CEP, un domaine en expansion</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité  éditeurs / SSII</h3><h4><a
name="Googleacclrelewebaveclemodpage"></a>Google accélère le web avec le mod_pagespeed</h4><p>Google a <a
title="annoncé" href="http://googlecode.blogspot.com/2010/11/make-your-websites-run-faster.html">annoncé</a> la première version de ce nouveau module Apache. Il s&#8217;agit d&#8217;accélérer le chargement des pages HTML sans avoir à modifier son application. Le module applique un certain nombre d&#8217;optimisations, relevées par <a
title="InfoQ" href="http://www.infoq.com/news/2010/11/mod-pagespeed">InfoQ</a>:</p><ul><li>Changement des directives de cache par extension de fichier notamment.</li><li>Optimisation du HTML, des CSS et du JavaScript à la volée (suppression des commentaires, passage en ligne, suppression d&#8217;espaces).</li><li>Concaténation des fichiers CSS pour limiter le nombre de requête HTTP nécessaire à la page.</li><li>Suppression des caractères et des attributs HTML inutiles.</li><li>Optimisation des fichiers images par compression et effet d&#8217;échelle.</li><li>Intégration en ligne des images en base 64.</li></ul><p>Toutes ces optimisations sont bien sûr configurables et c&#8217;est à nous de choisir de les appliquer ou non via les différents filtres du module. Nous voyons ce nouveau module avec un oeil bienveillant, l&#8217;idée est séduisante et les bénéfices pourraient s&#8217;avérer convaincants. Reste encore à savoir comment se comporte le module en production, et quel est son impact sur les ressources du système ?</p><p>Il faudra donc le tester en conditions réelles pour pouvoir se prononcer sur ce nouveau venu. Voici le <a
title="site officiel" href="http://code.google.com/intl/fr-FR/speed/page-speed/docs/module.html">site officiel</a> et la <a
title="documentation" href="http://code.google.com/intl/fr-FR/speed/page-speed/docs/filters.html">documentation</a>. A noter également sur le blog de <a
title="dynaTrace" href="http://blog.dynatrace.com/2010/11/05/how-we-improved-our-web-site-performance-rank-from-d-to-a/">dynaTrace</a>, un article intéressant sur des bonnes pratiques pour rendre son site plus performant.</p><h4><a
name="OracleproposerauneJVMPremium"></a>Oracle proposera une JVM Premium</h4><p>La semaine dernière au <a
title="QCon" href="http://qconsf.com/">QCon</a>, le monde Java a lancé la machine à rumeur. La faute à <a
title="Adam Messinger" href="http://qconsf.com/sf2010/speaker/Adam+Messinger">Adam Messinger</a>, vice président du développement pour l&#8217;entité <em>Fusion Middleware</em> d&#8217;Oracle, qui a <a
title="annonc" href="http://www.theregister.co.uk/2010/11/06/oracle_dueling_jvms/">annoncé</a> qu&#8217;il y aurait une version Premium (comprendre payante) de la JDK en plus de la version gratuite.</p><p>En réalité les plus avertis avaient déjà noté cette information au dernier <a
title="JavaOne" href="http://www.oracle.com/us/corporate/press/173782">JavaOne</a>:</p><p><em>Premium offerings such as JRockit Mission Control, JRockit Real Time, Java for Business and Enterprise Support will continue to be made available for an additional charge.</em></p><p>En clair, Oracle a l&#8217;intention de vendre une version payante de la JDK qui comprendra, entre autres, les outils JRockit <a
title="Mission Control" href="http://download.oracle.com/docs/cd/E13150_01/jrockit_jvm/jrockit/tools/index.html">Mission Control</a> (outil de monitoring), <a
title="Real Time" href="http://www.oracle.com/technetwork/middleware/jrockit/overview/index-086343.html">Real Time</a> (outil de temps réel) et un <a
title="support" href="http://www.oracle.com/us/solutions/ent-performance-bi/enterprise-edition-066546.html">support</a> donnant accès par exemple à des corrections sans attendre les versions officielles. L&#8217;offre reste encore à définir, entre autre le prix, et des inconnus demeurent sur les différences entre les JDKs.</p><p>Par ailleurs Adam Messinger se veut plutôt rassurant sur le maintien d&#8217;une version gratuite. L&#8217;objectif d&#8217;Oracle reste de fusionner Hotspot et JRockit vers OpenJDK.</p><p>Néanmoins Stephen Colebourne (membre la fondation Apache et Java Champion) <a
title="souligne" href="http://www.jroller.com/scolebourne/entry/premium_jvm_open_jvm_proposal">souligne</a> les risques entourant cette annonce:</p><ul><li><em>Est-ce que la version gratuite et la version premium sortiront en même temps ?</em></li><li><em>Est-ce que la version gratuite sera supporté sur la même quantité d&#8217;OS ?</em></li><li><em>Quels sont précisément les fonctionnalités de la version premium ?</em></li><li><em>Est-ce qu&#8217;il s&#8217;agira seulement de fonctionnalités pour le management ?</em></li><li><em>Ou s&#8217;agira aussi de fonctionnalités sur les performances ?</em></li><li><em>Quel est le marché ciblé ?</em></li></ul><p>Il remarque également que ces craintes seraient levées si la <a
title="JSR 924" href="http://jcp.org/en/jsr/detail?id=924">JSR 924</a>, qui spécifie la JVM, pouvait être implémentée librement, en s&#8217;abstrayant entre autre des champs d&#8217;utilisation (une vieille <a
title="querelle" href="http://www.apache.org/jcp/sunopenletterfaq.html">querelle</a> entre Apache et Sun). Ceci permettrait d&#8217;avoir un standard et aux implémentations telle qu&#8217;Harmony d&#8217;être certifiées.</p><p>Depuis la prise en main de Java par Oracle, la communauté, qui est historiquement tournée vers l&#8217;Open Source, a quelques sueurs froides et l&#8217;<a
title="annonce" href="http://www.theregister.co.uk/2010/11/03/oracle_mysql_price_hike/">annonce</a> récente de monter les prix du support de MySQL n&#8217;arrangera rien.</p><h3><a
name="SOA"></a>SOA</h3><h4><a
name="LeCEPundomaineenexpansion"></a>Le CEP, un domaine en expansion</h4><p>Le domaine du CEP, pour <a
title="Complex Event Processing" href="http://en.wikipedia.org/wiki/Complex_event_processing">Complex Event Processing</a> ou Traitement d&#8217;évènements complexes, est un domaine dont on entend peu parler mais dont l&#8217;utilité, une fois que l&#8217;on se penche dessus, semble évidente. Rappelons que le CEP est un concept dans lequel des suites d&#8217;évènements sont analysées, de façon automatisée, pour en dégager des informations qui ne seraient pas déductibles à partir de chaque événement pris séparément. La corrélation d&#8217;une suite d&#8217;évènements &laquo;&nbsp;simples&nbsp;&raquo; permet donc de déduire d&#8217;autres informations, plus complexes. Pour être concret, le CEP peut servir à détecter des fraudes bancaires par des suites d&#8217;évènements louches survenant sur un compte, ou alors pour détecter des problèmes dans un système suite à la réception, à une fréquence plus élevée que la moyenne, d&#8217;un certain type d&#8217;évènement.</p><p>Toujours est-il que <a
title="de nombreuses solutions" href="http://tibcoblogs.com/cep/2009/07/31/the-cep-market-2009-a-brief-history-lesson/">de nombreuses solutions</a> existent, Open Source ou non, pour satisfaire les divers besoins d&#8217;analyse. Dans <a
title="un récent article" href="http://streambase.typepad.com/streambase_stream_process/">un récent article</a>, Marc Palmer de <a
title="Streambase " href="http://www.streambase.com">Streambase </a> qui édite ses propres solutions CEP, revient sur la publication de chiffres semblant indiquer que les CEP ne représentent qu&#8217;un petit marché. Et pour contrer ces chiffres, il cite nombre de sociétés utilisatrices de la solution de Streambase. Même si c&#8217;est surtout un coup de pub pour sa compagnie, nous pouvons malgré tout réaliser à quel point les CEP sont importants dans le domaine du <a
title="Capital Market" href="http://en.wikipedia.org/wiki/Capital_market">Capital Market</a>.</p><p>Pour aller plus loin et découvrir différentes solutions, citons <a
title="cet article" href="http://debupanda.blogspot.com/2010/11/introducing-event-server-platform.html">cet article</a> de Debu Panda (de <a
title="EJB3 in Action" href="http://manning.com/panda/">EJB3 in Action</a>) vu <a
title="sur ServerSide" href="http://www.theserverside.com/news/thread.tss?thread_id=61236">sur ServerSide</a> et dans lequel il évoque la solution de Starview. Mais si vous voulez vraiment être pris par la main pour avoir une première approche du CEP, Michal Bali, auteur de <a
title="Drools JBoss Rules 5.0" href="https://www.packtpub.com/drools-jboss-rules-5-0-developers-guide/">Drools JBoss Rules 5.0</a>, nous livre <a
href="https://www.packtpub.com/article/drools-jboss-rules-50complex-event-processing">un tutorial complet</a> implémentant la détection de fraude dans un système bancaire en utilisant <a
title="Drools Fusion" href="http://www.jboss.org/drools/drools-fusion.html">Drools Fusion</a>, solution de JBoss. Ce dernier article est très complet et permettra au lecteur d&#8217;avoir une bonne première approche des possibilités de l&#8217;outil.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/11/09/revue-de-presse-xebia-184/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2010/10/19/revue-de-presse-xebia-181/</link> <comments>http://blog.xebia.fr/2010/10/19/revue-de-presse-xebia-181/#comments</comments> <pubDate>Tue, 19 Oct 2010 05:54:41 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Foursquare]]></category> <category><![CDATA[HTML5]]></category> <category><![CDATA[JUG]]></category> <category><![CDATA[Membase]]></category> <category><![CDATA[memcached]]></category> <category><![CDATA[MongoDB]]></category> <category><![CDATA[Oracle]]></category> <category><![CDATA[Tapestry]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=5659</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Le coin de la technique Sortie de Tapestry 5.2 MongoDB et Foursquare Selon un expert du W3C, HTML5 n&#8217;est pas prêt pour la production. Actualité Northscale / Membase / Memcached Evènements de notre communauté en France et à l&#8217;étranger Les JUGs leaders s&#8217;occupent de [...]]]></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" /></p><p><em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>Le coin de la  technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/10/19/revue-de-presse-xebia-181/#SortiedeTapestryetunnouveauliv">Sortie de Tapestry 5.2</a></li><li><a
href="http://blog.xebia.fr/2010/10/19/revue-de-presse-xebia-181/#MongoDBetFoursquare">MongoDB et Foursquare</a></li><li><a
href="http://blog.xebia.fr/2010/10/19/revue-de-presse-xebia-181/#SelonunexpertduWCHTMLnestpaspr">Selon un expert du W3C, HTML5 n&#8217;est pas prêt pour la production.</a></li><li><a
href="http://blog.xebia.fr/2010/10/19/revue-de-presse-xebia-181/#ActualitNorthscaleMembaseMemca">Actualité Northscale / Membase / Memcached</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/2010/10/19/revue-de-presse-xebia-181/#LesJUGsleaderssoccupentdenous">Les <em>JUGs leaders</em> s&#8217;occupent de nous</a></li></ul><h3><a
name="Lecoindelatechnique"></a>Le coin de la  technique</h3><h4><a
name="SortiedeTapestryetunnouveauliv"></a>Sortie de Tapestry 5.2</h4><p>Tapestry est passé à la <a
title="version 52" href="http://tapestry.apache.org/tapestry5.2-dev/">version 5.2</a>. Depuis la semaine dernière, vous pouvez utiliser la version beta 5.2.1 dont la release sera bientôt disponible. Cette fois, l&#8217;équipe n&#8217;a pas respecté le planning d&#8217;une version tous les 4-6 mois, mais a préféré attendre 14 mois pour que cette version majeure voit enfin le jour. Cette version 5.2 apporte des fonctionnalités et innovations significatives pour les performances et la productivité de développement. Elle a également été marqué par des évènements d&#8217;importance pour le projet et la communauté.</p><p>Tout d&#8217;abord, son créateur Howard Lewis Ship (nommé <a
title="java champion" href="https://java-champions.dev.java.net/content/corechampions.html#Ship">java champion</a> cette année) a repris le statut de consultant indépendant. Ainsi, il a eu la liberté d&#8217;intégrer au fil de l&#8217;eau la version 5.2 au sein de deux grosses applications, ce qui a mis l&#8217;équipe sur la piste de nouveaux besoins et correctifs. D&#8217;autre part, au cours de l&#8217;année, de nouveaux <em>committers</em> (dont deux français) ont intégré le projet, de nouveaux membres PMC (<em>Project Management Committee</em>) ont été nommés, et de nombreuses contributions ont été apportées.</p><p>Tout en respectant la compatibilité ascendante, voici les fonctionnalités les plus importantes qui ont été ajoutées :</p><ul><li><strong>L&#8217;amélioration du rechargement à chaud</strong>: Grâce au rechargement à chaud des pages et des composants, la productivité du développeur est l&#8217;un des principaux atouts de Tapestry. Avec la version 5.2, les services d&#8217;IoC sont aussi <a
title="rechargs  chaud" href="http://tapestryjava.blogspot.com/2010/03/live-service-reloading-in-tapestry-52.html">rechargés à chaud</a>, ce qui permet par exemple au développeur de déboguer en live ses requêtes SQL.</li></ul><ul><li><strong>JSR-303 Bean Validation</strong>: L&#8217;intégration avec l&#8217;API Bean Validation a été réalisée. Celle-ci permet maintenant d&#8217;utiliser les annotations <a
title="JSR303" href="http://jcp.org/en/jsr/summary?id=303">JSR-303</a> directement dans les pages, les composants et les entités.</li></ul><ul><li><strong>Composants, Mixins, Évènements, Meta-Programming</strong>: De nouvelles annotations ont été développées pour les utiliser dans l&#8217;IoC et faciliter d&#8217;avantage l&#8217;accès aux <a
title="paramtres" href="http://blog.tapestry5.de/index.php/2010/08/23/context-values-vs-request-parameters/">paramètres</a> de la request et de la session http. Maintenant, il est encore plus facile d&#8217;étendre les fonctionnalités des composants et services via des annotations.<br
/> De nouveaux composants et mixins qui améliorent l&#8217;intégration avec javascript, la gestion d&#8217;erreurs, et la gestion des évènements ont été ajoutés au socle. De plus, de nouveaux événements pour le rendu des liens et des pages sont désormais déclenchés pour offrir encore plus de souplesse au développeur.</li></ul><ul><li><strong>Standard SAX</strong>: Tapestry n&#8217;utilise plus le parseur <a
title="StAX" href="XMLhttp://stax.codehaus.org/Home">StAX</a>, il a été remplacé par le standard SAX. Ceci élimine tous les problèmes d&#8217;incompatibilité avec Google App Engine et les environnements OSGi que l&#8217;on pouvait rencontrer avec les versions précédentes.</li></ul><ul><li><strong>Nouvelle API de réécriture URL</strong>: Jusqu&#8217;à la version 5.1.0.1, Tapestry offrait un support de premier niveau pour la réécriture des URL fondé sur le service <em>URLRewriter</em>. Ce service a été déprécié pour <a
title="LinkTransformer" href="http://blog.tapestry5.de/index.php/2010/09/06/new-url-rewriting-api/">LinkTransformer</a> qui permet d&#8217;adapter facilement les URLs existantes et à venir.</li></ul><ul><li><strong>Les pages deviennent des singletons</strong>: Le pool de pages est maintenant déprécié sans aucun impact sur le code des applications. Désormais, <a
title="les pages sont des singletons" href="http://tapestryjava.blogspot.com/2010/07/everyone-out-of-pool-tapestry-goes.html">les pages sont des singletons</a> partagés entre threads, et les valeurs mutables sont stockées dans une Map clé-valeur qui appartient à chaque thread. Ce changement de stratégie implique encore moins d&#8217;utilisation mémoire, on peut donc espérer une amélioration des performances pour certaines applications.<br
/> En cas de besoin, le pool de pages peut être réactivé et <a
title="monitoré" href="http://blog.tapestry5.de/index.php/2010/05/28/remote-page-pool-management/">monitoré</a> grâce au support <a
title="JMX" href="http://fr.wikipedia.org/wiki/JMX">JMX</a> (<em>Java Management Extensions</em>).</li></ul><ul><li><strong>Documentation</strong>: La documentation est devenue un point prioritaire. Ainsi, pour vous mettre l&#8217;eau à la bouche, voici <a
title="laperu de la prochaine documentation" href="http://people.apache.org/~uli/tapestry-site/">l&#8217;aperçu de la prochaine documentation</a> du projet.</li></ul><p>Pour finir, <strong>un nouveau livre Tapestry 5</strong> est en cours d&#8217;écriture. Igor Drobiazko, nommé PMC du projet en début d&#8217;année 2010, auteur du livre en allemand <a
title="Tapestry 5: Die Entwicklung von Webanwendungen mit Leichtigkeit!" href="http://www.amazon.de/gp/product/3827328446/ref=s9_simz_gw_s1_p14_i1?pf_rd_m=A3JWKAKR8XB7XF&amp;pf_rd_s=center-2&amp;pf_rd_r=0J9VSTG3VRQ6DZ7T00GG&amp;pf_rd_t=101&amp;pf_rd_p=463375173&amp;pf_rd_i=301128">Tapestry 5: Die Entwicklung von Webanwendungen mit Leichtigkeit!</a> et évangéliste Tapestry (<a
title="Jazoon 2010" href="http://jazoon.com/Conference/Thursday/Drobiazko">Jazoon 2010</a>, plusieurs conférences en Allemagne en 2009 et 2010), travaille sur la rédaction d&#8217;un nouveau livre (en anglais) qui sera publié début 2011.</p><h4><a
name="MongoDBetFoursquare"></a>MongoDB et Foursquare</h4><p>InfoQ revient sur <a
title="les raisons de la panne" href="http://www.infoq.com/news/2010/10/4square_mongodb_outage">les raisons de la panne</a> récente de plus de onze heures du site <a
title="Foursquare" href="http://foursquare.com/">Foursquare</a> le 4 octobre. Le site, réseau social qui a grossi très rapidement (jusqu&#8217;à trois millions d&#8217;utilisateurs en août 2010), utilise la base de données NoSQL <a
title="MongoDB" href="http://www.mongodb.org/">MongoDB</a>.<br
/> L&#8217;indisponibilité a été la conséquence directe d&#8217;une forte montée en charge dans la base de données MongoDB que leur système de monitoring n&#8217;a pas été capable de détecter.</p><ul><li><strong>L&#8217;architecture de base</strong>: Le système affecté, pour des raisons techniques particulières, se compose d&#8217;un espace de travail en mémoire de la même taille que celle de la base de données. Donc, si la taille de la base de données dépasse la quantité de RAM disponible, le système tombe.<br
/> Leur première instance, un <a
title="EC2" href="http://aws.amazon.com/ec2/">EC2</a> (_Amazon Elastic Compute Cloud_) de 66GB RAM dont la capacité a été dépassée, a été migrée sur deux nœuds de 66 GB RAM et une réplication de données dans un noeud esclave. Au moment de la migration, chaque nœud stockait 33GB de données, avec une configuration qui assurait que toutes les données d&#8217;un utilisateur se trouvaient toujours sur le même nœud.</li></ul><ul><li><strong>MongoDB en panne</strong>: Les instances ont continué de croître, de façon déséquilibrée, ce qui s&#8217;explique par l&#8217;activité plus intense d&#8217;un certain nombre d&#8217;utilisateurs. Lorsqu&#8217;un fragment de données dépasse les 200 MB, MongoDB le découpe en deux de 100 MB. Au bout d&#8217;un certain temps une partition avait 50 GB et l&#8217;autre dépassait les 66 GB, donc la quantité de RAM disponible, et le système est tombé.<br
/> Lors d&#8217;une intervention d&#8217;urgence, l&#8217;équipe a ajouté un troisième nœud à la base, pour y transférer 5% des données du nœud en surcharge, afin de garantir la RAM requise dans l&#8217;ensemble du système.<br
/> Or le problème de performance n&#8217;a pas disparu. L&#8217;équipe a finalement constaté que la cause réelle de la panne était la fragmentation des données sur disque dans le nœud 0. Effectivement 5% de données ont été transférés, mais la taille des données (les <em>checkins</em> de Foursquare) sont d&#8217;environ 300 octets alors que la pagination se fait sur des zones de 4ko. Le déplacement des données n&#8217;a donc quasiment pas eu d&#8217;effet sur la fragmentation et le problème a persisté.<br
/> Finalement, l&#8217;équipe de FourSquare a dû compresser la base de données complète, opération qui ne peut être fait qu&#8217;en mode <em>offline</em>. Ceci a duré quatre heures de plus, soit onze heures au total, et aucune donnée n&#8217;a été perdue.</li></ul><ul><li><strong>La suite</strong>: Après l&#8217;incident, l&#8217;équipe a ajouté des nœuds dynamiquement pour y distribuer uniformément les données. A présent, le système utilise 20GB pour chaque partition. Foursquare reste fidèle à la solution MongoDB.</li></ul><ul><li><strong>Conclusions</strong>: Si on arrive à capacité maximale, il est très compliqué de s&#8217;en sortir sans arrêter le système quand les objets sont de petite taille. Or, si le problème est anticipé, en ajoutant des nœuds dynamiquement, le système pourra <em>scaler</em> sans tomber. Il apparaît maintenant évident que pour bien anticiper, il faut impérativement mettre en place le système de monitoring approprié, ce qui n&#8217;était pas le cas.</li></ul><h4><a
name="SelonunexpertduWCHTMLnestpaspr"></a>Selon un expert du W3C, HTML5 n&#8217;est pas prêt pour la production.</h4><p>Philippe Le Hégaret, expert au W3C, confie, via deux interviews, sur <a
title="InfoQ" href="http://www.infoworld.com/d/developer-world/w3c-hold-html5-in-websites-041">InfoQ</a> et <a
title="InfoWorld" href="http://www.infoworld.com/d/developer-world/w3c-hold-html5-in-websites-041">InfoWorld</a>, sa vision de HTML5 à l&#8217;heure actuelle : c&#8217;est une technologie utilisée par des <em>early adopters</em>, qui doivent s&#8217;en servir pour fournir du feedback, et qui ne sera pas prête pour la production avant fin 2011 début 2012.<br
/> Philippe Le Hégaret base son analyse sur le manque d&#8217;interopérabilité de HTML5 sur les différents navigateurs. Alors que seulement 90 tests de compatibilité sont d&#8217;ores et déjà disponibles (et plus de 900 en attente de validation), on constate déjà des différences de fonctionnement selon la plateforme d&#8217;exécution. Il est, selon lui, impensable de passer en production une technologie si peu standardisée. Le chantier de standardisation devrait grandement avancer en mai 2011, qui est la date butoir pour le <em>Last Call document du W3C</em>.<br
/> Les adeptes des (fantastiques) démonstrations 2D, 3D et videos en HTML5 verront dans cette annonce la volonté forcenée du W3C de tout standardiser avant de passer en production. D&#8217;autres (peut-être les &laquo;&nbsp;anciens&nbsp;&raquo;), qui ont vécu la grande guerre Netscape &#8211; Internet Explorer des années 90, y verront une forme de sagesse.</p><h4><a
name="ActualitNorthscaleMembaseMemca"></a>Actualité Northscale / Membase / Memcached</h4><p>Vous connaissez peut-être déjà Memcached le serveur de cache développé par la société Northscale. Après l&#8217;annonce en juin d&#8217;une nouvelle offre NoSQL nommée Membase, l&#8217;éditeur avait rendu <a
title="disponibles les sources" href="http://membase.org">disponibles les sources</a> via un projet open source. La solution Membase a été développée comme une extension au serveur Memcached. Membase est donc compatible avec les clients Memcached tout en ajoutant à la solution:</p><ul><li>La persistance des données</li><li>La distribution et la réplication des données sur les nœuds du cluster Membase</li><li>L&#8217;ajout et la suppression de nœuds à chaud</li><li>Une interface d&#8217;administration et de supervision du cluster</li></ul><p>A l&#8217;occasion de la sortie officielle de la version finale 1.6.0, l&#8217;éditeur a même changé de nom. Le nouveau nom Membase Inc, reflète clairement la volonté et la nouvelle orientation de la société.<br
/> Une nouvelle n&#8217;arrivant jamais seule, la conférence <a
title="Hadoop World" href="http://www.cloudera.com/company/press-center/hadoop-world-nyc/">Hadoop World</a> fût l&#8217;occasion pour <a
title="Cloudera" href="http://www.cloudera.com/">Cloudera</a> d&#8217;annoncer l&#8217;intégration de la solution Membase à son offre Cloudera&#8217;s Distribution for Hadoop. L&#8217;intégration est possible de deux façon différentes:</p><ul><li>Un module Membase permet d&#8217;envoyer le flux de données en temps réel sur CDH.</li><li>Un utilitaire de chargement par batch permet de transférer les données dans un sens ou dans l&#8217;autre.</li></ul><p>Pour plus d&#8217;information sur le sujet:</p><ul><li><a
title="InfoQ Membase and Cloudera Announce Integration" href="http://www.infoq.com/news/2010/10/membase-cdh-integration">InfoQ: Membase and Cloudera Announce Integration</a></li><li><a
title="InfoQ Membase Server publicly available from Membase Inc " href="http://http://www.infoq.com/news/2010/10/membase">InfoQ: Membase Server publicly available from Membase Inc. </a></li></ul><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements  de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="LesJUGsleaderssoccupentdenous"></a>Les <em>JUGs leaders</em> s&#8217;occupent de nous</h4><p>Antonio Goncalves vient de nous gratifier d&#8217;<a
title="un long article" href="http://www.parisjug.org/xwiki/bin/view/Blog/To%20be%20or%20not%20to%20be%20%28part%20of%20IOUC%29,%20that%20is%20the%20question">un long article</a> sur le blog du Paris JUG. Dans une première partie, il revient sur l&#8217;inquiétude naturelle de la communauté à la suite <a
title="du rachat de Sun par Oracle" href="http://blog.xebia.fr/2009/04/20/oracle-rachete-sun/">du rachat de Sun par Oracle</a>. D&#8217;autant qu&#8217;à l&#8217;époque de Sun, les JUGs étaient assez libres, alors qu&#8217;Oracle semble plus encadrer les choses. Il joint ensuite une copie du mail (co-écrit avec 4 autres <em>JUG leaders</em>) qu&#8217;il a envoyé à la communauté mondiale des <em>JUG leaders</em>. Ceci fait suite à la participation des 5 auteurs au Meeting Oracle EMEA (Europe, Middle East and Africa).<br
/> Avant tout, ils notent que Sun n&#8217;organisait pas de telles rencontres. Bon point pour Oracle ! Ensuite, même si l&#8217;on sent que les <em>JUG leaders</em> ont pu être un peu déboussolés dans une telle manifestation, qui comportaient aussi des <em>Oracle User Groups Leaders</em> et un <em>MySQL UG Leader</em>, ils ont vite repris du poil de la bête en sachant structurer et formaliser leurs pensées, craintes et questions. Avec par exemple une volonté affirmée de créer des synergies entre les JUGs. On devine aussi une certaine envie de marquer l&#8217;appartenance à la communauté Oracle (OUGs) tout en préservant leurs origines (JUGs). Enfin, et ce n&#8217;est pas le moins important, nos leaders veulent se structurer pour être visibles d&#8217;Oracle. La notion de poupée russe est même utilisée pour illustrer la hiérarchie des User Groups, devant assurer le maintien de la cohésion entre Oracle et sa communauté Java.<br
/> Au final, même si tout n&#8217;est pas encore défini et clair (notamment sur les prérequis pour participer à l&#8217; <em>International Oracle User Group Community</em> ,<a
href="http://www.iouc.org">IOUC</a>, qui nécessiterait d&#8217;être client ou partenaire d&#8217;Oracle, un comble pour les Javaistes), les JUGs leader semblent confiants. Mais ne se gênent pas pour avertir Oracle que pour eux, c&#8217;est toute la communauté Java qui doit être prise en compte, avec ses sous-communauté diverses comme Android, Spring, Groovy/Grails, Scala&#8230; Quel que soit nos centres d&#8217;intérêt en Java, on peut donc être rassurés : nos 5 mousquetaires-JUGs-leaders ont pris soin de nous et ont prévenu Oracle : Java, c&#8217;est une communauté pour toutes et toutes pour une, pas autrement !</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/10/19/revue-de-presse-xebia-181/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2010/10/12/revue-de-presse-xebia-180/</link> <comments>http://blog.xebia.fr/2010/10/12/revue-de-presse-xebia-180/#comments</comments> <pubDate>Tue, 12 Oct 2010 06:06:43 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Google App Engine]]></category> <category><![CDATA[IBM]]></category> <category><![CDATA[JavaFX]]></category> <category><![CDATA[mapreduce]]></category> <category><![CDATA[Netbeans]]></category> <category><![CDATA[Oracle]]></category> <category><![CDATA[Percolator]]></category> <category><![CDATA[SCRUM]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=5617</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII IBM rejoint le projet OpenJDK Agilité Comment vendre Scrum à votre manager Le coin de la technique Percolator, l&#8217;indexation incrémentale du Web selon Google Maven 3 Netbeans 6.10 sera finalement Netbeans 7 Gaelyk, le cloud facile Actualité éditeurs / SSII [...]]]></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/2010/10/12/revue-de-presse-xebia-180/#IBMrejointleprojetOpenJDK">IBM rejoint le projet OpenJDK</a></li></ul><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/10/12/revue-de-presse-xebia-180/#CommentvendreScrumvotremanager">Comment vendre Scrum à votre manager</a></li></ul><p><strong>Le coin de la  technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/10/12/revue-de-presse-xebia-180/#Percolatorlindexationincrmenta">Percolator, l&#8217;indexation incrémentale du Web selon Google</a></li><li><a
href="http://blog.xebia.fr/2010/10/12/revue-de-presse-xebia-180/#Maven">Maven 3</a></li><li><a
href="http://blog.xebia.fr/2010/10/12/revue-de-presse-xebia-180/#NetbeansserafinalementNetbeans">Netbeans 6.10 sera finalement Netbeans 7</a></li><li><a
href="http://blog.xebia.fr/2010/10/12/revue-de-presse-xebia-180/#Gaelyklecloudfacile">Gaelyk, le cloud facile</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité  éditeurs / SSII</h3><h4><a
name="IBMrejointleprojetOpenJDK"></a>IBM rejoint le projet OpenJDK</h4><p>IBM a fait savoir hier soir par <a
href="http://www.oracle.com/us/corporate/press/176988" title="communiqu de presse" >communiqué de presse</a> qu&#8217;il rejoignait le projet OpenJDK à la suite d&#8217;un accord avec Oracle portant sur la mutualisation de leur efforts pour améliorer la plate-forme Java.</p><p>Cette annonce est pour le moins inattendue après les troubles qu&#8217;a connus la communauté Java cet été lors du <a
href="http://blog.xebia.fr/2010/08/17/revue-de-presse-xebia-172/#OraclepoursuitGooglepourviolat" title="conflit opposant Oracle  Google" >conflit opposant Oracle à Google</a>. Beaucoup voyaient alors cet évènement comme le signe d&#8217;un manque d&#8217;ouverture de la part d&#8217;Oracle pouvant nuire à l&#8217;avenir de Java. A l&#8217;inverse cette alliance entre Oracle et IBM devrait rassurer les entreprises quant à la pérennité de la plate-forme Java.</p><p>Les premières réactions sont arrivés rapidement. Mark Reinhold (<em>leader</em> du projet OpenJDK) s&#8217;est montré très enthousiaste à l&#8217;idée de cette collaboration. La veille, il avait d&#8217;ailleurs apporté <a
href="http://blogs.sun.com/mr/entry/plan_b_details" title="quelques prcisions" >quelques précisions</a> quant à la mise en oeuvre du plan B, largement plébiscité par la communauté.</p><p>Un autre observateur met en avant le fait que depuis la création du projet OpenJDK il y a quelques années, la <a
href="http://robilad.livejournal.com/63940.html" title="majorit du code  t commit" >majorité du code à été commité</a> par des ingénieurs de Sun/Oracle. L&#8217;arrivée sur le projet d&#8217;ingénieurs, avec en bagage leur expérience sur la JVM d&#8217;IBM, devrait donc constituer un apport de ressources très important pour OpenJDK.</p><p>Au-delà de la mutualisation des ressources, cet accord aura des conséquences politiques bénéfiques. En effet, beaucoup craignaient pendant un temps que le développement du JDK 7 sans JSR associée nuise à la concurrence puisque les JVM alternatives n&#8217;auraient alors plus de spécification sur laquelle se reposer. L&#8217;annonce d&#8217;IBM tend à résoudre ce problème puisque l&#8217;on passerait alors de multiples JVM concurrentes basées sur une même spécification à une JVM unique développée en collaboration par les acteurs à l&#8217;origine de HotSpot (Sun), JRockit (Oracle/BEA) et J9 (IBM). Une telle collaboration ne serait pas sans rappeler celle qu&#8217;a établie l&#8217;industrie derrière Linux.</p><p>Un point reste toutefois à déterminer : quelle sera la la gouvernance d&#8217;OpenJDK ? Dans le cas de Linux, la gouvernance est entre les mains de la <a
href="http://www.linuxfoundation.org/" title="Linux Foundation" >Linux Foundation</a> avec à sa tête Linus Torvald. Une organisation similaire est-elle possible autour du JCP en tant que &laquo;&nbsp;Java Foundation&nbsp;&raquo; ? Les réformes à venir du JCP devraient répondre à cette question.</p><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="CommentvendreScrumvotremanager"></a>Comment vendre Scrum à votre manager</h4><p>Dans <a
href="http://www.infoq.com/news/2010/10/selling-scrum" title="cet article" >cet article</a> sur InfoQ, Mark Levison aborde l&#8217;épineux sujet de la conduite du changement vers une méthodologie agile.</p><p>Il est en effet complexe de convaincre un manager de la nécessité de migrer vers une méthodologie telle que Scrum car ce dernier est généralement contraint par des objectifs de delivery (délivrer de la valeur dans les temps par exemple). Mark nous donne quelques éléments permettant de gérer au mieux cette transition :</p><ul><li>Soyez à l&#8217;écoute de votre management et concentrez vous sur ce qui a le plus de valeur aux yeux de votre manager.</li><li>Adoptez progressivement les méthodes agiles en justifiant les changements comme une amélioration du process actuel et non comme une migration vers une méthodologie agile.</li><li>Présentez régulièrement les bénéfices des changements mis en oeuvre et montrez le retour sur investissement des changements adoptés.</li></ul><p>Vendre une migration vers une méthodologie comme Scrum peut se révéler complexe. En revanche, écouter et comprendre les problèmatiques rencontrées par votre management vous permettra de mettre en avant les solutions qui y répondent le mieux, et ainsi de démontrer à votre manager l&#8217;intérêt du changement.</p><p>L&#8217;introduction progressive d&#8217;une méthodologie agile peut s&#8217;apparenter à un développement itératif dont les éléments du backlog seraient constitués des éléments de la méthodologie, priorisés en fonction de la valeur apportée à votre management. En montrant régulièrement les progrès effectués et le retour sur investissement des changements, il est probable que votre management vous accordera sa confiance et une marge de manoeuvre plus importante afin d&#8217;améliorer les process en vigueur.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la  technique</h3><h4><a
name="Percolatorlindexationincrmenta"></a>Percolator, l&#8217;indexation incrémentale du Web selon Google</h4><p>Google a diffusé la semaine dernière la très attendue <a
href="http://research.google.com/pubs/pub36726.html" title="publication acadmique" >publication académique</a> portant sur sa nouvelle architecture d&#8217;indexation incrémentale du Web.</p><p>Jusqu&#8217;alors, Google parcourait l&#8217;ensemble des pages Web du monde, les stockait dans sa base de données distribuée <a
href="http://labs.google.com/papers/bigtable.html" title="BigTable" >BigTable</a>, puis procédait à leur indexation à l&#8217;aide de tâche MapReduce sur un très large cluster de machines. Parmi les tâches composant cette indexation, ils procèdent à une inversion des liens, c&#8217;est-à-dire que les mots trouvés dans les liens sont attachés en tant que mots clés des pages vers lesquels ils pointent. L&#8217;ajout ou la mise à jour d&#8217;une page a donc un impact potentiel sur de nombreuses autres, c&#8217;est pourquoi une ré-indexation complète était effectué jusqu&#8217;alors. Outre le surcoût de cette solution, Google lui reprochait son manque de réactivité incompatible avec l&#8217;orientation &laquo;&nbsp;temps réel&nbsp;&raquo; que prend le Web depuis quelques années.</p><p>Cette nouvelle solution d&#8217;indexation incrémentale est nommée Percolator par Google et consiste en un ensemble de tâches transactionnelles déclenchées par événement. Ainsi lorsque le <em>crawler</em> ajoute ou modifie une page il déclenche un évènement qui déclenche une cascade de tâches Percolator.</p><p>Percolator fonctionne au-dessus de BigTable en se fondant sur sa logique : des colonnes BigTable sont utilisées pour le stockages des différents états de l&#8217;algorithme distribué : <em>acknowledge</em>, notification et <em>lock</em>.<br
/> Afin d&#8217;assurer une forte scalabilité, Percolator gère les conflits de mise à jour (collision de deux transactions) par un rééssai ultérieur. Cette logique le destine donc avant tout aux traitements <em>batch</em> asynchrones pour lesquels MapReduce n&#8217;est pas adapté.</p><p>Fort des explications et retours d&#8217;expérience de Google, on peut maintenant s&#8217;attendre à voir une implémentation Open Source de cette intéressante solution de batch incrémental distribué du coté de la communauté <a
href="http://hadoop.apache.org" title="Apache Hadoop" >Apache Hadoop</a>, mais cela prendra probablement de nombreux mois.</p><h4><a
name="Maven"></a>Maven 3</h4><p>Maven 3 est sorti ce samedi 9 octobre presque 5 ans après la version 2. Je m&#8217;en sers dans la plupart des projets que je rencontre depuis un peu plus de 6 mois sans problèmes majeurs. En effet l&#8217;accent de cette release a été mis sur la compatibilité avec les versions précédentes et dès les premières versions alpha, elle était au rendez vous. Derrière le rideau tout ou presque a changé, cette version est une grosse refonte technique, mais pour l&#8217;utilisateur de Maven il n&#8217;y a que peu de différences.</p><p>Les nouveautés :</p><ul><li>Construction des modules en parallèle: Il s&#8217;agit d&#8217;une option à activer avec le <a
href="https://cwiki.apache.org/MAVEN/parallel-builds-in-maven-3.html" title="switch T" >switch -T</a></li><li>Stabilité et prévisibilité : La vitesse moyenne des builds est légèrement améliorée, il y a notamment moins d&#8217;appels aux repositories, amélioration du classloading (pour les plugins et les extensions)</li><li>Validation et notification d&#8217;erreur : Les erreurs dans les descripteurs de projet ou dans les builds sont beaucoup plus clairement annoncés avec le plus souvent un ersatz de solution.</li></ul><p>A venir :</p><ul><li><a
href="http://shell.sonatype.org/" title="Maven shell" >Maven shell</a>: un shell (ligne de commande) qui cache la résolution de dépendances ainsi que le chargement de plugins de commande en commande.</li><li><a
href="http://polyglot.sonatype.org/" title="Maven polyglotte" >Maven polyglotte</a> : permet d&#8217;exprimer les descripteurs de projets (pom.xml) dans d&#8217;autres langages que l&#8217;XML (Groovy, Ruby, Scala, Clojure&#8230;).</li><li><a
href="http://m2eclipse.sonatype.org/" title="M2Eclipse" >M2Eclipse</a> : plugin d&#8217;intégration de Maven dans Eclipse qui devrait voir une release 1.0.</li></ul><p>L&#8217;ensemble de ces développements est rendu possible grâce à l&#8217;architecture de Maven 3.</p><p>Pour plus de détails vous pouvez consulter la <a
href="http://maven.apache.org/release-notes-3.0.x.html" title="note de version" >note de version</a> et la <a
href="https://cwiki.apache.org/MAVEN/maven-3x-compatibility-notes.html" title="note de compatibilité" >note de compatibilité</a>. Enfin pour savoir si les plugins que vous utilisez sont compatibles il y a la <a
href="https://cwiki.apache.org/MAVEN/maven-3x-plugin-compatibility-matrix.html" title="matrice de compatibilit" >matrice de compatibilité</a>.</p><h4><a
name="NetbeansserafinalementNetbeans"></a>Netbeans 6.10 sera finalement Netbeans 7</h4><p>The Aquarium, le blog officiel sur le serveur J2EE Glassfish, <a
href="http://blogs.sun.com/theaquarium/entry/netbeans_7_0" title="nous apprend la nouvelle" >nous apprend la nouvelle</a>: l&#8217;ex-futur Netbeans 6.10, sera finalement renommé en Netbeans 7. La raison <a
href="http://netbeans.org/community/news/show/1498.html" title="officielle" >officielle</a> semble être le calage sur le numéro de version de Java, Netbeans sera alors (quasiment) prêt à supporter <a
href="http://openjdk.java.net/projects/jdk7/features/#f618" title="les nouveautés syntaxiques de Java 7" >les nouveautés syntaxiques de Java 7</a> pour la sortie du JDK 7 lors de sa sortie. Par ailleurs, on ne sera pas trop surpris d&#8217;apprendre que le support de JavaFX script ne sera plus à l&#8217;ordre du jour (mais dès la version 7.1, on devrait avoir un support étendu des API Java de JavaFX). La liste complète des changements se trouve sur <a
href="http://wiki.netbeans.org/NewAndNoteworthyNB70" title="le wiki de Netbeans" >le wiki de Netbeans</a>.<br
/> Cette nouvelle version est prévue pour mars de l&#8217;année prochaine. En attendant, vous pouvez toujours tester les versions intermédiaires, la milestone 2 devant sortir cette semaine. Profitons en pour noter les évolutions permanentes de la version 6.9, et notamment <a
href="https://netbeans.org/bugzilla/show_bug.cgi?id=184952" title="une correction récente" >une correction récente</a> qui permet maintenant d&#8217;utiliser <a
href="http://projectlombok.org/" title="Lombok" >Lombok</a> avec les projets de type Maven. Votre serviteur l&#8217;attendait avec impatience !</p><h4><a
name="Gaelyklecloudfacile"></a>Gaelyk, le cloud facile</h4><p>Gaelyk, le framework &laquo;&nbsp;léger&nbsp;&raquo; permettant de développer en Groovy sur le Google AppEngine, vient de voir se succéder assez rapidement plusieurs versions pour arriver jusqu&#8217;à la 0.5.5. Dzone nous <a
href="http://groovy.dzone.com/gaelyk-many-releases" title="détaille succintement" >détaille succintement</a> les améliorations. Aucune n&#8217;apporte de vraie révolution, mais Gaelyk semble s&#8217;affirmer de plus en plus comme LE framework à utiliser par les développeurs Java s&#8217;ils veulent bénéficier facilement et à moindre coût d&#8217;un serveur leur permettant de mettre en ligne des petites applications. D&#8217;autant que le framework dispose d&#8217;un bien bel atout: <a
href="http://code.google.com/p/maven-gaelyk/" title="le plugin mavengaelyk" >le plugin maven-gaelyk</a> a rapidement été mis à jour. Celui-ci permet d&#8217;utiliser notre outil de build favori pour créer un squelette d&#8217;application, puis le déployer et l&#8217;exécuter en local facilement.<br
/> Mais attention, Gaelyk ne se limite pas aux petites applications et Helloworld: Deluan Quintão <a
href="http://techbeats.deluan.com/using-spring-di-in-your-gaelyk-projects" title="nous indique" >nous indique</a> que l&#8217;on peut facilement configurer notre Spring habituel pour retrouver les automatismes (certains diront la lourdeur <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ) des applications d&#8217;entreprise. Il ne serait pas étonnant de voir de plus en plus de développeurs Java utiliser Gaelyk pour prototyper certains concepts ou réaliser des démos en un rien de temps.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/10/12/revue-de-presse-xebia-180/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2010/08/24/revue-de-presse-xebia-173/</link> <comments>http://blog.xebia.fr/2010/08/24/revue-de-presse-xebia-173/#comments</comments> <pubDate>Tue, 24 Aug 2010 05:29:57 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[ActiveMQ]]></category> <category><![CDATA[CGLIB]]></category> <category><![CDATA[Hibernate]]></category> <category><![CDATA[Oracle]]></category> <category><![CDATA[Spring]]></category> <category><![CDATA[WebSocket]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=5244</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII James Gosling sur l&#8217;affaire Oracle vs Google ActiveMQ 5.4.0 Le coin de la technique Hibernate ne supporte plus CGLIB Actualité éditeurs / SSII James Gosling sur l&#8217;affaire Oracle vs Google James Gosling revient sur l&#8217;épisode Oracle vs Google avec un [...]]]></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/2010/08/24/revue-de-presse-xebia-173/#JamesGoslingsurlaffaireOraclev">James Gosling sur l&#8217;affaire Oracle vs Google</a></li><li><a
href="http://blog.xebia.fr/2010/08/24/revue-de-presse-xebia-173/#ActiveMQ">ActiveMQ 5.4.0</a></li></ul><p><strong>Le coin de la  technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/08/24/revue-de-presse-xebia-173/#HibernatenesupporteplusCGLIB">Hibernate ne supporte plus CGLIB</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité  éditeurs / SSII</h3><h4><a
name="JamesGoslingsurlaffaireOraclev"></a>James Gosling sur l&#8217;affaire Oracle vs Google</h4><p>James Gosling revient sur l&#8217;épisode <a
href="http://blog.xebia.fr/2010/08/17/revue-de-presse-xebia-172/" title="Oracle vs Google" >Oracle vs Google</a> avec un <a
href="http://nighthacks.org/roller/jag/entry/quite_the_firestorm" title="article" >article</a> dans lequel il nous donne quelques éléments pour mieux comprendre la politique de Sun vis à vis de Java et des brevets :</p><ul><li>Sun a principalement déposé des brevets afin de se protéger d&#8217;éventuelles attaques venant de ses concurrents. Un épisode malheureux dans lequel Sun fut attaqué par IBM concernant un brevet sur les processeurs RISC leur fit prendre conscience qu&#8217;il était nécessaire de posséder un arsenal de brevets. Le procès se termina en effet en leur défaveur et ils durent payer d&#8217;importantes indemnités à IBM, les mettant au bord du dépôt de bilan.</li><li>Les brevets sur la technologie Java et le choix de la license CDDL avaient pour but de garantir l&#8217;interopérabilité des applications java sur les différentes plateformes. Cette protection a donné lieu à un procès entre Sun et Microsoft car ce dernier avait fournit une implémentation d&#8217;un machine virtuelle Java sur laquelle le code ne s&#8217;exécutait pas de la même manière que sur les autres JVM (dont celle de Sun) qui respectaient les spécifications. La machine virtuelle java de Google présentant elle aussi des problèmes d&#8217;interopérabilité, Oracle se sert de cette jurisprudence pour les poursuivre.</li><li>Sun aurait souhaité obtenir une partie des bénéfices générés par la plateforme Android mais sans succès. Il semble donc qu&#8217;Oracle souhaite continuer dans cette voie mais en choisissant de sortir l&#8217;artillerie lourde pour parvenir à ses fins.</li></ul><p>Cette affaire a un effet néfaste sur l&#8217;image de Java et James Gosling, loin de cautionner l&#8217;action d&#8217;Oracle, regrette l&#8217;absence de moralité des grandes compagnies informatiques actuelles.</p><h4><a
name="ActiveMQ"></a>ActiveMQ 5.4.0</h4><p>Un peu moins d&#8217;un an après la <a
href="http://blog.xebia.fr/2009/10/19/revue-de-presse-xebia-130/#UnnouveaumoteurdestockagepourA" title="dernière release" >dernière release</a>, Apache sort une nouvelle version de son <em>broker</em> de message. Au-delà des <a
href="https://issues.apache.org/activemq/secure/IssueNavigator.jspa?reset=true&#038;pid=10520&#038;fixfor=12110&#038;sorter/field=priority&#038;sorter/order=DESC" title="283" >283</a> bugs résolus, on notera quelques nouvelles fonctionnalités intéressantes:</p><ul><li>Priorité des messages: Jusqu&#8217;à maintenant pour jouer sur la priorité de certains messages sur d&#8217;autres il fallait contourner le problème en utilisant plusieurs queues de messages qui pouvaient être, elles, <em>priorisées</em>. Le point de blocage jusqu&#8217;à maintenant était lié à l&#8217;ordonnancement des messages, trop gourmand en temps. Ce problème semble être en partie réglé et le paramètre priorité du message JMS (inclus dans l&#8217;API) sera pris en compte.</li><li><a
href="http://activemq.apache.org/delay-and-schedule-message-delivery.html" title="Planifier ses messages" >Planifier ses messages</a>: ActiveMQ possède à présent un planificateur persistant de message. En d&#8217;autres termes, il est possible à l&#8217;envoi du message de préciser la date réelle de l&#8217;envoi et la durée entre la répétition d&#8217;un envoi. L&#8217;interface permet même de préciser tout cela sous la forme d&#8217;une entrée CRON. Ceci peut être assez intéressant pour par exemple faire du <em>heartbeat</em> (envoi d&#8217;un message à intervalle régulier pour s&#8217;assurer du fonctionnement de l&#8217;application ou faire des calculs de performance).</li><li><a
href="http://activemq.apache.org/websockets.html" title="WebSocket" >WebSocket</a>: Le sujet est à la mode, surtout avec l&#8217;émergence d&#8217;HTML 5, <a
href="http://blog.xebia.fr/2010/06/08/revue-de-presse-xebia-162/#HornetQ" title="HornetQ" >HornetQ</a> le propose également sur sa dernière version. Il s&#8217;agit d&#8217;utiliser le <em>broker</em> de messages depuis du code javascript. Tout comme HornetQ, ActiveMQ utilise son protocole de message simplifié STOMP. Deux librairies javascripts sont proposées sur leur site: <a
href="http://github.com/krukow/stomple" title="Stomple" >Stomple</a> et <a
href="http://github.com/jmesnil/stomp-websocket" title="stompwebsocket" >stomp-websocket</a>.</li></ul><p>Hormis ces nouveautés, des améliorations ont été apportées sur <a
href="http://activemq.apache.org/osgi-integration.html" title="OSGI" >OSGI</a> et le shell <a
href="http://activemq.apache.org/unix-shell-script.html" title="unix" >unix</a>.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la  technique</h3><h4><a
name="HibernatenesupporteplusCGLIB"></a>Hibernate ne supporte plus CGLIB</h4><p>Historiquement <a
href="http://cglib.sourceforge.net/" title="CGLIB" >CGLIB</a> a rendu de nombreux services à Hibernate et Spring pour permettre de manipuler le bytecode Java. Par exemple, vous avez sans doute déjà vu passer un proxy préfixé par CGLIB lorsque vous débuggez votre application. Mais récemment, Steve Ebersole, développeur chez Hibernate, <a
href="http://in.relation.to/Bloggers/DeprecatedCGLIBSupport" title="a annoncé" >a annoncé</a> qu&#8217;il n&#8217;y aurait plus de support pour cette librairie. Cette décision aurait été prise non pas pour des raisons purement techniques mais parce que cette librairie n&#8217;aurait plus de support et semble figée à la version 2.2 qui date de 2008. L&#8217;auteur donne pour exemple un <a
href="http://opensource.atlassian.com/projects/hibernate/browse/HHH-2222" title="ancien bug" >ancien bug</a> sur une incompatibilité de version de la librairie ASM (qui manipule à un niveau plus bas le bytecode) avec celle de Spring et qui mit un an à être corrigé.</p><p>Hibernate à présent privilégiera <a
href="http://jboss.org/javassist" title="Javassist" >Javassist</a>, un projet JBoss (tout comme Hibernate, tiens, tiens&#8230;), aux fonctionnalités similaires mais encore <em>en vie</em>. Reste à savoir si Spring suivra la même démarche.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/08/24/revue-de-presse-xebia-173/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2010/08/17/revue-de-presse-xebia-172/</link> <comments>http://blog.xebia.fr/2010/08/17/revue-de-presse-xebia-172/#comments</comments> <pubDate>Tue, 17 Aug 2010 05:47:32 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Flex]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[GraniteDS]]></category> <category><![CDATA[JQuery Mobile]]></category> <category><![CDATA[livre]]></category> <category><![CDATA[Nasa]]></category> <category><![CDATA[Nebula]]></category> <category><![CDATA[Oracle]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=5203</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Oracle poursuit Google pour violation de brevets RIA Bean Validation pour Flex. Annonce de jQuery Mobile SOA La NASA ouvre les sources de son cloud privé Le coin de la technique Continuous Delivery, le livre le plus important de 2010 [...]]]></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" /></p><p><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/2010/08/17/revue-de-presse-xebia-172#OraclepoursuitGooglepourviolat">Oracle poursuit Google pour violation de brevets</a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/08/17/revue-de-presse-xebia-172#BeanValidationpourFlex">Bean Validation pour Flex.</a></li><li><a
href="http://blog.xebia.fr/2010/08/17/revue-de-presse-xebia-172#AnnoncedeJQueryMobile">Annonce de jQuery Mobile</a></li></ul><p><strong>SOA</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/08/17/revue-de-presse-xebia-172#LaNASAouvrelessourcesdesonclou">La NASA ouvre les sources de son cloud privé</a></li></ul><p><strong>Le coin de la  technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/08/17/revue-de-presse-xebia-172#ContinuousDeliverylelivreleplu">Continuous Delivery, le livre le plus important de 2010 ?</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité  éditeurs / SSII</h3><h4><a
name="OraclepoursuitGooglepourviolat"></a>Oracle poursuit Google pour violation de brevets</h4><p>Jeudi dernier, Oracle a lancé une action en justice contre Google pour violation de brevets quant à l&#8217;utilisation de Java pour la plateforme Android. L&#8217;information a rapidement fait le tour du web et de la twitosphère provoquant à l&#8217;encontre d&#8217;Oracle son lot de commentaires indignés, notamment dans les communautés Java et libristes (<em>On retiendra le billet peu amène de <a
title="James Gosling  The shit finally hits the fan" href="http://nighthacks.com/roller/jag/entry/the_shit_finally_hits_the">James Gosling : &laquo;&nbsp;The shit finally hits the fan&#8230;.&nbsp;&raquo;</a></em>).</p><p>Dans sa <a
title="plainte" href="http://i.i.com.com/cnwk.1d/i/ne/pdfs/FINAL_Complaint.pdf?tag=mncol;txt">plainte</a>, Oracle précise que <em>&laquo;&nbsp;Android [...] et les appareils qui utilisent Android violent un ou plusieurs brevets parmi les suivants: 6,125,447; 6,192,476; 5,966,702; 7,426,720; RE38,104; 6,910,205; et 6,061,520&#8243;</em>. Les brevets en question portent sur l&#8217;implémentation de machines virtuelles, l&#8217;outillage et les compilateurs.<br
/> Google, certainement pour garder les coudées franches, a fait le choix d&#8217;implémenter sa machine virtuelle Dalvik sans utiliser OpenJDK <em>(la version GPL2 de Java)</em>. Cette implémentation n&#8217;est pas pleinement compatible Java et est exécutée sur des terminaux mobiles. Or, lorsque Sun avait <em>&laquo;&nbsp;open sourcé une partie de Java&nbsp;&raquo;</em> au travers d&#8217;OpenJDK, les garanties d&#8217;être à l&#8217;abri d&#8217;attaques pour violation de brevet ne protégeaient que les implémentations pleinement compatibles Java pour desktop et serveur uniquement <em>(pas les implémentations pour terminaux mobiles)</em>.<br
/> Pour étayer son accusation selon laquelle Google a sciemment violé les brevets relatifs à Java, Oracle avance que Google était, de longue date, au courant des brevets détenus par Sun. Eric Schmidt (CEO de Google) et Urs Hölzle (Senior VP of operations chez Google) ont en effet joué un rôle significatif dans le développement de la technologie Java lorsqu&#8217;ils étaient chez Sun.<br
/> La réponse de Google à l&#8217;attaque d&#8217;Oracle <em>(au travers d&#8217;un communiqué de presse)</em> est sans surprise : Google estime que la plainte est sans fondement. D&#8217;autre part, Google considère qu&#8217;avec cette plainte, Oracle n&#8217;attaque pas seulement Google, mais aussi la communauté Open Source Java.</p><p>A priori, l&#8217;objectif d&#8217;Oracle n&#8217;est pas de &laquo;&nbsp;tuer&nbsp;&raquo; Android mais de profiter de son succès en imposant à Google de lui reverser une part des revenus de la plateforme. En effet, Java ME est une source non négligeable de revenus pour Sun <em>(Oracle)</em> puisque cette technologie équipe de très nombreux terminaux. Mais le succès fulgurant d&#8217;Android sur le marché des smartphones est sur le point de tarir cette source de revenus.<br
/> D&#8217;autre part, Oracle souhaite sans doute envoyer un message clair quant à sa conception de l&#8217;utilisation de la technologie Java là où le silence de Sun vis à vis d&#8217;Android pouvait être perçu comme un blanc seing.</p><p>Ce genre d&#8217;affaire est généralement synonyme de feuilleton judiciaire à rallonge <em>(comme dans le cas emblématique de <a
title="SCO vs Linux" href="http://en.wikipedia.org/wiki/SCO-Linux_controversies">SCO vs. Linux</a>)</em>. Il y a donc peu de chances que le cas Google / Oracle se règle rapidement. La complexité du dossier <em>(notamment en ce qui concerne les tenants et aboutissants techniques)</em> laisse présager de longs débats. Même si l&#8217;issu d&#8217;un procès reste incertaine Google était certainement préparé à une telle attaque <em>(et est de taille à y faire face)</em> et sa défense sera bien préparée.<br
/> Tant que l&#8217;affaire ne sera pas réglée, l&#8217;ensemble de l&#8217;écosystème Android <em>(constructeurs, développeurs, utilisateurs, &#8230;)</em> va retenir son souffle, mais l&#8217;engouement pour la plateforme Android ne devrait pas trop en pâtir. D&#8217;une part, Google continuera de développer la technologie Android. D&#8217;autre part, gageons que Google prendra ses responsabilités sur le sujet de la propriété intellectuelle et jouera son rôle de pare feux vis à vis des constructeurs équipant leurs terminaux de l&#8217;OS Android.</p><p>La fin d&#8217;Android est très peu probable. Oracle n&#8217;y a aucun intérêt et ce pour plusieurs raisons. D&#8217;abord parce qu&#8217;Oracle a tout intérêt à ce que Java soit présent sur le marché des smartphones. Or cette présence passe par Android, pas par Java ME et Oracle n&#8217;a, aujourd&#8217;hui, ni la volonté, ni la capacité d&#8217;innover dans ce sens. Ensuite parce que l&#8217;essor des smartphones sous Android favorise le développement d&#8217;applications utilisant des <em>backend</em> <em>(serveurs)</em> mettant en œuvre des serveurs d&#8217;applications Java et des bases de données, augmentant ainsi la taille d&#8217;un marché sur lequel Oracle se taille la part du lion. Enfin parce qu&#8217;Android réunit une large communauté Java.<br
/> Il semble donc que cette affaire ne puisse avoir que deux issues :</p><ul><li>Google sera contraint à verser une partie des revenus d&#8217;Android à Oracle. Soit parce qu&#8217;Oracle aura gagné un procès, soit parce que Google aura préféré négocier un accord à l&#8217;amiable.</li><li>Ce sera le status quo. Soit parce qu&#8217;Oracle aura perdu un procès, soit parce qu&#8217;Oracle retirera sa plainte suite aux négociations qui vont s&#8217;entamer <em>(au cours desquels Google pourrait commencer à utiliser ses brevets comme arme de dissuasion)</em>.</li></ul><p>Ce qui est sûr, c&#8217;est que l&#8217;image de Java ne sortira pas grandie de l&#8217;initiative d&#8217;Oracle <em>(qui semble d&#8217;ores et déjà avoir perdu la bataille de l&#8217;image)</em>.</p><p>Pour ceux qui souhaitent approfondir le sujet, l&#8217;excellent billet de Charles Nutter <a
title="My Thoughts on Oracle v Google" href="http://blog.headius.com/2010/08/my-thoughts-on-oracle-v-google.html">&laquo;&nbsp;My Thoughts on Oracle v Google&nbsp;&raquo;</a> fait longuement le tour de la question et propose des perspectives très intéressantes.</p><h3><a
name="RIA"></a>RIA</h3><h4><a
name="BeanValidationpourFlex"></a>Bean Validation pour Flex.</h4><p>Le framework <a
title="GraniteDS" href="http://www.graniteds.org/confluence/pages/viewpage.action?pageId=229378">GraniteDS</a> continue à offrir des fonctionnalités riches pour Flex, en parallèle des offres de Adobe, BlazeDs (open source) et LifeCycle ES (commercial).<br
/> La <a
title="version 2.2 (actuellement en bêta publique)" href="http://tech.groups.yahoo.com/group/graniteds/message/7122">version 2.2 (actuellement en bêta publique)</a> ne faillit pas à la règle et amène une rafraichissante innovation : l&#8217;implémentation de la JSR 303 (BeanValidation) pour Flex. Toutes les contraintes standard de la JSR sont implémentées via des annotations AS3 et le générateur de code maison (GAS3) permet la conversions des annotations des beans Java.<br
/> La validation s&#8217;appuie sur une nouvelle fonctionnalité de réflexion.<br
/> Autre avancées, peut être moins spectaculaire, la prise en compte des types &#8216;big numbers&#8217; de Java dans les sérialisations offertes par le framework.<br
/> GraniteDs, dont certains avait décrété la mort à la publication de BlazeDs, est toujours bien vivant et comble, en open source,  certains manques laissés par Adobe.</p><h4><a
name="AnnoncedeJQueryMobile"></a>Annonce de jQuery Mobile</h4><p>C&#8217;est une nouvelle qui va à coup sûr faire du bruit dans un monde du développement mobile déjà bouillonnant, puisque vient d&#8217;être annoncée la sortie pour la fin d&#8217;année de la version mobile du framework <a
title="jQuery" href="http://jquerymobile.com/">jQuery</a>. Et ce n&#8217;est pas par la petite porte que le célèbre framework web souhaite faire son entrée, puisque contrairement à ses concurrents déclarés, tels que <a
title="jQTouch" href="http://www.jqtouch.com/">jQTouch</a> ou bien <a
title="Sensha Touch" href="http://www.sencha.com/products/touch/">Sensha Touch</a>, jQuery Mobile se veut être un framework JavaScript ciblant la quasi totalité des <a
title="plateformes mobiles" href="http://jquerymobile.com/gbs/">plateformes mobiles</a> web actuelles (Blackberry, Windows Mobile, iOS pour l&#8217;iPhone et l&#8217;iPad, Android, Symbian, Bada, &#8230;), et permettant de développer des interfaces riches capables de faire rougir bon nombre d&#8217;interfaces graphiques natives.</p><p>Avec l&#8217;avènement d&#8217;HTML5 (WebStorage, WebSockets, Vidéo, Géolocalisation, &#8230;), du CSS3, et des navigateurs mobiles dernière génération proposant des moteurs JavaScripts performants, la guerre du web semble se trouver un nouveau terrain de bataille, et le web mobile aura sous peu toutes les armes nécessaires pour déstabiliser le business modèle à peine naissant des Markets, tel que l&#8217;iTunes App Store ou bien l&#8217;Android Market. Le marché des applications mobiles semble donc suivre la voie de son grand frère, celui des applications PC, et proposera à terme de nombreuses applications riches directement par le web.</p><p>L&#8217;annonce parue sur le site de jQuery Mobile indique que l&#8217;un des objectifs du framework est de pouvoir développer une application unique pour toutes les plateformes mobiles. Ce concept, ne semble pas nouveau puisque l&#8217;objectif de J2ME sorti il y a 10 ans déjà était bien de développer une solution unique, rappelez-vous: &laquo;&nbsp;Write Once, Run everywhere&nbsp;&raquo;. Le slogan semble être ici: &laquo;&nbsp;Write Less, Do More&nbsp;&raquo;, mais l&#8217;objectif de fond est bien le même.</p><p>Palm avec sa plateforme WebOS et Firefox sont déjà sponsors du projet. Bien qu&#8217;encore en développement intense, la première sortie est prévue pour fin 2010. Ce framework pourrait bien être une des grandes surprises mobile de 2010 et devenir très rapidement un incontournable pour le développement web d&#8217;applications riches pour mobile.</p><p>Pour en apprendre plus sur cette déclinaison de jQuery, vous pouvez suivre les liens suivants et apprécier les designs présentés :</p><ul><li><a
title="Site officiel de jQuery Mobile" href="http://jquerymobile.com/">Site officiel de jQuery Mobile</a></li><li><a
title="La device support grid de jQuery Mobile" href="http://jquerymobile.com/gbs/">La device support grid de jQuery Mobile</a></li><li><a
title="Les designs concepts" href="http://jquerymobile.com/designs/">Les designs concepts</a></li></ul><h3><a
name="SOA"></a>SOA</h3><h4><a
name="LaNASAouvrelessourcesdesonclou"></a>La NASA ouvre les sources de son cloud privé</h4><p>La NASA a récemment <a
title="annoncé" href=" http://www.dailyfinance.com/story/company-news/nasa-rackspace-open-source-cloud-computing/19562733/">annoncé</a> son intention d&#8217;offrir le code de son <em>cloud</em> privé Nebula au projet <a
title="OpenStack" href=" http://openstack.org/index.php">OpenStack</a> en partenariat avec <a
title="Rackspace" href=" http://www.rackspace.com/index.php">Rackspace</a>. Il s&#8217;agit d&#8217;une implémentation d&#8217;une IaaS orientée vers le calcul scientifique et le stockage de données. Par ailleurs OpenStack est un projet actuellement supporté par plus de 25 firmes, dont Dell et Intel. Il offre une pile logicielle ouverte permettant de créer et exploiter un <em>cloud</em> privé sur la base d&#8217;infrastructures matérielles standards. Il est disponible sous la licence Apache 2.0. D&#8217;après la présentation du projet, la création d&#8217;un nouveau Framework ouvert pour le cloud est motivée par deux raisons principales :</p><ul><li>Le paysage du <em>cloud</em> est actuellement composé d&#8217;offres propriétaires, incompatibles entre elles et manquant de transparence, freinant ainsi l&#8217;expansion de cette nouvelle industrie. La création d&#8217;un framework Open Source permettrait donc une adoption plus massive.</li><li>La plupart des autres projets Open Source existant ne pouvaient satisfaire les énormes besoins de scalabilité exprimés par Rackspace. Seule Nebula, semblait correspondre au besoin.</li></ul><p>Pour l&#8217;instant le projet est disponible en &laquo;&nbsp;Developer preview&nbsp;&raquo;. Une première <em>release</em> sera disponible respectivement mi-septembre pour &laquo;&nbsp;OS Compute&nbsp;&raquo; et mi-octobre pour &laquo;&nbsp;OS Storage&nbsp;&raquo;.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la  technique</h3><h4><a
name="ContinuousDeliverylelivreleplu"></a>Continuous Delivery, le livre le plus important de 2010 ?</h4><p>Continuous Delivery, le livre de Jez Humble et David Farley, est disponible en version finale, en édition papier ou électronique (chez vos revendeurs habituels). Il traite d&#8217;un sujet qui tient à cœur de plus en plus d&#8217;acteurs de l&#8217;écosystème JEE : comment améliorer et dédramatiser les processus de build, de livraison et de déploiement d&#8217;un produit. Ce livre recueille déjà de nombreux lauriers. Dont ceux de Martin Fowler (directeur de la collection, donc forcément un peu partial), <a
title="qui en fait le livre technique le plus important de 2010" href="http://martinfowler.com/snips/201007301801.html">qui en fait le livre technique le plus important de 2010</a>.</p><p>De ce que nous avons pu en lire (<a
title="par exemple en RoughCuts ici" href="http://my.safaribooksonline.com/9780321670250">par exemple, en RoughCuts ici</a>), ces louanges sont justifiées : ce livre traite de tous les problèmes qui devraient animer n&#8217;importe quel consultant au démarrage d&#8217;un projet. Collaborer entre équipes, développer de manière incrémentale, tester, automatiser, déployer, tout cela dans un seul but, maximiser la qualité du produit délivré.</p><p>Ce livre donnera lieu a un grand <a
title="nombre de prsentations en confrence" href="http://continuousdelivery.com/2010/06/continuous-delivery-talks-2010/">nombre de présentations en conférence</a>, qui, si ce n&#8217;est déjà fait, devrait vous donner envie d&#8217;en faire votre livre de chevet avant la rentrée littéraire.</p><p>Pour en savoir plus, consultez le blog <a
title="Continuous Delivery" href="http://continuousdelivery.com/">Continuous Delivery</a></p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/08/17/revue-de-presse-xebia-172/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2010/07/27/revue-de-presse-xebia-169/</link> <comments>http://blog.xebia.fr/2010/07/27/revue-de-presse-xebia-169/#comments</comments> <pubDate>Tue, 27 Jul 2010 05:26:03 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[cloud]]></category> <category><![CDATA[Eclipse]]></category> <category><![CDATA[Ehcache]]></category> <category><![CDATA[Manning]]></category> <category><![CDATA[Oracle]]></category> <category><![CDATA[Restlet]]></category> <category><![CDATA[Sun]]></category> <category><![CDATA[Terracota]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=5142</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. SOA Quel nuage choisir ? Le coin de la technique Sortie de Restlet 2.0 Ravalement de Sun par Oracle, quelques couacs&#8230; Sortie de la version 2.2 d&#8217;Ehcache SOA Quel nuage choisir ? Tout dépendra de la nature et des besoins de votre application, nous [...]]]></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" /></p><p><em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p><p><strong>SOA</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/07/27/revue-de-presse-xebia-169/#Quelnuagechoisir">Quel nuage choisir ?</a></li></ul><p><strong>Le coin de la  technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/07/27/revue-de-presse-xebia-169/#SortiedeRestlet">Sortie de Restlet 2.0</a></li><li><a
href="http://blog.xebia.fr/2010/07/27/revue-de-presse-xebia-169/#RavalementdeSunparOraclequelqu">Ravalement de Sun par Oracle, quelques couacs&#8230;</a></li><li><a
href="http://blog.xebia.fr/2010/07/27/revue-de-presse-xebia-169/#SortiedelaversiondEhcache">Sortie de la version 2.2 d&#8217;Ehcache </a></li></ul><h3><a
name="SOA"></a>SOA</h3><h4><a
name="Quelnuagechoisir"></a>Quel nuage choisir ?</h4><p>Tout dépendra de la nature et des besoins de votre application, nous apprennent <a
title="BitCurrent" href="http://www.bitcurrent.com/about-2/">BitCurrent</a> et <a
title="Webmetrics" href="http://www.webmetrics.com/">Webmetrics</a>, via le site <a
title="infoq" href="http://www.infoq.com/news/2010/07/Benchmarking-5-Cloud-Platforms">infoq</a>.</p><p>En effet, après avoir mené quatre types de tests et analyser cinq applications différentes, déployées sur les cinq plateformes de cloud concernées (à savoir,  Amazon, Google, Rackspace, Salesforce.com, et Terremark) ils ont dégagé les conclusions suivantes :</p><ul><li>Faire attention à ses voisins : vos performances seront affectées par les autres applications utilisant le même nuage.</li><li>Comprendre le profil de votre plateforme : elles ont des performances différentes selon le type de tâche effectuée, comme mis en évidence par les histogrammes publiés.</li><li>Afin d&#8217;implémenter une stratégie de monitoring efficace , vous permettant de retrouver rapidement les éventuels goulots d&#8217;étranglement, il vous faudra implémenter du code spécifiquement pour cette tâche. Le diagnostic des problèmes devient plus compliqué, à cause des différentes ressources partagées.</li><li>Choisir entre un IaaS ou un PaaS, dépendra de votre stratégie de portage de votre application vers les nuages. Si vous optez de la re-implémenter afin de tirer avantage des nouveaux types de repository de données tel que BigTable, un PaaS serait le bon choix. Sinon il faudrait plutôt choisir un IaaS et configurer l&#8217;élasticité de votre application vous même.</li><li>Toujours surveiller votre taux d&#8217;utilisation lorsque vous utilisez un PaaS, car en cas de dépassement vos utilisateurs pourront se heurter à une indisponibilité.</li></ul><p>Toutefois, les auteurs précisent que leur étude est plus une ligne de conduite et que des tests avancés devront être menés spécifiquement pour tenir compte des besoins de chaque application et qu&#8217;elle ne visent pas à recommander un nuage plutôt qu&#8217;un autre. Le rapport complet est disponible <a
title="ici" href="http://www.webmetrics.com/landingpage/bitcurrentcloud2/index.html">ici</a>.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la  technique</h3><h4><a
name="SortiedeRestlet"></a>Sortie de Restlet 2.0</h4><p><a
title="Restlet" href="http://www.restlet.org/">Restlet</a> qui fût l&#8217;un des premiers frameworks à embrasser <a
title="REST" href="http://fr.wikipedia.org/wiki/Representational_State_Transfer">REST</a> vient de sortir en version 2.0 près de 2 ans après la version 1.1.</p><p>Parmi les nouveautés on peut noter les points suivants:</p><ul><li>Un support pour les nouvelles plateformes de Google: Android pour les Smartphones et les Tablets, et Google App Engine pour le cloud computing.</li><li>Une réorganisation des extensions et des packages.</li><li>Un meilleur support des en-têtes HTTP standards.</li><li>Un support d&#8217;une API de sécurité HTTP Centric gérant l&#8217;authentification et les autorisations.</li></ul><p>Parmi les nombreuses extensions disponibles, deux nouvelles extensions font leur apparition:</p><ul><li>L&#8217;extension OData qui fournit une API client haut niveau pour se connecter à différents services <a
title="OData" href="http://www.odata.org/">OData</a>, tels que la plateforme de Cloud Computing Azure de Microsoft. Cette extension fournit à la fois un système de génération de code pour la représentation des données et un runtime layer.</li><li>L&#8217;extension RDF a l&#8217;ambition de permettre aux utilisateurs de construire des applications basées sur le web sémantique. Cette extension fournit une API <a
title="RDF" href="http://fr.wikipedia.org/wiki/Resource_Description_Framework">RDF</a> complète basée sur l&#8217;API Restlet, permettant de traiter des documents à la façon DOM ou bien SAX. L&#8217;extension supporte les formats de sérialisation RDF/XML et RDF/n3.</li></ul><p>Un livre <a
title="Restlet In Action" href="http://www.manning.com/louvel/">Restlet In Action</a> est également en préparation, et les 7 premiers chapitres sont déjà disponibles en <em>early access</em> chez Manning (Le <a
title="premier chapitre" href="http://www.manning.com/louvel/louvel_meapch1.pdf">premier chapitre</a> est en accès gratuit).</p><h4><a
name="RavalementdeSunparOraclequelqu"></a>Ravalement de Sun par Oracle, quelques couacs&#8230;</h4><p>La dernière version de Java 1.6.0_21, sorti il y a quelques semaines, apportait quelques <a
title="volutions mineures" href="http://blog.xebia.fr/2010/07/13/revue-de-presse-xebia-167/#MettezjourvotreJVM">évolutions mineures</a> et aussi malheureusement un bug impactant le lancement d&#8217;Eclipse. Dans le grand ravalement pour faire disparaitre les références à Sun, Oracle a modifié le nom de la compagnie, qui se trouve dans java.dll, en <em>Oracle</em> au lieu de <em>Sun Microsystems, Inc</em>. Or Eclipse se fie à ce nom pour fixer le paramètre par défaut <em>-XX:MaxPermSize</em>. Le problème concerne donc les utilisateurs <em>Windows</em>, un <em>workaround</em> assez simple consiste à fixer ce paramètre au démarrage d&#8217;Eclipse dans le fichier <em>eclipse.ini</em> en ajoutant le paramètre <em>-XX:MaxPermSize=256m</em> après <em>-vmargs</em>.</p><p>Dans la même veine, un mouvement (<a
title="ici" href="http://grep.codeconsult.ch/2010/07/21/dear-oracle-can-we-have-our-nice-javadoc-urls-back/">ici</a>,<a
title="ici" href="http://blog.loof.fr/2010/07/oracle-decouvre-le-web.html">ici</a> et <a
title="là" href="http://www.touilleur-express.fr/2010/07/23/e17476-oracle-decouvre-le-web-rendez-moi-mes-urls-javadoc/">là</a>) s&#8217;est formé pour revenir aux anciennes urls de sun pour la javadoc plus pratiques. En effet là où on avait <a
title="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/IndexOutOfBoundsException.html" href="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/IndexOutOfBoundsException.html">http://java.sun.com/j2se/1.5.0/docs/api/java/lang/IndexOutOfBoundsException.html</a>, Oracle avait remplacé par <a
title="httpdownloadoraclecomdocscdE1747601javase150docsapijavalangIndexOutOfBoundsExceptionhtml" href="http://download.oracle.com/docs/cd/E17476_01/javase/1.5.0/docs/api/java/lang/IndexOutOfBoundsException.html">http://download.oracle.com/docs/cd/E17476_01/javase/1.5.0/docs/api/java/lang/IndexOutOfBoundsException.html</a>, laissant penser qu&#8217;elle dépendait d&#8217;un identifiant d&#8217;un CD ! Le mouvement a eu finalement gain de cause et le <em>java-iste</em> peut à nouveau retrouver ses bonnes vieilles habitudes.</p><h4><a
name="SortiedelaversiondEhcache"></a>Sortie de la version 2.2 d&#8217;Ehcache</h4><p>Le cache distribué de Terracota, <a
title="Ehcache" href="http://ehcache.org/">Ehcache</a> vient de sortir en version 2.2.<br
/> Au menu des nouveautés pour la version communautaire d&#8217;Ehcache :</p><ul><li>la simplification et l&#8217;amélioration de la console de contrôle et de monitoring du cache,</li><li>une amélioration de la consommation mémoire et de l&#8217;utilisation du réseau,</li></ul><p>et pour la version <em>enterprise</em> (commerciale) :</p><ul><li>un nouveau moteur de stockage distribué permettant de gérer jusqu&#8217;à plusieurs To de données réparties sur plusieurs centaines de nœuds,</li><li>la possibilité de distribuer les données sur des nœuds répartis dans de multiples data centers (éventuellement distants géographiquement),</li><li>l&#8217;intégration des problématiques d&#8217;authentification et d&#8217;autorisation via un support de JAAS.</li></ul><p>Nous pouvons voir dans cette version l&#8217;aboutissement du savoir faire des équipes d&#8217;Ehcache et de Terracota dans la réalisation de cache et d&#8217;architectures distribuées. Cette évolution confirme Ehcache comme un étant un concurrent sérieux à des solutions telles qu&#8217;<a
title="Oracle Coherence" href="http://www.oracle.com/technology/products/coherence/index.html">Oracle Coherence</a> dont nous vous parlions dans <a
title="cet article" href="http://blog.xebia.fr/2009/10/14/booster-vos-recherches-avec-oracle-coherence/">cet article</a>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/07/27/revue-de-presse-xebia-169/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2010/06/01/revue-de-presse-xebia-161/</link> <comments>http://blog.xebia.fr/2010/06/01/revue-de-presse-xebia-161/#comments</comments> <pubDate>Tue, 01 Jun 2010 05:36:54 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Ehcache]]></category> <category><![CDATA[Maven]]></category> <category><![CDATA[Oracle]]></category> <category><![CDATA[Performance]]></category> <category><![CDATA[Terracotta]]></category> <category><![CDATA[Threads]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=4836</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Où sont passées les stars de Sun ? Le coin de la technique Nouvelle version pour EhCache jucProfiler Maven Enforcer Actualité éditeurs / SSII Où sont passées les stars de Sun ? Un an après le rachat de Sun par [...]]]></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/2010/06/01/revue-de-presse-xebia-161/#OsontpasseslesstarsdeSun">Où sont passées les stars de Sun ?</a></li></ul><p><strong>Le coin de la  technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/06/01/revue-de-presse-xebia-161/#NouvelleversionpourEhCache">Nouvelle version pour EhCache</a></li><li><a
href="http://blog.xebia.fr/2010/06/01/revue-de-presse-xebia-161/#jucProfiler">jucProfiler</a></li><li><a
href="http://blog.xebia.fr/2010/06/01/revue-de-presse-xebia-161/#MavenEnforcer">Maven Enforcer</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité  éditeurs / SSII</h3><h4><a
name="OsontpasseslesstarsdeSun"></a>Où sont passées les stars de Sun ?</h4><p>Un an après le rachat de Sun par Oracle, qu&#8217;est il advenu des stars de Sun ? La réponse est plutôt radicale : elles se sont envolées vers des cieux plus cléments. Avant d&#8217;entrer dans plus de détails, on peut d&#8217;abord noter que la différence &laquo;&nbsp;génétique&nbsp;&raquo; entre Sun, moteur d&#8217;innovation proche d&#8217;une entreprise de recherche, et Oracle, éditeur logiciel centré sur le business, augurait de nombreux chocs culturels.<br
/> Certains ont été violents, et la rupture a été amère. C&#8217;est le cas pour James Gosling, qui a été le plus prolixe (<a
href="http://blogs.sun.com/jag/entry/javame_is_not_dead" title="sur son blog" >sur son blog</a>) au sujet de son départ, évoquant une démission qui l&#8217;a occupé à plein temps pendant plusieurs semaines. De manière comparable, Tim Bray a rejoint Google, en ne détaillant pas les raisons qui l&#8217;ont poussées à quitter Oracle mais en laissant transparaître une certaine amertume.<br
/> D&#8217;autres sont partis car Oracle ne leur donnait pas de garanties sur leur technologie : Charles Nutter et Thomas Enebo ont rejoint <a
href="http://www.engineyard.com/" title="Engine Yard" >Engine Yard</a> pour continuer à développer JRuby. Kohsuke Kawaguchi a monté sa société pour porter Hudson.<br
/> Enfin, certains n&#8217;ont pas reçu d&#8217;offre d&#8217;Oracle. C&#8217;était attendu pour Jonathan Schwartz et Scott McNealy qui étaient quasiment condamnés par leur position au sommet de la hiérarchie de Sun. C&#8217;était plus surprenant pour Simon Phipps, responsable de l&#8217;open source, qui occupe un poste équivalent chez <a
href="http://forgerock.com/" title="ForgeRock" >ForgeRock</a> (qui entend développer -OpenSSO- pardon OpenAM, le nom OpenSSO étant déposé).<br
/> Alors, cette vague de départs sera t&#8217;elle préjudiciable à Oracle ? Sur le plan de l&#8217;innovation, certainement. Sur un plan purement business, on peut en douter, aucun des &laquo;&nbsp;sous&nbsp;&raquo;-produits (sans que nous portions de jugement de qualité) de Sun n&#8217;étant stratégiques pour la firme de Larry Ellison. D&#8217;ailleurs, si l&#8217;on jette rapidement un œil à ceux qui sont restés, on note John Fowler, Cindy Reese, et Mike Splain, tous trois impliqués dans la branche hardware. De là à dire que c&#8217;était la principale visée d&#8217;Oracle (avec la JVM)&#8230; &laquo;&nbsp;Malheureusement&nbsp;&raquo;, Oracle a aussi hérité de bébés bien encombrants, comme les JUG (voir <a
href="http://blog.loof.fr/2010/05/oracle-et-les-jugs.html" title="larticle de Nicolas de Loof  ce sujet" >l&#8217;article de Nicolas de Loof à ce sujet</a>).</p><p><a
href="http://www.infoworld.com/d/the-industry-standard/suns-stars-where-are-they-now-and-why-did-they-leave-765?source=footer" title="Via infoWorld" >Via infoWorld</a></p><h3><a
name="Lecoindelatechnique"></a>Le coin de la  technique</h3><h4><a
name="NouvelleversionpourEhCache"></a>Nouvelle version pour EhCache</h4><p>Terracotta maintient le rythme des évolutions Ehcache, en nous livrant cette nouvelle version numérotée 2.1.<br
/> Après un mois de maturation en bêta, l&#8217;éditeur officialise donc la dernière mouture stable de son célèbre cache.<br
/> C&#8217;est surtout l&#8217;occasion d&#8217;étoffer son offre produit en ajoutant notamment un plugin de monitoring permettant de surveiller en temps réel les métriques essentielles du cache. Grâce à lui, les développeurs pourront affiner la configuration du cache, par contre pour l&#8217;utiliser en production il vous faudra une version payante.<br
/> Le support Websphere a bénéficié lui aussi d&#8217;améliorations pour garantir à ses utilisateurs l&#8217;accès à toutes les fonctionnalités du produit.<br
/> Cela inclut tout naturellement, le support la solution Terracotta Web Session, un cluster de session web à haute disponibilité, déjà disponible pour Weblogic, JBoss, Tomcat et Jetty.<br
/> L&#8217;utilisation de JTA a aussi été largement améliorée, les configurations standalone et Hibernate sont à présent supportées, ce qui permet de couvrir l&#8217;intégralité des stratégies Hibernate.<br
/> En dernier point d&#8217;amélioration, le développement a été axé vers de meilleures performances et un paramétrage fin des SLAs. C&#8217;est par exemple la fonctionnalité <a
href="http://ehcache.org/documentation/non_stop_cache.html" title="NonStopCache" >NonStopCache</a> qui permet de contrôler le timeout des opérations sur le cache, voire même de passer automatiquement d&#8217;un cache sur disque à un cache en mémoire vive en cas d&#8217;indisponibilité. Par ailleurs le <a
href="http://ehcache.org/documentation/unlocked_reads_view.html" title="UnlockedReadsView" >UnlockedReadsView</a> offre une vue non consistante du cache. Dans les faits, elle ignore les verrous d&#8217;écriture et ne pose pas de verrou de lecture, l&#8217;équivalent d&#8217;un READ_UNCOMITTED avec des performances très largement accrues.</p><ul><li><a
href="http://www.terracotta.org/news/pr/2010-05-25-ehcache-2.1" title="Lannonce Terracotta" >L&#8217;annonce Terracotta</a></li><li><a
href="http://dsoguy.blogspot.com/2010/04/ehcache-21-beta-lots-of-stuff-still.html" title="Un article plus pouss par Steve Harris" >Un article plus poussé par Steve Harris</a></li><li><a
href="http://ehcache.org/" title="La page daccueil du projet" >La page d&#8217;accueil du projet</a></li></ul><h4><a
name="jucProfiler"></a>jucProfiler</h4><p>Il y a quelques années, <a
href="http://blog.xebia.fr/2007/11/29/chroniques-de-la-performance-a-propos-de-contentions/" title="certains se sont arrachés les cheveux pour détecter les contentions dans un programme massivement parallélisé" >certains se sont arrachés les cheveux pour détecter les contentions dans un programme massivement parallélisé</a>. Malheureusement pour les amoureux des nœuds au cerveau, les développeurs de chez IBM se sont penchés sur le sujet et proposent un outil pour diagnostiquer ce type de problèmes : <a
href="http://aminoprj.blogspot.com/2010/01/jucprofiler-javautilconcurrent-locks.html" title="jucProfiler" >jucProfiler</a> (pour java.util.concurrent). Le principe est simple : instrumenter le bytecode de certaines classes de <code>java.util.concurrent.locks</code> et tracer les appels à <code>java.util.concurrent.locks.LockSupport</code> et <code>java.util.concurrent.locks.AbstractQueuedSynchronizer</code>.<br
/> L&#8217;outil génère ensuite un rapport permettant d&#8217;identifier deux types de problèmes sur les thread, consomateurs de temps :</p><ul><li>du temps de contention : un verrou est réservé par un autre thread.</li><li>du temps d&#8217;attente : le thread est en <code>wait</code>.</li></ul><p>Et cerise sur le gâteau, pour ceux d&#8217;entre vous lassés de devoir diagnostiquer des problèmes de performances en analysant des fichiers texte de trois pieds de long, un éditeur graphique est même fourni.</p><div
align="center"> <img
src="http://blog.xebia.fr/wp-content/uploads/2010/06/juc.jpg" border="0" alt="" /></div><p>Comme le dit justement la conclusion de l&#8217;article, la généralisation de la programmation parallèle nous oblige à nous armer de meilleurs outils. Il semblerait que jucProfiler en fasse partie. Si l&#8217;un de nos lecteurs a eu l&#8217;opportunité de l&#8217;utiliser en condition réelle, nous sommes bien sûr preneurs d&#8217;un retour d&#8217;expérience.</p><h4><a
name="MavenEnforcer"></a>Maven Enforcer</h4><p>Sonatype a récemment mis en ligne une présentation en deux parties (<a
href="http://www.sonatype.com/people/2010/05/sonatypes-maven-training-on-youtube/" title="ici" >ici</a> et <a
href="http://www.sonatype.com/people/2010/05/maven-enforcer-plugin-tutorial-part-2/" title="là" >là</a>) sur le plugin <a
href="http://maven.apache.org/enforcer/index.html" title="Maven Enforcer" >Maven Enforcer</a>.<br
/> Ce plugin permet de définir des règles afin d&#8217;obtenir un build Maven reproductible sur différents environnements. Il permet entre autres :</p><ul><li>de spécifier une version ou une plage de versions de Maven,</li><li>de spécifier une version ou une plage de versions du JDK,</li><li>de spécifier une architecture (OS/CPU) sur laquelle s&#8217;exécute le build,</li><li>de s&#8217;assurer que le projet ne contient pas de dépendances (transitives) vers des versions non explicites (SNAPSHOT, LATEST ou RELEASE),</li><li>de s&#8217;assurer que le projet n&#8217;utilise pas de plugins ayant une version non explicite (SNAPSHOT, LATEST ou RELEASE),</li><li>de bannir des dépendances,</li><li>de définir ses propres règles (en Java ou avec un script BeanShell).</li></ul><p>La présentation met l&#8217;accent sur la nécessité de fixer les versions des dépendances et des plugins afin d&#8217;éviter qu&#8217;un build ne devienne instable suite à la publication d&#8217;une nouvelle version d&#8217;une dépendance ou d&#8217;un plugin. Il préconise notamment l&#8217;emploi de Maven en version supérieure à 2.0.9 pour laquelle le POM parent n&#8217;utilise plus que des versions explicites des plugins.</p><p>Elle recommande aussi de spécifier une version du JDK (1.5.x par exemple) afin d&#8217;éviter différentes problématiques telles que l&#8217;utilisation d&#8217;API non supportées ou la différence de comportement de certains plugins Maven en fonction de la version de la JVM sur laquelle ils sont exécutés.</p><p>Une fois les bonnes pratiques exposées, la configuration des différentes règles permettant d&#8217;effectuer les vérifications est abordée.</p><p>Le plugin Maven Enforcer est encore peu connu mais gagnerait à être utilisé pour éviter des problèmes récurrents. Cette présentation est un bon point de départ pour aborder sa mise en place.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/06/01/revue-de-presse-xebia-161/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2010/05/03/revue-de-presse-xebia-157/</link> <comments>http://blog.xebia.fr/2010/05/03/revue-de-presse-xebia-157/#comments</comments> <pubDate>Mon, 03 May 2010 22:12:56 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Cloud Computing]]></category> <category><![CDATA[JBoss]]></category> <category><![CDATA[jBPM]]></category> <category><![CDATA[JCP]]></category> <category><![CDATA[Oracle]]></category> <category><![CDATA[salesforce]]></category> <category><![CDATA[scala]]></category> <category><![CDATA[scalate]]></category> <category><![CDATA[Spring]]></category> <category><![CDATA[thread]]></category> <category><![CDATA[vmforce]]></category> <category><![CDATA[VMWare]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=4516</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII (VMware + Spring) + SalesForce = VMforce Refonte de jBPM chez JBoss Josh Bloch : le futur de Java, sous la houlette de Oracle Le coin de la technique Scalate : un moteur de template pour Scala Le multitâche sur [...]]]></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’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/05/03/revue-de-presse-xebia-157/#VMwareSpringSalesForceVMforce">(VMware + Spring) + SalesForce = VMforce</a></li><li><a
href="http://blog.xebia.fr/2010/05/03/revue-de-presse-xebia-157/#RefontedejBPMchezJBoss">Refonte de jBPM chez JBoss</a></li><li><a
href="http://blog.xebia.fr/2010/05/03/revue-de-presse-xebia-157/#JoshBlochlefuturdeJavasouslaho">Josh Bloch : le futur de Java, sous la houlette de Oracle</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/05/03/revue-de-presse-xebia-157/#ScalateunmoteurdetemplatepourS">Scalate : un moteur de <em>template</em> pour Scala</a></li><li><a
href="http://blog.xebia.fr/2010/05/03/revue-de-presse-xebia-157/#LemultitchesurAndroid">Le multitâche sur Android</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/2010/05/03/revue-de-presse-xebia-157/#Scaladaysintgralementdisponibl">Scaladays 2010 intégralement disponible en vidéo !</a></li></ul><h4><a
name="VMwareSpringSalesForceVMforce"></a>(VMware + Spring) + SalesForce = VMforce</h4><p>Le 27 avril dernier, Paul Maritz (CEO de VMware), Marc Benioff (CEO de SalesForce) et Rod Johnson (GM de SpringSource) ont fait une <a
href="http://www.salesforce.com/video/vmforce-launch-sf.jsp" title="annonce" >annonce</a> conjointe pour le lancement d&#8217;une nouvelle solution cloud: <strong>VMforce</strong>.</p><p>Jusqu&#8217;à maintenant SalesForce était un des acteurs majeurs des SaaS (<em>Software as a Service</em>), spécialisé dans les CRM. Mais la montée en puissance de concurrents dans le cloud a poussé l&#8217;entreprise à revoir sa stratégie. Pour créer ou personnaliser des applications de SalesForce, les développeurs devaient s&#8217;appuyer exclusivement sur la plateforme de développement Force.com et sur son langage maison, l&#8217;<a
href="http://wiki.developerforce.com/index.php/Apex_Code:_The_World's_First_On-Demand_Programming_Language" title="Apex Code" >Apex Code</a>, relativement confidentiel. Il faut donc voir ce partenariat, avant tout, comme une ouverture des services de SalesForce au monde Java et en particulier celui de SpringSource.</p><p>Concernant Java, il est intéressant de constater que ce langage devient celui de référence pour toute solution cloud qui veut se populariser ou se standardiser. Il y a plus d&#8217;un an, Google avait subi de fortes pressions de la part de la communauté pour pouvoir utiliser Appengine avec Java en plus de Python. Encore plus étonnant, la solution cloud Azure de Microsoft propose également des <a
href="http://www.windowsazure4j.org/" title="ponts" >ponts</a> vers Java.</p><p>D&#8217;après <a
href="http://blog.springsource.com/2010/04/27/vmforce-spring-cloud/" title="Rod Johnson" >Rod Johnson</a> Spring sera vraiment au cœur de cette nouvelle offre. Son serveur tomcat, tcServer, constituera l&#8217;environnement d&#8217;exécution. SpringSource Tool Suite jouera un rôle important pour faciliter l&#8217;interopérabilité avec Force.com. On nous promet, entre autres, du <em>drag and drop</em> pour déployer directement des applications. Cela peut prêter à sourire mais ce genre de détail peut parfois faire basculer certains DSI, la véritable cible de cette nouvelle offre, qui cherchent les solutions les mieux intégrées aux environnements utilisés par leurs développeurs.</p><div
align="center"><img
class="size-full wp-image-4518" title="vmforceCloud" src="http://blog.xebia.fr/wp-content/uploads/2010/05/vmforceCloud.png" alt="Ecosysteme VMforce" width="500" height="385" /></div><p>De son côté Force.com apporte un accès à sa base de donnée relationnelle et à de nombreux services de rapport et de partage. De plus le développement de services orientés <em>réseau social</em>, avec des interfaces par exemple avec Twitter ou Facebook, de ponts vers les API Google ou de portage vers les téléphones mobiles, constitue une des originalités de SalesForce et un des points forts par rapport à ses concurrents.</p><p>Cette annonce peut en étonner certains qui avaient suivi <a
href="http://googleappengine.blogspot.com/2008/12/salesforcecom-announces-forcecom-for.html" title="celle de l'intégration de SalesForce dans Google Appengine" >celle de l&#8217;intégration de SalesForce dans Google AppEngine</a>, d&#8217;abord dans sa version Python puis Java. Le peu d&#8217;écho qu&#8217;elle a eu semble souligner le peu de synergies qui existent dans l&#8217;association de ces deux solutions et VMforce a, sur le papier, tout pour remplacer AppEngine comme PaaS (<em>Platform as a Service</em>) de référence. Bien sûr tout cela reste encore à confirmer car le lancement véritable est attendu cet automne (vous pouvez vous pré-inscrire sur cette <a
href="http://www.vmforce.com/" title="page" >page</a>). Est-ce que l&#8217;intégration dans STS tiendra ses promesses ? Est-ce que cette solution arrivera à convaincre les entreprises d&#8217;externaliser une partie de leur système d&#8217;information ?</p><h4><a
name="RefontedejBPMchezJBoss"></a>Refonte de jBPM chez JBoss</h4><p>Tout commença il y a un mois par <a
href="http://enterprisebpm.blogspot.com/2010/03/open-letter-to-jbpm-community.html" title="une lettre ouverte" >une lettre ouverte</a> à la communauté jBPM pour annoncer le départ de JBoss de Tom Baeyens et Joram Barrez, respectivement <em>project leader</em> et <em>core developer</em> du projet de gestion de <em>workflow</em> de l&#8217;éditeur. Quelques jours plus tard, Tom Baeyens <a
href="http://processdevelopments.blogspot.com/2010/03/alive-and-kicking.html" title="explique" >explique</a> qu&#8217;ils souhaitent développer, avec Joram Barrez, leur propre plate-forme BPM, qui supportera BPMN 2.0, adoptera une licence Apache 2.0 et sera adaptée &laquo;&nbsp;aux nouvelles infrastructures IT&nbsp;&raquo;. Le flou de cette dernière mention s&#8217;éclaircit en partie lorsque nous croisâmes Tom Baeyens à la conférence <a
href="http://blog.xebia.fr/2010/04/21/nosql-europe-tour-dhorizon-des-bases-de-donnees-nosql/">NoSQL Europe</a> de Londres ; il nous expliqua s&#8217;intéresser de près aux problématiques de persistance liées au <em>Cloud Computing</em>. Cette vision rafraichissante du BPM sera particulièrement intéressante à suivre&#8230;</p><p>Du coté de JBoss, l&#8217;affaire a entrainé un vaste projet de refonte. Ainsi Alejandro Guizar, nouveau <em>project lead</em> de jBPM, a publié deux semaines plus tard <a
href="http://enterprisebpm.blogspot.com/2010/04/announcing-jbpm-5.html" title="l'annonce du développement de jBPM 5" >l&#8217;annonce du développement de jBPM 5</a> qui <a
href="http://community.jboss.org/wiki/jBPM5RequestforComments" title="consistera" >consistera</a> en une fusion de jBPM et de <a
href="http://www.jboss.org/drools/drools-flow.html" title="Drools Flow" >Drools Flow</a>. Ceci aboutirait donc à un <em>rule driven process engine</em>, nom donné aux moteurs BPM fusionnés avec un moteur de règles. Cette vision constitue la tendance depuis quelques temps déjà sur ce marché, mais jBPM et Drools <a
href="http://blog.xebia.fr/2009/04/27/revue-de-presse-xebia-106/#VerslmergencedeRuledrivenproce" title="n'avaient pas su prendre ce virage" >n&#8217;avaient pas su prendre ce virage</a> pour cause d&#8217;avis divergents entre les deux équipes. Cet évènement semble donc avoir été l&#8217;occasion d&#8217;une remise en question globale. Mark Little, CTO de JBoss, <a
href="http://community.jboss.org/blogs/mark.little/2010/04/23/the-future-of-workflow-in-jboss" title="sexprimait" >s&#8217;exprimait</a> il y a une semaine sur l&#8217;avenir de la brique BPM de JBoss. Il reprenait ces faits en ajoutant une nouvelle importante : jBPM 4 ne deviendra pas un produit supporté par JBoss au sein de sa plate-forme commerciale SOA. Ce sera le rôle de jBPM 5.</p><p>jBPM est le moteur BPM Open Source majeur sur le marché. Ce changement de plan est donc important tant pour la communauté qui a déjà commencé à investir sur jBPM 4, sorti <a
href="http://blog.xebia.fr/2009/07/13/revue-de-presse-xebia-117/#jBPMestdisponible" title="il y a 10 mois" >il y a 10 mois</a>, que pour JBoss qui avait fortement investi dans jBPM 4. Ce dernier avait d&#8217;ailleurs connu une période de gestation particulièrement longue. Bien sûr ces investissements de part et d&#8217;autre ne sont pas perdus pour autant puisque cette nouvelle version s&#8217;appuiera pour partie sur l&#8217;existant, mais elle peut remettre en question certains choix stratégiques pour les entreprises.</p><h4><a
name="JoshBlochlefuturdeJavasouslaho"></a>Josh Bloch : le futur de Java, sous la houlette de Oracle</h4><p><a
href="http://www.infoq.com/news/2010/04/bloch_java_future" title="Pour InfoQ Josh Bloch" >Pour InfoQ, Josh Bloch</a>, l&#8217;auteur du fameux &laquo;&nbsp;Effective Java&nbsp;&raquo;, fait part de ses préoccupations au sujet du futur de Java. Tout d&#8217;abord, il constate que son évolution a ralenti ces derniers mois, pour deux raisons principales :</p><ul><li>le manque d&#8217;implication de Sun dans les travaux autour de Java 7, qui a conduit à sans cesse repousser sa date de sortie.</li><li>la confusion qui règne autour des différentes licences utilisées par le JCP, qui amène parfois des séparations étranges comme celle qui a eu lieu entre OpenJDK et Harmony. De plus, le support de certains éditeurs (Google a choisi Harmony comme base aux librairies Android) ne fait qu&#8217;ajouter à la confusion et à la discorde.</li></ul><p>Oracle, en meilleure santé financière que Sun, peut sortir le JCP de l&#8217;impasse en soutenant des réformes de fond, et en portant un regard neuf sur un certain héritage un peu &#8216;poussiéreux&#8217;. En particulier, Oracle a déjà proposé en 2007 de réformer les règles de propriété intellectuelle du JCP pour qu&#8217;elles deviennent plus permissives pour tous les composants de base (avec une licence de type Apache ou BSD).<br
/> Pour cette raison, Josh Bloch aimerait voir Oracle réclamer le bâton de commandeur qui était la propriété de Sun.</p><p>D&#8217;autre part, les statistiques montrent une baisse de l&#8217;utilisation de Java, au profit de C. Malgré cela, aucun des &laquo;&nbsp;nouveaux langages&nbsp;&raquo; (Scala, Ruby&#8230;) n&#8217;émerge suffisamment pour apparaitre dans ces statistiques et expliquer ce désamour. Cependant, ils restent des vecteurs d&#8217;innovation qu&#8217;il faut surveiller.<br
/> Et contrairement à ce que disent les statistiques, Josh Bloch ne pense que pas Java, aussi bien en tant que langage qu&#8217;en tant que plate forme, soit sur le déclin. Il voit certes un risque de déclin, mais il compte sur Oracle et sur la communauté pour l&#8217;enrayer. D&#8217;ailleurs, il ne voit pas émerger d&#8217;alternative crédible au langage et à la JVM. D&#8217;autant plus qu&#8217;Oracle ne devrait pas prendre le risque de tenter de mettre la JVM sous licence.<br
/> En ce qui concerne la fusion JRockit / Hotspot, elle est sur le papier intéressante, mais Sun n&#8217;est jamais parvenu à réaliser une telle fusion, ne serait ce que pour les JVM client et serveur. Pour le moins, ses coûts seront élevés.</p><p>Pour finir sur une note positive, Josh Bloch rappelle que Java a connu quelques succès retentissants ces derniers mois : Google Collections, Guice, les nouveaux langages de la JVM, et Android. En comptant sur des actions décisives d&#8217;Oracle, et la coopération d&#8217;une communauté élargie, le futur de java s&#8217;annonce (malgré tout ?) brillant.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="ScalateunmoteurdetemplatepourS"></a>Scalate : un moteur de <em>template</em> pour Scala</h4><p>Voilà une bonne occasion de vous parler d&#8217;un framework qui monte dans le monde Scala, à savoir <a
href="http://github.com/scalate/scalate" title="Scalate" >Scalate</a>. James Strachan <a
href="http://macstrac.blogspot.com/2010/04/scalate-11-released.html" title="a annoncé sa sortie" >a annoncé sa sortie</a> fin de semaine dernière en <a
href="http://scalate.fusesource.org/" title="version 1.1" >version 1.1</a>. Le détail des nouveautés se trouve <a
href="http://scalate.assembla.com/spaces/scalate/milestones/191837-1-1" title="ici" >ici</a>.</p><p>Scalate, pour Scala Template Engine, est un moteur de template qui s&#8217;appuie sur Scala 2.8 et permet de générer plusieurs type de documents <em>(texte, balises&#8230;)</em>. Il est actuellement utilisable :</p><ul><li>de manière standalone,</li><li>dans des Servlets,</li><li>dans <a
href="https://jersey.dev.java.net/" title="Jersey" >Jersey</a>,</li><li>dans Play! Framework grâce au projet <a
href="http://github.com/pk11/play-scalate" title="PlayScalate" >Play-Scalate</a>,</li><li>et dans <a
href="http://camel.apache.org/scalate.html" title="Apache Camel" >Apache Camel</a>,</li><li>avec prochainement l&#8217;intégration à <a
href="https://liftweb.assembla.com/spaces/liftweb/tickets/475" title="Lift" >Lift</a>.</li></ul><p>Scalate supporte les templates de type <a
href="http://scalate.fusesource.org/documentation/ssp-reference.html" title="SSP" >SSP</a> pour Scala Server Pages dont Velocity ou bien encore JSP. Ainsi Scalate supporte <code>${ }</code>, <code>&lt;%= %&gt;</code>, <code>&lt;% %&gt;</code> ou bien encore <code>#for</code>, <code>#if</code> et <code>#{ }</code>. L&#8217;autre format géré est le <a
href="http://scalate.fusesource.org/documentation/scaml-reference.html" title="Scaml" >Scaml</a> pour Scala Markup Language qui est un dialecte <em>(<a
href="http://haml-lang.com/" title="haml" >haml</a>)</em> pour simplifier la description d&#8217;un document web. Petit exemple :</p><pre class="brush: java; title: ; notranslate">
// ssp template
&lt;p&gt;
   &lt;%= List(&quot;hi&quot;, &quot;there&quot;, &quot;reader!&quot;).mkString(&quot; &quot;) %&gt;
   ${ &quot;yo &quot;+(3+4) }
&lt;/p&gt;
// ssp rendering
&lt;p&gt;
   hi there reader!
   yo 7
&lt;/p&gt;
// scaml template
%gee
   %whiz
      Wow this is cool!
// scaml rendering
&lt;gee&gt;
   &lt;whiz&gt;
      Wow this is cool!
   &lt;/whiz&gt;
&lt;/gee&gt;
</pre><p>Il n&#8217;y a plus qu&#8217;à <a
href="http://scalate.fusesource.org/download.html" title="jouer avec" >jouer avec</a> !</p><h4><a
name="LemultitchesurAndroid"></a>Le multitâche sur Android</h4><p>Qui aurai cru il y a encore peu que nous disposerions aujourd&#8217;hui d&#8217;équipements de poche ayant les capacités de faire tourner plusieurs applications riches simultanément, en Java qui plus est, malgré sa réputation de glouton en mémoire ? Ce temps là est révolu et Android montre combien un système basé sur Java peut se montrer performant. Néanmoins, pour atteindre cet objectif, il aura fallu que Google mette au point de nombreuses techniques. C&#8217;est ce que nous explique <a
href="http://android-developers.blogspot.com/2010/04/multitasking-android-way.html" title="cet article" >cet article</a> du <em>Android Developers blog</em>, le blog Google de référence sur le sujet.<br
/> Les objectifs (simplifier la vie de l&#8217;utilisateur au maximum en supprimant la notion de &laquo;&nbsp;fermer&nbsp;&raquo; une application&#8230;) et les contraintes (pas de swap&#8230;) sont expliqués ainsi que leurs conséquences sur la gestion de la mémoire dans les applications et l&#8217;OS.</p><p>on découvre certaines spécificités qui peuvent sembler étonnantes au commun des programmeurs. ainsi, des applications qui apparaissent en cours d&#8217;exécution peuvent n&#8217;avoir en fait aucun processus en cours ! Un autre point très intrigant est que les applications sont généralement tuées brutalement ! L&#8217;astuce consiste à garder la trace des parties de l&#8217;application visibles, les <a
href="http://developer.android.com/reference/android/app/activity.html" title="activity" ><em>Activity</em></a>, pour les redémarrer avec les infos de leur dernier état si besoin. si l&#8217;utilisateur n&#8217;y voit que du feu, le programmeur expérimenté sera lui surpris par ce fonctionnement peu orthodoxe mais visiblement efficace.</p><p>L&#8217;article va ensuite plus loin en explorant la façon dont sont gérés les services, à travers les notions de <a
href="http://developer.android.com/reference/android/content/BroadcastReceiver.html" title=""Broadcast Receivers"" ><em>Broadcast Receivers</em></a> et de <a
href="http://developer.android.com/reference/android/app/Service.html" title="Services" ><em>Services</em></a>. Les  premiers permettent de  réagir ponctuellement et brièvement à des stimuli externes alors que les seconds effectuent des opérations longues mais sans garanties aucune quant à leur survie: Android peut les tuer en cas de besoin.</p><p>Rassurez-vous, tout n&#8217;est pas complètement nouveau dans Android et certains concepts restent identiques à ce que l&#8217;on connaît en Java <em>desktop</em>. Sur <a
href="www.developpez.com" title="developpez.com" >developpez.com</a> Davy Leggieri nous offre 2 bons articles: l&#8217;un sur <a
href="http://davy-leggieri.developpez.com/tutoriels/android/threads-composants-application/" title="les threads composants une application Android" >les threads composants une application Android</a> et l&#8217;autre plus précisément centré sur <a
href="http://davy-leggieri.developpez.com/tutoriels/android/ui-thread/" title="l'UI Thread" >l&#8217;UI Thread</a>. Cela rappellera des souvenirs aux développeurs <a
href="http://fr.wikipedia.org/wiki/Swing_%28Java%29" title="Swing" >Swing</a> qui, avec son <a
href="http://en.wikipedia.org/wiki/Event_dispatching_thread" title="Event Dispatch Thread" >Event Dispatch Thread</a>, impose des contraintes similaires. Les environnements changent, mais certains fondamentaux restent !</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="Scaladaysintgralementdisponibl"></a>Scaladays 2010 intégralement disponible en vidéo !</h4><p>Si comme moi vous n&#8217;avez pas pu vous rendre au <a
href="http://days2010.scala-lang.org/" title="Scaladays 2010" >Scaladays 2010</a> de Lausanne, réjouissez-vous : toutes les vidéos sont déjà disponibles à <a
href="http://days2010.scala-lang.org/node/136" title="cette adresse" >cette adresse</a> !<br
/> Du <a
href="http://days2010.scala-lang.org/node/138/137" title="discours d'ouverture de Martin Odersky" >discours d&#8217;ouverture de Martin Odersky</a> en passant par les <a
href="http://days2010.scala-lang.org/node/138/140" title="Parallel Collections" >Parallel Collections</a> ou bien encore une session sur <a
href="http://days2010.scala-lang.org/node/138/159" title="Scala at LinkedIn" >Scala at LinkedIn</a>, redécouvrez les grands moments de cette première grosse conférence sur Scala. Les vidéos sont disponibles en basse et haute qualité et, pour les nomades, des verions <i>.mp4</i> sont téléchargeables.<br
/> Je sais déjà ce que je vais regarder dans le bus dans les prochaines semaines <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br
/> Et pour un petit résumé de ces deux jours, je vous renvoie vers le blog de <a
href="http://fanf42.blogspot.com/2010/04/summary-of-my-scala-days-2010.html" title="Franois" >François</a> pour un article qui ne peut que faire regretter de pas y être allé&#8230;</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/05/03/revue-de-presse-xebia-157/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2010/04/19/revue-de-presse-xebia-155/</link> <comments>http://blog.xebia.fr/2010/04/19/revue-de-presse-xebia-155/#comments</comments> <pubDate>Mon, 19 Apr 2010 16:49:05 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[AMQP]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JEE]]></category> <category><![CDATA[jQuery]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[Oracle]]></category> <category><![CDATA[rabbitmq]]></category> <category><![CDATA[SOA]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=4418</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposépar Xebia. Agilité Comment faire des tests d&#8217;IHM sans se tirer une balle dans le pied ? La gestion des risques dans un projet agile SOA RabbitMQ racheté par SpringSource Le coin de la technique Billy Newport et la programmation parallèle Performance jQuery avec $.delegate() Faille 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’actualité Java/J2EE hebdomadaire proposépar Xebia.</em></p><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/04/19/revue-de-presse-xebia-155/#CommentfairedestestsdIHMsansse">Comment faire des tests d&#8217;IHM sans se tirer une balle dans le pied ?</a></li><li><a
href="http://blog.xebia.fr/2010/04/19/revue-de-presse-xebia-155/#Lagestiondesrisquesdansunproje">La gestion des risques dans un projet agile</a></li></ul><p><strong>SOA</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/04/19/revue-de-presse-xebia-155/#RabbitMQrachetparSpringSource">RabbitMQ racheté par SpringSource</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/04/19/revue-de-presse-xebia-155/#BillyNewportetlaprogrammationp">Billy Newport et la programmation parallèle</a></li><li><a
href="http://blog.xebia.fr/2010/04/19/revue-de-presse-xebia-155/#PerformancejQueryavecdelegate">Performance jQuery avec $.delegate()</a></li><li><a
href="http://blog.xebia.fr/2010/04/19/revue-de-presse-xebia-155/#FailledescuritdansOracleJava">Faille de sécurité dans Oracle Java</a></li></ul><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="CommentfairedestestsdIHMsansse"></a>Comment faire des tests d&#8217;IHM sans se tirer une balle dans le pied ?</h4><p>L&#8217;automatisation des tests d&#8217;IHM est souvent une mauvaise idée. Le constat est très souvent le même : bien que simple à mettre en place en général, leur apport est souvent mineur par rapport à leur coût (je vous dirige vers <a
href="http://blog.objectmentor.com/articles/2009/09/29/ruining-your-test-automation-strategy" title="lexcellent article de Robert Martin" >l&#8217;excellent article de Robert Martin</a> pour creuser le sujet). Comment faire si l&#8217;on veut cependant s&#8217;engager dans cette voie?<br
/> Dans <a
href="http://gojko.net/2010/04/13/how-to-implement-ui-testing-without-shooting-yourself-in-the-foot-2/" title="cet article" >cet article</a>, Gojko Adzic (commiter fitnesse et auteur du livre passionnant &laquo;&nbsp;<a
href="http://www.amazon.fr/Bridging-Communication-Gap-Specification-Acceptance/dp/0955683610" title="Bridging the communication gap" >Bridging the communication gap</a>&laquo;&nbsp;), nous livre des pistes pour maximiser le retour sur investissement sur ceux-ci. Tout d&#8217;abord, ne surtout pas partir sur de l&#8217;enregistrement brut des cas de tests les uns après les autres (avec <a
href="http://seleniumhq.org/projects/ide/" title="Selenium IDE" >Selenium IDE</a> par exemple). C&#8217;est dans ce cas-là que l&#8217;on se tire une balle dans le pied. Les coûts de maintenance explosent et l&#8217;intérêt des tests est remis en question au fil du temps.<br
/> La clé est de représenter les tests d&#8217;IHM sur plusieurs niveaux :</p><ul><li>Règles métiers</li><li>Worfklows</li><li>Technique</li></ul><p>Les niveaux supérieurs sont plus stables dans le temps et sont plus compréhensibles que ceux du dessous. Les niveaux supérieurs s&#8217;appuient bien évidemment sur les niveaux du dessous pour fonctionner.<br
/> Le but de cette approche est de faire en sorte que les tests restent compréhensibles (bon courage pour aller comprendre la règle métier cachée derrière une centaine d&#8217;instructions Selenium) et surtout de promouvoir la réutilisabilité afin de garder la main sur la maintenance des tests.</p><h4><a
name="Lagestiondesrisquesdansunproje"></a>La gestion des risques dans un projet agile</h4><p><a
href="http://blog.mountaingoatsoftware.com/managing-risk-on-agile-projects-with-the-risk-burndown-chart" title="Mike Cohn" >Mike Cohn</a>, scrum master certifié et auteur de nombreux ouvrages de référence, nous suggère une manière de mettre en place la gestion des risques sur un projet agile.<br
/> Le management des risques est un sujet central dans de nombreux projets et est souvent considéré comme un enjeu déterminant pour leur réussite.<br
/> Il existe un ensemble de méthodes dédiées, ainsi que des normes et pratiques pour limiter les risques.<br
/> Au premier abord, on peut constater que Scrum n&#8217;implémente pas vraiment une gestion spécifique des risques. Cependant, les différentes pratiques et outils mis en place comme: les itérations courtes, l&#8217;intégration continue, les tests automatisés, etc. permettent de limiter drastiquement l&#8217;apparition des risques.<br
/> Ainsi, la mise en place d&#8217;une gestion des risques sur des projets agiles ayant des facteurs de risque faibles n&#8217;est pas nécessaire. Pour les autres projets, Mike nous propose une solution introduite par John Brothers dans <em>The Agile Times</em> avec le <em>risk burndown chart</em>.</p><p>Pour obtenir ce graphique, il convient au préalable de faire un recensement des risques (durant un sprint planning par exemple). On évalue la probabilité d&#8217;apparition, l&#8217;impact en jours sur la livraison si celui-ci se réalise, et enfin le nombre de jours exposés à ce risque potentiel. Pour calculer ce dernier, Mike multiplie la probabilité du risque par l&#8217;impact en nombre de jours. Ces informations sont renseignées dans un tableau de recensement.<br
/> Pour générer le <em>risk burndown chart</em>, il suffit ensuite de positionner la colonne du nombre de jours exposés en ordonnée et le nombre de jours (ou de sprints) en abscisse. On constate alors que plus on avance dans les sprints, moins le projet est exposé à des risques.</p><p>Sans tomber dans le sur-outillage, la mise en place d&#8217;un <em>risk burndown chart</em> permet d&#8217;introduire de manière légère la gestion des risques. Le tableau de recensement des risques peut suffire.</p><h3><a
name="SOA"></a>SOA</h3><h4><a
name="RabbitMQrachetparSpringSource"></a>RabbitMQ racheté par SpringSource</h4><p>Deux nouvelles importantes ces derniers jours autour d&#8217;AMQP, une bonne et une mauvaise.</p><p>La bonne nouvelle pour <a
href="http://blog.xebia.fr/2010/02/23/amqp-une-alternative-a-jms/" title="AMQP" >AMQP</a>, c&#8217;est le rachat (<a
href="http://www.springsource.com/newsevents/springsource-acquires-rabbitmq-cloud-messaging" title="ici" >ici</a>, <a
href="http://www.springsource.com/rabbit-technologies-acquisition-faq" title="ici" >ici</a> et <a
href="http://www.rabbitmq.com/news.html" title="là" >là</a>) par VMWare de RabbitMQ, rejoignant ainsi la gamme de produit SpringSource. Ceci donne l&#8217;occasion à Rod Johnson de donner son <a
href="http://blog.springsource.com/2010/04/13/springsource-acquires-rabbitmq/" title="point de vue" >point de vue</a>. Les efforts de RabbitMQ pour s&#8217;intégrer à des solutions cloud semblent avoir été déterminants pour VMWare. L&#8217;aspect standardisation par contre apparait moins dans les différentes annonces et il est sûrement encore trop tôt pour savoir quel sera l&#8217;investissement de SpringSource dans le groupe de travail d&#8217;AMQP. Néanmoins AMQP profitera sûrement de l&#8217;aura de Spring dans la communauté Java et ça ne peut être qu&#8217;une bonne nouvelle pour ce standard. Par contre <a
href="http://www.opencredo.com/technologies/opencredo-amq" title="OpenCredo" >OpenCredo</a>, qui tente de faciliter les solutions AMQP en Java et propose entre autres un template Spring pour RabbitMQ, risque d&#8217;être une victime collatérale de cette nouvelle association.</p><p>Ensuite la mauvaise nouvelle. IMatix, qui a créé OpenAMQ, la première implémentation de ce standard, a l&#8217;intention d&#8217;arrêter son support en <a
href="http://lists.openamq.org/pipermail/openamq-dev/2010-March/001598.html" title="2011" >2011</a>. <a
href="http://www.zeromq.org/" title="0MQ" >0MQ</a>, acheté il y a quelques mois, remplacera ce produit. Par la même occasion, ils cesseront de participer au groupe de travail AMQP. Outre le fait que 0MQ parait avoir des performances très supérieures à OpenAMQ, il semble que l&#8217;inertie autour de la nouvelle version de la norme AMQP/1.0 ait fini par éteindre l&#8217;enthousiasme des dirigeants d&#8217;iMatix. D&#8217;ailleurs, on peut trouver sur leur site un <a
href="http://www.imatix.com/articles:whats-wrong-with-amqp" title="article intressant" >article intéressant</a> sur les arcanes du groupe de travail. Il apparait qu&#8217;à vouloir spécifier trop de choses le standard deviendrait beaucoup trop complexe et que le retard pris sur la livraison de la nouvelle version serait dû à des considérations plus humaines que techniques, laissant entendre que l&#8217;ambiance n&#8217;y est peut-être pas toujours très détendue.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="BillyNewportetlaprogrammationp"></a>Billy Newport et la programmation parallèle</h4><p>Billy Newport, un des acteurs majeurs de la programmation distribuée, a donné <a
href="http://www.infoq.com/interviews/billy-newport-parallel" title="une interview  InfoQ" >une interview à InfoQ</a> dans le cadre de Qcon.<br
/> Il y parle de programmation parallèle en Java, selon lui l&#8217;avenir de notre langage.<br
/> La tendance actuelle dans le hardware est à la multiplication des cœurs, mais au ralentissement de leur fréquence. Et contrairement à ce que semblent penser certaines équipes d&#8217;exploitation (nous avons des noms), la multiplication des cœurs ne permettra pas aux applications Web de traiter plus d&#8217;utilisateurs, plus vite (bien au contraire, puisque unitairement, les cœurs sont moins puissants).</p><p>Le problème que Billy Newport voit dans l&#8217;écosystème actuel est l&#8217;absence complète d&#8217;un framework de haut niveau pour faciliter la programmation parallèle (qui reste une arcane secrète réservée aux grand maîtres). Il existe bien un certain nombre d&#8217;outils pour gérer le <em>comment implémenter</em> des traitements parallèles :</p><ul><li>les grilles de calculs en mémoire, comme eXtrem Scale.</li><li>les traitements massifs de fichiers, comme Hadoop.</li></ul><p>Malheureusement, aucune de ces solutions ne propose d&#8217;API de haut niveau qui permettrait de décrire les traitements à appliquer aux données quelle que soit l&#8217;implémentation &laquo;&nbsp;physique&nbsp;&raquo; mise en place. De plus, il semblerait que bien peu de personnes travaillent dans la recherche sur ce sujet. Billy Newport y voit là une superbe opportunité pour créer la prochaine entreprise <em>à la mode</em> dans l&#8217;open source.<br
/> Proposer une API de haut niveau qui proposerait de décrire les traitements et la façon de les appliquer aux données, en permettant de s&#8217;abstraire de la tuyauterie classique de la programmation parallèle :</p><ul><li>Gérer les structures de données et la concurrence autour de ces données.</li><li>Gérer la distribution optimisée des traitements (afin que le gain de temps réalisé en utilisant un cœur distant ne soit pas perdu en temps d&#8217;IO par exemple).</li></ul><p>Selon lui, les mécanismes existant en Java posant les prémices du calcul massivement parallèle (les Actors en Scala par exemple) sont de trop bas niveau.<br
/> Afin de pouvoir faire de la programmation parallèle sans avoir à connaitre toutes les implémentations sur le bout des doigts, il faudrait que Java adopte une réflexion comme celle que les auteurs de Haskell et Erlang ont mené (et non pas des recherche sur des mécanismes de <em>primitives</em> comme Scala)</p><p>D&#8217;autres problématiques vont apparaitre, notamment à cause des mécanismes d&#8217;auto découverte des nœuds d&#8217;une architecture distribuée (il existe plusieurs parades, comme changer les ports standard ou bien utiliser un mécanisme déclaratif).</p><p>Bref une entrevue passionnante, dont vous trouverez l&#8217;intégralité en video, mais également en transcript, peut être plus accessible pour les anglophobes.</p><h4><a
name="PerformancejQueryavecdelegate"></a>Performance jQuery avec $.delegate()</h4><p>Voilà une petite astuce <a
href="http://jquery.com/" title="jQuery" >jQuery</a> plutôt intéressante pour gagner en performance sur votre site web si vous êtes déjà, tout comme moi <img
src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> , un accro de la fonction <a
href="http://api.jquery.com/live/" title="live" >live</a> <em>(via <a
href="http://www.sitecrafting.com/blog/delegate" title="ce site" >ce site</a>)</em>.</p><p>Pour la gestion des évènements, nous avons la méthode <a
href="http://api.jquery.com/bind/" title="jQuery" >bind</a> qui permet d&#8217;associer à un élément de notre page un évènement de type <code>click</code>, <code>change</code>, <code>focus</code>&#8230; Mais <code>bind</code> ne s&#8217;appliquera que sur les éléments explicitement retournés par le sélecteur. Ainsi, même si nous spécifions un sélecteur du type <code>$('a')</code> <em>(tous les éléments <code>a</code> de la page)</em>, les éventuels éléments <code>a</code> qui seraient créés plus tard dans la page ne seront pas pris en compte.</p><p>Pour cela, jQuery 1.4 introduit la méthode <code>live</code> qui est un <code>bind</code> <em>présent</em> et <em>futur</em>. En effet, il s&#8217;applique sur tous les éléments retournés par le sélecteur mais aussi sur tous les éléments futurs de la page qui matcheront avec ce sélecteur ! Une fonctionnalité très intéressante donc mais aussi très consommatrice si l&#8217;on a un DOM important. En effet, le sélecteur parcourt à chaque fois le document pour matcher les nouveaux éléments et leurs associer l&#8217;évènement.</p><p>Mais c&#8217;est sans compter sur <a
href="http://api.jquery.com/delegate/" title="delegate" >delegate</a> qui est un <code>live</code> <em>voisin</em>. Ainsi, plutôt que de matcher tous les éléments <code>a</code> de ma page, <code>delegate</code> va s&#8217;appliquer sur un élément parent <em>(et donc restreint)</em> et, de cet élément parent, rechercher un certain élément sur lequel binder l&#8217;évènement. Imaginons que notre <code>a</code> soit inclus dans un élément ayant l&#8217;id <code>container</code>, on pourra alors écrire :</p><pre class="brush: java; title: ; notranslate">
$('#container').delegate('a', 'click', function() {...})
</pre><p>Une écriture quelque peu différente donc mais un véritable gain sur un DOM conséquent. A essayer d&#8217;urgence !</p><h4><a
name="FailledescuritdansOracleJava"></a>Faille de sécurité dans Oracle Java</h4><p>Oracle Java a sorti une nouvelle mise à jour du JDK et du JRE 6 suite à une <a
href="http://www.oracle.com/technology/deploy/security/alerts/alert-cve-2010-0886.html" title="alerte" >alerte</a> de sécurité sur le Java Deployment Toolkit utilisé pour Java Web Start. <a
href="http://seclists.org/fulldisclosure/2010/Apr/119" title="Tavis Ormandy" >Tavis Ormandy</a> et <a
href="http://reversemode.com/index.php?option=com_content&#038;task=view&#038;id=67&#038;Itemid=1" title="Ruben Santamarta" >Ruben Santamarta</a> ont découvert simultanément la possibilité d&#8217;exécuter du code arbitraire à travers cette faille et ont alerté la communauté le 9 avril dernier. Ce problème existe depuis la version 1.6.0_10 et est dû à un certain laxisme sur la vérification du paramètre &laquo;&nbsp;codebase&nbsp;&raquo; dans le JNLP qui devient maintenant obligatoire. Bien que ce problème impacte potentiellement les environnements Linux, Windows semble plus vulnérable, donnant par exemple la possibilité de charger une DLL. Par contre il ne concerne pas les Mac. Oracle a commencé par minimiser la gravité du problème avant finalement de sortir cette mise à jour une semaine après sa découverte. Il est donc fortement conseillé de se <a
href="http://www.java.com/en/download/installed.jsp?detect=jre&#038;try=2" title="mettre  jour" >mettre à jour</a>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/04/19/revue-de-presse-xebia-155/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2010/04/12/revue-de-presse-xebia-154/</link> <comments>http://blog.xebia.fr/2010/04/12/revue-de-presse-xebia-154/#comments</comments> <pubDate>Mon, 12 Apr 2010 17:25:09 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Apple]]></category> <category><![CDATA[AWS]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JEE]]></category> <category><![CDATA[Méthodes agiles]]></category> <category><![CDATA[Oracle]]></category> <category><![CDATA[Sun]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=4391</guid> <description><![CDATA[La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Vague de départs chez Sun/Oracle Avec son OS4, Apple bride les développeurs AWS s&#8217;enrichie d&#8217;un nouveau service de notification Agilité Maîtriser votre dette technique Actualité éditeurs / SSII Vague de départs chez Sun/Oracle Le rachat de Sun par Oracle constitue [...]]]></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/04/12/revue-de-presse-xebia-154/#VaguededpartschezSunOracle">Vague de départs chez Sun/Oracle</a></li><li><a
href="http://blog.xebia.fr/2010/04/12/revue-de-presse-xebia-154/#AvecsonOSApplebridelesdveloppe">Avec son OS4, Apple bride les développeurs</a></li><li><a
href="http://blog.xebia.fr/2010/04/12/revue-de-presse-xebia-154/#AWSsenrichiedunnouveauserviced">AWS s&#8217;enrichie d&#8217;un nouveau service de notification </a></li></ul><p><strong>Agilité</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/04/12/revue-de-presse-xebia-154/#Matriservotredettetechnique">Maîtriser votre dette technique</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="VaguededpartschezSunOracle"></a>Vague de départs chez Sun/Oracle</h4><p>Le rachat de Sun par Oracle constitue un changement de politique et d&#8217;identité majeur pour l&#8217;entreprise qui avait créé Java. On pouvait donc s&#8217;attendre à un certain nombre de départs de quelques personnes clé de Sun. Ces dernières semaines ont vu notamment les démissions de :</p><ul><li><a
href="http://news.cnet.com/8301-1001_3-20002207-92.html" title="James Gosling" >James Gosling</a> : le créateur du langage Java. Après avoir passé 20 ans chez Sun, James Gosling quitte Sun/Oracle. Son départ a logiquement fait beaucoup de bruit au sein de la communauté Java.</li><li><a
href="http://webmink.com/2010/03/08/sundown/" title="Simon Phipps" >Simon Phipps</a> : le directeur de la stratégie Open Source de Sun. Il avait rejoint Sun 10 ans auparavant et était devenu <em>Chief Open Source Officer</em> il y a 5 ans.</li><li><a
href="http://www.tbray.org/ongoing/When/201x/2010/03/15/Joining-Google" title="Tim Bray" >Tim Bray</a> : le co-rédacteur de la spécification XML et directeur des technologies Web chez Sun. Il <a
href="http://www.tbray.org/ongoing/When/201x/2010/03/15/Joining-Google" title="rejoint Google" >rejoint Google</a> dès à présent.</li></ul><p>Ces départs retentissants, accompagnés de disparitions de produits et de changements de politiques, marquent bien la fin d&#8217;une époque&#8230;</p><h4><a
name="AvecsonOSApplebridelesdveloppe"></a>Avec son OS4, Apple bride les développeurs</h4><p>Apple a dévoilé la semaine dernière son nouvel OS, OS4, système d&#8217;exploitation destiné aux derniers iPhones, iPods et autres iPads. Nous ne reviendrons pas sur les nombreuses nouveautés techniques mais sur un simple paragraphe de la &laquo;&nbsp;iPhone Developer License Agreement&nbsp;&raquo; dont les termes ont depuis <a
href="http://techcrunch.com/2010/04/08/adobe-flash-apple-sdk/" title="anim la blogosphre" >animé la blogosphère</a>. L&#8217;ancienne version de ce document spécifiait que les développeurs devaient utiliser les API publiques de la manière prescrite par Apple et ne devaient pas utiliser d&#8217;appels à des API non publiées ou privées. Cette licence est maintenant beaucoup plus restrictive: elle spécifie explicitement que les applications devront être écrites en C, C++ ou Objective-C (voir Javascript à travers le Webkit d&#8217;origine). Tout programme destiné à être exécuté après une traduction ou se reposant sur une couche type machine virtuelle est interdit. La conséquence directe est que Flash, Java ou .Net se voient interdire l&#8217;accès à l&#8217;immense marché des applications iPhone.</p><p>La première question venant à l&#8217;esprit est &laquo;&nbsp;pourquoi ?&nbsp;&raquo;. Pourquoi se limiter alors que ces types de langages et technologies ont le vent en poupe ces temps ci et sont un fort moteur d&#8217;innovation. Une réponse <a
href="http://www.taoeffect.com/blog/2010/04/steve-jobs-response-on-section-3-3-1/" title="apporte par Steve Jobs" >apportée par Steve Jobs</a> est que l&#8217;utilisation par les développeurs de couches intermédiaires produit des sous-applications non standard qui grèvent l&#8217;évolution de la plateforme.</p><p>En fait, <a
href="http://daringfireball.net/2010/04/why_apple_changed_section_331" title="selon John Gruber" >selon John Gruber</a>, Apple cherche à éviter à tout prix qu&#8217;une autre compagnie n&#8217;établisse ses propres outils comme un standard surtout si ceux ci permettent d&#8217;écrire un seul code et de l&#8217;exécuter indifféremment sur iPhone, Android ou Windows Mobile. Apple veut imposer sa plateforme de développement, que celle-ci devienne un standard, un passage obligé. Plus les développeurs seront familiers avec elle, plus ils développeront pour elle. De la même manière que Windows s&#8217;est imposé dans les années 90. Eviter le &laquo;&nbsp;write once, run anywhere&nbsp;&raquo;, ca ne vous rappelle rien ?! Surtout que les applications iPhone représentent déjà la plus grosse part du gâteau des applications mobiles.</p><p>Les conséquences sont importantes. En premier lieu, l&#8217;avenir de Flash sur les machines de la Pomme <a
href="http://techcrunch.com/2010/04/09/adobe-go-screw-yourself-apple-2/" title="semble compromis" >semble compromis</a> et <a
href="http://anscamobile.com/" title="de" >de</a> <a
href="http://monotouch.net/" title="nombreux" >nombreux</a> <a
href="http://www.appcelerator.com/" title="développeurs" >développeurs</a> voient leurs efforts réduits à (presque) néant. Nous n&#8217;avons pas fini d&#8217;entendre parler de cette affaire et de débattre pour savoir si <a
href="http://www.mobilecrunch.com/2010/04/11/gruber-a-voice-of-calm-in-a-mobile-world-gone-out-of-control/" title="Apple préserve simplement la qualité de sa plateforme" >Apple préserve simplement la qualité de sa plateforme</a> ou bien joue trop restrictif, ce qui, pour certains, <a
href="http://www.mobileorchard.com/goodbye/" title="nest plus acceptable" >n&#8217;est plus acceptable</a>.</p><h4><a
name="AWSsenrichiedunnouveauserviced"></a>AWS s&#8217;enrichie d&#8217;un nouveau service de notification</h4><p>Amazon enrichie son offre Cloud Computing AWS (Amazon Web Services) d&#8217;un nouveau service de notification. Baptisé <a
href="http://aws.amazon.com/sns/" title="Simple Notification Service" >Simple Notification Service</a> (SNS), il permet à des systèmes externes de souscrire à un <em>topic</em> pour recevoir des notifications par SMTP, HTTP(S) ou Amazon SQS (<a
href="http://aws.amazon.com/sqs/" title="Simple Queue Service" >Simple Queue Service</a>). SNS vient donc en complément du service SQS existant puisque ce dernier était un <em>broker</em> de messages qui offrait une connectivité HTTP. SNS, quant à lui, se définit plutôt comme un <em>publish-subscribe</em> lié à une capacité d&#8217;intégration.</p><p>Ce type de traitement peut être effectué très simplement au sein des applications Java, par programmation. Tout l&#8217;intérêt de ce nouveau service est donc le même que pour la majorité des autres services de Cloud Computing offerts par Amazon : il s&#8217;agit d&#8217;un service clé en main pour lequel aucune tâche de déploiement, d&#8217;exploitation, et de planification de charge n&#8217;est requise. Le choix d&#8217;exploiter ce service peut alors être fait sur la base d&#8217;une projection de coût basé sur l&#8217;habituelle tarification linéaire d&#8217;AWS, tandis qu&#8217;en informatique traditionnelle ce choix aurait été basé sur les contraintes de mise en œuvre d&#8217;un <em>middleware</em> supplémentaire.</p><p>L&#8217;offre de Cloud Computing d&#8217;Amazon s&#8217;étoffe mois après mois avec l&#8217;arrivée de services supplémentaires, conférant ainsi à Amazon une position très confortable sur ce marché. Le Cloud Computing est un marché émergeant qui se <a
href="http://blog.xebia.fr/2009/07/20/revue-de-presse-xebia-118/#LesstandardsduCloudComputingen" title="cherche encore des standards" >cherche encore des standards</a>. AWS, fort de son innovation régulière et de sa popularité pourrait s&#8217;octroyer une position de standard <em>de facto</em> telle celle gagnée par Spring. Le fait que le projet <a
href="http://www.eucalyptus.com/" title="Eucalyptus" >Eucalyptus</a> &#8211; qui vise a offrir une solution de <em>private cloud</em> &#8211; soit basé sur les contrats des services d&#8217;AWS donne d&#8217;ailleurs un crédit supplémentaire à cette hypothèse.</p><h3><a
name="Agilit"></a>Agilité</h3><h4><a
name="Matriservotredettetechnique"></a>Maîtriser votre dette technique</h4><p>La dette technique est généralement introduite à cause de raccourcis pris lors d&#8217;un développement pour tenter de gagner du temps, en lieu et place d&#8217;une conception propre, simple et évolutive. L&#8217;évolution et la maintenance de ce code se feront au prix d&#8217;efforts supplémentaires que l&#8217;on peut assimiler à des intérêts financiers.</p><p>Dans <a
href="http://www.infoq.com/news/2010/03/monetizing-technical-debt" title="Monetizing the technical debt" >Monetizing the technical debt</a>, Vikas Hazarati nous explique que la dette technique doit être maîtrisée faute de quoi, l&#8217;application risque de péricliter. En effet, au delà d&#8217;une certaine dette technique, la modification du code risque d&#8217;entraîner des comportements hasardeux (régressions) dans l&#8217;application. La diminution de la dette (capital) se fera en refactorant le code avant d&#8217;atteindre un niveau de dette trop élevé. L&#8217;article nous explique les bénéfices de monétiser notre dette technique et donne quelques éléments pour déterminer le niveau d&#8217;endettement (notamment via l&#8217;emploi d&#8217;un plugin Sonar).</p><p>La détermination d&#8217;un montant de dette technique pertinent semble difficile à mettre en œuvre et la détermination d&#8217;un seuil de maîtrise semble aussi particulièrement subjective. Le ressenti de l&#8217;équipe de développement sur le niveau (qualitatif) de la dette technique semble plus pertinent.</p><p>Comme l&#8217;explique Ward Cunningham, l&#8217;introduction d&#8217;une petite dette technique peut accélérer le développement à condition que celle-ci soit remboursée rapidement après sa souscription. Une bonne pratique pour vous aider à maîtriser votre dette technique est d&#8217;identifier le code à améliorer au moment où vous l&#8217;introduisez et de planifier les corrections nécessaires lors des itérations suivantes.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/04/12/revue-de-presse-xebia-154/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2010/02/01/revue-de-presse-xebia-145/</link> <comments>http://blog.xebia.fr/2010/02/01/revue-de-presse-xebia-145/#comments</comments> <pubDate>Mon, 01 Feb 2010 17:33:52 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[HBase]]></category> <category><![CDATA[JackRabbit]]></category> <category><![CDATA[Lucene]]></category> <category><![CDATA[Oracle]]></category> <category><![CDATA[Paris JUG]]></category> <category><![CDATA[scala]]></category> <category><![CDATA[Solr]]></category> <category><![CDATA[Sun]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=3938</guid> <description><![CDATA[La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII http://sun.com 301 moved permanently Le coin de la technique Première Beta pour Scala 2.8.0 Apache JackRabbit implémente maintenant JCR 2.0 Un œil sur Lucene, Solr et HBase Evènements de notre communauté en France et à l&#8217;étranger 2ème anniversaire du Paris [...]]]></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/02/01/revue-de-presse-xebia-145#ahrefhttpsuncomtitlehttpsuncom"><a
href="http://sun.com" title="httpsuncom" >http://sun.com</a> 301 moved permanently</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2010/02/01/revue-de-presse-xebia-145#PremireBetapourScala">Première Beta pour Scala 2.8.0</a></li><li><a
href="http://blog.xebia.fr/2010/02/01/revue-de-presse-xebia-145#ApacheJackRabbitimplmentemaint">Apache JackRabbit implémente maintenant JCR 2.0</a></li><li><a
href="http://blog.xebia.fr/2010/02/01/revue-de-presse-xebia-145#UnilsurLuceneSolretHBase">Un œil sur Lucene, Solr et HBase</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/2010/02/01/revue-de-presse-xebia-145#meanniversaireduParisJUG">2ème anniversaire du Paris JUG</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="ahrefhttpsuncomtitlehttpsuncom"></a><a
href="http://sun.com" title="httpsuncom" >http://sun.com</a> 301 moved permanently</h4><p>C&#8217;est officiel, Sun n&#8217;est plus. Outre les messages humoristiques (teintés d&#8217;amertume, <a
href="http://blogs.sun.com/jag/entry/so_long_old_friend" title="chez James Gosling" >chez James Gosling</a> par exemple), le redirect de <a
href="http://sun.com" title="http://sun.com" >http://sun.com</a> vers <a
href="http://oracle.com" title="http://oracle.com" >http://oracle.com</a>, le rebranding de tous les logos (sur la page de <a
href="http://java.sun.com/javase/downloads/index.jsp" title="téléchargement du sdk" >téléchargement du sdk</a> par exemple), la concrétisation du rachat de Sun par Oracle fait ressurgir les questions, orientées produit, que l&#8217;on se posait déjà lors de l&#8217;annonce de ce rachat. Dionysios G. Synodinos offre, via InfoQ, <a
href="http://www.infoq.com/news/2010/01/sunset" title="une liste dtaille de celles ci" >une liste détaillée de celles ci</a> :</p><ul><li><strong>Java, la JVM, le JCP</strong> : Thomas Kurian a  annoncé son intention de tirer le meilleur de chacune des deux JVM de la firme, Hotspot et JRockit, pour en faire le choix par défaut face à la JVM d&#8217;IBM. Les développements planifiés sont alléchants, avec entres autres un meilleur support du multi cœurs, suppression du permGen (pour permettre une meilleure intégration des langages type Groovy ou JRuby). Concernant le JCP, aucune annonce claire n&#8217;a été faite pour l&#8217;instant.</li><li><strong>MySql </strong>: cette base de données est annoncée comme complémentaire de la base historique d&#8217;Oracle. Elle bénéficiera, selon Larry Ellison, de plus d&#8217;attentions que par le passé, et les préoccupations marketing seront dissociées de celles du <em>grand</em> moteur, avec une équipe commerciale dédiée.</li><li><strong>JavaFx et RIA </strong>: Oracle a de nouveau affiché sa volonté d&#8217;investir massivement dans ces technologies. Certains analystes avancent que cet investissement viendrait boucher le trou laissé par l&#8217;échec d&#8217;intégration de Flex avec la suite BEA.</li><li><strong>Netbeans </strong>: des produits cités, c&#8217;est le plus menacé. Oracle laisse planer le doute, mais serait plus enclin à pousser JDevelopper. Restent les rumeurs d&#8217;une survie en tant que second couteau, ou bien un hypothétique reversement du code source à la communauté &#8230;</li><li><strong>Glassfish </strong>: face au mastodonte Weblogic, le serveur de référence JEE 6 serait proposé comme <em>serveur d&#8217;appoint</em> (l&#8217;expression officielle est <em>departemental solution</em> à opposer à l&#8217;<em>enterprise solution</em> Weblogic). Contrairement à MySql, Oracle n&#8217;annonce pas d&#8217;équipe marketing ou commerciale dédiée. Certains (comme <a
href="http://blogs.sun.com/alexismp/entry/sun_oracle_a_set_of" title="Alexis MP" >Alexis MP</a>) y voient une bonne nouvelle (Oracle présenterait une offre comparable à celle d&#8217;IBM &#8211; WAS Community Edition / WAS). D&#8217;autres au contraire,  y voient le premier clou dans le cercueil de ce serveur (avec là encore une analogie à IBM et l&#8217;anémique Geronimo).</li><li><strong>Service Cloud </strong>: là c&#8217;est officiel, les projets de Sun sont abandonnés.</li><li><strong>Investissement dans l&#8217;Open Source</strong>: Oracle n&#8217;a pas fait d&#8217;annonce officielle sur la stratégie à venir, mais la majorité des journalistes / bloggers de l&#8217;eco système JEE sont très pessimistes vis à vis de la capacité d&#8217;investissement d&#8217;Oracle dans le libre.</li><li><strong>Effectifs </strong>: sur un terrain plus terre à terre, Larry Ellison envisage le départ immédiat de 2000 personnes, et l&#8217;embauche de plus de 2000 nouveaux employés, principalement dans des postes d&#8217;ingénieurs, ou de commerciaux. Il ne s&#8217;est bien sur pas engagé sur un nouveau plan à plus long terme. Côté direction, le départ de Jonathan Schwartz semble entériné, et l&#8217;avenir de Scott McNealy est plus que flou.</li></ul><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="PremireBetapourScala"></a>Première Beta pour Scala 2.8.0</h4><p>Quelques nouvelles de <a
href="http://www.scala-lang.org/" title="Scala" >Scala</a> avec la sortie de la <a
href="http://www.scala-lang.org/node/4587" title="première Beta de la version 2.8.0" >première Beta de la version 2.8.0</a>, information relayée par <a
href="http://java.dzone.com/news/scala-28-improves-scala-ide" title="JavaLobby" >JavaLobby</a> et <a
href="http://www.infoq.com/news/2010/01/scala-beta1" title="InfoQ" >InfoQ</a>.</p><p><a
href="http://www.scala-lang.org/node/4587#Whatisnew" title="Nouvelles fonctionnalités" >Nouvelles fonctionnalités</a> et <a
href="http://www.scala-lang.org/node/299" title="nombreuses corrections de bugs" >nombreuses corrections de bugs</a> sont au menu :</p><ul><li>l&#8217;API <code>Collection</code> a ainsi été reconçue,</li><li>l&#8217;API <code>XML</code> a aussi été améliorée,</li><li>on peut utiliser des arguments nommés et/ou donner une valeur par défaut,</li><li>les <a
href="http://www.scala-lang.org/node/119" title="Packages" >Packages</a> peuvent désormais contenir des méthodes, des champs ou des types,</li><li>il est possible d&#8217;utiliser des acteurs <em>light</em>,</li><li>le support des annotations Java <em>nested</em> a été ajouté.</li></ul><p>De nombreux efforts ont aussi été apportés au niveau de la vitesse de compilation qui est maintenant plus rapide de 50%.<br
/> Côté outils, le plugin eclipse a été profondément remanié et de nombreuses opérations sont désormais réalisées par le compilateur Scala <em>(et non plus l&#8217;IDE comme c&#8217;est le cas aujourd&#8217;hui)</em>. <a
href="http://lampsvn.epfl.ch/trac/scala/wiki/Scaladoc" title="Scaladoc 2" >Scaladoc 2</a> fait aussi sont apparition avec un nouveau <em>look-and-feel</em> et plusieurs autres améliorations. Et pour le REPL, il supporte la complétion sur les objets, méthodes, champs et bien d&#8217;autres.</p><p>En bref, une release pas si mineure que ça ! Le téléchargement se passe <a
href="http://www.scala-lang.org/downloads#RC" title="ici" >ici</a>.<br
/> A noter aussi la non compatibilité binaire entre la version 2.8 et la branche 2.7.</p><h4><a
name="ApacheJackRabbitimplmentemaint"></a>Apache JackRabbit implémente maintenant JCR 2.0</h4><p>Sans grand bruit, l&#8217;équipe d&#8217;Apache JackRabbit a mis à disposition cette semaine la version 2.0 finale de leur projet. JackRabbit 2.0 est maintenant entièrement conforme à la <a
href="http://jcp.org/en/jsr/summary?id=283" title="JSR-283 (Java Content Repository 2.0)" >JSR-283 (Java Content Repository 2.0)</a> dont il est l&#8217;implémentation de référence.</p><p>Java Content Repository n&#8217;est pas une technologie très répandue, non pas parce qu&#8217;elle n&#8217;est pas satisfaisante, mais parce qu&#8217;elle adresse des besoins très spécifiques : JCR permet le stockage de documents sous forme arborescente tout en offrant des capacités transactionnelles, le <em>versionning</em>, ou encore une gestion de verrous. Les principaux cas d&#8217;utilisation sont les systèmes de gestion de documents, les CMS, ou des systèmes de stockage de fichiers organisés tels que le propose <a
href="http://www.jfrog.org/products.php" title="Artifactory" >Artifactory</a>, un <em>repository</em> Maven fonctionnant avec JCR.</p><p>JCR 2.0 apporte, outre un rafraichissement de son API, quelques améliorations majeures :</p><ul><li><strong>Query Object Model</strong> : un nouveau modèle de requêtes objet à l&#8217;image de <code>Criteria</code> chez Hibernate ou de <code>QueryBuilder</code> dans JPA 2.0. Nous vous parlions déjà <a
href="http://blog.xebia.fr/2009/05/18/revue-de-presse-xebia-109/#UneAPICriteriapourJCR" title="il y quelques mois" >il y quelques mois</a> des perspectives liées à cette fonctionnalité au travers l&#8217;API proposée par Magnolia.</li></ul><ul><li><strong>API de</strong> <strong><em>retention</em></strong> <strong>et</strong> <strong><em>hold</em></strong> : cette API vient complémenter l&#8217;API de <em>lock</em> déjà présente afin de permettre des politiques de rétention de documents particulières.</li></ul><ul><li><strong>API de contrôle d&#8217;accès</strong> : les aspects de sécurité <a
href="http://www.day.com/specs/jcr/1.0/6.9_Access_Control.html" title="taient peu abords" >étaient peu abordés</a> par la JSR-170 (JCR 1.0). Une API plus complète leur est désormais dédiée.</li></ul><p>Au-delà de la conformance à JCR 2.0, JackRabbit 2.0 est maintenant basé sur Java 5, et offre la possibilité de recherche <em>full-text</em> sur les documents grâce à Apache Tika, un sous-projet de Lucene.</p><p>Ces changements ne suffiront probablement pas à eux seuls à élargir la communauté d&#8217;utilisateurs de JCR ; en revanche le récent engouement pour les technologies NoSQL peut contribuer à attirer vers JCR des équipes qui, jusqu&#8217;alors, auraient été plus frileuses à considérer un autre stockage de données qu&#8217;un SGBDR.</p><h4><a
name="UnilsurLuceneSolretHBase"></a>Un œil sur Lucene, Solr et HBase</h4><p>Malgré son jeune age, <a
href="http://hadoop.apache.org/hbase/" title="HBase" >HBase</a> suscite un intérêt suffisant pour pousser certaines entreprises <a
href="http://blog.xebia.fr/2009/11/18/devoxx-jour-1-nosql-avec-hbase/" title=" lutiliser en ltat" >à l&#8217;utiliser en l&#8217;état</a> en production : les services apportés par cette base de données NoSQL suffisent à faire oublier l&#8217;expérience difficile que peut parfois réserver ce projet.</p><p>Dans un tel contexte toute source d&#8217;information est utile. Le <a
href="https://issues.apache.org/jira/browse/HBASE" title="Jira" >Jira</a> et la <a
href="http://hadoop.apache.org/hbase/mailing_lists.html" title="mailing list" ><em>mailing list</em></a> du projet deviennent alors des sources d&#8217;informations précieuses qu&#8217;il s&#8217;agit de suivre avec attention pour être au fait des dernières corrections et solutions aux problèmes couramment rencontrés.<br
/> Pour répondre à ce besoin, Sematext, une entreprise américaine spécialisée sur Lucene, Solr et HBase <a
href="http://blog.sematext.com/" title="diffuse depuis peu un digest" >diffuse depuis peu un <em>digest</em></a> régulier des nouveautés importantes sur chacune de ces technologies.</p><p>On apprend ainsi qu&#8217;une abstraction est en cours de développement pour HBase. Nommée <a
href="http://www.hbql.com/" title="HBql" >HBql</a>, elle vise à offrir une API proche de JDBC et un langage de requête SQL, ce qui constituerait un environnement de développement plus familier aux développeurs démarrant avec HBase (mais pas forcément plus efficace&#8230;).<br
/> Du coté de la communauté Lucene / Solr, c&#8217;est la recherche géo-spaciale qui semble actuellement monopoliser l&#8217;intérêt. Cette possibilité est présente <a
href="http://blog.xebia.fr/2009/09/28/revue-de-presse-xebia-126/#Lucenevolueetprparelavenir" title="depuis la version 2.9" >depuis la version 2.9</a> dans Lucene et correspond à l&#8217;air du temps puisque <a
href="http://blog.xebia.fr/2009/07/27/revue-de-presse-xebia-119/#PostGISleSIGOpenSourcequimonte" title="la golocalisation devient courante" >la géo-localisation devient courante</a>.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="meanniversaireduParisJUG"></a>2ème anniversaire du Paris JUG</h4><p>Mardi 9 février 2010 aura lieu le deuxième anniversaire du <a
href="http://www.parisjug.org/" title="Paris Java User Group" >Paris Java User Group</a>.</p><p>Pour l&#8217;occasion, l&#8217;équipe du Paris JUG nous a concocté une soirée spéciale sur le thème de l&#8217;Open Source :</p><ul><li>18h45 à 19h00 : Accueil</li><li>19h00 à 19h10 : Le mot de l&#8217;équipe</li><li>19h10 à 20h00 : Keynote de Sacha Labourey</li><li>20h00 à 20h45 : L&#8217;open source en France</li><ul><li>Comment Obeo est devenu membre stratégique de la fondation Eclipse</li><li>XWiki.org vs XWiki.com</li></ul><li>20h45 à 21h30 : Buffet</li><li>21h30 à 23h00 : L&#8217;open source en France : Développons en Java</li><ul><li>jCaptcha</li><li>Play! framework une (r)évolution pour les applications web en Java</li><li>jax-doclets</li><li>Présentation d&#8217;eXo Platform</li></ul><li>23h00 à &#8230; : 3ème mi-temps des juggers</li></ul><p>Cette soirée aura lieu <a
href="http://www.parisjug.org/xwiki/bin/view/Location/SorbonneParisIV" title="dans un amphi de 500 places de la Sorbonne (108 Boulevard Malesherbes dans le 17ème)" >dans un amphi de 500 places de la Sorbonne (108 Boulevard Malesherbes dans le 17ème)</a>.</p><ul><li><a
href="http://www.parisjug.org/xwiki/bin/view/Meeting/20100209" title="Le programme dtaill est disponible sur le site du Paris JUG" >Le programme détaillé est disponible sur le site du Paris JUG</a>.</li><li><a
href="http://www.jugevents.org/jugevents/event/23793" title="Les inscriptions se font par ici" >Les inscriptions se font par ici</a>.</li><li><a
href="http://www.parisjug.org/xwiki/bin/view/Meeting/20100209Cocktail" title="Pour participer  la troisime mitemps exceptionnelle cest par ici" >Pour participer à la troisième mi-temps exceptionnelle, c&#8217;est par ici</a>.</li></ul><p>Xebia est fière d&#8217;être sponsor de l&#8217;événement.</p><p>En espérant vous voir nombreux &#8230;</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2010/02/01/revue-de-presse-xebia-145/feed/</wfw:commentRss> <slash:comments>3</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>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>Booster vos recherches avec Oracle Coherence</title><link>http://blog.xebia.fr/2009/10/14/booster-vos-recherches-avec-oracle-coherence/</link> <comments>http://blog.xebia.fr/2009/10/14/booster-vos-recherches-avec-oracle-coherence/#comments</comments> <pubDate>Wed, 14 Oct 2009 08:36:24 +0000</pubDate> <dc:creator>Benoit Moussaud</dc:creator> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[Performance]]></category> <category><![CDATA[Coherence]]></category> <category><![CDATA[Oracle]]></category> <category><![CDATA[Performances]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2996</guid> <description><![CDATA[Oracle Coherence est une solution de Data Grid. Elle permet de constituer des grilles de données à l&#8217;aide de 4 types de caches: Cache distribué: l&#8217;ensemble des données est réparti sur les différents nœuds qui composent le cluster Coherence. Afin de garantir une bonne tolérance aux pannes, les données peuvent être sauvegardées sur un ou [...]]]></description> <content:encoded><![CDATA[<p>Oracle Coherence est une solution de <a
href="http://blog.xebia.fr/2009/05/06/paris-jug-soiree-grid-computing-le-12-mai/" title="Data Grid" >Data Grid</a>. Elle permet de constituer des grilles de données à l&#8217;aide de 4 types de caches:</p><ul><li>Cache distribué: l&#8217;ensemble des données est réparti sur les différents nœuds qui composent le cluster Coherence. Afin de garantir une bonne tolérance aux pannes, les données peuvent être sauvegardées sur un ou plusieurs nœuds du cluster. Cette typologie est extrêmement extensible : il suffit d&#8217;ajouter des nouveaux nœuds pour augmenter la capacité globale du cache.</li><li>Cache répliqué: l&#8217;ensemble des données est répliqué sur l&#8217;ensemble des nœuds du cluster. La modification d&#8217;une entrée sera propagée à l&#8217;ensemble des nœuds. Cette typologie permet d&#8217;offrir un accès très rapide en lecture car un seul nœud est sollicité dans l&#8217;opération. La contre-partie est que les opérations d&#8217;écriture sont lentes et que la taille du cache est indépendante du nombre de nœuds qui composent le cluster.</li><li>Cache local: les données sont conservées exclusivement sur la JVM.</li><li>Near Cache: il permet d&#8217;offrir le meilleur des caches de type &#8216;Répliqué&#8217; (Performance) et de type &#8216;Distribué&#8217; (Extensibilité) en fournissant un accès rapide aux données accédées le plus fréquemment et le plus récemment. Il est composé de 2 parties:</li><ul><li>le &#8216;front-cache&#8217; pour les accès locaux, de petite taille, typiquement un cache Local (Local Cache),</li><li>le &#8216;back-cache&#8217; un cache de plus grande envergure, typiquement un cache distribué (Distributed Cache), qui contient l&#8217;ensemble des données avec leurs éventuelles sauvegardes.</li></ul></ul><p>Le point fort d&#8217;Oracle Coherence est de proposer la même API quelque soit le type de cache. Il est donc possible, par simple configuration, de modifier le type de cache et de l&#8217;adapter en fonction des besoins ou de l&#8217;environnement: cache local en &laquo;&nbsp;Développement&nbsp;&raquo;, cache distribué en &laquo;&nbsp;Intégration&nbsp;&raquo;, &laquo;&nbsp;Near&nbsp;&raquo; cache en &laquo;&nbsp;Production&nbsp;&raquo;.</p><p>En première approche, l&#8217;API d&#8217;Oracle Coherence est extrêmement simple : elle se résume à obtenir une <a
href="http://java.sun.com/javase/6/docs/api/java/util/Map.html" title="Map" ><code>Map</code></a> et à la manipuler par les opérations habituelles: put(), get(), keySet(), entrySet()&#8230;.</p><pre class="brush: java; title: ; notranslate">
import com.tangosol.net.CacheFactory;
Map cache = CacheFactory.getCache(&quot;moncache&quot;);        //1. Récupération d'une instance de cache,
cache.put(&quot;benoit&quot;,&quot;moussaud&quot;);                       //2. Ajout d'un élément dans le cache
String name = (String)cache.get(&quot;benoit&quot;);            //3. Recherche par sa clé d'un élément dans le cache
assert name.equals(&quot;moussaud&quot;);
</pre><p>Le type de cache est déduit du nom du cache. Il est configuré dans le fichier <code>coherence-cache-config.xml</code> inclus dans <code>coherence.jar</code>. Par défaut, les règles suivantes sont appliquées:</p><table
cellspacing="0" cellpadding="5" style="border: 1px solid black"><tr><td
bgcolor="#663366" style="color: #ffffff; border: 1px solid black"> Nom du cache</td><td
bgcolor="#663366" style="color: #ffffff; border: 1px solid black"> Type</td></tr><tr><td
style="border: 1px solid black"> <code>dist-*</code></td><td
style="border: 1px solid black"> distribué</td></tr><tr><td
style="border: 1px solid black"> <code>near-*</code></td><td
style="border: 1px solid black"> near cache</td></tr><tr><td
style="border: 1px solid black"> <code>repl-*</code></td><td
style="border: 1px solid black"> repliqué</td></tr><tr><td
style="border: 1px solid black"> <code>local-*</code></td><td
style="border: 1px solid black"> local</td></tr><tr><td
style="border: 1px solid black"> sinon</td><td
style="border: 1px solid black"> distribué</td></tr></table><p>Si l&#8217;on veut appliquer ses propres règles, il faut définir son propre fichier de configuration et indiquer son emplacement au lancement de Coherence avec la propriété système <code>tangosol.coherence.cacheconfig</code>.</p><p>La suite de l&#8217;article va montrer comment interroger un cache Coherence autrement que par une clé dans une Map.</p><h4><a
name="Unservicederecherchedecommunes"></a>Un service de recherche de communes&#8230;</h4><p>Prenons un service qui permet de rechercher l&#8217;ensemble des communes françaises en précisant le début de leur nom.</p><pre class="brush: java; title: ; notranslate">
public interface CatalogService {
	public List&lt;Commune&gt; getCommuneByName(String name);
}
</pre><p>Une implémentation classique est de créer une table &#8216;COMMUNE&#8217; dans une base de données, d&#8217;y insérer les ensembles des communes de France (38206 dans mon exemple) avec leur libellé, un code postal et un code Insee, et d&#8217;effectuer la requête SQL <code>SELECT ID, DEP_CODE, CODE_INSEE, LIBELLE FROM COMMUNE where LIBELLE like #name#</code>.</p><p>Voici le résultat d&#8217;un benchmark du service avec pour paramètre la première lettre de la commune (de A à Z)</p><div
id="attachment_3003" class="wp-caption aligncenter" style="width: 643px"><img
src="http://blog.xebia.fr/wp-content/uploads/2009/10/bdd.png" alt="Résultat du benchmark Base de données" title="Résultat du benchmark Base de données" width="633" height="426" class="size-full wp-image-3003" /><p
class="wp-caption-text">Benchmark Base de données</p></div><p>Le temps de réponse du service est mauvais et proportionnel au nombre de communes retournées</p><h4><a
name="Coherencelarescousse"></a>&#8230;Coherence à la rescousse&#8230;</h4><p>La première idée est de placer le résultat de la recherche dans un cache avec pour clé le paramètre de recherche. Ce type de conception est efficace seulement si le nombre de filtres est fini, par exemple s&#8217;il résulte d&#8217;une sélection d&#8217;une combo-box dans une page web. Si la valeur du filtre est moins contrainte, le service sera appelé par un grand nombre de filtres différents et donc le cache risque d&#8217;être peu efficace (à moins de disposer d&#8217;une mémoire infinie de manière à conserver toutes les requêtes !).</p><p>La seconde idée est de charger dans un cache l&#8217;ensemble des communes et d&#8217;effectuer une recherche directement dans le cache. L&#8217;API Coherence offre la notion de <code>Filter</code></p><pre class="brush: java; title: ; notranslate">
public class CatalogServiceWithCoherence implements CatalogService,
     private final NamedCache cacheCommunes = CacheFactory.getCache(&quot;Commune&quot;);
     public List&lt;Commune&gt; getCommuneByName(String name) {
         Filter filter = new LikeFilter(&quot;getName&quot;, name + &quot;%&quot;, false);
         return performSearch(filter);
     }
     @SuppressWarnings(&quot;unchecked&quot;)
     private List&lt;Commune&gt; performSearch(Filter filter) {
         Set&lt;Map.Entry&lt;Object, Commune&gt;&gt; entrySet=cacheCommunes
                 .entrySet(filter);
         List&lt;Commune&gt; result = new ArrayList&lt;Commune&gt;(entrySet.size());
         for (Map.Entry&lt;Object, Commune&gt; e : entrySet) {
             result.add(e.getValue());
         }
         return result;
     }
}
</pre><p>Appliquons le même benchmark.</p><div
id="attachment_3005" class="wp-caption aligncenter" style="width: 613px"><img
src="http://blog.xebia.fr/wp-content/uploads/2009/10/coherence-filter.png" alt="Résultat du benchmark Coherence avec Filtre" title="Résultat du benchmark Coherence avec Filtre" width="603" height="428" class="size-full wp-image-3005" /><p
class="wp-caption-text">Résultat du benchmark Coherence avec Filtre</p></div><p>Le temps de réponse du service est meilleur (autour de 500 ms) mais constant. Il y a donc un gain par rapport aux requêtes qui retournent beaucoup d&#8217;éléments (A,B,C,L,S,..) mais une perte sur les requêtes qui retournent peu d&#8217;éléments. Donc plus le filtre sera sélectif, moins la recherche dans le cache sera efficace.</p><p>Ceci se comprend mieux si on affine l&#8217;étude de l&#8217;API Coherence. L&#8217;interface <a
href="http://download.oracle.com/otn_hosted_doc/coherence/350/com/tangosol/util/Filter.html" title="Filter" >Filter</a> définit une seule méthode: <code>evaluate</code></p><pre class="brush: java; title: ; notranslate">
package com.tangosol.util;
public abstract interface Filter
{
  public abstract boolean evaluate(Object paramObject);
}
</pre><p>Donc une recherche dans le cache par filtre se résume à parcourir l&#8217;ensemble des entrées de la <code>Map</code> et à appliquer le filtre passé en paramètre.</p><h4><a
name="Encoreplusrapideavecunindex"></a>&#8230;Encore plus rapide avec un index</h4><p>Si on examine de plus près le filtre utilisé <a
href="http://download.oracle.com/otn_hosted_doc/coherence/350/com/tangosol/util/filter/LikeFilter.html" title="<code>LikeFilter</code>" ><code>LikeFilter</code></a>, on peut noter qu'il implémente l'interface <a
href="http://download.oracle.com/otn_hosted_doc/coherence/350/com/tangosol/util/filter/IndexAwareFilter.html" title="IndexAwareFilter" ><code>IndexAwareFilter</code></a>. Il est donc possible d'indexer le contenu d'un cache Coherence. Le code ci-dessous ajoute un index au cache "IndexedCommune": pour chaque entrée ajoutée au cache, il va extraire et indexer la valeur de la propriété "Name" (getName()).</p><pre class="brush: java; title: ; notranslate">
NamedCache cache = CacheFactory.getCache(&quot;IndexedCommune&quot;);
cache.addIndex(new ReflectionExtractor(&quot;getName&quot;), true, null);
</pre><p>Appliquons le benchmark.</p><div
id="attachment_3006" class="wp-caption aligncenter" style="width: 632px"><img
src="http://blog.xebia.fr/wp-content/uploads/2009/10/coherence-indexed-filter.png" alt="Benchmark Coherence avec filtre indexé" title="Benchmark Coherence avec filtre indexé" width="622" height="427" class="size-full wp-image-3006" /><p
class="wp-caption-text">Benchmark Coherence avec filtre indexé</p></div><p>Avec l'ajout de l'index, le temps de réponse du service a encore nettement chuté et reste proportionnel au nombre de communes retourné. Donc si le filtre est sélectif, le temps de réponse sera très bon.</p><p>En moyenne, la première solution a divisé le temps de réponse par 5, la seconde par 80. Cependant il faut garder à l'esprit qu'un accès à une valeur par son index (<code>cache.get(key)</code>) reste beaucoup plus performant que l'utilisation des <code>Filters</code>. Leurs utilisations doivent rester des exceptions.</p><h4><a
name="Conclusion"></a>Conclusion</h4><p>Les solutions de "Data Grid" modernes comme Oracle Coherence offrent maintenant des services de haut niveau, semblables à ceux offerts par des SGBD, comme la gestion de la concurrence, des transactions, des indexs, du partitionnement, qui permettent d'améliorer nettement les performances d'une application J2EE.</p><h4><a
name="Sources"></a>Sources</h4><p>Vous retrouverez l'ensemble des sources présentées dans ce billet dans le <a
href="http://code.google.com/p/xebia-france/source/browse/trunk/grid/coherence-filter/" title="repository SVN de Xebia France" >repository SVN de Xebia France</a>.</p><h4><a
name="Rfrences"></a>Références</h4><ul><li><a
href="http://www.oracle.com/technology/products/coherence/index.html " title="Oracle Coherence" >Oracle Coherence</a> (Site Officiel)</li><li><a
href=" http://blog.xebia.fr/2009/08/26/les-caches-ces-armes-a-manipuler-avec-precaution/" title="Les caches ces armes  manipuler avec prcaution" >Les caches, ces armes à manipuler avec précaution</a></li><li><a
href=" http://blog.xebia.fr/2009/05/06/paris-jug-soiree-grid-computing-le-12-mai/ " title="Paris JUG  Soire Data Grid le 12 mai" >Paris JUG : Soirée Data Grid le 12 mai</a></li><li><a
href=" http://wiki.tangosol.com/display/COH/Oracle+Coherence+Knowledge+Base+Home " title="Oracle Coherence Knowledge Base Home " >Oracle Coherence Knowledge Base Home </a></li></ul> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/10/14/booster-vos-recherches-avec-oracle-coherence/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/07/06/revue-de-presse-xebia-116/</link> <comments>http://blog.xebia.fr/2009/07/06/revue-de-presse-xebia-116/#comments</comments> <pubDate>Mon, 06 Jul 2009 17:33:30 +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[Jetty]]></category> <category><![CDATA[JUG]]></category> <category><![CDATA[Oracle]]></category> <category><![CDATA[Oracle Middleware 11g]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[Selenium]]></category> <category><![CDATA[Servlet 3.0]]></category> <category><![CDATA[XWT]]></category> <category><![CDATA[ZK]]></category> <category><![CDATA[ZKGrails]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2529</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Oracle annonce Oracle Middleware 11g RIA ZK et ZKGrails Le coin de la technique La transition de Jetty vers Servlet 3.0 XWT pour Eclipse E4 Se donner de la visibilité lors d&#8217;un échec Selenium Evènements de notre communauté en France [...]]]></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/07/06/revue-de-presse-xebia-116/#OracleannonceOracleMiddlewareg">Oracle annonce Oracle Middleware 11g</a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/07/06/revue-de-presse-xebia-116/#ZKetZKGrails">ZK et ZKGrails</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/07/06/revue-de-presse-xebia-116/#LatransitiondeJettyversServlet">La transition de Jetty vers Servlet 3.0</a></li><li><a
href="http://blog.xebia.fr/2009/07/06/revue-de-presse-xebia-116/#XWTpourEclipseE">XWT pour Eclipse E4</a></li><li><a
href="http://blog.xebia.fr/2009/07/06/revue-de-presse-xebia-116/#Sedonnerdelavisibilitlorsdunch">Se donner de la visibilité lors d&#8217;un échec Selenium</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/07/06/revue-de-presse-xebia-116/#SoirerivieraJUG">Soirèe riviera JUG</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="OracleannonceOracleMiddlewareg"></a>Oracle annonce Oracle Middleware 11g</h4><p>Le 1er Juillet, Oracle a présenté sa nouvelle offre autour du middleware: <a
href="http://www.oracle.com/products/middleware/index.html" title="Oracle Middleware 11g" >Oracle Middleware 11g</a> et en particulier son offre SOA, <a
href="http://www.oracle.com/technology/products/soa/soasuite/index.html" title="Oracle SOA Suite" >Oracle SOA Suite</a>.<br
/> Oracle propose un ensemble de produits qui utilisés conjointement permettent de concevoir, développer et superviser une application SOA.<br
/> Cette offre s&#8217;articule principalement autour de:</p><ul><li>JDeveloper pour le développement avec toujours un support soutenu de <a
href=" http://blog.xebia.fr/2007/04/11/introduction-a-sca-service-component-architecture/" title="SCA" >SCA</a> et SDO</li><li>Oracle Data Integration Suite, une offre de connecteurs (Messaging, Database,&#8230;)</li><li>Oracle Service Bus 11g pour le routage, la transformation. Les principales nouveautés sont la possibilité d&#8217;appeler du code Java (seuls les appels vers des WebServices et des EJB étaient proposés), d&#8217;initier des transactions (XA) depuis le bus et de mettre en cache des résultats via Oracle Coherence 3.5 .</li><li>Oracle BPEL Process Manager orchestre l&#8217;ensemble des processus métiers</li><li>Oracle Business Rules offre l&#8217;externalisation des règles métiers</li><li>Oracle Complex Event Processing (CEP) permet le traitement temps réel d&#8217;évènements métiers complexes.</li><li>Oracle Business Activity Monitoring et Oracle Enterprise Manager Fusion Middleware Control se chargent de la supervision technique et métier de l&#8217;application</li><li>Oracle Weblogic Server 11g (10.3.1). Cette version mineure de Weblogic Server remplace Kodo par TopLink, côté JMX, offre la possibilité d&#8217;inscrire des &#8216;CustomMBeans&#8217; dans le Domain Runtime MBean Server et d&#8217;y accéder par WLST et, côté sécurité, deux nouveaux providers pour Oracle Internet Directory  et Oracle Virtual Directory. Le support de Spring Framework semble également un peu plus <a
href="http://download.oracle.com/docs/cd/E12839_01/web.1111/e14453/toc.htm" title="poussé" >poussé</a>. Le plugin Eclipse est également mis à jour <a
href="http://www.oracle.com/technology/products/enterprise-pack-for-eclipse/index.html" title="Oracle Enterprise Pack for Eclipse 11g" >Oracle Enterprise Pack for Eclipse 11g</a></li><li>Oracle Application Grid Coherence 3.5, composé de Weblogic Server, JRockit, Coherence 3.5, offre la technologie pour créer des applications &#8216;Data grid&#8217;.</li></ul><p>Cette nouvelle version des produits étiquetés &#8216;Middleware&#8217; présente (enfin) l&#8217;aboutissement de l&#8217;intégration des produits Oracle et BEA en une suite unifiée. Chaque domaine de l&#8217;application (développement, BPM, routage, intégration, supervision, &#8230;) est maintenant clairement associé à un produit (qui est parfois un regroupement de produits). Pas de nouveaux produits, seulement des versions mineures : serait-ce la version de la maturité ?</p><h3><a
name="RIA"></a>RIA</h3><h4><a
name="ZKetZKGrails"></a>ZK et ZKGrails</h4><p>Des nouvelles du projet <a
href="http://www.zkoss.org/product/zk.dsp" title="ZK" >ZK</a> (<a
href="http://www.zkoss.org/DirectRIA/" title="Direct RIA" >Direct RIA</a>) avec la sortie de la version <a
href="http://www.zkoss.org/release/rn-3.6.2.dsp" title="3.6.2" >3.6.2</a> (par <a
href="http://www.theserverside.com/news/thread.tss?thread_id=55026" title="The Server Side" >The Server Side</a>)</p><p>Pour rappel, ZK est un framework open source Ajax permettant de développer des interfaces riches. Il embarque de nombreux composants graphiques qui vont de la date avec calendrier, de fenêtres et popups mais aussi des menus, des grilles&#8230; La définition de l&#8217;UI se fait à l&#8217;aide de <code>ZUML</code> (ZK User Interface Markup Language).</p><p>Cette version apporte d&#8217;importantes <a
href="http://docs.zkoss.org/wiki/New_Features_of_ZK_3.6.2" title="nouvelles fonctionnalits" >nouvelles fonctionnalités</a> :</p><ul><li>Support de Google App Engine</li><li><a
href="http://docs.zkoss.org/wiki/New_Features_of_ZK_3.6.2#Performance" title="Amlioration des performances" >Amélioration des performances</a></li><li>Nouveaux modes (<em>include</em>, <em>instant</em>, <em>auto</em>&#8230;)</li><li>Mise à jour de composants (XUL et HTML)</li></ul><p>Au total, c&#8217;est <a
href="http://www.zkoss.org/release/rn-3.6.2.dsp#New" title="48 bugs corrigés et 16 nouvelles fonctionnalités" >48 bugs corrigés et 16 nouvelles fonctionnalités</a> pour cette nouvelle mouture de ZK (qui se télécharge sur cette <a
href="http://www.zkoss.org/download/zk.dsp" title="page" >page</a>).</p><p>A noter que dans la foulée, le projet <a
href="http://code.google.com/p/zkgrails/" title="ZKGrails" >ZKGrails</a> (intégration du framework ZK dans Grails) a été <a
href="http://zkgrails.blogspot.com/2009/06/zkgrails-074-has-been-released.html" title="mis à jour" >mis à jour</a> et embarque désormais ZK en version 3.6.2 (et toujours <a
href="http://www.grails.org/1.1.1+Release+Notes" title="Grails en 111" >Grails en 1.1.1</a>).</p><p>Cette version 0.7.4 de ZKGrails se récupère dans l&#8217;onglet <a
href="http://code.google.com/p/zkgrails/downloads/list" title="tlchargements" >téléchargements</a>.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="LatransitiondeJettyversServlet"></a>La transition de Jetty vers Servlet 3.0</h4><p>Jetty propose, depuis sa version 6, une <a
href="http://docs.codehaus.org/display/JETTY/Continuations" title="API" >API</a> de <a
href="http://en.wikipedia.org/wiki/Continuation" title="continuation" >continuation</a> qui permet de suspendre et restituer l&#8217;exécution d&#8217;une requête. Cette fonctionnalité est particulièrement utile dans le cadre d&#8217;une application <a
href="http://en.wikipedia.org/wiki/Comet_(programming)" title="Comet" >Comet</a>.</p><p>Or, cette fonctionnalité est directement adressée par <a
href="http://today.java.net/pub/a/today/2008/10/14/introduction-to-servlet-3.html" title="Servlet 3.0" >Servlet 3.0</a> dont la finalisation est imminente et qui sera implémentée <a
href="http://blog.xebia.fr/2009/06/02/revue-de-presse-xebia-111/#Jettydvoilesaroadmap" title="partiellement par Jetty 7 et entirement par Jetty 8" >partiellement par Jetty 7 et entièrement par Jetty 8</a>. Un temps destiné à être dépréciée après l&#8217;arrivée des Servlet 3.0, l&#8217;API de continuation de Jetty perdurera parallèlement.</p><p>Greg Wilkins en <a
href="http://blogs.webtide.com/gregw/entry/continuations_to_continue" title="explique les raisons" >explique les raisons</a> : il souhaite offrir un compromis intermédiaire à la complexité de l&#8217;API asynchrone de Servlet 3.0. La compatibilité serait quant à elle assurée dans tous les conteneurs Jetty 6, 7 et 8.<br
/> L&#8217;API Servlet 3.0 apporte un certain nombre de changements majeurs. On peut donc s&#8217;attendre à ce que ce type d&#8217;initiatives visant à assurer une transition en douceur des applications se multiplient d&#8217;ici la finalisation de la spécification et de ses implémentations.</p><h4><a
name="XWTpourEclipseE"></a>XWT pour Eclipse E4</h4><p><a
href="http://wiki.eclipse.org/E4" title="Eclipse E4" >Eclipse E4</a> est la prochaine version majeure d&#8217;eclipse.</p><p>Un des objectifs principaux d&#8217;e4 est de simplifier les APIs existantes d&#8217;eclipse.<br
/> Ce refactoring touche entre autres l&#8217;UI d&#8217;eclipse et son modèle de composants.</p><p>Cette <a
href="http://dev.eclipse.org/blogs/yvesyang/2009/07/05/xwt-getting-started-ii/" title="vido" >vidéo</a>, de type <em>XWT in action</em>, nous montre à la fois le code (descripteur XML du modèle&#8230;) mais aussi l&#8217;outillage avec une vue éditeur splittée <em>source</em> / <em>design</em> et une palette de composants SWT (qui sont tous gérés par XWT) et JFace.<br
/> A noter aussi ce <a
href="http://www.vogella.de/articles/EclipseE4/article.html#eclipsexwt" title="tutoriel" >tutoriel</a> de type <em>HelloWorld</em> qui nous montre vers la <a
href="http://www.vogella.de/articles/EclipseE4/article.html#eclipsecss" title="fin" >fin</a> la possibilité de styler ses composants avec une feuille CSS.</p><p>Pour celles et ceux qui sont déjà conquis ou qui souhaitent tester ces nouvelles fonctionnalités, l&#8217;installation d&#8217;E4 sur un eclipse existant est résumée sur cette <a
href="http://wiki.eclipse.org/E4/Install" title="page" >page</a>.</p><h4><a
name="Sedonnerdelavisibilitlorsdunch"></a>Se donner de la visibilité lors d&#8217;un échec Selenium</h4><p>Dans la série <em>trucs et astuces</em>,  Daniel Wellman partage sur <a
href="http://blogs.stickyminds.com/Blogs/tabid/91/EntryId/96/Dont-Debug-Selenium-Test-Failures-Blindly.aspx" title="le blog de stickymindscom" >le blog de stickyminds.com</a> deux moyens de se donner de la visibilité lorsqu&#8217;un test Selenium échoue.</p><ul><li>Faire une capture d&#8217;écran lors de l&#8217;échec : l&#8217;idée peut sembler triviale, mais faire une capture d&#8217;écran devrait permettre d&#8217;éliminer rapidement un certain nombre de cas (une erreur de navigation par exemple). L&#8217;interface <code>com.thoughtworks.selenium .Selenium</code> (et son implémentation par défaut) de SeleniumRC offre une méthode (<code>captureScreenshot(String)</code>) pour réaliser cette capture.</li><li>Enregistrer le DOM HTML : là encore, l&#8217;interface <code>Selenium</code> offre une solution toute faite pour enregistrer l&#8217;intégralité du source dans un fichier texte : <code>getHtmlSource()</code></li></ul><p>Ne reste plus qu&#8217;à factoriser l&#8217;appel de ces méthodes à chaque fois qu&#8217;un test échoue, et vous aurez à votre disposition pour débugger une erreur d&#8217;assertion, une StackTrace, une copie d&#8217;écran et un arbre DOM. Cela devrait faire gagner quelques précieuses minutes, surtout quand les scénarii Selenium sont longs à rejouer.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="SoirerivieraJUG"></a>Soirèe riviera JUG</h4><p>Le riviera JUG organise sa 4ème  rencontre le 15 juillet prochain. Au menu cette soirée estivale,  vous pourrez déguster une présentation sur la méthode SCRUM en plat de résistance et une présentation sur Groovy en dessert.</p><p>Soyez nombreux ! Et n&#8217;oubliez pas de vous inscrire <a
href="http://www.rivierajug.org/xwiki/bin/view/Main/200907XX|Riviera JUG" title="ici" >ici</a>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/07/06/revue-de-presse-xebia-116/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/06/08/revue-de-presse-xebia-112/</link> <comments>http://blog.xebia.fr/2009/06/08/revue-de-presse-xebia-112/#comments</comments> <pubDate>Mon, 08 Jun 2009 17:00:29 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[CEP]]></category> <category><![CDATA[Complex Event Processing]]></category> <category><![CDATA[Flash Builder]]></category> <category><![CDATA[Flash Catalyst]]></category> <category><![CDATA[G1]]></category> <category><![CDATA[Google Wave]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JavaFX]]></category> <category><![CDATA[Oracle]]></category> <category><![CDATA[Project Coin]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[Silver]]></category> <category><![CDATA[SOA]]></category> <category><![CDATA[Sun]]></category> <category><![CDATA[Tibco]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2170</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Tibco dans les nuages avec Silver Oracle s&#8217;investit dans JavaFx G1 payant : une simple incompréhension RIA Sortie beta de Flash Builder 4 et de Flash Catalyst Le coin de la technique Project Coin (Com)prendre la vague Google Wave Actualité [...]]]></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’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/06/08/revue-de-presse-xebia-112/#TibcodanslesnuagesavecSilver">Tibco dans les nuages avec Silver</a></li><li><a
href="http://blog.xebia.fr/2009/06/08/revue-de-presse-xebia-112/#OraclesinvestitdansJavaFx">Oracle s&#8217;investit dans JavaFx</a></li><li><a
href="http://blog.xebia.fr/2009/06/08/revue-de-presse-xebia-112/#Gpayantunesimpleincomprhension">G1 payant : une simple incompréhension</a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/06/08/revue-de-presse-xebia-112/#SortiebetadeFlashBuilderetdeFl">Sortie beta de Flash Builder 4 et de Flash Catalyst</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/06/08/revue-de-presse-xebia-112/#ProjectCoin">Project Coin</a></li><li><a
href="http://blog.xebia.fr/2009/06/08/revue-de-presse-xebia-112/#ComprendrelavagueGoogleWave">(Com)prendre la vague Google Wave</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="TibcodanslesnuagesavecSilver"></a>Tibco dans les nuages avec Silver</h4><p><a
title="Tibco a annonc la semaine dernire la sortie prochaine de Silver" href="http://www.tibco.com/company/news/releases/2009/press967.jsp">Tibco a annoncé la semaine dernière la sortie prochaine de Silver</a>, une plate-forme de Cloud Computing en mode PaaS <em>(Platform as a Service)</em>. Cette offre entrera en phase de beta privée d&#8217;ici la fin du mois de juin et ne sera disponible qu&#8217;en 2010.</p><p>Dans un premier temps, Tibco a fait le choix d&#8217;adosser <a
title="Silver" href="http://silver.tibco.com">Silver</a> sur <a
title="Amazon EC2 &lt;em&gt;(Elastic Compute Cloud)&lt;/em&gt;" href="http://aws.amazon.com/ec2/">Amazon EC2 <em>(Elastic Compute Cloud)</em></a> pour la partie infrastructure. L&#8217;objectif à terme est d&#8217;offrir une intégration avec un large panel des fournisseurs de plates-formes de Cloud Computing <em>(y compris des plates-formes maisons)</em> et ainsi de positionner Silver comme une plate-forme d&#8217;exécution universelle agnostique vis-à-vis de l&#8217;infrastructure qui la supporte.<br
/> Dans ses premières versions, Silver proposera des conteneurs pour l&#8217;exécution de composants Java, Spring, POJO, et Ruby et d&#8217;ici peu, Silver supportera également Python, Perl, C, C++, et .Net. Tibco adressera ainsi un panel très large de technologies de développement.</p><p>La plate-forme Silver vise à outiller cette infrastructure de Cloud Computing. Pour ce faire, Tibco capitalise sur <a
title="son offre SOA ActiveMatrix" href="http://www.tibco.com/software/soa/default.jsp">son offre SOA ActiveMatrix</a> afin de proposer :</p><ul><li>Un modèle de composition et d&#8217;orchestration de services basé sur <a
title="SCA &lt;em&gt;(Service Component Architecture)&lt;/em&gt;" href="http://blog.xebia.fr/2007/04/11/introduction-a-sca-service-component-architecture/">SCA <em>(Service Component Architecture)</em></a> : <em>Tibco ActiveMatrix BusinessWorks</em>.</li><li>Un <em>backbone</em> d&#8217;intégration, tiers d&#8217;inter-médiation supportant la communication et l&#8217;échange entre services au travers d&#8217;un large choix de protocoles de transport : <em>Tibco ActiveMatrix Service Bus</em>.</li><li>La supervision et la gestion des performances et des SLAs des services déployés : <em>Tibco ActiveMatrix Service Performance Manager</em>.</li><li>Un système de gouvernance pour la gestion du cycle de vie des services et de leurs règles d&#8217;utilisation <em>(policies)</em> : <em>Tibco ActiveMatrix Lifecycle Governance Framework</em>.</li></ul><p>D&#8217;autre part, Silver tire largement partie du savoir faire de Tibco dans le domaine du CEP <em>(Complex Event Processing)</em> : <em>Tibco BusinessEvents</em>.<br
/> La combinaison des capacités de supervision des SLAs <em>(et plus largement des performances)</em> et des capacités de CEP de la plate-forme permet d&#8217;automatiser le provisionnement de l&#8217;infrastructure de Cloud Computing.<br
/> C&#8217;est là la grande promesse de Silver : proposer une plate-forme capable d&#8217;allouer <em>(ou de désallouer)</em> automatiquement des ressources à des services ou à des applications au sein de l&#8217;infrastructure de Cloud Computing en fonction de l&#8217;utilisation qui en est faite dans le temps. Ainsi, là où sur les autres plates-formes une intervention humaine est nécessaire pour faire jouer l&#8217;élasticité de la plate-forme, Silver adapte l&#8217;utilisation qui est faite de l&#8217;infrastructure en se basant sur ses capacités de monitoring dont les résultats sont traités au travers d&#8217;un modèle Evènement / Décision / Action s&#8217;appuyant sur les règles de gestion des SLAs.</p><h4><a
name="OraclesinvestitdansJavaFx"></a>Oracle s&#8217;investit dans JavaFx</h4><p>Du moins, Larry Ellison, qui suggère de ré-écrire l&#8217;UI de OpenOffice en utilisant JavaFx.<br
/> En attendant cette hypothétique révolution, le framework de Sun a dévoilé quelques nouveautés durant JavaOne, en ajout à <a
title="la sortie de la version 12 dont nous nous faisions lcho la semaine dernire" href="http://blog.xebia.fr/2009/06/02/revue-de-presse-xebia-111/#JavaFXestarriv">la sortie de la version 1.2 dont nous nous faisions l&#8217;écho la semaine dernière</a>.</p><ul><li>Démonstration d&#8217;un outil collaboratif de développement : en plus des annonces de renforcement du développement du plugin JavaFx-Eclipse, Sun a donné une démonstration publique d&#8217;un outil de création graphique assez impressionnant : gestion de la <em>Scene</em>, drag and drop de composants, d&#8217;effets&#8230; Reste à savoir quand celui ci sera disponible&#8230;</li><li>Autre démonstration, plus attendue, celle de JavaFx for TV, avec une application réalisant des prévisualisations et des téléchargements de films à partir d&#8217;un téléviseur LG.</li></ul><h4><a
name="Gpayantunesimpleincomprhension"></a>G1 payant : une simple incompréhension</h4><p>La semaine dernière, une simple petite phrase a suffit à déclencher un tollé :<br
/> <em>Although G1 is available for use in this release, note that production use of G1 is only permitted where a Java support contract has been purchased. G1 is supported thru Sun&#8217;s Java Platform Standard Edition for Business program.</em><br
/> [...]l&#8217;utilisation en production de G1 n&#8217;est autorisée que pour les utilisateurs ayant acheté un contrat de support Java[...]<br
/> <a
title="Oracle avait il sonné le glas de JVM gratuites ?" href="http://blog.xebia.fr/2009/06/02/revue-de-presse-xebia-111/#GPayantOraclesonnetilleglasdes">Oracle avait il sonné le glas des JVM gratuites ?</a></p><p>Visiblement, tout cela ne serait qu&#8217;un choix de mots malheureux, qui ont d&#8217;ailleurs été remplacés par la phrase suivante :<br
/> <em>G1 is available as early access in this release, please try it and give us feedback. Usage in production settings without a Java SE for Business support contract is not recommended.</em><br
/> [...]l&#8217;utilisation en production [de G1] &#8230; est déconseillé en l&#8217;absence de support Java SE Business[...]</p><p>Par ailleurs, Alexis MP (Sun), en réaction à la publication de la news la semaine dernière, apporte quelques précisions dans <a
title="son commentaire sur notre blog" href="http://blog.xebia.fr/2009/06/02/revue-de-presse-xebia-111/comment-page-1/#comment-13155">son commentaire sur notre blog</a> :</p><ul><li>G1 peut être assimilée à une <em>option (donc non essentielle) payante</em>, comme cela se pratique chez MySql.</li><li>La monétisation du support Java SE Business n&#8217;est pas une nouveauté.</li><li>Sun est toujours indépendant, et ses choix et annonces ne sont pas influencés par Oracle</li></ul><p>Réel quiproquo donc, sans conséquences? Quoi qu&#8217;il en soit, la communication de Sun a été bien maladroite, en ces temps où de gros doutes planent sur l&#8217;avenir de Java.</p><h3><a
name="RIA"></a>RIA</h3><h4><a
name="SortiebetadeFlashBuilderetdeFl"></a>Sortie beta de Flash Builder 4 et de Flash Catalyst</h4><p>Adobe a annoncé les sorties de ses nouveaux produits en version beta. <a
title="Flash Builder 4" href="http://labs.adobe.com/technologies/flashbuilder4/">Flash Builder 4</a>, successeur du Flex Builder, supporte le Flex SDK 4 et propose de nouvelles fonctionnalités. Parmi elles nous noterons le support de Flex Unit, la possibilité de lier les données aux composants (ex : services Java). Une liste des nouveautés et améliorations est disponible <a
title="ici" href=" http://www.adobe.com/devnet/flex/articles/flex4builder_whatsnew.html">ici</a>.<br
/> <a
title="Flex SDK 4" href="http://labs.adobe.com/technologies/flex4sdk/">Flex SDK 4</a> (Gumbo) nous arrive avec une nouvelle architecture : Spark Component. Cette dernière permet de séparer la gestion de la customisation, mise en page et de la logique des composants. Cette séparation a été effectuée afin que les futures versions du SDK puissent évoluer, tout en gardant la rétro compatibilité avec les SDK antérieurs. De plus, cela permet également d&#8217;avoir une gestion plus fine de la customisation des composants. Néanmoins, cela a entrainé l&#8217;arrivé d&#8217;une syntaxe MXML plus enrichie (= namespace supplémentaires) :</p><pre class="brush: xml; title: ; notranslate">
xmlns:fx=&quot;http://ns.adobe.com/mxml/2009&quot;
xmlns:s=&quot;library://ns.adobe.com/flex/spark&quot;
xmlns:mx=&quot;library://ns.adobe.com/flex/halo&quot;
</pre><p>De plus, Flex 4 introduit le support de FXG : cette librairie permet de simplifier la création d&#8217;objets graphiques (rectangle, ellipse, &#8230;) ainsi que d&#8217;effets (transformations) pour la plateforme Flash. Les performances concernant la compilation ont été améliorées. Vous trouverez une liste des autres nouveautés <a
title="ici" href="http://www.adobe.com/devnet/flex/articles/flex4sdk_whatsnew.html">ici</a>.</p><p>Enfin, <a
title="Flash Catalyst" href="http://labs.adobe.com/technologies/flashcatalyst/">Flash Catalyst</a> est arrivé : ce dernier nous donne la possibilité de « transformer » des artworks Photoshop et/ou Illustrator en interface utilisateur avec la collaboration de Flash Builder 4. Voici une <a
title="vido assez impressionnante" href="http://tv.adobe.com/#vi+f1532v1001">vidéo assez impressionnante</a> sur l&#8217;utilisation de ce nouveau produit. Le but est de pouvoir dérouler un meilleur workflow entre les designers et les développeurs. En effet, avec Flash Catalyst un designer peut faire une maquette sous Photoshop, ajouter les effets de transitions et de succession de pages. Ce dernier sauvegarde le projet Flash Catalyst qui pourra être utilisé par un développeur sous Flash Builder 4.</p><p>Cependant, nous noterons des interrogations : le coup des licences : actuellement les licences Photoshop et Flex Builder 3 représentent un investissement qui n&#8217;est pas forcément négligeable. Peut être qu&#8217;Adobe proposera un package avec toute la suite ? De plus, la relation entre designer/développeur peut apporter un certain danger : toutes les sociétés n&#8217;ont pas le luxe d&#8217;avoir des ressources dédiées au design &#8230; les développeurs devront donc se mettre au design, ou alors les designers devront avoir de meilleurs connaissances au niveau développement (utilisation du Flash Builder 4).<br
/> Pour conclure, avec toutes ces nouveautés nous voyons qu&#8217;Adobe a décidé de passer à la vitesse supérieure, et veut continuer d&#8217;être un des acteurs principaux dans la guerre des technologies RIA.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="ProjectCoin"></a>Project Coin</h4><p>Voici quelques nouvelles de <a
title="Project Coin" href="http://openjdk.java.net/projects/coin/">Project Coin</a> (dont nous vous parlions il y a <a
title="quelques mois" href="http://blog.xebia.fr/2009/03/16/revue-de-presse-xebia-100/#OpenJdkProjectCoinproposezvosv">quelques mois</a>) par l&#8217;intermédiaire de <a
title="Joseph Darcy" href="http://blogs.sun.com/darcy/">Joseph Darcy</a> et de sa présentation faite à <a
title="JavaOne" href="http://java.sun.com/javaone/">JavaOne</a> suite à la <a
title="seconde slection de features retenus le 27 mai dernier" href="http://blogs.sun.com/darcy/date/20090527">seconde sélection de <em>features</em> retenus le 27 mai dernier</a>.</p><p>Pour rappel, le but du projet est de proposer de petites évolutions pour le langage Java, la communauté pouvant participer en passant par la mailing-list (avec du beau monde comme Bob Lee, Joshua Bloch, Neal Gafter&#8230;). Plusieurs comptes rendus de cette session sont déjà disponibles (chez <a
title="Alex Miller" href="http://tech.puredanger.com/2009/06/02/javaone-coin">Alex Miller</a> ou <a
title="Cay Horstmann" href="http://weblogs.java.net/blog/cayhorstmann/archive/2009/06/java_one_2009_d_1.html">Cay Horstmann</a>). On retiendra ainsi :</p><ul><li>Le <em>switch</em> avec <em>String</em> (<code>switch(str) {case "foo": return 1;  case "bar": return 2; }</code>)</li><li>Le <em>multi catch</em> (<code>try { ... } catch (Extype1 | Extype2 ex) { logger.log(ex); }</code>)</li><li>L&#8217;<em>exception handling</em> avec les opérateurs <em>?:</em>, <em>?.</em> et <em>?[]</em> (<a
title="proposition" href="http://mail.openjdk.java.net/pipermail/coin-dev/2009-March/000047.html">proposition</a>)</li><li>La <em>collection literals</em> ou création de liste avec valeur par défaut comme pour les tableaux (<code>List&lt;String&gt; list = ["a", "b"];</code>)</li><li>L&#8217;opérateur <em>diamond</em> permettant d&#8217;avoir un constructeur <em>light</em> qui ne contient pas les generics (<code>Map&lt;String, List anagrams = new HashMap&lt;&gt;();</code>)</li><li>Nombres avec underscores (<code>long creditCardNumber = 1234_5678_9012_3456L;</code>)</li></ul><p>De bien belles propositions donc qui allégeront nos classes Java, surtout ces <span
style="text-decoration: line-through;">ignobles</span> <em>if(myObject != null) {return myObject.aMethod()}</em> qui deviendrait ainsi <em>myObject?.aMethod();</em>. En espérant que tout ce petit monde arrivera vite&#8230;</p><h4><a
name="ComprendrelavagueGoogleWave"></a>(Com)prendre la vague Google Wave</h4><p>Définitivement <a
title="la star de Google IO 2009 Google Wave" href="http://blog.xebia.fr/2009/06/01/google-io-2009-annonces-et-strategie-google/#GoogleWavelagrosseannoncedelac">la star de Google I/O 2009, Google Wave</a> se dévoile peu à peu et nous laisse admirer la mécanique qui se cache derrière la future (?) référence de plate forme collaborative.<br
/> Le coeur du système repose sur le <a
title="protocole cr pour loccasion" href="http://www.waveprotocol.org/">protocole créé pour l&#8217;occasion</a>.<br
/> <a
title="InfoQ propose un zoom sur 2 sous domaines de ce protocole" href="http://www.infoq.com/news/2009/06/wave">InfoQ propose un zoom sur 2 sous domaines de ce protocole</a>, extraits du <a
title="site officiel que Google consacre  son invention" href="http://www.waveprotocol.org/">site officiel que Google consacre à son invention</a> :</p><ul><li><a
title="Operational Transform" href="http://www.waveprotocol.org/whitepapers/operational-transform">Operational Transform</a> : c&#8217;est le coeur du système, le framework de gestion de la concurrence. Toute modification est sauvée en local et envoyée en temps réel au serveur, qui se charge de traiter toutes les fusions, conservant la version référence, qui est ensuite poussée vers tous les clients graphiques consultant ce document. Dans l&#8217;attente de l&#8217;accusé de réception du serveur (le serveur a reçu la modification, l&#8217;a incorporé, et l&#8217;a propagé à tous les clients), chaque client cache toutes les modifications effectuées en local, qui seront envoyées en paquet ultérieurement.</li><li><a
title="le modle de donnes" href="http://www.waveprotocol.org/whitepapers/internal-client-server-protocol">le modèle de données</a> : une Wave contient plusieurs Wavelets, qui contiennent des participants et des documents. La concurrence d&#8217;accès est gérée au niveau Wavelet. L&#8217;état d&#8217;un Wavelet est déterminé par une séquence ordonnée de modifications appliquées / en cours d&#8217;application sur un document.</li></ul><p>A noter en outre que Google réutilise pour l&#8217;interface graphique deux de ses technologies open source, à savoir GWT (dont c&#8217;est le grand retour chez Google) et Google Gears (pour le drag &amp; drop).</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/06/08/revue-de-presse-xebia-112/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/06/02/revue-de-presse-xebia-111/</link> <comments>http://blog.xebia.fr/2009/06/02/revue-de-presse-xebia-111/#comments</comments> <pubDate>Tue, 02 Jun 2009 10:52:21 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[Adobe]]></category> <category><![CDATA[Flash]]></category> <category><![CDATA[Flash Catalyst]]></category> <category><![CDATA[FlashBuilder]]></category> <category><![CDATA[Flex]]></category> <category><![CDATA[FlexUnit]]></category> <category><![CDATA[G1]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[Google IO]]></category> <category><![CDATA[GWT]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JavaFX]]></category> <category><![CDATA[Jetty]]></category> <category><![CDATA[Oracle]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[SmartGWT]]></category> <category><![CDATA[Tellerium]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=2094</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. RIA Sortie de SmartGWT 1.1 FlashBuilder 4 supportera FlexUnit 4 JavaFX 1.2 est arrivé Le coin de la technique G1 Payant ! Oracle sonne-t-il le glas des machines virtuelles Java gratuites ? Jetty dévoile sa roadmap Sortie de Tellerium 0.6.0 RC1 Evènements de notre [...]]]></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>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/06/02/revue-de-presse-xebia-111/#SortiedeSmartGWT">Sortie de SmartGWT 1.1</a></li><li><a
href="http://blog.xebia.fr/2009/06/02/revue-de-presse-xebia-111/#FlashBuildersupporteraFlexUnit">FlashBuilder 4 supportera FlexUnit 4</a></li><li><a
href="http://blog.xebia.fr/2009/06/02/revue-de-presse-xebia-111/#JavaFXestarriv">JavaFX 1.2 est arrivé</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/06/02/revue-de-presse-xebia-111/#GPayantOraclesonnetilleglasdes">G1 Payant ! Oracle sonne-t-il le glas des machines virtuelles Java gratuites ?</a></li><li><a
href="http://blog.xebia.fr/2009/06/02/revue-de-presse-xebia-111/#Jettydvoilesaroadmap">Jetty dévoile sa roadmap</a></li><li><a
href="http://blog.xebia.fr/2009/06/02/revue-de-presse-xebia-111/#SortiedeTelleriumRC">Sortie de Tellerium 0.6.0 RC1</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/06/02/revue-de-presse-xebia-111/#ConfrenceGoogleIO">Conférence Google  IO 2009</a></li><li><a
href="http://blog.xebia.fr/2009/06/02/revue-de-presse-xebia-111/#AdobeprsenteFlashCatalystParis">Adobe présente Flash Catalyst à Paris</a></li></ul><h3><a
name="RIA"></a>RIA</h3><h4><a
name="SortiedeSmartGWT"></a>Sortie de SmartGWT 1.1</h4><p>Il aura fallu attendre près de 6 mois pour pouvoir apprécier la nouvelle version de <a
href="http://code.google.com/p/smartgwt/" title="SmartGWT" >SmartGWT</a>, le wrapper GWT de <a
href="http://www.smartclient.com/" title="SmartClient" >SmartClient</a> par <a
href="http://www.jroller.com/sjivan/" title="Sanjiv Jivan" >Sanjiv Jivan</a> (<a
href="http://blog.xebia.fr/2008/12/01/revue-de-presse-xebia-85/#SortiedeSmartGWT" title="sortie de la version 1.0 lors d'une précédente revue de presse" >sortie de la version 1.0 lors d&#8217;une précédente revue de presse</a>), information relayée par l&#8217;<a
href="http://www.jroller.com/sjivan/entry/smartgwt_out_of_beta_v1" title="auteur" >auteur</a> et par <a
href="http://www.theserverside.com/news/thread.tss?thread_id=54747" title="The Server Side" >The Server Side</a>.</p><p>Cette version 1.1 apporte de nombreuses nouveautés (liste exhaustive sur la <a
href="http://www.smartclient.com/smartgwt/release_notes.html" title="release note" >release note</a>) :</p><ul><li>Correction de <a
href="http://code.google.com/p/smartgwt/issues/list?can=1&#038;q=label:SmartGWT-1.0b3" title="plus de 50 bugs" >plus de 50 bugs</a>.</li><li>Amélioration générale des performances des composants et des skins.</li><li>Champs de <a
href=" http://www.smartclient.com/smartgwt/showcase/#grid_formula_sumamry_builder_new_category" title="formules et rsums" >formules et résumés</a> (wizards, bindable avec des DataBoundComponent&#8230;).</li><li>Support du <em>GWT-RPC DataSource</em> avec les <em>DataBoundComponent</em> (tableaux, arbres, menus&#8230;).</li><li>Nombreuses documentations <em>Javadoc</em> (le gros défaut de <a
href="http://code.google.com/p/gwt-ext/" title="GWTExt" >GWT-Ext</a>).</li><li>API de récupération d&#8217;état de la vue depuis le serveur (pour de nombreux composants).</li><li>Nouveaux exemples dans le <a
href="http://www.smartclient.com/smartgwt/showcase" title="Showcase" >Showcase</a> au niveau de <em>New Samples</em>.</li><li>Un projet <em>Helloworld</em> pour SmartGWT avec GWT 1.6 &#8230;</li></ul><p>Une librairie open source <em>gratuite dans son intégralité</em> (<a
href="http://www.smartclient.com/product/index.jsp" title="licence LGPL" >licence LGPL</a>), <a
href="http://www.smartclient.com/product/download.jsp" title="ça ne se refuse pas" >ça ne se refuse pas</a> ou au moins <a
href="http://www.smartclient.com/smartgwt/showcase/#grid_grouping_custom_new_category" title="a se teste" >ça se teste</a> !</p><h4><a
name="FlashBuildersupporteraFlexUnit"></a>FlashBuilder 4 supportera FlexUnit 4</h4><p>Bonne nouvelle pour les développeurs Flex, nous apprenons par <a
href="http://www.insideria.com/2009/05/flashbuilder4-will-support-fle.html" title="InsideRIA" >InsideRIA</a> que FlexUnit 4 pourra être utilisé sur -FlexBuilder 4- <a
href="http://blog.xebia.fr/2009/05/25/revue-de-presse-xebia-110/#FlexBuilderdevientFlashBuilder" title="FlashBuilder 4" >FlashBuilder 4</a>.<br
/> Dans cet article, l&#8217;auteur nous présente les nouvelles fonctionnalités que propose FlexUnit 4 telles que :</p><ul><li>Création simplifiée de suites de tests.</li><li>Création et intégration facile de test runner à d&#8217;autres frameworks.</li><li>Utilisation de l&#8217;intégration continue grâce à une automatisation de l&#8217;intégration.</li><li>Meilleure gestion des tests asynchrones.</li><li>Meilleure gestion des exceptions.</li><li>Comme les annotations en Junit 4, les tests peuvent être gérés par les <a
href="http://livedocs.adobe.com/flex/3/html/help.html?content=metadata_3.html" title="Metadata" >Metadata</a>.</li></ul><p>La prochaine étape maintenant est d&#8217;intégrer le projet à FlashBuilder 4. Il est d&#8217;ailleurs possible de <a
href="http://bugs.adobe.com/jira/browse/FB-18873" title="voter pour ce projet" >voter pour ce projet</a>. Si cela vous intéresse n&#8217;hésitez pas à voter vous aussi.</p><h4><a
name="JavaFXestarriv"></a>JavaFX 1.2 est arrivé</h4><p>En accord avec le planning annoncé dès décembre dernier lors de <a
href="http://devoxx.com/" title="Devoxx" >Devoxx</a>, une nouvelle version de JavaFX vient d&#8217;être <a
href="http://javafx.com/" title="mise à disposition" >mise à disposition</a>. Les apports sont nombreux et comblent certains manques de la version 1.1. Le site de JavaFX propose <a
href="http://javafx.com/docs/articles/javafx1-2.jsp" title="un tour d'horizon" >un tour d&#8217;horizon</a> très complet des nouveautés et Stephen Chin en présente <a
href="http://steveonjava.com/2009/05/31/javafx-1-2-top-10/" title="un rsum accompagn dun guide de migration" >un résumé accompagné d&#8217;un guide de migration</a>. On retiendra :</p><ul><li>Ajout de <em>widgets</em> propres à JavaFX, <em>skinnables</em> et disponibles sur toute les plate-formes. Il n&#8217;est donc plus nécessaire de faire appel à des composants Swing (qui étaient inaccessibles sur mobile). L&#8217;ensemble des composants simples sont disponibles (bouton, checkbox, &#8230;), par contre la <code>ListView</code> est le seul composant de haut niveau à être fourni, pas de <em>table</em>, ni de <em>tree</em>.</li><li>Ajout de composants dédiés à la création de graphiques de type <em>Area, Bar, Bubble, Line, Pie, Scatter</em> et <em>X/Y</em>.</li><li>Ajout de <a
href="http://java.sun.com/developer/technicalArticles/javafx/v1_2_newlayouts/" title="nouveaux layouts " >nouveaux <em>layouts</em> </a> en supplément des <code>VBox</code> et <code>HBox</code> déjà disponibles.</li><li>Support de Linux et Solaris.</li></ul><p>La compatibilité des binaires générés par JavaFX n&#8217;est pas assurée entre cette nouvelle version 1.2 et ses prédécesseurs. Il sera donc nécessaire de recompiler les applications pour assurer la migration.</p><p>Le nouveau JavaFX sera donc sorti dans les temps pour être le sujet de nombreuses présentations et annonces lors de <a
href="http://java.sun.com/javaone/" title="JavaOne" >JavaOne</a> qui débute aujourd&#8217;hui même à San Fransisco. Comme <a
href="http://blog.xebia.fr/2009/05/11/revue-de-presse-xebia-108/#JavaFXinformationsetcontrovers" title="nous vous en parlions" >nous vous en parlions</a> il y a quelques semaines, le support des TVs <em>pourrait</em> y faire l&#8217;objet d&#8217;une démonstration.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="GPayantOraclesonnetilleglasdes"></a>G1 Payant ! Oracle sonne-t-il le glas des machines virtuelles Java gratuites ?</h4><p>Oracle va-t-il rendre Java payant ? Cette question que tous posaient après l&#8217;annonce du rachat de Sun revient aujourd&#8217;hui au premier plan avec une phrase sibylline de l&#8217;annonce de la <a
href="http://java.sun.com/javase/6/webnotes/6u14.html" title="version 6 update 14 de la JVM de Sun" >version 6 update 14 de la JVM de Sun</a> :<br
/> <quote><br
/> <em>&laquo;&nbsp;Although G1 is available for use in this release, note that <strong>production use of G1 is only permitted where a Java support contract has been purchased</strong>&#8230;&nbsp;&raquo;</em><br
/> </quote><br
/> En théorie, la fonctionnalité concernée est encore expérimentale et le rachat de Sun par Oracle n&#8217;est pas clos : Oracle n&#8217;a pas à s&#8217;immiscer dans la gestion au quotidien de Sun  ; il n&#8217;y aurait donc pas de raison que Sun change de stratégie sur la JVM.<br
/> Cependant, on n&#8217;a jamais vu de telles limitations contractuelles sur la JVM de Sun. Si les JVM mobile et temps réel ont toujours été payantes chez Sun comme IBM et BEA/Oracle, les JVMs serveur et poste de travail étaient traditionnellement gratuites &#8230;  à un détails près : la JVM JRockit de BEA était devenue payante dès le rachat par Oracle ; on avait alors invoqué des considérations contractuelles qui empêchaient Oracle de distribuer gratuitement une JVM.</p><p>C&#8217;est aujourd&#8217;hui la très répandue JVM de Sun qui est menacée ; une fois de plus à la suite d&#8217;un rachat par Oracle. Faut-il craindre la fin des JVM gratuites ? Pour le poste de travail, cela parait très improbable faute de modèle économique crédible mais pour les serveurs, un revirement d&#8217;Oracle semble possible et dans la lignée de la nouvelle politique de JRockit. Il resterait alors disponibles gratuitement les JVM <a
href="http://www.ibm.com/developerworks/java/jdk/index.html" title="IBM J9" >IBM J9</a> et <a
href="http://openjdk.java.net/" title="Open JDK" >Open JDK</a>, le projet Open Source dont la gouvernance par Sun a été sujette à polémique ces derniers mois. Nous noterons au passage que G1 sera inclus dans la <a
href="http://openjdk.java.net/projects/jdk7/features/#f230" title="version 7 dOpen JDK" >version 7 d&#8217;Open JDK</a>.</p><p>Pour revenir sur les nouveautés de la JVM 6 update 14, nous retiendrons : la compression des pointeurs (<code>-XX:+UseCompressedOops</code>) pour les JVM 64 bits (cf. <a
href="http://blog.xebia.fr/2008/05/26/revue-de-presse-xebia-58/#Javabitspassisouventunebonneid" title="Java 64 bits, pas si souvent une bonne idée" >Java 64 bits, pas si souvent une bonne idée</a>), l&#8217;optimisation des accès aux variables utilisées sur un seul thread ( <code>-XX:+DoEscapeAnalysis</code> ) et ce <a
href="http://blog.xebia.fr/2008/03/12/gc-generationnels-traditionnels-jdk6-vs-gc-garbage-first-jdk7/" title="Garbage First (G1) Garbage Collector" >Garbage First (G1) Garbage Collector</a> optimisé pour la gestion de grands volumes de mémoire mais réservé en production aux souscripteurs d&#8217;un contrat de support.</p><h4><a
name="Jettydvoilesaroadmap"></a>Jetty dévoile sa roadmap</h4><p>Comme tous les conteneurs Servlet / JSP du marché, <a
href="http://www.eclipse.org/jetty/" title="Jetty" >Jetty</a> se prépare à l&#8217;arrivée de la <a
href="http://www.jcp.org/en/jsr/detail?id=315" title="JSR-315 (Servlet 3.0)" >JSR-315 (Servlet 3.0)</a> prévue pour cet été. Par ailleurs, il opère également divers changements dûs à sa récente <a
href="http://www.eclipse.org/proposals/jetty/" title="intgration  la fondation Eclipse" >intégration à la fondation Eclipse</a>.</p><p>Greg Wilkins a présenté <a
href="http://blogs.webtide.com/gregw/entry/jetty_6_jetty_7_and" title="une roadmap dtaille" >une roadmap détaillée</a> des fonctionnalités qui seront présentes dans les futures versions de Jetty.</p><p><strong>Jetty 6</strong> reste la version stable en attendant l&#8217;arrivée de son successeur.</p><p><strong>Jetty 7</strong> est la branche de développement que Greg Wilkins conseille d&#8217;adopter pour les projets débutant actuellement. Elle marquera la migration vers le package <code>org.eclipse.jetty</code>, et apportera une remodularisation accompagnée d&#8217;un packaging en bundle OSGi en supplément des artifacts Maven, et une préparation à Servlet 3.0 dont il proposera une <em>preview</em>.</p><p><strong>Jetty 8</strong> ne différera guère de son prédécesseur, il s&#8217;agira avant tout d&#8217;un <em>rebuild</em> en Java 1.6 exclusivement, accompagné d&#8217;une conformance stricte à Servlet 3.0 dont la spécification sera alors finalisée.</p><p>Aucune date précise n&#8217;est indiquée par l&#8217;auteur, mais il semble que la finalisation de la spécification Servlet 3.0 constituera le principal régulateur du calendrier de Jetty.</p><h4><a
name="SortiedeTelleriumRC"></a>Sortie de Tellerium 0.6.0 RC1</h4><p><a
href="http://code.google.com/p/aost/" title="Tellerium" >Tellerium</a> est un framework de tests unitaires d&#8217;interface utilisateur. Le projet s&#8217;appuie sur <a
href="http://seleniumhq.org/" title="Selenium" >Selenium</a>, est compatible avec JUnit et TestNG et permet d&#8217;écrire les tests en Java, Groovy ou par un DSL.</p><p>Les nouvelles fonctionnalités entre la version 0.5.0 et cette 0.6.0 sont <a
href="http://code.google.com/p/aost/wiki/WhatsNewInTellurium_0_6_0#New_Features" title="plutt nombreuses" >plutôt nombreuses</a>, on notera ainsi :</p><ul><li>Ajout du sélecteur <a
href="http://jquery.com/" title="jQuery" >jQuery</a> (et du jQuery Cache).</li><li>Support de Selenium 1.0 Beta 2 et Groovy 1.6.</li><li>Core (<em>Include</em>, <em>setCustomConfig</em>, <em>Dump method</em> &#8230;).</li><li>Selenium Grid (tests en parallèle).</li><li>Archetype Maven (JUnit et TestNG) &#8230;</li></ul><p>Plusieurs nouvelles fonctionnalités donc mais surtout de nombreuses optimisations de performances, des tests plus rapides et plus faciles à écrire, le tout utilisant les versions les plus récentes des projets dont il dépend. A noter aussi le plugin pour FireFox <a
href="http://code.google.com/p/aost/wiki/announcements#Tellurium_UI_Model_Plugin_(TrUMP)_0.1.0_is_released" title="TrUMP" >TrUMP</a> (Tellerium UI Model Plugin) permettant d&#8217;écrire plus rapidement les tests (enregistrement des clicks, validation et customisation, export Groovy&#8230;).</p><p>Le téléchargement se passe <a
href="http://code.google.com/p/aost/downloads/list" title="par ici" >par ici</a>, et pour les <em>pom</em> ça se passe <a
href="http://code.google.com/p/aost/wiki/announcements#Tellurium_0.6.0_RC1_is_out" title="en bas de page par l" >en bas de page par là</a>.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="ConfrenceGoogleIO"></a>Conférence Google  IO 2009</h4><p><a
href="http://code.google.com/events/io/" title="Google IO 2009" >Google I/O 2009</a> s&#8217;est tenu la semaine dernière à San Francisco. Il s&#8217;agit d&#8217;une des conférences destinées aux développeurs utilisateurs des applications et des API de Google. L&#8217;actualité autour de cette conférence étant relativement importante, nous avons décidé de traiter celle-ci dans un article séparé.</p><p>En voici les grandes lignes de ce qui s&#8217;est vu à Google I/O :</p><ul><li>Le futur du Web, avec les premières <a
href="http://blog.xebia.fr/2009/06/01/google-io-2009-annonces-et-strategie-google/#HTMLlepremierwhaoueffect" title="dmonstrations moustillantes Html 5" >démonstrations émoustillantes Html 5</a>.</li><li><a
href="http://blog.xebia.fr/2009/06/01/google-io-2009-annonces-et-strategie-google/#GoogleWavelagrosseannoncedelac" title="Google Wave" >Google Wave</a>, le prochain outil de communication et collaboration made in Google.</li><li>La <a
href="http://blog.xebia.fr/2009/06/01/google-io-2009-annonces-et-strategie-google/#GWTaucurdelastratgieGoogle" title="rconciliation de Google avec GWT" >réconciliation de Google avec GWT</a>, sortie de <strong>Gwt Query</strong>.</li><li>Le futur d&#8217;Android, avec l&#8217;annonce de la branche <a
href="http://blog.xebia.fr/2009/06/01/google-io-2009-annonces-et-strategie-google/#AndroidDonutrecherchesetfiltre" title="Android 20  Donut" >Android 2.0 : Donut</a>.</li><li><a
href="http://blog.xebia.fr/2009/06/01/google-io-2009-annonces-et-strategie-google/#JavasurGoogleAppEngineouvertto" title="Java et Google App Engine" >Java et Google App Engine</a> en GA.</li><li><a
href="http://blog.xebia.fr/2009/06/01/google-io-2009-annonces-et-strategie-google/#GoogleWebElementswidgetspourvo" title="Google Web Elements" >Google Web Elements</a>, comment intégrer les services Google dans vos pages web.</li><li>Les macros dans Google Document, avec <a
href="http://blog.xebia.fr/2009/06/01/google-io-2009-annonces-et-strategie-google/#GoogleAppsScriptscriptezvosGoo" title="Google Apps Script" >Google Apps Script</a>.</li><li>Arrivée des <a
href="http://blog.xebia.fr/2009/06/01/google-io-2009-annonces-et-strategie-google/#Chromearrivedesextensions" title="extensions dans Chrome" >extensions dans Chrome</a>.</li></ul><p>Pour en savoir plus, vous pouvez lire <a
href="http://blog.xebia.fr/2009/06/01/google-io-2009-annonces-et-strategie-google/" title="notre billet ddi" >notre billet dédié</a> au sujet.</p><h4><a
name="AdobeprsenteFlashCatalystParis"></a>Adobe présente Flash Catalyst à Paris</h4><p>Mercredi 3 Juin 2009 à 16h, Adobe propose une présentation de Flash Catalyst. Cet outil destiné aux designers permet de concevoir des composants graphiques riches sans programmation. Ces créations peuvent ensuite être fournies à un développeur Flex pour que ce dernier se charge de la programmation intelligente.<br
/> Cette présentation va se diviser en deux sessions sous formes de conférences et d&#8217;ateliers :</p><ul><li>Une session développeur.</li><li>Une session designer.</li></ul><p>Elle se clôtura par un cocktail à 19h30.<br
/> Pour plus d&#8217;informations ou pour vous inscrire ça se passe <a
href="http://events.adobe.co.uk/cgi-bin/event.cgi?country=fr&#038;eventid=8236" title="ici" >ici</a>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/06/02/revue-de-presse-xebia-111/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>Revue de Presse Xebia</title><link>http://blog.xebia.fr/2009/04/20/revue-de-presse-xebia-105/</link> <comments>http://blog.xebia.fr/2009/04/20/revue-de-presse-xebia-105/#comments</comments> <pubDate>Mon, 20 Apr 2009 16:52:29 +0000</pubDate> <dc:creator>Xebia France</dc:creator> <category><![CDATA[Revue de presse]]></category> <category><![CDATA[cargo]]></category> <category><![CDATA[Flash]]></category> <category><![CDATA[J2EE]]></category> <category><![CDATA[Java / JEE]]></category> <category><![CDATA[JavaOne]]></category> <category><![CDATA[JFXtras]]></category> <category><![CDATA[JUG]]></category> <category><![CDATA[Oracle]]></category> <category><![CDATA[RIA]]></category> <category><![CDATA[Sonar]]></category> <category><![CDATA[Sun]]></category> <category><![CDATA[Terracotta]]></category> <guid
isPermaLink="false">http://blog.xebia.fr/?p=1799</guid> <description><![CDATA[La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia. Actualité éditeurs / SSII Sun racheté par Oracle RIA Sortie de JFXtras 0.4 Augmentez la réalité avec Flash Le coin de la technique Sortie de Cargo 1.0 Sortie de Terracotta DSO en 3.0 10 astuces pour améliorer votre code. Sonar 1.8 et Sonar Plugin [...]]]></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/04/20/revue-de-presse-xebia-105/#SunrachetparOracle">Sun racheté par Oracle</a></li></ul><p><strong>RIA</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/04/20/revue-de-presse-xebia-105/#SortiedeJFXtras">Sortie de JFXtras 0.4</a></li><li><a
href="http://blog.xebia.fr/2009/04/20/revue-de-presse-xebia-105/#AugmentezlaralitavecFlash">Augmentez la réalité avec Flash</a></li></ul><p><strong>Le coin de la technique</strong></p><ul><li><a
href="http://blog.xebia.fr/2009/04/20/revue-de-presse-xebia-105/#SortiedeCargo">Sortie de Cargo 1.0</a></li><li><a
href="http://blog.xebia.fr/2009/04/20/revue-de-presse-xebia-105/#SortiedeTerracottaDSOen">Sortie de Terracotta DSO en 3.0</a></li><li><a
href="http://blog.xebia.fr/2009/04/20/revue-de-presse-xebia-105/#astucespouramliorervotrecode">10 astuces pour améliorer votre code.</a></li><li><a
href="http://blog.xebia.fr/2009/04/20/revue-de-presse-xebia-105/#SonaretSonarPluginLibrary">Sonar 1.8 et Sonar Plugin Library</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/04/20/revue-de-presse-xebia-105/#JavaOneleprogrammedessessions">JavaOne 2009 : le programme des sessions</a></li><li><a
href="http://blog.xebia.fr/2009/04/20/revue-de-presse-xebia-105/#CrationduNormandyJUG">Création du Normandy JUG</a></li><li><a
href="http://blog.xebia.fr/2009/04/20/revue-de-presse-xebia-105/#AtlassianJiraetConfluencepresq">Atlassian Jira et Confluence (presque) offert pour les petites équipes</a></li></ul><h3><a
name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3><h4><a
name="SunrachetparOracle"></a>Sun racheté par Oracle</h4><p>La nouvelle est tombée à la surprise générale : Oracle a racheté Sun.<br
/> Malgré les rumeurs persistantes de rachat par IBM qui courraient depuis quelques semaines, c&#8217;est bien l&#8217;éditeur du célèbre SGBD qui a mis la main sur le convoité créateur de Java.</p><p>Le rapprochement de ces deux poids lourds du monde J2EE risque d&#8217;entrainer de profonds changements dans nos écosystèmes dans les mois à venir.</p><p>Lire notre article complet sur le sujet : <a
href="http://blog.xebia.fr/2009/04/20/oracle-rachete-sun/" title="Oracle rachte Sun" >Oracle rachète Sun</a> :</p><ul><li><a
href="http://blog.xebia.fr/2009/04/20/oracle-rachete-sun/#QuellegouvernancepourJava" title="Quelle gouvernance pour Java ?" >Quelle gouvernance pour Java ?</a></li><li><a
href="http://blog.xebia.fr/2009/04/20/oracle-rachete-sun/#JRockitunenouvelleJVMstandard" title="JRockit, une nouvelle JVM standard ?" >JRockit, une nouvelle JVM standard ?</a></li><li><a
href="http://blog.xebia.fr/2009/04/20/oracle-rachete-sun/#QuelavenirpourMySql" title="Quel avenir pour MySql ?" >Quel avenir pour MySql ?</a></li><li><a
href="http://blog.xebia.fr/2009/04/20/oracle-rachete-sun/#Glassfishpeutilencoreexister" title="Glassfish peut il encore exister ?" >Glassfish peut il encore exister ?</a></li><li><a
href="http://blog.xebia.fr/2009/04/20/oracle-rachete-sun/#NetbeansenfinlamortdeJDevelope" title="Netbeans, (enfin) la mort de JDeveloper ?" >Netbeans, (enfin) la mort de JDeveloper ?</a></li><li><a
href="http://blog.xebia.fr/2009/04/20/oracle-rachete-sun/#PoursuivredanslavoieJavaFx" title="Poursuivre dans la voie JavaFx ?" >Poursuivre dans la voie JavaFx ?</a></li></ul><p>Lire le <a
href="http://www.sun.com/aboutsun/pr/2009-04/sunflash.20090420.1.xml" title="communiqu de presse de Sun" >communiqué de presse de Sun</a>.</p><h3><a
name="RIA"></a>RIA</h3><h4><a
name="SortiedeJFXtras"></a>Sortie de JFXtras 0.4</h4><p>Les frameworks Java FX (exposés dans une <a
href="http://blog.xebia.fr/2009/01/26/revue-de-presse-xebia-93/#Denouveauxframeworkspourrenfor" title="précédente revue de presse" >précédente revue de presse</a>) continuent leur mise à jour : en début de semaine dernière, c&#8217;est <a
href="http://code.google.com/p/jfxtras/" title="JFXtras" >JFXtras</a> qui proposait sa nouvelle version, la <a
href="http://jfxtras.googlecode.com/files/JFXtras%20Core%200.4.zip" title="04" >0.4</a>.</p><p>Au menu, du refactoring global, de nouveaux composants et de nouvelles fonctionnalités pour la plupart des composants existants :</p><ul><li>framework séparé en 3 modules (core, samples et test),</li><li>layouts redimensionnables,</li><li>classes ImageFix et ImageUtil (helper pour manipuler les images),</li><li>nouveaux composants Border et Shapes,</li><li>nouvelles classes (BorderScroll/View, JSON-Object, reflection accelerator&#8230;)&#8230;</li></ul><p>La <a
href="http://jfxtras.googlecode.com/svn/site/javadoc/release-0.4/index.html" title="javadoc" >javadoc</a> donne un très bon aperçu de tous les composants disponibles dans l&#8217;API.</p><p>Pour rappel, vous pouvez vous rendre sur <a
href="http://www.javaworld.com" title="JavaWorld" >JavaWorld</a> et plus particulièrement sur l&#8217;article <a
href="http://www.javaworld.com/javaworld/jw-02-2009/jw-02-osjp-jfxtras.html" title="Open source Java projects JFXtras" >Open source Java projects: JFXtras</a> qui fait un tour rapide et complet du framework (peut aussi servir de tutoriel en 2 minutes). Attention toutefois, cette article s&#8217;appuie sur la version 0.2 de JFXtras.</p><h4><a
name="AugmentezlaralitavecFlash"></a>Augmentez la réalité avec Flash</h4><p>Cet article de <a
href="http://www.infoq.com/news/2009/04/augmented-reality-with-flash" title="Jon Rose" >Jon Rose</a> nous expose une possibilité pour ajouter de la « réalité » avec Flash. En effet avec la librairie <a
href="http://www.libspark.org/wiki/saqoosha/FLARToolKit/en" title="FLARToolkit" >FLARToolkit</a>, il est possible de mettre en place des rendus 3D dans des vidéos.<br
/> <a
href="http://www.libspark.org/wiki/saqoosha/FLARToolKit/en" title="FLARToolkit" >FLARToolkit</a> est la version AS3 de <a
href="http://www.hitl.washington.edu/artoolkit/" title="ARToolKit" >ARToolKit</a>, qui était une libraire C permettant d&#8217;intégrer <a
href="http://en.wikipedia.org/wiki/Augmented_reality" title="l'Augmented Reality" >l&#8217;Augmented Reality</a>. Néanmoins, <a
href="http://www.libspark.org/wiki/saqoosha/FLARToolKit/en" title="FLARToolkit" >FLARToolkit</a> est basée sur <a
href="http://nyatla.jp/nyartoolkit/wiki/index.php" title="NyARToolKit" >NyARToolKit</a>, qui est la version Java de la librairie et se trouve être mieux optimisée que la version C.</p><p>Ainsi cette librairie offre de nouvelles possibilités aux projets pour intégrer de la réalité. Pour preuve, voici un lien nous présentant un tutoriel basé sur la démonstration de l&#8217;application <a
href="http://www.gotoandlearn.com/play?id=105" title="GE's Smart Grid Augmented Reality" >GE&#8217;s Smart Grid Augmented Reality</a>. Cette vidéo, assez bluffante, nous donne un aperçu des possibilités offertes par cette libraire. Bien entendu, il existe d&#8217;autres librairies permettent d&#8217;intégrer de la 3D dans vos applications ; pour citer les plus connues : <a
href="http://blog.papervision3d.org/" title="paperVision3D" >paperVision3D</a> et <a
href="http://alternativaplatform.com/en/alternativa3d/" title="Alternativa3D" >Alternativa3D</a>.</p><h3><a
name="Lecoindelatechnique"></a>Le coin de la technique</h3><h4><a
name="SortiedeCargo"></a>Sortie de Cargo 1.0</h4><p>Le framework Cargo que nous vous avons présenté dans l&#8217;article <a
href="http://blog.xebia.fr/2008/11/05/lintegration-continue-avec-cargo/" title="Lintgration continue avec Cargo" >L&#8217;intégration continue avec Cargo</a> sort donc enfin de sa longue torpeur et nous livre son baguage de nouveautés.<br
/> On trouvera dans cette &laquo;&nbsp;major release&nbsp;&raquo; des nouvelles fonctionnalités, de nouveaux conteneurs et bien sûr des corrections de bugs.</p><p>Nouvelles fonctionnalités:</p><ul><li>Support des fichiers web.xml pour Servlet 2.4</li><li>Support de plusieurs DataSource et DataSource transactionnelles</li><li>Déploiement sur cluster JBoss</li></ul><p>Nouveaux conteneurs:</p><ul><li>Tomcat 6.x</li><li>Jetty 6.x</li><li>JBoss 4.2x</li><li>WebLogic 8.1-10.3x</li></ul><p>Notons que JBoss 5 et Jetty 7 restent en mode expérimental, nulle mention non plus de Glassfish ou de Websphere.<br
/> Pour plus de détail rendez vous sur <a
href="http://cargo.codehaus.org/" title="http://cargo.codehaus.org/" >http://cargo.codehaus.org/</a> ou sur leur <a
href="http://jira.codehaus.org/browse/CARGO/fixforversion/13036" title="Jira" >Jira</a>.</p><h4><a
name="SortiedeTerracottaDSOen"></a>Sortie de Terracotta DSO en 3.0</h4><p>Pour mémoire, Terracotta est solution de mise en cluster de JVM. Dans cette nouvelle version, on trouve quelques améliorations pour les développeurs et les équipes de production avec une nouvelle interface appelée l&#8217;Operation Center et une refonte complète de la console d&#8217;administration.<br
/> Parmi les nouveautés, on trouve aussi:</p><ul><li>Le <a
href="http://www.terracotta.org/attach/qt/terracotta_3.0/terracotta_3.0_server_striping.html" title="Server Array Striping" >Server Array Striping</a></li><li>Le partage de données entre différente application (cross application data sharing)</li><li>Une nouvelle API pour les utilisations en DataGrid</li><li>4 nouvelles plateforme (Weblo 10.<a
href="2/3" title="2/3" >2/3</a>, Rhel 5, Hyperic HQ)</li></ul><p>Voilà donc une nouvelle version majeure de Terracotta qui semble déployer tous ses efforts pour obtenir les faveurs des SI. Pour plus de détails:</p><ul><li><a
href="http://www.terracotta.org" title="le site de Terracotta" >le site de Terracotta</a></li><li><a
href="http://www.businesswire.com/portal/site/google/?ndmViewId=news_view&#038;newsId=20090414005398&#038;newsLang=en" title="lannonce de la version 30" >l&#8217;annonce de la version 3.0</a></li><li><a
href="http://www.terracotta.org/web/display/orgsite/Whats+New+Terracotta+3.0" title="Whats new in Terracotta 30" >What&#8217;s new in Terracotta 3.0</a></li></ul><h4><a
name="astucespouramliorervotrecode"></a>10 astuces pour améliorer votre code.</h4><p>Neal Ford, architecte reconnu chez Thoughtworks, nous donne 10 conseils pour écrire du code robuste. Des conseils qui peuvent servir aussi bien aux développeurs qu&#8217;aux architectes.<br
/> Nous retiendrons :</p><ul><li>N&#8217;hésitez pas à multiplier les méthodes de quelques lignes, réalisant des opérations &laquo;&nbsp;atomiques&nbsp;&raquo;</li><li>Adoptez le développement et le design orientés tests, ce qui éclairera votre code sous un jour pleinement fonctionnel.</li><li>Utilisez les outils d&#8217;analyse automatique de code (FindBugs par exemple, mais Neal aurait pu aussi citer PMD, Checkstyle&#8230;)</li><li>Faites cohabiter vos classes en bonne intelligence : préférez les Factories aux Singletons.</li><li>N&#8217;écrivez que le code dont vous avez besoin aujourd&#8217;hui et détachez vous des poncifs corporatistes (pas le temps de faire des tests unitaires, réécrire systématiquement tous les frameworks parce que c&#8217;est la norme de l&#8217;entreprise&#8230;)</li><li>Contestez les autorités établies (à bon escient bien sûr)</li><li>Entrez (et entrainez vos équipes) dans les subtilités du langage que vous utilisez.</li><li>Ayez une approche anti-objet : questionnez votre conception et n&#8217;hésitez pas à adopter un angle d&#8217;attaque radicalement différent si vous n&#8217;arrivez pas à solutionner votre problème avec votre approche classique.</li></ul><p>Tous ces concepts, qui tiennent parfois du bon sens, que l&#8217;on a souvent cités ici et là, se retrouvent dans <a
href="http://www.infoq.com/presentations/10-Ways-to-Better-Code-Neal-Ford" title="cette video dune heure" >cette video d&#8217;une heure</a>, concise et pertinente, à montrer à tous les DSI <em>old school</em>.</p><h4><a
name="SonaretSonarPluginLibrary"></a>Sonar 1.8 et Sonar Plugin Library</h4><p>Deux bonnes nouvelles cette semaine pour les amateurs de la plateforme qualité Sonar. Tout d&#8217;abord la sortie de la <a
href="http://sonar.codehaus.org/downloads/#1.8" title="version 18 du projet" >version 1.8 du projet</a>, qui nous apporte notamment :</p><ul><li>support de Maven 2.1</li><li>possibilité de créer des HotSpots au niveau d&#8217;un projet</li><li>possibilité d&#8217;importer des fichiers findbugs-include.xml</li><li>rotation des fichiers de log</li></ul><p>Et dans la foulée, le projet Sonar se dote d&#8217;une forge de plugin : la <a
href="http://docs.codehaus.org/display/SONAR/Sonar+Plugin+Library/" title="Sonar Plugin Library" >Sonar Plugin Library</a> pour fédérer les efforts de la communauté.</p><p>L&#8217;architecture est <a
href="http://docs.codehaus.org/display/SONAR/Plugin+architecture+overview" title="bien documente" >bien documentée</a> et nous avons même droit à un tutoriel de création d&#8217;un HelloWorldPlugin pour se mettre le pied à l&#8217;étrier.</p><h3><a
name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3><h4><a
name="JavaOneleprogrammedessessions"></a>JavaOne 2009 : le programme des sessions</h4><p>L&#8217;annonce du programme des plus grosses conférences du monde Java est toujours intéressante car elle permet d&#8217;observer les tendances du moment, du point de vue des organisateurs tout du moins.</p><p>Celui de <a
href="http://www28.cplan.com/cc230/sessions_catalog.jsp?ilc=230-1&#038;ilg=english&#038;isort=1&#038;isort_type=desc&#038;is=yes&#038;icriteria1=+&#038;icriteria2=+&#038;icriteria8=&#038;icriteria3=&#038;icriteria9=&#038;icriteria4=+&#038;icriteria7=+" title="JavaOne 2009 est maintenant connnu" >JavaOne 2009 est maintenant connnu</a>. L&#8217;observation de ce programme permet de constater que certaines technologies sont particulièrement mises en avant :</p><ul><li><strong>JavaFX</strong> : incontestablement le sujet majeur de ce JavaOne, faisant de cette conférence le bras armé de Sun pour la mise en oeuvre de sa très agressive stratégie marketing. En effet tous types de sessions confondus (BOFs, conférences techniques, Hands on, &#8230;), on compte pas moins de 40 sessions dédiées à JavaFX sur les 350 que comptera au total cette édition de JavaOne.</li><li><strong>JEE 6 et JDK7</strong> : assez logiquement, du fait de leur planning de finalisation, ces deux technologies sont très présentes grâce à des sessions dédiées à chacune de leurs composantes.</li><li><strong>Rest et Cloud Computing</strong> : en terme d&#8217;évolution de l&#8217;architectures des applications, le Cloud Computing et Rest sont les deux concepts qui semblent destinés à marquer le plus l&#8217;année 2009 et JavaOne s&#8217;en fera donc l&#8217;écho.</li><li><strong>Complex Event Processing</strong> : cette technologie, consistant à analyser les évènements d&#8217;une <a
href="http://en.wikipedia.org/wiki/Event_Driven_Architecture" title="EDA" >EDA</a>, n&#8217;est pas nouvelle, il en est question depuis plus de 5 ans. Toutefois elle connaît un nouvel essor depuis peu. Après avoir fait une apparition <a
href="http://devoxx.com/display/JV08/Complex+Event+Processing" title="lors de Devoxx" >lors de Devoxx</a> en décembre dernier, c&#8217;est maintenant JavaOne qui va <a
href="http://www28.cplan.com/cc230/sessions_catalog.jsp?ilc=230-1&#038;ilg=english&#038;isort=1&#038;isort_type=desc&#038;is=yes&#038;icriteria1=+&#038;icriteria2=+&#038;icriteria8=complex+event+processing&#038;icriteria3=&#038;icriteria9=&#038;icriteria4=+&#038;icriteria7=+" title="lui consacrer 4 sessions" >lui consacrer 4 sessions</a> contre aucune lors de sa précédente édition.</li></ul><h4><a
name="CrationduNormandyJUG"></a>Création du Normandy JUG</h4><p>La liste des Java User Groups français continue de s&#8217;allonger avec la création du <a
href="http://www.normandyjug.org/" title="Normandy JUG" >Normandy JUG</a>.<br
/> Le <a
href="http://www.normandyjug.org/" title="Normandy JUG" >Normandy JUG</a> rejoint donc <a
href="http://www.parisjug.org" title="le Paris JUG" >le Paris JUG</a>, <a
href="http://www.breizhjug.org/" title="le Breizh JUG" >le Breizh JUG</a>, <a
href="http://www.nantesjug.org/" title="le Nantes JUG" >le Nantes JUG</a>, <a
href="http://www.toursjug.org" title="le Tours JUG" >le Tour JUG</a>, <a
href="http://www.bordeauxjug.org/" title="le Bordeaux JUG" >le Bordeaux JUG</a>, <a
href="http://www.jugtoulouse.org/" title="le JUG Toulouse" >le JUG Toulouse</a>, <a
href="http://www.poitoucharentesjug.org/" title="le Poitou-Charentes JUG" >le Poitou-Charentes JUG</a>, <a
href="http://www.rivierajug.org" title="le Riviera JUG de Nice  SophiaAntipolis" >le Riviera JUG de Nice / Sophia-Antipolis</a>, <a
href="http://chtijug.org">le Ch’ti JUG</a>, <a
href="http://www.lyonjug.org/bin/view/Main/">le Lyon JUG</a> et <a
href="http://lorrainejug.blogspot.com/">Lorraine JUG</a>, renforçant ainsi la communauté des Java User Group en France.</p><h4><a
name="AtlassianJiraetConfluencepresq"></a>Atlassian Jira et Confluence (presque) offert pour les petites équipes</h4><p>Atlassian lance une offre de courte durée à destination des équipes de moins de 5 utilisateurs.<br
/> La licence du gestionnaire d&#8217;anomalies Jira et du wiki Confluence est à 5$ pour chacun pendant une semaine.<br
/> Si cette offre vous intéresse, rendez-vous sur le site <a
href="http://www.atlassian.com/starter/" title="Atlassian" >Atlassian</a>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.xebia.fr/2009/04/20/revue-de-presse-xebia-105/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> </channel> </rss>
