IP Library Granted Patent US 8,019,872
Granted Patent B2
US 8,019,872 · App. 11/772,944 · Granted Sep 13, 2011

Systems, methods and computer program products for performing remote data storage for client devices

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 8,019,872
App. No.
11/772,944
Granted
Sep 13, 2011
Kind
B2
Abstract

Remote data storage is performed for client devices that are associated with an enterprise, by performing the following automatically at a given client device in response to authorization from the given client device: obtaining metadata about the given client device; uploading the metadata to a remote data storage system and initiating an initial remote data storage to the remote data storage system using the metadata that was obtained. At the remote data storage system, a load balancing program may be executed to programmatically assign a given client device to a subset of remote data storage devices in response to obtaining the metadata about the given client device.

Claims (71)

1. A method of performing remote data storage for a plurality of client devices that are associated with an enterprise comprising:

obtaining authorization at a remote data storage system from an administrator of the enterprise to subscribe the plurality of client devices to the remote data storage system;

in response to obtaining the administrator authorization, downloading remote data storage software for the remote data storage system to the plurality of client devices;

in response to authorization from a given client device, performing the following automatically at the given client device: installing the remote data storage software, obtaining metadata about the given client device, uploading the metadata to the remote data storage system and initiating an initial remote data storage to the remote data storage system using the metadata that was obtained; and

performing the following at the remote data storage system:

assigning the enterprise to a plurality of remote data storage devices in the remote data storage system in response to obtaining authorization from the administrator of the enterprise to subscribe the plurality of client devices to the remote data storage system;

executing a load-balancing program to programmatically assign the given client device to a subset of the remote data storage devices, in response to obtaining the metadata about the given client device; and

wherein initiating an initial remote data storage to the remote data storage system using the metadata that was obtained comprises initiating an initial remote data storage to the subset of the remote data storage devices in the remote data storage system,

wherein executing a load-balancing program to programmatically assign the given client device to a subset of the remote data storage devices comprises:

identifying the plurality of remote data storage devices that are assigned to the enterprise;

identifying from the plurality of remote data storage devices that are assigned to the enterprise, candidate remote data storage devices for remote data storage for the given client device;

assigning the given client device to at least one remote data storage device from the candidate remote data storage devices, that is storing data for a fewest number of client devices, if the fewest number of client devices is less than a predetermined number; and

assigning the given client device to at least one remote data storage device from the candidate remote data storage devices, that is storing data for a fewest number of client devices and that also has a lowest ratio of assigned client devices to actual client devices, if the fewest number of client devices is more than the predetermined number.

2. A method according to claim 1 wherein the metadata about the given client device comprises an address of the given client device and a data storage quantity for the given client device.

3. A remote data storage system that is configured to perform the method of claim 1 .

4. A computer program product, the computer program product on a computer device and having computer-readable program code embodied in a tangible computer readable medium, the computer-readable program code when executed by the computer device causes the computer device to perform the method of claim 1 .

5. A method of performing remote data storage for a plurality of client devices that are associated with an enterprise comprising:

assigning the enterprise to a subset of remote data storage devices in a remote data storage system; and

executing a load-balancing program to programmatically assign a given client device that is associated with the enterprise to at least one of the remote data storage devices in the subset,

wherein the load-balancing program uses a predetermined number to assign the given client device to the at least one of the remote data storage devices in the subset; and

wherein the load balancing program assigns the given client device to the at least one of remote data storage devices in the subset, that is storing data for a fewest number of client devices and that also has a lowest ratio of assigned client devices to actual client devices, if the fewest number of client devices is more than the predetermined number.

6. A method according to claim 5 wherein the executing the load-balancing program to programmatically assign the given client device that is associated with the enterprise to the at least one of the remote data storage devices in the subset comprises:

identifying from the subset of remote data storage devices that are assigned to the enterprise, candidate remote data storage devices for remote data storage for the given client device; and

assigning the given client device to at least one remote data storage device from the candidate remote data storage devices, that is storing data for the fewest number of client devices, if the fewest number of client devices is less than the predetermined number.

7. A remote data storage system that is configured to perform the method of claim 5 .

8. A computer program product, the computer program product on a computer device and having computer-readable program code embodied in a tangible computer readable medium, the computer-readable program code when executed by the computer device causes the computer device to perform the method of claim 5 .

9. A method of performing remote data storage for a plurality of client devices that are associated with an enterprise comprising:

assigning the enterprise to a subset of remote data storage devices in a remote data storage system; and

executing a load-balancing program to programmatically assign a given client device that is associated with the enterprise to at least one of the remote data storage devices in the subset, wherein executing a load-balancing program to programmatically assign a given client device that is associated with the enterprise to at least one of the remote data storage devices in the subset comprises:

identifying from the subset of remote data storage devices that are assigned to the enterprise, candidate remote data storage devices for remote data storage for the given client device;

assigning the given client device to at least one remote data storage device from the candidate remote data storage devices, that is storing data for a fewest number of client devices, if the fewest number of client devices is less than a predetermined number; and

assigning the given client device to at least one remote data storage device from the candidate remote data storage devices, that is storing data for a fewest number of client devices and that also has a lowest ratio of assigned client devices to actual client devices, if the fewest number of client devices is more than the predetermined number.

10. A method of performing remote data storage for a plurality of client devices comprising:

in response to authorization from a given client device, performing the following automatically at the given client device: obtaining metadata about the given client device; uploading the metadata to a remote data storage system and initiating an initial remote data storage to the remote data storage system using the metadata that was obtained; and

