<?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; OSGi</title>
	<atom:link href="http://blog.xebia.fr/tag/osgi/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/2010/01/04/revue-de-presse-xebia-141/</link>
		<comments>http://blog.xebia.fr/2010/01/04/revue-de-presse-xebia-141/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 19:12:31 +0000</pubDate>
		<dc:creator>Xebia France</dc:creator>
				<category><![CDATA[Revue de presse]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Camel]]></category>
		<category><![CDATA[Impala]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Java / JEE]]></category>
		<category><![CDATA[JEE]]></category>
		<category><![CDATA[OSGi]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[Spring Integration]]></category>
		<category><![CDATA[Spring ROO]]></category>

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

Spring Integration et Apache Camel : 2 ESB lightweight en action

Le coin de la technique

Impala, la modularité pour Spring sans OSGi
La définition de DataSources dans JEE 6
Les google-collections sont finales !
Spring Roo en 1.0.0 pour terminer l'année

SOA
Spring Integration et Apache Camel : 2 ESB lightweight [...]]]></description>
			<content:encoded><![CDATA[<p><img style="margin: 1em 1em 1em 1em; float: right;" src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" /><br />
<em>La revue de presse de l'actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p>
<p><strong>SOA</strong></p>
<ul>
<li><a href="http://blog.xebia.fr/2010/01/04/revue-de-presse-xebia-141/#SpringIntegrationetApacheCamel">Spring Integration et Apache Camel : 2 ESB <em>lightweight</em> en action</a></li>
</ul>
<p><strong>Le coin de la technique</strong></p>
<ul>
<li><a href="http://blog.xebia.fr/2010/01/04/revue-de-presse-xebia-141/#ImpalalamodularitpourSpringsan">Impala, la modularité pour Spring sans OSGi</a></li>
<li><a href="http://blog.xebia.fr/2010/01/04/revue-de-presse-xebia-141/#LadfinitiondeDataSourcesdansJE">La définition de <em>DataSources</em> dans JEE 6</a></li>
<li><a href="http://blog.xebia.fr/2010/01/04/revue-de-presse-xebia-141/#Lesgooglecollectionssontfinale">Les google-collections sont finales !</a></li>
<li><a href="http://blog.xebia.fr/2010/01/04/revue-de-presse-xebia-141/#SpringRooenpourterminerlanne">Spring Roo en 1.0.0 pour terminer l'année</a></li>
</ul>
<h3><a name="SOA"></a>SOA</h3>
<h4><a name="SpringIntegrationetApacheCamel"></a>Spring Integration et Apache Camel : 2 ESB <em>lightweight</em> en action</h4>
<p>La mouvance SOA a amené un certain nombre de produits classifiés comme ESB (<em>Enterprise Service Bus</em>) dont le but est de répondre aux problématiques d'intégration courantes en entreprise. Dans un premier temps, ces produits prenaient la forme de <em>middlewares</em> très lourds dont la mise en œuvre devait être justifiée par des besoins importants. Il y a deux ans, <a title="nous assistions  lavnement" href="http://blog.xebia.fr/2007/12/17/spring-integration-lavenement-des-lightweight-esb/">nous assistions à l'avènement</a> d'ESB qualifiés de <em>lightweight</em> car ils prenaient la forme de <em>frameworks</em> moins gourmands en ressources et plus simples à utiliser. Spring Integration et Apache Camel sont les deux principales options à envisager en matière d'ESB léger.</p>
<p>C'est justement de l'utilisation de chacun de ces deux <em>frameworks</em> que discute <a title="larticle que vient de publier Biju Kunjummen" href="http://java.dzone.com/articles/spring-integration-and-apache">l'article que vient de publier Biju Kunjummen</a>. Il y propose une problématique d'intégration qui consiste en l'exposition d'un service qui, lorsqu'il est invoqué, entraîne l'invocation multiple d'un même service de bas niveau via l'utilisation d'un pattern <em>splitter</em> sur la requête et d'un pattern <em>aggregator</em> sur la réponse. Les deux <em>frameworks</em> offrent nativement ce type d'EIP (<em>Enterprise Intergration Pattern</em>).</p>
<p>Aucun favori ne se démarque clairement dans la comparaison entre ces deux implémentations : Spring Integration vient s'intégrer naturellement à l'<em>Application Context</em> de Spring en reprenant le même type de structure de définition XML, tandis qu'Apache Camel, bien qu'offrant également la possibilité d'une configuration XML, sera surtout apprécié pour son DSL Java permettant la définition des routes d'intégration.</p>
<p>Le lecteur intéressé par ces deux <em>frameworks</em> pourra se tourner, au-delà des documentations respectives, vers les deux livres en préparation chez l'éditeur Manning, <a title="Spring Integration in Action" href="http://manning.com/fisher/">Spring Integration in Action</a> et <a title="Camel in Action" href="http://manning.com/ibsen/">Camel in Action</a>, prévus pour l'été prochain.</p>
<h3><a name="Lecoindelatechnique"></a>Le coin de la technique</h3>
<h4><a name="ImpalalamodularitpourSpringsan"></a>Impala, la modularité pour Spring sans OSGi</h4>
<p>La modularité est un sujet porteur en ce moment, tant du côté du JDK avec Jigsaw, que du côté Java Entreprise avec OSGi dont le principal acteur actuellement est sans conteste SpringSource avec Spring Dynamic Modules et son serveur d'application associé Spring dm Server.</p>
<p>Phil Zoio <a title="a été interviewé il y a peu" href="http://osgi.dzone.com/articles/impala-alternative-module">a été interviewé il y a peu</a> pour présenter le projet Open Source qu'il a fondé : <a title="Impala" href="http://code.google.com/p/impala/">Impala</a>. Il s'agit d'une vision différente de la modularité pour applications d'entreprise. Ainsi, Impala repose sur Spring, tout comme Spring Dynamic Modules, mais contrairement à ce dernier, il n'utilise pas OSGi et adopte une stratégie radicalement différente : il constitue lui-même des modules encapsulant chacun un <em>application context</em> qui déclare un certain nombre de <em>beans</em>. La solution de modularité ainsi produite offre tout comme OSGi un fonctionnement dynamique permettant le chargement à chaud de nouveaux modules.</p>
<p>Dans un climat où beaucoup s'interrogent sur la potentielle lourdeur d'OSGi, ce type d'initiative proposant une solution alternative plus simple face au standard prend tout son sens et n'est pas sans rappeler l'offensive de <em>Spring Framework</em> lui-même, il y a quelques années, face au contesté standard EJB.</p>
<h4><a name="LadfinitiondeDataSourcesdansJE"></a>La définition de <em>DataSources</em> dans Java EE 6</h4>
<p>Matt Corey <a title="poste cette semaine un article" href="http://smokeandice.blogspot.com/2009/12/datasourcedefinition-hidden-gem-from.html">poste cette semaine un article</a> mettant en avant une facilité rarement (jamais ?) évoquée de Java EE 6 : la configuration des sources de données par annotation. En effet, si la nouvelle spécification de Sun est largement couverte depuis des mois, y compris sur notre blog, il est en général question des nouveautés qui retiennent le plus l'attention telles que les <em>beans</em> singletons d'EJB 3.1, l'API <em>query builder</em> de JPA 2.0 ou encore ses nouveaux modèles de composants.</p>
<p>En fait il s'agit d'une standardisation de la technique de configuration des sources de données dans les serveurs d'application Java EE. Cette définition était en effet jusqu'alors un détail d'implémentation des serveurs et n'était donc pas portable. Cette configuration peut donc maintenant se faire par l'annotation <a title="DataSourceDefinition" href="http://java.sun.com/javaee/6/docs/api/javax/annotation/sql/DataSourceDefinition.html"><code>@DataSourceDefinition</code></a> ce qui évite ainsi l'utilisation de XML et va donc dans le sens de la logique initiée depuis Java EE 5. L'exemple suivant permet de mieux se rendre compte de son utilisation :</p>
<div class="syntax_hilite">
<div id="java-2">
<div class="java">@DataSourceDefinition <span style="color: #66cc66;">&#40;</span><br />
className=<span style="color: #ff0000;">"org.apache.derby.jdbc.ClientDataSource"</span>,<br />
name=<span style="color: #ff0000;">"java:global/jdbc/AppDB"</span>,<br />
serverName=<span style="color: #ff0000;">"localhost"</span>,<br />
portNumber=<span style="color: #cc66cc;">1527</span>,<br />
user=<span style="color: #ff0000;">"user"</span>,<br />
password=<span style="color: #ff0000;">"password"</span>,<br />
databaseName=<span style="color: #ff0000;">"dev-db"</span><br />
<span style="color: #66cc66;">&#41;</span><br />
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Config <span style="color: #66cc66;">&#123;</span><br />
...<br />
<span style="color: #66cc66;">&#125;</span></div>
</div>
</div>
<p></p>
<p>Si tout le monde n'appréciera pas forcément d'avoir recours à une annotation pour ce type de configuration, les projets souhaitant distribuer des <code>war</code> ou <code>ear</code> portables qui se connectent à une base de données embarquée ou locale devraient en revanche y trouver leur compte.</p>
<h4><a name="Lesgooglecollectionssontfinale"></a>Les google-collections sont finales !</h4>
<p>Annoncée sur la <a title="&lt;i&gt;users list&lt;/i&gt;" href="http://groups.google.com/group/google-collections-users/browse_thread/thread/8001013ee996b3c9?pli=1"><em>users list</em></a> du projet, l'API <a title="google-collections" href="http://code.google.com/p/google-collections/">google-collections</a> passe en version <a title="finale 10" href="http://code.google.com/p/google-collections/downloads/list">finale 1.0</a>.<br />
Pour ceux qui ne connaissent pas encore cette API de collections <em>type-safe</em>, rendez-vous sur <a title="cette page" href="http://bwinterberg.blogspot.com/2009/09/introduction-to-google-collections.html">cette page</a> pour une introduction à la librairie.</p>
<p>La finalisation de Google Collections constitue un changement majeur dans l'environnement des développeurs Java. En effet Apache Commons Collections constituait jusqu'alors le principal complément à l'API de base du JDK. Or, la librairie de la fondation Apache est vieillissante et ne propose toujours pas les <em>generics</em> de Java 5. Google Collection se positionne donc ni plus ni moins que comme un remplaçant.</p>
<p>La <a title="FAQ" href="http://code.google.com/p/google-collections/wiki/Faq">FAQ</a> répondra à bon nombre de questions que l'on peut se poser sur cette API notamment sur les raisons qui ont poussé Google à créer sa propre API plutôt que de contribuer à Commons Collections.</p>
<p>Enfin on notera que Google Collections sera intégré à <a href="http://code.google.com/p/guava-libraries/">Guava</a> sous peu pour constituer la librairie d'extension du JDK de Google.</p>
<p>De par la nature de ces APIs, Google Collections et Guava peuvent également constituer un premier pas vers la programmation <em>un peu</em> plus orientée fonctionnelle. A ce sujet, il est aussi possible de regarder du côté de <a title="lambdaj" href="http://code.google.com/p/lambdaj/">lambdaj</a>, une API de parcours de collections sans boucle explicite. Et pour ceux qui souhaitent aller encore plus loin, rendez-vous sur <a title="functionaljava" href="http://functionaljava.org/">functional.java</a> ou  tournez vous vers la préparation des <em>closures</em> dans Java.</p>
<h4><a name="SpringRooenpourterminerlanne"></a>Spring Roo en 1.0.0 pour terminer l'année</h4>
<p>Encore une <em>release</em> pour Spring pour clôturer en beauté l'année 2009. Bravo!<br />
<a title="Spring Roo" href="http://www.springsource.org/roo">Spring Roo</a>, 8 mois après sa première version alpha, vient de sortir en <a title="100" href="https://jira.springsource.org/browse/ROO#selectedTab=com.atlassian.jira.plugin.system.project%3Achangelog-panel">1.0.0</a>. Roo, en quelques mots, permet de développer des applications plus rapidement en générant et maintenant, tout au long des développements, une partie importante du code source (du POJO à la JSP).<br />
Un effort a été mis sur la documentation qui a intégré un tutoriel et les commandes. La seule partie encore en travaux est le chapitre 3, celle qui concerne le fonctionnement interne de ROO. Cette partie permet entre autres d'avoir les bases pour développer des extensions.<br />
En standard, Roo propose déjà des extensions, comme par exemple les fonctionnalités de sécurité, basées sur Spring Security et des flows avec Spring Webflow.</p>
<p>Spring Roo présente un formidable intérêt pédagogique, car il s'appuie systématiquement sur les toutes dernières versions des jars de Spring et d'Hibernate.<br />
On peut par contre trouver peu commode son mécanisme interne qui se base sur la technologie AspectJ. Son principe est de générer les méthodes de classe en se basant sur des fichiers d'aspects. Jusqu'à présent, notre expérience avec Spring Roo a montré que cela ne fonctionnait pas de manière complètement transparente pour le développeur, même avec l'Eclipse de SpringSource (<a title="STS" href="http://www.springsource.com/products/sts">STS</a>). Cette limitation pourra donc dissuader certaines équipes de partir sur un projet avec ROO tout au long des développements.</p>
<p>Voici sur Slideshare, les deux présentations mises en ligne par le <em>leader</em> du projet, Ben Alex:</p>
<ul>
<li><a title="Introduction To Spring Roo 100" href="http://www.slideshare.net/benalexau/introduction-to-spring-roo-100-2805183">Introduction To Spring Roo 1.0.0</a></li>
<li><a title="Spring Roo 100 Technical Deep Dive" href="http://www.slideshare.net/benalexau/spring-roo-100-technical-deep-dive">Spring Roo 1.0.0 Technical Deep Dive</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.xebia.fr/2010/01/04/revue-de-presse-xebia-141/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Revue de Presse Xebia</title>
		<link>http://blog.xebia.fr/2009/11/30/revue-de-presse-xebia-136/</link>
		<comments>http://blog.xebia.fr/2009/11/30/revue-de-presse-xebia-136/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 17:30:44 +0000</pubDate>
		<dc:creator>Xebia France</dc:creator>
				<category><![CDATA[Revue de presse]]></category>
		<category><![CDATA[closure]]></category>
		<category><![CDATA[Devoxx]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Java / JEE]]></category>
		<category><![CDATA[Lucene]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[OSGi]]></category>
		<category><![CDATA[SpringSource]]></category>

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

SpringSource et Oracle ensemble pour l'OSGi d'entreprise

Le coin de la technique

Lucene passe à Java 5
Mark Reinhold justifie l'introduction des closures
Patterns NoSQL

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

Devoxx 2009 : le bilan

Actualité éditeurs / SSII
SpringSource et Oracle ensemble pour l'OSGi d'entreprise
Adrian [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br />
<em>La revue de presse de l'actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p>
<p><strong>Actualité éditeurs / SSII</strong></p>
<ul>
<li><a href="http://blog.xebia.fr/2009/11/30/revue-de-presse-xebia-136/#SpringSourceetOracleensemblepo">SpringSource et Oracle ensemble pour l'OSGi d'entreprise</a></li>
</ul>
<p><strong>Le coin de la technique</strong></p>
<ul>
<li><a href="http://blog.xebia.fr/2009/11/30/revue-de-presse-xebia-136/#LucenepasseJava">Lucene passe à Java 5</a></li>
<li><a href="http://blog.xebia.fr/2009/11/30/revue-de-presse-xebia-136/#MarkReinholdjustifielintroduct">Mark Reinhold justifie l'introduction des <em>closures</em></a></li>
<li><a href="http://blog.xebia.fr/2009/11/30/revue-de-presse-xebia-136/#PatternsNoSQL">Patterns NoSQL</a></li>
</ul>
<p><strong>Evènements de notre communauté en France et à l'étranger</strong></p>
<ul>
<li><a href="http://blog.xebia.fr/2009/11/30/revue-de-presse-xebia-136/#Devoxxlebilan">Devoxx 2009 : le bilan</a></li>
</ul>
<h3><a name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3>
<h4><a name="SpringSourceetOracleensemblepo"></a>SpringSource et Oracle ensemble pour l'OSGi d'entreprise</h4>
<p>Adrian Colyer, SpringSource, <a href="http://blog.springsource.com/2009/11/24/gemini-project-proposal-at-eclipse-org/" title="a annonc" >a annoncé</a> la création d'un nouveau projet au sein de la fondation Eclipse : Gemini. Il s'agit d'un sous-projet d'Eclipse Runtime qui a pour but de réunir l'ensemble des implémentations de référence des spécifications OSGi liées au monde de l'entreprise. Il s'agit d'un effort commun de SpringSource et d'Oracle.</p>
<p>Deux composants fondamentaux sont apportés par SpringSource : </p>
<ul>
<li>Gemini Web Container : il permet le fonctionnement d'un conteneur de Servlets dans un environnement OSGi. Cette implémentation est actuellement utilisée dans SpringSource dm Server et est donc prévue pour fonctionner sur Tomcat. Mike Keith, Oracle, <a href="http://www.eclipse.org/forums/index.php?t=msg&#038;th=158265&#038;start=0&#038;S=f24c757f3b4f75d223bf59aad88061b0" title="assure" >assure</a> que l'adaptation pour Jetty arrivera par la suite grâce à une collaboration avec l'équipe de ce projet.</li>
<li>Gemini Blueprint Service : il s'agit de <a href="http://www.springsource.org/osgi" title="Spring Dynamic Modules" >Spring Dynamic Modules</a>. Ce projet, qui a fortement inspiré la spécification du <em>Blueprint Service</em> intégré à OSGi 4.2, devient logiquement son implémentation de référence.</li>
</ul>
<p>Il est important de noter qu'Adryan Colyer explique que SpringSource continuera désormais le développement de ces deux projets directement au sein de la fondation Eclipse et non plus en interne.</p>
<p>Oracle, pour sa part, apporte plusieurs implémentations de référence pour des RFC supplémentaires <a href="http://modualrit.blogspot.com/2009/08/purity-or-compromise.html" title="non intgres  la spcification OSGi 42" >non intégrées à la spécification OSGi 4.2</a> : RFC 98 (transactions), RFC 122 (database access), RFC 139 (JMX integration), RFC 142 (JNDI integration), RFC 143 (JPA integration), RFC 146 (JCA integration).<br />
Mike Keith indique qu'EclipseLink est à même de fonctionner correctement avec OSGi depuis longtemps, mais qu'il n'implémentait pas JPA lorsque cette intégration a été mise en œuvre au sein du projet. Par conséquent, une adaptation est nécessaire pour passer à la RFC 143, afin d'assurer une intégration JPA standard.</p>
<p>Alors que la spécification 4.2 a été finalisée <a href="http://blog.xebia.fr/2009/09/21/revue-de-presse-xebia-127/#OSGi" title="il y a 2 mois" >il y a 2 mois</a>, les implémentations de référence étaient toujours attendues. Cette réunification des implémentations liées a l'OSGi d'entreprise au sein d'un même projet Eclipse est une excellente nouvelle : elle met en avant la standardisation dont on pourra désormais bénéficier pour les développements intégrant OSGi dans les applications JEE. Mais cela suffira-t-il à démocratiser OSGi en entreprise ?!</p>
<h3><a name="Lecoindelatechnique"></a>Le coin de la technique</h3>
<h4><a name="LucenepasseJava"></a>Lucene passe à Java 5</h4>
<p>L'équipe du projet Lucene <a href="http://lucene.apache.org/java/docs/index.html#25+November+2009+-+Lucene+Java+3.0.0+available" title="annonce la sortie de Lucene 3.0" >annonce la sortie de Lucene 3.0</a>. Comme <a href="http://blog.xebia.fr/2009/09/28/revue-de-presse-xebia-126/#Lucenevolueetprparelavenir" title="nous lexpliquions prcedemment" >nous l'expliquions précedemment</a>, cette version marque une évolution majeure puisqu'elle est la première a nécessiter Java 5.0 au minimum.</p>
<p>L'API bénéficie donc désormais de l'ensemble des améliorations du langage de Java 5.0 dont les <em>generics</em>, le <em>varargs</em>, les <em>enums</em> et l'<em>autoboxing</em>. </p>
<p>Tempérons cette annonce : l'API Lucene n'a pas été refondue, il ne s'agit que de quelques améliorations visant à la rendre <em>type-safe</em>. Citons par exemple : </p>
<ul>
<li>Apparition d'<em>enums</em> <code>BooleanClause.Occur</code>, <code>Field.Index</code>, <code>Field.Store</code> et <code>Field.TermVector</code> ; ces concepts étaient jusqu'alors représentées sous forme de constantes <em>type-safe</em>.</li>
<li>La méthode <code>getFields()</code> de la classe <code>Document</code> retourne désormais une <code>List&lt;Fieldable&gt;</code> alors qu'elle retournait une simple <code>List</code> jusqu'alors.</li>
<li>La classe <code>Term</code> implémente désormais <code>Comparable&lt;Term&gt;</code> et non plus simplement <code>Comparable</code>.</li>
</ul>
<p>Ces changements légers décevront peut-être certains utilisateurs lassés par l'API vieillissante de Lucene, mais on appréciera toutefois la facilité de migration, puisqu'il s'agira la plupart du temps de supprimer quelques <em>casts</em> (l'équipe Lucene cite <a href="http://lucene.apache.org/java/3_0_0/changes/Changes.html" title="quelques cas  surveiller" >quelques cas à surveiller</a> lors de la migration).</p>
<p>Cette nouvelle version, qui apporte par ailleurs quelques modifications mineures, conclut donc un cycle d'évolutions importantes sur le projet Lucene.</p>
<h4><a name="MarkReinholdjustifielintroduct"></a>Mark Reinhold justifie l'introduction des <em>closures</em></h4>
<p>C'était l'Annonce de cette édition de Devoxx, <a href="http://blog.xebia.fr/2009/11/23/revue-de-presse-xebia-135/#JDKJEEetMavenlesannoncesdeDevo" title="lapparition des closures en Java 7" >l'apparition des <em>closures</em> en Java 7</a>. Mark Reinhold revient, sur <a href="http://blogs.sun.com/mr/entry/closures">son blog</a>, sur les raisons à l'origine de cette petite bombe.<br />
Il justifie cette évolution majeure du langage par la nécessité pour Java de tirer partie des nouvelles générations de processeurs, multi-cœurs.<br />
Jusqu'ici, pour exploiter cette puissance, il fallait utiliser des <em>Parallel Array</em> et tout le code inutile nécessaire à leur fonctionnement. Les <em>closures</em> permettent de supprimer ce code, et il est temps de les introduire en Java.<br />
Java doit se concentrer sur deux fonctionnalités clés : la syntaxe littérale, et les fonctions typées. L'arrivée des <em>closures</em> requiert deux autres évolutions de Java : les conversions, et l'extensibilité des méthodes.<br />
Il est temps pour Mark Reinhold d'oublier <a href="http://www.javaworld.com/javaworld/jw-06-2008/jw-06-closures.html" title="les querelles" >les querelles</a>. Sun spécifiera et implémentera un premier jet des <em>closures</em> pour le JDK 7. Cela permettra une expérimentation à grande échelle, et si tout se passe bien, cela conduira à une JSR de modification du langage, qui pourra être incluse dans Java SE 7.<br />
La tâche est immense et Mark Reinhold appelle bien évidement toutes les bonnes volontés à contribuer.</p>
<p>Bien au-delà de la manipulation du <em>multi-threading</em>, les <em>closures</em> pourraient permettre une simplification des APIs courantes. Cette perspective semble essentielle à Mark Reinhold qui ne pouvait attendre le JDK 8 pour une nouvelle tentative, dans 3 à 4 ans...</p>
<h4><a name="PatternsNoSQL"></a>Patterns NoSQL</h4>
<p>Nous vous parlions récemment <a href="http://blog.xebia.fr/2009/11/09/revue-de-presse-xebia-133/#LemouvementNoSQLdiviseetintrig" title="dans une revue de presse" >dans une revue de presse</a> et <a href="http://blog.xebia.fr/2009/11/18/devoxx-jour-1-nosql-avec-hbase/" title="un article" >un article</a> du mouvement NoSQL, qui se caractérise par "une absence de requête et par un relâchement des caractéristiques ACID propres aux RDBMS". Ricky Ho, architecte chez Adobe, <a href="http://horicky.blogspot.com/2009/11/nosql-patterns.html" title="revient sur son blog" >revient sur son blog</a> sur les caractéristiques communes de plusieurs technologies permettant de "faire du NoSQL", et extrait quelques patterns récurrents. Ne vous arrêtez pas à la mise en page étriquée de l'article, car la description est très complète. Ricky Ho y explore successivement:</p>
<ul>
<li>Les types de noeud possibles (physiques et virtuels) ainsi que leur fonctionnement.</li>
<li>Le partitionnement des données.</li>
<li>La réplication de ces données, ainsi que le maintien de leur consistance.</li>
<li>La gestion des pannes.</li>
</ul>
<p>On notera quand même que l'une des solutions retenue pour le stockage des données reste... une base de donnée relationnelle ! <img src='http://blog.xebia.fr/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Humour mis à part, une telle formalisation de patterns est vraiment bienvenue dans un environnement aussi émergeant.</p>
<h3><a name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l'étranger</h3>
<h4><a name="Devoxxlebilan"></a>Devoxx 2009 : le bilan</h4>
<p>Nous concluons aujourd'hui notre série de billets sur Devoxx 2009. Ces 5 jours passés à Anvers furent riches en informations et en rencontres et nous souhaitions vous les faire partager. </p>
<p>A l'heure du bilan, voici ce que nous retiendrons de cette édition : </p>
<ul>
<li><a href="http://blog.xebia.fr/2009/11/23/revue-de-presse-xebia-135/#JDKJEEetMavenlesannoncesdeDevo" title="Les annonces concernant JDK 7 JEE 6 et Maven 30" >Les annonces concernant JDK 7, JEE 6 et Maven 3.0</a>.</li>
<li>Le succès de JEE 6 : toutes les sessions sur le sujet ont fait salle comble.</li>
<li>La place réservée à la nouvelle plateforme Flash d'Adobe, présente au <em>keynote</em> et dans de nombreuses sessions ; il est intéressant de noter que cette place correspond exactement à celle occupée par JavaFX lors de la précédente édition.</li>
<li>L'omniprésence de Scala ; au-delà des sessions qui lui étaient consacrées, il était cité dans beaucoup d'autres présentations lorsqu'il était question de DSL par exemple.</li>
<li>L'intérêt persistant de la communauté pour le Cloud Computing. Ce nouveau concept a rencontré un large succès à Devoxx.</li>
</ul>
<p>Pour rentrer plus en détails dans les enseignements de cette conférence, vous pouvez désormais retrouver l'intégralité de nos billets Devoxx :</p>
<ul>
<li><a href="http://blog.xebia.fr/2009/11/17/devoxx-jour-1-adobe-university/" title="Devoxx  Jour 1  Adobe University" >Devoxx - Jour 1 - Adobe University</a></li>
<li><a href="http://blog.xebia.fr/2009/11/18/devoxx-jour-1-applications-robustes-avec-amazon-ec2/" title="Devoxx  Jour 1  Applications robustes avec Amazon EC2" >Devoxx - Jour 1 - Applications robustes avec Amazon EC2</a></li>
<li><a href="http://blog.xebia.fr/2009/11/18/devoxx-jour-1-kanban-in-action/" title="Devoxx  Jour 1  Kanban in action" >Devoxx - Jour 1 - Kanban in action</a></li>
<li><a href="http://blog.xebia.fr/2009/11/18/devoxx-jour-1-jsf-2/" title="Devoxx  Jour 1  JSF 2" >Devoxx - Jour 1 - JSF 2</a></li>
<li><a href="http://blog.xebia.fr/2009/11/18/devoxx-jour-1-nosql-avec-hbase/" title="Devoxx  Jour 1  NoSQL avec HBase" >Devoxx - Jour 1 - NoSQL avec HBase</a></li>
<li><a href="http://blog.xebia.fr/2009/11/19/devoxx-jour-2-google-app-engine/" title="Devoxx  Jour 2  Google App Engine" >Devoxx - Jour 2 - Google App Engine</a></li>
<li><a href="http://blog.xebia.fr/2009/11/19/devoxx-jour-2-les-effets-avec-flex-4/" title="Devoxx  Jour 2  Les effets avec Flex 4" >Devoxx - Jour 2 - Les effets avec Flex 4</a></li>
<li><a href="http://blog.xebia.fr/2009/11/23/devoxx-jour-2-hibernate-search/" title="Devoxx  Jour 2  Hibernate Search" >Devoxx - Jour 2 - Hibernate Search</a></li>
<li><a href="http://blog.xebia.fr/2009/11/23/devoxx-jour-2-java-fx-the-developer-guide/" title="Devoxx  Jour 2  Java FX The developer guide" >Devoxx - Jour 2 - Java FX The developer guide</a></li>
<li><a href="http://blog.xebia.fr/2009/11/23/devoxx-jour-2-soa-en-pratique/" title="Devoxx  Jour 2  SOA en pratique" >Devoxx - Jour 2 - SOA en pratique</a></li>
<li><a href="http://blog.xebia.fr/2009/11/23/devoxx-jour-2-scala-actors/" title="Devoxx  Jour 2  Scala Actors" >Devoxx - Jour 2 - Scala Actors</a></li>
<li><a href="http://blog.xebia.fr/2009/11/24/devoxx-jour-3-spring-actionscript/" title="Devoxx  Jour 3  Spring Actionscript" >Devoxx - Jour 3 - Spring Actionscript</a></li>
<li><a href="http://blog.xebia.fr/2009/11/24/devoxx-jour-3-scalatest/" title="Devoxx  Jour 3  ScalaTest" >Devoxx - Jour 3 - ScalaTest</a></li>
<li><a href="http://blog.xebia.fr/2009/11/24/devoxx-jour-3-la-keynote/" title="Devoxx  Jour 3  La keynote" >Devoxx - Jour 3 - La keynote</a></li>
<li><a href="http://blog.xebia.fr/2009/11/25/devoxx-jour-3-jee6/" title="Devoxx  Jour 3  JEE6" >Devoxx - Jour 3 - JEE6</a></li>
<li><a href="http://blog.xebia.fr/2009/11/27/devoxx-jour-4-maven-reloaded/" title="Devoxx  Jour 4  Maven Reloaded" >Devoxx - Jour 4 - Maven Reloaded</a></li>
<li><a href="http://blog.xebia.fr/2009/11/27/devoxx-jour-4-java-performance-tuning/" title="Devoxx  Jour 4  Java Performance Tuning" >Devoxx - Jour 4 - Java Performance Tuning</a></li>
<li><a href="http://blog.xebia.fr/2009/11/30/devoxx-jour-4-integration-pour-le-web-avec-ibeans/" title="Devoxx  Jour 4  Intgration pour le Web avec iBeans" >Devoxx - Jour 4 - Intégration pour le Web avec iBeans</a></li>
<li><a href="http://blog.xebia.fr/2009/11/27/devoxx-jour-5-projet-lombok/" title="Devoxx  Jour 5  Projet Lombok" >Devoxx - Jour 5 - Projet Lombok</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.xebia.fr/2009/11/30/revue-de-presse-xebia-136/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Revue de presse</title>
		<link>http://blog.xebia.fr/2009/09/21/revue-de-presse-xebia-127/</link>
		<comments>http://blog.xebia.fr/2009/09/21/revue-de-presse-xebia-127/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 17:35:00 +0000</pubDate>
		<dc:creator>Xebia France</dc:creator>
				<category><![CDATA[Java / JEE]]></category>
		<category><![CDATA[Revue de presse]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[ibeans]]></category>
		<category><![CDATA[JEE]]></category>
		<category><![CDATA[JVM]]></category>
		<category><![CDATA[memcached]]></category>
		<category><![CDATA[Mule]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Noop]]></category>
		<category><![CDATA[OSGi]]></category>
		<category><![CDATA[REST]]></category>
		<category><![CDATA[Saros]]></category>
		<category><![CDATA[scala]]></category>

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

