Day 2 - Wednesday, May 17▲
8:30-10:30 AM : Oracle General Session▲
Thomas Kurian, Senior Vice President de Oracle Corporation, nous expose les qualités de la nouvelle plateforme Java pour entreprise (Java EE 5, SOA 2.0, Web 2.0) et nous promet que cette plateforme permet:
- d'être plus productif
- de développer des application plus flexibles
- de créer des applications au contenu plus riche
Cette architecture permet de créer un modèle en 3 couches:
- Business Logic Component Model permet de décrire le "métier" de l'entreprise et de définir les interactions avec les bases de données (EJB 3.0, Java Persistance API).
- Composition and Orchestration permet de définir avec une grande flexibilité la manière dont les différents services interagissent entre eux
- Interface Utilisateur
Pour chacune de ces couches, des composants réutilisables ont été développés de manière à rendre le développement d'applications plus productif.
Concernant le Business Logic, EJB 3.0 et la Java Persistance API facilitent le travail du programmeur. Grâce aux annotations (Java EE 5), il est très facile de créer des WebServices et de rendre des objets persistant en base de données. "N'importe qui pouvant créer des classes Java et utiliser des objets Java est maintenant un programmeur EJB. N'est-ce pas formidable?", dit Thomas Kurian.
Thomas Kurian annonce ensuite quelques contributions d'Oracle:
- l'implémentation de référence d'EJB 3.0 est intégrée au projet Glassfish (c'est le noyau TopLink, l'implémentation commerciale d'Oracle. Merci à vbrabant pour cette info)
- autre contribution faite à Eclipse pour l'intégration d'EJB 3.0 dans l'environnement de développement
S'ensuit une démonstration sous Eclipse montrant la manière d'utiliser la Java Persistance API et les annotations pour effectuer le mapping entre les objets Java et la base de données.
Au niveau Composition and Orchestration, une nouvelle génération de SOA voit le jour: SOA 2.0 composé de:
- Service Fabrics: infrastructure permettant de définir de manière déclarative la façon dont les services communiquent entre eux
- Service Orchestration: BPEL (Business Process Execution Langage) définit la coordination entre les services
- Service Monitoring: permet de déclencher des événements asynchrones divers: alertes, informations, etc.
- Service Security (WS-Security, WS-Trust)
- Service Management: définit les politiques en termes de disponibilité, de sécurity, de performance, etc.
Au niveau User Interface, la convergence des JSF (Java Server Faces) et d'AJAX facilite la mise en place d'interfaces utilisateur pour les WebServices définis dans les couches précédentes. Une démonstration montre qu'avec les JSF, on n'a pas besoin d'être un expert de Javascript pour créer des applications web de qualité basées sur AJAX.
La présentation se termine par un résumé des contributions faites par Oracle à la communauté open-source (Eclipse, Apache, etc.) et rappelle qu'une version gratuite d'Oracle 10 existe.
En résumé, il s'agit là d'une présentation certes très technique mais donnant une bonne idée des possibilités offertes par Java EE 5, d'EJB 3.0, des JSF, etc pour le développement de WebServices et d'applications web.
Les technical sessions que j'ai choisies▲
TS-4916. Creating Professionnal Swing UIs using Matisse GUI Builder▲
Une formidable démo de ce qu'il est possible de faire avec le GUI Builder intégré dans NetBeans. C'est simple: vous ajoutez des composants graphiques (boutons, listes, etc.) par simple "drag-and-drop" avant d'en modifer la taille, l'alignement, etc. Par ailleurs, l'interface est suffisamment intelligente pour déterminer avec quels autres éléments de l'interface vous souhaitez aligner vos composants graphiques.
Cette présentation montre également les possibilités de "Matisse" en matière d'internationalisation (i18n), donne quelques conseils sur la réalisation d'interfaces graphiques avec cet outil et donne des exemples d'erreurs à ne pas commettre.
Parmis les conseils prodigués :
- suivre les indications de Matisse (ex: pour l'alignement)
- concevoir des éléments graphiques "resizable" (utile pour assurer une bonne visibilité sur toutes les plateformes et aussi en cas de changement de la taille des libellés d'une langue à l'autre)
En résumé, une démo qui sait nous convaincre que le GUI Builder de NetBeans est extrêmement productif et qu'il serait dommage de ne pas l'utiliser.
TS-4743. XML: The evolution of JAXP▲
Voilà une présentation qui m'a vraiment donné l'impression de perdre mon temps. En effet, d'après le titre, je pensais apprendre quelque chose de nouveau sur le traitement de fichiers XML en Java, or il s'agissait ni plus ni moins que d'un cours assez rapide sur XML, DOM, SAX, XSLT, les DTD, les schemas. Bref rien que je ne connaisse pas déjà...
En plus, ce qui manque cruellement à ce genre de présentation pour débutants, c'est un récapitulatif des différences entre ces API en détaillant leurs avantages, leurs inconvénients et les cas où leur utilisation est justifiée.
Bref, j'ai été extrêmement déçu par cette présentation donnée par un employé d'Oracle, et je n'était pas le seul à en juger par la vitesse à laquelle la salle s'est vidée. J'ai essayé de tenir aussi longtemps que j'ai pu, dans l'espoir d'apprendre quelque chose d'intéressant. En vain...
TS-1580. JUnit 4 and Java SE 5: Better Testing by Design▲
Cette présentation était donnée par Kent Beck, à l'origine de JUnit, l'outil de référence en matière de tests unitaires, souvent copié et adapté à d'autres langages, mais jamais égalé. Erich Gamma (voir page suivante) a également apporté sa contribution à JUnit.
Issus d'une formation en Génie Logiciel, je suis assez sensible à tout ce qui touche aux tests et à l'amélioration de la qualité logicielle en générale. C'est d'ailleurs pour cette raison que j'ai choisi cette présentation. J'ai été cependant assez déçu par cette présentation.
Cela commençait plutôt bien pourtant, avec une démonstration des améliorations apportées par JUnit 4 et Java SE 5. En effet, grâce aux annotations introduites par Java SE 5, il est maintenant plus facile de spécifier des tests unitaires. Cette partie là était intéressante.
Après, la présentation dérive sur les problèmes qu'il a rencontré avec le pattern Composite (pattern au demeurant extrêmement intéressant mais qui complexifiait l'API JUnit et forçait l'exécution des même batteries de tests) et sur le fait que JUnit est un outil très simple au demeurant et que n'importe qui aurait pu avoir l'idée de créer un tel outil.
Pour nous, développeurs, ces explications ne présentent malheureusement pas un grand intérêt (ce qui nous intéresse, c'est de savoir ce qu'apporte la nouvelle version de JUnit et en quoi elle facilite la mise en place des tests unitaires). Après, c'est sûr qu'il est difficile de tenir 1 heure juste en présentant les annotations de Java 5 appliquées aux tests.
Ce qu'il faut retenir de cette présentation, c'est que les annotations Java SE 5 facilitent la déclarations des tests unitaires. Plus d'infos à ce sujet sont disponibles dans les PDF de la présentation, ce qui peut justifier qu'on les télécharge.
5:15-6:00 PM : BEA General Session▲
Contrairement aux autres présentations, parfois très techniques, la présentation de BEA est vraiment orientée marketing. Cela commence dès la vidéo de présentation (au demeurant superbement réalisée) dont le discours tourne autour de la réussite, de la productivité, de l'innovation... "Qu'est-ce que ces entreprises ont en commun? Elles reçoivent l'aide d'un partenaire qui comprend mieux que quiconque que transformer votre entreprise, c'est changer votre façon de penser", suivi du logo BEA: "Think Liquid". Le ton est donné: nous allons assister à une présentation purement commerciale.
S'ensuit une série de mythes sous forme d'articles de presse aux titres du genre "Java est le prochain Cobol" (je ne sais pas si ce sont de vrais articles parus dans la presse, mais dans ce cas, c'était peut-être à prendre au second degré) que Bill Roth, BEA, se propose de dissiper lors de cette séance. Son conseil: "Ne croyez pas tout ce que vous lisez". A vrai dire, c'est exactement ce que j'ai fait tout au long de sa présentation...
La session continue avec une explication de ce qu'est un middleware, que les middleware apportent plus de liberté, de flexibilité, qu'ils permettent un déploiement plus facile ("develop one way, deploy in a different way"), etc. Durant cette session, on a aussi énormément parlé d'innovation avant d'aborder la question de la multiplication des langages. En effet, le programmeur Java devait connaître de nombreux autres langages comme PHP, Python, Ruby... "En moyenne, les développeurs Java utilisent plus de langages pour construire leur application que les développeurs Microsoft". Ceci permet d'introduire une démo de BEA Workshop qui permet la gestion des dépendances dans les projets complexes, faisant intervenir de nombreuses technologies (entre autres démos).
Contrairement aux autres sessions, pas beaucoup d'annonces ont été réalisées en dehors du fait que BEA mettait Kodo, leur moteur EJB 3, à disposition de la communauté open-source (annonce qui n'a d'ailleurs pas eu un impact important). C'est bien: cela a permis de se reposer de la veille, journée qui fut extrêmement riche en annonces et de récupérer un peu du décalage horaire...