Benjamin C. Pierce
University of Pennsylvania
Harmony: A Synchronization Framework for Tree-Structured Data
Abstract:
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