Software Self-Healing via Rescue Point Recovery

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional techniques are inadequate for eliminating all software programming errors, leading to unintended behavior, crashes, and security vulnerabilities, especially in high-performance and high-availability applications, necessitating a reactive and automated self-healing mechanism.

Innovation Solution

The implementation of a method that detects fault conditions during software execution, restores the application to a previous 'rescue point', and forces a subroutine to return to its caller, using fault monitors, rescue point discovery, and patch generation to prevent further execution and propagate error values, enabling the software to recover from faults.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional software development strategies and static analysis tools are used to eliminate bugs, then software reliability is improved, but it is impossible to eliminate all bugs due to software complexity

Engineering Contradiction:
Improvesoftware reliabilityVSAvoidsoftware complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by establishing rescue points and recording execution states before faults occur. The system proactively sets up recovery mechanisms during normal execution, so when a fault is detected, the application can immediately restore to a previous known good state without requiring complex bug analysis or manual intervention.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements self-service through automated fault detection and self-healing mechanisms. The system monitors its own execution state, detects faults automatically, and restores itself to previous working states without external intervention. This eliminates the need for conventional manual debugging and reduces dependency on complex analysis tools.

Inventive Principle:
Principle #25Self-service

2Reliability

If a server application crashes upon receiving certain inputs, then the fault is exposed, but denial-of-service occurs to clients until the server is restarted, resulting in loss of time

Engineering Contradiction:
Improvefault detectionVSAvoiddowntime
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary action by recording execution states at rescue points before faults occur. When a crash is detected, the application immediately restores to a previously recorded state, avoiding downtime. This eliminates the need for server restarts and maintains continuous service to clients.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The application implements self-service by automatically detecting faults and restoring itself without external intervention. The system monitors its own execution, detects crashes, and performs self-healing by restoring to previous states, thereby eliminating denial-of-service conditions and avoiding time loss.

Inventive Principle:
Principle #25Self-service

3Reliability

If the software application restores execution to a previous point and forces a subroutine to forego further execution, then the application recovers from faults, but the subroutine does not complete its intended function

Engineering Contradiction:
Improvefault recoveryVSAvoidsubroutine completion
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies beforehand cushioning by recording return values and calling context information before subroutines execute. When a fault occurs and the subroutine is forced to forego execution, the system uses the pre-recorded information to determine appropriate return values, cushioning the impact of the incomplete execution and maintaining application reliability.

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

Solution Approach 2:

The system implements feedback by recording and utilizing calling context information and return values. When a subroutine cannot complete due to fault recovery, the system uses feedback from previously recorded execution states to determine appropriate return values, ensuring the application maintains correct behavior despite the subroutine not completing its intended function.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS7962798B2Methods, systems and media for software self-healing
Publication Date: 2011.06.14 THE TRUSTEES OF COLUMBIA UNIV IN THE CITY OF NEW YORK
  • US7962798B2 patent drawing
  • US7962798B2 patent drawing
  • US7962798B2 patent drawing

AI summary

Methods, systems, and media for enabling a software application to recover from a fault condition, and for protecting a software application from a fault condition, are provided. In some embodiments, methods include detecting a fault condition during execution of the software application, restoring execution of the software application to a previous point of execution, the previous point of execution occurring during execution of a first subroutine in the software application, and forcing the first subroutine to forego further execution and return to a caller of the first subroutine.