Vous êtes sur la page 1sur 6

Cours EJB/J2EE

Copyright Michel Buffa

24/11/2011

Plan du cours
Introduction gnrale
EJB : les fondamentaux
Session Beans

Programmer avec Java EE

Entits

Introduction gnrale

Message-Driven Beans

Michel Buffa (buffa@unice.fr), UNSA 2011,


modifi par Richard Grin (version 1.0),

Concepts avancs sur la persistance

avec emprunts aux supports de Maxime Lefranois

Relations entre les Entits


Gestion des transactions

Prrequis / Objectifs

Pr-requis : HTML, HTTP

Objectifs : dveloppement dapplications Web


avec Java EE, en particulier avec JSF et les
EJB

A considrer lorsqu'on construit une


application distribue

Besoins des dveloppeurs


Applications
accessibles depuis un navigateur Web
distribues
portables
rapides
fiables
transactionnelles
sres (restriction des accs aux fonctionnalits)
qui tirent profit des technologies orientes serveur

Qui s'occupe de tout ceci : le middleware !

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),

Dans le pass, la plupart des entreprises


programmaient 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.

Cours EJB/J2EE
Copyright Michel Buffa

Serveur d'application

Un serveur d'application fournit les services


middleware les plus courants

Permettent de se focaliser sur l'application que


l'on dveloppe, sans s'occuper du reste

24/11/2011

Serveur d'application

Development Tools

Presentation

HTML

Sparation des mtiers et des spcificits :


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

Encore mieux !

Il est possible d'acheter ou de rutiliser une


partie de la logique mtier !

Vous dveloppez votre application l'aide de


composants.

Java
Content
Management
Java
Application

Ce composant rpond un besoin rcurrent

Data Access
Objects
Enterprise Data
Connectors

Data

Reliability

Security

Manageability

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 peut
devenir trs complexe : remises, promotions, lots,
clients privilgis, rgles complexes en fonction du
pays, des taxes, 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.

Vente en ligne de matriel informatique,


Gestion des cots sur une chane de production
automobile,
Calcul des prix des expditions par la poste,
Etc

Data Access

Enterprise Deployment Services


Scalability

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

Distributed
Objects
Transactions

HTML

Le code est dploy sur le serveur


d'application

Business Logic

Pas encore l'explosion attendue mais

Cours EJB/J2EE
Copyright Michel Buffa

Architectures de composants

Plus de 50 serveurs d'applications ont vu le


jour depuis une dizaine d'annes,

Au dbut, composants propritaires


uniquement.

24/11/2011

Architectures de composants

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

Pas de cohabitation entre composants dvelopps


pour diffrents serveurs d'application
Dpendant d'un fabriquant une fois le choix
effectu.

Dur avaler pour les dveloppeurs java qui


prnent la portabilit et l'ouverture !

Architectures de composants

Ncessit de standardiser la notion de


composants

Un tel standard s'appelle une architecture de


composants

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

Enterprise JavaBeans (EJB)

Le standard EJB est une architecture de


composants pour des composants serveur
crits en java.
Adopt par l'industrie
Permet d'implmenter des "objets mtier" d'une
manire propre et rutilisable
3. Portable facilement
4. Rapid Application Development (RAD)
1.
2.

EJB signifie deux choses :


1.
2.

Pourquoi java ?

EJB = uniquement en java

EJB pour dvelopper des composants


business

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)

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)

Une spcification
Un ensemble d'interfaces

Exemple : DELL attaque le serveur d'INTEL directement


travers un protocole XML pour rserver des pices.

Cours EJB/J2EE
Copyright Michel Buffa

24/11/2011

Entreprise JavaBeans (EJB)

19

Composants dun serveur dapplication

20

Larchitecture Java EE
Sorte d'architecture 3 niveaux

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.

o la couche prsentation est divise en 2 :


Le client lger :
un navigateur Web
Un serveur Web
avec JSF, servlets.
Couche de prsentation
Application standalone
Application web
Applets

Couche mtier ; middleware


-> Traitements
(par des EJB, ou des JavaBeans)
Couche de donnes
SGBD ; Stocke les donnes
Source: http://download.oracle.com/javaee/6/tutorial/doc/bnaay.html

21

Larchitecture Java EE

22

Les conteneurs dEJB et Web

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.

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.

Les EJB ne fournissent pas de GUI !


GUI = Graphic user interface
GUI : rle de la couche de prsentation.

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

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

23

Les conteneurs dEJB et Web

Les diffrents types de conteneurs :

Conteneur d'application cliente et d'applet :

Conteneur Web :

Conteneur d'EJB :

24

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 !

la machine virtuelle Java


pour l'excution des servlet, JSF, etc.
composants mtier

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

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

