Application Component Versioning for Backwards Compatibility

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Application developers face challenges in maintaining multiple versions of an application, as each update introduces a new version, limiting their ability to support prior versions and requiring them to either maintain each version or force users to install the latest version, which restricts the changes they can include in updates without affecting user integration.

Innovation Solution

The solution involves mechanisms and methods for versioning application components, ensuring that an updated application maintains backwards compatibility, allowing developers to support multiple prior versions while maintaining a single application. This is achieved by identifying the version provided by calling code and providing access to corresponding components, using predetermined rules to determine which components to access, and annotating components with version ranges to ensure compatibility.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If the application developer forces users to install the latest version to avoid maintaining multiple versions, then the maintenance burden is reduced, but the flexibility to include changes in updates is limited

Engineering Contradiction:
Improvemaintenance burdenVSAvoidflexibility to include changes
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The patent segments the application into multiple independent components, each with its own version identifier. This allows the application to be divided into versionable units that can be selectively updated and accessed, resolving the contradiction by enabling maintenance of a single application structure while supporting multiple component versions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements nested versioning where components contain version information and compatibility data within their metadata. This nested structure allows older version components to be embedded within the latest application version, enabling backward compatibility while maintaining a single application deployment.

Inventive Principle:
Principle #7Nested doll (Nesting)

2Reliability

If the application developer maintains and supports all available versions, then user integration is preserved, but the complexity of version management increases

Engineering Contradiction:
Improveuser integrationVSAvoidversion management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent enables components to self-identify their version through embedded version identifiers and compatibility metadata. When components are accessed, they automatically provide version information and compatibility data, eliminating the need for external version management systems and reducing management complexity while maintaining reliability.

Inventive Principle:
Principle #25Self-service

3Stability of the object's composition

If multiple versions of an application are supported, then backwards compatibility is maintained, but the complexity of maintaining each version increases

Engineering Contradiction:
Improvebackwards compatibilityVSAvoidmaintenance complexity
Core Design Contradiction:
Stability of the object's compositionVSDevice complexity

Solution Approach 1:

The patent creates a universal application structure that can serve multiple version requirements simultaneously. The latest application version is designed to be universally compatible with older components through standardized interfaces and embedded versioning, allowing a single application deployment to fulfill multiple version functions without increasing maintenance complexity.

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

Data Source

PatentEP2433200B1System, method and computer program product for versioning components of an application
Publication Date: 2020.02.26 SALESFORCE INC
  • EP2433200B1 patent drawingFigure 1
  • EP2433200B1 patent drawingFigure 2
  • EP2433200B1 patent drawingFigure 3

AI summary

In accordance with embodiments, there are provided mechanisms and methods for versioning components of an application. These mechanisms and methods for versioning components of an application can ensure that an updated application maintains backwards compatibility, such that the application developer may maintain a single application while supporting multiple prior versions of the application.