IP Library Granted Patent US 7,614,071
Granted Patent B2
US 7,614,071 · App. 10/800,251 · Granted Nov 3, 2009

Architecture for distributed sending of media data

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,614,071
App. No.
10/800,251
Granted
Nov 3, 2009
Kind
B2
Abstract

Media data is distributed across multiple devices, and decentralized media data dissemination architecture is formed. Multiple respective senders are associated with multiple respective distributed portions of the media data. Multiple schedulers are associated with clients and are capable of scheduling the sending of media data thereto. Schedulers formulate send requests that stipulate particular media data portions and designate destination clients. These send requests are transmitted to the multiple senders in accordance with the associated respective distributed portions in conjunction with the stipulated particular media data portion of each send request. The senders are capable of sending the stipulated particular media data portions of the send requests to the designated destination clients without routing through the schedulers. In a described implementation, a sender and a scheduler are present on each device of the multiple devices.

Claims (29)

1. One or more processor-accessible storage media encoded with processor-executable instructions that, when executed, direct a system to perform actions comprising:

transmitting a send request from a first device to a second device, the send request designating a destination client and stipulating a media data portion;

ranking the send request based on an associated unique priority of the send request, wherein the associated unique priority is calculated by determining whether a plurality of devices store the media data portion, and wherein the associated unique priority is set to a lower priority if there is more than one device that stores the media data portion, and wherein the priority is set to a higher priority if there is only a single device that stores the media data portion, and wherein if none of the plurality of devices that store the media data portion would send the media data portion if all of the plurality of devices that store the media data portion were considered when calculating the priority, then selecting a single device from the plurality of devices that store the media data portion and calculating the priority based on the selected single device;

ascertaining a threshold priority based on the ranking and responsive to a send bandwidth; and in response to determining that the associated unique priority of the send request is greater than the threshold priority, honoring the send request by sending from the second device to the destination client the stipulated media data portion in response to the send request, wherein the first device is not the destination client.

2. The one or more processor-accessible media as recited in claim 1 , comprising the processor-executable instructions that, when executed, direct the system to perform further actions comprising:

transmitting another send request from the first device to the second device, the other send request designating the destination client and stipulating another media data portion; and

sending from the second device to the destination client the other stipulated media data portion in response to the other send request.

3. The one or more processor-accessible media as recited in claim 1 , comprising the processor-executable instructions that, when executed, direct the system to perform further actions comprising:

transmitting another send request from the first device to a third device, the other send request designating the destination client and stipulating another media data portion; and

sending from the third device to the destination client the other stipulated media data portion in response to the other send request.

4. The one or more processor-accessible media as recited in claim 3 , comprising the processor-executable instructions wherein the stipulated media data portion and the other stipulated media data portion are both part of a single media data segment.

5. The one or more processor-accessible media as recited in claim 1 , comprising the processor-executable instructions that, when executed, direct the system to perform further actions comprising:

transmitting another send request from a third device to the second device, the other send request designating another destination client and stipulating the media data portion; and

sending from the second device to the other destination client the stipulated media data portion in response to the other send request.

6. The one or more processor-accessible media as recited in claim 1 , comprising the processor-executable instructions that, when executed, direct the system to perform further actions comprising:

transmitting another send request from a third device to a fourth device, the other send request designating another destination client and stipulating another media data portion; and

sending from the fourth device to the other destination client the other stipulated media data portion in response to the other send request.

7. The one or more processor-accessible media as recited in claim 1 , comprising the processor-executable instructions that, when executed, direct the system to perform a further action comprising:

receiving a command at the first device from the destination client to begin streaming a media data asset, the media data asset including the media data portion.

8. The one or more processor-accessible media as recited in claim 7 , comprising the processor-executable instructions that, when executed, direct the system to perform a further action comprising:

scheduling, at the first device responsive to the received command, media data portions for sending to the destination client.

9. The one or more processor-accessible media as recited in claim 8 , comprising the processor-executable instructions that, when executed, direct the system to perform a further action comprising:

transmitting from the first device respective send requests of a plurality of send requests to respective devices of a plurality of devices, each respective device storing a respective media data portion of a plurality of media data portions that form at least part of the media data asset.

10. The one or more processor-accessible media as recited in claim 1 , wherein the action of transmitting a send request comprises an action of:

transmitting the send request from a scheduler functioning on the first device, the scheduler associated with the designated destination device and responsible for servicing media data requests received at the system from the designated destination device.

11. The one or more processor-accessible media as recited in claim 1 , comprising the processor-executable instructions that, when executed, direct the system to perform a further action comprising:

receiving the send request at a sender on the second device, the sender associated with the stipulated media data portion and responsible for caching the stipulated media data portion at the second device in random access memory (RAM) thereof and for sending the stipulated media data portion to clients responsive to send requests directed thereto.

12. The one or more processor-accessible media as recited in claim 1 , comprising the processor-executable instructions wherein the stipulated media data portion comprises one or more media data sub-blocks of a media data block of a media data segment, the media data block cached in random access memory (RAM) at the second device.

13. The one or more processor-accessible media as recited in claim 1 , wherein the one or more processor-accessible media comprise at least one of (i) one or more storage media and (ii) one or more transmission media.

Assignments (9)
CHANGE OF NAME Recorded Sep 25, 2024
From: ROVI TECHNOLOGIES CORPORATION
To: ADEIA TECHNOLOGIES INC.
Reel/Frame 069047/0828 →
RELEASE OF SECURITY INTEREST Recorded Jun 5, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
Reel/Frame 053481/0790 →
RELEASE OF SECURITY INTEREST Recorded Jun 5, 2020
From: HPS INVESTMENT PARTNERS, LLC
To: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
Reel/Frame 053458/0749 →
SECURITY INTEREST Recorded Jun 1, 2020
From: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS INC.; VEVEO, INC.; INVENSAS CORPORATION; INVENSAS BONDING TECHNOLOGIES, INC.; TESSERA, INC.; TESSERA ADVANCED TECHNOLOGIES, INC.; DTS, INC.; PHORUS, INC.; IBIQUITY DIGITAL CORPORATION
To: BANK OF AMERICA, N.A.
Reel/Frame 053468/0001 →
PATENT SECURITY AGREEMENT Recorded Nov 25, 2019
From: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 051110/0006 →
SECURITY INTEREST Recorded Nov 22, 2019
From: ROVI SOLUTIONS CORPORATION; ROVI TECHNOLOGIES CORPORATION; ROVI GUIDES, INC.; TIVO SOLUTIONS, INC.; VEVEO, INC.
To: HPS INVESTMENT PARTNERS, LLC, AS COLLATERAL AGENT
Reel/Frame 051143/0468 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 8, 2014
From: MICROSOFT CORPORATION
To: ROVI TECHNOLOGIES CORPORATION
Reel/Frame 034539/0676 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 2, 2004
From: BARRETT, PETER T.; BALDWIN, JAMES ARMAND; GREEN, DUSTIN L.
To: MICROSOFT CORPORATION
Reel/Frame 014820/0388 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2004
From: BARRETT, PETER T.; BALDWIN, JAMES ARMAND; GREEN, DUSTIN L.
To: MICROSOFT CORPORATION
Reel/Frame 015101/0066 →