SlideShare une entreprise Scribd logo
1  sur  46
Introduction au JEE
Standard de développement d'applications d'entreprises
multi-niveaux, basées sur des composants
Sabri Bouchlema
Elève ingénieur en génie logiciel
Jcertif Student Ambassador
Plan
1. Architectures applicatives
2. Quelques notions (le web)
3. Les plateformes Java
4. La plateforme JEE
5. Démonstration
Architectures applicatives
Architecture 1 tiers
Les années 70, architecture Mainframe (1 tiers)
Avantages :
+ Développement rapide
Désavantages :
- Application monolithique
- Mises à jour et maintenance du code plus difficiles
- Code difficilement réutilisable
Architecture 2 tiers
Les années 80, architecture 2 tiers
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
Architecture 3 tiers
Fin des années 80, architecture 3 tiers (RPC)
Requètes SQL Base
de
Données
Présentation _ Métier _ Données
Architecture 3 tiers
Les années 90, architecture 3 tiers (Objets)
objet
objet objet
objet
RequètesSQL
Base
de
Données
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.
Architecture Internet (N-tiers)
Les années 90, architecture (Internet)
Internet
HTTP HTTP
SQL
Serveur Web + "CGI"
Navigateur
Base
de
Données
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
Quelques notions
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.
 Le navigateur effectue une requête HTTP
 Le serveur traite la requête puis envoie une réponse HTTP
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.
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.
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.
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.
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.
Les plateformes Java
Java
Write 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é
 …
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
Problématique générale
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 !
La solution ?
La plateforme JEE
JEE – Java Entreprise Edition
Standard 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.
L'infrastructure de gestion des applications
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,
Les applications d'entreprise ont souvent besoin des mêmes services système :
Gestion de la concurrence
Services transactionnels entre composants
Sécurité
Gestion de la session utilisateur
Gestion des montées en charge
Ouverture sur de multiples sources de données
Pools de connexion
Système de tolérance aux pannes et reprise sur incident
Le serveur d'application fournira ces services système
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.
Des services, au travers d'API
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,
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.
Les API de JEE
Les API de JEE peuvent se répartir en deux grandes catégories :
 Les composants.
 Les services.
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écifiques
chargé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.
 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
 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,...)
Les services
 Les services d'infrastructures :
 Les services communication.
JDBC
JNDI
JTA / JTS
JCA
JMX
JAAS
JavaMail
JMS
RMI-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
Démonstration
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.
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
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.
Merci!
Sabri Bouchlema
Elève ingénieur en génie logiciel
Jcertif Student Ambassador

Contenu connexe

Tendances

Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring bootAntoine Rey
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Heithem Abbes
 
Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootDNG Consulting
 
Ionic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,SassIonic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,Sassmarwa baich
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...ENSET, Université Hassan II Casablanca
 
CV Ingénieur développeur JAVA/EE
CV Ingénieur développeur JAVA/EECV Ingénieur développeur JAVA/EE
CV Ingénieur développeur JAVA/EESid Ahmed Benkraoua
 
Architectures orientés services (SOA)
Architectures orientés services (SOA)Architectures orientés services (SOA)
Architectures orientés services (SOA)Heithem Abbes
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRSLilia Sfaxi
 
Cv ines ouaz
Cv ines ouazCv ines ouaz
Cv ines ouazInes Ouaz
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPYouness Boukouchi
 

Tendances (20)

Support de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec SpringSupport de Cours JSF2 Première partie Intégration avec Spring
Support de Cours JSF2 Première partie Intégration avec Spring
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
 
Support POO Java Deuxième Partie
Support POO Java Deuxième PartieSupport POO Java Deuxième Partie
Support POO Java Deuxième Partie
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)
 
Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)
 
Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)Support programmation orientée aspect mohamed youssfi (aop)
Support programmation orientée aspect mohamed youssfi (aop)
 
Concevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring BootConcevoir, développer et sécuriser des micro-services avec Spring Boot
Concevoir, développer et sécuriser des micro-services avec Spring Boot
 
Ionic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,SassIonic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,Sass
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
CV Ingénieur développeur JAVA/EE
CV Ingénieur développeur JAVA/EECV Ingénieur développeur JAVA/EE
CV Ingénieur développeur JAVA/EE
 
