Difference-Based Software Update System for Anti-Malware Files

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional incremental update methods for anti-malware and database files are inefficient, leading to high server loads and increased processing demands due to frequent updates, especially when clients are not continuously connected to the Internet, and require significant client-side processing to determine necessary updates.

Innovation Solution

A difference-based software update system that generates and publishes differences between file versions, allowing clients to receive updates from the latest version or a previous version based on an identifier, such as a hash or checksum, reducing the load on both the server and client by minimizing data exchange and processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If incremental updates are distributed frequently to keep software up-to-date, then the software remains current with latest malware signatures and database information, but the server load increases significantly and network resources are consumed

Engineering Contradiction:
Improvesoftware currencyVSAvoidserver load
Core Design Contradiction:
ReliabilityVSPower

Solution Approach 1:

The system pre-calculates and stores difference files for multiple prior versions before clients request updates. When a client connects, the server can immediately provide the appropriate pre-computed difference file without performing real-time calculations, thus reducing server processing load during update distribution.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The update process is segmented into pre-computation phase (server-side) and distribution phase (client-side). The heavy computational work of generating difference files is separated from the update distribution process, allowing the server to handle multiple client requests efficiently without regenerating difference files each time.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If difference files are generated and stored for multiple prior versions, then clients can receive appropriate updates even when not continuously connected, but the storage requirements on the server increase

Engineering Contradiction:
Improveupdate accessibilityVSAvoidserver storage
Core Design Contradiction:
Adaptability or versatilityVSVolume of stationary object

Solution Approach 1:

The system uses version identifiers (hashes, checksums, or version numbers) as parameters to index and retrieve appropriate difference files. This allows efficient storage organization where difference files are stored only for specific prior versions that are likely to be encountered by clients, optimizing the balance between accessibility and storage requirements.

Inventive Principle:
Principle #35Parameter changes

3Measurement precision

If the client sends detailed version information to the server to determine the correct update, then the server can provide precise updates, but the client-side processing complexity increases

Engineering Contradiction:
Improveversion identification accuracyVSAvoidclient processing
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The system extracts only the essential version identifier (such as a hash, checksum, or version number) from the client's current file and sends it to the server. This extracted parameter is sufficient for the server to identify and provide the correct difference file, eliminating the need for complex client-side analysis of the entire file content.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS7665081B1System and method for difference-based software updating
Publication Date: 2010.02.16 AO KASPERSKY LAB
  • US7665081B1 patent drawing
  • US7665081B1 patent drawing
  • US7665081B1 patent drawing

AI summary

A system, method and computer program product for software updates includes (a) generating a set of differences between a latest version of a file and a plurality of prior versions of the file, wherein the differences convert any of the plurality of prior versions into the latest version, but not to any other version; (b) publishing the set of differences; and (c) providing, to the client, in response to a client requesting an update to a client's version of the file and the client providing an identifier corresponding to the client's version of the file, a difference between the client's version of the file and one of (i) the latest version of the file, and (ii) a version of the file prior to the latest version.