Refactoring Local Calls to Network Calls for Microservices

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 improve performance and agility, but this process is complex and inefficient due to the need for manual identification and extraction of independently deployable components.

Innovation Solution

A software modernization service that automatically detects 'islands' of independent code within monolithic applications, visualizes dependencies, and assists in breaking these dependencies to extract and deploy components as microservices, leveraging graph models and minimal code changes, facilitating the transition to microservices architecture.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If manual identification and extraction of independently deployable components is performed, then microservices can be created, but the process becomes complex and inefficient

Engineering Contradiction:
Improvemicroservices creationVSAvoidmodernization process
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system performs self-analysis by automatically scanning the monolithic codebase, identifying component dependencies, and determining independently deployable units without requiring manual intervention. The code analysis engine autonomously generates extraction recommendations and facilitates the refactoring process.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

Manual mechanical processes of code analysis and microservices identification are replaced with automated software systems. The code analysis engine uses programmatic approaches to parse, analyze, and understand code structures, substituting human manual inspection with automated computational analysis.

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

2Productivity

If manual code refactoring is performed to extract components, then independent services can be deployed, but engineering costs and time increase

Engineering Contradiction:
Improveservice deployment speedVSAvoidrefactoring time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary analysis of the codebase before extraction, identifying all dependencies and potential extraction points in advance. The code analysis engine scans and maps the entire code structure upfront, preparing extraction recommendations that guide the refactoring process and minimize subsequent manual work.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

An automated intermediary system (the code analysis engine and modernization service) is introduced between the monolithic codebase and the microservices extraction process. This intermediary automatically analyzes dependencies, identifies extraction boundaries, and generates the necessary refactoring code, reducing direct manual intervention.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Measurement precision

If dependencies between code components are not analyzed, then extraction is faster, but incorrect components may be extracted

Engineering Contradiction:
Improvecomponent independence identificationVSAvoiddependency analysis
Core Design Contradiction:
Measurement precisionVSDifficulty of detecting and measuring

Solution Approach 1:

The code analysis engine implements feedback mechanisms by continuously analyzing code dependencies during the extraction process. It monitors calls, imports, and references between components, providing real-time information about dependency relationships to ensure accurate identification of independently deployable units.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

Manual dependency analysis is replaced with automated code parsing and static analysis techniques. The system uses programmatic approaches to traverse code structures, analyze call graphs, and detect dependency relationships, substituting manual inspection with automated computational methods.

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

Data Source

PatentUS11442725B1Software modernization refactoring of local calls to network calls
Publication Date: 2022.09.13 AMAZON TECH INC
  • US11442725B1 patent drawing
  • US11442725B1 patent drawing
  • US11442725B1 patent drawing

AI summary

Disclosed are various embodiments for the refactoring of local calls to network calls during software modernization. First and second application components are identified based on analysis of a computing application. A local call from the first application component to a process of the second application component is identified, and an independently deployable microservice is created from the computing application. The independently deployable subunit comprises the second application component having a network endpoint. The independently deployable microservice is deployed such that the process is accessible to the first application component via the network endpoint. The local call is programmatically refactored into a network call from the first application component to the process of the second application component.