Method and system for providing media services by distributed networks
Abstract
Techniques for managing media services in a distributed environment are disclosed. Data representing an item in the media service is distributed among devices in service. When a requesting device is newly joined and requests for the item, at least one supplying device is designed to supply the data to the requesting device. The supplying device may be a server or a peer device. In one case, each of the devices is behind a network address translator. A server, in responding to a request from a requesting device for needed data, is configured to determine some of devices in service to be candidates from a database, where the database has many entries, each of the entries pertaining to one of the devices. The candidates are determined in accordance with at least compatibility of respective network address translators with a network address translator of the requesting device. Among the candidates, the server then designates a finalist that is preferably not designated to be a supplying device more often than it should be on average. The server then notifies either the requesting device or the supplying device so that the requesting device can get the needed data directly from the supplying device.
Claims
exact text as granted — not AI-modified1 . A method for providing a type of media service, the method comprising:
preparing data representing an item in a library in terms of a sequence of data chunks; streaming at least some or all of the data chunks to one or more devices that have placed an order for the item; adding the devices in a supplying list; causing one or more of the devices to provide at least some or all of the received data chunks to additional devices that subsequently place an order for the item, wherein the supplying list is progressively expanded with the additional devices until all devices in service have received at least some or all of the data chunks.
2 . The method as recited in claim 1 , further comprising:
receiving a request from a requesting device to receive the item; identifying from the supplying list at least one supplying device to supply at least some of the data chunks to the requesting device, wherein the one supplying device is either a server or a peer device online at the time the requesting device is making the request.
3 . The method as recited in claim 2 , wherein the one supplying device is a peer device that is no longer online when the data being uploaded to the requesting device is yet to be complete; and further comprising identifying at least another supplying device to continue supplying the data to the requesting device.
4 . The method as recited in claim 1 , further comprising:
receiving a request from a requesting device to receive the item; identifying at least two supplying devices from the list to supply collectively the data chunks to the requesting device, each of the supplying devices uploading some but not all of the data chunks to the requesting devices so that loading on a server to serve simultaneously a plurality of requesting devices is shifted to the devices in service.
5 . The method as recited in claim 4 , wherein one of two supplying devices is the server configured to perform said identifying at least two supplying devices to supply the data to the requesting device.
6 . The method as recited in claim 5 , wherein the requesting device is configured to assemble the data chunks received from the at least two supplying devices to recover the item so that a user of the requesting device can play back the item.
7 . The method as recited in claim 1 , further comprising:
receiving a request from a requesting device to receive the item; determining at least one of devices in the list to be candidates to supply the data chunks to the requesting device, wherein said determining at least one of devices is conducted in accordance with at least compatibility of respective network address translators with a network address translator (NAT) of the requesting device; and designating a finalist from the candidates, the finalist not designated to be a supplying device more often than it should be on average.
8 . The method as recited in claim 7 , wherein the requesting device receives a message including necessary information to initiate a data request to the supplying device to obtain the needed data; or to accept the needed data from the supplying device.
9 . The method as recited in claim 7 , wherein the database is updated periodically or according to a predefined time by receiving a probing message from a device newly put into service or returned into service.
10 . The method as recited in claim 9 , wherein the criteria include compatibility of a NAT with a NAT of the requesting device, and the supplying device is not too often designated than it should be on average.
11 . The method as recited in claim 7 , wherein the designating of the finalist comprises, unless there are a sufficient number of supplying devices to the requesting device device, keeping looking for the finalist that is absolutely not designated to be a supplying device more often than it should be on average so that similar requests from other requesting devices are more likely fulfilled.
12 . The method as recited in claim 7 , further comprising:
notifying the requesting device of which ones that are to supply the needed data; or causing each of the supplying devices to start contacting the requesting device to initiate transmission of the needed data collectively.
13 . The method as recited in claim 12 , wherein each of the supplying devices locally caches one or more data chunks of the data.
14 . A system for providing a type of media service, the system comprising at least a server configured to manage the media service;
a plurality of devices capable to receive the media service, wherein, when there is an item available for the devices, the server is configured to perform operations of:
preparing data representing the item in terms of a sequence of data chunks;
providing a first part of the data chunks from the server to a requesting device when a request for the item is received from the requesting device;
causing a second part of the data to be provided to the requesting device from another device that has already received some or all of the data chunks after a request for the item was placed with the server.
15 . The system as recited in claim 14 , wherein the requesting device is configured to assemble the first part and second part of the data chunks to be played back on the requesting device.
16 . The system as recited in claim 14 , wherein the requesting device becomes a supplying device when another requesting device is requesting for the same item.
17 . The system as recited in claim 14 , wherein the server is further configured to determine at least one of devices to be candidates from a database to supply the data chunks, each of entries in the database pertaining to one of the devices, the at least one of devices are determined in accordance with at least compatibility of respective network address translators with a network address translator of the requesting device; and designate a finalist from the at least one of devices, the finalist not designated to be a supplying device more often than it should be on average.
18 . The system as recited in claim 17 , wherein the requesting device receives a message including necessary information to initiate a data request to the supplying device to obtain the needed data; or to accept the needed data from the supplying device.
19 . The system as recited in claim 17 , wherein the database is updated periodically or according to a predefined time by receiving a probing message from a device newly put into service or returned into service.
20 . The system as recited in claim 19 , wherein the criteria include compatibility of a NAT with a NAT of the requesting device, and the supplying device is not too often designated than it should be on average.Join the waitlist — get patent alerts
Track US2009022166A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.