IP Library Granted Patent US 11,714,551
Granted Patent B2
US 11,714,551 · App. 17/070,413 · Granted Aug 1, 2023

Credential manager with account selection and resource load-balancing

Inventor: Wyatt Tischler (Hollis, NH)
Assignee: EMC IP HOLDING COMPANY LLC
G06F3/0605G06F3/067G06F3/0635G06F3/0637
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 11,714,551
App. No.
17/070,413
Granted
Aug 1, 2023
Kind
B2
Abstract

The described technology is generally directed towards managing accounts for connecting applications to (e.g., third party) cloud storage providers. Various types of cloud storage providers and different accounts, e.g. corresponding to different usage scenarios with properties such as regions, storage tier levels, costs and so forth, are available to user applications. In one implementation, a user application provides desired account properties to a cloud credential manager via a REST API call to obtain the account information for an account, including credentials, configuration data and the like, returned in in a REST API response. The described technology facilitates selection of an account by the cloud credential manager based on matching the specified properties. Load balancing and storage costs can also be factors in the selection, and random selection is also available.

Claims (36)

1. A user device, comprising:

a processor;

and a memory that stores executable instructions that, when executed by the processor of a data storage system, facilitate performance of operations, the operations comprising:

receiving a request, associated with a first user, for an account dataset, wherein the request comprises account selection information for connection to a cloud storage provider account of a group of available cloud storage provider accounts, and wherein the request is a query for a matching account dataset having available memory to store data and is conducted prior to storing the data at one or more of the group of available cloud storage provider accounts;

querying a cloud credential data store comprising the group of available cloud storage provider accounts, wherein the cloud credential data store comprises first credentials associated with the first user and second credentials associated with a second user, the first user and the second user both enabled for access to the one or more group of available cloud storage provider accounts;

selecting, based on the account selection information, the matching account dataset that satisfies the request, the matching account dataset comprising an identifier of a selected cloud storage provider account and credentials for connection to the selected cloud storage provider account, wherein the matching account dataset is also available to the second user and the second credentials were previously established for the second user, and wherein the matching account dataset is available to store the data; and

returning, to the first user, a response comprising the matching account dataset and the second credentials to access the matching account dataset, thereby enabling subsequent storage of the data via instructions associated with the first user at the selected cloud storage provider.

2. The user device of claim 1 , wherein the account selection information indicates random account selection, and wherein the selecting the matching account dataset comprises performing random selection from a group of account datasets corresponding to the group of available cloud storage provider accounts.

3. The user device of claim 1 , wherein the selecting the matching account dataset comprises obtaining two or more candidate account datasets that each satisfy the account selection information and selecting the matching account dataset based on random selection from the candidate account datasets.

4. The user device of claim 1 , wherein the account selection information specifies weight data that gives preference to at least one available cloud storage provider account, and wherein the selecting the matching account dataset comprises obtaining two or more candidate account datasets that each satisfy the account selection information and selecting the matching account dataset based on using the weight data to bias a pseudorandom selection of the matching account dataset from the candidate account datasets.

5. The user device of claim 1 , wherein the operations further comprise tracking usage of respective cloud storage provider accounts of the group of available cloud storage provider accounts.

6. The user device of claim 5 , wherein the selecting the matching account dataset comprises obtaining two or more candidate account datasets that each satisfy the account selection information, and selecting the matching account dataset based on which of the candidate account datasets has a least usage.

7. The user device of claim 1 , wherein the selecting the matching account dataset comprises obtaining two or more candidate account datasets that each satisfy the account selection information, and selecting the matching account dataset based on a lower storage cost corresponding to one of the two or more candidate account datasets.

8. The user device of claim 1 , wherein the account selection information specifies workgroup information, and wherein the selecting the matching account dataset comprises filtering out account datasets from the group of available cloud storage provider accounts that do not match the workgroup information.

9. The user device of claim 1 , wherein the account selection information specifies cloud provider type information, and wherein the selecting the matching account dataset comprises filtering out account datasets from the group of available cloud storage provider accounts that do not match the cloud provider type information.

