Collaborative online web applications using Conflict-Free Replicated Data Types
This thesis examines the possibilities of developing collaborative online web applications using exclusively web technologies. The alternatives presented by browsers like Mozilla Firefox and Google Chrome are explored looking at the development environments as well as APIs available that could be used for network communications and data storage.
A prototype of a spreadsheet like application similar to Google Drive Spreadsheet or Microsoft Office 365 is developed. An architecture for this application is designed having online collaboration, availability and reliability as architectural concerns. Conflict-free Replicated Data Types (CRDTs) are used for modeling the data to be replicated by the application. These increase the failure-tolerance properties of the application, ease the task of merging changes and provide interesting partition tolerance capabilities that benefit the end user of the application. The cells of the spreadsheet as well as the online user counter are represented using CRDTs and replicated across peers in LAN and to a centralized repository on the internet (when connectivity is available).
Protocols used for peer discovery, recovery of information from a centralized repository or a peer in LAN, and replication of updates are defined. Regarding replication of updates, three different protocols for information dissemination in peer-to-peer networks are implemented and compared through experimentation, namely: Causal Broadcast, Tree Overlay and NewsCast.
A comparison of these three protocols replicating CRDTs under local area network (LAN) is performed through running experiments. Mean delivery time of updates and mean inbound/outbound bandwidth usage under under each experiment are measured and compared.