Usando eventos e tempos limite em processos BPEL
Os serviços da web assíncronos geralmente demoram muito para retornar uma resposta e, como tal, um componente de serviço de processo BPEL deve ser capaz de atingir o tempo limite ou desistir de espera e continuar com o restante do fluxo após um determinado período de tempo. Você pode usar a atividade de seleção para configurar um fluxo BPEL para aguardar um determinado período de tempo ou para continuar executando suas funções. Para definir um período de expiração para o tempo, você pode usar a atividade de espera. Para gerenciar mensagens, os eventos podem ser usados principalmente quando o processo de negócios está esperando retornos de chamada de serviços da Web de parceiros.
Eventos
BPEL suporta dois tipos de eventos -
Eventos de mensagem
Esses eventos são acionados por mensagens de entrada por meio de invocação de operação em tipos de porta.
Eventos de Alarme
Esses eventos são relacionados ao tempo e são disparados após uma certa duração ou em um momento específico.
Freqüentemente, porém, é mais útil aguardar mais de uma mensagem, da qual apenas uma ocorrerá.
Os eventos de alarme são úteis quando você deseja que o processo espere por um retorno de chamada por um determinado período de tempo, como 15 minutos.
Se nenhum retorno de chamada for recebido, o fluxo do processo continua conforme projetado.
Útil em arquiteturas orientadas a serviços fracamente acopladas, nas quais você não pode contar com serviços da Web disponíveis o tempo todo.
Escolha a atividade
A atividade de seleção tem 2 ramos -
onMessage - o código nesta ramificação é igual ao código para receber uma resposta antes de um tempo limite ser adicionado.
onAlarm - esta condição possui código para um tempo limite de um minuto.
Esperar atividade
A atividade de espera permite que um processo espere por um determinado período de tempo ou até que um limite de tempo seja atingido. Exatamente um dos critérios de expiração deve ser especificado.