Litcius/Paper detail

Mono2Micro: an AI-based toolchain for evolving monolithic enterprise applications to a microservice architecture

Anup K. Kalia, Jin Xiao, Lin Chen, Saurabh Sinha, John Rofrano, Maja Vuković, Debasish Banerjee

202038 citationsDOI

Abstract

Mono2Micro is an AI-based toolchain that provides recommendations for decomposing legacy web applications into microservice partitions. Mono2Micro consists of a set of tools that collect static and runtime information from a monolithic application and process the information using an AI-based technique to generate recommendations for partitioning the application classes. Each partition represents a candidate microservice or a grouping of classes with similar business functionalities. Mono2Micro takes a temporo-spatial clustering approach to compute meaningful and explainable partitions. It generates two types of partition recommendations. First, it computes business-logic-seams-based partitions that represent a desired encapsulation of business functionalities. However, such a recommendation may cut across data dependencies between classes, accommodating which could require significant application updates. To address this, Mono2Micro computes natural-seams-based partitions, which respect data dependencies. We describe the set of tools that comprise Mono2Micro and illustrate them using a well-known open-source JEE application.

Topics & Concepts

ToolchainComputer sciencePartition (number theory)Cluster analysisBusiness logicCall graphSet (abstract data type)Data miningProgramming languageSoftware engineeringTheoretical computer scienceSoftwareArtificial intelligenceCombinatoricsMathematicsSoftware System Performance and ReliabilitySoftware Engineering ResearchAdvanced Software Engineering Methodologies