1. Présentation

1.1. Généralités

La conférence JAX en est à sa dixième édition (en comptant la WJAX à München) et représente un événement incontournable outre-Rhin dans le monde Java.
Preuve de son succès, l'existence du JAX Magazine qui satisfait la soif de connaissance des visiteurs qui trouvent le temps trop long entre 2 éditions de la conférence.

La conférence EAKon est plus jeune et se déroulait auparavant en automne. Elle a rejoint le JAX cette année, vraisemblablement pour offrir aux visiteurs un choix plus vaste de sessions.
L'EAKon traite des problématiques d'architecture mais également du management et de la gestion de projets informatiques d'entreprise.

Enfin, la nouvelle venue, la conférence Eclipse Forum Europe, se déroule également en parallèle et traite de tout ce qui touche à l'Environnement de Développement du monde Java.

Tout ce petit monde agrémente donc les journées (et les nuits ...) des chefs de projet, ingénieurs, développeurs, décideurs qui profitent de Keynotes, Workshops, Sessions et BOF (Birds-of-a-Feather-Sessions).
Au bas mot, et pour donner quelques chiffres, il ne s'agit ni plus ni moins de 146 sessions/BOF, 9 keynotes, 13 workshops d'une journée ou demi-journée, Spring Day, Management Day, 5 déjeuners, 2 diners, des cadeaux, des surprises, ... sans oublier les 162 speakers ainsi que les 55 exposants et sponsors.

1.2. Le site des conférences

Wiesbaden s'étend sur une superficie de 204 km2 pour environ 250 000 habitants. Cette ville semble prédestinée pour accueillir ces conférences puisque pas moins de 46 entreprises informatiques (au sens Softwarefirm) y sont implantées.
Pour la petite histoire, le livret Agenda des conférences nous apprend que le célèbre joueur de tennis John McEnroe a vu le jour dans cette charmante ville réputée pour ses thermes.

Les conférences ont eu lieu dans le centre de la ville, aux Rhein-Main-Hallen.

Image non disponible
Image non disponible

Les conférences ont eu lieu dans le centre de la ville, aux Rhein-Main-Hallen.
Rien de spectaculaire comme locaux, mais les organisateurs ont su apporter la touche nécessaire à rendre le lieu convivial et attrayant. Jugez par vous même :

Jugez par vous même
  • Des salles pour certaines équipées en multiprises et disposant de tables, favorisant les travaux pratiques notamment dans le cadre de workshops
  • Un bar, certes payant, vous proposant toute sorte de nourriture pour les petites soifs et les petites faims
  • Un réseau WIFI (W-LAN) couvrant les lieux et permettant aux participants équipés d'un portable de se connecter à la grande toile
  • Des PCs mis à disposition de ceux qui n'ont pas le privilège de disposer d'un portable et qui peuvent vaquer à leurs occupations/obligations entre les sessions
  • Des espaces de détente (JAX Lounge, Eclipse Lounge) où les participants peuvent se détendre dans des sièges confortables, jouer au babyfoot, se faire masser, ...
  • Les repas de midi pris en charge, ainsi que ceux du soir lors de journées à rallonge, sans oublier les collations à chaque pause.
Image non disponible
Aire de détente
Image non disponible
Un peu de sport
Image non disponible
Quelques massages pour se détendre

Les locaux sont donc occupés sur 2 étages, ce qui représente 12 salles de taille variable pour les différentes sessions, ainsi que l'espace nécessaire aux exposants, à la restauration, etc...

Image non disponible
Image non disponible

1.3. Divers

Le regroupement des 3 conférences n'a pas pour effet de restreindre les participants à l'une ou l'autre des conférences. La souscription à l'une des conférences entraine automatiquement l'accès aux autres !
Diverses formules cumulables ont été proposées dont la réservation anticipée, les réductions de groupe pour les entreprises. La semaine a été décomposée en 3 : les Workshops du lundi, les conférences de mardi à jeudi (tarifs pour 2 ou 3 jours), et les Workshops de vendredi.

Découpage Réservation anticipée (+ groupe) Réservation anticipée Standard (+ groupe) Standard
Workshops du lundi 319 € 349 € 359 € 399 €
Conférences sur 3 jours 859 € 949 € 949 € 1049 €
Conférences sur 2 jours au choix du mardi au jeudi 629 € 699 € 719 € 799 €
Workshops du vendredi 319 € 349 € 359 € 399 €

Histoire d'avoir une idée de ce que la semaine complète peut coûter :

Réservation anticipée (+ groupe) Réservation anticipée Standard (+ groupe) Standard
1497 € 1647 € 1667 € 1847 €

