Microservice Identification via Runtime Trace Clustering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing application modernization technologies face challenges in accurately identifying microservices from monolithic applications, as they fail to consider business contexts and high-order temporal dependencies, and struggle with collecting operational data and maintaining rich temporal information.

Innovation Solution

A system that uses runtime traces to train a model to learn cluster assignments and graph embeddings of classes in a monolithic application, employing these models to generate clusters and identify microservices, thereby facilitating improved functional grouping and application modernization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Extent of automation

If traditional application modernization technologies are used to identify microservices from monolithic applications, then the process can be automated, but the accuracy of microservice identification deteriorates due to failure to consider business contexts and high-order temporal dependencies

Engineering Contradiction:
Improveautomation of microservice identificationVSAvoidaccuracy of microservice identification
Core Design Contradiction:
Extent of automationVSMeasurement precision

Solution Approach 1:

The patent introduces runtime traces as an intermediary data structure that captures business contexts and temporal dependencies during application execution. These traces serve as a mediator between the monolithic application code and the microservice identification process, enabling accurate clustering by preserving contextual information that traditional static analysis methods miss.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces traditional mechanical/static code analysis methods with a dynamic machine learning-based clustering approach. Instead of relying on fixed rules or simple dependency graphs, the system uses trained models that process runtime trace data to automatically identify microservice boundaries, substituting rigid mechanical processes with adaptive intelligent systems.

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

2Measurement precision

If runtime traces are collected to capture business contexts and temporal dependencies, then the accuracy of microservice identification improves, but the complexity of data collection and processing increases

Engineering Contradiction:
Improveaccuracy of microservice identificationVSAvoidcomplexity of data collection and processing
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent performs preliminary actions by instrumenting the monolithic application code beforehand to automatically capture runtime traces during normal execution. This preprocessing step collects all necessary business context and temporal dependency information in advance, transforming complex raw execution data into structured trace formats that are easier for clustering algorithms to process later.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates copies of the monolithic application's runtime behavior in the form of trace data structures. Instead of directly analyzing the complex original execution flow, the system generates simplified copy representations (traces) that preserve essential business context and temporal relationships, making the data more manageable for subsequent clustering operations.

Inventive Principle:
Principle #26Copying

3Productivity

If static code analysis is used to identify microservices, then the process is simple and fast, but it fails to capture business contexts and temporal dependencies resulting in poor functional grouping

Engineering Contradiction:
Improvespeed of microservice identificationVSAvoidaccuracy of functional grouping
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent transitions from static code analysis to dynamic runtime trace-based analysis. Instead of examining fixed source code structures, the system captures actual execution behavior dynamically, allowing the identification process to adapt to real business contexts and temporal patterns that only manifest during runtime, thereby improving functional grouping accuracy.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS11940904B2Generation of microservices from a monolithic application based on runtime traces
Publication Date: 2024.03.26 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11940904B2 patent drawing
  • US11940904B2 patent drawing
  • US11940904B2 patent drawing

AI summary

Systems, computer-implemented methods, and computer program products to facilitate generation of microservices from a monolithic application based on runtime traces are provided. According to an embodiment, a system can comprise a memory that stores computer executable components and a processor that executes the computer executable components stored in the memory. The computer executable components can comprise a model component that learns cluster assignments of classes in a monolithic application based on runtime traces of executed test cases. The computer executable components can further comprise a cluster component that employs the model component to generate clusters of the classes based on the cluster assignments to identify one or more microservices of the monolithic application.