Posts Tagged 'Sun'

Evénement Jazoon 2009 : l'avenir du monde Java

J’ai eu la chance de pouvoir assister à la conférence Jazoon cette année. Tiré du site web officiel, Jazoon se définit comme "where Java people meet" en Europe, en bref une série de conférences autour de Java et de tout ce qui s’y rapporte. Ce billet est un résumé très condensé du déroulement de ces quatre jours avec une sélection des meilleures présentations techniques :
Alexis Moussine-Pouchkin de Sun nous présente en quelques slides ce qu’est GlassFish, un projet démarré en 2005, la première implémentation de JEE5. Aujourd’hui la version stable est la 2.1. La v3 arrive en automne et sera compatible JEE 6. Selon Alexis, s’il ne devait rester qu’une seule raison pour utiliser GlassFish, c’est qu’ils (les contributeurs) s’intéressent autant aux personnes de l’exploitation qu’à nous les développeurs, et on le reverra plusieurs fois dans la journée.

Roberto Chinnici de Sun nous a ensuite présenté JEE 6 et toutes ses nouveautés. On peut retenir:

  • Les profiles qui permettent de rassembler un ensemble minimum d’API nécessaires à certains types d’application. Le premier sera le Web Profile. Les autres devront passer à travers le JCP.
  • Le pruning, en résumé le passage en « deprecated » pour les anciens API (Entity Beans 2.0, JAX-RPC), ils seront supprimés de la version suivante.
  • Des mécanismes d’extensibilité pour faciliter la configuration de frameworks tiers.
  • Des nouvelles versions des composants: EJB 3.1 (nouveaux types de beans @Singleton, @Asynchronous, @Schedule), Servlet 3.0 (annotations, @WebServlet, fonctionnement asynchrone,…), JSF 2.0,…
  • Un déploiement facilité avec la possibilité de mettre des EJB directement dans un WAR
  • Des nouveaux API: Beans Validation et peut-être Web Beans (JSR-299)
  • Au final une release qui va encore dans la direction de la simplification et qui est prévue pour septembre de cette année.

Christian Frei, l’organisateur de Jazoon, et James Gosling, un des pères de Java nous expose quelques chiffres l’expansion de Java, 10 milliards d’appareils compatibles avec Java, 6 millions de développeurs professionnels et 15 millions de téléchargement de JRE par semaine. Java est aujourd’hui utilisé partout dans le monde et dans tous les domaines, santé, industrie, mobiles, jeux vidéo,… Ils nous présentent ensuite un petit panel des points forts et des nouveautés, comme GlassFish v3, NetBeans 6.7, Kenai (la forge qui va remplacer java.net), Java Real Time et JavaFX.

Dierk Konig (Canoo) nous propose Groovy, 7 usages pattern . Le langage Groovy est réellement intéressant mais j’ai toujours eu de la peine à identifier les réels cas d’utilisation envisageable dans le cadre du développement d’applications d’entreprise, cette session était l’occasion de trouver quelques réponses avec ces 7 propositions :

  • Super Glue, utiliser Groovy pour créer des applications basées sur l’infrastructure Java et les fonctionnalités Groovy, par exemple les capacités de réseau de Java, Swing et le parseur XML Groovy pour créer un lecteur RSS en quelques lignes de code.
  • Liquid Heart, un peu l’opposé du précédent, dans une application Java complète, utiliser Groovy juste pour coder certaines règles métier qui risquent de, ou qui vont souvent évoluer.
  • Keyhole Surgery, mettre en place une back-door temporairement dans une application pour y exécuter des scripts Groovy, par exemple pour faire un bug fix rapide facilement testable qui sera par la suite corrigé en Java.
  • Smart Configuration, c’est simple, il s’agit de remplacer le XML par du Groovy, l’avantage étant de pouvoir en plus ajouter de la logique dans les fichiers de configuration.
  • Unlimited Openess, consiste à tout faire en Groovy, c’est ce que propose Grails. L’idée est de s’appuyer uniquement sur l’infrastructure Java et de suivre l’exemple PHP ou Python.
  • House elf, déléguer à Groovy toutes les tâches qui font le quotidien du développeur mais qui ne sont pas du développement, par exemple des scripts de build, de l’intégation continue, du déploiement,…
  • Prototype, créer les prototypes en Groovy et les migrer (ou pas dans certains cas…) en Java par la suite. L’utilisation de Grails permet de créer des prototypes et de faire par exemple valider les objets du modèle de domaine au client très rapidement.

