j2ee : java enterprise edition vue générale. plan zj2ee zmodèle 3 tiers yles composants yles...
TRANSCRIPT
J2EE : Java Enterprise Edition
Vue générale
Plan
J2EE
Modèle 3 tiers Les composants Les communications entre clients et serveurs Les « containers »
Les 3 tiers Le tiers client Le tiers web Le tiers « affaires »
Déploiement Application Web
Le modèle d’application de J2EE
Les composants de J2EE
Sur le client Applications client
Fournir une interface plus riche que ce qui peut être fait en html
Accès aux BDs, aux EJBs, servlets…
Application web Browser web Pages web dynamiques En général pas d’accès au BD sur le serveur, la logique
d’affaire reste simple
Applets Il sera possiblement nécessaire d’avoir un plug-in et de
fichier de politiques de sécurité
Les composants de J2EE
Sur le serveur Composants web
Java servlets, JavaServer Faces, JSP
Composants entreprisesEnterprise JavaBeans (EJB)
Les composants de J2EE
Composants JavaBeans Pas des composants J2EE Utiles pour gérer les flots de données entre le
client et le serveur ainsi qu’entre le serveur et les BDs
Différences entre les classes J2SE et les composants J2EE Les composants sont destinés à être
déployées, exécutées et gérées par un serveur
La communications entre le client et le serveur
Directement
Par le biais d’un client s’exécutant dans un browser via JSP ou des servlets
Compromis Mettre le plus de
fonctionnalités sur le client près de l’usager (thick client)
Décharger le client de ces fonctionnalités et les mettre sur le serveur (thin client)
Le tiers Web
Les composants Web
Servlets Classes Java qui traitent dynamiquement les requêtes et construisent
les réponses
Pages JSP Documents textes qui s’exécutent en tant que servlets, mais
permettent de créer du contenu statique de manière plus naturelle
JavaServerFaces S’appuie sur les servlets et JSP Fournir un framework de composants d’interfaces usagers pour
construire des applications web
Les pages html statiques, les applets et les classes utilitaires côté serveur ne sont pas considérés comme des composants web par la spécifications J2EE
Le tiers « affaires »
Implémente la logique d’affaires Reçoit les données du client Les traite Les emmagasine, le cas échéant
Les « containers » J2EE
Les applications multi-tiers sont difficiles à écrire Beaucoup de code entrelacé pour gérer les transactions,
l’état, le pooling des ressources, etc.
Container Sert d’interface entre les fonctionalités de bas niveau
qui sont spécifiques à une plateforme
Avant de pouvoir exécuter un composant web, EJB ou d’application client L’assembler dans un module J2EE Le déployer dans son conteneur
Container et services de support du serveur
Adapte/configure les fonctions de support du serveur Sécurité
S’assurer que les ressources système ne sont accédées que par les usagers authorisés
Transactions
Recherche JNDI (Java Naming and Directory Interface)
Connexion remote Gestion des communications de bas niveau entre les
clients et les EJB
Etc.
Types de containers
Types de containers
Le container serveur J2EE Fournit les containers web et EJB
Le container EJB Gère l’exécution des EJB
Le container Web Gère l’exécution des pages JSP et des servlets
Le container de l’application client Gère l’exécution des applications clients
Le container d’applets Browser + Java plug-in
Support pour les services web
Les services web sont des applications d’affaires basées sur le web qui utilisent des standards fondés sur XML et des protocoles de transport pour échanger des données avec les clients
Java EE XML API
Protocole de transport SOAP
WSDL (Web Services Description Language)
UDDI (Universal Description, Discovery and Integration)
ebXML
Packaging des applications
Fichier EAR (Enterprise ARchive) Fichier JAR avec une extension .ea
des modules J2EE des fichiers de descriptions de déploiement
• Java EE deployment descriptor : paramètres génériques
– Exemple : moduleType.xml• Runtime deployment descriptor: paramètres
spécifiques– exemple : sun-moduleType.xml
Structure d’un fichier EAR
Les modules J2EE
Module EJB : fichiers .class des ejb + descripteur Fichier .jar
Module web fichiers .class des servlets, fichiers JSP, fichiers .class des classes
utilitaires, fichier html et images, + descripteur Fichier .war (Web ARchive)
Module de l’application client Fichiers .class + descripteur Fichiers .jar
Modules des adapteurs pour les ressources Interfaces Java, classes, librairies natives, documentation, +
descripteur Fichier JAR avec extension .rar (resource adapter archive)
Java EE APIs
Java EE APIs
Enterprise JavaBeans Technology Java Servlet Technology JavaServer Pages Technology Java Message Service API Java Transaction API JavaMail API JavaBeans Activation Framework Java API for XML Processing Java API for XML-Based RPC SOAP with Attachments API for Java Java API for XML Registries J2EE Connector Architecture JDBC API Java Naming and Directory Interface Java Authentication and Authorization Service Simplified Systems Integration
Les applications Web
Une extension dynamique d’un serveur web ou d’un serveur d’application
Orientée présentationGénération de pages web interactives et de contenu
dynamique en réponse aux requêtes• Servlets et pages JSP
Orientée serviceImplémentaion du point d’entrée d’un service web
• les applications web oriéentée présentation sont souvent clientes des applications web orientées services
Éléments de base
Composants web Servlets, pages JSP ou point d’entrée de service web
1. Le client envoie une requête http au serveur2. Conversion par le serveur en objet HTTPServletRequest3. Livraison de l’objet au composant web4. Réponse au serveur sous forme d’objet
HTTPServletResponse5. Conversion par le serveur en réponse HTTP 6. Envoie de la réponse au client
Application web
Servlet vs JSP
Servlet Applications orientées services Les fonctions de contrôle des applications
orientées présentationDistribution des requêtesManipulation des données non textuelles
Pages JSP Plus appropriées pour générer des balises
textuelles
Servlet
La base de toutes les technologies des applications web
Chaque technologie ajoute un niveau d’abstraction qui facilite le prototypage et le développement d’applications web plus faciles à maintenir, plus facile à passer à l’échelle, plus robustes.
Container Web
Services offerts par la plateforme d’exécution Acheminement des requêtes Sécurité Concurrence Gestion du cycle de vie
Quelques APIs disponibles Noms Transactions Courrier électronique
Configuration d’une application web
L’information de configuration Un fichier XML Web application deployment descriptor
(DD)
Voir spécification Java Servlet
Cycle de vie d’une application web
1. Coder les composants web.
2. Ecrire le fichier DD (web application deployment descriptor).
3. Compiler les composants de l’application web e tdes classes utilitaires référencées par les composants.
4. Optionnellement, packaging de l’application dans une unité déployable.
5. Déployer l’application web dans un container web.
6. Accéder à l’URL qui référence l’application web
Module web
Module web La plus petite unité déployable et utilisable de
ressources web Ressources web
Composants web Fichiers de contenu web statique
• Images, pages web
Classes utilitaires du côté serveur (ex: chariot)En général des java beans
Classes du côté clientApplets et classes utilitaires
Structure d’un module web
Déploiement d’un module web
Structure de fichiers
Fichier WAR Doit contenir un DD
Racine contextuelle de l’application webMapping des noms portables des ressources
vers les ressources du serveur d’application
Configuration d’applications web
Mapping des URLs en composants web
Déclaration des fichiers de bienvenue Liste de files que le container web va concaténer à une requête
pour un URL qui ne correspond pas à un composant web E.g. welcome.html host:port/webapp/directory, ne correspond à aucun composant
web Transformé en host:port/webapp/directory/welcome.html
Paramètres d’initialisation Du contexte (getServletContext())
<context-param><param-name><param-value>
Du composant web<init-param>
<param-name><param-value>
Configuration d’une application web
Mapping des erreurs sur des écrans d’erreurs
<error-page><exception-type> //exception ou le code
d’erreur HTTP<location> // nom de la ressource à invoquer
en cas d’erreur // doit être précédé d’un /
Exemple de code d’erreur HTTP 404: Indicates that the requested resource is not available 500: Indicates that an error occurred inside the HTTP server that prevented
it from fulfilling the request 503: Indicates that the HTTP server is temporarily overloaded and unable to
handle the request
Configuration d’une application web
Déclaration de références à des ressources utilisées par l’application Annotations Java EE : BD, service web