Plugin Architecture for Hardware Revision Adaptability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data storage system management applications face difficulties in maintaining and modifying code due to the complexity of switch statements, leading to errors and increased memory footprint when supporting multiple hardware revisions, often resulting in cumbersome coding and reduced support for old hardware revisions.

Innovation Solution

Implementing a plugin architecture that uses different namespaces for different hardware revisions, allowing only necessary plugin versions to be loaded, which simplifies code structure, reduces memory usage, and maintains support for old hardware versions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If switch statements are used to support multiple hardware revisions, then all hardware revisions can be supported, but code complexity and maintenance difficulty increase

Engineering Contradiction:
Improvesupport for multiple hardware revisionsVSAvoidcode complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The codebase is segmented into separate plugin modules, each dedicated to a specific hardware revision. Instead of one monolithic codebase with numerous switch statements, the system divides functionality into discrete, manageable units (plugins) that can be independently developed, maintained, and loaded. Each plugin handles a specific hardware revision, eliminating the need for complex conditional logic throughout the code.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A plugin manager acts as an intermediary between the core application and hardware-specific plugins. This mediator component handles the detection of hardware revision, selection of appropriate plugins, and loading of necessary components. The plugin manager abstracts away the complexity of hardware revision handling from the rest of the application code, providing a clean interface while managing the diversity of hardware support internally.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If switch statements are used to handle different hardware revisions, then all revisions can be managed, but error-prone code results

Engineering Contradiction:
Improvesupport for multiple hardware revisionsVSAvoidcode reliability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

By segmenting hardware revision support into separate plugins, each plugin can be independently tested and validated for its specific hardware revision. This isolation means that errors in one plugin's switch statement logic cannot affect other hardware revisions. Each plugin becomes a self-contained unit of reliability, reducing the risk of cascading errors across different hardware versions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system uses template plugins that can be copied and adapted for different hardware revisions. Instead of manually creating unique code paths for each revision through switch statements, developers can create a base plugin template and copy it for each hardware revision, then customize only the necessary parts. This reduces copying errors and ensures consistent error handling patterns across all hardware revisions.

Inventive Principle:
Principle #26Copying

3Adaptability or versatility

If all plugin versions are loaded to support old hardware revisions, then backward compatibility is maintained, but memory footprint increases

Engineering Contradiction:
Improvebackward compatibilityVSAvoidmemory footprint
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The plugin loading system is dynamic rather than static. Instead of loading all plugin versions into memory at startup to ensure backward compatibility, the system dynamically detects the hardware revision at runtime and loads only the plugins necessary for that specific revision. This dynamic approach maintains backward compatibility while optimizing memory usage, as plugins are loaded on-demand based on actual hardware requirements.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

Different regions of the system have different quality requirements. The plugin loading mechanism applies local quality by loading full-featured plugins for older hardware revisions that may require comprehensive functionality, while loading optimized or minimal plugins for newer hardware revisions that have more capabilities built-in. This localized approach to plugin loading ensures appropriate resource allocation for each hardware revision without uniformly increasing memory footprint across all scenarios.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS8667478B1Backward-compatibility using a plugin architecture
Publication Date: 2014.03.04 EMC IP HLDG CO LLC
  • US8667478B1 patent drawing
  • US8667478B1 patent drawing
  • US8667478B1 patent drawing

AI summary

A method, to be performed in a computer, is provided. The method includes, for each of a plurality of devices, (a) detecting a hardware revision of that device, (b) selecting a version of a plugin associated with that hardware revision, and (c) loading the selected version of the plugin. At least one device of the plurality of devices has a different hardware revision than at least one other device of the plurality of devices. The version of the plugin associated with the one device is different than the version of the plugin associated with the other device. Corresponding computer program products and devices are also provided.