terça-feira, 10 de março de 2015

WSO2 ESB - Tutoriais de 3 Minutos - Proxy Services Lendo Arquivos de Pastas

O WSO2 ESB é uma implementação suportada e com algumas extensões do leve e performático ESB da Apache: Synapse.

Ele possui um framework extenso e completo para resolver qualquer cenário de Integração, além de reutilização, governança de serviços, QoS, SLA etc.

No WSO2 ESB existem os ProxyServices , uma forma que eu encontrei de "me ensinar" o WSO2 ESB foi criar a analogia que estes caras são  "Plugs" das Integrações que queremos fazer, entenda que de acordo com o Plug você pode ter um comportamento diferente.


Quando você entender os ProxyServices, vai que o resto é também bem fácil, por exemplo, um ProxyService possui suas configurações de protocolo de Transporte, que podem ser:

  • HTTP
  • HTTPs
  • VFS - Arquivos, Pastas e FTP
  • JMS
  • E-MAIL 
  • etc
Os transportes definem como é a comunicação com o mundo externo, pode ser um ou mais transportes configurados para o ProxyService.

Um ProxyService sempre é um WebService? A resposta é absolutamente NÃO. No exemplo que vamos mostrar, este por sua vez é apenas um "Ouvinte" de um Arquivo numa pasta, ou seja, um cenário bem comum de integração.  Veja a janela de configuração Inicial:

Figura 1 - Configurações do Proxy Service de escuta de Arquivos

Nas configurações da Figura 1, você vê as opções de configuração de um Proxy Service recém criado, para criar os Proxies isto pode ser feito diretamente no Browser através do WSO2 ESB Admin Console. Ou ainda, é possível usar o WSO2 Developer Studio, como na figura abaixo:

Figura 2 - Mesmo Código do Proxy de Leitura de Arquivos, mas no Eclipse (WSO2 Dev Studio)

Porém, eu vou preferir explicar o ProxyService usando o código XML, pois eu achei mais didático que explicar ponto a ponto as duas interfaces:

a) Declaração 

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="CurrencyExchangeVFS"
       transports="vfs"
       statistics="disable"
       trace="disable"
       startOnLoad="true">

b) Todo o Proxy tem um Target, com a InSequence (Sequencia de Entrada) e a OutSequence(em caso de volta do processamento) 

c) As Sequences possuem seus Mediators, que são as ações, ou as caixinhas do fluxo visual de integração, neste caso vamos ter dois: 

<target>
      <inSequence>
         <log level="full"/>
         <property xmlns:p="http://ws.apache.org/commons/ns/payload"
                   name="pair"
                   expression="//p:text"
                   scope="default"
                   type="STRING"/>

Acima nós temos declarado: 

1- Mediator LOG 
2- Mediator Propriedade de nome pair que pega o XPath do conteúdo p:text do Payload, já que nosso exemplo é uma linha CSV (mensagem)

d) Agora temos um Mediator de Script para brincar com o Payload:

 <script language="js">
            print(" Conteudo :  " + mc.getProperty("pair") + " recebido ");
       </script>
</inSequence>

e) Esta tag acima pega via JavaScript o conteúdo da propriedade pair via a variável de contexto mc. 

Funcionamento

Quando executo , posso ver a seguinte janela de console.

Console Output - Esse é o resultado

Faça aqui o download deste Proxy de exemplo, clique aqui.

Conclusão

Em breve, outros posts breves como estes, lembrando que tudo que mostrei via XML, pode ser feito vias as opções de configurações.

Nenhum comentário:

Postar um comentário