Delta File Compression via Subfunction Extraction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software update systems for IoT devices, such as vehicles, face challenges with complex and disorganized software changes leading to increased code length, file size, and resource strain, with manual re-factoring and analysis being time-consuming and inefficient, and lacking the ability to accurately identify functional changes within code updates.

Innovation Solution

The implementation of automated code analysis and reconfiguration techniques using machine learning models and abstract syntax trees to identify subfunctions and common blocks, allowing for the creation of reduced-size delta files and executable files, and matching symbols to determine functional equivalences, thereby optimizing software updates and reducing resource usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If software is updated over time, then software functionality is improved, but code length and software file size increase

Engineering Contradiction:
Improvesoftware functionalityVSAvoidcode length
Core Design Contradiction:
Adaptability or versatilityVSLength of stationary object

Solution Approach 1:

The patent segments software updates into delta files that contain only the specific changes needed rather than complete software images. This divides the update process into manageable portions, allowing functionality to be improved while keeping individual update files small and targeted.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts and identifies only the substantive functional changes from the full software update, separating them from non-substantive changes. This extraction process creates minimal delta files that contain only the necessary code modifications, reducing overall file size while maintaining functional improvements.

Inventive Principle:
Principle #2Taking out (Extraction)

2Adaptability or versatility

If software is updated over time, then software functionality is improved, but software file size increases

Engineering Contradiction:
Improvesoftware functionalityVSAvoidsoftware file size
Core Design Contradiction:
Adaptability or versatilityVSVolume of stationary object

Solution Approach 1:

The patent segments software updates into delta files that contain only the specific changes needed rather than complete software images. This segmentation allows functional improvements to be delivered in small, targeted update packages rather than large monolithic files.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent discards non-substantive changes from the update package while recovering and preserving only the essential functional modifications. This selective process eliminates bloat from delta files, maintaining small file sizes even as software functionality accumulates over multiple updates.

Inventive Principle:
Principle #34Discarding and recovering

3Ease of operation

If manual re-factoring is performed to localize software changes, then code organization is improved, but time and computing resources increase

Engineering Contradiction:
Improvecode organizationVSAvoidre-factoring time
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent implements automated systems that perform code analysis, change identification, and delta file generation without manual intervention. The system self-services the entire process of localizing software changes, automatically identifying substantive modifications and organizing them into structured delta files, thereby eliminating time-consuming manual re-factoring while maintaining excellent code organization.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces manual mechanical processes of code analysis and re-factoring with automated computational systems. Machine learning models and symbolic execution engines automatically analyze code changes, identify functional modifications, and organize delta files, substituting human effort with automated algorithms that achieve the same organizational goals more efficiently.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

4Reliability

If thorough testing is performed on every software change, then software reliability is improved, but approval process time increases

Engineering Contradiction:
Improvesoftware reliabilityVSAvoidapproval process time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies partial testing by focusing verification efforts only on the specific substantive changes contained in delta files rather than re-testing entire software systems. This targeted approach maintains reliability by thoroughly testing what actually changed while avoiding redundant testing of unchanged components, significantly reducing approval time without compromising software quality.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent performs preliminary automated analysis and verification of code changes before formal approval processes. By pre-identifying substantive changes and preparing structured delta files with built-in verification data, the system performs necessary testing and validation work in advance, reducing the time required for final approval while maintaining rigorous reliability standards.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11816478B1Shrinking delta files based on function analysis
Publication Date: 2023.11.14 AURORA LABS LTD
  • US11816478B1 patent drawing
  • US11816478B1 patent drawing
  • US11816478B1 patent drawing

AI summary

Disclosed herein are techniques for reducing a size of a delta file. Techniques include receiving change code representing a change to device code installed on a device; receiving the device code; identifying, by parsing the change code or a code structure representing the change code, a first function represented by the change code; identifying, by parsing the device code or a code structure representing the device code, a second function represented by the device code; identifying a plurality of subfunctions based on the first and second functions; determining sub-changes to at least some of the plurality of subfunctions, the sub changes being associated with a change to the second function; and generating the delta file comprising object change elements, the object change elements being configured to effect the sub-changes to the device code.