Version-Based Class Loader Framework for Java Compatibility

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Legacy proprietary software integration with standards-based software, such as Java-based applications, faces compatibility issues due to the lack of a versioning mechanism in conventional class loading, leading to compatibility problems when different coding versions need to work together.

Innovation Solution

A compatibility framework using version-based class loaders is employed, where a class loader is created to load classes and their dependencies based on identified versions, allowing for the selection of the appropriate version needed for application execution and facilitating the loading of dependent classes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If conventional class loading is used to load classes in a Java virtual machine, then the class loading process is simple and straightforward, but compatibility problems arise when different versions of classes need to work together

Engineering Contradiction:
Improveversion compatibilityVSAvoidclass loading mechanism
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The class loading mechanism is segmented by version, with each version of a class having its own dedicated class loader. This segmentation allows different versions of classes to coexist without interference, resolving the compatibility issue while maintaining manageable complexity through organized version-specific loading paths.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A version dimension is added to the class loading mechanism, transforming the traditional single-dimension class loading into a multi-dimensional system where classes are loaded based on both their type and version. This dimensional expansion enables version compatibility while the version metadata structure keeps the complexity organized and tractable.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Adaptability or versatility

If multiple versions of classes are loaded simultaneously, then compatibility between legacy and standards-based software is improved, but memory consumption and system complexity increase

Engineering Contradiction:
Improvesoftware integration capabilityVSAvoidmemory resources
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

Each version of a class is loaded into a specific versioned namespace with locally scoped visibility. This local quality approach allows multiple versions to exist in memory simultaneously but only the required version is actively bound to any given component, reducing actual memory consumption while maintaining integration capability.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

Version metadata structures act as intermediaries between different class versions and the class loading system. These metadata structures enable efficient version resolution and class location without requiring all versions to be fully instantiated in memory, thus reducing memory resources while supporting software integration.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Manufacturing precision

If version-based class loaders are created for each class version, then precise version control is achieved, but the complexity of the class loading system increases

Engineering Contradiction:
Improveversion control accuracyVSAvoidclass loader management
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

Version metadata is prepared and structured in advance before class loading occurs. This preliminary action includes pre-defining version relationships, dependency structures, and loading paths, which enables precise version control during execution without requiring complex real-time decision-making logic in the class loaders themselves.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The versioned class loader implementation uses a universal metadata structure that can represent multiple version relationships and dependency patterns. This multi-functional metadata system handles various version control scenarios (inheritance, implementation, parallel versions) through a unified approach, reducing overall system complexity while maintaining precise version control.

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

Data Source

PatentUS7703089B2Compatibility framework using versioning class loaders
Publication Date: 2010.04.20 SAP SE
  • US7703089B2 patent drawing
  • US7703089B2 patent drawing
  • US7703089B2 patent drawing

AI summary

A method and system for performing version-based class loading. In one embodiment, a first version is sought to continue running an application, where a first class is associated with the first version being sought. A first class loader capable of loading the first class is created. The first class is then loaded using the first class loader.