Incremental Software Deployment via Code Change Transmission

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software deployment methods for large-scale applications often require stopping ongoing execution and replacing the entire application version, which is inefficient and can result in downtime, especially when only minor updates are needed.

Innovation Solution

The method involves determining and transmitting only the code changes required to transform the current software version into a new version, allowing incremental deployment while the current version continues to execute, thereby reducing data transfer and downtime.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the entire new version of the application is transmitted to the target system for deployment, then the software update is complete and reliable, but the data transfer volume is large and the deployment time is long

Engineering Contradiction:
Improvesoftware update completenessVSAvoiddeployment time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the software update process into two distinct phases: (1) generating and transmitting only the incremental difference data representing code changes between versions, and (2) applying these differences to the existing software version on the target system. This segmentation reduces the amount of data that needs to be transmitted while ensuring complete and reliable updates through a structured two-step process.

Inventive Principle:
Principle #1Segmentation

2Reliability

If the entire new version of the application is transmitted to the target system for deployment, then the software update is complete and reliable, but the data transfer volume is large

Engineering Contradiction:
Improvesoftware update completenessVSAvoiddata transfer volume
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent extracts only the essential information needed for the update—the incremental differences or code changes between the current and new versions—separating this from the entire software package. By transmitting only these extracted differences rather than the complete new version, the data transfer volume is dramatically reduced while maintaining update reliability through the structured application process.

Inventive Principle:
Principle #2Taking out (Extraction)

3Ease of manufacture

If the current application execution is stopped to replace with the new version, then the deployment is simple and straightforward, but the system downtime increases

Engineering Contradiction:
Improvedeployment simplicityVSAvoidsystem downtime
Core Design Contradiction:
Ease of manufactureVSLoss of time

Solution Approach 1:

The patent performs preliminary actions by generating the incremental difference data and preparing the update package before the actual deployment to the target system. This preliminary preparation allows the update to be applied efficiently once received, reducing the time the target system needs to be stopped while maintaining deployment simplicity through pre-processed update packages.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent enables continuous operation of the target system during update deployment by applying incremental differences to the running software version rather than requiring a complete replacement. This allows the system to maintain continuous useful action with minimal interruption, as the update is integrated into the existing execution context.

Inventive Principle:
Principle #20Continuity of useful action

4Loss of time

If only code changes are transmitted instead of the entire application version, then the data transfer volume is reduced and deployment is faster, but the deployment process becomes more complex

Engineering Contradiction:
Improvedeployment timeVSAvoiddeployment process complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary component (the incremental difference generation and application mechanism) that mediates between the source and target systems. This intermediary handles the complexity of comparing versions, generating differences, and applying updates, thereby simplifying the overall deployment process despite the sophisticated underlying operations. The intermediary abstracts the complexity away from the user while enabling fast, efficient updates.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10635432B2Systems and methods for incremental software deployment
Publication Date: 2020.04.28 EBAY INC
  • US10635432B2 patent drawing
  • US10635432B2 patent drawing
  • US10635432B2 patent drawing

AI summary

Methods and systems for facilitating incremental software deployment are disclosed. For example, a method can include receiving a command to deploy a second version of software to a computing system for execution on the computing system. In response to the command, differences between the second version of the software and a first version of the software being executed on the computing system are determined. Code changes to be made to the first version of the software to produce the second version of the software are determined based on the differences. The code changes to be made to the first version of the software are transmitted to the computing system.