# US 10,320,922 B1 · Inventory manager for distributed systems

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,320,922 B1
- Document ID: US10320922B1
- Status: Granted
- Kind: B1
- Application number: 15/192,855
- Filed: 2016-06-24
- Granted: 2019-06-11
- Earliest claimed: 2016-03-28
- Assignees: Amazon Technologies, Inc.
- Applicants: Amazon Technologies, Inc.
- Inventors: Amjad Hussain; Sivaprasad Venkata Padisetty; Emily Grace Aimette Freebairn; Steven Merlin Twitchell
- Web page: https://patentgrep.com/patent/US10320922B1

## CPC

- H04L 41/5051: Service on demand, e.g. definition and deployment of services in real time
- G06F 8/65: Updates (security arrangements therefor G06F21/57)
- G06F 9/45533: {Hypervisors; Virtual machine monitors}
- G06F 11/00: Error detection; Error correction; Monitoring (error detection, correction or monitoring in information storage based on relative movement between record carrier and transducer G11B20/18; monitoring, i.e. supervising the progress of recording or reproducing G11B27/36; in static stores G11C29/00)
- H04L 43/00: Arrangements for monitoring or testing data switching networks
- G06F 11/302: {where the computing system component is a software system}
- G06F 11/3051: {Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs (verification or detection of system hardware configuration G06F11/2247)}
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Mechanisms are presented by which a customer of a resource provider can determine information about the portions of shared resources that are allocated to the customer. The information can include, for example, the software, operating systems software versions, software updates, software patches, and other such packages installed and/or executing on the various resources. In at least some embodiments, a customer can select one of a set of predefined actions that enables the customer to query the allocations, or resource instances, to obtain the information, such as through a series of inventory reports stored to a central location. In at least some embodiments the information can be obtained using a set of gatherers each configured to obtain a specific type of information.

## Claims

### Claim 1

A system, comprising:
a plurality of computing resources, at least one of the plurality of computing devices including a processor and a memory;
a plurality of gatherers, each of the gatherers capable of executing on a respective computing resource of the plurality of computing resources allocated to a user, gathering a respective type of information at a specified time, and rejecting the information that does not conform to a specified format;
a user interface providing access to the system on behalf of the user; and
a system manager configured to receive a request via the user interface, the request specifying a subset of the computing resources from which to obtain one or more types of information, the subset of the computing resources including a plurality of virtual machines allocated to the user, the system manager further configured to determine a subset of the plurality of gatherers for obtaining the one or more types of information from the subset of the computing resources, the one or more types of information relating at least to operating systems installed on the subset of computing resources, the system manager further configured to store inventory reports generated by the subset of the plurality of gatherers into a user-accessible location from which the user can access the inventory reports via the user interface.

### Claim 2 (depends on 1)

The system of claim 1, wherein the one or more types of information relate to at least one of software, software versions, software updates, or software patches installed on the subset of computing resources.

### Claim 3 (depends on 1)

The system of claim 1, wherein the user interface is configured to present a set of predefined actions that are selectable through the user interface, the predefined actions relating to obtaining at least one type of data using at least one respective gatherer.

### Claim 4

A computer-implemented method, comprising:
determining installation information to be obtained for a set of resources allocated to a user, the installation information relating at least to software installed on the set of resources;
determining a set of gatherers for obtaining the installation information, each gatherer of the set of gatherers configured to obtain at least a portion of the installation information;
causing each gatherer of the set of gatherers to be executed at a specified time using the set of resources, at least one of the set of gatherers rejecting a portion of the installation information that is not in a specified format, each gatherer of the set of gatherers generating a respective data set representing a respective portion of the installation information; and
providing access to the installation information from a user-accessible location to which the respective data set from each gatherer of the set of gatherers is stored.

### Claim 5 (depends on 4)

The computer-implemented method of claim 4, further comprising:
receiving indication of at least one of the set of resources or the installation information through a user console.

### Claim 6 (depends on 5)

The computer-implemented method of claim 5, further comprising:
causing the user console to display one or more pre-defined actions relating to the installation information; and
receiving selection of a selected action of the pre-defined actions, the selected action associated with the set of gatherers to be executed.

### Claim 7 (depends on 4)

The computer-implemented method of claim 4, wherein the set of resources allocated to the user includes a plurality of virtual machines executing at least one guest operating system.

### Claim 8 (depends on 4)

The computer-implemented method of claim 4, wherein the installation information relates to at least one of software, operating systems, software versions, software updates, or software patches installed on the set of resources.

### Claim 9 (depends on 4)

The computer-implemented method of claim 4, wherein each gatherer comprises script executable on at least one of the set of resources, each gatherer configured to obtain information from at least one specific location on a respective resource on which the gatherer is executing.

### Claim 10 (depends on 4)

The computer-implemented method of claim 4, further comprising:
receiving a custom gatherer configured to obtain a specific type of data from a specific location on at least one resource of the set of resources; and
enabling the custom gatherer to be selected for use in obtaining at least a respective portion of the installation information.

### Claim 11 (depends on 4)

The computer-implemented method of claim 4, further comprising:
determining a format in which the installation information is to be provided; and
causing the gatherers to provide the respective data sets in the determined format.

### Claim 12 (depends on 4)

The computer-implemented method of claim 4, further comprising:
causing the data sets for a specific resource of the set of resources to be stored to a folder associated with the specific resource.

### Claim 13 (depends on 4)

The computer-implemented method of claim 4, further comprising:
determining that a user associated with the set of resources has permission to access the set of gatherers; and
obtaining the set of gatherers from a gatherer repository containing a plurality of preconfigured gatherers.

### Claim 14

A system, comprising:
at least one processor; and
memory including instructions that, when executed by the at least one processor, cause the system to:
determine installation information to be obtained for a set of resources allocated to a user, the installation information relating at least to software installed on the set of resources;
determine a set of gatherers for obtaining the installation information, each gatherer of the set of gatherers configured to obtain at least a portion of the installation information;
cause each gatherer of the set of gatherers to be executed at a specified time using the set of resources, at least one of the set of gatherers rejecting a portion of the installation information that is not in a specified format, each gatherer of the set of gatherers generating a respective data set representing a respective portion of the installation information; and
provide access to the installation information from a user-accessible location to which the respective data set from each gatherer of the set of gatherers is stored.

### Claim 15 (depends on 14)

The system of claim 14, wherein the instructions when executed further cause the system to:
cause a user console to display one or more pre-defined actions relating to the installation information; and
receive a selection of a selected action of the pre-defined actions, the selected action associated with the set of gatherers to be executed.

### Claim 16 (depends on 14)

The system of claim 14, wherein the instructions when executed further cause the system to:
determine a format in which the installation information is to be provided; and
cause the gatherers to provide the respective data sets in the determined format.

### Claim 17 (depends on 14)

The system of claim 14, wherein the set of resources allocated to the user includes a plurality of virtual machines, and wherein the installation information relates to at least one of software, operating systems, software versions, software updates, or software patches installed on the set of plurality of virtual machines.

### Claim 18 (depends on 14)

The system of claim 14, wherein each gatherer comprises script executable on at least one of the set of resources, each gatherer configured to obtain information from at least one specific location on a respective resource on which the gatherer is executing.

### Claim 19 (depends on 14)

The system of claim 14, wherein the instructions when executed further cause the system to:
cause the data sets for a specific resource of the set of resources to be stored to a folder associated with the specific resource.

### Claim 20 (depends on 14)

The system of claim 14, wherein the instructions when executed further cause the system to:
determine that a user associated with the set of resources has permission to access the set of gatherers; and
obtain the set of gatherers from a gatherer repository containing a plurality of preconfigured gatherers.
