Métodos asíncronos de EJB 3.1
La especificación de Enterprise JavaBeans™ (EJB) 3.1 incluye la funcionalidad que los desarrolladores de aplicaciones pueden utilizar para configurar métodos asíncronos de EJB, que se ejecutan en una hebra independiente de la hebra que realiza la llamada.
Este mecanismo desacopla la solicitud de invocación de cliente de la ejecución de método real. La hebra de client puede continuar realizando otro trabajo mientras se ejecuta el método EJB en una hebra independiente, como indica el contenedor EJB.
Posteriormente, es posible que el cliente desee examinar el resultado de la ejecución de método asíncrono, lo que a veces se conoce como activar y volver. En este caso, el contenedor EJB devuelve al cliente un objeto que implementa la interfaz java.util.concurrent.Future<V>. El cliente puede utilizar este objeto para comprobar el estado, los resultados o las excepciones de la invocación de método asíncrono. Como alternativa, es posible que los métodos asíncronos no devuelvan ningún resultado, lo que a veces se conoce como activar y olvidar.
Para obtener más detalles, consulte la información acerca de cómo utilizar métodos asíncronos EJB en la aplicación.
A continuación se proporcionan algunos escenarios de uso de ejemplo para métodos asíncronos EJB:
- Una aplicación tiene varias partes independientes de trabajo que es necesario
ejecutar para producir un resultado final. Por ejemplo, supongamos que una reserva de viaje consta de tres partes:
- Realizar una reserva de avión.
- Reservar una reserva de coche de alquiler.
- Realizar una reserva de hotel.
- Una aplicación tiene varias partes independientes de trabajo que debe
ejecutar y la aplicación no se ocupa de los resultados de este trabajo. Por ejemplo, suponga que un comerciante minorista tiene cuatro tiendas y que la
oficina principal desea imprimir un informe de ventas de cada tienda al finalizar
el día comercial. El desarrollador de aplicaciones puede utilizar métodos asíncronos EJB como
mecanismo de proceso por lotes.
Se pueden utilizar varias llamadas de método
EJB para enviar un proceso por lotes de solicitudes de obtención de informes
de ventas, uno a cada tienda sucursal.
En este ejemplo, probablemente la aplicación no necesita comprobar los resultados de estas llamadas de método. Quizá esto lo maneja el empleado de la oficina principal que obtiene los informes de ventas de una impresora al día siguiente. Suponga que una de las sucursales no ha podido proporcionar el informe solicitado. La persona que reúne los informes puede decidir si esto se esperaba, por ejemplo la sucursal se ha cerrado para hacer renovaciones, o si se debe volver a emitir la solicitud de obtención de informe de ventas a la sucursal.