1 Introduction JEE

download 1 Introduction JEE

of 6

Transcript of 1 Introduction JEE

  • 7/24/2019 1 Introduction JEE

    1/6

    Cours EJB/J2EE

    Copyright Michel Buffa

    24/11/2011

    1

    Programmer avec Java EEIntroduction gnrale

    Michel Buffa ([email protected]), UNSA 2011,

    modifi par Richard Grin (version 1.0),

    avec emprunts aux supports de Maxime Lefranois

    Plan du cours

    Introduction gnrale

    EJB : les fondamentaux

    Session Beans

    Entits

    Message-Driven Beans

    Concepts avancs sur la persistance

    Relations entre les Entits

    Gestion des transactions

    2

    Prrequis / Objectifs

    Pr-requis : HTML, HTTP

    Objectifs : dveloppement dapplications Web

    avec Java EE, en particulier avec JSF et les

    EJB

    3

    Besoins des dveloppeurs

    Applications

    accessibles depuis un navigateur Web

    distribues

    portables

    rapides

    fiables

    transactionnellessres (restriction des accs aux fonctionnalits)

    qui tirent profit des technologies orientes serveur

    A considrer lo rsqu'on construit uneapplication distribue

    Protocoles d'accs distants (CORBA, RMI, IIOP)

    Gestion de la charge,

    Gestion des pannes,

    Persistence, intgration au back-end,

    Gestion des transactions,

    Clustering,

    Redploiement chaud,

    Arrt de serveurs sans interrompre l'application,

    Gestion des traces, rglages (tuning and auditing),

    Programmation multithread

    Securit, performances,

    Gestion des ressources(Resource pooling),

    Qui s'occupe de tout ceci : le middleware !

    Dans le pass, la plupart des entreprisesprogrammaient leur propre middleware.Adressaient rarement tous les problmes,

    Gros risque : a revient cher (maintenance,dveloppement)

    Orthogonal au secteur d'activit de l'entreprise(banque, commerce)

    Pourquoi ne pas acheter un produit ? Oracle, IBM, BEA proposent depuis plusieurs

    annes des middleware

    Aussi appels serveurs d'application.

  • 7/24/2019 1 Introduction JEE

    2/6

    Cours EJB/J2EE

    Copyright Michel Buffa

    24/11/2011

    2

    Serveur d'application

    Un serveur d'application fournit les servicesmiddleware les plus courants

    Permettent de se focaliser sur l'application que

    l'on dveloppe, sans s'occuper du reste

    Le code est dploy sur le serveur

    d'application

    Sparation des mtiers et des spcificits :

    d'un ct la logique mtier, de l'autre la logique

    middleware.

    Serveur d'application

    HTML

    Java

    Application

    Business LogicBusiness Logic

    Distributed

    Objects

    Transactions

    Content

    Management

    Scalability Reliability Security Manageability

    Enterprise Deployment Services

    Development Tools

    PresentationPresentation

    Java

    HTML

    Data

    Data AccessData Access

    Enterprise Data

    Connectors

    Data Access

    Objects

    Encore mieux !

    Il est possible d'acheter ou de rutiliser unepartie de la logique mtier !

    Vous dveloppez votre application l'aide decomposants. Code qui implmente des interfaces prdfinies.

    Sorte de bote noire.

    Un bout de logique facilement rutilisable. On assemble les composants comme un puzzle,

    afin de rsoudre des problmes importants.

    Composant logiciel rutilisable

    Une entreprise peut acheter un composant et

    l'intgrer avec des composants qu'elle a

    dvelopps.

    Par exemple, un composant qui sait grer des prix.

    On lui passe une liste de produits et il calcule le prix

    total.

    Simple en apparence, mais la gestion des prix peutdevenir trs complexe : remises, promotions, lots,

    clients privilgis, rgles complexes en fonction du

    pays, des taxes, etc

    Composant logiciel rutilisable

    Ce composant rpond un besoin rcurrent

    Vente en ligne de matriel informatique,

    Gestion des cots sur une chane de production

    automobile,

    Calcul des prix des expditions par la poste,

    Etc

    Quel intrt ?

    Moins d'expertise requise pour rpondre

    certains points du cahier des charges,

    Dveloppement plus rapide.

    Normalement, les vendeurs de composants

    assurent un service de qualit (BEA, IBM)

    Rduction des frais de maintenance.

    Naissance d'un march des composants.

    Pas encore l'explosion attendue mais

  • 7/24/2019 1 Introduction JEE

    3/6

    Cours EJB/J2EE

    Copyright Michel Buffa

    24/11/2011

    3

    Architectures de composants

    Plus de 50 serveurs d'applications ont vu lejour depuis une dizaine d'annes,

    Au dbut, composants propritairesuniquement. Pas de cohabitation entre composants dvelopps

    pour diffrents serveurs d'application

    Dpendant d'un fabriquant une fois le choixeffectu.

    Dur avaler pour les dveloppeurs java quiprnent la portabilit et l'ouverture !

    Arch itectures de composants

    Ncessit de standardiser la notion decomposants

    Ensemble de dfinitions d'interfaces entre le

    serveur d'application et les composants

    Ainsi n'importe quel composant peut tourner ou tre

    recompil sur n'importe quel serveur

    Un tel standard s'appelle une architecture de

    composants

    Penser aux CDs audio, la tl, au VHS, etc

    Architectures de composants Enterprise JavaBeans (EJB)

    Le standard EJB est une architecture de

    composants pour des composants serveur

    crits en java.

    1. Adopt par l'industrie

    2. Permet d'implmenter des "objets mtier" d'une

    manire propre et rutilisable

    3. Portable facilement

    4. Rapid Application Development (RAD)

    EJB signifie deux choses :

    1. Une spcification

    2. Un ensemble d'interfaces

    Pourquoi java ?

    EJB = uniquement en java

    Robuste et sr : mcanismes + riche API +

    spcificit du langage (reflexivit, introspection,

    chargement dynamique)

    Portable

    Autre possibilits

    Composants Microsoft .NET

    Ruby on rails, Python turbo gears,

    Frameworks java plus lgers comme WebWork

    Spring (en Java)

    EJB pour dvelopper des composantsbusiness

    Implmenter de la logique mtier : calcul des taxes sur

    un ensemble d'achats, envoyer un mail de confirmation

    aprs une commande, etc

    Accder un SGBD

    Accder un autre systme d'information (CICS,

    COBOL, SAP R/3, etc)

    Applications web : intgration avec JSF/Servlets

    Web services bass sur XML (SOAP, UDDI, etc)

    Exemple : DELL attaque le serveur d'INTEL directement travers un protocole XML pour rserver des pices.

  • 7/24/2019 1 Introduction JEE

    4/6

    Cours EJB/J2EE

    Copyright Michel Buffa

    24/11/2011

    4

    Entreprise JavaBeans (EJB) Composants dun serveur dapplication

    Un serveur d'application Java EE

    = rpond aux spcifications Java EE dOracle

    Le serveur d'application va fournir les services systmes

    gnriques :

    La scurit

    La reprise sur panne

    Les services transactionnel entre composants

    La gestion des utilisateurs

    L'accs aux sources de donnes

    etc.

    19Larchitecture Java EE

    Sorte d'architecture 3 niveaux

    o la couche prsentation est divise en 2 :Le client lger :

    un navigateur Web

    Un serveur Web

    avec JSF, servlets.

    Couche de prsentationApplication standalone

    Application web

    Applets

    Couche mtier ; middleware-> Traitements

    (par des EJB, ou des JavaBeans)

    Couche de donnesSGBD ; Stocke les donnes

    Source: http://download.oracle.com/javaee/6/tutorial/doc/bnaay.html

    20

    Larchitecture Java EE

    Sorte d'architecture 3 niveaux

    o la couche prsentation est divise en 2 :

    Le client lger :

    un navigateur Web

    Un serveur Web

    avec JSF, servlets.

    Source: http://download.oracle.com/javaee/6/tutorial/doc/bnaay.html

    21

    Les EJB ne fournissent pas de GUI !GUI = Graphic user interface

    GUI : rle de la couchede prsentation.

    Les conteneurs d EJB et Web

    Les serveurs dapplication contiennent des conteneurs

    Un conteneur est l'environnement d'excution des

    composants

    Il gre l'interface entre les composants Java EE et les

    fonctionnalits bas-niveau

    multi-threading,

    le cache mmoire,

    la scurit, l'accs aux donnes

    etc.

    22

    Source: http://download.oracle.com/javaee/6/tutorial/doc/bnaay.html

    Les conteneurs d EJB et Web

    Les diffrents types de conteneurs :

    Conteneur d'application cliente et d'applet :

    la machine virtuelle Java

    Conteneur Web :

    pour l'excution des servlet, JSF, etc.

    Conteneur d'EJB :

    composants mtier

    23

    Source: http://download.oracle.com/javaee/6/tutorial/doc/bnaay.html

    Les conteneurs dEJB

    Les communications de lextrieur

    avec les d'EJBs sont interceptes

    par le conteneur pour fournir un

    certain nombre de services :

    cycle de vie du bean

    accs au bean

    scurit d'accs

    accs concurrents

    transactions

    Libre le dveloppeur dune

    grande charge de travail !

    24

    Source: http://download.oracle.com/javaee/6/tutorial/doc/bnaay.html

  • 7/24/2019 1 Introduction JEE

    5/6

    Cours EJB/J2EE

    Copyright Michel Buffa

    24/11/2011

    5

    Les conteneurs dEJB

    Par exemple, pour les

    transactions, lappel dunemthode du bean est intercept

    par le conteneur qui

    peut dmarrer une nouvelletransaction juste avant de donner la

    main au code de la mthode

    peut lancer un commit de la

    transaction la fin de lexcution de

    la mthode

    25

    Source: http://download.oracle.com/javaee/6/tutorial/doc/bnaay.html

    LCOSYSTME DES EJBS26

    Pour dployer et excuter un projet base d'EJBs,six mtiers sont impliqus

    27

    Ladministrateur systme(maintenance du dploiement)

    Le vendeurdoutils

    Le fournisseurdEJBs

    Lassembleur

    dapplication

    Le fournisseur

    de solution de

    persistance

    Construit lesapplications

    Le fournisseur duserveur d'application

    et des containers

    Le dployeur

    dEJBs

    Dploie lesystme

    1- Le fournisseur dEJBs28

    Ladministrateur systme

    (maintenance du dploiement)

    Le vendeur

    doutils

    Le fournisseurdEJBs

    Lassembleur

    dapplication

    Le fournisseurde solution de

    persistance

    Construit les

    applications

    Le fournisseur du

    serveur d'application

    et des containers

    Le dployeurdEJBs

    Dploie le

    systme

    1- Le fournisseur dEJBs

    Peut-tre

    un membre de votre quipe,

    une entreprise qui vend des

    EJBs

    2- Lassembleur dapplication29

    Ladministrateur systme(maintenance du dploiement)

    Le vendeurdoutils

    Lassembleurdapplication

    Le fournisseurde solution de

    persistance

    Construit les

    applications

    Le fournisseur du

    serveur d'application

    et des containers

    Le dployeur

    dEJBs

    Dploie le

    systme

    2- Lassembleur dapplication

    Il s'agit de l'architecte de l'application

    Il assemble les fichiers jar et war dans un fichier ear

    Modifie les fichiers descripteurs de dploiement

    Il peut s'agir d'un intgrateur de systmes, d'un consultant, d'une quipe dedveloppeurs/concepteurs maison

    Le fournisseurdEJBs

    3- Le dployeur dEJBs30

    Ladministrateur systme(maintenance du dploiement)

    Le vendeurdoutils

    Le fournisseurde solution de

    persistance

    Construit les

    applications

    Le fournisseur du

    serveur d'application

    et des containers

    Le dployeur

    dEJBs

    Dploie le

    systme

    3- Le dployeur d'EJBs

    Aprs que l'application ait t assemble, elle doit tre dploye sur un ou plusieursserveurs d'application

    Attention la scurit (firewall, etc)

    Branchement de services annexes (LDAP, Lotus Notes, Microsoft Active Directory, etc)sur le serveur d'applications.

    Choix du hardware, des SGBD, etc

    Paramtrage du serveur d'application pour configurer les transactions, les accs auxfonctionnalits et aux bases de donnes

    Il peut tre une quipe ou une personne, un consultant ou un vendeur d'hbergement deserveurs d'applications.

    Le fournisseurdEJBs

    Lassembleur

    dapplication

  • 7/24/2019 1 Introduction JEE

    6/6

    Cours EJB/J2EE

    Copyright Michel Buffa

    24/11/2011

    6

    4- Ladministrateur systme31

    L e(mai ent)

    Ladministrateur systme(maintenance du dploiement)

    Le vendeur

    doutils

    Le fournisseurde solution de

    persistance

    Construit les

    applications

    Le fournisseur du

    serveur d'application

    et des containers

    Dploie le

    systme

    4- L'administrateur systme Vrifie le bon fonctionnement de l'application en exploitation.

    Il utilise les outils de monitoring des serveurs d'application.

    Il effectue la maintenance hardware et software (lancement, arrt) du systme.

    Le fournisseurdEJBs

    Lassembleur

    dapplication

    Le dployeur

    dEJBsLadministrateur systme

    (maintenance du dploiement)

    5- Le fournisseur du serveur dapplication et des containers32

    Le vendeur

    doutils

    Le fournisseurde solution de

    persistance

    Construit les

    applications

    Le fournisseur du

    serveur d'application

    et des containers

    Dploie le

    systme

    Le fournisseurdEJBs

    Lassembleur

    dapplication

    Le dployeur

    dEJBs

    Le fournisseur du serveur

    d'application et des

    containers

    Implmente le serveur

    dapplication en suivant les

    spcifications Java EE 6

    Ladministrateur systme(maintenance du dploiement)

    6- Les vendeurs doutils33

    Le vendeurdoutils

    Le fournisseur

    de solution de

    persistance

    Construit lesapplications

    Dploie lesystme

    Le fournisseurdEJBs

    Lassembleur

    dapplication

    Le dployeur

    dEJBs

    6- Le vendeur d'outils

    Il fournit des outils pour simplifier les tches rptitives comme le dploiement,

    etc

    Dvelopper une application base d'EJB est assez lourd. Pourtant la manire de

    dvelopper, construire, maintenir, dployer les EJBs est standard.

    IDEspar exemple : NetBeans , Eclipse.

    Ladministrateur systme(maintenance du dploiement)

    Le "persistence manager"34

    Le vendeurdoutils

    Le fournisseur

    de solution de

    persistance

    Construit lesapplications

    Dploie lesystme

    Le fournisseurdEJBs

    Lassembleur

    dapplication

    Le dployeur

    dEJBs

    Bientt un nouveau mtier : le "persistence manager" Dveloppe des outils qui se "branchent" sur le serveur

    d'application et implmentent les mcanismes de persistance.

    Mapping BD relationnelles/Objets

    Mapping BD objet/Objets

    Etc

    Java EE : les APIs

    J2EE comprend de trs nombreuses API EJB : standard de dfinition de composants

    Java 2 RMI et RMI-IIOP : objets distribus

    JNDI (Java Naming and Directory Interface)

    JDBC (Java Data Base Connectivity)

    JTA (Java Transaction API)

    JMS (Java Messaging Service)

    Java Servlets, Java Pages (JSP) et Java Server Faces (JSF)

    JavaMail

    JAXP (Java API for XML Parsing)

    JAAS (Java Authentification and Authorization Service)

    J2EE for the Real World

    HTML

    Java

    Application

    JTS/JTA JNDI JavaMail RMI-IIOP JMS

    Scalability Reliability Security Manageability

    Enterprise Deployment Services

    Development and Deployment Tools

    Data

    PresentationPresentation

    Servlets/JSP

    AJAX

    Business LogicBusiness Logic

    EJB

    Data AccessData Access

    JDBC 2.0

    JSF

    JPA