Uma abordagem de conformidade arquitetural para arquitetura de microsserviços

Detalhes bibliográficos
Ano de defesa: 2019
Autor(a) principal: Araujo, Elena Augusta lattes
Orientador(a): Villela, Ricardo Terra Nunes Bueno
Banca de defesa: Cirilo, Elder, Durelli, Rafael Serapilha
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade Federal de Lavras
Programa de Pós-Graduação: Programa de Pós-graduação em Ciência da Computação
Departamento: Departamento de Ciência da Computação
País: brasil
Palavras-chave em Português:
Área do conhecimento CNPq:
Link de acesso: https://repositorio.ufla.br/handle/1/56425966
Resumo: Arquitetura de software é definida como um conjunto de decisões de projeto que possuem impacto na construção e evolução de sistemas de software. Essas decisões incluem como tais sistemas são estruturados em componentes e restrições de como esses componentes devem interagir. A arquitetura de microsserviços compreende a um estilo arquitetural que enfatiza a composição de um conjunto de microsserviços independentes que executam funcionalidades bem definidas, permitindo que cada microsserviço possa ser desenvolvido em diferentes linguagens de programação, possa utilizar diferentes frameworks e possa ser gerenciado por diferentes tecnologias de banco de dados. No entanto, tal heterogeneidade implica na dificuldade de verificação da comunicação entre os microsserviços e de cada um dos seus projetos arquiteturais, uma vez que, na prática, desvios em relação à arquitetura planejada podem ocorrer, tornando a base de código incompatível com a arquitetura planejada. Isso ocorre pois, durante o desenvolvimento e evolução de sistemas de software, anomalias são constantemente introduzidas no código-fonte. Essas anomalias consistem nas decisões que não são compatíveis com o modelo arquitetural especificado, tornando a arquitetura concreta inconsistente com a arquitetura planejada, ocasionando fenômenos conhecidos como violação e erosão arquitetural. Diante desse cenário, esta dissertação de mestrado é centrada na proposta de uma abordagem de conformidade arquitetural específica para a arquitetura de microsserviços. Para isso, (i) definiu-se uma linguagem de restrição arquitetural, denominada DCL+ ─ adaptada da linguagem DCL (Dependency Constraint Language) a fim de restringir ─ o espectro das comunicações e dependências aceitáveis entre os microsserviços e de cada um de seus projetos arquiteturais; (ii) propôs-se uma solução multiplataforma que permita restringir a comunicação entre os microsserviços e verificar os projetos arquiteturais de cada um deles; (iii) projetou-se DCL+check, uma ferramenta que implementa a solução proposta; (iv) avaliou-se a solução proposta em uma aplicação real de médio porte composta por onze microsserviços, desenvolvidos em duas linguagens distintas (JavaScript e Java), em que foram detectadas 16 violações de comunicação e 171 violações do projeto estrutural. As violações de comunicação, em geral, ocorreram devido à falta de conhecimento dos desenvolvedores sobre as restrições de comunicação entre os módulos do sistema orquestrador e demais microsserviços, bem como evolução de dois microsserviços. No que compete às violações do projeto estrutural, às violações foram ocasionadas devido à falta de conhecimento por parte dos desenvolvedores sobre os conceitos de arquitetura de software, especificamente na correta aplicação do framework Spring MVC e dependências do módulo Util.
id UFLA_e04b6c3596f562b432901e926b1b808f
oai_identifier_str oai:repositorio.ufla.br:1/37966
network_acronym_str UFLA
network_name_str Repositório Institucional da UFLA
repository_id_str
spelling 2019-12-02T20:56:13Z2019-12-02T20:56:13Z2019-12-022019-05-31ARAUJO, E. A. Uma abordagem de conformidade arquitetural para arquitetura de microsserviços. 2019. 117 p. Dissertação (Mestrado em Ciência da Computação)–Universidade Federal de Lavras, Lavras, 2019.https://repositorio.ufla.br/handle/1/56425966Arquitetura de software é definida como um conjunto de decisões de projeto que possuem impacto na construção e evolução de sistemas de software. Essas decisões incluem como tais sistemas são estruturados em componentes e restrições de como esses componentes devem interagir. A arquitetura de microsserviços compreende a um estilo arquitetural que enfatiza a composição de um conjunto de microsserviços independentes que executam funcionalidades bem definidas, permitindo que cada microsserviço possa ser desenvolvido em diferentes linguagens de programação, possa utilizar diferentes frameworks e possa ser gerenciado por diferentes tecnologias de banco de dados. No entanto, tal heterogeneidade implica na dificuldade de verificação da comunicação entre os microsserviços e de cada um dos seus projetos arquiteturais, uma vez que, na prática, desvios em relação à arquitetura planejada podem ocorrer, tornando a base de código incompatível com a arquitetura planejada. Isso ocorre pois, durante o desenvolvimento e evolução de sistemas de software, anomalias são constantemente introduzidas no código-fonte. Essas anomalias consistem nas decisões que não são compatíveis com o modelo arquitetural especificado, tornando a arquitetura concreta inconsistente com a arquitetura planejada, ocasionando fenômenos conhecidos como violação e erosão arquitetural. Diante desse cenário, esta dissertação de mestrado é centrada na proposta de uma abordagem de conformidade arquitetural específica para a arquitetura de microsserviços. Para isso, (i) definiu-se uma linguagem de restrição arquitetural, denominada DCL+ ─ adaptada da linguagem DCL (Dependency Constraint Language) a fim de restringir ─ o espectro das comunicações e dependências aceitáveis entre os microsserviços e de cada um de seus projetos arquiteturais; (ii) propôs-se uma solução multiplataforma que permita restringir a comunicação entre os microsserviços e verificar os projetos arquiteturais de cada um deles; (iii) projetou-se DCL+check, uma ferramenta que implementa a solução proposta; (iv) avaliou-se a solução proposta em uma aplicação real de médio porte composta por onze microsserviços, desenvolvidos em duas linguagens distintas (JavaScript e Java), em que foram detectadas 16 violações de comunicação e 171 violações do projeto estrutural. As violações de comunicação, em geral, ocorreram devido à falta de conhecimento dos desenvolvedores sobre as restrições de comunicação entre os módulos do sistema orquestrador e demais microsserviços, bem como evolução de dois microsserviços. No que compete às violações do projeto estrutural, às violações foram ocasionadas devido à falta de conhecimento por parte dos desenvolvedores sobre os conceitos de arquitetura de software, especificamente na correta aplicação do framework Spring MVC e dependências do módulo Util.Software architecture is defined as a set of design decisions that has impact on the construction and evolution of software systems. Such decisions include how those systems are structured in components and the constraints on how these components should interact on. The microservice architecture comprises an architectural style that emphasizes the composition of a set of microservices that execute well defined functionalities, thus microservices can be developed in different programming languages, running in different frameworks, and can be managed by different database technologies. However, such heterogeneity implies in the difficulty of verifying the communication between the microservices and each of their architectural projects, since, in practice, deviations from the planned architecture may occur, making the code base incompatible with the planned architecture. During the development and evolution of software systems, anomalies are constantly introduced in the source code. These anomalies consist of decisions that are not compatible with the specified architectural model, making the concrete architecture inconsistent with the planned architecture, causing phenomena known as violation and architectural erosion. Given this scenario, this dissertation is centered on the proposal of a specific architectural compliance approach for the microservice architecture. For this purpose, (i) an architectural constraint language, called DCL+ ─ adapted from the DCL (Dependency Constraint Language) language ─ has been defined in order to restrict the spectrum of acceptable communications and dependencies among the microservices and each one of their architectural designs; (ii) a multiplatform solution was proposed that would allow to limit the communication between the microservices and verify the architectural projects of each one of them; (iii) we designed DCL+check, a tool that implements the proposed solution; (iv) the proposed solution was evaluated in a real large application composed of eleven microservices, developed in two different languages (JavaScript and Java), in which 16 communication violations and 171 violations of the structural design were detected. The communication violations occurred in general due to the lack of knowledge of the developers about the restrictions of communication among the modules of the orchestrator system and other microservices, as well as the evolution of two microservices. Regarding the violations of the structural project, they were caused due to the lack of knowledge of the developers about the concepts of software architecture, specifically in the correct application of the Spring MVC framework and dependencies of the Util module.Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES)Universidade Federal de LavrasPrograma de Pós-graduação em Ciência da ComputaçãoUFLAbrasilDepartamento de Ciência da ComputaçãoEngenharia de SoftwareArquitetura de softwareArquitetura de microsserviçosConformidade arquiteturalSoftware architectureMicroservice architectureArchitecture conformanceUma abordagem de conformidade arquitetural para arquitetura de microsserviçosAn architectural conformance approach to microservice architectureinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisVillela, Ricardo Terra Nunes BuenoCirilo, ElderDurelli, Rafael Serapilhahttp://lattes.cnpq.br/2284224784688900Araujo, Elena Augustainfo:eu-repo/semantics/openAccessporreponame:Repositório Institucional da UFLAinstname:Universidade Federal de Lavras (UFLA)instacron:UFLAORIGINALDISSERTAÇÃO_Uma abordagem de conformidade arquiterural para arquitetura de microservicos.pdfDISSERTAÇÃO_Uma abordagem de conformidade arquiterural para arquitetura de microservicos.pdfapplication/pdf2006000https://repositorio.ufla.br/bitstreams/1963dc6a-6c9b-46a9-a0b4-80cbf0f1a7c4/download2b559d066b2b84cb7076df106ec39b6bMD51trueAnonymousREADLICENSElicense.txtlicense.txttext/plain; charset=utf-8953https://repositorio.ufla.br/bitstreams/8a280eef-0182-426a-b7da-14b98bc43850/download760884c1e72224de569e74f79eb87ce3MD52falseAnonymousREADTEXTDISSERTAÇÃO_Uma abordagem de conformidade arquiterural para arquitetura de microservicos.pdf.txtDISSERTAÇÃO_Uma abordagem de conformidade arquiterural para arquitetura de microservicos.pdf.txtExtracted texttext/plain103648https://repositorio.ufla.br/bitstreams/97b5638d-68b7-4670-84ca-1dda19cedcc3/download0cd682ccbb1f9c1f1eb67e777e8f1fa2MD53falseAnonymousREADTHUMBNAILDISSERTAÇÃO_Uma abordagem de conformidade arquiterural para arquitetura de microservicos.pdf.jpgDISSERTAÇÃO_Uma abordagem de conformidade arquiterural para arquitetura de microservicos.pdf.jpgGenerated Thumbnailimage/jpeg3201https://repositorio.ufla.br/bitstreams/8adf946f-7f88-4e4d-9cbf-c4818aeb92cc/download1d4fb215affdca20742b892c3adec73bMD54falseAnonymousREAD1/379662025-08-06 11:05:52.087open.accessoai:repositorio.ufla.br:1/37966https://repositorio.ufla.brRepositório InstitucionalPUBhttps://repositorio.ufla.br/server/oai/requestnivaldo@ufla.br || repositorio.biblioteca@ufla.bropendoar:2025-08-06T14:05:52Repositório Institucional da UFLA - Universidade Federal de Lavras (UFLA)falseREVDTEFSQcOHw4NPIERFIERJU1RSSUJVScOHw4NPIE7Dg08tRVhDTFVTSVZBCk8gcmVmZXJpZG8gYXV0b3I6CmEpIERlY2xhcmEgcXVlIG8gZG9jdW1lbnRvIGVudHJlZ3VlIMOpIHNldSB0cmFiYWxobyBvcmlnaW5hbCwgZSBxdWUKZGV0w6ltIG8gZGlyZWl0byBkZSBjb25jZWRlciBvcyBkaXJlaXRvcyBjb250aWRvcyBuZXN0YSBsaWNlbsOnYS4KRGVjbGFyYSB0YW1iw6ltIHF1ZSBhIGVudHJlZ2EgZG8gZG9jdW1lbnRvIG7Do28gaW5mcmluZ2UsIHRhbnRvIHF1YW50bwpsaGUgw6kgcG9zc8OtdmVsIHNhYmVyLCBvcyBkaXJlaXRvcyBkZSBxdWFscXVlciBvdXRyYSBwZXNzb2Egb3UKZW50aWRhZGUuCmIpIFNlIG8gZG9jdW1lbnRvIGVudHJlZ3VlIGNvbnTDqW0gbWF0ZXJpYWwgZG8gcXVhbCBuw6NvIGRldMOpbSBvcwpkaXJlaXRvcyBkZSBhdXRvciwgZGVjbGFyYSBxdWUgb2J0ZXZlIGF1dG9yaXphw6fDo28gZG8gZGV0ZW50b3IgZG9zCmRpcmVpdG9zIGRlIGF1dG9yIHBhcmEgY29uY2VkZXIgw6AgVW5pdmVyc2lkYWRlIEZlZGVyYWwgZGUgTGF2cmFzIG9zCmRpcmVpdG9zIHJlcXVlcmlkb3MgcG9yIGVzdGEgbGljZW7Dp2EsIGUgcXVlIGVzc2UgbWF0ZXJpYWwgY3Vqb3MKZGlyZWl0b3Mgc8OjbyBkZSB0ZXJjZWlyb3MgZXN0w6EgY2xhcmFtZW50ZSBpZGVudGlmaWNhZG8gZSByZWNvbmhlY2lkbwpubyB0ZXh0byBvdSBjb250ZcO6ZG8gZG8gZG9jdW1lbnRvIGVudHJlZ3VlLiBTZSBvIGRvY3VtZW50byBlbnRyZWd1ZSDDqQpiYXNlYWRvIGVtIHRyYWJhbGhvIGZpbmFuY2lhZG8gb3UgYXBvaWFkbyBwb3Igb3V0cmEgaW5zdGl0dWnDp8OjbyBxdWUKbsOjbyBhIFVuaXZlcnNpZGFkZSBGZWRlcmFsIGRlIExhdnJhcywgZGVjbGFyYSBxdWUgY3VtcHJpdSBxdWFpc3F1ZXIKb2JyaWdhw6fDtWVzIGV4aWdpZGFzIHBlbG8gcmVzcGVjdGl2byBjb250cmF0byBvdSBhY29yZG8uCgo=
dc.title.pt_BR.fl_str_mv Uma abordagem de conformidade arquitetural para arquitetura de microsserviços
dc.title.alternative.pt_BR.fl_str_mv An architectural conformance approach to microservice architecture
title Uma abordagem de conformidade arquitetural para arquitetura de microsserviços
spellingShingle Uma abordagem de conformidade arquitetural para arquitetura de microsserviços
Araujo, Elena Augusta
Engenharia de Software
Arquitetura de software
Arquitetura de microsserviços
Conformidade arquitetural
Software architecture
Microservice architecture
Architecture conformance
title_short Uma abordagem de conformidade arquitetural para arquitetura de microsserviços
title_full Uma abordagem de conformidade arquitetural para arquitetura de microsserviços
title_fullStr Uma abordagem de conformidade arquitetural para arquitetura de microsserviços
title_full_unstemmed Uma abordagem de conformidade arquitetural para arquitetura de microsserviços
title_sort Uma abordagem de conformidade arquitetural para arquitetura de microsserviços
author Araujo, Elena Augusta
author_facet Araujo, Elena Augusta
author_role author
dc.contributor.advisor1.fl_str_mv Villela, Ricardo Terra Nunes Bueno
dc.contributor.referee1.fl_str_mv Cirilo, Elder
dc.contributor.referee2.fl_str_mv Durelli, Rafael Serapilha
dc.contributor.authorLattes.fl_str_mv http://lattes.cnpq.br/2284224784688900
dc.contributor.author.fl_str_mv Araujo, Elena Augusta
contributor_str_mv Villela, Ricardo Terra Nunes Bueno
Cirilo, Elder
Durelli, Rafael Serapilha
dc.subject.cnpq.fl_str_mv Engenharia de Software
topic Engenharia de Software
Arquitetura de software
Arquitetura de microsserviços
Conformidade arquitetural
Software architecture
Microservice architecture
Architecture conformance
dc.subject.por.fl_str_mv Arquitetura de software
Arquitetura de microsserviços
Conformidade arquitetural
Software architecture
Microservice architecture
Architecture conformance
description Arquitetura de software é definida como um conjunto de decisões de projeto que possuem impacto na construção e evolução de sistemas de software. Essas decisões incluem como tais sistemas são estruturados em componentes e restrições de como esses componentes devem interagir. A arquitetura de microsserviços compreende a um estilo arquitetural que enfatiza a composição de um conjunto de microsserviços independentes que executam funcionalidades bem definidas, permitindo que cada microsserviço possa ser desenvolvido em diferentes linguagens de programação, possa utilizar diferentes frameworks e possa ser gerenciado por diferentes tecnologias de banco de dados. No entanto, tal heterogeneidade implica na dificuldade de verificação da comunicação entre os microsserviços e de cada um dos seus projetos arquiteturais, uma vez que, na prática, desvios em relação à arquitetura planejada podem ocorrer, tornando a base de código incompatível com a arquitetura planejada. Isso ocorre pois, durante o desenvolvimento e evolução de sistemas de software, anomalias são constantemente introduzidas no código-fonte. Essas anomalias consistem nas decisões que não são compatíveis com o modelo arquitetural especificado, tornando a arquitetura concreta inconsistente com a arquitetura planejada, ocasionando fenômenos conhecidos como violação e erosão arquitetural. Diante desse cenário, esta dissertação de mestrado é centrada na proposta de uma abordagem de conformidade arquitetural específica para a arquitetura de microsserviços. Para isso, (i) definiu-se uma linguagem de restrição arquitetural, denominada DCL+ ─ adaptada da linguagem DCL (Dependency Constraint Language) a fim de restringir ─ o espectro das comunicações e dependências aceitáveis entre os microsserviços e de cada um de seus projetos arquiteturais; (ii) propôs-se uma solução multiplataforma que permita restringir a comunicação entre os microsserviços e verificar os projetos arquiteturais de cada um deles; (iii) projetou-se DCL+check, uma ferramenta que implementa a solução proposta; (iv) avaliou-se a solução proposta em uma aplicação real de médio porte composta por onze microsserviços, desenvolvidos em duas linguagens distintas (JavaScript e Java), em que foram detectadas 16 violações de comunicação e 171 violações do projeto estrutural. As violações de comunicação, em geral, ocorreram devido à falta de conhecimento dos desenvolvedores sobre as restrições de comunicação entre os módulos do sistema orquestrador e demais microsserviços, bem como evolução de dois microsserviços. No que compete às violações do projeto estrutural, às violações foram ocasionadas devido à falta de conhecimento por parte dos desenvolvedores sobre os conceitos de arquitetura de software, especificamente na correta aplicação do framework Spring MVC e dependências do módulo Util.
publishDate 2019
dc.date.submitted.none.fl_str_mv 2019-05-31
dc.date.accessioned.fl_str_mv 2019-12-02T20:56:13Z
dc.date.available.fl_str_mv 2019-12-02T20:56:13Z
dc.date.issued.fl_str_mv 2019-12-02
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 ARAUJO, E. A. Uma abordagem de conformidade arquitetural para arquitetura de microsserviços. 2019. 117 p. Dissertação (Mestrado em Ciência da Computação)–Universidade Federal de Lavras, Lavras, 2019.
dc.identifier.uri.fl_str_mv https://repositorio.ufla.br/handle/1/56425966
identifier_str_mv ARAUJO, E. A. Uma abordagem de conformidade arquitetural para arquitetura de microsserviços. 2019. 117 p. Dissertação (Mestrado em Ciência da Computação)–Universidade Federal de Lavras, Lavras, 2019.
url https://repositorio.ufla.br/handle/1/56425966
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.none.fl_str_mv Universidade Federal de Lavras
dc.publisher.program.fl_str_mv Programa de Pós-graduação em Ciência da Computação
dc.publisher.initials.fl_str_mv UFLA
dc.publisher.country.fl_str_mv brasil
dc.publisher.department.fl_str_mv Departamento de Ciência da Computação
publisher.none.fl_str_mv Universidade Federal de Lavras
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFLA
instname:Universidade Federal de Lavras (UFLA)
instacron:UFLA
instname_str Universidade Federal de Lavras (UFLA)
instacron_str UFLA
institution UFLA
reponame_str Repositório Institucional da UFLA
collection Repositório Institucional da UFLA
bitstream.url.fl_str_mv https://repositorio.ufla.br/bitstreams/1963dc6a-6c9b-46a9-a0b4-80cbf0f1a7c4/download
https://repositorio.ufla.br/bitstreams/8a280eef-0182-426a-b7da-14b98bc43850/download
https://repositorio.ufla.br/bitstreams/97b5638d-68b7-4670-84ca-1dda19cedcc3/download
https://repositorio.ufla.br/bitstreams/8adf946f-7f88-4e4d-9cbf-c4818aeb92cc/download
bitstream.checksum.fl_str_mv 2b559d066b2b84cb7076df106ec39b6b
760884c1e72224de569e74f79eb87ce3
0cd682ccbb1f9c1f1eb67e777e8f1fa2
1d4fb215affdca20742b892c3adec73b
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFLA - Universidade Federal de Lavras (UFLA)
repository.mail.fl_str_mv nivaldo@ufla.br || repositorio.biblioteca@ufla.br
_version_ 1854947826893586432