# US 10,873,540 B2 · Crowd-sourced cloud computing resource validation

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

- Number: US 10,873,540 B2
- Document ID: US10873540B2
- Status: Granted
- Kind: B2
- Application number: 15/203,767
- Filed: 2016-07-06
- Published: 2018-01-11
- Granted: 2020-12-22
- Earliest claimed: 2016-07-06
- Assignees: Cisco Technology, Inc.
- Applicants: Cisco Technology, Inc.
- Inventors: Plamen Nedeltchev; David Delano Ward; Mohit Agrawal; Alon Shlomo Bernstein
- Web page: https://patentgrep.com/patent/US10873540B2

## CPC

- H04L 47/822: {Collecting or measuring resource availability data}
- G06F 9/5072: {Grid computing}
- H04L 43/022: by sampling
- H04L 43/062: related to network traffic
- 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

Resource provider specifications, characterizing computing resources of computing resource providers, are received. The reachability of each IP address included in the received specification is determined. An agent is deployed that is operable to determine the value of each of a set of metrics in the environment of the host at which the agent is deployed. The agent determines the value of each metric of the set of metrics in the environment of the relevant host, and communicates the determined values to one or more computing devices that validate whether the resources characterized by the communicated values are sufficient to provide the performance characterized by the received specification and that each ISP router complies with a predetermined policy. For each computing resource provider validated and determined to comprise an ISP router compliant with policy, the specified computing resources are added to a pool of resources for cloud computing.

## Claims

### Claim 1

A method, comprising:
receiving, by one or more computing devices, a plurality of resource provider specifications:
wherein each received specification characterizes computing resources of one of a plurality of computing resource providers, the computing resources having been registered for participation in a cloud computing service but not part of a pool of resources available for the cloud computing service, the computing resources comprising at least one host and one Internet Service Provider (ISP) router, and each received specification comprises one or more values for each of a plurality of resource specification parameters including an Internet Protocol (IP) address for each specified host, an IP address for each specified Internet Service Provider (ISP) router, a processing capacity of the resources, a storage capacity of the resources, and a communication capacity of the ISP link to the resources;
determining, by the one or more computing devices for each received specification, a reachability of each IP address included in the received specification;
deploying, by the one or more computing devices and at each host determined to be reachable, an agent operable to determine a value of each of a set of metrics in an environment of the host at which the agent is deployed, wherein the set of metrics comprises a subset of the received resource specification parameters;
determining, by each deployed agent, the value of each metric of the set of metrics in the environment of the host at which the agent is deployed;
communicating, by each deployed agent to the one or more computing devices, the determined values of each of the set of metrics;
validating, by the one or more computing devices and for each computing resource provider, the received specification, wherein the validation comprises a comparison of the received specification for each computing resource provider to the set of metrics for the computing resource provider to determine that the resources characterized by the communicated values of the set of metrics for the computing resource provider are sufficient to provide the performance characterized by the received specification for that computing resource provider;
determining, by the one or more computing devices, that each ISP router in the resources of each computing resource provider complies with a predetermined policy; and
for each computing resource provider validated as sufficient to provide the performance characterized by its specification and determined to comprise an ISP router compliant with the predetermined policy, adding, by the one or more computer devices, the specified computing resources of the computing resource provider to the pool of resources for cloud computing.

### Claim 2 (depends on 1)

The method of claim 1, wherein each resource provider specification is received from a crowd-sourced cloud registration server of the cloud computing service.

### Claim 3 (depends on 1)

The method of claim 1, wherein the set of metrics includes an operating system version of each host, resource utilization metrics of each host, and a resources capacity for each host.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
upon determining that the resources characterized by the communicated values of the set of metrics for a given computing resource provider are not sufficient to provide the performance characterized by the received specification for that computing resource provider, requesting, by the one or more computing devices from the given resource provider, a reregistration of the computing resources of the resource provider, wherein the reregistration request is comprised of the resource specification parameters of the received specification that are not sufficient to provide the performance characterized by the received specification.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
for each computing resource provider validated as sufficient to provide the performance characterized by its specification and determined to comprise an ISP router compliant with the predetermined policy, determine and report on an ongoing basis, by at least one agent deployed to a host of the computing resource provider to the one or more computing devices, the value of each metric of the set of metrics in the environment of the host at which the at least one agent is deployed.

