IP Library Granted Patent US 8,225,310
Granted Patent B1
US 8,225,310 · App. 11/430,481 · Granted Jul 17, 2012

Automatic detection and redistribution of content management code

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,225,310
App. No.
11/430,481
Granted
Jul 17, 2012
Kind
B1
Abstract

Automatic detection and redistribution of content management code is disclosed. A new or updated software object class is received at a repository. A change record at the repository is updated to reflect that the new or updated software object class is available from the repository.

Claims (43)

1. A method of deploying computer code, comprising:

receiving at a repository a new or updated software object class; and

updating a global change record at the repository to reflect that the new or updated software object class is available from the repository,

wherein the global change record is associated with a plurality of software object classes stored at the repository and 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,

wherein in response to an application server, associated with the repository, receiving a request at the application server to instantiate an object associated with a first software object class associated with the repository, the application server is configured to check for updates associated with the plurality of software object classes stored at the repository including by reading the global change record, and

in the event that the application server determines that the global change record indicates that no new or updated software object class have been added or updated at the repository since a previous check for updates, the application server is configured to use a copy of the first software object class stored in a local cache to instantiate the object, wherein if the first software object class is not available in the local cache, a shared class loader in the local cache is checked, the shared class loader requests the first software object class if available from the repository, if the first software object class is not available for download from the repository, the shared class loader looks to its parent class loader to obtain the first software object class; and

in the event that the application server determines that the global change record indicates that a new or updated software object class has been added or updated at the repository since the previous check for updates, the application server is configured to iterate through all of software object classes downloaded previously to the application server from the repository and to check for each a corresponding data at the repository to determine whether a new or updated software object class is available for download from the repository.

2. A method as recited in claim 1 , wherein updating the global change record includes updating one or more of the following data values comprising the change record: a timestamp, a version stamp, and a change flag.

3. A method as recited in claim 1 , wherein the application server associated with the repository is configured to read the global change record, determine based at least in part on the global change record whether to download the software object class, and download the software object class from the repository if the application server determines that the new or updated software object class is to be downloaded.

4. A method as recited in claim 3 , wherein application server is configured to periodically check the global change record to determine whether any new or updated software object classes have become available for download from the repository.

5. A method as recited in claim 1 , wherein the application server associated with the repository is configured to read the global change record, compare a data value read from the global change record to a corresponding value stored in the application server, and download the new or updated software object class based at least in part on a determination whether the data value read from the global change record is different than the corresponding stored value.

6. A method as recited in claim 5 , wherein the corresponding value stored in the application server was read previously from the global change record.

7. A method as recited in claim 5 , wherein the corresponding value stored in the application server was read previously from the global change record in connection with a prior update checking operation.

8. A method as recited in claim 5 , wherein the application server is further configured to store on the application server the data value read from the global change record if it is determined that the data value read from the global change record is different than the corresponding stored value.

9. A method as recited in claim 1 , wherein an application framework/system level class loader on the application server associated with the repository is configured to look first to its own level for a needed class and to look to a parent class loader only if the needed class is not available to the application framework/system level class loader either locally or for download from the repository.

10. A method as recited in claim 1 , wherein the software object class comprises part of a content management framework associated with the repository.

11. A content management system, comprising:

a data storage device; and

a processor coupled to the data storage device and configured to:

receive a new or updated software object class; and

update a global change record stored on the data storage device to reflect that the new or updated software object class is available for download,

wherein the global change record is associated with a plurality of software object classes stored at the data storage device and 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,

wherein in response to an application server, associated with the data storage device, receiving a request at the application server to instantiate an object associated with a first software object class associated with the data storage device, the application server is configured to check for updates associated with the plurality of software object classes stored at the data storage device including by reading the global change record, and

