¿Cómo manejar las operaciones de servicio web de larga duración?

Tengo que crear una aplicación Java EE que convierta documentos grandes en diferentes formatos. Cada conversión dura entre 10 segundos y 2 minutos. Las solicitudes SOAP se realizarán desde una aplicación cliente que también tengo que crear.

¿Cuál es la mejor manera de manejar estas solicitudes de larga duración? Claramente, el proceso tarda mucho tiempo en ejecutarse sin ningún comentario para el usuario.

Puedo pensar en las siguientes formas de proporcionar algún tipo de retroalimentación, pero no estoy seguro de si no hay una mejor manera, tal vez algo estandarizado.

El cliente realiza la solicitud desde un hilo y el servidor envía el documento en la respuesta, lo que puede demorar unos minutos. Hasta entonces, el cliente muestra un mensaje de "Espere", un control de progreso, etc. (Esto parece ser simple de implementar.)El cliente envía un comando "Iniciar conversión". El servidor devuelve algún tipo deIdentificación del trabajo que el cliente puede usar para sondear con frecuencia una actualización de estado o el documento final. (Esto parece ser fácil de usar, porque puedo mostrar un progreso, pero también requiere que el servidor tenga estado.)El cliente envía un comando "Iniciar conversión". El servidor de alguna manera notifica al cliente cuando se hace. (Aquí ni siquiera sé cómo hacer esto)

¿Hay otros enfoques? ¿Cuál es el mejor en términos de rendimiento, estabilidad, tolerancia a fallas, facilidad de uso, etc.?

Gracias por sus respuestas.

Respuestas a la pregunta(2)

Su respuesta a la pregunta