executing a load-balancing program to programmatically assign the given client device to at least one remote data storage device in a subset of remote data storage devices from the data storage system, wherein executing the load-balancing program comprises:

assigning the given client device to the at least one remote data storage device that is storing data for a fewest number of client devices, if the fewest number of client devices is less than a predetermined number; and

assigning the given client device to the at least one remote data storage device that also has a lowest ratio of assigned client devices to actual client devices, if the fewest number of client devices is more than the predetermined number.

11. A method according to claim 10 wherein the plurality of client devices are associated with an enterprise, the method further comprising the following that are performed by the remote data storage system:

assigning the enterprise to a plurality of remote data storage devices in the remote data storage system;

executing the load-balancing program to programmatically assign the given client device to the subset of the plurality of remote data storage devices, in response to obtaining the metadata about the given client device; and

wherein the initiating the initial remote data storage to the remote data storage system using the metadata that was obtained comprises initiating the initial remote data storage to the subset of the plurality of remote data storage devices in the remote data storage system.

12. A method according to claim 11 wherein the executing the load-balancing program further comprises:

identifying the plurality of remote data storage devices that are assigned to the enterprise;

identifying from the plurality of remote data storage devices that are assigned to the enterprise, candidate remote data storage devices for remote data storage for the given client device; and

assigning the given client device to at least one remote data storage device from the candidate remote data storage devices.

13. A method according to claim 12 further comprising:

assigning the given client device to at least one remote data storage device from the candidate remote data storage devices, that is storing data for the fewest number of client devices and that also has the lowest ratio of assigned client devices to actual client devices, if the fewest number of client devices is more than the predetermined number.

14. A method according to claim 10 wherein the metadata about the given client device comprises an address of the given client device and a data storage quantity for the given client device.

15. A remote data storage system that is configured to perform the method of claim 10 .

16. A computer program product, the computer program product on a computer device and having computer-readable program code embodied in a tangible computer readable medium, the computer-readable program code when executed by the computer device causes the computer device to perform the method of claim 10 .

17. A method of performing remote data storage for a client device comprising:

obtaining authorization at a remote data storage system to subscribe the client device to the remote data storage system;

in response to obtaining the authorization, downloading remote data storage software for the remote data storage system to the client device;

in response to authorization from the client device, performing the following automatically at the client device: installing the remote data storage software, obtaining metadata about the client device, uploading the metadata to the remote data storage system and initiating an initial remote data storage to the remote data storage system using the metadata that was obtained; and

executing a load-balancing program at the remote data storage system to programmatically assign the given client device to a subset of remote data storage devices in the remote data storage system, in response to obtaining the metadata about the given client device,

wherein executing the load-balancing program to programmatically assign the given client device to the subset of the remote data storage devices comprises:

identifying a plurality of remote data storage devices;

identifying from the plurality of remote data storage devices, candidate remote data storage devices for remote data storage for the given client device;

assigning the given client device to at least one remote data storage device from the candidate remote data storage devices, that is storing data for a fewest number of client devices, if the fewest number of client devices is less than a predetermined number; and

assigning the given client device to at least one remote data storage device from the candidate remote data storage devices, that is storing data for a fewest number of client devices and that also has a lowest ratio of assigned client devices to actual client devices, if the fewest number of client devices is more than the predetermined number.

18. A method according to claim 17

wherein the initiating the initial remote data storage to the remote data storage system using the metadata that was obtained comprises initiating the initial remote data storage to the subset of the remote data storage devices in the remote data storage system.

19. A method according to claim 17 wherein the metadata about the client device comprises an address of the client device and a data storage quantity for the client device.

20. A remote data storage system that is configured to perform the method of claim 17 .

21. A computer program product, the computer program product on a computer device and having computer-readable program code embodied in a tangible computer readable medium, the computer-readable program code when executed by the computer device causes the computer device to perform the method of claim 17 .

22. A method of performing remote data storage for a client device comprising:

assigning an enterprise to a subset of remote data storage devices in a remote data storage system;

in response to authorization from the client device, performing the following automatically at the client device: obtaining metadata about the client device; uploading the metadata to the remote data storage system and initiating an initial remote data storage to the subset of remote data storage devices in the remote data storage system using the metadata that was obtained; and

executing a load-balancing program to programmatically assign the client device to at least one of the remote data storage devices in the subset, wherein executing the load-balancing program comprises assigning the client device to at least one remote data storage device from candidate remote data storage devices of the subset, that is storing data for a fewest number of client devices and that also has a lowest ratio of assigned client devices to actual client devices, if the fewest number of client devices is more than a predetermined number.

23. A remote data storage system that is configured to perform the method of claim 22 .

24. A computer program product, the computer program product on a computer device and having computer-readable program code embodied in a tangible computer readable medium, the computer-readable program code when executed by the computer device causes the computer device to perform the method of claim 22 .

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: KYNDRYL, INC.
Reel/Frame 057885/0644 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 11, 2008
From: ARSENAL DIGITAL SOLUTIONS USA, INC.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 021513/0310 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 3, 2007
From: LORA, BRIAN M.; PILIONE, CHRISTOPHER L.; RUTHERFORD, DAVID W.; DEGUZMAN, MICHAEL M.
To: ARSENAL DIGITAL SOLUTIONS USA, INC.
Reel/Frame 019513/0039 →