Successfully reported this slideshow.
Microsoft Sync Framework Overview Saturday, June 6, 2009 By  HIEU LE TRUNG
Content <ul><li>Today application’s data issue </li></ul><ul><li>Microsoft Sync Framework Overview </li></ul><ul><li>Micro...
Overview <ul><li>Microsoft Sync Framework is a platform for synchronizing data across multiple data stores </li></ul><ul><...
The Issue of Distributed Application Page
Occasional Connected Application <ul><li>Cache data locally </li></ul><ul><ul><li>Work even when you’re not online </li></...
Key Scenario for Sync Page  <ul><li>Offline </li></ul><ul><li>Cached Mode </li></ul><ul><li>Mobile information workers </l...
The Sync Session Page  Sync Provider Sync Application Sync Provider Sync Orchestrator Data Store Data Store changes change...
Sync Concepts <ul><li>Data Source : the location where all information which needs to be synchronized is stored </li></ul>...
Sync Flow Page
Conflicts & Resolutions <ul><li>Two kinds of conflict:  </li></ul><ul><ul><li>Concurrency Conflicts : changes affects on t...
What is MSF for Developers? <ul><li>Includes out-of-box providers that can be configured to sync common endpoints </li></u...
Windows Azure Platform Page
SQL Services & MSF <ul><li>Database:  Relational processing for structured/unstructured data </li></ul><ul><li>Data Sync: ...
Summary <ul><li>Microsoft Sync Framework is a platform for data synchronization solutions </li></ul><ul><ul><li>Includes o...
References <ul><li>http://en.wikipedia.org/wiki/Microsoft_Sync_Framework </li></ul><ul><li>Microsoft Sync Framework Develo...
Upcoming SlideShare
Loading in …5
×

Microsoft Sync Framework

5,060 views

Published on

Introduce the Microsoft Sync Framework, my presentation at Barcamp Saigon

Published in: Technology
  • Be the first to comment

