Metaserver for a multimedia distribution network
DCFirst Claim
1. In at least one metaserver at one level of management, each said metaserver having a processor and a memory, a method for assigning a plurality of multimedia servers configured to provide data streams for a plurality of client computers, each said client computer being coupled to each said metaserver at the same level of management and to each said multimedia server via a network, each said client computer including a video and audio display device, each said metaserver memory configured to store a metaserver database that includes information about the data streams stored in at least one of said multimedia servers, said method comprising:
- receiving a request for a multimedia stream from one of said client computers;
monitoring the status of each said multimedia server and the status of said network;
selecting from the metaserver database at least one eligible multimedia server storing the requested multimedia stream using a selection algorithm; and
communicating a name of said at least one eligible multimedia server to said client computer.
3 Assignments
Litigations
0 Petitions
Accused Products
Abstract
A metaserver for managing the delivery of multimedia streams from, a plurality of multimedia servers to multiple clients over a diverse network is disclosed. The metaserver allows one to eliminate the bottleneck problem associated with the limited speed of a single multimedia server, reduce the network congestion and increase the fault tolerance of the whole system.
169 Citations
31 Claims
-
1. In at least one metaserver at one level of management, each said metaserver having a processor and a memory, a method for assigning a plurality of multimedia servers configured to provide data streams for a plurality of client computers, each said client computer being coupled to each said metaserver at the same level of management and to each said multimedia server via a network, each said client computer including a video and audio display device, each said metaserver memory configured to store a metaserver database that includes information about the data streams stored in at least one of said multimedia servers, said method comprising:
-
receiving a request for a multimedia stream from one of said client computers;
monitoring the status of each said multimedia server and the status of said network;
selecting from the metaserver database at least one eligible multimedia server storing the requested multimedia stream using a selection algorithm; and
communicating a name of said at least one eligible multimedia server to said client computer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
using a minimum cost algorithm as said selection algorithm;
choosing a set of parameters including multimedia content, current load, geographic location, and a network distance from said at least one multimedia server to said client computer; and
applying said minimum cost algorithm to said set of parameters.
-
-
3. The method of claim 2, wherein applying said minimum cost algorithm to said set of parameters further includes communicating with said at least one multimedia server periodically to find for said at least one multimedia server its current load and a Multimedia content status.
-
4. The method of claim 1, further comprising providing said at least one multimedia server with an audio stream (Audio_X) including audio time stamps (Audio_time_stamp_X), wherein said at least one multimedia server AX has a video data stream (Video_X) including video time stamps (Video_time_stamp_X), and wherein said audio (Audio_X) is complementary to said video data stream (Video_X), and wherein said video time stamps (Video_time_stamp_X) are matched with said audio time stamps (Audio_time_stamp_X).
-
5. The method of claim 1, further comprising:
-
inquiring by a video source server from said metaserver at least one multimedia server (AY) eligible for installation of a new video data stream (Video_Y);
retrieving the name of said at least one (AY) multimedia server eligible for installation the new video data stream (Video_Y) from said metaserver database by said video source server;
uploading from said video source server the new video data stream (Video_Y) to said at least one eligible for installation multimedia server (AY); and
updating said metaserver database to include said at least one multimedia server (AY), wherein said at least one multimedia server (AY) includes the new video data stream (Video_Y).
-
-
6. The method of claim 1, further comprising uploading by creating at least one new multimedia server (A′
- X) having the multimedia stream (Multimedia_X).
-
7. The method of claim 6, wherein uploading further includes:
-
connecting a video source server to at least one said metaserver at the same level of management to obtain from said at least one metaserver database at least one multimedia server (A′
X) eligible for installation said multimedia stream (Multimedia_X);
retrieving the name of said at least one multimedia server (A′
X) eligible for installation of said multimedia stream (Multimedia_X) from said at least one metaserver database by said video source server;
uploading from said video source server said multimedia stream (Multimedia_X) to each said multimedia server (A′
X) eligible for installation; and
updating at least one said metaserver database to include said at least one (A′
X) multimedia server, wherein said at least one (A′
X) multimedia server includes the multimedia stream (Multimedia_X).
-
-
8. The method of claim 1, further including adding a new multimedia server to said at least one multimedia server in said metaserver database to increase the capacity of said metaserver.
-
9. The method of claim 1, further including removing a multimedia server from said at least one multimedia server in said metaserver database to support said removed server maintenance.
-
10. The method of claim 1, further including using an intranet corporate network as said network, wherein said at least one multimedia server is located within one branch office.
-
11. The method of claim 1, further including using the Internet network as s aid network.
-
12. The method of claim 1, further including:
-
assigning a multimedia stream with live content (LIVE_X) to at least one multimedia server (ALIVE — x) by said metaserver;
assigning a multimedia stream with on-demand content (ON_DEMAND_X) to at least one multimedia server (AX) by said metaserver; and
providing status information about the status of (LIVE_X) or (ON_DEMAND_X) multimedia content (Multimedia_X) for each said live or on-demand multimedia server into said metaserver database, wherein said status information includes waiting time information (WAITING_TIME_LIVE_X) for each said multimedia server (ALIVE — x) having (LIVE_X) multimedia content.
-
-
13. The method of claim 1, where in said at least one metaserver is a Global metaserver, and wherein said Global metaserver is coupled to a Local metaserver, and wherein said Global metaserver and said Local metaserver are at the different levels of management, and wherein said Global metaserver includes a Global metaserver database, said method further comprising:
-
receiving a request for a Global multimedia stream from one of said client computers, wherein said Global multimedia stream includes Global video time stamps;
monitoring the status of each said multimedia server and the status of said network;
selecting a Global selection algorithm from a menu of Global algorithms;
selecting at least one eligible Global multimedia server from said Global metaserver database using said Global selection algorithm;
communicating the name of said at least one eligible Global multimedia server and the identity of said Local metaserver to said client computer; and
transferring management responsibility from said Global metaserver to said Local metaserver to separate Global and Local multimedia streams being retrieved by said client computer.
-
-
14. The method of claim 1, wherein said at least one metaserver is a Global metaserver, and wherein said Global metaserver is coupled to a Local metaserver, and wherein said Global metaserver and said Local metaserver are at the different levels of management, and wherein said Global metaserver includes a Global metaserver database and wherein said Local metaserver includes a Local metaserver database, said method further comprising:
-
receiving a request for a Global multimedia stream from one of said client computers, wherein said Global multimedia stream includes Global video time stamps;
monitoring the status of each said multimedia server and the status of said network;
selecting a Global selection algorithm from a menu of Global algorithms;
selecting at least one eligible Global multimedia server from said Global metaserver database using said Global selection algorithm;
communicating the name of said at least one eligible Global multimedia server and the identity of said Local metaserver to said client computer;
transferring management responsibility from said Global metaserver to said Local metaserver to separate Global and Local multimedia streams being retrieved by said client computer;
receiving a request by said Local metaserver for a Local multimedia stream from said client computer, wherein said Local multimedia stream includes Local video time stamps;
monitoring the status of each said Local multimedia server and the status of said network;
selecting a Local selection algorithm from a menu of Local algorithms;
selecting at least one eligible Local multimedia server from said Local metaserver database using sa id Local selection algorithm; and
communicating the name of said at least one eligible Local multimedia server to said client computer, wherein said Local video time stamps are matched with said Global video time stamps.
-
-
15. The method of claim 1, wherein said at least one metaserver includes a Local metaserver, and wherein said Local metaserver is couple to a Global metaserver, and wherein said Global metaserver and said Local metaserver are at the different level of management, and wherein said Global metaserver includes a Global metaserver database and wherein said Local metaserver includes a Local metaserver database, said method further comprising:
-
receiving management responsibility from said Global metaserver by said Local metaserver to start sending Local multimedia streams under request of said client computer;
receiving a request by said Local metaserver for a Local multimedia stream from said client computer, wherein said Local multimedia stream includes Local video time stamps;
monitoring the status of each said Local multimedia server and the status of said network;
selecting a Local selection algorithm from a menu of Local algorithms;
selecting at least one eligible Local multimedia server from said Local metaserver database using said Local selection algorithm; and
communicating the name of said at least one eligible Local multimedia server to said client computer, wherein said Local video time stamps are matched with said Global video time stamps.
-
-
16. A method for managing a client computer in a computer system, said computer system including a plurality of said client computers coupled to a plurality of multimedia servers and coupled to at least one metaserver at the same level of management via a network, each said metaserver including a metaserver database having information about data streams stored in at least one of the multimedia servers, each said client computer including a video and audio display device, said method comprising:
-
picking up one said metaserver upon determining that more than one said metaserver is available at the same level of management;
retrieving from the metaserver database a name of at least one eligible multimedia server that stores a requested multimedia stream by said client computer; and
connecting said client computer to said at least one eligible multimedia server via said network in order to display said requested multimedia stream on said client computer video and audio display device. - View Dependent Claims (17, 18, 19, 20)
sending a request to said first metaserver for an audio stream (Audio_X) including an (Audio_time_X) stamp, wherein at least one said multimedia server has said requested audio stream (Audio_X); and
sending a request to said second metaserver for a video stream (Video_X) including a (Video_time_X) stamp, wherein at least one said multimedia server has said requested video stream (Video_X), and wherein said audio stream (Audio_X) is complementary to said video stream (Video_X), and wherein said (Video_time_X) is matched with said (Audio_time_X) stamp.
-
-
18. The method of claim 16, wherein said step of sending said request for said multimedia stream (Multimedia_X) to said metaserver by one of said client computers (B) further comprises sending request about the status of (LIVE_X) or (ON_DEMAND_X) of said multimedia content (Multimedia_X) including the waiting time information (WAITING_TIME_LIVE_X) for said at least one multimedia server (AX).
-
19. The method of claim 16, wherein said metaserver is a Global metaserver and wherein said Global metaserver is coupled to a Local metaserver, and wherein said Global metaserver includes a Global metaserver database and wherein said Local metaserver includes a Local metaserver database, said method further comprising:
-
sending a request by one of said client computers to said Global metaserver for a Global multimedia stream, wherein said Global multimedia stream includes Global video time stamps;
sending a request by said client computer to said Global metaserver for a Local multimedia stream, wherein said Local multimedia stream includes Local video time stamps;
retrieving the name of at least one eligible Global multimedia server to said client computer from said Global metaserver database, wherein said at least one eligible Global multimedia server includes said requested Global multimedia stream;
retrieving the name of at least one eligible Local multimedia server to said client computer from said Local metaserver database, wherein said at least one eligible Local multimedia server includes said requested Local multimedia stream;
connecting said client computer to said at least one Global multimedia server via said network in order to display requested Global multimedia stream on said client computer video and audio display device; and
connecting said client computer (B) to said at least one Local server via said network in order to display said requested Local multimedia stream on said client computer video and audio display device.
-
-
20. The method of claim 16, wherein said metaserver includes a Local metaserver, and wherein said Local metaserver is coupled to a Global metaserver, and wherein said Global metaserver includes a Global metaserver database and wherein said Local metaserver includes a Local metaserver database, said method further comprising:
-
sending a request by one of said client computers to said Local metaserver for a Local multimedia stream, wherein said Local multimedia stream includes Local video time stamps;
retrieving the name of at least one eligible Local multimedia server to said client computer from said Local metaserver database, wherein said at least one eligible Local multimedia server includes said requested Local multimedia stream; and
connecting said client computer to said at least one Local server via said network in order to display said requested Local multimedia stream on said client computer video and audio display device.
-
-
21. A metaserver useful in association with a plurality of multimedia servers and with a plurality of client computers, said metaserver configured to provide a multimedia server to each said client computer, each said client computer being coupled to said metaserver and to each said multimedia server via a network, each said client computer including a video and audio display device, said metaserver having a metaserver database which includes information about the video data streams stored in at least one of said multimedia servers, said metaserver comprising:
-
a receiver configured to receive a request for a multimedia stream from one of said client computer by said metaserver;
a monitor configured to continuously monitor the status of each said multimedia server and the status of said network;
a selector configured to select from the metaserver database at least one eligible multimedia server that stores the requested multimedia stream using a selection algorithm; and
a transmitter configured to transmit a name of said at least one eligible multimedia server to said client computer.
-
-
22. A client computer useful in association with a plurality of multimedia server and with at least one metaserver at the same level of management, said client computer being couple to said plurality of multimedia server and coupled to said at least one metaserver via a network, said at least one metaserver including a metaserver database, said client computer including a video and audio display device, said client computer comprising:
-
a transmitter configured to transmit a request for a multimedia stream to said at least one metaserver;
a receiver configured to receive from the at least one metaserver database a name of at least one eligible multimedia server that stores the requested multimedia stream;
a selector configured to select the name of at least one of the eligible multimedia servers; and
a display device configured to display said requested multimedia stream.
-
-
23. A computer-readable storage medium useful in association with at least one metaserver, said at least one metaserver having a processor and a memory, said at least one metaserver managing a plurality of multimedia servers and a plurality of client computers, said at least one metaserver designed to provide a service to each said client computer, each said client computer being coupled to said at least one metaserver and to each said multimedia server via a network, each said client computer including a video and audio display device, said at least one metaserver memory configured to store a metaserver database which includes information about the video data streams stored in at least one of said multimedia servers;
- said computer-readable storage medium including computer-readable code instructions configured to cause said at least one metaserver to;
receive a request for a multimedia stream from one of said client computers;
continuously monitor the status of each said multimedia server and the status of said network;
select from the at least one metaserver database at least one eligible multimedia server that stores the requested multimedia stream using a selection algorithm; and
communicate a name of said at least one eligible multimedia server to said client computer.
- said computer-readable storage medium including computer-readable code instructions configured to cause said at least one metaserver to;
-
24. A computer-readable storage medium useful in association with at least one client computer, each said client computer being coupled to at least one metaserver and to a plurality of multimedia servers via a network, said at least one metaserver having a processor and a memory, said at least one metaserver managing a plurality of multimedia servers and a plurality of client computers, said at least one metaserver designed to provide a service to each said client computer, each said client computer including a video and audio display device, said at least one metaserver memory configured to store a metaserver database which includes information about the video data streams stored in at least one of said multimedia servers;
- said computer-readable storage medium including computer-readable code instructions configured to cause said client computer to;
pick up one said metaserver upon determining there is more than one said metaserver at the same level of management;
send a request for a multimedia stream to said metaserver by one of said client computers;
retrieve from the metaserver database a name of at least one eligible multimedia server that stores the requested multimedia stream by said client computer; and
connect said client computer to said at least one eligible multimedia server via said network in order to display said requested multimedia stream on said client computer video and audio display device.
- said computer-readable storage medium including computer-readable code instructions configured to cause said client computer to;
-
25. A method comprising:
-
receiving a request for a multimedia stream from one of a number of client computers;
monitoring the status of each of a number of multimedia servers and the status of a network coupling the number of client computers and the number of multimedia servers;
selecting from a database having information about data streams stored in at least one of the multimedia servers at least one eligible multimedia server storing the requested multimedia stream using a selection algorithm; and
communicating a name of said at least one eligible multimedia server to the one of the number of client computers.
-
-
26. A metaserver comprising:
-
a receiver configured to receive a request for a multimedia stream from one of a number of client computers;
a monitor configured to monitor the status of each of a number of multimedia servers and the status of a network coupling the number of client computers and the multimedia servers;
a selector configured to select from a database at least one eligible multimedia server that stores the requested multimedia stream using a selection algorithm; and
a transmitter configured to transmit the name of said at least one eligible multimedia server to the one of the number of client computers.
-
-
27. A computer comprising:
-
a transmitter configured to transmit a request for a multimedia stream to a metaserver;
a receiver configured to receive from a database stored on the metaserver a name of at least one eligible multimedia server that stores the requested multimedia stream; and
a selector configured to select the name of at least one of the eligible multimedia servers.
-
-
28. A method comprising:
-
transmitting a request for a multimedia stream to a metaserver;
receiving from a database a name of at least one eligible multimedia server that stores the requested multimedia stream, the database having information about data streams stored on at least one multimedia server; and
selecting the name of at least one of the eligible multimedia servers.
-
-
29. A computer readable medium having computer-executable instructions comprising:
-
receiving a request for a multimedia stream from one of a number of client computers;
monitoring the status of each of a number of multimedia servers and the status of a network coupling the number of client computers and the number of multimedia servers;
selecting from a database at least one eligible multimedia server that stores the requested multimedia stream using a selection algorithm, the database having information about data streams stored on at least one multimedia server; and
communicating a name of said at least one eligible multimedia server to the one of the number of client computers.
-
-
30. A computer readable medium having computer-executable instructions comprising:
-
transmitting a request for a multimedia stream to a metaserver;
receiving from a database a name of at least one eligible multimedia server that stores the requested multimedia stream, the database having information about data streams stored on at least one multimedia server; and
selecting the name of at least one of the eligible multimedia servers.
-
-
31. A method comprising:
-
receiving a request for a multimedia stream from one of a number of client computers;
monitoring the status of each of a number of multimedia servers and the status of a network coupling the number of client computers and the number of multimedia servers;
selecting a selection algorithm from a menu of algorithms;
selecting from a database at least one eligible global multimedia server that stores the requested multimedia stream using the selection algorithm;
communicating a name of said at least one eligible global multimedia server and an identity of a local metaserver to the one of the number of client computers; and
transferring management responsibility from a global metaserver to the local metaserver.
-
Specification