Method and system for scheduled streaming of best effort data
A system is provided for controlling the transmission of best-effort filed data or programs on channels from one of plural controllers to one or more client nodes. A program is a group of files and has program information indicating to a client node how to use the files of the program. A channel is a virtual path, wherein a client node can receive program files from different channels in a separable fashion. Channels also have channel information. Multiple controllers are provided which self configure in rank order to control the scheduled transmission of programs files on channels. Client nodes receive announcements of programs and channels from the controllers and selectively subscribe to the channels and programs. Client nodes can be instructed to positively acknowledge receipt of programs and also send back negative acknowledgements for ranges of data words in program files not received. The negative acknowledgements can be consolidated to reduce the number of packets on the network. The format of packets carrying program files and acknowledgement/negative acknowledgement messages are specified.
1 - 20 . (canceled)
21 . A client node capable of using program information received thereat comprising:
(a) a memory,
(b) a communication interface for receiving programs, each program comprising a group of one or more files and being received from one of a plurality of channels, each channel being a separate, distinct communication path used by the communication interface to separately store the program information received from each channel in the memory as a separately accessible object,
(c) a processor for executing plural processes, including:
a. a session manager, which: retrieves from one of the objects corresponding to a particular one of the channels, designated a service channel, information announcing the existence of other channels and a schedule of programs to be received on each of the channels; and issues notifications of each channel to which the client is subscribed, and
b. a broker process responsive to the notifications from the session manager for demultiplexing one or more programs from each channel to which the client is subscribed and for using each individual file contained in each demultiplexed program as specified by program information carried in the program with the respective file.
22 . The client node of claim 21 wherein the session manager also maintains a subscribed program object indicating each program to which the client is subscribed, and wherein the broker process accesses the subscribed program object to determine whether or not to demultiplex a given program from one of the channels to which the client is subscribed.
23 . The client node of claim 22 further comprising:
(d) a display, and
(e) a manual input device,
wherein the announcement information indicates each channel to which the client node can subscribe, and a schedule of each program to be transmitted on each of the channels,
wherein the processor further executes a guide server process which displays the announcement information to an operator of the client node and which receive instructions from the operator via the manual input device for subscribing to, and unsubscribing from, specific ones of the channels and specific ones of the programs which can be received from the channels.
24 . The client node of claim 21 further comprising:
(d) a display, and
(e) a manual input device,
wherein the announcement information indicates each channel to which the client node can subscribe,
wherein the processor further executes a guide server process which displays the announcement information to an operator of the client node and which receive instructions from the operator via the manual input device for subscribing to, and unsubscribing from, specific ones of the channels.
25 . The client node of claim 21 wherein the use specified by the program includes storing the file in a particular directory associated with the program and specified by the program information of the program.
26 . The client node of claim 24 wherein the announcement information is initially received and stored in a compact format, and wherein the memory stores modifiable information which specifies the appearance, format and operator interactivity of the announcement information, wherein a modification of the modifiable information changes one or more of the appearance, format or operator interactivity of the displayed schedule.
27 . The client node of claim 21 wherein the processor further executes a plug-in manager process, a plug-in being a compiled process designed to operate with another compiled process according to a standard application programmer interface for that other process, the plug-in manager detecting receipt of files specific to each plug-in and notifying the given plug-in of receipt of the programs specific thereto.
28 . The client node of claim 21 wherein the processor also executes a cache manager process responsive to expiry program information carried with each program, the cache manager process deleting each file of each program determined to have expired based on the expiry program information corresponding to the program of the respective file.
29 . The client node of claim 28 wherein each file of each program is time stamped on receipt and wherein the time stamp associated with each file is reset if the program of the file is received and the program of the file includes at least one new file not previously received for the program.
30 - 68 . (canceled)