×

Synchronization framework for occasionally connected applications

  • US 7,899,917 B2
  • Filed: 02/01/2007
  • Issued: 03/01/2011
  • Est. Priority Date: 02/01/2007
  • Status: Expired due to Fees
First Claim
Patent Images

1. A synchronization framework, the synchronization framework including:

  • a server computer system; and

    a client computer system;

    wherein the server computer system includes;

    a server data store; and

    a processor for executing computer-executable instructions representing a sever sync adapter and a server sync provider, wherein the server sync adapter is configured to;

    receive requests from client sync providers to communicate data changes from occasionally connected applications to the server data store the requests including synchronization metadata including a last received synchronization anchor, the last received synchronization anchor generated at and received from the server computer system for a prior synchronization, the last received synchronization anchor indicative of a client synchronization state, the client synchronization state including enumerated changes to a client side version of a set of data groups that have occurred on the client computer system since the prior synchronization, the last received synchronization anchors transmitted in accordance with an extensible sync anchor model, the sync anchor model providing a protocol that carries an anchor type for the last received synchronization anchor between a client computer system and the server computer system; and

    send instructions back to client sync providers, the instructions indicating how to connect to the server data store, the instructions identifying that the server sync provider has been designated to interact with the server sync adapter to communicate data changes to the server data store;

    communicate data changes received from occasionally connected applications through the server synch provider to the server data store;

    generate a new synchronization anchor for the client sync providers, the new synchronization anchors comprising a temporal watermark; and

    the server computer system transmitting the new synchronization anchors to the client sync providers, the new synchronization anchors transmitted in accordance with the extensible sync anchor model, the sync anchor model providing a protocol that carries an anchor type for the new synchronization anchors between the server computer system and the client sync providers; and

    wherein the client computer system includes;

    a client data store; and

    a processor for executing computer-executable instructions representing an occasionally connected application, client sync provider and a client sync agent, wherein the client sync provider is configured to;

    send a request to connect to the server data store to communicate data changes between the client data store and the server data store, the request including synchronization metadata including a last received synchronization anchor, the last received synchronization anchor generated at and received from the server computer system for a prior synchronization, the last received synchronization anchor indicative of a client synchronization state, the client synchronization state including enumerated changes to a client side version of a set of data groups that have occurred on the client computer system since the prior synchronization, the last received synchronization anchor transmitted in accordance with the extensible sync anchor model, the sync anchor model providing a protocol that carries an anchor type for the last received synchronization anchor between the client computer system and the server;

    receive a new synchronization anchor from the server computer system, the new synchronization anchor generated by the server computer system, the new synchronization anchor transmitted in accordance with the extensible sync anchor model, the sync anchor model providing a protocol that carries an anchor type for the new synchronization anchor between the server and the client computer system; and

    maintain the new synchronization anchor for use in subsequent synchronizations;

    wherein the client sync agent is configured to;

    accept requests from the client side sync provider;

    receive instructions from the server sync adapter indicating how to connect to the server data store, the instructions identifying that the server sync provider has been designated to interact with the server sync adapter to communicate the data changes to the server data store; and

    connect to the server sync provider; and

    wherein the server sync provider and the client sync agent are further configured to interoperate to;

    orchestrate synchronization of data changes between the client data store and the server data store, synchronization including transporting the data changes in the data store agnostic format from the client sync agent to the server sync agent in accordance with a transport agnostic protocol.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×