JEE : Introduction à l’environnement JEE
Mahran Farhat
farhatmahran@yahoo.fr
Mahran Farhat farhatmahran@yahoo.fr
information
Je tiens à vous informer que le support de cous (les slides du
cours) est inspiré du cours de monsieur Khalid Housni. Le support
du cours (cours, TP et projets) est partagé sur google drive.
http ://shorturl.at/cehtP
Mahran Farhat farhatmahran@yahoo.fr
Plan
Cours JEE - Khalid HOUSNI 2
Introduction au Java EE
• Qu'est-ce que Java EE ?
• Java EE n'est pas Java
• Le terme « Java » fait bien évidemment référence à un langage,
mais également à une plate-forme : son nom complet est « Java
SE » pour Java Standard Edition. Celle-ci est constituée de
nombreuses bibliothèques, ou API : citons par exemple
java.lang, java.io, java.math, java.util, etc.
• Le terme « Java EE » signifie Java Enterprise Edition,. Il fait
quant à lui référence à une extension de la plate-forme
standard. L'objectif majeur de Java EE est de faciliter le
développement d'applications web robustes et distribuées,
déployées et exécutées sur un serveur d'applications.
Cours JEE - Khalid HOUSNI 3
L’architecture JEE
 Le nom de la 5ème version de la plate-forme Java pour Entreprise a été
simplifiée : au lieu de se nommer J2EE (Java 2 Enterprise Edition) version
1.5, la plate-forme a été renommée Java EE 5 (Java Enterprise Edition).
 L'accent est mis dans cette version sur la simplification des développements
tout en conservant et en faisant évoluer les fonctionnalités proposées par la
plate-forme J2EE.
Java EE 5 intègre aussi de nouvelles API :
 JSF ;
 JPA ;
 EJB 3.0 ;
 Le support des dernières versions des API concernant les services web permettant
une mise en œuvre d'une architecture de type SOA.
Cours JEE - Khalid HOUSNI 4
Introduction au Java EE
• Comment ça marche?
• les données sont échangées entre le client et le serveur via le protocole HTTP ;
• le client ne comprend que les langages de présentation de l'information, en
d'autres termes les technologies HTML, CSS et Javascript ;
• les pages sont générées sur le serveur de manière dynamique, à partir du code
source du site.
Cours JEE - Khalid HOUSNI 5
Les API de JEE
API Rôle
Entreprise Java Bean (EJB) Composants serveurs contenant la logique métier
Remote Method Invocation (RMI et
RMI-IIOP)
RMI permet d'utilisation d'objet Java distribué. RMI-IIOP
est une extension de RMI pour utiliser avec CORBA.
Java Naming and Directory
Interface (JNDI)
Accès aux services de nommage et aux annuaires
d'entreprises
Java Database Connectivity
(JDBC)
Accès aux bases de données. J2EE intègre une
extension de cette API
Java Transaction API (JTA)
Java Transaction Service (JTS)
Support des transactions (JTA est un protocole de
commit à deux phases )
Java Messaging service (JMS) permet d'envoyer et de recevoir des messages de
manière asynchrone entre applications ou composants
Java. Basé sur l’architecture MOM (Messages Oriented
Middleware)
Servlets permet de créer dynamiquement des données au sein
d'un serveur HTTP.
JSF (JavaServer Faces) est un framework MVC basé sur les composants
Cours JEE - Khalid HOUSNI 6
Les API de JEE
API Rôle
Java Server Pages (JSP) technique basée sur Java qui permet aux développeurs
de créer dynamiquement du code HTML
Java IDL Utilisation de CORBA
JavaMail Envoie et réception d'email
J2EE Connector Architecture
(JCA)
Connecteurs pour accéder à des ressources du
système d'information de l'entreprises.
Java API for XML Parsing (JAXP) Analyse et exploitation de données au format XML
Java Authentication and
Authorization Service (JAAS)
Echange sécurisé de données
JavaBeans Activation Framework Utilisé par JavaMail : permet de déterminer le type
mime
Java API for XML-based RPC
(JAXP-RPC)
permettant de transmettre des messages SOAP en
mode RPC. S'appuie sur SAAJ et JAXM
SOAP with Attachments API for
Java (SAAJ)
permet d'envoyer de façon standard des documents
XML sur Internet à partir d'un modèle de programmation
Java
Cours JEE - Khalid HOUSNI 7
Les API de JEE
Ces API peuvent être regroupées en trois grandes catégories :
 les composants : Servlet, JSP, EJB ;
 les services : JDBC, JTA/JTS, JNDI, JCA, JAAS ;
 la communication : RMI-IIOP, JMS, Java Mail.
API Rôle
Java API for XML Registries (JAXR) conçu pour uniformiser l’accès aux annuaires de
web services
Java Management Extensions (JMX) gérer le fonctionnement d'une application Java
en cours d'exécution
Java Authorization Service Provider
Contract for Containers (JACC)
Norme qui définit un contrat entre les conteneurs
et les fournisseurs de services d'autorisation
…
Cours JEE - Khalid HOUSNI 8
Architectures d’une
Application Entreprise
Cours JEE - Khalid HOUSNI 9
Architecture JEE
Cours JEE - Khalid HOUSNI 10
Architecture serveur
• Concrètement, le serveur d'applications va :
• récupérer les requêtes HTTP issues des clients ;
• les mettre dans des boîtes, des objets, que votre code sera capable de
manipuler ;
• faire passer ces objets dans la moulinette qu'est votre application, via le
conteneur ;
• renvoyer des réponses HTTP aux clients, en se basant sur les objets
retournés par votre code
Cours JEE - Khalid HOUSNI 11
Le protocole HTTP
• HTTP :HyperText Tranfert Protocol
• Protocole qui permet au client de récupérer des documents du serveur
• Ces documents peuvent être statiques (contenu qui ne change pas :
HTML, PDF, Image, etc..) ou dynamiques ( Contenu généré
dynamiquement au moment de la requête : PHP, JSP, ASP…)
• Ce protocole permet également de soumissionner les formulaires
• Fonctionnement (très simple en HTTP/1.0)
• Le client se connecte au serveur (Créer une socket)
• Le client demande au serveur un document : Requête HTTP
• Le serveur renvoi au client le document (status=200) ou d’une erreur
(status=404 quand le document n’existe pas)
• Déconnexion
Cours JEE - Khalid HOUSNI 12
Méthodes du protocole HTTP
• 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…)
Cours JEE - Khalid HOUSNI 13
Méthodes du protocole HTTP
• 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…)
Cours JEE - Khalid HOUSNI 14
Methode POST
• Le client envoie la requête : Méthode POST
Post /Nom_Script HTTP/1.0
host: www.intra.net
HTTP_ACCEPT_LANGUAGE : fr
User-Agent : Mozilla/4.0
login=Value1& pass=Value2
& Var3=Value3
*** saut de ligne ***
corps de la requête
Méthode,chemin,version
Nom de domaine
Code de la langue
Type et version du
navigateur
Paramètres des différents
champs du formulaire.
Entête de la requête
Cours JEE - Khalid HOUSNI 15
Methode GET
• Le client envoie la requête : Méthode GET
GET /Nom_Script?login=val1&pass=val2&…. HTTP/1.0
host: www.intra.net
HTTP_ACCEPT_LANGUAGE : fr
User-Agent : Mozilla/4.0
corps de la requête est vide
Entête de la requête
Cours JEE - Khalid HOUSNI 16
Le Serveur retourne la réponse
HTTP/1.0 200 OK
Date : Wed, 05Feb02 15:02:01 GMT
Server : Apache/1.3.24
Last-Modified : Wed 02Oct01 24:05:01GMT
Content-Type : Text/html
Content-legnth : 4205
<HTML><HEAD>
….
</BODY></HTML>
*** saut de ligne ***
corps de la reponse
Ligne de Status
Date du serveur
Nom du Serveur
Dernière modification
Type de contenu
Sa taille
Le fichier que le client
va afficher
Entête de la reponse
Cours JEE - Khalid HOUSNI 17
• Seules les méthodes GET et POST sont supportées et traitées de
la même manière par tous les navigateurs.
• Les spécifications HTML jusqu'à 4.01 ne définissent aucun
support PUT/DELETE pour les formulaires, et seulement GET
et POST sont supportés. Du fait que ces deux méthodes
PUT/DELETE sont de plus en plus utilisées, HTML 5 définit
une spécification pour PUT/DELETE.
• En dehors d’HTML 5, un navigateur qui respecte strictement la
spécification w3c de HTML ne supporte pas PUT et DELETE,
et c'est la valeur GET qui est envoyée par défaut si la méthode
n'est pas reconnue.
Cours JEE - Khalid HOUSNI 18
Architecture en Java EE
Mahran Farhat farhatmahran@yahoo.fr
Mahran Farhat farhatmahran@yahoo.fr

