Hierarchical Application Classloading Reduction via Provisioning
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional enterprise application platforms face resource constraints and performance issues when launching hierarchically configured applications within containers due to the overhead of loading numerous classes during the boot process, which is resource-intensive and affects performance.
Innovation Solution
A provisioning operation is performed to launch the hierarchically configured application within a first container, determine the state of services, and generate serialized data structures representing the service state, allowing the application to be subsequently launched in a second container without loading all conventional classes, thereby reducing classloading overhead.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If conventional EAPs provide advanced management models and APIs with numerous classes, then functionality and management capability are improved, but resource consumption and startup time increase due to loading all classes at launch
Solution Approach 1:
The patent applies preliminary action by performing a provisioning operation before the actual application launch. During this provisioning phase, the system pre-configures the hierarchical application structure, pre-loads necessary service definitions, and pre-establishes resource descriptions. This allows the application to skip extensive class loading during startup, as the management models and APIs are prepared in advance in a serialized or cached format that can be quickly instantiated without loading all conventional classes.
2Reliability
If all classes are loaded during the boot process, then complete service functionality is ensured, but startup time and performance are degraded
Solution Approach 1:
The patent segments the class loading process into two distinct phases: a provisioning phase where the hierarchical structure and service definitions are prepared and serialized, and a launch phase where only essential classes are loaded for immediate execution. This segmentation allows the system to separate the heavy structural preparation work from the time-critical startup process, ensuring complete service functionality is defined during provisioning while minimizing startup time by loading only necessary classes during launch.
Solution Approach 2:
The patent uses copying by creating a serialized representation or model of the complete service structure during provisioning, then using this copy to rapidly instantiate services during launch without loading all original classes. The serialized service definitions and resource descriptions act as templates that can be quickly deserialized and instantiated, providing complete functionality while avoiding the overhead of loading every class from scratch during startup.
3Adaptability or versatility
If hierarchical application structure with resource descriptions and operation handlers is implemented, then advanced management capability is achieved, but device complexity and memory usage increase
Solution Approach 1:
The patent applies parameter changes by transforming the hierarchical application structure from a fully-loaded in-memory representation to a serialized or cached format during provisioning. This parameter change in the state of the data structure allows the system to maintain complete management capability definitions while reducing the active memory footprint and computational complexity during runtime. The resource descriptions and operation handlers are stored in an optimized format that preserves full functionality while minimizing the complexity burden on the running system.
Data Source
AI summary
Reducing classloading of hierarchically configured applications via provisioning is disclosed. In one example, a hierarchically configured application is launched within a first container of a container application platform according to a set of resource descriptions that define a structure of the hierarchically configured application, valid operations may be performed by elements of the hierarchically configured application, and handlers for each operation. After the process of loading the classes representing the resource descriptions and operation handlers is performed, services to be used by the hierarchically configured application are installed. The state of each service is then determined, and one or more serialized data structures representing the state of the services is generated. Subsequently, the hierarchically configured application is launched within a second container, with the serialized data structures being used to install the services within the second container while incurring lower classloading overhead.


