WO2001033362A1 - Action communication and synchronization for documents accessed by multiple users - Google Patents

Action communication and synchronization for documents accessed by multiple users Download PDF

Info

Publication number
WO2001033362A1
WO2001033362A1 PCT/US2000/041886 US0041886W WO0133362A1 WO 2001033362 A1 WO2001033362 A1 WO 2001033362A1 US 0041886 W US0041886 W US 0041886W WO 0133362 A1 WO0133362 A1 WO 0133362A1
Authority
WO
WIPO (PCT)
Prior art keywords
document
user
actions
computer system
action
Prior art date
Application number
PCT/US2000/041886
Other languages
French (fr)
Inventor
Taha Khedro
Original Assignee
Attivo Software, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Attivo Software, Inc. filed Critical Attivo Software, Inc.
Priority to AU32679/01A priority Critical patent/AU3267901A/en
Publication of WO2001033362A1 publication Critical patent/WO2001033362A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control

Definitions

  • the present invention relates to action communication regarding documents accessed by multiple users. More specifically, the invention relates to techniques for allowing multiple users to simultaneously update a document, assign ownership of sections of the document, and obtain a snapshot of a "version" of the document at any point in time.
  • Computers are amazing tools that allow us to perform many tasks efficiently in both the work place and the home. Perhaps the most common application that is run on computers is the word processing program that allows users to produce documents including letters, reports, articles, books, and the like. Computer applications can also be used to produce spreadsheets, slide presentations, databases, drawings, and many more.
  • Database applications provide a good example of allowing users to work on projects in parallel. Many database applications allow multiple users to access the database simultaneously. When a user is accessing a record of the database, that record is typically locked so that the integrity of the information stored in the database is maintained. By locking a record, a database application allows multiple users to access and enter data in the database simultaneously.
  • the locking methodology of database applications is an extension of the shared document access provided by most operating systems. Instead of allowing only a single user to have access to a shared document, the database applications allow many users to access the database but each one locks the record that they are currently manipulating.
  • the present invention provides methods and systems for communicating actions and synchronization for shared documents accessed by multiple users.
  • a user commits a modification to a shared document
  • an action is sent to other users that are accessing the shared document in the form of a copy of an original reference document. If a user accepts the action, the modification is performed on the copy that is being viewed by the user.
  • the user can also view actions that have occurred to a reference document so that a snapshot of the document at a specific point in time can be created, such as to generate a new reference document.
  • portions of the shared document can be specified as being owned by one or more user so that modifications of the portion of the document will be restricted.
  • the invention allows multiple users to work together on shared documents more efficiently and with better communication than is currently available. Several embodiments of the invention are described below.
  • the invention provides a computer implemented method of managing modifications to a document by multiple users.
  • a reference document is received, where the reference document is the initial state of the shared document that can be accessed by the multiple users.
  • Each of the multiple users is provided with a copy of the reference document as a live document for the user to modify.
  • An action is received as each user commits a modification to the user's live document.
  • the action is stored in a list of actions and sent to another user or users.
  • the live document can be synchronized by sending any actions that have not been incorporated into the live document.
  • the invention provides a computer implemented method of managing modifications to a document in a network.
  • a copy of a reference document from a server computer system is received.
  • a copy of the reference document is utilized as a live document for a user to modify on a client computer system.
  • a modification to the live document is committed in the form of an action on the client computer system.
  • the action is sent to the server computer system where the server computer system sends the action to at least one other user.
  • the invention provides a network system that manages modifications to a document by multiple users.
  • the network system includes multiple client computer systems with each client computer system receiving a copy of a reference document as a live document for a user to modify.
  • a client application on each of the client computer systems generates an action when a modification to the client computer system's live document is committed.
  • a server computer system stores the reference document and generated actions. Additionally, a server application sends the actions to at least one client computer system for incorporating the modification in the client computer system's live document.
  • FIG. 1 illustrates an example of a computer system that can be utilized to execute the software of an embodiment of the invention.
  • FIG. 2 illustrates a system block diagram of the computer system of FIG. 1.
  • FIG. 3 shows a network of multiple computer systems.
  • FIG. 4 shows a flow diagram of a shared document that is being accessed and modified by multiple users according to the present invention.
  • FIG. 5 shows a flowchart of a process of a client computer system managing modifications to a shared document.
  • FIG. 6 shows a flowchart of a process of a server computer system managing modifications to a shared document.
  • FIGS. 7A-7C show screen displays of a user making modifications to a shared spreadsheet document and the modifications being displayed on another user's screen.
  • FIGS. 8A-8D show screen displays of a user making modifications to a shared spreadsheet document and screen displays of actions that were sent between the users' computer systems.
  • FIGS. 9A and 9C show screen displays of a user making modifications to a shared graphics document.
  • FIGS. 10A-10B show screen displays of two users attempting to simultaneously change the same object in a shared graphics document.
  • FIGS. 11A-1 IB show flowcharts of processes of setting up a shared document.
  • FIGS. 12A-12B show a flowchart of a process of modifying a shared document.
  • FIG. 13 shows a flowchart of a process of committing a modification to a shared document.
  • FIG. 14 shows a flowchart of a process of managing a shared document.
  • FIGS. 15A-15L show screen displays of an example where a word processing document is set up to be shared with ownership of certain portions to specific users and how the shared word processing document can be modified by the multiple users.
  • FIG. 1 illustrates an example of a computer system that can be used to execute the software of an embodiment of the invention.
  • FIG. 1 shows a computer system 1 that includes a display 3, screen 5, cabinet 7, keyboard 9, and mouse 11.
  • Mouse 1 1 can have one or more buttons for interacting with a graphical user interface.
  • Cabinet 7 houses a CD-ROM drive 13, system memory and a hard drive (see FIG. 2) which can be utilized to store and retrieve software programs incorporating computer code that implements the invention, data for use with the invention, and the like.
  • CD-ROM 15 is shown as an exemplary computer readable storage medium, other computer readable storage media including floppy disk, tape, flash memory, system memory, and hard drive can be utilized.
  • a data signal embodied in a carrier wave e.g., in a network including the Internet
  • a carrier wave e.g., in a network including the Internet
  • FIG. 2 shows a system block diagram of computer system 1 used to execute the software of an embodiment of the invention.
  • computer system 1 includes monitor 3 and keyboard 9, and mouse 11.
  • Computer system 1 further includes subsystems such as a central processor 51, system memory 53, fixed storage 55 (e.g., hard drive), removable storage 57 (e.g., CD-ROM drive), display adapter 59, sound card 61, speakers 63, and network interface 65.
  • Other computer systems suitable for use with the invention can include additional or fewer subsystems.
  • another computer system could include more than one processor 51 (i.e., a multi-processor system) or a cache memory.
  • the system bus architecture of computer system 1 is represented by arrows 67.
  • FIG. 2 is but an example of a computer system suitable for use with the invention.
  • Other computer architectures having different configurations of subsystems can also be utilized.
  • FIG. 3 shows a network that connects multiple computer systems, such as the ones shown in FIGS. 1 and 2. As shown, multiple computer systems 1 are interconnected through a network 101. Network 101 allows the computer systems to share data and resources. Typically, the computer system that controls access to data or a resource is called the "server” because it provides access to client computer systems.
  • the network can be any kind of network including a local area network (LAN) and wide area network (WAN), such as the Internet.
  • LAN local area network
  • WAN wide area network
  • the server provides data or resources to clients.
  • one of computer systems 1 shown in Fig. 3 can be a server computer system that provides access to a database to the other client computer systems.
  • the server computer system is in any way different from a client computer system and a computer system can be a server with regard to some data or resource and a client with regard to another data or resource. Therefore, the labels of "server” and "client” are for reference purposes.
  • FIG. 4 shows a flow diagram of a shared document being accessed and modified by multiple users.
  • a shared document of the present invention is a document that has a reference document from which one or more users obtain a copy (also called a "live document") to access and potentially make modifications or updates.
  • the modifications can be sent to other users and a user can receive past modifications in order to synchronize his or her live document.
  • a reference document 201 can be thought of as the baseline for the shared document that is being accessed and modified by users 203, 205 and 207.
  • Each of the users have access to live documents 209, 211 and 213 as shown.
  • the live documents are copies of the reference document but they can also include modifications from one or more of the users.
  • an action When a user commits a modification to a live document, an action is generated.
  • An action encapsulates the modification (e.g., a modification to an object of the live document) so that it can be communicated to other users and also utilized to generate a current (or final) document 215.
  • actions 217 can flow both to and from users and their respective live document.
  • user 203 can commit a modification to live document 209 that generates an action that is sent to users 205 and 207, which if accepted, can result in the modification being made in live documents 211 and 213, respectively.
  • a live document can be "current" if all the modifications that have been made are accepted and none have been rejected.
  • ownership of portions of a live document can be granted to one or more users so that only the authorized users can modify those portions.
  • FIG. 4 shows the ownership as live document 211 includes a portion 219 that is owned by user 205 and live document 213 includes a portion 221 that is owned by user 207.
  • Ownership privileges are not limited only to modifications but can also be utilized to grant other privileges such as viewing, printing, saving, and the like.
  • Actions 217 can also be stored in a list of actions 223.
  • the list of actions can be utilized to generate current document 215 from reference document 201.
  • the modifications encapsulated in the actions in list of actions 223 can be sequentially applied to reference document 201.
  • a user can request to generate a snapshot document, which is a version of the shared document at a specific point in time and/or based on specific user contributions.
  • a snapshot document 225 was generated from a first subset of list of actions 223.
  • a snapshot document 227 was generated from a second subset of list of actions 223 and shows a version that is later in time to snapshot document 225.
  • FIG. 4 shows the flow of actions without limiting the invention to a specific network architecture. Nevertheless, in preferred embodiments, the live documents are stored and manipulated on client computer systems while reference document 201, list of actions 223, final document 215, and snapshot documents 225 and 227 are stored and generated by a server computer system. The actions can be communicated over a network of the client and server computer systems. It should be noted that it is not required that there be a dedicated server computer system nor that a computer system cannot act as both a server and a client.
  • FIG. 5 shows a flowchart of a process of a client computer system managing modifications to a shared document.
  • a copy of a reference document is received as a live document.
  • the live document is the user's view of the shared document and can include modifications made by the user and other users in the form of received actions.
  • a modification is made and committed to the live document in the form of an action at a step 303.
  • committing a modification it is meant that the modification may appear in the current (or final) document. However, for many reasons the modification may not appear in the current document. For example, the modification may be inconsistent with a modification made by another user.
  • a user can commit a modification either explicitly (e.g., by indicating acceptance) or set that commitment is automatic.
  • the action is sent at a step 305.
  • the action is sent to a server computer system that stores the action in a list of actions. Additionally, the action can also be sent to other users on client computer systems as shown in FIG. 4.
  • FIG. 6 shows a process of a server computer system managing modifications to a shared document.
  • a reference document is received.
  • copies of the reference document are provided to multiple users. The copies of the reference document will be live documents on the client computer systems of the users.
  • an action is received and the action is stored in a list of actions at a step 357.
  • the actions can also be stored in any number of ways known to those of skill in the art.
  • the action is sent to at least some of the multiple users at a step 358.
  • FIGS. 5 and 6 are designed to give a high level view of certain aspects of the invention. Additional steps can be added as will be described below. Nevertheless, in any of the flowcharts depicted herein, steps can be reordered, added, deleted, modified, and combined without departing from the spirit and scope of the invention.
  • FIGS. 7A-7C show screen displays of a user making a modification to a shared spreadsheet document that is committed and then appears in the live document of another user. Because the invention is directed to managing modifications of a shared document, there can be different views of the "same" shared document on each of the users' computer systems. For clarity, the same reference numeral will be utilized in different figures to indicate that the screen display is from the same computer system, although it may be at a different point in time.
  • FIG. 7A shows a screen display 401 of a shared spreadsheet document.
  • the spreadsheet document includes data in multiple rows and columns.
  • the user has made a modification that adds a row 403 to the shared spreadsheet document.
  • a window 405 is generated that asks if the user wants to commit the modification. If the user commits the modification, an action is then sent to other users so that it can be incorporated in their live documents.
  • FIG. 7C shows a screen display 407 of another user's view of the shared spreadsheet document. As shown, the user has accepted the modification made by the user of FIGS. 7A and 7B so that a row 409 has been added to the user's live document.
  • the user was specifically asked if the modification should be committed.
  • a user can specify that all modifications will be committed automatically.
  • a user can set a default that all modifications in the form of actions will be accepted or the user can explicitly accept the modifications in a way similar to window 405 in FIG. 7B.
  • FIGS. 8A-8D show examples of how users can view actions that have been sent and received.
  • a screen display 451 shows a shared spreadsheet document in which a user has made modifications to a column 453.
  • a window 455 asks whether the modifications should be committed as described above. Once modifications are committed, one or more actions will be generated and sent to a server and/or other users.
  • FIG. 8A shows a window 461 as shown in FIG. 8B in order to view the action or actions that have been sent.
  • Window 461 includes a scrolling list 463 of actions that have been sent and details of a selected action are shown in area 465.
  • FIG. 8C shows a screen display 471 including a revised column 473 including the modifications shown in FIG. 8A.
  • a window 481 in FIG. 8D shows the user actions that have been accepted.
  • a scrolling list 483 shows the action or actions and details of a selected action are displayed in an area 485.
  • a user can utilize a button 487 to accept selected actions.
  • the present invention can be utilized to manage modifications to shared documents.
  • the documents can be any type of computer file or combination of files including documents for word processing, spreadsheet calculations, graphics, presentations (e.g., slide presentations), and the like.
  • FIGS. 9A-9C show how modifications to a shared graphics (or diagrams) document can be managed utilizing an embodiment of the invention.
  • a screen display 501 shows a shared graphics document of a layout of a room.
  • the user has added three objects in FIG. 9B and a window 503 has been presented to determine if the user wants to commit the modifications.
  • FIG. 9C another user has accepted the modifications shown in FIG. 9B and a screen display 505 shows that the new objects have been added.
  • FIGS. 10A and 10B show to users that are attempting to move the same object to a different location in a shared graphics document.
  • a screen display 551 shows that a user is attempting to move an object 553 to a new location 555.
  • FIG. 10B shows a screen display 557 in which another user is attempting to move object 553 to a different location 559.
  • rules are formulated to determine which one of conflicting actions will be committed. For example, an action that occurs last can be committed and will therefore appear in each of the live documents if accepted.
  • locking mechanisms can be utilized to ensure that only one user is able to modify an object.
  • ownership of objects or portions of a document are utilized to reduce the probability of inconsistent modifications. The ownership aspect of the invention will be described in more detail below.
  • FIG. 11A shows a flowchart of a process of setting up a shared document for access by multiple users.
  • a reference document is generated.
  • the reference document can be generated by a user utilizing any application such as a program for word processing, spreadsheet calculations, graphics, presentations, and the like.
  • an activity group is a list of people that are allowed to access the shared document.
  • the users can be selected based on name, email addresses, network addresses, or any other identifying mechanism.
  • the user can assign ownership to portions of the shared document at a step 605. For example, ownership can be granted to a paragraph in a word processing document, columns, rows or cells in a spreadsheet or an object in a graphics document. Ownership can be assigned by selecting one or more members in the activity group defined at step 603.
  • the reference document is uploaded including the activity group and any ownership rights that have been defined.
  • FIG. 11A described a process of setting up a shared document from a previously unshared document.
  • FIG. 1 IB shows a flowchart of a process of setting up a new shared document from an existing shared document.
  • a user logs in. The user requests to generate a new reference document based on another shared document.
  • the user receives a list of actions that have been performed on the shared documents at a step 625.
  • the user selects a subset of the list of actions at a step 625. The subset can be selected based on time and/or specific user contributions.
  • the user requests that a snapshot document be generated based on the subset of the list of actions and the shared documents original reference document.
  • the snapshot document is saved as the new reference document at a step 631.
  • the user can create an activity group and/or assign ownership by proceeding to step 603 of FIG. 11 A.
  • FIGS. 12A and 12B show a flowchart of a process of modifying a shared document. If the user has been specified as a member of an activity group and this is the first time that the user has logged on since the activity group was created, the user can receive an e-mail notification that he or she has been specified as a member of the activity group. At any event, a user logs in at a step 651.
  • a step 652 it is determined if this is the first time that the user has logged in to the activity group. If it is the first time, the user downloads a reference document to use as a live document at a step 653. Otherwise, the user's live document can be synchronized at a step 654. Synchronization of a live document can include receiving the actions that have not been incorporated in the user's live document. For example, if a user has not logged in for some amount of time, the live document may be "stale" because it is not up to date and it can be synchronized with the current document by receiving (and accepting) the actions that were missed.
  • the user can make modifications to the live document at a step 655. If the modifications are determined to be committed at a step 657, the modifications are committed at a step 659.
  • a user can also receive modifications in the form of an action at a step 661.
  • the modifications may have been performed by another user on the shared document. If the modifications are determined to be accepted at a step 663, the modifications are accepted at a step 665.
  • FIG. 12A shows some of the ways that a live document can be modified, but there may be many others in a specific application. If the user is done at a step 673, the flow proceeds to FIG. 12B where the live document is stored locally at a step 674. The user logs out at a step 675.
  • FIG. 13 shows a flowchart of a process of committing a modification to a shared document. At a step 701, it is determined if the modification accesses a portion of the shared document that is owned by another. If the ownership is defined to be different at a step 703, the modification is canceled at a step 705 because the user did not own the portion of the shared document that was being modified.
  • step 703 If, at step 703, ownership is not different or is undefined, the modification is committed to the live document at a step 707.
  • An action is generated at a step 709 and the action is sent at a step 711.
  • FIG. 14 shows a flowchart of a process of managing a shared document. The process shown is typically performed by a server computer system.
  • a reference document is received.
  • An activity group defining members is created at a step
  • one or more actions is received.
  • the actions are stored at a step 757.
  • the actions are stored as a list of actions but other mechanisms for storing the actions can be utilized.
  • the actions are propagated to members of the activity group at a step 759.
  • a current document can be generated according to the reference document and the list of actions at a step 761.
  • FIG. 15 A a user has created a reference document.
  • the reference document shown is a word processing document and can be generated by any number of available applications. Once the reference document has been created, the user logs in to allow others to access the shared document.
  • FIG. 15B a window 803 is presented allowing the user to log in.
  • the user can create an activity group utilizing a window 805 shown in FIG. 15C.
  • a list 806 shows that there are two members defined as being in the activity group, namely users "taha” and "jay.”
  • the activity group can be created by selecting a set of users from the available users.
  • the email addresses of the users are utilized as a means of communicating that a user can join an activity group.
  • the user can select portions of the shared document and assign ownership to protect parts of the document from other users. Once a portion of the shared document is selected, the user can utilize a window that shows members of the activity group so that the user can select the user or users that are granted ownership to the selected portion.
  • a portion of the shared document 807 is shown as being owned by a user named "taha” in a window 809. Additionally, a portion of the shared document 811 is shown to be owned by a user "jay” in a window 813. In a preferred embodiment, sections that are not owned by the current user are highlighted as shown in order to provide a visual indication to the user that those portions of the shared document cannot be modified.
  • the user uploads the reference document, which can also include the activity group and any ownership information. Additionally, a window 815 can be utilized to define or select the name of the activity so that others in the activity group can join and get access to the shared document.
  • FIG. 15G the user "jay” has downloaded a copy of the reference document for modification as a live document in screen display 851.
  • a portion of the shared document 855 is owned by the user named “taha” as indicated by a window 857 (as defined by "taha” in FIG. 15D).
  • a portion of the shared document 859 is shown to be owned by the user named “jay” as indicated by a window 861.
  • the user "jay” inserts a sentence "THIS IS MIDDLE SENTENCE.” in the portion of the shared document he owns.
  • a window 859 the user is asked whether the modification should be committed. Once the modification is committed, an action will be sent to other members of the activity group, such as the user named "taha.” If the user named "taha” is currently viewing the shared document or subsequently logs on, the user will receive the action and if accepted, the modification to the user's live document will be made as shown in window 801 of FIG. 151. In a similar manner, FIG.
  • 15J shows that the user "taha” makes a modification to delete the first sentence and insert therefore the sentence 'THERE IS NO FIRST SENTENCE ANYMORE.” in his portion of the shared document.
  • a window 861 can be utilized by the user to indicate that the modification should be committed. Once committed, the user named “jay” will receive an action and if accepted, the modification will be made as shown in screen display 851 of FIG. 15K.
  • the modification can be canceled as shown in FIG. 15L.
  • the user "taha” attempts to make a modification in a portion of the shared document 863 that is owned by the user "jay.”
  • the user "taha” attempts to delete the third paragraph's first sentence and insert the sentence "LET US TRY TO CHANGE THIS SENTENCE.”
  • a window 865 informs the user that the modification has been cancelled because the user does not own the portion of the document that has been modified.

Abstract

A method and system for managing access to a shared documents by multiple users including receiving a reference document (351) providing a copy of the reference document to multiple users (353), receiving an action (355), storing the action in a list of actions (357) and sending the action to multiple users (358). Additionally, a subset of the list of actions can be utilized to generate a snapshot document of the shared document at a specific point in time.

Description

ACTION COMMUNICATION AND SYNCHRONIZATION FOR DOCUMENTS
ACCESSED BY MULTIPLE USERS
CROSS REFERENCE TO RELATED APPLICATIONS
This application is related to U.S. Patent Application No. 09/287,866, filed April 7, 1999, which is incorporated herein by reference for all purposes.
BACKGROUND OF THE INVENTION
The present invention relates to action communication regarding documents accessed by multiple users. More specifically, the invention relates to techniques for allowing multiple users to simultaneously update a document, assign ownership of sections of the document, and obtain a snapshot of a "version" of the document at any point in time.
Computers are amazing tools that allow us to perform many tasks efficiently in both the work place and the home. Perhaps the most common application that is run on computers is the word processing program that allows users to produce documents including letters, reports, articles, books, and the like. Computer applications can also be used to produce spreadsheets, slide presentations, databases, drawings, and many more.
Oftentimes, computer projects require that multiple users interact and work together. For example, the documentation for a large software application may be produced by multiple people. A simple way that access to the shared document can be managed is provided by most operating systems by allowing only one user to have access to the document (and have write capabilities).
Of course, allowing only one user to have access to the document means that the users must work serially on the project. Although working serially may be satisfactory for some projects, other projects require that the users are able to work in parallel on the project. Additionally, it would be beneficial for users to instantaneously see updates that were made by other users.
Database applications provide a good example of allowing users to work on projects in parallel. Many database applications allow multiple users to access the database simultaneously. When a user is accessing a record of the database, that record is typically locked so that the integrity of the information stored in the database is maintained. By locking a record, a database application allows multiple users to access and enter data in the database simultaneously. However, the locking methodology of database applications is an extension of the shared document access provided by most operating systems. Instead of allowing only a single user to have access to a shared document, the database applications allow many users to access the database but each one locks the record that they are currently manipulating.
It would be beneficial to have methods and systems for allowing users to view, accept/decline and synchronize modifications made by other users. Additionally, it would be beneficial to view a history of the modifications made to a document so that one could recreate an interim version. In order to reduce potential conflicts of the modifications by the multiple users, it would be beneficial to provide the capability to assign ownership to certain parts of the shared document.
SUMMARY OF THE INVENTION
The present invention provides methods and systems for communicating actions and synchronization for shared documents accessed by multiple users. When a user commits a modification to a shared document, an action is sent to other users that are accessing the shared document in the form of a copy of an original reference document. If a user accepts the action, the modification is performed on the copy that is being viewed by the user. The user can also view actions that have occurred to a reference document so that a snapshot of the document at a specific point in time can be created, such as to generate a new reference document. Additionally, in some embodiments, portions of the shared document can be specified as being owned by one or more user so that modifications of the portion of the document will be restricted. The invention allows multiple users to work together on shared documents more efficiently and with better communication than is currently available. Several embodiments of the invention are described below.
In one embodiment, the invention provides a computer implemented method of managing modifications to a document by multiple users. A reference document is received, where the reference document is the initial state of the shared document that can be accessed by the multiple users. Each of the multiple users is provided with a copy of the reference document as a live document for the user to modify. An action is received as each user commits a modification to the user's live document. The action is stored in a list of actions and sent to another user or users. In a preferred embodiment, the live document can be synchronized by sending any actions that have not been incorporated into the live document.
In another embodiment, the invention provides a computer implemented method of managing modifications to a document in a network. A copy of a reference document from a server computer system is received. A copy of the reference document is utilized as a live document for a user to modify on a client computer system. A modification to the live document is committed in the form of an action on the client computer system. The action is sent to the server computer system where the server computer system sends the action to at least one other user.
In another embodiment, the invention provides a network system that manages modifications to a document by multiple users. The network system includes multiple client computer systems with each client computer system receiving a copy of a reference document as a live document for a user to modify. A client application on each of the client computer systems generates an action when a modification to the client computer system's live document is committed. A server computer system stores the reference document and generated actions. Additionally, a server application sends the actions to at least one client computer system for incorporating the modification in the client computer system's live document.
Other features and advantages of the invention will become readily apparent upon review of the following description in association with the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 illustrates an example of a computer system that can be utilized to execute the software of an embodiment of the invention.
FIG. 2 illustrates a system block diagram of the computer system of FIG. 1.
FIG. 3 shows a network of multiple computer systems.
FIG. 4 shows a flow diagram of a shared document that is being accessed and modified by multiple users according to the present invention.
FIG. 5 shows a flowchart of a process of a client computer system managing modifications to a shared document.
FIG. 6 shows a flowchart of a process of a server computer system managing modifications to a shared document.
FIGS. 7A-7C show screen displays of a user making modifications to a shared spreadsheet document and the modifications being displayed on another user's screen.
FIGS. 8A-8D show screen displays of a user making modifications to a shared spreadsheet document and screen displays of actions that were sent between the users' computer systems. FIGS. 9A and 9C show screen displays of a user making modifications to a shared graphics document.
FIGS. 10A-10B show screen displays of two users attempting to simultaneously change the same object in a shared graphics document.
FIGS. 11A-1 IB show flowcharts of processes of setting up a shared document.
FIGS. 12A-12B show a flowchart of a process of modifying a shared document.
FIG. 13 shows a flowchart of a process of committing a modification to a shared document.
FIG. 14 shows a flowchart of a process of managing a shared document.
FIGS. 15A-15L show screen displays of an example where a word processing document is set up to be shared with ownership of certain portions to specific users and how the shared word processing document can be modified by the multiple users.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
In the description that follows, the present invention will be described in reference to embodiments that communicate modifications to a shared document in the form of actions that are sent between computer systems. However, the invention is not limited to any particular application, computer architecture, network architecture, or specific implementation. Therefore the description of the embodiments that follows is for purposes of illustration and not limitation.
FIG. 1 illustrates an example of a computer system that can be used to execute the software of an embodiment of the invention. FIG. 1 shows a computer system 1 that includes a display 3, screen 5, cabinet 7, keyboard 9, and mouse 11. Mouse 1 1 can have one or more buttons for interacting with a graphical user interface. Cabinet 7 houses a CD-ROM drive 13, system memory and a hard drive (see FIG. 2) which can be utilized to store and retrieve software programs incorporating computer code that implements the invention, data for use with the invention, and the like. Although CD-ROM 15 is shown as an exemplary computer readable storage medium, other computer readable storage media including floppy disk, tape, flash memory, system memory, and hard drive can be utilized. Additionally, a data signal embodied in a carrier wave (e.g., in a network including the Internet) can be the computer readable storage medium.
FIG. 2 shows a system block diagram of computer system 1 used to execute the software of an embodiment of the invention. As in FIG. 1, computer system 1 includes monitor 3 and keyboard 9, and mouse 11. Computer system 1 further includes subsystems such as a central processor 51, system memory 53, fixed storage 55 (e.g., hard drive), removable storage 57 (e.g., CD-ROM drive), display adapter 59, sound card 61, speakers 63, and network interface 65. Other computer systems suitable for use with the invention can include additional or fewer subsystems. For example, another computer system could include more than one processor 51 (i.e., a multi-processor system) or a cache memory. The system bus architecture of computer system 1 is represented by arrows 67. However, these arrows are illustrative of any interconnection scheme serving to link the subsystems. For example, a local bus could be utilized to connect the central processor to the system memory and display adapter. Computer system 1 shown in FIG. 2 is but an example of a computer system suitable for use with the invention. Other computer architectures having different configurations of subsystems can also be utilized.
FIG. 3 shows a network that connects multiple computer systems, such as the ones shown in FIGS. 1 and 2. As shown, multiple computer systems 1 are interconnected through a network 101. Network 101 allows the computer systems to share data and resources. Typically, the computer system that controls access to data or a resource is called the "server" because it provides access to client computer systems. The network can be any kind of network including a local area network (LAN) and wide area network (WAN), such as the Internet.
In computer networks, the server provides data or resources to clients. Accordingly, as an example, one of computer systems 1 shown in Fig. 3 can be a server computer system that provides access to a database to the other client computer systems. However, it is not necessary that the server computer system is in any way different from a client computer system and a computer system can be a server with regard to some data or resource and a client with regard to another data or resource. Therefore, the labels of "server" and "client" are for reference purposes.
The components of the invention can be implemented on various components of a network. Although the invention will be described in terms of preferred embodiments, it will be apparent to those of skill in the art that the components can be implemented in different ways without departing from the spirit and scope of the invention.
FIG. 4 shows a flow diagram of a shared document being accessed and modified by multiple users. In general, a shared document of the present invention is a document that has a reference document from which one or more users obtain a copy (also called a "live document") to access and potentially make modifications or updates. The modifications can be sent to other users and a user can receive past modifications in order to synchronize his or her live document.
With reference to FIG. 4, a reference document 201 can be thought of as the baseline for the shared document that is being accessed and modified by users 203, 205 and 207. Each of the users have access to live documents 209, 211 and 213 as shown. The live documents are copies of the reference document but they can also include modifications from one or more of the users.
When a user commits a modification to a live document, an action is generated. An action encapsulates the modification (e.g., a modification to an object of the live document) so that it can be communicated to other users and also utilized to generate a current (or final) document 215. As shown, actions 217 can flow both to and from users and their respective live document. As a simple example, user 203 can commit a modification to live document 209 that generates an action that is sent to users 205 and 207, which if accepted, can result in the modification being made in live documents 211 and 213, respectively. A live document can be "current" if all the modifications that have been made are accepted and none have been rejected. In some embodiments, ownership of portions of a live document can be granted to one or more users so that only the authorized users can modify those portions. Although the ownership of portions of a shared document will be described in more detail below, FIG. 4 shows the ownership as live document 211 includes a portion 219 that is owned by user 205 and live document 213 includes a portion 221 that is owned by user 207.
Ownership privileges are not limited only to modifications but can also be utilized to grant other privileges such as viewing, printing, saving, and the like.
Actions 217 can also be stored in a list of actions 223. The list of actions can be utilized to generate current document 215 from reference document 201. In order to generate final document 215, the modifications encapsulated in the actions in list of actions 223 can be sequentially applied to reference document 201. Additionally, as will be described below, a user can request to generate a snapshot document, which is a version of the shared document at a specific point in time and/or based on specific user contributions. As shown, a snapshot document 225 was generated from a first subset of list of actions 223. A snapshot document 227 was generated from a second subset of list of actions 223 and shows a version that is later in time to snapshot document 225.
FIG. 4 shows the flow of actions without limiting the invention to a specific network architecture. Nevertheless, in preferred embodiments, the live documents are stored and manipulated on client computer systems while reference document 201, list of actions 223, final document 215, and snapshot documents 225 and 227 are stored and generated by a server computer system. The actions can be communicated over a network of the client and server computer systems. It should be noted that it is not required that there be a dedicated server computer system nor that a computer system cannot act as both a server and a client.
FIG. 5 shows a flowchart of a process of a client computer system managing modifications to a shared document. At a step 301, a copy of a reference document is received as a live document. The live document is the user's view of the shared document and can include modifications made by the user and other users in the form of received actions.
A modification is made and committed to the live document in the form of an action at a step 303. By committing a modification, it is meant that the modification may appear in the current (or final) document. However, for many reasons the modification may not appear in the current document. For example, the modification may be inconsistent with a modification made by another user. A user can commit a modification either explicitly (e.g., by indicating acceptance) or set that commitment is automatic.
Once a modification is committed, the action is sent at a step 305. Typically, the action is sent to a server computer system that stores the action in a list of actions. Additionally, the action can also be sent to other users on client computer systems as shown in FIG. 4.
Now that a process of managing modifications to a shared document has been described in reference to a client computer system, it may be beneficial to now describe an analogous process on a server computer system. FIG. 6 shows a process of a server computer system managing modifications to a shared document. At a step 351, a reference document is received. At a step 353, copies of the reference document are provided to multiple users. The copies of the reference document will be live documents on the client computer systems of the users.
At a step 355, an action is received and the action is stored in a list of actions at a step 357. The actions can also be stored in any number of ways known to those of skill in the art. The action is sent to at least some of the multiple users at a step 358.
The flowchart shown in FIGS. 5 and 6 are designed to give a high level view of certain aspects of the invention. Additional steps can be added as will be described below. Nevertheless, in any of the flowcharts depicted herein, steps can be reordered, added, deleted, modified, and combined without departing from the spirit and scope of the invention.
FIGS. 7A-7C show screen displays of a user making a modification to a shared spreadsheet document that is committed and then appears in the live document of another user. Because the invention is directed to managing modifications of a shared document, there can be different views of the "same" shared document on each of the users' computer systems. For clarity, the same reference numeral will be utilized in different figures to indicate that the screen display is from the same computer system, although it may be at a different point in time.
FIG. 7A shows a screen display 401 of a shared spreadsheet document. As can be seen, the spreadsheet document includes data in multiple rows and columns. In FIG. 7B, the user has made a modification that adds a row 403 to the shared spreadsheet document. Upon making this modification, a window 405 is generated that asks if the user wants to commit the modification. If the user commits the modification, an action is then sent to other users so that it can be incorporated in their live documents.
FIG. 7C shows a screen display 407 of another user's view of the shared spreadsheet document. As shown, the user has accepted the modification made by the user of FIGS. 7A and 7B so that a row 409 has been added to the user's live document.
In the example shown in FIGS. 7A-7C, the user was specifically asked if the modification should be committed. In other embodiments, a user can specify that all modifications will be committed automatically. Similarly, a user can set a default that all modifications in the form of actions will be accepted or the user can explicitly accept the modifications in a way similar to window 405 in FIG. 7B.
FIGS. 8A-8D show examples of how users can view actions that have been sent and received. FIG. 8A, a screen display 451 shows a shared spreadsheet document in which a user has made modifications to a column 453. A window 455 asks whether the modifications should be committed as described above. Once modifications are committed, one or more actions will be generated and sent to a server and/or other users.
Assuming that the user accepted the modifications shown in FIG. 8A, the user can view a window 461 as shown in FIG. 8B in order to view the action or actions that have been sent. Window 461 includes a scrolling list 463 of actions that have been sent and details of a selected action are shown in area 465. Although the actions shown have been committed, the user can utilize a button 467 to commit selected actions. FIG. 8C shows a screen display 471 including a revised column 473 including the modifications shown in FIG. 8A. A window 481 in FIG. 8D shows the user actions that have been accepted. A scrolling list 483 shows the action or actions and details of a selected action are displayed in an area 485. Although the actions shown have been accepted, a user can utilize a button 487 to accept selected actions.
The present invention can be utilized to manage modifications to shared documents. The documents can be any type of computer file or combination of files including documents for word processing, spreadsheet calculations, graphics, presentations (e.g., slide presentations), and the like. FIGS. 9A-9C show how modifications to a shared graphics (or diagrams) document can be managed utilizing an embodiment of the invention.
In FIG. 9A, a screen display 501 shows a shared graphics document of a layout of a room. The user has added three objects in FIG. 9B and a window 503 has been presented to determine if the user wants to commit the modifications.
In FIG. 9C, another user has accepted the modifications shown in FIG. 9B and a screen display 505 shows that the new objects have been added.
In some embodiments, it is possible for two or more users to attempt to modify an object simultaneously. FIGS. 10A and 10B show to users that are attempting to move the same object to a different location in a shared graphics document. In FIG. 10A, a screen display 551 shows that a user is attempting to move an object 553 to a new location 555. At the same time, FIG. 10B shows a screen display 557 in which another user is attempting to move object 553 to a different location 559.
It would be difficult to commit both modifications as object 553 can not be moved to both locations. In one embodiment, rules are formulated to determine which one of conflicting actions will be committed. For example, an action that occurs last can be committed and will therefore appear in each of the live documents if accepted. In other embodiments, locking mechanisms can be utilized to ensure that only one user is able to modify an object. In preferred embodiments, ownership of objects or portions of a document are utilized to reduce the probability of inconsistent modifications. The ownership aspect of the invention will be described in more detail below.
The above has discussed many aspects of the invention and the following will provide more details on specific embodiments of the invention. FIG. 11A shows a flowchart of a process of setting up a shared document for access by multiple users. At a step 601, a reference document is generated. The reference document can be generated by a user utilizing any application such as a program for word processing, spreadsheet calculations, graphics, presentations, and the like.
At a step 602, the user logs in and creates an activity group at a step 603. An activity group is a list of people that are allowed to access the shared document. The users can be selected based on name, email addresses, network addresses, or any other identifying mechanism. In order to reduce the occurrence of inconsistent modifications, the user can assign ownership to portions of the shared document at a step 605. For example, ownership can be granted to a paragraph in a word processing document, columns, rows or cells in a spreadsheet or an object in a graphics document. Ownership can be assigned by selecting one or more members in the activity group defined at step 603. At a step 607, the reference document is uploaded including the activity group and any ownership rights that have been defined.
FIG. 11A described a process of setting up a shared document from a previously unshared document. FIG. 1 IB shows a flowchart of a process of setting up a new shared document from an existing shared document. At a step 621, a user logs in. The user requests to generate a new reference document based on another shared document. The user receives a list of actions that have been performed on the shared documents at a step 625. The user selects a subset of the list of actions at a step 625. The subset can be selected based on time and/or specific user contributions.
Once the subset of the list of actions has been selected, the user requests that a snapshot document be generated based on the subset of the list of actions and the shared documents original reference document. The snapshot document is saved as the new reference document at a step 631. The user can create an activity group and/or assign ownership by proceeding to step 603 of FIG. 11 A.
FIGS. 12A and 12B show a flowchart of a process of modifying a shared document. If the user has been specified as a member of an activity group and this is the first time that the user has logged on since the activity group was created, the user can receive an e-mail notification that he or she has been specified as a member of the activity group. At any event, a user logs in at a step 651.
At a step 652, it is determined if this is the first time that the user has logged in to the activity group. If it is the first time, the user downloads a reference document to use as a live document at a step 653. Otherwise, the user's live document can be synchronized at a step 654. Synchronization of a live document can include receiving the actions that have not been incorporated in the user's live document. For example, if a user has not logged in for some amount of time, the live document may be "stale" because it is not up to date and it can be synchronized with the current document by receiving (and accepting) the actions that were missed.
Once the user has a live document that is up to date, a number of different tasks can be performed. For example, the user can make modifications to the live document at a step 655. If the modifications are determined to be committed at a step 657, the modifications are committed at a step 659.
A user can also receive modifications in the form of an action at a step 661. The modifications may have been performed by another user on the shared document. If the modifications are determined to be accepted at a step 663, the modifications are accepted at a step 665. FIG. 12A shows some of the ways that a live document can be modified, but there may be many others in a specific application. If the user is done at a step 673, the flow proceeds to FIG. 12B where the live document is stored locally at a step 674. The user logs out at a step 675. FIG. 13 shows a flowchart of a process of committing a modification to a shared document. At a step 701, it is determined if the modification accesses a portion of the shared document that is owned by another. If the ownership is defined to be different at a step 703, the modification is canceled at a step 705 because the user did not own the portion of the shared document that was being modified.
If, at step 703, ownership is not different or is undefined, the modification is committed to the live document at a step 707. An action is generated at a step 709 and the action is sent at a step 711.
FIG. 14 shows a flowchart of a process of managing a shared document. The process shown is typically performed by a server computer system. At a step 751 , a reference document is received. An activity group defining members is created at a step
753.
At a step 755, one or more actions is received. The actions are stored at a step 757. In preferred embodiments, the actions are stored as a list of actions but other mechanisms for storing the actions can be utilized. Once actions are received, the actions are propagated to members of the activity group at a step 759. Periodically, a current document can be generated according to the reference document and the list of actions at a step 761.
Modifications to the shared document can be continually managed until it is indicated at a step 767 that the modifications are complete. The above has described embodiments of the invention but it may be beneficial to see an example of an embodiment of the invention in operation through the screen displays that are described as follows.
In FIG. 15 A, a user has created a reference document. The reference document shown is a word processing document and can be generated by any number of available applications. Once the reference document has been created, the user logs in to allow others to access the shared document. In FIG. 15B a window 803 is presented allowing the user to log in.
Once logged in, the user can create an activity group utilizing a window 805 shown in FIG. 15C. A list 806 shows that there are two members defined as being in the activity group, namely users "taha" and "jay." The activity group can be created by selecting a set of users from the available users. In a preferred embodiment, the email addresses of the users are utilized as a means of communicating that a user can join an activity group.
In FIG. 15D, the user can select portions of the shared document and assign ownership to protect parts of the document from other users. Once a portion of the shared document is selected, the user can utilize a window that shows members of the activity group so that the user can select the user or users that are granted ownership to the selected portion.
In order to illustrate ownership, a portion of the shared document 807 is shown as being owned by a user named "taha" in a window 809. Additionally, a portion of the shared document 811 is shown to be owned by a user "jay" in a window 813. In a preferred embodiment, sections that are not owned by the current user are highlighted as shown in order to provide a visual indication to the user that those portions of the shared document cannot be modified.
In FIG. 15E, the user uploads the reference document, which can also include the activity group and any ownership information. Additionally, a window 815 can be utilized to define or select the name of the activity so that others in the activity group can join and get access to the shared document.
The above has shown that the reference document was created and uploaded by a user named "taha." As shown in FIG. 15C, the user "jay" was also defined to be a member of the activity group. In a window 853, "jay" logs in in order to get access to the shared document of the activity in a screen display 851.
In FIG. 15G, the user "jay" has downloaded a copy of the reference document for modification as a live document in screen display 851. A portion of the shared document 855 is owned by the user named "taha" as indicated by a window 857 (as defined by "taha" in FIG. 15D). Similarly, a portion of the shared document 859 is shown to be owned by the user named "jay" as indicated by a window 861.
In this example, the user "jay" inserts a sentence "THIS IS MIDDLE SENTENCE." in the portion of the shared document he owns. In a window 859, the user is asked whether the modification should be committed. Once the modification is committed, an action will be sent to other members of the activity group, such as the user named "taha." If the user named "taha" is currently viewing the shared document or subsequently logs on, the user will receive the action and if accepted, the modification to the user's live document will be made as shown in window 801 of FIG. 151. In a similar manner, FIG. 15J shows that the user "taha" makes a modification to delete the first sentence and insert therefore the sentence 'THERE IS NO FIRST SENTENCE ANYMORE." in his portion of the shared document. A window 861 can be utilized by the user to indicate that the modification should be committed. Once committed, the user named "jay" will receive an action and if accepted, the modification will be made as shown in screen display 851 of FIG. 15K.
If the user attempts to make modifications in a portion of the shared document that is owned by one or more other users, the modification can be canceled as shown in FIG. 15L. As shown, the user "taha" attempts to make a modification in a portion of the shared document 863 that is owned by the user "jay." The user "taha" attempts to delete the third paragraph's first sentence and insert the sentence "LET US TRY TO CHANGE THIS SENTENCE." A window 865 informs the user that the modification has been cancelled because the user does not own the portion of the document that has been modified.
While the above is a complete description of preferred embodiments of the invention, various alternatives, modifications and equivalents can be used. It should be evident that the invention is equally applicable by making appropriate modifications to the embodiments described above. Therefore, the above description should not be taken as limiting the scope of the invention that is defined by the metes and bounds of the appended claims along with their full scope of equivalents.

Claims

CLAIMSWhat is claimed is:
1. A computer implemented method of managing modifications to a document by a plurality of users, comprising: receiving a reference document for access by a plurality of users; providing each of the plurality of users with a copy of the reference document as a live document for the user to modify; receiving an action as each user commits a modification to the user's live document; storing the action in a list of actions; and sending the action to at least one user of the plurality of users.
2. The method of claim 1, further comprising synchronizing a user's live document by sending any actions that have not been incorporated into the user's live document.
3. The method of claim 1, further comprising receiving a request from a user to generate a snapshot document accordingly to a subset of the list of actions; and generating the snapshot document from the reference document and the subset of the list of actions.
4. The method of claim 1, further comprising generating a current document from the reference document and the list of actions.
5. The method of claim 1, wherein the at least one user is a member of a defined group.
6. A computer program product that manages modifications to a document by a plurality of users, comprising: computer code that receives a reference document for access by a plurality of users; computer code that provides each of the plurality of users with a copy of the reference document as a live document for the user to modify; computer code that receives an action as each user commits a modification to the user's live document; computer code that stores the action in a list of actions; computer code that sends the action to at least one user of the plurality of users; and a computer readable medium that stores the computer codes.
7. The computer program product of claim 6, wherein the computer readable medium is selected from the group consisting of CD-ROM, floppy disk, tape, flash memory, system memory, hard drive, and data signal embodied in a carrier wave.
8. A computer implemented method of managing modifications to a document in a network, comprising: receiving a copy of a reference document from a server computer system, the copy of the reference document being a live document for a user to modify on a client computer system; committing a modification to the live document in the form of an action on the client computer system; and sending the action to the server computer system, wherein the server computer system sends the action to at least one other user.
9. The method of claim 8, wherein the server computer system synchronizes the live document by sending any actions that have not been incoφorated into the live document.
10. The method of claim 8, further comprising: receiving the list of actions from the server computer system; selecting a subset of the list of actions; and sending a request to the server computer system to generate a snapshot document from the reference document and the subset of the list of actions.
11. The method of claim 8, wherein the server computer system generates a current document from the reference document and the list of actions including actions from a plurality of users.
12. The method of claim 8, wherein the reference document has a portion that is defined as being owned by a specific user or users.
13. The method of claim 12, further comprising canceling a modification when the modification is made to the portion and the user is not defined as owning the portion.
14. The method of claim 8, further comprising specifying that modifications should be automatically committed.
15. The method of claim 8, further comprising explicitly specifying whether each modification should be committed.
16. The method of claim 8, further comprising specifying that actions should be automatically accepted.
17. The method of claim 8, further comprising explicitly specifying whether each action should be accepted.
18. A computer program product that manages changes to a document in a network, comprising: computer code that receives a copy of a reference document from a server computer system, the copy of the reference document being a live document for a user to modify on a client computer system; computer code that commits a modification to the live document in the form of an action on the client computer system; computer code that sends the action to the server computer system, wherein the server computer system sends the action to at least one other user; and a computer readable medium that stores the computer codes.
19. The computer program product of claim 18, wherein the computer readable medium is selected from the group consisting of CD-ROM, floppy disk, tape, flash memory, system memory, hard drive, and data signal embodied in a carrier wave.
20. A network system that manages modifications to a document by a plurality of users, comprising: a plurality of client computer systems, each client computer system receiving a copy of a reference document as a live document for a user to modify; a client application on each of the client computer systems that generate an action when a modification to the client computer system's live document is committed; a server computer system that stores the reference document and generated actions; and a server application that sends the actions to at least one client computer system for incoφorating the modification into the client computer system's live document.
21. The system of claim 20, wherein the server application synchronizes a client computer system's live document by sending any actions that have not been incoφorated into the computer system's live document.
22. The system of claim 20, wherein the server application also generates a snapshot document from the reference document and a subset of the generated actions.
23. The system of claim 22, wherein the subset of the generated actions is generated by the client application.
24. The system of claim 20, wherein the server application also generates a current document from the reference document and the generated actions.
PCT/US2000/041886 1999-11-05 2000-11-03 Action communication and synchronization for documents accessed by multiple users WO2001033362A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU32679/01A AU3267901A (en) 1999-11-05 2000-11-03 Action communication and synchronization for documents accessed by multiple users

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US43545999A 1999-11-05 1999-11-05
US09/435,459 1999-11-05

Publications (1)

Publication Number Publication Date
WO2001033362A1 true WO2001033362A1 (en) 2001-05-10

Family

ID=23728496

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/041886 WO2001033362A1 (en) 1999-11-05 2000-11-03 Action communication and synchronization for documents accessed by multiple users

Country Status (2)

Country Link
AU (1) AU3267901A (en)
WO (1) WO2001033362A1 (en)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009042448A2 (en) * 2007-09-21 2009-04-02 Qualcomm Incorporated Mobile group data distribution
US7941399B2 (en) 2007-11-09 2011-05-10 Microsoft Corporation Collaborative authoring
CN102077198A (en) * 2008-06-25 2011-05-25 微软公司 Structured coauthoring
US8028229B2 (en) 2007-12-06 2011-09-27 Microsoft Corporation Document merge
US8301588B2 (en) 2008-03-07 2012-10-30 Microsoft Corporation Data storage for file updates
US8346768B2 (en) 2009-04-30 2013-01-01 Microsoft Corporation Fast merge support for legacy documents
US8352870B2 (en) 2008-04-28 2013-01-08 Microsoft Corporation Conflict resolution
US8429753B2 (en) 2008-05-08 2013-04-23 Microsoft Corporation Controlling access to documents using file locks
US8825594B2 (en) 2008-05-08 2014-09-02 Microsoft Corporation Caching infrastructure
US8825758B2 (en) 2007-12-14 2014-09-02 Microsoft Corporation Collaborative authoring modes
US8984386B2 (en) 2000-11-29 2015-03-17 Dov Koren Providing alerts in an information-sharing computer-based service
KR20190033733A (en) * 2017-09-22 2019-04-01 주식회사 한글과컴퓨터 Apparatus for ensuring editing reliability to unsupported editing command from remote place and operation method thereof
KR20190033734A (en) * 2017-09-22 2019-04-01 주식회사 한글과컴퓨터 Apparatus for ensuring editing reliability to unsupported editing command from user and operation method thereof

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5455946A (en) * 1993-05-21 1995-10-03 International Business Machines Corporation Method and means for archiving modifiable pages in a log based transaction management system
US5546580A (en) * 1994-04-15 1996-08-13 Hewlett-Packard Company Method and apparatus for coordinating concurrent updates to a medical information database
US5596754A (en) * 1992-10-29 1997-01-21 Digital Equipment Corporation Method for performing private lock management

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5596754A (en) * 1992-10-29 1997-01-21 Digital Equipment Corporation Method for performing private lock management
US5455946A (en) * 1993-05-21 1995-10-03 International Business Machines Corporation Method and means for archiving modifiable pages in a log based transaction management system
US5546580A (en) * 1994-04-15 1996-08-13 Hewlett-Packard Company Method and apparatus for coordinating concurrent updates to a medical information database

Cited By (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9535582B2 (en) 2000-11-29 2017-01-03 Dov Koren Sharing of information associated with user application events
US9208469B2 (en) 2000-11-29 2015-12-08 Dov Koren Sharing of information associated with events
US10270838B2 (en) 2000-11-29 2019-04-23 Dov Koren Mechanism for sharing of information associated with events
US10986161B2 (en) 2000-11-29 2021-04-20 Dov Koren Mechanism for effective sharing of application content
US9098829B2 (en) 2000-11-29 2015-08-04 Dov Koren Sharing of information associated with events
US8984387B2 (en) 2000-11-29 2015-03-17 Dov Koren Real time sharing of user updates
US10805378B2 (en) 2000-11-29 2020-10-13 Dov Koren Mechanism for sharing of information associated with events
US10476932B2 (en) 2000-11-29 2019-11-12 Dov Koren Mechanism for sharing of information associated with application events
US10033792B2 (en) 2000-11-29 2018-07-24 Dov Koren Mechanism for sharing information associated with application events
US8984386B2 (en) 2000-11-29 2015-03-17 Dov Koren Providing alerts in an information-sharing computer-based service
US9098828B2 (en) 2000-11-29 2015-08-04 Dov Koren Sharing of information associated with events
US9105010B2 (en) 2000-11-29 2015-08-11 Dov Koren Effective sharing of content with a group of users
US9813481B2 (en) 2000-11-29 2017-11-07 Dov Koren Mechanism for sharing of information associated with events
WO2009042448A3 (en) * 2007-09-21 2010-08-19 Qualcomm Incorporated Mobile group data distribution
US8005498B2 (en) 2007-09-21 2011-08-23 Qualcomm Incorporated Mobile group data distribution
WO2009042448A2 (en) * 2007-09-21 2009-04-02 Qualcomm Incorporated Mobile group data distribution
US8352418B2 (en) 2007-11-09 2013-01-08 Microsoft Corporation Client side locking
US9547635B2 (en) 2007-11-09 2017-01-17 Microsoft Technology Licensing, Llc Collaborative authoring
US7941399B2 (en) 2007-11-09 2011-05-10 Microsoft Corporation Collaborative authoring
US10394941B2 (en) 2007-11-09 2019-08-27 Microsoft Technology Licensing, Llc Collaborative authoring
US8990150B2 (en) 2007-11-09 2015-03-24 Microsoft Technology Licensing, Llc Collaborative authoring
US8028229B2 (en) 2007-12-06 2011-09-27 Microsoft Corporation Document merge
US10057226B2 (en) 2007-12-14 2018-08-21 Microsoft Technology Licensing, Llc Collaborative authoring modes
US8825758B2 (en) 2007-12-14 2014-09-02 Microsoft Corporation Collaborative authoring modes
US20140373108A1 (en) 2007-12-14 2014-12-18 Microsoft Corporation Collaborative authoring modes
US8301588B2 (en) 2008-03-07 2012-10-30 Microsoft Corporation Data storage for file updates
US8352870B2 (en) 2008-04-28 2013-01-08 Microsoft Corporation Conflict resolution
US9760862B2 (en) 2008-04-28 2017-09-12 Microsoft Technology Licensing, Llc Conflict resolution
US8825594B2 (en) 2008-05-08 2014-09-02 Microsoft Corporation Caching infrastructure
US8429753B2 (en) 2008-05-08 2013-04-23 Microsoft Corporation Controlling access to documents using file locks
AU2009262859B2 (en) * 2008-06-25 2014-05-15 Microsoft Technology Licensing, Llc Structured coauthoring
KR101885951B1 (en) * 2008-06-25 2018-09-11 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 Structured coauthoring
CN102077198A (en) * 2008-06-25 2011-05-25 微软公司 Structured coauthoring
US8417666B2 (en) 2008-06-25 2013-04-09 Microsoft Corporation Structured coauthoring
KR20150091527A (en) * 2008-06-25 2015-08-11 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 Structured coauthoring
TWI459217B (en) * 2008-06-25 2014-11-01 Microsoft Corp Method, computer system, and computer storage medium for coauthoring
US8346768B2 (en) 2009-04-30 2013-01-01 Microsoft Corporation Fast merge support for legacy documents
KR20190033734A (en) * 2017-09-22 2019-04-01 주식회사 한글과컴퓨터 Apparatus for ensuring editing reliability to unsupported editing command from user and operation method thereof
KR101999580B1 (en) 2017-09-22 2019-10-01 주식회사 한글과컴퓨터 Apparatus for ensuring editing reliability to unsupported editing command from remote place and operation method thereof
KR101999584B1 (en) 2017-09-22 2019-10-01 주식회사 한글과컴퓨터 Apparatus for ensuring editing reliability to unsupported editing command from user and operation method thereof
KR20190033733A (en) * 2017-09-22 2019-04-01 주식회사 한글과컴퓨터 Apparatus for ensuring editing reliability to unsupported editing command from remote place and operation method thereof

Also Published As

Publication number Publication date
AU3267901A (en) 2001-05-14

Similar Documents

Publication Publication Date Title
US10936573B2 (en) Cross-ACL multi-master replication
US10719621B2 (en) Providing unique views of data based on changes or rules
US6675299B2 (en) Method and apparatus for document management utilizing a messaging system
US8868499B2 (en) Method and system for pushing data to subscribers in an on-demand service
US9164992B2 (en) Application update system, method and computer program product
US9275069B1 (en) Managing disconnected investigations
US20170068434A1 (en) Managing entity organizational chart
US20070220065A1 (en) Method, system, and product for maintaining software objects during database upgrade
US7503075B2 (en) Access trimmed user interface
WO2011091163A1 (en) Metadata-configurable systems and methods for network services
WO2001033362A1 (en) Action communication and synchronization for documents accessed by multiple users
US8549007B1 (en) System and method for indexing meta-data in a computer storage system
US9766949B2 (en) System and method for locking exclusive access to a divided resource
US20040049520A1 (en) System, method, and apparatus for sharing revision control databases
WO2018204102A1 (en) Stowing and unstowing browser tabs in groups each corresponding to a different subject
JP2006260074A (en) Cad data management device
JPH0954720A (en) Data base system
WO2000060433A2 (en) Techniques for communicating events among users and applications

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: COMMUNICATION UNDER RULE 69 EPC (EPO FORM 1205 OF 16.01.2003)

122 Ep: pct application non-entry in european phase