Monolithic Application Decomposition via Function Call Clustering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Decomposing a monolithic application into microservices is challenging due to the need to understand function details and function call contexts, often resulting in unnecessary decomposition or overlooked functions, which can degrade application performance due to inter-service communication.
Innovation Solution
A computer-implemented method that groups classes and methods of a monolithic application into clusters, determines function call frequencies, and presents users with processing options to create, merge, duplicate, or remain with clusters based on these frequencies, allowing for informed decision-making to optimize microservice design.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If manual decomposition of monolithic application into microservices is performed, then developer understanding and control is improved, but decomposition accuracy deteriorates due to unnecessary decomposition or overlooked functions
Solution Approach 1:
The patent replaces manual mechanical analysis with automated static analysis technology. The system automatically analyzes source code, generates call graphs, and identifies function relationships without manual intervention, thereby maintaining developer control while significantly improving decomposition accuracy through computer-aided analysis.
Solution Approach 2:
The patent introduces an intermediary decomposition recommendation system that acts as a mediator between manual developer input and final microservice architecture. This system processes developer requirements, performs automated analysis, and generates recommended decomposition schemes, combining human understanding with computational precision.
2Adaptability or versatility
If functions are decomposed into multiple microservices, then modularity and independent deployability are improved, but application performance deteriorates due to inter-service communication overhead
Solution Approach 1:
The patent incorporates feedback mechanisms by analyzing function call frequencies and communication patterns to evaluate decomposition quality. The system provides feedback on potential performance impacts and allows iterative refinement of decomposition schemes, balancing modularity benefits against communication overhead through data-driven adjustments.
Solution Approach 2:
The patent changes the parameter of decomposition granularity based on function call frequency analysis. By dynamically adjusting which functions should be separated into independent microservices versus kept together, the system optimizes the balance between modularity and performance, creating a data-driven decomposition strategy.
3Manufacturing precision
If comprehensive function call context analysis is performed, then decomposition quality is improved, but analysis complexity and time consumption increase
Solution Approach 1:
The patent extracts and focuses analysis on critical elements such as function call graphs, communication patterns, and dependency relationships. By isolating and analyzing only the most important aspects of the codebase rather than performing exhaustive analysis of all code, the system achieves high decomposition quality while managing analysis complexity through targeted extraction of key information.
Data Source
AI summary
A method transforms a monolithic application into microservices. The method groups application classes and methods into clusters, each corresponding to a respective microservice. The method determines a number of function calls to and from each clustered class and method. The method presents processing options for at least the one of the clustered classes and the methods that has a maximum value for the number of functions calls. The options include: create a new cluster with the at least of the classes and the methods; merge the at least one of the classes and the methods into a different cluster; duplicate the at least one of the classes and the methods into clusters having caller or callee classes or methods; and remain the at least one of the classes and the methods. The method processes the at least one of the classes and the methods based on the user selected option.


