Peer-to-Peer Software Update Distribution via Local Network
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software update methods require significant Internet bandwidth as each client machine downloads and executes update patches from an update server, especially when updating a large number of machines, which can be inefficient.
Innovation Solution
Implementing a peer-to-peer system where the entire updated computer program is transmitted from one or more peer client machines to the client machine, eliminating the need for executing an update patch and reducing bandwidth usage by leveraging local network bandwidth for distribution.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If each client machine downloads and executes update patches from an update server, then the software update process is standardized and reliable, but the Internet bandwidth consumption increases significantly
Solution Approach 1:
The patent segments the update distribution process into two phases: (1) initial update from server to seed machines, and (2) peer-to-peer distribution from seed machines to other clients. This segmentation reduces server bandwidth consumption by distributing the update delivery burden across multiple peer machines in the local network.
Solution Approach 2:
The patent introduces peer machines as intermediary nodes between the update server and client machines. These intermediary peer machines receive updates from the server and then distribute them to other peers, acting as mediators that reduce direct server-to-client bandwidth consumption while maintaining update reliability through standardized patch execution.
2Extent of automation
If update patches are downloaded and executed from an update server, then centralized control and security are maintained, but the update process becomes slower and less efficient for large numbers of machines
Solution Approach 1:
The patent segments the update distribution task across multiple peer machines in the local network, allowing parallel update delivery to multiple clients simultaneously. This segmentation enables the system to maintain centralized control through the update server while achieving faster update speeds through distributed peer-to-peer delivery.
Solution Approach 2:
The patent adds a spatial dimension to update distribution by utilizing the local network infrastructure and peer machines' available bandwidth. Instead of all clients competing for server bandwidth over the Internet, updates are distributed across the spatial network topology of the local area network, significantly improving update speed for large numbers of machines.
3Productivity
If the entire updated computer program is transmitted between peer machines, then bandwidth requirements are reduced and update speed improved, but the complexity of peer-to-peer transmission increases
Solution Approach 1:
The patent makes peer machines universal nodes that can both consume and provide update content. Each peer machine has the capability to receive updates from the server, execute them, and then share the updated program with other peers. This multi-functionality reduces the need for specialized update distribution infrastructure while improving update efficiency through peer-to-peer transmission.
Solution Approach 2:
The patent utilizes copying of the updated computer program between peer machines instead of transmitting only differential patches. While this may seem counterintuitive, the copied full program can be efficiently distributed over local network connections, and the copying mechanism is simplified by leveraging existing file transfer capabilities of the peer-to-peer system, actually reducing overall system complexity.
Data Source
AI summary
Various aspects of the subject technology relate to systems, methods, and machine-readable media for providing a software update. A system is configured to receive, from an update server, an update patch for a computer program installed on a memory of a first computing machine, execute the update patch on a first computing machine to update the computer program, receive a request for the updated computer program from a second computing machine, and transmit the updated computer program installed on the memory of the first computing machine to the second computing machine without transmitting the update patch.


