Vous êtes sur la page 1sur 18

Cours EJB/J2EE 19/10/2004

Copyright Michel Buffa

Enterprise JavaBeans
Introduction générale

Michel Buffa (buffa @unice.fr), UNSA 2002

Les promesses des EJB

n Enterprise JavaBeans
n Standard industriel pour un modèle de composant logiciel
distribué,
n Permet d'implémenter des "objets métier" d'une manière
propre et réutilisable,
n Pour le développement RAD d'applications côté serveur

n Questions :
n De quoi a-t-on besoin lorsqu'on développe une application
distribuée orientée objet ?
n Qu'est-ce que les EJBs et qu'apportent-elles ?
n Quels sont les acteurs dans l'écosystème EJB ?

1
Cours EJB/J2EE 19/10/2004
Copyright Michel Buffa

Motivation des EJBs

n Considérons : un site de gestion de portefeuille


boursier, une application bancaire, un centre
d'appel, un système d'analyse de risque
n Nous parlons ici d'applications distribuées.

Choses à considérer lorsqu'on construit


une application distribuée

n Si on prend une application monolithique et


qu'on la transforme en application distribuée,
où plusieurs clients se connectent sur plusieurs
serveurs qui utilisent plusieurs SGBD, quels
problèmes se posent alors ?

2
Cours EJB/J2EE 19/10/2004
Copyright Michel Buffa

Choses à considérer lorsqu'on construit


une application distribuée

n Protocoles d'accès distants (CORBA, RMI, IIOP…)


n Gestion de la charge,
n Gestion des pannes,
n Persistence, intégration au back-end,
n Gestion des transactions,
n Clustering,
n Redéploiement à chaud,
n Arrêt de serveurs sans interrompre l'application,
n Gestion des traces, règlages (tuning and auditing),
n Programmation multithread
n Problèmes de nommage
n Securité, performances,
n Gestion des états
n Cycle de vie des objets
n Gestion des ressources (Resource pooling)
n Requête par message (message-oriented midddleware)

Qui s'occupe de tout ceci : le middleware !

n Dans le passé, la plupart des entreprises


programmaient leur propre middleware.
n Adressaient rarement tous les problèmes,
n Gros risque : ça revient cher (maintenance,
développement)
n Orthogonal au secteur d'activité de l'entreprise
(banque, commerce…)

n Pourquoi ne pas acheter un produit ?


n Oracle, IBM, BEA… proposent depuis plusieurs
années des middleware…
n Aussi appelés serveurs d'application.

3
Cours EJB/J2EE 19/10/2004
Copyright Michel Buffa

Serveur d'application : diviser pour règner !

n Un serveur d'application fournit les services


middleware les plus courants,
n Permettent de se focaliser sur l'application que
l'on développe, sans s'occuper du reste.
n Le code est d éployé sur le serveur
d'application.
n Séparation des métiers et des spécificités :
d'un côté la logique métier, de l'autre la logique
middleware.

Serveurs d'application

Development Tools

Presentation Business Logic Data Access

Distributed
HTML Objects Data Access
HTML
Objects
Transactions
Enterprise Data
Java
Content Connectors
Data
Management

Java
Application Enterprise Deployment Services
Scalability Reliability Security Manageability

4
Cours EJB/J2EE 19/10/2004
Copyright Michel Buffa

Encore mieux !

n Il est possible d'acheter ou de réutiliser une


partie de la logique métier !
n Vous développez votre application à l'aide de
composants.
n Code qui implémente des interfaces prédéfinies.
n Sorte de boîte noire.
n Un bout de logique facilement réutilisable.
n Un composant n'est pas une application complète.
Juste un bout.
n On assemble les composants comme un puzzle,
afin de résoudre des problèmes importants.

Composant logiciel réutilisable

n Une entreprise peut acheter un composant et


l'intègrer avec des composants qu'elle a
développé.
n Par exemple, un composant qui sait gérer des prix.
n On lui passe une liste de produits et il calcule le prix
total.
n Simple en apparence, car la gestion des prix peut
devenir très complexe : remises, promotions, lots,
clients privilégiés, règles complexes en fonction du
pays, des taxes, etc…

5
Cours EJB/J2EE 19/10/2004
Copyright Michel Buffa

Composant logiciel réutilisable

n Ce composant répond à un besoin récurrent


n Vente en ligne de matériel informatique,
n Gestion des coûts sur une cha îne de production
automobile,
n Calcul des prix des expéditions par la poste,
n Etc…

Composant logiciel réutilisable

6
Cours EJB/J2EE 19/10/2004
Copyright Michel Buffa

Composant logiciel réutilisable

