Software and method for multicasting on a network
AssigneeInternational Business Machines Corporation
InventorsVictor S. Moore, Glen R. Walters
Life of this patent
Estimating the term…
Abstract
A system for multicasting a data stream transmits portable child hosts to client computers requesting to receive the multicast. The child hosts are capable of receiving the multicast data stream and also transmitting the data stream to other clients which subsequently request reception of the multicast data stream. Methods for managing the network to minimize the bandwidth load on participating computers, and to reconfigure the network when clients join or leave the network are also disclosed. According to another aspect of the invention a system and computer readable medium is disclosed for carrying out the above method.
Claims28
A method for multicasting comprising the steps of:
- receiving a first request to receive a multicast data stream from a first client application running on a first computer by a supervisory server application running on a supervisory server computer;
- transmitting a first instance of a portable deployable child host to the first client computer;
- establishing a connection between a the first portable deployable child host and a data source application;
- transmitting a multicast data stream by the data source application to the child host on the first client computer;
- receiving a second request to receive the multicast data stream from a second client application running on a second computer by the supervisory server application running on the supervisory server computer;
- transmitting a second instance of the portable deployable child host to the second computer;
- establishing a connection between the first instance of the portable deployable child host and the second instance of the portable deployable child host;
- and
- transmitting the multicast data stream from the first portable deployable child host to the second portable deployable child host.
A method for multicasting comprising steps of:
- receiving a Jth request for receiving a multicast stream by supervisory server application running on a supervisory server from a Jth client running on a Jth computer:
- transmitting a Jth instance of a portable deployable child host to the Jth computer;
- establishing a Jth connection between the Jth instance portable deployable child host and an Ith portable deployable host;
- transmitting a multicast data stream though the Jth connection from the Ith instance of the child host to the Jth instance of the child host;
- receiving a Kth request for receiving a multicast stream by the supervisory server application from a Kth client running on a Kth computer;
- transmitting a Kth instance of the portable deployable child host to the Kth computer;
- establishing a Kth connection between the Kth instance of the portable deployable child host and the Jth instance of the portable deployable child host;
- and
- transmitting the multicast data stream through the Kth connection from the Jth instance of the child host to the Kth instance of the child host.
A method for managing the distribution of a multicast data stream comprising the steps of:
- receiving a Jth request for receiving a multicast stream by supervisory server application running on a supervisory server from a Jth client running on a Jth computer;
- transmitting a Jth instance of a portable deployable child host to the Jth computer;
- performing a test to determine the bandwidth available to the Jth instance of the portable deployable host;
- sending an indication of the bandwidth available to the Jth instance of the portable deployable host to the supervisory server application;
- recording an indication of the bandwidth available to the portable deployable host in a database;
- and
- determining if the Jth instance of the portable deployable host does not have sufficient bandwidth available to it to send and receive the multicast data stream;
- and if the Jth instance of the portable deployable host does not have sufficient bandwidth available to it to send and receive the multicast data stream, establishing a connection between the Jth instance of the portable deployable host and a second instance of the portable deployable child host which has a relatively low bandwidth available to it.
A method of managing a multicasting network comprising a hierarchy of dependent child hosts comprising the steps of:
- receiving notification from a first child host that it intends to leave the multicasting network along with indication of the identity of a second child hosts to which it is connected and sending multicast data stream;
- directing the second child host to connect to a third child host to receiving the multicast data stream;
- polling a set of child host to find a child host with sufficient available bandwidth to handle transmitting the multicast data stream.
A method for distributed control of a multicasting distribution network comprising steps of:
- transmitting a Ith child host to a Ith computer from a supervising server;
- transmitting a Jth child host to a Jth computer from the supervising server;
- transmitting a Kth child host to a Kth computer from the supervising server;
- establishing a connection between the Ith and Jth child hosts as directed by the supervising server based upon the bandwidth of the Ith child reported to the supervising server to handle the Jth child host connection with the Ith child host;
- transmitting information identifying the Ith child host to the Jth child host;
- transmitting a multicast data stream from the Ith child host to the Jth child host;
- establishing a connection between the Jth child host and the Kth child host as directed by the supervising server based upon the bandwidth of both the Ith child and the Jth child reported to the supervising server to handle the Jth child host connection with the Kth child host;
- transmitting the identity of the Ith child host from the Jth to the Kth child host;
- and
- transmitting a multicast data stream from the supervising server source to the Ith for distribution to the Jth child host and the Kth child host.
A computer readable medium containing programming instruction for multicasting comprising programming instructions for:
- receiving a first request to receive a multicast data stream from a first client application running on a first computer by a supervisory server application running on a supervisory server computer;
- transmitting a first instance of a portable deployable child host to the first client computer;
- establishing a connection between a the first portable deployable child host and a data source application;
- transmitting a multicast data stream by the data source application to the child host on the first client computer;
- receiving a second request to receive the multicast data stream from a second client application running on a second computer by the supervisory server application running on the supervisory server computer;
- transmitting a second instance to the portable deployable child host to the second computer;
- establishing a connection between the first instance of the portable deployable child host and the second instance of the portable deployable child host;
- and
- transmitting the multicast data stream from the first portable deployable child host to the second portable deployable child host.
A computer readable medium containing programming instructions for multicasting comprising programming instructions for:
- receiving a Jth request for receiving a multicast stream by supervisory server application running on a supervisory server from a Jth client running on a Jth computer;
- transmitting a Jth instance of a portable deployable child host to the Jth computer;
- establishing a Jth connection between the Jth instance portable deployable child host and an Ith portable deployable host;
- transmitting a multicast data stream though the Jth connection from the Ith instance of the child host to the Jth instance of the child host;
- receiving a Kth request for receiving a multicast stream by the supervisory server application from a Kth client running on a Kth computer;
- transmitting a Kth instance of the portable deployable child host to the Kth computer;
- establishing a Kth connection between the Kth instance of the portable deployable child host and the Jth instance of the portable deployable child host;
- and
- transmitting the multicast data stream through the Kth connection from the Jth instance of the child host to the Kth instance of the child host.
A computer readable medium for managing the distribution of a multicast data stream comprising programming instructions for:
- receiving a Jth request for receiving a multicast stream by supervisory server application running on supervisory server from a Jth client running on a Jth computer;
- transmitting a Jth instance of a portable deployable child host to the Jth computer;
- performing a test to determine the bandwidth available to the Jth instance of the portable deployable host;
- sending an indication of the bandwidth available to the Jth instance of the portable deployable host to the supervisory server application;
- recording an indication of the bandwidth available to the portable deployable host in a database;
- determining if the Jth instance of the portable deployable host does not have sufficient bandwidth available to it to send and receive the multicast data stream;
- and if the Jth instance of the portable deployable host does not have sufficient bandwidth available to it to send and receive the multicast data stream, establishing a connection between the Jth instance of the portable deployable host and a second instance of the portable deployable child host which has a relatively low bandwidth available to it.
A computer readable medium for managing a multicasting network comprising a hierarchy of dependent child hosts comprising programming instructions for:
- receiving notification from a first child host that it intends to leave the multicasting network along with indication of the identity of a second child hosts to which it is connected and sending a multicast data stream;
- directing the second child host to connect to a third child host for receiving the multicast data stream;
- polling a set of child host to find a child host with sufficient available bandwidth to handle transmitting the multicast data stream.
A computer readable medium containing programming instructions for distributed control of a multicasting distribution network comprising programming instructions for:
- transmitting a Ith child host to a Ith computer from a supervising server;
- transmitting a Jth child host to a Jth computer from the supervising server;
- transmitting a Kth child host to a Kth computer from the supervising server;
- establishing a connection between the Ith and Jth child hosts as directed by the supervising server based upon the bandwidth of the Ith child reported to the supervising server to hand o the Jth child host connection with the Ith child host;
- transmitting information identifying the Ith child host to the Jth child host;
- transmitting a multicast data stream from the Ith child host to the Jth child host;
- establishing a connection between the Jth child host and the Kth child host as directed by the supervising server based upon the bandwidth of both the Ith child and the Jth child reported to the supervising server to handle the Jth child host connection with the Kth child host;
- transmitting the identity of the Ith child host from the Jth to the Kth child host;
- and
- transmitting a multicast data stream from the supervising server source to the Ith for distribution to the Jth child host and the Kth child host.
Dependencies are inferred from the claim text.