Interface Versioning via Access Class Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modular software design faces limitations as interfaces defined during the design phase cannot be changed post-deployment, leading to compatibility issues and complex error handling when new parameters or methods are added, affecting flexibility and extensibility.

Innovation Solution

Implementing a system with super classes that have unique version designations for interfaces, allowing an access class to dynamically provide access to the appropriate interface based on version, ensuring backward compatibility and transparent handling of different interface versions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the interface is defined during the design phase and deployed without versioning, then the implementation is simple and stable, but the interface cannot be changed afterwards and new parameters or methods cannot be added

Engineering Contradiction:
Improveinterface extensibilityVSAvoidversion management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The interface system is segmented into multiple versions, where each version is represented by a separate super class. This allows the interface to be divided into distinct evolutionary stages (first interface, second interface, etc.), enabling new parameters and methods to be added in subsequent versions without affecting existing implementations that rely on older versions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

An access class is introduced as an intermediary between the client code and the interface implementations. This access class dynamically determines which super class (and thus which interface version) to instantiate based on the feature being accessed. This mediator handles the complexity of version management internally, allowing client code to remain simple while supporting multiple interface versions.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If new parameters are added to the interface, then the functionality is extended, but old implementations must carefully handle the new parameters with complex error handling

Engineering Contradiction:
Improveinterface functionalityVSAvoiderror handling complexity
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The interface parameters and methods are segmented into different version groups. Each super class represents a specific version with its own set of parameters and methods. Old implementations that inherit from earlier super classes automatically only see the parameters and methods appropriate to their version, eliminating the need to handle new parameters that they don't support.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The interface system becomes dynamic through the access class, which can instantiate different super classes based on runtime conditions. This dynamic behavior allows the system to adapt to different interface versions without requiring static error handling code in each implementation. The complexity of determining which version to use is moved from the implementation level to the access level.

Inventive Principle:
Principle #15Dynamics

3Adaptability or versatility

If the interface is made flexible to allow changes, then new methods can be added, but calling instances must address that the new method might not be implemented by old classes

Engineering Contradiction:
Improveinterface flexibilityVSAvoidcompatibility management
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

Interface methods are segmented by version, with each super class containing only the methods appropriate to its version. This segmentation ensures that old classes implementing earlier versions never encounter method calls for methods that don't exist in their version, as the access class routes calls to the appropriate super class based on the feature being accessed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The access class serves multiple functions: it acts as a factory that creates appropriate instances of super classes, serves as a router that directs method calls to the correct version, and provides a unified interface to client code. This multi-functionality allows the system to manage multiple interface versions with a single point of control, simplifying compatibility management.

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

Data Source

PatentUS8316350B2Interface versioning
Publication Date: 2012.11.20 SAP SE
  • US8316350B2 patent drawing
  • US8316350B2 patent drawing
  • US8316350B2 patent drawing

AI summary

A system and method of interface visioning to improve extendibility and flexibility in modular software design. A first super class implements a first interface. A second super class implements both a first interface and a second interface. Each super class has a unique version designation. An access class is instantiated when a feature using an interface is requested. The access class identifies from the feature the version designation and provides access to the appropriate interface through either the first super class or the second super class.