Recommendation of microservices patterns throught information retrieval
| Ano de defesa: | 2023 |
|---|---|
| Autor(a) principal: | |
| Orientador(a): | |
| Banca de defesa: | |
| 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 |