SlideShare a Scribd company logo
Miroslav Cupák, Hao Yan
Undo, Redo and Collaboration
in Web Applications
Dec 10, 2012
Introduction
● idea: investigate the use of application-level
undo-redo to achieve collaboration
● motivation - collaboration is a crucial feature
○ Google Docs, Zoho Writer, SubEthaEdit...
○ essential for web-based word processing and
spreadsheet
● goal: enable collaboration for a web-based
diagram drawing software
Background
● Brown, Patterson: Undo for operators: building an
undoable e-mail store.
● Lowell, Chandra, Chen: Exploring failure transparency
and the limits of generic recovery.
● Edwards, Mynatt: Timewarp: techniques for
autonomous collaboration.
● Michael, Towndrow, Wiz: Conditions for successful
online document collaboration.
Asciiflow
Asciiflow
● web application primarily used for diagrams
● based on Java + Google Web Toolkit
○ client-server model with RPC communication
● 20+ operations
● local physical undo and redo
○ maintains a set of pixel-based changes on the client
● no collaboration support
○ local save overwriting external changes
Goals
● allow multiple users to co-author a diagram
smoothly
● changes merged and propagated to all the
users
● each user is able to perform local undo and
redo his own actions
● graceful resolution of conflicts without loss of
data
Implementation
● modify RPC communication and persistence
● change model to enable state sharing
○ track the user issuing changes
○ extend information sent to the server
● add autosave capabilities
○ synchronize save after each operation
● adapt the concept to pixel-based operations
● enable manual undo-redo of local operations
Implementation
● load and save coordination on the server
○ check the owner of the snapshot before saving
○ if owner = current user, proceed with simple save
○ otherwise merge changes before saving
● merging of changes
○ undo local operations
○ load the foreign snapshot
○ redo local operations on the new snapshot
○ save the new state
Conflicts
● save merging might lead to conflicts
○ eg. two players draw two overlapping shapes
simultaneously
● most modifications of the same region OK
○ the slightly late change will be applied on top of the
earlier change
● conflicts become a problem when undo
operation is involved
Inconsistent result
Resolving Conflicts
● all conflicts are associated with undo / redo
actions
○ without knowledge of actions of other users, local
physical undo / redo always cause consistency
problems
● need to save a global log of user actions on
server to fundamentally prevent conflicts
from happening
Resolving Conflicts
● global action log stored as part of the state
on server
A
B
.
.
.
undo redo
undo redo
TimeGlobal Log of User Actions
Local Undo A Local Redo B
Evaluation
● performance overheads of the collaboration
features compared to the original application
(merge cost, amount of data being sent)
Conclusions
● successful implementation of features that
allow collaboration for Asciiflow
● demonstration of application-level undo-redo
to achieve collaboration
● may improve performance by sending only
the updates to server
Questions?

More Related Content

PDF
Plain react, hooks and/or Redux ?
PPTX
Jump into React-Native (Class 4)
PPTX
Hot deploy
PDF
FITC presents: Mobile & offline data synchronization in Angular JS
PDF
Evolving to Cloud-Native - Anand Rao
PPTX
Developing high performance and responsive web apps using web worker
PDF
How to easily identify and resolve front-end performance bottlenecks
PDF
Nuxeo Platform LTS 2016 - Roadmap
Plain react, hooks and/or Redux ?
Jump into React-Native (Class 4)
Hot deploy
FITC presents: Mobile & offline data synchronization in Angular JS
Evolving to Cloud-Native - Anand Rao
Developing high performance and responsive web apps using web worker
How to easily identify and resolve front-end performance bottlenecks
Nuxeo Platform LTS 2016 - Roadmap

Similar to Undo, Redo and Collaboration in Web Applications (20)

PDF
AngularJS in Production (CTO Forum)
PDF
Introduction to react native
PDF
Bootstrapping a ML platform at Bluevine [Airflow Summit 2020]
PDF
Mobilesoft presentation
PDF
One year solving infrastructure management with FusionDirectory and OpenLDAP,...
 
PDF
React for non techies
PDF
React for non techies
PDF
React for Non Techies
PDF
Airflow Intro-1.pdf
PDF
Effects, Coeffects & Subscriptions: a pit of success for SPAs
PDF
Lighthouse
PDF
Cloud computing and software engineering
PPTX
Rapid Application Development with MEAN Stack
PDF
ADF Taskflows for beginners
PDF
[Dec 1 meetup] upgrading microservices
PPTX
Why Concurrency is hard ?
PDF
Oracle ADF Task Flows for Beginners
PPTX
Snowflake Automated Deployments / CI/CD Pipelines
PPTX
Concurrency - Why it's hard ?
PPTX
React js Rahil Memon
AngularJS in Production (CTO Forum)
Introduction to react native
Bootstrapping a ML platform at Bluevine [Airflow Summit 2020]
Mobilesoft presentation
One year solving infrastructure management with FusionDirectory and OpenLDAP,...
 
React for non techies
React for non techies
React for Non Techies
Airflow Intro-1.pdf
Effects, Coeffects & Subscriptions: a pit of success for SPAs
Lighthouse
Cloud computing and software engineering
Rapid Application Development with MEAN Stack
ADF Taskflows for beginners
[Dec 1 meetup] upgrading microservices
Why Concurrency is hard ?
Oracle ADF Task Flows for Beginners
Snowflake Automated Deployments / CI/CD Pipelines
Concurrency - Why it's hard ?
React js Rahil Memon
Ad

More from Miro Cupak (20)

