Monolith to Microservice Translation via Function Isolation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing techniques fail to effectively generate functionally independent and deployable microservices from refactored clusters of monolith applications, limiting the transition to microservice architectures.

Innovation Solution

The method involves isolating non-overlapping software functions, converting them into standardized APIs, and generating deployable microservices, including the use of URI generation and representation in Swagger documents for clarity and deployment.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If monolith application architecture is used, then development and deployment are simplified, but system flexibility and cloud compatibility are reduced

Engineering Contradiction:
Improvesystem architecture complexityVSAvoidcloud compatibility
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The patent automatically partitions monolith application code into multiple candidate microservices based on software function analysis. Each microservice encapsulates specific non-overlapping functions, enabling independent deployment and cloud compatibility while maintaining manageable complexity through automated segmentation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system extracts specific software functions from the monolith application to create independent microservices. By identifying and isolating non-overlapping functions, the patent enables selective extraction of business logic while preserving core functionality, improving cloud adaptability without overwhelming complexity.

Inventive Principle:
Principle #2Taking out (Extraction)

2Adaptability or versatility

If microservice architecture is implemented, then cloud compatibility and resource allocation improve, but development complexity increases

Engineering Contradiction:
Improvecloud compatibilityVSAvoiddevelopment complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent performs preliminary analysis of the monolith application to automatically identify candidate microservices and their boundaries before implementation. By pre-defining service partitions based on software function analysis, the system reduces development complexity while maintaining cloud compatibility benefits.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system automatically generates candidate microservices from the monolith application code without requiring manual intervention for each service definition. The automated analysis and partitioning process enables the system to self-organize into microservices, reducing development complexity while achieving cloud compatibility.

Inventive Principle:
Principle #25Self-service

3Ease of operation

If manual microservice creation is performed, then control over service design is maximized, but time consumption and productivity are reduced

Engineering Contradiction:
Improveservice design controlVSAvoidmicroservice generation speed
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent implements an automated system that analyzes monolith application code and self-generates candidate microservices with proper function isolation. This self-service approach maintains design quality through systematic analysis while dramatically improving productivity by eliminating manual service creation processes.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system replaces manual mechanical processes of microservice design and code extraction with automated software analysis and generation. By substituting human effort with algorithmic function analysis and automatic code partitioning, the patent achieves both design control and high productivity in microservice generation.

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

4Ease of manufacture

If software functions are shared across microservices, then code reusability improves, but service independence and deployability are reduced

Engineering Contradiction:
Improvecode reusabilityVSAvoidservice independence
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The patent assigns different software functions to different microservices based on their specific functional requirements. By ensuring non-overlapping function distribution, each microservice achieves local quality optimization with unique, independent functionality, enabling reliable independent deployment while maintaining overall system functionality.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11726778B2Translating clusters of a monolith application to microservices
Publication Date: 2023.08.15 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11726778B2 patent drawing
  • US11726778B2 patent drawing
  • US11726778B2 patent drawing

AI summary

Methods, systems, and computer program products for translating clusters of a monolith application to microservices are provided herein. A computer-implemented method includes obtaining a plurality of candidate microservices for refactoring a monolith application, each candidate microservice including one or more of a plurality of software classes of the monolith application; analyzing the monolith application to identify one or more software functions in the plurality of software classes to expose as one or more application programming interfaces; automatically isolating non-overlapping software functions of the monolith application between the plurality of candidate microservices; converting source code corresponding to the identified one or more software functions into a standardized application programming interface format based at least in part on the isolating; and using the converted source code to generate a plurality of deployable microservices corresponding to the plurality of candidate microservices.