Uma abordagem de conformidade arquitetural para arquitetura de microsserviços

Detalhes bibliográficos
Autor(a) principal: Araujo, Elena Augusta
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