Composant logiciel réutilisable

7
Cours EJB/J2EE 19/10/2004
Copyright Michel Buffa

Quel intérêt ?

n Moins d'expertise requise pour répondre à


certains points du cahier des charges,
n Développement plus rapide.
n Normalement, les vendeurs de composants
assurent un service de qualité (BEA, IBM…)
n Réduction des frais de maintenance.
n Naissance d'un marché des composants.
n Pas encore l'explosion attendue mais…

Architectures de composants

n Plus de 50 serveurs d'applications ont vu le


jour depuis une dizaine d'années,
n Au début, composants propriétaires
uniquement.
n Pas de cohabitation entre composants développés
pour différents serveurs d'application
n Dépendant d'un fabriquant une fois le choix
effectué.

n Dur à avaler pour les développeurs java qui


prônent la portabilité et l'ouverture !

8
Cours EJB/J2EE 19/10/2004
Copyright Michel Buffa

Architectures de composants

n Nécessité de standardiser la notion de


composants
n Ensemble de définitions d'interfaces entre le
serveur d'application et les composants
n Ainsi n'importe quel composant peut tourner ou être
recompilé sur n'importe quel serveur

n Un tel standard s'appelle une architecture de


composants
n Penser aux CDs audio, à la télé, au VHS, etc…

Architectures de composants

9
Cours EJB/J2EE 19/10/2004
Copyright Michel Buffa

Enterprise JavaBeans (EJB)

n Le standard EJB est une architecture de


composants pour des composants serveur
écrits en java.
1. Adopté par l'industrie. "Train once, code
anywhere"
2. Portable facilement
3. Rapid Application Development (RAD)

n EJB signifie deux choses :


1. Une spécification
2. Un ensemble d'interfaces

Pourquoi java ?

n EJB = uniquement en java


n Séparation entre l'implémentation et l'interface
n Robuste et sûr : mécanismes + riche API +
spécificité du langage (reflexivité, introspection,
chargement dynamique)
n Portable

n Autre possibilités
n Composants Microsoft .NET
n CORBA : mais nombreux serveurs EJB basés sur
CORBA)

10
Cours EJB/J2EE 19/10/2004
Copyright Michel Buffa

EJB pour développer des composants


business

n Implémenter de la logique métier : calcul des taxes sur


un ensemble d'achats, envoyer un mail de confirmation
après une commande, etc…
n Accèder à un SGBD
n Accèder à un autre système d'information (CICS,
COBOL, SAP R/3, etc…)
n Applications web : intégration avec JSP/Servlets
n Web services basés sur XML (SOAP, UDDI, etc…)
n Exemple : DELL attaque le serveur d'INTEL directement à
travers un protocole XML pour réserver des pièces.

EJB ne fournit pas de GUI

n GUI = côté client


n Applications
classiques
n Servlets/JSP

11
Cours EJB/J2EE 19/10/2004
Copyright Michel Buffa

L'écosystème EJB

n Pour déployer et exécuter un projet à base


d'EJBs, six métiers sont impliqués
1 - Le fournisseur d'EJBs
n Peut-être un membre de votre équipe, ou bien une
entreprise qui vend des EJBs
(www.componentsource.com ou
www.flashline.com pour voir une liste)

L'écosystème EJB

2 - L'assembleur d'application
n Il s'agit de l'architecte de l'application
n Il est client des EJBs achetées ou développées
n Il décide de la combinaison de composants dont il a besoin
n Fournit un GUI à l'application
n Conçoit et développe de nouveau composants
n Conçoit et développe les programmes clients
n Définit le mapping avec les données manipulées par les
différents composants
n En général, c'est un expert en Génie Logiciel, en UML et en
développement Java.
n Il peut s'agir d'un intégrateur de systèmes, d'un consultant,
d'une équipe de développeurs/concepteurs maison…

12
Cours EJB/J2EE 19/10/2004
Copyright Michel Buffa

L'écosystème EJB

3 - Le déployeur d'EJBs
n Après que l'application ait été assemblée, elle doit être
déployée sur un ou plusieurs serveurs d'application
n Attention à la sécurité (firewall, etc…)
n Branchement de services annexes (LDAP, Lotus Notes,
Microsoft Active Directory, etc…) sur le serveur d'applications.
n Choix du hardware, des SGBD, etc…
n Paramétrage du serveur d'application, optimisation des
performances…
n Il adapte les composants et le serveur à l'application
n Il peut être une équipe ou une personne, un consultant ou un
vendeur d'hébergement de serveurs d'applications.
n Exemples aux USA : www.hostJ2EE.com ou
www.loudcloud.com

L'écosystème EJB

