Google I/O 2008: Using GWT to Build a High Performance Collaborative Diagramming Tool
Lombardi Blueprint is a browser based business process documentation and diagramming tool written using GWT and Java. It supports simultaneous viewing and editing of process definitions by multiple users in different locations with multi level undo and a rich editing experience including drag and drop, inline editing and, automatic diagram layout. Implementing these features presented several technical challenges.
Damon and Alex will describe two of the most interesting: 1) synchronizing multiple client object models with the server, and 2) providing a highly responsive diagram editing experience.
To support multi user editing and viewing Blueprint must keep client and server object models in sync. Our repository design supports doing this efficiently by only requiring us to transfer the differences between two model states in either direction. This same approach allows us also to support rollback to previously saved versions by having the server compute the set of commands required to move between any two states.
Alex Moffat and Damon Lundin (Lombardi)