Method and system for providing multimedia information on demand over wide area networks
First Claim
1. A method of delivering streaming data content to a client device over a data communication network in response to a request for the streaming data content from the client device, the method comprising:
- receiving, by a server, a first request from a first client device over the data communication network, the first request identifying streaming data content stored on a storage system;
identifying, by the server, a first controller device associated with the storage system on which the streaming data content is stored;
transmitting, by the server, a data request message to the first controller device, the data request message identifying the first client device and the streaming data content requested by the first client device;
transmitting, by the server, an address of the first controller device to the first client device to establish a network connection between the first controller device and the first client device over the data communication network;
receiving, by the first controller device and over the network connection, a second request from the first client device, the second request identifying streaming data content stored on the storage system;
retrieving, by the first controller device, the streaming data content from the storage system; and
transferring, by the first controller device, the retrieved streaming data content directly to the first client device over the data communication network from the first controller device through a communication port for communicably coupling the first controller device to the data communication network;
wherein retrieving the streaming data content from the storage system comprises caching, by the first controller device, disk blocks of data from the storage system at a first rate of speed;
wherein transferring the retrieved streaming data content directly to the first client device further comprises transmitting the disk blocks of data at a second rate of speed, the second rate of speed being faster than the first rate of speed; and
wherein the first controller device includes a bus port that provides for communication with one or more other controller devices over a bus; and
wherein the method further comprises;
following transmitting, by the server, the data request message, detecting, by the first controller device, a delivery bandwidth of the streaming data content as exceeding a retrieval speed of the streaming data content from the storage system; and
decomposing, by the first controller device, the data request message received from the server into a list of disk blocks for delivery, the data request message identifying the streaming data content requested by the first client device.
10 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for delivering streaming data content to a client device over a data communication network in response to a request for the data content from the client device. The client request is received by a server or a controller device that is typically located on a network switch device. If received by a server, the server sends a request to the controller device to control the transfer of the requested data to the client. The controller device includes the processing capability required for retrieving the streaming data and delivering the streaming data directly to the client device without involving the server system. In some cases, the controller device mirrors the data request to another controller device to handle the data processing and delivery functions. In other cases, the controller device coordinates the delivery of the requested data using one or more other similar controller devices in a pipelined fashion.
-
Citations
25 Claims
-
1. A method of delivering streaming data content to a client device over a data communication network in response to a request for the streaming data content from the client device, the method comprising:
-
receiving, by a server, a first request from a first client device over the data communication network, the first request identifying streaming data content stored on a storage system; identifying, by the server, a first controller device associated with the storage system on which the streaming data content is stored; transmitting, by the server, a data request message to the first controller device, the data request message identifying the first client device and the streaming data content requested by the first client device; transmitting, by the server, an address of the first controller device to the first client device to establish a network connection between the first controller device and the first client device over the data communication network; receiving, by the first controller device and over the network connection, a second request from the first client device, the second request identifying streaming data content stored on the storage system; retrieving, by the first controller device, the streaming data content from the storage system; and transferring, by the first controller device, the retrieved streaming data content directly to the first client device over the data communication network from the first controller device through a communication port for communicably coupling the first controller device to the data communication network; wherein retrieving the streaming data content from the storage system comprises caching, by the first controller device, disk blocks of data from the storage system at a first rate of speed;
wherein transferring the retrieved streaming data content directly to the first client device further comprises transmitting the disk blocks of data at a second rate of speed, the second rate of speed being faster than the first rate of speed; andwherein the first controller device includes a bus port that provides for communication with one or more other controller devices over a bus; and wherein the method further comprises; following transmitting, by the server, the data request message, detecting, by the first controller device, a delivery bandwidth of the streaming data content as exceeding a retrieval speed of the streaming data content from the storage system; and decomposing, by the first controller device, the data request message received from the server into a list of disk blocks for delivery, the data request message identifying the streaming data content requested by the first client device. - View Dependent Claims (2, 3, 4, 5, 6, 15, 16, 19, 23)
-
-
7. A method of delivering streaming data content to a client device over a data communication network in response to a request for the streaming data content from the client device, the method comprising:
-
receiving, by a server, a first request from a first client device over the data communication network, the first request identifying streaming data content stored on a storage system; transmitting, by the server, a data request message over the data communication network to a first controller device, wherein the data request message identifies the first client device and the streaming data content requested by the first client device, and wherein the first controller is coupled to the storage system over a storage area network (SAN); transmitting, by the server, an address of the first controller device to the first client device to establish a network connection between the first controller device and the first client device over the data communication network; receiving, by the first controller device and over the network connection, a second request from the first client device, the second request identifying streaming data content stored on the storage system; retrieving, by the first controller device, the streaming data content from the storage system over the SAN; and transferring, by the first controller device, the retrieved streaming data content directly to the first client device over the data communication network from the first controller device; wherein retrieving the streaming data content from the storage system comprises caching, by the first controller device, disk blocks of data from the storage system at a first rate of speed; wherein transferring the retrieved streaming data content directly to the first client device further comprises transmitting the disk blocks of data at a second rate of speed, the second rate of speed being faster than the first rate of speed; wherein the first controller device includes a bus port that provides for communication with one or more other controller devices over a bus; and wherein the method further comprises; following transmitting, by the server, the data request message, detecting, by the first controller device, a delivery bandwidth of the streaming data content as exceeding a retrieval speed of the streaming data content from the storage system; and decomposing, by the first controller device, the data request message received from the server into a list of disk blocks for delivery, the data request message identifying the streaming data content requested by the first client device. - View Dependent Claims (8, 17, 20, 24)
-
-
9. A method of delivering streaming data content to a client device over a data communication network in response to a request for the streaming data content from the client device, the method comprising:
-
transmitting, by a server, an address of t-he a first controller device to t-he a first client device to establish a network connection between the first controller device and the first client device over the data communication network; receiving, by the first controller device, a request sent by the first client device to a server over the data communication network, the request identifying streaming data content stored on a storage system, wherein the first controller device and the server are coupled by the data communication network; processing the request by the first controller device; and
controlling, by the first controller device, the delivery of the requested streaming data directly to the first client device over the data communication network by one of the first controller device and a second controller device;wherein the first controller device is coupled to the storage system over a storage area network (SAN), wherein controlling includes; retrieving, by the first controller device, the streaming data content from the storage system over the SAN; and transferring the retrieved streaming data content directly to the first client device over the data communication network from the first controller device; transmitting a data request message from the first controller device to the second controller device, wherein the data request message identifies the first client device and the streaming data content requested by the first client device, and wherein the second controller device is coupled to the storage system over a storage area network (SAN); retrieving, by the second controller device, the streaming data content from the storage system over the SAN; and transferring the retrieved streaming data content directly to the first client device over the data communication network from the second controller device; wherein retrieving the streaming data content from the storage system over the SAN comprises caching, by the first controller device, disk blocks of data from the storage system at a first rate of speed; wherein transferring the retrieved streaming data content directly to the first client device over the data communication network further comprises transmitting the disk blocks of data at a second rate of speed, the second rate of speed being faster than the first rate of speed; and wherein the method further comprises; following transmitting, by the server, the data request message, detecting, by the first controller device, a delivery bandwidth of the streaming data content as exceeding a retrieval speed of the streaming data content from the storage system; and decomposing, by the first controller device, the data request message received from the server into a list of disk blocks for delivery, the data request message identifying the streaming data content requested by the first client device. - View Dependent Claims (10, 11, 12, 13, 14, 18, 21, 22, 25)
-
Specification