Architectures N-Tier

Télécharger au format docx, pdf ou txt
Télécharger au format docx, pdf ou txt
Vous êtes sur la page 1sur 6

JEE

Introduction
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.
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, ...)

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.

Les serveurs et les conteneurs :

Un serveur web est un logiciel chargé de gérer les requêtes HTTP des clients et de leur
renvoyer les réponses correspondantes. Il fournit ainsi les ressources web aux utilisateurs.
En revanche, un conteneur web est une technologie de virtualisation légère qui encapsule
une application et son environnement d'exécution, garantissant son indépendance vis-à-vis
du système d'exploitation hôte. Cela assure une portabilité et une isolation de l'application,
facilitant ainsi son déploiement sur différentes plateformes.
En résumé, tandis que le serveur web fournit les ressources web aux clients en gérant les
requêtes HTTP, le conteneur web encapsule une application et son environnement,
permettant une exécution indépendante et portable de celle-ci.
Les concepts d’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

Java et Jee
Java : Java est un langage de programmation polyvalent et populaire, développé par Sun
Microsystems (maintenant Oracle). Il est utilisé pour créer une variété d'applications, des
applications de bureau aux applications web, en passant par les applications mobiles et les
systèmes embarqués.
JEE (Java Platform, Enterprise Edition) : JEE, quant à lui, est une extension de Java
spécifiquement conçue pour le développement d'applications d'entreprise complexes et
distribuées. Il fournit un ensemble de spécifications, de normes et de technologies pour le
développement d'applications web, telles que les servlets, les JSP (JavaServer Pages), les EJB
(Enterprise JavaBeans), les JMS (Java Message Service), etc. JEE fournit également des
fonctionnalités pour la gestion des transactions, la sécurité, la persistance des données et
bien plus encore, ce qui en fait un choix idéal pour les applications d'entreprise robustes et
évolutives.
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.
des classes Java, capables d'intercepter et de gérer les requêtes du protocole HTTP.
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.
En résumé, Java est le langage de programmation, tandis que JEE est une plateforme
étendue construite au-dessus de Java, spécifiquement adaptée au développement
d'applications d'entreprise hautement performantes et évolutives.

La structure d’une application jee :


La structure d'une application J2EE comprend trois types de modules principaux : les
modules Web (.war), les modules EJB (.jar), et l'application d'entreprise (.ear). Un module
Web contient des ressources web dans un répertoire public avec un fichier web.xml pour le
déploiement, ainsi que des classes compilées et des bibliothèques dans WEB-INF. Un module
EJB contient des fichiers .class pour les interfaces et les classes d'implémentation dans
META-INF. L'application d'entreprise encapsule ces modules avec des descripteurs de
déploiement dans un fichier .ear.
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.
La plate-forme Java EE propose trois types de clients :

1. Les clients Web : Un client Web consiste en des pages Web de différents types (HTML, XHTML,
XML, JavaScript ou autres)

2. Les 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.

3. Les applications clientes riches type Java SE.

§ 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).
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.

Les conteneurs :
Un conteneur a un rôle bien défini et offre un ensemble de services pour les développeurs :

 L'annuaire de nommage d'accès aux ressources en Java, connu sous le nom de Java
Naming and Directory Interface (JNDI), est une interface unifiée permettant la
gestion des noms de ressources et l'accès à ces ressources via des
applications.Concrètement, JNDI permet à une application Java d'accéder à des
ressources telles que des bases de données, des services réseau ou des fichiers
distants, en utilisant un mécanisme de nommage hiérarchique similaire à celui d'un
système de fichiers.
 L'injection dynamique des ressources.
 La gestion des accès aux bases de données.
 Le modèle de gestion de la sécurité.
 Le paramétrage des transactions.
5 types de conteneurs :
Java EE serveur, logiciel fournisseur du conteneur Web et EJB.

Web Container ou conteneur Web, capable d'exécuter des pages JSP, Servlets et programmes JSF
(implémentation JSF nécessaire). Ces composants s'exécutent avec le conteneur serveur Java EE. Ce
conteneur supporte les protocoles HTTP et HTTPS et dialogue avec différents types de clients
(navigateur, application).

EJB Container ou conteneur EJB, responsable de la couche métier et de l'exécution des EJB. Ce
conteneur fournit le mécanisme de gestion des EJB, la gestion de leur cycle de vie, les transactions, le
service de nommage JNDI et la possibilité des déclenchements asynchrones.

Résumé sur la première certificat « introducion to java ee »