PDF
Exploring the latest and greatest from Java 14
PDF
Exploring reactive programming in Java
PDF
Exploring the last year of Java
PDF
Local variable type inference - Will it compile?
PDF
The Good, the Bad and the Ugly of Java API design
PDF
Local variable type inference - Will it compile?
PDF
Exploring reactive programming in Java
PDF
The good, the bad, and the ugly of Java API design
PDF
Master class in modern Java
PDF
The good, the bad, and the ugly of Java API design
PDF
Exploring reactive programming in Java
PDF
The good, the bad, and the ugly of Java API design
PDF
Writing clean code with modern Java
PDF
The good, the bad, and the ugly of Java API design
PDF
Master class in modern Java
PDF
Exploring reactive programming in Java
PDF
Writing clean code with modern Java
PDF
Exploring what's new in Java 10 and 11 (and 12)
PDF
Exploring what's new in Java 10 and 11
PDF
Exploring what's new in Java in 2018
Exploring the latest and greatest from Java 14
Exploring reactive programming in Java
Exploring the last year of Java
Local variable type inference - Will it compile?
The Good, the Bad and the Ugly of Java API design
Local variable type inference - Will it compile?
Exploring reactive programming in Java
The good, the bad, and the ugly of Java API design
Master class in modern Java
The good, the bad, and the ugly of Java API design
Exploring reactive programming in Java
The good, the bad, and the ugly of Java API design
Writing clean code with modern Java
The good, the bad, and the ugly of Java API design
Master class in modern Java
Exploring reactive programming in Java
Writing clean code with modern Java
Exploring what's new in Java 10 and 11 (and 12)
Exploring what's new in Java 10 and 11
Exploring what's new in Java in 2018
Ad

Recently uploaded (20)

PPTX
Odoo POS Development Services by CandidRoot Solutions
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Understanding Forklifts - TECH EHS Solution
PPTX
Transform Your Business with a Software ERP System
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
top salesforce developer skills in 2025.pdf
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PPTX
history of c programming in notes for students .pptx
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
System and Network Administraation Chapter 3
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
medical staffing services at VALiNTRY
Odoo POS Development Services by CandidRoot Solutions
Navsoft: AI-Powered Business Solutions & Custom Software Development
Understanding Forklifts - TECH EHS Solution
Transform Your Business with a Software ERP System
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Wondershare Filmora 15 Crack With Activation Key [2025
2025 Textile ERP Trends: SAP, Odoo & Oracle
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
VVF-Customer-Presentation2025-Ver1.9.pptx
top salesforce developer skills in 2025.pdf
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
history of c programming in notes for students .pptx
Upgrade and Innovation Strategies for SAP ERP Customers
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Softaken Excel to vCard Converter Software.pdf
Design an Analysis of Algorithms I-SECS-1021-03
System and Network Administraation Chapter 3
Internet Downloader Manager (IDM) Crack 6.42 Build 41
medical staffing services at VALiNTRY

Undo, Redo and Collaboration in Web Applications

  • 1. Miroslav Cupák, Hao Yan Undo, Redo and Collaboration in Web Applications Dec 10, 2012
  • 2. Introduction ● idea: investigate the use of application-level undo-redo to achieve collaboration ● motivation - collaboration is a crucial feature ○ Google Docs, Zoho Writer, SubEthaEdit... ○ essential for web-based word processing and spreadsheet ● goal: enable collaboration for a web-based diagram drawing software
  • 3. Background ● Brown, Patterson: Undo for operators: building an undoable e-mail store. ● Lowell, Chandra, Chen: Exploring failure transparency and the limits of generic recovery. ● Edwards, Mynatt: Timewarp: techniques for autonomous collaboration. ● Michael, Towndrow, Wiz: Conditions for successful online document collaboration.
  • 5. Asciiflow ● web application primarily used for diagrams ● based on Java + Google Web Toolkit ○ client-server model with RPC communication ● 20+ operations ● local physical undo and redo ○ maintains a set of pixel-based changes on the client ● no collaboration support ○ local save overwriting external changes
  • 6. Goals ● allow multiple users to co-author a diagram smoothly ● changes merged and propagated to all the users ● each user is able to perform local undo and redo his own actions ● graceful resolution of conflicts without loss of data
  • 7. Implementation ● modify RPC communication and persistence ● change model to enable state sharing ○ track the user issuing changes ○ extend information sent to the server ● add autosave capabilities ○ synchronize save after each operation ● adapt the concept to pixel-based operations ● enable manual undo-redo of local operations
  • 8. Implementation ● load and save coordination on the server ○ check the owner of the snapshot before saving ○ if owner = current user, proceed with simple save ○ otherwise merge changes before saving ● merging of changes ○ undo local operations ○ load the foreign snapshot ○ redo local operations on the new snapshot ○ save the new state
  • 9. Conflicts ● save merging might lead to conflicts ○ eg. two players draw two overlapping shapes simultaneously ● most modifications of the same region OK ○ the slightly late change will be applied on top of the earlier change ● conflicts become a problem when undo operation is involved
  • 11. Resolving Conflicts ● all conflicts are associated with undo / redo actions ○ without knowledge of actions of other users, local physical undo / redo always cause consistency problems ● need to save a global log of user actions on server to fundamentally prevent conflicts from happening
  • 12. Resolving Conflicts ● global action log stored as part of the state on server A B . . . undo redo undo redo TimeGlobal Log of User Actions Local Undo A Local Redo B
  • 13. Evaluation ● performance overheads of the collaboration features compared to the original application (merge cost, amount of data being sent)
  • 14. Conclusions ● successful implementation of features that allow collaboration for Asciiflow ● demonstration of application-level undo-redo to achieve collaboration ● may improve performance by sending only the updates to server