views:

103

answers:

1

Hello,

I'm trying to use Sync Framework to synchronize user data between Active Directory and an application that provides a web service. I've created two FullEnumerationSimpleSyncProvider classes, one for Active Directory and one for the web service, and created a common data type and metadata columns that can be shared by both. Currently, they are both capable of maintaining their own ReplicaId and Metadata stores.

The problem I'm running into is that I don't know how to match a result from one provider to another because they don't have matching Id information in their separate data stores, and most all of the fields that could be used to match one record to another are potential candidates for needing synchronized and can't be relied upon 100% for providing identity (i.e. username, email, etc).

Is there a mechanism in Sync Framework that I can use to do some sort of fuzzy matching to tell the framework how to match rows from one provider to another since I don't have a definite IdentityRule that I can create to match on both? Is there something I'm missing?

Thanks, Marc

A: 

This is not an answer per-se, its more of a call to action.

I have been looking into Microsoft Sync Framework for about two months now. I have many sync scenarios that sound similar to yours. I am actually quite confident that everyone reading this post will have dozens of examples similar to what is described here.

I have come to the conclusion a while ago that this problem domain needs to be abstracted and then we can build a framework to handle some of the recurring themes. I was really excited when I found Sync Framework because I thought it was exactly that type of abstraction. However after researching it, and implementing i a few times I have to conclude that it is not what we are looking for.

We need a Heterogeneous Sync Framework. A Framework to sync unrelated (but naturally relatable) Data Sources.

The Microsoft Sync Framework deal too much with the relationship and change tracking. It assumes that you are starting with matching data, and then that it changes over time.

We need a Sync Framework that assumes that we have conflicting data at every step, and we have no idea how it got that way. Because the data is coming from two sources that couldn't give a darn about each other.

Enough ranting for now. If anyone knows of such a framework, or wants to start working on such a framework with me (it would need to be much less complicated than Microsoft's solution), or knows how SyncFX can gracefully handle these scenarios. Please contact me http://myazurejourney.blogspot.com/

Thank you

Rabbi