10. The user device of claim 1 , wherein the account selection information specifies property information, and wherein the selecting the matching account dataset comprises filtering out account datasets from the group of available cloud storage provider accounts that do not match the property information.

11. The user device of claim 10 , wherein the property information comprises at least one of region data or storage tier data.

12. The user device of claim 1 , wherein the operations further comprise maintaining a data store comprising the group of available cloud storage provider accounts, and updating the credentials of one of the group of available cloud storage provider accounts.

13. The user device of claim 1 , wherein the receiving the request comprises receiving a representational state transfer (REST) application programming interface call, and wherein the returning the matching account dataset in response to the request comprises returning a REST response.

14. A method, comprising:

maintaining, at a user device comprising a processor and a memory, a group of cloud storage provider account datasets, wherein respective cloud storage provider account datasets of the group are stored in the memory and

comprise first credentials for a first user and second credentials for a second user for connection to respective cloud storage provider accounts associated with the respective cloud storage provider account datasets of the group;

receiving a query, associated with the first user, comprising information for data to be stored at one or more of the cloud storage provider accounts associated with the respective cloud storage provider account datasets;

filtering, based on account selection information in the query, the respective cloud storage provider account datasets to obtain a subgroup of candidate account datasets that match the account selection information; and

selecting, for the first user, a cloud storage provider and an account dataset from the subgroup, resulting in a selected cloud storage provider and a selected account dataset, wherein the selecting facilitates subsequent storage of the data based on input received via access associated with the first user at the selected cloud storage provider, wherein the second credentials enable access to the selected account dataset in association with the second user.

15. The method of claim 14 , further comprising returning the selected cloud storage provider and the selected account dataset in response to the request, and

receiving an instruction to store the data at the selected account dataset.

16. The method of claim 14 , further comprising tracking usage of respective cloud storage provider accounts of the group of cloud storage provider accounts, and wherein the selecting the cloud storage provider and selected account dataset is based at least in part of usage of the cloud storage provider.

17. The method of claim 14 , wherein the selecting the cloud storage provider and the account dataset comprises performing a random selection or pseudorandom selection from the subgroup.

18. A non-transitory machine-readable medium, comprising executable instructions that, when executed by a processor of a data storage system, facilitate performance of operations, the operations comprising:

receiving, from a first user device associated with a first user, a request for an account dataset, wherein the request comprises cloud storage provider account credentials for connection to a cloud storage provider account of a group of cloud storage provider accounts assigned to the first user and a second user, the request associated with one or more account selection criteria, and wherein the request is received prior to storage of data at one or more accounts in the group of available cloud storage provider accounts and comprises a query for a matching account dataset to facilitate subsequent storage of the data;

applying the one or more account selection criteria to determine one or more account datasets that satisfy the one or more account selection criteria, wherein the one or more account datasets are available to store the data and have been previously accessed by a second user device associated with the second user;

in response to a determination that only one account dataset satisfies the one or more account selection criteria, returning the account dataset in response to the request; and

in response to a determination that more than one account dataset satisfies the one or more account selection criteria, determining a candidate subgroup comprising the more than one account datasets that satisfy the account selection criteria, selecting an account dataset from the subgroup resulting in a selected account dataset, and returning the selected account dataset in response to the request.

19. The non-transitory machine-readable medium of claim 18 , wherein more than one account dataset satisfies the one or more account selection criteria, and wherein the selecting the account dataset from the subgroup comprises performing random selection.

20. The non-transitory machine-readable medium of claim 18 , wherein the operations further comprise maintaining usage data for the cloud storage provider accounts, wherein more than one account dataset satisfies the one or more account selection criteria, and wherein the selecting the account dataset from the subgroup comprises evaluating the usage data.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0523) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0664 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0434) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 060332/0740 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (054475/0609) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0570 →
RELEASE OF SECURITY INTEREST AT REEL 054591 FRAME 0471 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0463 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 054475/0609 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0434 →
SECURITY INTEREST Recorded Nov 18, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 054475/0523 →
SECURITY AGREEMENT Recorded Nov 13, 2020
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 054591/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2020
From: TISCHLER, WYATT
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 054053/0378 →
Continuity (1)
Related Publication 20220113872A1 · Apr 14, 2022