SYSTEM AND METHOD FOR SHARING DOCUMENTS AMONG MULTIPLE PARTICIPANTS
FIELD OF THE INVENTION The present invention relates to, but is not limited to, a method and system for sharing documents among multiple participants. More particularly, the present invention relates to a conferencing system and a method operative at a conferencing device for sharing documents during a conference.
BACKGROUND OF THE INVENTION Many computer-related applications involve the use of shared data files. For example, in a multimedia (audio, data, video, animation) conference application, a data file that includes a series of presentation slides may be transferred to computers used by the conference participants. Once transferred, the slides may be viewed by each of the participants. In some cases, the distributed data file may be edited by one or more of the participants.
In a typical on-line multi-party conference, a chairperson prepares a shared document (the conference document) that contains several data objects (data) such as Microsoft® PowerPoint® slides or Word® documents. At the beginning of the conference, the chairperson connects to the other participants via a data network. Once connected, the participants may interact with one another in conjunction with the shared conference document. Inherent in this approach is that the shared document needs to be transmitted to the conference participants. Typically, the chairperson transfers the document to the other participants at the beginning of the conference. In practice, the file transfer process may take several minutes. As a result, the meeting participants may be forced to wait for the file transfers to complete before collaborating with one another or the chairperson must start the data exchange process early. An example of such an application is Microsoft NetMeeting™.
Conventionally, it is not sufficient to simply to transfer the shared document, which contains the data objects to be exchanged by electronic mail, to the participants in advance. This is because the objects themselves may change if they are edited before the meeting starts. Electronic mail systems are also known in the art as e-mail. In view
of the above, a need exists for a file sharing method that reduces the amount of time that may be wasted transferring shared documents, but that also ensures that the participants in a conference are viewing the same versions of the data objects.
Additional problems arise in applications when multiple parties need to edit a shared document. In a Microsoft Windows® environment, documents may be shared and edited using objects based on Microsoft's Object Linking and Editing ("OLE") technology. This technique also may be used for documents that are shared by computers that are connected via data networks.
For example, in a real-time conference involving several participants, the originator of the conference may embed the object into a suitable container document and then send the container document to the to the participants. The object may then be edited by any of the participants. The edited object, in turn, may then be distributed to the other participants in the conference to update the object they are viewing to the current version. This technique, however, often results in relatively long setup times when initiating the conference. In addition, relatively substantial data transfers may need to be made during the conference, i.e., large amounts of data may need to be distributed between the participants, whenever the objects are edited. In view of the above, a need exists for a method of sharing documents that reduces the quantity of data sent during setup and that reduces data traffic during editing sessions of shared objects.
SUMMARY OF THE INVENTION
In the first aspect of the present invention there is provided a method for sharing data files among a multiple participants. Each of the participants has a conference station for sharing the data file in a conference. The method comprises the steps of routing a data file, which includes at least one data object, to each of the participants before the conference is commenced, assigning to each data object of the document an identifier for indicating the data object last modification, establishing a conference and distributing a list of data object identifications and the data objects which need to be modified .during the conference among the participants. The method further comprises the steps of generating a shared document which comprises at least one data object associated with each participant, editing the at least one data object for providing an modified data object and distributing the modified data object among participants for updating the shared document associated with each participant.
Advantageously, the invention may significantly reduce conference setup time and provide a unique identifier and signature for each data file and object. Furthermore, the invention reduces the amount of data transferred among participants, hence, reduces the updating time associated with each shared document.
In the first embodiment of the invention, routing of the data file is performed by an electronic mail or file transfer protocol. In addition, the step of assigning further includes the steps of assigning a unique identifier for each data file and assigning a digital signature to each data object of the data file. In this manner, the digital signature is a time step for designating the last modification of the data object.
In the first aspect of the invention, the method further includes the step of creating a link from the data object at the shared document to the data file. In the first embodiment of the invention, the step of editing further includes the step of requesting the data file from data file owner and editing the data object with an application which generates the data file at a requestor station for providing a modified data object which links to the shared document.
In the second aspect of the present invention there is provided a system having a plurality of conferencing stations operably coupled to at least one communication network, for sharing data files among a plurality of participants in a conference. The conferencing station includes a routing application for routing a data file that includes at
least one data object to each of the participants before the conference is commenced, an identification application for assigning to each data object of the document an identifier for indicating the data object's last modification, a conferencing application for establishing a conference and controlling the distribution of a list of data object identifications among the participants, an electronic whiteboard for viewing and editing a shared document, an editing application for editing the data file; a compressor for compressing modifications of the data file and a distribution application for distributing modifications of the data file among participants.
Preferably, the routing application is an electronic mail application and the at least one communication network is a packet switched network. In this embodiment, the conferencing station further includes a video and audio device for performing an audiovisual conference and a display monitor for viewing the conference information.
BRIEF DESCRIPTION OF THE DRAWINGS These and other features of the invention will become apparent from the following detailed description of the preferred embodiments and the claims, taken with the accompanying drawings, wherein similar reference characters refer to similar elements throughout and in which:
FIG. 1 is a block diagram of one embodiment of a conferencing system constructed in accordance with the invention;
FIGS. 2 A and 2B are a flowchart of one embodiment of a data sharing method in accordance with the invention; FIG. 3 is a flowchart of another embodiment of a data sharing method in accordance with the invention;
FIG. 4 is a graphic illustration of an embedded method of data transfer; and FIG. 5 is a graphic illustration of one embodiment of a document sharing method in accordance with the present invention.
DETAILED DESCRIPTION OF THE INVENTION
Referring firstly to FIG. 1, a conferencing system is shown. The conferencing system 1 includes several conference stations 2, 3, 4 that are connected via one or more data networks 5, 6 (the Internet 5, a local area network 6, etc.). Conference participants (not shown) use the conference stations 2, 3, 4 to communicate with other participants.
Each conference station may support audio, data, and graphical services using audio/video/data (A/V/D) equipment 8. For example, the conference participants may speak with one another using the station audio equipment 9. A participant may route documents to other participants to enable the participants to view the documents on the display device monitor 10 or electronic whiteboard 11 which is associated with the stations 2, 3, 4. In the preferred embodiment of the invention, a whiteboard 11 is used for viewing, editing and generating a shared document 15.
All conference stations 2, 3, 4 runs a number of applications for multi-party conferencing. The applications include (1) a conferencing application 12 which provides a user interface that facilitates establishing the conference and that enables a participant to route conference content information, e.g., documents, pictures, PowerPoint slides, to other participants, and (2) content editing/viewing application 13 that enable a participant to process the content information. For example, the content editing/viewing application may be a graphic-based editor such as Microsoft PowerPoint® that enables a participant to edit graphical slides that are used in conjunction with the conference application 12 or whiteboard 11.
Each conference station 2, 3, 4 further includes a data memory 14, for storing a shared document 15, data files 16 and a presentation data 17. Each shared document 15 includes a globally unique identifier (GUID) 23, signature 24, and at least one data object 18 which includes a GUID 19 and signatures 20.
To reduce the complexity of FIG. 1, only a portion of the details of the stations 2, 3, 4 are illustrated. In addition, the details shown for a given conference station 2 might not be shown for all of the stations 3, 4. It should be understood, however, that, in general, similar functionality is provided by each of the conference stations 2, 3, 4. In accordance with one embodiment of the invention, the conferencing application 12 includes a digital routing means (not shown) which enables a participant to efficiently distribute the shared document 15 to other participants before the
conference is commenced. Such digital routing means may be a file transfer protocol and a data compressor that functions to compress each data file before transferring it among the participants.
Specifically, the participants can send shared document 15 to the other participants before the conference begins. Then, at the beginning of the conference, the participants receive a GUID 23 and electronic signatures 24, such as timestamps, indicative of the current version of the shared document 15. In the event a participant has an older version of the shared document 15, the participant can request an update from the original version. In accordance with another embodiment of the invention, the conferencing application 12 includes a mechanism that enables a participant to efficiently distribute and edit shared document 15. Here, the shared document 15 is associated with a set of presentation data 21, a data file 22 which includes the presentation data 21 and information for constructing the file. For example, a document that is compatible with Microsoft's Object Linking and Embedding (OLE) technology can be defined in terms of the data that defines the entire document (data file 22) and by another set of data (the presentation data 21) that merely defines, for example, how the document appears and displayed on the display monitor 10.
In this embodiment, a participant can separately send the presentation data 21 or the data file 22 to the other participants. Thus, at the beginning of the conference, a participant or the conferencing application 12 may elect to send only the presentation data 21 to the other participants. In this case, only when a participant requests to edit the shared document 15 the data file 22 will be sent to the requestor. Typically, this technique will significantly reduce the amount of time is takes to initially send the shared document 15 to the participants because, in general, there is much less presentation data 21 than in data file 22 for a given document. Moreover, once the file has been edited, only the updated presentation data 21 will need to be sent to the majority of the participants because the requestor already has the data file 22. Consequently, additional data transfer efficiencies can be realized by use of this feature of the present invention.
In the preferred embodiment of the invention, the conference station 2 is a computer program that may operate on a Pentium® II based personal computer (PC).
The PC includes a microphone for inputting voice to the conferencing application, a video camera for capturing images, a sound card, a video card and a communication device such as Ethernet card or a modem for distributing the shared document 15 among the participants (which is marked as A/V/D equipment 8). Referring now to figs. 2 A, 2B and 3, the above operations will now be discussed in more detail. FIGS 2A and 2B depict a flowchart of operation that may be performed in a conferencing system 1 implemented in accordance with the first embodiment of the invention described above. In several of the examples below, it is assumed that the conference chairperson establishes the conference and generates and distributes the shared document 15 that is used during the conference. It should be understood, however, that other conference participants might perform these acts. It should also be understood that, in general, any of the participants may perform caller and callee operations described in Figs. 2A and 2B.
Referring first to Fig. 2 A, a method for marking and distributing shared document 15 before the conferences is shown. Initially, the caller starts conferencing application 12, for example, VocalTec Communication Client™, of VocalTec® Communications Israel (step 30). Next, the caller adds data objects 18 such as PowerPoint® slides of Microsoft®, USA, to the shared document 15 (step 31). The caller annotates the shared document 15 (step 32). The caller annotating all data objects 18 associated with the shared document 15 that need to be annotated (step 33). In the next step, the caller saves the shared document 15 in storage means such as a hard drive, floppy disk or memory 14 (step 34), and sends the shared document 15 to a callee (step 35). The callee receives the shared document 15 (step 40) and opens the shared document 15 (step 41). If the callee wishes to change the document 15 (steps 36 o42), then the callee annotates the data object 18 in the shared document 15 (steps 37 or 43) and continues annotating/adding/changing data object 18 until there is nothing remaining to change ( step 38). The callee then saves the document to the hard drive (steps 39 and 44).
Initially, the conference chairperson generates the content information to be used during the conference and stores the information in a data memory 14 such as a hard disk drive. This information may consist of various text or graphic files. For example, the content information may consist of a document generated using Microsoft Word®, a
slide presentation generated using Microsoft PowerPoint®, a spreadsheet generated using Microsoft Excel® or a document generated by some other OLE-based application or other types of text applications. Alternatively, the content information may consist of audio or video files (containing, for example, audio or video clips) that may be played on the participants' conference stations 2, 3, 4 or other equipment.
The chairperson or some other party, may create a shared document 15 using the whiteboard 11 and insert various objects into the shared document 15. Using the PowerPoint document as an example, the chairperson may insert several PowerPoint slides into different pages of the shared document 15 and provide a link from each slide of the shared document 15 to the original PowerPoint file which contains the slides.
Assuming that each slide consists of approximately 50 Kbytes of data, it would take approximately six seconds to transmit each slide over a 64 Kbit/second Wide Area Network link. Thus, it would take approximately four minutes to transfer a twenty slide presentation to two other participants. In accordance with one embodiment of the invention, to prevent this delay from interfering with the conference, at some point in time prior to the conference, the participant who created the content sends the associated file to each of the other participants. In one embodiment, this is accomplished using e-mail, file transfer protocol or by simply distributing the file on a floppy disk. The file is then loaded by the recipient participants into their respective conference terminals.
In practice, the content information may be modified by any of the participants or new content information created after the shared document is sent to the conference participants. This scenario is contemplated in this embodiment through the use of identifiers (GUID) and digital signatures such as time stamps as described below. Each data object 18 in the shared document 15 may be associated with a GUID
19 and a signature 20 that is used to ensure that the participants have the same version of the object. As FIG. 1 illustrates, similar GUIDs 19 and/or signatures 20 may be associated with the shared document 15 as well. In general, a GUID 19 is assigned to the shared document 15 or the data object 18 when it is created. This GUID 19 typically remains unchanged for at least the duration of the conference (even if the document or object is modified). In contrast, the signature 24 assigned to a document or object is changed whenever the document or object is modified. For example, a document
signature 24 may be assigned when any of its objects 18 are modified (regenerated, edited, deleted) and any object signature 20 may be modified when the object 18 is edited. In one embodiment, the signature 20 consists of a timestamp that indicates the time at which an object was last modified. Referring now to FIG. 2B, the chairperson establishes the conference by invoking the mechanism by which the participants perform data network conferencing, the techniques of which are known in the art.
For example, a conferencing application such a VocalTec Communication Client™ sold by VocalTec® communications Ltd. of Israel, may provide conferencing over a data network using virtual conference rooms established on public or private network servers. The teachings of the present invention may be integrated into a conferencing application such as the one described above in order to improve the performance of the application.
The flowchart of Fig. 2B will now be described in more detail. The conference starts (step 50) by the caller sending a GUID 23 and a signature 24 of the shared document 15 to each participant (step 51). If the caller has a newer object than the callee (step 52), then the caller sends a list of object signatures to the callee (step 53 and step 54), the callee receives a new copy of object 18 (step 55). A check is done for each data object (steps 56 to 54). The next step (step 57) the callee checks if he has newer data objects than the caller. If the callee has a newer data object than the caller, the callee sends a list of data object signatures to the caller (step 58). The callee performs the operation of checking and updating signatures (steps 58 to 61) until there are no data objects to update. The conference then continues (step 62).
In summary, once the conference is established, the participant who generated the content information (e.g., shared document) sends a list of identifiers (e.g., the GUIDs of the documents and/or objects) and signatures (e.g., the timestamps of the documents and/or objects) to the other participants. Each participant (e.g., the conferencing application running on the participant's conference station) may then check to see whether the document/object version of that participant's shared document matches the document/object persons on the list. If the version does not match (e.g. an object has been changed or a new object was added after the document was sent), the participant than requests a new copy of the object. In one embodiment, the
corresponding request manager includes the GUID 23 and/or the signature 24 of the desired shared document 15 or object 18. Note that the participant may selectively request specific objects rather than the entire document, as necessary. Moreover, the document signature 24 may be used to quickly verify that all of the objects are current or to request that the entire document 15 be sent. Upon receipt of the request message, the participant or conferencing application 17 that is in control of the document sends the requested document/objects to each requesting party in real-time.
From the above, it may be seen that the present invention may significantly reduce the data transfer time at the beginning of the conference. In the case described above (20 slides distributed to two participants), the chaiφerson would send 40 information blocks that contain GUID 19 and timestamp signature 20 information. Assuming these blocks contain 100 bytes of data each, it is apparent that the transmission time of this step is . Assuming the other participants loaded the prepared documents, the meeting can immediately proceed. FIG. 3 is a flowchart describing a method that may be performed in a conferencing system implemented in accordance with the second embodiment of the invention described hereinabove. In this example, it is assumed that the document to be shared has already been distributed to each of the participants and a shared document 15 has been created and stored, for example, in a data memory 14. For the puφoses of describing this embodiment, the shared document 15 is represented by two sections: (1) presentation data 21, for example, slides, and (2) the data file 22 that includes the slides and other information for constructing the data file 22. In general, the presentation data 21 consists of the minimum set of information that is required to display and/or print the document. An example of technology that supports the presentation data and data files as described herein is Microsoft's Object Linking and Editing ("OLE") technology. In the example that follows, it is assumed that the shared document 15 is OLE compatible. The shared document 15 was generated by inserting presentation data 21 object to the whiteboard 11. Thus, the shared document 15 includes presentation data 21 that may be used by a client to display or print the shared document 15. In accordance with this embodiment of the invention, OLE is used in a linked manner so that a participant may initially distribute only the presentation data. The data file 22 is sent to a participant only when that participant whishes to edit
the original document. The editing is done by the application which first created the document.
In summery, the document that needed to be shared among multi participants is stored at the chaiφerson computer or other participant computer. The chaiφerson generates a shared document 15 on the whiteboard 11 that functions as the editing/viewing tool of the conferencing application 12, calling the other participants and distributing the shared document 15 to the other participants. The shared document 15 includes only the presentation data 21 that is linked to the original document. Each modification that is done by the chaiφerson is distributed to each participant for updating' their copies of the shared document which is viewed on their whiteboard. Editing of the presentation data is done by the editor that created the presentation data. Editing additional information to the shared documents such as instructions, pointing on a paragraph, etc. can be done with the whiteboard 11 by each participant. Editing the presentation data requires the original file and the application that created it. A detailed description of the flowchart of FIG. 3 will now be given. The conference is established by connecting a group of conference participants that are designated as USERS A, B, C and D (step 70). This may be accomplished in a similar manner as discussed hereinabove.
A participant, e.g., USER A, establishes a link to the shared document 15 that is to be distributed to the other participants during the conference (step 71). That is, USER A places the document into the viewing/editing application container using linked presentation data only.
USER A then sends the presentation data 21 to the other participants (step 72). As illustrated in FIG. 1, a copy of the presentation data 21 may be stored in the data memory 14 in each participant's station 2, 3, 4. The participants may then view the shared document 15 on their conference stations using the whiteboard 11 (step 73).
In one embodiment, the conferencing application may accomplish the above by intercepting the 'paste' operation that USER A performs when she/he inserts objects into the shared document 15. The conferencing application 12 compresses the presentation data 21 and then automatically sends the presentation data 21 to the other participants in the conference in real-time over the network. Each participant may then store a copy of the presentation data 21, as illustrated for conferencing station B 3.
At any time during the course of the conference, as designated by the dashed line in FIG. 3, a participant, e.g. USER B, may choose to edit the shared document 15 (step 74). If the data file 22 is not available to USER B (step 75) the data file 22 will be transferred on demand from USER A to USER B and will be stored on USER B's station (step 76). Next, the received file is linked to the original presentation data 21. The participant is then free to edit the document using a corresponding compatible content editing/viewing application 13 such as PowerPoint that is installed on her/his conference station (step 77).
As illustrated in FIG. 3, different portions of the resulting modified file may be sent to different participants. The updated data file is sent back to the originator of the file (e.g., USER A) (steps 78 and 79). Then, the originator updates the original file and its presentation object (step 80). The remaining participants (e.g., USERS C and D), are only sent updates of the presentation data (steps 81 and 82). The conferencing applications on the recipient terminals then automatically update the shared document 15 (step 83). This may be accomplished, for example, by sending GUIDs 23 with the presentation data 21 or data file 22, keeping track of which GUIDs 23 are currently being displayed and updating the whiteboard 11 accordingly.
In practice, the presentation data 21 may consist have ten times less data than the data file 22 that includes the total embedded file information. Thus, it may be seen that a system or method implemented according to this embodiment of the present invention may be significantly more efficient than conventional document sharing methods. In addition to the efficiencies that may be obtained using all of the above described techniques, significant efficiencies may be obtained by using only one of these techniques, for example, sending the deltas of the updates between the participants. Moreover, all data files and objects are compressed before being transferring among the participants. Thus, additionally reducing the amount of data that is transferred among the participants.
FIGS. 4 and 5 illustrate the advantages that may be realized through the use of this embodiment of the invention. FIG. 4 illustrates data flow using an embedded method for sharing and editing documents. Here, USER A inserts an embedded object 100, USER B edits the document 101, then the documents are updated for all of the
participants, USER C 102 and USER D 103 as is illustrated by arrow lines and dotted lines in FIG. 4.
FIG. 5 illustrates a linked method implemented in accordance with the present invention. In accordance with the method, USER A inserts an object via a link 200, the file is then sent to USER B after USER B requests to edit the file 201, then all of the participants are updated, USER C 203 and USER D 204. The solid lines indicate data transfers before any editing occurs. The dotted lines represent data flows after USER B has edited the document. Note that this example assumes that the presentation data is 1/10 the size of the embedded data and that subsequent deltas are 1/10 the original size of either the embedded data or the presentation data.
Table 1 presented below summarizes the data flow in each case.
Table 1
Embedded Data Method (Figure 4) Fast Linked Method (Figure 5)
Total Data Sent (Kbytes) Total Data Sent (Kbytes)
Setup Data 300 30
B Edits 330 142
B + C Edits 360 254
B + C + D Edits 390 366
It may be seen that the method of the invention can significantly reduce the total data transmitted over the networks, particularly when less than all of the members of the conference desire to edit a particular document. In particular, data sent during the conference setup may be dramatically reduced. In addition, data transmission during an edit session may be more efficient. Thus, the invention provides faster setup and editing time, particularly on relatively slow data networks.
Data compression techniques such as loss less compression techniques, for example, PKZIP or A J, may also be used to further reduce the amount of data that is transferred for the conference. For example, the data may be compressed when the changes for the presentation of the full object are being sent. While the invention has been described with respect to a limited number of embodiments, it will be appreciated that many variations, modifications and other applications of the invention may be made.