Architectures orientés services (SOA)
Architectures orientés services (SOA)Architectures orientés services (SOA)
Architectures orientés services (SOA)
 
Support POO Java première partie
Support POO Java première partieSupport POO Java première partie
Support POO Java première partie
 
Maven et industrialisation du logiciel
Maven et industrialisation du logicielMaven et industrialisation du logiciel
Maven et industrialisation du logiciel
 
Support JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.YoussfiSupport JEE Servlet Jsp MVC M.Youssfi
Support JEE Servlet Jsp MVC M.Youssfi
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRS
 
Support JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVCSupport JEE Spring Inversion de Controle IOC et Spring MVC
Support JEE Spring Inversion de Controle IOC et Spring MVC
 
Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4
 
Cv ines ouaz
Cv ines ouazCv ines ouaz
Cv ines ouaz
 
Appalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSPAppalications JEE avec Servlet/JSP
Appalications JEE avec Servlet/JSP
 

Similaire à La plateforme JEE

Développement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EEDéveloppement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EESabri Bouchlema
 
cours-gratuit.com--id-1964.pdf
cours-gratuit.com--id-1964.pdfcours-gratuit.com--id-1964.pdf
cours-gratuit.com--id-1964.pdfRachida19
 
introductionaudevcomposantdistribuejavaee.pdf
introductionaudevcomposantdistribuejavaee.pdfintroductionaudevcomposantdistribuejavaee.pdf
introductionaudevcomposantdistribuejavaee.pdfHamdaneAbdelAzizHagg
 
Architecture java j2 ee a partager
Architecture java j2 ee a partagerArchitecture java j2 ee a partager
Architecture java j2 ee a partageraliagadir
 
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01Eric Bourdet
 
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)Eric Bourdet
 
Programmation_JEE_Version_imprimable.pdf
Programmation_JEE_Version_imprimable.pdfProgrammation_JEE_Version_imprimable.pdf
Programmation_JEE_Version_imprimable.pdfngombeemmanuel
 
Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"Nazih Heni
 
Webserver tomcat-jboss-jrun-jonas doc
Webserver tomcat-jboss-jrun-jonas docWebserver tomcat-jboss-jrun-jonas doc
Webserver tomcat-jboss-jrun-jonas docWinslo Nwan
 
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINEIntroduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINEMarouan OMEZZINE
 
2 20 presentations_generales_des_web_services
2 20 presentations_generales_des_web_services2 20 presentations_generales_des_web_services
2 20 presentations_generales_des_web_servicesCamus LANMADOUCELO
 
Introduction à Hibernate p.1
Introduction à Hibernate p.1Introduction à Hibernate p.1
Introduction à Hibernate p.1ATHMAN HAJ-HAMOU
 
S51 vos projets web services ibm i a l aide de php
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de phpGautier DUMAS
 

Similaire à La plateforme JEE (20)

Java Entreprise Edition
Java Entreprise EditionJava Entreprise Edition
Java Entreprise Edition
 
Développement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EEDéveloppement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EE
 
cours-gratuit.com--id-1964.pdf
cours-gratuit.com--id-1964.pdfcours-gratuit.com--id-1964.pdf
cours-gratuit.com--id-1964.pdf
 
introductionaudevcomposantdistribuejavaee.pdf
introductionaudevcomposantdistribuejavaee.pdfintroductionaudevcomposantdistribuejavaee.pdf
introductionaudevcomposantdistribuejavaee.pdf
 
Architecture java j2 ee a partager
Architecture java j2 ee a partagerArchitecture java j2 ee a partager
Architecture java j2 ee a partager
 
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01
 
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)
 
J2 ee
J2 eeJ2 ee
J2 ee
 
EJB.pdf
EJB.pdfEJB.pdf
EJB.pdf
 
Programmation_JEE_Version_imprimable.pdf
Programmation_JEE_Version_imprimable.pdfProgrammation_JEE_Version_imprimable.pdf
Programmation_JEE_Version_imprimable.pdf
 
Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"Asp.net Présentation de L'application "Organizer"
Asp.net Présentation de L'application "Organizer"
 
