SlideShare uma empresa Scribd logo
1 de 53
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

Mais conteúdo relacionado

Mais procurados

Presentation JEE et son écossystéme
Presentation JEE et son écossystémePresentation JEE et son écossystéme
Presentation JEE et son écossystéme
Algeria JUG
 
J2eeintro
J2eeintroJ2eeintro
J2eeintro
medbmb
 

Mais procurados (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
 

Destaque

Corba and-java
Corba and-javaCorba and-java
Corba and-java
afreen58
 
Rmi, corba and java beans
Rmi, corba and java beansRmi, corba and java beans
Rmi, corba and java beans
Raghu nath
 
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 formidable
nicoki
 
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
 
Curso de cardiología
Curso de cardiologíaCurso de cardiología
Curso de cardiología
budox
 

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

Semelhante a Ejb

Centres sportifs nfe103
Centres sportifs nfe103Centres sportifs nfe103
Centres sportifs nfe103
MRamo2s
 
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01
Eric Bourdet
 
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)
Supportdecoursejb3versioncompletemryoussfi 140317162653-phpapp01 (1)
Eric Bourdet
 
Programmation_JEE_Version_imprimable.pdf
Programmation_JEE_Version_imprimable.pdfProgrammation_JEE_Version_imprimable.pdf
Programmation_JEE_Version_imprimable.pdf
ngombeemmanuel
 
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
CERTyou Formation
 
Presentation hibernate nfe103
Presentation hibernate nfe103Presentation hibernate nfe103
Presentation hibernate nfe103
MRamo2s
 
Super kebab nfe103
Super kebab nfe103Super kebab nfe103
Super kebab nfe103
MRamo2s
 
cours8-GL-minfo-1718.pdf
cours8-GL-minfo-1718.pdfcours8-GL-minfo-1718.pdf
cours8-GL-minfo-1718.pdf
SliimAmiri
 

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

Último

Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
ssuserc72852
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
AmgdoulHatim
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
ikospam0
 

Último (20)

L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptx
 
Cours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdfCours ofppt du Trade-Marketing-Présentation.pdf
Cours ofppt du Trade-Marketing-Présentation.pdf
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
 
Cours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdfCours Préparation à l’ISO 27001 version 2022.pdf
Cours Préparation à l’ISO 27001 version 2022.pdf
 
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdfSTRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
STRATEGIE_D’APPRENTISSAGE flee_DU_FLE.pdf
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhk
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiques
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdf658708519-Power-Point-Management-Interculturel.pdf
658708519-Power-Point-Management-Interculturel.pdf
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLE
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.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