Les Ejb - PowerPoint PPT Presentation

1 / 45
About This Presentation
Title:

Les Ejb

Description:

Les EJB sont CORBA ce qu'est le circuit pr cabl la carte m re lectronique ... clients partagent un EJB entity ils. re oivent leurs propres instance d'EJB. partagent les ... – PowerPoint PPT presentation

Number of Views:67
Avg rating:3.0/5.0
Slides: 46
Provided by: persoCiti
Category:
Tags: ejb | les | partagent

less

Transcript and Presenter's Notes

Title: Les Ejb


1
Les Ejb
Les EJB sont à CORBA ce qu?est le circuit
précablé à la carte mère électronique
2
Introduction
  • Les applications monolithique
  • Pas de réutilisation des modèles de données
  • Pas de réutilisation des modèles de traitements
  • Les applications C/S (au sens large)
  • Réutilisation des modèles de données
  • Pas de réutilisation des modèles de traitement
  • Les applications à base de middleware
  • Réutilisation des modèles de données et de
    traitements
  • Notion de composants serveurs

3
Les serveurs d'applications
4
Architectures à Objet Distribués
Services Métiers
Application 1
Application 2
Services d'infrastructure
5
Serveur de composants de base
Services Métiers
Application 1
Services standard d'infrastructure
jts
cycle vie
Application 2
jdbc
version
6
Serveur de composants intégré
Composants Métiers
Application 1
Logique métier
container
infrastructure
Gestion automatisée
Service d'infrastructure de base
Application 2
jdbc
jts
version
cycle vie
7
Services du container d'EJB
  • Services internes
  • Gestion de la charge du serveur
  • (cycle de vie, accès client, passivation...)
  • Service de nommage
  • Gestion des accès aux objets métiers
  • Services externes
  • Gestion du mapping sur BD relationnelle
  • Gestion des transactions
  • Gestion des échanges de messages

8
Serveur Web dynamique
Serveur Web
Application 1
Application 2
9
Serveur Web dynamique
Serveur Web
Application 1
CGI
CGI
Application 2
10
Serveur Web dynamique
Serveur Web
Application 1
LiveWire
Php
Application 2
11
Serveur Web dynamique (Servlets / JSP)
Serveur Web
Application 1
Servlets
Servlets
Application 2
12
Services du container de pages Web
  • Servlet / JSP
  • Services internes
  • Gestion de la charge du serveur
  • cycle de vie
  • Gestion des autorisations d'accès
  • Services externes
  • API Java

13
Un serveur d'application
  • Application Java
  • Hébergeant
  • Des containers
  • Pages Web
  • Composants Métier (EJB)
  • Des services
  • Nommage
  • Base de données/Mapping sur Base
  • Moniteurs transactionnels
  • Déploiement ...
  • Des API sur les services
  • JDBC/JTS/JMS...

14
The J2EE Architecture
Applet container
Web container
EJB container
J2SE
http/ssl
Java Mail
Java Mail
JMS
JMS
Application Client Container
JNDI
JNDI
JDBC
JDBC
RMI/IIOP
RMI/IIOP
JTA
JTA
JAF
JAF
J2SE
J2SE
rmi/ssl
JMS
JNDI
JDBC
RMI/IIOP
J2SE
15
Les offres de serveur d'applications
  • Serveur d'application J2EE
  • Weblogic BEA,WebSphere IBM, Iplanet Sun, Oracle
  • WebObject (Jonhatan/Jonas) INRIA
  • Jboss (Free)
  • Autres serveurs d'applications
  • Microsoft .net / DNA
  • Zope (Python)
  • Serveur CORBA (OrbixWeb)

16
Les serveurs d'EJB
17
Serveur de composants intégré
Composants Métiers
Application 1
Logique métier
container
infrastructure
Gestion automatisée
Service d'infrastructure de base
Application 2
jdbc
jts
version
cycle vie
18
Serveurs distribués
Container
Container
Appli 1
2
1
Services
Services
Appli 2
jdbc
jdbc
19
Enterprise JavaBeans
  • Enterprise Java Beans
  • Composants logiciels serveur
  • Objectif
  • Standardiser le développement et le déploiement
    de composants serveurs écrits en Java
  • Le développement ne se fait que sur l'interface
    métier de l'objet
  • Le développeur ne prend en compte que la logique
    métier de l'EJB. Le reste est prise en charge par
    le containeur.

20
Principe de conception des EJB
  • Le modèle des EJB est fondé sur trois concepts
    pour la conception de systèmes distribués
  • Approche de serveurs sans-états
  • Approche orientée session
  • Approche objet persistant
  • Les spécifications EJB parlent de
  • Session Beans
  • Stateless Session Bean
  • Statefull Session Bean
  • Entity Beans
  • Container-Managed Persistence
  • Bean-Managed Persistence

