SlideShare une entreprise Scribd logo
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
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)
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
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
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

Contenu connexe

Tendances

Presentation JEE et son écossystéme
Presentation JEE et son écossystémePresentation JEE et son écossystéme
Presentation JEE et son écossystémeAlgeria JUG
 
J2eeintro
J2eeintroJ2eeintro
J2eeintromedbmb
 
Formation JAVA/J2EE
Formation JAVA/J2EEFormation JAVA/J2EE
Formation JAVA/J2EE
Ines Ouaz
 
1 Introduction
1 Introduction1 Introduction
Java Server Faces (JSF)
Java Server Faces (JSF)Java Server Faces (JSF)
Java Server Faces (JSF)
Heithem Abbes
 
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)
ENSET, Université Hassan II Casablanca
 
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
Sabri Bouchlema
 
3 Jsf
3 Jsf3 Jsf
Java Entreprise Edition
Java Entreprise EditionJava Entreprise Edition
Java Entreprise Edition
Sabri Bouchlema
 
J2ee
J2eeJ2ee
Java EE 6 Solutions Linux 2010
Java EE 6 Solutions Linux 2010Java EE 6 Solutions Linux 2010
Java EE 6 Solutions Linux 2010
Alexis Moussine-Pouchkine
 
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...
ENSET, Université Hassan II Casablanca
 
Jsf 110530152515-phpapp01
Jsf 110530152515-phpapp01Jsf 110530152515-phpapp01
Jsf 110530152515-phpapp01
Eric Bourdet
 
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
Youness Boukouchi
 
J2 ee
J2 eeJ2 ee
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
ENSET, Université Hassan II Casablanca
 

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

En vedette

Introduction à JPA (Java Persistence API )
Introduction à JPA  (Java Persistence API )Introduction à JPA  (Java Persistence API )
Introduction à JPA (Java Persistence API )
Daniel Rene FOUOMENE PEWO
 
Something about oracle joins
Something about oracle joinsSomething about oracle joins
Something about oracle joins
mysqlops
 
Hash join
Hash joinHash join
Corba and-java
Corba and-javaCorba and-java
Corba and-java
afreen58
 
Join operation
Join operationJoin operation
Join operation
Jeeva Nanthini
 
Rmi, corba and java beans
Rmi, corba and java beansRmi, corba and java beans
Rmi, corba and java beans
Raghu nath
 
Oracle: Joins
Oracle: JoinsOracle: Joins
Oracle: Joins
oracle content
 
Enterprise Java Beans - EJB
Enterprise Java Beans - EJBEnterprise Java Beans - EJB
Enterprise Java Beans - EJB
Peter 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 fundamentales
Tulio 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 rentabilidad
Benjamin Pinzon Hoyos
 
administración hotelera
administración hoteleraadministración hotelera
administración hotelera
paramo13
 
Ley evaluacion
Ley evaluacionLey evaluacion
Ley evaluacion
Delegacion Cuarentayocho
 
Tipos de redeskaren
Tipos de redeskarenTipos de redeskaren
Tipos de redeskaren
karensita1989
 
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
alain.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 Days
Alexandre Villeneuve
 
Curso de cardiología
Curso de cardiologíaCurso de cardiología
Curso de cardiología
budox
 
Actividad 6
Actividad 6Actividad 6
Actividad 6
Karen González
 

En vedette (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
 

Similaire à Ejb

Centres sportifs nfe103
Centres sportifs nfe103Centres sportifs nfe103
Centres sportifs nfe103MRamo2s
 
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
ENSET, Université Hassan II Casablanca
 
EJB.pdf
EJB.pdfEJB.pdf
EJB.pdf
ssuser192642
 
JavaEEGibello.ppt
JavaEEGibello.pptJavaEEGibello.ppt
JavaEEGibello.ppt
ramadanmahdi
 
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.pdf
HamdaneAbdelAzizHagg
 
Programmation_JEE_Version_imprimable.pdf
Programmation_JEE_Version_imprimable.pdfProgrammation_JEE_Version_imprimable.pdf
Programmation_JEE_Version_imprimable.pdf
ngombeemmanuel
 
Introduction à Hibernate p.1
Introduction à Hibernate p.1Introduction à Hibernate p.1
Introduction à Hibernate p.1
ATHMAN HAJ-HAMOU
 
JPA est middleware
JPA est middleware JPA est middleware
JPA est middleware
Shili Mohamed
 
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
 
Jpa(1)
Jpa(1)Jpa(1)
Jpa(1)
Assad Lion
 
cours-gratuit.com--id-1964.pdf
cours-gratuit.com--id-1964.pdfcours-gratuit.com--id-1964.pdf
cours-gratuit.com--id-1964.pdf
Rachida19
 
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
Microsoft
 
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 Client
Guillaume 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 Standard
Patrice Vialor
 
Les annotations
Les annotationsLes annotations
Les annotations
Mouna Dhaouadi
 
cours8-GL-minfo-1718.pdf
cours8-GL-minfo-1718.pdfcours8-GL-minfo-1718.pdf
cours8-GL-minfo-1718.pdf
SliimAmiri
 

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

Dernier

Veille Audocdi 90 - mois de juin 2024.pdf
Veille Audocdi 90 - mois de juin 2024.pdfVeille Audocdi 90 - mois de juin 2024.pdf
Veille Audocdi 90 - mois de juin 2024.pdf
frizzole
 
Textes de famille concernant les guerres V2.pdf
Textes de famille concernant les guerres V2.pdfTextes de famille concernant les guerres V2.pdf
Textes de famille concernant les guerres V2.pdf
Michel Bruley
 
Iris van Herpen. pptx
Iris         van         Herpen.      pptxIris         van         Herpen.      pptx
Iris van Herpen. pptx
Txaruka
 
Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union - Bilan de l'année 2023Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union
 
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
BenotGeorges3
 
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
M2i Formation
 
Iris van Herpen. pptx
Iris         van        Herpen.      pptxIris         van        Herpen.      pptx
Iris van Herpen. pptx
Txaruka
 

Dernier (7)

Veille Audocdi 90 - mois de juin 2024.pdf
Veille Audocdi 90 - mois de juin 2024.pdfVeille Audocdi 90 - mois de juin 2024.pdf
Veille Audocdi 90 - mois de juin 2024.pdf
 
Textes de famille concernant les guerres V2.pdf
Textes de famille concernant les guerres V2.pdfTextes de famille concernant les guerres V2.pdf
Textes de famille concernant les guerres V2.pdf
 
Iris van Herpen. pptx
Iris         van         Herpen.      pptxIris         van         Herpen.      pptx
Iris van Herpen. pptx
 
Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union - Bilan de l'année 2023Bibliothèque de L'Union - Bilan de l'année 2023
Bibliothèque de L'Union - Bilan de l'année 2023
 
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
Newsletter SPW Agriculture en province du Luxembourg du 12-06-24
 
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
Formation M2i - Onboarding réussi - les clés pour intégrer efficacement vos n...
 
Iris van Herpen. pptx
Iris         van        Herpen.      pptxIris         van        Herpen.      pptx
Iris van Herpen. pptx
 

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
  • 3.
  • 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)
  • 15.
  • 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
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 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
  • 29.
  • 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