Traitement des requêtes dans l'adaptateur de l'architecture EJB
Cette section explique comment le connecteur pour architecture EJB
gère le traitement des requêtes, comme indiqué dans la figure 1.
Le scénario de traitement des requêtes décrit ici suppose que :
- Les beans d'entreprise sont déployés sur un serveur d'applications d'entreprise
conforme J2EE, tel que WebSphere Application Server.
- Le serveur d'applications est installé et en cours d'exécution.
- Le connecteur a été initialisé, ce qui a pour effet de charger les propriétés
ProviderURL et InitialContextFactory spécifiques au
connecteur. Ces propriétés aident à obtenir le contexte initial de l'interface JNDI,
exigé pour démarrer la connexion au serveur EJB et localiser l'interface locale du
bean d'entreprise. Les propriétés sont mises en mémoire cache et réutilisées
durant tout le cycle de vie du connecteur. Pour plus d'informations sur les
propriétés spécifiques au connecteur, voir Propriétés spécifiques au connecteur. Pour
savoir comment le connecteur gère la sécurité, voir Configuration de la sécurité.
Figure 1. Traitement de requête du connecteur pour l'architecture EJB
Le connecteur pour architecture EJB traite les requêtes d'objet métier de la façon suivante :
- Le connecteur reçoit une requête d'objet métier du courtier d'intégration.
L'objet métier contient les informations relatives au bean d'entreprise correspondant,
y compris son nom JNDI et le nom de classe de ses interfaces locale et éloignée.
- Le connecteur utilise ses propriétés InitialContextFactory et ProviderURL
pour commencer le processus de localisation et d'accès aux beans d'entreprise déployés sur
le serveur d'intégration. InitialContext fait partie d'une API JNDI
plus large, prise en charge par le serveur d'applications.
Il s'agit du point de départ de toute recherche JNDI réalisée par un client
(tel que le connecteur). ProviderURL précise le fournisseur de service,
qui est un pilote JNDI du serveur d'applications utilisé pour localiser l'interface
locale du bean d'entreprise. L'interface locale offre des méthodes de création et
de recherche de l'interface éloignée du bean d'entreprise.
- Après avoir situé l'interface locale, le connecteur recherche l'interface éloignée
qui détermine les méthodes métier du bean d'entreprise qu'un client (dans ce cas, le connecteur) peut appeler.
Pour les beans d'entité, le connecteur utilise une méthode de type creator
ou finder, en fonction de celle qui a été implémentée par le développeur
de bean d'entreprise (le connecteur sait lequel utiliser d'après les métadonnées de la définition de l'objet métier.
Ces méthodes sont définies dans l'interface locale et appelées par un client
pour obtenir une référence d'interface locale/éloignée à une instance de bean d'entreprise.
- Une fois que le connecteur a localisé l'interface éloignée, il peut commencer
à appeler des méthodes de bean d'entreprise. L'objet métier parent envoyé
par le connecteur contient un objet métier enfant pour chaque méthode définie
dans l'interface éloignée. Les attributs de l'objet métier enfant sont
mappés sur les paramètres de la méthode éloignée des beans d'entreprise
correspondants. Les beans d'entreprise étant chargés de façon dynamique,
les méthodes sont reconnues et appelées par le biais de réflexions. Voici les détails de cette étape :
- Le gestionnaire BO du connecteur recherche une ou plusieurs listes de noms
d'attributs dans l'ASI de l'instruction de l'objet métier parent. Une liste est
une série ordonnée de noms d'attributs, séparés par un point-virgule.
- Chaque attribut de l'objet métier parent contient un objet métier enfant représentant
une méthode à appeler sur l'interface éloignée. En d'autres termes, l'ASI de
l'instruction n'est pas une liste de méthodes, mais une liste d'attributs
ayant chacun un objet enfant qui représente une méthode à appeler.
- Le connecteur exécute les méthodes indiquées dans l'ASI de l'instruction,
dans l'ordre dans lequel elles apparaissent dans la liste.
- Une fois les méthodes exécutées et les valeurs retournées par le serveur
d'applications EJB, le connecteur charge les données d'objet EJB dans l'objet métier.
- Le connecteur retourne l'objet métier au courtier d'intégration, avec des
valeurs complétées à partir du serveur d'applications EJB.
Le connecteur retourne également un message au courtier d'intégration,
indiquant si la requête d'objet d'origine a réussi ou non (statut FAIL). Si la requête
a réussi, le connecteur retourne également au courtier l'objet métier mis à jour.
