Rich Multi-Media Format For Use in a Collaborative Computing System
A system, method, and article of manufacture that allow a document containing custom objects to be shared in a distributed collaborative computer system. This is accomplished by allowing custom objects to be embedded in a document. When the document is to be shared, the document with custom objects is converted to a Rich Multi-Media (RMM) format. Furthermore, the converted document may be shared during a collaborative session among multiple computers. Alternatively, the converted document may be viewed by a user independent of a collaborative session.
This application is a divisional of application Ser. No. 10/104,170 filed on Mar. 21, 2002, all of which is expressly incorporated herein by reference.
An Appendix containing a computer program listing is submitted on a compact disk, which is herein incorporated by reference in its entirety. The total number of compact discs including duplicates is two. Appendix A, which is part of the present specification, contains a list of the files contained on the compact disk. These listings contain material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the patent and trademark office patent file or records, but otherwise reserves all copyright rights whatsoever.
BACKGROUND OF THE INVENTION1. Field of the Invention
The present invention relates generally to collaborative computing systems and, more particularly, to embedding different types of files into a document, converting the document to a Rich Multi-Media (RMM) format, and sharing the converted document in a collaborative computing system.
2. Related Art
Traditional collaborative computing tools allow computer users at different locations to communicate via a computer network and share documents or applications stored and/or executed on one of the user's computers. While both peer-to-peer and client-server communication models have been used in the past, web-based collaborative tools generally employ a client-server model.
For example, client-server application sharing (also discussed in the context of “distributed computing”) is described in U.S. Pat. No. 5,434,852 “Distributed Processing Architecture for Control of Broadband and Narrowband Communication Networks;” U.S. Pat. No. 5,887,170 “System for Classifying and Sending Selective Requests;” and U.S. Pat. No. 6,038,593 “Remote Application Control for Low Bandwidth Application Sharing,” all incorporated herein by reference in their entireties. Other group communication techniques are described by Ulrick Hall and Franz J. Hauck, “Promondia: A Java-Based Framework for Real-time Group Communication in the Web,” Proceedings of Sixth International World Wide Web Conference (Apr. 7-11, 1997); Lane Boyd, “Taking Collaboration Into Orbit,” Computer Graphics World, Vol. 21, No. 9, p. 36 (September 1998); and Eric Ly, “Distributed Java Applets for Project Management on the Web,” IEEE Internet Computing Online, Vol. 1, No. 3 (May/June 1997), all incorporated herein by reference in their entireties.
International Telecommunications Union (ITU) Standard T.120 is a family of open standards that provides both communications and applications protocols to support real-time multipoint data communications for collaboration and conferencing, among other uses. This standard is outlined in “A Primer on the T.120 Series Standard” by DataBeam Corp. (available at http://mail.symuli.com/t120primer/t120primer-.html), incorporated herein by reference in its entirety.
Traditional collaborative tools, however, are limited in the types of documents that they allow to be shared. For example, a Word® document may be shared, but the document typically only contains text. That is, traditional collaborative tools do not allow sharing of documents with embedded custom objects. Accordingly, there is a need for an improved collaborative computing system.
SUMMARY OF THE INVENTIONThe system, method, and article of manufacture of the present invention provide a distributed collaborative computer system that allows a document containing custom objects to be shared. This is accomplished by providing software to allow custom objects to be embedded in a document. When the document is to be shared, provided software converts the document to a Rich Multi-Media (RMM) format. With use of the provided software, the converted document may then be shared during a collaborative session. As a result, the system, method, and article of manufacture of the present invention allow a presenter at one computer to create a document with different types of embedded custom objects. During a collaborative session, the presenter controls the viewing of the document, and users (e.g., attendees) at other computers view the document in synch with the presenter. The Rich Multi-Media format provided by the present invention enables the embedded custom objects to be viewed at the users' computers. Furthermore, the converted document may be viewed by a user independent of a collaborative session.
BRIEF DESCRIPTION OF THE DRAWINGSThe present disclosure may be better understood and its numerous features and advantages made apparent to those skilled in the art by referencing the accompanying drawings.
The use of the same reference symbols in different drawings indicates similar or identical items.
DETAILED DESCRIPTION OF THE INVENTIONEmbodiments of the present invention provide the ability to embed custom objects into a document and convert the document into a Rich Multi-Media (RMM) format so that it may be shared during an on-line meeting (i.e., a collaborative session). Various types of custom objects, such as multimedia objects, may be embedded in the document. The document is created with an application program, such as Microsoft's PowerPoint®). Embodiments of the invention provide the Rich Multi-Media format that is used for conversion of the document into a form that may be shared during a meeting. Additionally, the document with embedded custom objects may be viewed by a user independent of an on-line meeting.
In some embodiments of the invention, presenter client computer 110 (whose user will be a presenter at a meeting) establishes a connection to conferencing server computer 140 over computer network 130. Each attendee client computer 120n (whose users will join the meeting presented by presenter client computer 110) establishes a connection to conferencing server computer 140 over computer network 130. Additionally, each client computer 110 and 120n establish connections to streaming server computer 150 to obtain data during the meeting. In some embodiments, a host schedules a meeting to be presented by a presenter. The host and presenter may be the same user or may be different users. In some embodiments, the host, the presenter at presenter client computer 110, and users at attendee client computers 120n are referred to as attendees as all of them attend the meeting.
Details of distributed collaborative computing system 100 are further described in the following United States patent applications and patents, each of which is incorporated herein by reference in its entirety:
-
- “System and Method for Accessing a Target Computer from a Remote Location Using a Remote Computer,” co-pending and commonly assigned application Ser. No. 10/001,435, filed on Oct. 31, 2001;
- “Systems and Methods for Establishing Quasi-Persistent HTTP Connections,” co-pending and commonly assigned application Ser. No. 09/963,216, filed on Sep. 25, 2001;
- “Application Based Screen Sampling,” co-pending and commonly assigned application Ser. No. 09/835,079, filed on Apr. 13, 2001;
- “Sharing OpenGL Applications Using Application Based Screen Sampling,” co-pending and commonly assigned application Ser. No. 09/835,116, filed on Apr. 13, 2001;
- “Sharing Direct draw Applications Using Application Based Screen Sampling,” co-pending and commonly assigned application Ser. No. 09/835,086, filed on Apr. 13, 2001;
- “Distributed Network System Architecture For Collaborative Computing,” co-pending and commonly-assigned application Ser. No. 09/751,424, filed Dec. 29, 2000;
- “Fault-Tolerant Distributed System For Collaborative Computing,” co-pending and commonly-assigned application Ser. No. 09/751,807, filed Dec. 29, 2000;
- “Scalable Distributed System For Collaborative Computing,” co-pending and commonly-assigned application Ser. No. 09/751,548, filed Dec. 29, 2000;
- “Distributed Meeting Management,” co-pending and commonly-assigned application Ser. No. 09/751,595, filed Dec. 29, 2000;
- “Fault Tolerant Server Architecture For Collaborative Computing,” co-pending and commonly-assigned application Ser. No. 09/752,376, filed Dec. 29, 2000;
- “Distributed Application Sharing,” co-pending and commonly-assigned application Ser. No. 09/751,806, filed Dec. 29, 2000;
- “Distributed Document Sharing,” co-pending and commonly-assigned application Ser. No. 09/753,193, filed Dec. 29, 2000;
- “Secure Communications System For Collaborative Computing,” co-pending and commonly-assigned application Ser. No. 09/752,284, filed Dec. 29, 2000;
- “Fault Tolerant Server For Collaborative Computing,” co-pending and commonly-assigned application Ser. No. 09/751,519, filed Dec. 29, 2000;
- “Quality Of Service Maintenance For Distributed Collaborative Computing,” co-pending and commonly-assigned application Ser. No. 09/752,377, filed Dec. 29, 2000;
- “Instant Document Sharing,” co-pending and commonly-assigned application Ser. No. 09/442,424, filed Nov. 17, 1999;
- “Instant Sharing of Documents in a Viewer Server,” co-pending and commonly-assigned application for U.S. patent Ser. No. 09/471,938, filed Dec. 23, 1999;
- “Viewer Document Serving,” co-pending and commonly-assigned application Ser. No. 09/591,377, filed Jun. 9, 2000;
- “Instantaneous Viewer Control of an Unattended Server,” co-pending and commonly-assigned application Ser. No. 09/515,684, filed Feb. 29, 2000;
- “Remote Document Serving,” co-pending and commonly-assigned application Ser. No. 09/471,938, filed on Dec. 23, 1999;
- “Instantaneous Remote Control of an Unattended Server,” co-pending and commonly-assigned application Ser. No. 09/515,684;
- “Method for Establishing a Communication Connection Between Two or More Users Via a Network of Interconnected Computers,” co-pending and commonly-assigned application Ser. No. 09/195,801, filed on May 12, 2000;
- “Emulating a Persistent Connection Using HTTP,” co-pending and commonly-assigned application Ser. No. 09/449,011, filed on Nov. 24, 1999;
- “Method of Transferring Data at Adjustable Levels of Priorities to Provide Optimum Response to User Demands,” U.S. Pat. No. 5,623,603;
- “Method to Provide for Virtual Screen Overlay,” U.S. Pat. No. 5,577,188;
- “Collaborative Web Browser,” U.S. Pat. No. 5,944,791; and
- “Method for Creating Peer-to-Peer Connections Over an Interconnected Network to Facilitate Conferencing Among Users,” U.S. Pat. No. 6,167,432.
Insertion software 200 allows custom objects to be embedded into a document prepared with authoring software 206. Conversion software 202 performs conversion of the document to a Rich Multi-Media format provided by some embodiments of the invention. Viewer software 204 enables viewing of a document with embedded custom objects, either while participating in a meeting (i.e., while “on-line”) or outside of a meeting (i.e., while “off-line”). In some embodiments, insertion software 200 is a plug-in that is added to authoring software 206 (e.g., Microsoft's PowerPoint® or Word®). In some embodiments, conversion software 202 and viewer software 204 are plug-ins that are added to a web browser (e.g., Microsoft's Internet Explorer®).
In some embodiments, insertion software 200, conversion software 202, and viewer software 204 may each be separate computer programs or may be combined with each other and/or with other software. For example, in some embodiments, insertion software 200, conversion software 202, and viewer software 204 are separate computer programs. In some embodiments, insertion software 200, conversion software 202, and viewer software 204 are combined to form a single computer program. In some embodiments, insertion software 200, conversion software 202, and viewer software 204 may be combined in alternate ways (e.g., conversion software 202 and viewer software 204 may be combined into one computer program, while insertion software 200 is a separate computer program) or may be combined with other software (e.g., insertion software 200 may be combined with authoring software 206 to form a simple computer program).
Conferencing server computer 140 and streaming server computer 150 maybe any special or general purpose computer suitable for maintaining a website and/or streaming data, such as a Pentium™-based computer, available from a variety of third parties, an UltraSparc™ workstation, available from Sun Microsystems, Inc. of Mountain View, Calif., an RS6000 workstation, available from IBM of New York, etc.
Client computers 110 and 120n may be any special or general purpose computer suitable for accessing a website over the Internet, such as any a Pentium™-based computer, available from a variety of third parties, a Macintosh computer, available from Apple Computer, Inc. of Cupertino, Calif., a handheld device or appliance, available from a variety of third parties, etc.
Operating systems 210, 226, and 232 are any suitable operating system for client computers 110 and 120n and server computers 140 and 150, such as Windows® 98, Windows® NT 4.0, Windows® 2000, or Windows® XT, available from Microsoft Corp. of Redmond, Wash., Mac® OS X, available from Apple Computer, Inc., any version of the Unix® operating system, including Linux.
In some embodiments, the custom objects in the document are not viewable by attendee client computers 120n if the document is not converted into the Rich Multi-Media format first. Then, viewer software 204 at presenter client computer 110 and attendee client computers 120n enables viewing of the converted document under direction of a user (e.g., presenter) at presenter client computer 110. In particular, viewer software 204 is able to correctly render (e.g., play or display) the custom objects at each attendee client computer 110 and 120n.
In particular, for some embodiments, insertion software 200 is designed to be incorporated into authoring software, such as PowerPoint® to support the authoring of the document. In some embodiments, insertion software 200 is a plug-in that is added to PowerPoint® to provide additional functionality.
A user can use insertion software 200 to import different media files and insert them into a PowerPoint® presentation as custom objects. PowerPoint® supports custom types, and insertion software 200 takes advantage of this to import one or more objects, such as a meeting recording object, an audio object, a video object, a Flash™ movie object, or a 3D model object. When the user saves the presentation, the custom objects are embedded into the presentation by insertion software 200.
Then, embodiments of the invention allow a user to open or share the presentation with other users during an on-line meeting or to view the presentation independent of a meeting. In some embodiments, users at client computers 110 and 120n access a web site hosted by conferencing server 140, register to participate in a meeting, and download the plug-in for conversion software 202 and viewer software 204. An installation program at client computer 110 and 120n is used to install the plug-in. At the time of registration, in some embodiments, any documents to be shared during the meeting are downloaded to client computers 110 and 120n.
Then, during an on-line meeting, the invention provides the ability to synchronize playback of media files across client computers 110 and 120n. In embodiments in which the embedded custom objects are already loaded at each client computer 120n, there is no need to send large amounts of data to attendee client computers 120n during playback.
In stage 420, authoring software (e.g., PowerPoint®) is opened for creating a document with insertion software 200. After installation, when, for example, the PowerPoint® application is opened, the PowerPoint® window includes an Insertion menu 500 (labeled as “WebEx®” in some embodiments) in accordance with some embodiments of the invention. The sub-menus of Insertion menu 500 include:
In some embodiments, insertion software 200 provides users the ability to insert other custom objects and code for rendering the custom objects through, for example, an application programming interface (API). Each type of custom object has its own settings that can control the playback of the custom object. In some embodiments, the file formats listed in Table 1 are supported by the Rich Multi-Media format of the invention.
In some embodiments, a meeting recording is a recording of a meeting and is a type of meeting recording object. For meeting recordings and 3D models, there is built-in support for playback in viewer software 204. For audio files and video files, viewer software 204 relies on the playback functionalities provided by the corresponding component application (e.g., media player). For Flash™ movies, viewer software 204 relies on the functionalities of a Flash™ player. For all media types, the user interface of the playback control is provided by viewer software 204, even when component applications are called to render the objects. Other media types may be supported in other embodiments.
The tools available in the menu of
In stage 430, one or more custom objects are inserted into a document using insertion software 200. When creating a document, if the user selects “Insert object” (e.g., Insert Meeting Recording) from either Insertion menu 500 or a toolbar, an Insert Meeting Recording File Open dialog box 600 (
If a user has inserted a meeting recording object, a Meeting Recording Properties dialog box 700 (
Object information 710 includes a title box 712. In some embodiments, a default title is given to each object on its creation, and the user may use the default title to identify the object or may choose to modify the default title. If the media object already has a title or name embedded in it, this title is used as the default title. Otherwise, the filename without the extension may be used as the default title (e.g., file name “sept.wrf” will become default title “sept”). The title field does not need to be unique among objects A duration field 714 indicates the exact duration of the playback in the following format: h hours, mm minutes, ss seconds (where h is number of hours, mm is number of minutes, and ss is number of seconds). A size field 716 indicates the size of the object inside the presentation expressed in kilobytes (KB).
If a “start playback automatically on slide display” option 722 is checked, the playback will start once a user enters the slide containing the object. If option 722 is not checked, the user has to manually select play. If a full-screen playback option 724 is checked, the display switches to full-screen mode once the playback starts (either automatically or manually). If option 724 is not checked, the user has to manually select the full-screen button. A full-screen typically has some menu bars and/or toolbars hidden so that a larger portion of a document may be viewed on a computer screen.
Selecting an OK button 726 confirms the currently selected properties. Also, OK button 726 is selected by default, so it can also be selected by simply pressing the Enter key on a keyboard. Selecting a Cancel button 728 discards any changes made in properties dialog box 700 (i.e., restores the default settings) but does not delete the inserted object from the document.
When the user has completed editing object properties, the object appears in the PowerPoint® presentation.
Insertion software 200 enables custom objects to be handled in accordance with the convention of manipulating objects in a PowerPoint® presentation. For example, there are 8 square handles around the custom object. Users can grab the handles to resize the custom object. Users can move the custom object around by placing a cursor on top of the custom object and dragging the object. Users can delete the custom object by hitting the Del key on a keyboard or by selecting delete from the PowerPoint® Edit menu. Also, selecting a custom object (e.g., by double-clicking on the custom object) switches the PowerPoint® document into object editing mode.
When the custom object is selected (e.g., by double-clicking on the custom object), the information panel changes to a control panel 1000, allowing a user to playback the meeting recording object.
Table 3 describes control panel 1000 of the meeting recording object in edit mode with reference to
When the user selects “Slide Show” in PowerPoint®, the presentation is displayed. The appearance of the object is still the same as in
When the user clicks the Full-screen button on the control panel of the object, the object occupies the entire screen. As a result, the control panel is not shown in this mode, to allow maximum space for viewing the content. Users can still enter control commands, however, via the keyboard. The following are the keyboard commands available in full-screen mode:
-
- Ctrl-P: Play/Pause (toggle)
- Enter: Play/Pause (toggle)
- Ctrl-S: Stop
- Esc: Quit full-screen mode
The meeting recording object can appear with viewer software 204 if the user opens or shares a presentation that contains a custom object. For the host, the custom object behaves the same way as in slide-show mode. For attendees, all controls are disabled except Properties, the volume slider, and mute. In the Properties dialog box, all options appear dimmed (e.g., grayed or shaded) and may not be modified by the attendees.
When the user selects “Insert Audio Object . . . ” from either Insertion menu 500 or a toolbar, a standard File Open dialog box, similar to that illustrated
After the user selects a valid media file and closes the File Open dialog box, the object is inserted into the presentation. At this time, an Audio Object Properties dialog box 1100 appears to allow the user to change any settings or properties for the newly inserted object.
-
- Type of audio format (e.g., AU, WAV, AIF, MP2 or MP3)
- Mono or Stereo
- Sampling rate (e.g., 44100 HZ)
- Bit-rate (for MP3 or other applicable format) (e.g., 127 kBit/s)
After the user selects a valid file and closes dialog box 1100, insertion software 200 checks the user's system for the appropriate resources (e.g., component applications) used for playback of the audio object. In some embodiments, a media player is used for the playback of audio files. If a media player is not found insertion software 200 displays a message box on the screen, warning the user that although the media object is inserted into the presentation, the user is not able to play it back at that point.
When the user has completed editing object properties, the object appears in the PowerPoint® presentation. Manipulating audio objects is similar to manipulating meeting recording objects, except that Audio objects are not resizable (i.e., users cannot resize the object by grabbing its handles).
If the user selects (e.g., by double-clicking) the audio object, PowerPoint™ switches to object editing mode, and
In slide-show mode, if a user clicks the Properties button on the control panel, the Properties dialog box is illustrated, but the user may not edit properties.
An audio object may be viewed with viewer software 204 if the user opens or shares a presentation that contains that object. In some embodiments, for the host, the object behaves the same way as in slide-show mode, while for attendees, all controls are disabled except Properties, the volume slider, and mute. In the Properties dialog box, all options appear dimmed and may not be modified by the attendees.
When the user selects “Insert Video Object . . . ” from either Insertion menu 500 or a toolbar, a standard File Open dialog box, similar to that illustrated in
After the user selects a valid file and closes the File Open dialog box, insertion software 200 checks the user's system for the appropriate resources (e.g., a component application) used for playback of the media. A media player is used for the playback of video files. If a media player is not found, insertion software 200 displays a message box on the screen, warning the user that although the media object is inserted into the presentation, the user is not able to play it back at that point.
After the user has selected a valid media file and closed the dialog box, the object is inserted into the presentation. At this point, a Video Object Properties dialog box 1400 (
The Video Object Properties dialog box 1400 includes object information 1410 and settings 1420. The object information 1410 includes a title box 1412, a format field 1414 (which indicates the audio format of the object), a duration field 1416, and a size field 1418. In some embodiments, the names listed in Table 5 are used for each of the video object types:
When the user has completed editing object properties, the object appears in the PowerPoint® presentation. Manipulation of a video object is similar to the manipulation of a meeting recording object, except that video objects stretch their content, rather than clipping the content.
In some embodiments, the resize operation is constrained so that only proportional resize is allowed, and the initial size of the object is the same as the size defined in the video file. However, if the size of the object is larger than the size that the presentation allows, the size of the object is set to the maximum size allowed by the presentation.
In slide-show mode, if a user clicks the Properties button on the control panel, the Properties dialog box is illustrated, but the user may not edit properties.
When the user clicks the Full-screen button on the control panel of the object, the object is displayed in full-screen mode. The control panel is not shown in this mode. In this mode, users can have maximum space for viewing the content. The following are the keyboard commands available in full-screen mode:
-
- Ctrl-P: Play/Pause (toggle)
- Enter: Play/Pause (toggle)
- Ctrl-S: Stop
- Esc: Quit full-screen mode
In some embodiments, if the user does not have a media player installed, or for any reason the system has no video capability to play the video file, then the object is not played.
A video object may be viewed with viewer software 204 if the user opens or shares a presentation that contains that object. For the host, the video object behaves the same way as in slide-show mode. For attendees, all controls are disabled except Properties, the volume slider, and mute, and in the Properties dialog box, all options appear dimmed and may not be modified by the attendees.
When the user selects “Insert Flash Movie . . . ” from either Insertion menu 500 or a toolbar, a standard File Open dialog box, similar to that illustrated in
After the user has selects a valid media file and closes the File Open dialog box, the Flash™ movie object is inserted into the presentation. At this point, a Flash Movie Properties dialog box 1700 appears to allow the user to change any settings or properties for the newly inserted object (
When the user has completed editing object properties, the Flash™ movie object appears in the PowerPoint® presentation. Manipulation of a Flash™ movie object is analogous to manipulation of a meeting recording object, except that the Flash™ movie object stretches its content, rather than clipping the content.
The object consists of two parts: an upper part 1810 displays the content of the movie, and a lower information panel 1820 provides information about the movie. The upper part 1810 displays a frame of the movie in object editing mode. The entire object has a 3D outline, and lower information panel 1820 has a 3D outline. Lower information panel 1820 consists of the elements listed in Table 7:
As a Flash™ movie object has its own set of controls, it may not have the lower control panel that appears in other types of custom objects. In some embodiments, Flash™ movie objects are started automatically.
A Flash™ movie object in slide show mode is the same as in object editing mode, except that if the user does not have a Flash™ player installed to play the movie, then the Flash™ movie object does not appear in slide show mode.
A Flash™ movie object may be rendered with viewer software 204 if the user opens or shares a presentation that contains that object. For a host, the object behaves the same way as in slide-show mode. For attendees, right clicking the Flash™ movie object does not reveal a context menu. If a Flash™ player is not installed on the user's computer to play the movie, then the object does not appear when the document containing the Flash™ movie object is viewed with viewer software 204.
When the user selects “Insert 3D Model” from either Insertion menu 500 or a toolbar, a standard File Open dialog box, similar to that illustrated in
After the user selects a valid media file and closes the File Open dialog box, the object is inserted into the presentation. At this point, a 3D Model Properties dialog box 2000 (
When the user has completed editing object properties, the object appears in the PowerPoint® presentation. Manipulation of a 3D model object is similar to manipulation of a meeting recording object, except that a 3D model object stretches its content, rather than clipping the content.
If the user selects (e.g., by double-clicking) the 3D model object, PowerPoint® switches to object editing mode. The appearance of the object in PowerPoint® changes in object editing mode, as is illustrated in
In slide-show mode, if the user clicks the Properties button on the control panel, the Properties dialog box is displayed, but properties may not be edited.
When the user clicks the Full-screen button on the control panel of the object, the object is displayed in full-screen mode. The control panel is not present in this mode. In this mode, users can have maximum space for viewing the content. The following are the keyboard commands available in full-screen mode:
-
- Ctrl-P: Play/Pause (toggle)
- Enter: Play/Pause (toggle)
- Ctrl-S: Stop
- Esc: Quit full-screen mode
A 3D model object may be viewed with viewer software 204 if the user opens or shares a presentation that contains that object. For a host, the object behaves the same way as in slide-show mode. For attendees, all controls are disabled, except the Properties button. In the Properties dialog box, all options appear dimmed and may not be modified by the attendees.
Viewer software 204 has native support for some of the embedded objects such as WRF and IGS (3D) files. When such objects are shown, viewer software 204 renders the files and provides the appropriate controls to manipulate the objects. In other cases, such as audio and video files, viewer software 204 invokes the appropriate component application such as a media player on the attendee's computer to play the embedded object on the attendee's screen.
After authoring the presentation, a user can click the Slide Show button, or select Slide Show from the View menu in PowerPoint® to view the final presentation. The presentation will be displayed full screen in slide show mode.
After a document with embedded custom objects is created, the document is converted to a Rich Multi-Media format before it is shared during an online meeting or viewed by a user independent of the meeting. The Rich Multi-Media format is a document format in accordance to some embodiments of the present invention that allows a document with embedded custom (e.g., media) objects to be viewed by a user other than the author of the document. In some embodiments, the Rich Multi-Media is applied to a Microsoft® PowerPoint® document. In other embodiments, the Rich Multi-Media format may be applied to other documents, such as Microsoft® & Word documents or Corel® WordPerfect® documents.
A document that is converted to the Rich Multi-Media format may be sent to another user's computer (e.g., via e-mail or downloading) for viewing by that user.
After a document is opened by a presenter at presenter client computer 110 (stage 2310) conversion software 202 scans a portion of a document (e.g., a slide in a PowerPoint® presentation) for one or more custom objects. In stage 2320, conversion software 202 obtains information for each custom object. The information may include, for example, an object identifier and/or name for each custom object, the size of the custom object, the position of the custom object on the portion of the document, and the class type of the custom object. In some embodiments, each type of custom object has the same class structure (e.g., video objects have one class structure, while meeting recording objects have a different class structure).
In stage 2330, conversion software 202 inserts the information for each custom object followed by the custom object into a Rich Multi-Media format document. The custom objects may be embedded in the document or linked (e.g., via uniform resource locators (URLs) that point to the custom objects).
In stage 2340, conversion software 202 scans the same portion of the document (e.g., the same slide in a PowerPoint® presentation) for non-custom objects (e.g., text). In stage 2350, conversion software 202 obtains information for each non-custom object. The information may include, for example, the size of the non-custom object and the position of the non-custom object on the portion of the document. In stage 2360, conversion software 202 inserts the information for each non-custom object followed by the non-custom object into a Rich Multi-Media format document.
In some embodiments, when a document containing two custom objects and one non-custom objects is converted, the resulting Rich Multi-Media format document may have the following format:
-
- <information about custom object><custom object>
- <information about custom object><custom object>
- <information about non-custom object><non-custom object>
When viewer software 204 renders the Rich Multi-Media format document, viewer software 204 uses the positional information about each object to place the object on a portion of a document. Viewer software 204 also renders the custom object itself or submits the custom object to a component application 208 for rendering. In some embodiments, the custom objects and non-custom objects are inserted into the Rich Multi-Media format document without modification.
The media playback in a Rich Multi-Media format document is an improvement over playing the media file on one computer and application-sharing it with attendees at other computers. With application-sharing, although one user may control playback of a media file with a media player application, attendees may see choppy video and may not hear the audio.
A Rich Multi-Media format document is also an improvement over streaming a media file from a server directly to an attendee by pushing a Uniform Resource Locator (URL). First, the media file may not be available on a server. Second, there is no control on the playback of the media file. Third, each attendee may have a different experience based on their network connection. Thus, the playback is not synchronized.
Viewer software 204 is able to render the document with embedded custom objects that is converted to Rich Multi-Media format during a meeting. Viewer software 204 synchronizes playback of the document with embedded custom objects across all client computers 110 and 120n.
Before an attendee client computer 120n participates in a meeting, the attendee registers for the meeting by, for example, accessing a web site hosted by conferencing server 140 and submitting information on the meeting the attendee wishes to attend.
In stage 2530, during the meeting, viewer software 204 opens the downloaded document. Viewer software 204 invokes conversion software 202 in stage 2540. Next, conversion software 202 converts the document to a Rich Multi-Media format in stage 2550. During the meeting, as presenter client computer 110 selects a portion (e.g., a page) of the document for rendering, viewer software 204 at attendee client computer 120n renders each custom and non-custom object, and, in some cases, viewer software 204 invokes a component application to render an object (stage 2560).
In some embodiments, rather than downloading one or more documents when an attendee registers, the documents may be downloaded when the meeting is about to being or at a time scheduled by the attendee. In some embodiments, the downloaded documents include embedded objects, and, in other embodiments, the downloaded documents include links (e.g., uniform resource locators (URLs)) to objects. If a URL is downloaded, viewer software 204 at an attendee client computer 120n retrieves the file associated with the URL from, for example, streaming server 150.
When the object is downloaded to the attendee as a page of the document before it is to be played, then, when that page of the document is to be played, the media player on the attendee's computer is invoked by viewer software 204 to play the embedded object in the document. This leads to a smooth playback without any network latency, and the attendees hear the audio portion and/or view images in synch with each other and the presenter.
In some embodiments, the component application (e.g., media player) appears to be embedded in viewer software 204 (e.g., using ActiveX controls or application programming interfaces (APIs)). Presenter client computer 110 has player controls, such as pause, fast-forward, and rewind (e.g., the controls in control panel 1000 in
Viewer software 204 allows users to view multiple documents or other types of information. Viewer software 204 renders all static documents, PowerPoint® transitions, 3D files (e.g., in IGS format), and Meeting Recording files (i.e., WRF files). Viewer software 204 contains controls to manipulate 3D objects when an IGS file is being viewed. Viewer software 204 contains WRF player controls when a WRF file is encountered.
In some embodiments, the following media players are supported by viewer software 204:
-
- Windows® media player
- Real® media player
- QuickTime® media player
- Shockwave™ player/Flash™ player
Insertion software 200 allows a presenter to prepare shared content (e.g. a document, presentation, or other type of content) for viewing in advance of a meeting. Viewer software 204 allows a host or a presenter to start a meeting. Viewer software 204 provides features that let users easily navigate the pages of a document and provides a thumbnail view of shared content items. Viewer software 204 allows users to easily control the layout of Meeting Center window 2600, which is a user interface provided by the invention during an on-line meeting and which is illustrated in
In some embodiments, a user interface is provided in which different information are illustrated as if they were on separate tabs.
A Next Tab button may be provided that appears to the right of the Shared Content tabs (e.g., if there are more tabs than can appear in the window at one time), and selecting this button causes the next tab to scroll into view. A Previous Tab button contains a left-pointing arrow and appears to the left of the Shared Content tabs (e.g., if there are more tabs than can appear on the screen at one time). If a user has previously clicked the Next Tab button, clicking the Previous Tab button causes the previous tab to scroll into view. In full-screen view, Meeting Center window 2600 and task bar disappear, and the shared content is visible.
In some embodiments, a host schedules a meeting to be presented by a presenter. When scheduling a meeting, the host can designate the primary presenter for the meeting. The host may also start and end a meeting, control attendee privileges and access to a meeting and teleconference, and designate a primary and/or current presenter (i.e., there may be multiple hosts and/or presenters during a single meeting).
A presenter provides information to other meeting attendees; can share documents, presentations, applications, Web browsers, the computer's desktop, or information on a whiteboard with other attendees; and can take a poll. Initially, the meeting host is also the presenter. The host can designate any user attending the meeting (e.g., the host, the presenter at presenter client computer 110, or a user at an attendee client computer 120n) as the current presenter. A presenter may or may not be an authorized user, and a primary presenter may or may not be an authorized user. An authorized user is one who has an account on conferencing server 140 and uses his or her user name and password to log in to a Meeting Center on conferencing server 140.
In advance of the meeting, the primary presenter may prepare content for viewing in Meeting Center window 2600 by creating a new document or by editing an existing one. The presenter may share the document by opening existing content that has already been converted to Rich Multi-Media format or by sharing new content. The content appears on the Shared Content tabs in the content viewer. When a presenter shares a document, presentation, or whiteboard, it appears in content viewer 2620 (e.g., a content area on the left side of Meeting Center window 2600).
The primary presenter for a meeting can click a Prepare button to view and work in Meeting Center window 2600 without starting the meeting. Thus, in advance of a meeting, a presenter can open or share all of the documents or other content to be presented during the meeting.
An attendee is a user who views the information that a presenter shares, including documents, presentations, applications, Web browsers, the presenter's desktop, and information on a whiteboard. An attendee can annotate shared information, and participate in a chat or poll. An attendee may or may not be an authorized user.
The panels are groups of controls that reside in the area of Meeting Center window 2600. A Panel drop-down list box 2630 is used to select a panel. Selecting a panel in Panel drop-down list box 2630 displays the panel in the area on the right of Meeting Center window 2600. The panels include, for example: an Attendees & Chat panel 2640 (which is selected in
In some embodiments, Meeting Center window 2600 is in conformance with Microsoft® user interface standards. For example, the window is in the standard gray, the toolbar appears at the standard location, below the menu bar, the behaviors of the toolbar buttons and palettes are consistent and conform to standards, and the appearance of the tabs is consistent with standards. Additionally, to achieve greater visual consistency, wherever possible, the layout of user interface elements conforms to a grid.
In Meeting Center window 2600, shown in
Viewer software 204 includes several commands, including a Close command, a Save All Content command, a Start Meeting command, Reorder Viewer Tabs command, a Thumbnails command, a Panels command, and a Synchronize My Display command. These commands may appear as menu items in Meeting Center window's 2600 menu bar.
In some embodiments, the Close command is available for hosts and presenters only. Choosing this command closes the document on the tab that is currently visible in the content viewer. The Save All Content command allows the host or primary presenter for a meeting to prepare the information that is to be presented in advance of the meeting and save the content on conferencing server 140. In some embodiments, this command is available for hosts and the primary presenter for a meeting. Choosing this command saves all of the content that a presenter has opened or shared when preparing for a meeting. When the meeting starts, all of the saved content automatically appears in the content viewer.
The Start Meeting command toggles with the End Meeting command. This command is available for hosts in some embodiments of the invention. The Start Meeting command allows a host to start a meeting, for example: (1) If the primary presenter is currently preparing content for viewing in the meeting; or (2) If one or more attendees join a meeting before the presenter has started the meeting. In some embodiments, the meeting starts automatically when the first attendee joins the meeting.
In either circumstance, when Meeting Center window 2600 for a meeting is already open, the host needs a mechanism for easily assuming control of the meeting, without disrupting the activities of the primary presenter or those attendees who are already in the meeting. The host can assume control of the meeting by choosing the Start Meeting command.
The “Reorder Viewer Tabs . . . ” command is available for hosts and presenters in some embodiments. Choosing this command displays the Reorder Viewer Tabs dialog box, in which a host or presenter may modify the order in which documents or other content appear on the Shared Content tabs.
The Thumbnails command is a toggle command that is available to the host and presenter in some embodiments, and the attendee privilege settings determine whether this command is available to attendees. Choosing this command displays the thumbnail viewer to the left of the content viewer, which allows a user to navigate the slides of a presentation or the pages of a document. A thumbnail viewer is an area that a user can display on the left side of Meeting Center window 2600 and that contains miniature images (“thumbnails”) of each page in a shared document.
The Panels toggle command is available to all users. By default the Panels command is selected, and the panels appear in Meeting Center window 2600. Choosing the Panels command closes the panels, and choosing this command again displays the panels to the right of content viewer 2620.
The Synchronize My Display command is available to hosts and presenters, and the attendee privilege settings determine whether this command is available to attendees in some embodiments. If a user (e.g., host or attendee) is viewing a slide or page in the content viewer 2620 other than that which the presenter is currently displaying, choosing this command synchronizes the user's display with that of the presenter.
In some embodiments, any user (e.g., host, presenter, or attendee) can annotate, save, open, or print an entire document. Other users may include, for example, system administrators.
Table 9 provides detailed information about the buttons and other controls on the toolbar. In Table 9, toggle buttons are noted as such, and all other buttons are action buttons.
The pointer annotation may be represented with an arrow that may include the annotator's identifier (e.g., name). A pointer annotation that has no name on it is for use by a presenter. If attendees do not have the annotation privilege, there is no need to display a presenter's name on a pointer annotation to distinguish it from an attendee's pointer. The length of a pointer annotation is variable and depends on the length of, for example, a user's name.
In some embodiments, the drawing tool palette includes the elements listed in Table 10.
“Choosing the Privileges . . . ” command on the Attendee menu displays the Attendee Privileges dialog box.
Microsoft, Word, PowerPoint, Internet Explorer, and Windows are trademarks of Microsoft, Inc. Shockwave and Flash are trademarks of Macromedia, Inc. QuickTime is a trademark of Apple Computer, Inc. Real is a trademark of RealNetworks, Inc. DB2 is a trademark of International Business Machines, Inc. Oracle is a trademark of Oracle, Corp. Pentium is a trademark of Intel, Corp. UltraSparc is a trademark of Sun Microsystems, Inc. Corel and WordPerfect are trademarks of Corel Corporation.
Although the invention has been described with reference to particular embodiments, the description is only an example of the invention's application and should not be taken as a limitation.
The order in which the steps of the present technique are performed is purely illustrative in nature. In fact, the stages in the flow diagrams described herein may be performed in any order or in parallel, unless otherwise indicated by the present disclosure.
The technique of the present invention may be performed in either hardware, software, or any combination thereof. In particular, the invention may be carried out by software, firmware, microcode operating on a computer or computers of any type.
Additionally, software embodying the invention comprise computer instructions in any form (e.g., source code, object code, interpreted code) stored in any computer-readable medium (e.g., ROM, RAM, magnetic media, punched tape or card, CD, DVD). Thus, the invention may be tangibly embodied as software in a computer-readable device or media, such as memory, data storage devices, and/or data communication devices, thereby making a product or article of manufacture according to the invention. As such, the terms “article of manufacture” and “computer program product” and “computer-readable storage medium” as used herein are intended to encompass software accessible from any computer readable device or media.
Furthermore, such software may also be in the form of a computer data signal embodied in a carrier wave, such as that found within the well-known Web pages transferred among computers connected to the Internet. Accordingly the present invention is not limited to any particular platform unless specifically stated otherwise in the present disclosure. Using the present specification, the invention may be implemented as a machine, process, or article of manufacture by using programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof.
While particular embodiments of the present invention have been shown and described, it will be apparent to those skilled in the art that changes and modifications may be made without departing from this invention in its broader aspect, and, therefore, the appended claims are to encompass within their scope all such changes and modifications as fall within the true spirit of this invention.
Claims
1. A computer system for viewing a document, the computer system comprising: a computer; and a computer program executable by the computer, wherein the computer program comprises computer instructions for: identifying an embedded custom object in the document; inserting information about the embedded custom object into a rich multi-media format document; inserting the embedded custom object into the rich multi-media format document; and rendering the embedded custom object in the rich multi-media format document using the inserted information during a collaborative session.
2. The computer system of claim 1, wherein the computer program further comprises instructions for: rendering the embedded custom object in the rich multi-media format document by invoking a component application.
3. A computer system for converting a document for distributed collaborative computing, the computer system comprising: a computer; and a computer program executable by the computer, wherein the computer program comprises computer instructions for: scanning a portion of a document for a custom object; and inserting information about the custom object into a rich multi-media format document; and inserting the custom object into the rich multi-media format document.
4. The computer system of claim 3, wherein the computer program further comprises computer instructions for: obtaining an identifier for the custom object.
5. The computer system of claim 3, wherein the computer program further comprises computer instructions for: scanning the portion of the document for a non-custom object; and inserting the non-custom object into the rich multi-media format document.
6. The computer system of claim 3, wherein the computer program further comprises computer instructions for: embedding the custom object into the rich multi-media format document.
7. The computer system of claim 3, wherein the computer program further comprises computer instructions for: inserting a link to the custom object into the rich multi-media format document.
8. A computer system for converting a document for distributed collaborative computing, the computer system comprising: a computer; and a computer program executable by the computer, wherein the computer program comprises computer instructions for: scanning a portion of a document for an object; identifying whether the object is a custom object or a non-custom object; if the object is a custom object, obtaining identification information for the custom object; inserting the identification information about the custom object into a rich multi-media format document; and inserting the custom object into the rich multi-media format document; and if the object is a non-custom object, inserting information about the non-custom object into the rich multi-media format document; and inserting the non-custom object into the rich multi-media format document.
9. A method for viewing a document, comprising: identifying an embedded custom object in the document; inserting information about the embedded custom object into a rich multi-media format document; inserting the embedded custom object into the rich multi-media format document; and rendering the embedded custom object in the rich multi-media format document using the inserted information during a collaborative session.
10. The method of claim 9, further comprising: rendering the embedded custom object in the rich multi-media format document by invoking a component application.
11. A method for converting a document for distributed collaborative computing, the method comprising: scanning a portion of a document for a custom object; and inserting information about the custom object into a rich multi-media format document; and inserting the custom object into the rich multi-media format document.
12. The method of claim 11, further comprising: obtaining an identifier for the custom object.
13. The method of claim 11, further comprising: scanning the portion of the document for a non-custom object; and inserting the non-custom object into the rich multi-media format document.
14. The method of claim 11, wherein inserting the custom object further comprises: embedding the custom object into the rich multi-media format document.
15. The method of claim 1, wherein inserting the custom object further comprises: inserting a link to the custom object into the rich multi-media format document.
16. A method for converting a document for distributed collaborative computing, the method comprising: scanning a portion of a document for an object; identifying whether the object is a custom object or a non-custom object; if the object is a custom object, obtaining identification information for the custom object; inserting the identification information about the custom object into a rich multi-media format document; and inserting the custom object into the rich multi-media format document;
- and if the object is a non-custom object, inserting information about the non-custom object into the rich multi-media format document; and inserting the non-custom object into the rich multi-media format document.
17. A computer-readable storage medium storing a computer program executable by a computer, the computer program comprising computer instructions for: identifying an embedded custom object in the document; inserting information about the embedded custom object into a rich multi-media format document; inserting the embedded custom object into the rich multi-media format document; and rendering the embedded custom object in the rich multi-media format document using the inserted information during a collaborative session.
18. The computer-readable storage medium of claim 17, wherein the computer program further comprises computer instructions for: rendering the embedded custom object in the rich multi-media format document by invoking a component application.
19. A computer-readable storage medium storing a computer program executable by a computer, the computer program comprising computer instructions for: scanning a portion of a document for a custom object; and inserting information about the custom object into a rich multi-media format document; and inserting the custom object into the rich multi-media format document.
20. The computer-readable storage medium of claim 19, wherein the computer program further comprises computer instructions for: obtaining an identifier for the custom object.
21. The computer-readable storage medium of claim 19, wherein the computer program further comprises computer instructions for: scanning the portion of the document for a non-custom object; and inserting the non-custom object into the rich multi-media format document.
22. The computer-readable storage medium of claim 19, wherein the computer program further comprises computer instructions for: embedding the custom object into the rich multi-media format document.
23. The computer-readable storage medium of claim 19, wherein the computer program further comprises computer instructions for: inserting a link to the custom object into the rich multi-media format document.
24. A computer-readable storage medium storing a computer program executable by a computer, the computer program comprising computer instructions for: scanning a portion of a document for an object; identifying whether the object is a custom object or a non-custom object; if the object is a custom object, obtaining identification information for the custom object; inserting the identification information about the custom object into a rich multi-media format document; and inserting the custom object into the rich multi-media format document; and if the object is a non-custom object, inserting information about the non-custom object into the rich multi-media format document; and inserting the non-custom object into the rich multi-media format document.
Type: Application
Filed: Jun 16, 2006
Publication Date: Feb 22, 2007
Inventors: Min Zhu (Los Altos, CA), Songxiang Wei (San Jose, CA), Alfred Pong (Millbrae, CA)
Application Number: 11/424,830
International Classification: G06F 17/00 (20060101);