Title: Enterprise Java Beans 3.0
1Enterprise Java Beans 3.0
Stefan MARTINESCU
Cours INF 7115 - Bases de Données Hiver
2005, groupe 10
2Plan de présentation
- Introduction
- Présentation de la norme EJB 2.x.
- Les faiblesses de la norme EJB 2.x.
- Les améliorations prévues dans la norme EJB 3.0.
- La présentation de la norme EJB 3.0.
- Compatibilité et migration.
- Des outils pour développer des applications qui
implémentent la norme EJB 3.0. - Conclusion.
Cours INF 7115 - Bases de Données Hiver
2005, groupe 10
3Introduction
- La technologie Entreprise Java Bean est une
technologie dentreprise qui défini un modèle de
composantes du côté serveur. - Les applications développées avec des
composantes Entreprise Java Bean - répondent à un grand nombre des appels clients
- assurent la sécurité des transactions
- cherchent à optimiser lutilisation des
ressources du serveur (mémoire, CPU, connexions
réseau, etc.).
Cours INF 7115 - Bases de Données Hiver
2005, groupe 10
4Présentation de la norme EJB 2.0
- Les objets EJB sont des composants simples,
portables, évolutifs, réutilisables et
déployables. - Ils accomplissent leur travail par
lintermédiaire dun conteneur EJB dans lequel
ils sont exécutés.
Cours INF 7115 - Bases de Données Hiver
2005, groupe 10
5Il y a trois catégories des objets EJB
- EJB entité (Entity Bean) représente les données
stockés dans une base de données. - après avoir appelée par le client peut actualiser
des données dans la base de données. - peut être partagé.
- EJB session (Session Bean) permet de réaliser
des appels de méthodes distantes. - session bean sans état (stateless session bean)
- session bean avec état (stateful session bean)
- EJB message (Message-Driven Bean) peut analyser
et répondre aux messages envoyés dune composant
J2EE ou dune application JMS.
Cours INF 7115 - Bases de Données Hiver
2005, groupe 10
6La structure dun objet EJB entité
- Les objets EJB session et EJB entité ont
- Une interface home qui défini la durée de la vie
de lobjet EJB. - Une interface remote qui défini les méthodes
métier qui peuvent être appeler du client. - Une class bean qui implémente les méthodes,
définis dans les interfaces, de lobjet EJB. - Les objets EJB message nont pas des interfaces.
Cours INF 7115 - Bases de Données Hiver
2005, groupe 10
7Les objets EJB entité
Cours INF 7115 - Bases de Données Hiver
2005, groupe 10
8Les objets EJB session
Cours INF 7115 - Bases de Données Hiver
2005, groupe 10
9Il y a deux façons de gérer la persistance
- Bean Managed Persistance (BMP)
- Lobjet EJB entité gère sa persistance.
- Le développeur doit inclure, dans le code de
lobjet, des requêtes SQL. Les requêtes SQL
accèdent à la base de données. - Conteneur Managed Persistance (CMP)
- Le conteneur gère la persistance.
- Il faut associer des méthodes findXXX() ou des
méthodes select() avec des requêtes écrites en le
langage EJB - QL. - Les requêtes EJB - QL accèdent au schéma
abstract.
Cours INF 7115 - Bases de Données Hiver
2005, groupe 10
10Les paramètres qui doivent être spécifies dans le
descripteur de déploiement
Balise Description
lt session gt lt entité gt - indique le type de lobjet EJB
lt ejb-name gt - spécifie le nom de lobjet EJB dans le répertoire JNDI
lthomegt, lt remote gt, lt ejb-class gt - spécifient les noms des interfaces et de la class de lobjet EJB
lt session-type gt - indique pour un objet EJB session, si cest un objet avec état ou non
lt transaction-type gt - indique si les transactions sont démarquées par lobjet EJB ou le conteneur
lt persistance-type gt - détermine si la persistance est gérée par le conteneur ou par lobjet EJB entité
lt cmp-field gt - spécifie les attributs dont la persistance est gérée
Cours INF 7115 - Bases de Données Hiver
2005, groupe 10
11Les faiblesses de la norme EJB 2.x
- Il faut coder plusieurs classes, interfaces et
fichiers et il faut implémenter toutes les
méthodes des interfaces, même si elles ne sont
pas utilisées - Le descripteur de déploiement est très complexe
- Il faut utiliser le service JNDI pour trouver les
objets EJB - Le modèle CMP qui permet de gérer la persistance
par le conteneur est difficile à utiliser - La syntaxe du langage des requêtes EJB-QL est
limitée - Les composants EJB sont difficiles à tester hors
du conteneur.
Cours INF 7115 - Bases de Données Hiver
2005, groupe 10
12Les améliorations incluses dans la norme EJB 3.0
- Lélimination des interfaces pour les objets EJB
session et EJB entité - Limplémentation des annotations de metadata qui
éliminent la nécessité de fournir des
descripteurs de déploiement - Laccès au service JNDI (Java Naming and
Directory Interface) par les annotations - Le langage des requêtes EJB-QL a été étendu
- La possibilité de tester lobjet EJB hors du
conteneur EJB.
Cours INF 7115 - Bases de Données Hiver
2005, groupe 10
13Comparaison entre les deux normes EJB
Components nécessaires Norme EJB 2.x Norme EJB 2.x Norme EJB 3.0 Norme EJB 3.0
Components nécessaires EJB session EJB entité EJB session EJB entité
Home interface Létendue de linterface javax.ejb.EJBHome ou de linterface javax.ejb.EJBLocalHome Létendue de linterface javax.ejb.EJBHome ou de linterface javax.ejb.EJBLocalHome optionnelle (une interface Java POJI) -
Remote interface Létendue de linterface javax.ejb.EJBObject ou de linterface javax.ejb.EJBLocalObject Létendue de linterface javax.ejb.EJBObject ou de linterface javax.ejb.EJBLocalObject optionnelle (une interface Java POJI) -
Class bean Limplémentation de linterface Limplémentation de linterface Une class Java (POJO) annoté avec _at_Stateful ou _at_Stateless Une class Java (POJO) annoté avec _at_Entity qui implémente les méthodes métiers
Class bean javax.ejb. SessionBean javax.ejb. EntityBean Une class Java (POJO) annoté avec _at_Stateful ou _at_Stateless Une class Java (POJO) annoté avec _at_Entity qui implémente les méthodes métiers
Descripteur de déploiement Un fichier XML Un fichier XML - -
Cours INF 7115 - Bases de Données Hiver
2005, groupe 10
14La présentation de la norme EJB 3.0
- Permet lutilisation des annotations.
- Une annotation permet de faire référence à un
certaine point dans le code. - Implémente une nouvelle API Persistante afin
davoir un seul modèle standard pour la
persistance ? EntityManager. - Le cycle de vie de lobjet EJB est géré par
EntityManager. - Permet linjection de dépendance pour trouver et
utiliser lenvironnement EJB et les ressources
nécessaires. - Les relations entre les objets EJB sont définis
avec des annotations.
Cours INF 7115 - Bases de Données Hiver
2005, groupe 10
15Annotations définies dans la norme EJB 3.0
- annotations qui spécifient le type de lobjet
EJB - ? _at_Stateless, _at_Stateful, _at_Entity,
_at_MessageDriven - annotations qui spécifient la façon daccès à
lobjet EJB - ? _at_Remote, _at_Local
- annotations qui spécifient des attributs de la
transaction - ? _at_TransactionAttribute
- annotations qui spécifient des méthodes de
sécurité - ? _at_MethodPermissions, _at_Unchecked,
_at_SecurityRoles - annotations de dépendance
- ? _at_Injection, _at_Resource, _at_EJB
- annotations qui font référence aux données
persistantes - ? _at_Table, _at_Id, _at_Column, _at_Transient.
Cours INF 7115 - Bases de Données Hiver
2005, groupe 10
16Compatibilité de la norme EJB 3.0 avec les
applications actuelles
- Bien que la norme EJB 3.0 implémente un nouveau
modèle pour gérer la persistance, le modèle CMP
(Container Managed Persistance) sera encore
supporté. - Les applications qui sont développés avec les
objets EJB 2.x ou JDO 1.x seront encore
supportées, mais les vendeurs sont encouragés à
assurer un chemin pour passer vers la norme EJB
3.0.
Cours INF 7115 - Bases de Données Hiver
2005, groupe 10
17Des outils pour développer des applications qui
implémentent la norme EJB 3.0
- Afin de pouvoir tester et développer des
applications en utilisant la norme EJB 3.0,
lentreprise Oracle met à disposition une version
dun serveur dapplications qui sappelle
Oracle Application Server EJB 3.0 Preview - http//www.oracle.com/technology/tech/java/ejb30.h
tml - Dans cette version de serveur dapplication,
Oracle a implémenté les caractéristiques de la
norme EJB 3.0, conforme aux spécifications du
document EJB 3.0 Early Draft 2 .
Cours INF 7115 - Bases de Données Hiver
2005, groupe 10
18Conclusion
- Limplémentation de la norme EJB 3.0 dans la
version 5.0 du serveur dapplication J2EE, qui
est prévue à être disponible ou cours du premier
trimestre de lannée 2006, simplifie le processus
de développer des applications distribuée.
Cours INF 7115 - Bases de Données Hiver
2005, groupe 10