IP Library › Granted Patent US 12,602,362
Granted Patent B2
US 12,602,362 · App. 18/084,649 · Granted Apr 14, 2026

Microservice catalog generation and inference based selection of microservices

Inventors: Jayachandu Bandlamudi (Guntur, IN); Sreenivasa Rao Pamidala (McLean, VA); Subil Mathew Abraham (Lewisville, TX)
Assignee: International Business Machines Corporation
G06F16/2237G06F16/24553G06N20/00
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,602,362
App. No.
18/084,649
Granted
Apr 14, 2026
Kind
B2
Abstract

Mechanisms are provided for indexing microservices for optimized querying based on microservice attributes. A plurality of application graph data structures are generated with nodes representing microservices and edges representing functionality of microservices. A data transformation is performed on the graphs to generate, for each node, a corresponding microservice document specifying microservice attributes of the corresponding microservice. A machine learning training operation is executed on an embedding computer model based on a plurality of the microservice documents to train the embedding computer model to learn a representation vector space for representing microservices as vector representations. The trained embedding computer model is executed on the microservice documents to generate corresponding vector representations and compile them into entries of a microservice index data structure which is used to process queries for microservices.

Claims (64)

1 . A computer-implemented method for indexing microservices for optimized querying based on microservice attributes, the method comprising:

generating a plurality of application graph data structures, wherein each node in an application graph data structure specifies a corresponding microservice and has corresponding microservice attribute information, and wherein each edge between nodes in the application graph data structure specifies a microservice functionality between microservices of nodes connected by the edge;

executing a data transformation operation on the application graph data structures to generate, for each node in each application graph data structure, a corresponding microservice document specifying microservice attributes of the corresponding microservice;

executing a machine learning training operation on an embedding computer model based on a plurality of the microservice documents, wherein the machine learning training operation trains the embedding computer model to learn a representation vector space for representing microservices as vector representations;

executing the trained embedding computer model on the plurality of microservice documents to generate corresponding vector representations;

compiling the vector representations into entries of a microservice index data structure; and

processing queries for microservices based on the vector representations in the entries of the microservice index data structure.

2 . The computer-implemented method of claim 1 , wherein processing queries for microservices based on the vector representations in the entries of the microservice index data structure comprises:

receiving a microservice query comprising a microservice specification;

executing the embedding computer model on the microservice specification to generate a microservice specification vector representation;

executing a similarity based search of the microservice index data structure based on a similarity analysis between the microservice specification vector representation and vector representations in entries of the microservice index data structure; and

returning results of the similarity based search of the microservice index data structure to a source of the microservice query.

3 . The computer-implemented method of claim 2 , wherein the similarity analysis comprises, for each pairing of the microservice specification vector representation and a vector representation of an entry in the microservice index data structure, determining a similarity metric based on a similarity metric calculation function.

4 . The computer-implemented method of claim 2 , wherein returning results of the similarity based search of the microservice index data structure comprises:

ranking microservices corresponding to the entries in the microservice index data structure relative to one another based on their corresponding similarity metrics to generate a ranked listing;

selecting a subset of microservices from the ranked listing;

executing an analysis of microservice metadata information stored in entries of the microservice index data structure corresponding to the subset of microservices to determine, for each microservice in the subset of microservices, whether the microservice implements specified best practices and avoids specified inefficiencies;

re-ranking the microservices in the subset of microservices based on results of the analysis; and

generating a recommendation output that recommends one or more of the microservices in the subset of microservices as a result of the received microservice query.

5 . The computer-implemented method of claim 4 , wherein the recommendation output is a user interface having user selectable user interface elements that, when selected by a user, retrieve a corresponding microservice container from a microservice repository into a development computer environment for developing a composite application.

6 . The computer-implemented method of claim 1 , wherein the embedding computer model is a neural network.

7 . The computer-implemented method of claim 1 , wherein the embedding computer model is an autoencoder.

8 . The computer-implemented method of claim 1 , wherein generating the graph data structures comprises, for each composite application in a plurality of composite applications:

