Differential Bundle Updates for Mobile App Efficiency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing mobile application update methods consume significant network resources, causing congestion by transmitting full updates instead of only the necessary changes, which can lead to inefficient data transmission and potential installation failures.
Innovation Solution
Implementing differential bundle updates that transmit only the bytewise differences between the outdated and updated mobile application versions, utilizing caching and patching software like the bsdiff library to create and apply these differences, ensuring efficient resource use and backward compatibility.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If full application updates are transmitted to client devices, then complete functionality is ensured, but network resource consumption increases significantly
Solution Approach 1:
The patent segments the update transmission into two distinct parts: (1) a differential bundle containing only the bytewise differences between old and new versions, and (2) the existing application binary on the client device. This segmentation allows the server to transmit only the essential changes rather than the complete application, significantly reducing network resource consumption while maintaining update reliability.
Solution Approach 2:
The patent extracts and transmits only the necessary update components (bytewise differences) from the complete application binary. By using differential bundling, the system extracts precisely the portions of the application that have changed, separating these from the unchanged portions that already exist on the client device, thereby minimizing network transmission requirements.
2Reliability
If full application updates are transmitted, then installation reliability is maintained, but network congestion occurs
Solution Approach 1:
The update process is segmented into a differential transmission phase and a local reconstruction phase. The server transmits only the differential bundle (changes), while the client performs the computationally intensive task of applying differences to the existing binary locally. This segmentation reduces network traffic and congestion while maintaining installation reliability through the structured differential application process.
3Loss of energy
If only differential updates are transmitted, then network resource consumption is reduced, but update complexity increases
Solution Approach 1:
The patent implements preliminary action by having the client device retain the existing application binary before updates. This existing binary serves as a prepared foundation that receives the differential bundle. The differential bundling process itself is performed in advance by the server, creating a ready-to-apply update package that simplifies the client-side operation to merely applying the pre-computed differences.
4Productivity
If differential bundles are created and stored, then transmission efficiency improves, but server storage requirements increase
Solution Approach 1:
The patent extracts and stores only the essential differential information rather than complete application binaries. By using differential bundling, the server stores compact representations of changes (bytewise differences) between versions, which are significantly smaller than full application packages. This extraction approach improves transmission efficiency while minimizing the storage burden on the server.
Data Source
AI summary
In an embodiment, a system includes a processor coupled with a data store, the at least one processor configured to: receive a client product version number from a client device; identify a differential bundle based on a difference between the client product version number and a current product version number, wherein the differential bundle comprises a set of bytewise differences between an executable client product binary file associated with the client product version number and a executable current product binary file associated with the current product version number; determine whether the differential bundle is available in the data store; retrieve the differential bundle from the data store in response to determining that the differential bundle is available in the data store; produce the differential bundle in response to determining that the differential bundle is not available in the data store; and send the differential bundle to the client device.


