Redirection apparatus and method
AssigneeOrbital Multi Media Holdings Corporation
InventorManh-Hung P. Do
Life of this patent
Estimating the term…
Abstract
Described embodiments are directed to methods and apparatus for redirecting a client device to a selected streaming server in response to receiving a request for content. The streaming server to which the client is redirected can be selected based on one or more criteria such as streaming server loads (e.g. connection loads and processing loads) and content storage location, using a data structure stored at the redirection server.
Claims58
A redirection server for redirecting a client device to one of a plurality of streaming servers of a system configured to store content in a plurality of hierarchical storage layers, the redirection server comprising:
- a memory storing a data structure for storing and associating streaming server identifiers with storage layer identifiers and identifiers of the content residing in the plurality of hierarchical storage layers, wherein a higher storage layer of the plurality of hierarchical storage layers identifies a storage location providing faster content access times than the content access times provided by a storage location identified by a lower storage layer of the plurality of hierarchical storage layers;
- a selector configured to select a streaming server from among the plurality of streaming servers using said data structure, in response to receiving a request for content from the client device, wherein the selector is operable to:
- determine the highest storage layer of the plurality of hierarchical storage layers from which the requested content is available and select an available streaming server of the plurality of streaming servers having the requested content in said highest storage layer of the plurality of hierarchical storage layers;
- wherein if none of the available streaming servers of the plurality of streaming servers are associated with the highest storage layer of the plurality of hierarchical storage layers, then the selector is further operable to determine the next lowest storage layer of the plurality of hierarchical storage layers and to select an available streaming server of the plurality of streaming servers having the requested content in said next lowest layer of the plurality of hierarchical storage layers;
- and
- a transceiver configured to receive said request and to send to the client device a reply including the identifier of the selected streaming server of the plurality of streaming servers.
A method of redirecting a client device to one of a plurality of streaming servers of a system configured to store content in a plurality of hierarchical storage layers, the method being implemented in a redirection server and comprising the steps of:
- storing and associating, in a memory storing a data structure on the redirection server, streaming server identifiers, storage layer identifiers, and identifiers of the content residing in the plurality of hierarchical storage layers, wherein a higher storage layer of the plurality of hierarchical storage layers identifies a storage location providing faster content access times than the content access times provided by a lower storage layer of the plurality of hierarchical storage layers;
- receiving a request for content from the client device;
- selecting a streaming server from among the plurality of streaming servers using said data structure in response to receiving said request, the selecting including determining the highest storage layer of the plurality of hierarchical storage layers from which the requested content is available and selecting an available streaming server of the plurality of streaming servers having the requested content in said highest storage layer of the plurality of hierarchical storage layers;
- wherein if none of the available streaming servers of the plurality of streaming servers are associated with the highest storage layer of the plurality of hierarchical storage layers, then the selecting further includes determining the next lowest storage layer of the plurality of hierarchical storage layers and selecting an available streaming server of the plurality of streaming servers having the requested content in said next lowest layer of the plurality of hierarchical storage layers;
- and
- sending to the client device a reply including the identifier of the selected streaming server of the plurality of streaming servers.
A redirection server for redirecting a client device to a streaming server of a system including a plurality of streaming servers configured to store content, the redirection server comprising:
- a monitoring agent for periodically monitoring the plurality of streaming servers;
- a memory storing a data structure for storing and associating streaming server identifiers with data representing streaming server loads including a connection load and a processing load for each of the plurality of streaming servers, said connection load being a number of open connections being supported by each streaming server of the plurality of streaming servers for respective content and said processing load being CPU usage for each streaming server of the plurality of streaming servers, wherein said data comprises a current load and a load limit for each of said streaming servers of the plurality of streaming servers;
- a selector configured to select a streaming server from among the plurality of streaming servers using said data structure, in response to receiving from the client device a request that identifies the content and a type of said content, said type corresponding to one of a plurality of different streaming server loads, wherein the selecting includes identifying one or more streaming servers of the plurality of streaming servers storing the content identified in the client request, and selecting the streaming server of the plurality of streaming servers among said one or more streaming servers of the plurality of streaming servers having capacity to handle said request by:
- identifying the streaming server of the plurality of streaming servers having a lowest connection load that is less than a predetermined connection load threshold, said connection load being determined from periodic feedback information received by the redirection server from the identified streaming server of the plurality of streaming servers, or by estimating from redirects issued by the redirection server, or by a combination of both;
- wherein, if the processing load for said identified streaming server of the plurality of streaming servers is less than a predetermined processing load threshold, selecting the streaming server of the plurality of streaming servers to stream the content;
- a transceiver configured to receive said request and to send to the client device a reply including the identifier of the selected streaming server of the plurality of streaming servers;
- the redirection server being configured to update the data representing streaming server load associated with the selected streaming server identifier stored in the data structure, in response to selecting the streaming server of the plurality of streaming servers.
A method of redirecting a client device to a streaming server of a system including a plurality of streaming servers configured to store content, the method being implemented in a redirection server and comprising the steps of:
- periodically monitoring the plurality of streaming servers;
- storing and associating streaming server identifiers with data representing streaming server loads including a connection load and a processing load for each of the plurality of streaming servers in a data structure in a redirection server, said connection load being a number of open connections being supported by each streaming server of the plurality of streaming servers for respective content and said processing load being CPU usage for each streaming server of the plurality of streaming servers, wherein said data comprises a current load and a load limit for each of said streaming servers of the plurality of streaming servers;
- receiving from the client device a request that identifies content and a type of said content, said type corresponding to one of a plurality of different streaming server loads;
- selecting a streaming server from among the plurality of streaming servers using said data structure, including identifying one or more streaming servers of the plurality of streaming servers storing the content identified in the client request, and selecting the streaming server of the plurality of streaming servers among said one or more streaming servers of the plurality of streaming servers having capacity to handle said request by:
- identifying the streaming server of the plurality of streaming servers having a lowest connection load that is less than a predetermined connection load threshold, said connection load being determined from periodic feedback information received by the redirection server from the identified streaming server of the plurality of streaming servers, or by estimating from redirects issued by the redirection server, or by a combination of both;
- wherein, if the processing load for said identified streaming server of the plurality of streaming servers is less than a predetermined processing load threshold, selecting the streaming server of the plurality of streaming servers to stream the content;
- sending to the client device a reply including the identifier of the selected streaming server of the plurality of streaming servers;
- and
- updating the data representing streaming server load associated with the selected streaming server identifier stored in the data structure, in response to selecting the streaming server of the plurality of streaming servers.
Dependencies are inferred from the claim text.