Chorus and Maestro

Distributed Synchronization

Matt Jones & Jacob Wiseman
Faculty Advisors: Benjamin Pierce & Fernando Pereira
Home | Chorus | Maestro | Challenges | Harmony

Client-Server Synchronization:

the Maestro Server uses standard HTTP and webDAV to communicate with a client. Maestro documents are located using standard URIs of the form: http://maestro_server/username/filename. Maestro only uses the username to determine which archive to use during a sync, so http://maestro_server/JOE/file and http://maestro_server/JEN/file actually point to the same file in the Maestro filesystem.

To view a document, a client must simply issue a HTTP Get request for the Maestro file. The server will return it in the body of an HTTP OK response.

To synchronize a file, the client must issue three requests: LOCK, PUT, UNLOCK. The LOCK request will return a Lock-Token, and will lock the file in the Maestro filesystem to prevent conflicts. Once the client has acquired the Lock-Token, it can issue a PUT for that file. The server will run Harmony on the file sent from teh client and the current "official" copy using the user's archive as teh archive file. If successful, an HTTP OK response is sent back containing the updated file, if unsuccessful, an HTTP CONFLICT response is sent back with some error messages.


Far More Scalable than P2P version

Works across the internet

Easier to secure


Requires a centralized server at know address.

Matt Jones & Jacob Wiseman , 2006