Introduction à l’architecture n-tiers Java
EE
PRÉSENTÉE PAR:
RIHAB IDOUDI
RIHAB.I D OU D I@ ES P RI T.T N
© 2019 – ESPRIT
© 2019 – ESPRIT
Plan
–Description du module
–Marché d’emploi
–Rappel Java SE (Java Standard Edition)
–C’est quoi Java EE ?
–Les spécifications Java EE
–Architecture n-tiers
–Les outils
© 2019 – ESPRIT
Rappels : POO
• La Programmation Orientée Objet (POO) consiste à modéliser
informatiquement un ensemble d'éléments du monde réel, en un ensemble
d'entités informatiques (Objets).
• La classe est une abstraction des propriétés communes (attributs et
méthodes) d'un ensemble d'objets.
• Un objet est créé par mécanisme d'instanciation, c'est une instance d'une
classe
© 2019 – ESPRIT
Rappel Java SE(Java Standard Edition)
Les langages compilés: Les langages interprétés:
Avantage: Exécution rapide Avantage: Indépendant de
l’OS
Inconvénient: Dépend de l’OS Inconvénient: Execution lente (traduction à la volée)
(fichier exécutable)
Java est semi compilé
• Independent de la plateforme d’ exécution
• Temps d’ exécution rapide
Java est portable: « Write Once Run Everywhere »:
C’est la Java Virtual Machine qui interprète le bytecode: abstraction de l’OS
Il existe une JVM pour chaque OS: la JVM est l’implémentation de la spécification Java
La JVM est:
• Une forme abstraite de machine implémentée pour chaque système d’exploitation
• Une spécification offrant un environnement d’exécution du bytecode
© 2019 – ESPRIT
Rappel Java SE (Java Standard Edition)
JVM (Java Virtual Machine) : est créé lorsdu
lancement d’un programme java et permet la
conversion du bytecode vers du code
machine
JRE (Java Runtime Environment) : contient les libs
nécessaire pour lancer une jvm, donc permet
de lancer un programme java.
JDK (Java Development Kit) : contient la JRE et les
outils de développement tel que javac.
© 2019 – ESPRIT
JSE, JME et JEE?
Java Standard Edition est une plateforme destinée au dévelopment des application Desktop,
Java Micro Edition est une plateforme qui rajoute un ensemble de spécifications à JSE pour permettre le développement
d’applications mobiles,
Java Entreprise Edition est également basée sur JSE et définit en plus un ensemble de services d’infrastructure, elle permet de
développer des applications distributes multi-tiers pour les entreprises (Affichage, Accès à la base de données, …).
© 2019 – ESPRIT
C’est quoi Java EE ?
Java EE(Java Enterprise Edition) = Java Standard Edition + bibliothèques
Objectif : Faciliter le développement d'applications web robusteset distribuées.
● Java EE est très utilisé dans la finance.
● Les banques ont confiance dans cette plateforme, parce qu’elle a acquit une très grandematurité
professionnelle.
8
Les spécifications Java EE
JSR: Java Specification Request
C’est une description formelle de
ce qu’un composant doit offrir.
Exemple de spécification :
JSR 338: JavaTM Persistence 2.1 :
The Java Persistence API is the
Java API for the management of
persistence and object/relational
mapping in Java EE and Java SE
environments.
Une implémentation de la
spécification JPA (JSR 338) est :
Hibernate: [Link]
© 2019 – ESPRIT
Évolution des versions
© 2019 – ESPRIT
Architecture des SI
Une application informatique peut être découpé en trois niveaux d’abstraction
© 2019 – ESPRIT
Couche Présentation
• Appelée IHM (Interface Homme Machine) permet l’interaction de l’application avec l’utilisateur.
• Gère les saisies au clavier et à la souris et la présentation des informations à l’écran,
• Doit être conviviale et ergonomique.
© 2019 – ESPRIT
Logique applicative
•La logique applicative décrit les traitements à réaliser par l’application pour
répondre aux besoins des utilisateurs.
•2 types de traitements:
• Traitements locaux: les contrôles effectuées au niveau du dialogue avec
l’IHM(formulaires, champs, boutons radios..)
• Traitements globaux: les règles de ‘application, appelées aussi logique métier
(Business logic)
© 2019 – ESPRIT
Données
• L’acces au données regroupe l’ensemble des mécanismes permettant la gestion
des informations stockées par l’application.
• Fonction classique d’un SGBD:
• Définition de données
• Manipulation des données
• Sécurité des données
• Gestion des transactions
© 2019 – ESPRIT
Architecture physique
•Le découpage et la répartition des 3 niveaux d’abstraction permettent de
distinguer les architectures physiques:
• 1tier
• 2tiers
• 3tiers
• ntiers
© 2019 – ESPRIT
Architecture physique: 1tier
• Tier est un mot anglais qui signifie étage ou niveau.
• Une application peut être 1-Tier, 2-Tiers, 3-Tiers ou N-Tiers.
• Une application 1-Tier est, par exemple, la Modification d’un document Word sur un ordinateur Local.
Tout est sur la même machine.
• Inconvénients : Risque de perte des données (non sauvegardées à distance), Impossible d’accéder à une même
ressource par deux utilisateurs en même temps.
© 2019 – ESPRIT
Architecture physique: 2tier
• Le poste client se charge du traitement métier et délègue la gestion des données à un service spécialisé.
• Une application 2-Tiers est typiquement une application client lourd.
• Le niveau Présentation (IHM) et le niveau Traitement l’utilisateur.
• Le niveau Base de Données est sur un autre serveur.
• C’est une architecture Client / Serveur.
• Inconvénient : Toute mise à jour des fonctionnalités nécessitent un déploiement sur toutes les
machines des utilisateurs.
© 2019 – ESPRIT
Architecture physique: 3tier
• Une application 3-Tiers est typiquement une application Web :
– Niveau Présentation : IHM (Navigateur sur la machine de l’utilisateur)
– Niveau Traitement : Un serveur d’application qui contient le WAR de notre application (Wildfly, Tomcat, …).
– Niveau Base de données : Un serveur de BD qui stocke les données de notre application.
© 2019 – ESPRIT
Architecture physique: ntier
• l'architecture n-tiers qualifie la distribution de la couche traitement des données et métier entre de multiples services et
non la multiplication des couches
• La couche traitement peut utiliser plusieurs serveurs si, par exemple, on fait appel à un web services distants sur d’autres
serveurs applicatifs.
• Voici un exemple d’architecture 2-Tiers, 3-Tiers et 4-Tiers.
© 2019 – ESPRIT
Architecture physique: ntier
• Un serveur d'applications est un logiciel d'infrastructure
offrant un contexte d’exécution pour des composants applicatifs
-Le conteneur d'EJB assure la
gestion:
du cycle de vie du bean
de l'accès au bean
de la sécurité d'accès
des accès concurrents
des transactions
-Un conteneur web est un moteur de
servlets qui prend en charge et gère les
servlets.
20
Les outils
Serveur d’application : Wildfly
IDE : JBoss developer studio
Outil de build : Maven
SGBD : Mysql
Installation JDK 8
• Sous <JavaEE_WY \ Introduction_JAVA_EE \ outils \ JDK_8>, il y a les .exe pour 32 et 64 bits, vous prenez celui qui convient votre
OS et l’installer.
• Installer la JDK dans C:\Products\java\jdk-[Link]
• Installer la JRE dans C:\Products\java\jre-[Link]
• Créer la variable d’environnement système : JAVA_HOME qui contient le chemin de la JDK:
© 2019 – ESPRIT
Installation JDK 8
• Ajouter %JAVA_HOME%\bin au Path :
© 2019 – ESPRIT
Installation IDE JBOSS Developer Studio
• Sous <\ JavaEE_WY \ Introduction_JAVA_EE \ outils \ IDE>, lancer “[Link]”
• Installer le dans C:\Products\jboss_dev_studio
• Ouvrir JBoss Developer Studio
• Faire pointer JBoss Developer Studio sur JDK 8 ==> window- >preferences->installed jre ->mettre que la jdk 8(pas la jre).
© 2019 – ESPRIT
Configuration WildFly dans JBoss
Developer Studio
• Ouvrir JBoss Developer Studio
• Aller a la Vue « servers » (window -> show view -> servers).
• new-> server et pointer sur le chemin du wildfly 9.
• Démarrer le serveur, voir dans les logs sur quel port est démarré (view console).
• [Link] devra affiché “Your WildFly 9 is running“.
© 2019 – ESPRIT