IP Library › Granted Patent US 8,707,438
Granted Patent B1
US 8,707,438 · App. 12/248,297 · Granted Apr 22, 2014

System and method for providing storage for electronic records

Inventor: Windsor W. Hsu (San Jose, CA)
Assignee: EMC Corporation
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,707,438
App. No.
12/248,297
Filed
Oct 9, 2008
Granted
Apr 22, 2014
Kind
B1
Art Unit
2436
USPC
726/25
Abstract

Techniques for providing storage for electronic records are described herein. According to one embodiment, a command is received from a client through an interface of a storage system. An approval is received from an authorization agent associated with the storage system for the received command. In response to the approval received from the authorization agent for the received command, an operation associated with the received command is performed. Other methods and apparatuses are also described.

Claims (55)

1. A computer-implemented method for managing data objects, comprising:

receiving a command from a client through an interface of a storage system for accessing data stored in the storage system;

in response to the command, examining the command to determine whether the command could potentially compromise integrity of an immutable data object stored in the storage system;

in response to determining that the command could potentially compromise integrity of the immutable data object, transmitting a request to an authorization agent over a network for an approval of processing the command to access the data stored in the storage system, wherein the authorization agent is a remote entity separated from the client and the storage system over the network;

receiving the approval from the authorization agent associated with the storage system for the received command over the network;

extracting a first credential from the approval received from the authorization agent;

comparing the first credential with a second credential that is associated with the authorization agent, wherein the second credential is selected from a set of credentials previously configured and stored in a database; and

in response to the comparison that the first and second credentials are matched, performing an operation associated with the received command in response to the approval received from the authorization agent for the received command.

2. The method of claim 1 ,

wherein the request for approval is sent to the authorization agent only if the received command could potentially compromise integrity of the immutable data object.

3. The method of claim 2 , further comprising configuring a set of one or more rules used to identify a list of command candidates, which when carried out, could potentially compromise integrity of the immutable data object, wherein the command received from the client is compared against the list of command candidates to determine whether the received command could potentially compromise integrity of the immutable data object.

4. The method of claim 3 , further comprising maintaining the set of credentials associated with the authorization agent, wherein for each of the command candidates to be carried out, at least one of the set of credentials has to be received as part of the approval.

5. The method of claim 4 ,

wherein the operation associated with the received command is carried out only when the first and second credentials are matched.

6. The method of claim 2 , wherein the immutable data object is a write-once-read-many (WORM) data object.

7. The method of claim 2 , wherein the command received from the client is to adjust a clock used to determine whether a retention period associated with the immutable data object during which the data object is protected from being modified has expired.

8. The method of claim 2 , wherein the command received from the client is to revoke an immutable state of the immutable data object such that the data object becomes modifiable.

9. The method of claim 2 , wherein the command received from the client is to move the immutable data object to a new storage location.

10. The method of claim 2 , wherein the command received from the client, when carried out, could cause the immutable data object to be deleted.

11. The method of claim 1 , wherein the data stored in the storage system comprises a first subset of data and a second subset of data, wherein accessing the first subset of data requires a first approval from a first authorization agent and accessing the second subset of data requires a second approval from a second authorization agent that is different than the first authorization agent.

12. A non-transitory machine-readable storage medium having instructions stored therein, which when executed by a processor, cause the processor to perform operations for managing data objects, the operations comprising:

receiving a command from a client through an interface of a storage system for accessing data stored in the storage system;

in response to the command, examining the command to determine whether the command could potentially compromise integrity of an immutable data object stored in the storage system;

in response to determining that the command could potentially compromise integrity of the immutable data object, transmitting a request to an authorization agent over a network for an approval of processing the command to access the data stored in the storage system, wherein the authorization agent is a remote entity separated from the client and the storage system over the network;

receiving the approval from the authorization agent associated with the storage system for the received command over the network;

extracting a first credential from the approval received from the authorization agent;

comparing the first credential with a second credential that is associated with the authorization agent, wherein the second credential is selected from a set of credentials previously configured and stored in a database; and

performing an operation associated with the received command in response to the approval received from the authorization agent for the received command.

13. The non-transitory machine-readable storage medium of claim 12 ,

wherein the request for approval is sent to the authorization agent only if the received command could potentially compromise integrity of the immutable data object.

