[go: up one dir, main page]

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 PDF

Info

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
Application number
PCT/IB2007/051560
Other languages
French (fr)
Inventor
Hando Eilsen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Videob Holdings Ltd
Original Assignee
Videob Holdings Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Videob Holdings Ltd filed Critical Videob Holdings Ltd
Priority to PCT/IB2007/051560 priority Critical patent/WO2008132557A1/en
Publication of WO2008132557A1 publication Critical patent/WO2008132557A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/185Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1854Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with non-centralised forwarding system, e.g. chaincast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1863Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
    • H04L12/1868Measures 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.
PCT/IB2007/051560 2007-04-26 2007-04-26 Method for broadcasting data to multiple clients over a computer network Ceased WO2008132557A1 (en)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102082794A (en) * 2011-01-04 2011-06-01 深圳市新超亮特种显示设备有限公司 Real-time play method and equipment

Citations (4)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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