Vous pouvez définir les différents types de composants EJB suivants :
Type |
Définition |
---|---|
Beans d'entité |
Conçus pour représenter des données dans la base de données ; ils donnent aux données une sémantique objet de métier et lisent et mettent à jour les données automatiquement. Ils incluent : CMP (Container Managed Persistence, persistance gérée par conteneur) Dans le cas des beans d'entité CMP, la persistance est gérée par le serveur de composants (également appelé conteneur) BMP (Bean Managed Persistence, persistance gérée par bean) Dans le cas des beans d'entité BMP, la gestion de la persistance est laissée au développeur du bean |
Beans de session (avec et sans état) |
Encapsule la logique métier et fournit un point d'entrée unique pour les utilisateurs du client. En règle générale, ces beans gèrent et fournissent un accès indirect à plusieurs beans d'entité, ce qui permet de réduire le trafic réseau de façon significative. Il peut s'agir de beans avec ou sans état (voir ci-dessous) |
Beans commandés par message |
Beans anonymes qui ne peuvent pas être référencés par un client particulier, mais répondent à des messages asynchrones JMS. Comme les beans de session, ils permettent d'encapsuler la logique métier du côté serveur |
Les beans d'entité sont utilisés pour représenter des objets sous-jacents. L'application la plus courante pour les beans d'entité est leur représentation des données dans les bases de données relationnelles. Un simple bean d'entité peut être défini pour représenter une table de base de données où chaque instance du bean représente une ligne spécifique. Des beans d'entité plus complexes peuvent représenter des vues de tables jointes dans une base de données. Une instance peut alors représenter un client spécifique et toutes les commandes et les articles commandés par ce client.
Le code généré est différent selon le type de bean d'entité : persistance gérée par conteneur (CMP, Container Managed Persistence) ou persistance gérée par bean (BMP, Bean Managed Persistence).
Un bean de session est un EJB dans lequel chaque instance d'un bean de session est créée via son interface Home et est privée du point de vue de la connexion client. L'instance de bean de session ne peut pas être facilement partagée par d'autres clients, ce qui permet au bean de session de maintenir l'état du client. La relation entre le client et l'instance de bean de session est de type un-un.
Les beans de session avec état (stateful) gèrent un état conversationnel lorsqu'ils sont utilisés par un client. Un état conversationnel n'est pas écrit dans une base de données, il s'agit d'un état conservé en mémoire pendant qu'un client utilise une session.
Les beans de session sans état (stateless) ne gèrent pas d'état conversationnel. Chaque méthode est indépendante et n'utilise que les données transmises dans ses paramètres.
Il s'agit de composants côté serveur, dépourvus d'état et ayant un comportement transactionnel qui traite les messages asynchrones délivrés par JMS (Java Message Service, service de messagerie Java). Les applications utilisent une messagerie asynchrone pour communiquer en échangeant des messages qui permettent aux émetteurs de rester indépendants des récepteurs.