Microsoft Sync Framework

  1. Microsoft Sync Framework Overview Saturday, June 6, 2009 By HIEU LE TRUNG
  2. Content <ul><li>Today application’s data issue </li></ul><ul><li>Microsoft Sync Framework Overview </li></ul><ul><li>Microsoft Sync Framework in Detail </li></ul>Page
  3. Overview <ul><li>Microsoft Sync Framework is a platform for synchronizing data across multiple data stores </li></ul><ul><li>Available both in managed code, as well as unmanaged code </li></ul><ul><li>Features </li></ul><ul><ul><li>Pre-define some basic synchronize provider </li></ul></ul><ul><ul><ul><li>ADO.NET Sync </li></ul></ul></ul><ul><ul><ul><li>Feeds Sync </li></ul></ul></ul><ul><ul><ul><li>File Sync </li></ul></ul></ul><ul><ul><li>Pre-define SQLCE metadata store </li></ul></ul><ul><ul><li>Built-in conflict detection algorithm </li></ul></ul><ul><li>The challenges in sync has already been covered by MSF </li></ul><ul><ul><li>Change tracking </li></ul></ul><ul><ul><li>Conflict detection </li></ul></ul><ul><ul><li>Conflict resolving </li></ul></ul><ul><ul><li>Connectivity loss </li></ul></ul>Page
  4. The Issue of Distributed Application Page
  5. Occasional Connected Application <ul><li>Cache data locally </li></ul><ul><ul><li>Work even when you’re not online </li></ul></ul><ul><ul><li>Leverage client UI </li></ul></ul><ul><ul><li>Minimize network utilization </li></ul></ul><ul><li>Synchronize with the server (when connected) </li></ul><ul><ul><li>At any time </li></ul></ul><ul><ul><li>At any place </li></ul></ul>Page
  6. Key Scenario for Sync Page <ul><li>Offline </li></ul><ul><li>Cached Mode </li></ul><ul><li>Mobile information workers </li></ul><ul><li>Rich experience for web services </li></ul><ul><li>Collaboration </li></ul><ul><li>My contacts, calendar everywhere </li></ul><ul><li>Documents everywhere </li></ul><ul><li>My music everywhere </li></ul>Microsoft Sync Framework
  7. The Sync Session Page Sync Provider Sync Application Sync Provider Sync Orchestrator Data Store Data Store changes changes changes changes changes Meta-data Interpretation Tools Provider Services MD Store Sync Runtime
  8. Sync Concepts <ul><li>Data Source : the location where all information which needs to be synchronized is stored </li></ul><ul><li>Metadata : the ability to store information about the data store and the objects within that data store with respect to state and change information </li></ul><ul><ul><li>Versions </li></ul></ul><ul><ul><li>Knowledge </li></ul></ul><ul><ul><li>Tick Count </li></ul></ul><ul><ul><li>Replica ID </li></ul></ul><ul><ul><li>Tombstones </li></ul></ul><ul><li>Knowledge : is a compact representation of changes that the replica is aware of. Providers use replica knowledge to: </li></ul><ul><ul><li>Enumerate changes (determine which changes another replica is not aware of). </li></ul></ul><ul><ul><li>Conflict Detection (determine which operations were made without knowledge of each other) </li></ul></ul><ul><li>Tombstone : is the information for each of the items that are deleted. A tombstone must contain the following information: </li></ul><ul><ul><li>Global ID. </li></ul></ul><ul><ul><li>Deletion version. </li></ul></ul><ul><ul><li>Creation version. </li></ul></ul>Page
  9. Sync Flow Page
  10. Conflicts & Resolutions <ul><li>Two kinds of conflict: </li></ul><ul><ul><li>Concurrency Conflicts : changes affects on the same item </li></ul></ul><ul><ul><li>Constraint Conflicts : conflicts that violate constraints that are put on items, such as the relationship of folders or the location of identically named data within a file system. </li></ul></ul><ul><li>Conflict Resolutions </li></ul><ul><ul><li>Source wins </li></ul></ul><ul><ul><li>Destination wins </li></ul></ul><ul><ul><li>Merge </li></ul></ul><ul><ul><li>Log </li></ul></ul><ul><ul><li>Defer </li></ul></ul>Page
  11. What is MSF for Developers? <ul><li>Includes out-of-box providers that can be configured to sync common endpoints </li></ul><ul><li>Support for building your own providers for your endpoint </li></ul><ul><li>Support for multiple development languages </li></ul><ul><ul><li>Managed Code: C#, Visual Basic.NET, … </li></ul></ul><ul><ul><li>Native/Unmanaged Code: C++… </li></ul></ul><ul><li>To write a sync solution using MSF, you need to write </li></ul><ul><ul><li>Provider: the provider class for managing knowledge and sync session </li></ul></ul><ul><ul><li>Metadata Store: the metadata is look like change log, you need to implement this in order to determine the changes between two sync period. </li></ul></ul><ul><ul><li>Metadata Item: an item in the metadata store </li></ul></ul><ul><ul><li>Data Source: the raw data source for syncing. </li></ul></ul><ul><ul><li>Knowledge: if you attempt to sync different data source </li></ul></ul><ul><ul><li>Your own sync controller class to handle conflicts, changes writing... </li></ul></ul>Page
  12. Windows Azure Platform Page
  13. SQL Services & MSF <ul><li>Database: Relational processing for structured/unstructured data </li></ul><ul><li>Data Sync: Synchronization for occasionally connected clients </li></ul><ul><li>Reporting: Self-service authoring and report sharing </li></ul><ul><li>Data Mining: Self-service data trending & analysis </li></ul><ul><li>ETL: Data transformation & cleansing across on/off premise </li></ul><ul><li>Reference Data: Broad variety of reference data sets </li></ul>Page
  14. Summary <ul><li>Microsoft Sync Framework is a platform for data synchronization solutions </li></ul><ul><ul><li>Includes out-of-box providers that can be configured to sync common endpoints </li></ul></ul><ul><ul><li>Support for building your own providers for your endpoint </li></ul></ul><ul><ul><li>Support for multiple development languages </li></ul></ul><ul><ul><ul><li>Managed Code: C#, Visual Basic.NET, … </li></ul></ul></ul><ul><ul><ul><li>Native/Unmanaged Code: C++… </li></ul></ul></ul><ul><li>Do you think that sync should be a hot technology in 2009 and future? </li></ul><ul><li>Question? </li></ul><ul><ul><li>[email_address] </li></ul></ul>Page
  15. References <ul><li>http://en.wikipedia.org/wiki/Microsoft_Sync_Framework </li></ul><ul><li>Microsoft Sync Framework Developer - http://msdn2.microsoft.com/en-us/sync/default.aspx </li></ul><ul><li>LiveMesh - https://www.mesh.com/Welcome/default.aspx </li></ul><ul><li>FeedSync - http://dev.live.com/feedsync/ </li></ul><ul><li>Google Gears - http://gears.google.com/ </li></ul><ul><li>http://code.msdn.microsoft.com/sync/ </li></ul><ul><li>Master-Master Replication - http://msdn.microsoft.com/en-us/library/ms978735.aspx </li></ul>Page

×