Les enterprises Java Beans…
Michel RIVEILL
[email protected] -http://rangiroa.essi.fr/riveill
Laboratoire I3S
2
Enterprise Java Beans
http://java.sun.com/products/ejb/index.html
Architecture permettant la création d’applications réparties
selon l’architecture 3 parties
interface
traitement
persistance
Le composant de traitement est exécuté sur un serveur et
il est appelé par un client distant
REMARQUE :
Rien à voir avec les Java beans qui sont des composants
côté client
3
Enterprise JavaBeans
Rendre une application
facile à développer, déployer et administrer
indépendamment de la plate-forme permettant son
exécution
Un EB (EnterpriseBean) n’est pas spécifique de la plate-
forme dans laquelle il est utilisé
Le déploiement d’un EB se fait sans recompilation ou
modification du code source
4
Enterprise Java Beans
EJB spécifications
= définition d’une architecture pour construire une
application en Java dont la partie serveur est construite à à
l’aide de composants appelé Entreprise Beans (EB)
Architecture = ensemble d’interfaces
Caractéristiques principales des EB
« écrit une fois, s’exécute partout »
composants « serveurs » spécialisés écrits en Java
JavaBeans = composants clients visuels
c.f. objets métiers de CORBA
EJB est la partie centrale de la plate-forme
5
Plate-forme Enterprise Java
Composants Java beans
Plate-forme EJB
(Conteneur + Serveur)
Plate-forme Serveur (Unix, NT) + JVM + JDK
JTA
Composants Enterprise Java Beans
...JNDIJMS
JDBC
RMI (JRMP, IIOP)
...
6
Architecture de serveur EJB
Client HTML
Client CORBA
(c++, Java, VB, …)
Client Java
Application, Applet
Client DCOM
ActiveX
Serveur WEB
servlet
Serveur EJB
EB
container
EB
container
JTM
SGBD
relationnel
SGBD
objet
HTTP
IIOP
RMI
RMI
RPC DCOM
SQL XQ
OQL XQ
7
EJB
Caractéristiques principales
L’architecture EJB identifie les éléments suivants :
composants logiciels ou beans (EB),
conteneurs,
serveurs,
clients.
Les conteneurs isolent les beans du client et d’une
implémentation spécifique d’un serveur
Rappel : les beans sont dans la partie serveur
Conteneurs et serveurs implémentent les mécanismes de
bas niveau utilisés par les applications
transactions, persistance, gestion mémoire, …
8
EJB
Modèle d’exécution
9
EJB
Caractéristiques principales
EJB s’intéresse aux activités liées au développement, au
déploiement et à l’exécution d’une application
EJB définit différents rôles associés aux différentes parties
intervenant dans la production d’une application
EJB définit des contrats associés à un bean
Ces contrats sont passés entre le conteneur et les clients qui
utilisent le bean.
=> ce sont des règles (obligations) qui doivent être
respectées par le fournisseur de l’EB et de conteneur
10
EJB
Les différents rôles
Fournisseur d’EB
Assembleur d’application
L’installateur
Fournisseur de conteneur EJB
Fournisseur de serveur EJB
Développement
de l’application
Enterprise Bean (EB)
Application
Conteneu
r
Serveur
Déploiement
et exécution
Produit
Utilise
Développement
du serveur
EJB
11
EJB contrats
Fournir un modèle de
développement uniforme
pour les applications qui
utilisent les composants EB
Contrat coté client
fournir une vue uniforme
du bean au client. En
particulier cette vue est
indépendante de la plate-
forme de déploiement
Contrat coté conteneur
permettre la portabilité des
beans sur différents
serveurs EJB
Contrat coté packaging”
(ejb-jar file)
fournir un format de fichier
standard pour “packager”
les beans. Ce format doit
être supporter par tous les
outils liés aux EJB
client Enterprise
Bean
EBJ conteneur
Contrat
conteneur
EJB serveur
Contrat
client
Fichier ejb-jar
Contrat
parckaging
12
EJB
Le contrat coté client
Localiser le bean
utilisation de JNDI
Utiliser le bean
utilisation de l’interface standard fournie par l’EB provider
Home Interface (méthodes liées à la gestion du bean : create,
remove, finder, ...)
Remote Interface (méthodes de l’application)
Le container implémente le mécanisme de délégation
permettant de “faire suivre” l’appel au bean
le client ne communique pas directement avec le bean mais
avec le container
13
EJB
Le contrat du “conteneur”
L’EJB conteneur permet
gestion du cycle de vie, gestion de l’état, sécurité,
transaction distribuée, concurrence, extensibilité
ces services appellent des méthodes fournies par le bean
(callback methods)
Les conteneurs gèrent 2+1 types de beans
propriétés et cycle de vie différent
Session beans
Entity beans
Message driven beans
Sorte de sessions beans spécialisés dans les communications par
échanges de messages
14
Session beans
sont non persistant (short-lived)
associé à un seul client
un flot d’exécution est créé pour
chaque appel de méthode
stateless sessions bean
pas de donnée interne, inutile de le rendre passif, peut être
partagé par plusieurs clients
plusieurs appels de méthodes en provenance du même
client
stateful sessions bean
sont détruits après un arrêt (ou une panne) de l’EJB
serveur
sont « transparents » aux transactions
transmettent le contexte
15
Entity beans
Représentent les données d’une base de données
sont persistant (long-lived)
la gestion de la persistance peut être faite par le bean (bean
managed persistence) ou déléguée à son conteneur
(container managed persistence)
acceptent les accès multiples effectués par plusieurs
clients
gestion de la concurrence
peuvent participer à des transactions
survivent aux pannes d’un serveur EJB
les pannes sont cachées aux clients
16
Cycle de vie d’un bean
Le conteneur gère le cycle de vie d’un bean
Il fournit
administration du bean (‘Home implementation’)
permet aux clients de créer, détruire et rechercher un objet EJB
appelle les opérations correspondantes fournies par le bean
(callbacks)
gestion de l’état
Activation
le bean est chargé en mémoire
Désactivation - Passivation
le conteneur peut sauvegarder l’état du bean
17
Cycle de vie d’un session bean stateless
inexistant
prêt
1. create
2. setSessionContext
3. ejbCreate
ejbRemove
18
Cycle de vie d’un session bean stateful
inexistant
passivé
prêt
1. create
2. newInstance
3. setSessionContext
4. ejbCreate
1. remove
2. ejbRemove
ejbPassivate
ejbActivate
19
Cycle de vie d’un entity bean
inexistant
prêt
En attente
1. newInstance
2. setSessionContext
1. unsetEntityContext
2. finalize
ejbPassivate
ejbActivate
(appelé par container)
1. ejbCreate
2. ejbPostCreate
(appelé par client)
1. ejbRemove
20
Persistance
Persistance gérée par le bean
le fournisseur de l’Entity Bean écrit les opérations d’accès aux
données permettant de géré la persistance dans les callback
appropriés (ejbCreate, ejbStore, ejbLoad, ejbFind ...)
utilisation par exemple de JDBC ou d ’un SGF
Persistance gérée par le conteneur
le fournisseur de l’Entity Bean utilise les services du conteneur
(“container managed fields”)
et précise le support utilisé pour la persistance
le code d’accès à la base de donnée est délégué au conteneur
Dans les 2 cas
le conteneur est responsable de la cohérence entre l’état du
bean et de l’état sauvegardé dans la base de données
1 / 11 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !