SlideShare a Scribd company logo
1 of 53
Download to read offline
Les EJB : Enterprise Java Bean
Présenté par Ba Papa Samba (jahreal2@gmail.com), M2IR 2013
avec emprunts aux supports de Maxime Lefrancois,
Wikipedia,developpez.com,commentcamarche.net
Sous la direction de Mr Der Moustapha
Plan de l’exposé
Introduction générale
EJB : fondamentaux
Session Beans
Entités
Message-Driven Beans
Concepts avancés sur la persistance
Relations avec les entités
Gestion des transactions
2
Ejb
Enterprise Java Bean
Les EJB
facilitent la création d'applications distribuées pour
les entreprises.
S’occupent du traitement métier de l’application
Permettent aux développeurs de se concentrer
sur les traitements orientés métiers
Sont réutilisables
Sont assemblables
4
Enterprise Java Bean
Composant serveur qui encapsule une logique
métier, qui peut être déployé dans un serveur
d’application
Composé de un ou plusieurs objets
Les appels aux méthodes par les clients de
l’EJB sont interceptés par le conteneur d’EJB
Rôle du conteneur
Le conteneur d’EJB s’occupe de certains
traitements
Cycle de vie du bean
Injection de dépendance
Accès au bean, communication à distance
Sécurité d’accès
Accès concurrents
Transactions, …
2 Types d’EJB
Session Bean
Modélise un traitement
Représenté par une classe Java et une interface qui
expose certaines méthodes
Message Driven Bean (MDB)
Consomme des messages asynchrones envoyés par
des clients
Permettent l’interconnexion avec des systèmes
différents (non Java EE)
Session Bean
Modélise un traitement (business process)
Correspond à un verbe, à une action
Ex : gestion de compte bancaire, affichage de
catalogue de produit, vérifieur de données
bancaires, gestionnaire de prix…
Les actions impliquent des calculs, des accès à
une base de données, consulter un service
externe (appel téléphonique, etc.)
Souvent client d'autres Beans
3 types de Session Bean
Bean sans état (stateless)
Pour traiter les requêtes de plusieurs clients,
sans garder un état entre les différentes requêtes
Exemple : obtenir la liste de tous les produits
Bean avec état (stateful)
Pour tenir une conversation avec un seul client,
en gardant un état entre les requêtes
Exemple : remplir le caddy d’un client avant de
lancer la commande (le caddy est rempli en cliquant
sur les différentes pages des produits)
3 types de Session Bean
Bean singleton
Garantie de n’avoir qu’une seule instance du bean
dans tout le serveur d’application
Supporte les accès concurrents (configurable)
Exemple : bean qui « cache » une liste de pays,
utilisé par les classes de l’application pour éviter
d’interroger la BD
Message-Driven Bean
Introduits à partir de la norme EJB 2.0
(aujourd’hui en 3.0)
Similaire aux Session beans : représentent des
verbes ou des actions,
On les invoque en leur envoyant des messages,
souvent d’une autre application
Ex : message pour déclencher des transactions
boursières, des autorisations d'achat par CB
Souvent clients d'autres beans…
Entité
Les applications Java EE utilisent aussi des
entités
Une entité est une classe qui représente des
données enregistrées dans une base de
données
Correspond à un nom
Ex : personne, produit, compte bancaire
Objets distribués
Application distribuée
Une application Java EE peut être distribuée
sur plusieurs machines du réseau
Les containers gèrent les appels distants pour
le développeur (utilisent RMI-IIOP)
Ejb
Les objets distribués et le middleware
Lorsqu'une application devient importante, des
besoins récurrents apparaissent :
sécurité, transactions,etc…
C'est là qu'intervient le middleware!
Deux approches
1.Middleware explicite,
2.Middleware implicite
Ejb
Ejb
Ejb
Ejb
Ejb
Ejb
Un peu d’implémentation avec EJB 2.x
EJB Object
EJB 3.0 simplifie la tâche du développeur en
cachant des détails d’implémentation
L’étude de EJB 2.x permet de comprendre
comment fonctionnent les EJB
Pour chaque EJB écrit par le développeur, le
serveur d’application crée un objet (EJB Object)
qui contient le code qui va permettre au serveur
d’intercepter les appels de méthode de l’EJB
Rôle de l’EJB Object
Les clients n'invoquent jamais directement les
méthodes de la classe du Bean
Les appels de méthodes sont en fait envoyés à
l’EJB Object
Une fois les traitements effectués pour les
transactions, sécurité,.. le container appelle les
méthodes de la classe du bean
Constitution d'un EJB : EJB Object
Que se passe-t-il lors de l'interception ?
Prise en compte des transactions,
Sécurité : le client est-il autorisé ?
Gestion des ressources + cycle de vie des composants :
threads, sockets, connexions DB, pooling des instances
(mémoire),
Persistance,
Accès distant aux objets,
Threading des clients en attente,
Clustering,
Monitoring : statistiques, graphiques temps réel du
comportement du système…
…
Constitution d'un EJB : EJB Object
Container = couche d'indirection entre le client
et le bean
Cette couche est matérialisée par un objet
unique : l'EJB Object
EJB Server
EJB Container
EJ Bean
EJ Bean
Container
EJB
Serveur
EJB
Code simple
Génération du code à
partir du Bean
Le code généré fournit
Transactions, Securité,
Persistance, Accès
Distant, gestion des
ressources, etc.
Fournit les services au
container
EJB : classe du Bean et EJB Object
Ejb
Les interfaces
Interfaces
Pour chaque EJB session, le développeur doit
fournir une (ou 2) interface qui indique les
méthodes de l’EJB que les clients de l’EJB
pourront appeler
Les autres méthodes de l’EJB servent au bon
fonctionnement de l’EJB
Un EJB session peut avoir une interface locale
et une interface distante
Interface locale
Si l’EJB n’a qu’une seule interface locale, il ne
peut être utilisé que par les classes qui sont dans
le même container
Le développeur peut ne fournir aucune interface
; en ce cas, une interface locale est
automatiquement créée, qui contient toutes les
méthodes publiques de l’EJB
Interface distante
Indispensable si l’EJB peut être utilisé par des
classes qui ne sont pas dans le même container
(application distribuée)
Pour manipuler un EJB à travers une interface
locale, le serveur d’application utilisera RMI-IIOP,
ce qui implique
des performances moins bonnes
les paramètres et les valeurs de retour sont transmis
par recopie des valeurs (références pour un appel
local)
Avec les interfaces distantes
Problème : la création de bean et l'appel de
méthode distante coûtent cher !
Avec les interfaces distantes
Commentaires sur la figure précédente
1.Le client appelle un stub (souche),
2.Le stub encode les paramètres dans un format capable de
voyager sur le réseau,
3.Le stub ouvre une connexion sur le skeleton (squelette),
4.Le skeleton décode les paramètres,
5.Le skeleton appelle l'EJB Object,
6.L'EJB Object effectue les appels middleware,
7.L'EJB Object appelle la méthode du bean,
8.Le Bean fait son travail,
9.On fait le chemin inverse pour retourner la valeur de retour vers
le client !
10.…Sans compter le chargement dynamique des classes
nécessaires !
Conclusion
Favoriser les interfaces locales
Ne jamais utiliser d’interfaces distantes si les
EJBs et leurs clients sont dans le même
container
L’écosystème des EJBs
37
Ejb
Ejb
Ejb
Ejb
Ejb
Ejb
Ejb
Ejb
Ejb
Ejb
Ejb
Ejb
Ejb
Ejb
Ejb
Ejb

More Related Content

What's hot (19)

Presentation JEE et son écossystéme
Presentation JEE et son écossystémePresentation JEE et son écossystéme
Presentation JEE et son écossystéme
 
J2eeintro
J2eeintroJ2eeintro
J2eeintro
 
Formation JAVA/J2EE
Formation JAVA/J2EEFormation JAVA/J2EE
Formation JAVA/J2EE
 
1 Introduction
1 Introduction1 Introduction
1 Introduction
 
Java Server Faces 2
Java Server Faces 2Java Server Faces 2
Java Server Faces 2
 
Java Server Faces (JSF)
Java Server Faces (JSF)Java Server Faces (JSF)
Java Server Faces (JSF)
 
Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)Sécurité des Applications Web avec Json Web Token (JWT)
Sécurité des Applications Web avec Json Web Token (JWT)
 
Développement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EEDéveloppement d'applications pour la plateforme Java EE
Développement d'applications pour la plateforme Java EE
 
3 Jsf
3 Jsf3 Jsf
3 Jsf
 
Java Entreprise Edition
Java Entreprise EditionJava Entreprise Edition
Java Entreprise Edition
 
J2ee
J2eeJ2ee
J2ee
 
Spring
SpringSpring
Spring
 
Java EE 6 Solutions Linux 2010
Java EE 6 Solutions Linux 2010Java EE 6 Solutions Linux 2010
Java EE 6 Solutions Linux 2010
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
 
J2 ee
J2 eeJ2 ee
J2 ee
 
Jsf 110530152515-phpapp01
Jsf 110530152515-phpapp01Jsf 110530152515-phpapp01
Jsf 110530152515-phpapp01
 
La persistance des données : ORM et hibernate
La persistance des données : ORM et hibernateLa persistance des données : ORM et hibernate
La persistance des données : ORM et hibernate
 
J2 ee
J2 eeJ2 ee
J2 ee
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 

Viewers also liked

Something about oracle joins
Something about oracle joinsSomething about oracle joins
Something about oracle joinsmysqlops
 
Corba and-java
Corba and-javaCorba and-java
Corba and-javaafreen58
 
Rmi, corba and java beans
Rmi, corba and java beansRmi, corba and java beans
Rmi, corba and java beansRaghu nath
 
Enterprise Java Beans - EJB
Enterprise Java Beans - EJBEnterprise Java Beans - EJB
Enterprise Java Beans - EJBPeter R. Egli
 
Incostitucionalidad por omision y su incidencia en los derechos fundamentales
Incostitucionalidad por omision y su incidencia en los derechos fundamentalesIncostitucionalidad por omision y su incidencia en los derechos fundamentales
Incostitucionalidad por omision y su incidencia en los derechos fundamentalesTulio Ramiro Morales Paredes
 
Damien un homme formidable
Damien un homme formidableDamien un homme formidable
Damien un homme formidablenicoki
 
Contenido logística frontera de la rentabilidad
Contenido logística   frontera de la rentabilidadContenido logística   frontera de la rentabilidad
Contenido logística frontera de la rentabilidadBenjamin Pinzon Hoyos
 
administración hotelera
administración hoteleraadministración hotelera
administración hoteleraparamo13
 
Présentations assemblée générale F&BE 2014
Présentations assemblée générale F&BE 2014Présentations assemblée générale F&BE 2014
Présentations assemblée générale F&BE 2014alain.jacquet
 
E-Réputation - Conférence Media Days
E-Réputation - Conférence Media DaysE-Réputation - Conférence Media Days
E-Réputation - Conférence Media DaysAlexandre Villeneuve
 
Curso de cardiología
Curso de cardiologíaCurso de cardiología
Curso de cardiologíabudox
 

Viewers also liked (20)

Introduction à JPA (Java Persistence API )
Introduction à JPA  (Java Persistence API )Introduction à JPA  (Java Persistence API )
Introduction à JPA (Java Persistence API )
 
Something about oracle joins
Something about oracle joinsSomething about oracle joins
Something about oracle joins
 
Hash join
Hash joinHash join
Hash join
 
Corba and-java
Corba and-javaCorba and-java
Corba and-java
 
Join operation
Join operationJoin operation
Join operation
 
Rmi, corba and java beans
Rmi, corba and java beansRmi, corba and java beans
Rmi, corba and java beans
 
Oracle: Joins
Oracle: JoinsOracle: Joins
Oracle: Joins
 
Enterprise Java Beans - EJB
Enterprise Java Beans - EJBEnterprise Java Beans - EJB
Enterprise Java Beans - EJB
 
Ejb3
Ejb3Ejb3
Ejb3
 
Incostitucionalidad por omision y su incidencia en los derechos fundamentales
Incostitucionalidad por omision y su incidencia en los derechos fundamentalesIncostitucionalidad por omision y su incidencia en los derechos fundamentales
Incostitucionalidad por omision y su incidencia en los derechos fundamentales
 
Damien un homme formidable
Damien un homme formidableDamien un homme formidable
Damien un homme formidable
 
Contenido logística frontera de la rentabilidad
Contenido logística   frontera de la rentabilidadContenido logística   frontera de la rentabilidad
Contenido logística frontera de la rentabilidad
 
Trabajo informática
Trabajo informáticaTrabajo informática
Trabajo informática
 
administración hotelera
administración hoteleraadministración hotelera
administración hotelera
 
Ley evaluacion
Ley evaluacionLey evaluacion
Ley evaluacion
 
Tipos de redeskaren
Tipos de redeskarenTipos de redeskaren
Tipos de redeskaren
 
Présentations assemblée générale F&BE 2014
Présentations assemblée générale F&BE 2014Présentations assemblée générale F&BE 2014
Présentations assemblée générale F&BE 2014
 
E-Réputation - Conférence Media Days
E-Réputation - Conférence Media DaysE-Réputation - Conférence Media Days
E-Réputation - Conférence Media Days
 
Curso de cardiología
Curso de cardiologíaCurso de cardiología
Curso de cardiología
 
Actividad 6
Actividad 6Actividad 6
Actividad 6
 

Similar to Ejb

Centres sportifs nfe103
Centres sportifs nfe103Centres sportifs nfe103
Centres sportifs nfe103MRamo2s
 
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01Eric Bourdet
 
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)Eric Bourdet
 
introductionaudevcomposantdistribuejavaee.pdf
introductionaudevcomposantdistribuejavaee.pdfintroductionaudevcomposantdistribuejavaee.pdf
introductionaudevcomposantdistribuejavaee.pdfHamdaneAbdelAzizHagg
 
Programmation_JEE_Version_imprimable.pdf
Programmation_JEE_Version_imprimable.pdfProgrammation_JEE_Version_imprimable.pdf
Programmation_JEE_Version_imprimable.pdfngombeemmanuel
 
Introduction à Hibernate p.1
Introduction à Hibernate p.1Introduction à Hibernate p.1
Introduction à Hibernate p.1ATHMAN HAJ-HAMOU
 
Jee005 formation-jee-ejb-3-les-bases-et-perfectionnement
Jee005 formation-jee-ejb-3-les-bases-et-perfectionnementJee005 formation-jee-ejb-3-les-bases-et-perfectionnement
Jee005 formation-jee-ejb-3-les-bases-et-perfectionnementCERTyou Formation
 
cours-gratuit.com--id-1964.pdf
cours-gratuit.com--id-1964.pdfcours-gratuit.com--id-1964.pdf
cours-gratuit.com--id-1964.pdfRachida19
 
De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData
De A à Z: Accès aux données avec Entity Framework 4.2 et publication en ODataDe A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData
De A à Z: Accès aux données avec Entity Framework 4.2 et publication en ODataMicrosoft
 
Presentation hibernate nfe103
Presentation hibernate nfe103Presentation hibernate nfe103
Presentation hibernate nfe103MRamo2s
 
#5 Java EE5 Client Lourd et Smart Client
#5 Java EE5  Client Lourd  et Smart Client#5 Java EE5  Client Lourd  et Smart Client
#5 Java EE5 Client Lourd et Smart ClientGuillaume Sauthier
 
Super kebab nfe103
Super kebab nfe103Super kebab nfe103
Super kebab nfe103MRamo2s
 
ASI INFORMATIQUE - Cursus de formation XPages Standard
ASI INFORMATIQUE - Cursus de formation XPages StandardASI INFORMATIQUE - Cursus de formation XPages Standard
ASI INFORMATIQUE - Cursus de formation XPages StandardPatrice Vialor
 
cours8-GL-minfo-1718.pdf
cours8-GL-minfo-1718.pdfcours8-GL-minfo-1718.pdf
cours8-GL-minfo-1718.pdfSliimAmiri
 

Similar to Ejb (20)

Centres sportifs nfe103
Centres sportifs nfe103Centres sportifs nfe103
Centres sportifs nfe103
 
Support de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfiSupport de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfi
 
EJB.pdf
EJB.pdfEJB.pdf
EJB.pdf
 
JavaEEGibello.ppt
JavaEEGibello.pptJavaEEGibello.ppt
JavaEEGibello.ppt
 
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01
 
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)
 
introductionaudevcomposantdistribuejavaee.pdf
introductionaudevcomposantdistribuejavaee.pdfintroductionaudevcomposantdistribuejavaee.pdf
introductionaudevcomposantdistribuejavaee.pdf
 
Programmation_JEE_Version_imprimable.pdf
Programmation_JEE_Version_imprimable.pdfProgrammation_JEE_Version_imprimable.pdf
Programmation_JEE_Version_imprimable.pdf
 
Introduction à Hibernate p.1
Introduction à Hibernate p.1Introduction à Hibernate p.1
Introduction à Hibernate p.1
 
JPA est middleware
JPA est middleware JPA est middleware
JPA est middleware
 
Jee005 formation-jee-ejb-3-les-bases-et-perfectionnement
Jee005 formation-jee-ejb-3-les-bases-et-perfectionnementJee005 formation-jee-ejb-3-les-bases-et-perfectionnement
Jee005 formation-jee-ejb-3-les-bases-et-perfectionnement
 
Jpa(1)
Jpa(1)Jpa(1)
Jpa(1)
 
cours-gratuit.com--id-1964.pdf
cours-gratuit.com--id-1964.pdfcours-gratuit.com--id-1964.pdf
cours-gratuit.com--id-1964.pdf
 
De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData
De A à Z: Accès aux données avec Entity Framework 4.2 et publication en ODataDe A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData
De A à Z: Accès aux données avec Entity Framework 4.2 et publication en OData
 
Presentation hibernate nfe103
Presentation hibernate nfe103Presentation hibernate nfe103
Presentation hibernate nfe103
 
#5 Java EE5 Client Lourd et Smart Client
#5 Java EE5  Client Lourd  et Smart Client#5 Java EE5  Client Lourd  et Smart Client
#5 Java EE5 Client Lourd et Smart Client
 
Super kebab nfe103
Super kebab nfe103Super kebab nfe103
Super kebab nfe103
 
ASI INFORMATIQUE - Cursus de formation XPages Standard
ASI INFORMATIQUE - Cursus de formation XPages StandardASI INFORMATIQUE - Cursus de formation XPages Standard
ASI INFORMATIQUE - Cursus de formation XPages Standard
 
Les annotations
Les annotationsLes annotations
Les annotations
 
cours8-GL-minfo-1718.pdf
cours8-GL-minfo-1718.pdfcours8-GL-minfo-1718.pdf
cours8-GL-minfo-1718.pdf
 

Recently uploaded

Présentation de lancement de la SAE203 - MMI S2
Présentation de lancement de la SAE203 - MMI S2Présentation de lancement de la SAE203 - MMI S2
Présentation de lancement de la SAE203 - MMI S2JeanLucHusson
 
Semaine de la Passion de Jésus-Christ.pptx
Semaine de la Passion de Jésus-Christ.pptxSemaine de la Passion de Jésus-Christ.pptx
Semaine de la Passion de Jésus-Christ.pptxMartin M Flynn
 
La Projection orthogonale en dessin technique
La Projection orthogonale en dessin techniqueLa Projection orthogonale en dessin technique
La Projection orthogonale en dessin techniquessuser4dbdf2
 
Planning de la semaine du 25 mars au 2 avril 2024
Planning de la semaine du 25 mars au 2 avril 2024Planning de la semaine du 25 mars au 2 avril 2024
Planning de la semaine du 25 mars au 2 avril 2024frizzole
 
Rapport projet de fin d'études licence PFE
Rapport projet de fin d'études licence PFERapport projet de fin d'études licence PFE
Rapport projet de fin d'études licence PFEAhmam Abderrahmane
 
Exercice de FLE pour enfants sur les transports et les prépositions
Exercice de FLE pour enfants sur les transports et les prépositionsExercice de FLE pour enfants sur les transports et les prépositions
Exercice de FLE pour enfants sur les transports et les prépositionslaetitiachassagne
 
Formation M2i - Femmes entrepreneures : soyez actrices du changement
Formation M2i - Femmes entrepreneures : soyez actrices du changementFormation M2i - Femmes entrepreneures : soyez actrices du changement
Formation M2i - Femmes entrepreneures : soyez actrices du changementM2i Formation
 

Recently uploaded (7)

Présentation de lancement de la SAE203 - MMI S2
Présentation de lancement de la SAE203 - MMI S2Présentation de lancement de la SAE203 - MMI S2
Présentation de lancement de la SAE203 - MMI S2
 
