Presentation is loading. Please wait.

Presentation is loading. Please wait.

 Lev Novik Architect Microsoft Corporation TL30.

Similar presentations


Presentation on theme: " Lev Novik Architect Microsoft Corporation TL30."— Presentation transcript:

1  Lev Novik Architect Microsoft Corporation TL30

2

3 Service Thin Client Rich Client Rich Client Sync!

4 Service Sync! Client App Sync!

5

6

7 Live Mesh SmugMug Sync Store Syncable

8

9 Sync Provider Sync Application Sync Provider Sync Orchestrator Data Store changes

10

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!"

23

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

27

28

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

33

34 Summary

35

36 Please fill out your evaluation for this session at: This session will be available as a recording at: www.microsoftpdc.com

37

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.

39


Download ppt " Lev Novik Architect Microsoft Corporation TL30."

Similar presentations


Ads by Google