Google lance son langage pour la JVM
iBeans : la solution d'intégration pour applications Web de MuleSoft

Agilité

Pair programming à distance sous Eclipse avec Saros

SOA

L'initiative REST-* fait débat

Le coin de la technique

OSGi 4.2
Scala OSGi-fié
Astuces de performance pour MySQL
Enquête sur les temps de redémarrage des serveurs JEE
Premiers [...]]]></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éava/J2EE hebdomadaire proposépar Xebia.</em></p>
<p><strong>Actualité éditeurs / SSII</strong></p>
<ul>
<li><a href="http://blog.xebia.fr/2009/09/21/revue-de-presse-xebia-127/#GooglelancesonlangagepourlaJVM">Google lance son langage pour la JVM</a></li>
<li><a href="http://blog.xebia.fr/2009/09/21/revue-de-presse-xebia-127/#iBeanslasolutiondintgrationpou">iBeans : la solution d'intégration pour applications Web de MuleSoft</a></li>
</ul>
<p><strong>Agilité</strong></p>
<ul>
<li><a href="http://blog.xebia.fr/2009/09/21/revue-de-presse-xebia-127/#PairprogrammingdistancesousEcl">Pair programming à distance sous Eclipse avec Saros</a></li>
</ul>
<p><strong>SOA</strong></p>
<ul>
<li><a href="http://blog.xebia.fr/2009/09/21/revue-de-presse-xebia-127/#LinitiativeRESTfaitdbat">L'initiative REST-* fait débat</a></li>
</ul>
<p><strong>Le coin de la technique</strong></p>
<ul>
<li><a href="http://blog.xebia.fr/2009/09/21/revue-de-presse-xebia-127/#OSGi">OSGi 4.2</a></li>
<li><a href="http://blog.xebia.fr/2009/09/21/revue-de-presse-xebia-127/#ScalaOSGifi">Scala OSGi-fié</a></li>
<li><a href="http://blog.xebia.fr/2009/09/21/revue-de-presse-xebia-127/#AstucesdeperformancepourMySQL">Astuces de performance pour MySQL</a></li>
<li><a href="http://blog.xebia.fr/2009/09/21/revue-de-presse-xebia-127/#Enqutesurlestempsderedmarraged">Enquête sur les temps de redémarrage des serveurs JEE</a></li>
<li><a href="http://blog.xebia.fr/2009/09/21/revue-de-presse-xebia-127/#Premierspasavecmemcached">Premiers pas avec memcached</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/2009/09/21/revue-de-presse-xebia-127/#SoireTontonsFlexeursleSeptembr">Soirée Tontons Flexeurs le 24 Septembre</a></li>
</ul>
<h3><a name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3>
<h4><a name="GooglelancesonlangagepourlaJVM"></a>Google lance son langage pour la JVM</h4>
<p>Lors du <a href="http://openjdk.java.net/projects/mlvm/jvmlangsummit/" title="JVM Language Summit" >JVM Language Summit</a> de la semaine dernière, Google a présenté son nouveau langage pour la JVM appelé <a href="http://code.google.com/p/noop/" title="Noop" >Noop</a>. Le <a href="http://code.google.com/p/noop/w/list" title="Wiki du projet" >Wiki du projet</a> et sa <a href="http://wiki.jvmlangsummit.com/Noop_Language_-W-" title="prsentation" >présentation</a> permettent de faire le tour des spécificités de ce langage :</p>
<ul>
<li>Syntaxe prévue pour être facilement compréhensible par un développeur Java ou C++</li>
<li>Pas de types primitifs, pas de classes ou méthodes statiques, variables non mutables par défaut, pas de syntaxe optionnelle, exceptions uniquement de type <em>unchecked</em></li>
<li>Librairie standard s'appuyant sur <a href="http://joda-time.sourceforge.net/" title="JodaTime" >JodaTime</a>, util.concurrent et <a href="http://code.google.com/p/google-collections/" title="Google Collections" >Google Collections</a></li>
<li>Support natif du concept d'injection de dépendances offert par <a href="http://code.google.com/p/google-guice/" title="Guice" >Guice</a> ou <a href="http://www.picocontainer.org/" title="PicoContainer" >PicoContainer</a>, un type est alors soit <em>newable</em> soit <em>injectable</em></li>
<li>Support natif des tests unitaires qui ont leur structure dédiée sans classes ni méthodes</li>
</ul>
<p>Les réactions qui ont suivies cette annonce montrent en général un intérêt couplé à une réserve légitime due à l'état embryonnaire du projet. Ainsi <a href="http://www.jroller.com/dmdevito/entry/reviewing_noop_language_from_google" title="l'analyse de Dominique de Vito" >l'analyse de Dominique de Vito</a> s'inscrit dans ce schéma, tandis qu'Alexis Moussine-Pouchkine, Sun, <a href="http://pro.01net.com/editorial/506291/google-veut-moderniser-java-avec-noop/" title="explique  01net" >explique à 01net</a> qu'il trouve enrichissant la profusion de nouvelles idées mais que, selon lui, le langage Java restera malgré tout omniprésent pendant encore des années. </p>
<p>Reste que là où de nombreux nouveaux langages justifient leur existence par une syntaxe plus compacte, une nature dynamique ou encore des concepts élaborés, Noop semble adopter une approche plus pragmatique et plus proche des besoins quotidiens rencontrés en informatique de gestion. L'avenir nous dira si les apports de ce langage sont suffisants pour convaincre des équipes de le préférer à Java pour leurs développements.</p>
<h4><a name="iBeanslasolutiondintgrationpou"></a>iBeans : la solution d'intégration pour applications Web de MuleSoft</h4>
<p>MuleSource, récemment renommé en MuleSoft lors du lancement de leur offre <a href="http://www.mulesoft.com/tcat-server-enterprise-tomcat-application-server" title="Tcat Server" >Tcat Server</a> a récemment diffusé une première beta public d'un nouveau produit : <a href="http://www.mulesoft.org/display/IBEANS" title="Mule iBeans" >Mule iBeans</a>. Il s'agit d'une nouvelle solution d'intégration s'attaquant à un marché différent des ESB traditionnels. MuleSoft part en effet du constat que de nombreuses applications Web doivent s'intégrer avec diverses ressources distantes, mais ne peuvent s'appuyer sur un ESB qui constituerait une solution trop lourde. iBeans se positionne ainsi en tant que solution d'intégration pour applications Web. La nuance est légère par rapport aux ESB mais on constate clairement cette orientation dans la pratique : annotations, composants iBeans, injection de services type IoC avec un contexte <em>request</em>, ... </p>
<p>La particularité principale du projet est son modèle de composant iBeans. Il s'agit de composants similaires aux Beans Spring ou aux Session Beans EJB mais spécialisés dans l'accès à un service à distance. Ces composants utilisent certaines annotations de la récente <a href="http://jcp.org/en/jsr/detail?id=330" title="JSR-330 (Dependency injection for Java)" >JSR-330 (Dependency injection for Java)</a> et peuvent s'intégrer facilement avec Spring, Struts et JSF.</p>
<p>MuleSoft propose parallèlement un projet nommé <a href="http://www.mulesoft.org/display/IBEANSCONTRIB/Home" title="Community iBeans Proposals" >Community iBeans Proposals</a> visant à regrouper les iBeans de la communauté pour intégrer les ressources les plus fréquentes. </p>
<p>iBeans répond à un besoin courant des applications Web. La réponse proposée par MuleSoft est élégante mais on pourra regretter l'apparition d'un modèle de composant supplémentaire disposant de son propre cycle de vie. Actuellement l'éditeur n'a pas communiqué sur son projet naissant en dehors de la <a href="http://www.mulesoft.org/display/IBEANS/Documentation" title="page Wiki dédiée" >page Wiki dédiée</a>. Une recherche Google montre rapidement que la communication autour de ce projet est quasi inexistante. Toutefois, une <a href="http://www.devoxx.com/display/DV09/iBeans+-+dead+simple+integration+for+the+Web" title="session ddie au sujet" >session dédiée au sujet</a> prévue pour Devoxx 2009 tend à nous faire penser que la célèbre conférence européenne pourrait bien servir de rampe de lancement au nouveau projet de MuleSoft.</p>
<h3><a name="Agilit"></a>Agilité</h3>
<h4><a name="PairprogrammingdistancesousEcl"></a>Pair programming à distance sous Eclipse avec Saros</h4>
<p>L'<a href="https://www.inf.fu-berlin.de/" title="université de Berlin" >université de Berlin</a> propose depuis quelques temps un plugin Eclipse nommé <a href="https://www.inf.fu-berlin.de/w/SE/DPP" title="Saros" >Saros</a>, offrant des fonctionnalités permettant le <em>pair programming</em> à distance grâce au <a href="http://fr.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol" title="protocole XMPP" >protocole XMPP</a>. Concrètement les possibilités sont :</p>
<ul>
<li>Reproduction ou synchronisation d'un projet Eclipse à distance via une connexion XMPP.</li>
<li>Visualisation dans l'environnement de l'<em>observer</em> des classes ouvertes et de la classe en cours d'édition par le <em>driver</em>.</li>
<li>Affichage en temps réel des modifications du code, et de la position du curseur et du texte sélectionné.</li>
<li>Gestion expérimentale d'un mode <em>multi-driver</em> permettant de modifier le code à deux simultanément.</li>
<li>Chat via une vue dédiée dans Eclipse</li>
</ul>
<p>Un <a href="https://www.inf.fu-berlin.de/w/SE/DPPDemoVideo" title="screencast" >screencast</a> est proposé sur le site du projet, celui-ci permet de se rendre compte des capacités du plugin.</p>
<p>Idéalement complété d'une conversation Skype, ce plugin trouvera sa place dans de nombreux scenarii allant du <em>distributed pair programming</em> à l'assistance d'un collègue situé à un autre étage.</p>
<h3><a name="SOA"></a>SOA</h3>
<h4><a name="LinitiativeRESTfaitdbat"></a>L'initiative REST-* fait débat</h4>
<p>JBoss vient de lancer le site <a href="http://www.jboss.org/reststar" title="RESTorg" >REST-*.org</a> hébergeant son initiative de standardisation de plusieurs services <em>middleware</em> traditionnels sur le modèle REST.</p>
<p>Actuellement deux <em>drafts</em> sont en cours de rédaction, l'un porte sur <a href="http://www.jboss.org/reststar/specifications/messaging.html" title="RESTful Messaging" >RESTful Messaging</a>, l'autre sur <a href="http://www.jboss.org/reststar/specifications/transactions.html" title="RESTful Transactions" >RESTful Transactions</a>. Ces deux spécifications visent à définir un ensemble d'URIs standards sur le modèle REST permettant d'exposer une ressource transactionnelle ou un <em>broker</em> de messages.</p>
<p>Très rapidement, de vives réactions sont apparues au sein de la communauté, principalement pour faire part de leur scepticisme quant à cette initiative, régulièrement comparée à la très lourde collections de spécifications WS-*, qui pourrait mettre à mal la simplicité unanimement reconnue du modèle REST. C'est ainsi le cas <a href="http://apsblog.burtongroup.com/2009/09/rest-ive-got-a-bad-feeling-about-this.html" title="d'Anne Thomas Manes" >d'Anne Thomas Manes</a> qui revient également sur les critiques de Bill Burke à l'égart de l'initiative <a href="http://www.restms.org/" title="RestMS" >RestMS</a> qui existait déjà et qui pariait plutôt sur Atom et AMQP.</p>
<p>Bill Burke de son coté publie sur <a href="http://bill.burkecentral.com/" title="son blog" >son blog</a> un billet par jour depuis la publication sur le site REST-*.org, pour justifier ses choix et la légitimité du projet qu'il porte. Ses arguments portent principalement sur le fait qu'il existe une demande très forte de la communauté pour gérer les services de <em>messaging</em> et les transactions avec REST.</p>
<p>Le débat est compréhensible : la volonté d'exposer certaines ressources transactionnelles ou services de <em>messaging</em> s'inscrit dans les besoins courants des entreprises, tout comme les craintes de voir se reproduire les erreurs du passé sont légitimes. L'apport de cette initiative est donc probablement de porter sur le devant de la scène une réflexion sur un problème pourtant courant et déjà exposé par Leonard Richardson et Sam Ruby, il y a deux ans, dans leur livre majeur <a href="http://oreilly.com/catalog/9780596529260/" title="RESTful Web Services" >RESTful Web Services</a>.</p>
<h3><a name="Lecoindelatechnique"></a>Le coin de la technique</h3>
<h4><a name="OSGi"></a>OSGi 4.2</h4>
<p>OSGi est sur le devant de la scène, d'<a href="http://www.infoq.com/news/2009/09/osgi-4-2-released" title="InfoQ" >InfoQ</a> à <a href="http://osgithoughts.blogspot.com/2009/09/osgi-42-core-and-compendium-specs.html" title="OSGi Thoughts" >OSGi Thoughts</a> en passant par <a href="http://blog.bjhargrave.com/2009/09/osgi-42-specs-are-now-available.html" title="The Programming Delusion" >The Programming Delusion</a> (BJ Hargrave, CTO de l'OSGi Alliance), depuis une petite semaine et pour cause : l'<a href="http://www.osgi.org/News/20090916" title="OSGi Alliance" >OSGi Alliance</a> a sorti et mis à disposition le 16 septembre dernier les spécifications finales de la version 4.2 (téléchargeables <a href="http://www.osgi.org/Specifications/HomePage" title="ici" >ici</a>).</p>
<p><a href="http://alblue.blogspot.com/2009/09/osgi-42-released.html" title="Alex Blewitt" >Alex Blewitt</a> nous résume la situation sur <a href="http://www.infoq.com/news/2009/09/osgi-4-2-released" title="InfoQ" >InfoQ</a>. On retiendra qu'<a href="http://www.eclipse.org/equinox" title="Equinox" >Equinox</a> et <a href="http://felix.apache.org/" title="Flix" >Félix</a> ont déjà commencé leur travail de compatibilité avec OSGi 4.2. Les spécifications étant désormais <em>released</em>, ce n'est qu'une question de temps avant que les projets affichent fièrement leur label <em>OSGi 4.2 compliant</em>.<br />
On notera aussi une nouvelle méthode de lancement du runtime OSGi, le nouveau nom des Distributed OSGi qui deviennent les Remote Services (connexion de VMs OSGi), les Blueprint Services qui seront des services <em>wired</em> à la Spring, le concept de Bundle Tracker ou bien encore le mécanisme de permission sur une opération dans un bundle.</p>
<p>Pour la petite piqure de rappel, on pourra se tourner vers <a href="http://java.dzone.com/" title="JavaLobby" >JavaLobby</a> qui nous propose depuis quelques jours 2 tutoriaux HelloWorld sur OSGi, le premier avec <a href="http://java.dzone.com/articles/plugable-swing-%E2%80%93-hello-world" title="Swing" >Swing</a> et le second avec <a href="http://java.dzone.com/articles/plugable-spring-rc-osgi-spring" title="Spring RC" >Spring RC</a>.<br />
Et pour les plus nostalgiques, le Paris JUG sur OSGi, <a href="http://www.parisjug.org/xwiki/bin/view/Meeting/20081014" title="c'était (déjà) il y a 1 an" >c'était (déjà) il y a 1 an</a>...</p>
<h4><a name="ScalaOSGifi"></a>Scala OSGi-fié</h4>
<p>On reste dans les news OSGi avec un projet qui propose Scala 2.7.6 en version OSGi-fiée (vu <a href="http://heikoseeberger.blogspot.com/2009/09/osgi-fied-scala-libraries-updated-to.html" title="ici" >ici</a>). </p>
<p>Comme expliqué sur le GitHub du projet, <a href="http://www.scala-lang.org/" title="Scala" >Scala</a> n'est pas (encore) packagé en bundle OSGi. Certes, le plugin Eclipse <a href="http://www.scala-lang.org/node/94" title="Scala IDE" >Scala IDE</a> utilise un bundle OSGi qui embarque Scala mais celui-ci ne peut pas être utilisé de manière générale (manifest spécifique et toutes les librairies dans un seul jar).</p>
<p><a href="http://github.com/hseeberger/scala-lang-osgi" title="scala-lang-osgi" >scala-lang-osgi</a> répond à ce besoin et fournit un bundle OSGi pour chaque librairie Scala. Le tout est disponible sur le repository maven <a href="http://scala-tools.org/repo-releases/org/scala-lang-osgi/" title="scalatoolsorg" >scala-tools.org</a>.</p>
<h4><a name="AstucesdeperformancepourMySQL"></a>Astuces de performance pour MySQL</h4>
<p>Même si nos ORMs préférés génèrent des requêtes optimisées à notre place, il arrive parfois que, pour des raisons de performances ou autres, l'on doive écrire certaines requêtes directement en SQL.<br />
Le site <a href="http://www.debianadmin.com/" title="Debian Admin" >Debian Admin</a> (par <a href="http://www.code-purity.com/top_87_mysql_performance_tips/|http://www.debianadmin.com/top-84-mysql-performance-tips." title="Code Purity" >Code Purity</a>) référence à cette fin <a href="http://www.debianadmin.com/top-84-mysql-performance-tips.html" title="84 astuces doptimisations de performances pour MySQL" >84 astuces d'optimisations de performances pour MySQL</a>.<br />
Certes, la plupart des astuces de configuration de MySQL sont peut-être/certainement déjà mises en place par nos chers DBA. Mais on trouvera aussi une pléiade d'astuces concernant la requête elle-même : cela passe de la non utilisation du gourmand <code>SELECT *</code>, d'éviter au possible l'utilisation de <code>DISTINCT</code> (très consommateur), d'utiliser pour l'insertion des <code>BATCH INSERT</code> et <code>REPLACE</code> ou bien encore l'utilisation <code>INET_ATON</code> et <code>INET_NTOA</code> au lieu de <code>CHAR</code> et <code>VARCHAR</code> pour les adresses IP.<br />
Pour le détail complet, rendez-vous directement sur le <a href="http://www.debianadmin.com/top-84-mysql-performance-tips.html" title="site de Debian Admin" >site de Debian Admin</a>.</p>
<h4><a name="Enqutesurlestempsderedmarraged"></a>Enquête sur les temps de redémarrage des serveurs JEE</h4>
<p>ZeroTurnAround, l'éditeur de JRebel, a mené (et continue même à collecter des données) <a href="http://www.zeroturnaround.com/blog/java-ee-container-heaven-hell-survey-results/" title="une tude sur les temps de redmarrage  redploiement des serveurs dapplications" >une étude sur les temps de redémarrage / redéploiement des serveurs d'applications</a> auprès des lecteurs de son blog (environ 700 personnes ont répondu).<br />
Tout d'abord, passons sur la conclusion évidente de l'étude, <em>vous avez besoin de JRebel</em>, pour tenter de voir au delà de cette évidence marketing. On évitera aussi la polémique sur le rapprochement Conteneurs de Servlets / Serveurs d'applications.<br />
On constate tout d'abord que la population fréquentant le blog de ZeroTurnAround (on a donc dès le début une information en partie biaisée) a une forte tendance à confier ses applications à une plate-forme basée sur Tomcat (JBoss + Tomcat), plutôt qu'aux historiques IBM et <strike>BEA</strike> Oracle. Là encore, étant donné la notoriété naissante de JRebel, au sein d'une communauté plutôt tournée vers l'open source, rien d'étonnant.</p>
<p>En revanche, il est intéressant de constater que les temps de redéploiement deviennent assez rapidement délirants, avec des serveurs qui en moyenne mettent entre 2 et 5 minutes à redémarrer, la palme de la lenteur revenant, on le savait déjà par expérience, aux <em>gros serveurs monolithiques commerciaux</em>. Alors, au-delà du constat qu'un développeur passe aujourd'hui une grande partie de son temps à attendre que son application se mette à jour sur son serveur d'applications, au-delà du fait que JRebel est une des manières d'adresser ce problème, nous nous posons la question suivante : est-il normal, pour un serveur d'applications, de mettre cinq minutes à redémarrer ?</p>
<p>L'actualité de cette revue de presse met en avant OSGI, qui sera certainement une des réponses apportées à cette explosion des temps de démarrage. Ce sont d'ailleurs les absents de cette étude qui porteront la première estocade : GlassFish 3.x et dmServer.</p>
<h4><a name="Premierspasavecmemcached"></a>Premiers pas avec memcached</h4>
<p>Dans le but de proposer une implémentation d'un système de cache pour Grails, <a href="http://www.ibm.com/developerworks/java/library/j-memcached1/?S_TACT=105AGX01&#038;S_CMP=HP&#038;ca=drs-" title="James Goodwill, sur DeveloperWorks" >James Goodwill, sur DeveloperWorks</a>, propose, dans un premier temps, une découverte du système de cache distribué <a href="http://www.danga.com/memcached/" title="memcached" >memcached</a>.<br />
Une mise en bouche qui permet de découvrir les bases de ce produit, avant de combiner ce cache avec Grails dans une seconde partie, qui, on l'espère, permettra d'optimiser les performances du plus célèbre des frameworks haute productivité.</p>
<h3><a name="EvnementsdenotrecommunautenFra"></a>Evènements de notre communauté en France et à l'étranger</h3>
<h4><a name="SoireTontonsFlexeursleSeptembr"></a>Soirée Tontons Flexeurs le 24 Septembre</h4>
<p>Suite des <a href="http://groups.adobe.com/groups/193bcaff5f/summary" title="Tontons Flexeurs" >Tontons Flexeurs</a>, après la très bonne soirée <a href="http://blog.xebia.fr/2009/07/20/revue-de-presse-xebia-118/#SoireTontonsFlexeurs" title="Flex et Java en entreprise" >Flex et Java en entreprise</a>, avec une <a href="http://groups.adobe.com/posts/8cb9375182" title="nouvelle session" >nouvelle session</a> ce jeudi 24 septembre. 2 invités de marque : <a href="http://www.mikechambers.com/blog/" title="Mike Chambers" >Mike Chambers</a> et <a href="http://theflashblog.com/" title="Lee Brimelow" >Lee Brimelow</a> qui nous feront une présentation d'Adobe AIR (techniques avancées de synchronisation de données, de manipulation de fichiers, possibilités d'intégration à la plateforme hôte...) et des nouvelles fonctionnalités des prochaines versions de AIR.</p>
<p>A l'heure où nous écrivons ces lignes, il reste encore quelques places disponibles donc rendez-vous sur le <a href="http://chambers-et-brimelow-ttfx-2009.eventbrite.com/" title="formulaire dinscription de lvnement" >formulaire d'inscription de l'évènement</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xebia.fr/2009/09/21/revue-de-presse-xebia-127/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Revue de Presse Xebia</title>
		<link>http://blog.xebia.fr/2009/06/22/revue-de-presse-xebia-114/</link>
		<comments>http://blog.xebia.fr/2009/06/22/revue-de-presse-xebia-114/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 16:19:03 +0000</pubDate>
		<dc:creator>Xebia France</dc:creator>
				<category><![CDATA[Revue de presse]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[GAE]]></category>
		<category><![CDATA[Gilead]]></category>
		<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[Hibernate Shards]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Java / JEE]]></category>
		<category><![CDATA[jazoon]]></category>
		<category><![CDATA[Jigsaw]]></category>
		<category><![CDATA[OSGi]]></category>
		<category><![CDATA[RIA]]></category>
		<category><![CDATA[Vaadin]]></category>

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

