Exemplo de ccBPM
Autor: Acácio B. | Publicado: 2012-04-09T18:05:00-03:00

Há tempos estou tentando escrever um post sobre BPM, e hoje a pedido do Diego J, o único&nbsp;mais assíduo&nbsp;leitor do blog, resolvi tentar.

O objetivo desse post é demonstrar um exemplo simples de criação de um ccBPM.
No cenário que será criado, receberemos através de um Adapeter File, uma requisição
assíncrona, que irá fazer uma consulta síncrona em um sistema legado e gravar, utilizando um
Adapter JDBC e por ultimo gravar o resultado em um file system usando novamente o Adapter
File.


O cenário criado tem algumas peculiaridades, como por exemplo, a consulta no legado roda
uma Stored Procedure. Para conseguirmos formatar essa mensagem foi necessário utilizar,
além do mapeamento normal, um mapeamento XSL. Esses passos não serão explicados nesse post.








Objetos criados:





























Integration Process:




















Containers:




















Passo a passo










Receiver:


Nesse step a mensagem de entrada
(Outbound), é recebida do Adapter File. No nosso caso essa mensagem é um
arquivo em uma determinada pasta do file system.


















Transformation 1:


Nesse step a mensagem de entrada é
transformada(Mapping) para ficar no formato da mensagem de request da chamada
síncrona.


























Sender1:


Nesse step é realizada a chamada síncrona.





























Transformation 2:


Esse step a mensagem de response recebida
no ultimo step é transformada (Mapping) para o formato como ela será gravada na
saída.






























Sender 2:


Nesse step a mensagem de saída é enviada
para ser gravada em outra pasta do file system.
































Integration Scenario:


O IS é considerado por muitas pessoas como
uma parte de perfumaria. Não compartilho dessa opinião, considero o IS uma
parte extremamente importante no processo de criação de uma interface, seja
pela melhor funcionalidade, maior facilidade de manutenção e até de
organização. &nbsp;Acho muito mais fácil
entender o funcionamento de uma interface olhando pelo IS do que direto no
Directory.















































Applications Components:














FileSender:











O&nbsp;FileSender é o&nbsp;application de entrada, ele vai receber uma Action, que nesse caso eu nomei como Entrada.&nbsp;A Action Entrada recebe no Outbound
Interfaces, a Service Interface que representa no nosso caso o arquivo que
estamos recebendo via File.



&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;





















IP:



















































O Application IP, é onde é configurado o
IP.&nbsp;Esse Aplication recebeu uma Action que
chamei de RequestJBoss










&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;











JBoss:

















































Esse é o Application do sistema legado, ele
recebe uma Action de nome ResponseJBoss.&nbsp;Essa Action recebe no Outbound Interfaces,
a SI que será a resposta da consulta síncrona.
No Inbound Interfaces a SI de consulta no legado
síncrona.
















































FileReceiver: 




















































Esse é o Application que vai gravar a
resposta da consulta síncrona. Ele recebe uma Action de nome Saida.&nbsp;Essa Action recebe no Inbound Interfaces a
SI inbound que será a mensagem a ser gravada na saída.

























































Conexões 




As conexões são uma parte importante, e se
você criou as Actions corretamente, vai ser bem fácil crias as conexões. Esse é
um passo que pela simplicidade, acaba sendo um dos pontos de mais erros na
criação de um Scenario com ccBPM.





&nbsp;

































































Agora é só fazer a configuração no Directory e rodar os testes.

Espero que isso possa ajudar, ao menos a dar ideias dos passos a serem seguidos.

Grande abraço...