Journal of Computer Languages · 2023 · 11 citations · 8 references
ComputingComputer ScienceDatabasesSoftware EngineeringSystems ArchitectureApplication RefactoringComponent-based Software EngineeringSoftware ArchitectureSoftware DesignSoftware MaintenanceSoftware RefactoringApi RefactoringMicroservices ApisMicroservices DeploymentMicroservices RefactoringMonolithic RefactoringObject Relational MappingObject-oriented RefactoringSource Code Evolution
In the last few years we have been seeing a drastic change in the way software is developed. Large-scale software projects are being assembled by a flexible composition of many (small) components possibly written in different programming languages and deployed anywhere in the cloud — the so-called microservices-based applications. The dramatic growth in popularity of microservices-based applications has pushed several companies to apply major refactorings to their software systems. However, this is a challenging task that may take several months or even years. We propose a methodology to automatically evolve monolithic web applications that use object-relational mapping into microservices-based ones. Our methodology receives the source code and a microservices proposal and refactors the original code to create each microservice. Our methodology creates an API for each method call to classes that are in other services. The database entities are also refactored to be included in the corresponding service. The evaluation performed in 120 applications shows that our tool can successfully refactor about 72% of them. The execution of the unit tests in both versions of the applications yield exactly the same results.
8
Microservices migration patterns
Armin Balalaie, Abbas Heydarnoori, Pooyan Jamshidi et al. · Software Practice and Experience · 2018 · 147 citations
Microservices: Migration of a Mission Critical System
Manuel Mazzara, Nicola Dragoni, Antonio Bucchiarone et al. · IEEE Transactions on Services Computing · 2018 · 90 citations · Full text