IP Library Granted Patent US 7,274,659
Granted Patent B2
US 7,274,659 · App. 10/176,498 · Granted Sep 25, 2007

Providing streaming 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,274,659
App. No.
10/176,498
Granted
Sep 25, 2007
Kind
B2
Abstract

A system for servicing streaming media requests. The system includes stream director nodes and intelligent stream engine nodes, such as permanent storage devices with network interfaces. The stream director node receives a streaming media request and enqueues the request until all resources on a path from the stream engine node having the media object being requested to the user/client system have been reserved. Once reserved, the enqueued request is then serviced by requesting the stream object from the stream engine node, which then transfers the requested stream object between the stream engine node and the user/client system over the prepared path without involving the stream director node. Upon completion, the prepared path is torn down. In one embodiment the prepared path is a Label Switched Path. A provision is made for balancing the load among the stream engine nodes by duplicating stream objects on other stream engine nodes.

Claims (35)

1. A method for servicing a request from a client system for the transfer of a streaming media object which resides in a system that includes at least one stream engine node and at least one stream director node, comprising:

receiving a request for a streaming media object at the stream director node;

locating a stream engine node to which or from which the streaming media object is to be transferred;

verifying that sufficient system resources are available to service request;

preparing a data transfer path between the stream engine node and the client system that made the streaming media request, the stream director node not being included in the data transfer path and the data transfer path including one or more resources along the path;

causing resources along the prepared path to be reserved for use by the data transfer;

passing the request for the streaming media object from the stream director node to the located stream engine node for servicing; and

transferring, over the prepared path, data comprising the streaming media object between the client system that made the request and the located stream engine node.

2. A method for servicing a request from a client system for a streaming media object, as recited in claim 1 , further comprising, upon completion of the transfer, tearing down the prepared path and de-allocating the allocated resources.

3. A method for servicing a request from a client system for a streaming media object, as recited in claim 1 , wherein the step of directing the stream engine node to transfer, over the prepared path, the data to or from the client system includes performing the data transfer meeting a Quality of Service constraint.

4. A method for servicing a request from a client system for a streaming media object, as recited in claim 3 , wherein the Quality of Service constraint includes an upper bound on the response time in servicing the request.

5. A method for servicing a request from a client system for a streaming media object, as recited in claim 3 , wherein the Quality of Service constraint includes a lower bound on the throughput in servicing the request.

6. A method for servicing a request from a client system for a streaming media object, as recited in claim 1 , wherein a table is employed at the stream director node to keep track of the streaming data objects residing on the stream engine node.

7. A method for servicing a request from a client system for a streaming media object, as recited in claim 1 , wherein a table is employed at the stream director node to keep track of the resources that are available in the system for servicing a streaming media request.

8. A method for servicing a request from a client system for a streaming media object, as recited in claim 1 , wherein there are two stream engine nodes, the method further comprising the steps of:

determining that one of the stream engine nodes is overloaded by request to at least one streaming media object; and

copying the at least one streaming media object involved in the overload to the other stream engine node so that the other stream engine node services requests for the copied streaming media object.

9. A method for servicing a request from a client system for a streaming media object, as recited in claim 1 , wherein the step of receiving a request for a streaming media object at the stream director node includes:

installing a dynamic link library (DLL) containing streaming parameters for a driver on the system;

authenticating a streaming application process;

associating a pointer to the DLL containing streaming parameters for a disk driver with the authenticated streaming application process; and

loading the parameters in the DLL into a device driver for the stream engine node.

10. A system for servicing a request from a client system for a streaming media object, comprising:

at least one stream director node that is configured to:

receive a request for a streaming media object at the stream director node;

locate a stream engine node to which or from which the streaming media object is to be transferred;

verify that sufficient system resources are available to service request;

prepare a data transfer path between the stream engine node and the client system that made the streaming media request, the stream director node not being included in the data transfer path and the data transfer path including one or more resources along the path;

cause resources along the prepared path to be reserved for use by the data transfer;

pass the request for the streaming media object from the stream director node to the located stream engine node for servicing; and

transfer, over the prepared path, data comprising the streaming media object between the client system that made the request and the located stream engine node; and

at least one stream engine node for storing streaming media objects including the requested streaming media object, the stream engine node being configured to:

receive the request for a streaming media object and

transfer, over the prepared path, data comprising the streaming media object between the stream engine node on which the object resides and the client system that made the request.

11. A system for servicing a request from a client system for a streaming media object, as recited in claim 10 , wherein the stream engine node is further configured to transfer, over the prepared path, the data between the stream director node and the client system while meeting a Quality of Service constraint.

Assignments (14)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
RELEASE OF SECURITY INTEREST AT REEL 053926 FRAME 0446 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058966/0321 →
SECURITY INTEREST Recorded Sep 29, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 053926/0446 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 14, 2020
From: WESTERN DIGITAL CAPITAL, LLC
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 053208/0828 →
CHANGE OF NAME Recorded Jun 15, 2020
From: WESTERN DIGITAL CAPITAL, INC
To: WESTERN DIGITAL CAPITAL, LLC
Reel/Frame 052945/0476 →
CHANGE OF NAME Recorded Jun 11, 2020
From: WESTERN DIGITAL VENTURES, INC
To: WESTERN DIGITAL CAPITAL, INC
Reel/Frame 052919/0177 →
CONFIRMATION OF ASSIGNMENT Recorded Aug 31, 2005
From: COROSOFT, INC. (FORMERLY KNOWN AS PLUSTREAM, INC.)
To: WESTERN DIGITAL VENTURES, INC.
Reel/Frame 016704/0310 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2002
From: HOSPODOR, ANDREW D.
To: PLUSTREAM, INC.
Reel/Frame 013034/0666 →