Puis Benjamin Bratkus (Crédit Suisse) et Micha Kiener (mimacom) présentent JSF et Ajax au Crédit Suisse. Le Crédit Suisse a standardisé sa technologie de présentation autour de JSF développant plus de 70 composants utilisé par 90 applications. Aujourd’hui pour répondre à de nouveaux besoins utilisateurs, des solutions ont dû être trouvées avec des technologies de type Ajax ou Ajax Push. La solution retenue est d’utiliser le système « direct-to-dom rendering » implémenté par ICEFaces. Ce système permet de limiter au maximum le JavaScript côté client et de conserver le maximum de traitement côté serveur ce qui sied particulièrement bien aux contraintes de sécurité liées au monde bancaire. Au final il a été possible d’intégrer cette technologie sans aucun impact sur les 70 composants existants, la migration s’est faite en une seule journée (!).

Cette seconde journée s’est terminée sur deux très bonnes présentations de Neal Ford et Ivar Jacobson, l’une traitant du futur du développeur, où plutôt d’essayer de le deviner pour ne pas devenir un dinosaure de l’informatique. Il semblerait bien que le développeur doive devenir polyglotte pour survivre, je crois que je vais commencer à pratiquer Groovy plus activement ! L’autre présentation nous expliquait la différence entre un développeur « unsmart » et un développeur « smart », avec entre autres l’exemple d’un architecte au chaud dans sa tour d’ivoire et un architecte pragmatique confronté à la réalité du projet et du code.

La troisième journée, Danny Coward de Sun, chef architecte de toute la partie cliente de Java (SE, ME, FX,…) nous présente les changements dans JavaFX 1.2 et les nouvelles fonctionnalités à venir dans Java SE 7. Voici son top 5 pour le JDK 1.7 :

  • Modularité, il sera possible de créer des modules et de définir des dépendances sur ces modules en spécifiant des versions. Cela devrait, tout le monde l’espère, normalement adresser la problématique des conflits de versions dans les dépendances de librairies. Peut-être la fin du cauchemar du classpath !
  • Langages multiples, le support de langages tiers (JRuby en priorité) sera amélioré et surtout optimisé.
  • Ajouts dans le langage (Project Coin), quelques nouveautés au niveau du langage lui-même comme le switch supportant les chaines de caractères ou une meilleure gestion des types génériques lors des instanciations (diamond).
  • Un nouvel API I/O qui propose par exemple des facilités d’accès au système de fichier, de la notification de changement ou des opérations asynchrones.
  • Un nouveau garbage collector, déjà disponible en RC dans JSE 6 Update 14, qui permet d’assurer des pauses de GC courtes et prédictibles.

Le top 5 pour JavaFX 1.2:

  • S’exécute sur plus de plateformes qu’auparavant, incluant Linux, OpenSolaris, un téléviseur LG et des téléphones portables de développement (HTC Diamond) dont les versions commerciales devraient arriver sous peu.
  • Plus de composants qui permettent maintenant de créer plus facilement des applications de gestion et des formulaires.
  • Des layouts qui permettent de positionner facilement ces nouveaux composants.
  • Des performances en hausse, jusqu’à 40%.
  • Plus de moyens d’accéder à des données, support des formats RSS, lecture asynchrone de données et un API de stockage local de données.

Il nous a fait plusieurs démos lors de sa session et il faut bien dire que JavaFX semble tranquillement, mais sûrement, rattraper son retard sur ses concurrents, espérons que l’outillage suivra !

Dan Bergh Johnsson (Omegapoint) nous expose The Power of Value – Domain Driven Design and Value Objects. Cette présentation, extrêmement bien animée par ailleurs, nous a montré à quel point l’utilisation de Value Objects intelligents (et on ne parle pas ici de DTO) peut diminuer la complexité du code métier, faciliter la gestion de la concurrence et améliorer la lisibilité des API des services et la testabilité. Avec l’exemple tout simple du numéro de téléphone qui doit respecter un certain pattern, il nous a montré comment refactorer une fonctionnalité end-to-end de la couche de présentation à la persistance et quels gains sont obtenus. Il est ensuite allé plus loin avec un refactoring plus poussé sur un exemple de p
aiement par carte de crédit mettant en œuvre des Value Object composite. Une présentation vraiment très intéressante et pleine de bonnes idées à retenir. D’autres informations sur le sujet sur le blog de Dan.

