IP Library Granted Patent US 8,799,322
Granted Patent B2
US 8,799,322 · App. 12/509,330 · Granted Aug 5, 2014

Policy driven cloud storage management and cloud storage policy router

Inventors: David deMilo (Scotts Valley, CA); David Brian Ferriera (San Jose, CA); Ramkumar Viswanathan (Cary, NC); Ravindra Mahajani (Cary, NC); Blaine Lincoln (Fontana, CA); James McKernan (Talent, OR)
Assignee: Cisco Technology, Inc.
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,799,322
App. No.
12/509,330
Granted
Aug 5, 2014
Kind
B2
Abstract

Techniques are disclosed for a policy driven cloud storage management broker and a cloud storage policy router, along with methods for registering tenant applications with the cloud storage management broker and for sending (and retrieving) files to/from a cloud storage service. A tenant application may be configured to generate a user interface that allows a user to specify metadata to associate with a file along with a link to a cloud storage service to which the file is uploaded. The tenant application may collect and store the metadata attributes (along with a reference to the file stored in the cloud) in an enterprise database, while the file itself may be transmitted to the cloud storage service directly. The cloud storage policy router may learn the capabilities of different cloud storage providers using an advertisement routing protocol.

Claims (53)

1. A computer-implemented method for storing a file, comprising:

receiving, from a requesting client, by a tenant application hosted on a storage broker hosting applications of multiple tenants, a request to store the file using a cloud storage service;

identifying one or more metadata attributes to associate with the file;

generating a graphical user interface configured to prompt the requesting client to supply values for the one or more metadata attributes;

transmitting the generated graphical user interface to the requesting client;

receiving values for the metadata attributes;

selecting one of a plurality of cloud storage services to store the file based on a storage policy associated with the tenant application and the received values for the metadata attributes;

transmitting a link to the requesting client used to upload the file to the selected cloud storage service;

forwarding the received values for the metadata attributes to the selected cloud storage service to be stored with the file; and

storing, in a database system, the received values for the metadata attributes and a reference to the file, wherein the reference provides a link to the file stored by the selected cloud storage service.

2. The method of claim 1 , further comprising, prior to storing the received values for the metadata attributes, receiving a confirmation that the file has been uploaded to the selected cloud storage service, wherein the confirmation includes the reference to the file.

3. The method of claim 1 , further comprising, transmitting an encryption key to the requesting client, wherein the file is encrypted using the encryption key prior to being uploaded to the selected cloud storage service.

4. The method of claim 1 , wherein the reference to the file stored in the database comprises a reference used to access the file from the cloud storage service.

5. The method of claim 1 , wherein the storage policy specifies at least one of a regulatory requirement, a data retention requirement, a location requirement, and a service availability requirement for the selected could storage service.

6. A system, comprising,

a processor;

a network interface; and

a memory containing a multi-tenant storage broker, which, when executed on the processor, performs an operation for storing a file, the operation comprising:

receiving, over the network interface, a request from a client to store the file using a cloud storage service,

identifying one or more metadata attributes to associate with the file,

generating a graphical user interface configured to prompt the requesting client to supply values for the one or more metadata attributes,

transmitting the generated graphical user interface to the requesting client;

receiving values for the metadata attributes,

selecting one of a plurality of cloud storage services to store the file based on a storage policy associated with a tenant application and the received values for the metadata attributes;

transmitting a link to the requesting client used to upload the file to the selected cloud storage service;

forwarding the received values for the metadata attributes to the selected cloud storage service; and

storing, in a database system, the received values for the metadata attributes and a reference to the file stored by the selected cloud storage service.

7. The system of claim 6 , wherein the operation further comprises, prior to storing the received values for the metadata attributes, receiving a confirmation that the file has been uploaded to the selected cloud storage service, wherein the confirmation includes the reference to the file.

8. The system of claim 6 , wherein the operation further comprises, transmitting an encryption key to the requesting client, wherein the file is encrypted using the encryption key prior to being uploaded to the selected cloud storage service.

9. The system of claim 6 , wherein the reference to the file stored in the database comprises a reference used to access the file from the selected cloud storage service.

10. The system of claim 6 , wherein the storage policy specifies at least one of a regulatory requirement, a data retention requirement, a location requirement, and a service availability requirement for the selected cloud storage service.

11. A computer-readable storage medium containing a program, which, when executed on a processor, performs an operation for storing a file, the operation comprising:

receiving, over the network interface, a request from a client to store the file using a cloud storage service;

identifying one or more metadata attributes to associate with the file;

generating a graphical user interface configured to prompt the requesting client to supply values for the one or more metadata attributes;

transmitting the generated graphical user interface to the requesting client;

receiving values for the metadata attributes;

selecting one of a plurality of cloud storage services to store the file based on a storage policy associated with a tenant application and the received values for the metadata attributes;

transmitting a link to the requesting client used to upload the file to the selected cloud storage service;

forwarding the received values for the metadata attributes to the selected cloud storage service; and

storing, in a database system, the received values for the metadata attributes and a reference to the file stored by the selected cloud storage service.

12. The computer-readable storage medium of claim 11 , further comprising, receiving, from the user interface, a confirmation that the file has been uploaded to the selected cloud storage service.

13. The computer-readable storage medium of claim 11 , further comprising, transmitting an encryption key to the requesting client, wherein the file is encrypted using the encryption key prior to being uploaded to the selected cloud storage service.

14. The computer-readable storage medium of claim 11 , wherein the reference to the file stored in the database comprises a reference used to access the file from the selected cloud storage service.

15. The computer-readable storage medium of claim 11 , wherein the policy specifies at least one of a regulatory requirement, a data retention requirement, a location requirement, and a service availability requirement for the selected cloud storage service.

16. A routing device configured to transmit a file to one of a plurality of cloud storage services, comprising:

a processor; and

a memory storing a routing application configured to store advertised capabilities received from the plurality of cloud storage services, which, when executed on the processor, performs an operation, comprising:

receiving a file to be forwarded to one of the cloud storage services;

receiving one or more storage parameters specifying requirements of a storage policy associated with a tenant application for a cloud storage service selected to store the file;

evaluating the storage parameters to select a cloud storage service, of the plurality, which satisfies the specified requirements, wherein evaluating the storage parameters comprises matching the specified requirements against the advertised capabilities received from the plurality of cloud storage services;

forwarding the file and the one or more storage parameters to the selected cloud storage service.

17. The routing device of claim 16 , wherein the storage parameters specify at least one of a regulatory requirement, a data retention requirement, a location requirement, and a service availability requirement for the selected cloud storage service.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 19, 2012
From: MCKERNAN, JAMES
To: CISCO TECHNOLOGY, INC.
Reel/Frame 028988/0164 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2009
From: DEMILO, DAVID; FERRIERA, DAVID BRIAN; VISWANATHAN, RAMKUMAR; MAHAJANI, RAVINDRA; LINCOLN, BLAINE
To: CISCO TECHNOLOGY, INC.
Reel/Frame 023004/0921 →
Continuity (1)
Related Publication 20110022642A1 · Jan 27, 2011