1. Présentation▲
1-1. Généralités▲
Le JAOO est organisé depuis 1999 par la société EOS (EastFork Object Space). L'an passé,
deux sessions eurent lieu dont l'une à Cannes. Traditionnellement, la ville Danoise de Århus se charge d'accueillir cet évènement.
JAOO est l'une des plus grandes conférences Européennes en matière d'ingénierie logicielle, de méthodes et de meilleures pratiques.
Cette année, près d'un millier de personnes se sont déplacées pour assister aux présentations menées par plus de 80 conférenciers.
Cet auditoire composé de chefs de projets, ingénieurs, décideurs, programmeurs, étudiants est essentiellement originaire du Danemark,
de l'Allemagne, et de l'Angleterre, trés peu de Français et Belges ont fait le déplacement. J'espère que ce petit aperçu vous motivera
à ne plus manquer l'immanquable ;-).
1-2. Le site des JAOO▲
Århus est la seconde ville du Danemark, avec 250000 habitants. Bordant la mer Baltique, Århus est une ville vivant au rythme de son activité portuaire, et de son pôle universitaire. Pour information, la monnaie officielle est la couronne Danoise (DKK) mais l'Euro est accepté dans la plupart des commerces.
Depuis 1999 EOS organise donc le JAOO dans se cadre tranquille et, grâce à sa croissance, de plus en plus de bâtiments sont nécessaires à la manifestation. Quatre sites sont occupés pour ces conférences:
- Scandinavian Congress Center / Radisson SAS Hotel
- Concert Hall / MusikHuset
- ARoS Art Museum
- Ridehuset (Lunch, "Conference Party", IT-Run)
Les conférences principales et Keynotes se déroulent dans le Conference Hall n°1 du Scandinavian Congress Center. Toutes les infrastructures sont adaptées
pour l'occasion et les visiteurs sont trés bien accueilli (petit déjeuner, boissons, terrasse et jardin, WiFi, de nombreux salons). Ces 4 bâtiments sont voisins
et hèbergent chacuns des thèmes de conférences bien précis, inutile donc de traverser la ville pour assister à deux sessions au thème différent.
2. Organisation▲
2-1. Les conférences▲
Plus d'une centaine de conférences, tutorials, keynotes sont planifiées sur 6 jours. Elles sont divisées en différents thèmes:
- .NET Best Practices
- Improve Your Projects
- Patterns - Past, Present, and Future
- Scripting And Dynamics
- Service Oriented Computing (SOA)
- Enterprise .NET Development
- J2EE
- MDA
- Platforms For Embedded Software
- Sixth Generation Languages
- Test and Profiling Performance
- Agility in Perspective
- Domain Specific Languages (DSL)
- Java 5.0
- Scalable Computing
- Smart Client Development
2-2. Les conférenciers▲
Avec plus de 80 conférenciers, le contenu et la diversité théorique et technique des sessions est garantie. Ces conférenciers sont universitaires, chercheurs, ingénieurs, ou des professionnels de l'industrie logicielle. Cette année de grands noms contribuent aux JAOO: Craig Russel (Sun Microsystems), Martin Fowler (ThoughtWorks), Floyd Marinescu (TheServerSide), Ivar Jacobson, Ralph Johnson (du "Gang of Four"), Mike Keith (Oracle Corp.). Il est assez rare de pouvoir profiter d'un panel de conférenciers aussi vaste en Europe. (Liste des conférenciers JAOO 2005)
2-3. Sponsors et Partenaires (Exhibitors)▲
Le hall du Musikhuset de Århus a accueilli les nombreux "exhibitors", à savoir les stands des partenaires et sponsors de l'évènement. Des démonstrations, jeux et concours étaient organisés toute la journée, lors des pauses entre les conférences. C'était donc l'occasion de dialoguer avec beaucoup d'acteurs qui proposent des solutions logicielles intéressantes et qui prenaient le temps de répondre à nos questions. IBM présentait donc sa gamme d'outil de développement pour Java: Rational Software Architect (RSA), Rational Software Developer, Websphere Application Server 6.0, tandis que Microsoft distribuait des exemplaires de Visual Studio 2005 Bêta, et BEA son serveur d'application J2EE Weblogic. (Liste des exhibitors JAOO 2005)
De nombreux livres de référence, parfois écris par des conférenciers présents étaient en vente afin d'assagir les visiteurs les plus impatients. Des séances de dédicaces étaient également organisées, une façon d'authentifier l'évènement sur papier et d'entretenir le "Star System" :-P.
On pouvait également assister à des séances un peu plus pratiques de démonstration, comme le développement de composants graphiques basés sur les JSF ("JavaServer Faces") par ILOG, le principe de MDO ("Model Driver Offshoring") par Interactive Objects, ou "Testing UML Models" par Telelogic.
2-4. JAOO "Bowerman" IT-Run▲
C'est maintenant devenu une tradition lors des JAOO: courir le "Bowerman IT-Run", en individuel et par équipe. Situé juste à coté du Musikhuset,
le Ridehuset permet de se détendre les jambes après une lourde journée de conférences. Bill Bowerman était un entraineur d'athlétisme, et a cofondé la firme "Nike" en 1971.
L'initiative est assez sympa malgré cette année quelques gouttes de pluie. La course consiste à parcourir un Mile danois, c'est à dire 7,532 Km. Tous les participants ont portés pour l'occasion un T-shirt numéroté, aux couleurs des organisateurs. |
2-5. JAOO Monday Party▲
La première journée s'achève donc avec une conférence d'un orateur mystère, en l'occurrence Jaron Lanier, présentant sa réflexion sur le sujet "Exocomputing in the Year 2304: A Survey of Confirmed Alien Information Technologies". Un moment trés distrayant, suivi donc par la traditionnnelle "Conference Party". Il s'agit d'une soirée de détente, le groupe Danois "Absolute Girls" était présent et a animé la soirée de son son Pop/Rock.
2-6. Wi-Fi▲
Dans tous les bâtiments réservés à la manifestation, ainsi que dans un certain nombre d'hôtels et lieux publiques, un accès Wireless dédié aux JAOO était accessible. Ce détail trés pratique permet de télécharger au fur et à mesure les slides et/ou PDF des conférences et de pouvoir checker ses mails. Je me suis connecté trés régulièrement lors des heures de pointe théoriques (break et pause repas) grâce à cet accès WiFi 802.11G (54 Mbit/s), et aucun ralentissment ne s'est faire ressentir.
3. Ma sélection de conférences▲
Avec autant de thèmes abordés, mon choix fut difficile, partagé entre l'idée d'assister à des sujets que je connais bien (le monde Java/J2EE, les Design Patterns),
et le désir de veille technologique et R&D, brefs des domaines qui me sont encore flous (SOA, ESB, Workflow et BPM, programmation embarquée...).
Mes choix demeurent donc personnels, et j'espere avoir fait les bons ;-).
Je ne peux décrire la vingtaine de conférences auxquelles
j'ai assisté, donc je présenterai juste un petit échantillon.
3-1. Lundi 26 Septembre▲
3-1-1. Keynote (ouverture): "The Zen of Free - The Virtuous Cycle of OpenSource" (Simon Phipps, Sun Microsystems)▲
Simon Phipps est chargé de débuter ces 3 jours de conférences, et il le fait avec humour. Présenté par Dave Thomas comme travaillant du "coté obscur" pour Sun Microsystems (Responsable de la stratégie OpenSource), il est également le "Chief Technology Evangelist" de la firme, tâche nécessitant un certain charisme.
Simon Phipps a donc entrepris lors de ce Keynote de mener une réflexion autour du modèle OpenSource, aspects communautaires et économiques. Les évolutions techniques des 10 dernières années ont engendrées un certain nombre de vecteurs pour accèder à l'information (eMail, blogs, téléphones cellulaires), pour lui le modèle commercial n'est plus la seule réponse aux problématiques modernes, nous sommes rentrés dans la "Participation Age" c'est à dire une ère pour le développement communautaire, la diversité des énergies et inspirations étant plus que jamais une force du développement logiciel, et une solution vers un consensus avec le modèle de production logiciel dit "capitaliste". Simon Phipps isole certains aspects de l'informatique moderne:
- Le phénomène de connection de masse a entraîné une crise sécuritaire: notion de "l'Identité Digitale"
- Les logiciels sont présents partouts (GSM, Internet, Domotique, Sciences) et doivent être disponibles tout le temps: notion de "Service Orientation"
- Etudier le prix des logiciels en fonction de la demande: "Value-based pricing"
- Le marché devient une conversation: "Blogs, Community, Forums, Newsgroups"
- Le modèle de développement "Close-source" n'est plus suffisant: apparition de l'"OpenSource"
Bien sur, l'évangéliste a exposé la stratégie OpenSource de Sun Microsystems pour alimenter sa réflexion (voir www.sunsource.net):
- Sun Java Desktop
- StarOffice basé sur OpenOffice (production et support)
- Sun Java Studio basé sur NetBeans
- Solaris et OpenSolaris
- Sun Grid basé sur un "Grid Engine" OpenSource
Cette année a été l'occasion pour Sun de faire un pas vers le développement OpenSource; le code source de son système d'exploitation maison, Solaris, est donc publié sous licence SDDL, inspiré de la Mozilla License. En 3 semaines, 500.000 inscriptions ont été effectuées pour télécharger Solaris 10. Simon rappelle qu'il n'est en aucun cas question de nuire ou de concurrencer la communauté GNU/Linux.
A la question: "Quand Sun délivrera Java en licence OpenSource ?", Simon répond que la question n'a pas lieu d'être:
- Java Tiger SE 5.0 permet les dérivés F/OSS (Free/OpenSource Software)
- Le projet de la fondation Apache "Harmony" est une implémentation libre d'un JRE
- Les serveurs d'applications Java EE sont aussi F/OSS: JBoss, Jonas, Apache, Geronimo, Glassfish.
3-1-2. SOA: "SOA, From Hyper to Reality" (Nicolai Josuttis, IT-communication)▲
Auteur de plusieurs livres de POO en C++, Nicolai Josuttis est consultant indépendant et architecte d'applications d'entreprise (IT Communication). Il nous a donné lors de cette conférence, un retour d'expérience de son activité au sein d'un grand groupe télécommunication, de sa mise en oeuvre d'une architecture basée sur SOA (Service Oriented Architecture).
SOA est souvent présenté comme la fin des architectures 3-tiers, le paradigme est à la mode et les efforts des majors du logiciel (Microsoft, IBM) proposent de plus en plus de support et de littérature sur le sujet. Beaucoup d'organisations utilisent les Web Services depuis quelques années et s'interrogent sur l'intérêt d'une architecture basée sur SOA pour leur SI.
Une architecture SOA est la définition d'une architecture basée sur:
- des services distribués,
- des services dirigés par contrat entre le consommateur et le fournisseur du service
- aucun modèle conceptuel ne doit introduire de goulot d'étranglement
- un typage générique
- la signature des services
- SLA
- un versionning strict pour la définition des services et des structures de données
- le choix d'une granularité adaptée pour la conception, défintion de patterns
- une politique de sécurité (authentification des consommateurs de services)
- la gestion de caches
- prise en considération des performances et temps de réponse
L'expérience de Nicolai Josuttis démontre donc que la mise en place d'un SOA (et son succès) n'est pas uniquement lié à une implémentation technique,
mais à une organisation générale, à la définition claire de la logique métier, à la prise en compte de trés nombreux
facteurs systèmiques souvent oubliés, au choix des outils de conception.
Du temps, une rigueur lors de la conception et de l'analyse, et un alignement avec l'organisation du SI et la "Buisness Architecture" sont
nécessaires, SOA n'est pas LA solution magique, mais une solution souvent adaptée aux problèmes actuels.
Cette session a donc présenté en détail les différents points énumérés ci-dessus. Le concept étant assez récent et méconnu, j'ai particulièrement apprécié ce retour d'expérience comme base de comparaison personnelle pour les architectures que je serais amené à mettre en place. Les grandes suites de développement logiciel (Visual Studio, Rational Software Architect) intègrent de mieux en mieux ce concept, et il serait dommage de rater la vague SOA (si SOA est la solution adaptée au problème) par manque d'information.
3-1-3. Improve Your Projects: "OO Project Estimation" (Jan Pries-Heje, IT University of Compenhague)▲
Le sujet est toujours autant à la mode et finalement assez ambitieux. Evaluer avec quasi exactitude le coût en jour/homme
d'un projet reste trés délicat et s'abandonne à de nombreuses variables et incertitudes.
Jan Pries-Heje, enseignant à l'université de Copenhague, et
à l'université IT de Gothenburg est spécialisé dans l'ingénierie des projets et du management et est un auditeur certifié ISO 9000,
il a présenté la thèse de pouvoir estimer un projet selon deux approches.
Jan Pries-Heje a rappellé en introduction les statistiques d'échec des projets IT et les causes des mauvaises estimations:
- Il n'y a pas d'activité d'estimation bien établie dans la gestion de projet.
- Il y a une méconnaissance de ce qu'englobe une estimation.
- On ne base pas ces estimations sur les expériences précédentes.
- On ne passe pas assez de temps à l'activité d'estimation, etc...
La première approche est appellée "UCP (Use Case Points)", cette technique est basée sur les UC identifiés
pour un projet. Elle consiste en une affectation de poids pour chaque UC (UC simple, moyen ou complexe),
puis l'on détermine pour chaque UC un poid représentant le nombre de transactions à implémenter pour un UC,
un poid relatif au nombre de classes approximatives nécessaires, etc...
On prend ensuite en compte différents types de facteurs: les TCF (Technical Complexity Factor: le système est-il distribué ?, il y a t-il une gestion de la
concurrence ?, un soin particulier pour les performances ?), et les EF (Environmental Factors: les spécifications sont-elles "stables" ?, connait-on le langage utilisé ?)
Suite à ces différentes identifications, une méthode de calcul +/- complexe permet d'obtenir une estimation en heure/homme.
La seconde approche exposée est celle de "The successive principle", ou la technique dite "des trois points". Il s'agit en fait d'une estimation graphique, en dessinant une courbe en fonction de trois points à évaluer:
- Estimation optimiste (Vo)
- Estimation la plus probable (Vl)
- Estimation pessimiste (Vp)
Certaines règles de calculs sont ensuite appliqués avec ces chiffres (calcul de la valeur médiane, de la déviation standard) et permettent d'approcher un nombre d'heures/homme.
La première approche peut paraître assez lourde, avec une suite de calculs et d'estimations contraignants pour un chef de projet, par rapport à la seconde basée sur une évaluation graphique. Dans tous les cas, vous pouvez sans problème tester ces méthodes sur certains projets "pilotes" et apprécier l'exactitude des résultats avec les estimations que vous auriez d'ordinaire donné, et la durée réelle obtenue sur ces projets. Il n'y a pas, de toute façon, de méthode idéale pour votre société et son contexte de production. Il faut avant tout pratiquer et adapter.
3-2. Mardi 27 Septembre▲
3-2-1. Keynote: "Beyond Agile: Smart" (Ivar Jacobson, Ivar Jacobson Consulting)▲
Dr Ivar Jacobson n'est plus à présenter: précurseur de la modélisation orientée composant, fondateur de la méthode OOSE (Object Oriented Software Engineering), et de UML (Unified Modeling Language), il est désormais consultant pour sa propre société: Ivar Jacobson International.
Pour Ivar Jacobson, les méthodes Agiles sont trés (trop) à la mode, tous les acteurs du monde du développement arborent une certain fierté et facilité à dire "nos méthodes sont agiles". Mais il rappelle simplement que d'expérience, lire 30 ouvrages sur les bonnes pratiques et méthodes Agiles ne sert à rien, il faut avant tout pratiquer et adapter les méthodes à son organisation.
Une méthode Agile est issue d'une connaissance "implicite/tacite": l'expérience du travail en équipe, l'expérience des projets passés, l'intérêt personnel. Une méthode comme UP (Unified Process)
fait appel à une connaissance dite "explicite": connaissances structurées et formelles, description avec une granularité
fine de chaque étape du développement, formulation claire des processus et rôles.
D'apparence, les méthodes agiles reposent sur des principes fondamentaux issus du bon sens qui sont accessibles pour tous, mais
dans les faits il en est autrement. Le problème avec ces connaissances qualifiées de "tacites" est qu'elles sont trés différentes
en fonction des esprits qui les interprete et entraînent de nombreux débats. Un procédé comme UP par exemple, formalise
toute une démarche de façon compréhensible et acceptable par tous.
Le juste milieu ou consensus entre ces 2 manières d'appréhender le savoir est appelé "Smart" par Ivar Jacobson. Un processus "Smart" est défini par:
- Apprentissage aisé et rapide
- Démarche "invisible", c'est à dire plus flexible, moins lourde
- Appliquer les méthodes avec légèreté, en conservant de la qualité
- Rendre une équipe plus collaborative
- Laisser beaucoup de place à la créativité
Etre "Smart" c'est être un "agent intelligent": proactif, flexible, réactif, autonome et qui peut agir à tous les niveaux du développement (spécifications, conception, implémentation, gestion de projet). Naturellement, on fait directement le rapprochement avec XP (eXtreme Programming) et la présentation de Ivar Jacobson, même si la réflexion est un peu différente.
3-2-2. J2EE: "EJB 3.0 - A Standard From the Outside In" (Mike Keith, Oracle)▲
Je pense avoir autant choisi cette conférence par son intitulé que par son auteur. Mike Keith, en sa qualité de "Specification Lead"
de la JSR 220 (Enterprise JavaBeansTM 3.0) est l'un des mieux placé pour parler de ce domaine.
Mike Keith est également le représentant de Oracle Corp. au sein du groupe d'experts Java EE 5 (JSR 244) et
l'architecte de Oracle TopLink et OC4J EJB Container.
La liste des objectifs, améliorations et fonctionnalités des EJB 3.0 ont donc été abordés par Mike Keith. Cette nouvelle spécification doit donc: - Simplifier le modèle de développement des EJB, - Simplifier l'implémentation pour les clients, - Réduire l'apprentissage pour les développeurs, - Réduire le nombre d'artefacts nécessaires (interfaces distantes, locales, etc.), - Ajout des intercepteurs, de l'injection de dépendances, - API de persistance des EJB basée sur d'autres ORM, |
Du coté des Session Beans, on utilisera donc des objets "POJO" (Plain Old Java Object) et "POJI" (Plain Old Java Interface). Ces classes Java standards
seront encadrées d'annotations pour spécifier le type de l'EJB, les interfaces Local/Remote, le modèle de sécurité, le modèle transactionnel. Des annotations
détermineront également quelles méthodes sont des méthodes utiles au cycle de vie de l'EJB et quel intercepteur peut être employé au dessus de l'EJB.
Pour les Entity Beans, l'utilisation d'objets simples Java (POJO) et la suppression des artefacts inutiles pour le développeur sont également
au programme. De plus de nouvelles amélioration rendront le développement sur une plateforme J2EE plus productive:
- Héritage et polymorphisme amélioré,
- Mapping O/R réétudié,
- Possibilités accrues de l'EJBQL,
- Entity Beans Géré par un EntityManager,
- Un Entity Bean peut être détaché du conteneur,
- Utilisation des annotations.
Voici donc en bref les différents points présentés lors de cette session. Mike Keith donnait également une autre conférence sur le thème des langages de sixième génération, et plus particulièrement le sujet "The Next Impedance Mismatch - Mapping Java Objects and Components to XML", illustrant l'importance de la persistence des objets pour Oracle.
3-2-3. J2EE: "Workflow, BPM, Orchestration and Java" (Tom Baeyens, JBoss)▲
Tom Baeyens est le fondateur du projet jBPM de la société JBoss, il fait également partie des experts sélectionnés pour travailler sur les JSR 207 (Process Definition for Java) et JSR 208 (Java Business Integration).
Un programme vaste pour cette session qui se propose de démystifier ces quelques termes: Workflow, BPM et Orchestration. Tom Baeyens a donc expliqué la terminologie utilisée dans le domaine du BPM:
"Business Process" (ou Processus Métier): processus récurrent dans une organisation. Il est défini par un but et l'ensemble des étapes nécessaires pour atteindre ce but. Un processus non-récurrent/occasionel est qualifié de "Ad hoc Process".
"Workflow": Un Workflow décrit comment des personnes doivent travailler ensemble afin d'accomplir un Business Process.
"Business Process Management" (BPM): Approche d'analyse et d'amélioration des Business Process d'une entreprise, dans le but de rendre l'organisation plus efficace.
"Orchestration": Composer des nouveaux services avec d'autres services (basé sur SOA, WebServices et XML).
Utiliser une solution de BPM passe obligatoirement, selon Tom Baeyens, par GOP ("Graph Oriented Programming"). Il s'agit d'une notation
graphique standardisée décrivant les processus, intégrée dans des outils destinés aux analystes métiers, et supportée par les langages
orientés objets. La description de ces composants invariants du BPM a abouti ensuite sur la présentation des outils du marché (jPDL, BPEL) et sur le produit
édité par JBoss: jBPM.
Une conférence un peu courte mais trés interessante comme introduction au BPM et ses avantages.
3-3. Mercredi 28 Septembre▲
3-3-1. Java 5.0: "Monitoring and Managing in Java SE 5" (Mandy Chung, Sun Microsystems)▲
Il s'agissait donc de la dernière conférence des JAOO 2005, et c'est Mandy Chung, ingénieur sénior pour Sun Microsystems,
et responsable de la JSR 174: Monitoring and Management Specification for the JavaTM Virtual Machine qui
c'est chargée de nous présenter son propre travail autour de la plateforme Java SE 5, de l'API java.lang.management
et de l'utilitaire JConsole. La présentation était vraiment bien, Mandy Chung ne s'est pas contentée de lire son tutoriel mais bel et bien d'expliquer le modèle mémoire de la JVM et ce que permet l'API de Monitoring mis à disposition dans Java SE 5. Sa conférence c'est articulée en 4 points: - Une démonstration de l'utilitaire JConsole - Présentation du modèle mémoire (Platform Instrumentation) - Spécifications pour la conception - L'utilisation des MBeans, JMX, MXBeans La démonstration était assez concluante, et, même si il n'est pas conseillé d'utiliser un outil de monitoring fin (comme IBM Tivoli) en production (dégradation des performances), vous pouvez néanmoins utiliser JConsole comme base de "Fine tuning" de la gestion mémoire, du garbage collecting, de gestion des threads, du deadlocking. |
3-3-2. Keynote: "Who Will Write Software in 10 Years from now - and where ?" (Sélection de conférenciers)▲
Martin Fowler avait choisi de réunir 4 conférenciers pour discuter de différents thèmes et répondre aux questions posées par l'auditoire. Ces experts était donc (respectivement de gauche à droite): Martin Fowler (ThoughtWorks), Frank Buschmann (Siemens AG), Steve Cook (Microsoft), Jimmy Nielsen, Dave Thomas (Bedarra Research Labs).
L'objectif initial était donc de lancer une réflexion sur l'avenir du développement et se projetter en 2010: Qui écrira les logiciels ? ou écrira-t-on les logiciels ?.
Des sujets d'actualité pour les occidentaux qui appréhendent à juste titre l'Off-shoring et Out-sourcing: de plus en plus de grands groupes délocalisent leurs centres
de développement informatique ou régie informatique à l'étranger, plus particulièrement en Asie (Inde, Pakistan) et en Europe de l'Est (Pologne, Roumanie).
Pour chacun, l'approche de la programmation sera sensiblement affectée par "les logiciels pour concevoir des logiciels", qui apparait notamment grace aux techniques
de modélisation basée sur MDA et autre Méta-Modélisation (modèles pour les DSLs: Domain Specific Languages). On assemblera de plus en plus les applicatifs de façon
visuelle en respectant de grands principes architecturaux comme ESB (Enterprsie Service Bus), SOA (Service Oriented Architecture).
Une question attendue a également été soulevée: Google sera-til le leader incontestable de l'information sur Internet en 2010 ?, assistera t-on à un affrontement entre Microsoft et Google ?. Dave Thomas a rappelé que si Microsoft est leader mondial des sytèmes d'exploitation sur les postes clients et l'un des premiers fournisseurs de solution de développement logiciel, Google ne se situe pas pour le moment exactement sur le même marché.
4. Conclusion▲
Première participation de Developpez.com à la conférence JAOO, et le bilan est trés positif. D'un point de vue pratique, toutes les conditions d'organisation, d'information, de divertissement ont été trés satisfaisantes. Je n'ai malheureusement pas pu assister aux 2 jours de sessions "tutorials", faute de temps, l'année prochaine peut-être...
Avec des sujets trés ciblés sur les demandes actuelles du marché du logiciel (SOA, BPM, .NET et J2EE, DSL, Agilité), les décideurs et architectes peuvent assister à une revue technologique trés complète et obtenir les informations les plus justes de la part des éditeurs (Sun, Microsoft, IBM, Oracle), et des retours d'expérience de qualité.