La présentation Metro Web Services Security Usage Scenarios par Harold Carr (Sun) nous décrit plusieurs moyens de sécuriser des Web Services. Metro propose plusieurs profils de sécurité qu’il est possible d’activer et de configurer depuis NetBeans. Sa présentation, bien que très technique, était remplie d’informations et de schémas qui m’ont permis de mieux appréhender les innombrables possibilités de sécurisation disponibles pour les WS. A conserver précieusement dans les ressources sur le sujet.

La dernière session était Jazoon Rookies, un concours organisé pour permettre à des « Java Rookies » de venir présenter, devant la communauté, un projet sur lequel ils ont travaillé. Je retiendrai surtout la présentation de João Arthur Brunet Monteiro, DesignWizard: A Tool that Gives Support to Automatically Check Your Code Against Design Rules. Cet outil permet de définir des règles de design à respecter et de les exécuter en tant que tests JUnit. On peut par exemple définir une règle qui contrôle que seules les classes du package service utilisent les classes du package dao et cela très simplement. Plus d’informations sur le site officiel DesignWizard.

La keynote d’ouverture du dernier jour est présentée par Adrian Colyer, CTO de SpringSource. Après avoir fait une rapide analogie entre l’industrie logiciels et une forêt tropicale (quelques géants qui dominent le paysage, la difficulté de percer pour ceux qui sont dessous et de temps en temps une clairière qui permet à des nouveaux de grandir), Adrian estime que l’on est à l’aube d’une nouvelle ère et que beaucoup de choses vont émerger ces prochaines années. Tout d’abord il parle de l’arrivée des nouveaux langages comme Groovy, Scala, Ruby, qui peuvent être vus comme des alternatives et/ou des compléments à Java. Ces langages montrent des forces selon deux axes, l’augmentation de productivité avec des outils comme Grails ou JRuby et la facilité de gérer la programmation concurrente, ce point sera particulièrement important ces prochaines années avec la multiplication des cœurs intégrés dans les processeurs. Il retient particulièrement Groovy de par sa facilité d’intégration avec Java, ce qui parait logique dans la mesure où SpringSource emploie maintenant les principaux contributeurs de Groovy. Ce qui est certain, c’est qu’aujourd’hui plus que jamais un développeur doit être ouvert à plusieurs langages et utiliser le meilleurs disponible en fonction de la problématique à adresser.

Dans la présentation What’s New and Exciting in JPA 2.0 de Mike Keith (Oracle) porte sur les principales nouveautés de JPA 2.0 qui sort bientôt (en septembre avec l’arrivée de JEE 6). Il insiste sur le fait que la version 1.0 répondait à la majorité des attentes qu’ont généralement les développeurs avec les outils d’ORM. Cette version 2.0 va répondre à certains cas d’utilisations plus spécifiques, elle a été construite sur les nombreux retours de la communauté. Voici les principales fonctionnalités :

  • Plus de propriétés communes pour configurer les entity managers
  • Une plus grande flexibilité pour le mapping de Map et de List
  • De nouvelles capacités pour les objets Embeddable avec la possibilité de créer des compositions
  • La possibilité de mélanger les modes d’accès aux champs d’une classe
  • De nouveaux API, notamment pour la gestion d’un cache partagé
  • Un système de lock pessimiste
  • Et finalement le nouvel API Criteria qui permet de construire des requêtes en Java à la place d’utiliser le query language. Cet API fonctionne soit d’une manière très proche de celui d’Hibernate avec des chaines de caractères pour définir les critères, soit avec un système fortement typé qui permet d’assurer un contrôle de type complet à la compilation. Si ce système offre un contrôle plus élevé, il nécessite d’écrire ou de générer un meta-modèle des entités et le code écrit pour définir une query et beaucoup moins lisible qu’une requête JP QL.

