US20110184906A1 - Client Side Locking - Google Patents
Client Side Locking Download PDFInfo
- Publication number
- US20110184906A1 US20110184906A1 US13/079,605 US201113079605A US2011184906A1 US 20110184906 A1 US20110184906 A1 US 20110184906A1 US 201113079605 A US201113079605 A US 201113079605A US 2011184906 A1 US2011184906 A1 US 2011184906A1
- Authority
- US
- United States
- Prior art keywords
- user
- document
- data
- computing device
- unit
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1454—Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/169—Annotation, e.g. comment data or footnotes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1813—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/401—Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference
- H04L65/4015—Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference where at least one of the additional parallel sessions is real time or time sensitive, e.g. white board sharing, collaboration or spawning of a subconference
Definitions
- Traditional collaborative editing tends to be performed serially. Users take turns accessing a document, editing the document, and storing their edits. The accessing user may place a lock on the file to inhibit other users from editing the document when the accessing user is editing the document.
- the iterative editing process can cause delays since each user may wait for a turn at editing the document.
- the iterative editing process may be difficult to manage. For example, each user may need to keep track of who is editing which portions of the document, which version of the document is the most recent, and when the user will have a turn.
- each user can edit a different copy of a document. Subsequently, all of the edited copies may be merged into a single document. This large scale merge also may cause delays, lead to numerous editing conflicts, and/or be difficult to manage.
- the user responsible for merging the documents may be required to track the relationship between the documents. The user also may be responsible for resolving conflicts among two or more of the edited copies.
- a collaborative authoring application provides an authoring environment in which two or more users can edit a document concurrently. Each user edits a copy of the document, periodically sends updates to a master copy of the document, and periodically receives updates from the master copy of the document.
- the authoring environment generally inhibits the users from providing conflicting editing instructions to the master copy of the document. In other embodiments, the authoring environment can inhibit editing conflicts if the users edit the document at different times.
- each document being authored can be divided into one or more data units.
- Each user can generate a content lock about one or more of the data units. Generating a content lock about a data unit inhibits other users from editing the locked data unit.
- content locks can grow and/or shrink automatically as the user edits the document.
- the authoring environment synchronizes both content and metadata among the user copies and the master copy of the document.
- the authoring environment synchronizes metadata automatically and synchronizes content only at the request of one of the users.
- the metadata includes content locks.
- FIG. 1 is a schematic block diagram illustrating an example authoring system having features that are examples of inventive aspects of the disclosure
- FIG. 2 is a schematic block diagram illustrating the authoring system of FIG. 1 in which a document stored on first computing device can include content and metadata in accordance with the principles of the present disclosure
- FIG. 3 is a flowchart illustrating an exemplary synchronization process by which an authoring system can synchronize a copy of a document stored on a user computing device with the master copy of the document in accordance with the principles of the present disclosure
- FIG. 4 is a schematic block diagram of a document having five units of data, the second of which is locked, in accordance with the principles of the present disclosure
- FIG. 5 is a schematic block diagram of the document of FIG. 4 in which a content lock has been added to the third data unit in accordance with the principles of the present disclosure
- FIG. 6 is a schematic block diagram of the document of FIG. 4 in which the content locks on the second and third data units have been released and a new content lock has been added to the fifth data unit in accordance with the principles of the present disclosure;
- FIG. 7 is a schematic block diagram of a lock table in accordance with the principles of the present disclosure.
- FIG. 8 is a flowchart illustrating an example synchronization processes implemented by an authoring application to share updates made by a user of the authoring application with other users in accordance with the principles of the present disclosure
- FIG. 9 is a flowchart illustrating another example synchronization process implemented by an authoring application to instantiate updates made by other users into the document being edited with the authoring application in accordance with the principles of the present disclosure
- FIG. 10 is a schematic block diagram of an authoring environment including a first computing device on which a master copy of a document to be authored is to be stored in accordance with the principles of the present disclosure
- FIG. 11 is a schematic block diagram of a user computing system configured to implement an authoring environment in accordance with the principles of the present disclosure
- FIG. 12 is a schematic block diagram of an authoring system illustrating a synchronization cycle implemented by the authoring application on the user computing device in accordance with the principles of the present disclosure
- FIG. 13 is a flowchart illustrating an operational flow for another exemplary synchronization process by which a user computing system can send and receive updates while editing a document in accordance with the principles of the present disclosure
- FIGS. 14-26 are schematic block diagrams of the caches stored on a first computing device, a first user computing device, and a second user computing device at different points in time during a collaborative authoring session in which a first user and a second user of the first and second user computing devices edit a document concurrently in accordance with the principles of the present disclosure
- FIGS. 27-31 illustrate changes to an exemplary user interface of a first authoring application as a first user and a second user collaboratively author a document in accordance with the principles of the present disclosure.
- FIG. 1 illustrates an example authoring system 100 having features that are examples of inventive aspects of the disclosure.
- the authoring system 100 includes a storage device 120 storing a master copy of a document 150 .
- the storage device 120 can include a computing device.
- the storage device 120 can include one or more storage devices (e.g., a network of computing devices).
- the authoring system 100 also includes at least one user computing device 110 that is communicatively coupled to the storage device 120 .
- Each of the user computing devices 110 can edit the document 150 by creating a user copy 155 of the document 150 and editing the user copy 155 .
- the user copies 155 of the document 150 are synchronized when the user computing devices 110 periodically send to the storage device 120 updates to be shared with the other user computing devices and periodically obtain from the storage device 120 updates from other user computing devices.
- a user computing device 110 includes any computing device that obtains a user copy of a document to be authored from a master copy of the document.
- the user computing device 110 can be different from the storage device 120 or can include a different user account implemented on the storage device 120 .
- a computing device that acts as a storage device 120 for one document may act as a user computing device 110 for a different document and vice versa.
- each user computing device 110 A, 110 B, 110 C, 110 D can send to the storage device 120 updates generated by the user of the user computing device and can request from the storage device 120 updates generated by the users of the other user computing devices.
- the storage device 120 can be a server computing device and the user computing devices 110 A, 110 B, 110 C, 110 D can be client computing devices.
- the document 150 stored on the storage device 120 can include content 152 and metadata 154 .
- Authoring applications 130 on the user computing devices 110 process and manipulate the content and metadata of the user copies 155 of the document 150 .
- metadata 154 can be stored separately from content 152 .
- content 152 can be stored in the document 150 and metadata 154 can be stored in a table (see FIG. 7 ) separate from the document 150 .
- the metadata 154 can be stored within the document 150 .
- the user computing devices 110 can synchronize updates to the content 152 separately from updates to the metadata 154 .
- metadata updates 154 are automatically synchronized among the storage device 120 and user computing devices 110 , whereas content updates 152 from each user computing device 110 are synchronized at the request of the respective user.
- FIG. 3 is a flowchart illustrating an exemplary synchronization process 300 by which an authoring system 100 can synchronize a copy 155 of a document stored on a user computing device 110 with the master copy 150 of the document stored on the storage device 120 .
- the synchronization process 300 initializes and begins at a start module 302 and proceeds to a first update operation 304 .
- the first update operation 304 synchronizes the metadata of the copy 155 with the metadata of the document 150 without requiring any interaction with the user.
- the first update operation 304 can provide an exchange of metadata between the storage device 120 and the user computing device 110 at periodic time intervals.
- the first update operation 304 provides for an exchange of metadata every few seconds. In other embodiments, however, the first update operation 304 can provide for the exchange of metadata to occur in shorter or longer time intervals.
- a request module 306 determines whether a request to synchronize content has been received. For example, the request module 306 can determine whether a user of one of the user computing devices 110 has requested to share content changes with other users. In another embodiment, the request module 306 can determine whether a user of one of the user computing devices 110 has requested to view content changes made by other users.
- the synchronization process 300 cycles back to the first update operation 304 and begins again. If the request module 306 , however, determines that a request to synchronize content has been received, then the synchronization process 300 proceeds to a second update operation 308 , which provides an exchange of content between the storage device 120 and the user computing device 110 . The synchronization process 300 completes and ends at a stop module 310 .
- content updates 152 refer to any addition, deletion, and/or revision made to the substantive content of a document.
- content updates for a word processing document can include added paragraphs (i.e., or sections thereof), deleted paragraphs (i.e., or section thereof), and/or revised paragraphs (i.e., or sections thereof).
- content updates for a presentation document can include added, deleted, and/or revised pictures, text, animations, sounds, and other such data objects.
- Metadata updates 154 refer to any addition, deletion, and/or revision made to metadata of the document.
- document metadata include content locks, presence information, and other such data.
- content locks inhibit editing of content within the lock by users that do not own the lock.
- Presence information indicates which users have indicated an intention to edit the document as will be discussed in greater detail herein.
- content locks inhibit editing conflicts by indicating which portions of a document have been claimed by another user.
- the content locks can prevent (i.e., bar) a user from editing a portion of a document that has been claimed by another user.
- the user can choose to break the content lock and edit the portion of the document. In such cases, the lock can warn the user that conflicts may arise when editing the locked section.
- FIG. 4 is a schematic block diagram of a document 400 having five units of data 410 , 420 , 430 , 440 , 450 .
- the document 400 is a word processing document and the units of data 410 - 450 are paragraphs of text.
- the document 400 is a presentation document and the first unit of data 410 is a title or subject heading, the second unit of data 420 is a picture or other data object, and the remaining units of data 430 , 440 , 450 are blocks of text.
- a first user can generate a lock about one or more of the units of data 410 - 450 of the document 400 .
- the second unit of data 420 has been locked by the first user, as indicated by the cross-hatching.
- the first user has indicated the first user intends to edit the unit of data 420 .
- the user can generate the lock when the user is actively editing the unit of data 420 .
- the user can generate the lock and then edit the unit of data 420 at a later time.
- the authoring application managing the document 400 may prevent a user other than the first user from editing the locked data unit 420 .
- a content lock generated by a first user is displayed to all other users who access the document during the life of the lock.
- the first user also can view the content lock.
- Locks can be displayed using different types of indicia.
- the background of a locked unit of data may be colored, shaded, or patterned (e.g., see data unit 420 of FIG. 4 ).
- the content (e.g., text, picture, shape, or other data object) of the locked unit may be colored, shaded, or patterned.
- a box, bracket, or symbol can be displayed adjacent the locked unit of data to indicate the lock.
- a content lock may be generated around one or more units of data within a document.
- the content lock can be generated implicitly without express instruction from the user.
- an authoring application may generate a content lock about a data unit when a user positions a cursor within, highlights, or otherwise selects the data unit.
- an authoring application may generate a content lock about a data unit when the user begins editing the data unit.
- an authoring application may generate a content lock about a data unit when a user saves edits made to the data unit.
- the authoring application may generate content locks around multiple, inter-dependent data units within the document even if only one of the data units is claimed by a user.
- a user may explicitly define a content lock about one or more data units.
- a content lock can grow to include additional units of data within the document and/or shrink to release one or more units of data within the document.
- the content lock can grow to include only contiguous units of data. For example, as shown in FIG. 5 , the content lock (e.g., see cross-hatching) around the second data unit 420 can expand to include the third data unit 430 if the user selects or edits the third data unit 430 .
- a content lock or portion thereof generally can be released at the discretion of the user who generated the content lock. In some embodiments, the user who generated the content lock releases the content lock by selecting or editing another data unit.
- the user must indicate the user has finished editing the data unit before the authoring application will release the lock.
- the authoring application may release the lock only after the user has provided instructions to store the document.
- the authoring application may release a lock after the user selects or begins editing a remote data unit, such as the fifth data unit 450 of FIG. 6 .
- the authoring application only releases a lock after both movement to a non-contiguous data unit and a finalization act (e.g., instructions to store the document).
- a content lock can be released explicitly by an administrator or another user.
- lock metadata can be stored in a variety of different formats.
- the lock metadata of FIG. 7 is stored in a table format 500 .
- the lock table 500 of FIG. 7 includes a list of users, each of whom is identified with a user identifier (e.g., an identification number) that is uniquely assigned to the user.
- Data units to be locked are identified with unit identifiers (e.g., identification numbers) that are uniquely assigned to each data unit within a document.
- the lock table 500 associates the unit identifiers of the one or more data units to be locked with the user identifiers of the users who own the locks.
- lock table 500 data units 512 and 514 are associated with a first user 510 . Other users, therefore, are inhibited from editing data units 512 and 514 .
- Data unit 522 is associated with user 520 . Other users, including the first user 510 , therefore, are inhibited from editing data unit 522 .
- the fourth user 540 has not locked any portion of the document and so is not associated with any unit identifiers. In other embodiments, however, lock metadata can be stored in a different format or within the document.
- the lock table 500 can be arranged by unit identifier instead of by user identifier.
- Presence metadata also can be stored in a variety of formats. For example, presence metadata can be stored in the lock table 500 of FIG. 7 . In another embodiment, however, presence metadata can be stored in a separate table or in a different format. Presence metadata includes the user identifier of each user that is currently accessing the document or that has staked a claim (e.g., generated a content lock) on a data unit of the document. For example, a metadata table, such as the lock table 500 , can store the user identifier of each user having a claim to at least one data unit of the document. Like lock metadata, presence metadata can be synchronized automatically.
- FIGS. 8 and 9 are flowcharts illustrating example synchronization processes 600 , 700 by which content and locks can be synchronized among multiple computing devices.
- the first synchronization process 600 is implemented by an authoring application to share with other users updates made by a first user with the authoring application.
- the second synchronization process 700 is implemented by an authoring application to instantiate updates made by other users into the document being edited with the authoring application.
- the first synchronization process 600 of FIG. 8 initializes and begins at a start module 602 and proceeds to a receive operation 604 .
- the receive operation 604 receives an instruction from the first user to perform an editing operation on one or more data units within a document.
- editing operations include adding, editing, and/or deleting data units (e.g., text, drawings, pictures, shapes, headings, etc.) or portions thereof, adding and/or deleting formatting of the data units, rearranging a sequence of the data units, and other such operations.
- a first determination module 606 checks if the data unit on which the editing operation is to be performed is locked. For example, the first determination module 606 can access a lock table, such as the lock table 500 of FIG. 7 , to determine whether a unit identifier assigned to the data unit is associated with any user. In another embodiment, the first determination module 606 can otherwise determine whether the data unit is locked.
- a lock table such as the lock table 500 of FIG. 7
- a generate operation 608 creates a content lock on the data unit.
- the generate operation 608 can add an entry to the lock table 500 of FIG. 7 associating the unit identifier of the data unit with the user identifier of the first user.
- a transmit operation 610 sends lock metadata indicating the existence of the newly generated lock to the device storing the master copy of the document.
- the transmit operation 610 can send the lock metadata from a user computing device, such as computing device 110 A of FIG. 1 , to a storage device, such as storage device 120 .
- the lock metadata includes instructions that describe incremental edits (e.g., delta states) to the lock metadata.
- An implement operation 614 performs the editing operation on the data unit.
- a second determination module 612 obtains ownership information for the lock.
- the synchronization process 600 may enable the first user to choose to break the lock and then proceed to generate operation 608 .
- the second determination module 612 determines the lock is owned by the first user, then the synchronization process 600 proceeds to the implement operation 614 discussed above.
- the synchronization process 600 can determine whether the lock on any data units should be released.
- a third determination operation 616 determines whether the first user has provided an instruction (either explicitly or implicitly) to share content changes to the data unit resulting from implementing the editing operation. For example, the third determination operation 616 may determine whether the first user has provided an instruction to store the document. In another embodiment, the third determination operation 616 may determine whether the first user has selected a “share changes” button or other such indicia. In another embodiment, the third determination operation 616 may determine an auto-save feature has been implemented by the application. If the third determination operation 616 determines instructions to share have not been provided, then the synchronization process 600 cycles back to the receive operation 604 and begins again.
- the synchronization process 600 proceeds to a transmit operation 618 , which sends content updates to the device storing the master copy of the document.
- Content updates indicate changes made to the content of the document by the editing operation.
- the transmit operation 618 can send the content updates from a user computing device 110 A of FIG. 1 to a storage device 120 .
- content updates include a newly generated version of the document.
- content updates indicate incremental edits (e.g., delta states) to the content between the current user copy of the document and the master copy of the document.
- the synchronization process 600 completes and ends at the stop module 620 as discussed above.
- the second synchronization process 700 of FIG. 9 initializes and begins at a start module 702 and proceeds to a receive operation 704 .
- the receive operation 704 receives an update based on changes made to the document by other users.
- the update can include changes to the content and/or metadata of the document.
- the receive operation 704 can poll the device storing the master copy of the document and request updates.
- the device storing the master copy can push changes to the authoring application.
- a first determination module 706 determines whether the update includes any changes to the metadata of the document. For example, the first determination module 706 can determine whether any other user has established a new lock or released a lock on a data unit. In another embodiment, the first determination module 706 can determine whether another user has accessed the document.
- an implement operation 708 automatically instantiates the received metadata updates. For example, the implement operation 708 can cause the authoring application to update a lock table, such as lock table 500 of FIG. 7 , based on the metadata update. However, if the first determination module 706 determines no metadata update has been received, then the second synchronization process 700 proceeds to a second determination module 710 .
- the second determination module 710 determines whether the update includes any changes to the content of the document. For example, the second determination module 710 can determine whether any data units have been added, deleted, revised, or moved. If the second determination module 710 determines a content update has not been received, then the second synchronization process 700 cycles back to the receive operation 704 to begin again. However, if the second determination module 710 determines a content update has been received, then the second synchronization process 700 proceeds to an indicate operation 712 .
- the indicate operation 712 alerts the first user that a content update is available for viewing.
- the indicate operation 712 can display a graphic, text box, numerical indicia, or other message indicating the availability of the content update.
- the indicate operation 712 provides information to the user indicating how many updates are available. Other information about the updates (e.g., user who made the updates, timestamp, etc.) also may be indicated.
- a third determination module 714 determines whether the authoring application has received instructions from the first user (either explicitly or implicitly) to view and/or instantiate the content updates. For example, the third determination module 714 can determine whether the user has selected a view option (e.g., via a button, menu, or other interface tool) of the authoring application. In another embodiment, the third determination module 714 may determine the user has selected an auto-instantiate option. If the third determination module 714 determines the authoring application has not received such instructions from the first user, then the second synchronization process 700 cycles back to the receive operation 704 and begins again.
- a view option e.g., via a button, menu, or other interface tool
- an instantiate operation 716 displays the content updates to the first user. For example, in one embodiment, the instantiate operation 716 can merge the available content updates into the first user's copy of the document. In another embodiment, the instantiate operation 716 can annotate the first user's copy of the document to indicate which content has changed. Additional annotations can indicate which users made which changes. In one embodiment, the instantiate operation 716 performs conflict resolution between the user copy and the updates.
- the second synchronization process 700 completes and ends at a stop module 718 .
- FIGS. 10-12 provide greater detail in how synchronization between the user copy and the master copy of the document is implemented by a user computing device.
- FIG. 10 is a schematic block diagram of an authoring system 800 including a storage device 820 on which a master copy of a document to be authored is to be stored.
- the authoring system 800 also includes at least one user computing device 810 communicatively coupled to the storage device 820 .
- the user computing device 810 includes an authoring application 812 configured to provide an authoring environment in which a user can create and/or manipulate a document to be authored.
- the user computing device 810 also includes a cache 814 , a layer object (“LO”) 816 , and a synchronization manager (“sync manager”) 818 .
- the cache 814 stores a user copy of the document to be authored.
- the cache 814 also stores the metadata, including lock and presence metadata, associated with the document. Updates to the content and metadata of the document also can be stored in the cache 814 .
- the layer object 816 provides an interface between the authoring application 812 and the cache 814 .
- the layer object 816 also provides an interface between the authoring application 812 and the sync manager 818 .
- the sync manager 818 communicates with the storage device 820 and provides an interface between the storage device 820 and the cache 814 .
- the sync manager 818 can send updates to and obtain updates from the storage device 820 and the cache 814 .
- an authoring environment having features that are examples of inventive aspects in accordance with the principles of the disclosure can be implemented on a user computing device (e.g., a personal computer, a server computer, a notebook computer, a PDA, a Smartphone, or any other such computing device).
- a user computing device e.g., a personal computer, a server computer, a notebook computer, a PDA, a Smartphone, or any other such computing device.
- a non-limiting embodiment of a user computing system 900 configured to implement an authoring environment is described herein with reference to FIG. 11 .
- the exemplary computing system 900 for implementing the principles of the disclosure includes a user computing device, such as user computing device 910 .
- the user computing device 910 typically includes at least one processing unit 915 for executing applications and programs stored in system memory 920 .
- the system memory 920 may include, but is not limited to, RAM, ROM, EEPROM, flash memory, CD-ROM, digital versatile disks (DVD) or other optical storage devices, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or other memory technology.
- System memory 920 typically stores an operating system 922 , such as the WINDOWS® operating systems from MICROSOFT CORPORATION of Redmond, Wash., suitable for controlling the operation of the computing device 910 .
- System memory 920 also may include a document cache 926 in which a user copy 927 of a document can be stored. Metadata 929 of the document also can be stored within the user cache 926 .
- the system memory 920 also may store one or more software applications, such as authoring applications 924 for creating and editing documents.
- authoring applications 924 suitable for authoring documents in accordance with the principles of the present disclosure is MICROSOFT® OFFICE WORD authoring software from MICROSOFT CORPORATION of Redmond, Wash.
- Other non-limiting examples of authoring applications include POWERPOINT® presentation software and VISIO® drawing and diagramming software, both also from MICROSOFT CORPORATION of Redmond, Wash.
- Computing device 910 also may have input device(s) 930 , such as a keyboard, mouse, pen, voice input device, touch input device, etc., for entering and manipulating data.
- input device(s) 930 such as a keyboard, mouse, pen, voice input device, touch input device, etc.
- Output device(s) 935 such as a display screen, speakers, printer, etc., also may be included. These output devices 935 are well known in the art and need not be discussed at length herein.
- the computing device 910 also may contain communication connections 940 that allow the device 910 to communicate with other computing devices, for example, the storage device 820 of FIG. 10 , over a network in a distributed computing environment (e.g., an intranet or the Internet).
- communication device media 940 includes wired media such as a wired network or direct-wired connection, and wireless media, such as acoustic, RF, infrared and other wireless media.
- FIG. 12 is a schematic block diagram of an authoring system 1000 illustrating the synchronization cycle implemented by the authoring application on the user computing device.
- the authoring system 1000 includes a storage device 1020 on which the document to be authored is to be stored and a user computing device 1010 .
- the user computing device 1010 includes an authoring application 1012 , a cache 1014 , a layer object 1016 , and a sync manager 1018 .
- the cache 1014 of the user computing device 1010 is configured to store a base copy 1013 of the document to be authored, a working copy 1015 , an upload copy 1017 , and a download copy 1019 .
- the cache 1014 also is configured to store metadata 1011 of the document.
- FIG. 13 is a flowchart illustrating an operational flow for an exemplary synchronization process 1100 by which a user computing system, such as user computing device 1010 , can send and receive updates while authoring a document.
- the synchronization process 1100 initializes and begins at a start module 1102 and proceeds to an obtain operation 1104 .
- the obtain operation 1104 causes the sync manager 1018 of the user computing device 1010 to obtain from the storage device 1020 a download copy 1017 of the document to be authored.
- the download copy 1017 of the document reflects the state of the master copy of the document at the time the document is obtained from the storage device 1020 .
- the obtain operation 1104 can cause the sync manager 1018 to pull from the storage device 1020 a copy of the most recent version of the master copy of the document.
- a generate operation 1106 creates a base copy 1013 and a working copy 1015 of the document based on the download copy 1017 .
- the working copy 1015 of the document can be manipulated by the authoring application 1012 to allow the user to edit the document. Accordingly, the working copy 1015 reflects the current state of the document as edited by the user of the authoring application 1012 .
- the base copy 1013 reflects the state of the document at the time just before the user begins editing the document.
- the layer object 1016 generates the base copy 1013 of the document and the working copy 1015 and provides the working copy 1015 to the authoring application 1012 .
- a poll operation 1108 causes the sync manager 1018 to contact the storage device 1020 periodically to obtain an updated download copy 1017 of the document being authored.
- the download copy 1017 reflects the state of the master copy of the document at the time of download.
- the master copy is stored on storage device 1020 and may include changes made by other users since the base copy 1013 was generated.
- the sync manager 1018 stores any updated download copy 1017 of the document in the cache 1014 .
- An edit operation 1110 receives any instructions provided by the user to the authoring application 1012 to perform an editing operation on the document.
- the application 1012 makes the edits to the working copy of the document 1015 .
- the authoring application 1012 also makes metadata changes as appropriate when implementing the editing operations.
- the layer object 1016 checks the cache 1014 to determine whether any updates have been received during the poll operation 1108 (i.e., whether an updated download copy 1017 is available in the cache 1014 ). In one embodiment, the first determination module 1112 is performed at periodic intervals regardless of whether the user has edited the working copy of the document. In different embodiments, the first determination module 1112 can be performed, e.g., every few seconds, milliseconds, or minutes.
- the synchronization process 1100 proceeds to a second determination module 1116 , which will be discussed in greater detail below. If the layer object 1016 determines a new download copy 1017 is available, however, then the synchronization process 1100 proceeds to a sync operation 1114 .
- the sync operation 1114 automatically instantiates any metadata updates found in the download copy 1017 without requiring any interaction with the user of the authoring application 1012 .
- the layer object 1016 may automatically instantiates any lock metadata reflected in the download copy 1017 into the working copy 1015 of the document.
- the sync operation 1114 does not automatically instantiate any content updates from the download copy 1017 into the working copy 1015 . Rather, the sync operation 1114 only instantiates content updates when the user of the authoring application 1012 provides instructions to integrate the content updates. In other embodiments, however, the sync operation 1114 automatically instantiates the content updates. In one embodiment, the sync operation 1114 causes the layer object 1016 to merge the updated download copy 1017 with the working copy 1015 when instructions to integrate are provided. In one embodiment, the sync operation 1114 is the same as the second synchronization process 700 shown in FIG. 9 . In other embodiments, however, other synchronization processes can be used to integrate the updates with the working copy 1015 of the document. The synchronization process 1100 proceeds from the sync operation 1114 to the second determination module 1116 .
- the second determination module 1116 determines whether the user made any changes to the working copy 1015 of the document or to the metadata 1011 of the document during the edit operation 1110 . If the second determination module 1116 determines that no edits (i.e., neither content nor metadata) have been made, then the synchronization process 1100 cycles back to the poll operation 1108 and begins again. If the second determination module 1116 determines the user has made content edits (e.g., revising a data unit of the document) and/or metadata edits (e.g., locking a data unit of the document), however, then a share operation 1118 synchronizes the edits with the storage device 1020 .
- content edits e.g., revising a data unit of the document
- metadata edits e.g., locking a data unit of the document
- the share operation 1118 causes the sync manager 1018 of the user computing device 1010 to send automatically to the storage device 1020 any changes to the metadata of the document without requiring any interaction from the user of the authoring application 1012 .
- the share operation 1118 does not cause the sync manager 1018 to send content updates to the storage device 1020 automatically. Rather, the sync manager 1018 only sends content updates to the storage device 1020 when instructed to do so by the layer object 1016 . Automatically pushing only metadata may enhance the user experience by increasing update efficiency, reduce network bandwidth usage, and provide conflict inhibition without requiring auto-syncing of content.
- the share operation 1118 automatically pushes content as well as metadata.
- the share operation 1118 is the same as the first synchronization process 600 of FIG. 8 . In other embodiments, however, other synchronization processes can be utilized.
- the user when the user wishes to share content revisions made by the user, the user will instruct the authoring application 1012 to submit the revisions to the storage device 1020 for integration with the master copy of the document.
- the authoring application 1012 will instruct the layer object 1016 to generate an upload copy 1019 of the document.
- the layer object 1016 generates the upload copy 1019 based on the working copy 1015 .
- the sync manager 1018 attempts to push the upload copy 1019 to the storage device 1020 .
- the synchronization process 1100 completes and ends at a stop module 1120 .
- the share operation 1118 cannot send content updates to the storage device 1020 until all previous content updates received from the storage device 1020 have been instantiated into the working copy 1015 of the document.
- the upload copy 1019 can be generated by merging the working copy 1015 of the document with the most recently obtained download copy 1017 .
- the sync manager 1018 polls the storage device 1020 for an updated download copy 1017 when the layer object 1016 attempts to generate an upload copy 1019 .
- the sync manger 1018 fails to push the upload copy 1019 to the storage device 1020 (e.g., if the upload copy 1019 does not reflect the most recent changes instantiated into the master copy), then the sync manager 1018 retry with a revised update document 1019 .
- the sync manager 1018 may obtain a new download copy 1017 from the storage device 1020 and the layer object 1016 may generate a new upload copy from the working copy and the new download copy 1017 .
- the sync manager 1018 will continue to revise and push an upload copy 1019 to the storage device 1020 until successful.
- FIGS. 14-31 the principles of the present disclosure can be better understood by walking through some example applications.
- FIGS. 14-26 represent changes made to a cache of a storage device, a cache 1214 a first user computing device, and a cache 1234 of a second user computing device during a collaborative authoring session in which a first user and a second user edit a document concurrently. In other embodiments, however, the first and second users can edit the document at different times using the same processes.
- the first user has created a document and saved an initial draft of the document to a storage device as a master copy 1250 .
- the first user may have accessed the master copy 1250 of an existing document.
- the second user has not yet accessed the document.
- the master copy 1250 of the document has a corresponding master lock table.
- the master lock table is displayed as part of the master copy 1250 .
- the master lock table can be stored separately from the master copy 1250 of the document.
- locks associated with each copy of the document e.g., base copy, working copy, download copy, and upload copy
- a user cache 1214 , 1234 are shown in FIGS. 14-26 as part of the copy.
- metadata may be separately stored for each document copy or for each user.
- the master copy 1250 of the document includes a first data unit containing the text “Hello World” and a lock E 1 on the first data unit.
- the lock E 1 is owned by (i.e., assigned to) the first user.
- the content and metadata of the master copy 1250 are reflected in the base copy and download copy stored in the cache 1214 of the first user. Because the first user sent the initial draft of the document to the storage device, the upload copy stored in the cache 1214 also reflects the content and metadata of the master copy 1250 .
- the first user Since sending the initial draft to the storage device, the first user has edited the working copy of the document to include a second data unit containing the text “Testing.” A second lock E 2 has been added about the second data unit.
- the second lock E 2 is a new lock assigned to the user.
- the second lock E 2 is an extension of the first lock E 1 .
- a new unit identifier can be assigned to the first user in a metadata table stored in the cache 1214 of the first user.
- the first user creates the second lock E 2 by moving a cursor to start a new data unit (e.g., paragraph) and typing “Testing.”
- the first lock E 1 is not yet released because the first user has not yet indicated editing on the first data unit is final (e.g., by saving after moving the cursor).
- the second user accesses the master copy 1250 of the document stored on the storage device.
- the second user obtains a download copy of the document and stores the download copy into the cache 1234 of the second user.
- the download copy includes the content and metadata of the master copy 1250 .
- the download copy does not include the most recent content and metadata contained in the working copy of the first user.
- the layer object of the second user generates a base copy and a working copy of the document based on the download copy.
- the authoring application utilized by the second user displays the content and any locks of the working copy to the second user.
- the second user can edit the document even before a coauthoring session has been fully established (i.e., before the first and second user computing devices learn of the presence of the other).
- the second user is allowed to edit the second working copy of the document while the first and second user computing devices exchange greetings (i.e., handshake)
- greetings i.e., handshake
- metadata is not exchanged automatically before the first and second computing devices learn of the existence of one another.
- the first and second computing devices each have discovered the existence of the other. Accordingly, each of the first and second computing devices has begun transmitting metadata updates automatically to each other.
- the first authoring application provides updated lock metadata (e.g., the second lock) from the lock table of the first user to the storage device 1220 (e.g., via a layer object and sync manager).
- the authoring application does not provide updated content information to the storage device 1220 , however, because no instructions to share content updates have been received from the first user.
- the storage device has integrated the updated lock metadata (e.g., the second lock E 2 ) into the master metadata table of the master copy 1250 .
- the lock metadata has not yet been obtained by the second user computing device.
- the second user computing device has polled the storage device and obtained a new download copy of the master copy 1250 .
- a new download copy also has been generated (e.g., via a layer object) on the first cache 1214 based on the upload copy.
- the first user computing device also may have polled the storage device and obtained a new download copy of the master copy 1250 . Both of the new download copies reflect the updated lock information (e.g., lock E 2 ) from the working copy of the first user.
- the second computing device generates (e.g., via a layer object) a new working copy based on the new download copy. Accordingly, the new working copy of the second computing device contains the second lock E 2 on the second data unit. The new working copy does not include the second data unit itself, however.
- the working copy of the second user computing device displays a blank/empty data unit and indicates that the blank/empty data unit is locked. In another embodiment, the working copy does not display the second data unit at all and the lock E 2 is not indicated to the second user until the second data unit is visible to the second user.
- the second user adds a third data unit to the document and a third lock E 3 around the third data unit (e.g., in the memory of the authoring application).
- the third data unit contains the text “Goodbye World”.
- the second authoring application generates (e.g., via a layer object) a working copy of the document including the third data unit and the third lock E 3 .
- the second authoring application also automatically provides (e.g., via a sync manager) the third lock E 3 to the storage device. However, the second authoring application does not provide the third data unit to the storage device.
- the first user releases the first lock E 1 after the first user indicates the first user has finished editing the first data unit.
- the first user can provide instructions to store the document when the cursor of the first user is positioned within the second data unit.
- the second data unit may be located remote from the first data unit.
- the finalization indication provided by the first user does not indicate the first user wishes to share content changes made by the first user. Accordingly, the first authoring application does not generate (e.g., via a layer object) an upload copy containing content changes for distribution to the storage device.
- the third lock E 3 has been stored in the master lock table of the master copy 1250 of the document on the storage device.
- the first user computing device subsequently polls (e.g., via a sync manager) the storage device to check for updates.
- the first user computing device obtained (e.g., via a sync manager) a new download copy of the document from the storage device based on the master copy 1250 .
- the new download copy contains the third lock E 3 .
- the first authoring application automatically instantiates (e.g., via a layer object) the third lock E 3 into the working copy of the first authoring application.
- the third lock E 3 optionally may be displayed to the first user using the user interface of the first authoring application.
- the second user releases the third lock E 3 when the second user indicates the second user has finished editing the third data unit.
- the third lock E 3 is removed from the metadata table of the second user.
- the third lock E 3 is removed from the metadata tables corresponding to the working copy of the second authoring application.
- the finalization indication provided by the second user indicates the second user wishes to share content changes with other users.
- the second user may remove a cursor from the third data unit and then provide instructions to store the document.
- the second authoring application may generate an upload copy containing the content changes based on the working copy.
- the upload copy also can be based on any content updates (e.g., in this case none) found in the download copy that had not yet been instantiated into the working copy.
- the upload copy includes the third data unit including the phrase “Goodbye World.”
- the storage device obtains the third data unit from the upload copy of the second user computing device and merges the third data unit into the master copy 1250 of the storage device.
- the lock table associated with the master copy 1250 indicates the third lock E 3 has been released.
- the second authoring application copies (e.g., via a layer object) the upload copy to the download copy and the base copy of the second cache 1234 .
- the first user computing device obtains (e.g., via a sync manager) a new download copy of the master copy 1250 of the document.
- the first authoring application determines (e.g., via a layer object) the new download copy has been obtained and determines the new download copy includes content changes.
- the authoring application automatically merges any new locks (none in this case) into the working copy of the cache 1214 .
- the user interface of the first authoring application may indicate content updates are available for viewing.
- the first user chooses to instantiate the content updates available in the cache 1214 into the working copy of the document. Accordingly, the authoring application merges the download copy stored in the cache 1214 with the working copy of the first authoring application.
- the third data unit is added to the working copy of the first authoring application and is displayed to the first user.
- the third lock E 3 is released in the metadata table associated with the working copy of the first authoring application. The first user, therefore, may instruct the first authoring application to edit the third data unit.
- FIGS. 27-31 illustrate changes to an exemplary user interface 2000 of a first authoring application as a first user and a second user collaboratively author a document 2010 .
- the first user Jane Doe
- the second user John Doe
- the document 2010 includes a first data unit 2012 , a second data unit 2014 , a third data unit 2016 , and a fourth data unit 2018 .
- the first user places a content lock 2022 around the first data unit 2012 .
- the first user may move her cursor 2015 to the first data unit 2012 .
- the first user may provide instructions to perform one or more editing operations on the first data unit 2012 .
- the first user has added text to the first data unit 2012 .
- the lock on the first data unit inhibits the second user from editing the first data unit 2012 .
- the first lock 2022 prevents the second user from editing the first data unit 2012 .
- the first lock 2022 warns the second user against editing the first data unit 2012 , but does not bar editing by the second user.
- the first lock 2022 merely indicates the first user has expressed an intention to edit the first data unit 2012 .
- the second user has placed a content lock 2024 about the third data unit 2016 .
- the second lock may be visible on the user interface 2000 of the first authoring application, but any changes made to the third data unit 2016 by the second user are not visible yet.
- the second lock 2024 is indicated by the user interface 2000 by displaying a bracket indicating the scope of the second lock 2024 .
- the second lock 2024 also can include a nametag indicating the owner of the second lock 2024 .
- the nametag includes text identifying the second user and an icon. The icon can further identify a user by color, symbol, or other graphic.
- the first authoring application receives content updates for the document 2010 .
- the second user has chosen to share content changes with other users and accordingly merged content updates into a master copy of the document 2010 (e.g., via one of the synchronization processes described above).
- a sync manager of the first authoring application obtained the updates from the master copy of the document 2010 by polling the device storing the master copy.
- the user interface 2000 of the first authoring application displays an alert 2030 to the first user indicating the availability of the content update.
- a text box 2030 appears in the user interface 2000 .
- the second lock or text within the second lock can change color, pattern, or formatting.
- an update counter increments when each new update is available.
- the first user can choose to view/instantiate the changes made by the second user or to ignore the content updates.
- the first user can continue to edit any unlocked data units within the document 2010 while ignoring the content updates.
- the first user must instantiate the content updates before merging her updates with the master copy.
- the first user instructs the first authoring application to instantiate the content updates into the document 2010 displayed by the user interface 2000 of the first authoring application. Content changes made by the second user are now visible to the first user.
- Embodiments of the disclosure may be implemented as a computer process (method), a computing system, or as an article of manufacture, such as a computer program product or computer readable media.
- the processes (programs) can be implemented in any number of ways, including the structures described in this document. One such way is by machine operations, of devices of the type described in this document. Another optional way is for one or more of the individual operations of the methods to be performed on a computing device in conjunction with one or more human operators performing some of the operations. These human operators need not be collocated with each other, but each can be only with a machine that performs a portion of the program.
- the computer program product may be a computer storage media readable by a computer system and encoding a computer program of instructions for executing a computer process.
- the computer program product may also be a propagated signal on a carrier readable by a computing system and encoding a computer program of instructions for executing a computer process.
- the term computer readable media as used herein includes both storage media and communication media.
- the disclosure may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like.
- the disclosure may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network.
- program modules may be located in both local and remote memory storage devices.
- program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data types.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- Human Resources & Organizations (AREA)
- Entrepreneurship & Innovation (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Operations Research (AREA)
- Tourism & Hospitality (AREA)
- Data Mining & Analysis (AREA)
- Economics (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Quality & Reliability (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- General Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Document Processing Apparatus (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
- This application claims the benefit of U.S. patent application Ser. No. 11/938,082, filed Nov. 9, 2007, the entirety of which is hereby incorporated by reference.
- Traditional collaborative editing tends to be performed serially. Users take turns accessing a document, editing the document, and storing their edits. The accessing user may place a lock on the file to inhibit other users from editing the document when the accessing user is editing the document. The iterative editing process can cause delays since each user may wait for a turn at editing the document. In addition, the iterative editing process may be difficult to manage. For example, each user may need to keep track of who is editing which portions of the document, which version of the document is the most recent, and when the user will have a turn.
- In other types of traditional collaborative editing, each user can edit a different copy of a document. Subsequently, all of the edited copies may be merged into a single document. This large scale merge also may cause delays, lead to numerous editing conflicts, and/or be difficult to manage. For example, the user responsible for merging the documents may be required to track the relationship between the documents. The user also may be responsible for resolving conflicts among two or more of the edited copies.
- It is with respect to these and other considerations that the present disclosure has been made.
- This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended as an aid in determining the scope of the claimed subject matter.
- A collaborative authoring application provides an authoring environment in which two or more users can edit a document concurrently. Each user edits a copy of the document, periodically sends updates to a master copy of the document, and periodically receives updates from the master copy of the document. The authoring environment generally inhibits the users from providing conflicting editing instructions to the master copy of the document. In other embodiments, the authoring environment can inhibit editing conflicts if the users edit the document at different times.
- According to aspects of the disclosure, each document being authored can be divided into one or more data units. Each user can generate a content lock about one or more of the data units. Generating a content lock about a data unit inhibits other users from editing the locked data unit. In one embodiment, content locks can grow and/or shrink automatically as the user edits the document.
- According to other aspects of the disclosure, the authoring environment synchronizes both content and metadata among the user copies and the master copy of the document. In general, the authoring environment synchronizes metadata automatically and synchronizes content only at the request of one of the users. In one embodiment, the metadata includes content locks.
- These and other features and advantages will be apparent from a reading of the following detailed description and a review of the associated drawings. It is to be understood that both the foregoing general description and the following detailed description are explanatory only and are not restrictive of aspects as claimed.
-
FIG. 1 is a schematic block diagram illustrating an example authoring system having features that are examples of inventive aspects of the disclosure; -
FIG. 2 is a schematic block diagram illustrating the authoring system ofFIG. 1 in which a document stored on first computing device can include content and metadata in accordance with the principles of the present disclosure; -
FIG. 3 is a flowchart illustrating an exemplary synchronization process by which an authoring system can synchronize a copy of a document stored on a user computing device with the master copy of the document in accordance with the principles of the present disclosure; -
FIG. 4 is a schematic block diagram of a document having five units of data, the second of which is locked, in accordance with the principles of the present disclosure; -
FIG. 5 is a schematic block diagram of the document ofFIG. 4 in which a content lock has been added to the third data unit in accordance with the principles of the present disclosure; -
FIG. 6 is a schematic block diagram of the document ofFIG. 4 in which the content locks on the second and third data units have been released and a new content lock has been added to the fifth data unit in accordance with the principles of the present disclosure; -
FIG. 7 is a schematic block diagram of a lock table in accordance with the principles of the present disclosure; -
FIG. 8 is a flowchart illustrating an example synchronization processes implemented by an authoring application to share updates made by a user of the authoring application with other users in accordance with the principles of the present disclosure; -
FIG. 9 is a flowchart illustrating another example synchronization process implemented by an authoring application to instantiate updates made by other users into the document being edited with the authoring application in accordance with the principles of the present disclosure; -
FIG. 10 is a schematic block diagram of an authoring environment including a first computing device on which a master copy of a document to be authored is to be stored in accordance with the principles of the present disclosure; -
FIG. 11 is a schematic block diagram of a user computing system configured to implement an authoring environment in accordance with the principles of the present disclosure; -
FIG. 12 is a schematic block diagram of an authoring system illustrating a synchronization cycle implemented by the authoring application on the user computing device in accordance with the principles of the present disclosure; -
FIG. 13 is a flowchart illustrating an operational flow for another exemplary synchronization process by which a user computing system can send and receive updates while editing a document in accordance with the principles of the present disclosure; -
FIGS. 14-26 are schematic block diagrams of the caches stored on a first computing device, a first user computing device, and a second user computing device at different points in time during a collaborative authoring session in which a first user and a second user of the first and second user computing devices edit a document concurrently in accordance with the principles of the present disclosure; and -
FIGS. 27-31 illustrate changes to an exemplary user interface of a first authoring application as a first user and a second user collaboratively author a document in accordance with the principles of the present disclosure. - In the following detailed description, references are made to the accompanying drawings that form a part hereof, and in which are shown by way of illustrations specific embodiments or examples. While the disclosure will be described in the general context of program modules that execute in conjunction with an application program that runs on an operating system on a computer system, those skilled in the art will recognize that the disclosure also may be implemented in combination with other program modules. The embodiments described herein may be combined and other embodiments may be utilized without departing from the spirit or scope of the present disclosure. The following detailed description is therefore not to be taken in a limiting sense, and the scope of the invention is defined by the appended claims and their equivalents.
- Embodiments of the present disclosure provide an environment in which multiple users can collaboratively author a document.
FIG. 1 illustrates anexample authoring system 100 having features that are examples of inventive aspects of the disclosure. Theauthoring system 100 includes astorage device 120 storing a master copy of adocument 150. In one embodiment, thestorage device 120 can include a computing device. In another embodiment, thestorage device 120 can include one or more storage devices (e.g., a network of computing devices). - The
authoring system 100 also includes at least one user computing device 110 that is communicatively coupled to thestorage device 120. Each of the user computing devices 110 can edit thedocument 150 by creating a user copy 155 of thedocument 150 and editing the user copy 155. The user copies 155 of thedocument 150 are synchronized when the user computing devices 110 periodically send to thestorage device 120 updates to be shared with the other user computing devices and periodically obtain from thestorage device 120 updates from other user computing devices. - As the term is used herein, a user computing device 110 includes any computing device that obtains a user copy of a document to be authored from a master copy of the document. The user computing device 110 can be different from the
storage device 120 or can include a different user account implemented on thestorage device 120. In one embodiment, a computing device that acts as astorage device 120 for one document may act as a user computing device 110 for a different document and vice versa. - In the example shown, four
user computing devices storage device 120. In other embodiments, however, any number of computing devices 110 may be coupled to thestorage device 120. In the example shown, eachuser computing device storage device 120 updates generated by the user of the user computing device and can request from thestorage device 120 updates generated by the users of the other user computing devices. In one embodiment, thestorage device 120 can be a server computing device and theuser computing devices - As shown in
FIG. 2 , thedocument 150 stored on thestorage device 120 can includecontent 152 andmetadata 154.Authoring applications 130 on the user computing devices 110 process and manipulate the content and metadata of the user copies 155 of thedocument 150. In some embodiments,metadata 154 can be stored separately fromcontent 152. For example,content 152 can be stored in thedocument 150 andmetadata 154 can be stored in a table (seeFIG. 7 ) separate from thedocument 150. In other embodiments, however, themetadata 154 can be stored within thedocument 150. - In general, the user computing devices 110 can synchronize updates to the
content 152 separately from updates to themetadata 154. In general, metadata updates 154 are automatically synchronized among thestorage device 120 and user computing devices 110, whereas content updates 152 from each user computing device 110 are synchronized at the request of the respective user. -
FIG. 3 is a flowchart illustrating anexemplary synchronization process 300 by which anauthoring system 100 can synchronize a copy 155 of a document stored on a user computing device 110 with themaster copy 150 of the document stored on thestorage device 120. Thesynchronization process 300 initializes and begins at astart module 302 and proceeds to afirst update operation 304. - The
first update operation 304 synchronizes the metadata of the copy 155 with the metadata of thedocument 150 without requiring any interaction with the user. For example, thefirst update operation 304 can provide an exchange of metadata between thestorage device 120 and the user computing device 110 at periodic time intervals. In one embodiment, thefirst update operation 304 provides for an exchange of metadata every few seconds. In other embodiments, however, thefirst update operation 304 can provide for the exchange of metadata to occur in shorter or longer time intervals. - A
request module 306 determines whether a request to synchronize content has been received. For example, therequest module 306 can determine whether a user of one of the user computing devices 110 has requested to share content changes with other users. In another embodiment, therequest module 306 can determine whether a user of one of the user computing devices 110 has requested to view content changes made by other users. - If the
request module 306 determines that no request to synchronize content has been made, then thesynchronization process 300 cycles back to thefirst update operation 304 and begins again. If therequest module 306, however, determines that a request to synchronize content has been received, then thesynchronization process 300 proceeds to asecond update operation 308, which provides an exchange of content between thestorage device 120 and the user computing device 110. Thesynchronization process 300 completes and ends at astop module 310. - As the term is used herein, content updates 152 refer to any addition, deletion, and/or revision made to the substantive content of a document. For example, content updates for a word processing document can include added paragraphs (i.e., or sections thereof), deleted paragraphs (i.e., or section thereof), and/or revised paragraphs (i.e., or sections thereof). In another embodiment, content updates for a presentation document can include added, deleted, and/or revised pictures, text, animations, sounds, and other such data objects.
- As the term is used herein, metadata updates 154 refer to any addition, deletion, and/or revision made to metadata of the document. Non-limiting examples of document metadata include content locks, presence information, and other such data. As will be discussed herein, content locks inhibit editing of content within the lock by users that do not own the lock. Presence information indicates which users have indicated an intention to edit the document as will be discussed in greater detail herein.
- Referring to
FIGS. 4-9 , content locks inhibit editing conflicts by indicating which portions of a document have been claimed by another user. In some embodiments, the content locks can prevent (i.e., bar) a user from editing a portion of a document that has been claimed by another user. In other embodiments, however, the user can choose to break the content lock and edit the portion of the document. In such cases, the lock can warn the user that conflicts may arise when editing the locked section. - For example,
FIG. 4 is a schematic block diagram of adocument 400 having five units ofdata document 400 is a word processing document and the units of data 410-450 are paragraphs of text. In another embodiment, thedocument 400 is a presentation document and the first unit ofdata 410 is a title or subject heading, the second unit ofdata 420 is a picture or other data object, and the remaining units ofdata - A first user can generate a lock about one or more of the units of data 410-450 of the
document 400. In the example shown inFIG. 4 , the second unit ofdata 420 has been locked by the first user, as indicated by the cross-hatching. By generating the content lock, the first user has indicated the first user intends to edit the unit ofdata 420. For example, the user can generate the lock when the user is actively editing the unit ofdata 420. In another embodiment, the user can generate the lock and then edit the unit ofdata 420 at a later time. As noted above, the authoring application managing thedocument 400 may prevent a user other than the first user from editing the lockeddata unit 420. - In general, a content lock generated by a first user is displayed to all other users who access the document during the life of the lock. In one embodiment, the first user also can view the content lock. Locks can be displayed using different types of indicia. For example, in one embodiment, the background of a locked unit of data may be colored, shaded, or patterned (e.g., see
data unit 420 ofFIG. 4 ). In another embodiment, the content (e.g., text, picture, shape, or other data object) of the locked unit may be colored, shaded, or patterned. In yet another embodiment, a box, bracket, or symbol can be displayed adjacent the locked unit of data to indicate the lock. - A content lock may be generated around one or more units of data within a document. In some embodiments, the content lock can be generated implicitly without express instruction from the user. For example, an authoring application may generate a content lock about a data unit when a user positions a cursor within, highlights, or otherwise selects the data unit. In another embodiment, an authoring application may generate a content lock about a data unit when the user begins editing the data unit. In another embodiment, an authoring application may generate a content lock about a data unit when a user saves edits made to the data unit. In some embodiments, the authoring application may generate content locks around multiple, inter-dependent data units within the document even if only one of the data units is claimed by a user. In other embodiments, a user may explicitly define a content lock about one or more data units.
- In some embodiments, a content lock can grow to include additional units of data within the document and/or shrink to release one or more units of data within the document. In one embodiment, the content lock can grow to include only contiguous units of data. For example, as shown in
FIG. 5 , the content lock (e.g., see cross-hatching) around thesecond data unit 420 can expand to include thethird data unit 430 if the user selects or edits thethird data unit 430. A content lock or portion thereof generally can be released at the discretion of the user who generated the content lock. In some embodiments, the user who generated the content lock releases the content lock by selecting or editing another data unit. - In one embodiment, the user must indicate the user has finished editing the data unit before the authoring application will release the lock. For example, the authoring application may release the lock only after the user has provided instructions to store the document. In another embodiment, the authoring application may release a lock after the user selects or begins editing a remote data unit, such as the
fifth data unit 450 ofFIG. 6 . In another embodiment, the authoring application only releases a lock after both movement to a non-contiguous data unit and a finalization act (e.g., instructions to store the document). In other embodiments, a content lock can be released explicitly by an administrator or another user. - Referring to
FIG. 7 , lock metadata can be stored in a variety of different formats. For example, the lock metadata ofFIG. 7 is stored in atable format 500. The lock table 500 ofFIG. 7 includes a list of users, each of whom is identified with a user identifier (e.g., an identification number) that is uniquely assigned to the user. Data units to be locked are identified with unit identifiers (e.g., identification numbers) that are uniquely assigned to each data unit within a document. The lock table 500 associates the unit identifiers of the one or more data units to be locked with the user identifiers of the users who own the locks. - For example, in the lock table 500,
data units 512 and 514 are associated with a first user 510. Other users, therefore, are inhibited fromediting data units 512 and 514.Data unit 522 is associated with user 520. Other users, including the first user 510, therefore, are inhibited fromediting data unit 522. The fourth user 540 has not locked any portion of the document and so is not associated with any unit identifiers. In other embodiments, however, lock metadata can be stored in a different format or within the document. For example, the lock table 500 can be arranged by unit identifier instead of by user identifier. - Presence metadata also can be stored in a variety of formats. For example, presence metadata can be stored in the lock table 500 of
FIG. 7 . In another embodiment, however, presence metadata can be stored in a separate table or in a different format. Presence metadata includes the user identifier of each user that is currently accessing the document or that has staked a claim (e.g., generated a content lock) on a data unit of the document. For example, a metadata table, such as the lock table 500, can store the user identifier of each user having a claim to at least one data unit of the document. Like lock metadata, presence metadata can be synchronized automatically. -
FIGS. 8 and 9 are flowcharts illustrating example synchronization processes 600, 700 by which content and locks can be synchronized among multiple computing devices. Thefirst synchronization process 600 is implemented by an authoring application to share with other users updates made by a first user with the authoring application. Thesecond synchronization process 700 is implemented by an authoring application to instantiate updates made by other users into the document being edited with the authoring application. - The
first synchronization process 600 ofFIG. 8 initializes and begins at astart module 602 and proceeds to a receiveoperation 604. The receiveoperation 604 receives an instruction from the first user to perform an editing operation on one or more data units within a document. Non-limiting examples of editing operations include adding, editing, and/or deleting data units (e.g., text, drawings, pictures, shapes, headings, etc.) or portions thereof, adding and/or deleting formatting of the data units, rearranging a sequence of the data units, and other such operations. - A
first determination module 606 checks if the data unit on which the editing operation is to be performed is locked. For example, thefirst determination module 606 can access a lock table, such as the lock table 500 ofFIG. 7 , to determine whether a unit identifier assigned to the data unit is associated with any user. In another embodiment, thefirst determination module 606 can otherwise determine whether the data unit is locked. - If the
first determination module 606 determines the data unit is not locked, then a generateoperation 608 creates a content lock on the data unit. For example, in one embodiment, the generateoperation 608 can add an entry to the lock table 500 ofFIG. 7 associating the unit identifier of the data unit with the user identifier of the first user. A transmitoperation 610 sends lock metadata indicating the existence of the newly generated lock to the device storing the master copy of the document. For example, the transmitoperation 610 can send the lock metadata from a user computing device, such ascomputing device 110A ofFIG. 1 , to a storage device, such asstorage device 120. In one embodiment, the lock metadata includes instructions that describe incremental edits (e.g., delta states) to the lock metadata. An implementoperation 614 performs the editing operation on the data unit. - Alternatively, if the
first determination module 606 determines the data unit is locked, then asecond determination module 612 obtains ownership information for the lock. In one embodiment, if thesecond determination module 612 determines the lock is owned by another user, then thesynchronization process 600 completes and ends at astop module 620 without performing the editing operation. In another embodiment (not shown), thesynchronization process 600 may enable the first user to choose to break the lock and then proceed to generateoperation 608. However, if thesecond determination module 612 determines the lock is owned by the first user, then thesynchronization process 600 proceeds to the implementoperation 614 discussed above. In another embodiment (not shown), thesynchronization process 600 can determine whether the lock on any data units should be released. - A
third determination operation 616 determines whether the first user has provided an instruction (either explicitly or implicitly) to share content changes to the data unit resulting from implementing the editing operation. For example, thethird determination operation 616 may determine whether the first user has provided an instruction to store the document. In another embodiment, thethird determination operation 616 may determine whether the first user has selected a “share changes” button or other such indicia. In another embodiment, thethird determination operation 616 may determine an auto-save feature has been implemented by the application. If thethird determination operation 616 determines instructions to share have not been provided, then thesynchronization process 600 cycles back to the receiveoperation 604 and begins again. - If the
determination operation 616 determines instructions to share have been provided, however, then thesynchronization process 600 proceeds to a transmitoperation 618, which sends content updates to the device storing the master copy of the document. Content updates indicate changes made to the content of the document by the editing operation. For example, the transmitoperation 618 can send the content updates from auser computing device 110A ofFIG. 1 to astorage device 120. In one embodiment, content updates include a newly generated version of the document. In another embodiment, content updates indicate incremental edits (e.g., delta states) to the content between the current user copy of the document and the master copy of the document. Thesynchronization process 600 completes and ends at thestop module 620 as discussed above. - The
second synchronization process 700 ofFIG. 9 initializes and begins at astart module 702 and proceeds to a receiveoperation 704. The receiveoperation 704 receives an update based on changes made to the document by other users. The update can include changes to the content and/or metadata of the document. In one embodiment, the receiveoperation 704 can poll the device storing the master copy of the document and request updates. In another embodiment, the device storing the master copy can push changes to the authoring application. - A
first determination module 706 determines whether the update includes any changes to the metadata of the document. For example, thefirst determination module 706 can determine whether any other user has established a new lock or released a lock on a data unit. In another embodiment, thefirst determination module 706 can determine whether another user has accessed the document. - If the
first determination module 706 determines a metadata update has been received, then an implementoperation 708 automatically instantiates the received metadata updates. For example, the implementoperation 708 can cause the authoring application to update a lock table, such as lock table 500 ofFIG. 7 , based on the metadata update. However, if thefirst determination module 706 determines no metadata update has been received, then thesecond synchronization process 700 proceeds to asecond determination module 710. - The
second determination module 710 determines whether the update includes any changes to the content of the document. For example, thesecond determination module 710 can determine whether any data units have been added, deleted, revised, or moved. If thesecond determination module 710 determines a content update has not been received, then thesecond synchronization process 700 cycles back to the receiveoperation 704 to begin again. However, if thesecond determination module 710 determines a content update has been received, then thesecond synchronization process 700 proceeds to an indicateoperation 712. - The indicate
operation 712 alerts the first user that a content update is available for viewing. For example, the indicateoperation 712 can display a graphic, text box, numerical indicia, or other message indicating the availability of the content update. In one embodiment, the indicateoperation 712 provides information to the user indicating how many updates are available. Other information about the updates (e.g., user who made the updates, timestamp, etc.) also may be indicated. - A
third determination module 714 determines whether the authoring application has received instructions from the first user (either explicitly or implicitly) to view and/or instantiate the content updates. For example, thethird determination module 714 can determine whether the user has selected a view option (e.g., via a button, menu, or other interface tool) of the authoring application. In another embodiment, thethird determination module 714 may determine the user has selected an auto-instantiate option. If thethird determination module 714 determines the authoring application has not received such instructions from the first user, then thesecond synchronization process 700 cycles back to the receiveoperation 704 and begins again. - If the
third determination module 714 determines the authoring application has received instructions from the first user, then aninstantiate operation 716 displays the content updates to the first user. For example, in one embodiment, theinstantiate operation 716 can merge the available content updates into the first user's copy of the document. In another embodiment, theinstantiate operation 716 can annotate the first user's copy of the document to indicate which content has changed. Additional annotations can indicate which users made which changes. In one embodiment, theinstantiate operation 716 performs conflict resolution between the user copy and the updates. Thesecond synchronization process 700 completes and ends at astop module 718. -
FIGS. 10-12 provide greater detail in how synchronization between the user copy and the master copy of the document is implemented by a user computing device.FIG. 10 is a schematic block diagram of anauthoring system 800 including astorage device 820 on which a master copy of a document to be authored is to be stored. Theauthoring system 800 also includes at least oneuser computing device 810 communicatively coupled to thestorage device 820. - The
user computing device 810 includes anauthoring application 812 configured to provide an authoring environment in which a user can create and/or manipulate a document to be authored. Theuser computing device 810 also includes acache 814, a layer object (“LO”) 816, and a synchronization manager (“sync manager”) 818. Thecache 814 stores a user copy of the document to be authored. Thecache 814 also stores the metadata, including lock and presence metadata, associated with the document. Updates to the content and metadata of the document also can be stored in thecache 814. - The
layer object 816 provides an interface between theauthoring application 812 and thecache 814. Thelayer object 816 also provides an interface between theauthoring application 812 and thesync manager 818. Thesync manager 818 communicates with thestorage device 820 and provides an interface between thestorage device 820 and thecache 814. For example, thesync manager 818 can send updates to and obtain updates from thestorage device 820 and thecache 814. - In general, an authoring environment having features that are examples of inventive aspects in accordance with the principles of the disclosure can be implemented on a user computing device (e.g., a personal computer, a server computer, a notebook computer, a PDA, a Smartphone, or any other such computing device). A non-limiting embodiment of a
user computing system 900 configured to implement an authoring environment is described herein with reference toFIG. 11 . - In
FIG. 11 , theexemplary computing system 900 for implementing the principles of the disclosure includes a user computing device, such asuser computing device 910. In a basic configuration, theuser computing device 910 typically includes at least oneprocessing unit 915 for executing applications and programs stored insystem memory 920. Depending on the exact configuration and type ofcomputing device 910, thesystem memory 920 may include, but is not limited to, RAM, ROM, EEPROM, flash memory, CD-ROM, digital versatile disks (DVD) or other optical storage devices, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or other memory technology. -
System memory 920 typically stores anoperating system 922, such as the WINDOWS® operating systems from MICROSOFT CORPORATION of Redmond, Wash., suitable for controlling the operation of thecomputing device 910.System memory 920 also may include adocument cache 926 in which auser copy 927 of a document can be stored.Metadata 929 of the document also can be stored within theuser cache 926. - The
system memory 920 also may store one or more software applications, such asauthoring applications 924 for creating and editing documents. One non-limiting example of anauthoring application 924 suitable for authoring documents in accordance with the principles of the present disclosure is MICROSOFT® OFFICE WORD authoring software from MICROSOFT CORPORATION of Redmond, Wash. Other non-limiting examples of authoring applications include POWERPOINT® presentation software and VISIO® drawing and diagramming software, both also from MICROSOFT CORPORATION of Redmond, Wash. -
Computing device 910 also may have input device(s) 930, such as a keyboard, mouse, pen, voice input device, touch input device, etc., for entering and manipulating data. Output device(s) 935, such as a display screen, speakers, printer, etc., also may be included. Theseoutput devices 935 are well known in the art and need not be discussed at length herein. - The
computing device 910 also may containcommunication connections 940 that allow thedevice 910 to communicate with other computing devices, for example, thestorage device 820 ofFIG. 10 , over a network in a distributed computing environment (e.g., an intranet or the Internet). By way of example, and not limitation,communication device media 940 includes wired media such as a wired network or direct-wired connection, and wireless media, such as acoustic, RF, infrared and other wireless media. -
FIG. 12 is a schematic block diagram of an authoring system 1000 illustrating the synchronization cycle implemented by the authoring application on the user computing device. The authoring system 1000 includes astorage device 1020 on which the document to be authored is to be stored and a user computing device 1010. The user computing device 1010 includes anauthoring application 1012, acache 1014, alayer object 1016, and async manager 1018. Thecache 1014 of the user computing device 1010 is configured to store abase copy 1013 of the document to be authored, a workingcopy 1015, an uploadcopy 1017, and adownload copy 1019. Thecache 1014 also is configured to storemetadata 1011 of the document. -
FIG. 13 is a flowchart illustrating an operational flow for anexemplary synchronization process 1100 by which a user computing system, such as user computing device 1010, can send and receive updates while authoring a document. Thesynchronization process 1100 initializes and begins at astart module 1102 and proceeds to an obtainoperation 1104. The obtainoperation 1104 causes thesync manager 1018 of the user computing device 1010 to obtain from the storage device 1020 adownload copy 1017 of the document to be authored. Thedownload copy 1017 of the document reflects the state of the master copy of the document at the time the document is obtained from thestorage device 1020. For example, the obtainoperation 1104 can cause thesync manager 1018 to pull from the storage device 1020 a copy of the most recent version of the master copy of the document. - A generate
operation 1106 creates abase copy 1013 and a workingcopy 1015 of the document based on thedownload copy 1017. The workingcopy 1015 of the document can be manipulated by theauthoring application 1012 to allow the user to edit the document. Accordingly, the workingcopy 1015 reflects the current state of the document as edited by the user of theauthoring application 1012. Thebase copy 1013 reflects the state of the document at the time just before the user begins editing the document. In one embodiment, thelayer object 1016 generates thebase copy 1013 of the document and the workingcopy 1015 and provides the workingcopy 1015 to theauthoring application 1012. - To obtain content updates generated by other users, a
poll operation 1108 causes thesync manager 1018 to contact thestorage device 1020 periodically to obtain an updateddownload copy 1017 of the document being authored. Thedownload copy 1017 reflects the state of the master copy of the document at the time of download. The master copy is stored onstorage device 1020 and may include changes made by other users since thebase copy 1013 was generated. Thesync manager 1018 stores any updateddownload copy 1017 of the document in thecache 1014. - An
edit operation 1110 receives any instructions provided by the user to theauthoring application 1012 to perform an editing operation on the document. Theapplication 1012 makes the edits to the working copy of thedocument 1015. Theauthoring application 1012 also makes metadata changes as appropriate when implementing the editing operations. - At a
first determination module 1112, thelayer object 1016 checks thecache 1014 to determine whether any updates have been received during the poll operation 1108 (i.e., whether an updateddownload copy 1017 is available in the cache 1014). In one embodiment, thefirst determination module 1112 is performed at periodic intervals regardless of whether the user has edited the working copy of the document. In different embodiments, thefirst determination module 1112 can be performed, e.g., every few seconds, milliseconds, or minutes. - If the
layer object 1016 determines anew download copy 1017 is not available, then thesynchronization process 1100 proceeds to asecond determination module 1116, which will be discussed in greater detail below. If thelayer object 1016 determines anew download copy 1017 is available, however, then thesynchronization process 1100 proceeds to async operation 1114. In one embodiment, thesync operation 1114 automatically instantiates any metadata updates found in thedownload copy 1017 without requiring any interaction with the user of theauthoring application 1012. For example, thelayer object 1016 may automatically instantiates any lock metadata reflected in thedownload copy 1017 into the workingcopy 1015 of the document. - In some embodiments, the
sync operation 1114 does not automatically instantiate any content updates from thedownload copy 1017 into the workingcopy 1015. Rather, thesync operation 1114 only instantiates content updates when the user of theauthoring application 1012 provides instructions to integrate the content updates. In other embodiments, however, thesync operation 1114 automatically instantiates the content updates. In one embodiment, thesync operation 1114 causes thelayer object 1016 to merge the updateddownload copy 1017 with the workingcopy 1015 when instructions to integrate are provided. In one embodiment, thesync operation 1114 is the same as thesecond synchronization process 700 shown inFIG. 9 . In other embodiments, however, other synchronization processes can be used to integrate the updates with the workingcopy 1015 of the document. Thesynchronization process 1100 proceeds from thesync operation 1114 to thesecond determination module 1116. - The
second determination module 1116 determines whether the user made any changes to the workingcopy 1015 of the document or to themetadata 1011 of the document during theedit operation 1110. If thesecond determination module 1116 determines that no edits (i.e., neither content nor metadata) have been made, then thesynchronization process 1100 cycles back to thepoll operation 1108 and begins again. If thesecond determination module 1116 determines the user has made content edits (e.g., revising a data unit of the document) and/or metadata edits (e.g., locking a data unit of the document), however, then ashare operation 1118 synchronizes the edits with thestorage device 1020. - The
share operation 1118 causes thesync manager 1018 of the user computing device 1010 to send automatically to thestorage device 1020 any changes to the metadata of the document without requiring any interaction from the user of theauthoring application 1012. In one embodiment, theshare operation 1118 does not cause thesync manager 1018 to send content updates to thestorage device 1020 automatically. Rather, thesync manager 1018 only sends content updates to thestorage device 1020 when instructed to do so by thelayer object 1016. Automatically pushing only metadata may enhance the user experience by increasing update efficiency, reduce network bandwidth usage, and provide conflict inhibition without requiring auto-syncing of content. In other embodiments, however, theshare operation 1118 automatically pushes content as well as metadata. In one embodiment, theshare operation 1118 is the same as thefirst synchronization process 600 ofFIG. 8 . In other embodiments, however, other synchronization processes can be utilized. - For example, when the user wishes to share content revisions made by the user, the user will instruct the
authoring application 1012 to submit the revisions to thestorage device 1020 for integration with the master copy of the document. In one embodiment, theauthoring application 1012 will instruct thelayer object 1016 to generate an uploadcopy 1019 of the document. Generally, thelayer object 1016 generates the uploadcopy 1019 based on the workingcopy 1015. Thesync manager 1018 attempts to push the uploadcopy 1019 to thestorage device 1020. Thesynchronization process 1100 completes and ends at astop module 1120. - In some embodiments, the
share operation 1118 cannot send content updates to thestorage device 1020 until all previous content updates received from thestorage device 1020 have been instantiated into the workingcopy 1015 of the document. In such embodiments, the uploadcopy 1019 can be generated by merging the workingcopy 1015 of the document with the most recently obtaineddownload copy 1017. In one embodiment, thesync manager 1018 polls thestorage device 1020 for an updateddownload copy 1017 when thelayer object 1016 attempts to generate an uploadcopy 1019. - If the
sync manger 1018 fails to push the uploadcopy 1019 to the storage device 1020 (e.g., if the uploadcopy 1019 does not reflect the most recent changes instantiated into the master copy), then thesync manager 1018 retry with a revisedupdate document 1019. For example, thesync manager 1018 may obtain anew download copy 1017 from thestorage device 1020 and thelayer object 1016 may generate a new upload copy from the working copy and thenew download copy 1017. In one embodiment, thesync manager 1018 will continue to revise and push an uploadcopy 1019 to thestorage device 1020 until successful. - Referring to
FIGS. 14-31 , the principles of the present disclosure can be better understood by walking through some example applications.FIGS. 14-26 represent changes made to a cache of a storage device, a cache 1214 a first user computing device, and acache 1234 of a second user computing device during a collaborative authoring session in which a first user and a second user edit a document concurrently. In other embodiments, however, the first and second users can edit the document at different times using the same processes. - In
FIG. 14 , the first user has created a document and saved an initial draft of the document to a storage device as amaster copy 1250. Alternatively, the first user may have accessed themaster copy 1250 of an existing document. The second user has not yet accessed the document. - The
master copy 1250 of the document has a corresponding master lock table. For the sake of convenience, in the example shown inFIGS. 14-26 , the master lock table is displayed as part of themaster copy 1250. In other embodiments, however, the master lock table can be stored separately from themaster copy 1250 of the document. Similarly, for ease in understanding, locks associated with each copy of the document (e.g., base copy, working copy, download copy, and upload copy) stored on auser cache FIGS. 14-26 as part of the copy. In other embodiments, however, metadata may be separately stored for each document copy or for each user. - The
master copy 1250 of the document includes a first data unit containing the text “Hello World” and a lock E1 on the first data unit. The lock E1 is owned by (i.e., assigned to) the first user. The content and metadata of themaster copy 1250 are reflected in the base copy and download copy stored in thecache 1214 of the first user. Because the first user sent the initial draft of the document to the storage device, the upload copy stored in thecache 1214 also reflects the content and metadata of themaster copy 1250. - Since sending the initial draft to the storage device, the first user has edited the working copy of the document to include a second data unit containing the text “Testing.” A second lock E2 has been added about the second data unit. In one embodiment, the second lock E2 is a new lock assigned to the user. In another embodiment, the second lock E2 is an extension of the first lock E1. For example, a new unit identifier can be assigned to the first user in a metadata table stored in the
cache 1214 of the first user. In one embodiment, the first user creates the second lock E2 by moving a cursor to start a new data unit (e.g., paragraph) and typing “Testing.” The first lock E1 is not yet released because the first user has not yet indicated editing on the first data unit is final (e.g., by saving after moving the cursor). - In
FIG. 15 , the second user accesses themaster copy 1250 of the document stored on the storage device. The second user obtains a download copy of the document and stores the download copy into thecache 1234 of the second user. The download copy includes the content and metadata of themaster copy 1250. The download copy does not include the most recent content and metadata contained in the working copy of the first user. The layer object of the second user generates a base copy and a working copy of the document based on the download copy. The authoring application utilized by the second user displays the content and any locks of the working copy to the second user. - In some embodiments, the second user can edit the document even before a coauthoring session has been fully established (i.e., before the first and second user computing devices learn of the presence of the other). For example, the second user is allowed to edit the second working copy of the document while the first and second user computing devices exchange greetings (i.e., handshake) Typically, metadata is not exchanged automatically before the first and second computing devices learn of the existence of one another.
- In
FIG. 16 , the first and second computing devices each have discovered the existence of the other. Accordingly, each of the first and second computing devices has begun transmitting metadata updates automatically to each other. As shown inFIG. 16 , the first authoring application provides updated lock metadata (e.g., the second lock) from the lock table of the first user to the storage device 1220 (e.g., via a layer object and sync manager). The authoring application does not provide updated content information to the storage device 1220, however, because no instructions to share content updates have been received from the first user. - In
FIG. 17 , the storage device has integrated the updated lock metadata (e.g., the second lock E2) into the master metadata table of themaster copy 1250. The lock metadata has not yet been obtained by the second user computing device. InFIG. 18 , the second user computing device has polled the storage device and obtained a new download copy of themaster copy 1250. A new download copy also has been generated (e.g., via a layer object) on thefirst cache 1214 based on the upload copy. In another embodiment, the first user computing device also may have polled the storage device and obtained a new download copy of themaster copy 1250. Both of the new download copies reflect the updated lock information (e.g., lock E2) from the working copy of the first user. - In
FIG. 19 , the second computing device generates (e.g., via a layer object) a new working copy based on the new download copy. Accordingly, the new working copy of the second computing device contains the second lock E2 on the second data unit. The new working copy does not include the second data unit itself, however. In one embodiment, the working copy of the second user computing device displays a blank/empty data unit and indicates that the blank/empty data unit is locked. In another embodiment, the working copy does not display the second data unit at all and the lock E2 is not indicated to the second user until the second data unit is visible to the second user. - In
FIG. 20 , the second user adds a third data unit to the document and a third lock E3 around the third data unit (e.g., in the memory of the authoring application). The third data unit contains the text “Goodbye World”. The second authoring application generates (e.g., via a layer object) a working copy of the document including the third data unit and the third lock E3. The second authoring application also automatically provides (e.g., via a sync manager) the third lock E3 to the storage device. However, the second authoring application does not provide the third data unit to the storage device. - Also in
FIG. 20 , the first user releases the first lock E1 after the first user indicates the first user has finished editing the first data unit. For example, the first user can provide instructions to store the document when the cursor of the first user is positioned within the second data unit. In one embodiment, the second data unit may be located remote from the first data unit. In the example shown, the finalization indication provided by the first user does not indicate the first user wishes to share content changes made by the first user. Accordingly, the first authoring application does not generate (e.g., via a layer object) an upload copy containing content changes for distribution to the storage device. - In
FIG. 21 , the third lock E3 has been stored in the master lock table of themaster copy 1250 of the document on the storage device. The first user computing device subsequently polls (e.g., via a sync manager) the storage device to check for updates. The first user computing device obtained (e.g., via a sync manager) a new download copy of the document from the storage device based on themaster copy 1250. The new download copy contains the third lock E3. The first authoring application automatically instantiates (e.g., via a layer object) the third lock E3 into the working copy of the first authoring application. As noted above, the third lock E3 optionally may be displayed to the first user using the user interface of the first authoring application. - In
FIG. 22 , the second user releases the third lock E3 when the second user indicates the second user has finished editing the third data unit. The third lock E3 is removed from the metadata table of the second user. In the example block diagram shown inFIG. 22 , the third lock E3 is removed from the metadata tables corresponding to the working copy of the second authoring application. - In the example shown in
FIG. 22 , the finalization indication provided by the second user indicates the second user wishes to share content changes with other users. For example, the second user may remove a cursor from the third data unit and then provide instructions to store the document. Accordingly, the second authoring application may generate an upload copy containing the content changes based on the working copy. In one embodiment, the upload copy also can be based on any content updates (e.g., in this case none) found in the download copy that had not yet been instantiated into the working copy. In the example shown, the upload copy includes the third data unit including the phrase “Goodbye World.” - In
FIG. 23 , the storage device obtains the third data unit from the upload copy of the second user computing device and merges the third data unit into themaster copy 1250 of the storage device. The lock table associated with themaster copy 1250 indicates the third lock E3 has been released. As shown inFIG. 24 , upon a successful push to the storage device, the second authoring application copies (e.g., via a layer object) the upload copy to the download copy and the base copy of thesecond cache 1234. - In
FIG. 25 , the first user computing device obtains (e.g., via a sync manager) a new download copy of themaster copy 1250 of the document. The first authoring application determines (e.g., via a layer object) the new download copy has been obtained and determines the new download copy includes content changes. The authoring application automatically merges any new locks (none in this case) into the working copy of thecache 1214. The user interface of the first authoring application may indicate content updates are available for viewing. - In
FIG. 26 , the first user chooses to instantiate the content updates available in thecache 1214 into the working copy of the document. Accordingly, the authoring application merges the download copy stored in thecache 1214 with the working copy of the first authoring application. The third data unit is added to the working copy of the first authoring application and is displayed to the first user. The third lock E3 is released in the metadata table associated with the working copy of the first authoring application. The first user, therefore, may instruct the first authoring application to edit the third data unit. - Referring now to
FIGS. 27-31 , the user experience during the coauthoring session is described in detail below.FIGS. 27-31 illustrate changes to anexemplary user interface 2000 of a first authoring application as a first user and a second user collaboratively author adocument 2010. The first user, Jane Doe, edits thedocument 2010 using the first authoring application and the second user, John Doe, edits thedocument 2010 using a different authoring application. - The
document 2010 includes afirst data unit 2012, asecond data unit 2014, athird data unit 2016, and afourth data unit 2018. The first user places acontent lock 2022 around thefirst data unit 2012. For example, in one embodiment, the first user may move hercursor 2015 to thefirst data unit 2012. In another embodiment, the first user may provide instructions to perform one or more editing operations on thefirst data unit 2012. - In
FIG. 28 , the first user has added text to thefirst data unit 2012. The lock on the first data unit inhibits the second user from editing thefirst data unit 2012. In one embodiment, thefirst lock 2022 prevents the second user from editing thefirst data unit 2012. In another embodiment, thefirst lock 2022 warns the second user against editing thefirst data unit 2012, but does not bar editing by the second user. In yet another embodiment, thefirst lock 2022 merely indicates the first user has expressed an intention to edit thefirst data unit 2012. - In
FIG. 29 , the second user has placed acontent lock 2024 about thethird data unit 2016. Because the second user has chosen to not share his changes, the second lock may be visible on theuser interface 2000 of the first authoring application, but any changes made to thethird data unit 2016 by the second user are not visible yet. In the example shown, thesecond lock 2024 is indicated by theuser interface 2000 by displaying a bracket indicating the scope of thesecond lock 2024. Thesecond lock 2024 also can include a nametag indicating the owner of thesecond lock 2024. InFIG. 29 , the nametag includes text identifying the second user and an icon. The icon can further identify a user by color, symbol, or other graphic. - In
FIG. 30 , the first authoring application receives content updates for thedocument 2010. The second user has chosen to share content changes with other users and accordingly merged content updates into a master copy of the document 2010 (e.g., via one of the synchronization processes described above). A sync manager of the first authoring application obtained the updates from the master copy of thedocument 2010 by polling the device storing the master copy. - The
user interface 2000 of the first authoring application displays an alert 2030 to the first user indicating the availability of the content update. In the example shown, atext box 2030 appears in theuser interface 2000. In another embodiment, the second lock or text within the second lock can change color, pattern, or formatting. In another embodiment, an update counter increments when each new update is available. - The first user can choose to view/instantiate the changes made by the second user or to ignore the content updates. The first user can continue to edit any unlocked data units within the
document 2010 while ignoring the content updates. In one embodiment, the first user must instantiate the content updates before merging her updates with the master copy. InFIG. 31 , the first user instructs the first authoring application to instantiate the content updates into thedocument 2010 displayed by theuser interface 2000 of the first authoring application. Content changes made by the second user are now visible to the first user. - Embodiments of the disclosure may be implemented as a computer process (method), a computing system, or as an article of manufacture, such as a computer program product or computer readable media. The processes (programs) can be implemented in any number of ways, including the structures described in this document. One such way is by machine operations, of devices of the type described in this document. Another optional way is for one or more of the individual operations of the methods to be performed on a computing device in conjunction with one or more human operators performing some of the operations. These human operators need not be collocated with each other, but each can be only with a machine that performs a portion of the program.
- The computer program product may be a computer storage media readable by a computer system and encoding a computer program of instructions for executing a computer process. The computer program product may also be a propagated signal on a carrier readable by a computing system and encoding a computer program of instructions for executing a computer process. The term computer readable media as used herein includes both storage media and communication media.
- Those skilled in the art will appreciate that the disclosure may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like. The disclosure may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices. Generally, program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data types.
Claims (20)
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/079,605 US8352418B2 (en) | 2007-11-09 | 2011-04-04 | Client side locking |
US13/539,473 US8990150B2 (en) | 2007-11-09 | 2012-07-01 | Collaborative authoring |
US14/534,384 US9547635B2 (en) | 2007-11-09 | 2014-11-06 | Collaborative authoring |
US15/248,158 US10394941B2 (en) | 2007-11-09 | 2016-08-26 | Collaborative authoring |
US16/550,724 US11455459B2 (en) | 2007-11-09 | 2019-08-26 | Collaborative authoring |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/938,082 US7941399B2 (en) | 2007-11-09 | 2007-11-09 | Collaborative authoring |
US13/079,605 US8352418B2 (en) | 2007-11-09 | 2011-04-04 | Client side locking |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/938,082 Continuation US7941399B2 (en) | 2007-11-09 | 2007-11-09 | Collaborative authoring |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/539,473 Continuation US8990150B2 (en) | 2007-11-09 | 2012-07-01 | Collaborative authoring |
Publications (2)
Publication Number | Publication Date |
---|---|
US20110184906A1 true US20110184906A1 (en) | 2011-07-28 |
US8352418B2 US8352418B2 (en) | 2013-01-08 |
Family
ID=40624726
Family Applications (6)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/938,082 Active 2028-11-06 US7941399B2 (en) | 2007-11-09 | 2007-11-09 | Collaborative authoring |
US13/079,605 Active US8352418B2 (en) | 2007-11-09 | 2011-04-04 | Client side locking |
US13/539,473 Active US8990150B2 (en) | 2007-11-09 | 2012-07-01 | Collaborative authoring |
US14/534,384 Active US9547635B2 (en) | 2007-11-09 | 2014-11-06 | Collaborative authoring |
US15/248,158 Active US10394941B2 (en) | 2007-11-09 | 2016-08-26 | Collaborative authoring |
US16/550,724 Active 2028-07-06 US11455459B2 (en) | 2007-11-09 | 2019-08-26 | Collaborative authoring |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/938,082 Active 2028-11-06 US7941399B2 (en) | 2007-11-09 | 2007-11-09 | Collaborative authoring |
Family Applications After (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/539,473 Active US8990150B2 (en) | 2007-11-09 | 2012-07-01 | Collaborative authoring |
US14/534,384 Active US9547635B2 (en) | 2007-11-09 | 2014-11-06 | Collaborative authoring |
US15/248,158 Active US10394941B2 (en) | 2007-11-09 | 2016-08-26 | Collaborative authoring |
US16/550,724 Active 2028-07-06 US11455459B2 (en) | 2007-11-09 | 2019-08-26 | Collaborative authoring |
Country Status (12)
Country | Link |
---|---|
US (6) | US7941399B2 (en) |
EP (1) | EP2212807B1 (en) |
JP (1) | JP5468547B2 (en) |
KR (5) | KR20170029020A (en) |
CN (1) | CN101855629B (en) |
AU (1) | AU2008324973B2 (en) |
BR (1) | BRPI0818912A2 (en) |
MX (1) | MX2010004932A (en) |
MY (1) | MY163815A (en) |
RU (1) | RU2501077C2 (en) |
TW (2) | TWI457769B (en) |
WO (1) | WO2009061638A1 (en) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080313550A1 (en) * | 2007-06-15 | 2008-12-18 | Fujitsu Limited | RECORDING MEDIUM ON WHICH Web CONFERENCE SUPPORT PROGRAM IS RECORDED AND Web CONFERENCE SUPPORT APPARATUS |
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 |
US8417666B2 (en) | 2008-06-25 | 2013-04-09 | Microsoft Corporation | Structured coauthoring |
US8429753B2 (en) | 2008-05-08 | 2013-04-23 | Microsoft Corporation | Controlling access to documents using file locks |
WO2014027836A1 (en) * | 2012-08-14 | 2014-02-20 | Samsung Electronics Co., Ltd. | Method and electronic device for editing content |
US20140075330A1 (en) * | 2012-09-12 | 2014-03-13 | Samsung Electronics Co., Ltd. | Display apparatus for multiuser and method thereof |
US20140090084A1 (en) * | 2012-09-25 | 2014-03-27 | Pixton Comics Inc. | Collaborative comic creation |
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 |
US20140372369A1 (en) * | 2013-06-14 | 2014-12-18 | Microsoft Corporation | Managing Changes to Shared Electronic Documents Using Change History |
US8990150B2 (en) | 2007-11-09 | 2015-03-24 | Microsoft Technology Licensing, Llc | Collaborative authoring |
US20150288728A1 (en) * | 2014-04-07 | 2015-10-08 | Ricoh Company, Ltd. | Information processing system, information processing apparatus, terminal apparatus, and program |
US9875269B1 (en) * | 2014-03-12 | 2018-01-23 | Sprint Communications Company L.P. | Collaborative editing in self-contained single page applications |
US10331775B2 (en) | 2014-10-15 | 2019-06-25 | Microsoft Technology Licensing, Llc | Collaborative document editing using state-based revision |
US11308068B2 (en) * | 2016-05-13 | 2022-04-19 | Sap Se | Control systems for draft lifecycle |
Families Citing this family (139)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7398470B2 (en) * | 2003-08-22 | 2008-07-08 | Vistaprint Technologies Limited | System and method for remote assistance |
US7937663B2 (en) | 2007-06-29 | 2011-05-03 | Microsoft Corporation | Integrated collaborative user interface for a document editor program |
US9591086B2 (en) * | 2007-07-25 | 2017-03-07 | Yahoo! Inc. | Display of information in electronic communications |
US8126882B2 (en) * | 2007-12-12 | 2012-02-28 | Google Inc. | Credibility of an author of online content |
US7797274B2 (en) * | 2007-12-12 | 2010-09-14 | Google Inc. | Online content collaboration model |
US20090164521A1 (en) * | 2007-12-20 | 2009-06-25 | George Lo | Method and system for integrating multiple authoring applications in a collaborative environment |
US20090172558A1 (en) * | 2007-12-27 | 2009-07-02 | Fuji Xerox Co., Ltd. | System and method for personalized change tracking for collaborative authoring environments |
US9141483B1 (en) | 2008-03-27 | 2015-09-22 | Dropbox, Inc. | System and method for multi-tier synchronization |
US8078957B2 (en) | 2008-05-02 | 2011-12-13 | Microsoft Corporation | Document synchronization over stateless protocols |
US8108777B2 (en) | 2008-08-11 | 2012-01-31 | Microsoft Corporation | Sections of a presentation having user-definable properties |
US8495043B2 (en) * | 2008-09-17 | 2013-07-23 | International Business Machines Corporation | System and method for allowing updates to database objects |
GB2464948A (en) | 2008-10-29 | 2010-05-05 | Quolos Limited | Online collaboration |
US20100131836A1 (en) * | 2008-11-24 | 2010-05-27 | Microsoft Corporation | User-authored notes on shared documents |
US8285787B2 (en) * | 2008-11-26 | 2012-10-09 | Red Hat, Inc. | Systems and methods for managing a collaboration space having application hosting capabilities |
US8380663B2 (en) * | 2008-12-17 | 2013-02-19 | Sybase, Inc. | Data integrity in a database environment through background synchronization |
US8656290B1 (en) * | 2009-01-08 | 2014-02-18 | Google Inc. | Realtime synchronized document editing by multiple users |
US8327278B2 (en) * | 2009-02-17 | 2012-12-04 | Microsoft Corporation | Synchronizing metadata describes user content updates and an indication of user gestures being performed within the document, and across client systems using different communication channels |
US9396279B1 (en) * | 2009-02-17 | 2016-07-19 | Jpmorgan Chase Bank, Na | Collaborative virtual markup |
US8805930B2 (en) * | 2009-02-24 | 2014-08-12 | Red Hat, Inc. | Managing application programming interfaces in a collaboration space |
US8346869B2 (en) * | 2009-04-13 | 2013-01-01 | Microsoft Corporation | Granular data synchronization for editing multiple data objects |
US10127524B2 (en) | 2009-05-26 | 2018-11-13 | Microsoft Technology Licensing, Llc | Shared collaboration canvas |
US9298834B2 (en) | 2009-05-26 | 2016-03-29 | Adobe Systems Incorporated | User presence data for web-based document collaboration |
US8612380B2 (en) * | 2009-05-26 | 2013-12-17 | Adobe Systems Incorporated | Web-based collaboration for editing electronic documents |
US20110054968A1 (en) * | 2009-06-04 | 2011-03-03 | Galaviz Fernando V | Continuous performance improvement system |
US8219526B2 (en) | 2009-06-05 | 2012-07-10 | Microsoft Corporation | Synchronizing file partitions utilizing a server storage model |
US20110010635A1 (en) * | 2009-07-10 | 2011-01-13 | Novell, Inc. | Unified editable inbox |
FR2955688B1 (en) * | 2010-01-28 | 2012-02-24 | Somfy Sas | METHOD FOR CONFIGURING A DOMOTIC INSTALLATION |
CN102193927A (en) * | 2010-03-05 | 2011-09-21 | 新奥特(北京)视频技术有限公司 | Control method and device of manuscript editing in manuscript system |
WO2011117461A1 (en) * | 2010-03-23 | 2011-09-29 | Nokia Corporation | Method and apparatus for managing files in an online account |
JP2011221583A (en) * | 2010-04-02 | 2011-11-04 | Seiko Epson Corp | Content providing system, information processing apparatus, content providing method, program, and computer readable recording medium |
US20110276490A1 (en) * | 2010-05-07 | 2011-11-10 | Microsoft Corporation | Security service level agreements with publicly verifiable proofs of compliance |
KR20110128567A (en) * | 2010-05-24 | 2011-11-30 | 삼성전자주식회사 | Method of controlling an object included in the user interface and apparatus employing the method |
US8555161B2 (en) * | 2010-05-27 | 2013-10-08 | Microsoft Corporation | Concurrent editing of a document by multiple clients |
US9652440B2 (en) * | 2010-05-27 | 2017-05-16 | Microsoft Technology Licensing, Llc | Concurrent utilization of a document by multiple threads |
JP2012038210A (en) * | 2010-08-10 | 2012-02-23 | Sony Corp | Information processing unit, information processing method, computer program, and content display system |
US8707187B2 (en) * | 2010-09-16 | 2014-04-22 | Siemens Products Product Lifecycle Management Software Inc. | Concurrent document markup |
US20120078597A1 (en) * | 2010-09-27 | 2012-03-29 | Infosys Technologies Limited | Mobile device with a modeling platform |
US20120101980A1 (en) * | 2010-10-26 | 2012-04-26 | Microsoft Corporation | Synchronizing online document edits |
US8660986B2 (en) | 2010-10-27 | 2014-02-25 | Microsoft Corporation | Preserving user intent in merging ordered objects |
CN103238150B (en) | 2010-11-02 | 2016-08-17 | 谷歌公司 | By multiple users real-time synchronization documents editing to blog |
KR101697979B1 (en) * | 2010-11-23 | 2017-01-19 | 삼성전자주식회사 | Method and apparatus for syncronizing data in connected devices |
US9930092B2 (en) | 2010-12-06 | 2018-03-27 | Zoho Corporation Private Limited | Editing an unhosted third party application |
US9118612B2 (en) | 2010-12-15 | 2015-08-25 | Microsoft Technology Licensing, Llc | Meeting-specific state indicators |
US9383888B2 (en) * | 2010-12-15 | 2016-07-05 | Microsoft Technology Licensing, Llc | Optimized joint document review |
US9864612B2 (en) | 2010-12-23 | 2018-01-09 | Microsoft Technology Licensing, Llc | Techniques to customize a user interface for different displays |
US8700986B1 (en) | 2011-03-18 | 2014-04-15 | Google Inc. | System and method for displaying a document containing footnotes |
US8538917B2 (en) * | 2011-01-14 | 2013-09-17 | Apple Inc. | System and method for file coordination |
US9367530B2 (en) * | 2011-01-21 | 2016-06-14 | Jive Software | Distributed document co-authoring and processing |
WO2012102736A1 (en) * | 2011-01-28 | 2012-08-02 | Hewlett-Packard Development Company, L.P. | Document management system and method |
US8510266B1 (en) * | 2011-03-03 | 2013-08-13 | Google Inc. | System and method for providing online data management services |
US8996985B1 (en) | 2011-03-16 | 2015-03-31 | Google Inc. | Online document processing service for displaying comments |
CN102681884A (en) * | 2011-03-17 | 2012-09-19 | 新奥特(北京)视频技术有限公司 | Method for solving medium asset metadata read-write access conflicts |
US20130047072A1 (en) | 2011-08-19 | 2013-02-21 | Microsoft Corporation | Progressive presentation of document markup |
CN102955785B (en) * | 2011-08-22 | 2015-09-09 | 北大方正集团有限公司 | A kind of network editing method and system of document |
US8682973B2 (en) | 2011-10-05 | 2014-03-25 | Microsoft Corporation | Multi-user and multi-device collaboration |
US9544158B2 (en) | 2011-10-05 | 2017-01-10 | Microsoft Technology Licensing, Llc | Workspace collaboration via a wall-type computing device |
US9996241B2 (en) | 2011-10-11 | 2018-06-12 | Microsoft Technology Licensing, Llc | Interactive visualization of multiple software functionality content items |
US10198485B2 (en) | 2011-10-13 | 2019-02-05 | Microsoft Technology Licensing, Llc | Authoring of data visualizations and maps |
US9230243B2 (en) | 2011-10-13 | 2016-01-05 | Dassault Systemes | Collaborative design using duplicated workspaces |
US10733151B2 (en) | 2011-10-27 | 2020-08-04 | Microsoft Technology Licensing, Llc | Techniques to share media files |
US10482638B2 (en) * | 2011-11-11 | 2019-11-19 | Microsoft Technology Licensing, Llc | Collaborative commenting in a drawing tool |
US9053079B2 (en) | 2011-12-12 | 2015-06-09 | Microsoft Technology Licensing, Llc | Techniques to manage collaborative documents |
US9524297B2 (en) * | 2011-12-29 | 2016-12-20 | Intel Corporation | Management of collaborative teams |
US8924545B2 (en) | 2012-01-13 | 2014-12-30 | Microsoft Corporation | Cross-property identity management |
US20130191451A1 (en) * | 2012-01-19 | 2013-07-25 | Microsoft Corporation | Presence-based Synchronization |
US9626368B2 (en) * | 2012-01-27 | 2017-04-18 | International Business Machines Corporation | Document merge based on knowledge of document schema |
US9348802B2 (en) * | 2012-03-19 | 2016-05-24 | Litéra Corporation | System and method for synchronizing bi-directional document management |
JP5982962B2 (en) * | 2012-03-30 | 2016-08-31 | 富士ゼロックス株式会社 | Data processing apparatus, data processing system, and program |
US20130268849A1 (en) * | 2012-04-09 | 2013-10-10 | Charles Qiao Du | Method and System for Multi-Party Collaborative Content Management through an Inverted Social Network |
US9367570B1 (en) * | 2012-04-09 | 2016-06-14 | Google Inc. | Ad hoc queryable JSON with audit trails |
US20130311881A1 (en) * | 2012-05-16 | 2013-11-21 | Immersion Corporation | Systems and Methods for Haptically Enabled Metadata |
CN102999480B (en) * | 2012-11-09 | 2016-03-30 | 中国电子科技集团公司第十五研究所 | The method and system of Edit Document |
US9529785B2 (en) | 2012-11-27 | 2016-12-27 | Google Inc. | Detecting relationships between edits and acting on a subset of edits |
WO2014107808A1 (en) | 2013-01-11 | 2014-07-17 | La Presse, Ltée | System and method for generating a digital edition |
US9460073B2 (en) | 2013-02-27 | 2016-10-04 | Google Inc. | Systems and methods for mutations and operational transforms in a collaborative spreadsheet environment |
US11716392B2 (en) * | 2013-04-24 | 2023-08-01 | Blackberry Limited | Updating an application at a second device based on received user input at a first device |
US20140351716A1 (en) * | 2013-05-23 | 2014-11-27 | Microsoft Corporation | Notes Page Sharing and Notification Features |
US9465784B1 (en) | 2013-06-20 | 2016-10-11 | Bulletin Intelligence LLC | Method and system for enabling real-time, collaborative generation of documents having overlapping subject matter |
EA201300786A1 (en) * | 2013-07-17 | 2015-01-30 | Сергей Сергеевич АЗАРОВ | METHOD OF TRANSFERRING IMAGES |
US9747267B2 (en) * | 2013-08-12 | 2017-08-29 | Adobe Systems Incorporated | Document editing synchronization |
US9971752B2 (en) | 2013-08-19 | 2018-05-15 | Google Llc | Systems and methods for resolving privileged edits within suggested edits |
KR102184269B1 (en) * | 2013-09-02 | 2020-11-30 | 삼성전자 주식회사 | Display apparatus, portable apparatus and method for displaying a screen thereof |
US20150095458A1 (en) * | 2013-09-27 | 2015-04-02 | Xerox Corporation | Methods and systems for providing a seamless transition of documents between client types |
US9348803B2 (en) | 2013-10-22 | 2016-05-24 | Google Inc. | Systems and methods for providing just-in-time preview of suggestion resolutions |
US20150120834A1 (en) * | 2013-10-28 | 2015-04-30 | Samsung Electronics Co., Ltd. | Method and system for real time collaboration on a canvas |
US8938679B1 (en) * | 2013-11-18 | 2015-01-20 | Axure Software Solutions, Inc. | Comment system for interactive graphical designs |
US20150215390A1 (en) * | 2014-01-30 | 2015-07-30 | Crytek Gmbh | Apparatus and Method for Multi-User Editing of Computer-Generated Content |
US10318618B2 (en) * | 2014-06-18 | 2019-06-11 | Microsoft Technology Licensing, Llc | Consistent views of partitioned data in eventually consistent systems |
CN105450975A (en) * | 2014-08-26 | 2016-03-30 | 天脉聚源(北京)教育科技有限公司 | Conference system and file synchronization and content recording method |
US20160100019A1 (en) * | 2014-10-03 | 2016-04-07 | Clique Intelligence | Contextual Presence Systems and Methods |
US20160098162A1 (en) * | 2014-10-06 | 2016-04-07 | Lenovo (Singapore) Pte. Ltd. | Pen based locking mechanism |
CN105812432B (en) * | 2014-12-31 | 2019-03-12 | 北京金山云网络技术有限公司 | Cloud document processing method and device |
CN104506650B (en) * | 2015-01-04 | 2018-07-03 | 华为技术有限公司 | A kind of user equipment cooperative control method, user equipment and communication system |
IN2015MU00904A (en) * | 2015-03-19 | 2015-04-10 | Zycus Infotech Pvt Ltd | |
US20160321025A1 (en) * | 2015-04-30 | 2016-11-03 | Kabushiki Kaisha Toshiba | Electronic apparatus and method |
US20160321226A1 (en) * | 2015-05-01 | 2016-11-03 | Microsoft Technology Licensing, Llc | Insertion of unsaved content via content channel |
US10565297B2 (en) | 2015-06-26 | 2020-02-18 | Microsoft Technology Licensing, Llc. | Rumored changes for real-time coauthoring |
RU2609081C2 (en) * | 2015-06-29 | 2017-01-30 | Общество С Ограниченной Ответственностью "Яндекс" | Method (versions) and system (versions) of document processing in distributed architecture |
CN107852408A (en) * | 2015-07-17 | 2018-03-27 | Lg 电子株式会社 | The method and its device of source synchronous are kept in a wireless communication system |
KR101734262B1 (en) | 2015-08-12 | 2017-05-11 | 현대자동차 주식회사 | Apparatus for controlling autotransmission and methof thereof |
US9871801B2 (en) * | 2015-08-28 | 2018-01-16 | Microsoft Technology Licensing, Llc | Secure computing system record access control |
US10169547B2 (en) | 2015-08-28 | 2019-01-01 | Microsoft Technology Licensing, Llc | Secure computing system record transfer control |
US9954863B2 (en) * | 2015-08-28 | 2018-04-24 | Microsoft Technology Licensing, Llc | Computing system record security architecture |
US10353926B2 (en) * | 2015-11-17 | 2019-07-16 | Microsoft Technology Licensing, Llc | Unified activity service |
US10289282B2 (en) | 2015-12-21 | 2019-05-14 | Microsoft Technology Licensing, Llc | While you were away experience |
US10902185B1 (en) | 2015-12-30 | 2021-01-26 | Google Llc | Distributed collaborative storage with operational transformation |
US11036712B2 (en) | 2016-01-12 | 2021-06-15 | Microsoft Technology Licensing, Llc. | Latency-reduced document change discovery |
US10599526B2 (en) * | 2016-01-13 | 2020-03-24 | Microsoft Technology Licensing, Llc | Auto-save operation for collaborative editing of electronic documents |
US11017484B2 (en) | 2016-01-21 | 2021-05-25 | Tencent Technology (Shenzhen) Company Limited | Resource sharing method and terminal |
CN105591885B (en) * | 2016-01-21 | 2019-01-08 | 腾讯科技(深圳)有限公司 | resource sharing method and device |
US9886172B1 (en) | 2016-04-29 | 2018-02-06 | Rich Media Ventures, Llc | Social media-based publishing and feedback |
US10083672B1 (en) | 2016-04-29 | 2018-09-25 | Rich Media Ventures, Llc | Automatic customization of e-books based on reader specifications |
US10015244B1 (en) * | 2016-04-29 | 2018-07-03 | Rich Media Ventures, Llc | Self-publishing workflow |
US9864737B1 (en) | 2016-04-29 | 2018-01-09 | Rich Media Ventures, Llc | Crowd sourcing-assisted self-publishing |
WO2018004021A1 (en) | 2016-06-27 | 2018-01-04 | 주식회사 한글과컴퓨터 | Device for supporting collaboration for co-editing electronic document, and method for operating same |
WO2018004025A1 (en) | 2016-06-28 | 2018-01-04 | 주식회사 한글과컴퓨터 | Document collaboration device supporting simultaneous style editing of entity, and method for operating same |
US10467198B2 (en) * | 2016-09-15 | 2019-11-05 | Oracle International Corporation | Network partition tolerance in a high available centralized VCS implementation |
US10769356B2 (en) * | 2017-03-03 | 2020-09-08 | Adobe Inc. | Synchronizing review comments between source and shared documents |
CN109688176B (en) * | 2017-10-18 | 2022-01-11 | 腾讯科技(深圳)有限公司 | File synchronization method, terminal, network device and storage medium |
US20190146758A1 (en) * | 2017-11-14 | 2019-05-16 | Microsoft Technology Licensing, Llc | Collaborative editing of source code with intelligent operations |
CN110505256B (en) * | 2018-05-16 | 2021-09-07 | 腾讯科技(深圳)有限公司 | Method and device for processing collaboration task state, storage medium and computer equipment |
DE102018111930A1 (en) * | 2018-05-17 | 2019-11-21 | Beckhoff Automation Gmbh | Procedure for editing a software project |
JP7041350B2 (en) * | 2018-05-29 | 2022-03-24 | 富士通株式会社 | Editing program, editing device and editing method |
US11244284B2 (en) | 2018-05-31 | 2022-02-08 | Microsoft Technology Licensing, Llc | Document status management system |
KR102010522B1 (en) * | 2018-06-05 | 2019-08-13 | 주식회사 한글과컴퓨터 | Client terminal device for displaying the names of other users who are performing editing on the collaboration document and operating method thereof |
US10887357B2 (en) | 2018-08-22 | 2021-01-05 | International Business Machines Corporation | Document collaboration tool |
US11677624B2 (en) * | 2019-04-12 | 2023-06-13 | Red Hat, Inc. | Configuration of a server in view of a number of clients connected to the server |
CN110020328A (en) * | 2019-04-16 | 2019-07-16 | 北京字节跳动网络技术有限公司 | Data processing method, device, electronic equipment and the storage medium of online table |
US20210326793A1 (en) * | 2020-04-17 | 2021-10-21 | Richard Frankel | Workflow management system |
WO2021236837A1 (en) * | 2020-05-19 | 2021-11-25 | Markadoc Corporation | Online real-time interactive collaborative document system |
US10922469B1 (en) * | 2020-06-30 | 2021-02-16 | Cadence Design Systems, Inc. | Methods and systems of enabling concurrent editing of hierarchical electronic circuit layouts |
CN111985191B (en) * | 2020-08-05 | 2024-03-29 | 北京同创永益科技发展有限公司 | Multi-user collaborative online document editing method and device |
JP2023000757A (en) * | 2021-06-18 | 2023-01-04 | 富士フイルムビジネスイノベーション株式会社 | Information processing device and program |
US12159102B2 (en) | 2021-06-29 | 2024-12-03 | Klaviyo Inc. | Universal content for email template |
WO2023063666A1 (en) * | 2021-10-12 | 2023-04-20 | 삼성전자 주식회사 | Method for providing collaborative editing service and server therefor |
EP4354374A4 (en) * | 2021-10-12 | 2024-10-23 | Samsung Electronics Co., Ltd. | METHOD FOR PROVIDING A COLLABORATIVE EDITING SERVICE AND ASSOCIATED SERVER |
US12050861B2 (en) * | 2022-05-17 | 2024-07-30 | Klaviyo Inc. | Method and system for template reconciliation |
WO2024080586A1 (en) * | 2022-10-14 | 2024-04-18 | 삼성전자주식회사 | Electronic device and method for co-editing in multiple device environment |
WO2024158181A1 (en) * | 2023-01-25 | 2024-08-02 | 삼성전자 주식회사 | System and electronic device for document editing, and method for document editing in said electronic device |
Citations (98)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5107443A (en) * | 1988-09-07 | 1992-04-21 | Xerox Corporation | Private regions within a shared workspace |
US5313394A (en) * | 1990-12-11 | 1994-05-17 | Barbara Clapp | Document assembly customization system for modifying a source instrument including text and decisional commands |
US5486686A (en) * | 1990-05-30 | 1996-01-23 | Xerox Corporation | Hardcopy lossless data storage and communications for electronic document processing systems |
US5535332A (en) * | 1992-06-30 | 1996-07-09 | Fuji Xerox Co., Ltd. | Shared-data alteration status management apparatus |
US5623659A (en) * | 1993-04-30 | 1997-04-22 | International Business Machines Corporation | Parent/child subset locking scheme for versioned objects |
US5630138A (en) * | 1992-12-24 | 1997-05-13 | Microsoft Corporation | method and system for merging files having a parallel format |
US5671428A (en) * | 1991-08-28 | 1997-09-23 | Kabushiki Kaisha Toshiba | Collaborative document processing system with version and comment management |
US5729734A (en) * | 1995-11-03 | 1998-03-17 | Apple Computer, Inc. | File privilege administration apparatus and methods |
US5751958A (en) * | 1995-06-30 | 1998-05-12 | Peoplesoft, Inc. | Allowing inconsistency in a distributed client-server application |
US6055546A (en) * | 1997-10-31 | 2000-04-25 | Oracle Corporation | Method and apparatus for preserving non-current information that can be overwritten in a computer file |
US6065026A (en) * | 1997-01-09 | 2000-05-16 | Document.Com, Inc. | Multi-user electronic document authoring system with prompted updating of shared language |
US6067551A (en) * | 1997-11-14 | 2000-05-23 | Microsoft Corporation | Computer implemented method for simultaneous multi-user editing of a document |
US6073161A (en) * | 1997-12-16 | 2000-06-06 | International Business Machines Corporation | Method and apparatus for determining editing conflicts in a multi-authoring system |
US6202085B1 (en) * | 1996-12-06 | 2001-03-13 | Microsoft Corportion | System and method for incremental change synchronization between multiple copies of data |
US6209128B1 (en) * | 1998-06-05 | 2001-03-27 | International Business Machines Corporation | Apparatus and method for providing access to multiple object versions |
US6209010B1 (en) * | 1997-07-18 | 2001-03-27 | Varis Corporation | Computer implemented method for wrapping data to an arbitrary path defined by a page description language |
US6240414B1 (en) * | 1997-09-28 | 2001-05-29 | Eisolutions, Inc. | Method of resolving data conflicts in a shared data environment |
US20020007287A1 (en) * | 1999-12-16 | 2002-01-17 | Dietmar Straube | System and method for electronic archiving and retrieval of medical documents |
US6341291B1 (en) * | 1998-09-28 | 2002-01-22 | Bentley Systems, Inc. | System for collaborative engineering using component and file-oriented tools |
US6342906B1 (en) * | 1999-02-02 | 2002-01-29 | International Business Machines Corporation | Annotation layer for synchronous collaboration |
US6363352B1 (en) * | 1998-11-13 | 2002-03-26 | Microsoft Corporation | Automatic scheduling and formation of a virtual meeting over a computer network |
US20020065848A1 (en) * | 2000-08-21 | 2002-05-30 | Richard Walker | Simultaneous multi-user document editing system |
US6411965B2 (en) * | 1989-08-23 | 2002-06-25 | Edisync Systems Llc | Remote multi-user editing system and method transmitting edit display information |
US20030028600A1 (en) * | 2001-04-24 | 2003-02-06 | Parker Jamses A. | Electronic mail file access system |
US6529905B1 (en) * | 2000-01-11 | 2003-03-04 | Frontline Solutions, Inc. | Method and system for allowing multiple users to edit a hierarchical data structure |
US6560620B1 (en) * | 1999-08-03 | 2003-05-06 | Aplix Research, Inc. | Hierarchical document comparison system and method |
US6560614B1 (en) * | 1999-11-12 | 2003-05-06 | Xosoft Inc. | Nonintrusive update of files |
US20030097410A1 (en) * | 2001-10-04 | 2003-05-22 | Atkins R. Travis | Methodology for enabling multi-party collaboration across a data network |
US20030097638A1 (en) * | 2001-11-21 | 2003-05-22 | Nec Corporation | Document management system, method thereof, and program thereof |
US20030096760A1 (en) * | 1997-03-10 | 2003-05-22 | Smithklinebeecham Corporation | Method of antagonizing the human SRC SH2 domain |
US6574377B1 (en) * | 1994-11-18 | 2003-06-03 | The Chase Manhattan Bank | Electronic check image storage and retrieval system |
US20030115481A1 (en) * | 2001-12-18 | 2003-06-19 | Baird Roger T. | Controlling the distribution of information |
US20030167281A1 (en) * | 1998-09-14 | 2003-09-04 | Cohen Andrew L. | Method and software for supporting improved awareness of and collaboration among users involved in a task |
US6681382B1 (en) * | 2000-09-18 | 2004-01-20 | Cisco Technology, Inc. | Method and system for using virtual labels in a software configuration management system |
US6687878B1 (en) * | 1999-03-15 | 2004-02-03 | Real Time Image Ltd. | Synchronizing/updating local client notes with annotations previously made by other clients in a notes database |
US20040039829A1 (en) * | 2002-08-23 | 2004-02-26 | Tim Bucher | Peer to peer remote data storage and collaboration |
US6711718B2 (en) * | 2001-12-10 | 2004-03-23 | Charles Pfeil | Parallel electronic design automation: distributed simultaneous editing |
US20040068505A1 (en) * | 2002-10-04 | 2004-04-08 | Chung-I Lee | System and method for synchronously editing a file on different client computers |
US20040107224A1 (en) * | 2002-12-02 | 2004-06-03 | International Business Machines Corporation | Concurrent editing of a file by multiple authors |
US6751618B1 (en) * | 1999-11-24 | 2004-06-15 | Unisys Corporation | Method and apparatus for a web application server to upload multiple files and invoke a script to use the files in a single browser request |
US20040122898A1 (en) * | 2002-12-20 | 2004-06-24 | International Business Machines Corporation | Collaborative review of distributed content |
US20040122870A1 (en) * | 2002-12-24 | 2004-06-24 | Joong-Ki Park | Method for data synchronization and update conflict resolution between mobile clients and server in mobile system |
US6757871B1 (en) * | 1999-08-10 | 2004-06-29 | Fuji Xerox Co., Ltd. | Common document editing apparatus |
US6757678B2 (en) * | 2001-04-12 | 2004-06-29 | International Business Machines Corporation | Generalized method and system of merging and pruning of data trees |
US20050004990A1 (en) * | 2003-07-01 | 2005-01-06 | Microsoft Corporation | Conversation grouping of electronic mail records |
US20050064858A1 (en) * | 2003-09-19 | 2005-03-24 | Nokia Corporation | Method and device for real-time shared editing mobile video |
US20050071386A1 (en) * | 2003-09-25 | 2005-03-31 | International Business Machines Corporation | Method, system, and program for data synchronizatiom |
US20050097440A1 (en) * | 2003-11-04 | 2005-05-05 | Richard Lusk | Method and system for collaboration |
US6983416B1 (en) * | 2000-04-04 | 2006-01-03 | Electronics And Telecommunications Research Institute | System and method for cooperative editing of web document |
US20060015811A1 (en) * | 2004-07-14 | 2006-01-19 | Fuji Xerox Co., Ltd. | Document processing apparatus, document processing method and storage medium storing document processing program |
US20060020360A1 (en) * | 2004-07-23 | 2006-01-26 | Sap Aktiengesellschaft, A German Corporation | User interface for conflict resolution management |
US7007235B1 (en) * | 1999-04-02 | 2006-02-28 | Massachusetts Institute Of Technology | Collaborative agent interaction control and synchronization system |
US20060053194A1 (en) * | 2004-09-03 | 2006-03-09 | Schneider Ronald E | Systems and methods for collaboration |
US20060053195A1 (en) * | 2004-09-03 | 2006-03-09 | Schneider Ronald E | Systems and methods for collaboration |
US20060080432A1 (en) * | 2004-09-03 | 2006-04-13 | Spataro Jared M | Systems and methods for collaboration |
US20060085402A1 (en) * | 2004-10-20 | 2006-04-20 | Microsoft Corporation | Using permanent identifiers in documents for change management |
US7039679B2 (en) * | 1996-12-13 | 2006-05-02 | Visto Corporation | System and method for globally and securely accessing unified information in a computer network |
US20060101328A1 (en) * | 2004-11-08 | 2006-05-11 | International Business Machines Corporation | Multi-user, multi-timed collaborative annotation |
US7047407B2 (en) * | 2001-12-05 | 2006-05-16 | Hitachi, Ltd. | Network system enabling transmission control |
US7058663B2 (en) * | 2001-03-13 | 2006-06-06 | Koninklijke Philips Electronics, N.V. | Automatic data update |
US20060123033A1 (en) * | 2003-05-16 | 2006-06-08 | Microsoft Corporation | Method and System for Providing a Representation of Merge Conflicts in a Three-Way Merge Operation |
US7065633B1 (en) * | 1999-01-28 | 2006-06-20 | Ati International Srl | System for delivering exception raised in first architecture to operating system coded in second architecture in dual architecture CPU |
US20060136511A1 (en) * | 2004-12-21 | 2006-06-22 | Nextpage, Inc. | Storage-and transport-independent collaborative document-management system |
US20060136809A1 (en) * | 2004-12-17 | 2006-06-22 | Xerox Corporation | Method and apparatus for generating instances of documents |
US7111237B2 (en) * | 2002-09-30 | 2006-09-19 | Qnaturally Systems Inc. | Blinking annotation callouts highlighting cross language search results |
US7185277B1 (en) * | 2003-10-24 | 2007-02-27 | Microsoft Corporation | Method and apparatus for merging electronic documents containing markup language |
US20070066293A1 (en) * | 2005-09-16 | 2007-03-22 | Hon Hai Precision Industry Co., Ltd. | Mobile communication device, method for downloading configuration files, and wireless communication system |
US7200668B2 (en) * | 2002-03-05 | 2007-04-03 | Sun Microsystems, Inc. | Document conversion with merging |
US20070118598A1 (en) * | 2005-11-22 | 2007-05-24 | International Business Machines Corporation | Collaborative editing of a document |
US7225189B1 (en) * | 2004-02-19 | 2007-05-29 | Microsoft Corporation | Data source write back and offline data editing and storage in a spreadsheet |
US20070130334A1 (en) * | 2002-06-13 | 2007-06-07 | Carley Jeffrey A | Out-of-band remote management station |
US7310657B2 (en) * | 2000-04-26 | 2007-12-18 | International Business Machines Corporation | Owner identification of collaboration work object |
US20080028300A1 (en) * | 2003-07-08 | 2008-01-31 | Michael Alex Krieger | Automated Publishing System That Facilitates Collaborative Editing And Accountability Through Virtual Document Architecture |
US7328243B2 (en) * | 2002-10-31 | 2008-02-05 | Sun Microsystems, Inc. | Collaborative content coherence using mobile agents in peer-to-peer networks |
US20080059539A1 (en) * | 2006-08-08 | 2008-03-06 | Richard Chin | Document Collaboration System and Method |
US20080072141A1 (en) * | 2004-05-19 | 2008-03-20 | Universitaet Zuerich | Computer-Based System and Computer Program Product for Collaborative Editing of Documents |
US20080086718A1 (en) * | 2006-10-10 | 2008-04-10 | Bostick James E | Method and Apparatus for Identifying Authors of Changes Between Multiple Versions of a File |
US20080097993A1 (en) * | 2006-10-19 | 2008-04-24 | Fujitsu Limited | Search processing method and search system |
US20080098294A1 (en) * | 2006-10-23 | 2008-04-24 | Mediq Learning, L.L.C. | Collaborative annotation of electronic content |
US20080114740A1 (en) * | 2006-11-14 | 2008-05-15 | Xcential Group Llc | System and method for maintaining conformance of electronic document structure with multiple, variant document structure models |
US20080126953A1 (en) * | 2006-11-28 | 2008-05-29 | Scott Davidson | Method and system for role-based display of document renditions for web conferencing |
US20080147590A1 (en) * | 2005-02-04 | 2008-06-19 | Accenture Global Services Gmbh | Knowledge discovery tool extraction and integration |
US20090006948A1 (en) * | 2007-06-29 | 2009-01-01 | Microsoft Corporation | Integrated collaborative user interface for a document editor program |
US20090006936A1 (en) * | 2007-06-29 | 2009-01-01 | Microsoft Corporation | Collaborative document authoring |
US7496577B2 (en) * | 2000-11-28 | 2009-02-24 | Attenex Corporation | System and method for efficiently drafting a legal document using an authenticated clause table |
US20090063489A1 (en) * | 2007-08-30 | 2009-03-05 | International Business Machines Corporation | Accessing Data Entities |
US20090094242A1 (en) * | 2007-10-03 | 2009-04-09 | George Lo | Method and system for intra-document object locking in collaborative authoring |
US20090125518A1 (en) * | 2007-11-09 | 2009-05-14 | Microsoft Corporation | Collaborative Authoring |
US7536641B2 (en) * | 2005-04-29 | 2009-05-19 | Google Inc. | Web page authoring tool for structured documents |
US20090157811A1 (en) * | 2007-12-14 | 2009-06-18 | Microsoft Corporation | Collaborative Authoring Modes |
US7647292B2 (en) * | 2004-04-21 | 2010-01-12 | Nec Corporation | Document management network system for managing original document information and additional information |
US7650336B1 (en) * | 2004-12-02 | 2010-01-19 | Adobe Systems Incorporated | File system atomic lock |
US7664750B2 (en) * | 2002-02-02 | 2010-02-16 | Lewis Frees | Distributed system for interactive collaboration |
US20100070464A1 (en) * | 2008-09-15 | 2010-03-18 | Andrew Aymeloglu | Document-based workflows |
US7694217B2 (en) * | 2005-04-26 | 2010-04-06 | Eastman Kodak Company | Systems and methods for comparing documents containing graphic elements |
US20100088676A1 (en) * | 2008-09-25 | 2010-04-08 | International Business Machines Corporation | Comparing and merging structured documents syntactically and semantically |
US7714222B2 (en) * | 2007-02-14 | 2010-05-11 | Museami, Inc. | Collaborative music creation |
US20100131836A1 (en) * | 2008-11-24 | 2010-05-27 | Microsoft Corporation | User-authored notes on shared documents |
Family Cites Families (274)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01113849A (en) | 1987-10-19 | 1989-05-02 | Internatl Business Mach Corp <Ibm> | Multi-user's system |
US4855580A (en) * | 1987-11-20 | 1989-08-08 | Recognition Equipment Incorporated | Data merge document processing method |
US5142619A (en) * | 1990-02-21 | 1992-08-25 | International Business Machines Corporation | Method and apparatus for visually comparing files in a data processing system |
US5339389A (en) * | 1991-12-31 | 1994-08-16 | International Business Machines Corporation | User selectable lock regions |
US5337407A (en) * | 1991-12-31 | 1994-08-09 | International Business Machines Corporation | Method and system for identifying users in a collaborative computer-based system |
JPH0827754B2 (en) * | 1992-05-21 | 1996-03-21 | インターナショナル・ビジネス・マシーンズ・コーポレイション | File management method and file management system in computer system |
US5555388A (en) * | 1992-08-20 | 1996-09-10 | Borland International, Inc. | Multi-user system and methods providing improved file management by reading |
US5960419A (en) * | 1992-10-05 | 1999-09-28 | Expert Systems Publishing Co. | Authoring tool for computer implemented decision management system |
US5446842A (en) | 1993-02-26 | 1995-08-29 | Taligent, Inc. | Object-oriented collaboration system |
US5920694A (en) * | 1993-03-19 | 1999-07-06 | Ncr Corporation | Annotation of computer video displays |
JPH0785020A (en) | 1993-09-20 | 1995-03-31 | Hitachi Ltd | Document management method |
JP3053153B2 (en) | 1993-09-20 | 2000-06-19 | 株式会社日立製作所 | How to start application of document management system |
US5689641A (en) | 1993-10-01 | 1997-11-18 | Vicor, Inc. | Multimedia collaboration system arrangement for routing compressed AV signal through a participant site without decompressing the AV signal |
US6049334A (en) * | 1993-12-20 | 2000-04-11 | International Business Machines Corporation | Method and system for graphically indicating the activity of a plurality of users within a shared data collection |
US6760840B1 (en) * | 1994-03-15 | 2004-07-06 | Kabushiki Kaisha Toshiba | File editing system and shared file editing system with file content secrecy, file version management, and asynchronous editing |
US5831615A (en) * | 1994-09-30 | 1998-11-03 | Intel Corporation | Method and apparatus for redrawing transparent windows |
US5887146A (en) | 1995-08-14 | 1999-03-23 | Data General Corporation | Symmetric multiprocessing computer with non-uniform memory access architecture |
US5956028A (en) | 1995-09-14 | 1999-09-21 | Fujitsu Ltd. | Virtual space communication system, three-dimensional image display method, and apparatus therefor |
US5774717A (en) | 1995-12-15 | 1998-06-30 | International Business Machines Corporation | Method and article of manufacture for resynchronizing client/server file systems and resolving file system conflicts |
US5781908A (en) * | 1995-12-18 | 1998-07-14 | J.D. Edwards World Source Company | File data synchronizer in a distributed data computer network |
US6006239A (en) | 1996-03-15 | 1999-12-21 | Microsoft Corporation | Method and system for allowing multiple users to simultaneously edit a spreadsheet |
US5781732A (en) * | 1996-06-20 | 1998-07-14 | Object Technology Licensing Corp. | Framework for constructing shared documents that can be collaboratively accessed by multiple users |
US5787262A (en) * | 1996-06-26 | 1998-07-28 | Microsoft Corporation | System and method for distributed conflict resolution between data objects replicated across a computer network |
US5835950A (en) | 1996-07-12 | 1998-11-10 | Samsung Electronics Co., Ltd. | Self-invalidation method for reducing coherence overheads in a bus-based shared-memory multiprocessor apparatus |
US6175853B1 (en) * | 1996-09-17 | 2001-01-16 | Netscape Communications Corporation | Method and apparatus for a distributed locking system for a collaborative computer system |
US6244575B1 (en) | 1996-10-02 | 2001-06-12 | Micron Technology, Inc. | Method and apparatus for vaporizing liquid precursors and system for using same |
JP3592004B2 (en) | 1996-10-31 | 2004-11-24 | キヤノン株式会社 | Information sharing management system and information sharing system management apparatus and method |
JP2996197B2 (en) * | 1997-02-14 | 1999-12-27 | 日本電気株式会社 | Document sharing management method |
US5966512A (en) * | 1997-06-05 | 1999-10-12 | International Business Machines Corporation | Groupware save operation |
US6233600B1 (en) * | 1997-07-15 | 2001-05-15 | Eroom Technology, Inc. | Method and system for providing a networked collaborative work environment |
US7447712B2 (en) | 1997-09-28 | 2008-11-04 | Global 360, Inc. | Structured workfolder |
AU1077899A (en) | 1997-10-09 | 1999-05-03 | Interval Research Corporation | Electronic audio connection system and methods for providing same |
US6327611B1 (en) | 1997-11-12 | 2001-12-04 | Netscape Communications Corporation | Electronic document routing system |
US6000945A (en) * | 1998-02-09 | 1999-12-14 | Educational Testing Service | System and method for computer based test assembly |
US6088702A (en) * | 1998-02-25 | 2000-07-11 | Plantz; Scott H. | Group publishing system |
AUPP252298A0 (en) | 1998-03-24 | 1998-04-23 | 80-20 Software Pty Limited | Document management software |
US6275935B1 (en) * | 1998-04-17 | 2001-08-14 | Thingworld.Com, Llc | Systems and methods for locking interactive objects |
US6438564B1 (en) | 1998-06-17 | 2002-08-20 | Microsoft Corporation | Method for associating a discussion with a document |
US5999208A (en) | 1998-07-15 | 1999-12-07 | Lucent Technologies Inc. | System for implementing multiple simultaneous meetings in a virtual reality mixed media meeting room |
JP2000076109A (en) | 1998-08-28 | 2000-03-14 | Toshiba Corp | Data display device and data display method |
US7194679B1 (en) * | 1998-10-20 | 2007-03-20 | International Business Machines Corporation | Web-based file review system utilizing source and comment files |
US6324544B1 (en) | 1998-10-21 | 2001-11-27 | Microsoft Corporation | File object synchronization between a desktop computer and a mobile device |
US6502113B1 (en) | 1998-11-23 | 2002-12-31 | John E. Crawford | Negotiation manager incorporating clause modification and markers for tracking negotiation progress |
JP2000163344A (en) | 1998-11-27 | 2000-06-16 | Nec Corp | Data base recovery system for network management system |
US7024430B1 (en) | 1998-12-08 | 2006-04-04 | Starfish Software, Inc. | Method and system for implementing a filter in a data synchronization system |
GB9827831D0 (en) | 1998-12-17 | 1999-02-10 | Tribeka Ltd | Method and apparatus for the distribution of digitised information on demand |
US6681371B1 (en) | 1998-12-21 | 2004-01-20 | At&T Corp. | System and method for using container documents as multi-user domain clients |
KR100309803B1 (en) | 1998-12-26 | 2001-12-17 | 서평원 | Database Synchronization System and Method between Network Management System and Managed Equipment |
US6564246B1 (en) | 1999-02-02 | 2003-05-13 | International Business Machines Corporation | Shared and independent views of shared workspace for real-time collaboration |
JP3711210B2 (en) * | 1999-03-12 | 2005-11-02 | シャープ株式会社 | Document editing system and program recording medium |
US6317777B1 (en) | 1999-04-26 | 2001-11-13 | Intel Corporation | Method for web based storage and retrieval of documents |
TW428146B (en) | 1999-05-05 | 2001-04-01 | Inventec Corp | Data file updating method by increment |
US6430576B1 (en) | 1999-05-10 | 2002-08-06 | Patrick Gates | Distributing and synchronizing objects |
US7089530B1 (en) * | 1999-05-17 | 2006-08-08 | Invensys Systems, Inc. | Process control configuration system with connection validation and configuration |
CN1154054C (en) | 1999-06-04 | 2004-06-16 | 网络装置公司 | Multi-protocol unified file lockout |
US6629129B1 (en) | 1999-06-16 | 2003-09-30 | Microsoft Corporation | Shared virtual meeting services among computer applications |
US6678882B1 (en) | 1999-06-30 | 2004-01-13 | Qwest Communications International Inc. | Collaborative model for software systems with synchronization submodel with merge feature, automatic conflict resolution and isolation of potential changes for reuse |
US6438548B1 (en) * | 1999-06-30 | 2002-08-20 | International Business Machines Corporation | Method of and system for managing documents in a bandwidth constrained environment |
US6327584B1 (en) | 1999-07-30 | 2001-12-04 | Hewlett-Packard Company | Apparatus and method for using version control to dynamically update files while the files are available for access |
US6516339B1 (en) | 1999-08-18 | 2003-02-04 | International Business Machines Corporation | High performance client/server editor |
US6526434B1 (en) | 1999-08-24 | 2003-02-25 | International Business Machines Corporation | System and method for efficient transfer of data blocks from client to server |
US6189009B1 (en) | 1999-08-27 | 2001-02-13 | The Voice.Com, Inc. | System and method for integrating paper-based business documents with computer-readable data entered via a computer network |
US6507865B1 (en) * | 1999-08-30 | 2003-01-14 | Zaplet, Inc. | Method and system for group content collaboration |
US7089278B1 (en) | 1999-09-07 | 2006-08-08 | Fuji Xerox Co., Ltd. | Anchored conversations: adhesive, in-context, virtual discussion forums |
JP2001092707A (en) * | 1999-09-24 | 2001-04-06 | Nec Corp | Information processing system, structured document processing system, its updating method and recording medium with its updating program recorded thereon |
US7039860B1 (en) | 1999-10-01 | 2006-05-02 | Netspinner Solutions As | Creating web pages category list prior to the list being served to a browser |
US6578054B1 (en) | 1999-10-04 | 2003-06-10 | Microsoft Corporation | Method and system for supporting off-line mode of operation and synchronization using resource state information |
WO2001033362A1 (en) | 1999-11-05 | 2001-05-10 | Attivo Software, Inc. | Action communication and synchronization for documents accessed by multiple users |
JP2001154966A (en) | 1999-11-29 | 2001-06-08 | Sony Corp | System and method for supporting virtual conversation being participation possible by users in shared virtual space constructed and provided on computer network and medium storing program |
US6594664B1 (en) | 2000-01-04 | 2003-07-15 | International Business Machines Corporation | System and method for online/offline uninterrupted updating of rooms in collaboration space |
US6694336B1 (en) | 2000-01-25 | 2004-02-17 | Fusionone, Inc. | Data transfer and synchronization system |
JP3879350B2 (en) * | 2000-01-25 | 2007-02-14 | 富士ゼロックス株式会社 | Structured document processing system and structured document processing method |
SG99886A1 (en) | 2000-02-24 | 2003-11-27 | Ibm | System and method for collaborative multi-device web browsing |
US6842768B1 (en) | 2000-03-01 | 2005-01-11 | Siemens Communications, Inc. | Apparatus and method for selectable compression |
JP2001265704A (en) | 2000-03-23 | 2001-09-28 | Megafusion Corp | Control method for virtual activity |
US7237006B1 (en) * | 2000-04-07 | 2007-06-26 | Andrew Prell | Method for managing the simultaneous utilization of diverse real-time collaborative software applications |
JP2001290690A (en) | 2000-04-11 | 2001-10-19 | Canon Inc | Method and device for managing file and storage medium |
US7478129B1 (en) | 2000-04-18 | 2009-01-13 | Helen Jeanne Chemtob | Method and apparatus for providing group interaction via communications networks |
US7124164B1 (en) * | 2001-04-17 | 2006-10-17 | Chemtob Helen J | Method and apparatus for providing group interaction via communications networks |
IE20010467A1 (en) | 2000-05-16 | 2001-11-28 | Garrett O'carroll | A document processing system and method |
US6931592B1 (en) | 2000-05-22 | 2005-08-16 | Microsoft Corporation | Reviewing and merging electronic documents |
US6757767B1 (en) | 2000-05-31 | 2004-06-29 | Advanced Digital Information Corporation | Method for acceleration of storage devices by returning slightly early write status |
SE522846C2 (en) | 2000-06-22 | 2004-03-09 | Ericsson Telefon Ab L M | Antenna with helical radiator and feedback conductor, as well as multi-layer cards and portable communication apparatus including such an antenna |
US6596396B2 (en) | 2000-08-09 | 2003-07-22 | Mitsubishi Gas Chemical Company, Inc. | Thin-film-like particles having skeleton constructed by carbons and isolated films |
US6925476B1 (en) | 2000-08-17 | 2005-08-02 | Fusionone, Inc. | Updating application data including adding first change log to aggreagate change log comprising summary of changes |
AU2001295748A1 (en) | 2000-10-18 | 2002-04-29 | Chasseral Limited | Concurrent file access |
US20020083183A1 (en) | 2000-11-06 | 2002-06-27 | Sanjay Pujare | Conventionally coded application conversion system for streamed delivery and execution |
US6976213B1 (en) | 2000-11-10 | 2005-12-13 | Interspec, Inc. | Method of automatically generating specifications and providing online services for same |
US7669051B2 (en) | 2000-11-13 | 2010-02-23 | DigitalDoors, Inc. | Data security system and method with multiple independent levels of security |
US20020069192A1 (en) | 2000-12-04 | 2002-06-06 | Aegerter William Charles | Modular distributed mobile data applications |
US6941326B2 (en) | 2001-01-24 | 2005-09-06 | Microsoft Corporation | Accounting for update notifications in synchronizing data that may be represented by different data structures |
US7110936B2 (en) | 2001-02-23 | 2006-09-19 | Complementsoft Llc | System and method for generating and maintaining software code |
US8744835B2 (en) | 2001-03-16 | 2014-06-03 | Meaningful Machines Llc | Content conversion method and apparatus |
IL157948A0 (en) | 2001-03-16 | 2004-03-28 | Netomat Inc | Sharing, managing and communicating information over a computer network |
JP2002288029A (en) * | 2001-03-28 | 2002-10-04 | Ricoh Co Ltd | Document managing system |
GB2374689B (en) * | 2001-04-20 | 2005-11-23 | Eldama Systems Ip Ltd | Communications system |
JP4953518B2 (en) | 2001-05-14 | 2012-06-13 | ケープレックス・インク | Information sharing method and apparatus using object-oriented technology |
US6993522B2 (en) | 2001-06-27 | 2006-01-31 | Microsoft Corporation | System and method for resolving conflicts detected during a synchronization session |
US7117278B2 (en) | 2001-07-12 | 2006-10-03 | Sun Micro Systems, Inc. | Method for merging a plurality of data streams into a single data stream |
US7149776B1 (en) | 2001-08-31 | 2006-12-12 | Oracle International Corp. | System and method for real-time co-browsing |
US7124362B2 (en) | 2001-08-31 | 2006-10-17 | Robert Tischer | Method and system for producing an ordered compilation of information with more than one author contributing information contemporaneously |
WO2003021985A1 (en) | 2001-09-06 | 2003-03-13 | Tersync Ltd. | System and method for providing two-way radio communications network transmissions over internet protocol |
US20040205539A1 (en) | 2001-09-07 | 2004-10-14 | Mak Mingchi Stephen | Method and apparatus for iterative merging of documents |
JP2003150586A (en) | 2001-11-12 | 2003-05-23 | Ntt Docomo Inc | Document converting system, document converting method and computer-readable recording medium with document converting program recorded thereon |
US7496841B2 (en) * | 2001-12-17 | 2009-02-24 | Workshare Technology, Ltd. | Method and system for document collaboration |
US20030140067A1 (en) | 2002-01-18 | 2003-07-24 | Robert Sesek | Systems and methods for sending documents |
US7024429B2 (en) | 2002-01-31 | 2006-04-04 | Nextpage,Inc. | Data replication based upon a non-destructive data model |
JP2003233520A (en) | 2002-02-07 | 2003-08-22 | Fujitsu Ltd | File control unit for file resources on a network |
US20030159105A1 (en) | 2002-02-21 | 2003-08-21 | Hiebert Steven P. | Interpretive transformation system and method |
US7340534B2 (en) * | 2002-03-05 | 2008-03-04 | Sun Microsystems, Inc. | Synchronization of documents between a server and small devices |
US20030208534A1 (en) | 2002-05-02 | 2003-11-06 | Dennis Carmichael | Enhanced productivity electronic meeting system |
US6691155B2 (en) | 2002-06-20 | 2004-02-10 | Linda Gottfried | Multimedia system for sharing brand information keeps history of modifications of production information by consumers to allow recreating multimedia interface in its previous formats |
US20040003090A1 (en) | 2002-06-28 | 2004-01-01 | Douglas Deeds | Peer-to-peer media sharing |
US7565603B1 (en) | 2002-06-28 | 2009-07-21 | Microsoft Corporation | Representing style information in a markup language document |
JP2004065193A (en) | 2002-08-09 | 2004-03-04 | Kazumi Minbu | Guard for grass cutter |
JP2004078535A (en) | 2002-08-16 | 2004-03-11 | Yamaha Corp | Exclusive control device, method, and program |
US7814055B2 (en) | 2002-08-28 | 2010-10-12 | Apple Inc. | Method of managing a calendar and a computer system for implementing that method |
US6880350B2 (en) | 2002-09-13 | 2005-04-19 | Isothermal Systems Research, Inc. | Dynamic spray system |
JP4737914B2 (en) | 2002-10-02 | 2011-08-03 | ケープレックス・インク | Document revision support program, computer-readable medium storing the support program, and document revision support apparatus |
KR100804519B1 (en) * | 2002-10-10 | 2008-02-20 | 인터내셔널 비지네스 머신즈 코포레이션 | Apparatus and method for selecting, ordering, and accessing copyrighted information in physical documents |
CN1244874C (en) | 2002-10-12 | 2006-03-08 | 鸿富锦精密工业(深圳)有限公司 | Multi-point coordinated operation system and method |
US7818678B2 (en) | 2002-10-31 | 2010-10-19 | Litera Technology Llc | Collaborative document development and review system |
DE10250842B4 (en) | 2002-10-31 | 2010-11-11 | OCé PRINTING SYSTEMS GMBH | A method, computer program product and apparatus for processing a document data stream of an input format into an output format |
US20040177343A1 (en) | 2002-11-04 | 2004-09-09 | Mcvoy Lawrence W. | Method and apparatus for understanding and resolving conflicts in a merge |
US7356393B1 (en) | 2002-11-18 | 2008-04-08 | Turfcentric, Inc. | Integrated system for routine maintenance of mechanized equipment |
US20040143630A1 (en) | 2002-11-21 | 2004-07-22 | Roy Kaufmann | Method and system for sending questions, answers and files synchronously and asynchronously in a system for enhancing collaboration using computers and networking |
KR100490734B1 (en) | 2002-12-21 | 2005-05-24 | 한국전자통신연구원 | Annotation-based automatic document generation apparatus and method |
US7337388B2 (en) | 2003-01-02 | 2008-02-26 | Microsoft Corporation | Tool-based iterative document management |
US7379928B2 (en) | 2003-02-13 | 2008-05-27 | Microsoft Corporation | Method and system for searching within annotated computer documents |
US8706760B2 (en) * | 2003-02-28 | 2014-04-22 | Microsoft Corporation | Method to delay locking of server files on edit |
US8010491B2 (en) | 2003-02-28 | 2011-08-30 | Microsoft Corporation | Method for managing multiple file states for replicated files |
US7389309B2 (en) | 2003-02-28 | 2008-06-17 | Microsoft Corporation | Method for managing file replication in applications |
JP2004265193A (en) | 2003-03-03 | 2004-09-24 | Canon Inc | Information processing method, information processor, control method of server device, and server device |
US9003295B2 (en) | 2003-03-17 | 2015-04-07 | Leo Martin Baschy | User interface driven access control system and method |
US20060259524A1 (en) | 2003-03-17 | 2006-11-16 | Horton D T | Systems and methods for document project management, conversion, and filing |
US7757162B2 (en) | 2003-03-31 | 2010-07-13 | Ricoh Co. Ltd. | Document collection manipulation |
US7155465B2 (en) | 2003-04-18 | 2006-12-26 | Lee Howard F | Method and apparatus for automatically archiving a file system |
JP2004326176A (en) | 2003-04-21 | 2004-11-18 | Matsushita Electric Works Ltd | Information server, program for information server and information system |
WO2004104851A1 (en) | 2003-05-16 | 2004-12-02 | M-Qube, Inc. | Centralized mobile and wireless messaging opt-out registry system and method |
US20040230903A1 (en) | 2003-05-16 | 2004-11-18 | Dethe Elza | Method and system for enabling collaborative authoring of hierarchical documents with associated business logic |
CN1997980B (en) | 2003-05-16 | 2011-07-06 | 谷歌公司 | Networked chat and media sharing systems and methods |
US7373590B2 (en) | 2003-05-19 | 2008-05-13 | Microsoft Corporation | Shared electronic ink annotation method and system |
US7660829B2 (en) | 2003-05-30 | 2010-02-09 | Microsoft Corporation | System and method for delegating file system operations |
US7257769B2 (en) * | 2003-06-05 | 2007-08-14 | Siemens Communications, Inc. | System and method for indicating an annotation for a document |
US9256753B2 (en) | 2003-06-11 | 2016-02-09 | Microsoft Technology Licensing, Llc | Method and apparatus for protecting regions of an electronic document |
US7444337B2 (en) | 2004-03-09 | 2008-10-28 | Ntt Docomo, Inc. | Framework and associated apparatus for the adaptive replication of applications with server side code units |
US8001187B2 (en) | 2003-07-01 | 2011-08-16 | Apple Inc. | Peer-to-peer active content sharing |
US7329664B2 (en) | 2003-07-16 | 2008-02-12 | Neurogen Corporation | Substituted (7-pyridyl-4-phenylamino-quinazolin-2-yl)-methanol analogues |
US7315978B2 (en) | 2003-07-30 | 2008-01-01 | Ameriprise Financial, Inc. | System and method for remote collection of data |
AU2003903994A0 (en) | 2003-07-31 | 2003-08-14 | Canon Kabushiki Kaisha | Collaborative editing with automatic layout |
US20050033811A1 (en) * | 2003-08-07 | 2005-02-10 | International Business Machines Corporation | Collaborative email |
US7363581B2 (en) | 2003-08-12 | 2008-04-22 | Accenture Global Services Gmbh | Presentation generator |
US7401104B2 (en) | 2003-08-21 | 2008-07-15 | Microsoft Corporation | Systems and methods for synchronizing computer systems through an intermediary file system share or device |
JP4393140B2 (en) | 2003-08-29 | 2010-01-06 | 京セラミタ株式会社 | Image forming apparatus and image forming system |
US8489769B2 (en) | 2003-10-02 | 2013-07-16 | Accenture Global Services Limited | Intelligent collaborative expression in support of socialization of devices |
US7242389B1 (en) * | 2003-10-07 | 2007-07-10 | Microsoft Corporation | System and method for a large format collaborative display for sharing information |
US7831679B2 (en) | 2003-10-15 | 2010-11-09 | Microsoft Corporation | Guiding sensing and preferences for context-sensitive services |
WO2005043279A2 (en) * | 2003-10-31 | 2005-05-12 | Disksites Research And Development Ltd. | Device, system and method for storage and access of computer files |
US7203708B2 (en) | 2003-11-06 | 2007-04-10 | Microsoft Corporation | Optimizing file replication using binary comparisons |
US7458030B2 (en) | 2003-12-12 | 2008-11-25 | Microsoft Corporation | System and method for realtime messaging having image sharing feature |
US7839532B2 (en) | 2003-12-12 | 2010-11-23 | Ipro Tech, Inc. | Methods and apparatus for imaging documents |
US20050177617A1 (en) | 2003-12-23 | 2005-08-11 | Intel Corporation | Conflict resolution during data synchronization |
GB2409541A (en) | 2003-12-23 | 2005-06-29 | Mandorla Technology Ltd | Editable information management system and method |
FR2865051B1 (en) | 2004-01-14 | 2006-03-03 | Stg Interactive | METHOD AND SYSTEM FOR OPERATING A COMPUTER NETWORK FOR CONTENT RELEASE |
US8108483B2 (en) | 2004-01-30 | 2012-01-31 | Microsoft Corporation | System and method for generating a consistent user namespace on networked devices |
JP2005267021A (en) * | 2004-03-17 | 2005-09-29 | Ricoh Co Ltd | Document preparation method and device, program, storage medium and data structure of document |
US20050216524A1 (en) | 2004-03-23 | 2005-09-29 | Integrated Data Corporation | Smart and selective synchronization between databases in a document management system |
JP2005293015A (en) | 2004-03-31 | 2005-10-20 | Sharp Corp | Document management server, document management system, document management method, document management program, and recording medium with the document management program recorded |
US7912904B2 (en) | 2004-03-31 | 2011-03-22 | Google Inc. | Email system with conversation-centric user interface |
WO2005099381A2 (en) | 2004-04-07 | 2005-10-27 | Xoopit, Inc. | Expression and time-based data creation and creator-controlled organization |
JP2005301838A (en) | 2004-04-14 | 2005-10-27 | Sharp Corp | Information processor, information processing system, file simultaneous editing method and file simultaneous editing program |
CN1684059A (en) * | 2004-04-14 | 2005-10-19 | 皇家飞利浦电子股份有限公司 | Editing method and device for multimedia information files |
US7818679B2 (en) | 2004-04-20 | 2010-10-19 | Microsoft Corporation | Method, system, and apparatus for enabling near real time collaboration on an electronic document through a plurality of computer systems |
JP4448537B2 (en) | 2004-04-26 | 2010-04-14 | コダック グラフィック コミュニケーションズ カナダ カンパニー | System and method for comparing documents containing graphic elements |
US8499248B1 (en) * | 2004-04-29 | 2013-07-30 | Paul Erich Keel | Methods and apparatus for managing and exchanging information using information objects |
US7640511B1 (en) * | 2004-04-29 | 2009-12-29 | Paul Erich Keel | Methods and apparatus for managing and inferring relationships from information objects |
US7698307B2 (en) | 2004-05-01 | 2010-04-13 | Microsoft Corporation | System and method for synchronizing between a file system and presence of contacts on a network |
US20060031264A1 (en) | 2004-05-20 | 2006-02-09 | Bea Systems, Inc. | Synchronization protocol for occasionally-connected application server |
US7603357B1 (en) * | 2004-06-01 | 2009-10-13 | Adobe Systems Incorporated | Collaborative asset management |
JP4716709B2 (en) | 2004-06-10 | 2011-07-06 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Structured document processing apparatus, structured document processing method, and program |
JP4069905B2 (en) | 2004-06-28 | 2008-04-02 | コニカミノルタビジネステクノロジーズ株式会社 | Shared file management system and server |
US7567988B2 (en) | 2004-07-16 | 2009-07-28 | Sap Ag | Synchronizing agent for multiple clients/applications on a computer system |
US20060026502A1 (en) | 2004-07-28 | 2006-02-02 | Koushik Dutta | Document collaboration system |
US7966556B1 (en) | 2004-08-06 | 2011-06-21 | Adobe Systems Incorporated | Reviewing and editing word processing documents |
US20060041596A1 (en) | 2004-08-19 | 2006-02-23 | Vlad Stirbu | Caching directory server data for controlling the disposition of multimedia data on a network |
ES2490790T3 (en) * | 2004-08-31 | 2014-09-04 | Tencent Technology (Shenzhen) Company Limited | System and method for implementing online file storage based on a real-time communications platform |
US20060047656A1 (en) | 2004-09-01 | 2006-03-02 | Dehlinger Peter J | Code, system, and method for retrieving text material from a library of documents |
US7702730B2 (en) | 2004-09-03 | 2010-04-20 | Open Text Corporation | Systems and methods for collaboration |
US20070118794A1 (en) | 2004-09-08 | 2007-05-24 | Josef Hollander | Shared annotation system and method |
EP1812848A4 (en) | 2004-09-15 | 2009-04-29 | Adesso Systems Inc | System and method for managing data in a distributed computer system |
TWI248002B (en) * | 2004-09-17 | 2006-01-21 | Infopower Corp | System and method of web-based editor for compound documents |
KR20060034786A (en) | 2004-10-19 | 2006-04-26 | 이유정 | Method and system for jointly editing documents by multiple users |
US7730129B2 (en) | 2004-10-20 | 2010-06-01 | Inbit, Inc. | Collaborative communication platforms |
US7814105B2 (en) | 2004-10-27 | 2010-10-12 | Harris Corporation | Method for domain identification of documents in a document database |
US7577906B2 (en) * | 2004-11-08 | 2009-08-18 | Microsoft Corporation | Method and system for document assembly |
US7440967B2 (en) | 2004-11-10 | 2008-10-21 | Xerox Corporation | System and method for transforming legacy documents into XML documents |
US20060106879A1 (en) | 2004-11-16 | 2006-05-18 | International Business Machines Corporation | Conflict resolution in a synchronization framework |
US20060112343A1 (en) | 2004-11-23 | 2006-05-25 | Palo Alto Research Center Incorporated | Methods, apparatus, and program products for aligning presentation of separately recorded experiential data streams |
US7617229B2 (en) | 2004-12-20 | 2009-11-10 | Microsoft Corporation | Management and use of data in a computer-generated document |
US7593943B2 (en) | 2005-01-14 | 2009-09-22 | Microsoft Corporation | Method and system for synchronizing multiple user revisions to a shared object |
US20060173901A1 (en) | 2005-01-31 | 2006-08-03 | Mediatek Incorporation | Methods for merging files and related systems |
US20060174207A1 (en) | 2005-01-31 | 2006-08-03 | Sharp Laboratories Of America, Inc. | Systems and methods for implementing a user interface for multiple simultaneous instant messaging, conference and chat room sessions |
US7313580B2 (en) | 2005-02-08 | 2007-12-25 | Domenico Vellante | Systems and methods for sharing information between a user group and associated document |
US7720890B2 (en) | 2005-02-22 | 2010-05-18 | Microsoft Corporation | Ghosted synchronization |
US7792788B2 (en) * | 2005-03-04 | 2010-09-07 | Microsoft Corporation | Method and system for resolving conflicts operations in a collaborative editing environment |
US20060218476A1 (en) * | 2005-03-25 | 2006-09-28 | Xerox Corporation | Collaborative document authoring and production methods and systems |
US20070016650A1 (en) | 2005-04-01 | 2007-01-18 | Gilbert Gary J | System and methods for collaborative development of content over an electronic network |
RU50695U1 (en) | 2005-04-28 | 2006-01-20 | ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ УНИТАРНОЕ ПРЕДПРИЯТИЕ "ГЛАВНОЕ ПРОИЗВОДСТВЕННО-КОММЕРЧЕСКОЕ УПРАВЛЕНИЕ ПО ОБСЛУЖИВАНИЮ ДИПЛОМАТИЧЕСКОГО КОРПУСА ПРИ МИНИСТЕРСТВЕ ИНОСТРАННЫХ ДЕЛ РОССИЙСКОЙ ФЕДЕРАЦИИ" (ГлавУпДК при МИД России) | DATA STORAGE AND PROCESSING SYSTEM |
US7454406B2 (en) | 2005-04-29 | 2008-11-18 | Adaptec, Inc. | System and method of handling file metadata |
EP1893275B2 (en) * | 2005-05-13 | 2015-03-04 | Coloplast A/S | Retention element for telescopic device |
US20060265377A1 (en) | 2005-05-19 | 2006-11-23 | Trimergent | Personalizable information networks |
US7305420B2 (en) | 2005-05-25 | 2007-12-04 | Microsoft Corporation | Synchronizing modifiable documents with multiple clients using document subsections |
RU2304803C2 (en) * | 2005-06-27 | 2007-08-20 | Евгений Михайлович Растворов | System for registration of operations with data stored on information storage devices |
US7610287B1 (en) | 2005-06-28 | 2009-10-27 | Google Inc. | System and method for impromptu shared communication spaces |
JP4608391B2 (en) | 2005-08-09 | 2011-01-12 | 大阪瓦斯株式会社 | Waste heat recovery device |
US7533354B2 (en) | 2005-08-25 | 2009-05-12 | International Business Machines Corporation | Technique for selecting and prioritizing choices |
US7779347B2 (en) | 2005-09-02 | 2010-08-17 | Fourteen40, Inc. | Systems and methods for collaboratively annotating electronic documents |
US8326926B2 (en) * | 2005-09-13 | 2012-12-04 | Mentor Graphics Corporation | Distributed electronic design automation architecture |
WO2007034858A1 (en) | 2005-09-22 | 2007-03-29 | Justsystems Corporation | Data managing apparatus, data editing apparatus, data browsing apparatus, data managing method, data editing method, and data browsing method |
JP2007115131A (en) * | 2005-10-21 | 2007-05-10 | Canon Inc | Information processor and its control method, information processing system, computer program, and storage medium |
CN1979466A (en) | 2005-11-29 | 2007-06-13 | 国际商业机器公司 | Method and device for allowing multi-users to edit a shared electronic file simultaneously |
US8434021B2 (en) | 2005-11-30 | 2013-04-30 | Microsoft Corporation | Centralized user interface for displaying contextually driven business content and business related functionality |
JP2007170973A (en) | 2005-12-21 | 2007-07-05 | Olympus Corp | Dispenser, analyzer and discharge chip |
US8015194B2 (en) | 2005-12-29 | 2011-09-06 | Ricoh Co., Ltd. | Refining based on log content |
US7529780B1 (en) | 2005-12-30 | 2009-05-05 | Google Inc. | Conflict management during data object synchronization between client and server |
US7774703B2 (en) * | 2006-02-09 | 2010-08-10 | Microsoft Corporation | Virtual shadow awareness for multi-user editors |
US20070198952A1 (en) * | 2006-02-21 | 2007-08-23 | Pittenger Robert A | Methods and systems for authoring of a compound document following a hierarchical structure |
US20070226604A1 (en) | 2006-03-22 | 2007-09-27 | Chalasani Nanchariah R | System and method for merging a sub-document into a collaboratively authored master document |
US8566301B2 (en) | 2006-05-01 | 2013-10-22 | Steven L. Rueben | Document revisions in a collaborative computing environment |
GB0610116D0 (en) * | 2006-05-20 | 2006-06-28 | Ibm | A method, apparatus and computer program for collaborative editing of a document |
US8407670B2 (en) | 2006-06-02 | 2013-03-26 | Microsoft Corporation | Collaborative code conflict detection, notification and resolution |
US8122341B1 (en) * | 2006-06-17 | 2012-02-21 | Google Inc. | Sharing geographical information between users |
US8453052B1 (en) | 2006-08-16 | 2013-05-28 | Google Inc. | Real-time document sharing and editing |
US7801951B2 (en) | 2006-08-25 | 2010-09-21 | Reframe-It, Inc. | Process for referencing, prioritizing, accessing, and displaying marginalia in digital media |
US8401841B2 (en) | 2006-08-31 | 2013-03-19 | Orcatec Llc | Retrieval of documents using language models |
CN101765840B (en) | 2006-09-15 | 2013-01-23 | 谷歌公司 | Capture and display of annotations in paper and electronic documents |
US7698660B2 (en) | 2006-11-13 | 2010-04-13 | Microsoft Corporation | Shared space for communicating information |
US8468244B2 (en) | 2007-01-05 | 2013-06-18 | Digital Doors, Inc. | Digital information infrastructure and method for security designated data and with granular data stores |
US20080177782A1 (en) | 2007-01-10 | 2008-07-24 | Pado Metaware Ab | Method and system for facilitating the production of documents |
RU2327206C1 (en) | 2007-01-17 | 2008-06-20 | Федеральное государственное унитарное предприятие "Научно-исследовательский институт "Восход" | System for isolated access to documents in distributed network for electronic document management |
JP2008186176A (en) | 2007-01-29 | 2008-08-14 | Canon Inc | Image processing apparatus, document merging method and control program |
KR100904758B1 (en) * | 2007-02-08 | 2009-06-29 | 삼성전자주식회사 | Flash memory device and system including buffer memory, Data update method of flash memory device |
US20080294895A1 (en) | 2007-02-15 | 2008-11-27 | Michael Bodner | Disaggregation/reassembly method system for information rights management of secure documents |
JP5023736B2 (en) * | 2007-02-27 | 2012-09-12 | 富士ゼロックス株式会社 | Terminal device and program |
US8868504B2 (en) | 2007-03-07 | 2014-10-21 | Oracle International Corporation | Database system with active standby and nodes |
US7949938B2 (en) | 2007-03-20 | 2011-05-24 | International Business Machines Corporation | Comparing and merging multiple documents |
US7787215B2 (en) | 2007-03-29 | 2010-08-31 | Tdk Corporation | Thin film magnetic head in which thermal protrusion is suppressed and method of forming the same |
US8019780B1 (en) | 2007-03-30 | 2011-09-13 | Google Inc. | Handling document revision history information in the presence of a multi-user permissions model |
US8024652B2 (en) | 2007-04-10 | 2011-09-20 | Microsoft Corporation | Techniques to associate information between application programs |
US20080256114A1 (en) | 2007-04-10 | 2008-10-16 | Microsoft Corporation | Techniques to display associated information between application programs |
US8504553B2 (en) | 2007-04-19 | 2013-08-06 | Barnesandnoble.Com Llc | Unstructured and semistructured document processing and searching |
US7769810B1 (en) | 2007-04-26 | 2010-08-03 | Adobe Systems Incorporated | Method and system for collaborative editing |
JP5154832B2 (en) | 2007-04-27 | 2013-02-27 | 株式会社日立製作所 | Document search system and document search method |
US8082277B1 (en) | 2007-06-05 | 2011-12-20 | The Board of Trustees of the University of Alabama, for and on behalf of the University of Alabamaiin Huntsville | Systems and methods for generating technical documents |
US20080320384A1 (en) | 2007-06-25 | 2008-12-25 | Ramesh Nagarajan | Automated addition of images to text |
US8239760B2 (en) | 2007-06-26 | 2012-08-07 | Sap Ag | Multi-user document editing system and method |
JP2009009410A (en) * | 2007-06-28 | 2009-01-15 | Hiroshi Ueno | Text editing support system and program |
US8762880B2 (en) | 2007-06-29 | 2014-06-24 | Microsoft Corporation | Exposing non-authoring features through document status information in an out-space user interface |
KR101199732B1 (en) | 2007-07-02 | 2012-11-08 | 프라운호퍼-게젤샤프트 추르 푀르데룽 데어 안제반텐 포르슝 에 파우 | Apparatus and Method for Processing and Reading a File having a Media Data Container and a Metadata Container |
US8280892B2 (en) | 2007-10-05 | 2012-10-02 | Fujitsu Limited | Selecting tags for a document by analyzing paragraphs of the document |
US8028229B2 (en) | 2007-12-06 | 2011-09-27 | Microsoft Corporation | Document merge |
US7797274B2 (en) | 2007-12-12 | 2010-09-14 | Google Inc. | Online content collaboration model |
US8291308B2 (en) | 2007-12-28 | 2012-10-16 | International Business Machines Corporation | Annotating collaborative information structures |
US8301588B2 (en) | 2008-03-07 | 2012-10-30 | Microsoft Corporation | Data storage for file updates |
US20090249224A1 (en) | 2008-03-31 | 2009-10-01 | Microsoft Corporation | Simultaneous collaborative review of a document |
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 |
US7949633B1 (en) * | 2008-05-12 | 2011-05-24 | Adobe Systems Incorporated | Shared edit access of electronic content |
US8417666B2 (en) | 2008-06-25 | 2013-04-09 | Microsoft Corporation | Structured coauthoring |
US8332359B2 (en) | 2008-07-28 | 2012-12-11 | International Business Machines Corporation | Extended system for accessing electronic documents with revision history in non-compatible repositories |
US20100095198A1 (en) | 2008-10-15 | 2010-04-15 | Apple Inc. | Shared comments for online document collaboration |
US20100169092A1 (en) | 2008-11-26 | 2010-07-01 | Backes Steven J | Voice interface ocx |
US8346768B2 (en) | 2009-04-30 | 2013-01-01 | Microsoft Corporation | Fast merge support for legacy documents |
-
2007
- 2007-11-09 US US11/938,082 patent/US7941399B2/en active Active
-
2008
- 2008-10-14 TW TW097139413A patent/TWI457769B/en not_active IP Right Cessation
- 2008-10-14 TW TW103126243A patent/TWI559157B/en not_active IP Right Cessation
- 2008-10-28 WO PCT/US2008/081456 patent/WO2009061638A1/en active Application Filing
- 2008-10-28 KR KR1020177006064A patent/KR20170029020A/en not_active Ceased
- 2008-10-28 EP EP08848473.8A patent/EP2212807B1/en active Active
- 2008-10-28 AU AU2008324973A patent/AU2008324973B2/en not_active Ceased
- 2008-10-28 KR KR1020157025969A patent/KR20150115944A/en not_active Ceased
- 2008-10-28 KR KR1020107009797A patent/KR101524891B1/en active Active
- 2008-10-28 KR KR1020157002346A patent/KR101597082B1/en active Active
- 2008-10-28 RU RU2010118615/08A patent/RU2501077C2/en not_active IP Right Cessation
- 2008-10-28 KR KR1020157025970A patent/KR20150113993A/en not_active Ceased
- 2008-10-28 MY MYPI2010001575A patent/MY163815A/en unknown
- 2008-10-28 CN CN2008801159431A patent/CN101855629B/en active Active
- 2008-10-28 BR BRPI0818912-9A patent/BRPI0818912A2/en not_active IP Right Cessation
- 2008-10-28 MX MX2010004932A patent/MX2010004932A/en active IP Right Grant
- 2008-10-28 JP JP2010533160A patent/JP5468547B2/en not_active Expired - Fee Related
-
2011
- 2011-04-04 US US13/079,605 patent/US8352418B2/en active Active
-
2012
- 2012-07-01 US US13/539,473 patent/US8990150B2/en active Active
-
2014
- 2014-11-06 US US14/534,384 patent/US9547635B2/en active Active
-
2016
- 2016-08-26 US US15/248,158 patent/US10394941B2/en active Active
-
2019
- 2019-08-26 US US16/550,724 patent/US11455459B2/en active Active
Patent Citations (105)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5107443A (en) * | 1988-09-07 | 1992-04-21 | Xerox Corporation | Private regions within a shared workspace |
US6411965B2 (en) * | 1989-08-23 | 2002-06-25 | Edisync Systems Llc | Remote multi-user editing system and method transmitting edit display information |
US5486686A (en) * | 1990-05-30 | 1996-01-23 | Xerox Corporation | Hardcopy lossless data storage and communications for electronic document processing systems |
US5313394A (en) * | 1990-12-11 | 1994-05-17 | Barbara Clapp | Document assembly customization system for modifying a source instrument including text and decisional commands |
US5671428A (en) * | 1991-08-28 | 1997-09-23 | Kabushiki Kaisha Toshiba | Collaborative document processing system with version and comment management |
US5535332A (en) * | 1992-06-30 | 1996-07-09 | Fuji Xerox Co., Ltd. | Shared-data alteration status management apparatus |
US5630138A (en) * | 1992-12-24 | 1997-05-13 | Microsoft Corporation | method and system for merging files having a parallel format |
US5623659A (en) * | 1993-04-30 | 1997-04-22 | International Business Machines Corporation | Parent/child subset locking scheme for versioned objects |
US6574377B1 (en) * | 1994-11-18 | 2003-06-03 | The Chase Manhattan Bank | Electronic check image storage and retrieval system |
US5751958A (en) * | 1995-06-30 | 1998-05-12 | Peoplesoft, Inc. | Allowing inconsistency in a distributed client-server application |
US5729734A (en) * | 1995-11-03 | 1998-03-17 | Apple Computer, Inc. | File privilege administration apparatus and methods |
US6202085B1 (en) * | 1996-12-06 | 2001-03-13 | Microsoft Corportion | System and method for incremental change synchronization between multiple copies of data |
US7039679B2 (en) * | 1996-12-13 | 2006-05-02 | Visto Corporation | System and method for globally and securely accessing unified information in a computer network |
US6065026A (en) * | 1997-01-09 | 2000-05-16 | Document.Com, Inc. | Multi-user electronic document authoring system with prompted updating of shared language |
US20030096760A1 (en) * | 1997-03-10 | 2003-05-22 | Smithklinebeecham Corporation | Method of antagonizing the human SRC SH2 domain |
US6209010B1 (en) * | 1997-07-18 | 2001-03-27 | Varis Corporation | Computer implemented method for wrapping data to an arbitrary path defined by a page description language |
US6240414B1 (en) * | 1997-09-28 | 2001-05-29 | Eisolutions, Inc. | Method of resolving data conflicts in a shared data environment |
US6055546A (en) * | 1997-10-31 | 2000-04-25 | Oracle Corporation | Method and apparatus for preserving non-current information that can be overwritten in a computer file |
US6067551A (en) * | 1997-11-14 | 2000-05-23 | Microsoft Corporation | Computer implemented method for simultaneous multi-user editing of a document |
US6073161A (en) * | 1997-12-16 | 2000-06-06 | International Business Machines Corporation | Method and apparatus for determining editing conflicts in a multi-authoring system |
US6209128B1 (en) * | 1998-06-05 | 2001-03-27 | International Business Machines Corporation | Apparatus and method for providing access to multiple object versions |
US20030167281A1 (en) * | 1998-09-14 | 2003-09-04 | Cohen Andrew L. | Method and software for supporting improved awareness of and collaboration among users involved in a task |
US6341291B1 (en) * | 1998-09-28 | 2002-01-22 | Bentley Systems, Inc. | System for collaborative engineering using component and file-oriented tools |
US6363352B1 (en) * | 1998-11-13 | 2002-03-26 | Microsoft Corporation | Automatic scheduling and formation of a virtual meeting over a computer network |
US7065633B1 (en) * | 1999-01-28 | 2006-06-20 | Ati International Srl | System for delivering exception raised in first architecture to operating system coded in second architecture in dual architecture CPU |
US6342906B1 (en) * | 1999-02-02 | 2002-01-29 | International Business Machines Corporation | Annotation layer for synchronous collaboration |
US6687878B1 (en) * | 1999-03-15 | 2004-02-03 | Real Time Image Ltd. | Synchronizing/updating local client notes with annotations previously made by other clients in a notes database |
US7007235B1 (en) * | 1999-04-02 | 2006-02-28 | Massachusetts Institute Of Technology | Collaborative agent interaction control and synchronization system |
US6560620B1 (en) * | 1999-08-03 | 2003-05-06 | Aplix Research, Inc. | Hierarchical document comparison system and method |
US6757871B1 (en) * | 1999-08-10 | 2004-06-29 | Fuji Xerox Co., Ltd. | Common document editing apparatus |
US6854087B1 (en) * | 1999-08-10 | 2005-02-08 | Fuji Xerox Co., Ltd. | Document editing apparatus |
US6560614B1 (en) * | 1999-11-12 | 2003-05-06 | Xosoft Inc. | Nonintrusive update of files |
US6751618B1 (en) * | 1999-11-24 | 2004-06-15 | Unisys Corporation | Method and apparatus for a web application server to upload multiple files and invoke a script to use the files in a single browser request |
US20020007287A1 (en) * | 1999-12-16 | 2002-01-17 | Dietmar Straube | System and method for electronic archiving and retrieval of medical documents |
US6529905B1 (en) * | 2000-01-11 | 2003-03-04 | Frontline Solutions, Inc. | Method and system for allowing multiple users to edit a hierarchical data structure |
US6983416B1 (en) * | 2000-04-04 | 2006-01-03 | Electronics And Telecommunications Research Institute | System and method for cooperative editing of web document |
US7310657B2 (en) * | 2000-04-26 | 2007-12-18 | International Business Machines Corporation | Owner identification of collaboration work object |
US7249314B2 (en) * | 2000-08-21 | 2007-07-24 | Thoughtslinger Corporation | Simultaneous multi-user document editing system |
US20020065848A1 (en) * | 2000-08-21 | 2002-05-30 | Richard Walker | Simultaneous multi-user document editing system |
US6681382B1 (en) * | 2000-09-18 | 2004-01-20 | Cisco Technology, Inc. | Method and system for using virtual labels in a software configuration management system |
US7496577B2 (en) * | 2000-11-28 | 2009-02-24 | Attenex Corporation | System and method for efficiently drafting a legal document using an authenticated clause table |
US7058663B2 (en) * | 2001-03-13 | 2006-06-06 | Koninklijke Philips Electronics, N.V. | Automatic data update |
US6757678B2 (en) * | 2001-04-12 | 2004-06-29 | International Business Machines Corporation | Generalized method and system of merging and pruning of data trees |
US20030028600A1 (en) * | 2001-04-24 | 2003-02-06 | Parker Jamses A. | Electronic mail file access system |
US20030097410A1 (en) * | 2001-10-04 | 2003-05-22 | Atkins R. Travis | Methodology for enabling multi-party collaboration across a data network |
US20030097638A1 (en) * | 2001-11-21 | 2003-05-22 | Nec Corporation | Document management system, method thereof, and program thereof |
US7069505B2 (en) * | 2001-11-21 | 2006-06-27 | Nec Corporation | Document management system, method thereof, and program thereof |
US7047407B2 (en) * | 2001-12-05 | 2006-05-16 | Hitachi, Ltd. | Network system enabling transmission control |
US6711718B2 (en) * | 2001-12-10 | 2004-03-23 | Charles Pfeil | Parallel electronic design automation: distributed simultaneous editing |
US20030115481A1 (en) * | 2001-12-18 | 2003-06-19 | Baird Roger T. | Controlling the distribution of information |
US7664750B2 (en) * | 2002-02-02 | 2010-02-16 | Lewis Frees | Distributed system for interactive collaboration |
US7200668B2 (en) * | 2002-03-05 | 2007-04-03 | Sun Microsystems, Inc. | Document conversion with merging |
US20070130334A1 (en) * | 2002-06-13 | 2007-06-07 | Carley Jeffrey A | Out-of-band remote management station |
US20040039829A1 (en) * | 2002-08-23 | 2004-02-26 | Tim Bucher | Peer to peer remote data storage and collaboration |
US7111237B2 (en) * | 2002-09-30 | 2006-09-19 | Qnaturally Systems Inc. | Blinking annotation callouts highlighting cross language search results |
US20040068505A1 (en) * | 2002-10-04 | 2004-04-08 | Chung-I Lee | System and method for synchronously editing a file on different client computers |
US7328243B2 (en) * | 2002-10-31 | 2008-02-05 | Sun Microsystems, Inc. | Collaborative content coherence using mobile agents in peer-to-peer networks |
US20040107224A1 (en) * | 2002-12-02 | 2004-06-03 | International Business Machines Corporation | Concurrent editing of a file by multiple authors |
US7209948B2 (en) * | 2002-12-20 | 2007-04-24 | International Business Machines, Corporation | Collaborative review of distributed content |
US20040122898A1 (en) * | 2002-12-20 | 2004-06-24 | International Business Machines Corporation | Collaborative review of distributed content |
US20040122870A1 (en) * | 2002-12-24 | 2004-06-24 | Joong-Ki Park | Method for data synchronization and update conflict resolution between mobile clients and server in mobile system |
US20060123033A1 (en) * | 2003-05-16 | 2006-06-08 | Microsoft Corporation | Method and System for Providing a Representation of Merge Conflicts in a Three-Way Merge Operation |
US20050004990A1 (en) * | 2003-07-01 | 2005-01-06 | Microsoft Corporation | Conversation grouping of electronic mail records |
US20080028300A1 (en) * | 2003-07-08 | 2008-01-31 | Michael Alex Krieger | Automated Publishing System That Facilitates Collaborative Editing And Accountability Through Virtual Document Architecture |
US20050064858A1 (en) * | 2003-09-19 | 2005-03-24 | Nokia Corporation | Method and device for real-time shared editing mobile video |
US20050071386A1 (en) * | 2003-09-25 | 2005-03-31 | International Business Machines Corporation | Method, system, and program for data synchronizatiom |
US7185277B1 (en) * | 2003-10-24 | 2007-02-27 | Microsoft Corporation | Method and apparatus for merging electronic documents containing markup language |
US20050097440A1 (en) * | 2003-11-04 | 2005-05-05 | Richard Lusk | Method and system for collaboration |
US7225189B1 (en) * | 2004-02-19 | 2007-05-29 | Microsoft Corporation | Data source write back and offline data editing and storage in a spreadsheet |
US7647292B2 (en) * | 2004-04-21 | 2010-01-12 | Nec Corporation | Document management network system for managing original document information and additional information |
US20080072141A1 (en) * | 2004-05-19 | 2008-03-20 | Universitaet Zuerich | Computer-Based System and Computer Program Product for Collaborative Editing of Documents |
US7912811B2 (en) * | 2004-05-19 | 2011-03-22 | Universitaet Zuerich | Computer-based system and computer program product for collaborative editing of documents |
US20060015811A1 (en) * | 2004-07-14 | 2006-01-19 | Fuji Xerox Co., Ltd. | Document processing apparatus, document processing method and storage medium storing document processing program |
US20060020360A1 (en) * | 2004-07-23 | 2006-01-26 | Sap Aktiengesellschaft, A German Corporation | User interface for conflict resolution management |
US20060053195A1 (en) * | 2004-09-03 | 2006-03-09 | Schneider Ronald E | Systems and methods for collaboration |
US20060080432A1 (en) * | 2004-09-03 | 2006-04-13 | Spataro Jared M | Systems and methods for collaboration |
US20060053194A1 (en) * | 2004-09-03 | 2006-03-09 | Schneider Ronald E | Systems and methods for collaboration |
US20060085402A1 (en) * | 2004-10-20 | 2006-04-20 | Microsoft Corporation | Using permanent identifiers in documents for change management |
US20060101328A1 (en) * | 2004-11-08 | 2006-05-11 | International Business Machines Corporation | Multi-user, multi-timed collaborative annotation |
US7650336B1 (en) * | 2004-12-02 | 2010-01-19 | Adobe Systems Incorporated | File system atomic lock |
US20060136809A1 (en) * | 2004-12-17 | 2006-06-22 | Xerox Corporation | Method and apparatus for generating instances of documents |
US20060136511A1 (en) * | 2004-12-21 | 2006-06-22 | Nextpage, Inc. | Storage-and transport-independent collaborative document-management system |
US20080147590A1 (en) * | 2005-02-04 | 2008-06-19 | Accenture Global Services Gmbh | Knowledge discovery tool extraction and integration |
US7694217B2 (en) * | 2005-04-26 | 2010-04-06 | Eastman Kodak Company | Systems and methods for comparing documents containing graphic elements |
US7536641B2 (en) * | 2005-04-29 | 2009-05-19 | Google Inc. | Web page authoring tool for structured documents |
US20090235158A1 (en) * | 2005-04-29 | 2009-09-17 | Rosenstein Justin M | Web Page Authoring Tool for Structured Documents |
US20070066293A1 (en) * | 2005-09-16 | 2007-03-22 | Hon Hai Precision Industry Co., Ltd. | Mobile communication device, method for downloading configuration files, and wireless communication system |
US20070118598A1 (en) * | 2005-11-22 | 2007-05-24 | International Business Machines Corporation | Collaborative editing of a document |
US20080059539A1 (en) * | 2006-08-08 | 2008-03-06 | Richard Chin | Document Collaboration System and Method |
US20080086718A1 (en) * | 2006-10-10 | 2008-04-10 | Bostick James E | Method and Apparatus for Identifying Authors of Changes Between Multiple Versions of a File |
US20080097993A1 (en) * | 2006-10-19 | 2008-04-24 | Fujitsu Limited | Search processing method and search system |
US20080098294A1 (en) * | 2006-10-23 | 2008-04-24 | Mediq Learning, L.L.C. | Collaborative annotation of electronic content |
US20080114740A1 (en) * | 2006-11-14 | 2008-05-15 | Xcential Group Llc | System and method for maintaining conformance of electronic document structure with multiple, variant document structure models |
US20080126953A1 (en) * | 2006-11-28 | 2008-05-29 | Scott Davidson | Method and system for role-based display of document renditions for web conferencing |
US7714222B2 (en) * | 2007-02-14 | 2010-05-11 | Museami, Inc. | Collaborative music creation |
US20090006936A1 (en) * | 2007-06-29 | 2009-01-01 | Microsoft Corporation | Collaborative document authoring |
US20090006948A1 (en) * | 2007-06-29 | 2009-01-01 | Microsoft Corporation | Integrated collaborative user interface for a document editor program |
US20090063489A1 (en) * | 2007-08-30 | 2009-03-05 | International Business Machines Corporation | Accessing Data Entities |
US20090094242A1 (en) * | 2007-10-03 | 2009-04-09 | George Lo | Method and system for intra-document object locking in collaborative authoring |
US20090125518A1 (en) * | 2007-11-09 | 2009-05-14 | Microsoft Corporation | Collaborative Authoring |
US7941399B2 (en) * | 2007-11-09 | 2011-05-10 | Microsoft Corporation | Collaborative authoring |
US20090157811A1 (en) * | 2007-12-14 | 2009-06-18 | Microsoft Corporation | Collaborative Authoring Modes |
US20100070464A1 (en) * | 2008-09-15 | 2010-03-18 | Andrew Aymeloglu | Document-based workflows |
US20100088676A1 (en) * | 2008-09-25 | 2010-04-08 | International Business Machines Corporation | Comparing and merging structured documents syntactically and semantically |
US20100131836A1 (en) * | 2008-11-24 | 2010-05-27 | Microsoft Corporation | User-authored notes on shared documents |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080313550A1 (en) * | 2007-06-15 | 2008-12-18 | Fujitsu Limited | RECORDING MEDIUM ON WHICH Web CONFERENCE SUPPORT PROGRAM IS RECORDED AND Web CONFERENCE SUPPORT APPARATUS |
US9547635B2 (en) | 2007-11-09 | 2017-01-17 | Microsoft Technology Licensing, Llc | 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 |
US8825758B2 (en) | 2007-12-14 | 2014-09-02 | Microsoft Corporation | Collaborative authoring modes |
US10057226B2 (en) | 2007-12-14 | 2018-08-21 | Microsoft Technology Licensing, Llc | 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 |
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 |
US8417666B2 (en) | 2008-06-25 | 2013-04-09 | Microsoft Corporation | Structured coauthoring |
US8346768B2 (en) | 2009-04-30 | 2013-01-01 | Microsoft Corporation | Fast merge support for legacy documents |
KR20140034331A (en) * | 2012-08-14 | 2014-03-20 | 삼성전자주식회사 | Electronic device and method for editing information about content |
US20140053084A1 (en) * | 2012-08-14 | 2014-02-20 | Samsung Electronics Co., Ltd. | Method and electronic device for editing content |
KR102022094B1 (en) | 2012-08-14 | 2019-09-17 | 삼성전자주식회사 | Electronic Device and Method for Editing Information about Content |
WO2014027836A1 (en) * | 2012-08-14 | 2014-02-20 | Samsung Electronics Co., Ltd. | Method and electronic device for editing content |
US10200419B2 (en) * | 2012-08-14 | 2019-02-05 | Samsung Electronics Co., Ltd. | Method and electronic device for editing content |
US20170318064A1 (en) * | 2012-08-14 | 2017-11-02 | Samsung Electronics Co., Ltd. | Method and electronic device for editing content |
US10356139B2 (en) * | 2012-08-14 | 2019-07-16 | Samsung Electronics Co., Ltd. | Method and electronic device for editing content |
US20140075330A1 (en) * | 2012-09-12 | 2014-03-13 | Samsung Electronics Co., Ltd. | Display apparatus for multiuser and method thereof |
US20140090084A1 (en) * | 2012-09-25 | 2014-03-27 | Pixton Comics Inc. | Collaborative comic creation |
US20140372369A1 (en) * | 2013-06-14 | 2014-12-18 | Microsoft Corporation | Managing Changes to Shared Electronic Documents Using Change History |
US9875269B1 (en) * | 2014-03-12 | 2018-01-23 | Sprint Communications Company L.P. | Collaborative editing in self-contained single page applications |
EP2930675A1 (en) * | 2014-04-07 | 2015-10-14 | Ricoh Company, Ltd. | Information processing system, information processing apparatus, terminal apparatus, and program |
US20150288728A1 (en) * | 2014-04-07 | 2015-10-08 | Ricoh Company, Ltd. | Information processing system, information processing apparatus, terminal apparatus, and program |
US10331775B2 (en) | 2014-10-15 | 2019-06-25 | Microsoft Technology Licensing, Llc | Collaborative document editing using state-based revision |
US11308068B2 (en) * | 2016-05-13 | 2022-04-19 | Sap Se | Control systems for draft lifecycle |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11455459B2 (en) | Collaborative authoring | |
US8825758B2 (en) | Collaborative authoring modes | |
JP5443471B2 (en) | Conflict resolution | |
AU2009251763A1 (en) | Simultaneous collaborative review of a document |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034544/0001 Effective date: 20141014 |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |