Virtual Typing Executables for Runtime Patching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional methods for fixing computer program errors require stopping and restarting the system, which is inefficient and time-consuming, as they involve installing patches and restarting the computer system.

Innovation Solution

The implementation of virtual types in computer programs allows for real-time modification by receiving an instruction string with a command line switch and new values, enabling the replacement of existing values during execution without halting the program.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional patch installation method is used to fix computer program errors, then the error can be corrected, but the system must be stopped and restarted which causes loss of time and reduces productivity

Engineering Contradiction:
Improveerror correctionVSAvoidsystem restart time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements dynamic modification of the computer program during execution by allowing patch instructions to be loaded and applied without stopping the program. The system dynamically updates code segments in memory and continues execution, transforming the static patch application process into a dynamic runtime operation.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent prepares patch instructions in advance as separate loadable modules that can be quickly injected into the running program. By pre-compiling and packaging corrections as standalone instruction sets, the system can apply fixes immediately upon receipt without needing to perform lengthy compilation or linking operations during the actual patching process.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If traditional patch installation method is used to fix computer program errors, then the error can be corrected, but the system complexity increases due to requiring patch management and system restart procedures

Engineering Contradiction:
Improveerror correctionVSAvoidpatch management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements self-service patching where the running computer program automatically loads and applies correction instructions without requiring external intervention for system restart or complex patch management procedures. The program monitors itself, detects errors, and applies fixes autonomously during execution.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent segments the computer program into modular code sections that can be independently updated. By dividing the program into distinct functional units with identifiable entry and exit points, the system can apply patches to specific segments without affecting the entire program, simplifying patch management and reducing complexity.

Inventive Principle:
Principle #1Segmentation

3Productivity

If virtual types are used to enable real-time modification, then the productivity is improved by avoiding system restarts, but the device complexity increases due to implementing virtual type mechanisms

Engineering Contradiction:
Improveerror correction speedVSAvoidvirtual type implementation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces virtual types as intermediary abstractions that sit between the physical hardware and the running program. These virtual type constructs provide a layer of indirection that enables runtime modification without directly manipulating the underlying program code, simplifying the implementation of real-time updates while maintaining productivity benefits.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8429603B2Virtual typing executables
Publication Date: 2013.04.23 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US8429603B2 patent drawing
  • US8429603B2 patent drawing
  • US8429603B2 patent drawing

AI summary

Computer program product, apparatus, and data processing system for modifying a computer program. According to one embodiment, a new value to replace a value associated with a virtual type in a computer program is received. The new value is received during execution of the computer program by a processor unit. The replacement of the value by the new value modifies the computer program while the computer program is executed by the processor.