Synchronous Framework (OLTP)---a Technical Reference Guide for Designing Mission-Critical OLTP Solutions
Want more guides like this one? Go to Technical Reference Guides for Designing Mission-Critical Solutions.
The Microsoft Sync Framework is a comprehensive synchronization platform that enables collaboration and offline scenarios for applications, services, and devices. Developers can build synchronization ecosystems that integrate any application, and any type of data from any data store using any protocol over any network. Sync Framework features technologies and tools that enable roaming, sharing, and taking data offline. These properties help developers use the Sync Framework in scaling out applications to add processing capacities.
A number of providers are included with the Sync Framework, and these providers support many common data sources. Although not required, to minimize development it is recommended that developers use these providers wherever possible. The included providers are:
Database synchronization providers: synchronization for ADO.NET-enabled data sources
File synchronization provider: synchronization for files and folders
Web synchronization components: synchronization for FeedSync feeds, such as RSS and Atom feeds
Developers can use any of the out-of-the-box providers or create custom providers to exchange information between devices and applications. A key aspect of Sync Framework is the ability to create custom providers.
Following are some Sync Framework best practices, in addition to some pitfalls to avoid when using Sync Framework.
The Microsoft Sync Framework Developer Center1 is the main site for everything to do with Sync Framework. It includes white papers, code samples, links to blogs, and many other topics that might be necessary for a Sync Framework project.
The web page Introduction to Sync Framework Database Synchronization2 is a good starting point to understand how Sync Framework database synchronization can be used for database applications. In this article, you will notice that the primary use scenario discussed is building Occasionally Connected Applications (OCAs). In this respect, Sync Framework enables use scenarios that are similar to those serviced by merge replication; however, Sync Framework is more flexible than merge replication.
A common extension to OCAs is the ability to support data collaboration between databases. A remote database is free to exchange information with any other database. This type of solution is useful when a team of people are working in remote locations and do not have access to a central database. These workers often need to share information, but since they do not have constant connectivity to the central database, they need to share information through some sort of peer-to-peer network.
The article Sync Framework - SQL Server to SQL Azure Synchronization3 illustrates how Sync Framework can be used to extend the on-premise server processing capacities to those provided by SQL Azure in the cloud. It is this new paradigm that makes Sync Framework an important component.
Case Studies and References
The following is an example of a customer's use of Sync Framework:
The case study Meridium: Asset Performance Management Solution Increases Performance and Interopreability4 describes how Meridium is using Sync Framework to provide a faster mobile solution for its customers, and to help its internal developers to more efficiently incorporate synchronization into current and future products.
Questions and Considerations
This section provides questions and issues to consider when working with your customers.
Existing deployments of Sync Framework are focused on occasionally connected systems, collaboration-oriented systems, or systems to use the terminal devices capabilities. We have not seen Sync Framework deployed primarily for scaling out for capacity. However, this could significantly change with the on-premise and off-premises SQL Azure application collaboration. It is worthwhile to look for opportunities in this nascent area of using the elastic capacity provided by SQL Azure.
The article Selecting the Appropriate Sync Framework Components5 discusses considerations for selecting the appropriate Sync Framework components.
Following are the full URLs for the hyperlinked text.
1 Microsoft Sync Framework Developer Centerhttp://msdn.microsoft.com/en-us/sync/default.aspx
2 Introduction to Sync Framework Database Synchronizationhttp://msdn.microsoft.com/en-us/sync/bb887608
3 Synch Frameworks – SQL Server to SQL Azure Synchronizationhttp://social.technet.microsoft.com/wiki/contents/articles/sync-framework-sql-server-to-sql-azure-synchronization.aspx
4 Meridium: Asset Performance Management Solution Increases Performance and Interoperabilityhttp://www.microsoft.com/casestudies/Windows-Mobile-6/Meridium/Asset-Performance-Management-Solution-Increases-Performance-and-Interoperability/4000006301
5 Selecting the Appropriate Sync Framework Componentshttp://msdn.microsoft.com/library/dd937565(SQL.105).aspx