Abstract:
Methods for providing to the presenter visual feedback regarding the screen data received by one or more viewers in an online presentation environment having a presenter transmitting screen data to one or more viewers over a network may include: transmitting data representing changed visual data; receiving confirmation of receipt of the changed visual data from one or more viewers; generating a representation of the visual data received by one or more viewers responsive to the received confirmation data; and displaying the generated representation at the presenter. Corresponding systems may include: a transmitter which transmits data representing changed visual data; a receiver which receives confirmation of receipt of the changed visual data from one or more viewers; and a display generator which generates a representation of the visual data received by one or more viewers responsive to the received confirmation data, and which displays the generated representation at the presenter.

Description:
FIELD OF THE INVENTION 
     The present invention relates to methods for sharing screen data across a number of computing devices on a network. More specifically, the invention relates to displaying feedback to a presenter relating to the screen data received by viewers. 
     BACKGROUND OF THE INVENTION 
     Many applications currently exist for sharing screen data among a number of computer users. When a presenter changes the screen data currently being shared, the changes may then be transmitted to the other users such that their screen data is also updated. For example, applications exist which allow a slide presentation displayed on a given computer to be transmitted across a network such that the presentation can be viewed by a number of viewers. When the presenter changes to a new slide, the change may then be transmitted to all the viewers such that their screens may be updated. 
     However, in many networks transmission of data may involve unknown latencies or loss rates. Thus a given presenter may not know whether a given change to the shared screen data has been received by all the viewers of a presentation. The presenter may wish to wait for a given number of users, or to tailor his or her remarks appropriately for the visual data actually received by the viewers. Thus there exists a need for displaying to a presenter information corresponding to the changes in screen data that have been received by a given viewer or viewers. 
     SUMMARY OF THE INVENTION 
     In one aspect, the present invention relates to a method of providing to a presenter visual feedback regarding the screen data received by one or more viewers in an online presentation environment having a presenter transmitting screen data to one or more viewers over a network. In one embodiment the method comprises: transmitting data representing changed visual data; receiving confirmation of receipt of the changed visual data from one or more viewers; generating a representation of the visual data received by one or more viewers responsive to the received confirmation data; and displaying the generated representation at a presenter. 
     In another aspect, the present invention relates to a computer system for providing to the presenter visual feedback regarding the screen data received by one or more viewers in an online presentation environment having a presenter transmitting screen data to one or more viewers over a network. In one embodiment the system comprises: a transmitter which transmits data representing changed visual data; a receiver which receives confirmation of receipt of the changed visual data from one or more viewers; and a display generator which generates a representation of the visual data received by one or more viewers responsive to the received confirmation data, and which displays the generated representation at the presenter. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The foregoing and other objects, aspects, features, and advantages of the invention will become more apparent and may be better understood by referring to the following description taken in conjunction with the accompanying drawings, in which: 
         FIG. 1  is a block diagram depicting one embodiment of a computer network used to transmit visual display data and collect feedback from a plurality of viewers; 
         FIGS. 2A and 2B  are block diagrams of embodiments of a computing or network device useful as a device in a client-server network; 
         FIG. 3  is a block diagram depicting one embodiment of a display providing to a presenter visual feedback regarding the screen data received by a viewer; 
         FIG. 4  is a block diagram depicting one embodiment of a display providing to a presenter visual feedback regarding the screen data received by a plurality of viewers; 
         FIG. 5  is a block diagram depicting another embodiment of a display providing to a presenter visual feedback regarding the screen data received by a plurality of viewers; 
         FIG. 6  is a block diagram depicting another embodiment of a display providing to a presenter visual feedback regarding the screen data received by a plurality of viewers; 
         FIG. 7  is a block diagram depicting an embodiment of a display providing to a presenter visual feedback regarding the screen data received by a plurality of viewers in response to input from the presenter; 
         FIG. 8  is a block diagram depicting one embodiment of a method for providing to a presenter visual feedback regarding the screen data received by a viewer; and 
         FIG. 9  is a block diagram depicting one embodiment of a method for providing to a presenter visual feedback regarding the screen data received by a plurality of viewers in response to input from the presenter. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     Referring now to  FIG. 1 , one embodiment of a computer network is depicted. In brief overview, a number of clients  113   a ,  113   b ,  113   c , . . . ,  113   n  (collectively referred to as  113 ), are connected via a network  111 , to a each other and to a server  105 . The clients  113 , networks  111 , and server  105  may comprise any computing devices comprising substantially similar capabilities, descriptions, functions, and configurations as described herein, including without limitation personal computers, notebook computers, personal digital assistants, cellular telephones, digital televisions, servers, and blades. 
     Still referring to  FIG. 1  now in greater detail, in the embodiment shown, a number of clients  113  are connected to a network  111 . The network  111  may comprise the Internet, local networks, web servers, file servers, routers, databases, computers, servers, network appliances, or any other computing devices capable of sending and receiving information. The network may comprise computing devices connected via cables, IR ports, wireless signals, or any other means of connecting multiple computing devices. The network and any devices connected to the networks may communicate via any communication protocol used to communicate among or within computing devices, including without limitation SSL, HTML, XML, RDP, ICA, FTP, HTTP, TCP, IP, UDP, IPX, SPX, NetBIOS, NetBEUI, SMB, SMTP, Ethernet, ARCNET, Fiber Distributed Data Interface (FDDI), RS232, IEEE 802.11, IEEE 802.11a, IEEE 802.11b, IEEE 802.11g and direct asynchronous connections, or any combination thereof. The network  111  may comprise mobile telephone networks utilizing any protocol or protocols used to communicate among mobile devices, including AMPS, TDMA, CDMA, GSM, GPRS or UMTS. 
     In some embodiments, the network configuration shown may be used to share visual information among a plurality of clients  113 . In one embodiment, a single client  113   a  may share visual information with one or more other clients  113 . The single client  113   a  may be referred to as the presenter, the one or more clients may be referred to as viewers, and visual data shared may be referred to as a presentation. Examples of visual information that may be shared include documents, files, slides, images, application displays, and entire computer desktop displays. In some embodiments, the visual data may also be accompanied by other data, including without limitation data files, executable files, and audio data. In some embodiments, the visual data may be accompanied by or comprise part of a videoconferencing data. 
     In one embodiment, a presenter  113   a  may transmit the visual data directly to a number of viewers. In another embodiment a presenter  113   a  may transmit the visual data to a server  105 , which then retransmits said visual data to the viewers. In still other embodiments, the viewers, upon receiving the data corresponding to the change, may then transmit an indication that they successfully received the data corresponding to the change in slides. In some embodiments the viewers may transmit the confirmations directly to the presenter. In other embodiments, the viewers may transmit the confirmations to a server  105  which then may retransmit the confirmations or aggregations of the confirmations to the presenter. 
       FIGS. 2A and 2B  depict block diagrams of a typical computer  200  useful as client computing devices and server computing devices. As shown in  FIGS. 2A and 2B , each computer  200  includes a central processing unit  202 , and a main memory unit  204 . Each computer  200  may also include other optional elements, such as one or more input/output devices  230   a - 230 - b  (generally referred to using reference numeral  230 ), and a cache memory  240  in communication with the central processing unit  202 . 
     The central processing unit  202  is any logic circuitry that responds to and processes instructions fetched from the main memory unit  204 . In many embodiments, the central processing unit is provided by a microprocessor unit, such as those manufactured by Intel Corporation of Mountain View, Calif.; those manufactured by Motorola Corporation of Schaumburg, Ill.; the Crusoe and Efficeon lines of processors manufactured by Transmeta Corporation of Santa Clara, Calif.; the lines of processors manufactured by International Business Machines of White Plains, N.Y.; or the lines of processors manufactured by Advanced Micro Devices of Sunnyvale, Calif. 
     Main memory unit  204  may be one or more memory chips capable of storing data and allowing any storage location to be directly accessed by the microprocessor  202 , such as Static random access memory (SRAM), Burst SRAM or SynchBurst SRAM (BSRAM), Dynamic random access memory (DRAM), Fast Page Mode DRAM (FPM DRAM), Enhanced DRAM (EDRAM), Extended Data Output RAM (EDO RAM), Extended Data Output DRAM (EDO DRAM), Burst Extended Data Output DRAM (BEDO DRAM), Enhanced DRAM EDRAM), synchronous DRAM (SDRAM), JEDEC SRAM, PC100 SDRAM, Double Data Rate SDRAM (DDR SDRAM), Enhanced SDRAM (ESDRAM), SyncLink DRAM (SLDRAM), Direct Rambus DRAM (DRDRAM), or Ferroelectric RAM (FRAM). In the embodiment shown in  FIG. 2A , the processor  202  communicates with main memory  204  via a system bus  250  (described in more detail below).  FIG. 2B  depicts an embodiment of a computer system  200  in which the processor communicates directly with main memory  204  via a memory port. For example, in  FIG. 2B  the main memory  204  may be DRDRAM. 
       FIGS. 2A and 2B  depict embodiments in which the main processor  202  communicates directly with cache memory  240  via a secondary bus, sometimes referred to as a “backside” bus. In other embodiments, the main processor  202  communicates with cache memory  240  using the system bus  250 . Cache memory  240  typically has a faster response time than main memory  204  and is typically provided by SRAM, BSRAM, or EDRAM. 
     In the embodiment shown in  FIG. 2A , the processor  202  communicates with various I/O devices  230  via a local system bus  250 . Various busses may be used to connect the central processing unit  202  to the I/O devices  230 , including a VESA VL bus, an ISA bus, an EISA bus, a MicroChannel Architecture (MCA) bus, a PCI bus, a PCI-X bus, a PCI-Express bus, or a NuBus. For embodiments in which the I/O device is an video display, the processor  202  may use an Advanced Graphics Port (AGP) to communicate with the display.  FIG. 2B  depicts an embodiment of a computer system  200  in which the main processor  202  communicates directly with I/O device  230   b  via HyperTransport, Rapid I/O, or InfiniBand.  FIG. 2B  also depicts an embodiment in which local busses and direct communication are mixed: the processor  202  communicates with I/O device  230   a  using a local interconnect bus while communicating with I/O device  230   b  directly. 
     A wide variety of I/O devices  230  may be present in the computer system  200 . Input devices include keyboards, mice, trackpads, trackballs, cameras, video cameras, microphones, and drawing tablets. Output devices include video displays, speakers, inkjet printers, laser printers, and dye-sublimation printers. An I/O device may also provide mass storage for the computer system  800  such as a hard disk drive, a floppy disk drive for receiving floppy disks such as 3.5-inch, 5.25-inch disks or ZIP disks, a CD-ROM drive, a CD-R/RW drive, a DVD-ROM drive, tape drives of various formats, and USB storage devices such as the USB Flash Drive line of devices manufactured by Twintech Industry, Inc. of Los Alamitos, Calif. 
     In further embodiments, an I/O device  230  may be a bridge between the system bus  250  and an external communication bus, such as a USB bus, an Apple Desktop Bus, an RS-132 serial connection, a SCSI bus, a FireWire bus, a FireWire 800 bus, an Ethernet bus, an AppleTalk bus, a Gigabit Ethernet bus, an Asynchronous Transfer Mode bus, a HIPPI bus, a Super HIPPI bus, a SerialPlus bus, a SCI/LAMP bus, a FibreChannel bus, or a Serial Attached small computer system interface bus. 
     General-purpose computers of the sort depicted in  FIG. 2A  and  FIG. 2B  typically operate under the control of operating systems, which control scheduling of tasks and access to system resources. Typical operating systems include: MICROSOFT WINDOWS, manufactured by Microsoft Corp. of Redmond, Wash.; MacOS, manufactured by Apple Computer of Cupertino, Calif.; OS/2, manufactured by International Business Machines of Armonk, N.Y.; and Linux, a freely-available operating system distributed by Caldera Corp. of Salt Lake City, Utah, among others. 
     For embodiments comprising mobile devices, the device may be a JAVA-enabled cellular telephone, such as the i55sr, i58sr, i85s, or the i88s, all of which are manufactured by Motorola Corp. of Schaumburg, Ill.; the 6035 or the 7135, manufactured by Kyocera of Kyoto, Japan; or the i300 or i330, manufactured by Samsung Electronics Co., Ltd., of Seoul, Korea. In other embodiments comprising mobile devices, a mobile device may be a personal digital assistant (PDA) operating under control of the PalmOS operating system, such as the Tungsten W, the VII, the VIIx, the i705, all of which are manufactured by palmOne, Inc. of Milpitas, Calif. In further embodiments, the client  113  may be a personal digital assistant (PDA) operating under control of the PocketPC operating system, such as the iPAQ 4155, iPAQ 5555, iPAQ 1945, iPAQ 2215, and iPAQ 4255, all of which manufactured by Hewlet-Packard Corporation of Palo Alto, Calif.; the ViewSonic V36, manufactured by ViewSonic of Walnut, Calif.; or the Toshiba PocketPC e405, manufactured by Toshiba America, Inc. of New York, N.Y. In still other embodiments, the mobile device is a combination PDA/telephone device such as the Treo 180, Treo 270, Treo 600, Treo 650, Treo 700, or the Treo 700w, all of which are manufactured by palmOne, Inc. of Milpitas, Calif. In still further embodiments, the mobile device is a cellular telephone that operates under control of the PocketPC operating system, such as the MPx200, manufactured by Motorola Corp. A typical mobile device may comprise many of the elements described above in  FIGS. 2A and 2B , including the processor  202  and the main memory  204 . 
     Referring now to  FIG. 3 , a block diagram depicting one embodiment of a display providing to a presenter visual feedback regarding the screen data received by a viewer is shown. In brief overview, a display  300  comprises a window for displaying the current shared visual display  305  and a window  310  for displaying visual feedback regarding the screen data received by a viewer  315 . 
     Still referring to  FIG. 3 , now in greater detail, a presenter display screen  300  comprises a window for displaying the current shared visual display  305 . The shared visual display may comprise any visual data described herein, including without limitation slides, documents, files, images, an application, or a computer desktop. In some embodiments, the current shared visual display may not be displayed in a window  305 , but may instead comprise the entirety of the presenters screen. In other embodiments, the current shared visual display may not be displayed in a window  305 , but may instead comprise the entirety of the presenters screen, excluding a given number of windows or other visual information. For example, the current shared visual display may comprise the entirety of the presenters screen with the exception of the window for displaying visual feedback regarding the screen data received by a viewer  310 . Or, for example, the current shared visual display may comprise the entirety of the presenters screen with the exception of other visual information corresponding to presentation management functions. 
     A presenter display screen  300  may also comprise a window  310  for displaying visual feedback regarding the screen data received by a viewer  315 . In the embodiment shown, the window  310  comprises a display of the screen data for which a viewer has confirmed receipt  315 . 
     In some embodiments, the visual feedback  315  may be updated periodically. In one embodiment, the visual feedback  315  may be updated at given time intervals, including without limitation any number of microseconds, milliseconds, seconds, or minutes. In another embodiment, the visual feedback  315  may be displayed only in periods following a change in the shared visual display. For example, the window  310  may be hidden or minimized if no changes have been made to the shared visual display  305  for a given time interval. Thus, for example, a presenter may discuss a document for a number of minutes, and then make changes in the document. Upon the presenter&#39;s making changes, the window  310  displaying the visual feedback  315  may appear to inform the presenter whether the viewer has successfully received the visual updates. 
     In the embodiment shown, the display  300  indicates that the screen data received by a viewer  315  may be different than the current shared visual display  305 . This discrepancy may reflect, for example, that the presenter recently changed slides, and the viewer has yet to receive or confirm receipt of the visual data corresponding to the most recent slide. Or the discrepancy may reflect, for example, that the presenter recently typed text into the shared visual display, and the viewer has yet to receive or confirm receipt of the visual data corresponding to the entered text. 
     In some embodiments, the visual feedback display may be modified  315 , such as reduced in size, reduced in color bit depth, and rendered in black and white or grayscale. In other embodiments, any other display property of the screen data shown in the feedback display  315  may be altered, including without limitation color, contrast, sharpness, and brightness. In other embodiments, the presenter machine may generate a visual representation of the screen data received by the viewer using any combination of techniques described herein. For example, the presenter machine may generate a display corresponding to the current screen data confirmed as received by a given viewer, where the display is rendered at 1/15 th  size, and in black and white. 
     Referring now to  FIG. 4 , a block diagram depicting one embodiment of a display providing to a presenter visual feedback regarding the screen data received by a plurality of viewers is shown. In brief overview, a display  300  comprises a window for displaying the current shared visual display  305  and visual feedback regarding the screen data received by a plurality of viewers  415 . 
     Still referring to  FIG. 4 , now in greater detail, visual feedback regarding the screen data received by a plurality of viewers  415  comprises a display of latency corresponding to a plurality of viewers. In some embodiments, any measure of latency may be displayed, including without limitation minimum latency, maximum latency, mean latency, median latency, and mode latency. In some embodiments, latency corresponding to a specific viewer or viewers may be displayed. 
     In some embodiments, the displayed latency may reflect the time between the time the presenter makes a change to the shared visual display  305  and the time that confirmation is received by the presenter that the change has been received by one or more predetermined viewers. In other embodiments, the displayed latency may reflect the time between the time that the presenter makes a change to the shared visual display  305  and the time that the change is received by one or more predetermined viewers. 
     In some embodiments, the latency may be displayed using text, as in the embodiment shown. In other embodiments, latency may be displayed using any technique for the display of data, including without limitation charts, graphs, histograms, plots, color coding, and icons. For example, a mean latency indicator may be displayed which is green while average latency is low, but transitions to red as latency increases. 
     In other embodiments, other statistics relating to the transmission of screen data may be displayed, including without limitation estimated bandwidth, network loss rates, and total number of viewers who have not received a given change. 
     Referring now to  FIG. 5 , a block diagram depicting another embodiment of a display providing to a presenter visual feedback regarding the screen data received by a plurality of viewers is shown. In brief overview, a display  300  comprises a window for displaying the current shared visual display  305  and a window  310  for the display of a chart corresponding to the screen data received by a plurality of viewers  515 . 
     Still referring to  FIG. 5 , now in greater detail, a display of visual feedback regarding the screen data received by a plurality of viewers  515  comprises a chart indicating how many viewers have received given screen data. In the embodiment shown, the shared visual display  300  corresponds to a slide presentation. The visual feedback  515  displays the percentage of viewers who have received a given slide. For example, in the embodiment shown, the current shared visual display is slide number  7 . The chart  515  illustrates that a significant number of viewers have not yet received the data corresponding to the change to slide  7 . The chart  515  further illustrates that most of the viewers may still be currently viewing slide  6 , although a smaller fraction of users may still be viewing slides  5  and  4 , respectively. 
     In other embodiments, the visual feedback  515  may comprise a chart displaying other data regarding the screen data received by viewers. In one embodiment, a chart may display the absolute number of viewers who have received a given change to screen data. In another embodiment, a chart may display any measure of latency as discussed herein. 
     In other embodiments, any chart type may be used, including without limitation a bar graph, line graph, xy plot, scatter plot, histogram, or pie chart. In still other embodiments any other visual representation of data may be used, including without limitation icons, color-codes, and graphics. 
     Referring now to  FIG. 6 , a block diagram depicting another embodiment of a display providing to a presenter visual feedback regarding the screen data received by a plurality of viewers is shown. In brief overview, a display  300  comprises a window for displaying the current shared visual display  305  and a window  310  for the display of visual feedback regarding the screen data received by a plurality of viewers  615 . 
     Still referring to  FIG. 6 , visual feedback regarding the screen data received by a plurality of viewers  615  comprises a number of simulated displays with percentages attached indicating what percentage of viewers may be currently displaying the simulated display. In some embodiments, any number of simulated displays and percentages may be displayed. In one embodiment, simulated displays and percentages may be displayed corresponding to a series of changes in display data. For example, in the embodiment shown, the presentation comprises a slide show, and the four simulated displays may comprise the four most recent slides. The displayed percentages may indicate, for example, that 55% of viewers have confirmed receipt of the change in visual data corresponding to the most recent slide. The displayed percentages may also indicate, for example, that 5% of the viewers have yet to acknowledge receipt of the changes corresponding to the three most recent slides, and thus still may be viewing the slide shown three slides ago. 
     Referring now to  FIG. 7 , a block diagram depicting an embodiment of a display providing to a presenter visual feedback regarding the screen data received by a plurality of viewers in response to input from the presenter. In brief overview, a display  300  comprises a window for displaying the current shared visual display  305  and a window  310  for the display of visual feedback regarding the screen data received by a plurality of viewers  715 . The window  310  also comprises an input mechanism for a presenter to specify a given percentage of viewers. 
     Still referring to  FIG. 7 , now in greater detail, a window  310  for the display of visual feedback regarding the screen data received by a plurality of viewers comprises an input mechanism for a presenter to specify a given percentage of viewers. In the embodiment shown, a slider  705  can be set to a given percentage. The feedback display  715  then displays the most recent visual change confirmed as received by the given percentage of users. For example, a presenter to a large number of viewers might want to know when 80% of the viewers have received a given change in visual data. The presenter could then set the slider to 80%, and observe the most recent visual change confirmed as received by 80% of the audience. 
     In other embodiments, the input device may comprise any other input mechanism, including without limitation a button, radio buttons, text field, and menu. For example, a presenter may use a menu to select a given percentage of viewers. Or for example, a menu could be used to select a given viewer or plurality of viewers, and the feedback display  715  may then show the visual changes currently confirmed as received by that particular viewer or plurality of viewers. 
     In other embodiments, previously or currently shared screen data may be selected to be tracked. In one embodiment, a button or other input device may be provided which allows the presenter to take a ‘snapshot’ of the presenter&#39;s current screen to select the shared screen data to be tracked. In another embodiment, the screen data to be tracked may be automatically selected. For example, the presenter machine may select the screen data to be tracked by a statistical computation using the confirmations of receipt received from the viewers such as, for example, identifying the screen data for which a plurality of the most recent receipts received correspond. 
     The percentage of viewers (or any other statistical measure of viewers) that have confirmed the screen data being tracked may then be visualized in any manner described herein. In the embodiment shown, the selected screen data to be tracked is displayed in window  315  and the percentage of viewers that have confirmed the selected visual change is visualized using a read-only slider  705 . Or for example, clicking on feedback display  715  might bring up a list of the particular viewers corresponding to the given feedback. The presenter may then be able see how many viewers have currently received at least the visual data corresponding to that particular ‘snapshot’.” 
     In some embodiments, an input device may be combined with any of the other feedback displays described herein. For example, the bar graph  515  in  FIG. 5  might be made interactive, such that if a presenter clicked on a given bar, the screen may display a visual representation of the visual changes confirmed as received by the group of viewers corresponding to the bar clicked. Or for example, clicking an individual feedback displays  615  in  FIG. 6  might bring up a list of the particular viewers corresponding to the given feedback. Or for example, a button may be provided which allows the presenter to take a ‘snapshot’ of the presenter&#39;s current screen to be displayed in one of the individual feedback displays  615  such as in  FIG. 6 . The presenter may then be able to see how many viewers have currently received the visual data corresponding to that particular screen. 
     Referring now to  FIG. 8 , a block diagram depicting one embodiment of a method for providing to a presenter visual feedback regarding the screen data received by a viewer is shown. In brief overview, the method comprises; identifying a change to screen data (step  821 ); transmitting data representing changed visual data (step  823 ); receiving confirmation of receipt of the changed visual data from the viewer (step  825 ); generating a representation of the visual data received by the viewer responsive to the received confirmation data (step  827 ); and displaying the generated representation at the presenter (step  829 ). The method may be performed by any single computing device  200  or plurality of computing devices described herein. In the description below, the method will be described in the context of being performed by a presenter machine. 
     Still referring to  FIG. 8 , now in greater detail, a presenter machine identifies a change to screen data (step  821 ). The change to screen data may comprise any alteration, addition, or removal of screen data on the presenter screen. Examples of changes to screen data may include a presenter typing text into a document, opening a slide presentation, moving to a subsequent slide in presentation, opening a document or file, a change in the display of an application, or a moving of an icon in a desktop. 
     The presenter machine may identify a change to screen data (step  821 ) using any known or proprietary technique for identifying events. In some embodiments, the presenter machine may identify a change to screen data by assigning a sequence number to the change in screen data. A subsequent change to screen data may then be assigned a successive sequence number. In another embodiment, the presenter machine may identify a change to screen data by assigning any other unique identifier to the change in screen data. 
     In some embodiments, changes to screen data may be grouped together based on input from the presenter. For example changes to screen data resulting from a series of keystrokes may be treated as a single change to screen data for identification purposes. Or, for example, changes to screen data resulting from an icon being dragged across a screen may be treated as a single change to screen data for identification purposes. In other embodiments, a set of intermediate changes may be grouped together while the network is busy transmitting previous changes. In yet other embodiments, changes that occur within a given time period may be grouped together. 
     After identifying a change to screen data (step  821 ), the presenter machine may transmit data representing changed visual data (step  823 ). The transmission may be via any network and protocol described herein. The presenter machine may transmit data representing changed visual data to any number of viewers. In some embodiments, the presenter machine may transmit the data representing changed visual data along with a corresponding identifier as described herein. In some embodiments, the data representing changed visual data may comprise control data corresponding to an instruction for the viewer to display a given slide or portion of a file. In other embodiments, the data representing changed visual data may comprise graphical data corresponding to the updated visual data. 
     After transmitting data representing changed visual data (step  823 ), the presenter machine may receive confirmation of receipt of the changed visual data from the viewer (step  825 ). The confirmation may be received via any network or protocol described herein. In some embodiments, the confirmation may comprise an identifier corresponding to the changed visual data as described herein. In some embodiments, the presenter machine may receive confirmation of receipt of the changed visual data from a plurality of viewers. 
     In some embodiments, a server  105  or other computing device separate from the presenter machine may receive confirmation of receipt of the changed visual data from the viewer (step  825 ). For example, if a presentation is being delivered to a large number of viewers, a server  105  may be designated to receive confirmation of receipt of the changed visual data from the viewers (step  825 ) in order to relieve load from the presenter machine. 
     After receiving confirmation of receipt of the changed visual data from the viewer (step  825 ), the presenter machine may generate a representation of the visual data received by the viewer responsive to the received confirmation data (step  827 ) Said generation may be done in accordance with any of the embodiments described herein. In some embodiments, the generated representation may comprise a simulated viewer screen. For example, a presenter may be moving through a series of slides. The presenter machine may receive, from a given viewer, confirmation of receipt of changes in visual data corresponding to the display of the first, second, and third slide. The presenter machine may then generate a representation of the third slide. 
     In some embodiments, the presenter machine may generate a representation of the visual data received by the viewer responsive to the received confirmation data, and modify the rendering of said representation according to any of the techniques described herein. 
     In some embodiments, a server  105  or other computing device separate from the presenter machine may generate a representation of the visual data received by the viewer responsive to the received confirmation data (step  825 ). For example, if a presentation is being delivered to a large number of viewers, a server  105  may be designated to receive confirmation of receipt of the changed visual data from the viewers (step  825 ) and generate a visual representation of said feedback. 
     After generating a representation of the visual data received by the viewer responsive to the received confirmation data (step  827 ), the presenter machine may display the generated representation at the presenter (step  829 ). The generated representation may be displayed in any manner described herein. 
     Referring now to  FIG. 9 , a block diagram depicting one embodiment of a method for providing to a presenter visual feedback regarding the screen data received by a plurality of viewers in response to input from the presenter is shown. In brief overview, the method comprises: transmitting data representing changed visual data (step  823 ); receiving confirmation of receipt of the changed visual data from the viewer (step  825 ); accepting input from the presenter (step  921 ); generating a representation of the visual data received by the viewer responsive to the received confirmation data and in response to the input (step  827 ); and displaying the generated representation at the presenter (step  829 ). The method may be performed by any single computing device  200  or plurality of computing devices described herein. In the description below, the method will be described in the context of being performed by a presenter machine. 
     Still referring to  FIG. 9 , now in greater detail, the presenter machine may transmit data representing changed visual data (step  823 ). This step may be performed in accordance with any embodiment described herein. 
     After transmitting data representing changed visual data (step  823 ), the presenter machine may receive confirmation of receipt of the changed visual data from the viewer (step  825 ). This step may be performed in accordance with any embodiment described herein. 
     After receiving confirmation of receipt of the changed visual data from the viewer (step  825 ), the presenter machine may accept input from the presenter (step  921 ). The input may be accepted using any input device described herein. In some embodiments, the input may comprise a given percentage of viewers. In other embodiments, the input may correspond to a given change in visual data. In still other embodiments, the input may correspond to a given number of viewers. In some embodiments, the presenter machine may then transmit said input data to a server  105 , such that the server may then aggregate appropriate data for responding to the input. In other embodiments the presenter machine may then transmit said input data to a server  105 , such that the server may then generate a visual feedback display in response to the input. 
     After accepting input from the presenter (step  921 ), the presenter machine may generate a representation of the visual data received by the viewer responsive to the received confirmation data and in response to the input (step  923 ). This step may be performed in accordance with any embodiment described herein. 
     After generating a representation of the visual data received by the viewer responsive to the received confirmation data and in response to input (step  923 ), the presenter machine may display the generated representation at the presenter (step  829 ). The generated representation may be displayed in any manner described herein. 
     Although the above embodiments have been described with respect to a single presenter, they may be applied equally to scenarios in which multiple users can alter screen data. For example, if four users were working on a single document, all four users may see a screen such as  FIG. 6 , which might display the current visual changes received by all the other participants. Or for example, a presenter may pass control to a given viewer, after which the viewer becomes the presenter. 
     While the invention has been particularly shown and described with reference to specific preferred embodiments, it should be understood by those skilled in the art that various changes in form and detail may be made therein departing from the spirit and scope of the invention as defined by the appended claims.