Shared Loader System for Java Virtual Machine Class Loading

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveimplementation flexibilityVSAvoidclass loader architecture complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improveresource consumptionVSAvoidversion compatibility
Core Design Contradiction:
Quantity of substanceVSReliability

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.

Inventive Principle:
Principle #3Local quality

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.

Inventive Principle:
Principle #15Dynamics

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

Engineering Contradiction:
Improveversion isolationVSAvoidduplication-related errors
Core Design Contradiction:
ReliabilityVSObject-generated harmful factors

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.

Inventive Principle:
Principle #5Merging (Combining)

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

Engineering Contradiction:
Improveclass loading simplicityVSAvoiderror complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS7954096B2Shared loader system and method
Publication Date: 2011.05.31 ORACLE INT CORP
  • US7954096B2 patent drawing
  • US7954096B2 patent drawing
  • US7954096B2 patent drawing

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.