Microsoft Sync Framework - Architecture


The Sync Framework runtime provides synchronization functionality, without being tied to any data store or data transport protocols. By providing data source specific synchronization providers, any data source can be supported. For example, using proper synchronization providers, files can be synchronized across computers, project updates synchronized across project participants, or media synchronized across devices. Sync Framework ships with three providers: Microsoft Sync Services for ADO.NET, Sync Services for File Systems, and Sync Services for SSE. Sync Services can be used to synchronize devices by supplying providers for the device. Similarly, PIM software such as Microsoft Office Outlook and media libraries such as Windows Media Player can also be supported by providing suitable providers.

The providers are used to enumerate the items in a data store, each identified by an Item ID. In addition, they also have to maintain synchronization metadata and the state of the data store, so that changes can be enumerated quickly. The metadata is maintained for every instance of the data store (replica) that the provider is attached to. The metadata maintained includes the replica ID, tick count (representing progression in time), conflict log, tombstone log, and the set of the changes the data store has seen (knowledge). A replica ID and tick count pair makes up a version and encodes the state of the data store until that time. Sync Framework defines a set of operation for the Knowledge object for a replica: Contains which determines if the store contains a specified change, Union to merge two knowledge sets, Project to project out the knowledge for a subset of the items, and Exclude to create a new knowledge set without the changes for a subset of the items. The metadata is managed by the metadata storage service which uses an in-process SQL Server Compact database to store the metadata on a per-provider basis.

The Sync Services API operates by creating a synchronization session, represented by a Session object. A synchronization session synchronizes data across two synchronization providers - one for the source data store and the other for the destination. Instances of both the providers are passed to the Session object. During a synchronization session, the destination provider sends the knowledge set of the store. The source provider compares the knowledge of the destination with the change set in the source to enumerate the changes and then transfer it to the destination. The destination provider makes sure the changes are not conflicting and merges the changes and updates the knowledge.

  1. Snapshot sync (download-only sync): The data in the data source (or a subset of it) is synchronized with clients.
  2. Upload-only sync: Data in the client is merged to the source replica.
  3. Bidirectional sync: Both the data sources can be modified independently and changes are synchronized with each other. An n-level sync is achieved by performing multiple bidirectional synchronizations.

Read more about this topic:  Microsoft Sync Framework

Other articles related to "architecture":

Cubism - Architecture
... link between early-twentieth-century art and architecture is widely accepted ... and socio-political relationships between avant-garde practices in painting, sculpture and architecture had early ramifications in France, Germany, the Netherlands and ... Though there are many points of intersection between Cubism and architecture, only a few direct links between them can be drawn ...
Modern Uses of The Harvard Architecture
... The principal advantage of the pure Harvard architecture—simultaneous access to more than one memory system—has been reduced by modified Harvard processors using modern CPU cache systems ... Relatively pure Harvard architecture machines are used mostly in applications where tradeoffs, such as the cost and power savings from omitting caches, outweigh the programming penalties from having distinct code ... with no cache, and take advantage of the Harvard architecture to speed processing by concurrent instruction and data access ...
Information Science - Research Vectors and Applications - Information Architecture
... Information architecture (IA) is the art and science of organizing and labelling websites, intranets, online communities and software to support usability ... discipline and community of practice focused on bringing together principles of design and architecture to the digital landscape ...
Gottfried Semper - Life - Early Life (to 1834)
... He subsequently studied architecture in 1825 at the University of Munich under Friedrich von Gärtner ... Between 1830 and 1833 he travelled to Italy and Greece in order to study the architecture and designs of antiquity ... ber bemalte Architectur und Plastik bei den Alten (Preliminary Remarks on Polychrome Architecture and Sculpture in Antiquity), in which he took a strong ...
Gottfried Semper
1803 – May 15, 1879) was a German architect, art critic, and professor of architecture, who designed and built the Semper Opera House in Dresden between 1838 ... wrote extensively about the origins of architecture, especially in his book The Four Elements of Architecture from 1851, and he was one of the major figures in the controversy surrounding the ...

Famous quotes containing the word architecture:

    Defaced ruins of architecture and statuary, like the wrinkles of decrepitude of a once beautiful woman, only make one regret that one did not see them when they were enchanting.
    Horace Walpole (1717–1797)

    The principle of the Gothic architecture is infinity made imaginable.
    Samuel Taylor Coleridge (1772–1834)

    Art is a jealous mistress, and if a man have a genius for painting, poetry, music, architecture or philosophy, he makes a bad husband and an ill provider, and should be wise in season and not fetter himself with duties which will embitter his days and spoil him for his proper work.
    Ralph Waldo Emerson (1803–1882)