Proposta de um mecanismo de recuperação de mensagens enviadas para um controlador de filas
Mostra/ Apri
Data
2024-07-12Autore
Menzen, Eduardo
Orientador
Notari, Daniel Luis
Metadata
Mostra tutti i dati dell'itemAbstract
Este trabalho aborda a necessidade de desenvolver uma estrutura para recuperação de mensagens não inseridas em filas de processamento de mensagens para um sistema de Ponto de Venda (PDV) de uma rede de lojas de varejo. Um sistema PDV é responsável pela realização de transações de compra e venda, sendo crucial para a segurança e agilidade dos processos de grandes empresas de varejo. O problema identificado está relacionado aos procedimentos que dependem da emissão do documento fiscal, os quais, uma vez iniciados, não podem ser cancelados após a emissão do documento. O objetivo principal deste trabalho foi criar uma estrutura de recuperação de mensagens que não foram inseridas na fila de mensagens devido a falhas no sistema ou na infraestrutura. Os objetivos específicos compreenderam na concepção de uma estrutura de armazenamento em banco de dados local para as mensagens, a definição do procedimento de recuperação em caso de falhas, o desenvolvimento de um protótipo em linguagem de programação que incorpore essa estrutura e procedimento, e a validação da solução por meio de testes unitários. Uma das etapas do trabalho incluiu a implementação de um protótipo para testar a
validade da solução proposta em um ambiente controlado. Foram desenvolvidas duas aplicações seguindo o padrão de arquitetura cliente-servidor: uma responsável pela criação, envio e reprocessamento de mensagens via requisições Simple Object Access Protocol (SOAP) e outra, consistindo em um Web Service SOAP que recebe as mensagens e as insere em filas de processamento. A aplicação cliente foi estruturada seguindo o padrão Model-View-Controller (MVC), separando claramente as responsabilidades e facilitando a manutenção do código. O servidor, contendo menos partes de código, não seguiu nenhum padrão específico e foi implementado com quatro classes e uma interface, cada uma com funcionalidades específicas. Para testar a eficácia da solução, foram realizados testes em dois cenários distintos: um sem sobrecarga e outro com sobrecarga de requisições no Web Service, utilizando o aplicativo SoapUI para simular a carga. Nos testes sem sobrecarga, todas as mensagens foram enviadas com sucesso. No cenário com sobrecarga, algumas mensagens falharam, mas o reprocessamento garantiu que todas as mensagens fossem eventualmente entregues, demonstrando a eficácia da solução proposta. O desenvolvimento do protótipo também passou por ajustes para melhorar a interface e a lógica de simulação de erros. Inicialmente, considerou-se o uso de diferentes sistemas operacionais e gerenciadores de banco de dados, mas posteriormente, optou-se por uma abordagem mais uniforme para simplificar o ambiente de teste. No final, a solução foi testada com sucesso,
validando a proposta em um ambiente controlado e adverso. [resumo fornecido pelo autor]