Distribution Endpoint Partial Program Package Updates
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current software development and deployment platforms require developers to upload the entire updated program to distribution endpoints, even if only a portion of the program has changed, which is inefficient and wasteful in terms of data transfer and storage.
Innovation Solution
A computing system that includes a distribution endpoint with processors configured to receive a request from a developer device to update a previously packaged and signed program, where only the changed code files are sent, and the system generates an updated package by adding these files to the existing package without repackaging the entire program, allowing for efficient deployment of updates to end-user devices.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the entire updated program is uploaded to the distribution endpoint, then the program can be updated, but the data transfer and storage efficiency deteriorates
Solution Approach 1:
The program is divided into discrete package files that can be independently identified and updated. The system segments the update process into: (1) receiving only the changed code files, (2) identifying the specific package file containing the change, and (3) updating only that portion of the program. This segmentation allows partial updates rather than requiring complete program re-upload.
Solution Approach 2:
The system extracts and identifies only the specific package file that contains the changed code, separating it from the rest of the program. By using hashing algorithms to compare the uploaded code with existing packages, the system extracts only the necessary update portion, eliminating the need to handle the entire program during updates.
2Reliability
If the entire updated program is stored at the distribution endpoint, then the program update can be maintained, but the storage efficiency deteriorates
Solution Approach 1:
The program storage is segmented into discrete package files, each representing a specific component or module. This allows the distribution endpoint to store and manage individual packages separately, enabling selective updates without requiring storage space for entire program versions.
Solution Approach 2:
The system discards the practice of storing complete program versions and recovers storage efficiency by storing only individual package files. When updates are needed, only the specific changed packages are retained and updated, while unchanged packages remain in their original state, significantly reducing total storage requirements.
3Loss of substance
If only changed code files are uploaded, then data transfer efficiency improves, but the complexity of generating updated packages increases
Solution Approach 1:
The distribution endpoint performs automatic package identification and generation without requiring manual intervention. The system self-services by: (1) automatically hashing the uploaded code files, (2) comparing hashes with existing packages to identify changes, (3) retrieving the appropriate base package, and (4) generating the updated package file. This automation reduces the perceived complexity for developers.
Solution Approach 2:
The system introduces an intermediary processing layer at the distribution endpoint that handles the complexity of package generation. This intermediary automatically manages the comparison between uploaded code and existing packages, retrieves necessary base files, and generates updated packages, shielding developers from the underlying complexity while maintaining efficient data transfer.
Data Source
AI summary
A computing system is provided that includes a distribution endpoint including one or more processors configured to receive a request from a developer computing device to update a program managed by the distribution endpoint, the program being previously packaged and signed. The one or more processors of the distribution endpoint are further configured to receive a code file including a change to the program, retrieve a package of the program that has not been updated with the change to the program, generate an updated package of the program by adding the code file to the retrieved package of the program such that the updated package of the program logically represents a package of the updated program, and distribute the updated package of the program to an end user computing device.


