Tags

, , , , , , , , , , ,

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

Imagem Blog UansCarvalho

Segundo Motivo:

Dentro deste processo BPEL vá em Source

Imagem Blog UansCarvalho

Veja acima escrito Synchronous BPEL

Imagem Blog UansCarvalho

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.

Imagem Blog UansCarvalho

Veja o nome do WSDL do nosso BPEL e onde ele está.

Imagem Blog UansCarvalho

Abra o WSDL e procure e procure a linha <wsdl:output message=”client:HelloWorldBPELProcessResponseMessage”/>

Imagem Blog UansCarvalho

Retire esta linha e deverá ficar assim:

Imagem Blog UansCarvalho

Agora volte no seu BPEL e exclua a caixinha ReplyOutuput para que fique conforme abaixo:

Imagem Blog UansCarvalho

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.

Imagem Blog UansCarvalho

Vá no seu Projeto e clique em Test, (aqui no meu input estou colocando Blog Uans) e depois clique em Test Web Service:

Imagem Blog UansCarvalho

Após a execução veja abaixo que o serviço foi executado com sucesso porem não existe um retorno.

Imagem Blog UansCarvalho

Agora veja a instância criada e clique nela para vermos o resultado.

Imagem Blog UansCarvalho

Imagem Blog UansCarvalho

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.

Imagem Blog UansCarvalho

Ainda em Flow podemos ver mais um detalhe onde a execução ocorre sem falhas e sem retorno.

Imagem Blog UansCarvalho

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