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.