TIBCO na prática: Uso do BusinessWorks e Enterprise Message Service

Por dti digital|
Atualizado: Jul 2023 |
Publicado: Set 2015

No primeiro artigo você viu as ferramentas TIBCO BusinessWorks e TIBCO Enterprise Message Service e como elas podem melhorar o desempenho e a confiabilidade da sua aplicação. Hoje, você vê um exemplo prático de como a solução apresentada pode ser útil.

Imagine um ambiente hostil a computadores e à transmissão de dados, com todas as dificuldades possíveis incluindo umidade, sujeira, longas distâncias entre redes e muitas vezes localizado debaixo da terra. Esses são os desafios enfrentados em uma planta de mineração.

Nessas condições, a possibilidade de falha de equipamentos e de perda de informação é muito grande e garantir que as informações cheguem ao seu destino final se torna um grande desafio.

Além disso, as informações da planta de beneficiamento do minério e da mina alimentam os sistemas de gestão, Manufacturing Execution System (MES) e Entreprise Resource Planning (ERP), dessa forma, a perda de dados causa deformação da informação e pode interferir na tomada de decisões. Mas como evitar que isso aconteça? É aí que entra a solução apresentada anteriormente.

Considere o seguinte cenário:

A planta de beneficiamento precisa enviar informações colidas em tempo real da vazão de minério do sistema de flotação para servidor que fica na sala de controle a mais de um quilômetro de distância e com todos os problemas citados anteriormente e através de um link de internet sem fio, que é comumente utilizado. Essa informação é a base do cálculo da produtividade da planta e sem todos os dados, a informação se torna inconsistente.

tibc

Considerando essas informações, temos a seguinte solução:

Primeiro, é preciso garantir a preservação dos dados mesmo que a transmissão esteja fora. Para isso, armazenamos os dados da planta em uma fila JMS utilizando o TIBCO Enterprise Message Service (EMS) no servidor na própria planta antes do envio dos dados. Com isso, mesmo se a conexão com a sala de controle estiver lenta ou se o link fora, nenhum dado será perdido. É importante configurar o tamanho da fila para suportar o tempo máximo que o link demora para se reestabelecer.  Além disso, a aplicação não fica presa esperando o envio, que pode demorar, e fica livre para processar os próximos dados, aumentando a frequência de atualização dos dados.

Nesse mesmo servidor, criamos um processo do TIBCO Business Works para ler os dados da fila criada e enviar para a sala de controle através de um Web Service utilizando o protocolo SOAP, para se ter a confirmação do recebimento por parte do cliente. Caso o envio não seja completado, o dado retorna para a fila para ser processado novamente quando o link estiver online.

Do lado da sala de controle, o Web Service deve estar preparado para receber a requisição da planta para aí sim realizar o processamento do dado. Esse processamento pode ser simplesmente salvar as informações em uma base de dados ou efetuar algum cálculo com os valores.

Nesta solução, temos os seguintes benefícios:

– Garantia de que os dados não serão perdidos.

– Manutenção do funcionamento da aplicação mesmo com a queda do link.

– Redução do tempo de resposta e aumento da frequência de atualização dos dados ao processa-los de forma assíncrona.

Apesar de todas as vantagens, é preciso se atentar para os seguintes pontos:

– As filas possuem um tamanho limite. Caso esse limite seja ultrapassado, a escrita na fila se torna mais lenta e, após um certo valor, o armazenamento para. Por isso é importante dimensionar de forma correta o tamanho da fila.

– Devido ao processamento assíncrono, existe um atraso entre o momento da coleta do dado até a chegada dele à sala de controle, mas considerando que sistemas do tipo MES e ERP não levam em consideração dados isolados e esse atraso, em geral, não é um problema.

A DTI tem expertise na utilização de TIBCO, além do diferencial know-how em mineração. Se tiver alguma dúvida, entre em contato com a gente

Por: Felipe Guimarães
Revisão: Jéssica Saliba

Quer saber mais?