Title: | Projeto e desenvolvimento de um sistema de software de alto desempenho para execução de competições de programação com números massivos de usuários |
Author: | Pereira Filho, Vanderlei Munhoz |
Abstract: |
Este documento detalha o projeto de fim de curso realizado pelo autor durante seuperíodo de estágio na IBM, no contexto da disciplina obrigatória DAS5511 do cursode engenharia de controle e automação da UFSC. O projeto em questão envolve a concepção, desenvolvimento, teste e documentação de um sistema de software robusto, visando a substituição de um sistema protótipo já existente. O novo sistema, entregue ao fim deste trabalho, é capaz de solucionar o seguinte problema de negócio da empresa: realizar e supervisionar competições de programação com números massivos de participantes, em escala multinacional. Algumas especificações desafiadoras desse sistema são: tolerância a falhas com zero-downtime deployment, mínima latência possível para múltiplas requisições simultâneas, e controles rígidos de privacidade, em cumprimento com a GDPR Européia e LGPD Brasileira. Técnicas de computa-ção paralela e programação concorrente são aplicadas para executar as tarefas maiscomputacionalmente intensivas, visando alcançar os requisitos de desempenho. A implementação de proxies e algoritmos de criptografia são adotadas para alcançar os requisitos de segurança e privacidade. Diferentes arquiteturas de implantação são analisadas desde a etapa de planejamento, até as etapas de implementação e teste, deforma a avaliar os custos e benefícios de cada uma. Ao final, testes comparativos, ou benchmarkings, são realizados no sistema desenvolvido, já em ambiente de produção, a fim de avaliar possíveis gargalos e o atendimento completo dos requisitos. Os resultados, em conjunto com uma análise crítica do trabalho desenvolvido como um todo, são apresentados nos últimos capítulos deste documento. This document details the final project developed by the author during his internship at IBM, in the context of the required DAS5511 discipline of the UFSC automation and control engineering course. The project in question involves the development, testing and documentation of a robust software system, that will serve as a replacement for an existing prototype system. The new system, delivered by the time of publication of this document, is capable of solving the following business problem of the company: holding and overseeing programming competitions with massive numbers of participants on a multinational scale. Some challenging specifications of this system are: fault tolerance with zero downtime deployment, minimum possible latency for concurrent requirements, and strict privacy controls in compliance with the European GDPR and the Brazilian LGPD. Parallel computing and concurrent programming techniques are applied to perform the most computationally intensive tasks, enabling the system to achieve performance requirements. The implementation of proxies and the adoption of encryption algorithms are made to meet security and privacy requirements. Different deployment architectures are analyzed since the planning steps, until the implementation and testing of the system, studying the costs and benefits of each architecture. Lastly, comparative tests, or benchmarks, are performed in the complete system, already in the production environment. Possible bottlenecks are evaluated, as well as if the system completely fulfills all requirements established at the planning phase. The results, together with a critical analysis of the work as a whole, are presented in the last chapters of this document. |
Description: | TCC(graduação) - Universidade Federal de Santa Catarina. Centro Tecnológico. Engenharia de Controle e Automação. |
URI: | https://repositorio.ufsc.br/handle/123456789/204773 |
Date: | 2020-03-03 |
Files | Size | Format | View | Description |
---|---|---|---|---|
TCC.pdf | 11.72Mb |
View/ |
TCC |