System for seamless streaming of data stored on a network of distributed primary and target servers using segmentation information exchanged among all servers during streaming
First Claim
1. A method for dynamically switching a source of streaming of data stored in distributed servers from a primary server to a target server in a network comprised of one or more primary servers, one or more target servers and one or more clients, said method comprising the following steps:
- a. enhancing said data by dynamically inserting markers into a stream of said data, said markers identifying locations in said stream of data, and including segmentation information which are exchanged among all said primary servers and all said target servers during streaming of said data;
b. streaming said data from said primary server to a client;
c. waiting for and retrieving a marker in said stream of data, the segmentation information of said marker identifying a location in said stream of data where said target server is to commence streaming of said data to said client;
d. initiating and communicating a migration request message by said primary server to said target server and receiving a migration acceptance message from said target server;
e. initiating and communicating a migration warning message by said primary server to said client and receiving a migration warning acceptance message from said client;
f. instructing said target server to stream said data to said client from said location identified by said marker in response to receipt of said migration warning acceptance message from said client; and
g. stopping said streaming of data from said primary server to said client at reception of a migration tear-down notification message from said client, wherein a seamless migration of said client between said primary server and said target server is performed to thereby increase resource availability at said primary server.
4 Assignments
0 Petitions
Accused Products
Abstract
The present invention switches a source of a streaming session between a primary server and its client, from the primary server to another server at arbitrary points during the progress of the streaming session. The switching of the source is accomplished through the use of a virtual socket capable of simultaneously phasing in a new streaming connection while phasing out an old streaming connection during a streaming session that preserves the temporal progress of the session. The virtual socket acts as a client-based intermediary between the client and one or more streaming servers, thus enabling a client application to establish a streaming connection with respect to content and not to the end-party, i.e., server.
236 Citations
21 Claims
-
1. A method for dynamically switching a source of streaming of data stored in distributed servers from a primary server to a target server in a network comprised of one or more primary servers, one or more target servers and one or more clients, said method comprising the following steps:
-
a. enhancing said data by dynamically inserting markers into a stream of said data, said markers identifying locations in said stream of data, and including segmentation information which are exchanged among all said primary servers and all said target servers during streaming of said data;
b. streaming said data from said primary server to a client;
c. waiting for and retrieving a marker in said stream of data, the segmentation information of said marker identifying a location in said stream of data where said target server is to commence streaming of said data to said client;
d. initiating and communicating a migration request message by said primary server to said target server and receiving a migration acceptance message from said target server;
e. initiating and communicating a migration warning message by said primary server to said client and receiving a migration warning acceptance message from said client;
f. instructing said target server to stream said data to said client from said location identified by said marker in response to receipt of said migration warning acceptance message from said client; and
g. stopping said streaming of data from said primary server to said client at reception of a migration tear-down notification message from said client, wherein a seamless migration of said client between said primary server and said target server is performed to thereby increase resource availability at said primary server. - View Dependent Claims (2, 3, 4, 5, 6, 7)
communicating a request for streaming of said data from said client to said primary server;
applying admission control, scheduling said request, and setting up a streaming connection on said primary server; and
identifying and locating said markers in said stream of data, and removing said markers from said stream of data prior to decoding of said stream of data on said client.
-
-
4. The method of claim 1, further comprising accepting said stream of data from said primary server and said target server by a virtual socket, said virtual socket consisting of one or more network connectors, and one or more partially overlapping buffers.
-
5. The method of claim 4, wherein step (f) further comprises steps of:
-
streaming said data from said target server to said client;
accepting said stream of data from said primary server and said stream of data from said target server by said client; and
synchronizing said accepted data by said client.
-
-
6. The method of claim 5, wherein said data stream is offloaded to said target server for streaming to said client on a temporary basis, an offload duration being determined according to one of:
- based on satisfaction of an apriori constraint, or said offload duration being dynamically and continuously negotiated between said primary server originally associated with said data stream and said target server prior to or during said off-load duration.
-
7. The method of claim 6, wherein said target server collects statistics about migrations of said source of streaming data between primary and target servers, suggests migration patterns on migrations between primary and target servers, and enforces migration patterns on migrations between primary and target servers.
-
8. A computer program device readable by a machine, tangibly embodying a program of instructions executable by a machine to perform method steps for dynamically switching a source of streaming of data stored in distributed servers from a primary server to a target server in a network comprised of one or more primary servers, one or more target servers and one or more clients, said method comprising the following steps:
-
a. enhancing said data by dynamically inserting markers into a stream of said data, said markers identifying locations in said stream of data, and including segmentation information which are exchanged among all said primary servers and all said target servers during streaming of said data;
b. streaming said data from said primary server to a client;
c. waiting for and retrieving a marker in said stream of data, the segmentation information of said marker identifying a location in said stream of data where said target server is to commence streaming of said data to said client;
d. initiating and communicating a migration request message by said primary server to said target server and receiving a migration acceptance message from said target server;
e. initiating and communicating a migration warning message by said primary server to said client and receiving a migration warning acceptance message from said client;
f. instructing said target server to stream said data to said client from said location identified by said marker; and
g. stopping said streaming of data from said primary server to said client at reception of a migration tear-down notification message from said client, wherein a seamless migration of said client between said primary server and said target server is performed to thereby increase resource availability at said primary server. - View Dependent Claims (9, 10, 11, 12, 13, 14)
communicating a request for streaming of said data from said client to said primary server;
applying admission control, scheduling said request, and setting up a streaming connection on said primary server; and
identifying and locating said markers in said stream of data, and removing said markers from said stream of data prior to decoding of said stream of data on said client.
-
-
11. The method of claim 8, further comprising accepting said stream of data from said primary server and said target server by a virtual socket, said virtual socket consisting of one or more network connectors, and one or more partially overlapping buffers.
-
12. The method of claim 11, wherein step (f) further comprises steps of:
-
streaming said data from said target server to said client;
accepting said stream of data from said primary server and said stream of data from said target server by said client; and
synchronizing said accepted data by said client.
-
-
13. The method of claim 12, wherein said data stream is offloaded to said target server for streaming to said client on a temporary basis, an offload duration being determined according to one of:
- based on satisfaction of an apriori constraint, or said offload duration being dynamically and continuously negotiated between said primary server originally associated with said data stream and said target server prior to or during said off-load duration.
-
14. The method of claim 13, wherein said target server collects statistics about migrations of said source of streaming data between servers, suggests migration patterns on migrations between primary and target primary and target servers, and enforces migration patterns on migrations between primary and target servers.
-
15. A system for dynamically switching a source of streaming of data stored in distributed serves from a primary server to a target server in a network comprised of one or more primary servers, one or more target servers and one or more clients, said system comprising:
-
a. a means for enhancing said data by dynamically inserting markers into a stream of said data, said markers identifying locations in said stream of data, and including segmentation information which are exchanged among all said primary servers and all said target servers during streaming of said data;
b. a means for streaming said data from a server to a client;
c. waiting for and retrieving a marker in said stream of data, the segmentation information of said marker identifying a location in said stream of data where said target server is to commence streaming of said data to said client;
d. initiating and a means for communicating a migration request message by said primary server to said target server and receiving a migration acceptance message from said target server;
e. initiating and a means for communicating a hand-off warning message by said primary server to said client and receiving a migration warning acceptance message from said client;
f. a means for instructing said target server to stream said data to said client from said location identified by said marker; and
g. a means for stopping said streaming of data from said primary server to said client at reception of a migration tear-down notification message from said client, wherein a seamless migration of said client between said primary server and said target server is performed to thereby increase resource availability at said primary server. - View Dependent Claims (16, 17, 18, 19, 20, 21)
a means for communicating a request for streaming of said data from said client to said primary server;
a means for applying admission control, scheduling said request, and setting up a streaming connection on said primary server; and
a means for identifying and locating said markers in said stream of data, and removing said markers from said stream of data prior to decoding of said stream of data on said client.
-
-
18. The system of claim 15, further comprising accepting said stream of data from said primary server and said target server by a virtual socket, said virtual socket consisting of one or more network connectors, and one or more partially overlapping buffers.
-
19. The system of claim 18, wherein (f) further comprises:
-
a means for streaming said data from said target server to said client;
a means for accepting said stream of data from said primary server and said stream of data from said target server by said client; and
a means for synchronizing said accepted data by said client.
-
-
20. The system of claim 19, wherein said data stream is offloaded to said target server for streaming to said client on a temporary basis, an offload duration being determined according to one of:
- based on satisfaction of an apriori constraint, or said offload duration being dynamically and continuously negotiated between said primary server originally associated with said data stream and said target server prior to or during said off-load duration.
-
21. The system of claim 20, wherein said target server collects statistics about migrations of said source of streaming data between primary and target servers, suggests migration patterns on migrations between primary and target servers, and enforces migration patterns on migrations between servers.
Specification