# US 10,122,794 B2 · Storing data at a remote location based on predetermined criteria

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

- Number: US 10,122,794 B2
- Document ID: US10122794B2
- Status: Granted
- Kind: B2
- Application number: 15/024,377
- Filed: 2013-10-17
- Published: 2016-08-18
- Granted: 2018-11-06
- Earliest claimed: 2013-10-17
- Assignees: Hewlett Packard Enterprise Development LP
- Applicants: Hewlett Packard Enterprise Development LP
- Inventors: Eric Addkison Pendergrass
- Web page: https://patentgrep.com/patent/US10122794B2

## CPC

- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- G06F 16/122: {using management policies (point-in-time backing up or restoration of persistent data G06F11/1446; file migration policies for HSM systems G06F16/185)}
- G06F 21/6272: {by registering files or documents with a third party}
- H04L 67/52: specially adapted for the location of the user terminal
- H04L 67/60: Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources (admission control or resource allocation H04L47/70)
- H04L 69/28: Timers or timing mechanisms used in protocols
- G06F 2221/2101: Auditing as a secondary aspect
- 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

Storing data at a remote location based on predetermined criteria includes obtaining data from a remote sensor, identifying a storage provider that meets predetermined storage criteria of the data, and uploading the data to the storage provider.

## Claims

### Claim 1

A
non-transitory computer readable medium comprising instructions that, when executed, cause a processor to:
obtain data from a remote sensor;
identify a storage provider that meets predetermined storage criteria for a characteristic of a time slice of said data; and
upload said time slice of said data to said storage provider that meets predetermined storage criteria.

### Claim 2 (depends on 1)

The non-transitory computer readable medium of claim 1, further comprising instructions to cause said processor to identify said storage provider based on the characteristic being a determined value of said time slice of said data.

### Claim 3 (depends on 1)

The non-transitory computer readable medium of claim 1, further comprising instructions to cause said processor to identify said storage provider based on the characteristic being a duration of said time slice of said data.

### Claim 4 (depends on 1)

The non-transitory computer readable medium of claim 1, further comprising instructions to cause said processor to identify said storage provider based on a price of said storage provider.

### Claim 5 (depends on 1)

The non-transitory computer readable medium of claim 1, further comprising instructions to cause said processor to identify said storage provider based on a reliability of said storage provider.

### Claim 6 (depends on 1)

The non-transitory computer readable medium of claim 1, further comprising instructions to cause said processor to identify said storage provider based on a retrieval speed of said storage provider.

### Claim 7 (depends on 1)

The non-transitory computer readable medium of claim 1, further comprising instructions to cause said processor to identify different storage providers for multiple time slices of said data based on different characteristics of said multiple time slices.

### Claim 8 (depends on 1)

The non-transitory computer readable medium of claim 1, further comprising instructions to cause said processor to maintain a table of a location of time slices of said data.

### Claim 9 (depends on 1)

The non-transitory computer readable medium of claim 1, further comprising instructions to cause said processor to play back said data from said storage provider.

### Claim 10 (depends on 1)

The non-transitory computer readable medium of claim 1, further comprising instructions to cause said processor to play back said data from said storage provider by playing a first time slice of said data stored in a first location followed by playing a second time slice of said data stored in second location that is different than said first location automatically if said second time slice sequentially follows said first time slice based on time stamps.

### Claim 11

A system for storing data at a remote location based on predetermined criteria, comprising:
a processor; and
a non-transitory computer readable medium storing instructions that, when executed by the processor, cause said processor to:
obtain data from a remote sensor;
identify storage providers that meet predetermined storage criteria for a characteristic of a time slice of said data;
determine a storage provider of said storage providers to store said time slice of said data; and
upload said time slice to said storage provider.

### Claim 12 (depends on 11)

The system of claim 11, wherein said non-transitory computer readable medium stores instructions to maintain a table that tracks with which storage providers time slices of said data are stored.

### Claim 13 (depends on 11)

The system of claim 11, wherein said non-transitory computer readable medium stores instructions to play back time slices of said data.

### Claim 14 (depends on 13)

The system of claim 13, wherein said instructions to play back time slices of said data, when executed, cause said processor to play a first time slice of said data stored in a first location followed by playing a second time slice of said data stored in second location that is different than said first location automatically if said second time slice sequentially follows said first time slice based on time stamps.

### Claim 15

A method comprising:
obtaining, by a hardware-based storage broker, data from a remote sensor;
identifying, by said storage broker, storage providers that meet predetermined storage criteria for a characteristic of a time slice of said data;
determining, by said storage broker, a storage provider of said storage providers to store said time slice of said data;
uploading, by said storage broker, said time slice to said storage provider; and
maintaining, by said storage broker, a table that tracks with which storage providers time slices of said data are stored.

### Claim 16 (depends on 15)

The method of claim 15, further comprising playing back time slices of said data stored at different storage providers in sequential order.

### Claim 17 (depends on 1)

The non-transitory computer readable medium of claim 1, wherein said instructions that cause said processor to identify a storage provider that meets predetermined storage criteria of a time slice of said data includes instructions to:
identify multiple storage providers that meet predetermined storage criteria, and
determine said storage provider from said multiple storage providers.

### Claim 18 (depends on 17)

The non-transitory computer readable medium of claim 17, wherein said predetermined storage criteria are weighted, and
said instructions to determine said storage provider includes instructions to select from said multiple storage providers based on a highest weighted storage criterion.

### Claim 19 (depends on 2)

The non-transitory computer readable medium of claim 2, wherein said instructions to identify said storage provider identify an expensive storage provider from multiple storage providers for said time slice having a high determined value.

### Claim 20 (depends on 7)

The non-transitory computer readable medium of claim 7, wherein at least some time slices of said multiple time slices have different durations.