Cours EJB/J2EE
Copyright Michel Buffa

24/11/2011

25

Les conteneurs dEJB

LCOSYSTME DES EJBS

26

Par exemple, pour les


transactions, lappel dune
mthode du bean est intercept
par le conteneur qui

peut dmarrer une nouvelle


transaction 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

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

Pour dployer et excuter un projet base d'EJBs,


six mtiers sont impliqus

Le vendeur
doutils

28

1- Le fournisseur dEJBs

Le fournisseur
de solution de
persistance

Le vendeur
doutils

Le fournisseur
de solution de
persistance

Lassembleur
dapplication

Le fournisseur
dEJBs

27

Construit les
applications

Le dployeur
dEJBs

Dploie le
systme

Lassembleur
dapplication

Ladministrateur systme
(maintenance du dploiement)

Le fournisseur
dEJBs

Le fournisseur du
serveur d'application
et des containers

Construit les
applications

Le fournisseur du
serveur d'application
et des containers

Le dployeur
dEJBs

Peut-tre

29

Le vendeur
doutils

Le fournisseur
de solution de
persistance

Lassembleur
dapplication

Le dployeur
dEJBs

Dploie le
systme

un membre de votre quipe,


une entreprise qui vend des
EJBs

30

3- Le dployeur dEJBs

Le fournisseur
de solution de
persistance

Le vendeur
doutils

Construit les
applications

Lassembleur
dapplication

Ladministrateur systme
(maintenance du dploiement)

Ladministrateur systme
(maintenance du dploiement)

1- Le fournisseur dEJBs

2- Lassembleur dapplication

Dploie le
systme

Construit les
applications

Le dployeur
dEJBs

Dploie le
systme

Ladministrateur systme
(maintenance du dploiement)

3- Le dployeur d'EJBs
2- Lassembleur dapplication
Le fournisseur
dEJBs

Le fournisseur du

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


serveur
d'application
etdes containers
Il assemble les fichiers jar et war dans un fichier ear

Le fournisseur
dEJBs

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

Attention la scurit (firewall, etc)

du de services annexes (LDAP, Lotus Notes, Microsoft Active Directory, etc)


Le fournisseur
Branchement
serveur
surd'application
le serveur d'applications.
et des containers

Choix du hardware, des SGBD, etc

Modifie les fichiers descripteurs de dploiement

Il peut s'agir d'un intgrateur de systmes, d'un consultant, d'une quipe de


dveloppeurs/concepteurs maison

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

Il peut tre une quipe ou une personne, un consultant ou un vendeur d'hbergement de


serveurs d'applications.

Cours EJB/J2EE
Copyright Michel Buffa

24/11/2011

31

4- Ladministrateur systme

Le fournisseur
de solution de
persistance

Le vendeur
doutils

Lassembleur
dapplication

Le fournisseur
dEJBs

32

5- Le fournisseur du serveur dapplication et des containers

Le vendeur
doutils

Construit les
applications

Le dployeur
dEJBs

Dploie le
systme

Le fournisseur
dEJBs

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 fournisseur
de solution de
persistance

Le vendeur
doutils

Lassembleur
dapplication

Le dployeur
dEJBs

Dploie le
systme

Dploie le
systme

Ladministrateur systme
(maintenance du dploiement)

Le fournisseur du serveur
d'application et des
containers

Le fournisseur du
serveur d'application
et des containers

Implmente le serveur
dapplication en suivant les
spcifications Java EE 6

34

Le "persistence manager"

Le vendeur
doutils

Construit les
applications

Le dployeur
dEJBs

33

6- Les vendeurs doutils

Construit les
applications

Lassembleur
dapplication

Ladministrateur systme
(maintenance du dploiement)

Le fournisseur du
serveur d'application
et des containers

Le fournisseur
de solution de
persistance

Le fournisseur
de solution de
persistance

Construit les
applications

Lassembleur
dapplication

Ladministrateur systme
(maintenance du dploiement)

Le dployeur
dEJBs

Dploie le
systme

Ladministrateur systme
(maintenance du dploiement)

Bientt un nouveau mtier : le "persistence manager"

6- Le vendeur d'outils
Le fournisseur
dEJBs

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.

IDEs par exemple : NetBeans, Eclipse.

Java EE : les APIs

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

Le fournisseur
dEJBs

J2EE for the Real World


Development and Deployment Tools

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)

Presentation

Business Logic

Data Access

Servlets/JSP
HTML

JPA

EJB

JSF
AJAX

Java
Application

JTS/JTA

JDBC 2.0

JNDI

JavaMail

RMI-IIOP

Data

JMS

Enterprise Deployment Services


Scalability

Reliability

Security

Manageability