Download presentation
Presentation is loading. Please wait.
Published byAlivia Goldsborough Modified over 10 years ago
1
Lev Novik Architect Microsoft Corporation TL30
3
Service Thin Client Rich Client Rich Client Sync!
4
Service Sync! Client App Sync!
7
Live Mesh SmugMug Sync Store Syncable
9
Sync Provider Sync Application Sync Provider Sync Orchestrator Data Store changes
11
SyncOrchestrator orch = new SyncOrchestrator(); orch.LocalProvider = new FileSyncProvider(guid1, “c:\\temp\\myfolder”); orch.RemoteProvider = new LiveMeshProvider(guid2, new NetworkCreditial(username, password), “MyMeshFolder”); orch.Synchronize(); Not too hard!
12
Live Services Synchronizing Life Partnership Cloud LOE Client LOE App App Store ? Live Framework Provider Sync Framework App Sync Runtime Sync Provider
13
Live Services Synchronizing Life Partnership Cloud LOE Client LOE App App Store ? Sync Framework Web App Sync Runtime Browser Sync Provider Live Framework Provider
14
Writing Providers Responsibilties
15
Introducing Provider Framework The easiest way to write simple providers
16
How Provider Framework works Under the covers: Enumeration Sync Orchestrator Provider Framework with Runtime Simple Sync Provider Data Store Meta-data Store GetChangeBatch Enumerate all objects Here’s one: Id=‘foo’, LMT=5pm What was it last time? New Updated Same Update metadata Bring metadata up- to-date Enumerate changes Metadata is up-to-date! All done! What’s missing? Record deletes …
17
How Provider Framework works Under the covers: Applying changes Sync Orchestrator Provider Framework with Runtime Simple Sync Provider Data Store Meta-data Store Enumerate all objects Here’s one: Id=‘foo’, LMT=5pm What was it last time? New Updated Same Update metadata Bring metadata up- to-date Metadata is up-to-date! All done! What’s missing? Record deletes … ProcessChangeBatch Get versions Update item id=‘foo’ LMT was 1pm New data is ‘bar’ New LMT=8pm Check LMT and write Update metadata
18
Presenter Name Title Group
19
Provider Framework: Summary Easy!
20
Writing better providers
21
Filtering Support for column filtering Filter negotiation “Forgetting” and “remembering” items Performance improvements Conflicts Constraint conflict resolution Improved conflict logging support New capabilities in Sync Framework v2
22
Why Filter Objects Or "I don't want all of these!"
24
Why Filter Columns? Or "my device cannot store this property!" First: John Last: Doe Phone: 555-1212 Spouse: Jane First: John Last: Doe Phone: 555-1212 First: John Last: Doe Phone: 555-1212 Spouse: ??? Sync PC #1PC #2 Sync? Phone Spouse: Jane
25
Review: Change Units Granularity at minimal cost Contact First Name Last Name Street Address City Phone Number Area code item.Add(new ItemField(1, typeof(UInt32), name.Hash); item.Add(new ItemField(2, typeof(UInt32), address.Hash); item.Add(new ItemField(3, typeof(UInt32), phone.Hash); items.Add(item);
26
Provider responsibilities Implement ISupportFilteredSync to indicate ability to project Implement IRequestFilteredSync to indicate desire to project Enumerate according to the filter Sync Framework takes care of Recording correct knowledge Not re-sending the same changes, but yes getting the remaining ones! A glimpse into some of the tricky bits Deleting a partial object: is it a conflict? Using Column Filtering
29
Contact IDGuid1 CreationA15 UpdateA15 NameJohn Doe Phone555- 6789 Machine AMachine B Contact IDGuid2 CreationB10 UpdateB10 NameJohn Doe Phone555- 1234 Contact IDGuid1 CreationA15 UpdateA15 NameJohn Doe Phone555- 6789 ProcessChangeBatch Conflict Resolution None Keep Both Merge John A Doe B25 Contact IDGuid2 CreationB10 UpdateB25 NameJohn A Doe Phone555- 1234
30
Contact IDGuid1 CreationA15 UpdateA15 NameJohn Doe Phone555- 6789 Machine AMachine B Contact IDGuid2 CreationB10 UpdateB10 NameJohn Doe Phone555- 1234 Contact IDGuid1 CreationA15 UpdateA15 NameJohn Doe Phone555- 6789 ProcessChangeBatch Conflict Resolution Keep Both Merge B25 555- 6789 Tombstone IDGuid1 CreationA15 DeletionB27 None
31
Contact IDGuid1 CreationA15 UpdateA15 NameJohn Doe Phone555- 6789 Machine AMachine B Contact IDGuid2 CreationB10 UpdateB10 NameJohn Doe Phone555- 6789 ProcessChangeBatch B25 Tombstone IDGuid1 CreationA15 DeletionB27 Contact IDGuid2 CreationB10 UpdateB25 NameJohn Doe Phone555- 6789 Tombstone IDGuid1 CreationA15 DeletionB27
32
Presenter Name Title Group
34
Summary
36
Please fill out your evaluation for this session at: This session will be available as a recording at: www.microsoftpdc.com
38
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.