### Claim 6 (depends on 1)

The method of claim 1, wherein determining that each ISP router in the resources of each computing resource provider complies with a predetermined policy comprises at least one of:
determining that network address translation (NAT) is available at each ISP router in the resources of each computing resource provider; and
determining a number of IP addresses available at each ISP router in the resources of each computing resource provider.

### Claim 7 (depends on 1)

The method of claim 1, wherein the resources of each computing resource provider comprise ISP residential customer compute, store, and network resources.

### Claim 8

A computer program product, comprising:
one or more tangible media with logic encoded thereon that when executed by a computer cause the computer to be operable to:
receive, by one or more computing devices, a plurality of resource provider specifications:
wherein each received specification characterizes computing resources of one of a plurality of computing resource providers, the computing resources having been registered for participation in a cloud computing service but not part of a pool of resources available for the cloud computing service, the computing resources comprising at least one host and one Internet Service Provider (ISP) router, and each received specification comprises one or more values for each of a plurality of resource specification parameters including an Internet Protocol (IP) address for each specified host and for each specified Internet Service Provider (ISP) router;
determine, by the one or more computing devices for each received specification, a reachability of each IP address included in the received specification;
deploy, by the one or more computing devices and at each host determined to be reachable, an agent operable to determine a value of each of a set of metrics in an environment of the host at which the agent is deployed, wherein the set of metrics comprises a subset of the received resource specification parameters;
determine, by each deployed agent, the value of each metric of the set of metrics in the environment of the host at which the agent is deployed;
communicate, by each deployed agent to the one or more computing devices, the determined values of each of the set of metrics;
validate, by the one or more computing devices and for each computing resource provider, the received specification, wherein the validation comprises a comparison of the received specification for each computing resource provider to the set of metrics for the computing resource provider to determine that the resources characterized by the communicated values of the set of metrics for the computing resource provider are sufficient to provide the performance characterized by the received specification for that computing resource provider;
determine, by the one or more computing devices, that each ISP router in the resources of each computing resource provider complies with a predetermined policy; and
for each computing resource provider validated as sufficient to provide the performance characterized by its specification and determined to comprise an ISP router compliant with the predetermined policy, add, by the one or more computer devices, the specified computing resources of the computing resource provider to the pool of resources for cloud computing.

### Claim 9 (depends on 8)

The computer program product of claim 8, wherein each resource provider specification is received from a crowd-sourced cloud registration server of the cloud computing service.

### Claim 10 (depends on 8)

The computer program product of claim 8, wherein the set of metrics includes an operating system version of each host, resource utilization metrics of each host, and a resources capacity for each host.

### Claim 11 (depends on 8)

The computer program product of claim 8, further comprising:
upon determining that the resources characterized by the communicated values of the set of metrics for a given computing resource provider are not sufficient to provide the performance characterized by the received specification for that computing resource provider, requesting, by the one or more computing devices from the given resource provider, a reregistration of the computing resources of the resource provider, wherein the reregistration request is comprised of the resource specification parameters of the received specification that are not sufficient to provide the performance characterized by the received specification.

### Claim 12 (depends on 8)

The computer program product of claim 8, further comprising:
for each computing resource provider validated as sufficient to provide the performance characterized by its specification and determined to comprise an ISP router compliant with the predetermined policy, determining and reporting on an ongoing basis, by at least one agent deployed to a host of the computing resource provider to the one or more computing devices, the value of each metric of the set of metrics in the environment of the host at which the at least one agent is deployed.

