Compatible version module loading
First Claim
1. A method of loading a software program into memory, the software program including multiple modules, at least one of which is available in a plurality of versions identified by a set of version numbers, the method comprising:
- identifying a module to be loaded as part of the software program, wherein the module is identified, at least in part, by an acceptable version number defined by a software designer;
selecting the module based upon an acceptable version number from among the set of versions numbers of the module; and
loading the selected module into memory.
3 Assignments
0 Petitions
Accused Products
Abstract
A system and method for loading software identifies versions of software modules to be loaded. The version identification allows a loader to request, access and load any level or version of a program that the application interacts with. Thus, the loader selects only specific versions of software that are known to be compatible with other software currently loaded or being loaded. The software includes specific compatibility information that is used to determine whether it should be selected or passed over for another version of the same software. In this manner, a “version aware” loader ensures that loaded software modules are compatible with one another and will therefore execute properly. The version aware loader may be implemented in an operating system or other loading software running on a personal computer or network router.
-
Citations
40 Claims
-
1. A method of loading a software program into memory, the software program including multiple modules, at least one of which is available in a plurality of versions identified by a set of version numbers, the method comprising:
-
identifying a module to be loaded as part of the software program, wherein the module is identified, at least in part, by an acceptable version number defined by a software designer;
selecting the module based upon an acceptable version number from among the set of versions numbers of the module; and
loading the selected module into memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
finding a potential module in the search path having the common name; and
confirming that the potential module has the acceptable version number.
-
-
10. The method of claim 1, further comprising, prior to loading, confirming that the selected module is compatible with any modules that call it.
-
11. The method of claim 1 wherein loading the module comprises specifying a memory address to be used to access the module for the module during execution.
-
12. The method of claim 1 wherein the module is included in a component and the component has a set of functionally related modules.
-
13. The method of claim 1 wherein the selected module includes a compatibility vector identifying one or more components to be called by it during execution.
-
14. The method of claim 13 wherein the compatibility vector further comprises, for each module to be called by the selected module, a compatible version set.
-
15. The method of claim 1 further including executing the selected module after it has been loaded into memory.
-
16. The method of claim 1 further including informing a user if no module was found that corresponded to an acceptable version number.
-
17. A machine-readable medium on which is provided a versioned software module capable of being loaded with various combinations of other modules and subsequently being executed, the software module comprising:
-
a name in common with at least one module not included in the software program, the module and the at least one module not included in the software program differing by a first version identification included in the module and a second version identification included in the at least one module not included in the software program; and
a compatibility vector embedded in a section of the module separate from a code section, the compatibility vector including a set of entries, wherein each entry in the set of entries includes (i) the name of a component containing a called module that is called by the versioned software module during execution, and (ii) a compatible version number or group of version numbers for the component containing the called module. - View Dependent Claims (18, 19, 20, 21, 22)
-
-
23. A computer system capable of loading and executing software, the computer system comprising:
-
a memory which temporarily stores software modules for execution;
a processor which executes loaded software modules; and
a loader which loads said software modules into the memory, wherein the loader selects at least some software modules for loading based on acceptable version numbers, when such modules are available in a plurality of versions identified by a set of version numbers according to a compatibility vector embedded in a section of the module separate from a code section. - View Dependent Claims (24, 25, 26, 27, 28, 29)
-
-
30. A computer program product comprising a computer readable medium on which is stored a program instructions for loading a software program into memory, the software program including multiple modules, at least one of which is available in a plurality of versions identified by a set of version numbers, the program instructions comprising:
-
identifying a module to be loaded as part of the software program, wherein the module is identified, at least in part, by an acceptable version number;
selecting the module based upon an acceptable version number defined by a software designer from among the set of versions numbers of the module; and
loading the selected module into memory. - View Dependent Claims (31, 32, 33, 34, 35, 36, 37)
-
-
38. A method managing a software environment, the software environment including a plurality of software applications, the plurality of software applications including a module having a common name, the method comprising:
-
loading a first numbered version of the module having a common name for a first application, the first numbered version defined by a software designer;
loading a second numbered version of the module having a common name for a second application, the second numbered versiond defined by a software designer;
running the first numbered version of the module having a common name; and
running the second numbered version of the module having a common name.
-
-
39. An apparatus for loading a software program into memory, the software program including multiple modules, at least one of which is available in a plurality of versions identified by a set of version numbers, the apparatus comprising:
-
means for identifying a module to be loaded as part of the software program, wherein the module is identified, at least in part, by an acceptable version number;
means for selecting the module based upon an acceptable version number defined by a software designer from among the set of versions numbers of the module; and
means for loading the selected module into memory.
-
-
40. A machine readable medium on which is provided a software module available for loading to memory and subsequently executing;
- the software module comprising;
a definition section specifying a module name and a version number;
a code section containing program instructions; and
a compatibility vector embedded in a section of the module separate from a code section, the compatibility vector identifying one or more called modules to be called by the software module during execution, and for each such called module identifying one or more versions of the called module that are compatible with the software module.
- the software module comprising;
Specification