memefelipe
Share on facebook
Share on twitter
Share on linkedin
Diurno

Como deixar sua aplicação rápida e confiável

Em um mundo em que o volume de informação é cada vez maior e os sistemas precisam fornecer respostas cada vez mais rápidas, não podemos ficar esperando as coisas acontecerem!

Em tarefas demoradas que consomem preciosos segundos, é preciso ser assíncrono. Ninguém vai aos correios enviar uma carta e aguarda na agência até que a sua carta chegue ao destinatário. Da mesma forma, as operações de armazenamento em banco de dados, escrita de arquivo ou chamadas de serviço podem causar grandes atrasos e muitas vezes podem ser evitadas.

 

memefelipe

Mas como fazer isso e garantir que a informação chegará ao seu destino final? Uma excelente saída é a utilização do TIBCO Enterprise Message Service (EMS). Esta é uma solução de envio e recebimento de mensagens que fornece Java Message Service (JMS) compatível com diversas plataformas e tecnologias.

Através do JMS, é possível armazenar dados rapidamente em uma fila para depois fazer o tratamento dos dados, armazenar em banco ou qualquer outra tarefa que possa prejudicar o desempenho da aplicação.

Com os dados armazenados na fila, a ferramenta garante a sua persistência até que o dado seja processado, e assim, a aplicação pode continuar suas operações enquanto os dados são processados de forma assíncrona.

Em seguida, é preciso dar destino aos dados armazenados. Existem diversas opções para fazer isso, já que, como foi dito anteriormente, a tecnologia é multi-plataforma e compatível com diversas tecnologias.

Após testes, a melhor solução encontrada foi a utilização de outra ferramenta da TIBCO, o TIBCO BusinessWorks (BW). Ele é utilizado para conectar as aplicações e dados, com pouca ou nenhuma programação.

As vantagens de se usar o BW são:

– Respostas mais rápidas

– Processamento de dados em tempo real

– Integrado a outras ferramentas TIBCO

O TIBCO BW é capaz de dar diversos destinos para os dados, porém, em algumas tarefas como armazenamento em banco de dados, ele não possui desempenho satisfatório.

Dessa forma, é recomendado que o dado processado seja enviado para outro WebService, sendo que o BW fica responsável por pegar o dado na fila e enviar para o WebService e também por tratar as exceções caso ocorra alguma falha no serviço.

felipe1

 

Como nem tudo é perfeito, ao utilizar essa solução é preciso ter cuidado para não perder informações. Primeiro, é preciso garantir que as informações foram armazenadas na fila e essa parte deve ser síncrona. Em seguida, é necessário tratar possíveis erros ao chamar o webservice e na leitura dos dados da lista. Neste caso, é necessário que os dados sejam enviados novamente e armazenados no final da fila. Já em caso de sucesso, é necessário confirmar ao JMS e removê-lo da fila.

E quando utilizar?

Essa solução pode ser usada em todas as situações em que há uma ou mais operações que consomem muito tempo, desde que seu retorno não seja usado imediatamente. Essa limitação existe já que o processamento do dado pode demorar e como se trata de uma fila, pode haver outros dados para serem processados antes. Dessa forma, o tempo aguardado seria maior do que ao processo síncrono.

Possui integrações em TIBCO? Precisa de ajuda para integrar? Entre em contato com a gente! Se preferir, veja um exemplo de aplicação de TIBCO aqui.

Por: Felipe Guimarães e Jéssica Saliba.