Previous Page Arrow Next Page Arrow

7.1 Implementing Synchronization Engine

Engine DLL

The engine can be implemented as a DLL with a very simple API.

Here is a possible C#/pseudo code implementation:

public class SynchronizationEngine
{
  public Uri SourceEndpoint { get; set; }
  public Uri TargetEndpoint { get; set; }
  public Uri[] DiagUris { get; set; }

  public void RunPass()
  {
    // GET digest from TargetEndpoint/$syncDigest
    // POST digest to SourceEndpoint/$syncSource and get delta feed in response 
    // POST delta feed to TargetEndpoint/$syncTarget and get result feed in response
    // POST response to all DiagUris
  }
}

As this pseudo code demonstrates, the engine DLL will be a very simple component with a very small footprint. It should be easy for us to provide implementations for different execution environments (NET, Java, COM, Javascript).

Using the Engine DLL

Here is a typical C# method that instantiates the engine to run a synchronization pass:

public void RunSynchronizationEngine()
{
  var engine = new SynchronizationEngine();
  engine.SourceEndpoint = new Uri("http://www.example.com/sdata/app1/test/-/accounts");
  engine.TargetEndpoint = new Uri("http://www.example.com/sdata/app2/test/-/accounts");
  engine.DiagUris = new Uri[]
    { new Uri("http://www.example.com/sdata/eventManager/test/-/diagnoses") };
  engine.RunPass();
}

Previous Page Arrow Next Page Arrow