IP Library Granted Patent US 9,038,046
Granted Patent B2
US 9,038,046 · App. 13/523,648 · Granted May 19, 2015

Deploying and distributing content management code

Inventors: Don Robertson (Pleasanton, CA); Meir Amiel (Pleasanton, CA); Victor Spivak (San Mateo, CA)
Assignee: EMC Corporation
G06F8/65G06F9/44521G06F9/44552
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 9,038,046
App. No.
13/523,648
Granted
May 19, 2015
Kind
B2
Abstract

Deploying and distributing content management code is disclosed. A software object class is received at a repository. The software object class is stored at the repository. The software object class is downloaded from the repository to an application server associated with the repository.

Claims (52)

1. A system of deploying computer code, comprising:

a processor configured to:

receive at a repository an updated version associated with a software object class, wherein the repository is associated with a content management system comprising a content store and a corresponding metadata store, wherein the software object class is associated with a plurality of software object classes stored at the content store;

store the updated version associated with the software object class at the content store;

update at the metadata store a software object class change data to a value associated with an indication that a change has occurred with respect to the plurality of software object classes stored at the content store; and

download the updated version associated with the software object class from the repository to an application server based at least in part on a request to instantiate an object associated with the software object class received at the application server, wherein in response to the request to instantiate the object associated with the software object class, the application server is configured to:

determine whether a previous version associated with the software object class is available at a local cache;

in the event that the previous version associated with the software object class is available at the local cache, determine that the value associated with the software object class change data stored at the metadata store of the repository indicates that the change has occurred with respect to the plurality of software object classes stored at the content store;

in response to the determination that the value associated with the software object class change data stored at the metadata store of the repository indicates that the change has occurred, store the updated version associated with the software object class downloaded from the repository to the local cache; and

use the updated version associated with the software object class stored at the local cache to create an instance associated with the request; and

a memory coupled to the processor and configured to provide the processor with instructions.

2. The system of claim 1 , wherein the downloading further comprises: the application server determining whether the previous version associated with the software object class is available in the local cache, and in the event that the previous version associated with the software object class is not available in the local cache, checking whether the previous version associated with the software object class is available to a shared class loader in an associated local cache.

3. The system of claim 2 , wherein in the event that the previous version associated with the software object class is not available to the shared class loader in the associated local cache, the shared class loader is configured to request the software object class from the repository.

4. The system as recited in claim 1 , wherein downloading the updated version associated with the software object class to the application server is based at least in part on a determination that the updated version associated with the software object class has not been previously downloaded from the repository to the application server.

5. The system as recited in claim 1 , wherein the updated version associated with the software object class comprises one of at least a subset of software object classes to be downloaded to the application server.

6. The system as recited in claim 1 , wherein the application server comprises a first application server associated with the repository and wherein the processor is configured to download the updated version associated with the software object class to a second application server associated with the repository.

7. The system as recited in claim 1 , wherein the repository comprises a first repository and the application server is configured to download from the first repository one or more software object classes configured to be used to access content stored in the first repository and to download from a second repository one or more software object classes configured to be used to access content stored in the second repository.

8. The system as recited in claim 1 , wherein the repository comprises a shared repository configured to store and distribute one or more software object classes to be used by the application server to access content across two or more other repositories.

9. The system as recited in claim 1 , wherein the software object class change data stored at the metadata store comprises a change record, and wherein the processor is further configured to update a value associated with the change record at the metadata store of the repository to reflect that a new or updated software object class is available from the content store of the repository.

10. The system as recited in claim 9 , wherein the change record comprises a global change record associated with the plurality of software object classes and a value associated with the global change record is updated each time a new software object class is added to the plurality of software object classes or one or more software object classes included in the plurality of software object classes are updated.

11. The system as recited in claim 9 , wherein the change record comprises a global change record and the application server is configured to periodically check a value associated with the global change record to determine whether any new or updated software object classes have become available for download from the repository.

12. The system as recited in claim 11 , wherein if the application server determines by checking the value associated with the global change record that a change has occurred at the repository, the application server is configured to iterate through at least a subset of software object classes downloaded previously to the application server from the repository and to determine for each whether a new or updated software object class is available for download from the repository.

13. The system of claim 1 , wherein the value associated with the software object class change data does not identify a particular software object class associated with the plurality of software object classes with which the change is associated.

14. The system of claim 1 , wherein in response to the determination that the value associated with the software object class change data stored at the metadata store of the repository indicates that the change has occurred, the processor is further configured to:

iterate through at least a subset of software object classes downloaded previously to the application server from the repository and determine for each whether a new or updated software object class is available for download from the repository; and

determine that the updated version associated with the software object class is available for download from the repository.

15. A method of deploying computer code, comprising:

