Hot Deployment of Shared Modules via Delegator Class Loader

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Hot deployment of shared modules in application servers is challenging due to the use of a single shared class loader, which makes it difficult to redeploy standalone resource adapter modules without affecting other applications and requiring system restarts.

Innovation Solution

Implementing a class loader mechanism with a shared delegator class loader that delegates loading to a chain of independent module class loaders, allowing for the redeployment of individual module class loaders without affecting the shared class loader.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a single shared class loader is used to load classes for multiple applications, then resource sharing and system simplicity are improved, but the ability to hot deploy modules without affecting other applications deteriorates

Engineering Contradiction:
Improveresource sharing capabilityVSAvoidhot deployment capability
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

Solution Approach 1:

The patent segments the single shared class loader into multiple independent class loaders, each responsible for loading classes for specific applications or modules. This segmentation allows individual modules to be hot-deployed without affecting other applications, while the class loader hierarchy maintains resource sharing through the parent-child delegation model.

Inventive Principle:
Principle #1Segmentation

2Device complexity

If a single shared class loader is used, then system complexity is reduced, but system downtime during module redeployment increases

Engineering Contradiction:
Improveclass loader structure complexityVSAvoidsystem downtime during redeployment
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

By segmenting the class loading system into independent class loaders for each module, the patent enables parallel deployment operations. Individual modules can be redeployed independently without requiring system-wide restarts, significantly reducing system downtime while maintaining manageable complexity through standardized class loader hierarchy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic class loading where class loaders can be created, destroyed, and replaced at runtime. The system dynamically adjusts the class loader hierarchy during deployment operations, allowing modules to be hot-deployed without system restarts, thus reducing downtime while maintaining structural organization.

Inventive Principle:
Principle #15Dynamics

3Ease of operation

If a single shared class loader is used, then ease of operation is improved, but reliability during module redeployment deteriorates

Engineering Contradiction:
Improveclass loading operation simplicityVSAvoiddeployment reliability
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent segments the class loading operations into isolated units for each module. Each class loader operates independently with its own class cache, ensuring that deployment failures or issues in one module do not propagate to other applications. This segmentation maintains operational simplicity through automated delegation while significantly improving deployment reliability.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS7721277B1Hot deployment of shared modules in an application server
Publication Date: 2010.05.18 ORACLE AMERICAN INC
  • US7721277B1 patent drawing
  • US7721277B1 patent drawing
  • US7721277B1 patent drawing

AI summary

System and method for the hot deployment of shared modules, for example standalone resource adaptor modules (RARs), in systems. A class loader mechanism may utilize, in a hierarchy of class loaders, a shared “delegator” class loader which delegates received load class requests to a chain of class loaders, each representing a hot-deployable module. Hot deployment of a module results in the redeployment of the associated class loader in the chain rather than in a single, shared class loader. In one embodiment, when a load class request is received, the delegator class loader traverses the chain to find the class loader to load the class indicated by the request, the request is delegated to the class loader, and the class loader loads the class. If the module and class loader are subsequently redeployed, the redeployed version of the class loader loads the new version of the class.