Universal synchronization
First Claim
1. A method for synchronizing data, comprising the steps of:
- transmitting a set of one or more changes from a hub to a spoke for synchronization to a data structure on said spoke, said set of one or more changes represent changes to a data structure on said hub, said step of transmitting a set of one or more changes includes accessing a log entry for a particular change and transmitting said particular change to said spoke if said log entry for said particular change does not indicate an association with said spoke; and
updating said data structure on said spoke based on said set of one or more changes.
1 Assignment
0 Petitions
Accused Products
Abstract
A technology for bi-directional synchronization between at least two entities. Examples of entities include databases, operating system files, applications, email, etc. The two entities can communicate using any appropriate protocol and the two entities can be provided by different vendors using different designs. The synchronization technology includes an Application Programming Interface that enables developers to provide synchronization functionality as an integral part of their distributed applications. Additionally, conflict resolution during synchronization can be customized to suit the particular application. The synchronization technology allows for the management of data anywhere and enables developers to distribute application data and code across multiple tiered environments to applications and users located anywhere.
166 Citations
55 Claims
-
1. A method for synchronizing data, comprising the steps of:
-
transmitting a set of one or more changes from a hub to a spoke for synchronization to a data structure on said spoke, said set of one or more changes represent changes to a data structure on said hub, said step of transmitting a set of one or more changes includes accessing a log entry for a particular change and transmitting said particular change to said spoke if said log entry for said particular change does not indicate an association with said spoke; and
updating said data structure on said spoke based on said set of one or more changes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method for synchronizing data, comprising the steps of:
-
accessing a new transaction for a data structure on a hub for synchronization to a data structure on a first spoke;
rejecting said new transaction for synchronization to said data structure on said first spoke if said new transaction originated from said first spoke and said new transaction was not based on conflict resolution; and
transmitting said new transaction to said first spoke if said new transaction did not originate from said first spoke or if said new transaction did originate from said first spoke but was based on conflict resolution. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A system for synchronizing data, comprising:
-
a database reader system, said database reader system is programmable to read from any one of a plurality of different proprietary databases;
a database writer system, said database writer system is programmable to write to any one of said plurality of different proprietary databases; and
a communication system in communication with said database reader system, said database writer system and a remote system, said communication system is programmable to communicate with said remote system using any one of a plurality of different communication protocols. - View Dependent Claims (22, 23, 24, 25, 26, 27)
-
-
28. An apparatus for synchronizing data, comprising the steps of:
-
means for reading a database, said means for reading a database is programmable to read from any one of a plurality of different proprietary databases;
means for writing to a database, said means for writing to a database is programmable to write to any one of said plurality of different proprietary databases; and
means for communicating, said means for communicating is programmable to communicate with a remote system using any one of a plurality of different communication protocols. - View Dependent Claims (29)
-
-
30. One or more processor readable storage devices having processor readable code embodied on said processor readable storage devices, said processor readable code for programming one or more processors, said processor readable code comprises:
-
first code, said first code reads a database and can be adapted to read from any one of a plurality of different proprietary databases;
second code, said second code writes to a database and can be adapted to write to any one of said plurality of different proprietary databases; and
third code, said third code communicates with a remote system using any one of a plurality of different communication protocols, said third code can communicate with said first code and said second code. - View Dependent Claims (31, 32, 33)
-
-
34. One or more processor readable storage devices having processor readable code embodied on said processor readable storage devices, said processor readable code for programming one or more processors to perform a method comprising the steps of:
-
accessing a change to a data structure on a hub;
accessing a log entry for said change; and
transmitting said change to a spoke for synchronization with a data structure on said spoke if said log entry for said change does not indicate an association with said spoke. - View Dependent Claims (35, 36, 37, 38)
-
-
39. An apparatus, comprising:
-
a communication interface;
one or more storage devices; and
one or more processors in communication with said one or more storage devices and said communication interface, said one or more processors programmed to perform a method comprising the steps of;
accessing a change to a data structure on a hub, accessing a log entry for said change, and transmitting said change to a spoke for synchronization with a data structure on said spoke if said log entry for said change does not indicate an association with said spoke. - View Dependent Claims (40, 41, 42, 43)
-
-
44. One or more processor readable storage devices having processor readable code embodied on said processor readable storage devices, said processor readable code for programming one or more processors to perform a method comprising the steps of:
-
accessing a new transaction for a data structure on a hub for synchronization to a data structure on a first spoke;
rejecting said new transaction for synchronization to said data structure on said first spoke if said new transaction originated from said first spoke and said new transaction was not based on conflict resolution; and
transmitting said new transaction to said first spoke if said new transaction did not originate from said first spoke or if said new transaction did originate from said first spoke but was based on conflict resolution. - View Dependent Claims (45, 46, 47, 48, 49)
-
-
50. An apparatus, comprising:
-
a communication interface;
one or more storage devices; and
one or more processors in communication with said one or more storage devices and said communication interface, said one or more processors programmed to perform a method comprising the steps of;
accessing a new transaction for a data structure on a hub for synchronization to a data structure on a first spoke, rejecting said new transaction for synchronization to said data structure on said first spoke if said new transaction originated from said first spoke and said new transaction was not based on conflict resolution, and transmitting said new transaction to said first spoke if said new transaction did not originate from said first spoke or if said new transaction did originate from said first spoke but was based on conflict resolution. - View Dependent Claims (51, 52, 53, 54, 55)
-
Specification