Cargando…

SEMGROMI—a semantic grouping algorithm to identifying microservices using semantic similarity of user stories

Microservices is an architectural style for service-oriented distributed computing, and is being widely adopted in several domains, including autonomous vehicles, sensor networks, IoT systems, energy systems, telecommunications networks and telemedicine systems. When migrating a monolithic system to...

Descripción completa

Detalles Bibliográficos
Autores principales: Vera-Rivera, Fredy H., Puerto Cuadros, Eduard Gilberto, Perez, Boris, Astudillo, Hernán, Gaona, Carlos
Formato: Online Artículo Texto
Lenguaje:English
Publicado: PeerJ Inc. 2023
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC10280387/
https://www.ncbi.nlm.nih.gov/pubmed/37346649
http://dx.doi.org/10.7717/peerj-cs.1380
_version_ 1785060782556315648
author Vera-Rivera, Fredy H.
Puerto Cuadros, Eduard Gilberto
Perez, Boris
Astudillo, Hernán
Gaona, Carlos
author_facet Vera-Rivera, Fredy H.
Puerto Cuadros, Eduard Gilberto
Perez, Boris
Astudillo, Hernán
Gaona, Carlos
author_sort Vera-Rivera, Fredy H.
collection PubMed
description Microservices is an architectural style for service-oriented distributed computing, and is being widely adopted in several domains, including autonomous vehicles, sensor networks, IoT systems, energy systems, telecommunications networks and telemedicine systems. When migrating a monolithic system to a microservices architecture, one of the key design problems is the “microservice granularity definition”, i.e., deciding how many microservices are needed and allocating computations among them. This article describes a semantic grouping algorithm (SEMGROMI), a technique that takes user stories, a well-known functional requirements specification technique, and identifies number and scope of candidate microservices using semantic similarity of the user stories’ textual description, while optimizing for low coupling, high cohesion, and high semantic similarity. Using the technique in four validation projects (two state-of-the-art projects and two industry projects), the proposed technique was compared with domain-driven design (DDD), the most frequent method used to identify microservices, and with a genetic algorithm previously proposed as part of the Microservices Backlog model. We found that SEMGROMI yields decompositions of user stories to microservices with high cohesion (from the semantic point of view) and low coupling, the complexity was reduced, also the communication between microservices and the estimated development time was decreased. Therefore, SEMGROMI is a viable option for the design and evaluation of microservices-based applications. The proposed semantic similarity-based technique (SEMGROMI) is part of the Microservices Backlog model, which allows to evaluate candidate microservices graphically and based on metrics to make design-time decisions about the architecture of the microservices-based application.
format Online
Article
Text
id pubmed-10280387
institution National Center for Biotechnology Information
language English
publishDate 2023
publisher PeerJ Inc.
record_format MEDLINE/PubMed
spelling pubmed-102803872023-06-21 SEMGROMI—a semantic grouping algorithm to identifying microservices using semantic similarity of user stories Vera-Rivera, Fredy H. Puerto Cuadros, Eduard Gilberto Perez, Boris Astudillo, Hernán Gaona, Carlos PeerJ Comput Sci Algorithms and Analysis of Algorithms Microservices is an architectural style for service-oriented distributed computing, and is being widely adopted in several domains, including autonomous vehicles, sensor networks, IoT systems, energy systems, telecommunications networks and telemedicine systems. When migrating a monolithic system to a microservices architecture, one of the key design problems is the “microservice granularity definition”, i.e., deciding how many microservices are needed and allocating computations among them. This article describes a semantic grouping algorithm (SEMGROMI), a technique that takes user stories, a well-known functional requirements specification technique, and identifies number and scope of candidate microservices using semantic similarity of the user stories’ textual description, while optimizing for low coupling, high cohesion, and high semantic similarity. Using the technique in four validation projects (two state-of-the-art projects and two industry projects), the proposed technique was compared with domain-driven design (DDD), the most frequent method used to identify microservices, and with a genetic algorithm previously proposed as part of the Microservices Backlog model. We found that SEMGROMI yields decompositions of user stories to microservices with high cohesion (from the semantic point of view) and low coupling, the complexity was reduced, also the communication between microservices and the estimated development time was decreased. Therefore, SEMGROMI is a viable option for the design and evaluation of microservices-based applications. The proposed semantic similarity-based technique (SEMGROMI) is part of the Microservices Backlog model, which allows to evaluate candidate microservices graphically and based on metrics to make design-time decisions about the architecture of the microservices-based application. PeerJ Inc. 2023-05-12 /pmc/articles/PMC10280387/ /pubmed/37346649 http://dx.doi.org/10.7717/peerj-cs.1380 Text en © 2023 Vera-Rivera et al. https://creativecommons.org/licenses/by/4.0/This is an open access article distributed under the terms of the Creative Commons Attribution License (https://creativecommons.org/licenses/by/4.0/) , which permits unrestricted use, distribution, reproduction and adaptation in any medium and for any purpose provided that it is properly attributed. For attribution, the original author(s), title, publication source (PeerJ Computer Science) and either DOI or URL of the article must be cited.
spellingShingle Algorithms and Analysis of Algorithms
Vera-Rivera, Fredy H.
Puerto Cuadros, Eduard Gilberto
Perez, Boris
Astudillo, Hernán
Gaona, Carlos
SEMGROMI—a semantic grouping algorithm to identifying microservices using semantic similarity of user stories
title SEMGROMI—a semantic grouping algorithm to identifying microservices using semantic similarity of user stories
title_full SEMGROMI—a semantic grouping algorithm to identifying microservices using semantic similarity of user stories
title_fullStr SEMGROMI—a semantic grouping algorithm to identifying microservices using semantic similarity of user stories
title_full_unstemmed SEMGROMI—a semantic grouping algorithm to identifying microservices using semantic similarity of user stories
title_short SEMGROMI—a semantic grouping algorithm to identifying microservices using semantic similarity of user stories
title_sort semgromi—a semantic grouping algorithm to identifying microservices using semantic similarity of user stories
topic Algorithms and Analysis of Algorithms
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC10280387/
https://www.ncbi.nlm.nih.gov/pubmed/37346649
http://dx.doi.org/10.7717/peerj-cs.1380
work_keys_str_mv AT verariverafredyh semgromiasemanticgroupingalgorithmtoidentifyingmicroservicesusingsemanticsimilarityofuserstories
AT puertocuadroseduardgilberto semgromiasemanticgroupingalgorithmtoidentifyingmicroservicesusingsemanticsimilarityofuserstories
AT perezboris semgromiasemanticgroupingalgorithmtoidentifyingmicroservicesusingsemanticsimilarityofuserstories
AT astudillohernan semgromiasemanticgroupingalgorithmtoidentifyingmicroservicesusingsemanticsimilarityofuserstories
AT gaonacarlos semgromiasemanticgroupingalgorithmtoidentifyingmicroservicesusingsemanticsimilarityofuserstories