Post on 12-Jan-2016
description
Enterprise Java Beans 3.0
Cours INF 7115 - Bases de Données Hiver 2005, groupe 10
Stefan MARTINESCU
Cours INF 7115 - Bases de Données Hiver 2005, groupe 10
Plan 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
Introduction
• La technologie Entreprise Java Bean est une technologie d’entreprise 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 l’utilisation des ressources du serveur (mémoire, CPU, connexions réseau, etc.).
Cours INF 7115 - Bases de Données Hiver 2005, groupe 10
Pré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 l’intermédiaire d’un conteneur EJB dans lequel ils sont exécutés.
PRÉSENTATION(premier tiers)
LOGIQUE MÉTIER(tiers intermediaire)
BACK-END(troisiéme tiers)
EJBSession
EJBMessage
EJBEntité
Serveur d’applications J2EE
Conteneur EJB- Gestion du cycle de vie- Gestion de communication- Gestion de connexion de BD- Gestion de transaction
Cours INF 7115 - Bases de Données Hiver 2005, groupe 10
Il 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 d’une composant J2EE ou d’une application JMS.
Cours INF 7115 - Bases de Données Hiver 2005, groupe 10
La structure d’un objet EJB entité
• Les objets EJB session et EJB entité ont :
– Une interface home qui défini la durée de la vie de l’objet 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 l’objet EJB.
• Les objets EJB message n’ont pas des interfaces.
Cours INF 7115 - Bases de Données Hiver 2005, groupe 10
Les objets EJB entité
PRÉSENTATION(premier tiers)
LOGIQUE MÉTIER(tiers intermediaire)
BACK-END(troisiéme tiers)
EJBEntité
EJBEntité
EJBEntité
Table
Table
Table
Serveur d’applications J2EE
Les valeurs de la méthode invoquée
Invocation d’une méthode métier
InterfaceRemote
InterfaceHome
Réseau
( protocole RMI )
JNDI
JMS
JDBC
Conteneur EJB- Gestion du cycle de vie- Gestion de communication- Gestion de connexion de base de données- Gestion de transaction
Stub
Cours INF 7115 - Bases de Données Hiver 2005, groupe 10
Les objets EJB session
PRÉSENTATION(premier tiers)
LOGIQUE MÉTIER(tiers intermediaire)
BACK-END(troisiéme tiers)
EJBSession
EJBSession
EJBSession
Table
Table
Table
Serveur d’applications J2EE
Les valeurs de la méthode invoquée
Invocation d’une méthode métier
InterfaceRemote
InterfaceHome
Réseau
( protocole RMI )POJO
JNDI
JMS
JDBC
EJBEntité
Conteneur EJB- Gestion du cycle de vie- Gestion de communication- Gestion de connexion de base de données- Gestion de transaction
InterfaceLocale
InterfaceHome locale
JDBC
Stub
Cours INF 7115 - Bases de Données Hiver 2005, groupe 10
Il y a deux façons de gérer la persistance : – Bean Managed Persistance (BMP)
– L’objet EJB entité gère sa persistance.
– Le développeur doit inclure, dans le code de l’objet, 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
Les paramètres qui doivent être spécifies dans le descripteur de déploiement
Balise Description
< session > < entité > - indique le type de l’objet EJB
< ejb-name > - spécifie le nom de l’objet EJB dans le répertoire JNDI
<home>, < remote >,
< ejb-class >
- spécifient les noms des interfaces et de la class de l’objet EJB
< session-type > - indique pour un objet EJB session, si c’est un objet avec état ou non
< transaction-type > - indique si les transactions sont démarquées par l’objet EJB ou le conteneur
< persistance-type > - détermine si la persistance est gérée par le conteneur ou par l’objet EJB entité
< cmp-field > - spécifie les attributs dont la persistance est gérée
Cours INF 7115 - Bases de Données Hiver 2005, groupe 10
Les 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
Les améliorations incluses dans la norme EJB 3.0
L’élimination des interfaces pour les objets EJB session et EJB entité;
L’implémentation des annotations de metadata qui éliminent la nécessité de fournir des descripteurs de déploiement;
L’accè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 l’objet EJB hors du conteneur EJB.
Cours INF 7115 - Bases de Données Hiver 2005, groupe 10
Comparaison entre les deux normes EJB
Components nécessaires
Norme EJB 2.x Norme EJB 3.0
EJB session EJB entité EJB session EJB entité
Home interface
L’étendue de l’interface javax.ejb.EJBHome
ou de l’interface
javax.ejb.EJBLocalHome
optionnelle
(une interface
Java POJI)
-
Remote interface
L’étendue de l’interface javax.ejb.EJBObject
ou de l’interface javax.ejb.EJBLocalObject
optionnelle
(une interface
Java POJI)
-
Class bean
L’implémentation de l’interface
Une class Java (POJO)
annoté avec @Stateful ou @Stateless
Une class Java (POJO) annoté
avec @Entity qui implémente les
méthodes métiers
javax.ejb.
SessionBean
javax.ejb.
EntityBean
Descripteur de déploiement
Un fichier XML - -
Cours INF 7115 - Bases de Données Hiver 2005, groupe 10
La présentation de la norme EJB 3.0 • Permet l’utilisation des annotations.
– Une annotation permet de faire référence à un certaine point dans le code.
• Implémente une nouvelle API Persistante afin d’avoir un seul modèle standard pour la persistance EntityManager.
• Le cycle de vie de l’objet EJB est géré par EntityManager.
• Permet l’injection de dépendance pour trouver et utiliser l’environnement 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
Annotations définies dans la norme EJB 3.0 • annotations qui spécifient le type de l’objet EJB :
@Stateless, @Stateful, @Entity, @MessageDriven;
• annotations qui spécifient la façon d’accès à l’objet EJB :
@Remote, @Local;
• annotations qui spécifient des attributs de la transaction :
@TransactionAttribute;
• annotations qui spécifient des méthodes de sécurité :
@MethodPermissions, @Unchecked, @SecurityRoles;
• annotations de dépendance
@Injection, @Resource, @EJB;
• annotations qui font référence aux données persistantes :
@Table, @Id, @Column, @Transient.
Cours INF 7115 - Bases de Données Hiver 2005, groupe 10
Compatibilité 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
Des 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, l’entreprise Oracle met à disposition une version d’un serveur d’applications qui s’appelle « Oracle Application Server EJB 3.0 Preview»http://www.oracle.com/technology/tech/java/ejb30.html
Dans cette version de serveur d’application, 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
Conclusion
L’implémentation de la norme EJB 3.0 dans la version 5.0 du serveur d’application J2EE, qui est prévue à être disponible ou cours du premier trimestre de l’année 2006, simplifie le processus de développer des applications distribuée.