Monolithic Application Transformation via Microservice Partitioning

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for transforming monolithic object-oriented computer programs into distributed microservices struggle to preserve the semantics of inheritance and efficiently manage object creation, constructor chaining, and garbage collection across multiple microservice partitions.

Innovation Solution

The method involves examining the monolithic object-oriented computer program to identify inheritance chains and generating distributed microservice partitions, where each class in the chain is hosted in a separate partition, with mechanisms for constructing object data, managing memory allocation, and maintaining reference identifiers to facilitate communication and garbage collection across partitions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If classes in an inheritance chain are distributed across separate microservice partitions, then independence and deployability of microservices is improved, but complexity of managing object creation and inheritance semantics worsens

Engineering Contradiction:
Improveindependence and deployability of microservicesVSAvoidcomplexity of managing object creation and inheritance semantics
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a service registry and remote procedure call (RPC) mechanism as intermediaries to manage communication between microservice partitions. When a child class needs to invoke a parent class method in a different partition, the RPC mechanism transparently routes the call through the service registry, which resolves the inheritance semantics without requiring direct knowledge of the inheritance relationship in each partition.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the monolithic application into multiple microservice partitions, each hosting specific classes from the inheritance chain. This segmentation allows independent deployment of partitions while the system manages the distributed inheritance relationships through standardized communication protocols and service discovery mechanisms.

Inventive Principle:
Principle #1Segmentation

2Productivity

If object data is constructed in separate microservice partitions, then distribution and scalability is improved, but difficulty of maintaining reference identifiers and managing memory allocation worsens

Engineering Contradiction:
Improvedistribution and scalabilityVSAvoiddifficulty of maintaining reference identifiers and managing memory allocation
Core Design Contradiction:
ProductivityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent implements a universal reference identifier system that works across all microservice partitions. The same reference identifier mechanism is used whether objects are created locally or remotely, and the garbage collection system universally manages memory across partitions through centralized tracking of object references and their locations.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system employs feedback mechanisms where microservice partitions report object creation and destruction events to a centralized memory management system. This feedback loop enables the system to track object lifecycles across partitions, maintain accurate reference counts, and coordinate garbage collection to prevent memory leaks in the distributed environment.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS20240272971A1Monolothic application transformation
Publication Date: 2024.08.15 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US20240272971A1 patent drawing
  • US20240272971A1 patent drawing
  • US20240272971A1 patent drawing

AI summary

Methods, computer program products, and systems are presented. The method computer program products, and systems can include, for instance: examining a monolithic object oriented computer program, wherein the examining the monolithic object oriented computer program includes identifying that the monolithic object oriented computer program includes an inheritance chain of classes having a first class and a second class; and generating a distributed set of microservice partitions in dependence on the examining the monolithic object oriented computer program, wherein the generating the distributed set of microservice partitions includes performing the generating so that there is hosted in a first microservice partition of a distributed set of microservice partitions the first class and further so that there is hosted in a second microservice partition of the distributed set of microservices the second class.