WO2008132557A1 - Method for broadcasting data to multiple clients over a computer network - Google Patents
Method for broadcasting data to multiple clients over a computer network Download PDFInfo
- Publication number
- WO2008132557A1 WO2008132557A1 PCT/IB2007/051560 IB2007051560W WO2008132557A1 WO 2008132557 A1 WO2008132557 A1 WO 2008132557A1 IB 2007051560 W IB2007051560 W IB 2007051560W WO 2008132557 A1 WO2008132557 A1 WO 2008132557A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- clients
- server
- group
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/185—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1854—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with non-centralised forwarding system, e.g. chaincast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1863—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
- H04L12/1868—Measures taken after transmission, e.g. acknowledgments
Definitions
- the present invention relates generally to the field of broadcasting data over a computer network to multiple client stations, and more particularly to reducing the overhead of a server that broadcasts to multiple client stations.
- a game tournament e.g. bingo/poker
- a live teaching session or broadcasting a movie to multiple client stations.
- a single server may be handling the event with hundreds or thousands of clients receiving the same content.
- the server receives only a small amount of data from each client station, for example when the client sign up for the service or if the client has any special requests.
- the server needs to transmit large amounts of identical data (e.g. audio/video content), essentially simultaneously to each client.
- An aspect of an embodiment of the Invention relates to a system and method for broadcasting data from a server to multiple clients, which are signed up to conduct a communication session with the server.
- the server first groups the multiple clients into a number of recipient groups, for example according to geographical location of the client stations, Internet service provider, network domain or proximity of their communication path.
- the server then appoints one client from each group to serve as a local representative for the group.
- the server will receive transmissions from any member of the group but will transmit data only to the local representative of the group.
- the local representative will then transmit the data to the other members of the group according to instructions provided by the server.
- each member of the group will be allocated a hierarchical level such that the clients of the group form a transmission cascade.
- each client of the group will receive the data and transmit it to the station after it in the cascade.
- each client station installs an agent software application in order to participate in the communication session with the server, for example the agent software may be required in order to display a movie provided by the server.
- each client station is provided with a browser plugin (e.g. a Java application or active-X application) to participate in the communication session with the server.
- the agent software or browser plugin is adapted to receive instructions from the server to perform communications according to one of the methods described above.
- the agent software or browser plugin provides acknowledgement to the server from the local representative of the group confirming that it distributed the content locally to the clients it was appointed to deliver to.
- the server can know if a local representative is shut down or fails, so that the server can appoint an alternative local representative to take over without clients missing data.
- each client acknowledges to its predecessor that the data was delivered.
- the predecessor client can skip a station that fails and transmit to the subsequent client station on the hierarchical list and prevent delivery failure to the rest of the client stations.
- each client when delivering in cascade form each client transfers to the next an ordered list with the addresses of the remaining clients which need to receive the transmission.
- a method of broadcasting data from a server to a plurality of clients which are signed up to receive a service from the server, including: grouping the client into a number of subgroups; appointing a local representative for each group from the clients of the group to represent the members of the group for receiving data; transmitting data intended for multiple clients to the local representatives of the groups representing the multiple clients; and forwarding the data transmitted to the local representatives to the multiple clients that the data is intended for.
- the method further includes acknowledging delivery of the transmitted data by the local representatives to the server.
- the appointing includes providing a list of the members of the group to the local representative.
- the list is a hierarchical list.
- the grouping is according to the geographical location of the clients. Alternatively or additionally, the grouping is according to the communication path of the clients. Further alternatively or additionally, the grouping is according to a common Internet service provider (ISP) of the clients. Further alternatively or additionally the grouping is according to a common domain of the clients.
- ISP Internet service provider
- each group has approximately the same number of clients.
- the local representative is selected from the clients of the group according to the bandwidth available for the clients.
- the clients install an agent software to receive the service from the server.
- the client installs a plug-in application in a browser to receive the service from the server.
- the local representatives transmit the data directly to each of the multiple clients in their group that the data is intended for.
- the local representatives transmit the data to the multiple clients in their group in cascade form wherein each client transmits the data to a succeeding client of the group.
- the local representatives transmit some of the data to the multiple clients in their group in cascade form and some of the data in direct form.
- the data is intended for all the clients receiving the service. Alternatively, the data is intended for some of the clients receiving the service.
- the local representative receives or prepares a hierarchical list of the clients in the group and transmits the data to the highest ranking client station which the data is intended for from the list; and then each client station transmits the list and the data to the next highest ranking station on the list.
- each client that receives the list and data transmits the data and list to the succeeding client station on the list and sends an acknowledgment to the local representative or station that transmitted to him to confirm transmission.
- the grouping and appointing is performed dynamically while transmitting data intended for multiple clients. BRIEF DESCRIPTION OF THE DRAWINGS
- Fig. 1 is a schematic illustration of a system with a server, which broadcasts data to multiple clients, according to an exemplary embodiment of the invention
- Fig. 2 is a flow chart of a method of broadcasting data from a server to multiple clients, according to an exemplary embodiment of the invention
- Fig. 3 is a schematic illustration of distribution of data transmitted from a server by a local representative in direct form, according to an exemplary embodiment of the invention.
- Fig. 4 is a schematic illustration of distribution of data from a server by a local representative in cascade form, according to an exemplary embodiment of the invention.
- Fig. 1 is a schematic illustration of a system 100 with a server 110, which broadcasts data to multiple clients 120, according to an exemplary embodiment of the invention.
- server 110 provides a service, which multiple clients 120 are interested to participate in, for example server 120 may deliver a live video broadcast at a specific time, and server 120 may conduct a game with multiple participants or a combination of both.
- An example of such an application may be a roulette wheel in a casino, wherein multiple clients may register to play, and server 110 transmits a video showing the actual spin of the roulette wheel live from a casino.
- clients 120 are connected by a large network (e.g. a wide area network (WAN)) with server 110.
- a large network e.g. a wide area network (WAN)
- WAN wide area network
- the service provided by the server is characterized by requiring mainly broadcasting data from the server to multiple clients and a relatively small amount of transmissions from individual clients to the server.
- the broadcasts may be directed to all the clients or only to some of the clients for any specific transmission, for example the service may comprise playing a game with two or more teams and each transmission is directed to all clients belonging to a specific team.
- server 110 in order to reduce bandwidth congestion around server 110, server 110 will form a transmission tree.
- the transmission tree will reduce bandwidth transmission requirements around server 110 logarithmically, for example in a case with 10,000 clients, server 110 will transmit to 100 clients, and each of the 100 clients will transmit to 100 clients.
- server 110 may impose any rule regarding the balance of the tree for example server 110 may transmit to the square root of the number of clients, server 110 may transmit to a preselected percentage (e.g. 10%) of the clients or server 110 may transmit to a single client, who will then deliver the data to the clients according to the distribution methods described below.
- Fig. 2 is a flow chart 200 of a method of broadcasting data from a server 110 to multiple clients 120, according to an exemplary embodiment of the invention.
- clients 120 sign up (210) with server 110 to participate in the service provided by server 110.
- server 110 is in possession of a list of the transmission addresses of the clients which are to receive the data.
- server 110 groups (220) the clients into a plurality of subgroups, which will handle distribution.
- the clients are grouped according to their physical geographical sites 130, for example the clients registered to receive service from server 110 may be located in different countries around the world.
- each county can be defined as a site 130 and treated as one group in order to reduce bandwidth consumption.
- each location of the company can be defined as a site 130 and treated as one group.
- clients 120 may be grouped according to their Internet service provider (ISP), they may be grouped according to communication paths (e.g. serviced by a common router or common firewall), they may be grouped by a common domain or they may be grouped by game team, randomly or by any other logic.
- ISP Internet service provider
- each group is allocated with approximately the same number of clients.
- the size of the groups may vary based on other considerations such as listed above.
- server 110 appoints (230) one client from each group to be a local representative 140 for site 130 as shown in Fig. 1.
- Figure 1 shows N clients 120 divided to M sites 130, for example according to the following distribution:
- Site 1 is elected to deal with the clients with numbers 1, 2 and 3, client 1 is elected to be the local representative 140 of site 1; 2.
- Site 2 is elected to deal with the clients with numbers 4, 5 and 6; client 4 is elected to be the local representative 140 of site 2;
- Site M is elected to deal with the clients with numbers N and N- 1, client N is elected to be the local representative 140 of site M.
- local representative 140 may be assigned randomly, according to registration (e.g. first to sign up from the site 130) or according to other logic, for example fastest computer or fastest communication link.
- server 110 transmits (240) data that is intended for distribution to each local representative 140 that has clients 120, which the data is intended for.
- the transmission to sites 130 is designated by arrows 115.
- local representative 140 of each site 130 receives a list of clients at the site 130, which are to receive a copy of the data.
- Local representative 140 forwards (250) the data from server 110 to clients 120, which are addressed to receive the data, at the local representative's site 130.
- various methods may be used to forward the data from local representative 140 to the rest of clients 120 at site 130, as described below.
- each client 120 that signs-up (210) for the service provided by server 110 is provided with an agent software application in order to participate in the service and receive transmissions from server 110.
- client 120 is required to accept installation of a specific plug-in application (e.g. Java-script or Active-X) under its browser as a pre-condition to participate in reception of the service provided by server 110.
- the installed software will allow implementation of distribution control to enable distribution as described in this application, for example enable client 120 to serve as a local representative 140 or participate in other ways in data distribution.
- Fig. 3 is a schematic illustration of distribution of data transmitted 115 from server 110 by local representative 140 in direct form, according to an exemplary embodiment of the invention.
- server 110 provides local representative 140 with a list of clients 120 at the local representative's site 130, which need to receive data transmission 115.
- local representative 140 directly transmits data transmission 115 to each client 120 located at its site 130.
- this method of distribution can reduce bandwidth consumption logarithmically at the server.
- upward data transmissions 125 are transmitted directly from each client 120 to server 110.
- downward data transmissions 115 which are expected to be bandwidth consuming, are directed via local representative 140 to reduce the load on server 110 and bandwidth consumption from the server's communication infrastructure.
- local representative 140 sends a delivery acknowledgement message to server 110 after forwarding data transmission 115 to the intended recipients, so that server 110 knows that the local representative is alive and functioning in the selected client 120.
- server 110 may query the client 120 that was designated to be local representative 140 to determine if there is a problem.
- server 110 may appoint another client 120 as the local representative 140 for a specific site 130 to replace a local representative 140 that does not respond, so that clients 120 at site 130 will not remain without receiving data transmission 115.
- server 110 may change the distribution at a specific site, for example by appointing more local representatives 140 or by reducing the number of appointed representatives and joining sites together.
- the distribution change may be responsive to failure in transmitting to a specific local representative 140 or may be due to other considerations taken by server 110.
- Fig. 4 is a schematic illustration of distribution of data transmitted 115 from server 110 by local representative 140 in cascade form, according to an exemplary embodiment of the invention.
- server 110 provides local representative 140 with a hierarchical list of clients 120 at the site controlled by local representative 140.
- the list may be ordered according to the order by which the clients 120 registered or based on other considerations, for example communication speed available with the client (e.g. send first to the clients with the highest bandwidth).
- the list may be ordered randomly, by server 110 or local representative 140,
- local representative 140 forwards transmitted data 115 and the hierarchical list to the succeeding client 120 on the list.
- each client 120 that transmits transmitted data 115 to the succeeding client 120 sends an acknowledgment message to local representative 140.
- local representative 140 keeps track of the dissemination of the data along the cascade of clients 120 at site 130.
- local representative 140 identifies a failure in the dissemination of the data along the cascade it transmits the transmitted data 115 and the hierarchical list to the client 120 , which was supposed to receive the transmitted data 115 from the client 120, which did not provide acknowledgment
- the client 120 that receives the transmitted data 115 will continue dissemination to the succeeding client 120 according to the hierarchical list.
- each client 120 that transmits transmitted data 115 to a succeeding client sends acknowledgment to the client 120, which transmitted the transmitted data to current client 120.
- a client 120 does not receive acknowledgement after a designated time, it will retransmit to the succeeding client 120 from the hierarchical list following the one that did not acknowledge.
- a specific client fails and does not respond the dissemination of transmitted data 115 does not stop.
- each client 120 may send upward data transmissions 125 to server 110, however all downward transmission data 115 will be distributed through local representative 140.
- local representatives 140 may be servers provided by the service provider to assist in distribution of the content instead of client stations 120 elected (e.g. ad hoc) to serve as local representatives 14O 5 for example the service provider may provide dedicated servers in each country to service the local client stations 120.
- some of the data may be transmitted from the local representative 140 in direct form and some may be transmitted in cascade form as described above, for example half of the data will be transmitted directly from local representative 140 and half will be transmitted by transmitting the data from one client to another.
- each transmission method provides enough data to reconstruct a lower quality meaningful result at the receiving client station 120, for example once client station 120 receives transmitted data 115 by one of the transmission methods it can display a low quality video of the spinning of a roulette wheel.
- transmitted data 115 arrives within an allotted amount of time from both transmission methods the video is displayed in high resolution, alternatively, the video is displayed in low resolution (e.g. at half frame rate or by displaying the odd/even scan lines) from the transmission method that arrived on time, or the transmission method that arrived first.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
A method of broadcasting data from a server (110) to a plurality of client (120, 140), which are signed up to receive a service from the server, including, grouping the client into a number of subgroups, appointing a local representative (140) for each group from the clients of the group to represent the members of the group for receiving data, transmitting data intended for multiple clients to the local representatives (140) of the groups representing the multiple clients, and forwarding the data transmitted to the local representatives to the multiple clients (120) that the data is intended for.
Description
METHOD FOR BROADCASTING DATA TO MULTIPLE CLIENTS OVER A COMPUTER NETWORK
FIELD OF THE INVENTION
The present invention relates generally to the field of broadcasting data over a computer network to multiple client stations, and more particularly to reducing the overhead of a server that broadcasts to multiple client stations.
BACKGROUND OF THE INVENTION
Nowadays many multi-user applications are conducted over a computer network, for example conducting a game tournament (e.g. bingo/poker), conducting a live teaching session or broadcasting a movie to multiple client stations. Generally, in such events a single server may be handling the event with hundreds or thousands of clients receiving the same content. Typically, the server receives only a small amount of data from each client station, for example when the client sign up for the service or if the client has any special requests. However in the opposite direction the server needs to transmit large amounts of identical data (e.g. audio/video content), essentially simultaneously to each client.
Transmission of large quantities of data from a single server to multiple clients puts a severe burden on the communication lines available for the server. Typically, all of the available bandwidth will be used up and the service provided to each client will deteriorate. A service provider will need to invest more money in communication bandwidth to prevent the level of service from deteriorating to a level which would jeopardize provision of the service, As an example if the players in a bingo tournament do not receive video transmissions showing the game play in reasonable time they will prefer not to participate in such an event.
Generally, it is desirable to reduce the quantity of data that needs to be transmitted from the server to the clients in order to reduce bandwidth consumption and ease the load on the server.
SUMMARY OF THE INVENTION
An aspect of an embodiment of the Invention, relates to a system and method for broadcasting data from a server to multiple clients, which are signed up to conduct a communication session with the server. In an exemplary embodiment of the invention, the server first groups the multiple clients into a number of recipient groups, for example according to geographical location of the client stations, Internet service provider, network domain or proximity of their communication path. The server then appoints one client from each group to serve as a local representative for the group. The server will receive transmissions from any member of the group but will transmit data only to the local representative of the group. The local representative will then transmit the data to the other members of the group according to instructions provided by the server.
In some embodiments of the invention, each member of the group will be allocated a hierarchical level such that the clients of the group form a transmission cascade. Optionally, each client of the group will receive the data and transmit it to the station after it in the cascade.
In some embodiments of the invention, each client station installs an agent software application in order to participate in the communication session with the server, for example the agent software may be required in order to display a movie provided by the server. Alternatively or additionally, each client station is provided with a browser plugin (e.g. a Java application or active-X application) to participate in the communication session with the server. Optionally, the agent software or browser plugin is adapted to receive instructions from the server to perform communications according to one of the methods described above. Additionally, the agent software or browser plugin provides acknowledgement to the server from the local representative of the
group confirming that it distributed the content locally to the clients it was appointed to deliver to. Thus the server can know if a local representative is shut down or fails, so that the server can appoint an alternative local representative to take over without clients missing data. Likewise if the content is delivered in cascade form, each client acknowledges to its predecessor that the data was delivered. Thus the predecessor client can skip a station that fails and transmit to the subsequent client station on the hierarchical list and prevent delivery failure to the rest of the client stations.
In an exemplary embodiment of the invention, when delivering in cascade form each client transfers to the next an ordered list with the addresses of the remaining clients which need to receive the transmission.
There is thus provided according to an exemplary embodiment of the invention, a method of broadcasting data from a server to a plurality of clients, which are signed up to receive a service from the server, including: grouping the client into a number of subgroups; appointing a local representative for each group from the clients of the group to represent the members of the group for receiving data; transmitting data intended for multiple clients to the local representatives of the groups representing the multiple clients; and forwarding the data transmitted to the local representatives to the multiple clients that the data is intended for.
Optionally, the method further includes acknowledging delivery of the transmitted data by the local representatives to the server. In an exemplary embodiment of the invention, the appointing includes providing a list of the members of the group to the local representative.
In an exemplary embodiment of the invention, the list is a hierarchical list. Optionally, the grouping is according to the geographical location of the clients. Alternatively or additionally, the grouping is according to the communication path of the clients. Further alternatively or additionally, the grouping is according to a common Internet service provider (ISP) of the
clients. Further alternatively or additionally the grouping is according to a common domain of the clients. Optionally, each group has approximately the same number of clients. In an exemplary embodiment of the invention, the local representative is selected from the clients of the group according to the bandwidth available for the clients. Optionally, the clients install an agent software to receive the service from the server. In an exemplary embodiment of the invention, the client installs a plug-in application in a browser to receive the service from the server. Optionally, the local representatives transmit the data directly to each of the multiple clients in their group that the data is intended for. In an exemplary embodiment of the invention, the local representatives transmit the data to the multiple clients in their group in cascade form wherein each client transmits the data to a succeeding client of the group. Optionally, the local representatives transmit some of the data to the multiple clients in their group in cascade form and some of the data in direct form.
In an exemplary embodiment of the invention, the data is intended for all the clients receiving the service. Alternatively, the data is intended for some of the clients receiving the service. In an exemplary embodiment of the invention, the local representative receives or prepares a hierarchical list of the clients in the group and transmits the data to the highest ranking client station which the data is intended for from the list; and then each client station transmits the list and the data to the next highest ranking station on the list. Optionally, each client that receives the list and data transmits the data and list to the succeeding client station on the list and sends an acknowledgment to the local representative or station that transmitted to him to confirm transmission. In an exemplary embodiment of the invention, the grouping and appointing is performed dynamically while transmitting data intended for multiple clients.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention will be understood and better appreciated from the following detailed description taken in conjunction with the drawings. Identical structures, elements or parts, which appear in more than one figure, are generally labeled with the same or similar number in all the figures in which they appear, wherein:
Fig. 1 is a schematic illustration of a system with a server, which broadcasts data to multiple clients, according to an exemplary embodiment of the invention;
Fig. 2 is a flow chart of a method of broadcasting data from a server to multiple clients, according to an exemplary embodiment of the invention;
Fig. 3 is a schematic illustration of distribution of data transmitted from a server by a local representative in direct form, according to an exemplary embodiment of the invention; and
Fig. 4 is a schematic illustration of distribution of data from a server by a local representative in cascade form, according to an exemplary embodiment of the invention.
DETAILED DESCRIPTION
Fig. 1 is a schematic illustration of a system 100 with a server 110, which broadcasts data to multiple clients 120, according to an exemplary embodiment of the invention. In an exemplary embodiment of the invention server 110 provides a service, which multiple clients 120 are interested to participate in, for example server 120 may deliver a live video broadcast at a specific time, and server 120 may conduct a game with multiple participants or a combination of both. An example of such an application may be a roulette wheel in a casino, wherein multiple clients may register to play, and server 110 transmits a video showing the actual spin of the roulette wheel live from a casino.
In an exemplary embodiment of the invention, clients 120 are connected by a large network (e.g. a wide area network (WAN)) with server 110. An example of such a network is the Internet or a corporate intranet. Optionally, the service provided by the server is characterized by requiring mainly broadcasting data from the server to multiple clients and a relatively small amount of transmissions from individual clients to the server. Optionally, the broadcasts may be directed to all the clients or only to some of the clients for any specific transmission, for example the service may comprise playing a game with two or more teams and each transmission is directed to all clients belonging to a specific team. In an exemplary embodiment of the invention, in order to reduce bandwidth congestion around server 110, server 110 will form a transmission tree. Optionally, the transmission tree will reduce bandwidth transmission requirements around server 110 logarithmically, for example in a case with 10,000 clients, server 110 will transmit to 100 clients, and each of the 100 clients will transmit to 100 clients. Optionally, server 110 may impose any rule regarding the balance of the tree for example server 110 may transmit to the square root of the number of clients, server 110 may transmit to a preselected percentage (e.g. 10%) of the clients or server 110 may transmit to a
single client, who will then deliver the data to the clients according to the distribution methods described below.
Fig. 2 is a flow chart 200 of a method of broadcasting data from a server 110 to multiple clients 120, according to an exemplary embodiment of the invention. In an exemplary embodiment of the invention, clients 120 sign up (210) with server 110 to participate in the service provided by server 110. Thus server 110 is in possession of a list of the transmission addresses of the clients which are to receive the data. In an exemplary embodiment of the invention, server 110 groups (220) the clients into a plurality of subgroups, which will handle distribution. In some embodiments of the invention, the clients are grouped according to their physical geographical sites 130, for example the clients registered to receive service from server 110 may be located in different countries around the world. Optionally, each county can be defined as a site 130 and treated as one group in order to reduce bandwidth consumption. Likewise in a corporate network each location of the company can be defined as a site 130 and treated as one group. Alternatively, clients 120 may be grouped according to their Internet service provider (ISP), they may be grouped according to communication paths (e.g. serviced by a common router or common firewall), they may be grouped by a common domain or they may be grouped by game team, randomly or by any other logic. In some embodiments of the invention, each group is allocated with approximately the same number of clients. Alternatively, the size of the groups may vary based on other considerations such as listed above.
In an exemplary embodiment of the invention, server 110 appoints (230) one client from each group to be a local representative 140 for site 130 as shown in Fig. 1. Figure 1 shows N clients 120 divided to M sites 130, for example according to the following distribution:
1. Site 1 is elected to deal with the clients with numbers 1, 2 and 3, client 1 is elected to be the local representative 140 of site 1;
2. Site 2 is elected to deal with the clients with numbers 4, 5 and 6; client 4 is elected to be the local representative 140 of site 2;
M. Site M is elected to deal with the clients with numbers N and N- 1, client N is elected to be the local representative 140 of site M.
Optionally, local representative 140 may be assigned randomly, according to registration (e.g. first to sign up from the site 130) or according to other logic, for example fastest computer or fastest communication link.
In an exemplary embodiment of the invention, server 110 transmits (240) data that is intended for distribution to each local representative 140 that has clients 120, which the data is intended for. In Fig. 1 the transmission to sites 130 is designated by arrows 115. In an exemplary embodiment of the invention, local representative 140 of each site 130 receives a list of clients at the site 130, which are to receive a copy of the data. Local representative 140 forwards (250) the data from server 110 to clients 120, which are addressed to receive the data, at the local representative's site 130. In an exemplary embodiment of the invention, various methods may be used to forward the data from local representative 140 to the rest of clients 120 at site 130, as described below.
In an exemplary embodiment of the invention, each client 120 that signs-up (210) for the service provided by server 110 is provided with an agent software application in order to participate in the service and receive transmissions from server 110. Alternatively or additionally, client 120 is required to accept installation of a specific plug-in application (e.g. Java-script or Active-X) under its browser as a pre-condition to participate in reception of the service provided by server 110. Optionally, the installed software will allow implementation of distribution control to enable distribution as described in this application, for example enable client 120 to serve as a local representative 140 or participate in other ways in data distribution.
Fig. 3 is a schematic illustration of distribution of data transmitted 115 from server 110 by local representative 140 in direct form, according to an exemplary embodiment of the invention. In an exemplary embodiment of the invention, server 110 provides local representative 140 with a list of clients 120 at the local representative's site 130, which need to receive data transmission 115. Optionally, local representative 140 directly transmits data transmission 115 to each client 120 located at its site 130. As noted above this method of distribution can reduce bandwidth consumption logarithmically at the server. It should be noted that upward data transmissions 125 are transmitted directly from each client 120 to server 110. In contrast downward data transmissions 115, which are expected to be bandwidth consuming, are directed via local representative 140 to reduce the load on server 110 and bandwidth consumption from the server's communication infrastructure. In some embodiments of the invention, local representative 140 sends a delivery acknowledgement message to server 110 after forwarding data transmission 115 to the intended recipients, so that server 110 knows that the local representative is alive and functioning in the selected client 120. Optionally, if server 110 does not receive an acknowledgment within a designated time it will query the client 120 that was designated to be local representative 140 to determine if there is a problem. Alternatively or additionally, server 110 may appoint another client 120 as the local representative 140 for a specific site 130 to replace a local representative 140 that does not respond, so that clients 120 at site 130 will not remain without receiving data transmission 115. In an exemplary embodiment of the invention, at a given moment server 110 may change the distribution at a specific site, for example by appointing more local representatives 140 or by reducing the number of appointed representatives and joining sites together. Optionally, the distribution change may be responsive to failure in transmitting to a specific local representative 140 or may be due to other considerations taken by server 110.
Fig. 4 is a schematic illustration of distribution of data transmitted 115 from server 110 by local representative 140 in cascade form, according to
an exemplary embodiment of the invention. In an exemplary embodiment of the invention, server 110 provides local representative 140 with a hierarchical list of clients 120 at the site controlled by local representative 140. Optionally, the list may be ordered according to the order by which the clients 120 registered or based on other considerations, for example communication speed available with the client (e.g. send first to the clients with the highest bandwidth). In some embodiments of the invention, the list may be ordered randomly, by server 110 or local representative 140, In an exemplary embodiment of the invention, local representative 140 forwards transmitted data 115 and the hierarchical list to the succeeding client 120 on the list. In some embodiments of the invention, each client 120 that transmits transmitted data 115 to the succeeding client 120 sends an acknowledgment message to local representative 140. Optionally, local representative 140 keeps track of the dissemination of the data along the cascade of clients 120 at site 130. Optionally, if local representative 140 identifies a failure in the dissemination of the data along the cascade it transmits the transmitted data 115 and the hierarchical list to the client 120 , which was supposed to receive the transmitted data 115 from the client 120, which did not provide acknowledgment Optionally, the client 120 that receives the transmitted data 115 will continue dissemination to the succeeding client 120 according to the hierarchical list.
In an alternative embodiment of the invention, each client 120 that transmits transmitted data 115 to a succeeding client sends acknowledgment to the client 120, which transmitted the transmitted data to current client 120. Optionally, if a client 120 does not receive acknowledgement after a designated time, it will retransmit to the succeeding client 120 from the hierarchical list following the one that did not acknowledge. Thus if a specific client fails and does not respond the dissemination of transmitted data 115 does not stop.
In an exemplary embodiment of the invention, as with direct distribution by local representative 140 each client 120 may send upward data
transmissions 125 to server 110, however all downward transmission data 115 will be distributed through local representative 140.
In some embodiments of the invention, local representatives 140 may be servers provided by the service provider to assist in distribution of the content instead of client stations 120 elected (e.g. ad hoc) to serve as local representatives 14O5 for example the service provider may provide dedicated servers in each country to service the local client stations 120.
In some embodiments of the invention, some of the data may be transmitted from the local representative 140 in direct form and some may be transmitted in cascade form as described above, for example half of the data will be transmitted directly from local representative 140 and half will be transmitted by transmitting the data from one client to another. Optionally, each transmission method provides enough data to reconstruct a lower quality meaningful result at the receiving client station 120, for example once client station 120 receives transmitted data 115 by one of the transmission methods it can display a low quality video of the spinning of a roulette wheel. Optionally, if transmitted data 115 arrives within an allotted amount of time from both transmission methods the video is displayed in high resolution, alternatively, the video is displayed in low resolution (e.g. at half frame rate or by displaying the odd/even scan lines) from the transmission method that arrived on time, or the transmission method that arrived first.
It should be appreciated that the above described methods and apparatus may be varied in many ways, including omitting or adding steps, changing the order of steps and the type of devices used. It should be appreciated that different features may be combined in different ways. In particular, not all the features shown above in a particular embodiment are necessary in every embodiment of the invention. Further combinations of the above features are also considered to be within the scope of some embodiments of the invention.
It will be appreciated by persons skilled in the art that the present invention is not limited to what has been particularly shown and described hereinabove. Rather the scope of the present invention is defined only by the claims, which follow.
Claims
1. A method of broadcasting data from a server to a plurality of clients, which are signed up to receive a service from the server, comprising: grouping the client into a number of subgroups; appointing a local representative for each group from the clients of the group to represent the members of the group for receiving data; transmitting data intended for multiple clients to the local representatives of the groups representing the multiple clients; and forwarding the data transmitted to the local representatives to the multiple clients that the data is intended for.
2. A method according to claim I5 further comprising: acknowledging delivery of the transmitted data by the local representatives to the server.
3. A method according to claim I5 wherein said appointing comprises providing a list of the members of the group to the local representative.
4. A method according to claim 3, wherein said list is a hierarchical list.
5. A method according to claim 1, wherein said grouping is according to the geographical location of the clients.
6. A method according to claim 1, wherein said grouping is according to the communication path of the clients.
7. A method according to claim 1, wherein said grouping is according to a common Internet service provider of the clients.
8. A method according to claim I1 wherein said grouping is according to a common domain of the clients.
9. A method according to claim 1, wherein each group has approximately the same number of clients.
10. A method according to claim 1, wherein said local representative is selected from the clients of the group according to the bandwidth available for the clients.
11. A method according to claim 1 , wherein said clients install an agent software to receive the service from said server.
12. A method according to claim 1, wherein said clients installs a plug-in application in a browser to receive the service from said server.
13. A method according to claim 1, wherein said local representatives transmit the data directly to each of the multiple clients in their group that the data is intended for.
14. A method according to claim 1, wherein said local representatives transmit the data to the multiple clients in their group in cascade form wherein each client transmits the data to a succeeding client of the group.
15. A method according to claim ϊ, wherein said local representatives transmit some of the data to the multiple clients in their group in cascade form and some of the data in direct form.
16. A method according to claim 1, wherein said data is intended for all the clients receiving the service.
17. A method according to claim 1, wherein said data is intended for some of the clients receiving the service.
18. A method according to claim 1, wherein said local representative receives or prepares a hierarchical list of the clients in the group and transmits the data to the highest ranking client station which the data is intended for from the list; and then each client station transmits the list and the data to the next highest ranking station on the list.
19. A method according to claim 17, wherein each client that receives the list and data transmits the data and list to the succeeding client station on the list and sends an acknowledgment to the local representative or station that transmitted to him to confirm transmission.
20. A method according to claim 1, wherein said grouping and appointing is performed dynamically while transmitting data intended for multiple clients.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/IB2007/051560 WO2008132557A1 (en) | 2007-04-26 | 2007-04-26 | Method for broadcasting data to multiple clients over a computer network |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/IB2007/051560 WO2008132557A1 (en) | 2007-04-26 | 2007-04-26 | Method for broadcasting data to multiple clients over a computer network |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2008132557A1 true WO2008132557A1 (en) | 2008-11-06 |
Family
ID=38814441
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/IB2007/051560 Ceased WO2008132557A1 (en) | 2007-04-26 | 2007-04-26 | Method for broadcasting data to multiple clients over a computer network |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2008132557A1 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102082794A (en) * | 2011-01-04 | 2011-06-01 | 深圳市新超亮特种显示设备有限公司 | Real-time play method and equipment |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2001065767A2 (en) * | 2000-03-01 | 2001-09-07 | Chaincast, Inc. | Method and system relating to multicasting |
| WO2002021301A1 (en) * | 2000-09-06 | 2002-03-14 | Interval Research Corporation | Multicast system using client forwarding |
| US20020143951A1 (en) * | 2001-03-30 | 2002-10-03 | Eyeball.Com Network Inc. | Method and system for multicast to unicast bridging |
| US20030012180A1 (en) * | 1996-11-12 | 2003-01-16 | Starguide Digital Networks, Inc. | High bandwidth broadcast system having localized multicast access to broadcast content |
-
2007
- 2007-04-26 WO PCT/IB2007/051560 patent/WO2008132557A1/en not_active Ceased
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20030012180A1 (en) * | 1996-11-12 | 2003-01-16 | Starguide Digital Networks, Inc. | High bandwidth broadcast system having localized multicast access to broadcast content |
| WO2001065767A2 (en) * | 2000-03-01 | 2001-09-07 | Chaincast, Inc. | Method and system relating to multicasting |
| WO2002021301A1 (en) * | 2000-09-06 | 2002-03-14 | Interval Research Corporation | Multicast system using client forwarding |
| US20020143951A1 (en) * | 2001-03-30 | 2002-10-03 | Eyeball.Com Network Inc. | Method and system for multicast to unicast bridging |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102082794A (en) * | 2011-01-04 | 2011-06-01 | 深圳市新超亮特种显示设备有限公司 | Real-time play method and equipment |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Mauve et al. | A generic proxy system for networked computer games | |
| CN100345410C (en) | Method and system for distribution of information | |
| US8308572B2 (en) | Gaming system with end user feedback for a communication network having a multi-media management | |
| CN104717231B (en) | Pre-distribution processing method and device for content distribution network | |
| CN102546564A (en) | Information pushing control method and system | |
| US9044681B2 (en) | System and method for television-based services | |
| CN102790923A (en) | User comment information sharing method, instant information server and user terminal | |
| JP5001880B2 (en) | Streaming service system and method | |
| US20080201484A1 (en) | Content delivering system, server, and content delivering method | |
| CN101646078A (en) | Method and system based on application-layer multicast for processing streaming media data | |
| EP1305908B1 (en) | Broadcasting network | |
| US20120303764A1 (en) | Peer-to-peer system with censorship | |
| CN101018201A (en) | A parallel expansion method of the P2P stream media live broadcast technology | |
| US20120077600A1 (en) | Multicasting in an online gaming system | |
| US20100153189A1 (en) | Method and apparatus for processing responses from a remote, live audience | |
| AU2003268433B2 (en) | A framework for maintenance and dissemination of distributed state information | |
| JP3737885B2 (en) | Virtual space sharing system | |
| US20090157797A1 (en) | Data distribution system | |
| WO2008132557A1 (en) | Method for broadcasting data to multiple clients over a computer network | |
| KR100953507B1 (en) | Group Communication System and Method Using Distributed Media Server | |
| CN102256164A (en) | Video transmission system based on IP (Internet Protocol) network | |
| US6956932B2 (en) | Method and system of controlling promotional call-ins | |
| CN103237269B (en) | Realize the system and method for video game | |
| GB2422558A (en) | Interactive game broadcasting system | |
| CN102291457A (en) | Game content distribution system based on Barserver |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 07735678 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 07735678 Country of ref document: EP Kind code of ref document: A1 |