Cours architecture
Cours architectureCours architecture
Cours architecture
 
Webserver tomcat-jboss-jrun-jonas doc
Webserver tomcat-jboss-jrun-jonas docWebserver tomcat-jboss-jrun-jonas doc
Webserver tomcat-jboss-jrun-jonas doc
 
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINEIntroduction aux Technologies Web élaborée par Marouan OMEZZINE
Introduction aux Technologies Web élaborée par Marouan OMEZZINE
 
2 20 presentations_generales_des_web_services
2 20 presentations_generales_des_web_services2 20 presentations_generales_des_web_services
2 20 presentations_generales_des_web_services
 
Java Server Faces 2
Java Server Faces 2Java Server Faces 2
Java Server Faces 2
 
Mysql
MysqlMysql
Mysql
 
Introduction à Hibernate p.1
Introduction à Hibernate p.1Introduction à Hibernate p.1
Introduction à Hibernate p.1
 
#2 Architecture OSGi
#2 Architecture OSGi#2 Architecture OSGi
#2 Architecture OSGi
 
S51 vos projets web services ibm i a l aide de php
S51   vos projets web services ibm i a l aide de phpS51   vos projets web services ibm i a l aide de php
S51 vos projets web services ibm i a l aide de php
 

La plateforme JEE

  • 1. Introduction au JEE Standard de développement d'applications d'entreprises multi-niveaux, basées sur des composants Sabri Bouchlema Elève ingénieur en génie logiciel Jcertif Student Ambassador
  • 2. Plan 1. Architectures applicatives 2. Quelques notions (le web) 3. Les plateformes Java 4. La plateforme JEE 5. Démonstration
  • 4. Architecture 1 tiers Les années 70, architecture Mainframe (1 tiers)
  • 5. Avantages : + Développement rapide Désavantages : - Application monolithique - Mises à jour et maintenance du code plus difficiles - Code difficilement réutilisable
  • 6. Architecture 2 tiers Les années 80, architecture 2 tiers
  • 7. 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
  • 8. Architecture 3 tiers Fin des années 80, architecture 3 tiers (RPC) Requètes SQL Base de Données Présentation _ Métier _ Données
  • 9. Architecture 3 tiers Les années 90, architecture 3 tiers (Objets) objet objet objet objet RequètesSQL Base de Données
  • 10. 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.
  • 11. Architecture Internet (N-tiers) Les années 90, architecture (Internet) Internet HTTP HTTP SQL Serveur Web + "CGI" Navigateur Base de Données
  • 12. 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
  • 14. 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.
  • 15.  Le navigateur effectue une requête HTTP  Le serveur traite la requête puis envoie une réponse HTTP
  • 16. 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.
  • 17. 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.
  • 18. 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.
  • 19. 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.
  • 20. 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.
  • 22. Java Write 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é  …
  • 23. 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
  • 25. 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 !
  • 28. JEE – Java Entreprise Edition Standard 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.
  • 29. L'infrastructure de gestion des applications
  • 30. 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,
  • 31. Les applications d'entreprise ont souvent besoin des mêmes services système : Gestion de la concurrence Services transactionnels entre composants Sécurité Gestion de la session utilisateur Gestion des montées en charge Ouverture sur de multiples sources de données Pools de connexion Système de tolérance aux pannes et reprise sur incident Le serveur d'application fournira ces services système
  • 32. 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.
  • 33. Des services, au travers d'API
  • 34. 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,
  • 35. 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.
  • 36. Les API de JEE Les API de JEE peuvent se répartir en deux grandes catégories :  Les composants.  Les services.
  • 37. 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écifiques chargé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.
  • 38.  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
  • 39.  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,...)
  • 40. Les services  Les services d'infrastructures :  Les services communication. JDBC JNDI JTA / JTS JCA JMX JAAS JavaMail JMS RMI-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
  • 41.
  • 43. 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.
  • 44. 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
  • 45. 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.
  • 46. Merci! Sabri Bouchlema Elève ingénieur en génie logiciel Jcertif Student Ambassador

Notes de l'éditeur

  1. <
  2. Les Composants , les services
  3. Les Composants , les services