×

Simultaneous multi-user document editing system

  • US 7,249,314 B2
  • Filed: 08/21/2001
  • Issued: 07/24/2007
  • Est. Priority Date: 08/21/2000
  • Status: Expired due to Term
First Claim
Patent Images

1. A method for simultaneous multi-user editing of a document by a plurality of users including a first user and a second user, wherein the document includes primary data, the method comprising:

  • (a) dividing the primary data into three or more mutually exclusive sections, including a first section and a last section;

    (b) storing each of the sections in a separate primary container, wherein;

    (i) each of the primary containers is a sibling container;

    (ii) the primary container in which the first section is stored is designated as a head primary container;

    (iii) the primary container in which the last section is stored is designated as a tail primary container;

    (iv) the primary containers are part of a master document tree data structure stored in a file system accessible to a server; and

    (v) the master document tree includes a parent container; and

    (c) linking the primary containers to form a linked list corresponding to the order of the sections in the document, and wherein the primary container corresponding to the first section is at the head of the linked list and the primary container corresponding to the last section is at the tail of the linked list;

    (d) recording a link to the head primary container in the parent container;

    (e) recording a link to the tail primary container in the parent container;

    (f) transmitting a copy of at least part of the master document tree from the server to a first client operated by the first user;

    (g) transmitting a copy of at least part of the master document tree from the server to a second client operated by the second user;

    (h) receiving a first lock request from the first client, the first lock request identifying a first group of primary containers and wherein the first group of primary containers corresponds to a first part of the document;

    (j) determining whether the first user may lock each of the primary containers in the first group of primary containers by at least ensuring that no primary container in the first group of primary containers is locked by a user other than the first user;

    (k) if the result in (j) is that the first user may lock each of the primary containers in the first group of primary containers, then;

    (i) locking each of the primary containers in the first group of primary containers and identifying each of the primary containers in the first group of primary containers as being locked by the first user;

    (ii) transmitting a first confirm lock message to the first client;

    (iii) transmitting a first update message to the second client, wherein the first update message indicates that each primary container in the first group of primary containers has been locked;

    (iv) receiving a first post request from the first client, wherein the first post request includes one or more new primary containers corresponding to a modified version of the first part of the document;

    (v) modifying the master document tree in accordance with the first post request including inserting the one or more new primary containers into the linked list of primary containers; and

    (vi) transmitting a second update message to the second client, wherein the second update message includes the one or more new primary containers; and

    (l) if the result in (j) is that the first user may not lock each primary container in the first group of primary containers, then transmitting a refused lock message to the first user,wherein the parent container does not include a direct link to any of the primary containers in the linked list other than the head primary container and the tail primary container.

View all claims
  • 3 Assignments
Timeline View
Assignment View
    ×
    ×