A portion of the disclosure of this document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever. The following notice applies to the software, data, and/or screenshots which may be described below and in the drawings that form a part of this document: Copyright 2008, Adobe® Systems Incorporated. All Rights Reserved.
The approaches described in this section could be pursued, but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
In a collaborative content creation and review environment, content (e.g., an electronic document) may be stored in a server for access (e.g., edit, read, review, etc.) by multiple users using different client devices. In particular, the server may be communicatively coupled to the client devices to enable access by the users. In such an application, users may edit a same electronic content at substantially the same time, or at different times.
The embodiments are provided by way of example and not limitation in the figures of the accompanying drawings, in which like references indicate similar elements and in which:
Methods, apparatus and systems tier shared edit access of content in a collaborative environment are described. In the following description, numerous specific details are set forth. However, it is understood that embodiments of the invention may be practiced without these specific details. In other instances, structures and techniques have not been shown in detail in order not to Obscure the understanding of this description.
As used herein, the term “content” or “electronic content” may comprise any type of content for use in electronic form. Examples of content may comprise Portable Document Format (“PDF”) which may be viewed and modified in one of the Adobe® Acrobat® programs, a web page, a word processing document (such as a Microsoft® Word document), a spread sheet document, page-descriptive electronic content, hypertext document, a markup language document, declarative specification document (such as for example a HyperText Markup Language HTML or eXtensible Markup Language (XML) document), a finable form or data describing application graphical user interface, etc.
Some example embodiments are performed in a collaborative environment, wherein multiple users may access (e.g., edit, read, review, etc.) content. In particular, the content may be stored in a server. The users may access the content over a network using different client devices. Example embodiments enable shared edit access of content in such an environment. In particular, multiple users may edit the content.
In some example embodiments, a user locks the content to prevent other users from editing the content after the user performs content editing. In some example embodiments, the lock to prevent edit access remains until the edited content is saved. The saving of the content may be invoked by the user that performed the editing activity. Alternatively or in addition, the saving of the content may be invoked by the application (used to edit the content) after a given time period has expired since the edit has occurred. After the edited content has been saved, any of the users having edit access may edit the content. Once another edit has been performed by any one of the users, the content is again locked. The user that edited the content now has control and precludes other users from editing the content until the edits are saved. Accordingly, users are not required to explicitly check-out/check-in the content each time they are going to edit the content. In some example embodiments, the locking of the content for editing is integrated into editing/saving operations. Thus, some example embodiments provide more transparent and easier shared edit access for the multiple users.
The server computer system 108 comprises a collaborative control module 110 (hereinafter “the control module 110”) and is coupled to a machine-readable medium 112 (which may be or may not be part of the server computer system 108). In some example embodiments, the machine-readable medium includes tangible volatile and/or non-volatile media (e.g., read only memory (ROM), random access memory (RAM), magnetic disk storage media, optical storage media, flash memory devices, etc.). The machine-readable medium 112 may store content 114 that may be shared by multiple users, particular, multiple users may access (edit, read, review, etc.) the same content 114. For example more than one user (using one or more client computer systems 102) may edit the same electronic document forming a part of the electronic content 114 that is stored in the machine-readable medium 112.
The client computer systems 102A-102N comprise collaborative content application module 104A-104N (hereinafter “application modules 104”), respectively. The application modules 104 and the control module 110 may be software, hardware, firmware or a combination thereof for executing the various operations described herein, according to some example embodiments.
As part of multiple users having edit access to the same content 114, a first user may edit the content 114 using the application module 104A, and a second user may edit the same content 114 using the application module 104N at a different time. For example, the application modules 104 may comprise a type of word processor application for editing electronic documents. The application modules 104 may retrieve a copy of the content 114 from the server computer system 108 and make edits to such content 114. As further described below, after a first user edits (using the application module 104) a particular portion of the content 114, that portion of the content 114 is locked from being editing by other users until it is saved onto the machine-readable medium 112.
The system 100 may comprise any number of client computer systems 102. While the control module 110 and the content 114 are described as forming part of the same server, many embodiments are not so limited. Alternatively or in addition, the content 114 and the control module 110 may be distributed across any number of network storage devices/servers.
In some embodiments, operations may be executed in a peer-to-peer architecture. The network communication may occur as part of any combination of wired and wireless communication. In some embodiments, network communication may be based on one or more communication protocols (e.g., HyperText Transfer Protocol (HTTP), HTTP Secured (HTTPS), Real Time Messaging Protocol (RTMP), Real Time Messaging Protocol Secured/SSL (RTMPS), etc.). While the system 100 shown in
Operations, according to example embodiments, are now described. In certain embodiments, the operations are performed when instructions residing on machine-readable media (e.g., software) are executed, while in other embodiments, the methods are performed by hardware or other logic (e.g., digital logic).
Accordingly,
At block 202, the application module 104 presents content 114 to one or more users out of multiple users that have edit access to the content. In some example embodiments, the application module 104 may present a specific type of content 114 (e.g., an electronic document) to the user after the user selects the content 114 for editing, The application module 104 may request and receive the content 114 from the control module 110 on the server computer system 108. The application module 104 may present the content 114 to the user using some type of display.
For example, the user identification 306 identifies a user #1 that has an author role (which enables user #1 to edit the electronic document 304). The user identification 306 also indicates that the current access status is “viewing” for user #1. Accordingly, user #1 is currently viewing but not editing the electronic document 304. The user identification 308 identifies a user #2 that has an author role (which enables user #2 to edit the electronic document 304). The user identification 308 also indicates that the current access status is “viewing” for user #2. Returning to
At block 204, the application module 104 receives input from the user indicating a desire to edit the content 114. The input may be from a keyboard, mouse, microphone, etc. that causes changes in the content 114. The application module 104 may update the local copy of the content 114 that is being stored in some type of machine-readable medium (not shown) on the client computer system 102. For example, the updates may be made to a copy of the content 114 stored in random access memory. The application module 104 may also update any display of the content 114.
Returning to the description of block 204 of
At block 206, the application module 104 transmits a lock command (to lock the content 114) to the server computer system 108, in response to editing of the content 114. As further described below, the lock command precludes other users from editing the same content 114. In some situations, two users may be attempting edits at approximately the same time. Accordingly, one user will be able to lock the content 114, while the second user is locked out. Thus, the second user has made edits to content 114 that has been locked from edit access.
In some example embodiments, the application module 104 for the second user may process these edits that occur at different times differently (depending on the amount time that has expired between when the edit occurred and when the attempted lock command is transmitted to the server computer system 108). For example, if the amount of time that has expired is less than a given time period (e.g., 10 seconds, 20 seconds, 30 seconds, 1 minute, etc.), the application module 104 can display an error message to the second user and the edits made by the second user are discarded. If the amount of time that has expired is greater than the given time period, the application module 104 provides an option to the second user to save the content 114 under a different name (thus creating separately saved content 114 within the server computer system 108).
This preclusion of editing (caused by the lock command) remains until the edits that have already been entered are saved at the server computer system 108. Accordingly, locking occurs in response to an edit action that remains unsaved. There is no requirement that the user perform an explicit check-out of the content 114 in order to ensure that other users are precluded from editing the content 114. The method 200 continues at block 208.
At block 208, the application module 104 saves the content 114 to the server computer system 108. In some example embodiments, the application module 104 saves the content 114 in the machine-readable medium 112 at the server computer system 108. The application module 104 may transmit unsaved edits to the server computer system 108 via any type of communication (as described above). In some example embodiments, the save activity may be in response to a user-invoked save action, or an application-invoked save action. In particular, saving the content 114 may be invoked by input from a user that is editing the content 114. Alternatively or in addition, the application module 104 may periodically perform a save e.g., an auto-save). In some example embodiments, the application module 104 may save the content 114 (independent of user input) after a time period (that starts after an edit has occurred) during which there is no user activity relative to the content 114. For example, user activity may comprise editing data, movement of a cursor through the content 114, etc. In some example embodiments, this time period may be 15 seconds, 30 seconds, 45, seconds, 1 minute, 5 minutes, etc. Alternatively or in addition, the application module 104 may save the content 114 (independent of user input) after a time period (that starts after an edit has occurred) even if there is user activity relative to the content 114. in some example embodiments, this time period may be 30 seconds, 1 minute, 2 minutes, 3 minutes, 5 minutes, 10 minutes, etc. The method 200 continues at block 210.
At block 210, the application module 104 receives confirmation of the saving of the content 114 (at the server computer system 108) from the server computer system 108. In particular, if the edits to the content 114 are saved by the control module 110 in the machine-readable medium 112, the control module 110 transmits a confirmation back to the client computer system 102. The method 200 continues at block 212.
At block 212, the application module 104 transmits a release command (to release the lock of the content 114) to the server computer system 108. The release command is transmitted to the server computer system 108 to enable other users having edit access to edit this particular content 114. As further described below, the control module 110 transmits a release command to other client devices that are accessing this particular content 114. Accordingly, the application modules on these other client computer systems may then enable editing of the content 114 by other users. The method 200 is complete.
The operations, according to some example embodiments, of the control module 110 at the server computer system 108 are now described. In particular,
At block 502, the control module 110 receives a request, from a first client computer system 102, to edit content 114 by one user out of multiple users that have edit access to the content 114. The request may come from the application module 104 for the client computer system 102 that is being used to edit the content 114. In some example embodiments, the request may be a result of a user opening the content 114 using the application module 104. The method 500 continues at block 504.
At block 504, the control module 110 transmits the content 114 to the first client computer system 102. The control module 110 may retrieve a copy of the content 114 from the machine-readable medium 112 for transmission to the first client computer system 102. The method 500 continues at block 506.
At block 506, the control module 110 receives a lock command from the first client computer system 102 (to lock the content 114) from edit access by others of the multiple users. In some example embodiments, the lock command is received from the application module 104 in response to the first user editing the particular content 114 (as described above). The method 500 continues at block 508.
At block 508, the control module 110 transmits a lock command to other client computer systems 102 being used by other users. The lock command provides notification that the content 114 is currently locked from edit access. In some example embodiments, the control module 110 only transmits the lock command to the client computer systems 102 where the content 114 is currently being accessed. As further described below, the application modules 104 executing on these other client computer systems 102 prevent the users from editing the content 114 after the lock command is received. The method 500 continues at block 510.
At block 510, the control module 110 saves edits to the content 114 at the server computer system 108. In some example embodiments, a save command may be received from the client computer system 102 that is being used to edit the content 114. As described above, the save command may be in response to user-invoked or application-invoked save activity. The control module 110 may save the edits for this content 114 into the machine-readable medium 112. The method 500 continues at block 512.
At block 512, the control module 110 transmits confirmation of saving the content 114 at the server computer system 108. In particular, the control module 110 may transmit the confirmation back to the client computer system 102 from which the save command was received. The method 500 continues at block 514.
At block 514, the control module 110 receives a release command (to release the lock on the content 114). The release command may be received from the application module 104 that is executing on the client computer system 102 that saved the content 114. In some example embodiments, the release command enables other users to edit this particular content 114. The method 500 continues at block 516.
At block 516, the control module 110 transmits a release command to the other client computer systems 102 being used by other users having edit access with respect to the content 114. The release command provides notification that the content 114 (that was previously locked) can now be edited by the other users. In some example embodiments, the control module 110 only transmits to the client computer systems 102 wherein the content 114 is currently being accessed. As further described below, the application modules 104 executing on these other client computer systems 102 then allow the users to edit this particular content 114 after the release command is received.
In some example embodiments, the control module 110 may also transmit a release command to the other client computer systems 102 if there is a communication loss with the client computer system 102 that has locked the content 114. In particular, the control module 110 may exchange ping-type communications with the client computer system 102. If this communication ceases beyond a given period of time (e.g., 1 minute, 2 minutes, 5 minutes, 10 minutes, etc.), the control module 110 may release any locks currently in force. In some example embodiments, the client computer system that lost the lock may be able to reconnect and save unsaved edits. In particular, if the client computer system 102 reconnects with the server computer system 108 and no other client computer system 102 has locked the content 114 during the time when communication was lost, the application module 104 thereon may able to re-obtain the lock for the content 114. After the release command is transmitted, the method 500 is complete.
Additional operations, according to some example embodiments, of the application module 104 at the client computer system 102 are now described. In particular, these operations are from the perspective of the application module 104 that is being used by one user that is locked from edit access because another user is editing the content 114. Thus,
At block 602, the application module 104 presents content 114 to one or more users that have edit access to the content 114. In some example embodiments, the application module 104 may present particular content 114 (e.g., an electronic document) to a user after the user selects the content 114 for editing. The application module 104 may request and receive the content 114 from the control module 110 on the server computer system 108. The application module 104 may present the content 114 to the user using some type of display (see.
At block 604, the application module 104 receives a lock command from the server computer system 108. The lock command provides notification that the content 114 is currently locked from edit access because a different user has made edits to the content 114 that are not saved. The method 600 continues at block 606.
At block 606, the application module 104 locks the content 114 to prevent edit access by one or more users. Accordingly, these users are not allowed to edit the content 114 until the lock is released by saving the edits at the server computer system 108 (as described above).
In some example embodiments, a pop-up message is displayed to the user regarding their inability to edit. To illustrate,
At block 608, the application module 104 receives a release command to enable edit access of the content 114 by another user. This release command may be received from the control module 110 at the server computer system 108. In some example embodiments, this release is a result of the unsaved edits made by a different user on a different client computer system 102 being saved at the server computer system 108 (as described above). Also, as a result, the application module 104 releases the lock that is precluding edit access of the content 114. In some example embodiments, an attempt to edit the electronic content by the user may cause or attempt to cause a release of the lock that is precluding edit access of the electronic content (that has been locked by the other user). To illustrate, assume that the electronic content is currently locked because the other user has made unsaved edits to the electronic content. If this user attempts to edit the electronic content, a communication may be transmitted to the server computer system 108, the server computer system 108 may determine if a time period has expired since there has been activity by the other user within the electronic document. For example, the server computer system 108 may query the client computer system 102 being used by the other user (that has caused the locking) The query may request the last time that the other user performed any activity in the electronic content (e.g., editing, movement of cursor, etc.). If a time period has expired, the server computer system 108 may release the lock. In some example embodiments, the server computer system 108 may save any unsaved edits to the electronic content prior to the release. Moreover, the server computer system 108 may notify the other user of the release. At this point, the method 600 may be complete.
While the communications regarding the locking and releasing of edit access to content 114 may be routed through a server computer system 108, in some example embodiments, some or all such communications may also be routed among the client computer systems (independent of the server computer system 108). For example, a lock command initiated due to the existence of unsaved edits at one client computer system may be transmitted to other applicable client computer systems. Alternatively or in addition, while the content 114 is described as being stored at the server computer system 108, in some example embodiments, the content 114 may be stored at the client computer systems in a peer-to-peer configuration. Accordingly, after an edit is saved, the saved content 114 is distributed to the different client computer systems. In some example embodiments, this storage of data in the client computer systems may be in addition to or independent of storage of such content 114 at the server computer system 108.
A detailed block diagram of an example computer environment, according to some embodiments, is now described. In particular,
As illustrated in
The memory unit 830 may store data and/or instructions, and may comprise any suitable memory, such as a dynamic random access memory (DRAM). The computer system 800 also includes IDE drive(s) 808 and/or other suitable storage devices. A graphics controller 804 controls the display of information on a display device 806, according to some embodiments of the invention.
The input/output controller hub (ICH) 824 provides an interface to I/O devices or peripheral components for the computer system 800. The ICH 824 may comprise any suitable interface controller to provide for any suitable communication link to the processor(s) 802, memory unit 830 and/or to any suitable device or component in communication with the ICH 824. For one embodiment of the invention, the ICH 824 provides suitable arbitration and buffering for each interface.
For some embodiments of the invention, the ICH 824 provides an interface to one or more suitable integrated drive electronics (IDE) drives 808, such as a hard disk drive (HDD) or compact disc read only memory (CD ROM) drive, or to suitable universal serial bus (USB) devices through one or more USB ports 810. For one embodiment, the ICH 824 also provides an interface to a keyboard 812, a mouse 814, a CD-ROM drive 818, one or more suitable devices through one or more FireWire® ports 816. For one embodiment of the invention, the ICH 824 also provides a network interface 820 though which the computer system 800 can communicate with other computers and/or devices.
In some embodiments, the computer system 800 includes a machine-readable medium that stores a set of instructions (e.g., software) embodying any one, or all, of the methodologies for described herein, Furthermore, software may reside, completely or at least partially, within memory unit 830 and/or within the processor(s) 802.
In the description, numerous specific details such as logic implementations, opcodes, means to specify operands, resource partitioning/sharing/duplication implementations, types and interrelationships of system components, and logic partitioning/integration choices are set forth in order to provide amore thorough understanding of the present invention. It will be appreciated, however, by one skilled in the art that embodiments of the invention may be practiced without such specific details. In other instances, control structures, gate level circuits and full software instruction sequences have not been shown in detail in order not to obscure the embodiments of the invention, Those of ordinary skill in the art, with the included descriptions will be able to implement appropriate functionality without undue experimentation.
References in the specification to “one embodiment”, “an embodiment”, “an example embodiment”, etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic, Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to affect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
Embodiments of the invention include features, methods or processes that may be embodied within machine-executable instructions provided by a machine-readable medium. A machine-readable medium includes any mechanism which provides (i.e., stores and/or transmits) information in a form accessible by a machine (e.g., a computer, a network device, a personal digital assistant, manufacturing tool, any device with a set of one or more processors, etc.). In example embodiments, a machine-readable medium includes volatile and/or non-volatile media (e.g., read only memory (ROM), random access memory (RAM), magnetic disk storage media, optical storage media, flash memory devices, etc.).
Such instructions are utilized to cause a general or special purpose processor, programmed with the instructions, to perform methods or processes of the embodiments of the invention. Alternatively, the features or operations of embodiments of the invention are performed by specific hardware components which contain hard-wired logic for performing the operations, or by any combination of programmed data processing components and specific hardware components. Embodiments of the invention include software, data processing hardware, data processing system-implemented methods, and various processing operations, further described herein.
In view of the wide variety of permutations to the embodiments described herein, this detailed description is intended to be illustrative only, and should not be taken as limiting the scope of the invention. What is claimed as the invention, therefore, is all such modifications as may come within the scope and spirit of the following claims and equivalents thereto, Therefore, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.
This application is a continuation of U.S. application Ser. No. 13/081,236, filed Apr. 6, 2011, now U.S. Pat. No. 8,290,902, issued Oct. 16, 2012, and entitled “Shared Edit Access of Electronic Content,” which is a continuation of U.S. application Ser. No. 12/119,335, filed May 12, 2008, now U.S. Pat. No. 7,949,633 issued May 24, 2011, of which both applications are incorporated in their entirety herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
4714992 | Gladney et al. | Dec 1987 | A |
4949300 | Christenson et al. | Aug 1990 | A |
5008853 | Bly et al. | Apr 1991 | A |
5014267 | Tompkins et al. | May 1991 | A |
5072412 | Henderson, Jr. et al. | Dec 1991 | A |
5220657 | Bly et al. | Jun 1993 | A |
5245553 | Tanenbaum | Sep 1993 | A |
5247615 | Mori et al. | Sep 1993 | A |
5293619 | Dean | Mar 1994 | A |
5339389 | Bates et al. | Aug 1994 | A |
5379374 | Ishizaki et al. | Jan 1995 | A |
5388196 | Pajak et al. | Feb 1995 | A |
5428729 | Chang et al. | Jun 1995 | A |
5446842 | Schaeffer et al. | Aug 1995 | A |
5471318 | Ahuja et al. | Nov 1995 | A |
5515491 | Bates et al. | May 1996 | A |
5537529 | Borovoy et al. | Jul 1996 | A |
5608872 | Schwartz et al. | Mar 1997 | A |
5617539 | Ludwig et al. | Apr 1997 | A |
5664183 | Cirulli et al. | Sep 1997 | A |
5671428 | Muranaga et al. | Sep 1997 | A |
5732184 | Chao et al. | Mar 1998 | A |
5758079 | Ludwig et al. | May 1998 | A |
5764902 | Rothrock | Jun 1998 | A |
5778368 | Hogan et al. | Jul 1998 | A |
5787175 | Carter | Jul 1998 | A |
5806078 | Hug et al. | Sep 1998 | A |
5835601 | Shimbo et al. | Nov 1998 | A |
5867654 | Ludwig et al. | Feb 1999 | A |
5907324 | Larson et al. | May 1999 | A |
5909689 | Van Ryzin | Jun 1999 | A |
5920694 | Carleton et al. | Jul 1999 | A |
5963208 | Dolan et al. | Oct 1999 | A |
5966512 | Bates et al. | Oct 1999 | A |
5978817 | Giannandrea et al. | Nov 1999 | A |
5995097 | Tokumine et al. | Nov 1999 | A |
6005568 | Simonoff et al. | Dec 1999 | A |
6005571 | Pachauri | Dec 1999 | A |
6088702 | Plantz et al. | Jul 2000 | A |
6243722 | Day | Jun 2001 | B1 |
6266683 | Yehuda et al. | Jul 2001 | B1 |
6314408 | Salas et al. | Nov 2001 | B1 |
6314425 | Serbinis et al. | Nov 2001 | B1 |
6342906 | Kumar et al. | Jan 2002 | B1 |
6366930 | Parker et al. | Apr 2002 | B1 |
6366933 | Ball et al. | Apr 2002 | B1 |
6442748 | Bowman-Amuah et al. | Aug 2002 | B1 |
6446093 | Tabuchi | Sep 2002 | B2 |
6502113 | Crawford et al. | Dec 2002 | B1 |
6507845 | Cohen et al. | Jan 2003 | B1 |
6584466 | Serbinis et al. | Jun 2003 | B1 |
6596030 | Ball et al. | Jul 2003 | B2 |
6632251 | Rutten et al. | Oct 2003 | B1 |
6643663 | Dabney et al. | Nov 2003 | B1 |
6701345 | Carley et al. | Mar 2004 | B1 |
6721921 | Altman | Apr 2004 | B1 |
6757871 | Sato et al. | Jun 2004 | B1 |
6772393 | Estrada et al. | Aug 2004 | B1 |
6816906 | Icken et al. | Nov 2004 | B1 |
6819806 | Kubota et al. | Nov 2004 | B1 |
6839878 | Icken et al. | Jan 2005 | B1 |
6865548 | Wiechers | Mar 2005 | B2 |
6865713 | Bates et al. | Mar 2005 | B1 |
6874124 | Murase et al. | Mar 2005 | B2 |
6889896 | Silverbrook et al. | May 2005 | B2 |
6894804 | Nguyen et al. | May 2005 | B2 |
6898601 | Amado et al. | May 2005 | B2 |
6901376 | Sculler et al. | May 2005 | B1 |
6918082 | Gross et al. | Jul 2005 | B1 |
6934721 | Schein | Aug 2005 | B2 |
6950828 | Shaw et al. | Sep 2005 | B2 |
6991154 | Silverbrook et al. | Jan 2006 | B2 |
7007232 | Ross et al. | Feb 2006 | B1 |
7028267 | Beezer et al. | Apr 2006 | B1 |
7044363 | Silverbrook et al. | May 2006 | B2 |
7051031 | Schein | May 2006 | B2 |
7062497 | Hamburg et al. | Jun 2006 | B2 |
7062532 | Sweat et al. | Jun 2006 | B1 |
7146367 | Shutt | Dec 2006 | B2 |
7149760 | Breuer | Dec 2006 | B1 |
7249314 | Walker et al. | Jul 2007 | B2 |
7263655 | Carden, Jr. | Aug 2007 | B1 |
7325186 | Jones et al. | Jan 2008 | B2 |
7392469 | Bailin | Jun 2008 | B1 |
7421660 | Charnock et al. | Sep 2008 | B2 |
7506262 | Gupta et al. | Mar 2009 | B2 |
7574669 | Braun et al. | Aug 2009 | B1 |
7587407 | Gruhl et al. | Sep 2009 | B2 |
7676759 | Carter | Mar 2010 | B2 |
7702618 | Patterson | Apr 2010 | B1 |
7724249 | Horikawa et al. | May 2010 | B1 |
7769810 | Kaufman | Aug 2010 | B1 |
7788237 | Voronov et al. | Aug 2010 | B2 |
7809688 | Cisler et al. | Oct 2010 | B2 |
7836083 | Cipollone | Nov 2010 | B2 |
7904425 | Cannon et al. | Mar 2011 | B2 |
7945595 | Kraley | May 2011 | B1 |
7949633 | Shaver et al. | May 2011 | B1 |
7950064 | Chavez et al. | May 2011 | B2 |
8290902 | Shaver et al. | Oct 2012 | B1 |
8316292 | Verstak et al. | Nov 2012 | B1 |
8396900 | Kraley | Mar 2013 | B1 |
20010043716 | Price et al. | Nov 2001 | A1 |
20010049704 | Hamburg et al. | Dec 2001 | A1 |
20020133628 | Asplund et al. | Sep 2002 | A1 |
20020163548 | Chiu et al. | Nov 2002 | A1 |
20020186252 | Himmel et al. | Dec 2002 | A1 |
20030214528 | Pierce et al. | Nov 2003 | A1 |
20040041843 | Cui et al. | Mar 2004 | A1 |
20040088331 | Therrien et al. | May 2004 | A1 |
20040172595 | Lerner et al. | Sep 2004 | A1 |
20050064858 | Makela et al. | Mar 2005 | A1 |
20050081159 | Gupta et al. | Apr 2005 | A1 |
20050097441 | Herbach et al. | May 2005 | A1 |
20050193325 | Epstein | Sep 2005 | A1 |
20050262225 | Halpern et al. | Nov 2005 | A1 |
20060010382 | Ejiri et al. | Jan 2006 | A1 |
20060026502 | Dutta | Feb 2006 | A1 |
20060161516 | Clarke et al. | Jul 2006 | A1 |
20060161578 | Siegel et al. | Jul 2006 | A1 |
20060184901 | Dietz | Aug 2006 | A1 |
20070057967 | Armstrong | Mar 2007 | A1 |
20070118794 | Hollander et al. | May 2007 | A1 |
20070150433 | Chen | Jun 2007 | A1 |
20070198616 | Goto | Aug 2007 | A1 |
20070239831 | Basu | Oct 2007 | A1 |
20070260996 | Jakobson | Nov 2007 | A1 |
20070271248 | Albernoz et al. | Nov 2007 | A1 |
20070271502 | Bedi et al. | Nov 2007 | A1 |
20080016091 | Chandra | Jan 2008 | A1 |
20080034018 | Cisler et al. | Feb 2008 | A1 |
20080059539 | Chin et al. | Mar 2008 | A1 |
20080072135 | Cragun et al. | Mar 2008 | A1 |
20080103877 | Gerken | May 2008 | A1 |
20080141126 | Johnson et al. | Jun 2008 | A1 |
20080209361 | Nickerson et al. | Aug 2008 | A1 |
20080250329 | Stefix et al. | Oct 2008 | A1 |
20080250332 | Farrell et al. | Oct 2008 | A1 |
20090097815 | Lahr et al. | Apr 2009 | A1 |
20090157811 | Bailor et al. | Jun 2009 | A1 |
20090235155 | Ueda | Sep 2009 | A1 |
20100145947 | Kolman et al. | Jun 2010 | A1 |
20130198622 | Kraley | Aug 2013 | A1 |
20140032502 | Kraley | Jan 2014 | A1 |
20140032633 | Kleppner | Jan 2014 | A1 |
20140033013 | Shaver | Jan 2014 | A1 |
20140033015 | Shaver | Jan 2014 | A1 |
20140033099 | Treitman et al. | Jan 2014 | A1 |
Number | Date | Country |
---|---|---|
0932108 | Jul 1999 | EP |
Entry |
---|
“U.S. Appl. No. 12/119,421, Non Final Office Action mailed Apr. 15, 2013”, 23 pgs. |
“U.S. Appl. No. 12/119,350, Response filed Dec. 26, 2012 to Final Office Action mailed May 12, 2010”, 11 pgs. |
“U.S. Appl. No. 12/119,397 , Response filed Feb. 15, 2013 to Non Final Office Action mailed Oct. 16, 2012”, 10 pgs. |
“U.S. Appl. No. 12/119,397, Final Office Action mailed Jun. 7, 2013”, 21 pgs. |
“U.S. Appl. No. 12/119,397, Response filed Oct. 7, 2013 to Final Office Action mailed Jun. 7, 2013”, 12 pgs. |
“U.S. Appl. No. 12/119,421, Examiner Interview Summary mailed Jan. 6, 2014”, 3 pgs. |
“U.S. Appl. No. 12/119,421, Examiner Interview Summary mailed Aug. 6, 2013”, 3 pgs. |
“U.S. Appl. No. 12/119,421, Final Office Action mailed Nov. 14, 2013”, 23 pgs. |
“U.S. Appl. No. 12/119,421, Response filed Jul. 11, 2013 to Non Final Office Action mailed Apr. 15, 2013”, 12 pgs. |
“U.S. Appl. No. 13/794,079, Non Final Office Action mailed Dec. 13, 2013”, 7 pgs. |
Wiley, John, “Microsoft® Word 2007 Bible by Herb Tyson Publisher”, (Mar. 12, 2007), pgs. 797-800. |
“Adobe to Acquire Virtual Ubiquity”, The Buzzword Blog Building the first real word processor for the web, [Online] Retrieved from the internet: <URL:http://blog.buzzword.com/vu/index.php?paged=2>, (Oct. 1, 2007), 10 pgs. |
“U.S. Appl. No. 12/119,249, Examiner Interview Summary mailed Oct. 5, 2010”, 3 pgs. |
“U.S. Appl. No. 12/119,249, Final Office Action mailed Jun. 9, 2011”, 15 pgs. |
“U.S. Appl. No. 12/119,249, Non Final Office Action mailed Dec. 23, 2010”, 11 pgs. |
“U.S. Appl. No. 12/119,249, Response filed Mar. 23, 2011 to Non Final Office Action mailed Dec. 23, 2010”, 10 pgs. |
“U.S. Appl. No. 12/119,249, Response filed Oct. 10, 2011 to Final Office Action mailed Jun. 9, 2011”, 9 pgs. |
“U.S. Appl. No. 12/119,335, Non-Final Office Action mailed Sep. 1, 2010”, 8 pgs. |
“U.S. Appl. No. 12/119,335, Notice of Allowance mailed Jan. 13, 2011”, 4 pgs. |
“U.S. Appl. No. 12/119,335, Response filed Dec. 1, 2010 to Non Final Office Action mailed Sep. 1, 2010”, 12 pgs. |
“U.S. Appl. No. 12/119,350, Advisory Action mailed Aug. 4, 2010”, 3 pgs. |
“U.S. Appl. No. 12/119,350, Appeal Brief filed Oct. 28, 2010”, 25 pgs. |
“U.S. Appl. No. 12/119,350, Decision on Appeal mailed Oct. 25, 2012”, 5 pgs. |
“U.S. Appl. No. 12/119,350, Decision on Pre-Appeal Brief Request mailed Aug. 28, 2010”, 2 pgs. |
“U.S. Appl. No. 12/119,350, Examiner's Answer to Appeal Brief mailed Nov. 29, 2010”, 15 pgs. |
“U.S. Appl. No. 12/119,350, Final Office Action mailed May 12, 2010”, 14 pgs. |
“U.S. Appl. No. 12/119,350, Non-Final Office Action mailed Oct. 16, 2009”, 11 pgs. |
“U.S. Appl. No. 12/119,350, Pre-Appeal Brief Request filed Aug. 12, 2010”, 5 pgs. |
“U.S. Appl. No. 12/119,350, Response filed Jan. 19, 2010 to Non-Final Office Action mailed Oct. 16, 2009”, 11 pgs. |
“U.S. Appl. No. 12/119,350, Response filed Jul. 12, 2010 to Final Office Action mailed May 12, 2010”, 10 pgs. |
“U.S. Appl. No. 12/119,397, Appeal Brief filed May 23, 2012”, 17 pgs. |
“U.S. Appl. No. 12/119,397, Final Office Action mailed Oct. 28, 2011”, 18 pgs. |
“U.S. Appl. No. 12/119,397, Non Final Office Action mailed Jun. 23, 2011”, 20 pgs. |
“U.S. Appl. No. 12/119,397, Non Final Office Action mailed Oct. 16, 2012”, 20 pgs. |
“U.S. Appl. No. 12/119,397, Response filed Aug. 10, 2011 to Non Final Office Action mailed Jun. 23, 2011”, 9 pgs. |
“U.S. Appl. No. 12/119,407, 312 Amendment filed Apr. 11, 2011”, 3 pgs. |
“U.S. Appl. No. 12/119,407, Non-Final Office Action mailed Sep. 9, 2010”, 12 pgs. |
“U.S. Appl. No. 12/119,407, Notice of Allowance mailed Feb. 18, 2011”, 7 pgs. |
“U.S. Appl. No. 12/119,407, PTO Response to 312 Amendment mailed Apr. 15, 2011”, 2 pgs. |
“U.S. Appl. No. 12/119,407, Response filed Dec. 9, 2010 to Non Final Office Action mailed Sep. 9, 2010”, 17 pgs. |
“U.S. Appl. No. 12/119,421, Appeal Brief filed Jul. 27, 2012”, 25 pgs. |
“U.S. Appl. No. 12/119,421, Advisory Action mailed Mar. 22, 2011”, 3 pgs. |
“U.S. Appl. No. 12/119,421, Examiner Interview Summary mailed Jan. 31, 2012”, 3 pgs. |
“U.S. Appl. No. 12/119,421, Final Office Action mailed Jan. 13, 2011”, 27 pgs. |
“U.S. Appl. No. 12/119,421, Final Office Action mailed Feb. 29, 2012”, 31 pgs. |
“U.S. Appl. No. 12/119,421, Non Final Office Action mailed Oct. 18, 2011”, 29 pgs. |
“U.S. Appl. No. 12/119,421, Non-Final Office Action mailed Sep. 14, 2010”, 22 pgs. |
“U.S. Appl. No. 12/119,421, Response filed Jan. 18, 2012 to Non Final Office Action mailed Oct. 18, 2011”, 15 pgs. |
“U.S. Appl. No. 12/119,421, Response filed Mar. 3, 2011 to Final Office Action mailed Jan. 13, 2011”, 13 pgs. |
“U.S. Appl. No. 12/119,421, Response filed May 12, 2011 to Advisory Action mailed Mar. 22, 2011”, 15 pgs. |
“U.S. Appl. No. 12/119,421, Response filed Nov. 23, 2010 to Non-Final Office Action mailed Sep. 14, 2010”, 14 pgs. |
“U.S. Appl. No. 12/119,425, Appeal Brief filed Mar. 22, 2012”, 16 pgs. |
“U.S. Appl. No. 12/119,425, Examiner's Answer mailed Jul. 6, 2012”, 24 pgs. |
“U.S. Appl. No. 12/119,425, Final Office Action mailed Aug. 19, 2011”, 18 pgs. |
“U.S. Appl. No. 12/119,425, Non-Final Office Action mailed Mar. 1, 2011”, 17 pgs. |
“U.S. Appl. No. 12/119,425, Response filed Jun. 1, 2011 to Non Final Office Action mailed Mar. 1, 2011”, 17 pgs. |
“U.S. Appl. No. 13/081,236, Non Final Office Action mailed Jan. 24, 2012”, 10 pgs. |
“U.S. Appl. No. 13/081,236, Notice of Allowance mailed Jun. 14, 2012”, 9 pgs. |
“U.S. Appl. No. 13/081,236, Response filed Apr. 24, 2012 to Non Final Office Action mailed Jan. 24, 2012”, 12 pgs. |
“U.S. Appl. No. 13/081,267, Non Final Office Action mailed Jul. 13, 2012”, 6 pgs. |
“U.S. Appl. No. 13/081,267, Notice of Allowance mailed Nov. 9, 2012”, 5 pgs. |
“U.S. Appl. No. 13/081,267, Response filed Oct. 10, 2012 to Non-Final Office Action mailed Jul. 13, 2012”, 8 pgs. |
“Comparison of office suites”, Comparison of office suites—Wikipedia, the free encyclopedia, [Online] Retrieved from the internet: <URL:http://en.wikipedia.org/wiki/List—of—office—suites>, (Mar. 16, 2008), 4 pgs. |
“Forthcoming Functionality”, The Buzzword Blog Building the first real word processor for the web, [Online] Retrieved from the internet: <URL:http://blog.buzzword.com/vu/index.php?paged=3>, (Jul. 15, 2007), 10 pgs. |
“Google Docs”, Google Docs—Wikipedia, the free encyclopedia, [Online]. Retrieved from the Internet: <URL:http://en.wikipedia.org/wiki/Google—Docs>, (Mar. 16, 2008), 3 pages. |
“List of word processors”, From Wikipedia, the free encyclopedia The following is a list of word processors, [Online] Retrieved from the internet: <URL:http://en.wikipedia.org/wiki/List—of—word—processors>, (Mar. 16, 2008), 4 pgs. |
“The Buzzword Blog Building the first real word processor for the web”, Buzzword vs Google docs, [Online] Retrieved from the Internet: <URL:http://blog.virtub.com/>, (Mar. 12, 2008), 13 pages. |
“ThinkFree Docs :: Search, Share & Publish documents Page”, [Online] Retrieved from the internet: <URL:http://www.thinkfreedocs.com/, (Mar. 16, 2008), 1 page. |
“ThinkFree Docs::Search, Share & Publish documents”, FAQ [Online]. Retrieved from the Internet: <URL:http://www.thinkfreedocs.com/about/faq.html>, (Mar. 16, 2008), 1 page. |
“ThinkFree Office by Haansoft Corporation”, From Wikipedia, the free encyclopedia (Redirected from ThinkFree), [Online] Retrieved from the internet: <URL:http://en.wikipedia.org/wiki/ThinkFree>, (Nov. 7, 2006), 3 pgs. |
“Working with Collaborators: Real time collaboration”, Google Docs Help Center [Online]. Retrieved from the Internet: <URL:http://documents.google.com/support/bin/answer.py?answer=40971&topic=8628>, (Mar. 16, 2008), 2 pages. |
“Working with Collaborators: Simultaneous editing and viewing”, Google Docs Help Center [Online]. Retrieved from the internet: <URL:http://documents.google.com/support/bin/answer.py?answer=44680&topic=8628>, (Mar. 16, 2008), 2 pages. |
“ZCubes”, From Wikipedia, the free encyclopedia, [Online] Retrieved from the internet: <URL:http://en.wikipedia.org/wiki/ZCubes>, (Sep. 30, 2007), 5 pages. |
“Zoho Office Suite”, [Online] Retrieved from the interent: <URL:http://en.wikipedia.org/wiki/Zoho—Writer> From Wikipedia, the free encyclopedia (Redirected from Zoho Writer) Developed by AdventNet Inc. <URL:http://www.zoho.com>, (Mar. 16, 2008), 5 pgs. |
Agarwal, Deborah, et al., “Supporting collaborative computing and interaction”, Lawrence Berkeley National Laboratory, (May 22, 2002), 6 pgs. |
Descy, Don E, “Browser-Based Online Applications: Something for Everyone!”, TechTrends: Linking Research and Practice to Improve Learning, 51(2), (Mar. 2007), 3-5. |
Shen, H., “Integrating Advanced Collaborative Capabilities into Web-Based Word Processors”, Lecture Notes in Computer Science, 4674, (2007), 1-8. |
Simsarian, Kristian, et al., “Shared Spatial Desktop Development”, Kungl Tekniska Hogskolan Royal Institute of Technology Numerical Analysis and Computing Science. CID-86, KTH, Stockholm, Sweden 1999, Report No. CID-86 ISSN No. ISSN 1403-073X Reports can be ordered from: URL: http://www.nada.kth.se/cid/, (Aug. 1999), 103 pages. |
U.S. Appl. No. 12/119,421, Advisory Action mailed Mar. 7, 2014, 3 pgs. |
U.S. Appl. No. 12/119,421, Response filed Feb. 14, 2014 to Final Office Action mailed Nov. 14, 2013, 10 pgs. |
U.S. Appl. No. 12/119,421, Response filed Mar. 31, 2014 to Advisory Action mailed Mar. 7, 2014, 11 pgs. |
U.S. Appl. No. 13/794,079, Response filed Mar. 6, 2014 to Non Final Office Action mailed Dec. 13, 2013, 10 pgs. |
Number | Date | Country | |
---|---|---|---|
20130006919 A1 | Jan 2013 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 13081236 | Apr 2011 | US |
Child | 13612549 | US | |
Parent | 12119335 | May 2008 | US |
Child | 13081236 | US |