In the past, techniques for this sharing, distribution and synchronization of data amongst multiple clients have not been entirely satisfactory.
The management of shared data in a distributed environment is accomplished in one of two ways: with a client/server setup or with peer-to-peer messaging.