Central Repository for JVM Code-Source Sharing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In complex Java Virtual Machine (JVM) environments, multiple class loaders often manage the same code-sources separately, leading to inefficient use of operating system resources and potential duplication of code-source instances, which consumes scarce memory and disk space.

Innovation Solution

A central repository is introduced to manage shared code-sources across multiple class loaders, ensuring each code-source has a single instance and providing a list of subscribing class loaders, thus reducing resource usage and enabling efficient management and updates.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multiple class loaders manage the same code-sources separately, then each class loader can independently load and manage its own classes, but operating system resources are inefficiently used and memory and disk space are consumed through duplication

Engineering Contradiction:
Improveclass loader independenceVSAvoidmemory and disk space consumption
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent merges multiple separate code-source instances into a single shared code-source instance that can be accessed by multiple class loaders. The central repository stores one canonical copy of each code-source, and class loaders reference this shared instance through the repository, eliminating duplication while maintaining independent access capabilities.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The shared code-source instance serves multiple class loaders simultaneously, making a single code-source object universal across different class loader contexts. The central repository provides a universal access point that allows any class loader to retrieve and use the same code-source without requiring separate instances.

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

2Quantity of substance

If a central repository is introduced to manage shared code-sources, then memory and disk space are reduced through single instance management, but system complexity increases due to the additional repository structure

Engineering Contradiction:
Improvememory and disk spaceVSAvoidsystem structure complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The central repository acts as an intermediary layer between class loaders and code-sources. Rather than directly managing code-sources, class loaders interact with the repository, which handles instance creation, sharing, and coordination. This mediator pattern manages complexity by centralizing management logic in one component.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The central repository implements self-service mechanisms by automatically detecting when a code-source should be shared, creating single instances, and managing the list of subscribing class loaders. The system self-regulates resource allocation without requiring external intervention, reducing operational complexity.

Inventive Principle:
Principle #25Self-service

3Ease of operation

If separate code-source instances are used by each class loader, then resource management is simple and direct, but updates to code-sources become inefficient and require duplication across all instances

Engineering Contradiction:
Improveresource management simplicityVSAvoidcode-source update efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

By merging multiple code-source instances into a single shared instance in the central repository, updates to code-sources automatically propagate to all class loaders that reference it. This eliminates the need to update multiple separate instances, significantly improving update efficiency while maintaining simple access operations.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS7814472B2System and method for shared code-sourcing in a Java Virtual Machine environment
Publication Date: 2010.10.12 ORACLE INT CORP
  • US7814472B2 patent drawing
  • US7814472B2 patent drawing
  • US7814472B2 patent drawing

AI summary

A system and method for code-source sharing between class loaders in a java virtual machine environment (JVM). Specifically, a central repository for referencing a plurality of code-sources for java class loaders in a JVM environment is described. Each entry for a shared code-source in the central repository includes a reference to a code-source that potentially could be shared by multiple class loaders of a plurality of class loaders in the JVM environment. The central repository manages an instance of the code-source for use in the JVM environment by the plurality of class loaders. A state of the code-source is provided. In addition, a list of subscribing class loaders to the code-source is also provided.