Post on 22-Feb-2018
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 (buffa@unice.fr), 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