Heterogeneous Graph Generation for Microservice Partitioning

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Splitting a single application into microservices for hosting in a remote services environment is challenging due to varying techniques and the difficulty in determining optimal partitions, leading to inefficient resource utilization and management.

Innovation Solution

A microservices advisor application generates a heterogeneous graph of application elements, identifying direct and indirect relationships, and uses graph clustering techniques to recommend optimal microservice splits based on user-defined attributes and constraints, providing a systematic approach to splitting applications into manageable and scalable microservices.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If an application is manually split into microservices, then the splitting process can be performed with human judgment, but the process becomes time-consuming and difficult to optimize

Engineering Contradiction:
Improveoptimality of microservice partitioningVSAvoidtime required for splitting application
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The system performs automatic microservice splitting using graph clustering algorithms and machine learning models, eliminating the need for manual human judgment. The application autonomously analyzes service dependencies, identifies optimal partitioning strategies, and generates microservice architectures without human intervention, thereby reducing time loss while maintaining high optimization quality.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces manual mechanical analysis with automated computational systems. Graph clustering algorithms process service dependency data, and machine learning models predict optimal partitioning outcomes, substituting human cognitive processes with efficient computational mechanisms that operate faster and more consistently.

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

2Adaptability or versatility

If various techniques are used to split applications, then flexibility in approach is increased, but the complexity of determining optimal partitions increases

Engineering Contradiction:
Improvevariety of splitting techniquesVSAvoidcomplexity of determining optimal partitions
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system employs a universal graph clustering framework that can handle multiple types of service relationships and dependency patterns through a single unified approach. The machine learning model serves multiple functions by simultaneously analyzing various partitioning criteria and predicting optimal outcomes, reducing the need for separate complex procedures for each technique.

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

Solution Approach 2:

The system adjusts clustering parameters and machine learning model parameters dynamically based on the specific application characteristics and desired partitioning goals. By changing parameters such as clustering granularity, dependency weightings, and optimization objectives, the system adapts to different splitting techniques without requiring fundamentally different complex procedures.

Inventive Principle:
Principle #35Parameter changes

3Manufacturing precision

If more analysis is performed to determine optimal microservice splits, then the quality of partitioning improves, but the computational resources required increase

Engineering Contradiction:
Improvequality of microservice partitioningVSAvoidcomputational resources required
Core Design Contradiction:
Manufacturing precisionVSUse of energy by moving object

Solution Approach 1:

The system performs preliminary analysis by building a graph representation of service dependencies before executing complex clustering algorithms. This preliminary structuring of data enables more efficient subsequent processing, as the graph format allows for optimized traversal and analysis routines that reduce overall computational resource requirements while maintaining high partitioning quality.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The machine learning model is trained on representative samples of microservice architectures rather than exhaustively analyzing every possible partitioning scenario. This partial action approach provides sufficiently high quality partitioning recommendations without the excessive computational resources that would be required for complete exhaustive analysis of all possibilities.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS11836538B2Heterogeneous graph generation for application microservices
Publication Date: 2023.12.05 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11836538B2 patent drawing
  • US11836538B2 patent drawing
  • US11836538B2 patent drawing

AI summary

One embodiment provides a method, including: receiving information describing an application to be split into a plurality of microservices; identifying, utilizing a microservices advisor application, application elements of the application; generating, utilizing the microservices advisor application and from the application elements, a heterogenous graph, wherein each node within the heterogenous graph represents an application element and wherein each edge within the heterogenous graph represents a relationship between two nodes connected by the edge; identifying, based upon user input identifying preferences of relationships between nodes, groups of nodes within the heterogenous graph sharing a common attribute; and providing, from the microservices advisor application, a recommendation, based upon the identified groups of nodes, for splitting the application into microservices, wherein the recommendation includes a number of microservices for the application and application elements that should be included within each of the microservices.