Patent ID: 7665080
Filing Date: 2010-02-16
Classification: G06F

Abstract:
1. A system for loading software applications, comprising: a server, executing a Java virtual machine that includes a system classloader, for storing and running a plurality of software applications, wherein each of said plurality of software applications includes a plurality of deployable modules and classes associated therewith, and wherein the software applications or modules therein can be customized by a software developer and then deployed to run on the same server; a control file, that can be edited by the software developer and associated with said plurality of software applications or modules, wherein said control file specifies a hierarchy of application classloaders as children of the system classloader, to be used with the modules in said plurality of software applications, and wherein the hierarchy includes a plurality of nested branches and siblings, including providing each of said plurality of software applications or modules with its own application classloader hierarchy so that the software applications or modules are not aware of classloaders or classes that are assigned to another software application, and wherein the hierarchy is specified by the software developer to provide namespace separation between two or more of the plurality of software applications or between different modules in any one of the software applications and wherein the system classloader includes only application level library classes, and wherein the nested branches of the hierarchy includes classes or modules that are frequently called by modules in said plurality of software applications as siblings within the same branch or same classloader; and a deployment utility that, upon receiving a request to deploy and run a software application on the server, wherein, upon receiving a call to instantiate an implementation, the system searches within the hierarchy including first searching the calling classloader, and then successively searching parent classloaders above the calling classloader, to locate and instantiate necessary classes or objects.