In-place Binary Image Promotion via Symbol Value Replacement

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional image promotion techniques require copying and modifying entire source trees, which is time-consuming and resource-intensive, and often result in software that is inoperable or suboptimal due to recompiling and relinking, limiting the ability to test promoted versions before shipping.

Innovation Solution

The method involves identifying and replacing symbol values in binary files within an unpromoted image without recompiling or relinking, using an image promoter and a binary stamper to modify the image in-place, allowing for promotion without copying the source tree or altering extensive software bits.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional promotion techniques copy the entire source tree and recompile software, then version information can be finalized and unnecessary functionality disabled, but the process requires considerable time and resources, making promotion infrequent and preventing testing of promoted versions

Engineering Contradiction:
Improveversion information accuracyVSAvoidpromotion time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent uses binary stamping to copy and modify only the necessary symbol values within the binary file, rather than copying the entire source tree. This selective copying approach maintains version information accuracy while dramatically reducing the time and resources required for promotion.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent segments the promotion process into identifying specific symbol values that need modification versus the entire software build. By isolating only the version-related symbols for modification, the process avoids unnecessary recompilation and relinking, reducing promotion time while maintaining reliability.

Inventive Principle:
Principle #1Segmentation

2Reliability

If conventional promotion techniques recompile and relink software to modify symbol values, then version information can be updated, but numerous bits of software are changed, risking inoperable or suboptimal software

Engineering Contradiction:
Improvesoftware functionalityVSAvoidsoftware instability
Core Design Contradiction:
ReliabilityVSObject-generated harmful factors

Solution Approach 1:

The patent extracts only the specific symbol values that need to be modified for versioning purposes from the binary file, leaving the rest of the compiled software unchanged. This extraction approach updates version information while avoiding the harmful effect of widespread software modification that could cause instability.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent performs preliminary identification of the exact symbol values that need modification before making any changes. This preliminary action ensures that only necessary bits are changed, preventing the software instability that arises from unnecessary recompilation and relinking.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If system build and promotion are intertwined, then builds can be automatically promoted, but developers lose the ability to check promoted software before shipping

Engineering Contradiction:
Improvebuild automationVSAvoidtesting capability
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent makes the promotion process dynamic and configurable, allowing it to be performed at different stages in the build process. Developers can choose to promote immediately after building or delay promotion until after testing, providing flexibility that maintains both automation productivity and testing capability.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent creates a reversible promotion process where the original binary can be preserved and the promoted version can be tested without committing to permanent changes. This cushioning approach allows developers to test promoted software before shipping while maintaining build automation.

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

Data Source

PatentUS8190587B1In-place image promotion
Publication Date: 2012.05.29 NETAPP INC
  • US8190587B1 patent drawing
  • US8190587B1 patent drawing
  • US8190587B1 patent drawing

AI summary

To promote an image, an identification of at least one of an symbol name and an existing symbol value associated with the symbol name is received. An identification of a new symbol value is also received. It is then determined that a binary file that is a component of an unpromoted image is to be modified, wherein the image has previously been compiled and linked. The binary file is read to find occurrences of at least one of the symbol name or the existing symbol value in the binary file. The existing symbol value is replaced with the new symbol value to promote the image. The image is promoted without recompiling or relinking the binary file.