Les tarifs peuvent paraître excessifs (surtout s'il faut compter un déplacement/hébergement qui pour ma part m'aura coûté un peu moins de 400 euros), mais les participants en ont vraiment pour leur argent.
Un somptueux sac à dos à l'effigie des 3 conférences, un stylo "Eclipse Forum Europe", un joli badge nominatif à attacher autour du cou à l'aide d'un bandeau à l'effigie de l'EAKon. Enfin un agenda complet ainsi qu'un bloc pour la prise de notes.
Mais ce n'est pas tout, dans le sac à dos on trouve également un exemplaire du Java Magazin édité par Software&Support Verlag, un autre exemplaire de Eclipse Magazin également édité par S&S Verlag, sans oublier un CD de Netbeans 5.0 !
Quelques surprises également lors de la session de clôture : plusieurs lots ont été attribués par tirage au sort (cela allait d'un simple livre à une entrée pour JAX20007, en passant par des licences logicielles, sans oublier un iPod Nano.

Image non disponible
Les cadeaux

De quoi regretter de ne pas avoir suivi ces événements, tous les participants deviennent automatiquement membres pendant 1 an du JAX Club. Les privilèges liés à cette appartenance sont les suivants :

au choix
  • 10% de réduction pour une participation aux W-JAX 2006
  • 10% de réduction pour une participation au Forum Eclipse Europe 2007
  • 1 an d'abonnement à l'un de ses magazines publiés par S&S Verlag

2. Le programme

2.1. Les thèmes

Une première décomposition pourrait être faite selon les conférences. Ceci-dit, un découpage plus fin permet aux participants d'apprécier le contenu d'une session.

Code Descriptif
E Java Enterprise
WA Java Web Apps
WS Java Web Services
EC Eclipse (JAX)
PAF Patterns, Architectures, Frameworks
MDD Model Driven Development
TO Testing, Optimization
JD Java Desktop
JB Java Basics
W Web 2.0
X XML
OS Open Source
BOF Birds-of-a-Feather
SAR Software Architecture
SOA SOA
TPM Teams, Process, Methods
ALM Application Lifecycle Management
BI Business Integration
MDA Model Driven Architecture
ES Enterprise Security
DM Data Management
OM IT Operations + Management
EC Eclipse Core
RCP Eclipse RCP
DEV Eclipse Development
KNH Eclipse Know-how
PRP Eclipse Project Parade

Enfin, chaque session se voit affecter d'un niveau sur une échelle de 3.

2.2. Le caractère européen/international des conférences

La couleur était clairement annoncée pour les sessions du Forum Eclipse Europe : l'anglais est de rigueur.
Même les conférenciers allemands ont joué le jeu et se sont forcés à faire leur présentation en anglais.

En dehors des conférences du Forum Eclipse Europe, selon la nationalité du conférencier (nous y reviendrons plus loin), la session/keynote se déroulait en anglais et pouvait donc permettre à un public non germanophone de profiter des conférences (je pense là aux membres espagnols, suédois, français, (...), des différents projets nominés pour les JAX Award.
Certaines sessions avaient également cela de particulier que le support était rédigé en anglais, mais le propos était en allemand (avec ou sans accent).

Tout cela prouve la volonté d'élargir l'événement à toute l'Europe et de ne pas se restreindre à l'Allemagne.
Mais il suffit de donner une liste non exhaustive des personnalités présentes pour animer une keynote / session.

Attention les yeux
  • Daniel Adelhardt : Sun Java Ambassador
  • Adam Bien : consultant, directeur technique de BEA, membre des JCP
  • Ralph Müller : représentant européen de l'Eclipse Foundation, ancien architecte IBM
  • Eberhard Wolff : rédacteur pour de nombreux journaux, auteur de nombreux ouvrages, speaker lors de plusieurs conférences (dont JAOO), Java Champion, consultant chez Interface21 sur les systèmes répartis, les applications d'entreprise et Spring
  • Mike Milinkovich : directeur exécutif de la Fondation Eclipse, ancien d'Oracle
  • Craig R. McClanahan : Senior Staff Engineer chez Sun, inspirateur de Struts et de JSF
  • Rod Johnson : grand inspirateur du framework Spring, expert reconnu de la plateforme Java EE, auteur, consultant, speaker, participe au JCP, Java Champion
  • Ivo Totev : Vice President crossvision Product Marketing chez Software AG, ancien de SAP, ancien technology evangelist chez Sun
  • Doug Clarke : Principal Product Manager - Oracle Toplink, ancien consultant sur les problématiques de mapping O/R en environnement J2EE, speaker et membre actif sur la toile
  • Jason Weathersby : BIRT evangelist, membre du comité de management du projet BIRT, auteur de "Integrating and Extending BIRT", spécialiste en Business Intelligence
  • ...

2.3. Les conférenciers / animateurs

Les conférenciers sont tous des professionels connus et reconnus, pour une grande partie à l'échelle internationale, habitués pour certains du JAX.
On y trouve un panel assez varié : cadres dirigeants de grandes multinationales, acteurs majeurs de la communauté (JCP, Eclipse, Spring, Apache, ...), consultants, universitaires, indépendants, ...

2.4. Les sponsors, partenaires et exposants

La médiatisation du JAX est en partie le résultat de partenariats avec des grands éditeurs tels que IBM, CA, Microsoft, Oracle, SAP, Software AG, Sun Microsystems, ...
mais également au travail de Software&Support Verlag pour communiquer autour des événements (magazines,ObjectWeb, annonces par des sites partenaires comme Developpez.com).

On retrouve les sponsors et partenaires parmi les exposants, mais également d'autres sociétés allemandes / européennes présentant leurs produits / services.
Nous pouvons notamment citer (le programme était tellement chargé que les photos ont parfois été prises à des heures extrêmes ;-) ) :

2.4.1. IBM

Ibm
Très bien placé, IBM soigne son image de marque.

2.4.2. SUN

Image non disponible
La cible de Sun était le partenariat : Sun Partner Advantage Program.

2.4.3. Oracle

Image non disponible
Au programme, Oracle Database 10g Express Edition DVD, SOA Starter Kit, promotion de Toplink, ...

2.4.4. Microsoft

Image non disponible
Microsoft était mine de rien Gold Sponsor et sa présence m'a semblé plutôt liée à l'EAKon.

2.4.5. Compuware

Image non disponible
OptimalJ : son atelier de dévelopement logiciel MDA compatible avec UML.

2.4.6. Interface21

Image non disponible
Société poussant l'initiative Spring et dispensant formations et consulting autour de ce framework ainsi que Java EE.

2.4.7. Mathema

Image non disponible
Spécialiste allemand dans le domaine des systèmes orientés objets et systèmes répartis (Java SE, Java EE, Corba, .Net).

2.4.8. Et j'en oublie ...

Je m'excuse auprès des stands que je n'ai pas (pu) photographié (par manque de temps ou éléments perturbateurs), voici les quelques stands qui ont retenu mon attention :

  • Wily Technology (CA) : leader sur le marché des applications de management d'entreprise (Introscope)
  • xcentric GmbH : société suisse qui édite JAXFront, un générateur de GUI reposant sur XML
  • Sofware AG pour la démarche SOA et CentraSite
  • Quest Software GmbH mettait en avant sa solution d'Application-Performance-Management avec une démo
  • SAP pour présenter NetWeaver
  • Perforce Software pour sa solution de gestion de configuration
  • ILOG , du classique (JRules, composants graphiques pour Eclipse, JSF)
  • Realobjects pour PDFreactor qui est un moteur de génération de PDF reposant sur XML/XSLT, HTML et CSS

2.4.9. ainsi que la presse

On trouvait les stands de l'organisateur (entwickler.press), O'Reilly (qui faisait la promotion de la seconde édition de l'EuroOSCON qui se déroulera du 18 au 21 septembre à Bruxelles), Pearson Education.

Image non disponible

2.5. Les JAX Innovation Award

Les JAX Innovation Award (1ère édition) avaient pour but de promouvoir l'innovation en Europe et de récompenser les projets faisant preuve d'innovation, de créativité, d'élégance, et porteurs.
L'ensemble des dotations représente la somme de 20 000 euros (dont 10 000 euros pour le vainqueur).

Image non disponible

Les projets retenus étaient les suivants (parmi 48 soumissions) :

Projets retenus
Image non disponible

Le jury était composé des personnes suivantes :

Jury
  • Daniel Adelhardt (Sun Java Ambassador, Speaker JAX)
  • Adam Bien (IT-Consultant, Java Magazin-Autor, Speaker JAX)
  • Erich Gamma (IBM Distinguished Engineer, Eclipse Java Development Tools Project Lead)
  • Sebastian Meyen (Chefredakteur Java Magazin, Program Chair JAX)
  • Bola Rotibi (Analyste chez Ovum)
Verdict
Image non disponible
Un des représentants de la société française Jayasoft (World Of Java)

Le prix du public (vote à main levée) a récompensé l'initiative Bioclipse - an open source visual platform for chemo- and bioinformatics.

2.6. Le JAX Jogging

Il y a des traditions qui perdurent et qui réunissent les gens. On a donc pu voir un regroupement de t-shirts noirs mardi et mercredi en fin d'après-midi parcourant les rues de Wiesbaden.

Image non disponible
Point de rencontre avant le départ.

2.7. JAX Party

Lorsque la bière coule à flot et que les speakers se transforment en DJ !

Image non disponible Image non disponible

3. Les sessions

Le programme était très chargé et le choix des sessions parfois cornélien. Il y a eu l'une ou l'autre défection pour cause de maladie, mais dans l'ensemble (du moins pour les sessions que j'ai suivies) je suis rarement sorti déçu.
Si j'avais à établir un top 3 ainsi qu'un flop 3 (bien qu'il soit difficile de parler de flop) des sessions (hors keynote et workshops) que j'ai suivies, voici ce que j'y mettrais :

TOP 3
  • BIRT
  • Best Practices for Apache Cocoon
  • Construction d'un framework autour d'Eclipse RCP mettant en place la stratégie orientée service
FLOP 3
  • Web Tools 1.5
  • Tests unitaires avec FIT et FitNesse
  • SSO Java avec Kerberos

Voici donc les keynotes/sessions/workshops auxquels j'ai pris part :

3.1. Lundi 8 mai

Première journée organisée autour de Workshops, du Spring Day et du Management Day.

3.1.1. Workshop Hibernate 3 et la persistence avec Java

Les workshop ont cela d'intéressant que les animateurs font leur possible pour favoriser la mise en pratique.
Comme les organisateurs ont tout prévu (multiprises en masse dans chaque rangée, tables), ce workshop sur Hibernate 3 n'a pas échappé à la règle et a vraiment été très plaisant à suivre.

Au programme
  • Fichier de configuration, utilisation dans le code, configuration des stratégies d'obtention des identifiants
  • Gestion des relations entre objets
  • Problématique d'héritage
  • HQL
  • API Criteria
  • La session
Présentation de la gestion des relations

Chaque thème a donné lieu à un petit TP basé sur les projets Eclipse que les animateurs avaient préparés !

Image non disponible
Exercices terminés ou pas

Après avoir sondé l'assistance sur les thèmes que nous souhaitions approndir, les animateurs (ils étaient au nombre de 3) ont chacun traité l'un ou l'autre des sujets parmi les suivants :

Sujets approfondis
  • Les proxy et le lazy loading
  • Les bonnes pratiques en architecture Client/Serveur
  • La problématique de mapping de types utilisateurs
Image non disponible
Vote à main levée pour les sujets préférés

Seul reproche qu'on pourrait faire, ne pas avoir abordé l'aspect annotations, mais ce n'est pas forcement très gênant dans la mesure où l'utilisation d'un fichier xml est compatible avec JPA.

J'ai vraiment été impressionné par la qualité de la présentation et notamment des interventions d'Arno Haase qui déborde de passion et de dynamisme.

3.1.2. Managing Complex Enterprise Environments (Keynote)

Le but de cette première Keynote était de présenter, dans le cadre du Management Day, à travers les solutions proposées par Wiley Technology, une stratégie de gestion d'un système d'information complexe.
La démarche et les outils présentés se focalisent sur la surveillance de l'ensemble du SI. A l'aide d'un tableau de bord temps réel, il est possible de détecter très rapidement les interfaces rencontrant des problèmes, mais aussi l'utilisateur ou le partenaire lambda qui semble rencontrer un problème et anticiper.

Image non disponible
Le tableau de bord de l'Introscope.

Très intéressante comme présentation, quoiqu'un peu trop orienté management.

3.1.3. Fin du Spring Day

Ayant du choisir entre plusieurs Workshop, et étant donné que le Spring Day finissait plus tard, j'en ai profité pour passer voir ce qui s'y disait.

Image non disponible

J'ai pu prendre la présentation de Christian Dupuis sur le cas pratique d'un changement d'architecture J2EE vers une architecture légère reposant sur Spring, puis à un ensemble de questions/réponses que j'ai malheureusement eu du mal à suivre étant donné que je n'avais pas suivi les sessions précédentes.
Mais le rendez-vous avec Spring n'était que partie remise !

3.2. Mardi 9 mai

Le véritable lancement des conférences !

3.2.1. Session d'accueil

Image non disponible
La Halle 1, lieu des différentes Keynotes

Sebastian Meyen, JAX Program Chairman, nous a chaleureusement accueilli et présenté les différents thèmes abordés par les conférences (jusqu'à 12 sessions en parallèle) en insistant sur Spring, SOA qui doit être vu comme un concept d'architecture et non rattaché à l'orienté objet, le Web 2.0 qui est finalement un joli coup marketing et une formidable opportunité de faire de l'argent, l'actualité de l'open source avec les différents rachats, ...

Image non disponible
Présentation des chiffres par Sebastian Meyen.

Côté IDE, Sebastian s'est tenté à sonder l'assistance et Eclipse a sans surprise remporté l'unanimité.
Par contre, il a avoué être agréablement surpris du nombre élevé de participants utilisant Netbeans.
Enfin, cela a également été l'occasion de constater la chute inexorable de JBuilder (très peu de mains levées).

3.2.2. Buy AND build ... (Keynote)

... A strategy for building applications that spans both packaged applications and custom development.

Christopher Hearn de chez SAP a traité de la problématique des 2 courants actuels que sont l'achat de solutions clés en main et le développement de solutions spécifiques.
Selon lui, dans un métier comme le notre qui nécessite de bonnes capacités intellectuelles et dans un contexte de réduction des coûts et d'externalisation, il est important de rassembler ces 2 mondes afin de tirer le meileur parti d'un tel compromis.

Image non disponible
Petit effet sur grand écran

Il a fait le rapprochement avec le modèle de travail chez SAP qui doit également faire face à cette problématique, et j'ai relevé quelques citations intéressantes : "Plumbing is not enough.", "SOA is essential for flexibility, but not enough.".
Tout ca bien entendu pour mettre en avant le produit SAP NetWeaver qui se positionne comme une Business Process Platform, ainsi que SAP Netweaver Visual Composer.

En conclusion, il a insisté sur la nécessité de revenir à des valeurs de qualité et de créativité dans le travail quotidien des responsables informatiques qui bien trop souvent de nos jours se focalisent sur la réduction des coûts et se contentent de l'existant.

Image non disponible

Petite anecdote, Christopher a rencontré sa femme dans la région ;-)

3.2.3. Java EE : toutes les nouveautés (E, WA, WS, PAF, JB)

Image non disponible

Daniel Adelhardt a commencé son intervention par un constat important : le temps nécessaire à construire/spécifier les plateformes (Java SE, Java EE, ...) augmente constamment. C'est un vrai problème pour l'avenir et la réactivité.
Il ne faut bien évidemment pas oublier que l'un des soucis majeurs de la spécification des nouvelles versions des plateformes est la compatibilité descendante. Un autre problème du marché est la concurrence qui pousse les éditeurs à se distinguer et à proposer des services allant au delà des spécifications, au risque d'être intrusif par rapport au standard.
A ce sujet, les tendances du moment pour le futur concernent le scripting, ainsi que l'intégration d'initiatives/frameworks.

Revenons en à Java EE 5 dont le mot d'ordre est la simplification.

Principales caractéristiques
  • Simplifier le développement de WebServices
  • IOC
  • Simplifier la persistence
  • Simplifier le développement web
  • Disposer d'une compatibilité descendante avec J2EE 1.4
  • Exploiter Java 5

Pour arriver au résultat que nous commençons à découvrir, la recette est la suivante : annotations + POJO + configuration par défaut.

Parmi les modifications fondamentales, il faut souligner l'harmonisation des politiques de sécurité (Web/EJB) qui par le passé étaient différentes.
La gestion du packaging a également été améliorée par l'introduction des Bundled Libraries (répertoire /lib) et Shared Libraries (extension du MANIFEST.MF).
Quant aux descripteurs de déploiement, après la mode du tout xml, on s'est petit à petit rendu compte que les descripteurs ont augmenté la complexité qui finalement ne pouvait plus être maîtrisée sans des outils comme XDoclet et les éditeurs. Désormais, seuls les .rar nécessiteront encore un descripteur, même les webapps pourront fonctionner sans web.xml ! Cependant, le support des fichiers de configuration type xml est conservé et si l'option "metadata-complete=true" n'est pas déclarée au niveau annotations, le conteneur procédera à un merge entre les informations issues des annotations et celles définies par les fichiers xml (détails du merge définis dans les specifications).

Le thème Dependency Injection s'accorde bien avec les annotations et permet de simplifier sensiblement le code. Plus d'appels JNDI, plus d'appels RMI explicites, ...
Bien entendu, là aussi il existe des alternatives à l'infection avec un lookup simplifié.
La spécifications défini une dizaines d'annotations communes appelées "Common Annotation".

Au rayon des nouveautés, on peut mentionner les éléments suivants :

  • Servlet 2.5 / JSP 2.1 (peu de modifications, intégration des nouveaux concepts, ajout de wildcards pour les filtres, patterns multiples pour le mapping)
  • JAX-WS 2.0 pour un support de nouvelles normes en remplacement de JAX-RPC (JAX-B 2..0, StAX, JAXP 1.3)
  • EJB 3.0 : le gros chantier

Le but de la partie EJB 3.0 était la simplification du code, des tests, la gestion du paramétrage des transactions et de la sécurité, la compatibilité EJB 2.1, mais surtout ... proposer une API qui ne se limite pas aux conteneurs Java EE !
Ce qui donne au final de simples POJO, plus d'exceptions farfelues. Les méthodes spécifiques (du style ejbCreate, ...) se transforment en méthodes annotées.
Daniel Adelhardt a également mentionné les intercepteurs de méthodes, problématique que les utilisateurs de Spring connaissent sûrement.

Image non disponible
Les common annotation

Il a également été question de Glassfish : le serveur d'application Open Source de référence pour Java EE 5. Cette initiative témoigne de la volonté d'impliquer la communauté afin de faire avancer plus rapidement les choses.
Pour l'anecdote, le qualificatif d'aquarium a été retenu pour mettre en avant les différents tutoriels, blogs, et autres ressources mis à disposition de la communauté.

Pour finir, il a été question du futur : il y a bien évidemment des JSR en cours, les thèmes pour le futurs correspondent aux portails, aux applications composites / JBI (Java Business Integration).
En réponse au constat émis en début de session, Daniel Adelhardt a évoqué la notion de Java EE Profile qui correspond à la réflexion menée autour d'une sectorisation permettant de réduire le temps nécessaire à sortir une nouvelle plateforme (dans la continuité, la sortie d'une nouvelle version de Java EE serait estimée à 2009-2010). Actuellement, les travaux en sont au stade de brainstorming.

3.2.4. Netbeans 5.0 : une IDE complet (E, WA, WS, PAF, TO, JD, JM)

Netbeans a été adopté par Sun voilà maintenant 6 ans 1/2. Pour la petite histoire, il a vu le jour en 1996 dans le cadre d'un projet étudiant à Prague, qui a donné lieu à la création d'une startup.

Après des débuts difficiles, la première version sérieuse (version 4) fixe les bases et se repose sur ANT.
Aujourd'hui, tout comme Eclipse, Netbeans est plus qu'un simple IDE (au passage gratuit, OpenSource) : c'est une plateforme (donnant lieu à des initiatives telles que le Rich Client).
Les points fort de la version actuelle (5.0) sont Matisse (éditeur puissant WYSIWYG), le plugin collaboratif, le PDT, le profiler.

Image non disponible
Le plugin collaboratif en action (à gauche les participants, au centre la zone de discussion et le code, à droite la liste des contacts)

La version 5.5, imminente, apporte son lot de nouveautés : notamment la prise en charge de Java SE 6, de Java EE 5, UML, BPEL.

Quant au futur, il a été question de l'intégration du projet Jackpot (Gosling & Tom Ball) pour un refactoring programmable qui pourrait par exemple donner lieu à des refactorings de code du type SWT <-> SWING.

Jens Trapp (Sun) a ensuite présenté Java Studio Creator et notamment ses fonctionnalités visuelles de construction d'applications web :

  • Drag and Drop
  • Data-binding visuel
  • Modélisation graphique de la navigation

3.2.5. Apache iBatis : simplifier la persistance (E, PAF)

iBatis est finalement assez peu connu et cette session a été l'occasion pour moi de comprendre un peu mieu dans quel cas iBatis peut s'avérer intéressant à utiliser.

Tout d'abord, l'intervenant a précisé que iBatis n'était pas comparable à des ORM comme Hibernate ou TopLink, il recommande de ne pas utiliser iBatis seul, mais par exemple de remplacer la partie DAO par Spring DAO qui, associé au framework SQL Maps constitue une bonne base de travail. Enfin, chose davantage connue, iBatis prend beaucoup plus de sens pour des applications où les opérations de lecture prédominent.
Il est également à noter qu'il existe une déclinaison .NET de iBatis.

iBatis est un framework intéressant lorsqu'on n'a pas la main sur le modèle physique (MPD) et s'avère très flexible face aux changements de MPD.
La présentation reposait sur 4 thèmes :

  • La définition des objets
  • Le mapping
  • La configuration
  • L'utilisation

Pour ceux qui s'intéresseraient à iBatis, sachez que c'est un framework très riche qui supporte également le chargement de grappe, le lazy loading (pour l'instant la stratégie ne peut pas être définie localement), les batchs, les procédures stockées, l'utilisation de caches, la correspondance entre des types utilisateur et une table (TypeHandlerCallback) comme par exemple pour le type boolean, les clés autoincrémentées et autres séquences, ...
iBatis est finalement une belle encapsulation de JDBC, notamment pour la construction de requêtes dynamiques (balisage plus élégant que les if/else en Java, ainsi que la distinction entre les paramètres identiques à ceux utilisés dans les PreparedStatement (notation #param#) et la construction dynamique de clauses (notation $whereClause$).

Image non disponible
L'exemple du typeHandler pour le type Boolean

J'ai énormément apprécié la présentation faite par Guido Schmutz, sa rigueur dans le code SQL conforme à la norme, et son bel accent suisse ;-) Notons également que c'est bel et bien l'implémentation iBatis du PetStore qui est la plus performante !

3.2.6. Struts and JavaServer Faces (WA, PAF, W, OS)

Si on m'avait dit en début d'année que j'assisterai à une session donnée par Craig R. McClanahan (Sun) qui n'est plus à présenter, j'aurais signé tout de suite !
C'est désormais fait grâce à cette session sur le futur de Struts et la présentation de JSF. Craig étant à l'initiative des deux framework, sa présentation reposait sur une comparaison.

Image non disponible

Craig a notamment annoncé la release de Struts 1.3 comme imminente, version majeure qui met en place le pattern Chain of Responsability pour le RequestProcessor afin de solutionner le problème de l'extension/personnalisation (utilisation des Commons Chain).

Concernant JSF, et ce afin de fixer plus clairement les choses, JSF ne se limite pas au HTML : il repose sur des "render" qui ont été introduits afin de gérer l'abstraction du support.
Autre notion majeure chez JSF, les listeners qu'il est possible des placer sur les composants (ValueChanged, Click, listeners perso).
Contrairement à Struts, JSF ne se limite pas à des form-beans, il permet d'associer n'importe quel bean à n'importe quelle portée.

La partie navigation s'inspire fortement de Struts, à quelques détails près : l'information sur l'action qui a déclenché l'appel, la particularité du retour "null" (cf. ActionForward) qui pour Struts est interprété comme l'ordre de ne pas envoyer le flux, alors que pour JSF il donne l'ordre de réafficher la page.
De la même manière, JSF s'inspire de la JSTL pour introduire son propre Expression Language et supporte la notation pointée.
Pour illustrer, deux petits exemples :

 
Sélectionnez

<h:outputText value="#{foo.bar.baz}" />
<h:commandButton action="#{logon.authenticate}" />
Image non disponible
Configuration de la navigation

Parlons également de Shale qui est une implémentation de JSF reposant sur Struts 1.x, Tiles (en mode standalone), Jakarta Commons Validator, des composants supportant AJAX (non liés à Shale, donc réutilisables), supportant l'utilisation (optionnelle) des annotations. Shale n'est pas à confondre avec Struts (dénomination exacte : Struts Action Framework) qui se focalise sur la technologie JSP et qui devrait être fusionné avec WebWorks pour donner dans le futur Struts Action Framework 2.0. En effet, Struts Shale est une implémentation de JSF et ne se limite donc pas aux JSPs.

3.2.7. The State of Web Frameworks (Keynote)

Craig, encore lui, a repris lors de cette keynote l'historique des frameworks java orientés web, en partant de l'API Servlet pour aller jusqu'à des frameworks tels Struts et JSF.
Entre temps, il affirme que pas moins de 50 frameworks Java pour le web ont vu le jour ... difficile de faire un choix.

Image non disponible

Il a également insisté sur l'importance en terme d'architecture de l'indépendance de tels framework par rapport aux objets dits métier, mais aussi par rapport à la stratégie de persistence.
Afin d'illustrer les deux courants en matière de conception, il nous a présenté les 2 stratégies que sont le Front Controller Pattern (cf. Struts) et le View Helper Pattern (cf. JSF) pour finalement conclure qu'elles ne sont pas si éloignées que ça l'une de l'autre.

Enfin, il a terminé en parlant de l'incontournable sujet du moment : AJAX qui en soit n'apporte rien de nouveau mais qui s'intègre de plus en plus aux frameworks.

3.2.8. Introducing Eclipse Callisto (Keynote)

Mike Milinkovich était présent pour communiquer autour de l'initiative Callisto.
Bien loin du pari de l'an passé sur le nombre de téléchargements de la release d'Eclipse, cette initiative a un véritable but : regrouper 10 projets majeurs afin de stabiliser l'ensemble dans la plateforme de développement qu'est Eclipse et éliminer pour les utilisateurs un certain nombre de problèmes de versions.

Les 10 projets en question
  • Business Intelligence and Reporting Tools (BIRT) Project
  • C/C++ IDE
  • Data Tools Platform
  • EMF
  • GEF - Graphical Editor Framework
  • Graphical Modeling Framework
  • Eclipse Project
  • Eclipse Test and Performance Tools Platform Project
  • Eclipse Web Tools Platform Project
  • VE - Visual Editor

Le but était aussi de nous sensibiliser à la complexité de ce projet (synchroniser 10 projets n'est pas chose facile, encaisser la charge de téléchargement doit également se préparer) et de nous encourager à participer en testant les releases intermédiaires et en rapportant les bugs identifiés.
Quant à savoir si ce projet aboutira à un produit de qualité, rendez-vous le 30 juin pour le savoir ...

Mike n'est pas avare d'anecdotes et de citations, en voila quelques unes pour votre plus grand plaisir :

  • "This is not a single product, this is not Windows Vista. How can I prove it ? We will sell it !"
  • "2 day late is not too bad, ask Microsoft." (en référence à la release de Callisto prévue pour le 30 juin au lieu du traditionnel 28 juin)
  • Traduit par mes soins : "Vous auriez vu la tête de notre webmaster lorsque nous lui avons raconté que nous avions l'intention de faire une release simultanée de 10 projets." (selon Mike, la charge se situe constamment à 97%, jour et nuit, en semaine et en week-end)
  • Traduit par mes soins : "Pourquoi toujours faire une release fin juin ? Parce que en tant que canadien, tout comme la majorité des développeurs d'Eclipse, nous avons tous bien mieux à faire en été que de développer Eclipse."

3.2.9. Tout ce que vous avez toujours voulu savoir sur les certifications (TPM)

Le but de cette "Night school" sur les certifications était de comprendre l'intérêt des certifications, d'analyser ce marché et la vision qu'en ont les visiteurs du JAX (échantillon représentatif) sondés par les animateurs. Actuellement, la marché de la certification représente environ 120 entreprises délivrant des certifications pour plus de 500 différents "diplômes". Prometric est l'acteur majeur de ce marché en tant qu'organisateur d'examens.

Comment se préparer pour une certification (durée croissante)
  • Suivre des cours
  • Lire un livre
  • Lire les spécifications (si adapté et si elles existent)

Les animateurs se sont focalisés sur les 3 certifications suivantes et nous ont distillé des informations intéressantes et des liens fort sympathiques.

  • OCUP : OMG Certified UML Professional (3 niveaux pour UML 2.0, un timing serré : 80 questions en 90 minutes pour le premier niveau, disponible en anglais ou en japonais)
  • JAVA : 8 certifications orientés technologie, liées à la version de la technologie, garantie à vie, des prérequis entre les certifications (mais non liés à la version)
  • PMI/PMP : Project Management Institute / Project Management Professionnal (certification de haut niveau, demande comme prérequis 35h de formation ainsi qu'un certain nombre d'heures d'expérience, 200 questions en 4 heures, une durée de vie limitée pouvant être entretenue par le suivi régulier de cours)

3.3. Mercredi 10 mai

Une journée très chargée avec notamment la consécration de Spring lors des JAX Award.

3.3.1. Single-Sign-On avec Java et Kerberos (E, PAF, ES)

L'introduction d'un SSO a des effets bénéfiques. L'utilisateur perd moins de temps à s'identifier constamment, il augmente donc sa productivité. L'administration est rendue plus facile et centrale.
Il y a cependant des inconvénients de taille : si le serveur sur lequel repose le SSO est hacké, l'impact est fort.

Le schéma directeur d'une solution de SSO se décompose de la manière suivante :

  • un stockage local d'informations de manière cryptée (ex. : cookie)
  • une centralisation
  • un système de ticket : serveur d'authentification qui délivre un ticket

Kerberos est un système d'authentification distribué qui implémente la RFC 1510, indépendant de la plateforme, il est le seul à implémenter le protocole GSSAPI (Generic Security Services API) et s'appuie sur une base de "Principal" (ex. LDAP ou Active Directory) pour délivrer un ticket.
Les inconvénients d'un tel système se situent notamment au niveau du déploiement d'applications (les clés doivent être déployées au moins une fois vers les services), au niveau de la synchronisation des heures (un écart de plus de 10' donnera lieu à des dysfonctionnements), et enfin au niveau du paramètrage nécessaire dans le cas d'architectures mettant en jeu des firewalls.

En pratique, la mise en place d'un SSO en environnement Java basé sur Kerberos peut se décliner de deux façons et ne concerne actuellement que les applications standalones.

  • JAAS + Kerberos
  • Java GSS-API (RFC 2853) implémenté par Kerberos + JAAS

Mustang (Java 6) donnera lieu à quelques avancées en matière de SSO puisqu'il existe une JSR destinée à proposer une implémentation native de GSS/Kerberos, ainsi que l'authentification Http via SPNEGO (Simple & Protected GSSAPI Negotiation Mechanism).

Enfin, pour ceux que Kerberos intéresserait, O'Reilly propose un livre sur le sujet. Sachez cependant qu'il est 100% Kerberos et n'est donc pas spécifique à la plateforme Java.

Image non disponible

3.3.2. BIRT : The Eclipse Reporting Framework (PRP)

Session remportant un grand succès (plus de 150 personnes dans une salle qui pouvait en accueillir un peu moins) avec beaucoup de novices dans l'assistance, cette session a été sacrément bien menée par Jason Weathersby.
Jason nous a littéralement innondé de démos et a insisté sur le caractère Open Source de ce projet.

Image non disponible

Parmi les fonctionnalités abordées, la possibilité de définir un DataSet sur plusieurs bases de données, la vue Library Explorer qui permet la réutilisation/centralisation (par exemple dans le cas d'une css commune).
Il nous a également parlé des différents formats supportés (HTML avec gestion de pagination, PDF reposant sur iText, exports CSV), du support des TOC et des favoris, de RCP, de liens entre les états avec passage de paramètres notamment.

Image non disponible
Les différents graphiques

BIRT repose sur 2 modes de scripting : un scripting Javascript (Mozilla Rhino), et un scripting Java (support du debug au passage).
Le scripting Javascript permet par exemple de mettre en place très facilement une condition sur la base d'un paramètre et de basculer dynamiquement d 'environnement (développement, production, ...).
Le scripting Java permet de traiter des événements au rendering comme par exemple des événements sur les tables (calcul d'une moyenne de valeurs) et sur les lignes (mise en forme de la ligne en fonction de la comparaison entre la valeur représentée et la moyenne calculée).

Image non disponible
Prévisualisation de l'état

Jason nous a également rapidement présenté le support d'Hibernate et notamment le développement d'états en utilisant le langage HQL.

En conclusion, il a insisté sur le fait que BIRT n'est pas un simple outil, c'est avant tout un framework que vous pouvez étendre !

3.3.3. Aligning IT with Business Goals through SOA Using IBM Eclipse Based Tools (Keynote)

Image non disponible

Robin Bater nous a présenté sa réflexion sur les liens intimes entre la flexibilité d'un business et celle de l'infrastructure technique.
SOA doit selon lui impulser un changement dans la relation entre le métier et l'informatique : avant, les contraintes étaient dictées par les IT; désormais, la technologie est en mesure de répondre aux exigences des gens du métier et les IT ne peuvent plus se dérober.

Image non disponible

Il a également tenu à insister sur la distinction nécessaire entre les Web Services et SOA car SOA est un concept d'architecture contrairement aux Web Services qui sont une technologie.

En tant que leader sur la marché (44%), IBM matérialise sa stratégie sous la dénomination de "IBM SOA Foundation" et Robin souhaite profondemment que SOA soit désormais adopté en masse.
Comme arguments, il a parlé de stabilité et de bests practices qui témoignent que la route est désormais dégagée.

Image non disponible
Le mot de la fin

3.3.4. Tests de performance et de montée en charge avec JMeter (E, WA, TO, JB, X, OS)

Les compétences requises pour mettre en place des tests de performance et de montée en charge ne sont pas à prendre à la légère :

  • pouvoir comprendre le besoin fonctionnel
  • connaître l'architecture en place
  • avoir un minimum de connaissance du langage de programmation
  • connaître la théorie des tests et ses outils
  • disposer de solides capacités de communication

JMeter est un outil éprouvé (version 1.0 en 1999, actuellement en 2.1.1) qui se destinait initialement à Apache JServ.
JMeter est un outil ouvert et extensible, ce que se sont efforcé de nous montrer les intervenants, simple et intuitif, supportant de nombreux protocoles.
Une alternative sérieuse à JMeter est Grinder.

Image non disponible
L'extension pour manager : la couleur change selon le taux de réussite et les bornes configurées ;-)

Les inconvénients de ce produit mentionnés par les intervenants sont les suivants :

  • recquiert beaucoup de ressources
  • pas de tests possibles en HTTPS
  • pas de gestion fine de plusieurs plans de test

3.3.5. Eclipse Web Tools 1.5 and AJAX (DEV, ALM, PRP)

Cette session a été l'occasion de faire un bilan sur WTP qui avait pêché de robustesse dans sa première version (beaucoup de corrections de bugs).
WTP, projet majeur intégré à la future release de Callisto, a donc été revu dans sa version 1.5 en matière d'utilisabilité et d'outillage, ainsi que mis à jour avec les nouvelles versions des APIs supportées (par exemple Axis 1.3).

Au rayon des fonctionnalités (dont certaines c onstituent des nouveautés) :

  • un éditeur de structures (XML)
  • la complétion dans le code CSS
  • l'implémentation de QuickFixes pour les déclarations XML
  • le support du debug (y compris des JSPs) pour tout serveur compatible avec la JSR 45
  • la possibilité de définir soit même son serveur Java EE par xml (très utile en terme de mise à jour)
Image non disponible
Ce que WTP prend en charge ... ou pas

Un autre thème abordé était AJAX et ATF/ATP (Ajax Toolkit Framework, Ajax Tools Platform) qui propose différents outils permettant de développer des pages DHTML, de l'AJAX, des plugins pour utiliser différents outils AJAX et/ou différentes librairies.
En terme de vérification de syntaxe, cette plateforme propose un Javascript Syntax Validator basé sur Rhino et JSLInt.
La plateforme est structurée en "personalities" (actuellement Rico, Zimbra) ce qui permet de l'étendre à de nouvelles "personalities". Elle propose ainsi des templates, des patterns de code, des wizards, ...

Enfin, il est à noter la présence d'un debugger Javascript ainsi qu'un navigateur Mozilla intégré.

WTP proposera également dans sa version 1.5 un outillage autour de JSF 1.1 et 1.2, avec notamment un éditeur avancé du faces-config et le support d'EL.

Dernier thème abordé, RAP (Rich AJAX Platform) qui est un projet actuellement en incubation et qui repose sur OSGI et W4T (ce dernier s'inspirant fortement de SWT) avec la notion de rendering kits permettant une indépendance vis à vis du navigateur et limitant l'écriture de code JS/CSS/AJAX.
L'un des principaux problèmes de cette plateforme est la gestion de la mémoire qui peut très vite devenir chaotique.
Jochen Krause a également mentionné un projet en cours d'étude : ESWT pour Embedded SWT.

Image non disponible

3.3.6. Intégration de l'ALM (Keynote)

Microsoft n'était pas uniquement présent en simple exposant/partenaire, il y a effectivement eu une Keynote (ainsi qu'une session) par Microsoft.
Lothar Wieske de Microsoft Deutschland GmbH nous a fait une présentation de Microsoft Visual Team System, de la démarche et de l'architecture du produit.

J'avoue avoir été relativement surpris par le nombre de participants à cette Keynote identifiés comme utilisateurs de Visual Studio, à croire que le mythe du professionnel maîtrisant à la fois les technos Java et Dotnet n'en est pas un...
Concernant la présentation, le but du produit présenté est la satisfaction des différents acteurs d'un projet (chef de projet, architecte, développeur, testeur, ...) en jouant sur l'intégration et le regroupement des informations.

Le rapport avec le JAX ? Figurez vous qu'il existe un plugin eclipse proposant de gérer un projet Java avec Visual Team System.

3.3.7. JAX Award

Le déroulement des JAX Award a été le suivant :

  • 2 à 3 minutes de présentation de chaque projet nominé
  • remise des Award des places 5 à 1
  • vote du public

Rod Johnson est arrivé à point nommé pour recueillir l'Award suprême remporté par le framework Spring : 10 000 euros en espèces (comprenez de l'argent et pas des prix).

Image non disponible

3.3.8. Escaping the Technology Cycle (Keynote)

Rod Johnson n'est plus à présenter, son savoir faire non plus.
Le propos de cette Keynote était la maîtrise de notre environnement technologique, la stabilisation des concepts, l'indépendance, les enjeux pour l'entreprise. Rod en a profité pour mentionner SCA (Service Componed Architecture) qui ne se limite pas uniquement au monde Java.

Image non disponible
La réflexion de Rod

Pour une entreprise, la maîtrise et la stabilité des technologies est souvent le frein à l'innovation et à l'exploitation des technologies les plus récentes. L'intérêt pour l'entreprise se situe à plusieurs niveaux : premièrement l'importance de collaborer avec les éditeurs (partenariats) afin de pouvoir maîtriser le périmètre technologique, en second lieu la standardisation des concepts donnant lieu à la construction d'applications modulaires et évolutives.
Les travaux réalisés dans le cadre de Java EE 3.0 apportent une première réponse aux entreprises à travers la simplification et le retour à des notions originelles tel l'Objet avec un grand O.

Rod a souligné que le concept de POJO n'est pas spécifique à Java, il se décline par exemple sous la dénomination PONO pour Dotnet (cf. Spring.Net) et son message a été clair : "Le POJO est mort, vive l'Objet".
Une citation intéressante à ce sujet : "JUnit is a very good sniffer and if something smells good in a unit test, it's certainly a POJO."

Le futur est donc aux concepts tels que Dependency Injection, Aspect Oriented Programming.
Cependant attention à ne pas tout mélanger : "Annotations should express concepts, not implemented strategies."

Image non disponible

3.4. Jeudi 11 mai

Les dernières sessions/keynote et la session de clôture.

3.4.1. Best Pratices for Apache Cocoon (WA, PAF, W, X, OS)

Cocoon est un framework Web éprouvé, lancé en 1999 (XML publishing framework), l'un des projets Apache les plus importants, suivi et supporté par de grandes entreprises.
Cocoon a l'avantage d'être stable, il y a néanmoins un pauvreté au niveau de la documentation et la mise en place de ce framework est plutôt adaptée à des gros projets impliquant notamment différents spécialistes : cf. SoC (Separation of Concerns, aboutir à une séparation permettant d'identifier des rôles et de favoriser la parallélisation du travail).
En outre, Cocoon est orienté composants (Apache Avalon/Excalibur) et intègre un certains nombre de frameworks (Xalan, Xerces, FOP, Batik, POI, ...) tout en facilitant l'intégration d'autres composants.

Un peu de vocabulaire : niveau flux, Cocoon repose sur les JxTemplateGenerator et JxTemplateTransformer. Côté formulaire, Cocoon repose sur le CForms framework ainsi que sur Flow-Script (Javascript côté serveur) ainsi qu'Avalon pour la configuration, le monitoring et le logging.
Le framework CForms permet d'avoir une approche composants par l'intermédiaire d'une définition de composants typés (y compris les labels), une définition de template (par exemple HTML), et un binding DTO <-> formulaire.

Image non disponible
Le framework CForms

En matière de développement, Coocon s'intègre à Eclipse (Run/Debug/Build) et se teste bien avec JUnit et AntEater.

Pour le futur (version majeure 2.2), sont prévus les éléments suivants (support Java 1.4 / Servlet 2.3 ou supérieurs) :

  • hot-deployement
  • résolution des dépendances (jars)
  • reconfiguration
  • remplacement d'Avalon par Spring avec compatibilité descendante
  • mise en place de Maven 2

3.4.2. Mise en oeuvre d'une stratégie orientée service avec Eclipse RCP (RCP)

Cette session s'est révélée extrèmement intéressante d'un point de vue démarche.
Les deux intervenants n'en sont pas à leur première réalisation d'une abstraction orientée service et nous ont donc présenté leur réflexion et leur travail appliqué à la plateforme RCP d'Eclipse.

Après une courte introduction sur le client riche et sont utilité, ils nous ont présentés les différentes philosophies d'applications qu'ils ont rencontrés au cours de leur expérience :

  • applications orientées transactions
  • applications orientées document
  • applications orientées processus

Le client riche répond aux besoins exprimés par la dernière philosophie, notamment en terme d'utilisation dans le cas d'applications fortement utilisées (pour ne pas dire à longueur de journée).
En terme d'architecture, il leur a donc semblé intéressant d'identifier les composants issus d'Eclispe sur lesquels de telles applications pourraient se reposer :

  • Une fenêtre type éditeur correspond bien à un cas d'utilisation (micro flow)
  • Une vue correspond à un regroupement logique de cas d'utilisatiosn (macro flow) et favorise la navigation, l'affichage d'informations complémentaires par rapport à l'éditeur en cours, ou encore une liste de processus en cours (permettant de fermer des éditeurs sans perdre la saisie pour autant)
  • Une perspective a également une fonctionnalité de navigation, mais à un niveau plus élevé (sélection d'applications), elle peut également permettre de basculer l'organisation générale de l'interface, et peut à la fois être piloté par l'application et par l'utilisateur
  • Les assistants ne sont pas vraiment utiles, si ce n'est pour des besoins ponctuels
  • Le multi-page editor (onglets) permet une navigation fine au sein d'un cas d'utilisation (cependant il en résulte une faiblesse de contrôles dans la navigation)
  • Enfin, la consultation de divers documents (Word, images, ...) est également intéressante

Tout ce travail leur a permis d'aboutir à une RCBP (Rich Client Business Platform) actuellement au stade de maquette avec une abstraction s'inspirant fortement de Struts (configuration xml au niveau Macro/Micro pour la navigation).
Tout cela repose bien entendu sur les concepts de plugin et leur architecture laisse apparaître un "Plug-in-Flow-Registry" (un seul point d'extension) qui centralise les informations et qui est capable de communiquer avec les différents plugins représentant les macro/micro flows.

Image non disponible
Les fondements de l'architecture de RCBP

Vraiment très intéressante et enrichissante comme session !

3.4.3. Maîtriser SOA (Keynote)

Encore une session sur SOA, cette fois plutôt orientée technique et BPEL (Business Process Execution Language).
Ivo Totev de Software AG (The XML Company) a présenté BPEL comme un standard de communication entre les Business Analysts et les architectes/développeurs.

Sans écrire la moindre ligne de côté, et à l'aide d'un éditeur BPEL intégré à Eclipse, il nous a montré comment réaliser un mapping BPEL sur un bouton afin d'appeler un service de récupération d'informations et d'afficher ces informations dans une liste.
La démo repose sur un repository (CentraSite) qui centralise les informations concernant les différents webservices. A partir d'Eclipse, il lui a été possible de communiquer à CentraSite l'utilisation d'un service, ce qui a eu pour effet d'empêcher au niveau du repository la suppression du service.

Ivo Totev a profité de sa Keynote pour faire le constat suivant : l'Europe tend à devenir de plus en plus consommatrice, passive (notamment en raison de contraintes d'exportation telles la langue ou les lois), ce qui n'est pas bon pour notre écosystème.
On a donc lancé un appel aux décideurs européens pour examiner profondemment les opportunités de business qui leur sont mises à disposition par les sociétés européennes innovatrices et actives.

3.4.4. Essential EJB 3.0 Persistence in Practice (Keynote)

Doug Clarke nous a fait une présentation complète de JPA lors de cette Keynote.
On y apprend donc les principes/alternatives de configuration (annotations et/ou xml), le JPQL, les stratégies de transaction (JTA ou RESOURCE_LOCAL).

Les clés de JPA
  • cible les bases de données et est optimisé pour cette cible
  • pour Java EE, mais pas seulement !
  • pouvant être étendu par les éditeurs

En matière de requêtage (querying), il existe 3 stratégies : les finders (par id ou idClass), le JPQL, et le SQL.

Doug nous a également parlé du projet Eclipse DALI (outil simplifiant le développement JPA) et démontré son utilité lors d'une démo.
Enfin, il nous a parlé de Glassfish pour lequel l'implémentation retenue est Toplink Essentials (qui repose sur le même Core Engine Toplink que la version commercialle Oracle Toplink).

3.4.5. Continuous Performance Management (E, TO, ALM)

Qu'est ce qui se cache derrière un tel nom ?
En général, les tests de montée en charge ne passent que très rarement la théorie et au mieux sont réalisés quelques jours avant la mise en production (avec les conséquences qu'on peut imaginer). Le but de cette session était de sensibiliser les participants à cette problématique de management continu de la performance qui repose sur les concepts suivants :

  • une automatisation en "no touch" des tests de charge et profiling
  • une comparaison rapide de l'impact sur la performance entre différents builds successifs
  • une documentation et un reporting
  • l'établissement de benchmarks

Tout cela n'est évidemment pas aisé à mettre en place, demande du temps et des compétences, mais une fois en place, il n'y a plus grand chose à faire à part tirer bénéfices de l'outillage.
Au rayon des outils s'inscrivant dans cette démarche, citons Ant, Maven, JUnit, TestNG, HttpUnit, Cactus, JUnitPerf, Subversion, CVS, CruiseControl, JMeter, JProbe, PerformaSure.

Après nous avoir rapidement présenté ces différents outils, et notamment JMeter, CruiseControl, JProbe et PerformaSure, Mirko Novakovic nous a montré comment cela se passait en pratique et sa démo fût relativement impressionnante et encourageante pour mettre de telles choses en place.
En pratique, la démarche consiste à :

  • établir des scénaris réalistes
  • identifier les interfaces critiques pour les mesurer (base de données, webservices internes/externes, SAP, ...)
  • construire sa solution CPM
  • "no touch" quotidien pour détecter le plus rapidement possible les problèmes de performances et les localiser
Image non disponible
Répartition de la consommation entre la couche Java et la base de données

3.4.6. Tests unitaires avec FIT et FitNesse (E, PAF, TO)

Dernière session de ce JAX 2006, les tests unitaires.
Ce fût pour moi l'occasion de découvrir une approche simple des tests unitaires basée sur FIT et sa déclinaison FitNesse basé sur Wiki.

Image non disponible

L'avantage de FIT se situe à plusieurs niveaux :

  • encourage la rédaction de documentation utile à la fois pour les tests et pour les spécifications
  • permet à des gens fonctionnels de rédiger des tests exploitables par le framework
  • framework se laissant aisément étendre

La présentation était moins interactive que les autres sessions auxquelles j'ai pu assister, je n'ai donc pas retenu tout ce qui s'est dit mais je ne tarderai pas à m'intéresser de plus près à ce framework, d'autant plus qu'il existe une intégration à Spring.

3.4.7. Cérémonie de clôture

La cérémonie de clôture a donné lieu à un tonnerre d'applaudissements, de chaleureux remerciements, une satisfaction générale côté organisateurs et participants, ainsi que la distibution de nombreux lots/cadeaux (livres, logiciels, places pour le WJAX, places pour le JAX 2007, ainsi qu'un iPod Nano).

Image non disponible
Les participants quittent les lieux après 3 journées bien remplies

3.5. Vendredi 12 mai

Journée orientée Workshops, les lieux paraissaient vraiment déserte par rapport aux précédents jours et les organisateurs étaient déjà bien occupés à ranger.

3.5.1. Workshop Spring Framework : simplifier Java Enterprise

Nous y voila, la dernière journée, et encore un Workshop orienté pratique (certes un peu moins que celui de lundi, la faute à un sujet si vaste).
Eberhardt Wolff avait préparé une série de DVD (pas suffisamment compte tenu de l'affluence) avec l'installation d'une VMware (Suse) permettant de travailler directement sur différents projets Eclipse avec une base de données MySQL.
En pratique, voici les sujets qu'il a eu le temps d'aborder :

  • Dependency Injection
  • AOP
  • Transaction et accès aux données
  • RMI et autres protocoles
Image non disponible

L'éditeur de fichier xml de configuration Spring intégré à Eclipse est vraiment une pure merveille, il détecte un grande partie des erreurs, et les erreurs qu'il n'est pas capable de détecter vous sont signifiées de manière très explicite à l'exécution. Le message est tellement clair qu'il est impossible de ne pas comprendre où l'erreur se trouve.

Le triplet Spring DAO 2.0, Generics, varags simplifie également énormement l'écriture de la couche d'accès aux données !

On en redemanderait (si l'épuisement dû à une semaine bien remplie ne l'emportait pas sur les organismes) !

4. L'avenir

L'ApacheCon Europe 06 aura lieu du 26 au 30 juin à Dublin.
Le W-JAX 2006 aura lieu du 6 au 9 novembre 2006 à Munich.

Le JAX 2007 / EAKon 2007 / Eclipse Forum Europe 2007 aura lieu du 7 au 11 mai 2007 à Wiesbaden, rendez vous est pris !

5. Remerciements

Je tiens à remercier l'équipe de Software & Support Verlag pour la qualité de leur travail, en particulier Sebastian Meyen, Carole Mueller, Daniela Piesch, et Frank Stepan.

Mes remerciements vont également à Developpez.com et en particulier à Vincent Brabant, JohnDoeBrother, Christophe Jollivet, et Marc Lussac.

Merci encore à JohnDoeBrother ainsi que Matthieu Brouillard et Xavier Hanin de la société Jayasoft pour la soirée passée ensemble autour de quelques bières.

Mais surtout, un grand merci aux différents intervenants lors de ces conférences !

6. Liens