CFP last date
20 January 2025
Reseach Article

Mind Overflow: A Process Proposal for Decomposing Monolithic Applications in Microservices

by Tcharles Pereira Da Silva, Kleinner Farias
International Journal of Computer Applications
Foundation of Computer Science (FCS), NY, USA
Volume 176 - Number 18
Year of Publication: 2020
Authors: Tcharles Pereira Da Silva, Kleinner Farias
10.5120/ijca2020920125

Tcharles Pereira Da Silva, Kleinner Farias . Mind Overflow: A Process Proposal for Decomposing Monolithic Applications in Microservices. International Journal of Computer Applications. 176, 18 ( Apr 2020), 1-9. DOI=10.5120/ijca2020920125

@article{ 10.5120/ijca2020920125,
author = { Tcharles Pereira Da Silva, Kleinner Farias },
title = { Mind Overflow: A Process Proposal for Decomposing Monolithic Applications in Microservices },
journal = { International Journal of Computer Applications },
issue_date = { Apr 2020 },
volume = { 176 },
number = { 18 },
month = { Apr },
year = { 2020 },
issn = { 0975-8887 },
pages = { 1-9 },
numpages = {9},
url = { https://ijcaonline.org/archives/volume176/number18/31298-2020920125/ },
doi = { 10.5120/ijca2020920125 },
publisher = {Foundation of Computer Science (FCS), NY, USA},
address = {New York, USA}
}
%0 Journal Article
%1 2024-02-07T00:42:51.169682+05:30
%A Tcharles Pereira Da Silva
%A Kleinner Farias
%T Mind Overflow: A Process Proposal for Decomposing Monolithic Applications in Microservices
%J International Journal of Computer Applications
%@ 0975-8887
%V 176
%N 18
%P 1-9
%D 2020
%I Foundation of Computer Science (FCS), NY, USA
Abstract

Constant changes made by different developer profiles turn legacy applications into monolithic ones. Although it is a known issue, little has been done to mitigate it. This paper proposes Mind Overflow, a process to guide the decomposition of a monolithic application to a microservice architecture. With Mind Overflow, researchers and developers benefit from the use of consolidated design patterns, architectures, and technologies through a comprehensive decomposition workflow. The case study showed promising results, indicating that Mind Overflow is feasible to break down monolithic to a microservice-based architecture, including reducing cyclomatic complexity and producing highly cohesive microservices.

References
  1. Keith Bennett. Legacy systems: Coping with success. IEEE software, 12(1):19–23, 1995.
  2. Keith H Bennett and V´aclav T Rajlich. Software maintenance and evolution: a roadmap. In Proceedings of the Conference on the Future of Software Engineering, pages 73–87, 2000.
  3. Vinicius Bischoff, Kleinner Farias, Lucian Jos´e Gonc¸ales, and Jorge Luis Vict´oria Barbosa. Integration of feature models: A systematic mapping study. Information and Software Technology, 105:209–225, 2019.
  4. Alberto Brandolini. Introducing event storming. Available at: goo.gl/GMzzDv [Last accessed: 8 July 2017], 2013.
  5. Leandro Ferreira D’Avila, Kleinner Farias, and Jorge Luis Victria Barbosa. Effects of contextual information on maintenance effort: A controlled experiment. Journal of Systems and Software, 159, 2020.
  6. Daniel Escobar, Diana C´ardenas, Rolando Amarillo, Eddie Castro, Kelly Garc´es, Carlos Parra, and Rubby Casallas. Towards the understanding and evolution of monolithic applications as microservices. In XLII Latin American Computing Conference (CLEI), pages 1–11. IEEE, 2016.
  7. Eric Evans. Domain-driven design: tackling complexity in the heart of software. Addison-Wesley Professional, 2004.
  8. Kleinner Farias. Empirical evaluation of effort on composing design models. In 2010 ACM/IEEE 32nd International Conference on Software Engineering, volume 2, pages 405–408. IEEE, 2010.
  9. Kleinner Farias, Alessandro Garcia, and Carlos Lucena. Effects of stability on model composition effort: an exploratory study. Software&Systems Modeling, 13(4):1473–1494, 2014.
  10. Kleinner Farias, Alessandro Garcia, Jon Whittle, and Carlos Lucena. Analyzing the effort of composing design models of large-scale software in industrial case studies. In International Conference on Model Driven Engineering Languages and Systems, pages 639–655. Springer, 2013.
  11. Martin Fowler and James Lewis. Microservices. Viittattu, 28:2015, 2014.
  12. Lucian Jos´e Gonc¸ales, Kleinner Farias, Toacy Cavalcante De Oliveira, and Murilo Scholl. Comparison of software design models: An extended systematic mapping study. ACM Computing Surveys (CSUR), 52(3):1–41, 2019.
  13. Michael Gysel, Lukas K¨olbener, Wolfgang Giersche, and Olaf Zimmermann. Service cutter: A systematic approach to service decomposition. In European Conference on Service- Oriented and Cloud Computing, pages 185–200. Springer, 2016.
  14. Diane Kelly. A study of design characteristics in evolving software using stability as a criterion. IEEE Transactions on Software Engineering, 32(5):315–329, 2006.
  15. Holger Knoche and Wilhelm Hasselbring. Using microservices for legacy software modernization. IEEE Software, 35(3):44–49, 2018.
  16. Alessandra Levcovitz, Ricardo Terra, and Marco Tulio Valente. Towards a technique for extracting microservices from monolithic enterprise systems. arXiv preprint arXiv:1605.03175, 2016.
  17. Edson M Lucas, Toacy C Oliveira, Kleinner Farias, and Paulo SC Alencar. Collabrdl: A language to coordinate collaborative reuse. Journal of Systems and Software, 131:505– 527, 2017.
  18. Robert C Martin. Clean code: a handbook of agile software craftsmanship. Pearson Education, 2009.
  19. Robert C Martin. Clean architecture: a craftsman’s guide to software structure and design. Prentice Hall Press, 2017.
  20. Anderson Oliveira, Vinicius Bischoff, Lucian Jos´e Gonc¸ales, Kleinner Farias, and Matheus Segalotto. Brcode: An interpretive model-driven engineering approach for enterprise applications. Computers in Industry, 96:86–97, 2018.
  21. Diego Pereira da Rocha. Mon´olise: Uma t´ecnica para decomposic¸ ˜ao de aplicac¸ ˜oes monol´iticas em microsservic¸os. Master’s thesis, 2018.
  22. Vaughn Vernon. Implementing domain-driven design. Addison-Wesley, 2013.
Index Terms

Computer Science
Information Sciences

Keywords

Decomposition process software architecture