Declarative synchronization of shared data
First Claim
1. A method comprising:
- receiving one or more changes, by one or more computing devices, to a copy of data maintained by a computer program being one of a plurality of computer programs having respective local copies of the data;
marking an object graph, by the one or more computing devices, as a first buffering of the changes at the computer program to indicate which of one or more data objects correspond to the changes such that the changes are unavailable for being committed to the plurality of computer programs, wherein individual data objects represent a runtime version of specific data and implement specified synchronization behavior for the runtime version of the specific data that the individual data object represents, the synchronization behavior being implemented by compiled code, included in the data object, that represents the synchronization behavior that is to occur on the occurrence of an event, the event including a change of focus of a user interface element;
initiating synchronization of the changes after marking the object graph, by the one or more computing devices, with one or more of the plurality of computer programs having the respective local copies in response to the event occurring, the initiating synchronization of the changes comprising a second buffering of the changes at the computer program such that the changes are available for being committed to the plurality of computer programs, the event causing synchronization of the one or more changes to be postponed until an associated node defined as a master is changed.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatus, including computer systems and program products, related to declarative synchronization of shared data. One method includes receiving one or more changes to data maintained by one of multiple computer programs having respective local copies of the data, identifying an event characterizing synchronization of the data maintained by the computer program with the other computer programs (e.g., with a local copy managed by the other computer program), and initiating synchronization of the changes with one of the other programs having respective local copies (e.g., with the local copy managed by the other program) in response to the event occurring. The event can be characterized by an annotation. Identifying an event can include reading a property of a data object (e.g., in a data object graph of shared data).
30 Citations
20 Claims
-
1. A method comprising:
-
receiving one or more changes, by one or more computing devices, to a copy of data maintained by a computer program being one of a plurality of computer programs having respective local copies of the data; marking an object graph, by the one or more computing devices, as a first buffering of the changes at the computer program to indicate which of one or more data objects correspond to the changes such that the changes are unavailable for being committed to the plurality of computer programs, wherein individual data objects represent a runtime version of specific data and implement specified synchronization behavior for the runtime version of the specific data that the individual data object represents, the synchronization behavior being implemented by compiled code, included in the data object, that represents the synchronization behavior that is to occur on the occurrence of an event, the event including a change of focus of a user interface element; initiating synchronization of the changes after marking the object graph, by the one or more computing devices, with one or more of the plurality of computer programs having the respective local copies in response to the event occurring, the initiating synchronization of the changes comprising a second buffering of the changes at the computer program such that the changes are available for being committed to the plurality of computer programs, the event causing synchronization of the one or more changes to be postponed until an associated node defined as a master is changed. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A system comprising:
one or more computing devices configured to perform operations comprising; receiving one or more changes to a copy of data maintained by a computer program being one of a plurality of computer programs having respective local copies of the data; marking an object graph as a first buffering of the changes at the computer program to indicate which of one or more data objects correspond to the changes such that the changes are unavailable for being committed to the plurality of computer programs, wherein individual data objects represent a runtime version of specific data and implement specified synchronization behavior for the runtime version of the specific data that the individual data object represents, the synchronization behavior being implemented by compiled code, included in the data object, that represents the synchronization behavior that is to occur on the occurrence of an event, the event including a change of focus of a user interface element; initiating synchronization of the changes after the marking of the object graph with one or more of the plurality of computer programs having the respective local copies in response to an event occurring as specified in a data object, the initiating synchronization of the changes comprising a second buffering of the changes at the computer program such that the changes are available for being committed to the plurality of computer programs, the event causing synchronization of the one or more changes to be postponed until an associated node defined as a master is changed. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
19. A machine-readable device, tangibly embodying a computer program product configured to cause a data processing apparatus to perform operations comprising:
-
receiving one or more changes to a copy of data maintained by a computer program being one of a plurality of computer programs having respective local copies of the data; marking an object graph as a first buffering of the changes at the computer program to indicate which of one or more data objects correspond to the changes such that the changes are unavailable for being committed to the plurality of computer programs, wherein individual data objects represent a runtime version of specific data and implement specified synchronization behavior for the runtime version of the specific data that the individual data object represents, the synchronization behavior being implemented by compiled code, included in the data object, that represents the synchronization behavior that is to occur on the occurrence of an event, the event including a change of focus of a user interface element; initiating synchronization of the changes after the marking of the object graph with one or more of the plurality of computer programs having the respective local copies in response to the event occurring, the initiating synchronization of the changes comprising a second buffering of the changes at the computer program such that the changes are available for being committed to the plurality of computer programs, the event causing synchronization of the one or more changes to be postponed until an associated node defined as a master is changed. - View Dependent Claims (20)
-
Specification