IP Library Granted Patent US 11,579,937
Granted Patent B1
US 11,579,937 · App. 17/137,292 · Granted Feb 14, 2023

Generation of cloud service inventory

Inventors: Sindy Giraldo (Fort Lauderdale, FL); Sai Varun Prasanth Soundararajan (Raleigh, NC)
Assignee: Citrix Systems, Inc.
G06F9/5072G06F9/505G06F9/5077G06F2209/5015
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 11,579,937
App. No.
17/137,292
Granted
Feb 14, 2023
Kind
B1
Abstract

A data model characterizing a plurality of resources is received. The data model associates a first resource within a first remote computing environment with a first tag and a second resource within a second remote computing environment with a second tag. The data model is received from a database that is separate from the first remote computing environment and the second remote computing environment. The plurality of resources is grouped based on the first tag and the second tag. The grouping can form a first group associated with the first tag and a second group associated with the second tag. A first list of resources characterizing the first group and a second list of resources characterizing the second group is provided. Related apparatus, systems, techniques and articles are also described.

Claims (50)

1. A method comprising:

receiving a data model characterizing a plurality of resources, the data model associating a first resource within a first remote computing environment with a first tag and a second resource within a second remote computing environment with a second tag, the data model received from a database that is separate from the first remote computing environment and the second remote computing environment;

grouping, based on the first tag and the second tag, the plurality of resources, the grouping forming a first group associated with the first tag and a second group associated with the second tag;

querying a plurality of remote computing environments for costs associated with hosting resources, the querying including:

querying, using at least an application programming interface of the first remote computing environment, the first remote computing environment for first costs associated with hosting the first resource within the first remote computing environment, and

querying the second remote computing environment for second costs associated with hosting the second resource within the second remote computing environment; and

providing a first list of resources characterizing the first group and a second list of resources characterizing the second group, wherein the providing further includes providing the first costs and the second costs.

2. The method of claim 1 , further comprising:

associating the first costs with the first resource; and

associating the second costs with the second resource;

wherein the first list of resources further characterizes the first costs, and wherein the second list of resources further characterizes the second costs.

3. The method of claim 1 , wherein the grouping is according to product identity, wherein the first tag includes a first product identity and the second tag includes a second product identity, wherein a product includes a plurality of associated services.

4. The method of claim 1 , wherein the grouping is according to a plurality of components of a product, wherein the first tag includes a first identity of a first component of the product, the second tag includes a second identity, wherein the second identity is of a second component of the product, and wherein the first component of the product includes a first service and the second component of the product includes a second service.

5. The method of claim 1 , further comprising:

receiving data characterizing changes to the data model;

regrouping, based on the received data, the plurality of resources, the regrouping forming a modified first group associated with the first tag and a modified second group associated with the second tag; and

updating the first list of resources based at least on the modified first group and updating the second list of resources based at least on the modified second group.

6. The method of claim 1 , wherein the first remote computing environment includes a first cloud resource provider and the second remote computing environment includes a second cloud resource provider different than the first cloud resource provider.

7. The method of claim 1 , wherein the first remote computing environment includes an on premise computing environment.

8. The method of claim 1 , wherein the data model is received from a database that forms part of a services discovery platform including a service registry, wherein the service registry contains identities of available service instances and associated connection information for services within a plurality of remote computing environments, and wherein new service instances, during or after instantiation, register with the services registry.

9. The method of claim 1 , wherein the first resource includes a virtual machine, a storage account, a web application, a database, and/or a virtual network.

10. The method of claim 1 , wherein the querying the second remote computing environment for second costs associated with hosting the second resource within the second remote computing environment is performed using at least an application programming interface of the second remote computing environment; and

wherein the first remote computing environment includes a first cloud resource provider and the second remote computing environment includes a second cloud resource provider different than the first cloud resource provider.

11. A system comprising:

at least one data processor; and

memory storing instructions which, when executed by the at least one data processor, causes the at least one data processor to perform operations comprising:

receiving a data model characterizing a plurality of resources, the data model associating a first resource within a first remote computing environment with a first tag and a second resource within a second remote computing environment with a second tag, the data model received from a database that is separate from the first remote computing environment and the second remote computing environment;

grouping, based on the first tag and the second tag, the plurality of resources, the grouping forming a first group associated with the first tag and a second group associated with the second tag;

querying a plurality of remote computing environments for costs associated with hosting resources, the querying including:

querying, using at least an application programming interface of the first remote computing environment, the first remote computing environment for first costs associated with hosting the first resource within the first remote computing environment, and

querying the second remote computing environment for second costs associated with hosting the second resource within the second remote computing environment; and

providing a first list of resources characterizing the first group and a second list of resources characterizing the second group, wherein the providing further includes providing the first costs and the second costs.

12. The system of claim 11 , the operations further comprising:

associating the first costs with the first resource; and

associating the second costs with the second resource;

wherein the first list of resources further characterizes the first costs, and wherein the second list of resources further characterizes the second costs.

13. The system of claim 11 , wherein the grouping is according to product identity, wherein the first tag includes a first product identity and the second tag includes a second product identity, wherein a product includes a plurality of associated services.

14. The system of claim 11 , wherein the grouping is according to a plurality of components of a product, wherein the first tag includes a first identity of a first component of the product, the second tag includes a second identity, wherein the second identity is of a second component of the product, and wherein the first component of the product includes a first service and the second component of the product includes a second service.

15. The system of claim 11 , the operations further comprising:

receiving data characterizing changes to the data model;

regrouping, based on the received data, the plurality of resources, the regrouping forming a modified first group associated with the first tag and a modified second group associated with the second tag; and

updating the first list of resources based at least on the modified first group and updating the second list of resources based at least on the modified second group.

16. The system of claim 11 , wherein the first remote computing environment includes a first cloud resource provider and the second remote computing environment includes a second cloud resource provider different than the first cloud resource provider.

17. A non-transitory computer readable medium storing instructions which, when executed by at least one data processor forming part of at least one computing system, causes the at least one data processor to perform operations comprising:

receiving a data model characterizing a plurality of resources, the data model associating a first resource within a first remote computing environment with a first tag and a second resource within a second remote computing environment with a second tag, the data model received from a database that is separate from the first remote computing environment and the second remote computing environment;

grouping, based on the first tag and the second tag, the plurality of resources, the grouping forming a first group associated with the first tag and a second group associated with the second tag;

querying a plurality of remote computing environments for costs associated with hosting resources, the querying including:

querying, using at least an application programming interface of the first remote computing environment, the first remote computing environment for first costs associated with hosting the first resource within the first remote computing environment, and

querying the second remote computing environment for second costs associated with hosting the second resource within the second remote computing environment; and

providing a first list of resources characterizing the first group and a second list of resources characterizing the second group, wherein the providing further includes providing the first costs and the second costs.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 11, 2021
From: GIRALDO, SINDY; SOUNDARARAJAN, SAI VARUN PRASANTH
To: CITRIX SYSTEMS, INC.
Reel/Frame 054871/0891 →
Cited By (3)
US 12,346,689 US 12,511,171 US 12,693,841