Dalibor Topic (Sun) nous présente le projet OpenJDK, notamment les buts déjà atteints comme la disponibilité de portages OpenJDK 6 sur plusieurs distributions Linux (Fedora, RHEL, Debian,…). Des portages sont également en cours pour BSD. Il faut savoir que le projet OpenJDK est l’endroit où se construit le JDK 7, toutes les nouvelles fonctionnalités de la prochaine version majeure de Java sont développées ici en tant que sous-projets. Plusieurs Milestones du JDK 7 sont déjà disponibles et ils ciblent le premier trimestre 2010 pour la version finale.

Pour clore ces 4 jours, les organisateurs ont invité Linda Cureton, CIO de la NASA, elle nous a présenté Web 2.0 @ NASA, session durant laquelle elle a insisté sur l’importance des réseaux sociaux pour une agence comme la NASA. Il est intéressant de noter qu’ils ont mis en place un Spacebook interne dont le but est de faciliter la communication et le partage de l’information au sein de l’agence. Et ce Spacebook a été développé sur la base de Liferay, portail open-source Java.
Jazoon’09 était une conférence riche en informations que je recommande chaudement à toutes les personnes qui travaillent quotidiennement avec cette technologie. L’édition 2010 est déjà annoncée par Christian Frei. Pour ceux qui aimeraient plus de détails, il faut savoir que toutes les slides des présentations sont disponibles en téléchargement sur le site officiel, de plus certains enregistrements vidéo sont disponibles sur parleys.com.
A l’année prochaine !

Article par Frédéric Chopard

JavaOne 2008 : le constat du médecin légiste

Une fois que la poussière est retombée, que restera-t’il de JavaOne 2008 ?

Premier constat : c’est une première pour moi, mais on sent poindre chez les multi-récidivistes un sentiment classique, le "c’était bien, mais par rapport à il y a 5 ans". De la même façon que que cette année, aux Eurockéennes de Belfort, on entendra "c’était bien, mais par rapport à il y a 10 ans". Or il y a 10 ans, j’y étais, et malgré Portishead, Prodigy et Louise Attaque, j’entendais déjà ce refrain …

Ce qui est sûr, c’est que nous sommes entrés dans une phase où le langage Java comme sa plate-forme sont solidement implantés dans les entreprises, et ne sont plus dans une phase de conquête pure. De reconquête tout de même si l’on pense à JSF 2 et aux EJB 3.1 (voire de rédemption dans ce dernier cas), mais surtout de consolidation, de facilité d’utilisation et d’interopérabilité : à ce titre, les focus sur les projet Web Services Metro et Jersey ont montré que les projets avaient maintenant pris en compte ces aspects comptant pour l’accélération des développements (IDE) et leur intégration (REST ou WS-*) dans un environnement hétérogène. L’utilisation des WS avec Silverlight n’a pas été convaincante, mais on imagine très bien une utilisation avec un frontal RIA de type Flex, ou autre.

JavaFX qui a largement eu droit à sa place sous les projecteurs. Il faut bien avouer que voir une sphere composée de dizaines de video en lecture a de quoi impressionner, tout comme l’intégration propre entre le navigateur et le système d’exploitation (le glisser/déposer d’une applet JavaFX du navigateur vers le bureau). Le seul vrai problème n’est pas technique, c’est que lorsque Java 6u10 arrivera et que les IDE intègreront JFX (en pensant aux graphistes et concepteurs multimedia), Flex et Silverlight 2 seront là depuis longtemps.

Et pour les serveurs d’application ? L’annonce T-Shirt de SpringSource Application Platform a certes marqué les esprit, nous y reviendrons bientôt, mais ce ne sont ni l’open beta de WAS 7 ni JBoss 5 qui m’ont le plus impressionné : c’est GlassFish, de plus en plus présentable en v3. Il est modulable, rapide, OSGi, embarquable et donc utilisable en test unitaire, mais il souffre encore d’un déficit d’image comparable à NetBeans  : ils font tous les deux au moins autant et au moins aussi bien que les autres, mais la force de l’habitude fait que l’on reste dans des schémas classiques. C’est en train de changer, mais à quel rythme ?