receiving at a repository an updated version associated with a software object class, wherein the repository is associated with a content management system comprising a content store and a corresponding metadata store, wherein the software object class is associated with a plurality of software object classes stored at the content store;

storing the updated version associated with the software object class at the content store;

updating at the metadata store a software object class change data to a value associated with an indication that a change has occurred with respect to the plurality of software object classes stored at the content store; and

downloading the updated version associated with the software object class from the repository to an application server based at least in part on a request to instantiate an object associated with the software object class received at the application server, wherein in response to the request to instantiate the object associated with the software object class, the application server is configured to:

determine whether a previous version associated with the software object class is available at a local cache;

in the event that the previous version associated with the software object class is available at the local cache, determine that the value associated with the software object class change data stored at the metadata store of the repository indicates that the change has occurred with respect to the plurality of software object classes stored at the content store;

in response to the determination that the value associated with the software object class change data stored at the metadata store of the repository indicates that the change has occurred, store the updated version associated with the software object class downloaded from the repository to the local cache; and

use the updated version associated with the software object class stored at the local cache to create an instance associated with the request.

16. The method of claim 15 , wherein the downloading further comprises: the application server determining whether the previous version associated with the software object class is available in the local cache, and in the event that the previous version associated with the software object class is not available in the local cache, checking whether the previous version associated with the software object class is available to a shared class loader in an associated local cache.

17. The method of claim 16 , further comprising in the event that the previous version associated with the software object class is not available to the shared class loader in the associated local cache, the shared class loader is configured to request the software object class from the repository.

18. The method of claim 15 , wherein downloading the updated version associated with the software object class to the application server is based at least in part on a determination that the updated version associated with the software object class has not been previously downloaded from the repository to the application server.

19. The method of claim 15 , wherein the application server comprises a first application server associated with the repository and further comprising downloading the updated version associated with the software object class to a second application server associated with the repository.

20. The method of claim 15 , wherein the repository comprises a first repository and the application server is configured to download from the first repository one or more software object classes configured to be used to access content stored in the first repository and to download from a second repository one or more software object classes configured to be used to access content stored in the second repository.

21. The method of claim 15 , wherein the repository comprises a shared repository configured to store and distribute one or more software object classes to be used by the application server to access content across two or more other repositories.

22. The method of claim 15 , wherein the software object class change data stored at the metadata store comprises a change record, and further comprising updating a value associated with the change record at the metadata store of the repository to reflect that a new or updated software object class is available from the content store of the repository.

23. The method of claim 22 , wherein the change record comprises a global change record associated with the plurality of software object classes and a value associated with the global change record is updated each time a new software object class is added to the plurality of software object classes or one or more software object classes included in the plurality of software object classes are updated.

24. A computer program product for deploying computer code, the computer program product being embodied in a non-transitory computer readable medium and comprising computer instructions for:

receiving at a repository an updated version associated with a software object class, wherein the repository is associated with a content management system comprising a content store and a corresponding metadata store, wherein the software object class is associated with a plurality of software object classes stored at the content store;

storing the updated version associated with the software object class at the content store;

updating at the metadata store a software object class change data to a value associated with an indication that a change has occurred with respect to the plurality of software object classes stored at the content store; and

downloading the updated version associated with the software object class from the repository to an application server based at least in part on a request to instantiate an object associated with the software object class received at the application server, wherein in response to the request to instantiate the object associated with the software object class, the application server is configured to:

determine whether a previous version associated with the software object class is available at a local cache;

in the event that the previous version associated with the software object class is available at the local cache, determine that the value associated with the software object class change data stored at the metadata store of the repository indicates that the change has occurred with respect to the plurality of software object classes stored at the content store;

in response to the determination that the value associated with the software object class change data stored at the metadata store of the repository indicates that the change has occurred, store the updated version associated with the software object class downloaded from the repository to the local cache; and

use the updated version associated with the software object class stored at the local cache to create an instance associated with the request.

Assignments (7)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: EMC CORPORATION
To: OPEN TEXT CORPORATION
Reel/Frame 041579/0133 →
RELEASE OF SECURITY INTEREST Recorded Jan 23, 2017
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC CORPORATION
Reel/Frame 041073/0443 →
PATENT RELEASE (REEL:40134/FRAME:0001) Recorded Jan 23, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: EMC CORPORATION, AS GRANTOR
Reel/Frame 041073/0136 →
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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 15, 2012
From: ROBERTSON, DON; AMIEL, MEIR; SPIVAK, VICTOR
To: EMC CORPORATION
Reel/Frame 028382/0272 →
Continuity (3)
Continuation 11430491 · May 8, 2006
Provisional Application 60787443 · Mar 30, 2006
Related Publication 20120254848A1 · Oct 4, 2012