JEE - Présentation générale
Architecture JEE
Les éléments de base
Les conteneurs JEE
Le design pattern MVC
Mise en place de l’environnement JEE
JEE
Chapitre 1
Introduction au JEE
Dr. Raoudha SOUABNI
Contact: souabni_raoudha@[Link]
ISTIC
2021-2022
Dr. Raoudha SOUABNI JEE 1
JEE - Présentation générale
Architecture JEE
Les éléments de base
Les conteneurs JEE
Le design pattern MVC
Mise en place de l’environnement JEE
Plan
1 JEE - Présentation générale
2 Architecture JEE
3 Les éléments de base
Les composants
Les services JEE
4 Les conteneurs JEE
5 Le design pattern MVC
Principe
Evolution de MVC1 vers MVC2
6 Mise en place de l’environnement JEE
Dr. Raoudha SOUABNI JEE 2
JEE - Présentation générale
Architecture JEE
Les éléments de base
Les conteneurs JEE
Le design pattern MVC
Mise en place de l’environnement JEE
Plan
1 JEE - Présentation générale
2 Architecture JEE
3 Les éléments de base
Les composants
Les services JEE
4 Les conteneurs JEE
5 Le design pattern MVC
Principe
Evolution de MVC1 vers MVC2
6 Mise en place de l’environnement JEE
Dr. Raoudha SOUABNI JEE 3
JEE - Présentation générale
Architecture JEE
Les éléments de base
Les conteneurs JEE
Le design pattern MVC
Mise en place de l’environnement JEE
Besoin initial
Dynamiser le contenu web
Apparition de génération dynamique de code
Echanger des informations entre applications
Appel de procédure distante
Création de véritables architectures logicielles
Architectures 3tiers, Modèle-Vue-Contrôleur
Harmonisation des infrastructures
Dr. Raoudha SOUABNI JEE 4
JEE - Présentation générale
Architecture JEE
Les éléments de base
Les conteneurs JEE
Le design pattern MVC
Mise en place de l’environnement JEE
JEE - Java Entreprise Edition
Services répondants aux besoins
Web dynamique
Communication entre applications
Objets communicants
Sécurité
...
Fournir un ensemble d’outils permettant de faciliter la vie du
développeur
Harmonisation des infrastructures
Spécification de déploiement
Dr. Raoudha SOUABNI JEE 5
JEE - Présentation générale
Architecture JEE
Les éléments de base
Les conteneurs JEE
Le design pattern MVC
Mise en place de l’environnement JEE
Plan
1 JEE - Présentation générale
2 Architecture JEE
3 Les éléments de base
Les composants
Les services JEE
4 Les conteneurs JEE
5 Le design pattern MVC
Principe
Evolution de MVC1 vers MVC2
6 Mise en place de l’environnement JEE
Dr. Raoudha SOUABNI JEE 6
JEE - Présentation générale
Architecture JEE
Les éléments de base
Les conteneurs JEE
Le design pattern MVC
Mise en place de l’environnement JEE
L’architecture JEE
Dr. Raoudha SOUABNI JEE 7
JEE - Présentation générale
Architecture JEE
Les éléments de base
Les conteneurs JEE
Le design pattern MVC
Mise en place de l’environnement JEE
Les couches de l’architecture
L’architecture JEE est constituée des couches suivantes :
La couche client : elle interagit avec l’utilisateur et lui présente les
informations. La plate-forme JEE prend en charge différents types de
clients : les clients légers (ex. navigateur web) et les clients lourds
(ex. les applications Java).
La couche Web : elle génère la logique présentation. En fonction
de la requête reçue du client, la couche présentation génère la
réponse adaptée. Les servlets et les JSP d’un conteneur Web
implémentent cette couche.
Dr. Raoudha SOUABNI JEE 8
JEE - Présentation générale
Architecture JEE
Les éléments de base
Les conteneurs JEE
Le design pattern MVC
Mise en place de l’environnement JEE
L’architecture JEE
La couche métier : elle génère la logique métier principale de
l’application. La couche métier propose les interfaces nécessaires aux
composants de services sous-jacents. Les composants métiers sont
généralement implémentés sous forme de composants EJB
(Entreprise Java Beans). Le conteneur EJB gére, entre autres, le
cycle de vie du composant, la persistance et les transactions.
La couche EIS (Entreprise Informations Systems) : cette couche
est responsable des systèmes d’information d’entreprise, notamment
les systèmes de base de données et les systèmes de planification des
ressources de l’entreprise (ERP). La couche EIS correspond au point
où les applications JEE s’intègrent à des systèmes non JEE où à des
systèmes existants.
Dr. Raoudha SOUABNI JEE 9
JEE - Présentation générale
Architecture JEE
Les éléments de base Les composants
Les conteneurs JEE Les services JEE
Le design pattern MVC
Mise en place de l’environnement JEE
Plan
1 JEE - Présentation générale
2 Architecture JEE
3 Les éléments de base
Les composants
Les services JEE
4 Les conteneurs JEE
5 Le design pattern MVC
Principe
Evolution de MVC1 vers MVC2
6 Mise en place de l’environnement JEE
Dr. Raoudha SOUABNI JEE 10
JEE - Présentation générale
Architecture JEE
Les éléments de base Les composants
Les conteneurs JEE Les services JEE
Le design pattern MVC
Mise en place de l’environnement JEE
Nous venons de voir l’architecture globale de la plate-forme JEE.
Nous allons maintenant présenter les différents éléments de base sur
lesquels se base la plate-forme JEE qui permettent le développement
d’application distribuées .
Il existe 3 types d’éléments :
Les composants : Unité logicielle (fonctionnelle) intégrée à une
application JEE et communiquant avec d’autres composants
Les services JEE : Composant technique pouvant être utilisé de
manière distante à travers une interface de manière synchrone ou
asynchrone (ex. JDBC)
Les protocoles de communication : Permettant d’accéder à des
services distants (ex. HTTP - HyperText Transfer Protocol)
Dr. Raoudha SOUABNI JEE 11
JEE - Présentation générale
Architecture JEE
Les éléments de base Les composants
Les conteneurs JEE Les services JEE
Le design pattern MVC
Mise en place de l’environnement JEE
On distingue, en général, 2 catégories de composants :
Les composants Web
Les composants Métiers
Dr. Raoudha SOUABNI JEE 12
JEE - Présentation générale
Architecture JEE
Les éléments de base Les composants
Les conteneurs JEE Les services JEE
Le design pattern MVC
Mise en place de l’environnement JEE
Composants Web
Il s’agit de la partie présentation, interface entre l’utilisateur et les
traitements. Principalement, les composants Web sont classifiés en 2
catégories :
JSP : Les JSP (Java Server Page) sont les pages servant à générer
l’ensemble du code HTML de l’interface utilisateur. On y intègre
aussi bien du code HTML que du code java. Cette technologie est
donc dédiée à la génération de HTML et non au traitement de la
requête de l’utilisateur. On l’appelle généralement : Vue.
Servlet : Une Servlet est une classe Java qui permet de traiter une
requête venant d’un client. Elle s’occuper de traiter les données
envoyées par l’utilisateur et choisir la Vue à retourner à celui-ci. On
appelle cette partie : Contrôleur.
Dr. Raoudha SOUABNI JEE 13
JEE - Présentation générale
Architecture JEE
Les éléments de base Les composants
Les conteneurs JEE Les services JEE
Le design pattern MVC
Mise en place de l’environnement JEE
Composants Métier
Il s’agit de composants spécifiques chargés de :
Traitements des données propres à un secteur d’activité (on parle de
logique métier ou de logique applicative)
Ü Les composants EJB
Interfaçage avec les bases de données
Ü Les entités JPA
On appelle cette partie : Modèle.
Dr. Raoudha SOUABNI JEE 14
JEE - Présentation générale
Architecture JEE
Les éléments de base Les composants
Les conteneurs JEE Les services JEE
Le design pattern MVC
Mise en place de l’environnement JEE
En conclusion
Dr. Raoudha SOUABNI JEE 15
JEE - Présentation générale
Architecture JEE
Les éléments de base Les composants
Les conteneurs JEE Les services JEE
Le design pattern MVC
Mise en place de l’environnement JEE
En conclusion
Nous détaillerons plus loin le design pattern
MVC pour Modèle-Vue-Contrôleur
Dr. Raoudha SOUABNI JEE 15
JEE - Présentation générale
Architecture JEE
Les éléments de base Les composants
Les conteneurs JEE Les services JEE
Le design pattern MVC
Mise en place de l’environnement JEE
JDBC
JDBC = Java DataBase Connectivity
API permettant l’accès à des bases de données gérées par des SGBD
Elle gère les 3 étapes indispensables à l’accès aux données :
la création d’une connexion à la base
l’envoi d’instructions SQL
l’exploitation des résultats provenant de la base
Pour accéder à la base de données, JDBC s’appuie sur des pilotes
spécifiques à un fournisseur de SGBD
Dr. Raoudha SOUABNI JEE 16
JEE - Présentation générale
Architecture JEE
Les éléments de base Les composants
Les conteneurs JEE Les services JEE
Le design pattern MVC
Mise en place de l’environnement JEE
JDBC
Dr. Raoudha SOUABNI JEE 17
JEE - Présentation générale
Architecture JEE
Les éléments de base Les composants
Les conteneurs JEE Les services JEE
Le design pattern MVC
Mise en place de l’environnement JEE
JNDI
JNDI = Java Naming and Directory Interface
API unique pour obtenir (look up) des ressources et les relier
(binding ) à un service de nommage ou à un annuaire
Un service de nommage permet d’associer un nom unique à un objet
(information) et faciliter ainsi l’obtention de cet objet.
Exemple : DNS (Domain Name System) : service de nommage utilisé
sur internet pour permettre la correspondance entre un nom de
domaine et une adresse IP
Un annuaire est un service de nommage : une représentation
hiérarchique des objets qu’il contient : un mécanisme de recherche
Exemple : LDAP (Lightweight Directory Access Protocol)
Dr. Raoudha SOUABNI JEE 18
JEE - Présentation générale
Architecture JEE
Les éléments de base Les composants
Les conteneurs JEE Les services JEE
Le design pattern MVC
Mise en place de l’environnement JEE
JNDI
Dr. Raoudha SOUABNI JEE 19
JEE - Présentation générale
Architecture JEE
Les éléments de base Les composants
Les conteneurs JEE Les services JEE
Le design pattern MVC
Mise en place de l’environnement JEE
JNDI
L’accès à un service de nommage donné est possible au moyen d’un
pilote qui assure le dialogue avec l’API
Dr. Raoudha SOUABNI JEE 20
JEE - Présentation générale
Architecture JEE
Les éléments de base Les composants
Les conteneurs JEE Les services JEE
Le design pattern MVC
Mise en place de l’environnement JEE
JCA
JCA = Java Connector Architecture
API utilisée pour créer des modules qui permettent à un serveur JEE
(où ils sont déployés) de se connecter à un système propriétaire
(legacy system) et de normaliser l’accès et l’interaction avec ce
système
8 Avant JCA, chaque serveur d’application devait fournir un
adaptateur spécifique pour chaque EIS (liaison point-à-point)
4Avec JCA, un même adaptateur fonctionne avec tous les
conteneurs JEE compatibles
Dr. Raoudha SOUABNI
FigureJEE– 21
JEE - Présentation générale
Architecture JEE
Les éléments de base Les composants
Les conteneurs JEE Les services JEE
Le design pattern MVC
Mise en place de l’environnement JEE
JTA/JTS
JTA = Java Transaction Api
JTS = Java Transaction Service
JTA fournit des interfaces Java standards pour permettre la
communication entre un gestionnaire de transaction (JTS) et les
différentes parties impliquées dans un système de transactions
distribuées : les ressources (DB, ...), le serveur d’application et les
applications transactionnelles
JTS utilise JTA pour gérer et accéder à toutes les transactions sur
un système donné
Dr. Raoudha SOUABNI JEE 22
JEE - Présentation générale
Architecture JEE
Les éléments de base Les composants
Les conteneurs JEE Les services JEE
Le design pattern MVC
Mise en place de l’environnement JEE
JTA/JTS
Dr. Raoudha SOUABNI JEE 23
JEE - Présentation générale
Architecture JEE
Les éléments de base Les composants
Les conteneurs JEE Les services JEE
Le design pattern MVC
Mise en place de l’environnement JEE
JMS
JMS = Java Message Service
API permettant à une application JEE de créer, d’envoyer, de
recevoir et de lire des données sous forme de messages (MOM pour
Middleware Object Message) de manière asynchrone
Dr. Raoudha SOUABNI JEE 24
JEE - Présentation générale
Architecture JEE
Les éléments de base Les composants
Les conteneurs JEE Les services JEE
Le design pattern MVC
Mise en place de l’environnement JEE
JavaMail
API standard de gestion de courriers électroniques
Elle permet d’envoyer et de recevoir du courrier électronique et de
manipuler les messages (en-tête, sujet, corps, pièces jointes...)
Note : Ce n’est pas un serveur de courrier mais un outil pour
interagir avec ce type de serveur
Dr. Raoudha SOUABNI JEE 25
JEE - Présentation générale
Architecture JEE
Les éléments de base Les composants
Les conteneurs JEE Les services JEE
Le design pattern MVC
Mise en place de l’environnement JEE
RMI
RMI = Remote Method Invocation
API permettant la communication synchrone entre des objets Java
s’exécutant sur des JVM distinctes
Les objets distants sont manipulés comme s’ils étaient locaux
Dr. Raoudha SOUABNI JEE 26
JEE - Présentation générale
Architecture JEE
Les éléments de base
Les conteneurs JEE
Le design pattern MVC
Mise en place de l’environnement JEE
Plan
1 JEE - Présentation générale
2 Architecture JEE
3 Les éléments de base
Les composants
Les services JEE
4 Les conteneurs JEE
5 Le design pattern MVC
Principe
Evolution de MVC1 vers MVC2
6 Mise en place de l’environnement JEE
Dr. Raoudha SOUABNI JEE 27
JEE - Présentation générale
Architecture JEE
Les éléments de base
Les conteneurs JEE
Le design pattern MVC
Mise en place de l’environnement JEE
Les types de conteneurs
Les serveurs JEE proposent plusieurs types de conteneurs
(containers) pour chaque type de composant.
Dr. Raoudha SOUABNI JEE 28
JEE - Présentation générale
Architecture JEE
Les éléments de base
Les conteneurs JEE
Le design pattern MVC
Mise en place de l’environnement JEE
Les types de conteneurs
Les serveurs JEE proposent plusieurs types de conteneurs
(containers) pour chaque type de composant.
Ü 2 types de composants DONC 2 types de conteneurs :
Dr. Raoudha SOUABNI JEE 28
JEE - Présentation générale
Architecture JEE
Les éléments de base
Les conteneurs JEE
Le design pattern MVC
Mise en place de l’environnement JEE
Les types de conteneurs
Les serveurs JEE proposent plusieurs types de conteneurs
(containers) pour chaque type de composant.
Ü 2 types de composants DONC 2 types de conteneurs :
Une application de type Web (basée sur les composants web)
nécessite un conteneur Web pour son exécution.
Une application utilisant les EJB (basée sur les composants métier )
nécessite un conteneur EJB pour son exécution.
Dr. Raoudha SOUABNI JEE 28
JEE - Présentation générale
Architecture JEE
Les éléments de base
Les conteneurs JEE
Le design pattern MVC
Mise en place de l’environnement JEE
Les types de conteneurs
Dr. Raoudha SOUABNI JEE 29
JEE - Présentation générale
Architecture JEE
Les éléments de base
Les conteneurs JEE
Le design pattern MVC
Mise en place de l’environnement JEE
Les types de conteneurs
Un serveur JEE est un logiciel fournisseur du conteneur Web
et/ou EJB
Web Container / Conteneur Web : capable d’exécuter des JSP,
Servlets et JSF. Il supporte les protocoles HTTP et HTTPS pour
assurer une communication avec le client.
EJB Container / Conteneur EJB : responsable de la couche
métier et de l’exécution des EJB.
Dr. Raoudha SOUABNI JEE 30
JEE - Présentation générale
Architecture JEE
Les éléments de base Principe
Les conteneurs JEE Evolution de MVC1 vers MVC2
Le design pattern MVC
Mise en place de l’environnement JEE
Plan
1 JEE - Présentation générale
2 Architecture JEE
3 Les éléments de base
Les composants
Les services JEE
4 Les conteneurs JEE
5 Le design pattern MVC
Principe
Evolution de MVC1 vers MVC2
6 Mise en place de l’environnement JEE
Dr. Raoudha SOUABNI JEE 31
JEE - Présentation générale
Architecture JEE
Les éléments de base Principe
Les conteneurs JEE Evolution de MVC1 vers MVC2
Le design pattern MVC
Mise en place de l’environnement JEE
Les éléments
Séparation des problématiques liées aux applications interactives en
3 couches :
Modèle :
- Stockage des données
- Traitement sur les données
Vue :
- Affichage des données
Contrôleur :
- Point d’entrée
- Chef d’orchestre
Dr. Raoudha SOUABNI JEE 32
JEE - Présentation générale
Architecture JEE
Les éléments de base Principe
Les conteneurs JEE Evolution de MVC1 vers MVC2
Le design pattern MVC
Mise en place de l’environnement JEE
Fonctionnement
Dr. Raoudha SOUABNI JEE 33
JEE - Présentation générale
Architecture JEE
Les éléments de base Principe
Les conteneurs JEE Evolution de MVC1 vers MVC2
Le design pattern MVC
Mise en place de l’environnement JEE
Fonctionnement
1 Evènement : L’utilisateur interagit avec une Vue (ex. cliquer sur un
bouton)
Ü La Vue envoie une notification d’évènement au Contrôleur
Ü Le Contrôleur envoie une commande au Modèle pour mettre à
jour les données
2 Evènement : Les données dans le Modèle sont mises à jour/modifiées
Ü Le Contrôleur envoie une notification d’évènement à la Vue pour
indiquer que des données ont été modifiées et que la vue doit être
mise à jour
Ü La Vue envoie une commande au Modèle pour demander le
dernier l’état des données (ici la Vue et le Modèle interagissent
directement)
Dr. Raoudha SOUABNI JEE 34
JEE - Présentation générale
Architecture JEE
Les éléments de base Principe
Les conteneurs JEE Evolution de MVC1 vers MVC2
Le design pattern MVC
Mise en place de l’environnement JEE
Figure – Modèle MVC1
Figure – Modèle MVC2
Dr. Raoudha SOUABNI JEE 35
JEE - Présentation générale
Architecture JEE
Les éléments de base Principe
Les conteneurs JEE Evolution de MVC1 vers MVC2
Le design pattern MVC
Mise en place de l’environnement JEE
Composants standards contre frameworks
Le développement par couches de type MVC est difficile à mettre en
œuvre.
Ü Apparition de quelques frameworks pour assister le développement
par couches :
Exemples :
Struts et Spring pour la partie développement serveur
Hibernate et TopLink pour la persistance
Dr. Raoudha SOUABNI JEE 36
JEE - Présentation générale
Architecture JEE
Les éléments de base
Les conteneurs JEE
Le design pattern MVC
Mise en place de l’environnement JEE
Plan
1 JEE - Présentation générale
2 Architecture JEE
3 Les éléments de base
Les composants
Les services JEE
4 Les conteneurs JEE
5 Le design pattern MVC
Principe
Evolution de MVC1 vers MVC2
6 Mise en place de l’environnement JEE
Dr. Raoudha SOUABNI JEE 37
JEE - Présentation générale
Architecture JEE
Les éléments de base
Les conteneurs JEE
Le design pattern MVC
Mise en place de l’environnement JEE
A ce stade nous allons installer et configurer notre plateforme JEE. La
mise en place de la plateforme JEE nous permettra par la suite de
développer, compiler, déployer et exécuter les projets que nous allons
réalisés.
TP 1 : Mise en place et initialisation à l’architecture client-serveur
2 tiers
Dr. Raoudha SOUABNI JEE 38