The Desktop Sync service synchronizes files between the desktop and SkyVault repository using web services. The application currently synchronizes files in the document library of any site a user has access to. Because the content is synchronized automatically between both sides, the users can easily share information between devices. This allows for easy, automatic updates and backup of your data. Share automatically recognizes the updates made to the content via the device and adopts them by synchronizing the data.
Components of Desktop Sync
- SkyVault repository: This is where the content, the indexes, and the database resides.
- Changes queue: This is where the SkyVault repository writes messages about changes to the files, folders, subscriptions and device registrations. This is managed by ActiveMQ.
- Synchronization service: This service keeps a record of all the changes. It manages a set of devices and computes the differences between the views that all the devices have of content, and the view that SkyVault repository has of the content.
- Device: This specifies the desktop with which the user interacts. It receives and adds content from/to the repository directly.
Information flow
The synchronization process is based on the concept that the repository will publish messages when events happen that may be of interest to the clients. The clients can find out about these events and use the information to stay in sync with the repository.
The SkyVault repository communicates any changes made to the files, folders, subscriptions and device registrations via a queue. The synchronization service reads the messages in the queue and persists the changes in the PostgreSQL database. It determines and records whether the device view of a particular file is different from the repository's view of that file. The device makes a GET change service request to the synchronization service to get an update on any resources that have changed since the particular device was last synced. The synchronization service communicates the changes (if any) to the device. The device uses CMIS and the changed data from the synchronization service to bring the client and the repository in sync.
The desktop can register and synchronize content directly to the repository. For more information, see Desktop Sync process.