Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system
First Claim
1. A method for synchronizing a plurality of instances of a storage platform for a hardware/software interface system, said method comprising:
- storing, at a first electronic computer system, a first relational database, the first relational database comprising a local version of an item, a first folder item, and a first relationship declaration, the first relationship declaration specifying that the local version of the item belongs to the first folder item, the local version of the item comprising a set of elements, the local version of the item comprising a change unit, the change unit including at least one element in the set of elements, the local version of the item comprising a first version number, the local version of the item conforming to a local format, the first folder item mapped to a community folder, the community folder being an abstraction that represents a shared folder with which each of the instances of the storage platform synchronizes;
executing a first storage platform instance at the first electronic computer system, the first storage platform instance being one of the instances of the storage platform, the first storage platform instance providing a storage platform application programming interface (API), the storage platform API comprising methods that, when invoked by an application, perform operations on the first relational database;
monotonically increasing, at the first electronic computer system, the first version number whenever a value of an element in the change unit of the local version of the item changes;
receiving, at the first electronic computer system, a remote version of the item from a second electronic computer system, the second electronic computer system storing a second relational database, the second relational database being a replica of the first relational database, the second relational database comprising a second folder item, the remote version of the item, and a second relationship declaration, the second relationship declaration specifying that the remote version of the item belongs to the second folder item, the second folder item mapped to the community folder, the remote version of the item comprising the set of elements, the remote version of the item comprising the change unit, the remote version of the item comprising a second version number, the second electronic computer system configured to monotonically increase the second version number whenever an element of the change unit of the remote version of the item changes;
when the second version number is newer than the first version number;
converting, by the first electronic computer system, the remote version of the item from a format of the community folder to the local format; and
after converting the remote version of the item, replacing, by the first electronic computer system, values of elements in the change unit of the local version of the item with values of elements in the change unit of the remote version of the item,wherein said multiple instances of said storage platform comprise a multi-master sync community.
2 Assignments
0 Petitions
Accused Products
Abstract
Several embodiments of the present invention comprise a storage platform that provides a synchronization service that (i) allows multiple instances of the storage platform (each with its own data store) to synchronize parts of their content according to a flexible set of rules, and (ii) provides an infrastructure for third parties to synchronize the data store of the storage platform of the present invention with with other data sources that implement proprietary protocols. In various embodiments, storage-platform-to-storage-platform synchronization occurs among a group of participating “replicas.” For example, it may be desirable to provide synchronization between the data store of the storage platform with another remote data store under the control of another instance of the storage platform, perhaps running on a different computer system.
-
Citations
16 Claims
-
1. A method for synchronizing a plurality of instances of a storage platform for a hardware/software interface system, said method comprising:
-
storing, at a first electronic computer system, a first relational database, the first relational database comprising a local version of an item, a first folder item, and a first relationship declaration, the first relationship declaration specifying that the local version of the item belongs to the first folder item, the local version of the item comprising a set of elements, the local version of the item comprising a change unit, the change unit including at least one element in the set of elements, the local version of the item comprising a first version number, the local version of the item conforming to a local format, the first folder item mapped to a community folder, the community folder being an abstraction that represents a shared folder with which each of the instances of the storage platform synchronizes; executing a first storage platform instance at the first electronic computer system, the first storage platform instance being one of the instances of the storage platform, the first storage platform instance providing a storage platform application programming interface (API), the storage platform API comprising methods that, when invoked by an application, perform operations on the first relational database; monotonically increasing, at the first electronic computer system, the first version number whenever a value of an element in the change unit of the local version of the item changes; receiving, at the first electronic computer system, a remote version of the item from a second electronic computer system, the second electronic computer system storing a second relational database, the second relational database being a replica of the first relational database, the second relational database comprising a second folder item, the remote version of the item, and a second relationship declaration, the second relationship declaration specifying that the remote version of the item belongs to the second folder item, the second folder item mapped to the community folder, the remote version of the item comprising the set of elements, the remote version of the item comprising the change unit, the remote version of the item comprising a second version number, the second electronic computer system configured to monotonically increase the second version number whenever an element of the change unit of the remote version of the item changes; when the second version number is newer than the first version number; converting, by the first electronic computer system, the remote version of the item from a format of the community folder to the local format; and after converting the remote version of the item, replacing, by the first electronic computer system, values of elements in the change unit of the local version of the item with values of elements in the change unit of the remote version of the item, wherein said multiple instances of said storage platform comprise a multi-master sync community. - View Dependent Claims (2, 3, 4, 5)
-
-
6. An electronic computing system for synchronizing a plurality of instances of a storage platform for a hardware/software interface system, said electronic computing system comprising:
-
a system memory storing; program code; and a first relational database, the first relational database comprising a local version of an item, a first folder item, and a first relationship declaration, the first relationship declaration specifying that the local version of the item belongs to the first folder item, the local version of the item comprising a set of elements, the local version of the item comprising a change unit, the change unit including at least one element in the set of elements, the local version of the item comprising a first version number, the local version of the item conforming to a local format, the first folder item mapped to a community folder, the community folder being an abstraction that represents a shared folder with which each of the instances of the storage platform synchronizes; a processing unit that executes the program code, the program code, when executed by the processing unit, causes the electronic computing system to; monotonically increase the first version number whenever a value of an element in the change unit of the local version of the item changes; receive a remote version of the item from a second electronic computer system, the second electronic computer system storing a second relational database, the second relational database being a replica of the first relational database, the second relational database comprising a second folder item, the remote version of the item, and a second relationship declaration, the second relationship declaration specifying that the remote version of the item belongs to the second folder item, the second folder item mapped to the community folder, the remote version of the item comprising the set of elements, the remote version of the item comprising the change unit, the remote version of the item comprising a second version number, the second electronic computer system configured to monotonically increase the second version number whenever an element of the change unit of the remote version of the item changes; when the second version number is newer than first version number; convert the remote version of the item from a format of the community folder to the local format; and after converting the remote version of the item, replace values of elements in the change unit of the local version of the item with values of the elements in the change unit of the remote version of the item, wherein said multiple instances of said storage platform comprise a multi-master sync community. - View Dependent Claims (7, 8, 9, 10, 11)
-
-
12. A non-signal computer-readable storage medium providing physical storage of computer readable instructions for synchronizing multiple instances of a storage platform for a hardware/software interface system, said computer-readable instructions, when executed by a processor of an electronic computing system, cause the electronic computer system to:
-
store a first relational database, the first relational database comprising a plurality of items and a plurality of relationship declarations, the plurality of items comprising a local version of a first item, a first folder item, and a second folder item; the local version of the first item having a plurality of elements, the plurality of elements comprising a first version number, the local version of the first item comprising a change unit, the change unit including at least one element in the plurality of elements; the local version of the first item conforming to a local format; the plurality of relationship declarations comprising a first relationship declaration and a second relationship declaration, the first relationship declaration specifying that the local version of the first item belongs to the first folder item, the second relationship declaration specifying that the local version of the first item belongs to the second folder item; and an Extensible Markup Language (XML) configuration file that maps the first folder item to a community folder, the community folder being an abstraction that represents a shared folder with which each of the instances of the storage platform synchronizes; execute an application program; execute a first storage platform instance, the first storage platform instance being one of the instances of the storage platform, the first storage platform instance providing a storage platform application programming interface (API), the storage platform API comprising an update method that, when invoked by the application program changes a value of an element of the local version of the item; monotonically increase the first version number whenever a value of an element in the change unit of the local version of the item changes; receive a remote version of the item from a second electronic computer system, the second electronic computer system storing a second relational database, the second relational database being a replica of the first relational database, the second electronic computer system executing a second storage platform instance, the second storage platform instance being on the instances of the storage platform, the second relational database comprising a third folder item, a remote version of the first item, and a third relationship declaration, the third relationship declaration specifying that the remote version of the first item belongs to the third folder item, the third folder item mapped to the community folder, the remote version of the first item comprising a second version number, the second electronic computer system configured to monotonically increase the second version number whenever a value of an element in the change unit of the remote version of the first item changes; when the second version identifier is newer than first version identifier; convert the remote version of the first item from a format of the community folder to the local format; and after converting the remote version of the first item, replace values of elements in the change unit of the local version of the first item with values of the elements in the change unit of the remote version of the first item, wherein said multiple instances of said storage platform comprise a multi-master sync community. - View Dependent Claims (13, 14, 15, 16)
-
Specification