Difference-Based Software Update System for Anti-Malware Files
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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
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.
Data Source
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.


