<?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/"
	>

<channel>
	<title>Blog Xebia France &#187; Websphere</title>
	<atom:link href="http://blog.xebia.fr/tag/websphere/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.xebia.fr</link>
	<description>J2EE, Agilité et SOA</description>
	<lastBuildDate>Thu, 09 Sep 2010 07:48:35 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Revue de Presse Xebia</title>
		<link>http://blog.xebia.fr/2008/10/13/revue-de-presse-xebia-78/</link>
		<comments>http://blog.xebia.fr/2008/10/13/revue-de-presse-xebia-78/#comments</comments>
		<pubDate>Mon, 13 Oct 2008 17:14:30 +0000</pubDate>
		<dc:creator>Xebia France</dc:creator>
				<category><![CDATA[Revue de presse]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Java / JEE]]></category>
		<category><![CDATA[Java Module System]]></category>
		<category><![CDATA[OSGi]]></category>
		<category><![CDATA[SCRUM]]></category>
		<category><![CDATA[SpringSource]]></category>
		<category><![CDATA[Websphere]]></category>

		<guid isPermaLink="false">http://blog.xebia.fr/?p=815</guid>
		<description><![CDATA[
La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.
Actualité éditeurs / SSII

SpringSource : sortie par le haut
Websphere: les derniers seront les premiers ?

Agilité

Prioriser le Product Backlog
Leçons de management par la NASA

RIA

10 choses à savoir sur Flex
GraniteDs en version 1.1.0

Le coin de la technique

JSR-277 : OSGi m&#8217;a tuer (Stanley Ho)

Evènements de notre communauté en [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br />
<em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p>
<p><strong>Actualité éditeurs / SSII</strong></p>
<ul>
<li><a href="http://blog.xebia.fr/2008/10/13/revue-de-presse-xebia-78/#SpringSourcesortieparlehaut">SpringSource : sortie par le haut</a></li>
<li><a href="http://blog.xebia.fr/2008/10/13/revue-de-presse-xebia-78/#Webspherelesderniersserontlesp">Websphere: les derniers seront les premiers ?</a></li>
</ul>
<p><strong>Agilité</strong></p>
<ul>
<li><a href="http://blog.xebia.fr/2008/10/13/revue-de-presse-xebia-78/#PrioriserleProductBacklog">Prioriser le Product Backlog</a></li>
<li><a href="http://blog.xebia.fr/2008/10/13/revue-de-presse-xebia-78/#LeonsdemanagementparlaNASA">Leçons de management par la NASA</a></li>
</ul>
<p><strong>RIA</strong></p>
<ul>
<li><a href="http://blog.xebia.fr/2008/10/13/revue-de-presse-xebia-78/#chosessavoirsurFlex">10 choses à savoir sur Flex</a></li>
<li><a href="http://blog.xebia.fr/2008/10/13/revue-de-presse-xebia-78/#GraniteDsenversion">GraniteDs en version 1.1.0</a></li>
</ul>
<p><strong>Le coin de la technique</strong></p>
<ul>
<li><a href="http://blog.xebia.fr/2008/10/13/revue-de-presse-xebia-78/#JSROSGimatuerStanleyHo">JSR-277 : <em>OSGi m&#8217;a tuer</em> (Stanley Ho)</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/2008/10/13/revue-de-presse-xebia-78/#ParisJUGsoireOSGi">Paris JUG : soirée OSGi</a></li>
</ul>
<h3><a name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3>
<h4><a name="SpringSourcesortieparlehaut"></a>SpringSource : sortie par le haut</h4>
<p>Comme nous l&#8217;annoncions succinctement <a href=" http://blog.xebia.fr/2008/10/08/spring-30-le-grand-nettoyage-du-printemps/" title="mercredi" >mercredi</a>, SpringSource a revu sa copie concernant sa nouvelle politique de maintenance abandonnant de ce fait  les points les plus polémiques de celle-ci, dont sa fameuse règle des trois mois à l&#8217;origine des levées de boucliers de la communauté.</p>
<p>Dans son post de mardi dernier, Rod Johnson dévoile donc le <a href="http://blog.springsource.com/2008/10/07/a-question-of-balance-tuning-the-maintenance-policy/" title="nouveau fonctionnement" >nouveau fonctionnement</a> de celle-ci : les releases seront disponibles pour la communauté jusqu&#8217;à la sortie d&#8217;une nouvelle version majeure. Ainsi, les binaires des versions 2.5.x du cœur du framework continueront d&#8217;être publiés tant que Spring 3.0 RC1 n&#8217;est pas disponible. SpringSource compte, par ce biais, inciter la communauté open-source à toujours coller aux dernières versions de son framework.</p>
<h4><a name="Webspherelesderniersserontlesp"></a>Websphere: les derniers seront les premiers ?</h4>
<p>Dernier serveur certifié Java EE 5, Websphere ressort grand vainqueur d&#8217;une étude comparative des principaux serveurs d&#8217;application du marché, menée par <a href="http://www.evansdata.com/reports/viewRelease_download.php?reportID=20" title="Evans Data Corporation" >Evans Data Corporation</a> (rapport gratuit, mais enregistrement nécessaire).</p>
<p>Cette étude soulève déjà de nombreuses questions chez les concurrents (comme <a href="http://blog.softwhere.org/archives/409" title="Rick Sharples, de JBoss" >Rick Sharples, de JBoss</a>), le marketing d&#8217;IBM n&#8217;allant pas se plaindre d&#8217;une si belle vitrine.<br />
Rick émet 3 interrogations majeures :</p>
<ul>
<li>Comment comparer des serveurs d&#8217;application dont les communautés peuvent varier d&#8217;un noyau de type &#8216;niche&#8217; (SAP) à des super-communautés mondiales (IBM, BEA, RedHat ou Microsoft) ?</li>
<li>Pourquoi n&#8217;arrive t&#8217;on pas à corréler les résultats de cette étude avec ceux d&#8217;autres études publiques, voire internes, sur JBoss ?</li>
<li>Pourquoi évalue t&#8217;on un serveur aussi confidentiel que Geronimo (lui aussi chez IBM) ?</li>
</ul>
<p>Pour notre part, nous émettons un certain nombre de réserves :</p>
<ul>
<li>L&#8217;étude ayant été menée durant l&#8217;été 2008, elle ne peut nécessairement pas porter sur WAS 7.0, sorti officiellement en septembre (d&#8217;autant plus qu&#8217;un des points de l&#8217;étude porte sur le support, qui n&#8217;est pas assuré pour les versions <em>beta</em>). Cette étude porte donc plus globalement sur &#8216;les marques&#8217;, plutôt que sur les dernières versions des serveurs d&#8217;application cités.</li>
<li>Les consultants Xebia ont l&#8217;habitude de travailler avec bon nombre de ces serveurs d&#8217;application, et au petit jeu des comparaisons directes (ce qui n&#8217;est pas le cas de cette étude), les avis sont loin d&#8217;être aussi tranchés.</li>
<li>La rédaction du rapport est très orientée &#8216;marketing&#8217;, ce qui est étonnant au vu de la population consultée. Il est étonnant de lire des phrases telles que &laquo;&nbsp;WebSphere&#8217;s users obviously love this product.&nbsp;&raquo; venant de développeurs qui n&#8217;ont souvent pas le choix de leur serveur d&#8217;application (souvent dicté par les achats groupe ou l&#8217;exploitant) et qui ont tendance à ne faire que &laquo;&nbsp;subir&nbsp;&raquo; ses désavantages.</li>
</ul>
<p>Alors, étude téléguidée par un éditeur ? Enième conflit d&#8217;intérêt pour un cabinet d&#8217;analyse dont les clients sont les premiers sujets de comparatifs ? La réponse est sûrement plus complexe et on peut tout au plus tirer quelques enseignements de ce travail :</p>
<ul>
<li>JBoss joue définitivement dans la cour des grands, et est un concurrent sérieux pour les &laquo;&nbsp;grands&nbsp;&raquo; serveurs d&#8217;application, même sur des applications à grande échelle.</li>
<li>la communauté s&#8217;inquiète du rachat de BEA par Oracle (peut-être est-ce même la raison principale de cette 7ème place).</li>
<li>Le &laquo;&nbsp;petit jeune&nbsp;&raquo;, Glassfish, qui remporte l&#8217;adhésion des développeurs pour sa facilité de mise en oeuvre, n&#8217;est pas en reste sur les fonctions principales (performances, scalabilité) et vient titiller les vieux mastodontes.</li>
<li>La comparaison objective de serveurs d&#8217;application, dans un environnement aussi hétéroclite que celui des SI du XXIeme siècle, avec des problématiques variées et complexes, est un exercice dangereux, qui porte rapidement à critique.</li>
</ul>
<h3><a name="Agilit"></a>Agilité</h3>
<h4><a name="PrioriserleProductBacklog"></a>Prioriser le Product Backlog</h4>
<p>En Scrum, il faut ordonner les éléments du <a href="http://agilesoftwaredevelopment.com/blog/artem/product-backlog" title="Product Backlog" >Product Backlog</a> pour que l&#8217;équipe sache quelles sont les fonctionnalités à implémenter en priorité.<br />
<a href="http://www.blogger.com/profile/04855156445588778076" title="Peter Stevens" >Peter Stevens</a> propose différentes stratégies pour <a href="http://agilesoftwaredevelopment.com/blog/peterstev/prioritizing-product-backlog" title="prioriser le Product Backlog" >prioriser le Product Backlog</a>, à composer selon le contexte du projet :</p>
<ul>
<li><strong>Ensemble minimum de fonctions</strong> : faire une liste minimum des fonctions à implémenter pour que le produit soit utilisable et accepté par les utilisateurs</li>
<li><strong>Valeur métier en premier</strong> : se concentrer sur les fonctions à haute valeur ajoutée métier. La valeur métier (typiquement avec un coefficient entre 1 et 100) est fixée par le Product Owner.</li>
<li><strong>En avoir pour son argent</strong> : semblable à la précédente approche, elle se concentre sur les éléments qui ont le meilleur rapport valeur métier/coût.</li>
<li><strong>Risques techniques en premier</strong> : préconisée par <a href="http://en.wikipedia.org/wiki/RUP" title="RUP" >RUP</a>, cette approche s&#8217;attaque aux points techniques difficiles en premier. Cela peut cependant conduire à un système trop complexe par rapport aux besoins.</li>
<li><strong>Reporter le risque</strong> : s&#8217;attaquer aux difficultés en dernier (ou jamais). Préférer les stories bien comprises, tout en investigant les stories plus risquées/coûteuses pour les décomposer.</li>
<li><strong>Votes des utilisateurs</strong> : demandez aux utilisateurs de voter parmi une liste de fonctionnalités potentielles.</li>
</ul>
<p>Ce dernier point peut être accompli par une <a href="http://www.qualitystreet.fr/?2007/12/13/85-le-modele-de-kano-si-precieux-pour" title="analyse de Kano" >analyse de Kano</a> comme le propose Mike Cohn dans sa présentation <a href="http://www.infoq.com/news/2008/10/mike-cohn-prioritizing-backlog" title="Prioritizing Your Product Backlog" >Prioritizing Your Product Backlog</a> mise en ligne sur InfoQ. Le <a href="http://www.mountaingoatsoftware.com/system/presentation/file/84/Cohn_PrioritizingYourBacklog.pdf" title="pdf" >pdf</a> est également disponible.<br />
Mike Cohn y présente plusieurs techniques de priorisation, plus concrètes mais nécessitant plus de calculs  :</p>
<ul>
<li><strong>Analyse de Kano</strong> : distinguer les thèmes selon 3 types : fonctions obligatoires, linéaires, et attractives. Implémenter toutes les fonctions obligatoires, le plus de linéaires possible et quelques excitateurs pour la satisfaction utilisateur.</li>
<li><strong>Theme screening</strong> : noter les thèmes selon certains critères de sélection, par rapport à un thème de référence.</li>
<li><strong>Theme scoring</strong> : semblable au Theme screening en pondérant les critères de sélection</li>
<li><strong>Relative weighting</strong> : pour chaque thème, calculer le rapport entre sa valeur relative (aux autres thèmes du product backlog) et son coût relatif. Ce rapport donne la priorité du thème.</li>
</ul>
<p>Ces techniques s&#8217;appliquent toutes au niveau <a href="http://www.aubryconseil.com/dotclear/index.php/2007/10/04/305-features-themes-epics-et-stories" title="thème" >thème</a>, car descendre au niveau user story demanderait trop de travail sur un product backlog complet. </p>
<h4><a name="LeonsdemanagementparlaNASA"></a>Leçons de management par la NASA</h4>
<p>Jerry Madden, un ancien employé du <a href="http://fr.wikipedia.org/wiki/Goddard_Space_Flight_Center" title="Goddard Space Flight Center" >Goddard Space Flight Center</a> de la NASA, a collecté &laquo;&nbsp;100 leçons&nbsp;&raquo; apprises auprès des managers qu&#8217;il a cotoyés.<br />
Marios Alexandrou en a extrait <a href="http://www.mariosalexandrou.com/blog/?p=69" title="les leçons qui collent le plus avec son expérience des projets web" >les leçons qui collent le plus avec son expérience des projets web</a>. Parmi les plus marquantes :</p>
<ul>
<li>Une <strong>réunion de travail</strong> devrait durer <strong>5 minutes</strong> minimum (moins elle est inutile) et <strong>1 heure</strong> maximum (plus c&#8217;est un marathon). Au-delà de 6 personnes, elle devrait être réservée au transfert d&#8217;information.</li>
<li>Ne demandez jamais à vos chefs de prendre une <strong>décision</strong> que vous pouvez prendre <strong>vous-même</strong>, sauf si un document vous l&#8217;interdit.</li>
<li>Ne supposez jamais que quelqu&#8217;un a fait quelque chose, <strong>demandez</strong> lui. Même le plus évident peut être oublié, surtout en période de stress.</li>
<li>La documentation ne remplace pas la <strong>connaissance</strong>. Les documents restent des images statiques dans le temps et sont rapidement dépassés.</li>
<li>Les projets nécessitent un <strong>travail d&#8217;équipe</strong> pour réussir. Rappelez-vous que la plupart des équipes ont un coach et non un boss, mais le coach doit parfois arbitrer certaines parties.</li>
<li>Si un chef de projet est l&#8217;homme le plus intelligent de l&#8217;équipe, c&#8217;est qu&#8217;il a fait un <strong>mauvais travail de recrutement</strong>.</li>
<li>Les principes de gestion sont toujours les mêmes. Seuls les outils changent. Vous devez toujours <strong>trouver les bonnes personnes</strong> pour faire le travail et rester à l&#8217;écart pour qu&#8217;ils puissent le faire.</li>
</ul>
<p>Il est amusant de constater certaines similitudes avec les méthodes agiles. Les individus et leurs connaissances sont plus importants que la documentation. Le coach doit s&#8217;appuyer sur une équipe de personnes motivées, intelligentes, et responsables qui n&#8217;attendent pas d&#8217;ordre d&#8217;un patron. Leur collaboration est essentielle à la réussite du projet. Ces ressemblances sont logiques finalement, il s&#8217;agit simplement de bon sens.</p>
<h3><a name="RIA"></a>RIA</h3>
<h4><a name="chosessavoirsurFlex"></a>10 choses à savoir sur Flex</h4>
<p>Les articles recommandant Flex se succèdent. Après l&#8217;annonce d&#8217;Atos sur son blog Entreprise 2.0 du choix de <a href="http://entreprise2.wordpress.com/2008/10/06/flex-choix-maintenant-evident-pour-nos-rias/" title="Flex sur plusieurs projets pour de grands comptes" >Flex sur plusieurs projets pour de grands comptes</a> et la &laquo;&nbsp;victoire&nbsp;&raquo; de Flex lors de notre <a href="http://blog.xebia.fr/2008/10/03/ria-contest-flex-silverlight-gwt-echo3-javafx/" title="RIA Contest" >RIA Contest</a>, c&#8217;est au tour de Alaric Cole, l&#8217;auteur de &laquo;&nbsp;Learning Flex 3&#8243; de lister <a href="http://css.dzone.com/news/the-top-10-things-you-should-k" title="10 avantages à l'utilisation de Flex" >10 avantages à l&#8217;utilisation de Flex</a>.  </p>
<p>Alaric Cole est partie prenante, et on a déjà pu lire sur d&#8217;autres blogs les différents points cités, mais l&#8217;article a l&#8217;avantage de les regrouper :</p>
<ol>
<li>Flex s&#8217;apparente aux standards d&#8217;une application Web : MXML est un langage de balises comparable à l&#8217;HTML, l&#8217;ActionScript est l&#8217;équivalent du JavaScript. Le tout customisable avec du CSS.</li>
<li>Flex = Flash : tout ce qui était possible en Flash l&#8217;est en Flex. Flex apporte cependant une couche de structuration/méthodologie par rapport à Flash</li>
<li>Une application Flex fonctionne sur tous les navigateurs et tous les OS (Linux 64bit ?). La seule contrainte est d&#8217;avoir déployé le plug-in d&#8217;exécution.</li>
<li>Le framework RIA d&#8217;Adobe accepte l&#8217;échange de données et propose des interfaces de communication avec plusieurs formats d&#8217;échange (SOAP, HTTP, AMF&#8230;)</li>
<li>Une application Web Flex aura un &laquo;&nbsp;Look And Feel&nbsp;&raquo; identique quelque soit l&#8217;OS client</li>
<li>Flex est léger et rapide grâce notamment aux améliorations du futur plug-in Flash 10. Par exemple, la fonctionnalité de &laquo;&nbsp;Framework Caching&nbsp;&raquo; permet de réduire à 100Ko la taille de l&#8217;application à télécharger</li>
<li>Les composants de Flex sont nativement construits pour être accessibles (loupe, internationalisation, raccourcis clavier&#8230;)</li>
<li>Le contenu d&#8217;une application Flex peut maintenant être indexé par un moteur de recherche</li>
<li>Le SDK Flex est maintenant OpenSource et gratuit mais attention l&#8217;IDE Flex Builder est payant.</li>
<li>Enfin, il rappelle la facilité d&#8217;apprentissage du langage. Pour un habitué de la Javadoc, l&#8217;accès au format ASDocs d&#8217;Adobe est cependant déroutant les premiers temps.</li>
</ol>
<p>Même si l&#8217;ancienneté de Flex sur le marché, la couverture de déploiement de son plugin d&#8217;exécution et la solidité de son distributeur Adobe semblent placer Flex en tête du tournoi RIA, il est bon de rappeler que la compétition ne fait que commencer : 2 outsiders sérieux (Silverlight et JavaFx) vont bientôt s&#8217;élancer dans la course ! L&#8217;avance prise par Flex pourra t-elle être comblée ?</p>
<h4><a name="GraniteDsenversion"></a>GraniteDs en version 1.1.0</h4>
<p>GraniteDS est un framework opensource équivalent à <a href="http://blog.xebia.fr/2008/09/16/blazeds/" title="BlazeDS" >BlazeDS</a>, simplifiant le développement des communications entre un RIA Flex et un serveur J2EE. Cet <a href="http://www.infoq.com/news/2008/10/GDS-110-release" title="article d'InfoQ" >article d&#8217;InfoQ</a> nous présente les nouvelles fonctionnalités disponibles sur GraniteDS 1.1.0:</p>
<ul>
<li><strong>Granite Eclipse Builder</strong> : un plugin Eclipse basé sur AS3 Generator permettant de générer le code ActionScript 3 associé aux JavaBeans. Ce plugin génère automatiquement du code lorsqu&#8217;un JavaBean est modifié.</li>
<li><strong>Tide</strong> : ce framework fournit des fonctionnalités telles que la mémorisation d&#8217;objets dans un contexte qui transite entre la partie cliente et la partie serveur, la pagination des données. Il permet également de gérer le lazy loading des collection en wrappant les collections et en les récupérant dés que c&#8217;est nécessaire.</li>
<li><strong>MXML Web Compiler</strong> : une compilation à la volée du code source MXML et ActionScript 3 sur le serveur d&#8217;application.</li>
</ul>
<p>Avec cette nouvelle version, GraniteDS se positionne comme un concurrent sérieux de BlazeDS. La génération des JavaBeans, la gestion du lazy loading et la compilation à la volée sont des points forts qui séduiront très vite les développeurs. Cette nouvelle approche ne peut que faciliter et améliorer le développement d&#8217;applications Flex.</p>
<h3><a name="Lecoindelatechnique"></a>Le coin de la technique</h3>
<h4><a name="JSROSGimatuerStanleyHo"></a>JSR-277 : <em>OSGi m&#8217;a tuer</em> (Stanley Ho)</h4>
<p>Stanley Ho <a href="http://mail.openjdk.java.net/pipermail/jsr277-eg-observer/2008-October/000307.html" title="a annoncé son départ" >a annoncé son départ</a> de Sun Microsystems. Par la même occasion, il laisse les clés de la <a href="http://jcp.org/en/jsr/detail?id=277" title="JSR-277" >JSR-277</a> dont il était à la tête. C&#8217;est  donc Alex Buckley qui reprend le flambeau, il était déjà responsable de la petite sœur, la <a href="http://jcp.org/en/jsr/detail?id=294" title="JSR-294" >JSR-294</a> : les <a href="http://blog.xebia.fr/2008/02/27/jsr-294-les-superpackages/" title="superpackages" >superpackages</a>.</p>
<p>Nous sommes en droit de nous demander si la création du prototype permettant l&#8217;interopérabilité entre <a href="http://blog.xebia.fr/2008/07/28/revue-de-presse-xebia-67/#InteroprabilitOSGIetJavaModule" title="Java Module System et OSGi" >Java Module System et OSGi</a> qu&#8217;a amorcé Sun ces derniers mois a quelque chose à voir avec ce départ. Quoi qu&#8217;il en soit, le tournant est définitivement engagé pour le futur de Java Module System.</p>
<h3><a name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l&#8217;étranger</h3>
<h4><a name="ParisJUGsoireOSGi"></a>Paris JUG : soirée OSGi</h4>
<p>Dernière piqûre de rappel pour la soirée OSGi de ce mardi 14 octobre au Paris JUG.</p>
<ul>
<li>Le programme est <a href="http://www.parisjug.org/xwiki/bin/view/Meeting/20081014" title="disponible ici" >disponible ici</a> : première partie &#8216;introduction à OSGi&#8217;, seconde partie : &#8216;OSGi appliqué&#8217;</li>
<li>Les inscriptions sont gratuites et ouvertes à tous, <a href="http://jugevents.jugpadova.it/jugevents/event/registration.form?event.id=8749" title="enregistrez-vous ici" >enregistrez-vous ici</a></li>
<li>La soirée aura lieu à l&#8217;ISEP, dont <a href="http://www.parisjug.org/xwiki/bin/view/Location/ISEP" title="voici le plan d'accès" >voici le plan d&#8217;accès</a></li>
</ul>
<p>Nous vous y attendons nombreux. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xebia.fr/2008/10/13/revue-de-presse-xebia-78/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Revue de Presse Xebia</title>
		<link>http://blog.xebia.fr/2008/09/29/revue-de-presse-xebia-76/</link>
		<comments>http://blog.xebia.fr/2008/09/29/revue-de-presse-xebia-76/#comments</comments>
		<pubDate>Mon, 29 Sep 2008 17:36:27 +0000</pubDate>
		<dc:creator>Xebia France</dc:creator>
				<category><![CDATA[Revue de presse]]></category>
		<category><![CDATA[Java / JEE]]></category>
		<category><![CDATA[JBoss]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[SCRUM]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[Terracotta]]></category>
		<category><![CDATA[Websphere]]></category>

		<guid isPermaLink="false">http://blog.xebia.fr/?p=762</guid>
		<description><![CDATA[
La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.
Actualité éditeurs / SSII

Spring Source : les VC prennent le contrôle
JBoss certifié Java EE 5 : un anachronisme corrigé ...
... tandis que Websphere 7 sera le dernier grand sur la ligne d'arrivée

Agilité

Le Scrum meeting, story par story ?

RIA

Microsoft et Nokia adoptent jQuery

Le coin de la [...]]]></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/2008/09/29/revue-de-presse-xebia-76/#SpringSourcelesVCprennentlecon">Spring Source : les VC prennent le contrôle</a></li>
<li><a href="http://blog.xebia.fr/2008/09/29/revue-de-presse-xebia-76/#JBosscertifiJavaEEunanachronis">JBoss certifié Java EE 5 : un anachronisme corrigé ...</a></li>
<li><a href="http://blog.xebia.fr/2008/09/29/revue-de-presse-xebia-76/#tandisqueWebsphereseraledernie">... tandis que Websphere 7 sera le dernier grand sur la ligne d'arrivée</a></li>
</ul>
<p><strong>Agilité</strong></p>
<ul>
<li><a href="http://blog.xebia.fr/2008/09/29/revue-de-presse-xebia-76/#LeScrummeetingstoryparstory">Le Scrum meeting, story par story ?</a></li>
</ul>
<p><strong>RIA</strong></p>
<ul>
<li><a href="http://blog.xebia.fr/2008/09/29/revue-de-presse-xebia-76/#MicrosoftetNokiaadoptentjQuery">Microsoft et Nokia adoptent jQuery</a></li>
</ul>
<p><strong>Le coin de la technique</strong></p>
<ul>
<li><a href="http://blog.xebia.fr/2008/09/29/revue-de-presse-xebia-76/#LesspcificationsRESTseterminen">Les spécifications REST se terminent</a></li>
<li><a href="http://blog.xebia.fr/2008/09/29/revue-de-presse-xebia-76/#JVMWishListvueparTerracotta"><em>JVM Wish List</em> vue par Terracotta</a></li>
<li><a href="http://blog.xebia.fr/2008/09/29/revue-de-presse-xebia-76/#PrincipespourledesignduneAPI">Principes pour le design d'une API</a></li>
<li><a href="http://blog.xebia.fr/2008/09/29/revue-de-presse-xebia-76/#DavidSyercommuniquesurSpringBa">David Syer communique sur Spring Batch</a></li>
</ul>
<h3><a name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3>
<h4><a name="SpringSourcelesVCprennentlecon"></a>Spring Source : les VC prennent le contrôle</h4>
<p>Les semaines se suivent et ne se ressemblent pas chez Spring Source. Après le tumultueux revirement de stratégie Open Source il y a dix jours (cf. <a href="http://blog.xebia.fr/2008/09/22/nouvelle-politique-de-maintenance-de-spring-la-tres-perilleuse-route-de-la-monetisation-de-lopen-source/" title="Nouvelle politique de maintenance de Spring : La très périlleuse route de monétisation de l'open source" >Nouvelle politique de maintenance de Spring : La très périlleuse route de monétisation de l'open source</a>), Benchmark Capital, le principal fond d'investissement de Spring Source, prend le contrôle opérationnel de la société en nommant Rob Bearden President and Chief Operations Officer (COO). Rod Johnson conserve le titre de CEO.</p>
<p>C'est un véritable tournant dans la vie de Spring Source qui était jusqu'à présent gouvernée par son fondateur Rod Johnson et est aujourd'hui confrontée aux défis de la rentabilité et de la croissance.</p>
<p>Nous noterons au passage un clin d'oeil de l'histoire : Rob Bearden, avant de rejoindre Benchmark Capital, a été COO de JBoss. Le monde de l'Open source est petit, espérons que les relations conflictuelles entre les camps JBoss et Spring Source s'adoucissent <img src='http://blog.xebia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Les interrogations sont nombreuses : quelle place trouvera Rod Johnson dans cette nouvelle organisation ? Quelle stratégie Open source va adopter Rob Bearden ? Entérinera-t-il la nouvelle politique de commercialisation des releases post trois mois qui suscite encore une polémique très vive ?</p>
<p>Quelques liens :</p>
<ul>
<li><a href="http://www.theserverside.com/news/thread.tss?thread_id=50813" title="The Server Side : What will be next with SpringSource?" >The Server Side : What will be next with SpringSource?</a></li>
<li><a href="http://www.springsource.com/content/springsource-names-president-and-chief-operating-officer" title="Communiqué officiel : SpringSource Names President and Chief Operating Officer" >Communiqué officiel : SpringSource Names President and Chief Operating Officer</a></li>
<li><a href="http://www.theregister.co.uk/2008/09/26/springsource_president_coo/" title="The Register : SpringSource VC investor takes COO role" >The Register : SpringSource VC investor takes COO role</a></li>
</ul>
<h4><a name="JBosscertifiJavaEEunanachronis"></a>JBoss certifié Java EE 5 : un anachronisme corrigé ...</h4>
<p>L'anachronisme que personne ne comprenait est enfin corrigé. JBoss Application Server, précurseur de Java EE 5 avec le support de JPA dans Hibernate et la Web Application qui jouait le rôle d'un conteneur d'EJB 3 est enfin certifié Java EE 5. Sacha Labourey, JBoss, annonce dans <a href="http://sacha.labourey.com/2008/09/15/jboss-as-is-now-ee5-certified/" title="JBoss AS is now EE5 certified!" >JBoss AS is now EE5 certified!</a> que la version release sera disponible dans les semaines à venir. Il n'en reste pas moins que JBoss AS 5 est une refonte sur le fond du serveur d'application (nouveau messaging, clustering, etc) qui a duré plus de trois ans (cf <a href="http://www.infoq.com/news/2008/06/jboss-as5-rc1" title="InfoQ : Releasing JBoss AS 5: Q&#038;A with Project Lead Dimitris Andreadis" >InfoQ : Releasing JBoss AS 5: Q&#038;A with Project Lead Dimitris Andreadis</a>) et qu'on peut s'attendre à une phase de stabilisation de la nouvelle stack JBoss.</p>
<h4><a name="tandisqueWebsphereseraledernie"></a>... tandis que Websphere 7 sera le dernier grand sur la ligne d'arrivée</h4>
<p>IBM nous rappelle avec Websphere que les parts de marché sont parfois décorrélées de l'implémentation des dernières spécifications. Websphere 7 sera le dernier grand serveur Java EE a être certifié Java EE 5. </p>
<p>La <a href="http://www.ibm.com/developerworks/websphere/downloads/" title="version d'évaluation" >version d'évaluation</a> est déjà disponible sur DeveloperWorks ; des blogs (<a href="http://webspherecommunity.blogspot.com/" title="Websphere Community" >Websphere Community</a> et <a href="http://webspheremessaging.blogspot.com/" title="Websphere and Messagin" >Websphere and Messagin</a>) relaient la communication institutionnelle. </p>
<h3><a name="Agilit"></a>Agilité</h3>
<h4><a name="LeScrummeetingstoryparstory"></a>Le Scrum meeting, story par story ?</h4>
<p>Les <a href="http://en.wikipedia.org/wiki/Stand-up_meeting" title="daily standup meetings" >daily standup meetings</a> se déroulent habituellement personne par personne, c'est-à-dire que chaque membre de l'équipe répond aux <a href="http://www.scrumalliance.org/articles/39-glossary-of-scrum-terms#1128" title="3 questions" >3 questions</a> l'un après l'autre. Le défaut de cette méthode selon <a href="http://blog.mountaingoatsoftware.com/?p=51" title="Mike Cohn" >Mike Cohn</a> est qu'elle ne permet pas toujours de voir les problèmes sur les stories dont personne ne s'occupe puisque personne n'en parle.<br />
Il suggère la possibilité d'attaquer le standup <a href="http://blog.mountaingoatsoftware.com/?p=51" title="story par story" >story par story</a>, mais on perd alors en visibilité sur ce que fait chaque personne. Face à ce dilemme, plusieurs solutions sont possibles :</p>
<ul>
<li>L'équipe s'engage t-elle sur trop d'items par sprint ? Mike préconise une moyenne de 1 à 1,5 story / personne / sprint. Attention, cela ne veut absolument pas dire qu'une story doit être gérée par une seule personne !</li>
<li>Faire le standup devant le tableau des tâches, afin que chaque personne puisse pointer les items sur lesquels elle travaille.</li>
<li>Désigner des "story owners" : pour chaque story, une personne de l'équipe est responsable de son avancement. Cette personne n'est pas forcément le développeur principal de la story.</li>
<li>Regarder la taille de l'équipe : selon ses observations la taille idéale d'une équipe se situe entre 5-7 personnes.</li>
</ul>
<p>La plupart des équipes font leur standup par personne, mais certaines équipes peuvent se heurter à un manque de visibilité sur certaines stories. Cette vision "story par story" peut répondre à leurs attentes.</p>
<h3><a name="RIA"></a>RIA</h3>
<h4><a name="MicrosoftetNokiaadoptentjQuery"></a>Microsoft et Nokia adoptent jQuery</h4>
<p>À part GWT avec Google, un des reproches que l'on peut faire aux librairies JavaScript/AJAX est leur absence de support par un grand éditeur. Cet état de fait pourrait bien changer pour la librairie jQuery, une de nos librairies favorites, que l'on conseille et rencontre de plus en plus fréquemment chez nos clients. jQuery <a href="http://jquery.com/blog/2008/09/28/jquery-microsoft-nokia" title="annonce sur son blog" >annonce sur son blog</a> l'adoption par Microsoft et Nokia du framework, et son intégration dans leur plateforme de développement officielle respective.<br />
jQuery sera donc distribué avec Visual Studio, et sera présent dans tous les nouveaux téléphones de Nokia qui utiliseront le moteur de rendu maison <a href="http://www.s60.com/life/thisiss60/s60indetail/technologiesandfeatures/webruntime" title="Web Runtime" >Web Runtime</a>.<br />
Les bénéfices pour jQuery et ses utilisateurs sont multiples : la reconnaissance de la librairie comme parmi les plus populaires, et son amélioration via la soumission de patchs et de tests. Excellente nouvelle donc !</p>
<h3><a name="Lecoindelatechnique"></a>Le coin de la technique</h3>
<h4><a name="LesspcificationsRESTseterminen"></a>Les spécifications REST se terminent</h4>
<p>Vous en entendrez certainement parler prochainement à l'occasion de Spring 3.0, les spécifications de la <a href="http://jcp.org/en/jsr/detail?id=311" title="JSR-311 : Java API for RESTful Web Service" >JSR-311 : Java API for RESTful Web Service</a> (JAX-RS) ont été approuvées quasi unanimement (15 pour, 0 contre, 1 non votant) par l'<em>executive comitee</em>. </p>
<p>JAX-RS est une API permettant l'implémentation de Web Services REST, son fonctionnement est simple :</p>
<ul>
<li>on rajoute des annotations sur des classes et des méthodes pour décrire les services à exposer et la manière de les exposer</li>
<li>le choix du service s'effectue en fonction des URL / Content type / Headers et type de requête HTTP</li>
</ul>
<p>REST étant à la mode, plusieurs framework existent déjà dont :</p>
<ul>
<li><a href=" https://jersey.dev.java.net/" title="Jersey" >Jersey</a>, l'implémentation de référence pour JAX-RS développée par Sun</li>
<li><a href="http://www.restlet.org/" title="Restlet" >Restlet</a>, le framework du moment le plus utilisé pour les applications REST</li>
<li><a href="http://cwiki.apache.org/CXF20DOC/jax-rs-jsr-311.html" title="CXF RESTful Services" >CXF RESTful Services</a>, l'implémentation JAX-RS du projet Apache CXF</li>
<li><a href="http://jboss.org/resteasy" title="RESTeasy" >RESTeasy</a>, la version JBoss</li>
</ul>
<p>Une interview des specs leads Marc Hadley et Paul Sandoz est disponible sur <a href="http://www.infoq.com/news/2008/09/jsr311-approved" title="InfoQ" >InfoQ</a>. Une des questions intéressantes porte sur l'influence de la JSR311 sur les spécifications de Servlet. Cela nous rappelle que, même si les API REST et les Servlets ont des approches complètement différentes, ces deux technologies doivent pouvoir cohabiter et travailler ensemble.</p>
<h4><a name="JVMWishListvueparTerracotta"></a><em>JVM Wish List</em> vue par Terracotta</h4>
<p><a href="http://dsoguy.blogspot.com/2008/09/jvm-wish-list.html" title="Cet article" >Cet article</a> présente une liste d'améliorations JVM espérées vues par un spécialiste <a href="http://terracottatech.com/" title="Terracotta" >Terracotta</a>. S'il est vrai que cet outil aborde des problématiques peu communes (clustering de JVM), certaines de ces idées pourraient être utiles pour tout autre framework utilisant <a href="http://blog.xebia.fr/2008/05/02/java-agent-instrumentez-vos-classes/" title="l'instrumentalisation de code" >l'instrumentalisation de code</a>. </p>
<p>Voici les idées proposées par Steeve Haris dans son article regroupées par domaines, elles permettent de :</p>
<ul>
<li>Simplifier grandement le code de ce genre de framework en évitant d'avoir à développer des surcouches logicielles simulant certaines de ces fonctionnalités</li>
<ul>
<li>Permettre de créer des <code>proxy</code> d'objets niveau JVM : cela faciliterait le maintien de la <em>heap virtuelle</em> de Terracotta</li>
<li>Pouvoir associer des métadatas à un objet : cela permettrait d'affiner les choix du <em>memory manager</em> de Terracotta</li>
<li>Faciliter le développement de tricks  en améliorant le _Hot swapping_</li>
</ul>
<li>Optimiser le nombre d'objets à instrumentaliser</li>
<ul>
<li>Permette d'instrumenter des tableaux sans avoir besoin de passer par les classes les utilisant</li>
<li>Permettre le remplacement de méthodes <em>natives</em> : actuellement si l'on veut modifier le comportement d'une méthode native, nous somme obligé d'instrumenter tous les objets appelant celle-ci.</li>
</ul>
<li>Adapter la JVM aux architectures d'aujourd'hui</li>
<ul>
<li>La taille des listes et des collections est définie par un <code>int</code>. Les architectures 64 bits nous permettant d'ajouter de plus en plus de mémoire, il se peut que cette taille devienne insuffisante dans certaines utilisations. </li>
</ul>
</ul>
<h4><a name="PrincipespourledesignduneAPI"></a>Principes pour le design d'une API</h4>
<p><a href="http://en.wikipedia.org/wiki/Joshua_Bloch" title="Joshua Bloch" >Joshua Bloch</a> (Google), auteur de Effective Java, énumère un ensemble de principes clés afin de réussir la conception et la réalisation d'une API : <a href="http://www.infoq.com/articles/API-Design-Joshua-Bloch" title="Bumper-Sticker API Design" >Bumper-Sticker API Design</a>.</p>
<p>Une API n'est pas seulement mise en place dans les frameworks mais aussi dans des applications à différents niveaux :</p>
<ul>
<li>la couche d'accès aux données</li>
<li>la couche service</li>
</ul>
<p>La volonté d'une API est de réaliser un module cadré au fonctionnement clair. Le fonctionnement interne du module est caché derrière un contrat d'utilisation (qui ne repose pas nécessairement uniquement sur des interfaces Java). Le terme d'utilisabilité de l'API peut être employé.</p>
<p>L'utilisabilité d'une API peut être décrite avec les spécificités suivantes :</p>
<ul>
<li>contrat d'utilisation simple et explicité, cela passe par le nommage des éléments (classe, méthode, argument, ...).</li>
<li>l'intégration aux cas d'utilisation doit être naturelle. Pour que ce soit le plus naturel possible, on peut même envisager de d'abord coder les cas d'utilisation avec l'appel à l'API et ensuite coder l'implémentation de l'API.</li>
<li>l'implémentation de l'API doit être indépendante du contexte d'appel</li>
</ul>
<p>Le développement d'API pose le problème de la gestion des versions. A partir du moment où elle est exposée, une API doit répondre de la même façon à tous les appels, quel que soit le client sollicitant le service. Il est vital de respecter les principes de l'IoC <em>Inversion of Control</em>, et ne pas enrichir chaque version d'un ou plusieurs comportements spécifiques :</p>
<div class="syntax_hilite">
<div id="java-2">
<div class="java"><span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>isClient1<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; <span style="color: #808080; font-style: italic;">// Traitement spécifique client 1</span><br />
<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>isClient2<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span><br />
&nbsp; <span style="color: #808080; font-style: italic;">// Traitement spécifique client 2</span><br />
<span style="color: #66cc66;">&#125;</span> <span style="color: #b1b100;">else</span> <span style="color: #66cc66;">&#123;</span><br />
...<br />
<span style="color: #66cc66;">&#125;</span></div>
</div>
</div>
<p></p>
<p>Des principes qui font généralement débats sont aussi présentés :</p>
<ul>
<li>Faire peu de documentation, les noms des classes/méthodes doivent être explicites</li>
<li>Ne pas remonter de <code>CheckException</code> que des <code>RuntimeException</code></li>
</ul>
<p>Il est vrai que la principale difficulté d'une API est de bien faire dès la première version. La moindre modification du contrat d'utilisation de l'API entraînera des régressions chez les clients de l'API.</p>
<p>C'est pour cette raison qu'il faut tenter de faire un premier jet aussi bref et concis que possible, et de ne traiter la multiplicité des cas qu'au fur et à mesure de leur apparition, dans des versions ultérieures.</p>
<p>Pour conclure, on reprendra la phrase de Joshua Bloch : le design d'API est un art, pas une science exacte.</p>
<p>N'hésitez pas à visionner le <a href="http://www.infoq.com/presentations/effective-api-design" title="vidcast associé à cet article" >vidcast associé à cet article</a>.</p>
<h4><a name="DavidSyercommuniquesurSpringBa"></a>David Syer communique sur Spring Batch</h4>
<p><a href="http://blog.xebia.fr/2008/06/23/revue-de-presse-xebia-62/#DaveSyerrevientsurSpringBatchp" title="Nous vous l'annoncions avant l'été" >Nous vous l'annoncions avant l'été</a>, David Syer, le leader technique de Spring Batch, a entamé sa "tournée promotionnelle".</p>
<p>À travers ce <a href="http://www.infoq.com/presentations/syer-introducing-spring-batch" title="vidcast, capté au QCon de Londres et relayé par InfoQ" >vidcast, capté au QCon de Londres et relayé par InfoQ</a> (ou bien via <a href="http://www.springsource.com/files/IntroducingSpringBatch-1.0.1.pdf" title="le support de présentation" >le support de présentation</a>), il revient sur :</p>
<ul>
<li>les patterns de batch et leur utilisation</li>
<li>un survol des concepts de SpringBatch</li>
<li>une étude de cas</li>
<li>l'avenir de ce produit</li>
</ul>
<p>D'autre part, dans une autre <a href="http://www.tv4it.net/permalink/6169/spring-batch-un-framework-java-open-source-pour-le-plus-vieux-sujet-de-linformatique.aspx" title="vidéo publiée sur  TV4it" >vidéo publiée sur  TV4it</a>, Olivier Rachon, Senior Manager chez Accenture, nous en dit plus quant à l'utilisation de ce <em>récent</em> framework : 5 projets en production, des 10aines en cours de développement.</p>
<p>Pour information, la version 1.1.2 est disponible et les premiers tests que nous avons effectués, dans le cadre d'un XKE, nous ont paru très convaincants. Nous devrions publier prochainement notre retour d'expérience sur ce framework.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xebia.fr/2008/09/29/revue-de-presse-xebia-76/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Revue de Presse Xebia</title>
		<link>http://blog.xebia.fr/2008/09/15/revue-de-presse-xebia-74/</link>
		<comments>http://blog.xebia.fr/2008/09/15/revue-de-presse-xebia-74/#comments</comments>
		<pubDate>Mon, 15 Sep 2008 15:48:03 +0000</pubDate>
		<dc:creator>Xebia France</dc:creator>
				<category><![CDATA[Revue de presse]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Java / JEE]]></category>
		<category><![CDATA[JavaPolis]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JVM]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Websphere]]></category>

		<guid isPermaLink="false">http://blog.xebia.fr/?p=654</guid>
		<description><![CDATA[
La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.
Le coin de la technique

invokedynamic vu de l'intérieur
Concurrency : past and present
Tuning des JVM Websphere 6.1
Performance d'affichage d'une page Web

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

Refactoring itératif de conférences : JavaPolis, Javoxx et DeVox

Le coin de la technique
invokedynamic vu de l'intérieur
Dans cet article, [...]]]></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>Le coin de la technique</strong></p>
<ul>
<li><a href="http://blog.xebia.fr/2008/09/15/revue-de-presse-xebia/#invokedynamicvudelintrieur"><code>invokedynamic</code> vu de l'intérieur</a></li>
<li><a href="http://blog.xebia.fr/2008/09/15/revue-de-presse-xebia/#Concurrencypastandpresent">Concurrency : past and present</a></li>
<li><a href="http://blog.xebia.fr/2008/09/15/revue-de-presse-xebia/#TuningdesJVMWebsphere">Tuning des JVM Websphere 6.1</a></li>
<li><a href="http://blog.xebia.fr/2008/09/15/revue-de-presse-xebia/#PerformancedaffichagedunepageW">Performance d'affichage d'une page Web</a></li>
</ul>
<p><strong>Evènements de notre communauté en France et à l'étranger</strong></p>
<ul>
<li><a href="http://blog.xebia.fr/2008/09/15/revue-de-presse-xebia/#Refactoringitratifdeconfrences">Refactoring itératif de conférences : JavaPolis, Javoxx et DeVox</a></li>
</ul>
<h3><a name="Lecoindelatechnique"></a>Le coin de la technique</h3>
<h4><a name="invokedynamicvudelintrieur"></a><code>invokedynamic</code> vu de l'intérieur</h4>
<p>Dans <a href="http://blog.headius.com/2008/09/first-taste-of-invokedynamic.html" title="cet article" >cet article</a>, Charles Nutter, <em>JRuby Core Developper</em> nous présente pourquoi il est nécessaire de mettre à jour le bytecode <code>invokedynamic</code>.<br />
Java nous oblige à typer chaque variable et chaque méthode doit définir une signature statique dont les types sont connus avant le Runtime : Java est un langage  'statiquement' typé. Si ce typage fort est une des forces du langage, comment la JVM peut-elle supporter des langages dynamiques ? La rigidité de Java provient, plus de son langage que de son bytecode. C'est ainsi que des langages comme Groovy permettent d'enfreindre certaines règles, par exemple : ne pas définir de types aux variables.  Ce n'est pas pour autant que le bytecode va tout nous permettre, certaines règles sont incassables dont celles qui s'appliquent aux invocations de méthodes :</p>
<ul>
<li>Les invocations sont statiquement typées.</li>
<li>Les invocations doivent s'effectuer sur des méthodes Java. Il est impossible de remplacer un appel à une méthode par un morceau de code interprété.</li>
</ul>
<p>À l'origine, la <a href="http://jcp.org/en/jsr/detail?id=292" title="JSR-292" >JSR-292</a> a proposé la mise en place d'un nouveau code <code>invokedynamic</code> permettant l'invocation de méthodes sans signatures typées statiquement, mais rien n'avait été prévu pour modifier dynamiquement la logique d'invocation de la JVM.</p>
<h4><a name="Concurrencypastandpresent"></a>Concurrency : past and present</h4>
<p>Brian Goetz, auteur du livre 'Java Concurrency In Practice', a publié sur InfoQ une vidéo enregistrée lors du QCon 2007 : <a href=" http://www.infoq.com/presentations/goetz-concurrency-past-present" title="Concurrency : Past and Present" >Concurrency : Past and Present</a>.<br />
Pourquoi est-il plus difficile de développer des applications multithreadées que de parler en lisant son journal ?<br />
Dans cette présentation, Brian tente de répondre à cette question en revenant sur les principales difficultés de la programmation concurrente. Sujet que nous avions également abordé lors d'un article publié cet été sur le sujet : <em>"<a href=" http://blog.xebia.fr/2008/08/13/programmation-concurrentielle-notions-fondamentales/" title="programmation concurrente : notions fondamentales" >programmation concurrente : notions fondamentales</a>"</em>. Pour illustrer ces problèmes, Brian revient sur l'histoire de la programmation concurrente et ses différentes approches, avant de donner ses recommandations. À la fin de la vidéo, il présente également les fonctionnalités offertes par d'autres langages comme ErLang et Scala.</p>
<h4><a name="TuningdesJVMWebsphere"></a>Tuning des JVM Websphere 6.1</h4>
<p>Giribabu Paramkusham et Ajay Bhalodia, WebSphere Application Server Technical Support, présentent dans <a href="http://www-01.ibm.com/support/docview.wss?uid=swg27013400" title="JVM Performance Tuning with respect to Garbage Collection(GC) policies for WebSphere Application Server V6.1 part 1" >JVM Performance Tuning with respect to Garbage Collection(GC) policies for WebSphere Application Server V6.1 part 1</a> (<a href="http://www-01.ibm.com/support/docview.wss?uid=swg27013400&#038;aid=1" title="pdf" >pdf</a>) les points clef du tuning des JVM pour Websphere. Nous retiendrons :</p>
<ul>
<li>Les JVM IBM proposent quatre stratégies de garbage collections :<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;<code>-Xgcpolicy:optthruput</code> pour minimiser le temps global d'exécution (batch, ...).<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;<code>-Xgcpolicy:optavgpause</code> pour minimiser la durée de chaque pause.<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;<code>-Xgcpolicy:gencon</code> destiné aux applications web. L'algorithme Générationnel Concurrent communément utilisé dans les JVM Sun est optimisé pour les objets à courte durée de vie.<br />
		&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;<code>-Xgcpolicy:subpools</code> pour les serveurs à grand nombre de processeurs (>16).
    </li>
<li>A la différence de l'implémentation GenCon de Sun qui comprend trois zones (Young, Tenurd et Permanent), celle d'IBM n'en comporte que deux (Young et Old)</li>
<li>L'option <code>-verbose:gc</code> est activable en production avec un impact négligeable sur les performances et l'option moins connue <a href="http://publib.boulder.ibm.com/infocenter/javasdk/v5r0/index.jsp?topic=/com.ibm.java.doc.diagnostics.50/diag/appendixes/cmdline/cmdline_gc.html" title="-Xverbosegclog" ><code>-Xverbosegclog</code></a> permet de préciser un fichier de sortie en mode <em>rolling file</em> . Nous noterons que les informations de GC sont désormais formattées en XML ce qui facilitera la manipulation avec des outils.</li>
<li>Indépendamment des limites techniques liées au système d'exploitation, les JVM IBM sont optimisées pour utiliser des heap le plus souvent inférieures à 2 GB :</li>
</ul>
<table cellspacing="0" cellpadding="5" style="border: 1px solid black">
<tr>
<td bgcolor="#663366" style="color: #ffffff; border: 1px solid black"><strong> Platform </strong></td>
<td bgcolor="#663366" style="color: #ffffff; border: 1px solid black"><strong> Additional Options </strong></td>
<td bgcolor="#663366" style="color: #ffffff; border: 1px solid black"><strong> Maximum Possible </strong></td>
<td bgcolor="#663366" style="color: #ffffff; border: 1px solid black"><strong> Advised Maximum </strong></td>
</tr>
<tr>
<td style="border: 1px solid black"> AIX </td>
<td style="border: 1px solid black"> automatic </td>
<td style="border: 1px solid black"> 3.25 GB </td>
<td style="border: 1px solid black"> 2.5 GB </td>
</tr>
<tr>
<td style="border: 1px solid black"> Linux </td>
<td style="border: 1px solid black">  </td>
<td style="border: 1px solid black"> 2 GB </td>
<td style="border: 1px solid black"> 1.5 GB </td>
</tr>
<tr>
<td style="border: 1px solid black">  </td>
<td style="border: 1px solid black"> Hugemem Kernel </td>
<td style="border: 1px solid black"> 3 GB </td>
<td style="border: 1px solid black"> 2.5 GB </td>
</tr>
<tr>
<td style="border: 1px solid black"> Windows </td>
<td style="border: 1px solid black">  </td>
<td style="border: 1px solid black"> 1.8 GB </td>
<td style="border: 1px solid black"> 1.5 GB </td>
</tr>
<tr>
<td style="border: 1px solid black"> </td>
<td style="border: 1px solid black"> /3GB </td>
<td style="border: 1px solid black"> 1.8 GB </td>
<td style="border: 1px solid black"> 1.8 GB </td>
</tr>
<tr>
<td style="border: 1px solid black"> z/OS </td>
<td style="border: 1px solid black">  </td>
<td style="border: 1px solid black"> 1.7 GB </td>
<td style="border: 1px solid black"> 1.3 GB </td>
</tr>
</table>
<p><em>source IBM</em></p>
<ul>
<li>L'utilisation de JVM 64 bits supprime les limites de taille de heap mais pénalisent les performances (plus de données manipulées) et la consommation mémoire (des pointeurs sur 64bits plutôt que 32bits accroissent de 30% à 50% la mémoire consommée)</li>
<li>La JVM 6 d'IBM réduit les dégradations de performances et de consommation mémoire en 64bits grâce à l'introduction de "pointeurs compressés"</li>
</ul>
<h4><a name="PerformancedaffichagedunepageW"></a>Performance d'affichage d'une page Web</h4>
<p><a href="http://xnme.exofire.net/" title="Hayes Potter" >Hayes Potter</a>, nous présente dans <a href="http://www.catswhocode.com/blog/web-development/speed-up-your-website-quick-602" title="Speed up your website, quick!" >Speed up your website, quick!</a> des règles structurantes afin d'améliorer les performances d'affichage d'une page Web :</p>
<ul>
<li>Compression des ressources statiques (images, fichiers flashs, scripts, ...).</li>
<li>Mettre en place une politique d'expiration des ressources statiques .</li>
<li>Mettre les styles CSS en haut de la page HTML tandis qu'il faut mettre les fichiers Javascript en bas de la page.</li>
<li>Limiter les requêtes <code>http://request</code> vers d'autres domaines. En effet à chaque requête vers un autre domaine, pendant le chargement de la page, une résolution DNS est effectué (<strong>accès réseaux supplémentaires</strong>).</li>
</ul>
<p>Dans le même esprit, Yahoo a mis à dispositon de la communauté des développeurs Web un ensemble de règles : <a href="http://developer.yahoo.com/performance/rules.html" title="Exceptional Performances" >Exceptional Performances</a>.<br />
Il y a 34 <em>Best Pratices</em> répartis dans 7 domaines différents : </p>
<ul>
<li>Contenu</li>
<li>Serveur</li>
<li>Cookie</li>
<li>CSS</li>
<li>Javascript</li>
<li>Image</li>
<li>Mobile</li>
</ul>
<p>Voici les règles les plus marquantes :</p>
<ul>
<li>Externaliser les fichiers CSS et Javascripts de la page HTML.</li>
<li>Réduire la taille des fichiers Javascripts en éliminant les caractères superflus (espace, variable à rallonge, ...). Cela peut être assisté par des outils tel que <a href="http://www.crockford.com/javascript/jsmin.html" title="JSMin" >JSMin</a> et <a href="http://developer.yahoo.com/yui/compressor/" title="YUI Compressor" >YUI Compressor</a>. L'idéal c'est que les développeurs des pages gardent des fichiers Javascripts lisibles et maintenables puis au déploiement de ces pages, passer une moulinette sur les fichiers Javascripts afin d'épurer les caractères superflus.</li>
<li>Eviter la duplication des importations du même script, par exemple IE retéléchargera plusieurs le fichier bien que c'est la même ressource.</li>
<li>Utiliser une requête HTTP GET pour les requêtes AJAX.</li>
<li>Rassembler l'ensemble de vos images (pour les gestions des boutons par exemple) en une seule image et en faire un sprite avec CSS. Cette tache peut être assister par les outils <a href="http://www.csssprites.com/" title="CSS Sprites" >CSS Sprites</a> et <a href="http://spritegen.website-performance.org/" title="Website Performance CSS Sprite Generator" >Website Performance CSS Sprite Generator</a>.</li>
<li>Limiter l'utilisation des <code>iframe</code>.</li>
</ul>
<p>Références : </p>
<ul>
<li><a href="http://www.dmxzone.com/ShowDetail.asp?NewsId=14958" title="Yahoo! New Performance Best Practices Now Available (Mars 2008)" >Yahoo! New Performance Best Practices Now Available (Mars 2008)</a>, excellente présentation de Stoyan Stefanox, développeur Yahoo, qui reprend point par point toutes ces <em>Best Pratices</em></li>
</ul>
<p>Voici une liste d'outils facilitant la mise en oeuvre et la vérification de ces points :</p>
<ul>
<li><a href="http://developer.yahoo.com/yslow/" title="YSlow" >YSlow</a>, outil Yahoo aidant à la vérification de ces <em>best pratices</em></li>
<li><a href="http://www.fiddlertool.com/fiddler/" title="Fiddler" >Fiddler</a>, debugger HTTP</li>
<li><a href="http://www.alphaworks.ibm.com/tech/pagedetailer" title="IBM Page Detailler" >IBM Page Detailler</a>, décrire le déroulement des fichiers téléchargés pour l'affichage d'une page</li>
<li><a href="https://addons.mozilla.org/fr/firefox/addon/1843" title="Firebug" >Firebug</a> (que pour firefox)</li>
<li><a href="http://www.crockford.com/javascript/jsmin.html" title="JSMin" >JSMin</a>, minimiseur JavaScript</li>
<li><a href="http://developer.yahoo.com/yui/compressor/" title="YUI Compressor" >YUI Compressor</a>, minimiseur Javascript</li>
<li><a href="http://www.csssprites.com/" title="CSS Sprites" >CSS Sprites</a>, générateur de sprite CSS</li>
<li><a href="http://spritegen.website-performance.org/" title="Website Performance CSS Sprite Generator" >Website Performance CSS Sprite Generator</a>, générateur de sprite CSS</li>
</ul>
<h3><a name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l'étranger</h3>
<h4><a name="Refactoringitratifdeconfrences"></a>Refactoring itératif de conférences : JavaPolis, Javoxx et DeVox</h4>
<p>Terminons cette revue de presse par la petite histoire belge de la semaine. L'un des plus gros événements Java au monde JavaPolis vient de <a href="http://weblogs.java.net/blog/fabriziogiudici/archive/2008/09/javapolis_javox.html" title="changer de nom" >changer de nom</a> pour la seconde fois cette année. Renommé Javoox en début d'année, il semblerait que cet ancien nouveau nom soit encore trop proche de « Java » pour Sun. Avec ce nouveau nom : <strong>DeVoxx</strong>, le BeJug (porteur de l'événement) continue le bras de fer avec Sun en osant mettre un 'V' en 3e caractère de leur nouveau nom ... tout comme dans 'jaVa' ... La <a href=" http://www.devoxx.com/newsletters/2008/2/index.html" title="newsletter de DeVoxx" >newsletter de DeVoxx</a> nous explique que ce nouveau changement de nom est dû à une volonté de rester un événement Java indépendant. </p>
<ul>
<li>Site officiel du <a href="http://www.bejug.org" title="BeJug" >BeJug</a></li>
<li>Site officiel du <a href="http://www.devoxx.com" title="DeVoxx" >DeVoxx</a></li>
<li>Consultez la liste des <a href="http://www.devoxx.com/display/JV08/Speakers" title="intervenants" >intervenants</a> à DeVoxx 2008</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.xebia.fr/2008/09/15/revue-de-presse-xebia-74/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Revue de Presse Xebia</title>
		<link>http://blog.xebia.fr/2008/04/28/revue-de-presse-xebia-54/</link>
		<comments>http://blog.xebia.fr/2008/04/28/revue-de-presse-xebia-54/#comments</comments>
		<pubDate>Mon, 28 Apr 2008 17:04:41 +0000</pubDate>
		<dc:creator>Xebia France</dc:creator>
				<category><![CDATA[Revue de presse]]></category>
		<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Java / JEE]]></category>
		<category><![CDATA[JBoss]]></category>
		<category><![CDATA[JPA]]></category>
		<category><![CDATA[Méthodes agiles]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[OSGi]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[Sun]]></category>
		<category><![CDATA[Websphere]]></category>

		<guid isPermaLink="false">http://blog.xebia.fr/2008/04/28/revue-de-presse-xebia-54/</guid>
		<description><![CDATA[
La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.
Actualité éditeurs / SSII

MySQL by Sun : Revirement de stratégie open source ? Choquant ?
Superpackages (JSR-294) vs. OSGI : Episode n° 34291567....

Agilité

User stories "En tant que ... je veux ..."

Le coin de la technique

De la sérialisation au parallélisme, une évolution incarnée par java.util.concurrent
Innovation autour 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ée par Xebia.</em></p>
<p><strong>Actualité éditeurs / SSII</strong></p>
<ul>
<li><a href="http://blog.xebia.fr/2008/04/28/revue-de-presse-xebia-54/#MySQLbySunRevirementdestratgie">MySQL by Sun : Revirement de stratégie open source ? Choquant ?</a></li>
<li><a href="http://blog.xebia.fr/2008/04/28/revue-de-presse-xebia-54/#SuperpackagesJSRvsOSGIEpisoden">Superpackages (JSR-294) vs. OSGI : Episode n° 34291567....</a></li>
</ul>
<p><strong>Agilité</strong></p>
<ul>
<li><a href="http://blog.xebia.fr/2008/04/28/revue-de-presse-xebia-54/#UserstoriesEntantquejeveux">User stories "En tant que ... je veux ..."</a></li>
</ul>
<p><strong>Le coin de la technique</strong></p>
<ul>
<li><a href="http://blog.xebia.fr/2008/04/28/revue-de-presse-xebia-54/#Delasrialisationauparalllismeu">De la sérialisation au parallélisme, une évolution incarnée par java.util.concurrent</a></li>
<li><a href="http://blog.xebia.fr/2008/04/28/revue-de-presse-xebia-54/#InnovationautourdeJPAJBossHibe">Innovation autour de JPA : JBoss Hibernate confirme son domination avec Envers</a></li>
<li><a href="http://blog.xebia.fr/2008/04/28/revue-de-presse-xebia-54/#VideoIntroductiontoWebSphereeX">Cas d'utilisation des grilles Java avec WebSphere eXtreme Scale/ ObjectGrid</a></li>
<li><a href="http://blog.xebia.fr/2008/04/28/revue-de-presse-xebia-54/#JSRJAXRSRESTunehistoiredeRESTa">JSR-311 JAX-RS REST une histoire de RESTaurant</a></li>
</ul>
<p><strong>Evènements de notre communauté en France et à l'étranger</strong></p>
<ul>
<li><a href="http://blog.xebia.fr/2008/04/28/revue-de-presse-xebia-54/#XKEleprogrammedelasessiondemai">XKE, le programme de la session de mai</a></li>
</ul>
<h3><a name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3>
<h4><a name="MySQLbySunRevirementdestratgie"></a>MySQL by Sun : Revirement de stratégie open source ? Choquant ?</h4>
<p><a href="http://slashdot.org/" title="Slashdot" >Slashdot</a> essaie de nous emmener sur une polémique "Sun gâche MySQL" avec <a href="http://developers.slashdot.org/article.pl?sid=08/04/16/2337224" title="Sun May Begin Close Sourcing MySQL Features" >Sun May Begin Close Sourcing MySQL Features</a> à l'occasion de l'annonce par l'éditeur de fonctionnalités (online backup, etc) qui seront uniquement disponibles dans la version payante <a href="http://www.mysql.com/products/enterprise/" title="MySQL Enterprise" >MySQL Enterprise</a>. Au delà de l'insinuation peu crédible quand on se rappelle que l'essentiel du catalogue de Sun est disponible gratuitement, on retrouve le défi aujourd'hui classique de la monétisation de l'Open Source. Le rachat de MySQL par Sun change complétement le modèle économique de l'éditeur de base de données.</p>
<p>Hier, la startup MySQL, financée par des fonds de capital risque, se permettait d'être déficitaire car les candidats au rachat (Oracle puis finalement Sun) ne valorisaient pas MySQL Inc sur ses revenus mais sur les parts de marché de sa base de données. La stratégie a magnifiquement porté ses fruits puisque MySQL Inc s'est vendue un milliard de dollars à Sun, félicitations au management.</p>
<p>Aujourd'hui, MySQL est vraisemblablement devenue une division 'classique' de Sun et doit donc devenir rentable. L'équation de la rentabilité de l'open source est complexe, Red Hat et JBoss by Red Hat ont été des pionniers sur ce chemin, souhaitons à MySql by Sun de trouver lui aussi son modèle.</p>
<p><a href="http://www.theserverside.com/news/thread.tss?thread_id=49087" title="TSS : MySQL to get new features in Enterprise version" >TSS : MySQL to get new features in Enterprise version</a></p>
<p><i><strong>Modification du billet le 29 Avril 2008 : Jonathan Schwartz est finalement revenu en arrière et a annoncé que tous les produits que Sun distribue, sans exception, sont proposés gratuitement en licence Open source à la communauté. Pour plus de détails sur cette histoire, nous vous recommandons la série de <a href="http://www.the451group.com/">The 451 Group</a> : <a href="http://blogs.the451group.com/opensource/2008/04/17/mysqls-business-model-in-a-state-of-flux/">MySQL’s business model in a state of flux</a>, <a href="http://blogs.the451group.com/opensource/2008/04/24/finding-the-right-balance-mysql%e2%80%99s-changing-development-model/">Finding the right balance - MySQL’s changing development model</a> et <a href="http://blogs.the451group.com/opensource/2008/04/28/jonathan-schwartz-has-the-last-word-on-mysql/">Jonathan Schwartz has the last word on MySQL</a></strong></i></p>
<h4><a name="SuperpackagesJSRvsOSGIEpisoden"></a>Superpackages (JSR-294) vs. OSGI : Episode n° 34291567....</h4>
<p>La guerre continue entre les partisans de OSGI et ceux des JSR de SuperPackage et de JAM. Cependant, l'attaque vient cette fois-ci d'<a href="http://blogs.sun.com/abuckley/" title="Alex Buckley" >Alex Buckley</a> de chez Sun.</p>
<p>Il explique dans son <a href="http://altair.cs.oswego.edu/pipermail/jsr294-modularity-eg/2008-March/000171.html" title="email" >email</a> les inconvénients qu'il voit dans l'implémentation actuelle des superpackages[1]. En substance, il propose d'introduire à la place un nouvel 'access modifier' (module).</p>
<p>Peter Kriens de l'OSGi Alliance semble plutôt emballé par cette <a href="http://www.osgi.org/blog/2008/04/jsr-294-superpackages-no-more.html" title="proposition" >proposition</a>.</p>
<p>[1] Pour mémoire, nous avons publié en février dernier un <a href="http://blog.xebia.fr/2008/02/27/jsr-294-les-superpackages/" title="article présentant les superpackages" >article présentant les superpackages</a></p>
<h3><a name="Agilit"></a>Agilité</h3>
<h4><a name="UserstoriesEntantquejeveux"></a>User stories "En tant que ... je veux ..."</h4>
<p>Mike Cohn nous rappelle les 3 raisons pour lesquelles il préconise de décomposer les <a href="http://www.mountaingoatsoftware.com/presentation/63-an-introduction-to-user-stories" title="user stories" >user stories</a> sous forme de phrase <a href="http://blog.mountaingoatsoftware.com/?p=24" title=""En tant que &lt;role&gt;, je veux &lt;but&gt;, pour que &lt;raison&gt;"" >"En tant que &lt;role&gt;, je veux &lt;but&gt;, pour que &lt;raison&gt;"</a> (la raison est optionnelle) :</p>
<ul>
<li>L'emploi de la 1ère personne du singulier aide les développeurs à s'identifier à l'utilisateur</li>
<li>La structure de la phrase - représentée par 3 colonnes dans le <a href="http://www.mountaingoatsoftware.com/product_backlog" title="Product backlog" >Product backlog</a> - aide le <a href="http://www.mountaingoatsoftware.com/product_owner" title="Product Owner" >Product Owner</a> à comprendre et prioriser les user stories</li>
<li>Pour ne pas rajouter de bruit dans la description des user stories, il suffit de nommer les colonnes du Product backlog "En tant que ...", "je veux ...", "pour que ..." et le backlog devient intuitif à lire.</li>
</ul>
<h3><a name="Lecoindelatechnique"></a>Le coin de la technique</h3>
<h4><a name="Delasrialisationauparalllismeu"></a>De la sérialisation au parallélisme, une évolution incarnée par java.util.concurrent</h4>
<p>La programmation multi-threadée en java a évoluée : anciennement on utilisait la sérialisation incarnée par <code>synchronized</code>, désormais on peut faire du parallélisme avec l'introduction des API <code>java.util.concurrent</code> en Java 5.</p>
<p>Sharadjava nous présente dans sa Java Concurrency Series les différents aspects de cette nouvelle librairie :</p>
<ul>
<li><a href="http://www.techgrasp.com/blogs/sharadjava/java-concurrency-series-simple-executor-example" title="Simple Executor example" >Simple Executor example</a> pour la parallélisation des tâches.</li>
<li><a href="http://www.techgrasp.com/blogs/sharadjava/java-concurrency-series-examples-barrier" title="Barrier" >Barrier</a> pour l'attente entre tâches (on n'oubliera pas sur ce sujet le <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/CountDownLatch.html" title="CountDownLatch" >CountDownLatch</a>).</li>
<li><a href="http://www.techgrasp.com/blogs/sharadjava/java-concurrency-series-meaning-volatile-variable" title="Meaning of volatile" >Meaning of volatile</a> pour la visibilité inter-threads des valeurs des variables.</li>
</ul>
<h4><a name="InnovationautourdeJPAJBossHibe"></a>Innovation autour de JPA : JBoss Hibernate confirme son domination avec Envers</h4>
<p>Après l'intégration de la recherche full text Lucene [1] et le support du Database Sharding, <a href="http://www.hibernate.org" title="Hibernate" >Hibernate</a> confirme sa domination de l'innovation autour de JPA en ouvrant le chantier du versionnage des données. Cette problématique, bien que récurrente et accentuée par les nouvelles contraintes réglementaires (Sarbane &#038; Oaxley, etc), restait largement ignorées par nos frameworks et nos très chers design patterns. Seul Martin Fowler nous éclairait sur ce sujet délicat avec <a href="http://www.martinfowler.com/ap2/timeNarrative.html" title="Patterns for things that change with time" >Patterns for things that change with time</a>.</p>
<p>JBoss comble aujourd'hui ce vide en lançant <a href="http://www.jboss.org/envers/" title="Envers" >Envers</a>, une extension d'Hibernate qui versionne les données persistantes selon un pattern similaire au <a href="http://www.martinfowler.com/ap2/temporalObject.html" title="Temporal Object" >Temporal Object</a> de Martin Fowler. Envers n'est qu'en version preview mais le projet est très prometteur et déjà une source d'inspiration pour les projets qui n'ont pas le temps d'attendre la première version stable.</p>
<p>On notera au passage qu'Envers préfère l'API standard JPA EntityManager à l'historique Session Hibernate ; on peut y voir un signe que le temps est venu pour les équipes projets de privilégier les standards JPA aux API historiques Hibernate.</p>
<p>Exemple d'entité persistante versionnée avec JBoss Envers</p>
<div class="syntax_hilite">
<div id="java-4">
<div class="java">@<a href="http://www.google.com/search?q=allinurl%3AEntity+java.sun.com&amp;bntl=1"><span style="color: #aaaadd; font-weight: bold;">Entity</span></a><br />
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Person <span style="color: #66cc66;">&#123;</span><br />
&nbsp; &nbsp; @Id<br />
&nbsp; &nbsp; @GeneratedValue<br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">private</span> <a href="http://www.google.com/search?q=allinurl%3AInteger+java.sun.com&amp;bntl=1"><span style="color: #aaaadd; font-weight: bold;">Integer</span></a> id;</p>
<p>&nbsp; &nbsp; @Versioned<br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">private</span> <a href="http://www.google.com/search?q=allinurl%3AString+java.sun.com&amp;bntl=1"><span style="color: #aaaadd; font-weight: bold;">String</span></a> name;</p>
<p>&nbsp; &nbsp; @Versioned<br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">private</span> <a href="http://www.google.com/search?q=allinurl%3AString+java.sun.com&amp;bntl=1"><span style="color: #aaaadd; font-weight: bold;">String</span></a> surname;</p>
<p>&nbsp; &nbsp; @Versioned<br />
&nbsp; &nbsp; @ManyToOne<br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">private</span> Address address;</p>
<p>&nbsp; &nbsp;...<br />
<span style="color: #66cc66;">&#125;</span></div>
</div>
</div>
<p></p>
<p>[1] cf notre billet <a href="http://blog.xebia.fr/2008/03/06/introduction-a-hibernate-search-googling-your-persistent-domain-model/" title="Introduction à Hibernate Search (Googling your Persistent Domain Model)" >Introduction à Hibernate Search (Googling your Persistent Domain Model)</a></p>
<h4><a name="VideoIntroductiontoWebSphereeX"></a>Cas d'utilisation des grilles Java avec WebSphere eXtreme Scale/ ObjectGrid</h4>
<p>Billy Newport présente dans <a href="http://www.devwebsphere.com/devwebsphere/2008/04/video-introduct.html" title="Video: Introduction to WebSphere eXtreme Scale/ObjectGrid with patterns and use cases" >Video: Introduction to WebSphere eXtreme Scale/ObjectGrid with patterns and use cases</a> les scénarios typiques d'utilisation de la grille Java d'IBM :</p>
<ul>
<li>Cache de proximité classique : la grille sert de Map distribuée ; l'application métier gère les données (chargement depuis les backends, mise en cache et sauvegarde des modifications dans les backends).</li>
<li>Cache de proximité avec "Loader synchrone" dans la grille : l'application métier se limite à demander des données à la grille et à les modifier ; la grille, grâce à un Loader, s'occupe de charger les données depuis les backends et sauvegarde en synchrone les données modifiées dans les backends.</li>
<li>Cache de proximité avec un "Loader à écriture différée" dans la grille : similaire au scénario précédent mais la sauvegarde des modifications dans les backends est asynchrone.</li>
<li>Cache collocalisé : l'application et la grille s'éxécutent dans les même JVM, chaque JVM héberge un noeud du cluster de l'application et un noeud de la grille. Ce scénario est typique de la mise en cache des sessions HTTP.</li>
</ul>
<p>On notera que les architectures de type <a href="http://en.wikipedia.org/wiki/MapReduce" title="Map/Reduce" >Map/Reduce</a>, qui nécessitent une conception radicalement différente, ne semblent pas encore très répandues.</p>
<h4><a name="JSRJAXRSRESTunehistoiredeRESTa"></a>JSR-311 JAX-RS REST une histoire de RESTaurant</h4>
<p>Dans cet <a href="http://www.touilleur-express.fr/2008/04/25/jsr-311-jax-rs-rest-une-histoire-de-restaurant/" title="article" >article</a>, Nicolas Martignole nous présente l'architecture REST (<a href="http://en.wikipedia.org/wiki/Representational_State_Transfer" title="Representational State Transfer" >Representational State Transfer</a>) et <a href="http://jcp.org/en/jsr/detail?id=311" title="JSR 311: JAX-RS: The Java API for RESTful Web Services" >JSR 311: JAX-RS: The Java API for RESTful Web Services</a>. L'objectif de cette JSR est de faciliter la programmation d'applications REST en Java.<br />
La première partie est consacrée à une introduction de REST (définition d'une ressource, lecture, création, mise à jour, suppression d'une ressource, Services Webs RESTfull).<br />
La deuxième partie nous présente quelques détails sur l'implémentation JAX-RS avec Java.</p>
<h3><a name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l'étranger</h3>
<h4><a name="XKEleprogrammedelasessiondemai"></a>XKE, le programme de la session de mai</h4>
<p>Le prochain XKE (Xebia Knowledge Exchange) aura lieu le <strong>mardi</strong> 6 Mai 2008. Les sujets suivants seront abordés :</p>
<ul>
<li>Sessions Pratiques
<ul>
<li>Terracotta, the Network Attached Memory (NAM)</li>
<li>java.util.concurrent, concours de developpement</li>
</ul>
</li>
</ul>
<ul>
<li>Technique
<ul>
<li>Java et la Cryptographie</li>
</ul>
</li>
</ul>
<ul>
<li>Architecture
<ul>
<li>Retour sur l'architecture de l'un des plus grand site de ecommerce de France</li>
<li><a href="http://xp-france.net/index.php?option=com_content&#038;task=view&#038;id=48&#038;Itemid=120#S836" title="Tests unitaires avec les librairies de Mock" >Tests unitaires avec les librairies de Mock</a></li>
</ul>
</li>
</ul>
<ul>
<li>Xebia Hollande
<ul>
<li>Intervention du CTO de <a href="http://www.xebia.com" title="Xebia Hollande" >Xebia Hollande</a></li>
</ul>
</li>
</ul>
<p>Comme nous l'annoncions, les XKE sont <a href="http://blog.xebia.fr/2008/02/06/xebia-ouvre-ses-journees-de-partage-de-la-connaissance-xke/" title="ouverts" >ouverts</a> à l'ensemble des personnes à l'écoute du marché de l'emploi autour des technologies Java/J2EE. Si vous êtes l'une d'entre elles , n'hésitez pas à contacter <a href="mailto:mbacrot@xebia.fr" title="Mélanie Bacrot" >Mélanie Bacrot</a> pour vous inscrire. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xebia.fr/2008/04/28/revue-de-presse-xebia-54/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Revue de Presse Xebia</title>
		<link>http://blog.xebia.fr/2008/04/14/revue-de-presse-xebia-52/</link>
		<comments>http://blog.xebia.fr/2008/04/14/revue-de-presse-xebia-52/#comments</comments>
		<pubDate>Mon, 14 Apr 2008 18:03:33 +0000</pubDate>
		<dc:creator>Xebia France</dc:creator>
				<category><![CDATA[Revue de presse]]></category>
		<category><![CDATA[Camel]]></category>
		<category><![CDATA[ESB]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Java / JEE]]></category>
		<category><![CDATA[Jetty]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[ObjectGrid]]></category>
		<category><![CDATA[Paris JUG]]></category>
		<category><![CDATA[Tomcat]]></category>
		<category><![CDATA[Websphere]]></category>

		<guid isPermaLink="false">http://blog.xebia.fr/2008/04/14/revue-de-presse-xebia-52/</guid>
		<description><![CDATA[
La revue de presse de l&#8217;actualité Java/J2EE hebdomadaire proposée par Xebia.
Actualité éditeurs / SSII

Google App Engine, écrivez vos propres applications Google
Polémique : Gartner Group nous révèle que Windows Vista s’écroule sous son propre poids

Le coin de la technique

Polémique : Java est en train de perdre la bataille du web moderne
Java EE Next Generations, les prédictions [...]]]></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/2008/04/14/revue-de-presse-xebia-52/#GoogleAppEngine">Google App Engine, écrivez vos propres applications Google</a></li>
<li><a href="http://blog.xebia.fr/2008/04/14/revue-de-presse-xebia-52/#Vista">Polémique : Gartner Group nous révèle que Windows Vista s’écroule sous son propre poids</a></li>
</ul>
<p><strong>Le coin de la technique</strong></p>
<ul>
<li><a href="http://blog.xebia.fr/2008/04/14/revue-de-presse-xebia-52/#JavaWeb">Polémique : Java est en train de perdre la bataille du web moderne</a></li>
<li><a href="http://blog.xebia.fr/2008/04/14/revue-de-presse-xebia-52/#JavaEERod">Java EE Next Generations, les prédictions de Rod Johnson</a></li>
<li><a href="http://blog.xebia.fr/2008/04/14/revue-de-presse-xebia-52/#Maven209">Sortie de Maven 2.0.9</a></li>
<li><a href="http://blog.xebia.fr/2008/04/14/revue-de-presse-xebia-52/#Camel13">Camel 1.3 : les lightweight ESB progressent</a></li>
<li><a href="http://blog.xebia.fr/2008/04/14/revue-de-presse-xebia-52/#JettyTomcat">Netcraft Web Survey : Jetty progresse alors que Tomcat stagne</a></li>
<li><a href="http://blog.xebia.fr/2008/04/14/revue-de-presse-xebia-52/#IBMeXtremeScale">IBM ObjectGrid est mort ! Longue vie à Websphere eXtreme Scale !</a></li>
<li><a href="http://blog.xebia.fr/2008/04/14/revue-de-presse-xebia-52/#JavaWebFramework">Java Web Frameworks Survey</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/2008/04/14/revue-de-presse-xebia-52/#PJUG">Kirk Pepperdine au Paris JUG</a></li>
</ul>
<h3>Actualité éditeurs / SSII</h3>
<h4><a name="GoogleAppEngine"></a>Google App Engine, écrivez vos propres applications Google</h4>
<p>Google a annoncé la semaine passée la mise à disposition d'une plateforme d'hébergement pour applications Web, <a href="http://code.google.com/appengine/" title="Google App Engine" >Google App Engine</a>. La plateforme est pour l'instant en <i>preview release</i>, seuls 10 000 développeurs on pu s'enregistrer pour y accéder.</p>
<p>App Engine met à disposition des développeurs (pour l'instant gratuitement, mais le service sera bientôt payant) les outils utilisés par Google pour ses propres applications :</p>
<ul>
<li>Stockage de données avec <a href="http://en.wikipedia.org/wiki/BigTable" title="BigTable">BigTable</a> et <a href="http://en.wikipedia.org/wiki/Google_File_System">Google File System (GFS)</a></li>
<li>Scalabilité et répartition de charge</li>
<li>APIs Google, pour gérer l'authentification, envoyer des mails, et dialoguer avec le système de stockage de données</li>
<li>Ainsi qu'un environnement de développement local</li>
</ul>
<p>Les développements sont pour l'instant effectués en Python, mais d'autres langages devraient prochainement être supportés. Si vous souhaitez promouvoir votre langage favori, <a href="http://code.google.com/p/googleappengine/issues/list" title="c'est par ici que ça se passe" >c'est par ici que ça se passe</a> (la demande de support de Java est actuellement en tête devant celles de Ruby et PHP).</p>
<p>Depuis la mise à disposition de ses services <a href="http://en.wikipedia.org/wiki/Amazon_S3">Amazon Simple Storage Service (S3)</a>, <a href="http://en.wikipedia.org/wiki/Amazon_Elastic_Compute_Cloud">Amazon Elastic Cloud (EC2 - nuage de serveurs)</a>, et <a href="http://en.wikipedia.org/wiki/SimpleDB">SimpleDB (base de données)</a>, nous savions que ce n'était qu'une question de mois avant de voir la riposte de Google.<br />
Mais les services de Google et Amazon ne sont pas en concurrence frontale. Là où Amazon met à disposition des briques logicielles, Google met à disposition un environnement complet. On pourrait imaginer une application utilisant l'App Engine de Google en façade d'un nuage (EC2) pour le traitement par batchs.<br />
A quand la réponse de Microsoft?</p>
<p>Quelques articles qui nous ont paru intéressants sur le sujet</p>
<ul>
<li><a href="http://blogs.zdnet.com/Google/?p=999" title="ZDNet : Google announces App Engine: Should Amazon worry?" >ZDNet : Google announces App Engine: Should Amazon worry?</a></li>
<li><a href="http://www.businessweek.com/the_thread/techbeat/archives/2008/04/google_apps_eng.html" title="BusinessWeek : Google App Engine Goes Up Against Amazon, But That's Not the Point" >BusinessWeek : Google App Engine Goes Up Against Amazon, But That's Not the Point</a></li>
<li><a href="http://www.biologeek.com/journal/index.php/google-app-engine-avantages-et-inconvenients" title="BioloGeek : Google App Engine - avantages et inconvénients" >BioloGeek : Google App Engine - avantages et inconvénients</a></li>
</ul>
<h4><a name="Vista"></a>Polémique : Gartner Group nous révèle que Windows Vista s'écroule sous son propre poids</h4>
<p>Gartner Group nous annonce dans <a href="http://blogs.zdnet.com/BTL/?p=8428" title="Windows collapsing under its own weight; Radical change needed" >Windows collapsing under its own weight; Radical change needed</a> que Windows 7 sera radicalement différent de Vista, ce sera le premier système d'exploitation modulaire de Microsoft.</p>
<p>Scoop ? Pas vraiment, Gartner nous l'avait déjà annoncé en Février 2007 dans <a href="http://www.computerweekly.com/Articles/2007/02/27/222143/is-vista-the-last-monolithic-release.htm" title="Is Vista the last monolithic release?" >Is Vista the last monolithic release?</a>. En revanche, la nouvelle annonce nous dévoile quelques détails sur Windows 7.</p>
<h3>Le coin de la technique</h3>
<h4><a name="JavaWeb"></a>Polémique : Java est en train de perdre la bataille du web moderne</h4>
<p>TV4IT nous avait invité à participer à son débat <a href="http://www.tv4it.net/permalink/4681/live-tv4it-java-est-mort-vive-java-partie-1.aspx" title="Java est mort, vive Java ?" >Java est mort, vive Java ?</a> (<a href="http://www.tv4it.net/permalink/4682/live-tv4it-java-est-mort-vive-java-partie-2.aspx" title="part 2" >part 2</a>, <a href="http://www.tv4it.net/permalink/4685/live-tv4it-java-est-mort-vive-java-partie-3.aspx" title="part 3" >part 3</a>).<br />
The Server Side relance le débat cette semaine avec <a href="http://www.theserverside.com/news/thread.tss?thread_id=49016" title="Java is losing the battle for the modern web ..." >Java is losing the battle for the modern web ...</a>. Derrière ce titre bien trouvé de guerre moderne, comme d'habitude, Java se ferait sortir du monde des applications web par des architectures LAMP sur des moteurs en C ; même la JVM ne trouve pas grâce aux yeux des cassandres.</p>
<p>Rien de nouveau dans les polémiques millénaristes si ce n'est un avis pessimiste sur l'avenir du prochainement disponible JavaFX face au prometteur <a href="http://www.microsoft.com/silverlight/" title="Microsoft Silverlight" >Microsoft Silverlight</a> et à l'omniprésent <a href="http://www.adobe.com/products/flex/" title="Adobe Flex" >Adobe Flex</a>. Comment JavaFX arrivera-t-il à prendre des parts de marché aux solutions d'Adobe et de Microsoft ? Quelle promesse de valeur ajoutée convaincra les clients de changer de technologie ?</p>
<h4><a name="JavaEERod"></a>Java EE Next Generations, les prédictions de Rod Johnson</h4>
<p>Rod Johnson nous livre dans <a href="http://blog.springsource.com/main/2008/04/09/the-biggest-losers-next-contestant-java-bloatware/" title="The Biggest Loser's Next Contestant: Java Bloatware" >The Biggest Loser's Next Contestant: Java Bloatware</a> sa vision des prochains serveurs d'applications Java.</p>
<p>C'est l'occasion de comprendre la ligne directrice du framework Spring et en particulier de <a href="http://www.springframework.org/osgi" title="Spring Dynamic Modules for OSGi(tm) Service Platforms" >Spring Dynamic Modules for OSGi(tm) Service Platforms</a>, <a href="http://www.springframework.org/spring-integration" title="Spring Integration" >Spring Integration</a> et Tomcat (récemment rapproché de Spring par le rachat de Covalent).</p>
<p>Nous passerons les habituelles piques contre les serveurs d'applications Java EE qualifiés cette fois de "morbidly obese legacy platforms". Au delà de ces critiques lassantes, nous retiendrons :</p>
<ul>
<li>L'avenir de Java EE ne passera plus seulement par les spécifications du JCP mais aussi par celles d'organismes (cf OSGI, SCA, etc.)</li>
<li>Les serveurs d'applications de demain seront modulaires et beaucoup plus compacts</li>
<li>Les ESB et les serveurs d'applications vont converger</li>
<li>Ces évolutions augurent un renouveau de la compétition sur la marché des serveurs d'applications</li>
<li>Spring se positionne avec sa stack associée au serveur Tomcat dont on peut s'attendre une évolution rapide (OSGI-fication ?)</li>
</ul>
<h4><a name="Maven209"></a>Sortie de Maven 2.0.9</h4>
<p>La dernière version de <a href="http://maven.apache.org/release-notes.html" title="Maven" >Maven</a> est disponible, voici les points les plus innovants :</p>
<ul>
<li><a href="http://jira.codehaus.org/browse/MNG-3395" title="MNG-3395" >MNG-3395</a> : le <i>super pom</i> 2.0.9 contient désormais les versions par défaut pour les plugins de base de Maven. Cette fonctionnalité était grandement attendue, elle devrait résoudre les problèmes de stabilité rencontrés sur les projets qui ne fixent pas dans leur pom parent les versions des plugins, puisque dans ce cas les plugins étaient mis à jour automatiquement dès leur mise en ligne sur le repository. Le travail <a href="http://docs.codehaus.org/display/MAVENUSER/Making+Maven+not+suck+%28-db+branch%29" title="effectué par Don Brown avec sa branche maven-db" >effectué par Don Brown avec sa branche maven-db</a> a en partie payé!</li>
<li><a href="http://jira.codehaus.org/browse/MNG-1412" title="MNG-1412" >MNG-1412</a> et <a href="http://jira.codehaus.org/browse/MNG-3111" title="MNG-3111" >MNG-3111</a> : l'ordre des dépendances dans les fichiers classpath générés est désormais déterminé par l'ordre de déclaration dans le pom, les dépendances héritées étant ajoutées à la fin.</li>
<li><a href="http://jira.codehaus.org/browse/MNG-3415" title="MNG-3415" >MNG-3415</a> : une erreur lors du téléchargement d'un artefact ne devrait plus corrompre les métadonnées du repository local. On ne devrait plus avoir besoin de supprimer une partie du repository local dans ce cas.</li>
<li>Un projet peut désormais <a href="http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Importing_Dependencies" title="importer les dépendances de plusieurs projets" >importer les dépendances de plusieurs projets</a> grâce au <i>scope</i> "import". Sur un gros projet multi-modules c'était quasiment impossible, puisqu'un module ne peut hériter que d'un seul parent. Bien évidemment si on utilise cette fonctionnalité Maven 2.0.9 devient obligatoire pour builder le projet.</li>
</ul>
<p>A noter que les 2 premiers points peuvent changer le comportement de votre build, attention aux risques de régression! La liste complète des corrections et améliorations <a href="http://jira.codehaus.org/secure/ReleaseNote.jspa?version=13801&#038;styleName=Html&#038;projectId=10500" title="est en ligne" >est en ligne</a>.</p>
<h4><a name="Camel13"></a>Camel 1.3 : les <i>lightweight ESB</i> progressent</h4>
<p>James Strachan nous <a href="http://macstrac.blogspot.com/2008/04/apache-camel-130-released-with-208-new.html" title="présente les nouveautés d'Apache Camel 1.3" >présente les nouveautés d'Apache Camel 1.3</a>, le prédécesseur du toujours pas releasé <a href="http://www.springframework.org/node/625" title="Spring Integration" >Spring Integration</a> dans le domaine des <i>lightweight esb</i> [1].<br />
On remarquera l'amélioration de la testabilité, la meilleure intégration aux POJOs et le support de <a href="http://www.microsoft.com/windowsserver2003/technologies/msmq/default.mspx" title="Microsoft Message Queuing (MSMQ)" >Microsoft Message Queuing (MSMQ)</a> et d'<a href="https://jira.amqp.org/confluence/display/AMQP/Advanced+Message+Queuing+Protocol" title="AMQP" >AMQP</a>.</p>
<p>Si cette release est une bonne nouvelle pour les utilisateurs des <a href="http://enterpriseintegrationpatterns.com/" title="Enterprise Integration Patterns" >Enterprise Integration Patterns</a>, elle est en revanche une source de confusion pour les utilisateurs d'<a href="http://servicemix.apache.org/" title="Apache ServiceMix 3" >Apache ServiceMix 3</a>, le conteneur JBI également inclus dans la stack <a href="http://open.iona.com/" title="IONA FUSE" >IONA FUSE</a>, dont la valeur ajoutée par rapport à Camel est aujourd'hui difficile à trouver. La <a href="http://cwiki.apache.org/confluence/download/attachments/70895/Apache+ServiceMix+4.0.ppt?version=1" title="présentation du futur ServiceMix 4" >présentation du futur ServiceMix 4</a>, qui intégrera OSGI, CXF et Camel, aidera les utilisateurs surpris à comprendre comment s'articulera la suite ActiveMQ-Camel-CXF-ServiceMix.</p>
<p>[1] cf. <a href="http://blog.xebia.fr/2007/12/17/spring-integration-lavenement-des-lightweight-esb/" title="Xebia Blog : Spring Integration - L'avènement des 'lightweight ESB' ?" >Xebia Blog : Spring Integration - L'avènement des 'lightweight ESB' ?</a></p>
<h4><a name="JettyTomcat"></a>Netcraft Web Survey : Jetty progresse alors que Tomcat stagne</h4>
<p>Alors que <a href="http://www.lighttpd.net/" title="LightHttpd" >LightHttpd</a> empiète poliment sur les plates-bandes de <a href="http://httpd.apache.org/" title="Apache Http Server" >Apache Http Server</a> avec seulement 2% des parts de marché de son aîné, le conteneur de Servlets open source <a href="http://www.webtide.com/" title="Jetty" >Jetty</a> rivalise sans complexe avec le très établi mais stagnant <a href="http://tomcat.apache.org" title="Apache Tomcat" >Apache Tomcat</a> : le nombre de serveurs Jetty représente 80% de celui de serveurs Tomcat (cf <a href="http://blogs.webtide.com/gregw/2008/04/11/1207878698135.html" title="webtide blog: Jetty has 80% of Tomcats public servers" >webtide blog: Jetty has 80% of Tomcats public servers</a>).</p>
<p>Comment Jetty a-t-il rattrapé Tomcat aussi vite ? Les innovations de Jetty sont certes intéressantes (<a href="http://www.osgi.org/Main/HomePage" title="OSGI" >OSGI</a>, <a href="http://en.wikipedia.org/wiki/Comet_(programming)" title="Ajax Comet Push" >Ajax Comet Push</a>, etc) mais il faut surtout voir l'attention que Jetty porte à sa communauté de développeurs en proposant un produit très léger et facile à intégrer alors que Tomcat s'est quelque peu endormi sur ses lauriers. Espérons que le <a href="http://blog.xebia.fr/2008/02/04/revue-de-presse-xebia-42/#SpringSourcerCovalent" title="récent rachat de Covalent par Spring Source " >récent rachat de Covalent par Spring Source </a> redynamisera la communauté Tomcat.</p>
<div align="center">
  <img src='http://blog.xebia.fr/wp-content/uploads/2008/04/jetty_comcat.png' alt='jetty_comcat.png' /><br />
<em>Source : <a href="http://blogs.webtide.com/gregw/2008/04/11/1207878698135.html" title="Webtide blog : Jetty Improves in Netcraft survey" >Webtide blog : Jetty Improves in Netcraft survey</a></em>
</div>
<h4><a name="IBMeXtremeScale"></a>IBM ObjectGrid est mort ! Longue vie à Websphere eXtreme Scale !</h4>
<p>Billy Newport nous annonce que la grille de données qu'il a supervisée, IBM ObjectGrid, <a href="http://www.devwebsphere.com/devwebsphere/2008/04/objectgrid-gets.html" title="s'appellera dorénavant Websphere eXtreme Scale" >s'appellera dorénavant Websphere eXtreme Scale</a></p>
<p>Simple détail de marketing ou signe de "Big Is Beautiful" chez IBM ? Hormis ses qualités qui font d'ObjectGrid une grille de données de tout premier plan [1], ObjectGrid se singularisait dans le portfolio Java d'IBM par une grande indépendance à la stack Websphere (les 6 petits Mo du client ObjectGrid s'exécutent indépendamment de Websphere, <a href="http://www.ibm.com/developerworks/wikis/display/objectgridprog/Using+a+non-IBM+JDK+or+JRE+with+ObjectGrid" title="même sur une JVM Sun" >même sur une JVM Sun</a>) et par un format de documentation très novateur avec un <a href="http://www.ibm.com/developerworks/wikis/display/objectgridprog/Reference" title="wiki Confluence" >wiki Confluence</a> plutôt qu'un classique <a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.nd.doc/info/welcome_nd.html" title="Infocenter" >Infocenter</a>.</p>
<p>Billy Newport avait été visionnaire en prédisant dès juillet 2005 l'avènement du lightweight Java dans <a href="http://www.devwebsphere.com/devwebsphere/2005/07/end_of_the_road.html" title="End of the Java Web Frameworks Survey road for invasive middleware?" >End of the Java Web Frameworks Survey road for invasive middleware?</a>. Espérons que son message continuera à influencer Big Blue et qu'ObjectGrid ne disparaîtra pas dans l'imposante stack Websphere.</p>
<p>[1] cf. l'<a href="http://www.ibm.com/developerworks/wikis/display/objectgridprog/Introduction+to+the+EntityManager+API" title="EntityManager" >EntityManager</a> <i>à la</i> JPA qui n'a pas d'égal pour manipuler les POJOs des la grille</p>
<h4><a name="JavaWebFramework"></a>Java Web Frameworks Survey</h4>
<p>Peter Karich présente dans <a href="http://java.dzone.com/tips/java-web-frameworks-survey" title="Java Web Frameworks Survey" >Java Web Frameworks Survey</a> un comparatif des huit frameworks Web qui suivent :</p>
<ul>
<li><a href="http://click.sourceforge.net/" title="Click Framework" >Click Framework</a></li>
<li><a href="http://echo.nextapp.com/site/echo2" title="Echo2" >Echo2</a></li>
<li><a href="http://code.google.com/webtoolkit/" title="GWT" >GWT</a></li>
<li><a href="http://java.sun.com/products/jsp/" title="JSP" >JSP</a></li>
<li><a href="http://www.thinwire.com/" title="Thinwire" >Thinwire</a></li>
<li><a href="http://wicket.apache.org/" title="Wicket" >Wicket</a></li>
<li><a href="http://wingsframework.org/" title="WingS" >WingS</a></li>
<li><a href="http://www.zkoss.org/" title="ZK Framework" >ZK Framework</a></li>
</ul>
<p>L'application était un simple bouton avec une zone de texte, dans laquelle on devait mettre un morceau de code permettant de dessiner un graphique. Pour le graphique, la librairie <a href="http://www.gnuplot.info/" title="gnuplot" >gnuplot</a> a été utilisée.</p>
<p>Le comparatif nous permet de découvrir certains frameworks peu connus. Selon l'auteur, le framework Click présente des similarités avec Wicket et propose des aspects plus simples. Mettre en place sa première page avec Echo n'est pas très compliqué. En revanche GWT demande un certain coût d'entrée... (Nous avions partagé certaines de ces conclusions dans notre <a href="http://blog.xebia.fr/2007/10/26/xebia-web-framework-contest/" title="Web Framework Contest" >Web Framework Contest</a> en Octobre dernier.</p>
<p>La conclusion de cette étude est que comme souvent chacun de ces frameworks a ses forces et ses faiblesses, et que si vous devez en choisir un il faut se poser les bonnes questions: un support est-t-il disponible ? Il y a t'il une communauté active? Quelles sont les possibilités d'intégration à une application existante ?</p>
<h3>Evènements de notre communauté en France et à l'étranger</h3>
<h4><a name="PJUG"></a>Kirk Pepperdine au Paris JUG </h4>
<p><a href="http://kirk.blog-city.com/" title="Kirk Pepperdine" >Kirk Pepperdine</a> est venu présenter au Paris JUG les enjeux de performances en Java. En attendant que la présentation de Kirk soit disponible, les points essentiels :</p>
<ul>
<li>L'émergence des processeurs multi-coeurs révèle des problèmes de concurrence d'accès qui n'apparaissaient pas auparavant : une application peut s'exécuter moins vite sur un processeur multi-coeur à cause d'apparition de goulets d'étranglement (synchronisation, etc).</li>
<li>Les APIs <code>java.util.concurrent</code> introduites avec Java 5 (en même temps que la clarification du modèle mémoire) simplifient le développement d'applications hautes performances.</li>
<li>Les bases de données ne sont pas encore optimisées pour les architectures multi-coeurs et sont concurrencées frontalement par les grilles de données (<a href="http://www.terracotta.org/" title="Terracotta" >Terracotta</a>, <a href="http://www.oracle.com/technology/products/coherence/index.html" title="Coherence" >Coherence</a>, etc) qui elles exploitent les opportunités de parallélisme.</li>
<li>Diagnostiquer un problème des performances d'une application Java nécessite d'étudier simultanément les quatre couches de "The Box" [1] : Hardware, JVM, Application et People.</li>
<li>Les premiers outils pour ce type de problèmes sont le Gestionnaire des Tâches sous Windows et vmstat/top sous Unix/Linux car ils donnent une vision d'ensemble (IO, CPU Système, CPU Applicative, etc).</li>
</ul>
<p>D'autres blogs parlent de la venue de Kirk Pepperdine : <a href="http://www.touilleur-express.fr/2008/04/09/presentation-de-kirk-pepperdine-au-paris-java-user-group/" title="Le touilleur Express : Présentation de Kirk Pepperdine au Paris Java User Group" >Le touilleur Express : Présentation de Kirk Pepperdine au Paris Java User Group</a>, <a href="http://sunchic.free.fr/wordpress/index.php/archives/2008/04/09/troisieme-rencontre-du-paris-java-user-group/" title="David Gageot: Troisième rencontre du Paris Java User Group" >David Gageot: Troisième rencontre du Paris Java User Group</a>.</p>
<p>Merci encore aux organisateurs du Paris JUG et <a href="http://www.parisjug.org/meetings/20080513/presentation.html" title="rendez-vous le 13 mai" >rendez-vous le 13 mai</a> pour des présentations sur la Productivité des développements Java (Guillaume Duquesnay) et Maven (Arnaud Heritier).</p>
<p>[1] cf <a href="http://www.infoq.com/articles/the-box" title="InfoQ : The Box: A Shortcut to finding Performance Bottlenecks" >InfoQ : The Box: A Shortcut to finding Performance Bottlenecks</a> par Kirk Pepperdine</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xebia.fr/2008/04/14/revue-de-presse-xebia-52/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
