-
Les EJB (Enterprise JavaBeans) sont des composants Java portables, réutilisables et déployables qui peuvent être assemblés pour créer des applications. Ils s'exécutent dans un conteneur EJB qui va leur fournir des services tels que les transactions ou la persistance...
Ces composants ont plusieurs avantages :
- Le conteneur EJB fournit aux Enterprise JavaBeans des services.
Le conteneur va être responsable de fournir aux EJB des services tels que la gestion des transactions, des autorisations, de la persistance... Le développeur n'ayant plus à s'occuper de ces choses, il peut se concentrer sur le développement de son EJB.
- Les EJB contiennent la logique applicative.
Les applications clientes n'ont plus de routines contenant les règles métiers ou les accès bases de données. Elles sont donc plus légères et plus souples.
- Les EJB sont portables.
Une application peut être construire à partir d'EJB existants et être déployé sur n'importe quel serveur compatible J2EE.
Il existe trois types d'EJB :
- Les EJB de type "Session" : Ils exécutent une tâche pour le client.
- Les EJB de type "Entity" : Ils représentent un objet métier qui existe dans le système de stockage permanent ( par exemple : un client ou une facture ).
- Les EJB de type "Message-Driven" : Ils permettent le traitement des messages asynchrones.
Les spécifications des EJB sont disponibles à l'adresse suivante : http://java.sun.com/products/ejb/docs.html
-
Chaque instance d'un EJB se construit et vie dans un conteneur. Le conteneur est en fait un environnement d'exécution fournissant des services aux Entreprise JavaBeans.
Parmis ces services, on a par exemple :
- Les connexions à la base de données
- Les transactions
- La sécurité
- ...
Dans ce tutorial, nous allons utiliser JOnAS: Java (TM) Open Application Server qui est un serveur d'application open source conforme aux spécifications J2EE.
Pour avoir plus d'informations sur ce produit : http://www.objectweb.org/jonas/index.html
-
Comme nous l'avons vu dans le premier paragraphe, il existe 3 types d'EJB :
-
Un EJB de type session est chargé d'efféctuer une tâche pour un client. Dans cette catégorie d'Entreprise JavaBeans, il y a deux groupes :
- Sans état : Un composant de session sans état ne maintient pas d'état conversationnel. L'exemple typique est un convertisseur Euro/Franc qui aurait une seule méthode :
euroToFranc(double valeur).
Toutes les invocations de méthodes que vous ferez sur un EJB sans état que vous avez instancié ne seront pas forcément traitées par le même EJB.
- Avec état : Un composant avec état est dédié à un certain client pendant toute la durée de son instanciation. Concrètement, si vous modifiez une variable d'instance du composant, vous retrouverez cette valeur lors de vos prochains appels.
Pour résumer, toutes les invocations d'une méthode par le client seront traitées par le même EJB.
Ce type d'EJB s'occupe des traitements.
-
Ce type d'EJB peut désigner quelque chose de concret ( un client ou une facture ) ou d'abstrait ( une enchère ou une réservation ). Sa caractéristique la plus importante est la persistance, c'est à dire que ce composant existe physiquement sur un support de stockage comme une base de données, un serveur LDAP ou un fichier XML.
Ce type d'EJB s'occupe des données.
-
Un Message-Driven Bean est un EJB qui va permettre à votre application de traiter des messages de manière asynchrone. En fait, cet EJB va réagir aux messages reçus au travers de JMS ( Java Message Service dont vous pouvez consulter le tutorial à l'adresse : http://java.sun.com/products/jms/tutorial/ ).
Ce type d'EJB permet de traiter les données de manière asynchrone.
-
Les EJB sont particulièrement recommandés :
- Lorsque votre application doit pouvoir gérer des montées en charge.
Vous pourrez facilement mettre en cluster vos serveurs d'application.
- Lorsque votre application a besoin des transactions.
Les EJB supportent les transactions ( peu importe la système de stockage utilisé ).
- Lorsque votre application doit être accessible depuis de nombreux types de clients ( Applications, Sites web, PDA... ).
N'importe quel type de client pourra accéder à vos EJB et pourra utiliser la logique et les données de votre application.
- Lorsque votre application est développée par plusieurs personnes.
Les EJB vous permettront de centraliser la logique applicative et ainsi d'assurer l'intégrité des données et le respect des règles métiers.
Vous trouverez d'autres raisons d'utiliser les EJBs dans l'article de Marc Fleury "Why i love EJB" ( http://www.jboss.org/blue.pdf ).
-
Les EJB ne sont pas un gadget marketing, ils permettent de simplifier le développement d'applications :
- Grâce au conteneur, vous n'aurez plus à gérer un certain nombre de problèmes récurents ( Authentification, Persistance, Sécurité, transactions... ), vous pourrez donc vous concentrer sur le développement de votre EJB.
- Seuls les EJB contiennent la logique applicative. Les développeurs des applications clientes peuvent se concentrer sur la présentation, il n'ont plus dans leurs codes de règles métiers ni d'accès à la base de données.
- Enfin, les EJB sont portables et vous pourrez donc les déployer sur n'importe quel conteneur compatible J2EE.
Passons à la pratique avec l'installation de notre plateforme de développement que nous allons décrire dans le chapitre 2.
|
|