Le certificat "Introduction to Java EE" offre une vue d'ensemble de la plateforme Java
Enterprise Edition (EE) et de son architecture de base. Il explore le modèle MVC, les
fondamentaux du développement web avec Java EE, y compris la création et la gestion de
servlets. En le complétant, j'ai acquis une solide compréhension pour construire des
applications web robustes avec Java EE, ce qui me prépare à contribuer efficacement à des
projets d'entreprise nécessitant ces compétences.

Servlet
 Classe java héritant de la classe httpservlet
 Recevant une requete http de type (get,post,….) et retournant une réponse http
 C’est le controlleur du modèle mvc dans une application jee

Une requête HTTP peut être envoyée en utilisant les méthodes suivantes:

GET : Pour récupérer le contenu d’un document

POST : Pour soumissionner des formulaires (Envoyer, dans la requête, des données saisies par
l’utilisateur )

PUT : pour envoyer un fichier du client vers le serveur

DELETE : permet de demander au serveur de supprimer un document.

HEAD : permet de récupérer les informations sur un document (Type, Capacité, Date de dernière
modification etc...)
Certificat 2 : Managing scope in java enterprise edition

Avantages des sessions : Les sessions sont cruciales pour conserver l'état de la conversation
entre les demandes HTTP, car le protocole HTTP est sans état. Elles permettent de stocker
des données temporaires associées à un utilisateur tout au long de sa visite sur le site.
Utilisation de HttpSession : L'objet HttpSession en Java facilite la gestion des sessions en
permettant de stocker et récupérer des données entre les demandes HTTP pour un même
utilisateur. Cela résout le problème de perte d'état entre les demandes.
Durée de vie de la session : Les sessions expirent après un certain temps sans activité de
l'utilisateur. Par défaut, dans Tomcat, cette durée est de 30 minutes, mais elle est
configurable. Les sessions sont idéales pour les données de courte durée liées à une
interaction utilisateur spécifique.
Création et récupération de session : Pour créer ou récupérer une session dans un servlet
Java, vous utilisez la méthode request.getSession(). Cette méthode renvoie la session
existante associée à la demande ou crée une nouvelle session si aucune n'existe.
Stockage et récupération d'objets : Vous pouvez stocker des objets dans la session en
utilisant la méthode setAttribute(String name, Object value) et les récupérer avec la
méthode getAttribute(String name). Les objets stockés doivent être sérialisables.
Suppression d'objets de session : Pour supprimer un objet de session, utilisez la méthode
removeAttribute(String name). Cela peut être utile pour libérer de la mémoire lorsque les
données ne sont plus nécessaires.
Nettoyage de la session : Il est recommandé de nettoyer périodiquement la session en
supprimant les objets qui ne sont plus nécessaires, surtout lors de longs flux de travail, pour
éviter une surcharge de mémoire.

Les cookies :
Les cookies et les sessions sont deux mécanismes différents utilisés pour stocker des
informations côté serveur et côté client dans le contexte des applications web. Voici les
principales différences entre les deux :
Durée de vie :
Les cookies ont une durée de vie définie par le développeur et peuvent être persistants
(stockés sur le navigateur de l'utilisateur même après sa fermeture) ou non persistants
(disparus une fois que le navigateur est fermé).
Les sessions ont généralement une durée de vie limitée à la durée de la visite de l'utilisateur
sur le site web. Une fois que l'utilisateur se déconnecte ou ferme le navigateur, la session
expire.
Stockage :
Les cookies stockent les données directement sur le navigateur de l'utilisateur, sous forme
de petites quantités de texte.
Les sessions stockent les données côté serveur, généralement dans la mémoire du serveur
ou dans une base de données associée à la session.
Utilisation :
Les cookies sont souvent utilisés pour stocker des informations telles que les préférences de
l'utilisateur, les identifiants de session, les paniers d'achat, etc.
Les sessions sont utilisées pour maintenir l'état de l'application et stocker des données
temporaires associées à une session utilisateur spécifique, telles que les données de
connexion, les données de formulaire temporaire, etc.
Sécurité :
Les cookies peuvent être sujets à des problèmes de sécurité tels que le vol de cookies
(session hijacking) ou le stockage d'informations sensibles dans les cookies.
Les sessions sont généralement considérées comme plus sécurisées car les données sont
stockées côté serveur et ne sont pas accessibles depuis le navigateur de l'utilisateur.
En résumé, les cookies sont plus adaptés pour stocker de petites quantités de données côté
client, tandis que les sessions sont utilisées pour stocker des données plus sensibles et des
informations d'état côté serveur. Les deux sont souvent utilisés en tandem pour fournir une
expérience utilisateur optimale sur les sites web.

je veux parler d'une certificat que j'ai pris dans coursera sous le nom managing scope in java
enterprise edition ou il y'a les parties suivants :servlet lifecycle ,sessions in action

Vous aimerez peut-être aussi

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy