Vous êtes sur la page 1sur 50

Technologie

JEE

http://www.gherabi.com/
Introduction

2
Entreprise

3
Application d’Entreprise

4
JAVA

v Java Micro Edition (JME)


§ développement d’applications embarquées
v Java Standard Edition (JSE)
§ développement d’applications classiques
v Java Enterprise Edition (JEE)
§ développement d’applications d’entreprise

5
Application d’Entreprise

Une application efficace doit répondre aux besoins des utilisateurs et


peu couteuse en terme de temps et budget

• Extensible
• Portable
• Sécurisé
• Intégrable
• Maintenable
• Disponible

6
Architectures N-tier

L’architecture N-tier (anglais tier : étage, niveau), ou encore


appelée multi-tier, est une architecture client-serveur dans
laquelle une application est exécutée par plusieurs
composants logiciels distincts.
Exemple d’architecture 3-tier :
§ Tier de présentation : interfaces utilisateurs sur un PC
poste de travail, qui s’adressent à des applications serveur
§ Tier des règles de gestion : applications serveur qui
contiennent la logique de gestion et accèdent aux données
stockées dans des bases de données
§ Tier de base de données : serveurs de bases de données

7
Architectures N-tier
v Les différentes couches d’une architecture 4-tier

8
Architectures N-tier
Les différentes couches d’une architecture 4-tier :

² La couche de présentation contient les différents types de clients, léger


(ASP, JSP) ou lourd (Applet) , Angular , React …

² La couche applicative contient les traitements représentant les règles


métier (créer un compte de facturation, calculer un amortissement ... )

² La couche d'objets métier est représentée par les objets du domaine,


c'est à dire l'ensemble des entités persistantes de l'application
(Facture, Client ... )

² La couche d'accès aux données contient les usines d'objets métier, c'est
à dire les classes chargées de créer des objets métier de manière
totalement transparente, indépendamment de leur mode de stockage
(SGBDR, Objet, Fichiers, ...)
9
Architectures N-tier
La valeur ajoutée des architectures n-tier :

v Cette séparation par couches de responsabilités sert à


découpler au maximum une couche de l'autre afin
d'éviter l'impact d'évolutions futures de l'application.
v Par exemple : si l’on est amené à devoir changer de base
de données relationnelle, seule la couche d'accès aux
données sera impactée, la couche de service et la couche
de présentation ne seront pas concernées car elles auront
été découplées des autres.

10
Architectures N-tier
v Les différentes technologies côté client :

11
Architectures N-tier
Les différentes technologies côté Serveur:

v JSP (Java Server Pages de Sun)


v Java / J2EE (Java 2 Enterprise Edition, Sun)
v ASP (Active Server Pages de Microsoft)
v C# / .Net (Microsoft)
v PHP (Hypertext PreProcessor)
v…

12
Serveur Web
v Principales fonctionnalités d’un serveur Web :

§ Réceptionner la requête
§ Re-router les requêtes dynamiques
§ Rechercher les pages statiques
§ Encapsuler les pages dans la réponse
§ Émettre la réponse

13
Serveur Web

Fonctionnalités

La gestion de la sécurité : comme les fonctionnalités de restriction des accès par


domaine, par utilisateur, par groupe ou par adresse IP,

La gestion du contenu : comme la redirection des requêtes http, la


personnalisation des messages d’erreurs, ou la gestion des timeout..

14
Conteneur Web

Ensuite, on va étendre notre serveur web pour devenir un conteneur Web.