21
Le Bean "stateless Session"
  • Leurs comportements
  • Fournissent un service pour un seul utilisateur
  • Ne maintiennent pas d'état par rapport au client
  • Ne survivent pas à un crash du serveur d'EJB
  • Sont plutôt destinés à vivre sur une courte
    période
  • Deux instances d'un même bean  sans état  sont
    identiques

22
Les Bean "statefull Session"
  • Leurs comportements
  • Interagissent d'une manière conversationnelle
  • Maintiennent un état sur le client connecté
  • Ne survivent pas à un crash du serveur d'EJB
  • Vivent rapidement
  • Une instance est hébergée par un seul thread
  • Une instance peut être partagée par plusieurs
    clients

23
Les EJB Entité (Entity EJB)
  • Leurs comportement
  • Ils représentent les données persistantes
  • Ils survivent à un crash
  • Plusieurs clients peuvent utiliser des EJB qui
    "pointent" sur les mêmes données
  • L'instance EJB contient une copie des données du
    système de stockage

24
Gestion de la persistance
  • Les attributs d'un objet doivent être déposés sur
    un support persistant
  • Exemples de supports de persistance
  • Sérialisation
  • Accès à une base sur le JDBC (mappage)

Client id98282 nomfrenot adresse34 villevilleu
rbanne
25
Partage d'EJB entity
  • Quand plusieurs clients partagent un EJB entity
    ils
  • reçoivent leurs propres instance d'EJB
  • partagent les données sous-jacentes
  • n'ont pas à gérer la synchronisation sur les
    données

client
client
serveur
container
client
OM
skell
OM
client
OM
26
Type de persistance
  • Il y a deux mode de gestion de la persistance
  • Container-Managed Persistence (CMP)
  • Bean-Managed Persistence (BMP)

1
container
OM
CMP
OM
BMP
27
Rôle du développeur d'EJB
  • Définition des interface distantes
  • L'interface  Remote   contient les opérations
     métier  d'un EJB
  • Définition de l'usine de fabrication des EJB
  • L'interface  Home  d'un EJB
  • Est utilisée par les clients pour créer et/ou
    retirer un EJB
  • Fournit des méta informations sur l'EJB
  • Est partagée par tous les clients de l'EJB
  • Voit son stub d'invocation placé dans le service
    de nommage au déploiement
  • Définition du corps de l'EJB
  • Implantation concrète des services métier

28
Le fonctionnement global
OM
29
Les optimisations
30
Pooling d'objets
  • Un serveur d'application peut créer un pool
    d'objets  nus  qui peuvent être utilisés quand
    des requêtes sont faites

EJB pool
31
La passivation
  • La passivation est le fait de placer un EJB sur
    un support secondaire
  • La passivation
  • A lieu quand un EJB dépasse son idle-timeout
  • Permet à un serveur d'application de réclamer des
    ressources
  • Placer une instance sérialisée de l'EJB dans son
    support de stockage

32
Pooling / Passivation sur Weblogic
Ne peut pas exc?der maxBeansInCache
Objets passiv?s
EJB cache
Un client reoit CacheFullException si le cache
est plein et rien ne peut ?tre passiv?
Un EJB est passiv? s ?il a d?pass?
idleTimeoutSeconds
Les objets sont plac?s dans le pool libre quand
les clients en ont fini
Ne peut pas exc?der maxBeansInFreePool
Free Pool
33
Application et logique métier
Logique d'application
Logique métier
Accès données
IHM
DBMS
Ett
Ses
Ses
Ses
Ses
Ett
EJB Container
Nommage, Sécurité, Cycle de vie, Accès
concurrents, Transaction, Persistance
Serveur d application
Distribution, Equilibrage de charge, Tolérance de
pannes
34
Les rôles dans le monde EJB
  • Fournisseur de serveur d'application
  • Fournit le serveur intégré avec des services de
    base
  • Fournisseur de container
  • Fournit les containeurs d'EJB
  • Fournisseur d'EJB
  • Expert dans un domaine vertical crée les
    composants EJB
  • Développeur d'application
  • Assemble les applications à partir de composants
    EJB préfabriqués
  • Spécialiste du déploiement
  • Déploie les applications
  • Maîtrise les principes d'architecture

35
Cycle de développement
  • Implantation de la base de données (opt.)
  • Implantation des EJB (SL/SF/Entity)
  • Implantation des JSP

36
Cycle de développement d'un EJB session
  • 1) Définir les interfaces métier
  • Interface Remote
  • 2) Définir les méthodes de gestion du cycle de
    vie
  • Interface Home
  • 3) Définir les caractéristiques intrinsèques du
    bean dans un fichier de description
  • 4) Définir les caractéristiques de déployement
  • 5) Déployer le bean
  • 6) Réaliser le(s) clients qui utilisent le service