Semaine de la Passion de Jésus-Christ.pptx
Semaine de la Passion de Jésus-Christ.pptxSemaine de la Passion de Jésus-Christ.pptx
Semaine de la Passion de Jésus-Christ.pptx
 
La Projection orthogonale en dessin technique
La Projection orthogonale en dessin techniqueLa Projection orthogonale en dessin technique
La Projection orthogonale en dessin technique
 
Planning de la semaine du 25 mars au 2 avril 2024
Planning de la semaine du 25 mars au 2 avril 2024Planning de la semaine du 25 mars au 2 avril 2024
Planning de la semaine du 25 mars au 2 avril 2024
 
Rapport projet de fin d'études licence PFE
Rapport projet de fin d'études licence PFERapport projet de fin d'études licence PFE
Rapport projet de fin d'études licence PFE
 
Exercice de FLE pour enfants sur les transports et les prépositions
Exercice de FLE pour enfants sur les transports et les prépositionsExercice de FLE pour enfants sur les transports et les prépositions
Exercice de FLE pour enfants sur les transports et les prépositions
 
Formation M2i - Femmes entrepreneures : soyez actrices du changement
Formation M2i - Femmes entrepreneures : soyez actrices du changementFormation M2i - Femmes entrepreneures : soyez actrices du changement
Formation M2i - Femmes entrepreneures : soyez actrices du changement
 