Au final, on peut dire que JavaOne 2008 a montré que Java n’est pas mort, et que sa plate-forme devient attirante pour d’autre langages : c’est le pari que fait Sun en attirant Ruby et PHP dans son éditeur et sa JVM pour se consolider globalement. Stratégie gagnante ? Réponse dans un an.

Virus, Web Services et multi coeur

Cette dernière journée a été marquée par une perturbation originale : une épidémie de méga gastro, qui semble d’ailleurs avoir touché Antonio du Paris JUG et a vu un présentateur s’évanouir et être évacué ! Sinon, la session générale de James Gosling a permis de passer en revue un certain nombre de projets ou produits :

  • VisualVM, qui s’avère très efficace pour le monitoring de JVM mais aussi de serveur d’application (avec évidemment comme premier plugin Glassfish)
  • Le support complet du JavaScript dans Netbeans : autocompletion, validation syaxique, débugging dans Firefox (avec breakpoints etc.) et contrôle de la qualité du code (pas de return inconsistants, avec un exemple sur Prototype…)
  • Les jeux : à la fois dans l’interface graphique, et le support de la puce NVidia APX 2500 pour téléphone, et le projet Darkstar pour créer une infrastructure de serveurs destinés au jeux massivement parallèles (pour être le JavaEE du jeu !)
  • Un drole de stylo qui reconnaît et stocke ce que vous écrivez
  • Les java cards, maintenant en V3 et permettant de coder de la logique (avec un jeu de bataille de robots pour illustration)
  • Sentilla, une société qui commercialise des petits boitiers sur lesquels connecter des capteurs (démo sympa de ballons équipés jetés dans le public, et suivis en temps réel)
  • Java temps réel et industriel, avec entre autre une voiture robotisée autonome pour le Darpa Urban Challenge, et un automate industriel embarqué
  • Java comme moyen d’aider la recherche sur Mars et au CERN de Genêve.

Bref, une liste plus ou moins intéressante, mais qui montre l’étendue des applications de Java.

Après une autre session assez claire des mécanismes "classiques" de web services en Java, complétée d’une revue plus complète des possibilité de Metro (encore, je sais c’est une obsession), j’ai assisté à la démonstration des outils de développement de JBoss, et notamment elui destiné à son ESB couplé à jBPM. Intéressant, mais moins que la dernière session consacrée aux problématiques non encore résolues du massivement multi coeur pour Java : au delà de l’utilisation pour les tâches de GC, en hardware notamment avec Azul, quels sont les démarches à inventer pour le massivement transactionnel concurrent ? La démarche Software Transactional Memory, vendu comme l’équivalent pour les locks du GC pour la mémoire, ne semble pas se concrétiser

A suivre l’année prochaine…

L'identité 3ème pilier de SOA, JSF 2, Silverlight

La gestion de l’identité au sens large dans un contexte SOA est le sujet de la session co-animée par Sun et Layer7, qui vend du matériel destiné à accélérer les couches de Web Services concernées. Après une série d’exemples destinés à assimiler l’intégration des identités comme le talon d’Achille actuel des solutions SOA d’intégration de service, on est entré dans le vif du sujet et la mise en œuvre progressive des différentes couches. Et là, heureusement que Metro aide pour faire ça ! Passer à la sécurité appliquée au niveau de chaque message se fait presque simplement, l’utilisation de SAML (1.1, pas 2…) aussi. Maintenant reste un problème de taille : la multiplication du many to many. Pour faire simplement, on va dire qu’on se retrouve avec plusieurs types de fournisseurs de tokens d’identification, et au moins autant de dispositifs destinés à leur validation, et autant de code à reprendre si un des schéma d’authentification change. La solution selon Layer7 c’est justement d’externaliser dans un policy enforcement point ce travail de plomberie, chaque application n’ayant plus qu’une seule relation de confiance à avoir. Si le trait est un peu forcé, cette possibilité est à considérer dans un contexte très hétérogène et mouvant.

