Rack-Based Software Version Switching for Stable Web Updates

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software update management techniques are inefficient and prone to interruptions, resource wastage, and failures due to incompatibilities between legacy and new software versions, requiring extensive testing and resource allocation without considering criticality levels and common flow paths.

Innovation Solution

A system that classifies software codes based on attributes such as functions, criticality levels, and common flow paths, allowing dynamic switching between old and new versions, monitors updates for failures, and uses video recordings and log files to address errors, optimizing resource allocation and reducing interruptions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If software code is updated from legacy version to new version, then software functionality is improved, but system stability deteriorates due to compatibility issues and execution interruptions

Engineering Contradiction:
Improvesoftware update capabilityVSAvoidsystem stability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The software code is divided into multiple execution racks (first rack for legacy version, second rack for new version), allowing independent management and execution of different versions. This segmentation enables the system to maintain stable legacy operations while testing new versions, resolving the contradiction between update capability and system stability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system introduces an intermediary mechanism that tracks executed operations and their corresponding racks. When an operation is interrupted during update, the system uses this intermediary information to resume execution from the correct rack, ensuring stability is maintained while updates are applied.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If complete testing of all software code functions is performed during update, then update reliability is improved, but processing resources and time are excessively consumed

Engineering Contradiction:
Improveupdate reliabilityVSAvoidupdate efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

Instead of testing all software code functions completely, the system performs partial testing by executing operations only in the context of specific racks where the code will be deployed. This partial action approach ensures sufficient reliability verification while significantly reducing the processing resources and time required compared to comprehensive testing.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system creates a simplified representation of the execution environment through racks that replicate only the necessary execution context. This copying approach allows testing and validation without requiring full replication of all system functions, improving update reliability while maintaining high productivity.

Inventive Principle:
Principle #26Copying

3Adaptability or versatility

If software code execution is interrupted for updates, then new features are implemented, but processing resources are wasted and update time is extended

Engineering Contradiction:
Improveversion switching capabilityVSAvoidupdate interruption time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system dynamically switches between different racks based on the current execution state and update requirements. Rather than interrupting execution for updates, the system can dynamically redirect operations to appropriate racks, implementing version switching capability while minimizing update interruption time and resource waste.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS12436759B2System and method for dynamic switching between an old version and a new version of a software code
Publication Date: 2025.10.07 BANK OF AMERICA CORP
  • US12436759B2 patent drawing
  • US12436759B2 patent drawing
  • US12436759B2 patent drawing

AI summary

A system for updating a software code executes a current version of the software code on a web application. The system receives a request message to update the current version of the software code to a new version of the software code. The system determines whether the software code is still being executed on the web application. In response to determining that the software code is still being executed on the web application, the system identifies a subset of portions of the software code that have not yet been executed, executes an update instruction to cause the subset of portions of the software code to be updated, and moves the updated subset of portions of the software code from a first memory block to a second memory block.