Microservices Design via Calling-Context Tree Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering Contradiction Analysis

1Ease of manufacture

If monolithic applications are used, then implementation is simpler, but scalability and resiliency deteriorate

Engineering Contradiction:
Improveease of implementationVSAvoidresiliency
Core Design Contradiction:
Ease of manufactureVSReliability

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.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If microservices are manually designed, then customization is better, but time consumption increases

Engineering Contradiction:
Improvecustomization capabilityVSAvoiddesign time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #23Feedback

3Productivity

If application code is not analyzed, then processing is faster, but service decomposition accuracy decreases

Engineering Contradiction:
Improveprocessing speedVSAvoiddecomposition accuracy
Core Design Contradiction:
ProductivityVSManufacturing precision

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.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS20210124577A1Designing microservices for applications
Publication Date: 2021.04.29 DELL PROD LP
  • US20210124577A1 patent drawing
  • US20210124577A1 patent drawing
  • US20210124577A1 patent drawing

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.