La session suivante, présentée par Ed Burns et Roger Kitain, était consacrée à JSF 2. Le but avoué de la présentation était d’inspirer confiance et de faire passer le message suivant : on a compris, à force, que JSF n’était pas (au début) très simple à utiliser, mais tout s’améliore. Cela passe par l’outillage dans tous les IDE pour créer visuellement les pages, l’alignement avec portlet 2, le fix en 1.2 des jsp avec l’alignement des EL, et surtout par l’intégration pure et simple de facelets pour la version 2. L’accent est aussi mis sur l’aide à la compatibilité entre les différents fournisseurs de composants, notamment en standardisant un peu l’utilisation d’AJAX. J’ai en tête une expérience un peu difficile de cohabitation entre IceFaces et un composant Ilog, je ne peux qu’applaudir cette prise de conscience !

Enfin, pour m’amuser un peu, j’ai voulu assister à une démonstration de l’intégration de MS Silverlight comme couche de présentation sur un backend JEE. Vous savez, Silverlight, le truc un peu sexy avec XAML comme langage de description, etc. Alors soit j’ai raté quelque chose, soit la magie n’a pas franchement opéré : l’intégration la plus aboutie s’est résumée à utiliser un service REST, et Visual Studio a planté en plein milieu de la demo. Celle-ci nous offrait une interface franchement moche, et au final, pour montrer que le runtime CLR .NET était plus efficace que le rendu JavaScript… ce dernier n’a jamais démarré.

Scalability et sécurité

Cameron Purdy nous a fait une présentation enlevée, ponctué de bons mots pour faire passer 10 principes à prendre en compte pour bien faire monter en charge une application Java. Certes, le principe n°0 est justement de ne pas appliquer les autres religieusement, mais cette liste frappée au coin du bon sens rappelle certains points importants : le partitionnement, la coordination, la prédictibilité de la latence de l’application, le fait que ce soit les applications avec état qui posent problème, mais aussi l’importance de prévoir dès le départ ce qui se passe en en surcharge (car elle va arriver…) et ce qu’il faudra faire après une panne (car elle va aussi arriver…). Rien de révolutionnaire, mais un petit rafraîchissement bienvenu.

Rien de révolutionnaire non plus dans la conférence suivante, et pourtant la queue de 1100 personnes pour y accéder s’étalait jusque sur le trottoir !

Le sujet était il est vrai attirant : Advanced Web Application Security. On a parlé des techniques en vogue (cross site request forgery, XSS, JavaScript Hijacking…) et les demos sur un twitter-like ont fait leur petit effet. Enfin, quelques recommandations ont été présentées : utiliser le servlet Filter OWASP et faire un double submit du cookie de session, faire son JSON propre, et éviter de se reposer sur la souplesse de certains navigateur…

REST, l'interopérabilité avec MS et SCA

Amusant : la gestion des files d’attente pour accéder aux conférences pourrait facilement trouver une analogie en JMS…

Tout d’abord, une intéressante présentation de la norme JSR 311, en public review, qui va permettre grâce à JAX-RS d’exposer et de consommer des services Java sous forme de web services REST, alternative légère à SOAP. Et une mise en oeuvre assez rapide :

  1. J’utilise JPA pour créer des classes entité pour accéder à la base de données
  2. J’utilise JAXB pour créer des représentation XML de mes objets, en combinaison avec Jersey (la RI de JAX-RS) pour leur transpostion en JSON
  3. Je consomme avec n’importe quel client (Java, runtime dans le navigateur en Javascript…)

Bien évidemment, NetBeans aide à tout cela, et notamment en intégrant Jersey. Au final une bonne raison de ne pas désespérer et de continuer à utliliser Java en backend.

Une transition en douceur avec des web services toujours, mais cette fois complets, pur SOAP avec tous les problèmes concentrés : l’interopérabilité entr java et .net.

Pour cela, Harold Carr, Lead Architect Sun du projet Metro (qui regroupe dans une librairie haut niveau tout ce qu’il faut pour WS-*) et Kevin Wittkopf, Senior Solutions Architect, Microsoft, venu avec WCF,se sont amusés à faire communiquer les deux mondes avec l’intégralité des couches de sécurité : création d’un token SAML, transmission, STS, WS-Security, WS-Trust, WS-Transfer/WS-Metadata Exchange… Il manquait juste WS-AtomicTransactions, WS-Coordination et WS-SecureConversation et le paquet était complet ! Le plus impressionnant, c’est que ça marche. Les deux framework sont capables de bien cacher toute cette complexité, et c’est tant mieux ! Question subsidiaire : avez-vous un jour regardé le trafic généré avec un WireSharck par exemple ? Amusez-vous, c’est impressionnant.

