» Introduction
Les enjeux du développement d'application : découpage en composants, découpage en couches.
Que signifie " java " ? Un langage, une machine virtuelle, des librairies, une spécification (JEE).
Présentation de l'écosystème Java et de l'émulation entre le standard JEE et les frameworks alternatifs (Spring, Struts, Hibernate...).
Le rôle de chacun : développeur, architecte, DBA, testeur, chef de projet.
» Avènement des conteneurs légers
Le rôle d'un conteneur : gestion du cycle de vie des objets, injection, interception, transactions, sécurité, exécutions planifiées...
Les retours d'expériences des EJB 2.x et la montée en puissance du conteneur Spring.
De la nécessité (ou non) d'un serveur d'application.
L'approche POJO (Plain Old Java Objects) : avantages et effets de bord.
Le retour en force des EJB avec JEE5 (EJB 3.0) et JEE6 (EJB 3.1.), comparaison avec Spring.
Vers une unification EJB/Spring ?
Les serveurs d'applications.
» Persistance des données, mapping objet relationnel
Les différentes bases de données.
Le rôle d'un framework de mapping objet / relationnel.
La 'déferlante' Hibernate, les principes établis par ce framework. La difficulté à maîtriser un framework de mapping objet / relationnel. D'Hibernate à JPA puis à JPA 2.
» Le web
L'offre historique : JSP/Servlet.
La nouvelle donne posée par Struts.
Les différentes approches : MVC, Composant.
Le standard JSF et les frameworks concurrents : Spring MVC, Struts 2, Wicket.
Les servlets 3.0, Comet.
Le RIA : JavaFX, Echo2, GWT.
» Architectures distribuées et intégration au SI
L'enjeu des transactions distribuées et le rôle d'un moniteur transactionnel.
Les Web services : JAX-WS, JAX-RS (REST).
L'échange de message avec JMS. JCA.
Les ESB. Présentation de JBI à travers ServiceMix.
» Déploiement et serveurs d'applications
Différents livrables pour différents types d'applications.
Comparaison des forces en présence : les serveurs d'applications JEE (forces et faiblesses de chacun), les conteneurs de servlets, le serveur Spring.
La nouvelle donne posée par JEE6 'web profile'. OSGI.
» Les langages alternatifs
Support d'autres langages par la JVM. JSR 223 et 292.
Quels sont ces autres langages (Groovy, Ruby, Scala) ?
Le couplage avec des programmes java existants.