Enterprise Java Beans 3.0

18
Enterprise Java Beans 3.0 Cours INF 7115 - Bases de Données Hiver 2005, groupe 10 Stefan MARTINESCU

description

Enterprise Java Beans 3.0. 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. - PowerPoint PPT Presentation

Transcript of Enterprise Java Beans 3.0

Page 1: Enterprise Java Beans 3.0

Enterprise Java Beans 3.0

Cours INF 7115 - Bases de Données Hiver 2005, groupe 10

Stefan MARTINESCU

Page 2: Enterprise Java Beans 3.0

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.

Page 3: Enterprise Java Beans 3.0

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

Page 4: Enterprise Java Beans 3.0

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

Page 5: Enterprise Java Beans 3.0

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.

Page 6: Enterprise Java Beans 3.0

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.

Page 7: Enterprise Java Beans 3.0

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

Page 8: Enterprise Java Beans 3.0

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

Page 9: Enterprise Java Beans 3.0

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.

Page 10: Enterprise Java Beans 3.0

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

Page 11: Enterprise Java Beans 3.0

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.

Page 12: Enterprise Java Beans 3.0

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.

Page 13: Enterprise Java Beans 3.0

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

Page 14: Enterprise Java Beans 3.0

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.

Page 15: Enterprise Java Beans 3.0

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.

Page 16: Enterprise Java Beans 3.0

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.

Page 17: Enterprise Java Beans 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 ».

Page 18: Enterprise Java Beans 3.0

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.