# Patent

## Title
Methods, systems, and products for network conferencing

## Abstract

Methods, systems, and products are disclosed for conducting a conference amongst remote participants. Prior to the conference a library of digital objects is communicated to a participant communications device. During the conference a synchronization command is communicated from a host communications device to the participant communications device. The synchronization command commands the participant communications device to present an object from the library of digital objects. A synchronization acknowledgment is then received from the participant communications device, and the synchronization acknowledgment confirms a successful presentation of the object on the participant communications device.

## Background
NOTICE OF COPYRIGHT PROTECTION
A portion of the disclosure of this patent document and its figures contain material subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, but otherwise reserves all copyrights whatsoever.
BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention generally relates to electrical computers and, more particularly, to multi-computer data transfer for conferencing and for synchronizing.
2. Description of the Related Art
Bandwidth is a problem when conferencing. Video and/or desktop conferencing, such as training sessions and other distributed presentations, often requires real-time streaming of the presentation materials. If the remote participants are few in number, real-time data streaming may provide an adequate quality of presentation. If, however, there are forty (40) or fifty (50) remote participants, real-time streaming poses several problems. As the number of premote participants increases, the required bandwidth also increases. Fifty (50) remote participants, for example, requires fifty (50) real-time data streams fanning out from the host computer. As the number of remote participants increases, the host computer is also taxed to manage communications with all the remote participants. All the participants to the conference, then, eventually suffer from network congestion and from degradation in processor performance. The quality of the conference is reduced, and all the participants to the conference have a less-than-desired experience. There is, accordingly, a need in the art for methods, systems, and products for improved conferencing among remote participants. There is also a need for reducing the bandwidth required when conferencing that does not rely upon real-time streaming.
BRIEF SUMMARY OF THE INVENTION
The aforementioned problems, and other problems, are reduced by this invention. This invention comprises methods, computer systems, computer programs, and computer program products that improve conferencing among remote participants. This invention does not require real-time streaming of presentation materials, so less bandwidth is required. This invention also includes features that help ensure all participants are synchronized to the host's presentation. As the conference host progress through the presentation, this invention tells the host what participants are lagging behind and/or jumping ahead in the materials. This invention can even prevent the host from advancing in the presentation materials until all participants have viewed/heard/loaded the current presentation. This invention, then, allows the host to have greater knowledge of the audience, thus allowing the host to tailor the pace of the conference to suit the participants.
This invention discloses methods, systems, and products for conducting a conference amongst remote participants. One of the embodiments describes a method for synchronizing presentation objects to conferencing participants. Prior to the conference a library of digital objects is communicated to each participant's communications device. Then, during the conference, a synchronization command is communicated from a host communications device to the participant's communications device. The synchronization command instructs the participant's communications device to present an object from the library of digital objects. A synchronization acknowledgment is then received from the participant's communications device, and the synchronization acknowledgment confirms a successful presentation of the object on the participant's communications device.
Other embodiments of this invention describe a system for conducting a conference amongst remote participants. The system comprises a Conferencing Module stored in a memory device, and a processor communicating with the memory device. The Conferencing Module communicates a library of digital objects prior to a conference. The library of digital objects communicates to a participant communications device via an Internet Protocol communications network. During the conference a synchronization command communicates from a host communications device to the participant communications device. The synchronization command commands the participant communications device to present an object from the library of digital objects. A synchronization acknowledgment is then received from the participant communications device, and the synchronization acknowledgment confirms a successful presentation of the object on the participant communications device.
Other embodiments of this invention describe a computer program product. A computer-readable medium stores a Conferencing Module. The Conferencing Module communicates a library of digital objects prior to a conference. The library of digital objects communicates to a participant communications device via an Internet Protocol communications network. During the conference a synchronization command communicates from a host communications device to the participant communications device. The synchronization command commands the participant communications device to present an object from the library of digital objects. A synchronization acknowledgment is received from the participant communications device, and the synchronization acknowledgment confirms a successful presentation of the object on the participant communications device.
Other systems, methods, and/or computer program products according to embodiments will be or become apparent to one with skill in the art upon review of the following drawings and detailed description. It is intended that all such additional systems, methods, and/or computer program products be included within this description, be within the scope of the present invention, and be protected by the accompanying claims.



BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
These and other features, aspects, and advantages of the embodiments of the present invention are better understood when the following Detailed Description of the Invention is read with reference to the accompanying drawings, wherein:
FIGS. 1 and 2 are schematics illustrating one or more embodiments of this invention;
FIG. 3 is a schematic illustrating more embodiments of this invention;
FIG. 4 is a block diagram showing a Conferencing Module 20 residing in a computer system 40, according to the embodiments of this invention;
FIGS. 5 and 6 are schematics illustrating other communications devices that operate with this invention; and
FIG. 7 is a flowchart illustrating a method of conducting a conference amongst remote participants, according to even more embodiments of this invention.



DETAILED DESCRIPTION OF THE INVENTION
This invention now will be described more fully hereinafter with reference to the accompanying drawings, in which exemplary embodiments are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. These embodiments are provided so that this disclosure will be thorough and complete and will fully convey the scope of the invention to those of ordinary skill in the art. Moreover, all statements herein reciting embodiments of the invention, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future (i.e., any elements developed that perform the same function, regardless of structure).
Thus, for example, it will be appreciated by those of ordinary skill in the art that the diagrams, schematics, illustrations, and the like represent conceptual views or processes illustrating systems and methods embodying this invention. The functions of the various elements shown in the figures may be provided through the use of dedicated hardware as well as hardware capable of executing associated software. Similarly, any switches shown in the figures are conceptual only. Their function may be carried out through the operation of program logic, through dedicated logic, through the interaction of program control and dedicated logic, or even manually, the particular technique being selectable by the entity implementing this invention. Those of ordinary skill in the art further understand that the exemplary hardware, software, processes, methods, and/or operating systems described herein are for illustrative purposes and, thus, are not intended to be limited to any particular named manufacturer.
This invention improves conferencing among remote participants. This invention does not require real-time streaming of presentation materials, so less bandwidth is required. This invention also includes features that help ensure all participants are synchronized to the host's presentation. As the conference host progress through the presentation, this invention tells the host what participants are lagging behind and/or jumping ahead in the materials. This invention can even prevent the host from advancing in the presentation materials until all participants have viewed/heard/loaded the current presentation. This invention, then, allows the host to have greater knowledge of the audience, thus allowing the host to tailor the pace of the conference to suit the participants.
FIG. 1 is a schematic illustrating this invention. The embodiments of this invention include a host-resident Conferencing Module 20. The Conferencing Module 20 comprises methods, systems, computer programs, and/or computer program products that conduct a conferencing session amongst participant communications devices. Although the Conferencing Module 20 operates within any communications device, FIG. 1 shows the Conferencing Module 20 operating within a host computer 22. Prior to a scheduled date and time for the conference, a library 24 of digital objects is communicated to each participant communications device 26. The library 24 of digital objects may be communicated/distributed via physical media, such as a CDROM, memory card, disk, or other memory storage device. The library 24 of digital objects may also be communicated via a distributed computing network 28, such as the Internet (sometimes alternatively known as the “World Wide Web”), an intranet, a local-area network (LAN), and/or a wide-area network (WAN). The library 24 of digital objects can be any audible and/or visual presentation materials. The library 24 of digital objects, for example, may include slides (such as MICROSOFT® POWERPOINT® file(s)), pictures, documents, audio, video, and/or any other computer file that can be stored on the participant communications device 26 (MICROSOFT® and POWERPOINT® are registered trademarks of Microsoft Corporation, One Microsoft Way, Redmond Wash. 98052-6399, (425) 882-8080).
This invention reduces bandwidth requirements. Because the library 24 of digital objects is transferred prior to the scheduled conference, this invention eliminates the often-cumbersome real-time distribution of presentation materials. This invention, instead, sends the presentation materials ahead of the schedule date and time of the conference. Each participant communications device 26, then, locally stores the presentation materials. High bandwidth, therefore, is not required to participate in the conference.
Synchronization commands are then issued during the conference. As the conference progresses, the Communications Module 20 communicates a synchronization command 30 from the host computer 22 to each participant communications device 26. The synchronization command 30 commands/instructs the participant communications device 26 to visually and/or audibly present an object from the library 24 of digital objects. That is, as the host computer 22 switches from one object to another object in the library 24 of digital objects, each synchronization command 30 instructs the participant communications device 26 to “follow along” and synchronize with the host computer 22.
FIG. 2 is a schematic illustrating more embodiments of this invention. When each participant communications device 26 receives the synchronization command (shown as reference numeral 30 in FIG. 1), the conference participants may also acknowledge synchronization. When the participant communications device 26 successfully presents the object from the library 24, the participant communications device 26 may return communicate a synchronization acknowledgment 32. The synchronization acknowledgment 32 communicates via the Internet Protocol communications network 28. The synchronization acknowledgment 32 confirms the successful presentation of the object on the participant communications device 26.
The synchronization acknowledgment 32 provides several advantages. The synchronization acknowledgment 32 helps ensure that all participants are synchronized before the host advances to the next object in the library 24 of digital objects. The Conferencing Module 20, for example, can use the synchronization acknowledgment 32 to force the host computer 22, and thus the host, to delay communication of any subsequent synchronization commands. The host is forced to wait until each participant communications device 26 return communicates the synchronization acknowledgment 32. That is, the host cannot jump to another object in the library 24 until all participants have successfully presented the present object. The Conferencing Module 20 can even visually and/or audibly inform the host of which participants are synchronized and of which participants are lagging.
The Conferencing Module 20 can also ignore the synchronization acknowledgment 32. The synchronization acknowledgment 32, as explained above, helps ensure that all participants are synchronized before the host advances to the next object in the library 24 of digital objects. The Conferencing Module 20, however, can be configured to ignore receipt of one or more synchronization acknowledgments 32. That is, the Conferencing Module 20 may allow the host computer, and thus the host, to advance to the next object in the library 24 without first receiving the synchronization acknowledgment 32 from one or more participant communications devices. This feature allows a particular participant to “jump” ahead, or lag behind, and view/hear any object from the library 24 of digital objects. The host might determine that some participants are more privileged than others, and these privileged participants need not be synchronized. If, for example, the conference is a training session, some portions of the training session might already be known to some participants, so these “privileged” participants are not required to synchronize. A participant might also be a high-ranking individual in an organization, so the host might configure that high-ranking participant as a “privileged” participant. However the “privileged” participants are selected, the Conferencing Module 20 can be configured to ignore receipt of the synchronization acknowledgment 32. The Conferencing Module 20 can be configured to permit the host computer to advance/return to any object in the library 24 without first receiving the synchronization acknowledgment 32 from a particular participant communications device.
FIG. 3 is a schematic illustrating another of the embodiments of this invention. Here the Conferencing Module 20 may send a synchronization override command 34. This synchronization override command 34 communicates from the host communications device 36 (such as the host computer 22) to the participant communications device 26 via the distributed computing network 28. The synchronization override command 34 allows the participant communications device 26 to present any object from the library 24 of digital objects. This feature again allows a particular participant to “jump” ahead, or lag behind, and view/hear any object from the library 24 of digital objects. The host might again determine that some participants are more privileged than others, and these privileged participants need not be synchronized. The synchronization override command 34 allows the participant to progress at their own pace. The participant may view/hear any object from the library 24 of digital objects and need not await each synchronization acknowledgment (shown as reference numeral 32 in FIG. 2).
FIG. 4 illustrates an alternative operating environment for this invention. FIG. 4 is a block diagram showing the Conferencing Module 20 residing in a computer system 40. The computer system 40 may be any computing system, such as the host computer (shown as reference numeral 22 in FIGS. 1-3), a laptop/desktop computer, a tablet computer, a server, and/or other computer systems. As FIG. 4 shows, the Conferencing Module 20 operates within a system memory device. The Conferencing Module 20, for example, is shown residing in a memory subsystem 42. The Conferencing Module 20, however, could also reside in flash memory 44 or a peripheral storage device 46. The computer system 40 also has one or more central processors 48 executing an operating system. The operating system, as is well known, has a set of instructions that control the internal functions of the computer system 40. A system bus 50 communicates signals, such as data signals, control signals, and address signals, between the central processor 48 and a system controller 52 (typically called a “Northbridge”). The system controller 52 provides a bridging function between the one or more central processors 48, a graphics subsystem 54, the memory subsystem 42, and a PCI (Peripheral Controller Interface) bus 56. The PCI bus 56 is controlled by a Peripheral Bus Controller 58. The Peripheral Bus Controller 58 (typically called a “Southbridge”) is an integrated circuit that serves as an input/output hub for various peripheral ports. These peripheral ports are shown including a keyboard port 60, a mouse port 62, a serial port 64 and/or a parallel port 66 for a video display unit, one or more external device ports 68, and networking ports 70 (such as SCSI or Ethernet). The Peripheral Bus Controller 58 also includes an audio subsystem 72. Those of ordinary skill in the art understand that the program, processes, methods, and systems described in this patent are not limited to any particular computer system or computer hardware. Other architectures are possible, and the Conferencing Module 20 can operate in any architecture.
Those of ordinary skill in the art also understand the central processor 48 is typically a microprocessor. Advanced Micro Devices, Inc., for example, manufactures a full line of ATHLONTM microprocessors (ATHLONTM is a trademark of Advanced Micro Devices, Inc., One AMD Place, P.O. Box 3453, Sunnyvale, Calif. 94088-3453, 408.732.2400, 800.538.8450, www.amd.com). The Intel Corporation also manufactures a family of X86 and P86 microprocessors (Intel Corporation, 2200 Mission College Blvd., Santa Clara, Calif. 95052-8119, 408.765.8080, www.intel.com). Other manufacturers also offer microprocessors. Such other manufacturers include Motorola, Inc. (1303 East Algonquin Road, P.O. Box A3309 Schaumburg, Ill. 60196, www.Motorola.com), International Business Machines Corp. (New Orchard Road, Armonk, N.Y. 10504, (914) 499-1900, www.ibm.com), Sun Microsystems, Inc. (4150 Network Circle, Santa Clara Calif. 95054, www.sun.com), and Transmeta Corp. (3940 Freedom Circle, Santa Clara, Calif. 95054, www.transmeta.com). Those skilled in the art further understand that the program, processes, methods, and systems described in this patent are not limited to any particular manufacturer's central processor.
The preferred operating system is the UNIX® operating system (UNIX® is a registered trademark of the Open Source Group, www.opensource.org). Other UNIX-based operating systems, however, are also suitable, such as LINUX® or a RED HAT® LINUX-based system (LINUX® is a registered trademark of Linus Torvalds, and RED HAT® is a registered trademark of Red Hat, Inc., Research Triangle Park, North Carolina, 1-888-733-4281, www.redhat.com). Other operating systems, however, are also suitable. Such other operating systems would include a WINDOWS-based operating system (WINDOWS® is a registered trademark of Microsoft Corporation, One Microsoft Way, Redmond Wash. 98052-6399, 425.882.8080, www.Microsoft.com). and Mac® OS (Mac® is a registered trademark of Apple Computer, Inc., 1 Infinite Loop, Cupertino, Calif. 95014, 408.996.1010, www.apple.com). Those of ordinary skill in the art again understand that the program, processes, methods, and systems described in this patent are not limited to any particular operating system.
The system memory device (shown as memory subsystem 42, flash memory 44, or peripheral storage device 46) may also contain an application program. The application program cooperates with the operating system and with a video display unit (via the serial port 64 and/or the parallel port 66) to provide a Graphical User Interface (GUI). The Graphical User Interface typically includes a combination of signals communicated along the keyboard port 60 and the mouse port 62. The Graphical User Interface provides a convenient visual and/or audible interface with a user of the computer system 40.
FIGS. 5 and 6 are schematics illustrating other communications devices that operate with this invention. FIG. 5 illustrates various host communications devices 74, while FIG. 5 illustrates various participant communications device 26. As FIG. 5 shows, the Communications Module 20 may operate in a personal digital assistant (PDA) 76, a Global Positioning System (GPS) device 78, an interactive television 80, an Internet Protocol (IP) phone 82, a pager 84, a cellular/satellite phone 86, or any computer and/or communications device utilizing a digital signal processor (DSP) 88. FIG. 6, likewise, illustrates that the participant communications device 26 may include the personal digital assistant (PDA) 76, the Global Positioning System (GPS) device 78, the interactive television 80, the Internet Protocol (IP) phone 82, the pager 84, the cellular/satellite phone 86, or any computer and/or communications device utilizing the digital signal processor (DSP) 88. The host communications device 74, and/or the participant communications device 26, may also include addressable watches, radios, vehicle electronics, clocks, printers, gateways, and other apparatuses and systems.
FIG. 7 is a flowchart illustrating a method of conducting a conference amongst remote participants. Prior to the conference, a list of participant communications devices is accessed (Block 90) and a library of digital objects is communicated to the participant communications devices (Block 92). Then, during the conference, a synchronization command is communicated from a host communications device to the participant communications device (Block 94). The synchronization command commands the participant communications device to present an object from the library of digital objects. A synchronization acknowledgment is then received from the participant communications device (Block 96). The synchronization acknowledgment confirms a successful presentation of the object on the participant communications device. The method may also delay communication of a subsequent synchronization command until the synchronization acknowledgment is received from the participant communications device (Block 98). The method may also ignore receipt of the synchronization acknowledgment from a particular participant communications device (Block 100). When receipt of the synchronization acknowledgment is ignored, a particular participant communications device is allowed to present any object from the library of digital objects. A synchronization override command may also be communicated (Block 102). The synchronization override command allows the participant communications device to present any object from the library of digital objects.
The Conferencing Module may be physically embodied on or in a computer-readable medium. This computer-readable medium may include CD-ROM, DVD, tape, cassette, floppy disk, memory card, and large-capacity disk (such as IOMEGA®, ZIP®, JAZZ®, and other large-capacity memory products (IOMEGA®, ZIP®, and JAZZ® are registered trademarks of Iomega Corporation, 1821 W. Iomega Way, Roy, Utah 84067, 801.332.1000, www.iomega.com). This computer-readable medium, or media, could be distributed to end-users, licensees, and assignees. These types of computer-readable media, and other types not mention here but considered within the scope of the present invention, allow the Conferencing Module to be easily disseminated. A computer program product for conducting a conference amongst remote participants includes the Conferencing Module stored on the computer-readable medium. The Conferencing Module communicates a library of digital objects prior to a conference. The library of digital objects communicates to a participant communications device. During the conference a synchronization command is communicated from a host communications device to the participant communications device via an Internet Protocol communications network. The synchronization command commands the participant communications device to present an object from the library of digital objects. A synchronization acknowledgment is received from the participant communications device, and the synchronization acknowledgment confirms a successful presentation of the object on the participant communications device.
The Conferencing Module may also be physically embodied on or in any addressable (e.g., HTTP, I.E.E.E. 802.11, Wireless Application Protocol (WAP)) wireline or wireless device capable of presenting an IP address. Examples could include a computer, a wireless personal digital assistant (PDA), an Internet Protocol mobile phone, or a wireless pager.
While the present invention has been described with respect to various features, aspects, and embodiments, those skilled and unskilled in the art will recognize the invention is not so limited. Other variations, modifications, and alternative embodiments may be made without departing from the spirit and scope of the present invention.

## Claims

1. A method of conducting a conference amongst remote participants, comprising:
communicating a library of digital objects to a participant communications device;
communicating a synchronization command from a host communications device to the participant communications device via a distributed computing network, the synchronization command commanding the participant communications device to present an object from the library of digital objects;
receiving, at the host communications device, a synchronization acknowledgment from the participant communications device, the synchronization acknowledgment confirming a successful presentation of the object on the participant communications device;
sending a synchronization override command from the host communications device to the participant communications device that allows the participant communications device to present any object from the library of digital objects;
forcing the host communications device to await receipt of the synchronization acknowledgment from the participant communications device, thus preventing the host communications device from selecting another object in the library of digital objects; and
presenting information describing conference participants that are synchronized to the host communications device and describing other conference participants that lag the host communications device.

2. The method according to claim 1, further comprising delaying communication of a subsequent synchronization command until the synchronization acknowledgment is received from the participant communications device.

3. The method according to claim 1, further comprising ignoring receipt of the synchronization acknowledgment from the participant communications device, thus allowing the participant communications device to present any object from the library of digital objects.

4. The method according to claim 1, further comprising ignoring receipt of the synchronization acknowledgment, thus allowing the participant communications device to present any object from the library of digital objects.

5. The method according to claim 1, further comprising accessing a list of participant communications devices.

6. The method according to claim 5, further comprising communicating the library of digital objects to each participant communications device in the list.

7. The method according to claim 1, wherein communicating the library of digital objects is performed prior to the conference.

8. The method according to claim 1, wherein communicating the synchronization command is performed during the conference.

9. A computer program product comprising a computer readable storage medium storing processor executable instructions for performing a method, the method comprising:
communicating a library of digital objects to a participant communications device;
communicating a synchronization command from a host communications device to the participant communications device via a distributed computing network, the synchronization command commanding the participant communications device to present an object from the library of digital objects;
receiving, at the host communications device, a synchronization acknowledgment from the participant communications device, the synchronization acknowledgment confirming a successful presentation of the object on the participant communications device;
sending a synchronization override command from the host communications device to the participant communications device that allows the participant communications device to present any object from the library of digital objects;
forcing the host communications device to await receipt of the synchronization acknowledgment from the participant communications device, thus preventing the host communications device from selecting another object in the library of digital objects; and
presenting information describing conference participants that are synchronized to the host communications device and describing other conference participants that lag the host communications device.

10. The computer program product according to claim 9, further comprising instructions for delaying communication of a subsequent synchronization command until the synchronization acknowledgment is received from the participant communications device.

11. The computer program product according to claim 9, further comprising instructions for ignoring receipt of the synchronization acknowledgment from the participant communications device, thus allowing the participant communications device to present any object from the library of digital objects.

12. A system, comprising:
a processor executing code stored in memory that causes the processor to:
communicate a library of digital objects to a participant communications device;
communicate a synchronization command from a host communications device to the participant communications device via a distributed computing network, the synchronization command commanding the participant communications device to present an object from the library of digital objects;
receive, at the host communications device, a synchronization acknowledgment from the participant communications device, the synchronization acknowledgment confirming a successful presentation of the object on the participant communications device;
present information describing conference participants that are synchronized to the host communications device and describing other conference participants that lag the host communications device;
force the host communications device to await receipt of the synchronization acknowledgment from the participant communications device, thus preventing the host communications device from selecting another object in the library of digital objects; and
send a synchronization override command from the host communications device to the participant communications device that allows the participant communications device to present any object from the library of digital objects.

13. The system according to claim 12, wherein the code further causes the processor to communicate the library of digital objects prior to the conference.

14. The system according to claim 12, wherein the code further causes the processor to communicate the synchronization command during the conference.

15. The system according to claim 12, wherein the code further causes the processor to delay communication of a subsequent synchronization command until the synchronization acknowledgment is received from the participant communications device.

16. The system according to claim 12, wherein the code further causes the processor to ignore receipt of the synchronization acknowledgment, thus allowing the participant communications device to present any object from the library of digital objects.

17. The system according to claim 12, wherein the code further causes the processor to access a list of participant communications devices.

18. The system according to claim 17, wherein the code further causes the processor to communicate the library of digital objects to each participant communications device in the list.