Benjamin C. Pierce
University of Pennsylvania

Harmony:  A Synchronization Framework for Tree-Structured Data


Increased use of optimistic data replication has led to increased interest in SYNCHRONIZATION technologies.   These technologies are not only a fact of life in present-day networks; they are fascinating, and they raise a host of challenging scientific questions.

The goal of the Harmony project is to develop a generic framework for synchronizing tree-structured data -- i.e., a tool for propagating updates between different copies, possibly stored in different formats, of tree-shaped data structures.   For example, Harmony can be used to synchronize the bookmark files of several different web browsers, allowing bookmarks and bookmark folders to be added, deleted, edited, and reorganized by users running different browsers on disconnected machines.   Other Harmony instances under development include synchronizers for calendars (Palm DateBook, ical, and iCalendar formats), address books, Keynote presentations, structured documents, file systems, and generic XML and HTML.

This talk offers a guided tour of the Harmony system, touching on
·      basic design issues (in particular, the tradeoffs between Harmony's "state-based" architecture and "operation-based" alternatives),
·      the core synchronization engine and its properties, and
·      the domain-specific programming language used to transform "concrete data" from the real world into abstracted forms suitable for synchronization.

Harmony is joint work with Michael Greenwald and Alan Schmitt.

Principles of Programming Seminars

Wednesday, February 11, 2004
3:30 p.m.
Wean Hall 8220