Procesos Síncronos de larga duración…

En procesos BPEL podemos identificar fácilmente 2 tipos de procesos:

  1. Síncronos. Operaciones de 2 vías (entrada-salida)
  2. Asíncronos. Operaciones de 1 vía (es decir, una entrada con una posible salida eventual)

En ocasiones es necesario tener procesos síncronos que le den una respuesta al cliente casi de forma inmediata y después realizar una serie de pasos, los cuales no necesariamente requieren notificar al cliente que los invocó.

De esta manera un proceso síncrono de operación de 2 vías ,podría convertirse en un proceso que guarde su estado.

En uno de los proyectos en los que estoy trabajando actualmente es necesario realizar procesos de Activación de Servicios, en los cuales al cliente se le notifica inmediatamente pero después se realizan varios pasos en los cuales no es necesario volver al cliente a dar alguna notificación.

Con Oracle BPEL Process Manager esto es fácilmente lograble usando un proceso Síncrono que tenga un Callback casi inmediato y luego una serie de pasos:

proceso

Como se puede ver, es un proceso Síncrono normal con un Reply casi inmediato, pero con una serie de pasos posteriores en los cuales está incluido una llamada Asíncrona, lo cual hace que el Flujo tenga un punto de deshidratación, pero evitaría que el cliente estuviera esperando una respuesta.

Este tipo de procesos son ideales cuando se necesita contestar rápidamente a quien invoque y después es necesario seguir procesando. Igualmente es ideal cuando el cliente no tiene la tecnología para invocar un proceso Asícrono con WS-Addressing, de ésta forma invoca a un proceso Síncrono, recibe una respuesta y deja al proceso ejecutándose.