A system and method for synchronizing devices which can couple to the
Internet, or any network. In one aspect a system for synchronizing data
between a first system and a second system is provided. The system
includes a first sync engine on the first system interfacing with data on
the first system to provide difference information. A data store is
coupled to the network and in communication with the first and second
systems. A second sync engine is provided on the second system coupled to
receive the difference information from the data store via the network,
and interface with data on the second system to update said data on the
second system with said difference information. Difference information is
transmitted to the data store by the first sync engine and received from
the data store from the second sync engine. A method for synchronizing at
least a first file and a second file resident on the first and second
systems, respectively, coupled to the Internet, respectively, is also
provided. The method includes the steps of: determining difference data
resulting from changes to the first file on the first system;
transmitting the difference data to a server via the Internet; querying
the server from a second system to determine whether difference data
exists for files on the second system; retrieving the difference data to
the second system; and updating the second file on the second system with
the difference data.