Microservices Dependency Graph Generation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In microservices architecture, determining dependencies among microservices is complex due to extensive service-to-service communication, making it difficult for developers to identify which services need to be changed or tested when updates are made.

Innovation Solution

A system and method that parses source code to identify methods and their dependencies, storing this information in a graph database where methods are represented as nodes and dependencies as edges, allowing for efficient querying to determine dependent methods.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If microservices architecture is adopted to improve software quality and enable independent deployment, then software updates can be deployed more easily and teams can focus on specific services, but the dependency among microservices becomes very complex and difficult to determine

Engineering Contradiction:
Improvesoftware update deployment efficiencyVSAvoidservice dependency complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary system that automatically parses source code, generates service dependency graphs, and stores them in a graph database. This intermediary tool mediates between the complex microservices architecture and developers, automatically analyzing and visualizing dependencies without requiring developers to manually trace through complex service-to-service communications.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces the manual mechanical process of tracing service dependencies with automated computational methods. Source code parsing, graph generation, and dependency analysis are performed automatically by computer systems rather than manually by developers, substituting mechanical human analysis with automated computational analysis.

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

2Adaptability or versatility

If the number of microservices is increased to improve system functionality and modularity, then software quality improves and independent updates are enabled, but it becomes difficult to search through microservices and retrieve information about them

Engineering Contradiction:
Improvesystem modularityVSAvoidmicroservice information retrieval
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The graph database structure serves multiple functions: it stores service dependency information, enables search operations, supports dependency analysis, and provides a foundation for various queries about microservice relationships. This universal data structure handles diverse information retrieval needs across the distributed microservices system.

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

Solution Approach 2:

The patent introduces an intermediary search system that uses the graph database to enable efficient information retrieval about microservices. Instead of developers manually searching through numerous services, the system provides automated search and query capabilities that leverage the graph structure to quickly retrieve relevant service information and dependency relationships.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If service-to-service communication is increased to enable microservices functionality, then system flexibility improves, but determining which microservices need to be changed or tested when updates are made becomes difficult

Engineering Contradiction:
Improvemicroservice flexibilityVSAvoidaffected service identification
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent introduces an intermediary dependency analysis system that automatically traces service-to-service communications by parsing source code and building dependency graphs. This intermediary tool mediates between the complex communication patterns and developers, automatically identifying which services depend on which others and determining the full scope of changes and testing required when updates are made.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent performs preliminary analysis of service dependencies by parsing source code and generating dependency graphs before updates are made. This preliminary action creates a complete map of service relationships in advance, enabling developers to quickly determine which services need to be changed or tested when updates are planned, rather than discovering dependencies during the update process.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11397575B2Microservices graph generation
Publication Date: 2022.07.26 SAP SE
  • US11397575B2 patent drawing
  • US11397575B2 patent drawing
  • US11397575B2 patent drawing

AI summary

The present disclosure provides systems and methods for generating a graph of microservices of a software application. Source code for the application may be parsed using one or more method identifiers to identify a plurality of methods of the software application. Names and path values for the plurality of methods may be stored in a graph database as nodes and edges. The graph database may be queried to determine dependencies of a method, including the microservice that the method belongs to any remote methods called by the method. In addition, properties of the nodes may be transformed into a set of vectors to provide searching of the graph and recommendations.