Zero Downtime Software Versioning via Dynamic Invoking Logic

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems face challenges in seamlessly updating software components like stored procedures within applications without disrupting ongoing instances, leading to potential downtime and consistency issues.

Innovation Solution

The method involves receiving an updated version of a software component while an application instance is executing, storing it with new version information, and modifying the invoking logic to use the updated version at runtime, while allowing prior instances to continue using the current version, thus enabling simultaneous use of different versions without downtime.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If an updated version of a software component is deployed while an application instance is executing, then the application can use the updated version in future executions, but the current executing instance cannot access the updated version without downtime

Engineering Contradiction:
Improveapplication availabilityVSAvoidsoftware component version flexibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The system segments the software component storage into version-specific containers within the database, allowing multiple versions to coexist independently. Each version is stored as a separate entity with version identifiers, enabling the application to access different versions based on the executing instance without conflict or downtime.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a version dimension to the software component storage model. Instead of a single sequential version replacement, the system adds a version identifier dimension that allows parallel access to multiple versions simultaneously. This dimensional expansion enables the application to select appropriate versions dynamically without disrupting executing instances.

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

2Productivity

If the invoking logic is updated to use a new software component version, then new application executions will use the updated version, but existing executing instances continue using the old version

Engineering Contradiction:
Improvedeployment speedVSAvoiddowntime
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary version registration and database updates before the application needs to use the new version. By pre-storing the updated software component version in the database with proper version identifiers and updating the invoking logic in advance, the system ensures that when new application instances start, they can immediately access the updated version without any downtime or deployment delays.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If multiple versions of a software component are stored concurrently, then different application instances can use different versions, but version management complexity increases

Engineering Contradiction:
Improveversion coexistence capabilityVSAvoidversion management system complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a version management intermediary layer that mediates between the application and multiple software component versions. This intermediary maintains a version registry in the database, tracks which versions are available, and directs application instances to appropriate versions based on their requirements. This intermediary simplifies version management by providing a unified interface while handling the complexity of multiple version coexistence.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9652220B2Zero down-time deployment of new application versions
Publication Date: 2017.05.16 SAP PORTALS ISRAEL
  • US9652220B2 patent drawing
  • US9652220B2 patent drawing
  • US9652220B2 patent drawing

AI summary

The disclosure generally describes methods, software, and systems, including a method for application versioning. An updated version of a software component to be executed by an application is received while an instance of the application is executing using an instance of a current version. The updated version is stored with new version information, concurrently with the current version. A request is received for execution of the application that uses the software component. Invoking logic in the application is updated to invoke the software component. The updating includes modifying the invoking logic to invoke the updated version using the updated version information in the invoking logic. The updating causes the invoking logic to invoke, at runtime, the updated version. Instances of the application invoked prior to the receiving and storing continue to execute using the current version. The application is provided for execution, including the updated invoking logic.