Enterprise Software Update Version Switching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Deploying enterprise software updates to client devices, especially wireless devices like POS systems, is challenging due to bandwidth constraints and the risk of critical errors, which can render devices inoperable and require time-consuming rollbacks.

Innovation Solution

Implementing a system where multiple versions of an application share a common group identifier, allowing seamless switching between versions and preserving shared data, enabling instant rollback to a previous version in case of errors without losing data or consuming excessive bandwidth.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If multiple applications are deployed concurrently to all client devices, then deployment speed is improved, but network bandwidth consumption increases excessively

Engineering Contradiction:
Improvedeployment speedVSAvoidnetwork bandwidth consumption
Core Design Contradiction:
SpeedVSLoss of energy

Solution Approach 1:

The patent segments the deployment process by dividing client devices into multiple groups and deploying applications to each group sequentially rather than concurrently. This segmentation allows deployment to proceed at high speed across the entire fleet while limiting bandwidth consumption to only the portion of devices being updated at any given moment.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements periodic action by deploying applications in scheduled batches to different device groups over time. Each deployment wave targets a specific segment of devices, creating a rhythmic pattern of updates that maintains high overall deployment speed while controlling instantaneous bandwidth usage within available network capacity.

Inventive Principle:
Principle #19Periodic action

2Productivity

If a faulty update is deployed, then the newer version should be executed, but device inoperability occurs requiring rollback

Engineering Contradiction:
Improveapplication executionVSAvoiddevice operability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies preliminary action by maintaining the previous working version of the application installed and ready on each device before deploying the new version. This ensures that if the new version proves faulty, the system can immediately revert to the known-good previous version without requiring device replacement or complex recovery procedures, thus preserving device operability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements beforehand cushioning by creating a safety buffer through version retention. The previous application version serves as a cushion against the risks of new version deployment, allowing the system to absorb potential failures and maintain continuous operation. This cushioning mechanism protects device productivity while enabling reliable updates.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

3Reliability

If rolling back to a previous version is performed, then device operability is restored, but data loss occurs

Engineering Contradiction:
Improvedevice operabilityVSAvoiddata loss
Core Design Contradiction:
ReliabilityVSLoss of information

Solution Approach 1:

The patent merges the data storage functionality across multiple application versions by implementing a shared data repository that persists independently of which application version is currently executing. This merging ensures that when rolling back from a newer version to a previous version, the underlying data remains intact and accessible, preventing data loss while restoring device operability.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent applies universality by designing a common data layer that serves all application versions. This multi-functional data storage system allows any version of the application to access and preserve the same data set, making the data independent of version-specific implementations. Consequently, version rollback restores functionality without sacrificing information.

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

4Reliability

If rolling back is performed after concurrent deployment to dozens of devices, then errors are corrected, but network bandwidth is excessively consumed

Engineering Contradiction:
Improveerror correctionVSAvoidnetwork bandwidth consumption
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent segments the rollback process by targeting only the specific device groups that received the faulty update, rather than initiating system-wide rollbacks. This segmented approach corrects errors in affected devices while leaving other devices operating normally, thereby restoring reliability where needed without consuming excessive network bandwidth across the entire device fleet.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by implementing selective rollback at the device or group level based on error detection. Instead of uniform rollback across all devices, the system identifies and rolls back only those local instances where the new version proved faulty. This localized error correction maintains reliability for affected devices while minimizing unnecessary network traffic from devices that are operating correctly.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11675579B2Systems and methods for deploying enterprise software updates
Publication Date: 2023.06.13 GAP INC
  • US11675579B2 patent drawing
  • US11675579B2 patent drawing
  • US11675579B2 patent drawing

AI summary

Systems and methods for deploying enterprise software updates are provided. At a server storing applications and a record of client devices is provided. Each application includes a corresponding group identifier indicating a group associated with an application and a corresponding version identifier indicating a version of the application. The record includes the deployment identifier for each application in the plurality of applications installed on each device. A first application having a first group identifier and a first version identifier, and a second application having the first group identifier and a second version identifier is installed in each respective device. An update for the first application is received at the server, which includes modifying the version identifier of the first application. The update for the first application is communicated to each device. For each respective device, a modification of the deployment identifier indicates which application is executable on the respective device.