IP Library Granted Patent US 7,934,084
Granted Patent B2
US 7,934,084 · App. 11/962,868 · Granted Apr 26, 2011

Method and system for module initialization with an arbitrary number of phases

Assignee: Oracle America, 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 7,934,084
App. No.
11/962,868
Granted
Apr 26, 2011
Kind
B2
Abstract

A method for initializing a module that includes identifying a first module for initialization, and performing a plurality of processing phases on the first module and all modules in a dependency graph of the first module. Performing the plurality of processing phases includes, for each module, executing a processing phase of the plurality of processing phases on the module, determining whether the processing phase has been executed on all modules in a dependency graph of the module, and when the processing phase has been executed for all modules in the dependency graph of the module, executing a subsequent processing phase of the plurality of processing phases on the module.

Claims (46)

1. A method for initializing a module comprising:

identifying a first module for initialization; and

performing a plurality of processing phases on the first module and all modules in a dependency graph of the first module, wherein the performing comprises, for each module:

executing a processing phase of the plurality of processing phases on the module;

determining whether the processing phase has been executed on all modules in a dependency graph of the module; and

when the processing phase has been executed for all modules in the dependency graph of the module, executing a subsequent processing phase of the plurality of processing phases on the module.

2. The method of claim 1 , wherein determining whether the processing phase has been executed further comprises:

walking the dependency graph of the module to determine an initialization status of each of the modules in the dependency graph, wherein the initialization status indicates which processing phase of the plurality of processing phases was last performed on a module.

3. The method of claim 1 , wherein the dependency graph of the module is a transitive closure of a directed cyclic graph of modules on which the module depends.

4. The method of claim 1 , wherein executing the processing phase further comprises:

identifying all modules on which the module directly depends.

5. The method of claim 4 , further comprising adding the identified modules to an initialization queue.

6. The method of claim 1 , wherein executing the processing phase further comprises:

performing a conflict check on all modules upon which the module directly depends.

7. The method of claim 1 , wherein performing the plurality of processing phases further comprises:

selecting the module from an initialization queue, wherein the initialization queue comprises modules in the dependency graph of the first module.

8. The method of claim 1 , wherein performing the plurality of processing phases further comprises:

when the processing phase has not been executed on a second module in the dependency graph of the module, executing the processing phase on the second module.

9. The method of claim 1 , wherein performing the plurality of processing phases further comprises:

setting an initialization status of the module to indicate an error when the processing phase does not complete successfully.

10. A module system comprising:

module storage configured to store a plurality of module definitions; and

a module initialization engine configured to initialize a first module created from a module definition of the plurality of module definitions by:

performing a plurality of processing phases on the first module and all modules in a dependency graph of the first module, wherein the performing comprises, for each module:

executing a processing phase of the plurality of processing phases on the module;

determining whether the processing phase has been executed on all modules in a dependency graph of the module; and

when the processing phase has been executed for all modules in the dependency graph of the module, executing a subsequent processing phase of the plurality of processing phases on the module.

11. The system of claim 10 , wherein determining whether the processing phase has been executed further comprises:

walking the transitive closure of a dependency graph of the module to determine an initialization status of each of the modules in the dependency graph, wherein the initialization status indicates which processing phase of the plurality of processing phases was last performed on a module.

12. The system of claim 10 , wherein executing the processing phase further comprises:

identifying all modules on which the module directly depends.

13. The system of claim 10 , wherein executing the processing phase further comprises:

performing a conflict check on all modules upon which the module directly depends.

14. The system of claim 10 , wherein performing the plurality of processing phases further comprises:

when the processing phase has not been executed on a second module in the dependency graph of the module, executing the processing phase on the second module.

15. The system of claim 10 , wherein performing the plurality of processing phases further comprises:

setting an initialization status of the module to indicate an error when the processing phase does not complete successfully.

16. A computer readable medium comprising executable instructions to initialize a module by:

identifying a first module for initialization; and

performing a plurality of processing phases on the first module and all modules in a dependency graph of the first module, wherein the performing comprises, for each module:

executing a processing phase of the plurality of processing phases on the module;

determining whether the processing phase has been executed on all modules in a dependency graph of the module; and

when the processing phase has been executed for all modules in the dependency graph of the module, executing a subsequent processing phase of the plurality of processing phases on the module.

17. The computer readable medium of claim 16 , wherein determining whether the processing phase has been executed further comprises:

walking the dependency graph of the module to determine an initialization status of each of the modules in the dependency graph, wherein the initialization status indicates which processing phase of the plurality of processing phases was last performed on a module.

18. The computer readable medium of claim 16 , wherein executing the processing phase further comprises one selected from a group consisting of identifying all modules on which the module directly depends and performing a conflict check on all modules upon which the module directly depends.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037311/0056 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2007
From: STERBENZ, ANDREAS
To: SUN MICROSYSTEMS, INC.
Reel/Frame 020284/0987 →
Continuity (1)
Related Publication 20090164760A1 · Jun 25, 2009