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

Detalhes bibliográficos
Autor(a) principal: Pereira Filho, Vanderlei Munhoz
Data de Publicação: 2020
Tipo de documento: Trabalho de conclusão de curso
Idioma: por
Título da fonte: Repositório Institucional da UFSC
Texto Completo: https://repositorio.ufsc.br/handle/123456789/204773
Resumo: TCC(graduação) - Universidade Federal de Santa Catarina. Centro Tecnológico. Engenharia de Controle e Automação.
id UFSC_1e4dd99af544698a9dd14fd1a946aa4e
oai_identifier_str oai:repositorio.ufsc.br:123456789/204773
network_acronym_str UFSC
network_name_str Repositório Institucional da UFSC
repository_id_str 2373
spelling Universidade Federal de Santa CatarinaPereira Filho, Vanderlei MunhozCastro, Márcio Bastos2020-03-11T16:59:35Z2020-03-11T16:59:35Z2020-03-03https://repositorio.ufsc.br/handle/123456789/204773TCC(graduação) - Universidade Federal de Santa Catarina. Centro Tecnológico. Engenharia de Controle e Automação.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.141 fFlorianópolis, SC.computação em nuvemsistemas distribuídosaplicações webprocessamento de linguagem naturalProjeto 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áriosinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/bachelorThesisinfo:eu-repo/semantics/openAccessporreponame:Repositório Institucional da UFSCinstname:Universidade Federal de Santa Catarina (UFSC)instacron:UFSCLICENSElicense.txtlicense.txttext/plain; charset=utf-81383https://repositorio.ufsc.br/bitstream/123456789/204773/2/license.txt11ee89cd31d893362820eab7c4d46734MD52ORIGINALTCC.pdfTCC.pdfTCCapplication/pdf12291873https://repositorio.ufsc.br/bitstream/123456789/204773/1/TCC.pdf591d99f0ce4c2778a0a45a7970cb5f88MD51123456789/2047732020-03-11 13:59:35.941oai:repositorio.ufsc.br:123456789/204773Vm9jw6ogdGVtIGEgbGliZXJkYWRlIGRlOiBDb21wYXJ0aWxoYXIg4oCUIGNvcGlhciwgZGlzdHJpYnVpciBlIHRyYW5zbWl0aXIgYSBvYnJhLiBSZW1peGFyIOKAlCBjcmlhciBvYnJhcyBkZXJpdmFkYXMuClNvYiBhcyBzZWd1aW50ZXMgY29uZGnDp8O1ZXM6IEF0cmlidWnDp8OjbyDigJQgVm9jw6ogZGV2ZSBjcmVkaXRhciBhIG9icmEgZGEgZm9ybWEgZXNwZWNpZmljYWRhIHBlbG8gYXV0b3Igb3UgbGljZW5jaWFudGUgKG1hcyBuw6NvIGRlIG1hbmVpcmEgcXVlIHN1Z2lyYSBxdWUgZXN0ZXMgY29uY2VkZW0gcXVhbHF1ZXIgYXZhbCBhIHZvY8OqIG91IGFvIHNldSB1c28gZGEgb2JyYSkuIFVzbyBuw6NvLWNvbWVyY2lhbCDigJQgVm9jw6ogbsOjbyBwb2RlIHVzYXIgZXN0YSBvYnJhIHBhcmEgZmlucyBjb21lcmNpYWlzLgpGaWNhbmRvIGNsYXJvIHF1ZTogUmVuw7puY2lhIOKAlCBRdWFscXVlciBkYXMgY29uZGnDp8O1ZXMgYWNpbWEgcG9kZSBzZXIgcmVudW5jaWFkYSBzZSB2b2PDqiBvYnRpdmVyIHBlcm1pc3PDo28gZG8gdGl0dWxhciBkb3MgZGlyZWl0b3MgYXV0b3JhaXMuIERvbcOtbmlvIFDDumJsaWNvIOKAlCBPbmRlIGEgb2JyYSBvdSBxdWFscXVlciBkZSBzZXVzIGVsZW1lbnRvcyBlc3RpdmVyIGVtIGRvbcOtbmlvIHDDumJsaWNvIHNvYiBvIGRpcmVpdG8gYXBsaWPDoXZlbCwgZXN0YSBjb25kacOnw6NvIG7Do28gw6ksIGRlIG1hbmVpcmEgYWxndW1hLCBhZmV0YWRhIHBlbGEgbGljZW7Dp2EuIE91dHJvcyBEaXJlaXRvcyDigJQgT3Mgc2VndWludGVzIGRpcmVpdG9zIG7Do28gc8OjbywgZGUgbWFuZWlyYSBhbGd1bWEsIGFmZXRhZG9zIHBlbGEgbGljZW7Dp2E6IExpbWl0YcOnw7VlcyBlIGV4Y2XDp8O1ZXMgYW9zIGRpcmVpdG9zIGF1dG9yYWlzIG91IHF1YWlzcXVlciB1c29zIGxpdnJlcyBhcGxpY8OhdmVpczsgT3MgZGlyZWl0b3MgbW9yYWlzIGRvIGF1dG9yOyBEaXJlaXRvcyBxdWUgb3V0cmFzIHBlc3NvYXMgcG9kZW0gdGVyIHNvYnJlIGEgb2JyYSBvdSBzb2JyZSBhIHV0aWxpemHDp8OjbyBkYSBvYnJhLCB0YWlzIGNvbW8gZGlyZWl0b3MgZGUgaW1hZ2VtIG91IHByaXZhY2lkYWRlLiBBdmlzbyDigJQgUGFyYSBxdWFscXVlciByZXV0aWxpemHDp8OjbyBvdSBkaXN0cmlidWnDp8Ojbywgdm9jw6ogZGV2ZSBkZWl4YXIgY2xhcm8gYSB0ZXJjZWlyb3Mgb3MgdGVybW9zIGRhIGxpY2Vuw6dhIGEgcXVlIHNlIGVuY29udHJhIHN1Ym1ldGlkYSBlc3RhIG9icmEuIEEgbWVsaG9yIG1hbmVpcmEgZGUgZmF6ZXIgaXNzbyDDqSBjb20gdW0gbGluayBwYXJhIGVzdGEgcMOhZ2luYS4KTGljZW7Dp2EgQ3JlYXRpdmUgQ29tbW9ucyAtIGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LW5jLzMuMC9ici8KRepositório de PublicaçõesPUBhttp://150.162.242.35/oai/requestopendoar:23732020-03-11T16:59:35Repositório Institucional da UFSC - Universidade Federal de Santa Catarina (UFSC)false
dc.title.pt_BR.fl_str_mv 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
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
spellingShingle 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
Pereira Filho, Vanderlei Munhoz
computação em nuvem
sistemas distribuídos
aplicações web
processamento de linguagem natural
title_short 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
title_full 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
title_fullStr 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
title_full_unstemmed 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
title_sort 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
author_facet Pereira Filho, Vanderlei Munhoz
author_role author
dc.contributor.pt_BR.fl_str_mv Universidade Federal de Santa Catarina
dc.contributor.author.fl_str_mv Pereira Filho, Vanderlei Munhoz
dc.contributor.advisor1.fl_str_mv Castro, Márcio Bastos
contributor_str_mv Castro, Márcio Bastos
dc.subject.por.fl_str_mv computação em nuvem
sistemas distribuídos
aplicações web
processamento de linguagem natural
topic computação em nuvem
sistemas distribuídos
aplicações web
processamento de linguagem natural
description TCC(graduação) - Universidade Federal de Santa Catarina. Centro Tecnológico. Engenharia de Controle e Automação.
publishDate 2020
dc.date.accessioned.fl_str_mv 2020-03-11T16:59:35Z
dc.date.available.fl_str_mv 2020-03-11T16:59:35Z
dc.date.issued.fl_str_mv 2020-03-03
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/bachelorThesis
format bachelorThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv https://repositorio.ufsc.br/handle/123456789/204773
url https://repositorio.ufsc.br/handle/123456789/204773
dc.language.iso.fl_str_mv por
language por
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv 141 f
dc.publisher.none.fl_str_mv Florianópolis, SC.
publisher.none.fl_str_mv Florianópolis, SC.
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFSC
instname:Universidade Federal de Santa Catarina (UFSC)
instacron:UFSC
instname_str Universidade Federal de Santa Catarina (UFSC)
instacron_str UFSC
institution UFSC
reponame_str Repositório Institucional da UFSC
collection Repositório Institucional da UFSC
bitstream.url.fl_str_mv https://repositorio.ufsc.br/bitstream/123456789/204773/2/license.txt
https://repositorio.ufsc.br/bitstream/123456789/204773/1/TCC.pdf
bitstream.checksum.fl_str_mv 11ee89cd31d893362820eab7c4d46734
591d99f0ce4c2778a0a45a7970cb5f88
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFSC - Universidade Federal de Santa Catarina (UFSC)
repository.mail.fl_str_mv
_version_ 1766805467418329088