AMOE DEVELOPPEUR 9-CR-MOE1 20 jours (140h) Moyens de la formation : Formateur expert du domaine - 1 ordinateur, 1 support de cours version papier ou numérique, un bloc note et stylo par personne - vidéo projecteur - tableau blanc. Modalités pédagogiques : Présentation des concepts, démonstration, exécution, synthèse, exercices d'assimilation. Validation : Questionnaire final de validation des acquis - report du résultat sur l'attestation de stage. Type d'action : Acquisition des connaissances. Suivi : Feuille d'émargement signée par 1/2 journée - évaluation de satisfaction stagiaire - évaluation des acquis - attestation de stage. Objectifs Comprendre et savoir mettre en œuvre les technologies fondatrices de la plateforme J2EE, maîtriser ses outils et ses frameworks pour permettre le développement d’applications Java/J2EE. Pré-requis Développeurs, chefs de projets, souhaitant acquérir des connaissances fondamentales sur la plateforme J2EE Programme de cours 2 jours RAPPELS • XML : Organisation des données - Structure arborescente - Choix éléments/attributs • XML : Syntaxe XML - Niveaux syntaxiques - Entête - Documents XML bien formés • XML : Les DTD - Intérêt Utilisation DTD externe DTD interne Syntaxe Entités - Principaux types de collections - Choix d'une collection - Rôle d'un itérateur • JAVA : Les entrées/sorties - Flux d’octets, flux de caractères combinaison des flux écriture et lecture dans des fichiers Entrées/sorties clavier Sérialisation d’objets • JAVA : L’accès aux bases de données (JDBC) - Les différents types de drivers JDB Requêtes SQL de type select et mises-à-jour Requêtes paramétrées Transactions Méta-data 4 jours • XML : Les espaces de nom - Objectifs - Mise-en-oeuvre • XML : Les schémas XML - Présentation Principe Syntaxe Utilisation d'un schéma • JAVA : Les nouveautés de la version 5 - Imports static Généricité Nouvelle instruction de boucle for Autoboxing Types énumérés Méthodes à nombre variable d’arguments Annotations • JAVA : Multi-threading - La classe Thread et l'interface Runnable Cycle de vie et états d’un thread Gestion de la concurrence par synchronisation Priorité des threads, groupes de threads • JAVA : Collections SERVLETS / JSP • Architectures n-tiers - Description La plateforme J2EE Les principaux composants de J2EE Constitution d'un serveur d'applications Présentation du serveur Tomcat Notion d'application web • Servlets - Principe Comparaison avec les scripts CGI Description du protocole HTTP Cycle de vie d'une servlet Initialisation d'une servlet Descripteur de déploiement XML Conservation de l’état d’une session: cookies, champs cachés, sessions et ré-écriture d'URL - Redirection/inclusion vers une autre servlet ou une JSP - Filtrage des requêtes/réponses - Filtres de servlets • JAVABeans - Intérêt, structure Introspection Persistance Utilisation dans une application web • Accès aux bases de données - Rappels sur les API JDBC Pools de connexions avec les DataSources Principe du service de nommage JNDI Mise en œuvre des API JNDI • JAVA Server Pages (JSP) - Principe Objets prédéfinis Scriplets, actions, directives Gestion des exceptions Personnalisation de balises (Taglibs) Introduction à la JSTL SP et JAVA Beans - Interface et localisation du service • Publication et référencement de services web : UDDI - Annuaire UDDI pour référencer des Services Web (Intranet et Internet) • Mise en œuvre des annuaires UDDI par les applications : découverte dynamique des services, gestion du catalogue des - services • Mise en œuvre des APIs J2EE et Apache - APIs J2EE 1.4 : JAXP, JAX-RPC, JAXM et JAXR - Les librairies Apache : AXIS, XML-RPC • Développement, déploiement et consommation des Services Web - Recherche et invocation de services côté client - Gestion des transactions - Utilisation avec Eclipse, Tomcat, JBoss, WSAD, WebSphere • Architecture MVC2 (Modèle Vue Contrôleur) - Principe Mise en oeuvre Collaboration servlets/JSP/JAVABeans Les servlets comme contrôleur Introduction aux design patterns J2EE • Déploiement - Descripteur de déploiement - Fichiers war, ear • Sécurisation d'une application Web - Objectifs Notions d'utilisateur, de rôle, de realm Authentification et autorisation Sécurité déclarative • Introduction aux technologies associées - Présentation de STRUTS, JAVA Server Faces (JSF) 3 jours WEB SERVICES • Les champs d'application - Principe et objectifs des Services Web - Connectivité des Services Web avec les autres technologies - Les techniques et les protocoles : XML, SOAP, WSDL, UDDI • Conception d'un Service Web - Architecture des Services Web - Techniques de gestion de la sécurité côté Services Web • Le protocole SOAP - Les principes généraux et l'architecture - Les messages SOAP, les messages d'erreur et encodage • Description des Services Web : le langage WSDL - Les types de données - Définition des messages et protocoles d'échange associés 3 jours EJB (ENTERPRISE JAVA BEANS) EJB 2.1 AVEC RAD6 / WEBSPHERE AS 6 • Introduction aux EJB, l'architecture EJB2.1 - La spécification EJB 2.1 - Architecture : la classe Bean, les interfaces Home et Remote, le descripteur de déploiement XML - Les différents types d’EJB - Le rôle du conteneur d’EJB - Présentation de RMI/IIOP, protocole d'accès aux EJB - Principe d’un service de nommage : exemple avec la registry RMI. - JNDI (JAVA Naming and Directory Interface): fonctionnement, applications, API - Localisation des EJB avec JNDI • Les clients des EJB - Les applications «standalone» clientes d'un EJB - Les servlets/JSP clientes d’un EJB - JAVA Beans clients d’un EJB • Déploiement des EJB - Principe du déploiement des EJB, rôle du conteneur EJB - Le descripteur de déploiement en XML et son contenu. - Les différentes étapes du déploiement. - Présentation des fichiers spécifiques à JBoss • Les EJB «sessions» - Comparaison EJB session stateless et stateful - L’EJB session du type «stateless », son cycle de vie - L’EJB session du type « stateful », son cycle de vie: mécanismes de passivation et d’activation - Les accès concurrents sur les EJB session - Rôle du contexte d’un EJB session - Rôle des objets «Handle» sur les EJBs session stateful - Le bon usage des EJB du type session. • Les EJB «entités» - Mapping objet-relationnel, rôle de la clé primaire Les EJB entité BMP, leur cycle de vie Le rôle du contexte d’un EJB BMP Les EJB entités CMP, leur cycle de vie Le langage EJB-QL Critères de choix entre CMP et BMP Les accès concurrents sur les EJB entité • Relations entre EJB - Du modèle objet au modèle EJB - Problématique des relations entre EJB entité - Les différentes relations : de un vers un, de un vers plusieurs, de plusieurs vers plusieurs - Mise-en-œuvre des relations dans les EJB entités • Traitement de messages avec les EJB «message-driven» - Principe des MOM (Middleware Orientés Message) , l’API JMS (JAVA Message Service) - Modèles de messages Publish/Suscribe et Point-To-Point - Structure d’un message JMS (entête, corps, sélecteur) - Principe, mise-en-oeuvre et cycle de vie d'un EJB message-driven. - Descripteur de déploiement - Le client d’un EJB message-driven. • Les transactions et les EJBs - Principe des transactions distibuées : commit à deux phases - Les API JTA : «JAVA Transaction API». - Gestion déclarative et attributs transactionnels - Gestion programmée des transactions - Conséquences sur les performances • Sécuriser l’accès aux EJBs - Les rôles, les groupes de permissions et les permissions sur les méthodes. - Mise-en-oeuvre de la sécurité sur l'accès aux méthodes d'un EJB. - Sécurité déclarative ou programmée 3 jours EJB 3.0 AVEC ECLIPSE / JBOSS - Compatibilité avec les EJB 2.x • les EJB «sessions» - L’EJB session du type «stateless », son cycle de vie - L’EJB session du type « stateful », son cycle de vie: mécanismes de passivation et d’activation • Les Beans «entités» - Mapping objet-relationnel, rôle de la clé primaire - Clé primaire simple ou composite - Le nouveau modèle de persistance EJB3 et ses API JPA - Rôle de l’Entity Manager - Opérations sur les EJB entités - Cycle de vie d’un EJB entité - Les accès concurrents sur les EJB entités - Le langage EJB-QL : syntaxe et utilisation • Relations entre beans « entités » - Héritage : stratégies de mapping - Associations : de un vers un, de un vers plusieurs, de plusieurs vers plusieurs - Mise-en-oeuvre des relations entre EJB entités • les EJB «message-driven» - Structure d’un EJB MD • Intercepteurs d’EJB - Principe des intercepteurs, configuration, chaînage Intercepteurs par défaut Ordre d’invocation des intercepteurs Quelques applications type • Les services web et les EJB 3 - Transformation d’un EJB session stateless en service web 1 jour FRAMEWORKS JAVA/J2EE • Présentation - Rôle d’un framework - Pattern IOC (Inversion Of Control) • Tour d’horizon - JSF Struts Spring Hibernate Autres • L’architecture EJB3 - La spécification EJB3 - Architecture : la classe Bean, les interfaces « métiers », les annotations, le descripteur de déploiement XML optionnel - Les différents types d’EJB : session, entité et message-driven - Packaging et déploiement des EJB 3 - Le rôle du conteneur d’EJB - Localisation des EJB3 avec JNDI - Listeners : principe - Injection de dépendances - Principe et rôle des intercepteurs 4 jours ATELIER • Développement/ Déploiement et Tests d’une application complète simplifiée de commerce électronique