# US 9,436,459 B2 · Generating cross-mapping of vendor software in a cloud computing environment

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

- Number: US 9,436,459 B2
- Document ID: US9436459B2
- Status: Granted
- Kind: B2
- Application number: 12/790,527
- Filed: 2010-05-28
- Published: 2011-12-01
- Granted: 2016-09-06
- Earliest claimed: 2010-05-28
- Assignees: Red Hat, Inc.
- Applicants: James Michael Ferris; Gerry Edward Riveros
- Inventors: James Michael Ferris; Gerry Edward Riveros
- Web page: https://patentgrep.com/patent/US9436459B2

## CPC

- G06F 8/71: Version control (security arrangements therefor G06F21/57); Configuration management
- G06F 9/44536: {Selecting among different versions}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A compatibility service can determine the compatibility of different software programs provide by different vendors in a cloud. The compatibility service can identify the software programs provided by different vendors in the cloud and which of the identified software programs are compatible. The compatibility service can generate and store a record of the compatible software programs and provide identification, tracking, and mapping services based on the record.

## Claims

### Claim 1

A method comprising:
storing, by a processor in a first record in a computer readable storage medium, data relating to software program compatibility, wherein the software program compatibility is determined in view of at least one of a processing compatibility or a bandwidth compatibility, wherein the first record comprises a first data element identifying a first software program from a first provider in a cloud and a second data element identifying one or more software programs compatible with the first software program, and wherein the one or more software programs comprise a second software program from a second provider, and wherein the second software program is different from the first software program;
storing, in a second record, data relating to a plurality of software appliances and a plurality of software programs associated with each of the plurality of software appliances;
receiving a request to design a new software appliance;
determining alternative sets of software programs that can be used to design the new software appliance in view of the second record;
generating a plurality of designs of the new software appliance, wherein each design is associated with a set of software programs that are determined compatible in view of the first record;
presenting, on a graphical user interface, the plurality of designs of the new software appliance; and
in response to receiving a selection of a design of the plurality of designs of the new software appliance through the graphical user interface, generating a specification for the new software appliance, wherein the specification comprises the set of software programs associated with the selected design.

### Claim 2 (depends on 1)

The method of claim 1, the method further comprising:
determining a third software program from a third provider in the cloud can compatibly share data with the first software program and the second software program;
storing, in the second data element, an identifier of the third software program indicating compatibility of the third software program with the first software program, wherein the second provider is different from the first provider, and wherein the record is associated with both the first software program and the second software program, wherein the software compatibility further comprises at least one of a memory compatibility or a storage compatibility; and
storing, in the first record, a third data element, wherein the third data element further comprises at least one of a minimum processing resource required, a minimum memory resource required, a minimum bandwidth resource required, or a minimum storage resource required.

### Claim 3 (depends on 1)

The method of claim 1, the method further comprising:
identifying first cloud resources required to execute the first software program in the cloud;
identifying second cloud resources required to execute the second software program in the cloud; and
storing, in the first record, an identifier of the first cloud resources and an identifier of the second cloud resources.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
identifying the first software program from the first provider in the cloud; and
receiving an identifier of the first software program from at least one of the first provider or a cloud management system of the cloud.

### Claim 5 (depends on 1)

The method of claim 1,
determining the second software program from that second provider can compatibly share data with the first software program;
determining the compatibility of the second software program and the first software program in view of usage of the first software program with the second software program in the cloud.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
providing, to a user, a report of the compatibility between the first software program and the second software program; and
tracking the compatibility of the first software program in view of the first record.

### Claim 7 (depends on 6)

The method of claim 6, wherein the user comprises the first provider, the second provider, or a user of the cloud.

### Claim 8 (depends on 6)

The method of claim 6, wherein the report is provided as a service to the user for a fee.

### Claim 9

A non-transitory computer readable storage medium comprising instructions, that when executed by a processor, cause the processor to:
store, in a first record, data relating to software program compatibility, wherein the software program compatibility is determined in view of at least one of a processing compatibility or a bandwidth compatibility, wherein the first record comprises a first data element identifying a first software program from a first provider in a cloud and a second data element identifying one or more software programs compatible with the first software program, and wherein the one or more software programs comprise a second software program from a second provider, and wherein the second software program is different from the first software program;
store, in a second record, data relating to a plurality of software appliances and a plurality of software programs associated with each of the plurality of software appliances;
receive a request to design a new software appliance;
determine alternative sets of software programs that can be used to design the new software appliance in view of the second record;
generate a plurality of designs of the new software appliance, wherein each design is associated with a set of software programs that are determined compatible in view of the first record;
present, on a graphical user interface, the plurality of designs of the new software appliance; and
in response to receiving a selection of a design of the plurality of designs of the new software appliance through the graphical user interface, generate a specification for the new software appliance, wherein the specification comprises the set of software programs associated with the selected design.

