A server stores files. Distributed clients access the server, to learn about
changes
made to the files on the server, and to push local changes of the files onto the
server. A synchronization application is used to synchronize the clients and server,
synchronizing metadata and selected files.