Cette extension va permettre d’avoir la possibilité d’exécuter des
programmes écrits avec des langages de programmation ( java, php,
C# ou autres ) dans le serveur web.

15
Serveur d’application
Il faut étendre encore plus le serveur Tomcat pour devenir un vrai serveur
d’application java jee.

16
Différences entre Serveur
Web et serveur d’application

u Le serveur Web utilise le protocole HTML et HTTP. D’autre part, le


serveur d’applications pourrait utiliser une interface utilisateur graphique et
des protocoles tel que RMI, y compris HTTP.
u La limite de charge ou la capacité est supérieure dans le cas du serveur
d’applications par rapport au serveur Web.
u Le serveur Web fournit un environnement pour exécuter une application
Web et des fonctionnalités telles que la mise en cache et l’évolutivité. Au
contraire, le serveur d’applications fournit un environnement pour
exécuter des applications Web avec des applications d’entreprise.

17
J2EE

http://www.gherabi.com/
J2EE

Java Enterprise Edition est une norme proposée par Oracle


visant à définir un standard de développement
d’applications d’entreprises multi-niveaux basées sur des
composants.

19
J2EE
J2EE s’appuie sur des concepts objet :

§ Classe : type d’objet caractérisé par sa structure de données


(attributs) et son comportement (méthodes).
§ Objet : instance de classe.
§ Interface : est un ensemble d'opérations utilisée pour spécifier
un service offert par une classe
§ Héritage : Mécanisme permettant à une classe d’objets de
bénéficier de la structure de données et du comportement d’une
classe « mère » .
§ Abstraction : Mécanisme permettant la dissociation entre la
déclaration d’une classe et son implémentation.
§ Polymorphisme : Possibilité pour une fonction ou méthode
d’avoir un même nom si les signatures différentes
§ ….

20
J2EE
J2EE s’appuie sur le langage Java :

§ Java est un langage orienté objet dont la syntaxe est dérivé du C


§ Java est un langage semi-compilé. Le code obtenu après
compilation s’appelle du byte-code et ce code est interprétable
par une JVM (Java Virtual Machine).
§ Cependant, Java peut également être complètement compilé
(transformé en langage machine) si nécessaire.
§ Java est portable sur toutes les plate-formes puisqu’il existe des
machines virtuelles pour chacune. (Les navigateurs intègrent
des machines virtuelles java).
§ Java est un langage conçu, à l’origine, pour être utilisé via un
réseau.

21
J2EE
En résumé :
o Java 2 Enterprise Edition est la définition d’un ensemble de
standards, relatifs à des services techniques développés en Java
dont l’objectif est de fournir une architecture logicielle
permettant le déploiement d’applications transactionnelles
critiques.
o C’est aujourd’hui un standard du marché car il offre :
§ Une simplification de l’architecture, du développement et
de la maintenance
§ Un support transactionnel ︎
§ Une intégration homogène avec les SI existants
o ︎Une indépendance sur le choix des serveurs, des outils et des
composants

22
J2EE
ASSEMBLAGE ET DEPLOIEMENT D’APPLICATIONS J2EE

Le développement d’applications Web repose sur trois composants


J2EE principaux :

Ø Les servlets : ce sont des programmes Java exécutés sur un


serveur (par sa JVM). Ils permettent d’étendre le comportement
du serveur dynamiquement.
Ø Les JSP : ce sont des pages HTML incluant du code JAVA
(stocké à l’intérieur de balises).
Ø Les EJB : ce sont des entités de traitement s’exécutant dans un
environnement adapté (conteneur) et possédant des
mécanismes de configuration et d’installation.

23
J2EE
ASSEMBLAGE ET DEPLOIEMENT D’APPLICATIONS J2EE

Java
Beans

24
J2EE
ASSEMBLAGE ET DEPLOIEMENT D’APPLICATIONS J2EE

25
J2EE
v Architecture d’une application J2EE

3 couches :
§ ︎ Les composants.
§ ︎ Les modules regroupant les composants
§ ︎ Les applications regroupant les modules

26
J2EE
v Structure d’une application J2EE
Module Web (.war). Selon la spécification J2EE, une application Web doit
avoir la structure suivante:
ü un répertoire racine public contenant les pages HTML, les pages JSP,
les images...
ü un repertoire WEB-INF situé dans le répertoire racine de l'application
web.
ü un fichier web.xml situé à la racine de WEB-INF : c'est le descripteur de
déploiement de l'application web.
ü un répertoire WEB-INF/classes contenant les classes compilées de
l'application (servlets, classes auxiliaires...).
ü un répertoire WEB-INF/lib contenant les fichiers JAR de l'application
(drivers JDBC, frameworks empaquetés...).
ü Le tout peut être empaqueté dans une archive sous la forme d'un
fichier WAR (réalisé avec l'utilitaire jar du JDK).
27
J2EE
v Structure d’une application J2EE

Module EJB (.jar). Selon la spécification J2EE 1.2, un fichier JAR doit avoir
la structure suivante :

ü Un répertoire META-INF/ contenant un descripteur de déploiement


XML du module EJB, nommé ejb-jar.xml
ü Les fichiers .class correspondant aux interfaces locale (home interface)
et distante (remote interface), à la classe d'implémentation, et aux
classes auxiliaires (classes d'exception par exemple) des EJBs, situées
dans leur package.
ü Le tout peut être empaqueté dans une archive sous la forme d'un
fichier JAR.

28
J2EE
v Structure d’une application J2EE
Application d’entreprise (.ear). Selon les spécifications J2EE, une
application d'entreprise doit avoir la structure suivante :

v Un répertoire META-INF/ contenant le descripteur de déploiement


XML de l'application J2EE nommé application.xml. C’est dans ce
descripteur que l’on définit les modules web et EJB qui constituent
l'application d'entreprise.
v Les fichiers archives .JAR et .WAR correspondant aux modules EJB et
aux modules Web de l'application d'entreprise.
v Le tout peut être empaqueté dans une archive sous la forme d'un
fichier EAR.

29
Composants JEE

² Chaque application JEE est découpé en plusieurs


composants.

² Chaque composant est installé sur un serveur où


plusieurs tiers distribuées

² Les composants Java EE sont des unités autonomes


assemblées dans une application Java EE composée de
classes Java et de fichiers, et communiquant avec
d'autres composants

30
Composants JEE

31
Composants JEE
v la spécification Java EE définit les composants suivants :

§ Les composants Clients ou tiers Client sont des applications


clientes (logiciel installé en local ou navigateur Web ou
Applets ) s'exécutant sur la machine des utilisateurs.

§ Les composants Web ou tiers Web sont les technologies


Servlets, JavaServer Pages et Java- Server Faces.

§ Les composants métier ou tiers Métier sont des composants


Enterprises JavaBeans (EJB) représentant la logique métier,
s'exécutant sur le serveur Java EE et dialoguant avec la
couche de stockage (EIS : Enterprise Information System).

32
Composants Clients

Clients

La plate-forme Java EE propose trois types de clients :

1. les clients Web,


2. les Applets ,
3. les applications clientes riches type Java SE.

33
Composants Clients

1- Clients Web

Un client Web consiste en des pages Web de différents


types (HTML, XHTML, XML, JavaScript ou autres)
Générées à partir de composants exécutés côté serveur
dans un conteneur Web et capables de répondre aux
requêtes HTTP en provenance du navigateur Internet.
Ces programmes côté serveur sont représentés en Java
EE par les Servlets, pages JSP et JSF. Ces programmes
serveur ne réalisent en général pas directement les accès
aux bases de données mais s'occupent de la logique
applicative.

34
Composants Clients

1- Clients Web

35
Composants Clients

2- Applets

² Les Applets sont des interfaces graphiques Java SE


exécutées dans un navigateur Web.
² Ces applications utilisent une interface graphique
évoluée de type SWING et sont exécutées dans une
machine virtuelle Java installée dans le navigateur.
² Demande des accès et des droits pour la sécurité.
² Installation d’un plug-in pour les navigateurs.

36
Composants Clients

2- Applets

37
Composants Clients

3- Applications clients
un logiciel riche, qui s'exécute sur la machine du client et fournit un
ensemble de services aux utilisateurs par l'intermédiaire d'une
interface graphique évoluée encore appelée Graphical User
Interface (GUI).

Les clients et le serveur dialoguent ensemble par l'intermédiaire


d'un composant standardisé nommé JavaBean

Développées et exécutées avec Java Web et déployées dans le projet


Enterprise ARchive (EAR).

38
Composants Clients

3- Applications clients

39
Composants Web

40
Composants Web

v Les composants Web Java EE sont :


§ Servlets : des classes Java, capables d'intercepter et de
gérer les requêtes du protocole HTTP.
§ Pages JSP : des documents textuels exécutés comme
des Servlets apportant une solution simplifiée pour la
programmation de pages Web.
§ JavaServer Faces : construite à partir de Servlets et
fournit un framework de développement pour
accélérer la création d'applications Web.

41
Composants Métier

42
Composants Métier
v Les composants métier représentent la couche business, avec les
données du système, et sont de deux types :
§ Les entités beans : exécutées par un conteneur léger (pas
forcément un serveur Java EE) et permettent de réaliser la
persistance des données à partir des JavaBeans et de
JavaPersistence API (JPA).

§ Les Enterprise JavaBeans : fonctionnalités plus riches


comme la gestion des transactions, les accès directs par
clients riches ou encore la gestion automatique des sessions
utilisateur, mais sont exécutés sur un conteneur lourd, c'est-
à-dire compatible JEE.

43
Architecture JEE

44
API & Services JEE

4
5 http://www.gherabi.com/
API et services JEE

Enterprise information system

46
JAVA Servlet

v Java Servlet (Technologie Java - Conteneur


Web)
v Propose un ensemble de classes de gestion
des échanges HTTP de type requête-réponse.
v Servlet 3.0 facilite la configuration et supporte
les annotations ou encore les traitements
asynchrones.

47
JAVA Server Pages

v JavaServer Pages (JSP) (Technologie Java - Conteneur


Web)

v Utilise le mécanisme de génération de Servlets à partir


de documents textuels.

v Les JSP 2.2 contiennent des données statiques de type


HTML, XHTML, JavaScript ou autres, et des balises ou
tags JSP nommés JSTL correspondant à du code Java.

48
JSTL

v JavaServer Pages Standard Tag Library (JSTL)


(Technologie Java EE - Conteneur Web)

v JSTL est encapsulée dans des pages JSP

v Propose une librairie de balises XHTML standardisées


qui gère les conditions et itérations,
l'internationalisation, les affichages HTML ou encore
l'accès aux bases de données.

49
Architecture JEE

Vous aimerez peut-être aussi