Shared Loader System for Java Virtual Machine Class Loading
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Traditional Java virtual machine loading architectures are complex and restrictive, leading to limited implementation flexibility and significant resource consumption, particularly when multiple applications within the same container require different versions of the same technology, resulting in duplication and complex errors.
Innovation Solution
A virtual machine system with a shared loader and generic loaders that allow selective shared loader searching and importation, enabling distinct versions of technologies to be deployed separately and shared across traditional parent-child loader boundaries, facilitating flexible class loading and minimizing duplication.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If traditional Java class loader tree structure is used with parent-child relationships, then class loading isolation between applications is maintained, but implementation flexibility is limited and resource consumption increases when multiple applications require different versions of the same technology
Solution Approach 1:
The patent segments the class loading system into shared loaders (for common technologies) and application-specific loaders (for application classes). This segmentation allows flexible version management for shared technologies while maintaining isolation for application-specific classes, resolving the contradiction between adaptability and complexity.
Solution Approach 2:
The patent introduces shared loaders as intermediary components between the class loader tree and applications. These shared loaders act as mediators that provide common technologies to multiple applications while allowing version differentiation, thereby increasing implementation flexibility without proportionally increasing overall system complexity.
2Quantity of substance
If globally deployed classes are used to enable sharing across applications, then resource consumption is reduced, but version conflicts occur when applications require different versions of the same technology
Solution Approach 1:
The patent applies local quality by allowing different versions of shared technologies to be deployed in different shared loaders. Each application can select the appropriate version based on its requirements, while still benefiting from resource sharing. This resolves the contradiction by enabling version-specific resource allocation without global uniformity.
Solution Approach 2:
The patent introduces dynamic version selection where applications can dynamically choose which version of a shared technology to use. The system transitions from static global deployment to dynamic versioned sharing, allowing resource consumption to be optimized while maintaining version compatibility through on-demand selection.
3Reliability
If multiple copies of the same technology are bundled in each application, then version conflicts are avoided, but duplication occurs and troubleshooting becomes difficult
Solution Approach 1:
The patent merges common technology classes into shared loaders that are referenced by multiple applications. Instead of maintaining separate copies, the system combines shared technologies into a unified loading mechanism that provides version isolation through selective loading. This reduces duplication while maintaining reliability, as applications still receive the correct version through the shared loader interface.
4Ease of operation
If conventional class loading solutions are used, then simple class loading is achieved, but complex errors occur when objects cannot be shared between applications
Solution Approach 1:
The patent makes shared loaders universal by enabling them to serve multiple applications simultaneously. These shared loaders can load classes for different applications while maintaining version isolation. The multi-functionality of shared loaders simplifies class loading operations while preventing complex errors by providing a unified interface for versioned technology sharing across applications.
Data Source
AI summary
A virtual machine method and system that includes shared loader importation and selective searching. For example, shared loader is stored for importation into a loader tree by executing a shared loader process. In one exemplary implementation, a shared loader search includes determining if a class is in the cache. If not in the cache, a determination is made if the class is in the parent. If the class is not in the parent, previously imported shared loaders of the child are searched. Finally, if the class is not in the shared loaders a determination is made if the class is in a local code source. In one exemplary implementation, an annotated class not found exception is produced if the class is not in a local code source. Shared loaders are selectively imported.


