Metadata-Based Class Loading in Content Repositories

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional application class loaders require administrators to overwrite original classes when updating, leading to loss of original classes and difficulty in managing different versions or server profiles without tracking which classes have been updated.

Innovation Solution

A system that stores classes in a content repository, allowing for the extraction and management of metadata to selectively load classes based on metadata requests from nodes, enabling easy maintenance, version tracking, and profile configuration without restarting nodes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If administrators copy updated classes into the predefined path and overwrite the original class, then the updated class is loaded, but the original class is lost and cannot be recovered

Engineering Contradiction:
ImproveEase of class updateVSAvoidClass version recovery
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The system creates a copy of the class loader functionality in the form of a repository-class loader that retrieves classes from a content repository rather than from the traditional predefined path. This allows the original classes to be preserved in the repository while updated classes can be selectively loaded, enabling recovery of original versions if needed.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

A content repository is introduced as an intermediary between class storage and class loading. The repository stores both original and updated classes, and the repository-class loader acts as a mediator to selectively retrieve appropriate versions based on metadata, preventing direct overwriting and enabling version recovery.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If administrators manage classes in a predefined path, then class loading is straightforward, but it is hard to maintain the system when different versions or profiles are needed

Engineering Contradiction:
ImproveClass loading simplicityVSAvoidProfile and version management
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The system segments class management into two independent parts: a content repository that stores all class versions and metadata, and a repository-class loader that handles retrieval based on specific criteria. This segmentation allows straightforward loading operations while providing versatile profile and version management capabilities through metadata filtering.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system uses metadata parameters (such as profile type, class version, environment configuration) to control class selection and loading. By changing these parameters in the metadata, the system can dynamically load different class versions for different profiles without modifying the underlying class files or restarting nodes.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If classes are stored in a content repository with metadata extraction, then version tracking and profile configuration are enabled, but the system complexity increases

Engineering Contradiction:
ImproveVersion and profile managementVSAvoidSystem architecture complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The content repository serves multiple functions: storing original classes, storing updated classes, maintaining version information, managing profile configurations, and enabling selective retrieval. The repository-class loader also performs multiple functions including metadata extraction, class selection based on profiles, and loading classes without node restarts. This multi-functionality reduces the need for separate dedicated components.

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

Data Source

PatentUS9411618B2Metadata-based class loading using a content repository
Publication Date: 2016.08.09 RED HAT INC
  • US9411618B2 patent drawing
  • US9411618B2 patent drawing
  • US9411618B2 patent drawing

AI summary

An example method of loading classes from a content repository includes storing a set of files in a content repository. The set of files includes a representation of a set of classes. The method also includes extracting first metadata that describes the set of classes and storing the first metadata in a content repository. The method further includes receiving a request including second metadata corresponding to one or more classes of the set of classes. The request is from a repository-class loader executable in a node. The method also includes selecting, based on the second metadata, a class of the set of classes. The method further includes sending the selected class to the repository-class loader for loading into the node.