### Claim 13 (depends on 8)

The computer program product of claim 8, wherein determining that each ISP router in the resources of each computing resource provider complies with a predetermined policy comprises at least one of:
determining that network address translation (NAT) is available at each ISP router in the resources of each computing resource provider; and
determining a number of IP addresses available at each ISP router in the resources of each computing resource provider.

### Claim 14 (depends on 8)

The computer program product of claim 8, wherein the resources of each computing resource provider comprise ISP residential customer compute, store, and network resources.

### Claim 15

A system, comprising:
a storage device; and
a processor communicatively coupled to the storage device, wherein the processor executes application code instructions that are stored in the storage device to cause the system to:
receive, by one or more computing devices, a plurality of resource provider specifications:
wherein each received specification characterizes computing resources of one of a plurality of computing resource providers, the computing resources having been registered for participation in a cloud computing service but not part of a pool of resources available for the cloud computing service, the computing resources comprising at least one host and one Internet Service Provider (ISP) router, and each received specification comprises one or more values for each of a plurality of resource specification parameters including an Internet Protocol (IP) address for each specified host and for each specified Internet Service Provider (ISP) router;
determine, by the one or more computing devices for each received specification, a reachability of each IP address included in the received specification;
deploy, by the one or more computing devices and at each host determined to be reachable, an agent operable to determine a value of each of a set of metrics in an environment of the host at which the agent is deployed, wherein the set of metrics comprise a subset of the received resource specification parameters;
determine, by each deployed agent, the value of each metric of the set of metrics in the environment of the host at which the agent is deployed;
communicate, by each deployed agent to the one or more computing devices, the determined values of each of the set of metrics;
validate, by the one or more computing devices, for each computing resource provider, the received specification, wherein the validation comprises a comparison of the received specification for each computing resource provider to the set of metrics for the computing resource provider to determine that the resources characterized by the communicated values of the set of metrics for the computing resource provider are sufficient to provide the performance characterized by the received specification for that computing resource provider;
determine, by the one or more computing devices, that each ISP router in the resources of each computing resource provider complies with a predetermined policy; and
for each computing resource provider validated as sufficient to provide the performance characterized by its specification and determined to comprise an ISP router compliant with the predetermined policy, add, by the one or more computer devices, the specified computing resources of the computing resource provider to the pool of resources for cloud computing.

### Claim 16 (depends on 15)

The system of claim 15, wherein each resource provider specification is received from a crowd-sourced cloud registration server of the cloud computing service.

### Claim 17 (depends on 15)

The system of claim 15, wherein the processor father executes application code instructions that are stored in the storage device to cause the system to:
upon determining that the resources characterized by the communicated values of the set of metrics for a given computing resource provider are not sufficient to provide the performance characterized by the received specification for that computing resource provider, request, by the one or more computing devices from the given resource provider, a reregistration of the computing resources of the resource provider, wherein the reregistration request is comprised of the resource specification parameters of the received specification that are not sufficient to provide the performance characterized by the received specification.

### Claim 18 (depends on 15)

The system of claim 15, wherein the processor further executes application code instructions that are stored in the storage device to cause the system to:
for each computing resource provider validated as sufficient to provide the performance characterized by its specification and determined to comprise an ISP router compliant with the predetermined policy, determine and report on an ongoing basis, by at least one agent deployed to a host of the computing resource provider to the one or more computing devices, the value of each metric of the set of metrics in the environment of the host at which the at least one agent is deployed.

### Claim 19 (depends on 15)

The system of claim 15, wherein determining that each ISP router in the resources of each computing resource provider complies with the predetermined policy comprises at least one of:
determining that network address translation (NAT) is available at each ISP router in the resources of each computing resource provider; and
determining a number of IP addresses available at each ISP router in the resources of each computing resource provider.

### Claim 20 (depends on 15)

The system of claim 15, wherein the resources of each computing resource provider comprise ISP residential customer compute, store, and network resources.
