Simultaneous multi-user document editing system
First Claim
1. A method for simultaneous multi-user editing of a document by a plurality of users including a first user and a second user, the method comprising:
- (a) dividing the document into two or more sections;
(b) storing each of the sections in a separate container, wherein each of said containers may be locked by one of said users;
(c) locking one of said containers at the request of said first user;
(d) allowing said first user to edit the section of said document stored within said one container;
(e) locking another of said containers at the request of said second user; and
(f) allowing said second user to edit the section of said document stored within said other container, wherein steps (d) and (f) occur during at least partially overlapping time periods.
3 Assignments
0 Petitions
Accused Products
Abstract
A system and methods for simultaneous editing of one or more documents by two or more distinct users is disclosed. Each document is divided into a number of mutually exclusive sections, which together contain the entire document. Each section is stored in a separate data container. Each document has primary data of a primary data type. The containers that store the primary data for each document have a common parent container, which is at the head of a document sub-tree corresponding to the document. A document may also include embedded data, which may be of the same or a different type than the primary data. The embedded data is typically stored in embedded data containers, which are typically child containers of the primary data containers. Each of the parent containers is a child container of a root container, which is at the head of a container tree in which all documents in a workspace are stored. Each workspace also includes a member list. The system may include more than one workspace, and may include users who are members of more than one workspace. Editors are provided for editing documents and embedded data of a number of data types that are supported by the system. Each editor is configured to allow a member to edit data in a section of a document. Typically, data may only be edited after obtaining an exclusive lock for the container in which the section is stored. However, in some cases, data may be edited without first locking the associated container and the modified container may be blindly posted. Different sections of a document may be simultaneously locked by different members, allowing the members to simultaneously edit the two different sections. Editing changes to a document are posted by each editor to a workspace server, which then broadcasts the changes to all connected members of the workspace, allowing members to view changes to a document after they are posted.
654 Citations
40 Claims
-
1. A method for simultaneous multi-user editing of a document by a plurality of users including a first user and a second user, the method comprising:
-
(a) dividing the document into two or more sections;
(b) storing each of the sections in a separate container, wherein each of said containers may be locked by one of said users;
(c) locking one of said containers at the request of said first user;
(d) allowing said first user to edit the section of said document stored within said one container;
(e) locking another of said containers at the request of said second user; and
(f) allowing said second user to edit the section of said document stored within said other container, wherein steps (d) and (f) occur during at least partially overlapping time periods. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of editing a document comprising:
-
(a) obtaining an up-to-date local copy of a document sub-tree corresponding to said document, wherein said local copy corresponds to a master copy of said document sub-tree;
(b) allowing a first user to select a section of said document;
(c) attempting to lock a selected container within said document sub-tree corresponding to said selected section; and
(d) if said selected container is locked in step (c), then;
i. allowing the first user to edit the locked section to produce a modified version of said locked section; and
ii. posting said modified version of said locked section to a workspace server, wherein said workspace server is configured to modify said master copy of said document sub-tree to correspond to said modified version. - View Dependent Claims (9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
15. A method of storing a document having primary data of a primary data type, the method comprising:
-
(a) specifying a primary section type corresponding to the primary data type;
(b) dividing the primary data into one or more sections corresponding to the section type; and
(c) storing each of said sections in a primary data container, wherein each of said primary data containers includes a field for indicating whether the container has an editing lock set for it.
-
-
31. A system for storing a document comprising:
-
(a) a network;
(b) a workspace server coupled to said network;
(c) a client coupled to said network;
(d) a file system for storing said documents, wherein
-
-
32. A computer readable medium containing a data structure for storing a document comprising:
-
(a) one or more primary data containers for storing a section of said document, wherein each primary data container stores a mutually exclusive section, wherein each of said primary data containers includes a field for indicating whether an editing lock has been set for the container;
(b) a parent container having a direct or indirect link to each of said primary data containers. - View Dependent Claims (33, 34, 35, 36, 37, 38, 39, 40)
-
Specification