Synchronization of FeedSync Compliant Feeds such as Atom and RSS

FeedSync defines the minimum extensions necessary to enable loosely-cooperating applications to use XML-based container formats such as Atom and RSS as the basis for item sharing. One of the guiding principles of FeedSync is to reinvent as little as possible—hence the use of Atom and RSS for exchanging FeedSync data. It is expected that there will be additional container format bindings for FeedSync in the future. FeedSync is useful in any scenario that uses Web protocols and data representations such as RSS and Atom to exchange information with the Web services and between peers where there are no inter-item dependencies and item can be synchronized as a whole entity.

 

The FeedSync spec can be found at https://msdn2.microsoft.com/en-us/xml/bb510102.aspx.

 

FeedSync and Microsoft Sync Framework

Microsoft Sync Framework is the platform and runtime for adding synchronization roaming, and offline capabilities to applications, devices, and services. The Sync Framework includes support for FeedSync, and we envision several ways that FeedSync can interoperate with the Sync Framework, including:

  1. When you want to publish or consume the contents of your data store in the form of an RSS or Atom feed, with minimal changes to your application. This is helpful when there is an existing ecosystem of Microsoft Sync Framework endpoints which synchronize with each other and you want to bridge this ecosystem to a Web service or to another synchronization ecosystem. In this case there needs to be a mapping between the data store’s data and metadata, and a FeedSync representation of that data and metadata.
  2. You wish to synchronize a set of data that is entirely represented by an RSS or ATOM feed. An example of this may be if you wish to write a calendar application that stores its data in a feed format for publishing.

To solve the first problem, Microsoft Sync Framework supports FeedSync feed producer/consumer APIs, which makes it very easy to produce or consume a feed from a particular data store. Those APIs completely hide the synchronization nature of the producing/consuming process. They also handle remapping the metadata to and from FeedSync, while allowing you to implement a simple interface which handles the remapping of the data. See the Feed Producer and Consumer APIs in the Microsoft Sync Framework documentation for more information. 

 

The second problem requires a lower level set of sync services that are able to perform metadata translation between Microsoft Sync Framework and FeedSync representations. We’ll call these services “core FeedSync interoperability sync services”. See Sync Services for FeedSync Components for more information.

 

Andrei & Aaron