Peer-to-Peer Application Streaming via Data Chunk Distribution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In traditional computing environments, application transfer operations such as initiation, updates, or patch installations lead to network congestion and performance degradation due to simultaneous data transfer from a server to multiple clients, requiring additional network resources.
Innovation Solution
A method and apparatus for streaming applications within a peer-to-peer network by processing and communicating location information of data chunks among clients, allowing them to request and assemble application blocks independently, reducing server load and network congestion.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If the server provides identical application blocks to multiple clients simultaneously, then all clients receive the application data at the same time, but network congestion occurs and overall network performance degrades
Solution Approach 1:
The patent segments the application data into multiple blocks and distributes them through different paths - some from the server and others from peer clients. This segmentation allows parallel transmission without overwhelming the network, as clients can receive different blocks from different sources simultaneously, resolving the congestion issue while maintaining fast delivery.
Solution Approach 2:
The patent merges the traditional server-client model with a peer-to-peer approach, where clients act as both consumers and providers of application blocks. By combining these two roles, the system achieves efficient data distribution without overloading the server or network, as multiple clients collectively serve the data distribution function.
2Productivity
If the server transfers application data to multiple clients at the same time, then all clients can initiate applications concurrently, but additional network resources are consumed and overall network performance degrades
Solution Approach 1:
The patent implements self-service by enabling clients to obtain application blocks from other peers in the network rather than solely from the server. Each client that receives an application block can subsequently share it with other clients, creating a self-sustaining distribution system that reduces server load and network resource consumption while maintaining high productivity.
Solution Approach 2:
The patent applies preliminary action by having clients pre-fetch and cache application blocks before they are needed by other clients. This allows the system to prepare data in advance and distribute it efficiently when needed, reducing the burden on network resources during peak demand periods while maintaining high application initiation throughput.
3Reliability
If the server provides application blocks to each client individually, then each client receives complete application data, but the server consumes excessive resources and network bandwidth
Solution Approach 1:
The patent segments the complete application data into multiple blocks and distributes them through a distributed peer-to-peer network rather than through the server alone. This segmentation allows the server to provide only coordination and initial blocks, while peer clients handle the distribution of remaining blocks, significantly reducing server resource consumption while ensuring complete and reliable data delivery to each client.
Data Source
AI summary
A method and apparatus for streaming applications to a plurality of clients within a peer-to-peer network is provided. In one embodiment, a method for distributing application blocks to facilitate application streaming within a peer-to-peer network includes processing location information regarding a plurality of data chunks amongst a plurality of clients, wherein the plurality of data chunks form at least a portion of an application block and communicating the location information amongst the plurality of clients, wherein the location information is used to request at least one data chunk of the plurality of data chunks.


