Monolithic Application Decomposition via Orthogonal Clustering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for decomposing monolithic applications into microservices often fail to consider architectural patterns and relationships between classes, leading to inaccurate identification of microservices and poor maintainability.
Innovation Solution
The method employs orthogonal clustering, specifically horizontal and vertical clustering, to decompose monolithic applications into functional units, using static code and runtime traces to identify classes and merge them into microservices based on functionality types, ensuring maintainability and complexity considerations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If monolithic applications are decomposed into microservices, then maintainability and adaptability improve, but device complexity and difficulty of decomposition increase
Solution Approach 1:
The patent applies segmentation by dividing the monolithic application into multiple microservices based on orthogonal clustering of classes. The system identifies clusters of classes that can be separated into independent services, thereby improving adaptability while managing decomposition complexity through systematic analysis of class relationships and dependencies.
Solution Approach 2:
The patent introduces orthogonal clustering as a two-dimensional approach to decomposition. Instead of single-criterion clustering, it uses both horizontal clustering (based on functionality) and vertical clustering (based on layering), creating a multi-dimensional view that resolves decomposition complexity while enhancing adaptability.
2Measurement precision
If existing decomposition methods are used, then decomposition speed is maintained, but measurement precision and manufacturing precision of microservice boundaries deteriorate
Solution Approach 1:
The patent performs preliminary analysis by computing horizontal and vertical clusters before final microservice boundary determination. This preliminary clustering organizes classes into candidate groups, improving boundary identification accuracy while reducing the time required for final decomposition decisions by pre-processing the complexity of class relationships.
Solution Approach 2:
The system uses feedback loops to refine microservice boundary identification. By analyzing class dependencies, call graphs, and cluster intersections, the system iteratively improves boundary accuracy. This feedback mechanism ensures precise identification while managing time loss through automated refinement processes.
3Manufacturing precision
If orthogonal clustering is performed, then manufacturing precision of functional units improves, but device complexity and computational overhead increase
Solution Approach 1:
The patent segments the clustering computation into two independent dimensions: horizontal clustering based on functionality and vertical clustering based on layering. This segmentation improves functional unit identification accuracy by considering multiple aspects separately, while managing computational complexity by avoiding the need for complex multi-dimensional clustering algorithms.
Solution Approach 2:
The orthogonal clustering framework serves multiple functions: it identifies functional boundaries, determines service boundaries, and analyzes class relationships. This multi-functionality improves manufacturing precision of functional units while reducing device complexity by using a unified clustering approach for multiple analysis purposes.
Data Source
AI summary
A method, system, and computer program product for decomposing monolithic applications to form microservices are provided. The method identifies a set of classes within a monolithic application. A set of horizontal clusters are generated by performing horizontal clustering to the set of classes to decompose the classes based on a first functionality type. The method generates a set of vertical clusters by performing vertical clustering to the set of classes to decompose the classes based on a second functionality type. A subset of classes occurring in a common horizontal cluster and vertical cluster are identified as a functional unit. The method merges one or more functional units to form a microservice.