in the event that the application server determines that the global change record indicates that no new or updated software object class have been added or updated at the data storage device since a previous check for updates, the application server is configured to use a copy of the first software object class stored in a local cache to instantiate the object, wherein if the first software object class is not available in the local cache, a shared class loader in the local cache is checked, the shared class loader requests the first software object class if available from the data storage device, if the first software object class is not available for download from the data storage device, the shared class loader looks to its parent class loader to obtain the first software object class; and

in the event that the application server determines that the global change record indicates that a new or updated software object class has been added or updated at the data storage device since the previous check for updates, the application server is configured to iterate through all of software object classes downloaded previously to the application server from the data storage device and to check for each a corresponding data at the data storage device to determine whether a new or updated software object class is available for download from the data storage device.

12. A system as recited in claim 11 , wherein the processor is further configured to store the new or updated software object class on the data storage device.

13. A computer program product for deploying computer code, the computer program product being embodied in a computer readable storage medium and comprising computer instructions for:

receiving at a repository a new or updated software object class; and

updating a global change record at the repository to reflect that the new or updated software object class is available from the repository,

wherein the global change record is associated with a plurality of software object classes stored at the repository and 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,

wherein in response to an application server, associated with the repository, receiving a request at the application server to instantiate an object associated with a first software object class associated with the repository, the application server is configured to check for updates associated with the plurality of software object classes stored at the repository including by reading the global change record, and

in the event that the application server determines that the global change record indicates that no new or updated software object class have been added or updated at the repository since a previous check for updates, the application server is configured to use a copy of the first software object class stored in a local cache to instantiate the object, wherein if the first software object class is not available in the local cache, a shared class loader in the local cache is checked, the shared class loader requests the first software object class if available from the repository, if the first software object class is not available for download from the repository, the shared class loader looks to its parent class loader to obtain the first software object class; and

in the event that the application server determines that the global change record indicates that a new or updated software object class has been added or updated at the repository since the previous check for updates, the application server is configured to iterate through all of software object classes downloaded previously to the application server from the repository and to check for each a corresponding data at the repository to determine whether a new or updated software object class is available for download from the repository.

14. An application server, comprising:

a communication interface; and

a processor configured to:

receive a request to instantiate an object associated with a first software object class associated with a repository;

in response receiving the request, check for updates associated with a plurality of software object classes stored at the repository including by reading via the communication interface a global change record stored on the repository, wherein the global change record is associated with the plurality of software object classes stored at the repository and 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; and

in the event that the global change record indicates that no new or updated software object class have been added or updated at the repository since a previous check for updates, use a copy of the first software object class stored in a local cache to instantiate the object, wherein if the first software object class is not available in the local cache, a shared class loader in the local cache is checked, the shared class loader requests the first software object class if available from the repository, if the first software object class is not available for download from the repository, the shared class loader looks to its parent class loader to obtain the first software object class; and

in the event that the global change record indicates that a new or updated software object class has been added or updated at the repository since the previous check for updates, iterate through all of software object classes downloaded previously from the repository and to check for each a corresponding data at the repository to determine whether a new or updated software object class is available for download from the repository.

15. An application server as recited in claim 14 , wherein the processor is configured to compare the data value read from the global change record with a corresponding stored value read previously from the global change record and subsequently store on the application server and download the new or updated software object class based at least in part on a determination that the data value read from the global change record does not match the corresponding stored value read previously from the global change record.

16. An application server as recited in claim 15 , wherein the processor is configured to iterate, in the event the data value read from the global change record does not match the corresponding stored value read previously from the global change record, through one or more software object classes downloaded previously from the repository and download the new or updated software object class if it is determined that the new or updated software object class comprises an update to at least one of said one or more software object classes downloaded previously from the repository.

17. An application server as recited in claim 14 , wherein the processor is further configured to check the global change record periodically to determine if any new or updated software object classes are available for download from the repository.

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 →
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 →
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 →
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 May 8, 2006
From: ROBERTSON, DON; AMIEL, MEIR; SPIVAK, VICTOR
To: EMC CORPORATION
Reel/Frame 017879/0545 →