Collaborative Editing

From JCurlWiki

Jump to: navigation, search

Contents

Goal

JCurlShotPlanner should become a collaborative real time editing tool. Every editing action (change to the underlying datamodel) is replicated to all participating users. Including "file open / reset" and the like - though vetoable.

Means

  • use a Jabber/XMPP chat session to transport real text communication and graphical changes
  • hook this communication layer into the Undo

Problems

  • avoid restrictive locking whenever possible

Approach

Scenario

Let's assume Bob and Sally want to discuss some curling tactics, then

  1. Bob launches JCurlShotPlanner
  2. Bob configures his jabber account and connects the jabber server
  3. Bob starts a new file
  4. Sally launches JCurlShotPlanner
  5. Sally configures her jabber account and connects the jabber server
  6. Bob sees Sally in his presence list
  7. Sally invites Bob to join a "session"
  8. Bob sees the invitation (dialog) and a warning that he'd loose the pending file changes.
  9. Bob chooses to save this current file and then accept the conversation.
  10. Sally's current file gets wired to Bob
  11. both edit concurrently.
  12. dragged objects are locked on "startdrag" (first change) and unlocked on drop.
  13. undo/redo operations are pushed as new edits ontop the other's undo stack

Consequences

  • some housekeeping dialogs required (jabber account and session management, presence display)
  • chat text input & output display required
  • display current participants (most important for multi-user chats)
  • display a edit-history labelled with originating user
  • mark the locked objects somehow (use a enabled property? Or does this need to be personalised? Something like a nullable lockholder property?)
  • add a "force break lock" command



Links

Wikipedia

Papers

  • Consistency maintenance in real-time collaborative graphics editing systems[1]
  • Undoing any operation in collaborative graphics editing systems[2]
  • Undo any operation at any time in group editors[3]
  • A framework for undoing actions in collaborative systems[4]
  • Multi-User Undo/Redo[5]
  • Enable collaborative graphics editing in mobile environment[6]

References

  1. Sun, C., & Chen, D. (2002). Consistency maintenance in real-time collaborative graphics editing systems. Computer-Human Interaction, 9(1), 1–41. Bib
  2. Chen, D., & Sun, C. 2001. Undoing Any Operation in Collaborative Graphics Editing Systems. Bib
  3. Sun, C. (2000). Undo any operation at any time in group editors. Paper presented at Computer Supported Cooperative Work. Bib
  4. Prakash, A., & Knister, M. J. (1994). A framework for undoing actions in collaborative systems. ACM Transactions on Computer-Human Interaction, 1(4), 295. Bib
  5. Choudhary, R., & Dewan, P. 1992. Multi-User Undo/Redo. Bib
  6. Jiang, B., Zhang, H., Chen, C., & Yang, J. (2005). Enable collaborative graphics editing in mobile environment. Computer Supported Cooperative Work in Design, 2005. Proceedings of the Ninth International Conference on, 1. Bib