System and method for the service configuration of application server environments
First Claim
Patent Images
1. A system for the dynamic, application dependency implicit, service configuration of application server environments, comprising:
- a computer including a processor;
a collection of Application Programming Interfaces (APIs) that are provided as named API bundles or modules, and that expose a set of Java language types;
a compiler for compiling an application that is configured to use a subset of the APIs, against the API bundles or modules;
a packager for packaging resulting application class files in another bundle or module;
a deployment tool for deploying the packaged application into an application server, wherein the application server includesa runtime to control component service dependency lifecycles, wherein the runtime includes a knowledge base of types and containing or implementing bundles, anda set of public APIs and/or components; and
wherein, when the application server subsequently initializes the application for execution, and as individual application classes are loaded by the runtime, the runtime resolves the application'"'"'s dependencies on the public APIs and/or components of the application server, includinginterrogating the application'"'"'s packages,determining unsatisfied references to particular Java language types, and invoking the runtime to satisfy the unsatisfied references using its knowledge base, andas each containing or implementing bundle is identified, loading or initializing by the runtime, according to its specified lifecycle semantics, the containing or implementing bundle.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for dynamic, application dependency implicit, service configuration of application server environments. A dynamic and implicit mechanism can be provided using technologies such as OSGi and the Java Module System, that then reduce the need for external application server configuration. An application server so implemented can be enabled to dynamically/lazily load the required services implementations on demand, at the time an application is deployed and/or initialized at runtime, and to subsequently release any such resources consumed when they are no longer required.
9 Citations
20 Claims
-
1. A system for the dynamic, application dependency implicit, service configuration of application server environments, comprising:
-
a computer including a processor; a collection of Application Programming Interfaces (APIs) that are provided as named API bundles or modules, and that expose a set of Java language types; a compiler for compiling an application that is configured to use a subset of the APIs, against the API bundles or modules; a packager for packaging resulting application class files in another bundle or module; a deployment tool for deploying the packaged application into an application server, wherein the application server includes a runtime to control component service dependency lifecycles, wherein the runtime includes a knowledge base of types and containing or implementing bundles, and a set of public APIs and/or components; and wherein, when the application server subsequently initializes the application for execution, and as individual application classes are loaded by the runtime, the runtime resolves the application'"'"'s dependencies on the public APIs and/or components of the application server, including interrogating the application'"'"'s packages, determining unsatisfied references to particular Java language types, and invoking the runtime to satisfy the unsatisfied references using its knowledge base, and as each containing or implementing bundle is identified, loading or initializing by the runtime, according to its specified lifecycle semantics, the containing or implementing bundle. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method for the dynamic, application dependency implicit, service configuration of application server environments, comprising the steps of:
-
providing a collection of Application Programming Interfaces (APIs) that are provided as named API bundles or modules, and that expose a set of Java language types; compiling an application that is configured to use a subset of the APIs, against the API bundles or modules; packaging resulting application class files in another bundle or module; and deploying the packaged application into an application server that includes a runtime to control component service dependency lifecycles, wherein the runtime includes a knowledge base of types and containing or implementing bundles, and a set of public APIs and/or components; wherein the application server subsequently initializes the application for execution, and wherein, as individual application classes are loaded by the runtime, the runtime resolves the application'"'"'s dependencies on the public APIs and/or components of the application server, including interrogating the application'"'"'s packages, determining unsatisfied references to particular Java language types, and invoking the runtime to satisfy the unsatisfied references using its knowledge base, and as each containing or implementing bundle is identified, loading or initializing by the runtime, according to its specified lifecycle semantics, the containing or implementing bundle. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory computer readable medium, including instructions stored thereon which when read and executed by a computer cause the computer to perform the steps of:
-
providing a collection of Application Programming Interfaces (APIs) that are provided as named API bundles or modules, and that expose a set of Java language types; compiling an application that is configured to use a subset of the APIs, against the API bundles or modules; packaging resulting application class files in another bundle or module; and deploying the packaged application into an application server that includes a runtime to control component service dependency lifecycles, wherein the runtime includes a knowledge base of types and containing or implementing bundles, and a set of public APIs and/or components; wherein the application server subsequently initializes the application for execution, and wherein, as individual application classes are loaded by the runtime, the runtime resolves the application'"'"'s dependencies on the public APIs and/or components of the application server, including interrogating the application'"'"'s packages, determining unsatisfied references to particular Java language types, and invoking the runtime to satisfy the unsatisfied references using its knowledge base, and as each containing or implementing bundle is identified, loading or initializing by the runtime, according to its specified lifecycle semantics, the containing or implementing bundle. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification