la plateforme jee
TRANSCRIPT
![Page 1: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/1.jpg)
Introduction au JEEStandard de développement d'applications d'entreprises multi-niveaux, basées sur des composantsSabri Bouchlema Elève ingénieur en génie logicielJcertif Student Ambassador
![Page 2: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/2.jpg)
Plan
1. Architectures applicatives2. Quelques notions (le web)3. Les plateformes Java4. La plateforme JEE5. Démonstration
![Page 3: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/3.jpg)
Architectures applicatives
![Page 4: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/4.jpg)
Architecture 1 tiersLes années 70, architecture Mainframe (1 tiers)
![Page 5: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/5.jpg)
Avantages : + Développement rapide
Désavantages : - Application monolithique- Mises à jour et maintenance du code plus difficiles- Code difficilement réutilisable
![Page 6: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/6.jpg)
Architecture 2 tiersLes années 80, architecture 2 tiers
![Page 7: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/7.jpg)
Avantages : + Centralisation du code et des ressources
Désavantages : - Application serveur monolithique- Logique métier est répartie entre l'application serveur et le client
![Page 8: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/8.jpg)
Architecture 3 tiersFin des années 80, architecture 3 tiers (RPC)
Prime rg y
Requètes SQL
RPC
RPC
Base de
Données
Présentation _ Métier _ Données
![Page 9: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/9.jpg)
Architecture 3 tiersLes années 90, architecture 3 tiers (Objets)
Pr ime rg y objet
objet objet
objet
RMI / CORBA
RMI / CORBA
Requètes SQL
Base de
Données
![Page 10: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/10.jpg)
Avantages : + Séparation forte entre les 3 niveaux
Désavantages : - Protocole d’échange propriétaire- Difficultés de maintenance: toute modification entraîne une mise
à niveau de chaque poste client.
![Page 11: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/11.jpg)
Architecture Internet (N-tiers)Les années 90, architecture (Internet)
Primergy
InternetHTTP HTTP SQL
Serveur Web + "CGI"Navigateur
Base de
Données
![Page 12: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/12.jpg)
Avantages : + Pas d’installation sur les postes clients (hormis le navigateur lui-
même)+ Chaque niveau peut être managé, dimensionné, distribué+ Mises à jour et maintenance facilitées en minimisant l'impact sur les autres
couches+ Extensibilité : ajout de nouvelles fonctionnalités simplifié+ Possibilité de clients lourds et de clients légers
![Page 13: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/13.jpg)
Quelques notions
![Page 14: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/14.jpg)
HTTP• Le HyperText Transfer Protocol, plus connu sous
l'abréviation HTTP, littéralement le « protocole de transfert hypertexte », est un protocole de communication client-serveur développé pour le World Wide Web. Il est utilisé pour échanger toute sorte de données entre client HTTP et serveur HTTP.
![Page 15: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/15.jpg)
Le navigateur effectue une requête HTTP Le serveur traite la requête puis envoie une réponse
HTTP
![Page 16: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/16.jpg)
Requête HTTP• Une requête HTTP est un ensemble de lignes envoyé au
serveur par le navigateur. Elle comprend : Une ligne de requête: c'est une ligne précisant le
type de document demandé, la méthode qui doit être appliquée, et la version du protocole utilisée.
Les champs d'en-tête de la requête: il s'agit d'un ensemble de lignes facultatives permettant de donner des informations supplémentaires sur la requête et/ou le client.
Le corps de la requête: c'est un ensemble de lignes optionnelles permettant par exemple un envoi de données par une commande POST lors de l'envoi de données au serveur par un formulaire.
![Page 17: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/17.jpg)
Les méthodes GET: c'est la méthode la plus courante pour demander
une ressource. Une requête GET est sans effet sur la ressource, il doit être possible de répéter la requête sans effet.
HEAD: cette méthode ne demande que des informations sur la ressource, sans demander la ressource elle-même.
POST: cette méthode doit être utilisée lorsqu'une requête modifie la ressource.
PUT: cette méthode permet d'ajouter une ressource sur le serveur.
DELETE: cette méthode permet de supprimer une ressource du serveur.
![Page 18: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/18.jpg)
Réponse HTTP• Les réponses ont, elles aussi, toujours la même syntaxe :
Une ligne de status: c'est une ligne précisant la version HTTP du serveur , Code-réponse (le code d’erreur retourné par exemple 200, 403, 404, 500) et Texte-réponse (le texte associé à l'erreur respectivement pour les exemples précédents : "OK", "FORBIDDEN", "NOT FOUND", "INTERNAL ERROR").
Les champs d'en-tête de la requête: Les en-têtes sont nombreux aussi exemple :
Date de génération de la réponse. le modèle du serveur HTTP.
Corps: le Corps de réponse contient le contenu du fichier, le HTML d'une page par exemple.
![Page 19: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/19.jpg)
Site web statique• Un site statique est un site constitué de pages créées
en HTML. Il s’agit d’un contenu fixe. • Ainsi lorsqu’un ordinateur (par l’usage d’un navigateur
internet) se connecte au serveur hébergeant le site statique, la page demandée est instantanément retournée, sans compilation ni traitement par le serveur.
![Page 20: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/20.jpg)
Site web dynamique• Un site dynamique combinent différentes sources pour
constituer ses pages HTML. • D’un côté il y a une base de données (MySQL, …), et
de l’autre des fichiers dans un langage de programmation dynamique (PHP, Java, …) qui à la demande d’un ordinateur se connectant au serveur, compile la page HTML avant de la délivrer.
![Page 21: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/21.jpg)
Les plateformes Java
![Page 22: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/22.jpg)
JavaWrite once , Run everywhere …• Java est un langage de programmation moderne
développé par Sun Microsystems (aujourd'hui racheté par Oracle).
• Une de ses plus grandes forces est son excellente portabilité : une fois votre programme créé, il fonctionnera automatiquement sous Windows, Mac, Linux, etc.
Puissance Stabilité Sécurité …
![Page 23: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/23.jpg)
Java Aujourd'hui ... ...3 environnements d'exécutions
différents.
• Java ME (Micro Edition) pour téléphone
• Java SE (Standard Edition) pour desktop
• Java EE (Entreprise Edition) pour serveur
![Page 24: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/24.jpg)
Problématique générale
![Page 25: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/25.jpg)
Problématique “Les applications d'entreprise” concernent aussi bien les grandes entreprises que les petites …
Elles doivent être :• Portables • Fiables et sécurisées• Maintenables et flexibles • Performantes
Nécessité d'intégrer ou de s'intégrer à un système d'information existant.Toutes ces considérations rendent les applications complexes !
![Page 26: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/26.jpg)
La solution ?
![Page 27: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/27.jpg)
La plateforme JEE
![Page 28: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/28.jpg)
JEE – Java Entreprise EditionStandard de développement d'applications d'entreprises multi-niveaux, basées sur des composants.
Conscient de l’intérêt des architectures multi-tiers pour le développement d’applications d’entreprises, la société Sun Microsystems a proposé , dès 1999, une déclinaison de son SDK Java (Software Development Kit) baptisé JEE (Java Enterprise Edition).
JEE est un ensemble de spécifications (et non pas un produit) qui, en respectant une architecture multi-tiers, va décrire à la fois: L'infrastructure de gestion des applications. Les API des services utilisées pour concevoir ces
applications.
![Page 29: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/29.jpg)
L'infrastructure de gestion des applications
![Page 30: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/30.jpg)
Serveur d’applications
JEE définit finement les rôles et les interfaces pour les applications ainsi que l'environnement dans lequel elles seront exécutées.
Ces recommandations permettent ainsi à des entreprises tierces de développer des serveurs d'application conformes aux spécifications ainsi définies, sans avoir à redévelopper les principaux services.
C'est-à-dire de l'environnement d'exécution,
![Page 31: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/31.jpg)
Les applications d'entreprise ont souvent besoin des mêmes services système :
Gestion de la concurrenceServices transactionnels entre composants SécuritéGestion de la session utilisateur Gestion des montées en chargeOuverture sur de multiples sources de donnéesPools de connexionSystème de tolérance aux pannes et reprise sur incident
Le serveur d'application fournira ces services système
![Page 32: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/32.jpg)
Serveur d’applications Serveur d'application JEE implémente les API JEE
Il héberge des composants applicatifs
Il fournit des services à ces composants au travers d'un conteneur (un environnement d'exécution chargé de gérer des composants applicatifs et leur donner accès aux API JEE)
Il gère le noyau de l'application avec pour objectif central de répondre aux requêtes des utilisateurs s'y connectant.
![Page 33: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/33.jpg)
Des services, au travers d'API
![Page 34: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/34.jpg)
Des services, au travers d'API
La plateforme JEE comprend des services, au travers d'API, c'est-à-dire des extensions Java indépendantes permettant d'offrir en standard un certain nombre de fonctionnalités.
Sun (aujourd'hui racheté par Oracle) fournit une implémentation minimale de ces API appelée JEE SDK (JEE Software Development Kit)
Des services offerts,
![Page 35: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/35.jpg)
API – Application Programming Interface
Une interface de programmation est un ensemble normalisé de classes, de méthodes ou de fonctions qui sert de façade par laquelle un logiciel offre des services à d'autres logiciels.
Dans le jargon Java, les APIs sont des librairies de composants réutilisables.
Les APIs sont des spécifications, implémentées ensuite (par IBM, Oracle, …) sur les différentes plates-formes proposant un environnement d’exécution Java.
![Page 36: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/36.jpg)
Les API de JEELes API de JEE peuvent se répartir en deux grandes catégories :
Les composants. Les services.
![Page 37: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/37.jpg)
Les composants Les composants web:
Les composants métier :
Servlets et JSP (Java Server Pages) il s’agit de la partie chargée de l'interface avec l'utilisateur (on parle de logique de présentation).
EJB (Enterprise Java Beans), Il s'agit de composants spécifiqueschargés des traitements des données propres à un secteur d'activité (on parle de logique métier ou de logique applicative) et de l'interfaçage avec les bases de données.
![Page 38: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/38.jpg)
Les composants web:
Les servlets sont donc des applications Java fonctionnant du côté serveur au même titre que les CGI et les langages de script côté serveur tels que ASP ou bien PHP.
Les servlets permettent donc de gérer des requêtes HTTP et de fournir au client une réponse HTTP dynamique
![Page 39: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/39.jpg)
Les composants web:
Les JSP (Java Server Pages) sont une technologie Java qui permet la génération de pages web dynamiques.
Les JSP permettent d'introduire du code Java dans des tags prédéfinis à l'intérieur d'une page HTML.
La technologie JSP mélange la puissance de Java côté serveur et la facilité de mise en page d'HTML côté client.
Il s'agit en réalité d'un langage de script puissant (un langage interprété) exécuté du côté du serveur (au même titre que les scripts CGI,PHP,ASP,...)
![Page 40: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/40.jpg)
Les services Les services d'infrastructures :
Les services communication.
JDBC JNDI JTA / JTSJCAJMX
JAASJavaMailJMSRMI-IIOP
API de gestion de l'authentification et des droits d'accès.
API permettant l'envoi de courrier électronique.API fournit des fonctionnalités de communication
asynchrone.API permettant la communication synchrone entre objets
API d'accès aux bases de données relationnelles.
API d’accès aux services de nommage et annuaires
d’entreprises.API définissant des interfaces standard avec un g. de
transactions.API de connexion au système d’information de l’entreprise
(ERP).F. des ext. permettant de dév Des apps web de supervision
d’apps
![Page 41: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/41.jpg)
![Page 42: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/42.jpg)
Démonstration
![Page 43: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/43.jpg)
Démonstration Cette démonstration permet de pratiquer les bases du
développement web JEE en utilisant les composants Web Servlet, JSP et JSTL , sans faire appel à aucun Framework.
Elle montre un exemple d'application web JEE qui respecte le pattern MVC avec une couche métier qui effectue le mapping objet relationnel JDBC.
C'est une application qui permet de saisir, ajouter, supprimer, éditer et mettre à jour des produits stockés dans une base de données MYSQL.
![Page 44: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/44.jpg)
l'application se compose de deux couches : La couche Métier :
- Une entité :Produit - Une interface - Un singleton Connection - Une implémentation de l'interface - Une classe pour Tester cette implémentation
La couche Web :- Un contrôleur : Servlet - Une vue JSP - Une feuille de style
CSS
![Page 45: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/45.jpg)
Cette démonstration vous permet d'apprendre les concepts suivants :
Créer une base de données MySQL Effectuer le mapping objet relationnel avec JDBC Créer un pattern Singleton Utiliser le pilote JDBC Respecter le pattern MVC Créer une servlet et le Déployer Créer une JSP en utilisant JSTL
Cet exemple est un passage idéale avant de commencer à utiliser les Framework Hibernate, Spring, Struts ou JSF.
![Page 46: La plateforme JEE](https://reader031.vdocuments.pub/reader031/viewer/2022030311/58eeb5f11a28abfa5a8b460b/html5/thumbnails/46.jpg)
Merci!
Sabri Bouchlema Elève ingénieur en génie logicielJcertif Student Ambassador