Difference between revisions of "SimultaneousEditing"

(A simple editing scenario)
Line 20: Line 20:
  
 
Primary concerns in this architecture are those of excessive requests hitting the server simultaneously and the response times involved. Slow response times can have a possibly have a bad effect on the user experience.
 
Primary concerns in this architecture are those of excessive requests hitting the server simultaneously and the response times involved. Slow response times can have a possibly have a bad effect on the user experience.
 +
 +
 +
what sort of overhead is associated with sending the edits to servers?
 +
what involves sending an edit to the server?
 +
how are batches made and why?
 +
how does a time-out operate?
 +
how does the server make edits available to other users?
 +
what edits are sent to the client? all edits since the last time a particular client requested edits, or the current edits on the server only? note that if only the current edits are sent, a client could potentially miss out on edits if it gets disconnected in between.
 +
look up comet?

Revision as of 10:09, 6 May 2007

Simultaneous editing is part of Topsoil.

We want people to be able to edit a web page simultaneously. Two major problems with simultaneous editing are conflict resolution and content divergence. What we want is that users should be able to see other users editing the same document in real time. This can be accomplished using an architecture where clients poll the server for changes and incorporate those changes in the current document as they come in. Imagine two users editing a single document. The first user could be editing the first paragraph and the second user could be making changes to the second paragraph. Each user will see the other user's changes as they are being made. If both users happen to edit the same thing, a conflict resolution facility could be provided, using which the users could either come up with a collaborative edit or all users could back off allowing only one user to make the change.


A simple editing scenario

User A, B and C are editing the document, "The quick brown fox jumps over the lazy dog".

1. User A makes an edit by changing 'quick' to 'QUICK'.

Edits are sent to the server in batches. A time-out makes sure that the edits are sent to the server even if a complete batch is not ready. A similar mechanism is used on the server side. Clients receive edits in batches or when there is a time-out on the server.

2. User A sends the edit to the server.

3. Server makes the edit available to other users.

4. User B and C receive the edit which gets incorporated in their editing panes.


Primary concerns in this architecture are those of excessive requests hitting the server simultaneously and the response times involved. Slow response times can have a possibly have a bad effect on the user experience.


what sort of overhead is associated with sending the edits to servers? what involves sending an edit to the server? how are batches made and why? how does a time-out operate? how does the server make edits available to other users? what edits are sent to the client? all edits since the last time a particular client requested edits, or the current edits on the server only? note that if only the current edits are sent, a client could potentially miss out on edits if it gets disconnected in between. look up comet?



Retrieved from "http://aboutus.com/index.php?title=SimultaneousEditing&oldid=6565259"