Uso de eventos y tiempos de espera en procesos BPEL
Los servicios web asincrónicos suelen tardar mucho en devolver una respuesta y, como tal, un componente de servicio de proceso BPEL debe poder agotar el tiempo de espera, o dejar de esperar, y continuar con el resto del flujo después de una cierta cantidad de tiempo. Puede utilizar la actividad de picking para configurar un flujo de BPEL para que espere durante un período de tiempo específico o para continuar desempeñando sus funciones. Para establecer un período de vencimiento para el tiempo, puede usar la actividad de espera. Para administrar los mensajes, los eventos se pueden utilizar especialmente cuando el proceso empresarial está esperando devoluciones de llamada de los servicios web de los socios.
Eventos
BPEL admite dos tipos de eventos:
Eventos de mensajes
Estos eventos son desencadenados por mensajes entrantes a través de la invocación de operaciones en tipos de puertos.
Eventos de alarma
Estos eventos están relacionados con el tiempo y se activan después de una determinada duración o en un momento específico.
Sin embargo, a menudo es más útil esperar más de un mensaje, de los cuales solo aparecerá uno.
Los eventos de alarma son útiles cuando desea que el proceso espere una devolución de llamada durante un cierto período de tiempo, como 15 minutos.
Si no se recibe ninguna devolución de llamada, el flujo del proceso continúa según lo diseñado.
Útil en arquitecturas orientadas a servicios poco acopladas, donde no puede confiar en que los servicios web estén disponibles todo el tiempo.
Elegir actividad
La actividad de picking tiene 2 ramas:
onMessage - el código en esta rama es igual al código para recibir una respuesta antes de que se agregue un tiempo de espera.
onAlarm - esta condición tiene código para un tiempo de espera de un minuto.
Actividad de espera
La actividad de espera permite que un proceso espere durante un período de tiempo determinado o hasta que se alcance un límite de tiempo. Debe especificarse exactamente uno de los criterios de caducidad.