Ejb

  • 1. Les EJB : Enterprise Java Bean Présenté par Ba Papa Samba (jahreal2@gmail.com), M2IR 2013 avec emprunts aux supports de Maxime Lefrancois, Wikipedia,developpez.com,commentcamarche.net Sous la direction de Mr Der Moustapha
  • 2. Plan de l’exposé Introduction générale EJB : fondamentaux Session Beans Entités Message-Driven Beans Concepts avancés sur la persistance Relations avec les entités Gestion des transactions 2
  • 4. Enterprise Java Bean Les EJB facilitent la création d'applications distribuées pour les entreprises. S’occupent du traitement métier de l’application Permettent aux développeurs de se concentrer sur les traitements orientés métiers Sont réutilisables Sont assemblables 4
  • 5. Enterprise Java Bean Composant serveur qui encapsule une logique métier, qui peut être déployé dans un serveur d’application Composé de un ou plusieurs objets Les appels aux méthodes par les clients de l’EJB sont interceptés par le conteneur d’EJB
  • 6. Rôle du conteneur Le conteneur d’EJB s’occupe de certains traitements Cycle de vie du bean Injection de dépendance Accès au bean, communication à distance Sécurité d’accès Accès concurrents Transactions, …
  • 7. 2 Types d’EJB Session Bean Modélise un traitement Représenté par une classe Java et une interface qui expose certaines méthodes Message Driven Bean (MDB) Consomme des messages asynchrones envoyés par des clients Permettent l’interconnexion avec des systèmes différents (non Java EE)
  • 8. Session Bean Modélise un traitement (business process) Correspond à un verbe, à une action Ex : gestion de compte bancaire, affichage de catalogue de produit, vérifieur de données bancaires, gestionnaire de prix… Les actions impliquent des calculs, des accès à une base de données, consulter un service externe (appel téléphonique, etc.) Souvent client d'autres Beans
  • 9. 3 types de Session Bean Bean sans état (stateless) Pour traiter les requêtes de plusieurs clients, sans garder un état entre les différentes requêtes Exemple : obtenir la liste de tous les produits Bean avec état (stateful) Pour tenir une conversation avec un seul client, en gardant un état entre les requêtes Exemple : remplir le caddy d’un client avant de lancer la commande (le caddy est rempli en cliquant sur les différentes pages des produits)
  • 10. 3 types de Session Bean Bean singleton Garantie de n’avoir qu’une seule instance du bean dans tout le serveur d’application Supporte les accès concurrents (configurable) Exemple : bean qui « cache » une liste de pays, utilisé par les classes de l’application pour éviter d’interroger la BD
  • 11. Message-Driven Bean Introduits à partir de la norme EJB 2.0 (aujourd’hui en 3.0) Similaire aux Session beans : représentent des verbes ou des actions, On les invoque en leur envoyant des messages, souvent d’une autre application Ex : message pour déclencher des transactions boursières, des autorisations d'achat par CB Souvent clients d'autres beans…
  • 12. Entité Les applications Java EE utilisent aussi des entités Une entité est une classe qui représente des données enregistrées dans une base de données Correspond à un nom Ex : personne, produit, compte bancaire
  • 14. Application distribuée Une application Java EE peut être distribuée sur plusieurs machines du réseau Les containers gèrent les appels distants pour le développeur (utilisent RMI-IIOP)
  • 16. Les objets distribués et le middleware Lorsqu'une application devient importante, des besoins récurrents apparaissent : sécurité, transactions,etc… C'est là qu'intervient le middleware! Deux approches 1.Middleware explicite, 2.Middleware implicite
  • 24. EJB Object EJB 3.0 simplifie la tâche du développeur en cachant des détails d’implémentation L’étude de EJB 2.x permet de comprendre comment fonctionnent les EJB Pour chaque EJB écrit par le développeur, le serveur d’application crée un objet (EJB Object) qui contient le code qui va permettre au serveur d’intercepter les appels de méthode de l’EJB
  • 25. Rôle de l’EJB Object Les clients n'invoquent jamais directement les méthodes de la classe du Bean Les appels de méthodes sont en fait envoyés à l’EJB Object Une fois les traitements effectués pour les transactions, sécurité,.. le container appelle les méthodes de la classe du bean
  • 26. Constitution d'un EJB : EJB Object Que se passe-t-il lors de l'interception ? Prise en compte des transactions, Sécurité : le client est-il autorisé ? Gestion des ressources + cycle de vie des composants : threads, sockets, connexions DB, pooling des instances (mémoire), Persistance, Accès distant aux objets, Threading des clients en attente, Clustering, Monitoring : statistiques, graphiques temps réel du comportement du système… …
  • 27. Constitution d'un EJB : EJB Object Container = couche d'indirection entre le client et le bean Cette couche est matérialisée par un objet unique : l'EJB Object
  • 28. EJB Server EJB Container EJ Bean EJ Bean Container EJB Serveur EJB Code simple Génération du code à partir du Bean Le code généré fournit Transactions, Securité, Persistance, Accès Distant, gestion des ressources, etc. Fournit les services au container EJB : classe du Bean et EJB Object
  • 31. Interfaces Pour chaque EJB session, le développeur doit fournir une (ou 2) interface qui indique les méthodes de l’EJB que les clients de l’EJB pourront appeler Les autres méthodes de l’EJB servent au bon fonctionnement de l’EJB Un EJB session peut avoir une interface locale et une interface distante
  • 32. Interface locale Si l’EJB n’a qu’une seule interface locale, il ne peut être utilisé que par les classes qui sont dans le même container Le développeur peut ne fournir aucune interface ; en ce cas, une interface locale est automatiquement créée, qui contient toutes les méthodes publiques de l’EJB
  • 33. Interface distante Indispensable si l’EJB peut être utilisé par des classes qui ne sont pas dans le même container (application distribuée) Pour manipuler un EJB à travers une interface locale, le serveur d’application utilisera RMI-IIOP, ce qui implique des performances moins bonnes les paramètres et les valeurs de retour sont transmis par recopie des valeurs (références pour un appel local)
  • 34. Avec les interfaces distantes Problème : la création de bean et l'appel de méthode distante coûtent cher !
  • 35. Avec les interfaces distantes Commentaires sur la figure précédente 1.Le client appelle un stub (souche), 2.Le stub encode les paramètres dans un format capable de voyager sur le réseau, 3.Le stub ouvre une connexion sur le skeleton (squelette), 4.Le skeleton décode les paramètres, 5.Le skeleton appelle l'EJB Object, 6.L'EJB Object effectue les appels middleware, 7.L'EJB Object appelle la méthode du bean, 8.Le Bean fait son travail, 9.On fait le chemin inverse pour retourner la valeur de retour vers le client ! 10.…Sans compter le chargement dynamique des classes nécessaires !
  • 36. Conclusion Favoriser les interfaces locales Ne jamais utiliser d’interfaces distantes si les EJBs et leurs clients sont dans le même container