Instructions: Identification de beans gérés par message
Ces instructions portent sur l'identification et la modélisation de beans gérés par message pour une application J2EE.
Relations
Description principale

Introduction

Ces instructions portent sur l'identification de beans gérés par message. Des conseils supplémentaires sur les beans gérés par message figurent dans Instructions relatives au produit : Beans gérés par message. Des conseils généraux sur les EJB sont disponibles par Instructions relatives au produit : Enterprise JavaBeans.

Certaines caractéristiques de beans générés par message figurent ci-dessous :

  • Ils sont sans état.
  • Ils ne retournent ni valeur, ni exception aux clients.
  • Ils ne comportent aucune interface, car les clients ne peuvent pas accéder aux beans gérés par message directement, mais peuvent y accéder indirectement en envoyant des messages à la destination (ou noeud final) fournie par le bean. Il existe une méthode d'écoute ("onMessage()" dans le cas de beans gérés par message JMS) qui traite tous les messages de manière générique. Ceci signifie que ce type de contrôle doit être effectué en cours d'exécution, à l'aide de l'opération "instanceOf()", pour déterminer le type de message reçu.

Les messages peuvent être envoyés au conteneur à partir de n'importe quel emplacement, y compris à partir d'autres EJB, de composants Web et de clients d'application. Le conteneur appelle les EJB gérés par message comme requis, afin de traiter les événements liés aux messages entrants. Les EJB gérés par message peuvent accéder à d'autres EJB session ou entity ou encore au niveau EIS directement pour traiter des messages.

Identification de beans gérés par message

Les beans gérés par message offrent un moyen de traiter des messages de manière asynchrone. Les beans session et entity peuvent uniquement être appelés de manière synchrone. Les beans gérés par message sont identifiés dans le cadre de la définition de l'accès concurrent pour l'ensemble du système. Pour obtenir des instructions générales sur l'accès concurrent, par exemple sur les patterns de conception pour le découplage de l'appelant et du code appelé, reportez-vous à Instructions : Accès concurrent. Les beans gérés par message sont généralement identifiés au cours de la tâche : Décrire l'architecture d'exécution et comme un moyen de fournir un accès concurrent au sein du conteneur d'EJB. Ils ne sont donc généralement pas directement identifiés à partir des classes d'analyse, mais sont identifiés pour résoudre des problèmes de conception spécifiques, qui concernent par exemple les performances et le couplage.

Des raisons d'introduire des beans gérés par message figurent ci-dessous :

  • Les problèmes sont différenciés selon les différentes zones du logiciel (envoi d'un message possible vers une file d'attente, sans couplage avec le consommateur de ces messages). Plusieurs expéditeurs et destinataires peuvent être pris en charge.
  • Les performances sont accrues, car l'expéditeur du message a le droit de procéder au traitement au lieu de rester bloqué par un appel synchrone (ce qui peut par exemple arriver lorsqu'un bean session ou entity est appelé).
  • La fiabilité est accrue, car l'expéditeur du message a le droit de poursuivre le processus, même si les consommateurs des messages message sont déconnectés.
  • D'autres avantages peuvent être offerts par le middleware orienté message (MOM), situé sous l'interface de messagerie, (la remise des messages garantie, par exemple).
  • Un élément de conception (un système existant, par exemple) utilise la messagerie à des fins de communication.

Modélisation de beans gérés par message

Pour obtenir des conseils généraux sur la modélisation d'EJB, reportez-vous à Instructions : Identification d'Enterprise JavaBeans (EJB). Notez toutefois que les beans gérés par message sont en règle générale modélisés comme partie de la vue Processus. Pour obtenir des conseils spécifiques sur la modélisation de beans gérés par message dans la vue Processus, reportez-vous à Instructions : Description de l'architecture d'exécution des applications J2EE.

Envoi des résultats aux expéditeurs de message

Les beans gérés par message ne peuvent pas envoyer directement les réponses à l'expéditeur du message.

Une méthode type d'envoi d'une réponse consiste à introduire une autre destination ou un autre noeud final pour les réponses. Pour plus de détails sur cette méthode, reportez-vous à [ROM02].