Formation JAVA - J2EE
Présentation

Java Enterprise Edition, ou Java EE (anciennement J2EE), est une spécification pour la technique Java de Sun plus particulièrement destinée aux applications d’entreprise. Ces applications sont considérées dans une approche multi-niveaux. Dans ce but, toute implémentation de cette spécification contient un ensemble d’extensions au framework Java standard (JSE, Java Standard Edition) afin de faciliter notamment la création d’applications réparties (Wikipédia). Java est un langage capable de construire n'importe quel type d'architecture applicative aussi bien destinée à un poste utilisateur, qu'à un serveur métier ou à un serveur Web.
Au terme de cette formation, vous aurez acquis la connaissance de la syntaxe et des concepts du langage Java et saurez construire une application Web complète, dotée d'une architecture à trois niveaux. Vous connaîtrez donc les bases du développement Java et Java EE.

Objectif
1er niveau
- Maîtriser le langage Java en terme de mécanismes de base et de syntaxe ainsi que ses classes utilitaires incontournables.
- Apprendre la méthodologie pour débuter une analyse, la conception et le développement d'une application Java.
- Pour cela la pédagogie est orientée autour d'un cours sur l'analyse, la conception et la programmation en Java avec de nombreux travaux pratiques.
2eme niveau
- Utiliser la syntaxe Java et les classes
- Utiliser des JDK 1.5 et 1.6
- Utiliser les entrées / sorties de Java
- Lire et écrire des classes Java
- Accéder à un SGBDR avec JDBC
- Utiliser Java EE et les architectures Web
- Créer une applicationWeb basée sur les JSP / Servlets
Public
- Développeurs d'applications en langage Java.
Pré-requis
- Une bonne expérience dans un langage structuré est nécessaire.
- Une connaissance des concepts objet, sans être indispensable, constitue un atout.
Connaissances à acquérir
- Fichiers des projets Java, classes Java, diagrammes d'interactions UML, modèles du domaine, modèles de conception, Design Patterns, collections Java
Compléments d'informations
Introduction
- Historique
- Caractéristiques de Java
Outils de développement
- Le JDK ( versions, évolutions )
- Les environnements intégrés
- Les sources d'information et de documentation
Bases du langage
- Types de données élémentaires
- Références
- Tableaux
- Chaînes de caractères
- Opérateurs et Instructions
- Structures de données (Vector, Collection)
- Notion de package
- Gestion des exceptions
Gestion des objets
- Classes, instances et références
- Constructeurs
- Variables et méthodes de classe
- Garbage Collector
- Sous-classes et héritage
- Polymorphisme
- Classes imbriquées
Applets
- La classe Applet
- Passage d'arguments aux Applets
- Tests et déploiement
Interface graphique (AWT & SWING)
- Gestion des coordonnées et des tailles
- Gestion des fenêtres et des contrôles
- Layout Manager
- Gestion des événements
- Gestion du graphisme
- Aperçu sur les classes "SWING"
Entrées / Sorties
- Lectures/écritures dans un fichier
- Lectures/écritures à l'écran
- Gestion des répertoires et des attributs de fichiers
- Sérialisation et Introspection
Réseau
- Gestion des URLs
- Téléchargement d'images
- Dialogues http
Threads
- Concepts
- Gestion des threads
- Interface Runnable
- Aspects avancés
Accès aux bases de données (JDBC)
- Architecture générale
- Etablissement d'une connexion
- Mise en oeuvre de requêtes
---------------------------------------------------------------------------
Développement JAVA avec J2EE
Objectif : Etudier tous les aspects de programmation Java côté serveur.
Développements Web ( Servlets, JSP ... ) et développements dans un contexte d'architectures client/serveur à trois niveaux ( RMI, JNDI, EJB ... ).
Publics : Développeurs d'applications client/serveur en langage Java.
Programme :
Module 1 : Architecture J2EE
n-tiers
Terminologie, vue d'ensemble
Module 2 : Servlets
Cycle de vie d'un Servlet
Code type d'un Servlet
Invoquer un Servlet depuis un client HTTP
Récupération des paramètres d'initialisation
Considération sur le multi-threading
Module 3 : JSP (Java Server Page)
Présentation
Mise en oeuvre avec le moteur TomCat
Principes fondamentaux (translation en servlet...)
Directives, Actions, Scriplets...
Utilisation de JavaBean (Théorie & T.P.)
Module 4 : MVC2 (Servlet+JSP+JavaBean)
Présentation du modèle MVC2 et variantes
Gestion des Cookies et des Sessions.
Gestion du contexte applicatif
RequestDispatcher / forward
Module 5 : Déploiement Web
web.xml
Arborescence à respecter
Archive web (.war)
Pool de connexions (javax.sql.DataSource)
Module 6 : Présentation de Taglib & STRUTS
Présentation des TagLib (intérêts , utilisation , programmation,...)
Présentation de la bibliothèque standard JSTL
Présentation de STRUTS (Composants, fonctionnements)
Module 7 : RMI (Remote Method Invocation)
Architecture et principe de fonctionnement
Code type de l'interface de l'objet distant
Code type de l'application cliente
Code type de l'application serveur
Mise en oeuvre (avec RmiRegistry)
Callback, Factory, Sérialisation
Problèmes de sécurité
RMI-over-IIOP
Module 8 : Présentation de JNDI
Introduction, terminologie
API / SPI
Initial Context
Possibilités de JNDI , LDAP
Module 9 : EJB ( Entreprise Java Beans)
EJB et J2EE
. Architecture ( serveur, container, ... )
. Appel depuis un client distant
. Session Beans (stateless & stateful)
. Entity Beans (BMP et CMP 2)
. Méthodes de recherche (findByPrimaryKey, ...)
. Liaisons entre EJB "session" et EJB "entity"
. Interfaces locales
. EJB pilotés par messages JMS asynchrones.
. Gestion des transactions
. Déploiement
-----------------------------------------------------------------------
L'essentiel des concepts java et architecture J2EE
Objectif : Expliquer les principes de fonctionnement de la plate-forme JAVA et décrire dans le détail l'architecture J2EE (Vue globale & apports des différentes technologies "Servlet/JSP" , "EJB" , "JCA", ...).
Publics : Intégrateurs, Métrologues, Responsables , Chefs De Projet , Décideurs , ....
Programme :
BASES DU LANGAGE JAVA
- Caractéristiques de la Machine Virtuelle Java
- Packages, CLASSPATH & archives (.jar)
- Objets ( Classes, références, Interfaces, ...)
- Gestion des exceptions
- Concept de Thread & implications
- JDBC et l'accès aux bases de données
- Sécurité "Java 2"
ARCHITECTURE N-TIERS
- Les architectures n-tiers
- Distribution
- Services
- Middleware
- Objets "métier"
- Serveurs d'application
CLIENTS GRAPHIQUES "LOURDS"
- AWT/ Swing
- Applet
- Java Web Start
OBJETS DISTRIBUÉS EN JAVA
- Principes
- RMI
- CORBA & RMI-over-IIOP, liens avec JNDI
ARCHITECTURE J2EE
- Vue d'ensemble sur l'architecture J2EE
- Archives pour le déploiement (.jar , .war, .ear)
- Principaux Serveurs d'appli (WebSphere,WebLogic)
SERVLET & PAGE JSP : COMPOSANTS "WEB" / CLIENTS LÉGERS
- Principes de fonctionnements
- Servlets , Pages JSP, JavaBean
- Cookies Http & gestion des sessions
- Notion d'application "web" & archive ".war"
- TagLib (utilité , standard JSTL )
- Modèle MVC2 , présentation de STRUTS
SERVICES FONDAMENTAUX
- JNDI ...“ service de nommage - annuaire
- Pool de connexions vers SGBDR (DataSource)
EJB ( ENTERPRISE JAVA BEA N)
- Présentation des EJB
- Invocation depuis un client via JNDI
- Indirections (références)
- Configurations nécessaires (ejb-jar.xml)
- Présentation des différents types d'EJB (Session , Entity, ...)
- Mode de persistance (CMP, BMP, ....)
SERVICES EVOLUES
- JTS/JTA et gestion déclarative des transactions
- Rôles (sécurité) et JAAS ( Authentification , ...)
- JMS et messages asynchrones interapplicatifs.
- Connecteurs JCA
------------------------------------------------------------------
Administration JBoss
Objectif : Savoir configurer et administrer le serveur JBoss (Pool de connexions, Sécurité, Services asynchrones, Topologie en cluster).
Publics : Personnes souhaitant administrer JBoss (Administrateurs, Architectes, Développeur d'applications « j2ee » ).
Pré-requis :
La connaissance des concepts fondamentaux liés au langage Java et à l'architecture J2EE est indispensable.
Programme :
INTRODUCTION
Présentation de JBoss
Présentation des standards (J2EE, ANT , STRUTS ...)
Topologies de base
Spécificités du serveur (configuration, administration, ...)
MISE EN OEUVRE DE JBOSS
Installation
Structure des répertoires
Lancement et arrêt du serveur
Différentes configurations (minimal ,default, all ==> cluster)
JMX ET ARCHITECTURE INTERNE DE JBOSS
JMX et ses concepts (micro-kernel)
JBoss Mbean Services, bootstrap
MBean (configuration et dépendances)
Principaux services de JBoss
Fichiers de configuration
JNDIView
JCA ET POOL DE CONNEXIONS JDBC
Présentation de JCA
Config. DataSource (Pool de connexions JDBC)
DEPLOIEMENT D'APPLICATIONS « J2EE »
Déploiement d'archives « ear » à chaud
Fichiers de déploiement propres à JBoss
Déploiement d'une application cliente "non web"
CONFIGURATION DE LA PERSISTANCE CMP 2
Mapping objet-relationnel
Standard J2EE
Configuration spécifique à JBoss
SERVICES ASYNCHRONES (JMS, MAIL )
Présentation de JbossMQ (Implémentation JMS)
Configuration des Files de messages et des "Topic"
Choix du protocole d'accès à JMS selon les fabriques
enregistrées dans JNDI
Gestion de la persistance associée à JMS
Paramétrage de JavaMail et accès via JNDI
DOMAINES DE SECURITE
Vue d'ensemble sur la sécurité J2EE & JAAS
Gestion des "Login" selon différents modes
Gestion des associations (rôles, groupes d'utilisateurs) via
fichiers Xml, serveur LDAP ou base de données.
Check-List des points importants
INTEGRATION DE TOMCAT (CONTAINER WEB)
Mode "développement" (sans apache)
Mode "production" (avec apache) et mod_jk
Répartition de la charge (Load Balancing)
FONCTIONNEMENT EN CLUSTER
Présentation du clustering de Jboss (partitions, ...)
Vue coté web
Configuration d'une partition
Mécanismes internes (HA-JNDI , HA-RMI)
Impacts du clustering sur les fichiers de configuration "xml"
et sur le code java
Considérations sur l'invalidation des caches
ANALYSE DES LOGS ET DES PERFORMANCES
Log4J , fichiers de logs de JBoss
Activation de certaines traces
Analyse des performances