Formation_J2EE-partieI.pdf

download Formation_J2EE-partieI.pdf

of 5

Transcript of Formation_J2EE-partieI.pdf

  • 7/26/2019 Formation_J2EE-partieI.pdf

    1/9

    Formation J2EE

    Partie I

    (Prsentation de larchitecture)

    Riadh BEN HALIMAEmail:

    [email protected]

    Ahmed JEMALEmail:

    [email protected]

    Plan

    2

    Evolution des langages et des modles dedveloppement

    Introduction J2EE Fonctionnement et structure dune applicationJ2EE

    Architecture multi-tiers Architecture en trois couches : MVC Composants J2EE Conteneurs Servlet et Java Server Page (JSP)

    Evolution des langages et des

    modles de dveloppement

    3

    Evolution des langages et des modles de

    dveloppement

    4

    Annes 70

    Structurelle/procdurale

    Annes 90

    Objet

    On parle des dates de gnralisation, et non de lapparition

    Composant

    Annes 2000

    C, Pascal, etc.Java, C++,Smalltalk, etc.

    CCM, EJB, etc.

    Service Web

    Axis, SpringWSetc.

    -OMG: CORBA-MS: DCOM-SUN: RMI

    Objet distribu

    - RPC

    Maintenant

    Temps

    TCP, SoketIIOP, ORPC, J RMP, IDL

    Procdure distance

    -AOP, etc.

    RMI-IIOP, JNDI SOAP, WSDL, UDDI

  • 7/26/2019 Formation_J2EE-partieI.pdf

    2/9

    Introduction J2EE

    5

    Introduction J2EE (1/3):

    Prsentation gnrale Java Enterprise Edition (J2EE) est un ensemble de

    spcifications coordonnes et pratiques permettant :

    le dveloppement le dploiement

    la gestion

    des applications multi-tiers rparties.

    J2EE est fonde sur la plateformeJava 2 Standard Edition(J2SE), tout en lui ajoutant les fonctionnalits ncessairespour fournir une plateforme : complte stable

    scurise

    rapide6

    Introduction J2EE (2/3):

    Services

    J2EE fournit un ensemble de services permettant auxcomposants de dialoguer entre eux. Parmi les servicesles plus importants : Servlets Java Server Pages (JSP)

    Enterprise JavaBeans (EJB)

    Java Transaction API (JTA)

    Java Persistence API (JPA)

    Java Authorization and Authentication Service (JAAS)

    Java Message Service (JMS) Java Naming and Directory Interface (JNDI)

    7

    Introduction J2EE (3/3):

    Bnfices

    Fournit une approche oriente composantpourpermettre de raliser une application distribue Lapplication est un assemblage de composants

    Fonde sur larchitecture multi-tiers Composants rutilisables

    Sparation des proccupations

    Composants indpendants des interfaces deprogrammations (APIs) et des constructeurs detechnologies

    Grce la notion de conteneurqui offre aux composants unenvironnement dans lequel ils peuvent sexcuter

    8

  • 7/26/2019 Formation_J2EE-partieI.pdf

    3/9

    Fonctionnement et structure

    dune application J2EE

    9

    Fonctionnement et structure dune application

    J2EE (1/4): Traitement de la requte (1/2)

    10

    Fonctionnement et structure dune application

    J2EE (2/4): Traitement de la requte (2/2)

    11

    1. Le client envoie une requte HTTP au serveur web2. Le serveur web qui implante la technologie Servlet ou JSP reoit

    la requte et la convertit en objet de typeHTTPServletRequest. Cet objet est dlivr au composant

    web de lapplication3. Le composant web peut ventuellement interagir avec un

    composant EJB (Enterprise JavaBean) qui ralise la partie mtierdu comportement de lapplication

    4. Le composant web ou bien le composant EJB peutventuellement interagir avec une base de donnes

    5. Le composant web cre une rponse de typeHTTPServletResponse

    6. Le serveur web convertit lobjet de typeHTTPServletResponse en une rponse HTTP quil renvoieau client

    Fonctionnement et structure dune application

    J2EE (3/4): Structure du module web (1/2)

    12

    La structure dun module web est particulire. Le rpertoireracine du module web constitue la racine de lapplication quiabrite les pages JSP, HTML, les diffrentes classes Java et lesressources de lapplication (images).

    Le rpertoire racine contient un sous rpertoire appel WEB-INF qui contient les lments suivants : web.xml :fichier dcrivant comment lapplication doit tre

    dploye. tag :rpertoire contenant des fichiers . t agdfinissant des balises

    JSP personnalises. classes :rpertoire contenant les classes situes sur le serveur

    (servlets, classes utilitaires, JavaBeans).

    lib :rpertoire contenant les fichier JAR requis par les classes duserveur.

  • 7/26/2019 Formation_J2EE-partieI.pdf

    4/9

    Fonctionnement et structure dune application

    J2EE (4/4): Structure du module web (2/2)

    13

    Architecture multi-tiers

    14

    Architecture multi-tiers (1/2)

    Lapplications est divise en composants, selon lafonctionnalit et la localit

    Ces composants sont installs sur diffrentes machines,

    appeles tiers Les tiers :

    Le tier client : composants sexcutant sur le client

    Le tier web : composants sexcutant sur le serveur

    Le tier business : composants sexcutant sur le serveur

    Le tier EIS (Enterprise Information System) : composantssexcutant sur un autre serveur (bases de donnes)

    Il ny a pas ncessairement 4 tiers dans une application

    15

    Architecture multi-tiers (2/2)

    16

    Application ClientPages Web

    Dynamiques

    Pages JSPou Servlet

    EnterpriseBeans

    EnterpriseBeans

    Base de

    donnes

    Base de

    donnes

    TierClient

    TierWeb

    TierBusiness

    TierEIS

    MachineClient

    MachineServeurJ2EE

    MachineServeur

    BD

    Application 1 Application 2

  • 7/26/2019 Formation_J2EE-partieI.pdf

    5/9

    Architecture en trois

    couches (MVC)

    17

    Architecture en trois couches (MVC) Model-View-Controller (MVC) : modle architectural de

    dveloppement logiciel (Design pattern)

    Permet disoler la logique mtier (contrleur) de laprsentation (Vue) et des donnes manipules (Modle)

    Trs rpandue car il permet de simplifier la distributionde fonctionnalits au sein dune application rpartiecomplexe

    Trs populaire dans le domaine des applications web

    Favorise la rutilisation des modles, composants et code

    Deux versions: MVC1 et MVC2

    Plusieurs implmentations sont disponibles: Struts, Spring-MVC, etc.

    18

    MVC : Architecture et interactions

    19

    ModleEncapsule ltat de lapplicationRpond des requtes sur lesdonnesExpose les fonctionnalits de

    lapplicationNotifie Vue des changements

    VueRendu du modleEnvoie des requtes de mise jour Modle

    Envoie les actions delutilisateur au ContrleurPermet au Contrleur deslectionner des vues

    ContrleurDfinit le comportement delapplicationCorrespondance entre les

    actions de lutilisateur et lesmises jours du modleSlection des vues : une parfonctionnalit

    Requtesurltat

    Notification

    dechangemen

    t

    Changement

    Dtat

    Slection des vues

    Actions de lutilisateur

    MVC : Modle

    Reprsente les donnes mtierset fournit un ensembledoprations et de rgles qui pilotent laccs et lamodification de ces donnes

    Constitue souvent une approximation dune grandeur dumonde rel (salaire, poids, temprature)

    Notifie la partie vue quand des changements sur lesdonnes surviennent et lui permet denvoyer desrequtes pour interroger ltat du modle.

    Permet au contrleur daccder aux fonctionnalits delapplications encapsules par le modle

    20

  • 7/26/2019 Formation_J2EE-partieI.pdf

    6/9

    MVC : Vue

    Ralise le rendu de la partie modle : reoit les donnes partir du modle et spcifie comment elles devraient tre

    reprsentes. Met jour la reprsentation des donnes quand celles-ci sont

    changes dans le modle. Deux mthodes de mise jour : Push :Vue senregistre auprs de modle et est notifi chaque

    fois quil y a un changement

    Pull : Vue est responsable dinterroger modle avec desrequtes pour connatre les valeurs les plus rcentes des donnes

    Transfre les actions de lutilisateur vers la partie Contrleuret permet celui-ci de slectionner les vues adquates pourlutilisateur

    21

    MVC : Contrleur

    Dfinit le comportement mtierde lapplication Aiguille les requtes de lutilisateur et slectionne les vues en

    se basant sur les actions entre lutilisateur et les rsultats destraitements sur les donnes

    Traduit les interactions de lutilisateur avec la partie Vue enactions devant tre effectues sur le modle : Dans une application Web, les entres sont des requtes HTTP (GET

    ou Post) Dans une application Autonome (GUI Java) les entres sont, par

    exemple, des choix de menus, des clicks sur des boutons Les actions effectues par le contrleur sur le modle peuvent

    inclure : Activer un processus mtier Changer ltat du modle Mettre jour les donnes

    22

    Illustration du modle MVC

    23

    contrleur

    modle

    vues

    Couche

    prsentationCouche mtier Couche donnes

    1

    5

    43

    2

    MVC1

    24

    L'inconvnient : une multiplication du nombre de servlets ncessaire l'application :

    L'implmentation de plusieurs servlets ncessite beaucoup de code produire

    d'autant que chaque servlet doit tre dclare dans le fichier web.xml.

  • 7/26/2019 Formation_J2EE-partieI.pdf

    7/9

    MVC2

    Une volution du modle 1: une unique servlet fait off ice de contrleur

    Le contrleur est divis en deux parties:

    Un point d'entre unique toute l'applicatio n qui or iente les requtes vers

    Les traitements applicatifs invoquer dynamiquement

    25

    Composants J2EE

    26

    Composants J2EE:

    Dfinition et motivations (1/2)

    Les applications distribues J2EE sont constitues parlassemblages de plusieurs composants.

    Un composant est une unit logicielle autonome (self-contained).

    Un composant contient un ensemble de classes Java etdautres fichiers de support lui permettant de communiqueravec les autres composants.

    Les composants sont crits en Java et compils dune maniresimilaire aux programmes Java classiques, avec troisdiffrences : Les composants J2EE sont assembls pour former lapplication J2EE Il existe une phase de vrification pour garantir que les composants

    sont conformes la spcification J2EE

    Les composants sont dploys dans un environnement deproduction

    27

    Composants J2EE:

    Dfinition et motivations (2/2)

    Il existe trois familles de composants : Les clients et les applets sont des composants qui sexcutent

    sur les clients dune application J2EE

    Les Servlets, les Java Server Pages (JSP) et les Java Server Faces(JSF) sont des composants web qui sexcutent sur le serveur

    Les Enterprise JavaBeans (EJB) sont des composants mtierquisexcutent sur le serveur

    Motivations : Favoriser la rutilisation de code

    Permettre la sparation des proccupations

    Permettre le dveloppement en quipe

    28

  • 7/26/2019 Formation_J2EE-partieI.pdf

    8/9

  • 7/26/2019 Formation_J2EE-partieI.pdf

    9/9

    Bibliographie

    [1]Java 2 Platform Enterprise Edition Specification, v1.4http://java.sun.com/j2ee/j2ee-1_4-fr-spec.pdf

    [2]The Java EE 5 Tutorialhttp://java.sun.com/javaee/5/docs/tutorial/doc/JavaEETutorial.pdf

    [3]Faq J2EEhttp://java.developpez.com/faq/javaee/

    [4]MVC

    http://java.sun.com/blueprints/patterns/MVC-detailed.html

    [5]Java Persistence API, Linda DeMichiel et Michael Keith

    33