Automated Monolithic Application Refactoring to Microservices

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Monolithic computer applications face limitations in scalability and flexibility, requiring extensive manual effort and time to refactor into microservices, often resulting in sub-optimal outcomes due to the complexity of code constructs and processes.

Innovation Solution

An automated refactoring method using natural language processing (NLP) and machine learning models to transform textual input into context-aware tokens, determine groupings and associations with code constructs, and generate invocation sequences for refactoring into microservices, leveraging usage data and meta-information to identify processes and recommend optimal microservice configurations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Extent of automation

If manual refactoring methods are used to transform monolithic applications into microservices, then expertise and control can be applied to complex code constructs, but the process requires extensive manual effort and time

Engineering Contradiction:
Improveautomation of refactoring processVSAvoidrefactoring time
Core Design Contradiction:
Extent of automationVSLoss of time

Solution Approach 1:

The system enables self-service by automatically analyzing code constructs, generating microservice architectures, and producing implementation code without requiring manual intervention. The refactoring process serves itself by using AI models to understand and transform the monolithic application structure into microservices independently

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

Manual mechanical refactoring efforts are replaced with an AI-based automated system that uses natural language processing, code analysis, and machine learning models to perform the refactoring. The system substitutes human expert manual work with automated intelligent analysis and code generation capabilities

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

2Ease of operation

If manual refactoring is performed on complex monolithic codebases, then detailed understanding and control can be achieved, but extensive expertise and manual effort are required

Engineering Contradiction:
Improveease of refactoring operationVSAvoidcomplexity of code constructs
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

An AI-based intermediary system is introduced between the monolithic application and the microservice target architecture. This intermediary automatically analyzes the complex code constructs, understands their relationships, and transforms them into microservice components, shielding users from the complexity while maintaining operational simplicity

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If traditional refactoring approaches are used, then existing code constructs can be modified, but scalability and flexibility limitations of monolithic architecture persist

Engineering Contradiction:
Improveflexibility of application architectureVSAvoidcomplexity of refactoring process
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system automatically segments the monolithic application into independent microservice components by analyzing code constructs, identifying boundaries, and generating separate service modules. Each microservice can be independently deployed, scaled, and modified, providing the flexibility and adaptability that monolithic architectures lack

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11803374B2Monolithic computer application refactoring
Publication Date: 2023.10.31 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11803374B2 patent drawing
  • US11803374B2 patent drawing
  • US11803374B2 patent drawing

AI summary

Refactoring a monolithic computer application can include transforming textual input into context-aware tokens represented by machine-processable data structures, the textual input acquired from text associated with a computer application having a monolithic architecture for implementing one or more application processes. Based on co-occurrence frequencies among the context aware tokens, one or more groupings of context-aware tokens can be determined. An association between each grouping and a code construct can be determined. Invocation sequences based on time series analyses of computer-generated usage data generated in response to execution of the one or more application processes can be generated, each invocation sequence linking two or more code constructs based on a time series analysis linking groupings that correspond to the linked code constructs. A recommendation for refactoring the computer application into a plurality of microservices can be generated, each microservice corresponding to one or more invocation sequences.