Uma abordagem de conformidade arquitetural para arquitetura de microsserviços
Autor(a) principal: | |
---|---|
Data de Publicação: | 2019 |
Tipo de documento: | Dissertação |
Idioma: | por |
Título da fonte: | Repositório Institucional da UFLA |
Texto Completo: | http://repositorio.ufla.br/jspui/handle/1/56425966 |
Resumo: | 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. |
id |
UFLA_0c46789942e43ca8e96ecb60f670637b |
---|---|
oai_identifier_str |
oai:localhost:1/37966 |
network_acronym_str |
UFLA |
network_name_str |
Repositório Institucional da UFLA |
repository_id_str |
|
spelling |
Uma abordagem de conformidade arquitetural para arquitetura de microsserviçosAn architectural conformance approach to microservice architectureArquitetura de softwareArquitetura de microsserviçosConformidade arquiteturalSoftware architectureMicroservice architectureArchitecture conformanceEngenharia de SoftwareSoftware 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)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.Universidade Federal de LavrasPrograma de Pós-graduação em Ciência da ComputaçãoUFLAbrasilDepartamento de Ciência da ComputaçãoVillela, Ricardo Terra Nunes BuenoCirilo, ElderDurelli, Rafael SerapilhaAraujo, Elena Augusta2019-12-02T20:56:13Z2019-12-02T20:56:13Z2019-12-022019-05-31info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfARAUJO, 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.http://repositorio.ufla.br/jspui/handle/1/56425966porinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFLAinstname:Universidade Federal de Lavras (UFLA)instacron:UFLA2023-04-13T17:16:54Zoai:localhost:1/37966Repositório InstitucionalPUBhttp://repositorio.ufla.br/oai/requestnivaldo@ufla.br || repositorio.biblioteca@ufla.bropendoar:2023-04-13T17:16:54Repositório Institucional da UFLA - Universidade Federal de Lavras (UFLA)false |
dc.title.none.fl_str_mv |
Uma abordagem de conformidade arquitetural para arquitetura de microsserviços 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 Arquitetura de software Arquitetura de microsserviços Conformidade arquitetural Software architecture Microservice architecture Architecture conformance Engenharia de Software |
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.none.fl_str_mv |
Villela, Ricardo Terra Nunes Bueno Cirilo, Elder Durelli, Rafael Serapilha |
dc.contributor.author.fl_str_mv |
Araujo, Elena Augusta |
dc.subject.por.fl_str_mv |
Arquitetura de software Arquitetura de microsserviços Conformidade arquitetural Software architecture Microservice architecture Architecture conformance Engenharia de Software |
topic |
Arquitetura de software Arquitetura de microsserviços Conformidade arquitetural Software architecture Microservice architecture Architecture conformance Engenharia de Software |
description |
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. |
publishDate |
2019 |
dc.date.none.fl_str_mv |
2019-12-02T20:56:13Z 2019-12-02T20:56:13Z 2019-12-02 2019-05-31 |
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.uri.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. http://repositorio.ufla.br/jspui/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 |
http://repositorio.ufla.br/jspui/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.format.none.fl_str_mv |
application/pdf |
dc.publisher.none.fl_str_mv |
Universidade Federal de Lavras Programa de Pós-graduação em Ciência da Computação UFLA brasil Departamento de Ciência da Computação |
publisher.none.fl_str_mv |
Universidade Federal de Lavras Programa de Pós-graduação em Ciência da Computação UFLA brasil Departamento de Ciência da Computação |
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 |
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_ |
1815439340277334016 |