Monolith Decomposition into Software Services Using Bounded Context Mapping
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Monolith applications lack agility and require extensive manual efforts for decomposing into software services, leading to increased costs and resource consumption due to tightly coupled software functions.
Innovation Solution
A computer-implemented method using a graph-based traversal algorithm to identify bounded contexts within a feature model, associating them with requirement clusters, and mapping file packages to software services, facilitated by a graphical user interface for deployment on a target platform.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If monolith applications are decomposed into software services through manual rewriting of source code, then software services can be deployed on the platform, but extensive manual efforts and domain knowledge are required, increasing deployment costs
Solution Approach 1:
The patent replaces the manual mechanical process of code rewriting with an automated system that uses static code analysis, graph-based traversal algorithms, and machine learning models to automatically identify service boundaries and generate deployment configurations, thereby reducing manual effort and deployment costs while maintaining agility
Solution Approach 2:
The system enables the monolith application to effectively decompose itself by automatically analyzing its own code structure, identifying bounded contexts through graph traversal, and generating service boundaries without requiring external manual intervention, thus reducing dependency on domain knowledge and manual efforts
2Measurement precision
If static code analysis is used to identify service boundaries in monolith applications, then software services can be identified, but extensive domain knowledge and manual efforts are still required
Solution Approach 1:
The patent performs preliminary actions by automatically generating a feature model and computing bounded contexts using graph-based traversal algorithms before the actual service identification process, preparing the necessary structural information in advance to accelerate the identification of service boundaries without requiring manual domain knowledge
Solution Approach 2:
The patent introduces a feature model as an intermediary representation that captures the structure and relationships of the monolith application. This feature model serves as a bridge between the raw code and service boundaries, enabling automated identification through graph-based algorithms without requiring direct manual analysis of the code
3Adaptability or versatility
If monolith applications contain business domains in different architectural layers, then comprehensive functionality is achieved, but unnecessary resources such as memory and processing capacity are consumed
Solution Approach 1:
The patent segments the monolith application into distinct bounded contexts by computing subgraphs from the feature model that represent independent business domains. This segmentation allows only the necessary architectural layers to be active for each specific business domain, reducing resource consumption while maintaining comprehensive functionality across different domains
Data Source
AI summary
A computer system and method for decomposing a monolith application into one or more software services is provided. In embodiments, the method includes obtaining a feature model associated with the monolith application from a source. Further, at least one bounded context present in the feature model is computed using a graph-based traversal algorithm, wherein the bounded context is associated with a bounded keyword. Further, a requirement cluster contextually relevant to the at least one bounded context is selected from one or more requirement clusters, based on similarity between the bounded keyword and at least one cluster keyword corresponding to each of the requirement clusters. Further, one or more file packages corresponding to the contextually relevant requirement cluster is identified, wherein the identified the one or more file packages correspond to at least one software service.


