Microservices Dependency Graph Generation
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
Data Source
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.


