Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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,117 views

Published on

Introduce the Microsoft Sync Framework, my presentation at Barcamp Saigon

Published in: Technology
  • Hi there! Get Your Professional Job-Winning Resume Here - Check our website! http://bit.ly/resumpro
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

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

×