Enfin, le débat organisé par David Chappell sur SCA avec un panel quasiment exclusivement composé de vendeurs a permis d’identifier un certain nombre de points qui posent problème ou sont des freins :

  • pour créer un composite utilisant plusieurs technologies par exemple, il faut prendre tout chez le même vendeur…
  • JBI : en fait c’est plus bas dans l’infrastructure
  • Mais ça sert à qui ? Un seul utilisateur, de CapGemini UK, qui voit plus un avantage sur l’amélioration des structuration des équipes de développement.

Malgré tout le talent d’animateur de David Chappell, il semble tout de même que SCA soit de plus en plus perçu comme un mécanisme interne à des fournisseurs de solutions comme IBM ou BEA.

TerraCotta, JPA et virtualisation

Ari Zilka, de Terracotta, a choisi d’insister sur le fait qu’une application utilisant les mécanismes de Network Attach Memory engendre les mêmes difficultés qu’une application à développer en multi-threadé. Pour cela, il s’est servi du plugin eclipse de visualisation de comportement d’un cluster Terracotta, qui permet de facilement identifier les baisses de capacité de traitement associées à l’apparition de plusieurs JVM attaquant le même contenu mémoire. Très visuel, et qui a le mérite de nous forcer à repenser la structure de nos traitements.

La session suivante a vu un présentateur Sun et un présentateur Oracle parler d’un projet… Eclipse : la nouvelle version de l’implémentation JPA TopLink, à savoir EclipseLink. Cette version sera complète et open source, en contenant tout ce qu’il y avait dans Toplink et pas seulement la partie JPA. Elle sera embarquée dans le serveur d’application Glassfish V3. Après un rappel des principes de JPA, on a passé en revue un certain nombre de spécificités TopLink : principalement orientées optimisation, comme le weaving, optimisation optionnelle du bytecode en fonction d’un certains nombres de paramètres, ou la gestion avancée du cache et de tout ce qui peut éviter les problèmes de n+1. Enfin, un annonce qui fera plaisir à certains, l’introduction d’un lock pessimiste, le tout pour juillet 2008. Bon, ça c’était en gros du Oracle, mais que venait faire le Sun guy là dedans ? Et bien il venait justement nous rassurer ("c’est Eclipse, mais on travaille tous ensemble, etc.") et surtout nous parler de l’intégration dans NetBeans 6.1. Il faut avouer que c’est bien abouti, avec des assistants intelligents, de la config automatique en fonction du serveur d’application, et l’import à partir de la base de données pour donner des classes entités directes. Pour ceux qui ont un peu fait l’impasse sur NetBeans depuis un petit bout de temps ("chez nous on a que du Eclipse/RAD", "c’est du Swing donc ça rame", etc.), je vous invite à profiter de la sortie en début de semaine de la version 6.1 pour ré-évaluer cet IDE, qui peut vous surprendre : ça tourne bien, je peux créer mes JSF facilement, JPA est d’office, et en bonus j’ai UML et BPEL.

Pour finir, une session AMD sur les impacts méconnus de la virtualisation (avec hyperviseur et VMWare ESX) sur nos JVM de serveurs d’application : en effet, en dehors de l’estimation classique d’overhead de 10%, il y a des zone moins faciles au premier abord. En effet, il faut savoir qu’au delà de 986 Mo alloués pour un Linux, la façon de gérer la mémoire de la VM par l’hyperviseur change et peu avoir un impact fort. Bien sur, les I/O disques et réseaux sont à prendre en compte, en déportant sur le SAN pour les premiers et en allouant une carte physique séparée pour chaque VM. Sans oublier l’influence du paramétrage du GC pour qu’il prenne en compte correctement les différents CPU. Rien que des recommandations de bon sens, mais que l’on peut parfois oublier. AMD offre bien sur des techniques pour aider notamment au paging mémoire.


Mises à jour Twitter

Entrer votre adresse e-mail pour vous inscrire a ce blog et recevoir les notifications des nouveaux articles par e-mail.

Rejoignez 29 autres abonnés

Catégories

Statistiques

  • 64,072 hits