37
Interface Métier
  • Interface Remote de l'EJB fibonacci
  • package exemple.fibonacci
  • public interface Fibonacci extends
    javax.ejb.EJBObject
  • public int getFibonacciNumber(int n) throws
    java.rmi.RemoteException

38
Interface Home
  • Interface Home de l'EJB fibonacci
  • package exemple.fibonacci
  • import javax.ejb
  • import java.rmi
  • public interface FibonacciHome extends EJBHome
  • public Fibonacci create() throws
    CreateException, RemoteException

39
Développement du Bean
  • package exemple.fibonacci
  • import java.rmi.
  • import javax.ejb.
  • public class FibonacciBean implements SessionBean
  • public void ejbPassivate()
  • public void ejbActivate()
  • public void ejbRemove()
  • public void setSessionContext(SessionContext
    ctx)
  • public void ejbCreate()
  • System.out.println("Cet EJB Fibonacci est
    créé"
  • public int getFibonacciNumber(int n)...

40
Descripteur du Bean
  • lt?xml version"1.0"?gt
  • lt!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems,
    Inc.//DTD Enterprise JavaBeans 2.0//EN"
    "http//java.sun.com/dtd/ejb-jar_2_0.dtd"gt
  • ltejb-jargt
  • ltenterprise-beansgt
  • ltsessiongt
  • ltejb-namegtFibonaccilt/ejb-namegt
  • lthomegtexemple.fibonacci.FibonacciHomelt/ho
    megt
  • ltremotegtexemple.fibonacci.Fibonaccilt/remo
    tegt
  • ltejb-classgt exemple.fibonacci.FibonacciBe
    anlt/ejb-classgt
  • ltsession-typegtStatelesslt/session-typegt
  • lttransaction-typegtContainerlt/transaction-
    typegt
  • lt/sessiongt
  • ...
  • lt/enterprise-beansgt
  • lt/ejb-jargt

41
Descripteur du déploiement
  • lt?xml version"1.0"?gt
  • lt!DOCTYPE weblogic-ejb-jar PUBLIC "-//BEA
    Systems, Inc.//DTD WebLogic 6.0.0 EJB//EN"
    "http//www.bea.com/servers/wls600/dtd/weblogic-ej
    b-jar.dtd" gt
  • ltweblogic-ejb-jargt
  • ltweblogic-enterprise-beangt
  • ltejb-namegtfibonaccilt/ejb-namegt
  • ltstateless-session-descriptorgt
  • ltpoolgtltmax-beans-in-free-poolgt100lt/max-beans
    -in-free-poolgtlt/poolgt
  • lt/stateless-session-descriptorgt
  • lttransaction-descriptorgt
  • lttrans-timeout-secondsgt300lt/trans-timeout-s
    econdsgt
  • lt/transaction-descriptorgt
  • ltjndi-namegtfibonnacilt/jndi-namegt
  • lt/weblogic-enterprise-beangt
  • lt/weblogic-ejb-jargt

42
Déploiement du bean
  • Eventuellement (pré-compilation)
  • Jar cp
  • Au déploiement
  • Inscription de l'Usine (interface Home) sur le
    containeur
  • Dépôt du stub de manipulation de l'Usine sur le
    service de nommage

43
Développement d'un client
  • public class Client
  • public static void main(String argv)
  • try
  • FibonacciHome home(RobotHome)context.lookup
    ("fibonaci")
  • Fibonacci jacqueshome.create()
  • catch(NamingException e)
  • catch(CreationException e)
  • catch(RemoteException e)

44
Développement d'un client JSP
  • lthtmlgtltheadgtlttitlegt lt pagetitle gt
    lt/titlegtlt/headgt
  • lth2gtltfont colorDB1260gtlt pagetitle
    gtlt/fontgtlt/h2gt
  • lt_at_ page import"edt.matiere."gt
  • lt!String pagetitle "JSP emploi du temps Les
    FaceAFaces"gt
  • lttry
  • ctx getInitialContext()
  • homeFib (FibonnacciHome)
    ctx.lookup("fibonnaci")
  • uneSuitehomeFib.create()
  • out.println("fib(7)"uneSuite.getFibonacciNumbe
    r(7))
  • catch(Exception e)e.printStackTrace()
  • gt
  • lt/bodygtlt/htmlgt

45
Points forts
  • Notion de container
  • Robustesse, standardisation, évolution
  • Interface de développement standardisées
  • Pas / Peu de phase de prise en main
  • Automatisation de nombreuses tâches
  • Gestion de la persistance, transactions
  • Intégration à l'API java
  • Marché explosant
Write a Comment
User Comments (0)
About PowerShow.com