locked
Synchronization using Web Services RRS feed

  • Question

  • Hello,

     

    I have an client/server application based on a server and two different types of clients (local and roaming). The server only exposes web services. Is there a way I can use Microsoft Sync Framework to provide disconnected access to the web services. I have found some articles/examples about web services, but none is using web services as a datasource, only databases.

     

    Is there a solution for my architecture ? And how if possible ?

     

    Thank you.

    • Moved by Max Wang_1983 Thursday, April 21, 2011 12:39 AM forum consolidation (From:SyncFx - Technical Discussion [ReadOnly])
    Friday, February 29, 2008 1:15 PM

Answers

  • Indeed there is!

     

    We call this special architecture a partial participation architecture, where one endpoint can run the Microsoft Sync Framework and the other, can simply act as a data store, agreeing to store and allow for the getting/setting of the Sync Knowledge by other endpoints. (Think of this as the USB Key drive scenario – where PCs are smart enough to sync the removable drive by doing the heavy lifting and keeping the metadata on the drive up to date to allow multi-master sync)

     

    What you’d end up doing is having a provider to the web service on the PC that builds up what’s in the remote endpoint. (track changes on behalf of the web service, deletions, etc by effectively utilizing whatever the remote web service offers – for instance, if the service exposes anchors (time stamps, tick counts, etc) – use it to boost the perf of change enumeration. If it doesn’t and just had CRUD APIs, leverage those for a full-enumeration type of provider.

     

    I’m actually getting a lot of questions on this architecture by ISVs and OEMs who’re integrating sync into their service for content flow so I’ll write up a white paper on how to do this, with sample code…

     

    Sound good?

    -Moe

     

     

    Friday, February 29, 2008 4:36 PM

All replies

  • Indeed there is!

     

    We call this special architecture a partial participation architecture, where one endpoint can run the Microsoft Sync Framework and the other, can simply act as a data store, agreeing to store and allow for the getting/setting of the Sync Knowledge by other endpoints. (Think of this as the USB Key drive scenario – where PCs are smart enough to sync the removable drive by doing the heavy lifting and keeping the metadata on the drive up to date to allow multi-master sync)

     

    What you’d end up doing is having a provider to the web service on the PC that builds up what’s in the remote endpoint. (track changes on behalf of the web service, deletions, etc by effectively utilizing whatever the remote web service offers – for instance, if the service exposes anchors (time stamps, tick counts, etc) – use it to boost the perf of change enumeration. If it doesn’t and just had CRUD APIs, leverage those for a full-enumeration type of provider.

     

    I’m actually getting a lot of questions on this architecture by ISVs and OEMs who’re integrating sync into their service for content flow so I’ll write up a white paper on how to do this, with sample code…

     

    Sound good?

    -Moe

     

     

    Friday, February 29, 2008 4:36 PM
  • Indeed !

     

    I have to admit that right now, everything is not very clear in my head, but now I know that it is possible. I guess I will just wait for your paper. After all, the project is at an early stage, I can afford to wait a little. Smile

     

    Do you have an estimated date for the paper you are writing ?

    Thank you very much.

     

    PS : Sorry for my english, it is not my native language. :/

    Friday, February 29, 2008 4:44 PM
  • Hi Moe,

     

    I was wondering if you had a chance to put anything together for the scenario you describe above. 

     

    In particular, we have is a scenario where there are two development teams working together.  A .NET Smart Client team and a Java web services team.  We have buy in from the Java team to propose an API suitable for consumption by the Smart Client application in order to leverage bi-directional data synchronization.  Of course, we'd have to develop a custom proxy on the .NET side but I’m also wondering if you have a primer on what the server side API should look like.

     

    Thanks -

     

    Monday, March 10, 2008 9:28 PM
  • I have the same scenario , can your post me some link or tutorial?

    Thanks

     

    Thursday, April 17, 2008 9:01 AM
  • I have a client db and a remote db and i would syncronize it.
    The remote db is under webservice for security reason and in the project i can't expose the host of the db at the word and so at the sync framework.
    What is the logic behind the webservice' s database sincronization in sync framework?
    I suppose that i have some object in the webservice 's logic and expose these at the sync framework then sincronyze and after update the db.
    I think that in this logic is better if i use a orm simil linq or nhibernate because i have the object's(entities) ready for then sicronyze.
    Whith a orm i have the entities ready for the sync.. in the client and in the webservice,but how the webservice expose the entities at the sync framework.
    Is possible?
    Thanks.
    Thursday, April 17, 2008 7:37 PM
  • Hey Moe,
    I am desparatly lookin for the answer or a white paper with samle code.
    In my scenario i have MS CRM 3.0 Server located at my office which exposes web services to communicate. and i have website hosted externally with Sql Server 2008.
    I need to sync both sides. Web Service <--> Sql Server 2008

    I hope to get reply soon.

    Best Regards :)
    Wednesday, September 16, 2009 12:06 PM