Vaadin 6
Adaptateur Gilead pour GAE
Une série d'annonces chez Adobe

Le coin de la technique

Scalabilité avec Hibernate et Shards
Jigsaw vs OSGi
Pourquoi utiliser un portail ?
Embarquer le Web dans Java avec JWebPane

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

Xebia @ Jazoon 09

RIA
Vaadin 6
Au revoir IT Mill Toolkit [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br />
<em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p>
<p><strong>RIA</strong></p>
<ul>
<li><a href="http://blog.xebia.fr/2009/06/22/revue-de-presse-xebia-114/#Vaadin">Vaadin 6</a></li>
<li><a href="http://blog.xebia.fr/2009/06/22/revue-de-presse-xebia-114/#AdaptateurGileadpourGAE">Adaptateur Gilead pour GAE</a></li>
<li><a href="http://blog.xebia.fr/2009/06/22/revue-de-presse-xebia-114/#UnesriedannonceschezAdobe">Une série d'annonces chez Adobe</a></li>
</ul>
<p><strong>Le coin de la technique</strong></p>
<ul>
<li><a href="http://blog.xebia.fr/2009/06/22/revue-de-presse-xebia-114/#ScalabilitavecHibernateetShard">Scalabilité avec Hibernate et Shards</a></li>
<li><a href="http://blog.xebia.fr/2009/06/22/revue-de-presse-xebia-114/#JigsawvsOSGi">Jigsaw vs OSGi</a></li>
<li><a href="http://blog.xebia.fr/2009/06/22/revue-de-presse-xebia-114/#Pourquoiutiliserunportail">Pourquoi utiliser un portail ?</a></li>
<li><a href="http://blog.xebia.fr/2009/06/22/revue-de-presse-xebia-114/#EmbarquerleWebdansJavaavecJWeb">Embarquer le Web dans Java avec JWebPane</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/2009/06/22/en-route-pour-jazoon-09/">Xebia @ Jazoon 09</a></li>
</ul>
<h3><a name="RIA"></a>RIA</h3>
<h4><a name="Vaadin"></a>Vaadin 6</h4>
<p>Au revoir <a href="http://www.itmill.com/" title="IT Mill Toolkit" >IT Mill Toolkit</a> et bienvenue à <a href="http://vaadin.com/home" title="Vaadin" >Vaadin</a> (vu sur leur <a href="http://vaadin.com/blog/-/blogs/vaadin-6-server-driven-ria-framework-announced-the-next-generation-of-it-mill-toolkit" title="blog" >blog</a>) !</p>
<p>Pour ceux qui ne le connaissent pas encore, Vaadin (anciennement IT Mill Toolkit) est un framework de développement d'applications RIA qui s'appuie sur GWT. Sa particularité est d'être <em>runtime</em> donc aucune compilation spécifique n'est demandée avant de packager la webapp (à l'inverse de GWT).</p>
<p>Simple changement de nom ? En tout cas très peu de changement côté API selon les auteurs du framework. Il faut plutôt se tourner vers l'outillage pour voir quelques nouveautés : un <a href="http://vaadin.com/eclipse" title="plugin eclipse" >plugin eclipse</a> (création de projets, de composants UI, de thèmes...) et, inclus dans le plugin, un <a href="http://vaadin.com/image/image_gallery?uuid=93600d15-df24-4299-b3d1-77a91d17624c&#038;groupId=10904&#038;t=1241865010814" title="diteur WYSIWYG" >éditeur WYSIWYG</a>.</p>
<p>Côté liens utiles, l'habituel <a href="http://demo.vaadin.com/sampler/" title="showcase" >showcase</a>, le <a href="http://vaadin.com/book" title="livre" >livre</a> et la <a href="http://vaadin.com/comparison" title="comparaison maison" >comparaison maison</a> avec les autres frameworks du marché (et la concurrence est rude dans le monde du RIA).</p>
<p>A noter que <a href="http://vaadin.com/blog/-/blogs/vaadin-at-jazoon-09?_33_redirect=%2Fhome" title="Vaadin" >Vaadin</a> sera présent à <a href="http://jazoon.com/" title="Jazoon" >Jazoon</a> pour une conférence sur <a href="http://jazoon.com/en/conference/presentationdetails.html?type=sid&#038;detail=8360" title="RIA Security" >RIA Security</a> le mardi 23 juin à 15h (slides, projet et autres sur <a href="http://vaadin.com/web/joonas/wiki/-/wiki/Main/RIA+Security" title="cette page" >cette page</a>).</p>
<h4><a name="AdaptateurGileadpourGAE"></a>Adaptateur Gilead pour GAE</h4>
<p>Vous connaissez <a href="http://blog.xebia.fr/2009/01/23/gwt-galaxy/" title="GWT" >GWT</a>, <a href="http://blog.xebia.fr/2008/12/17/integrer-hibernate-avec-gwt-sans-douleur/" title="Gilead" >Gilead</a>, et <a href="http://blog.xebia.fr/2009/04/14/revue-de-presse-xebia-104/#GoogleAppEnginepourJavaetGroov" title="Google App Engine" >Google App Engine</a> ? Et bien il ne reste plus qu'à mélanger tout ça et on obtient le <a href="http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/69d5ccd01240a59c" title="Gilead GWT adapter for Google AppEngine" >Gilead GWT adapter for Google AppEngine</a> (vu sur le <a href="http://googlewebtoolkit.blogspot.com/2009/06/gwt-community-updates.html" title="GWT Blog" >GWT Blog</a>).</p>
<p>Tout démarre d'un <a href="http://groups.google.com/group/Google-Web-Toolkit-Contributors/browse_thread/thread/3c768d8d33bfb1dc" title="thread google groups" >thread google groups</a> avec comme point de départ la <em>serialization exception</em> lancée par les entités persistantes transférées vers GWT. Évidemment, la solution qui ressort <a href="http://groups.google.com/group/Google-Web-Toolkit-Contributors/msg/c4e6d22860a7df3d" title="très rapidement" >très rapidement</a>, outre l'utilisation de DTOs, est de passer par <a href="http://noon.gilead.free.fr/gilead/index.php?page=presentation" title="Gilead" >Gilead</a> pour transformer nos entités persistantes en POJOs. Il suffit d'ajouter le jar <code>adapter4appengine</code> et de remplacer la classe <code>PersistentRemoteService</code> par <code>EngineRemoteService</code> dans vos remotes services. Dès lors, il sera possible d'envoyer ses entités persistantes vers le client GWT sans exceptions de sérialisation sur <a href="http://code.google.com/intl/fr/appengine/" title="GAE" >GAE</a>.</p>
<p>1.0 M2 téléchargeable à cette <a href="http://sourceforge.net/project/downloading.php?group_id=239931&#038;filename=adapter4appengine-1.0M2.jar&#038;a=91098275" title="url" >url</a>, documentation <a href="http://noon.gilead.free.fr/gilead/index.php?page=adapter4appengine" title="par ici" >par ici</a>. Attention toutefois, cette version n'est pas production ready.</p>
<h4><a name="UnesriedannonceschezAdobe"></a>Une série d'annonces chez Adobe</h4>
<p>Après l'annonce de la sortie de la plateforme Flash il y a quelques semaines, voici une nouvelle série d'annonce de la part d'Adobe.</p>
<p>Pour commencer, deux news relayées par Andrew Twice dans <a href="http://www.insideria.com/2009/06/its-an-active-news-day-from-ad.html" title="InsideRIA" >InsideRIA</a>.<br />
La première concerne la sortie d'<a href="http://labs.adobe.com/technologies/tables/" title="Adobe Table" >Adobe Table</a> en version bêta. Cet outil permet de créer des feuilles de calcul, des plannings ou encore des listes de tâches en ligne:</p>
<ul>
<li>Les utilisateurs peuvent ajouter des données en même temps: les données sont mises à jour en temps réel pour tout le monde.</li>
<li>Possibilité de savoir qui travaille sur Adobe Table.</li>
<li>Création d'écrans communs et privés : les utilisateurs peuvent travailler de manière coopérative, et/ou créer des espaces privés pour ne garder que les informations importantes.</li>
<li>Filtrage : les utilisateurs peuvent filtrer leurs données en temps réel.</li>
<li>Tri.</li>
</ul>
<p>Similaire à <a href="http://www.google.com/google-d-s/intl/fr/tour1.html" title="Google Document" >Google Document</a>, cet outil a été développé sur la plateforme Flash et va continuer <a href="http://blogs.adobe.com/acom/2009/06/shared_tables_for_shared_data_1.html" title="à évoluer" >à évoluer</a>. La <a href="https://labs1.acrobat.com" title="démo" >démo</a> se passe <a href="https://labs1.acrobat.com" title="ici" >ici</a>, la seule contrainte : avoir un compte Adobe.</p>
<p>La deuxième annonce concerne l'ouverture de la spécification de Real-Time Messaging Protocol (RTMP). Comme nous en avions parlé <a href="http://blog.xebia.fr/2009/01/26/revue-de-presse-xebia-93/#Adobecontinuelouverturedeseste" title="ici" >ici</a>, la spécification a été publiée lundi dernier.</p>
<p>Enfin, Michael Chaize parle de la <a href="http://codemoiunmouton.wordpress.com/2009/06/18/livecycle-data-services-3/" title="sortie de LiveCycle Data Services 3" >sortie de LiveCycle Data Services 3</a> en bêta. Disponible sur le <a href="http://labs.adobe.com/technologies/livecycle_dataservices3/" title="labs d'Abobe" >labs d'Abobe</a>, cette nouvelle version propose une meilleure qualité de service pour des applications dont la fiabilité est primordiale telles que les applications bancaires par exemple. Venant compléter la plateforme Flash (avec Flex 4 et Flash Builder 4), Adobe incite la communauté à faire ses retours sur le <a href="http://forums.adobe.com/community/labs" title="forum" >forum</a>.</p>
<h3><a name="Lecoindelatechnique"></a>Le coin de la technique</h3>
<h4><a name="ScalabilitavecHibernateetShard"></a>Scalabilité avec Hibernate et Shards</h4>
<p>Une <a href="http://www.infoq.com/presentations/Scaling-Hibernate-Emmanuel-Bernard-Max-Ross" title="session de QCon 2008" >session de QCon 2008</a>, traitant de la scalabilité d'Hibernate, vient d'être mise en ligne. Présentée par Emmanuel Bernard, <em>project lead</em> d'Hibernate Search, et Max Ross, <em>project lead</em> d'Hibernate Shards, cette présentation offre une approche peu courante sur un problème pourtant récurrent.</p>
<p>Outre les classiques solutions permettant d'éviter certaines pertes de performance avec l'augmentation du volume traité, telles que la bonne gestion du cache, et les optimisations SQL, il a été question d'utiliser Hibernate Search et Hibernate Shards.</p>
<p><a href="https://www.hibernate.org/410.html" title="Hibernate Search" >Hibernate Search</a> est connu pour sa capacité à simplifier les recherches dans un ensemble d'entités grâce à l'utilisation de <a href="http://lucene.apache.org/" title="Lucene" >Lucene</a> conjointement à la base de données. Emmanuel Bernard proposait ici de déléguer à Search certaines recherches qui s'avèrent très coûteuses à effectuer en base. Lucene étant placé sur une machine séparée, et pouvant même fonctionner en maître / esclave, il est ainsi possible d'obtenir une intéressante répartition de la charge.</p>
<p><a href="https://www.hibernate.org/414.html" title="Hibernate Shards" >Hibernate Shards</a>, bien que plus ancien, est moins répandu du fait qu'aucune version finale n'a encore été produite. Il s'agit d'un module additionnel pour Hibernate permettant à une application de manipuler des données partitionnées sur plusieurs BDD. Le but étant d'encapsuler la conscience du partitionnement des données au sein de la couche Hibernate afin que l'application n'ait pas à gérer cette problématique. Les possibilités du framework sont intéressantes :</p>
<ul>
<li>La gestion correcte des Criterias sur des données partitionnées grâce à <a href="http://docs.jboss.org/hibernate/stable/shards/api/org/hibernate/shards/criteria/ShardedCriteria.html" title="ShardedCriteria" ><code>ShardedCriteria</code></a>.</li>
<li><a href="http://docs.jboss.org/hibernate/stable/shards/reference/en/html_single/#shards-resharding-virtual" title="Virtual Shards" >Virtual Shards</a> permettant de faire la distinction entre <em>shard</em> logique et <em>shard</em> physique et ainsi d'augmenter le nombre d'instances de base de données au fur et à mesure de l'augmentation des besoins.</li>
<li><a href="http://docs.jboss.org/hibernate/stable/shards/reference/en/html_single/#shards-strategy-idgen" title="Generation dIDs" >Generation d'IDs</a> compatibles avec l'utilisation sous-jacente de plusieurs BDDs grâce à l'utilisation d'UUIDs.</li>
<li>Gestion correcte de BDDs hétérogènes.</li>
</ul>
<p>Ce sont finalement les fonctionnalités manquantes qui permettent de comprendre pourquoi Shards est toujours en version bêta. Max Ross s'est expliqué il y a plusieurs mois sur les problématiques rencontrées, de manière succincte <a href="http://groups.google.com/group/hibernate-shards-dev/browse_thread/thread/74c14afd6d341afa#" title="sur un forum" >sur un forum</a> et plus longuement <a href="http://www.javaworld.com/podcasts/jtech/2008/072408jtech.html" title="dans une interview" >dans une interview</a>. De nombreux défis restent ainsi à relever concernant la gestion correcte des agrégations dans les <a href="http://docs.jboss.org/hibernate/stable/shards/api/" title="ShardedQuery" ><code>ShardedQuery</code></a> et la fourniture d'outils d'aide au partitionnement et repartitionnement des données.<br />
Max Ross est employé par Google et non par JBoss, tout comme les deux autres <em>committers</em> du projet (le code ayant été donné à JBoss par Google), et affirme ne disposer que de 20 % de son temps pour Shards. Ceci n'explique que partiellement <a href="http://fisheye.jboss.com/browse/Hibernate/shards/" title="le peu de commits" >le peu de commits</a> sur le projet et ne nous rassure guère quant à sa finalisation prochaine.</p>
<h4><a name="JigsawvsOSGi"></a>Jigsaw vs OSGi</h4>
<p>Sept mois après le démarrage du projet <a href="http://openjdk.java.net/projects/jigsaw" title="Jigsaw" >Jigsaw</a>, sa légitimité n'est toujours pas reconnue face à OSGi qu'il est venu défier sur son propre terrain.</p>
<p>La semaine dernière <a href="http://javaposse.com/index.php?post_id=492239" title="JavaPosse diffusait une interview" >JavaPosse diffusait une interview</a> de Mark Reinhold et Alex Buckley, où ils ont pu présenter plus en détail leur vision de Jigsaw :</p>
<ul>
<li>Il a été conçu pour modulariser le JDK et est intégré au langage.</li>
<li>Il ne repose pas sur une spécification car cela n'était pas possible compte tenu du calendrier de JDK 7. Il est donc à considérer comme un "détail d'implémentation" tout comme la gestion du classpath l'était dans les JVMs précédentes.</li>
<li>Il n'est pas supposé entrer en concurrence avec OSGi, des outils permettant l'intégration entre modules Jigsaw et <em>bundles</em> OSGi étant prévus, mais non prioritaires.</li>
</ul>
<p>Dans le même temps, Eric Newcomer (<em>Co-Chair</em>, <em>Enterprise Expert Group</em> de l'OSGi Alliance), postait <a href="http://modualrit.blogspot.com/2009/06/osgi-standard-questions.html" title="une série" >une série</a> <a href="http://modualrit.blogspot.com/2009/06/kill-project-jigsaw-now-please.html" title="de billets" >de billets</a> très virulents à l'égard du projet Jigsaw, reprochant principalement que Sun n'ait pas voulu se tourner vers OSGi, ne cherchant pas à combler les manques qu'il y trouvait, se tournant immédiatement vers une nouvelle technologie et ignorant donc les 10 années d'expérience acquises par OSGi.</p>
<p>En fait, il semble n'y avoir aucune justification technique permettant d'expliquer l'orientation de Sun vers Jigsaw plutôt que vers OSGi ou vers une évolution d'OSGi intégrée au langage. La véritable raison serait alors à chercher sur le plan politique : la modularisation est un concept important qui manque à Java actuellement et Sun ne pouvait probablement pas se permettre, pour l'ajout d'un tel concept, de s'appuyer sur une spécification émise en dehors du JCP sur lequel il a la gouvernance.</p>
<h4><a name="Pourquoiutiliserunportail"></a>Pourquoi utiliser un portail ?</h4>
<p>Le <a href="http://lescastcodeurs.com/2009/06/les-cast-codeurs-podcast-episode-6-portal-ma/" title="dernier podcast des Cast Codeurs" >dernier podcast des Cast Codeurs</a> était l'occasion d'une interview de Thomas Heute et Julien Viet sur les portails d'entreprise et sur le partenariat entre eXo et JBoss <a href="http://blog.xebia.fr/2009/06/15/revue-de-presse-xebia-113/#JBosseteXofusionnentleurssolut" title="dont nous vous parlions" >dont nous vous parlions</a> la semaine dernière.</p>
<p>Les détails liés au partenariat ont déjà été largement couverts par la blogosphère, et c'est surtout le tour d'horizon du concept même de portail que l'on retiendra. Celui-ci reste en effet souvent un élément ambigu au sein de l'écosystème JEE.</p>
<p>Le rôle du portail est d'agréger plusieurs applications au sein d'une unique application Web. Ce besoin technique peut être atteint à plusieurs niveaux de l'architecture de l'application :</p>
<ul>
<li>Au niveau back-end, par agrégation de Web Service, se conformant ainsi à l'un des préceptes des SOAs.</li>
<li>Au niveau applicatif, par l'utilisation d'un portail, ou d'une solution spécifique.</li>
<li>Au niveau du navigateur Web, par l'utilisation de gadgets, en suivant le principe des <a href="http://fr.wikipedia.org/wiki/Application_composite" title="Mashups" >Mashups</a>.</li>
</ul>
<p>En outre, il a également été question des problématiques d'intégration des frameworks Web aux portlets, de complexité éventuelle, et d'adaptation des technologies Web aux portlets. Déterminer si un portail doit être utilisé dans une architecture dépend alors du niveau de tolérance à ces problématiques.</p>
<h4><a name="EmbarquerleWebdansJavaavecJWeb"></a>Embarquer le Web dans Java avec JWebPane</h4>
<p>Depuis plusieurs années, lorsque l'on veut afficher une page Web au sein d'une application Swing, il faut se tourner vers le composant <a href="https://jdic.dev.java.net/documentation/Specification.html" title="Browser" >Browser</a> de la librairie <a href="https://jdic.dev.java.net/" title="Jdic" >Jdic</a>. Ce composant utilise <a href="http://www.mozilla.org/projects/embedding/" title="Embeddable Mozilla" >Embeddable Mozilla</a>, et se présente sous la forme de code natif décliné pour chaque OS et d'un <em>wrapper</em> Java. Outre la nécessité de fournir une version spécifique à chaque OS, ce composant présente également l'inconvénient de mal s'intégrer aux applications Swing du fait de sa nature <em>heavyweight</em>. Pour rappel, un composant est dit <em>heavyweight</em> lorsqu'il est dessiné par l'environnement graphique du système d'exploitation ; à l'opposé il devient <em>lightweight</em> s'il est dessiné par l'application,  ce qui est le cas de l'ensemble des composants Swing. Or, faire cohabiter les deux types de composants est délicat car n'étant pas dessinés au même moment, leur superposition est confuse et des chevauchements non contrôlables apparaissent.</p>
<p>Lors de JavaOne, Alexey Ushakov a fait la démonstration du composant JWebPane sur lequel il travaille actuellement et vient de poster <a href="http://weblogs.java.net/blog/alex2d/archive/2009/06/jwebpane_bof_sc.html" title="des captures d'écrans" >des captures d'écrans</a>. Contrairement à Jdic Browser, JWebPane se base sur le moteur <a href="http://webkit.org/" title="WebKit" >WebKit</a> pour effectuer le rendu HTML. Or celui-ci se caractérise par sa nature <em>lightweight</em> s'intégrant agréablement à Swing. La <a href="http://weblogs.java.net/blog/alex2d/archive/JWebPaneJ1.pdf" title="prsentation dAlex Ushakov" >présentation d'Alex Ushakov</a> permet également de constater que son composant est particulièrement riche en possibilité d'interactions et apporte un support pour d'éventuels plugins tels que Flash.</p>
<p>On ne peut qu'apprécier le choix de Sun de créer un composant pour Swing, réutilisable dans JavaFX, plutôt que de privilégier uniquement JavaFX comme cela est souvent le cas depuis son arrivée. L'intégration de JWebPane au JDK 7 est maintenant indispensable pour rendre ce composant réellement exploitable : se basant sur WebKit, il repose donc sur des librairies natives qu'il sera nécessaire de livrer avec les applications Java et seul l'intégration au JDK permettrait de l'éviter. Or, malgré <a href="http://www.jroller.com/dmdevito/entry/about_swing_future_and_jwebpane" title="les appels" >les appels</a> de la communauté, JWebPane reste pour le moment absent de la <a href="http://openjdk.java.net/projects/jdk7/features/" title="liste des features" >liste des <em>features</em></a> du JDK 7 et il est uniquement question d'une <a href="http://weblogs.java.net/blog/alex2d/archive/2008/12/jwebpane_projec.html" title="mise  disposition sur Javanet" >mise à disposition sur Java.net</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xebia.fr/2009/06/22/revue-de-presse-xebia-114/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Revue de Presse Xebia</title>
		<link>http://blog.xebia.fr/2009/04/14/revue-de-presse-xebia-104/</link>
		<comments>http://blog.xebia.fr/2009/04/14/revue-de-presse-xebia-104/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 17:07:06 +0000</pubDate>
		<dc:creator>Xebia France</dc:creator>
				<category><![CDATA[Revue de presse]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[Groovy]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Java / JEE]]></category>
		<category><![CDATA[JBI]]></category>
		<category><![CDATA[Lucene]]></category>
		<category><![CDATA[OSGi]]></category>
		<category><![CDATA[ServiceMix]]></category>
		<category><![CDATA[SOA]]></category>

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

Google App Engine pour Java et Groovy

SOA

Le statut de JBI 2 en question

Mobilité

Preview d'Android 1.5

Le coin de la technique

Lucene continue d'innover
ServiceMix 4 et son kernel OSGi

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

Les Cast Codeurs, le podcast Java en Français

Actualité éditeurs [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.xebia.fr/wp-content/uploads/2007/06/revuedepresse.png" alt="Revue de Presse Xebia" style="margin: 1em 1em 1em 1em; float: right;" /><br />
<em>La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.</em></p>
<p><strong>Actualité éditeurs / SSII</strong></p>
<ul>
<li><a href="http://blog.xebia.fr/2009/04/14/revue-de-presse-xebia-104/#GoogleAppEnginepourJavaetGroov">Google App Engine pour Java et Groovy</a></li>
</ul>
<p><strong>SOA</strong></p>
<ul>
<li><a href="http://blog.xebia.fr/2009/04/14/revue-de-presse-xebia-104/#LestatutdeJBIenquestion">Le statut de JBI 2 en question</a></li>
</ul>
<p><strong>Mobilité</strong></p>
<ul>
<li><a href="http://blog.xebia.fr/2009/04/14/revue-de-presse-xebia-104/#PreviewdAndroid">Preview d'Android 1.5</a></li>
</ul>
<p><strong>Le coin de la technique</strong></p>
<ul>
<li><a href="http://blog.xebia.fr/2009/04/14/revue-de-presse-xebia-104/#Lucenecontinuedinnover">Lucene continue d'innover</a></li>
<li><a href="http://blog.xebia.fr/2009/04/14/revue-de-presse-xebia-104/#ServiceMixetsonkernelOSGi">ServiceMix 4 et son kernel OSGi</a></li>
</ul>
<p><strong>Évènements de notre communauté en France et à l'étranger</strong></p>
<ul>
<li><a href="http://blog.xebia.fr/2009/04/14/revue-de-presse-xebia-104/#LesCastCodeurslepodcastJavaenF">Les Cast Codeurs, le podcast Java en Français</a></li>
</ul>
<h3><a name="ActualitditeursSSII"></a>Actualité éditeurs / SSII</h3>
<h4><a name="GoogleAppEnginepourJavaetGroov"></a>Google App Engine pour Java et Groovy</h4>
<p><a href="http://code.google.com/intl/fr/appengine/" title="Google App Engine" >Google App Engine</a>, solution de Cloud Computing proposée par Google supporte depuis la semaine dernière (en plus du langage Python disponible depuis un an) le langage Java. Cette solution permet dorénavant de déployer son application web à base de servlets (sous forme de war) sur un serveur virtuel hébergé sur l'infrastucture de production de Google (Google a donné la semaine dernière un compte Google App Engine Java aux 10 000 premiers inscrits).</p>
<p>Google met en avant les avantages suivants :</p>
<ul>
<li>La facilité d'utilisation via un SDK très documenté et des plugins Eclipse.</li>
<li>La scalabilité gérée de manière transparente et automatique</li>
<li>La fiabilité et la performance fournies par les infrastructures de Google</li>
<li>Enfin, App Engine est gratuit si votre serveur n'excède les 500 Mo de stockage et 5 millions de page visualisées par mois</li>
</ul>
<p>Google fait une entrée de manière fracassante dans le marché du cloud computing "Java" (Amazon EC2, etc.. ) et propose une offre séduisante où chacun peut créer, tester et déployer son application facilement. La création d'un projet App Engine sous Eclipse via le plugin est simple et le déploiement sur App Engine s'effectue en un seul clic.</p>
<p>Quelques liens utiles :</p>
<ul>
<li>vous pouvez trouver une description très complète de la solution (en Français) <a href="http://arnulfo.net/2009/04/google-app-engine-et-java-une-revolution/" title="sur le blog de Frank Arnulfo" >sur le blog de Frank Arnulfo</a></li>
<li>David Gageot a mis en ligne une feuille Google Spreadsheet qui <a href="http://sunchic.free.fr/wordpress/index.php/archives/2009/04/12/java-libraries-and-frameworks-supported-by-google-app-engine/" title="liste les librairies et frameworks Java supports par Google App Engine" >liste les librairies et frameworks Java supportés par Google App Engine</a></li>
<li>Groovy est également supporté, retrouvez <a href="http://glaforge.free.fr/weblog/index.php?itemid=268" title="lannonce sur le blog de Guillaume Laforge" >l'annonce sur le blog de Guillaume Laforge</a></li>
</ul>
<h3><a name="SOA"></a>SOA</h3>
<h4><a name="LestatutdeJBIenquestion"></a>Le statut de JBI 2 en question</h4>
<p>La <a href="http://jcp.org/en/jsr/detail?id=312" title="JSR-312 : Java Business Integration 2.0 (JBI)" >JSR-312 : Java Business Integration 2.0 (JBI)</a> a été initiée début 2007 pour pallier les défauts de la première version de ce standard (<a href="http://jcp.org/en/jsr/detail?id=208" title="JSR208  JBI" >JSR-208 : JBI</a>). Cette dernière souffrait en effet de nombreuses critiques, portant principalement sur sa lourdeur excessive et son indépendance vis-à-vis des autres standards existants (SCA, EJB3, JAX-WS, ...).</p>
<p>Le projet était alors ambitieux mais la perspective d'un tel standard ne manquait pas d'intérêt. Toutefois, deux ans après sa création, le statut de cette JSR, tel qu'affiché sur sa page du JCP, reste toujours inchangé et la JSR est maintenant classée "inactive".<br />
Ron Ten-Hove (<em>co-spec lead</em> de la JSR), vient toutefois d'apporter une information discrète quant à l'activité de l'<em>Expert Group</em> associé sur <a href="http://n2.nabble.com/JBI-2.0,-open-esb-future---td2607990.html" title="la mailing list du projet OpenESB" >la mailing list du projet OpenESB</a>. Il indique que le développement de la JSR n'est pas interrompu et que la classification d'inactivité est uniquement due à une nouvelle règle du JCP qui étiquette ainsi les JSRs dont le statut n'a pas évolué depuis 18 mois. Ceci ne refléterait donc pas le niveau d'activité au sein de l'<em>Expert Group</em>. Aucune date ni évolution de planning ne sont par contre indiquées.</p>
<p>Le standard JBI 1.0 est boudé par un grand nombre de produits commerciaux et Open Source qui préfèrent épouser la vague des "lightweight ESB" dont <a href="http://blog.xebia.fr/2007/12/17/spring-integration-lavenement-des-lightweight-esb/" title="nous vous parlions dj il y a un an" >nous vous parlions déjà il y a un an</a>. Toutefois l'arrivée tardive d'un standard faisant consensus n'est pas forcément un frein à son adoption comme l'a montré EJB 3 remplaçant avec succès ses très lourds prédécesseurs ; la voie reste donc ouverte pour JBI 2.0 et l'avenir nous dira si la tâche n'était pas trop lourde.</p>
<h3><a name="Mobilit"></a>Mobilité</h3>
<h4><a name="PreviewdAndroid"></a>Preview d'Android 1.5</h4>
<p>En attendant la sortie finale d'Android 1.5 (Cupcake) à la fin du mois, Android Developers Blog <a href="http://android-developers.blogspot.com/2009/04/getting-ready-for-android-15.html" title="annonce la sortie dune prversion du SDK 15" >annonce la sortie d'une pré-version du SDK 1.5</a> pour les développeurs d'applications Android.<br />
Parmi <a href="http://developer.android.com/sdk/preview/features.html" title="la liste complte des nouveauts dAndroid 15" >la liste complète des nouveautés d'Android 1.5</a>, cette pré-version du SDK propose notamment:</p>
<ul>
<li>le <a href="http://androidcommunity.com/android-getting-virtual-keyboard-20081024" title="clavier virtuel" >clavier virtuel</a></li>
<li>le développement de widgets pour l'écran d'accueil (à l'image de l'horloge ou du widget de recherche qui existent déjà dans Android)</li>
<li>la fonctionnalité <a href="http://www.readwriteweb.com/archives/live_folders_bring_the_real-time_web_to_android.php" title="live folders" >live folders</a></li>
<li>la reconnaissance vocale</li>
</ul>
<p>Ce nouveau SDK propose également une avancée intéressante : la possibilité de gérer plusieurs versions du SDK en parallèle, par exemple ici les versions 1.1 et 1.5. Les développeurs pourront donc tester leur application sur plusieurs environnements sans manipulations fastidieuses.<br />
Afin de commencer à tester vos applications sur cette nouvelle version d'Android, vous pouvez télécharger ce SDK 1.5 <a href="http://developer.android.com/sdk/preview/" title="en cliquant ici" >en cliquant ici</a>.</p>
<h3><a name="Lecoindelatechnique"></a>Le coin de la technique</h3>
<h4><a name="Lucenecontinuedinnover"></a>Lucene continue d'innover</h4>
<p>Le projet <a href="http://lucene.apache.org/" title="Apache Lucene" >Apache Lucene</a> reste une source d'innovation importante au fil des années. Il compte en effet huit sous-projets, chacun apportant son lot d'outils et d'APIs additionnelles permettant de mettre en œuvre un moteur de recherche toujours plus élaboré.Ces sous-projets vont parfois au-delà du simple environnement de Lucene, comme cela a été le cas avec <a href="http://hadoop.apache.org/core/" title="Hadoop" >Hadoop</a>, qui <a href="http://blog.xebia.fr/2009/04/06/revue-de-presse-xebia-103/#AmazonlancesonserviceElasticMa" title="gagne actuellement en popularité" >gagne actuellement en popularité</a> et dont le moteur <a href="http://labs.google.com/papers/mapreduce.html" title="MapReduce" >MapReduce</a> est réutilisé par de nombreux autres projets.</p>
<p>Dernière preuve en date de cette activité, le sous-projet <a href="http://lucene.apache.org/mahout/" title="Mahout" >Mahout</a>, <a href="http://www.mail-archive.com/announce@apache.org/msg00466.html" title="créé en Janvier 2009" >créé en Janvier 2009</a> et qui vient <a href="http://lucene.grantingersoll.com/2009/04/07/apache-mahout-01-released/" title="dtre annonc en version 01" >d'être annoncé en version 0.1</a>, a pour but de fournir des implémentations d'algorithmes de <em>machine learning</em>, la plupart pouvant être distribués grâce à Hadoop. Ces algorithmes couvrent principalement :</p>
<ul>
<li>La classification et le <em>clustering</em> : permettent de catégoriser, tagger et séparer des données en groupes. Ainsi enrichies, ces données pourraient par exemple être plus facilement exploitables et accessibles par un moteur de recherche qui saurait exploiter ces informations lors de son processus d'indexation.</li>
<li>Le <em>collaborative filtering</em> : permet de créer des systèmes d'associations d'objets par apprentissage, du type "les utilisateurs ayant acheté cet article ont également acheté ...". Cette fonctionnalité est offerte par le moteur <a href="http://lucene.apache.org/mahout/taste.html" title="Taste" >Taste</a> de Mahout.</li>
</ul>
<p>Ces technologies sont actuellement plus proches du monde de la recherche que de celui de l'informatique de gestion en entreprise. Et c'est bien là que va résider tout le défit pour Mahout : parvenir à proposer une API simple et robuste pour offrir ces fonctionnalités à moindre coût aux applications d'entreprise. Actuellement peu courants, les cas d'utilisation pourraient se multiplier avec la mouvance globale vers les technologies Web 2.0 et autre concepts liés à l'intelligence collective.</p>
<h4><a name="ServiceMixetsonkernelOSGi"></a>ServiceMix 4 et son kernel OSGi</h4>
<p>L'équipe de ServiceMix a profité de la conférence <a href="http://www.eu.apachecon.com/c/aceu2009/" title="ApacheCon Europe 2009" >ApacheCon Europe 2009</a> pour <a href="http://gnodet.blogspot.com/2009/04/apache-servicemix-400-and-apache.html" title="annoncer" >annoncer</a> la sortie de la version 4.0 finale de leur ESB.<br />
Rod Biresch <a href="http://soatechlab.blogspot.com/2008/09/whats-new-in-servicemix-4x.html" title="prsentait en septembre dernier" >présentait en septembre dernier</a> les principaux apports de cette nouvelle version, ce qui permettait alors de constater qu'il s'agissait avant tout d'une refonte de l'architecture du projet. Ainsi, alors que ServiceMix 3 gravitait principalement autour de son conteneur JBI, son successeur utilise désormais un kernel basé sur OSGi et secondé par un module Normalized Message Router (NMR). Il donne naissance à deux sous-projets distincts : ServiceMix Kernel et ServiceMix NMR.</p>
<p>Cette nouvelle architecture permet à ServiceMix de gagner en évolutivité et n'a qu'un impact limité pour les développeurs utilisant cet ESB. Ainsi, les composants développés pour ServiceMix 3.x restent compatibles avec cette nouvelle version, tel que l'on pouvait s'y attendre du fait de la conservation du standard JBI.</p>
<p>En outre, Guillaume Nodet (<em>project lead</em> de ServiceMix) <a href="http://gnodet.blogspot.com/2009/04/apache-karaf.html" title="nous apprend" >nous apprend</a> que le kernel de ServiceMix 4 attire d'autres projets de la fondation Apache (ActiveMQ, Directory et James) ce qui devrait conduire ServiceMix Kernel à devenir un sous-projet d'Apache Felix et à être, à priori, renommé pour l'occasion en Apache Karaf. OSGi continue ainsi de s'imposer massivement pour apporter la modularité dans les implémentations de conteneurs et middlewares Java, après avoir conquit le cœur de nombreux serveurs d'applications.</p>
<h3><a name="vnementsdenotrecommunautenFran"></a>Évènements de notre communauté en France et à l'étranger</h3>
<h4><a name="LesCastCodeurslepodcastJavaenF"></a>Les Cast Codeurs, le podcast Java en Français</h4>
<p>A l'image du <a href="http://javaposse.com/" title="Java Posse" >Java Posse</a> anglo-saxon, Emmanuel Bernard (JBoss, Hibernate), Guillaume Laforge (SpringSource, Groovy), Antonio Goncalves (freelance, auteur, Paris JUG) et Vincent Massol (XWiki, Maven) lancent <a href="http://lescastcodeurs.com" title="Les Cast Codeurs" >Les Cast Codeurs</a>, podcast dédié aux nouvelles fraîches du monde Java, en Français !<br />
Parmi les sujets discutés pendant cette première édition : Google App Engine, le rachat hypothétique de Sun par IBM ou Java EE 6 proposé en final draft.<br />
On y entend beaucoup Emmanuel Bernard, beaucoup moins Vincent Massol, mais les propos et le format sont intéressants, longue vie aux Cast Codeurs !</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xebia.fr/2009/04/14/revue-de-presse-xebia-104/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