receiving input data comprising code repository information, deployment environment information, and application information;

extracting microservice metadata information for the microservices implemented in the composite application from the input data; and

generating a graph of the composite application based on the extracted microservice metadata information.

9 . The computer-implemented method of claim 8 , wherein the microservice metadata information comprises at least one of an owner of the microservice, application information specifying an application type with which the microservice operates, compatibility information, container runtime information, connectivity information to other microservices, deployment environment information, or integration pattern information.

10 . The computer-implemented method of claim 8 , wherein each entry in the entries in the microservice index include, for a corresponding microservice, a microservice identifier, microservice metadata information, and a vector representation for the corresponding microservice.

11 . A computer program product comprising a computer readable storage medium having a computer readable program stored therein, wherein the computer readable program, when executed in a data processing system, causes the data processing system to:

generate a plurality of application graph data structures, wherein each node in an application graph data structure specifies a corresponding microservice and has corresponding microservice attribute information, and wherein each edge between nodes in the application graph data structure specifies a microservice functionality between microservices of nodes connected by the edge;

execute a data transformation operation on the application graph data structures to generate, for each node in each application graph data structure, a corresponding microservice document specifying microservice attributes of the corresponding microservice;

execute a machine learning training operation on an embedding computer model based on a plurality of the microservice documents, wherein the machine learning training operation trains the embedding computer model to learn a representation vector space for representing microservices as vector representations;

execute the trained embedding computer model on the plurality of microservice documents to generate corresponding vector representations;

compile the vector representations into entries of a microservice index data structure; and

process queries for microservices based on the vector representations in the entries of the microservice index data structure.

12 . The computer program product of claim 11 , wherein processing queries for microservices based on the vector representations in the entries of the microservice index data structure comprises:

receiving a microservice query comprising a microservice specification;

executing the embedding computer model on the microservice specification to generate a microservice specification vector representation;

executing a similarity based search of the microservice index data structure based on a similarity analysis between the microservice specification vector representation and vector representations in entries of the microservice index data structure; and

returning results of the similarity based search of the microservice index data structure to a source of the microservice query.

13 . The computer program product of claim 12 , wherein the similarity analysis comprises, for each pairing of the microservice specification vector representation and a vector representation of an entry in the microservice index data structure, determining a similarity metric based on a similarity metric calculation function.

14 . The computer program product of claim 12 , wherein returning results of the similarity based search of the microservice index data structure comprises:

ranking microservices corresponding to the entries in the microservice index data structure relative to one another based on their corresponding similarity metrics to generate a ranked listing;

selecting a subset of microservices from the ranked listing;

executing an analysis of microservice metadata information stored in entries of the microservice index data structure corresponding to the subset of microservices to determine, for each microservice in the subset of microservices, whether the microservice implements specified best practices and avoids specified inefficiencies;

re-ranking the microservices in the subset of microservices based on results of the analysis; and

generating a recommendation output that recommends one or more of the microservices in the subset of microservices as a result of the received microservice query.

15 . The computer program product of claim 14 , wherein the recommendation output is a user interface having user selectable user interface elements that, when selected by a user, retrieve a corresponding microservice container from a microservice repository into a development computer environment for developing a composite application.

16 . The computer program product of claim 11 , wherein the embedding computer model is a neural network.

17 . The computer program product of claim 11 , wherein the embedding computer model is an autoencoder.

18 . The computer program product of claim 11 , wherein generating the graph data structures comprises, for each composite application in a plurality of composite applications:

receiving input data comprising code repository information, deployment environment information, and application information;

extracting microservice metadata information for the microservices implemented in the composite application from the input data; and

generating a graph of the composite application based on the extracted microservice metadata information.

19 . The computer program product of claim 18 , wherein the microservice metadata information comprises at least one of an owner of the microservice, application information specifying an application type with which the microservice operates, compatibility information, container runtime information, connectivity information to other microservices, deployment environment information, or integration pattern information.

20 . An apparatus comprising:

at least one processor; and

at least one memory coupled to the at least one processor, wherein the at least one memory comprises instructions which, when executed by the at least one processor, cause the at least one processor to:

generate a plurality of application graph data structures, wherein each node in an application graph data structure specifies a corresponding microservice and has corresponding microservice attribute information, and wherein each edge between nodes in the application graph data structure specifies a microservice functionality between microservices of nodes connected by the edge;

execute a data transformation operation on the application graph data structures to generate, for each node in each application graph data structure, a corresponding microservice document specifying microservice attributes of the corresponding microservice;

execute a machine learning training operation on an embedding computer model based on a plurality of the microservice documents, wherein the machine learning training operation trains the embedding computer model to learn a representation vector space for representing microservices as vector representations;

execute the trained embedding computer model on the plurality of microservice documents to generate corresponding vector representations;

compile the vector representations into entries of a microservice index data structure; and

process queries for microservices based on the vector representations in the entries of the microservice index data structure.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2022
From: BANDLAMUDI, JAYACHANDU; PAMIDALA, SREENIVASA RAO; ABRAHAM, SUBIL MATHEW
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 062154/0287 →
Continuity (1)
Related Publication 20240202177A1 · Jun 20, 2024
References Cited (28)
US 10721791B1 · Gamliel et al. · 2020 [cited by applicant]
US 11397575B2 · Wan · 2022 [cited by examiner]
US 12034747B2 · Raghavendra · 2024 [cited by examiner]
US 12147886B2 · Wan · 2024 [cited by examiner]
US 20210232390A1 · Hwang · 2021 [cited by examiner]
US 20210287108A1 · Hwang · 2021 [cited by examiner]
US 20210289046A1 · Sinha · 2021 [cited by applicant]
US 20220060431A1 · Vadayadiyil Raveendran et al. · 2022 [cited by applicant]
US 20220172067A1 · Kang · 2022 [cited by examiner]
US 20240386054A1 · Wouhaybi · 2024 [cited by examiner]
CN 109948710B · 2021 [cited by applicant]
CN 109961204B · 2021 [cited by applicant]
CN 112948137A · 2021 [cited by applicant]
CN 113051446A · 2021 [cited by applicant]
KR 20220029011A · 2022 [cited by applicant]
“A Unified Microservice Catalog Tool”, DeployHub, accessed online Oct. 7, 2022, 10 pages. [cited by applicant]
“An Open Source Microservice Catalog for Supply Chain Management”, Ortelius, accessed online Oct. 7, 2022, 4 pages. [cited by applicant]
“Cosine similarity”, Wikipedia, last edited on Sep. 5, 2022, accessed online Oct. 7, 2022, 7 pages. [cited by applicant]
“GraphQL”, Current Working Draft, Dec. 8, 2022, 176 pages. [cited by applicant]
“Microservices Catalog App”, GitHub, accessed online Oct. 7, 2022, 15 pages. [cited by applicant]
“Service Catalog—OpsLevel”, OpsLevel, accessed online Oct. 7, 2022, 7 pages. [cited by applicant]
“The Istio service mesh”, Istio, accessed online Dec. 13, 2022, 7 pages. [cited by applicant]
“Use Case: API & Services Catalog”, LeanIX, accessed online Oct. 7, 2022, 14 pages. [cited by applicant]
Anand, Vishal, “Containers interoperability: How compatible is portable?”, IBM Corporation, IBM Developer, Mar. 26, 2021, 14 pages. [cited by applicant]
Kovan, Gerry, “A Zero Trust Approach for Securing the Supply Chain of Microservices Packaged as Container Images”, Medium, accessed online Oct. 7, 2022, 9 pages. [cited by applicant]
Richardson, Chris, “Pattern: API Gateway / Backends for Frontends”, Microservices.io, accessed online Dec. 13, 2022, 4 pages. [cited by applicant]
Richardson, Chris, “Pattern: Microservice Architecture”, Microservices.io, accessed online Oct. 7, 2022, 6 pages. [cited by applicant]
Shperber, Gidi, “A gentle introduction to Doc2Vec”, Medium, Jul. 26, 2017, 10 pages. [cited by applicant]