Um processo BPEL pode ser Síncrono ou Assíncrono, apenas para entendimento vamos definir basicamente o que é um Processo BPEL Síncrono e um Processo BPEL Assíncrono: Um Processo BPEL Síncrono bloqueia o cliente (aquele que está usando o processo) até que o processo termine e retorne um resultado para o cliente.
Um Processo BPEL Assíncrono usa um retorno de chamada para retornar o resultado (se houver). Geralmente, os processos assíncronos são usados para processos de longa duração, e os síncronos são usados para processos que retornam um resultado em um tempo relativamente curto. Se um processo BPEL usa serviços assíncronos, o próprio processo geralmente também é assíncrono.
Vamos usar o exemplo do meu Projeto HelloWorld
Veja abaixo que ele é um processo Síncrono e isso podemos identificar por dois motivos:
Primeiro Motivo:
Ele tem um ReplyOutuput
Segundo Motivo:
Dentro deste processo BPEL vá em Source
Veja acima escrito Synchronous BPEL
Agora que já sabemos como identificar um BPEL Síncrono veja como é simples torna-lo um BPEL Assíncrono.
Vá no WSDL deste BPEL conforme abaixo:
Dê um duplo clique em helloworldbpel… que está em Exposed Services para sabermos o nome do WSDL deste BPEL.
Veja o nome do WSDL do nosso BPEL e onde ele está.
Abra o WSDL e procure e procure a linha <wsdl:output message=”client:HelloWorldBPELProcessResponseMessage”/>
Retire esta linha e deverá ficar assim:
Agora volte no seu BPEL e exclua a caixinha ReplyOutuput para que fique conforme abaixo:
Pronto.. Já tornamos o nosso processo BPEL Síncrono para Assíncrono
Vamos testá-lo:
Execute o deploy do projeto no Jdeveloper, em seguida no EM (http://localhost:10000/em) Obs: A porta 10000 é o numero que escolhi ao criar o meu Domínio.
Vá no seu Projeto e clique em Test, (aqui no meu input estou colocando Blog Uans) e depois clique em Test Web Service:
Após a execução veja abaixo que o serviço foi executado com sucesso porem não existe um retorno.
Agora veja a instância criada e clique nela para vermos o resultado.
Clique em AuditTrail e veja que a concatenação Hello + Blog Uans ocorreu com sucesso e não houve retorno do serviço
Obs: Neste exemplo usamos apenas um projeto Hello World que concatenará o nome Hello + o que for digitado em Input.
Ainda em Flow podemos ver mais um detalhe onde a execução ocorre sem falhas e sem retorno.
Este é apenas um exemplo muito simples, mas não importa a complexidade do seu BPEL, realizando as mesmas alterações não haverá problemas.
Abraços e até a Próxima
/:-D