### Claim 10 (depends on 9)

The non-transitory computer readable storage medium of claim 9, wherein the processor is further to:
determine a third software program from a third provider in the cloud can compatibly share data with the first software program and the second software program;
store, in the second data element, an identifier of the third software program indicating compatibility of the third software program with the first software program, wherein the second provider is different from the first provider, and wherein the record is associated with both the first software program and the second software program, and wherein the software compatibility further comprises at least one of a memory compatibility or a storage compatibility; and
store, in the first record, a third data element, wherein the third data element further comprises at least one of a minimum processing resource required, a minimum memory resource required, a minimum bandwidth resource required, or a minimum storage resource required.

### Claim 11 (depends on 9)

The non-transitory computer readable storage medium of claim 9, wherein the processor is further to:
identify first cloud resources required to execute the first software program in the cloud;
identify second cloud resources required to execute the second software program in the cloud; and
store, in the first record, an identifier of the first cloud resources and an identifier of the second cloud resources.

### Claim 12 (depends on 9)

The non-transitory computer readable storage medium of claim 9, wherein the processor is further to:
provide, to a user, a report of the compatibility between the first software program and the second software program; and
track the compatibility of the first software program in view of the first record.

### Claim 13 (depends on 9)

The non-transitory computer readable storage medium of claim 9, wherein the processor is further to:
determine the second software program from that second provider can compatibly share data with the first software program; and
determine the compatibility of the second software program and the first software program in view of usage of the first software program with the second software program in the cloud.

### Claim 14

A method comprising:
determining, by a processor, a set of software programs in a cloud that can compatibly share data by querying a cloud management system for software program compatibility;
storing, by a processor in a first record in a computer readable storage medium, data relating to the software program compatibility, wherein the software program compatibility is determined in view of at least one of a processing compatibility or a bandwidth compatibility, wherein the first record comprises a first data elements identifying a first software program of the set of software programs and a second data element identifying remaining software programs in the set of software programs as compatible with the first software program;
storing, in a second record, data relating to a plurality of software appliances and a plurality of software programs associated with each of the plurality of software appliances;
receiving a request to design a new software appliance;
determining alternative groups of software programs that can be used to design the new software appliance in view of the second record;
generating a plurality of designs of the new software appliance, wherein each design is associated with a group of software programs that are determined compatible in view of the first record;
presenting, on a graphical user interface, the plurality of designs of the new software appliance; and
in response to receiving a selection of a design of the plurality of designs of the new software appliance through the graphical user interface, generating a specification for the new software appliance, wherein the specification comprises the group of software programs associated with the selected design.

### Claim 15 (depends on 14)

The method of claim 14, the method further comprising:
determining cloud resources required to execute, in the cloud, each software program in the set of the software programs; and
storing, in the first record, an identifier of the cloud resources and a third data element, wherein the software compatibility further comprises at least one of a memory compatibility or a storage compatibility, and wherein the third data element further comprises at least one of a minimum processing resource required, a minimum memory resource required, a minimum bandwidth resource required, or a minimum storage resource required.

### Claim 16 (depends on 14)

The method of claim 14, wherein identifying the software programs comprises:
receiving an identifier of the software programs from at least one of different providers or the cloud management system of the cloud.

### Claim 17 (depends on 14)

The method of claim 14, wherein determining the set of software programs that can compatibly share data, comprises:
determining the set of software programs in view of usage of the set of software programs together in the cloud.

### Claim 18 (depends on 14)

The method of claim 14, the method further comprising:
providing, to a user, a report identifying the set of the software programs; and
tracking the compatibility of the set of software programs in view of the first record.

### Claim 19 (depends on 18)

The method of claim 18, wherein the user comprises one or more of different providers or a user of the cloud.

### Claim 20 (depends on 18)

The method of claim 18, wherein the report is provided as a service to the user for a fee.

### Claim 21 (depends on 14)

A non-transitory computer readable storage medium comprising instructions, that when executed by the processor cause the processor to perform operations of claim 14.
