Méthodes asynchrones EJB 3.1
La spécification Enterprise JavaBeans™ (EJB) 3.1 comprend des fonctionnalités que les développeurs d'applications peuvent exploiter pour configurer des méthodes asynchrones EJB exécutées dans une autre unité d'exécution que celle du programme appelant.
Ce mécanisme sépare la requête d'appel du client de l'exécution de la méthode proprement dite. L'unité d'exécution du client peut continuer d'autres tâches pendant que la méthode EJB s'exécute dans une autre unité d'exécution comme demandé par le conteneur EJB.
Plus tard, le client peut vouloir examiner le résultat de l'exécution de la méthode asynchrone, mécanisme parfois appelé fire and return (littéralement, déclencher et attendre un retour). Dans ce cas, le conteneur EJB renvoie au client un objet qui implémente l'interface java.util.concurrent.Future<V>. Le client peut utiliser cet objet pour vérifier l'état, les résultats ou les exceptions associés à l'appel de la méthode asynchrone. Il arrive aussi qu'une méthode ne renvoie pas de résultat. On parle alors de comportement fire and forget (littéralement, déclencher et oublier).
Pour plus d'informations, consultez la rubrique sur l'utilisation des méthodes asynchrones EJB dans une application.
Voici quelques exemples d'utilisation des méthodes asynchrones EJB.
- Une application a plusieurs parties d'un travail qui doivent toutes être exécutées
pour produire un résultat final. Par exemple, imaginons qu'un programme de réservation de voyage comprend trois parties :
- Réserver un vol.
- Réserver une voiture de location.
- Réserver une chambre d'hôtel.
- Une application a plusieurs parties d'un travail à exécuter. Ces parties sont
indépendantes les unes des autres et le résultat de leur exécution n'est pas vital pour le
fonctionnement de l'application. Par exemple, imaginons qu'une enseigne commerciale possède quatre magasins et qu'un
employé du siège veut imprimer un rapport des ventes pour chaque magasin à la fin de chaque journée. Le développeur d'applications peut utiliser des méthodes asynchrones EJB comme mécanisme de traitement par lots.
Il peut utiliser plusieurs appels de méthode EJB pour envoyer un lot de requêtes d'obtention de rapport des ventes, une par magasin.
Dans cet exemple, on suppose que l'application n'a pas besoin de vérifier les résultats de ces appels de méthode. Cette vérification sera faite par l'employé du siège qui pourra récupérer les rapports de vente sur une imprimante le lendemain matin. Imaginons qu'un des magasins ne fournit pas le rapport demandé. La personne qui récupère les rapports peut considérer que cela était prévu, par exemple si le magasin en question était fermé pour travaux, ou décider de relancer la requête de rapport des ventes pour ce magasin.