JEE_chapitre 1.pdf

  • 1.
    JEE : Introductionà l’environnement JEE Mahran Farhat farhatmahran@yahoo.fr Mahran Farhat farhatmahran@yahoo.fr
  • 2.
    information Je tiens àvous informer que le support de cous (les slides du cours) est inspiré du cours de monsieur Khalid Housni. Le support du cours (cours, TP et projets) est partagé sur google drive. http ://shorturl.at/cehtP Mahran Farhat farhatmahran@yahoo.fr
  • 3.
    Plan Cours JEE -Khalid HOUSNI 2
  • 4.
    Introduction au JavaEE • Qu'est-ce que Java EE ? • Java EE n'est pas Java • Le terme « Java » fait bien évidemment référence à un langage, mais également à une plate-forme : son nom complet est « Java SE » pour Java Standard Edition. Celle-ci est constituée de nombreuses bibliothèques, ou API : citons par exemple java.lang, java.io, java.math, java.util, etc. • Le terme « Java EE » signifie Java Enterprise Edition,. Il fait quant à lui référence à une extension de la plate-forme standard. L'objectif majeur de Java EE est de faciliter le développement d'applications web robustes et distribuées, déployées et exécutées sur un serveur d'applications. Cours JEE - Khalid HOUSNI 3
  • 5.
    L’architecture JEE  Lenom de la 5ème version de la plate-forme Java pour Entreprise a été simplifiée : au lieu de se nommer J2EE (Java 2 Enterprise Edition) version 1.5, la plate-forme a été renommée Java EE 5 (Java Enterprise Edition).  L'accent est mis dans cette version sur la simplification des développements tout en conservant et en faisant évoluer les fonctionnalités proposées par la plate-forme J2EE. Java EE 5 intègre aussi de nouvelles API :  JSF ;  JPA ;  EJB 3.0 ;  Le support des dernières versions des API concernant les services web permettant une mise en œuvre d'une architecture de type SOA. Cours JEE - Khalid HOUSNI 4
  • 6.
    Introduction au JavaEE • Comment ça marche? • les données sont échangées entre le client et le serveur via le protocole HTTP ; • le client ne comprend que les langages de présentation de l'information, en d'autres termes les technologies HTML, CSS et Javascript ; • les pages sont générées sur le serveur de manière dynamique, à partir du code source du site. Cours JEE - Khalid HOUSNI 5
  • 7.
    Les API deJEE API Rôle Entreprise Java Bean (EJB) Composants serveurs contenant la logique métier Remote Method Invocation (RMI et RMI-IIOP) RMI permet d'utilisation d'objet Java distribué. RMI-IIOP est une extension de RMI pour utiliser avec CORBA. Java Naming and Directory Interface (JNDI) Accès aux services de nommage et aux annuaires d'entreprises Java Database Connectivity (JDBC) Accès aux bases de données. J2EE intègre une extension de cette API Java Transaction API (JTA) Java Transaction Service (JTS) Support des transactions (JTA est un protocole de commit à deux phases ) Java Messaging service (JMS) permet d'envoyer et de recevoir des messages de manière asynchrone entre applications ou composants Java. Basé sur l’architecture MOM (Messages Oriented Middleware) Servlets permet de créer dynamiquement des données au sein d'un serveur HTTP. JSF (JavaServer Faces) est un framework MVC basé sur les composants Cours JEE - Khalid HOUSNI 6
  • 8.
    Les API deJEE API Rôle Java Server Pages (JSP) technique basée sur Java qui permet aux développeurs de créer dynamiquement du code HTML Java IDL Utilisation de CORBA JavaMail Envoie et réception d'email J2EE Connector Architecture (JCA) Connecteurs pour accéder à des ressources du système d'information de l'entreprises. Java API for XML Parsing (JAXP) Analyse et exploitation de données au format XML Java Authentication and Authorization Service (JAAS) Echange sécurisé de données JavaBeans Activation Framework Utilisé par JavaMail : permet de déterminer le type mime Java API for XML-based RPC (JAXP-RPC) permettant de transmettre des messages SOAP en mode RPC. S'appuie sur SAAJ et JAXM SOAP with Attachments API for Java (SAAJ) permet d'envoyer de façon standard des documents XML sur Internet à partir d'un modèle de programmation Java Cours JEE - Khalid HOUSNI 7
  • 9.
    Les API deJEE Ces API peuvent être regroupées en trois grandes catégories :  les composants : Servlet, JSP, EJB ;  les services : JDBC, JTA/JTS, JNDI, JCA, JAAS ;  la communication : RMI-IIOP, JMS, Java Mail. API Rôle Java API for XML Registries (JAXR) conçu pour uniformiser l’accès aux annuaires de web services Java Management Extensions (JMX) gérer le fonctionnement d'une application Java en cours d'exécution Java Authorization Service Provider Contract for Containers (JACC) Norme qui définit un contrat entre les conteneurs et les fournisseurs de services d'autorisation … Cours JEE - Khalid HOUSNI 8
  • 10.
  • 11.
    Architecture JEE Cours JEE- Khalid HOUSNI 10
  • 12.
    Architecture serveur • Concrètement,le serveur d'applications va : • récupérer les requêtes HTTP issues des clients ; • les mettre dans des boîtes, des objets, que votre code sera capable de manipuler ; • faire passer ces objets dans la moulinette qu'est votre application, via le conteneur ; • renvoyer des réponses HTTP aux clients, en se basant sur les objets retournés par votre code Cours JEE - Khalid HOUSNI 11
  • 13.
    Le protocole HTTP •HTTP :HyperText Tranfert Protocol • Protocole qui permet au client de récupérer des documents du serveur • Ces documents peuvent être statiques (contenu qui ne change pas : HTML, PDF, Image, etc..) ou dynamiques ( Contenu généré dynamiquement au moment de la requête : PHP, JSP, ASP…) • Ce protocole permet également de soumissionner les formulaires • Fonctionnement (très simple en HTTP/1.0) • Le client se connecte au serveur (Créer une socket) • Le client demande au serveur un document : Requête HTTP • Le serveur renvoi au client le document (status=200) ou d’une erreur (status=404 quand le document n’existe pas) • Déconnexion Cours JEE - Khalid HOUSNI 12
  • 14.
    Méthodes du protocoleHTTP • 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…) Cours JEE - Khalid HOUSNI 13
  • 15.
    Méthodes du protocoleHTTP • 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…) Cours JEE - Khalid HOUSNI 14
  • 16.
    Methode POST • Leclient envoie la requête : Méthode POST Post /Nom_Script HTTP/1.0 host: www.intra.net HTTP_ACCEPT_LANGUAGE : fr User-Agent : Mozilla/4.0 login=Value1& pass=Value2 & Var3=Value3 *** saut de ligne *** corps de la requête Méthode,chemin,version Nom de domaine Code de la langue Type et version du navigateur Paramètres des différents champs du formulaire. Entête de la requête Cours JEE - Khalid HOUSNI 15
  • 17.
    Methode GET • Leclient envoie la requête : Méthode GET GET /Nom_Script?login=val1&pass=val2&…. HTTP/1.0 host: www.intra.net HTTP_ACCEPT_LANGUAGE : fr User-Agent : Mozilla/4.0 corps de la requête est vide Entête de la requête Cours JEE - Khalid HOUSNI 16
  • 18.
    Le Serveur retournela réponse HTTP/1.0 200 OK Date : Wed, 05Feb02 15:02:01 GMT Server : Apache/1.3.24 Last-Modified : Wed 02Oct01 24:05:01GMT Content-Type : Text/html Content-legnth : 4205 <HTML><HEAD> …. </BODY></HTML> *** saut de ligne *** corps de la reponse Ligne de Status Date du serveur Nom du Serveur Dernière modification Type de contenu Sa taille Le fichier que le client va afficher Entête de la reponse Cours JEE - Khalid HOUSNI 17
  • 19.
    • Seules lesméthodes GET et POST sont supportées et traitées de la même manière par tous les navigateurs. • Les spécifications HTML jusqu'à 4.01 ne définissent aucun support PUT/DELETE pour les formulaires, et seulement GET et POST sont supportés. Du fait que ces deux méthodes PUT/DELETE sont de plus en plus utilisées, HTML 5 définit une spécification pour PUT/DELETE. • En dehors d’HTML 5, un navigateur qui respecte strictement la spécification w3c de HTML ne supporte pas PUT et DELETE, et c'est la valeur GET qui est envoyée par défaut si la méthode n'est pas reconnue. Cours JEE - Khalid HOUSNI 18
  • 20.
    Architecture en JavaEE Mahran Farhat farhatmahran@yahoo.fr
  • 21.