Recommendation of microservices patterns throught information retrieval

Detalhes bibliográficos
Ano de defesa: 2023
Autor(a) principal: Moura, Álex dos Santos
Orientador(a): Soares, Michel dos Santos
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Não Informado pela instituição
Programa de Pós-Graduação: Pós-Graduação em Ciência da Computação
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Palavras-chave em Inglês:
Área do conhecimento CNPq:
Link de acesso: https://ri.ufs.br/jspui/handle/riufs/19471
Resumo: Software development inherently involves solving recurring design problems, which can negatively affect the quality attributes of a system. These problems are commonly solved through the application of design patterns – proven solutions forged by experienced developers. Microservices architecture, a variant of Service-Oriented Architecture, is on the rise, given that giants like Amazon, eBay and Netflix are adopting this architecture. In this architectural style, systems are composed of microservices that communicate through messages. Each microservice has a specific responsibility and is deployed, scaled, and tested independently. Design patterns used to solve design problems present in microservices-based systems are called microservices patterns. Solving design problems is theoretically simple, the developer only needs to select design patterns and apply them. However, in practice, both beginners and experienced developers have difficulty selecting design patterns, the reasons for this difficulty are the substantial number of design patterns and limited knowledge. Thus, the overall goal of this work is to provide a way to help developers select the right microservices pattern to solve a given design problem. This work was developed by using the research methodology named Design Science Research, which proposes the development of Information Technology artifacts to solve real-world problems. Initially, a recommendation approach based on Information Retrieval was proposed to make recommendations for microservices patterns, where the developer can report a design problem, in natural language (text), and receive recommendations for microservices patterns that can solve the design problem reported. Overall, testing using a set of toy design problems showed that the recommendation approach was able to solve 60% of design problems and that there is room for improvement as 40% of design problems were not solved. This approach was then used in a tool called Floc. This tool has a friendly user interface where the developer can manage design problems and get microservices pattern recommendations for them. The tool was evaluated using industrial design problems and demonstrated promising results. Furthermore, interviews with industry developers corroborated the effectiveness and practicality of the recommendation tool.
id UFS-2_85e6fa16555d02099f3fd4cc72a43801
oai_identifier_str oai:oai:ri.ufs.br:repo_01:riufs/19471
network_acronym_str UFS-2
network_name_str Repositório Institucional da UFS
repository_id_str
spelling Moura, Álex dos SantosSoares, Michel dos SantosSantos, Michel dos2024-07-05T19:07:45Z2024-07-05T19:07:45Z2023-12-01MOURA, Álex dos Santos. Recommendation of microservices patterns throught information retrieval. 2023. 82 f. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de Sergipe, São Cristóvão, 2023.https://ri.ufs.br/jspui/handle/riufs/19471Software development inherently involves solving recurring design problems, which can negatively affect the quality attributes of a system. These problems are commonly solved through the application of design patterns – proven solutions forged by experienced developers. Microservices architecture, a variant of Service-Oriented Architecture, is on the rise, given that giants like Amazon, eBay and Netflix are adopting this architecture. In this architectural style, systems are composed of microservices that communicate through messages. Each microservice has a specific responsibility and is deployed, scaled, and tested independently. Design patterns used to solve design problems present in microservices-based systems are called microservices patterns. Solving design problems is theoretically simple, the developer only needs to select design patterns and apply them. However, in practice, both beginners and experienced developers have difficulty selecting design patterns, the reasons for this difficulty are the substantial number of design patterns and limited knowledge. Thus, the overall goal of this work is to provide a way to help developers select the right microservices pattern to solve a given design problem. This work was developed by using the research methodology named Design Science Research, which proposes the development of Information Technology artifacts to solve real-world problems. Initially, a recommendation approach based on Information Retrieval was proposed to make recommendations for microservices patterns, where the developer can report a design problem, in natural language (text), and receive recommendations for microservices patterns that can solve the design problem reported. Overall, testing using a set of toy design problems showed that the recommendation approach was able to solve 60% of design problems and that there is room for improvement as 40% of design problems were not solved. This approach was then used in a tool called Floc. This tool has a friendly user interface where the developer can manage design problems and get microservices pattern recommendations for them. The tool was evaluated using industrial design problems and demonstrated promising results. Furthermore, interviews with industry developers corroborated the effectiveness and practicality of the recommendation tool.O desenvolvimento de software envolve inerentemente a solução de problemas de projeto recorrentes, que podem afetar negativamente os atributos de qualidade de um sistema. Esses problemas são comumente resolvidos por meio da aplicação de padrões de projeto – soluções comprovadas e forjadas por desenvolvedores experientes. A arquitetura de microsserviços, uma variante da Arquitetura Orientada a Serviços, está em ascensão, com gigantes como Amazon, eBay e Netflix adotando essa arquitetura. Neste estilo de arquitetura, os sistemas são compostos por microsserviços que se comunicam por meio de mensagens. Cada microsserviço tem uma responsabilidade específica e é implantado, dimensionado e testado de forma independente. Os padrões de projeto usados para resolver problemas de projeto presentes em sistemas baseados em microsserviços são chamados de padrões de microsserviços. Resolver problemas de projeto é teoricamente simples, o desenvolvedor só precisa selecionar padrões de projeto e aplicá-los. Porém, na prática, tanto desenvolvedores iniciantes quanto experientes têm dificuldade em selecionar padrões de projeto, as razões para essa dificuldade são o número substancial de padrões de projeto e o conhecimento limitado. Assim, o objetivo geral deste trabalho é fornecer uma maneira de ajudar desenvolvedores a selecionar o padrão de microsserviços correto para resolver um determinado problema de projeto. Este trabalho foi desenvolvido usando a metodologia de pesquisa denominada Design Science Research, que propõe o desenvolvimento de artefatos de Tecnologia da Informação para solucionar problemas do mundo real. Inicialmente, foi proposta uma abordagem de recomendação baseada em Recuperação de Informação para fazer recomendações de padrões de microsserviços, onde o desenvolvedor pode relatar um problema de projeto, em linguagem natural (texto), e receber recomendações de padrões de microsserviços que possam resolver o problema de projeto relatado. No geral, os testes utilizando um conjunto de problemas de projeto mostraram que a abordagem de recomendação foi capaz de resolver 60% dos problemas de projeto e que há espaço para melhorias, uma vez que 40% dos problemas de projeto não foram resolvidos. Essa abordagem foi então usada em uma ferramenta chamada Floc. Essa ferramenta possui uma interface de usuário amigável onde o desenvolvedor pode gerenciar problemas de projeto e obter recomendações de padrões de microsserviços. A ferramenta foi avaliada utilizando problemas de projeto em uma empresa que atua na área de Segurança de Software e demonstrou resultados promissores. Entrevistas realizadas com desenvolvedores da indústria corroboraram a eficácia e praticidade da ferramenta de recomendação.São CristóvãoporComputaçãoArquitetura orientada a serviços (computador)Recuperação da informaçãoMicrosserviçosRecomendaçãoPadrões de projetoPadrões de microsserviçosMicroservicesRecommendationDesign patternsInformation retrievalMicroservices patternsCIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAORecommendation of microservices patterns throught information retrievalinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisPós-Graduação em Ciência da ComputaçãoUniversidade Federal de Sergipe (UFS)reponame:Repositório Institucional da UFSinstname:Universidade Federal de Sergipe (UFS)instacron:UFSinfo:eu-repo/semantics/openAccessLICENSElicense.txtlicense.txttext/plain; charset=utf-81475https://ri.ufs.br/jspui/bitstream/riufs/19471/1/license.txt098cbbf65c2c15e1fb2e49c5d306a44cMD51ORIGINALALEX_SANTOS_MOURA.pdfALEX_SANTOS_MOURA.pdfapplication/pdf2304303https://ri.ufs.br/jspui/bitstream/riufs/19471/2/ALEX_SANTOS_MOURA.pdfcd77eaac12a2e0bc5cbdb1532d9a1a89MD52riufs/194712024-07-05 16:07:50.275oai:oai:ri.ufs.br:repo_01:riufs/19471TElDRU7Dh0EgREUgRElTVFJJQlVJw4fDg08gTsODTy1FWENMVVNJVkEKCkNvbSBhIGFwcmVzZW50YcOnw6NvIGRlc3RhIGxpY2Vuw6dhLCB2b2PDqiAobyBhdXRvcihlcykgb3UgbyB0aXR1bGFyIGRvcyBkaXJlaXRvcyBkZSBhdXRvcikgY29uY2VkZSDDoCBVbml2ZXJzaWRhZGUgRmVkZXJhbCBkZSBTZXJnaXBlIG8gZGlyZWl0byBuw6NvLWV4Y2x1c2l2byBkZSByZXByb2R1emlyIHNldSB0cmFiYWxobyBubyBmb3JtYXRvIGVsZXRyw7RuaWNvLCBpbmNsdWluZG8gb3MgZm9ybWF0b3Mgw6F1ZGlvIG91IHbDrWRlby4KClZvY8OqIGNvbmNvcmRhIHF1ZSBhIFVuaXZlcnNpZGFkZSBGZWRlcmFsIGRlIFNlcmdpcGUgcG9kZSwgc2VtIGFsdGVyYXIgbyBjb250ZcO6ZG8sIHRyYW5zcG9yIHNldSB0cmFiYWxobyBwYXJhIHF1YWxxdWVyIG1laW8gb3UgZm9ybWF0byBwYXJhIGZpbnMgZGUgcHJlc2VydmHDp8Ojby4KClZvY8OqIHRhbWLDqW0gY29uY29yZGEgcXVlIGEgVW5pdmVyc2lkYWRlIEZlZGVyYWwgZGUgU2VyZ2lwZSBwb2RlIG1hbnRlciBtYWlzIGRlIHVtYSBjw7NwaWEgZGUgc2V1IHRyYWJhbGhvIHBhcmEgZmlucyBkZSBzZWd1cmFuw6dhLCBiYWNrLXVwIGUgcHJlc2VydmHDp8Ojby4KClZvY8OqIGRlY2xhcmEgcXVlIHNldSB0cmFiYWxobyDDqSBvcmlnaW5hbCBlIHF1ZSB2b2PDqiB0ZW0gbyBwb2RlciBkZSBjb25jZWRlciBvcyBkaXJlaXRvcyBjb250aWRvcyBuZXN0YSBsaWNlbsOnYS4gVm9jw6ogdGFtYsOpbSBkZWNsYXJhIHF1ZSBvIGRlcMOzc2l0bywgcXVlIHNlamEgZGUgc2V1IGNvbmhlY2ltZW50bywgbsOjbyBpbmZyaW5nZSBkaXJlaXRvcyBhdXRvcmFpcyBkZSBuaW5ndcOpbS4KCkNhc28gbyB0cmFiYWxobyBjb250ZW5oYSBtYXRlcmlhbCBxdWUgdm9jw6ogbsOjbyBwb3NzdWkgYSB0aXR1bGFyaWRhZGUgZG9zIGRpcmVpdG9zIGF1dG9yYWlzLCB2b2PDqiBkZWNsYXJhIHF1ZSBvYnRldmUgYSBwZXJtaXNzw6NvIGlycmVzdHJpdGEgZG8gZGV0ZW50b3IgZG9zIGRpcmVpdG9zIGF1dG9yYWlzIHBhcmEgY29uY2VkZXIgw6AgVW5pdmVyc2lkYWRlIEZlZGVyYWwgZGUgU2VyZ2lwZSBvcyBkaXJlaXRvcyBhcHJlc2VudGFkb3MgbmVzdGEgbGljZW7Dp2EsIGUgcXVlIGVzc2UgbWF0ZXJpYWwgZGUgcHJvcHJpZWRhZGUgZGUgdGVyY2Vpcm9zIGVzdMOhIGNsYXJhbWVudGUgaWRlbnRpZmljYWRvIGUgcmVjb25oZWNpZG8gbm8gdGV4dG8gb3Ugbm8gY29udGXDumRvLgoKQSBVbml2ZXJzaWRhZGUgRmVkZXJhbCBkZSBTZXJnaXBlIHNlIGNvbXByb21ldGUgYSBpZGVudGlmaWNhciBjbGFyYW1lbnRlIG8gc2V1IG5vbWUocykgb3UgbyhzKSBub21lKHMpIGRvKHMpIApkZXRlbnRvcihlcykgZG9zIGRpcmVpdG9zIGF1dG9yYWlzIGRvIHRyYWJhbGhvLCBlIG7Do28gZmFyw6EgcXVhbHF1ZXIgYWx0ZXJhw6fDo28sIGFsw6ltIGRhcXVlbGFzIGNvbmNlZGlkYXMgcG9yIGVzdGEgbGljZW7Dp2EuIAo=Repositório InstitucionalPUBhttps://ri.ufs.br/oai/requestrepositorio@academico.ufs.bropendoar:2024-07-05T19:07:50Repositório Institucional da UFS - Universidade Federal de Sergipe (UFS)false
dc.title.pt_BR.fl_str_mv Recommendation of microservices patterns throught information retrieval
title Recommendation of microservices patterns throught information retrieval
spellingShingle Recommendation of microservices patterns throught information retrieval
Moura, Álex dos Santos
Computação
Arquitetura orientada a serviços (computador)
Recuperação da informação
Microsserviços
Recomendação
Padrões de projeto
Padrões de microsserviços
Microservices
Recommendation
Design patterns
Information retrieval
Microservices patterns
CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
title_short Recommendation of microservices patterns throught information retrieval
title_full Recommendation of microservices patterns throught information retrieval
title_fullStr Recommendation of microservices patterns throught information retrieval
title_full_unstemmed Recommendation of microservices patterns throught information retrieval
title_sort Recommendation of microservices patterns throught information retrieval
author Moura, Álex dos Santos
author_facet Moura, Álex dos Santos
author_role author
dc.contributor.author.fl_str_mv Moura, Álex dos Santos
dc.contributor.advisor1.fl_str_mv Soares, Michel dos Santos
dc.contributor.advisor-co1.fl_str_mv Santos, Michel dos
contributor_str_mv Soares, Michel dos Santos
Santos, Michel dos
dc.subject.por.fl_str_mv Computação
Arquitetura orientada a serviços (computador)
Recuperação da informação
Microsserviços
Recomendação
Padrões de projeto
Padrões de microsserviços
topic Computação
Arquitetura orientada a serviços (computador)
Recuperação da informação
Microsserviços
Recomendação
Padrões de projeto
Padrões de microsserviços
Microservices
Recommendation
Design patterns
Information retrieval
Microservices patterns
CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
dc.subject.eng.fl_str_mv Microservices
Recommendation
Design patterns
Information retrieval
Microservices patterns
dc.subject.cnpq.fl_str_mv CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
description Software development inherently involves solving recurring design problems, which can negatively affect the quality attributes of a system. These problems are commonly solved through the application of design patterns – proven solutions forged by experienced developers. Microservices architecture, a variant of Service-Oriented Architecture, is on the rise, given that giants like Amazon, eBay and Netflix are adopting this architecture. In this architectural style, systems are composed of microservices that communicate through messages. Each microservice has a specific responsibility and is deployed, scaled, and tested independently. Design patterns used to solve design problems present in microservices-based systems are called microservices patterns. Solving design problems is theoretically simple, the developer only needs to select design patterns and apply them. However, in practice, both beginners and experienced developers have difficulty selecting design patterns, the reasons for this difficulty are the substantial number of design patterns and limited knowledge. Thus, the overall goal of this work is to provide a way to help developers select the right microservices pattern to solve a given design problem. This work was developed by using the research methodology named Design Science Research, which proposes the development of Information Technology artifacts to solve real-world problems. Initially, a recommendation approach based on Information Retrieval was proposed to make recommendations for microservices patterns, where the developer can report a design problem, in natural language (text), and receive recommendations for microservices patterns that can solve the design problem reported. Overall, testing using a set of toy design problems showed that the recommendation approach was able to solve 60% of design problems and that there is room for improvement as 40% of design problems were not solved. This approach was then used in a tool called Floc. This tool has a friendly user interface where the developer can manage design problems and get microservices pattern recommendations for them. The tool was evaluated using industrial design problems and demonstrated promising results. Furthermore, interviews with industry developers corroborated the effectiveness and practicality of the recommendation tool.
publishDate 2023
dc.date.issued.fl_str_mv 2023-12-01
dc.date.accessioned.fl_str_mv 2024-07-05T19:07:45Z
dc.date.available.fl_str_mv 2024-07-05T19:07:45Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.citation.fl_str_mv MOURA, Álex dos Santos. Recommendation of microservices patterns throught information retrieval. 2023. 82 f. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de Sergipe, São Cristóvão, 2023.
dc.identifier.uri.fl_str_mv https://ri.ufs.br/jspui/handle/riufs/19471
identifier_str_mv MOURA, Álex dos Santos. Recommendation of microservices patterns throught information retrieval. 2023. 82 f. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de Sergipe, São Cristóvão, 2023.
url https://ri.ufs.br/jspui/handle/riufs/19471
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.publisher.program.fl_str_mv Pós-Graduação em Ciência da Computação
dc.publisher.initials.fl_str_mv Universidade Federal de Sergipe (UFS)
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFS
instname:Universidade Federal de Sergipe (UFS)
instacron:UFS
instname_str Universidade Federal de Sergipe (UFS)
instacron_str UFS
institution UFS
reponame_str Repositório Institucional da UFS
collection Repositório Institucional da UFS
bitstream.url.fl_str_mv https://ri.ufs.br/jspui/bitstream/riufs/19471/1/license.txt
https://ri.ufs.br/jspui/bitstream/riufs/19471/2/ALEX_SANTOS_MOURA.pdf
bitstream.checksum.fl_str_mv 098cbbf65c2c15e1fb2e49c5d306a44c
cd77eaac12a2e0bc5cbdb1532d9a1a89
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFS - Universidade Federal de Sergipe (UFS)
repository.mail.fl_str_mv repositorio@academico.ufs.br
_version_ 1851759345896783872