Abstract:
A method and system for performing chaincast communication to multiple communication systems within a system of coupled electronic devices. In one implementation the electronic devices can be computer systems and the system of coupled electronic devices includes the Internet. The present invention provides a system wherein a broadcast source communicates broadcast information (e.g., encoded audio radio content, encoded audio/video television content, program instructions, etc.) to a first group of electronic devices. The first group of electronic devices can be instructed by a transmission scheduler to then communicate (e.g., forward) the broadcast information to other electronic devices which devices can also be instructed to communicate to more devices, etc., thereby reducing the bandwidth requirements of the communication channel between the broadcast source and the first group of electronic devices. Slight communication delays may be encountered by the transmission forwarding, but these delays can typically be tolerated in broadcast transmissions (e.g., radio content, television content, seminars, etc.). The transmission scheduler, coupled to the Internet, is used to track and manage which devices are forwarding broadcast information to which other devices. The transmission scheduler is able to re-route communications when one or more devices terminates or to provide better communication load sharing across the system. The communication is “chaircast” because the forwarding from one device to another, to another, etc., creates a logical communication “chain” from the broadcast server to the receiving devices.

Description:
BACKGROUND OF THE INVENTION  
     1. Field of the Invention 
     The present invention relates to the field of digital information communication. More specifically, the present invention relates to the field of computer implemented digital broadcast communication of information over the Internet. 
     2. Related Art 
     The Internet is a large network made up of a number of smaller networks. It is made up of more than 100,000 interconnected networks in over 100 countries, comprised of commercial, academic and government networks. It has become commercialized into a worldwide information highway and data base, containing information on every subject known to humankind. 
     The proper and efficient use of the great amount of information available on various Internet sites has the potential of providing Internet users with a variety of information desired for businesses and individuals. In particular, those users interested in certain segments of the information available on the Internet or those users interested in certain specific Internet sites could benefit tremendously from having their specific information of interest available to them in an automated and interesting manner. Moreover, such users would benefit greatly from being constantly and automatically updated on new information as the new information becomes available on their sites of interest. 
     Due to the prevalence and popularity of the World Wide Web (also called the “Web”) servers around the world, a great number of Internet users are particularly interested in receiving updated information of interest to them from various World Wide Web servers on the Internet. By way of background, the World Wide Web is an Internet facility that links documents locally and remotely. The Web document is called a Web page, and links in the page let users jump from page to page (hypertext) whether the pages are stored on the same server or on servers around the world. The pages are accessed and read via a Web browser such as Netscape Navigator or Microsoft Internet Explorer. 
     The Web has become the center of Internet activity since, among other reasons, Web pages, containing both text and graphics, are easily accessible via a Web browser. The Web contains the largest collection of online information in the world, and the amount of information is increasing. Current schemes for accessing a Web document require typing in the URL (Uniform Resource Locator) address of the home page in the Web browser. From there, the user starts surfing through the Internet via hypertext links to other documents that can be stored on the same server or on a server anywhere in the world. 
     The shear size of the information available on the Internet and the Web has made it a necessity for individuals and businesses to efficiently and constantly sift through the available information in order to find and organize the information that is of interest. Stated differently, individuals and businesses realize that the availability of information itself does not result in a competitive edge unless the information is reduced to a manageable size and unless the information so reduced in size is of interest and of value to the business or the individual. 
       FIG. 1  illustrates a system  70  regarding one use of the Internet. In system  70 , the Internet  40  is used to provide a communication channel between a broadcast source  60  and a number of receiving devices  10 ,  12   14 . A digital broadcast signal, e.g., representing some audio/video content or program such as a radio program or television program, can be broadcast in encoded digital packets from the source server  60  to the receivers  10 ,  12 ,  14 . Although the broadcast content is the same for each receiver, a separate communication stream, comprising separate digital data packets, is required for each receiver that is coupled to the Internet. Therefore, three separate communication streams  20 ,  21  and  22  are shown as being broadcast from server  60  onto the Internet  40 . Stream  20  is identified and communicated for receiver  10 , stream  21  is identified and communicated for receiver  12  and stream  22  is identified and communicated for receiver  14 . 
     As a result of the above, it is clear that the number of users (receivers) that can receive broadcasted information on the Internet simultaneously from one server  60  is limited mainly by the connection speed between the server  60  and the Internet  40  because each stream  20 ,  21 ,  22  consumes available bandwidth. For example, assuming it is desired to broadcast a radio program over the Internet to users, e.g., that visit the web site of the server  60  ( FIG. 1 ). Depending on the compression algorithm used, and on the number of users that want to listen to the program simultaneously, the server  60  needs to be connected to the Internet  40  with a speed of at least N×K bytes/s, where K is the bandwidth requirement for one user and N is the number of users able to listen to the program simultaneously. Assuming the server connection to the Internet allows up to 100 Mbit/s bandwidth, the number of listeners will be limited to roughly 20,000 per server, assuming roughly 5 Kbits/s bandwidth requirement per user. 
     Accordingly, what is needed is a method and system that is able to provide broadcast communication content to many users, pseudo simultaneously, without being limited to the bandwidth constraints of the server to Internet connection. The present invention provides such a solution. 
     SUMMARY OF THE INVENTION  
     What is described is a method to broadcast information over the Internet to many users pseudo-simultaneously solving the problem arising from the connection speed limitations between a server and the Internet. 
     A method and system are described herein for performing chaincast communication to multiple communication systems within a system of coupled electronic devices. In one implementation the electronic devices can be computer systems and the system of coupled electronic devices includes the Internet. The present invention provides a system wherein a broadcast source communicates broadcast information (e.g., encoded audio radio content, encoded audio/video television content, program instructions, etc.) to a first group of electronic devices. The first group of electronic devices can be instructed by a transmission scheduler to then communicate (e.g., forward) the broadcast information to other electronic devices, which devices can also be instructed to communicate to more devices, etc., thereby reducing the bandwidth requirements of the communication channel between the broadcast source and the first group of electronic devices. Typically, the communication channel between the broadcast source and the first group involves the connection between the Internet and the server. 
     Slight communication delays may be encountered by the transmission forwarding, but these delays can typically be tolerated in broadcast transmissions (e.g., radio content, television content, seminars, etc.) because they are not generally interactive. The transmission scheduler coupled to the Internet, is used to track and manage which devices are forwarding broadcast information to which other devices. The transmission scheduler is able to re-route communications when one or more devices terminates or to provide better communication load sharing across the system. The communication is “chaincast” because the forwarding from one device to another, to another, etc., creates a logical communication “chain” from the broadcast server to and through the receiving devices. 
     An embodiment of the present invention includes a method of communication broadcast information comprising the steps of: a) causing a server to communicate a first stream representing digital broadcast information to a first user device wherein the server and the first user device are coupled to the Internet; b) causing the server to communicate a second stream representing the broadcast information to a second user device wherein the second user device is coupled to the Internet; c) causing the first user device to communicate a third stream representing the broadcast information to a third user device wherein the third user device is coupled to the Internet; and d) rendering, pseudo simultaneously, the broadcast information on the first, second and third user devices. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS  
         FIG. 1  illustrates a prior art information broadcast system using the Internet. 
         FIG. 2  illustrates a general purpose computer system which can be used as an electronic device, a user, or a server in accordance with the present invention. 
         FIG. 3A  is an exemplary communication diagram of the chaincast communication method of the present invention. 
         FIG. 3B  is another exemplary communication diagram of the chaincast communication method of the present invention. 
         FIG. 4  is an Internet connection diagram of the devices of  FIG. 3A . 
         FIG. 5  illustrates a name table managed by the transmission scheduler of the present invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION  
     In the following detailed description of the present invention, a system and method for communicating digital broadcast content to multiple users, pseudo simultaneously, without being constrained to the bandwidth of the server-to-Internet connection, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be recognized by one skilled in the art that the present invention may be practiced without these specific details or with equivalents thereof. In other instances, well known methods, procedures, components, and circuits have not been described in detail as not to unnecessarily obscure aspects of the present invention. 
     Notation and Nomenclature 
     Some portions of the detailed descriptions which follow are presented in terms of procedures, steps, logic blocks, processing, and other symbolic representations of operations on data bits within a computer memory. These descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. A procedure, computer executed step, logic block, process, etc., is here, and generally, conceived to be a self-consistent sequence of steps or instructions leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated in a computer system. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. 
     It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present invention, discussions utilizing terms such as “processing” or “computing” or “translating” or “calculating” or “determining” or “displaying” or “recognizing” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system&#39;s registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices. 
     Computer System  112   
     Aspects of the present invention, described below, are discussed in terms of steps executed on a computer system. Aspects of the present invention are also discussed with respect to an Internet system including electronic devices and servers coupled together within the Internet platform. A “server” and an “electronic device” or “user” can be implemented as a general purpose computer system. Although a variety of different computer systems can be used with the present invention, an exemplary computer system  112  is shown in  FIG. 2 . 
     In general, computer systems  112  that can be used by the present invention comprise an address/data bus  100  for communicating information, a central processor  101  coupled with the bus for processing information and instructions, a volatile memory  102  (e.g., random access memory) coupled with the bus  100  for storing information and instructions for the central processor  101  and a non-volatile memory  103  (e.g., read only memory) coupled with the bus  100  for storing static information and instructions for the processor  101 . Computer system  112  also includes a data storage device  104  (“disk subsystem”) such as a magnetic or optical disk and disk drive coupled with the bus  100  for storing information and instructions and a display device  105  coupled to the bus  100  for displaying information to the computer user. 
     Also included in computer system  112  is an alphanumeric input device  106  including alphanumeric and function keys coupled to the bus  100  for communicating information and command selections to the central processor  101 . Generally, alphanumeric input device  106  is called a keyboard or keypad. System  112  also includes a cursor control or directing device  107  coupled to the bus for communicating user input information and command selections to the central processor  101 . The cursor directing device  107  is typically displaced through user movement which causes a cursor image displayed on screen  105  to move accordingly. Within the context of the present invention, the cursor directing device  107  can include a number of implementations including a mouse device, for example, a trackball device, a joystick, a finger pad (track pad), an electronic stylus, an optical beam directing device with optical receiver pad, an optical tracking device able to track the movement of a user&#39;s finger, etc., or any other device having a primary purpose of moving a displayed cursor across a display screen based on user displacements. 
     Computer system  112  of  FIG. 2  can also include an optional signal generating device  108  coupled to the bus  100  for interfacing with other networked computer systems, e.g., over the Internet. The display device  105  of  FIG. 2  utilized with the computer system  112  of the present invention may be a liquid crystal device, other flat panel display, cathode ray tube, or other display device suitable for creating graphic images and alphanumeric characters recognizable to the user. In one embodiment of the present invention, computer system  112  is a Windows Operating System based computer system having an x86 architecture processor  101 . 
     Chaincast Communication  of the Present Invention 
       FIG. 3A  illustrates an exemplary configuration in accordance with the present invention for performing “chaincast” communication within the Internet system. Within  FIG. 3A , a broadcast server  260  supplies a broadcast content that a number of electronic devices a 1 -aj, b 1 -bk, c 1  and c 2  desire to receive “pseudo” simultaneously. This broadcast content (“program”) can be of any nature or character that would be desired to be received by a number of users simultaneously, e.g., an encoded audio program (e.g., a radio program), an encoded audio/visual program (e.g., a television program), an instructional seminar, a software program, etc. The broadcast content is typically encoded into individual data packets and broadcast digitally. 
     Chaincasting of the present invention does not require a high speed connection between the broadcast server  260  and the Internet  300  ( FIG. 4 ) and still allows practically an unlimited number of users to receive and render the broadcasted program. The chaincasting method can be applied to any kind of information broadcasting, including radio and television (TV). For simplicity, a radio broadcast is described as an example. 
     The present invention, instead of transmitting the information to many users from a server, causes the server to transmit the information only to a few users (e.g., a 1 -aj of  FIG. 3A ) and then instructs these few users to forward the information to the other users (e.g., b 1 -bk, c 1  and c 2 ) as needed. This is chaincasting. The present invention changes the paradigm of information providers and information consumers because all users can relay information to others thereby reducing the communication burden on the server-to-Internet connection. Instead of the old paradigm, the present invention creates an information sharing community ( FIG. 3A ) that utilizes the Internet resources optimally. 
     In the example of  FIG. 3A , users a 1 -aj receive the broadcast content directly from the server via separate information streams  310 - 313 , which are supported on the bandwidth resources of the connection between the Internet  300  ( FIG. 4 ) and server  260 . These streams each contain digital encoded packets that make up the digital broadcast content. The number of users, j, is set based on the bandwidth supported by the connection between the Internet  300  ( FIG. 4 ) and server  260 . Users a 1 -aj are instructed, by the transmission scheduler  200 , to forward the broadcast content to users b 1 -bk in the fashion shown in  FIG. 3A . A separate stream  320  is used between users a 1  and b 1 ; a separate stream  324  is used between users a 2  and b 2 ; a separate stream  326  is used between users a 3  and b 3 ; and a separate stream  330  is used between users aj and bk. Users b 1  and b 3  are instructed, by the transmission scheduler  200 , to forward the broadcast content to users c 1  and c 2  in the fashion shown in  FIG. 3A . A separate stream  322  is used between users b 1  and c 1  and a separate stream  328  is used between users b 3  and c 2 . 
     Communication “chains” are formed, e.g., chain 1  is a 1 -b 1 -c 1 ; chain 2  is a 2 -b 2 ; chain 3  is a 3 -b 3 -c 2  and chain 4  is aj-bk. Software loaded within each user can be used to provide the forwarding functionality. 
     Each user of  FIG. 3A , registers with the transmission scheduler  200  which maintains and tracks the communication links established between the users. The transmission scheduler  200  load balances between the users so that the communication load is balanced to reduce latencies. Load balancing can be performed to maintain a uniform chain sizes. For example, if one user is supplying a relatively larger number of other users (e.g., a chain size of four), then some of the receiver users can be moved from this chain such that they receive the information from other chains. It is possible for one user to receive broadcast information from more than one other user; the duplicate data can be ignored. 
     All users send status update messages to the transmission scheduler  200 . Transmission scheduler  200  can use these status update messages to re-route communication links when one user becomes too slow, or shuts down. For instance, assume user b 3  of  FIG. 3A  shuts down. The result is shown in  FIG. 3B  where the transmission scheduler  200  created a new link  340  to directly connect user a 3  to user c 2 . The transmission scheduler  200  creates and maintains the new link  340  (as well as all other links). Assuming rendering pipelines are large enough with each user, the transfer between communication sources from  FIG. 3A  to  FIG. 3B  (with respect to user c 2 ) can be performed transparently to user c 2 . 
       FIG. 4  is a high level diagram of the Internet connection system of the devices of  FIG. 3A . The users, a 1 -aj, b 1 -bk, c 1  and c 2  are coupled to the Internet  300 . The broadcast server  260  and the transmission scheduler  200  are coupled to the Internet. Server  260  and scheduler  200  can reside in separate computer systems or can reside within the same computer system. 
       FIG. 5  illustrates that the transmission scheduler  200  can be coupled with a name server  400  that contains a listing of IP addresses  412  for each user and each user has an associated unique name (column  410 ). This name server is used to establish communication links between users. If a first user wants to talk to a second user, the first user informs transmission scheduler  200  of the communication link between itself and name of the second user. The transmission scheduler  200  then opens a direct link between the first and second users, over the Internet  300 . The links shown in  FIG. 3A  and  FIG. 3B  can be opened using the name server in this fashion, but the establishment of these links and the designation of users are controlled by the transmission scheduler  200 . 
     An example is given. On the broadcast server  260  is placed software that is operating with the following main functions: 1) multi-channel information transmitter; 2) name server; and 3) the transmission scheduler  200 . On the user side, each user device has an Internet radio software program (“Internet radio”) operating that allows broadcast digital packets to be decoded to thereby render an audible radio program originated by the multi-channel information transmitter. 
     When a user (new user) wants to listen to an Internet radio program, he or she will turn on the Internet radio software (on the computer). The Internet radio software will connect to the name server informing the name server about the IP address of the new user&#39;s Internet radio software. The Internet radio software will receive from the name server the list of available radio stations. The new user then selects the radio station and the Internet radio software will send this information to the transmission scheduler  200 . 
     The transmission scheduler  200  then instructions the information transmitter of the server  260  to start transmitting the information to this IP address (the IP address of the new user) too, or it will instruct one of the radio softwares of a user that is already listening to the same program to forward the information to this new user. Therefore, the new user will receive the data either directly from the server, over the Internet, or from another user that is already receiving the information. The new user can then later be asked to provide, e.g., forward broadcast information to another user. 
     During the act of receiving information, the users&#39; radio software will periodically inform the server  260  that they are still listening and the speed at which they are receiving information. When the user turns off his/her radio, the scheduler  200  and name server will be informed, and if they were forwarding information to other users, the forwarding will be rescheduled to other users or to the server  260 . 
     Although any communication protocol can be used for the communication links of  FIG. 3A  and  FIG. 3B , communication channels can be established using the Prody Phone Internet Telephony functionality as provided by Mindmaker, Inc. of San Jose, Calif. in the Intelligent Assistant software products. Also, radio stations all over the world can make their products available over the Internet  300  for millions of listeners using the Internet radio software. 
     Although the example of a radio program is used, the broadcast content can also be a television program or other audio/visual information or a software program, etc. 
     The preferred embodiment of the present invention, a system and method for communicating digital broadcast content to multiple users, pseudo simultaneously, without being constrained to the bandwidth of the server-to-Internet connection, is described. While the present invention has been described in particular embodiments, it should be appreciated that the present invention should not be construed as limited by such embodiments, but rather construed according to the below claims.