Automated Software Patching via Mediator Layer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional patching methods are burdensome, inefficient, and disruptive, requiring multiple patches for different flavors of executable code modules, large patch sizes, separate testing, administrative permissions, and potential disruptions to computer systems, while also being difficult to apply and manage, especially for hot fixes and non-standard module locations.

Innovation Solution

A software facility for patching that includes parameter testing, automated patching agents, hot, cold, and load-time patching, data-driven and code-driven approaches, and configuration options to enable immediate application, reversibility, and reduced resource requirements, allowing patches to be applied without knowing the module's location and eliminating the need for administrative permissions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional patching methods are used to modify executable code modules, then program functionality can be corrected or improved, but the patching process becomes burdensome and disruptive requiring administrative permissions and system restarts

Engineering Contradiction:
Improveprogram functionalityVSAvoidpatching process
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent introduces a mediator layer between the patch and the executable code module that enables patching without administrative permissions. The mediator captures function calls to the target module, applies patches in memory, and returns results, thereby isolating the patching operation from system-level restrictions and eliminating the need for administrative privileges and restarts.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If multiple patches are created for different flavors of executable code modules, then comprehensive coverage is achieved, but patch management complexity increases significantly

Engineering Contradiction:
Improvepatch coverageVSAvoidpatch management
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent creates a universal patching mechanism that can handle multiple flavors of executable code modules through a single patch interface. The mediator layer abstracts the differences between various module flavors and provides a unified method for applying patches, thereby achieving comprehensive coverage without increasing management complexity.

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

Solution Approach 2:

The patent segments the patching process into distinct functional components: the mediator that handles interception and application, the patch data structure that identifies target functions, and the execution flow that manages patch deployment. This segmentation allows the system to handle multiple module flavors independently while maintaining a single manageable patching framework.

Inventive Principle:
Principle #1Segmentation

3Reliability

If entire executable modules are distributed as patches, then complete functionality is provided, but patch size becomes large and contributes to code churn

Engineering Contradiction:
ImprovefunctionalityVSAvoidpatch size
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent extracts only the essential patch data needed to modify specific functions from the entire executable module. Instead of distributing complete module replacements, the system extracts targeted function signatures, patch instructions, and identification data that can be applied in-memory to the running module, dramatically reducing patch size while maintaining functional integrity.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS7559058B2Efficient patching
Publication Date: 2009.07.07 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7559058B2 patent drawing
  • US7559058B2 patent drawing
  • US7559058B2 patent drawing

AI summary

A facility for automatically processing software patches is described. The facility receives in a computing system a distinguished patch package for modifying the behavior of a programmatic entity. The facility automatically extracts from the distinguished patch package (1) patch application information that identifies a distinguished programmatic entity against which the patches to be applied, and (2) patch behavior information that specifies a manner in which to modify the behavior of the distinguished programmatic entity. The facility automatically adds to a patch table a distinguished entry containing the extracted patch application information and patch behavior information.