Version Compatibility Checking via Rule-Based Pattern Matching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional software systems face challenges in ensuring compatibility between different versions of components in a distributed environment, leading to potential undesirable application behavior, data corruption, and downtime, especially when deploying successive versions or patches to multiple customer sites with varying configurations.

Innovation Solution

A rule-based pattern matching mechanism is employed to specify and verify version compatibility by using version string masks that define allowable values for each digit place in a version string, allowing for rigorous compatibility checking without the need for source-code changes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If successive versions of software components are deployed to improve functionality and fix bugs, then the software system becomes more reliable and adaptable, but compatibility issues arise between different versions leading to application errors, data corruption, and downtime

Engineering Contradiction:
Improvesoftware system reliabilityVSAvoidcompatibility errors
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The system performs preliminary compatibility checking by comparing version strings against defined compatibility rules before allowing component installation or updates. This prevents incompatible versions from being deployed, thereby avoiding application errors, data corruption, and downtime while still enabling successive version releases to improve reliability.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If complete redeployment of the entire software system is performed to ensure version compatibility, then compatibility is guaranteed, but the process becomes inefficient and time-consuming

Engineering Contradiction:
Improveversion compatibilityVSAvoiddeployment efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

Instead of redeploying the entire software system, the compatibility checking mechanism segments the verification process to evaluate only the version compatibility of individual components against the existing system. This selective approach maintains compatibility guarantees while significantly improving deployment efficiency by avoiding unnecessary complete system redeployment.

Inventive Principle:
Principle #1Segmentation

3Stability of the object's composition

If all customer sites receive the same set of successive revisions to maintain consistency, then system uniformity is achieved, but sites with different configurations may experience compatibility issues

Engineering Contradiction:
Improvesystem uniformityVSAvoidconfiguration compatibility
Core Design Contradiction:
Stability of the object's compositionVSReliability

Solution Approach 1:

The system applies local quality by allowing different customer sites to receive different sets of successive revisions based on their specific configurations. The compatibility checking mechanism evaluates each site's unique environment and determines which versions are appropriate, thereby maintaining system uniformity where applicable while ensuring configuration compatibility at each local site.

Inventive Principle:
Principle #3Local quality

4Adaptability or versatility

If compatibility checking is performed at runtime to detect version issues, then system flexibility is maintained, but performance degradation and downtime occur

Engineering Contradiction:
Improvesystem flexibilityVSAvoiddowntime
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system performs compatibility checking in advance during the installation or update process, before the component becomes operational. This preliminary verification maintains system flexibility by allowing runtime adaptation while preventing performance degradation and downtime that would result from runtime compatibility detection.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7506336B1System and methods for version compatibility checking
Publication Date: 2009.03.17 EMC IP HLDG CO LLC
  • US7506336B1 patent drawing
  • US7506336B1 patent drawing
  • US7506336B1 patent drawing

AI summary

A software version rule-based pattern matching mechanism specifies version compatibility of a particular remote component by identifying a set of compatible versions operable with a particular server, and comparing the versions to determine compatibility of a purported revision component with an existing server (central component). The mechanism employs a rule based syntax for defining a set of compatible versions associated with a candidate component, and processes a version specifier, or range string mask, indicative of the set of compatible versions. The target version, such as the candidate component version, is then compared with each of the compatible versions indicated by the version string mask. If a matching compatible version is found, then the corresponding component (module) is deemed compatible.