Distinguer les beans session à Enterprise JavaBeans

Beans session

Sommaire

- EJB qui complètent une tâche en une seule étape - sont sans doute le plus simple de tous les composants EJB. Ils font des demandes minimales sur le développeur de composants EJB et sont utilisés pour mettre en œuvre des opérations très simples. Néanmoins, vous avez plusieurs règles importantes concernant les beans session stateless qui, en tant que développeur d'EJB, vous devez vous rappeler.

Beans session peut être difficile en raison de la façon dont les interfaces EJBHome et EJBObject sont définis. Tous les types de composants EJB mettre en œuvre ces deux interfaces, qui doivent être suffisamment générique pour soutenir les méthodes requises par les haricots apatrides de session, des beans de session avec état et des beans entité. Parce beans session sont si simples, ils ne nécessitent pas toutes les méthodes que les interfaces EJBHome et EJBObject définissent. En conséquence, certaines des méthodes dans le bean session sans état jettent toujours des exceptions si elles sont invoquées.

Prendre une note - lors de la définition de vos propres classes, il est une bonne idée pour définir les interfaces afin qu'ils cachent des méthodes qui ne sont pas pertinents pour une implémentation particulière. Vous accomplissez cela simplement en définissant l'interface la plus étroite en premier, puis l'étendre à ajouter d'autres méthodes pour une interface plus large, et ainsi de suite jusqu'à ce que vous avez toutes les méthodes requises définies. Cela élimine le désordre qui en résulte ayant méthodes mises en œuvre dans une classe qui n'a pas besoin d'eux et ne peuvent pas les utiliser.

Stateless Session bean cycle de vie




Beans session sont des composants EJB conçus avec deux objectifs simples à l'esprit:

  • Pour effectuer des tâches simples qui peuvent être accomplies en une seule méthode invocation.
  • Pour être partagé par de nombreux clients en même temps. Ceci est la cause de racine pour le bean session étant apatride.

Le terme apatride fait référence au fait que le bean session sans état ne peut pas stocker les informations d'un client EJB entre les invocations de méthode pour ce client. La raison beans session sont apatrides est parce que les fèves sont détenus dans une piscine commune sur le conteneur EJB entre chaque invocation de méthode sur le haricot, un processus montré à la figure 1.

Distinguer les beans session à Enterprise JavaBeans

Figure 1: Cycle de vie du bean session sans état.

Quand un client invoque une méthode sur un bean session sans état, il est retiré de la piscine, la méthode est exécutée, et la fève est immédiatement retournée à la piscine. Par conséquent, si vous avez exécuté deux méthodes simultanées sur une variable session bean, différents haricots dans le conteneur EJB seraient probablement les entretenir.

Idéal pour les cas l'utilisation de beans session sont pour des tâches simples, comme traitement d'un paiement, d'un dépôt ou d'effectuer un retrait. Ces tâches ont tous deux caractéristiques communes: Ils représentent des actions, et ils peuvent être effectués en une seule étape.

Alors que les beans session stateless offrent un grand avantage de performance, ils ne sont pas le bon choix pour toutes les tâches. Si vous avez besoin de votre bean session se rappeler renseignements fournis par un client à travers la méthode de multiples appels, alors vous devriez utiliser les beans session stateful.

Quand utiliser beans session

Compte tenu de l'abondance de choix de composants EJB disponibles pour vous, il peut parfois être difficile de décider si la session bean est le bon outil pour votre tâche. Un couple de lignes directrices simples peuvent vous aider à prendre cette décision.

  • Tout d'abord, considérer si la tâche de votre application doit exécuter peut être accompli dans un seul appel de méthode. Rappelez-vous qu'un bean session sans état ne me souviens pas état spécifique à un client entre les invocations de méthode. Ainsi, si la tâche à accomplir implique plus qu'une seule étape, la session bean est pas le bon choix. Mais si vous pouvez effectuer la tâche en une seule étape, puis utilisez toujours le bean session sans état.
  • Deuxièmement, déterminer si le processus de votre application effectue doit être visible à plusieurs clients en même temps. Si l'application a besoin de partager des informations et de l'Etat entre plusieurs clients, alors vous avez un seul choix - un bean entité.

Rappelez-vous que une session bean fournit des prestations de performance substantiels à votre application. Généralement, si vous pouvez concevoir l'application de maximiser l'utilisation de beans session sans état, votre serveur d'applications sera en mesure de répondre à des appels de clients plus rapidement.


» » » » Distinguer les beans session à Enterprise JavaBeans