4 - L'administrateur système
n Vérifie le bon fonctionnement de l'application en
exploitation.
n Il utilise les outils de monitoring des serveurs
d'application.
n Il effectue la maintenance hardware et software
(lancement, arrêt) du système.
n Certains serveurs d'application savent téléphoner et
appeler l'administrateur système en cas de
problème.
n Ponts avec les outils de Tivoli, Computer
Associates, … via JMX.

13
Cours EJB/J2EE 19/10/2004
Copyright Michel Buffa

L'écosystème EJB

5 - Le fournisseur du serveur d'application et des


containers
n EJB container = environnement au sein du serveur dans
lequel les EJB vivent.
n Le container EJB fournit les services middleware et manage
les EJBs.
n Exemples : Weblogic, Websphere, BES, Oracle Orion Server,
JRun, JBoss…
n Il existe d'autre containers spécialisés (container Web comme
Tomcat, Resin…)
n Le fournisseur du serveur d'application est le même que le
fournisseur de containers EJB.
n On confond en général container et serveur d'application.

L'écosystème EJB

6 - Les vendeurs d'outils


n Développer une application à base d'EJB est assez
lourd. Pourtant la manière de développer,
construire, maintenir, déployer les EJBs est
standard.
n Il est très pratique d'utiliser un IDE pour simplifier
les tâches répétitives comme le déploiement, etc…
n Principaux IDEs : JBuilder, Visual Age, Visual Cafe .
n Autres outils : les outils UML comme Together/J,
Rational Rose
n Outil de test (JUnit), de stress (LodeRunner), etc…

14
Cours EJB/J2EE 19/10/2004
Copyright Michel Buffa

Les différents métiers…

Les différents métiers…

n Bientôt un nouveau métier : le "persistence


manager"
n Développe des outils qui se "branchent" sur le
serveur d'application et implémentent les
mécanismes de persistance.
n Mapping BD relationnelles/Objets
n Mapping BD objet/Objets
n Etc…

n Pas encore standardisé dans la spécification


EJB 2.0

15
Cours EJB/J2EE 19/10/2004
Copyright Michel Buffa

La plate-forme Java J2EE

n EJB = la clé de voûte d'une architecture distribuée


java appelée J2EE
n Pour le développement d'application serveur
n Ensemble de spécifications et d'APIs
n Contient deux autres architectures
1. J2ME (Java 2 Micro Edition) : pour les mobiles
2. J2SE : pour applications et applets standards
n Non attaché à un vendeur particulier.
n Quiconque respecte les spécification est "J2EE compliant"
n Applications développées indépendantes des vendeurs
d'outils.

La plate-forme Java J2EE

n Chaque API dans J2EE à sa propre


spécification (PDF)
n Batterie de logiciel pour valider les
implémentations (test suites)
n Implémentation de référence
n J2EE est livrée avec un serveur d'application par
exemple…

n Ensemble de "blueprints" : définit précisément


le rôle de chaque API (PDF)

16
Cours EJB/J2EE 19/10/2004
Copyright Michel Buffa

J2EE : les APIs

n J2EE comprend en plus de J2ME et J2SE


n EJB : standard de définition de composants
n Java 2 RMI et RMI-IIOP : objets distribués
n JNDI (Java Naming and Directory Interface)
n JDBC (Java Data Base Connectivity)
n JTA (Java Transaction API)
n JMS (Java Messaging Service)
n Java Servlets and Java Pages (JSP)
n Java IDL (Corba)
n JavaMail
n JCA (J2EE Connector Architecture) : ponts vers SAP/3,
CICS…
n JAXP (Java API for XML Parsing)
n JAAS (Java Authentification and Authorization Service)

J2EE

17
Cours EJB/J2EE 19/10/2004
Copyright Michel Buffa

J2EE for the Real World

Development and Deployment Tools

Presentation Business Logic Data Access

JDBC 2.0
Servlets/JSP EJB
Distributed
HTML Data Cache
Visual Servlets Triggers Data Access
Objects
On Demand Content
Enterprise Data
Java Management Connectors Data

Java JTS/JTA JNDI JavaMail RMI-IIOP JMS


Application

Enterprise Deployment Services


Scalability Reliability Security Manageability

Consistent, Integrated Architecture

Development and Deployment Tools

Presentation Business Logic Data Access

JDBC 2.0
Servlets/JSP EJB
Distributed
HTML Data Cache
Visual Servlets Triggers Data Access
Objects
On Demand Content
Enterprise Data
Java Management
Connectors Data

Java JTS/JTA JNDI JavaMail RMI-IIOP JMS


Application

Enterprise Deployment Services


Scalability Reliability Security Manageability

18