Monolithic Application Decomposition via Complexity Analysis
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The conversion of monolithic applications into microservices is challenging due to tight integration of components, lack of standardization, and absence of reference architectures, leading to a manual, time-consuming, and difficult process with unclear boundaries and varying numbers of microservices.
Innovation Solution
A method and system that identify a subset of functionalities through cost-benefit analysis, determine the number of microservices based on functionality priority and complexity scores, and generate groups of methods based on dependency and occurrence analysis to decompose the monolithic application into microservices.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If manual conversion process is used to decompose monolithic application into microservices, then flexibility in decision-making is improved, but time consumption and difficulty increase
Solution Approach 1:
The system performs automated analysis of the monolithic application's codebase, dependencies, and functionality to self-determine the optimal decomposition strategy. The processor automatically identifies microservice boundaries, generates decomposition plans, and suggests migration paths without requiring manual intervention at each decision point, thereby reducing time consumption while maintaining adaptability through configurable parameters.
Solution Approach 2:
The manual mechanical process of code analysis and decomposition planning is replaced with an automated computational system. The processor executes algorithms to analyze application structure, identify dependencies, and generate decomposition recommendations, substituting human manual effort with automated mechanical computation to reduce time consumption while preserving decision flexibility through configurable analysis parameters.
2Stability of the object's composition
If components are tightly integrated in monolithic application, then system coherence is improved, but ease of decomposition and boundary definition worsen
Solution Approach 1:
The system automatically segments the monolithic application into distinct microservices by analyzing code dependencies, functionality boundaries, and coupling relationships. The processor identifies natural decomposition points where tight integration exists but functional boundaries can be cleanly separated, enabling systematic decomposition while preserving necessary internal coherence within each microservice.
Solution Approach 2:
The system introduces an intermediary analysis layer that examines the tightly integrated components and identifies appropriate boundary definitions. This intermediary process evaluates dependency graphs, interface definitions, and data flow patterns to determine where decomposition should occur, mediating between the need for system coherence and the requirement for ease of decomposition.
3Adaptability or versatility
If no reference architecture is available for conversion, then customization to specific application needs is improved, but process standardization and guidance worsen
Solution Approach 1:
The system uses configurable parameters and analysis settings that can be adjusted based on specific application requirements, domain characteristics, and organizational preferences. The processor accepts input parameters regarding decomposition criteria, microservice size preferences, and migration constraints, allowing customization while maintaining a standardized analytical framework and process flow.
Data Source
AI summary
The present disclosure relates to system(s) and method(s) for decomposing a monolithic application into one or more micro services. The method identifies a subset of functionalities, from a set of functionalities associated with the monolithic application. The method further determines a number of micro services based on a functionality priority, a functionality complexity score, and a functionality predefined complexity score associated with each functionality. Further, the method generates one or more groups of methods from a plurality of methods associated with the subset of functionalities. Further, the method decomposes the monolithic application into the one or more micro services based on the one or more groups of methods, and the number of micro services.