14. The non-transitory machine-readable storage medium of claim 13 , wherein the operations further comprise configuring a set of one or more rules used to identify a list of command candidates, which when carried out, could potentially compromise integrity of the immutable data object, wherein the command received from the client is compared against the list of command candidates to determine whether the received command could potentially compromise integrity of the immutable data object.

15. The non-transitory machine-readable storage medium of claim 14 , wherein the operations further comprise maintaining set of credentials associated with the authorization agent, wherein for each of the command candidates to be carried out, at least one of the set of credentials has to be received as part of the approval.

16. The non-transitory machine-readable storage medium of claim 15 ,

wherein the operation associated with the received command is carried out only when the first and second credentials are matched.

17. The non-transitory machine-readable storage medium of claim 13 , wherein the immutable data object is a write-once-read-many (WORM) data object.

18. The non-transitory machine-readable storage medium of claim 13 , wherein the command received from the client is to adjust a clock used to determine whether a retention period associated with the immutable data object during which the data object is protected from being modified has expired.

19. The non-transitory machine-readable storage medium of claim 13 , wherein the command received from the client is to revoke an immutable state of the immutable data object such that the data object becomes modifiable.

20. The non-transitory machine-readable storage medium of claim 13 , wherein the command received from the client is to move the immutable data object to a new storage location.

21. The non-transitory machine-readable storage medium of claim 13 , wherein the command received from the client, when carried out, could cause the immutable data object to be deleted.

22. The non-transitory machine-readable storage medium of claim 12 , wherein the data stored in the storage system comprises a first subset of data and a second subset of data, wherein accessing the first subset of data requires a first approval from a first authorization agent and accessing the second subset of data requires a second approval from a second authorization agent that is different than the first authorization agent.

23. An apparatus for managing data objects, comprising:

a hardware processor;

a first interface, executed by the hardware processor, to receive a command from a client of a storage system for accessing data stored in the storage system;

an enforcement agent executed by the hardware processor, in response to the command, to examine the command to determine whether the command could potentially compromise integrity of an immutable data object stored in the storage system;

a second interface, executed by the hardware processor, in response to determining that the command could potentially compromise integrity of the immutable data object, to transmit a request to an authorization agent over a network for an approval of processing the command to access the data stored in the storage system and to receive the approval from the authorization agent associated with the storage system for the received command over the network, wherein the authorization agent is a remote entity separated from the client and the storage system over the network, wherein the enforcement agent is to extract a first credential from the approval received from the authorization agent, and to compare the first credential with a second credential that is associated with the authorization agent, wherein the second credential is selected from a set of credentials previously configured and stored in a database; and

a command processing logic, in response to the comparison that the first and second credentials are matched, to perform an operation associated with the received command in response to the approval received from the authorization agent for the received command.

24. The apparatus of claim 23 , further comprising:

an interface to receive a data object to be stored as an immutable data object in the storage system; and

a WORM processing logic to store the data object as the immutable data object in the storage system,

wherein the request for approval is sent to the authorization agent only if the received command could potentially compromise integrity of the immutable data object.

25. The apparatus of claim 24 , further comprising a database to store a set of one or more rules configured to identify a list of command candidates, which when carried out, could potentially compromise integrity of immutable data object, wherein the command received from the client is compared against the list of command candidates to determine whether the received command could potentially compromise integrity of the immutable data object.

26. The apparatus of claim 25 , wherein the database is configured to store the set of credentials associated with the authorization agent, wherein for each of the command candidates to be carried out, at least one of the set of credentials has to be received as part of the approval.

27. The apparatus of claim 26 ,

wherein the operation associated with the received command is carried out only when the first and second credentials are matched.

28. The apparatus of claim 24 , wherein the immutable data object is a WORM data object.

Assignments (13)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 4, 2010
From: DATA DOMAIN HOLDING, INC.
To: EMC CORPORATION
Reel/Frame 024031/0884 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2010
From: DATA DOMAIN LLC
To: DATA DOMAIN HOLDING, INC.
Reel/Frame 024022/0196 →
CONVERSION Recorded Mar 2, 2010
From: DATA DOMAIN, INC.
To: DATA DOMAIN LLC
Reel/Frame 024017/0605 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 9, 2008
From: HSU, WINDSOR W.
To: DATA DOMAIN, INC., A DELAWARE CORPORATION
Reel/Frame 021655/0204 →