Automated Microservice Extraction from Monolithic Code Graphs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Legacy monolithic computing applications face challenges in scalability, resource allocation, and modernization, requiring transformation into microservices to meet modern computing demands, but this process is complex and inefficient due to the need for manual analysis and refactoring.

Innovation Solution

A software modernization service that automatically identifies and extracts independently deployable components from monolithic applications by generating a graph model, visualizing dependencies, and assisting in the refactoring process to deploy these components as microservices, serverless functions, or containers, minimizing code changes and leveraging cloud services for improved scalability and performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If manual analysis and refactoring is used to transform monolithic applications into microservices, then transformation accuracy can be maintained, but productivity is reduced and time consumption increases

Engineering Contradiction:
Improvetransformation speedVSAvoidrefactoring time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs automated identification of isolated nodes and extraction of microservices components through self-executing algorithms that analyze dependency graphs and generate refactored code without requiring manual intervention for each extraction task

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

Manual mechanical refactoring processes are replaced with automated computational systems that use graph theory algorithms and code analysis tools to identify extractable components and generate transformation code automatically

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Manufacturing precision

If comprehensive dependency analysis is performed to ensure accurate microservice extraction, then manufacturing precision is improved, but device complexity increases

Engineering Contradiction:
Improveextraction accuracyVSAvoidanalysis system complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The complex analysis process is segmented into distinct phases: graph model generation from source code, isolated node identification through algorithmic analysis, and automated extraction execution. Each phase handles a specific aspect of the transformation, reducing overall system complexity while maintaining comprehensive analysis

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A dependency graph model serves as an intermediary representation that captures component relationships without requiring direct complex analysis of all code interactions. This graph structure enables efficient identification of isolated nodes through standard graph algorithms

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of operation

If automated extraction is implemented to improve productivity, then ease of operation is improved, but manufacturing precision may deteriorate

Engineering Contradiction:
Improveautomation levelVSAvoidcode extraction accuracy
Core Design Contradiction:
Ease of operationVSManufacturing precision

Solution Approach 1:

The system incorporates feedback mechanisms where the graph model continuously reflects the current state of component dependencies, and extraction operations are validated against this model to ensure accuracy. The automated process uses the dependency graph as feedback to verify that extracted components are truly isolated

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11467826B1Automated extraction of isolated nodes during source code refactoring
Publication Date: 2022.10.11 AMAZON TECH INC
  • US11467826B1 patent drawing
  • US11467826B1 patent drawing
  • US11467826B1 patent drawing

AI summary

Disclosed are various embodiments for the extraction of isolated nodes during source code refactoring. A graph model representative of a computing application is generated having nodes and bridges that connect some nodes to other nodes. An application component corresponding to a selected one of the nodes may be extracted from the computing application. An independently deployable component of the computing application may be generated and deployed on a network service such that the independently deployable component is accessible through a network-based call.