j2ee : java enterprise edition vue générale. plan zj2ee zmodèle 3 tiers yles composants yles...

37
J2EE : Java Enterprise Edition Vue générale

Upload: alain-cheron

Post on 04-Apr-2015

111 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers

J2EE : Java Enterprise Edition

Vue générale

Page 2: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers

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

Page 3: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers

Le modèle d’application de J2EE

Page 4: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers

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é

Page 5: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers

Les composants de J2EE

Sur le serveur Composants web

Java servlets, JavaServer Faces, JSP

Composants entreprisesEnterprise JavaBeans (EJB)

Page 6: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers

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

Page 7: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers

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)

Page 8: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers

Le tiers Web

Page 9: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers

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

Page 10: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers

Le tiers « affaires »

Implémente la logique d’affaires Reçoit les données du client Les traite Les emmagasine, le cas échéant

Page 11: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers

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

Page 12: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers

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.

Page 13: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers

Types de containers

Page 14: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « 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

Page 15: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers

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

Page 16: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers

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

Page 17: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers

Structure d’un fichier EAR

Page 18: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers

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)

Page 19: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers

Java EE APIs

Page 20: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers

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

Page 21: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers

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

Page 22: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers

É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

Page 23: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers

Application web

Page 24: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers

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

Page 25: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers

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.

Page 26: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers

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

Page 27: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers

Configuration d’une application web

L’information de configuration Un fichier XML Web application deployment descriptor

(DD)

Voir spécification Java Servlet

Page 28: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers

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

Page 29: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers

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

Page 30: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers

Structure d’un module web

Page 31: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers

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

Page 32: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers
Page 33: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers
Page 34: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers

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>

Page 35: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers

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

Page 36: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers

Configuration d’une application web

Déclaration de références à des ressources utilisées par l’application Annotations Java EE : BD, service web

Page 37: J2EE : Java Enterprise Edition Vue générale. Plan zJ2EE zModèle 3 tiers yLes composants yLes communications entre clients et serveurs yLes « containers