Bundle-Specific Registries for Legacy Data Modeling in Dynamic Class Loaders

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Legacy data modeling software products, such as the Eclipse Modeling Framework (EMF), face challenges in managing static data structures in dynamic class loader environments like OSGi, where multiple versions of software bundles coexist, leading to issues with class availability and instantiation, as the traditional single registry approach fails to accommodate multiple versions and dependencies.

Innovation Solution

The implementation of a system that constructs bundle-specific registries within a super-registry, using configuration metadata to manage dependencies and create registry fragments, allowing each software bundle to have its own registry for in-memory representation, thereby enabling correct instantiation of model classes even with multiple versions present.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a single registry approach is used to manage data model classes, then the system is simple to implement and operate, but it cannot accommodate multiple versions of software bundles coexisting in dynamic class loader environments

Engineering Contradiction:
Improveability to support multiple versions of software bundlesVSAvoidregistry structure complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent divides the single registry into multiple bundle-specific registries, where each registry is dedicated to a specific software bundle. This segmentation allows each bundle to have its own isolated namespace for data model classes, enabling multiple versions to coexist without conflict. The system maintains separate registry structures for different bundles while providing a unified interface through the super-registry.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimensional layer to the registry structure by creating a hierarchy where bundle-specific registries are organized under a super-registry. This dimensional change from a flat single registry to a hierarchical multi-registry structure enables the system to manage multiple versions of software bundles simultaneously while maintaining simplicity at the interface level.

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

2Reliability

If all classes are made available in a single registry, then any software can instantiate any model class, but this prevents proper isolation and dependency management in dynamic class loader environments

Engineering Contradiction:
Improveclass instantiation reliabilityVSAvoidregistry management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies local quality by making each bundle-specific registry have the specific quality of containing only the data model classes relevant to that bundle. This localized organization ensures that each bundle can reliably instantiate only the classes it depends on, while the super-registry provides a unified view. The local registries maintain their own namespaces and dependencies independently.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The super-registry acts as an intermediary between the bundle-specific registries and the legacy data modeling software. It provides a unified interface that allows legacy software to query and instantiate classes without needing to know about the underlying multi-registry structure. The super-registry mediates between the simplified single-registry interface and the complex multi-registry implementation.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If a legacy data modeling software uses a static registry, then it operates efficiently with simple lookups, but it cannot adapt to dynamic class loader environments where bundles are loaded and unloaded

Engineering Contradiction:
Improveadaptability to dynamic class loadingVSAvoidregistry construction and lookup time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-construcing bundle-specific registries during bundle initialization, before the legacy data modeling software needs to query them. The super-registry is also pre-configured with references to all bundle-specific registries. This preliminary construction eliminates the need for dynamic registry creation during runtime, maintaining efficient lookup performance while adapting to dynamic class loading.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces dynamics by making the registry structure adaptable to the dynamic class loader environment. When bundles are loaded or unloaded, the corresponding bundle-specific registries are automatically constructed or destroyed. The super-registry dynamically updates its configuration to reflect the current state of available bundles, allowing the system to adapt to changing conditions while maintaining efficient operation.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8789010B2Managing static data structures of legacy software in dynamic class loader environments
Publication Date: 2014.07.22 CLOUD SOFTWARE GROUP LLC
  • US8789010B2 patent drawing
  • US8789010B2 patent drawing
  • US8789010B2 patent drawing

AI summary

A method for managing static data structures of a legacy data modeling software product in a dynamic class loader environment comprises constructing a bundle-specific registry for each software bundle in the dynamic class loader environment and instructing the legacy data modeling software product to use the bundle-specific registry rather than its default registry when creating in-memory representations of data model classes associated with a particular software bundle. Constructing a bundle-specific registry may include using the bundle's configuration metadata to calculate a dependency graph identifying the other bundles on which the software bundle depends. An initializer may construct the initial set of bundle-specific registries, and a listener may construct bundle-specific registries for new software bundles entering the system.