Microservices Design via Calling-Context Tree Analysis
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Managing microservices in cloud-based information processing systems is challenging due to the complexity of monolithic applications, which lack modularity, scalability, and resiliency, making it difficult to innovate, manage, and scale efficiently.
Innovation Solution
A method that identifies functions within an application to create microservices by analyzing software code, generating a calling-context tree, and modifying the design based on user interface visualizations, allowing for the decomposition of monolithic applications into independent and scalable microservices.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If monolithic applications are used, then implementation is simpler, but scalability and resiliency deteriorate
Solution Approach 1:
The patent applies segmentation by dividing monolithic applications into smaller, independent microservices. Each microservice encapsulates specific business functionality and can be developed, deployed, and scaled independently. This segmentation improves resiliency because failures in one microservice do not propagate to the entire system, while maintaining ease of implementation through automated service generation and orchestration.
2Adaptability or versatility
If microservices are manually designed, then customization is better, but time consumption increases
Solution Approach 1:
The patent applies preliminary action by automatically generating microservice designs based on analysis of existing application code and runtime behavior. The system performs code parsing, function identification, and service boundary determination before manual intervention is needed. This preliminary automated design provides a solid foundation that can be quickly customized, significantly reducing design time while maintaining adaptability through user interface modifications.
Solution Approach 2:
The patent implements feedback mechanisms by monitoring runtime behavior of applications and using this information to refine microservice designs. The system observes actual function calls, data flows, and performance metrics, then uses this feedback to optimize service boundaries and relationships. This continuous feedback loop enables rapid iteration and customization without extensive manual design time.
3Productivity
If application code is not analyzed, then processing is faster, but service decomposition accuracy decreases
Solution Approach 1:
The patent applies partial action by analyzing only the critical portions of application code necessary for microservice decomposition. Rather than performing exhaustive analysis of entire codebases, the system focuses on identifying function definitions, dependencies, and data flows that are essential for determining service boundaries. This selective analysis maintains high decomposition accuracy while preserving processing speed.
Data Source
AI summary
A method includes identifying an application to be converted into a set of microservices, analyzing software code of the application to identify a plurality of functions as candidates for combination with one another into the set of microservices, monitoring a running instance of the application to generate a calling-context tree identifying interactions among the plurality of functions, and determining a recommended design for the set of microservices based at least in part on the identified interactions among the plurality of functions. The method also includes modifying the recommended design for the set of microservices responsive to activation of user interface features of a graphical user interface providing a visualization of the generated calling-context tree, and generating the set of microservices based at least in part on the modified design.


