Introduction à Java et aux applications distribuées
Les spécificités de Java
- La plate-forme Java et les machines virtuelles.
- Comparaison avec les autres environnements.
- Les différentes implémentations.
Architecture distribuée
- Structure d'une application : le modèle MVC-2, notion de composant.
- Introduction aux bus d'objets distribués : Corba, RMI.
- Les différentes couches d'une application, typologie des applications Java.
Architectures transactionnelles
- Problématique des transactions et des transactions distribuées.
Technologies associées
- Panorama des technologies JEE.
- La galaxie XML et les services Web.
- Evolutions de la plate-forme JEE.
Clients JEE et gestion de la présentation
Les " clients " de JEE
- Clients Web. Applets. Applications clientes " lourdes ", riches (RIA) et mobiles. HTML et autres services de présentation, DOM, XHTML, Ajax.
Gestion de la présentation
- Les servlets et le container Web.
- Les JSP, Javabean, librairies de balises, CustomTag.
- Le framework Struts et les JSF (Java Server Faces).
Les conteneurs de composants JEE
- Rôles et apports : états, multithreading, pooling et réutilisation, etc.
- Modèle de sécurité de JEE.
- Les transactions dans le JEE.
- Intégration de la persistance.
- Le JNDI et l'accès aux ressources.
- Paquetage de déploiement : modules Web, EJB, connecteur et clients.
Les services de JEE
Les composants
- Les différents types d'EJB et leur rôle : Entity Bean, session bean et message driven bean.
- Accès des applications clientes aux composants : accès via le JNDI et injection de dépendance des EJB 3.0.
- Les Session Beans statefull et stateless: cycle de vie, recommandations d'emploi.
Gestion de la persistance
- Accès standardisé aux bases de données, gestion avec le JDBC.
- Principe du Mapping object/relationnel.
- Java Persistence API et ses implémentations : EJB entités, Hibernate, …
- Conseils et retour d'expériences.
Architecture orientée message
- Le service de messagerie de Java : le JMS (Java Message Service).
- Les Message-driven Beans : support de message JMS, XML et d'autres types ave le JCA.
Aspects complémentaires
- Programmation par aspects et intercepteurs des EJB 3.0.
- Support transactionnel avec le JTA.
- Standardisation de l'accès aux données avec le JCA.
- Authentification et autorisation.
XML, SOAP et les services Web
- Introduction à SOAP, aux services web, WSDL et UDDI.
- Les différentes API du JEE : JAX-RPC et SAAJ. Evolution du JEE 5 : JAXB et JAX-WS.
- Introduction aux SOA.
Développement d'une architecture distribuée en Java
- Démarche d'analyse et de conception d'un projet JEE : l'approche orientée composant.
- Règles de conception et design patterns : patterns de base et patterns spécifiques au JEE, études de cas.
- Cycle de vie des projets JEE.
- Performances et tests : identification des métriques et des types de mesures, mesure des performances d'une architecture multiniveaux distribuée. La haute disponibilité, la tolérance aux pannes et les différents niveaux de clustering. Les outils de test.
- Les différents acteurs d'un projet JEE.
Panorama des offres JEE du marché
- Plates-formes commerciales : IBM WebSphere, BEA WebLogic, Borland AppServer, Oracle AS, Sun One App Server.
- Briques JEE libres : JBoss, Jonas, Apache Tomcat, Open JMS, Axis, etc.
- Environnements et outils de développement : présentation d'Eclipse, rôle de JUnit et de Apache ANT dans le développement, Rôles des AGL et des outils MDA.
- Etudes et comparaison.