Patent ID: 7680838

Claim:
A computer-implemented method for receiving by a first application running on a first computing device a notification of data events that occur on a second computing device, the method comprising: subscribing by the first application running on the first computing device and by a second application running on the second computing device to a data event in a data file accessible by the first application and the second application, wherein in response to the subscribing, data subscription records for the first application and the second application are generated, wherein the data event comprises creation, deletion, or modification of a data object in the data file, wherein the data subscription records identify at least one of: the data object in the data file and an operation performed on the data object; wherein the data subscription records are stored in the data file, and wherein the data event can occur on the first computing device and the second computing device; when a data event occurs on the second computing device, determining whether the first and second applications are local or non-local to the data file; based on the determination that the second application is local, receiving by the second application on the second computing device a notification of the data event that occurred in the data file, wherein the notification includes an identification of a data object and data operation performed on the data object; and based on the determination that the first application is non-local, setting a data event recovery time stamp in the data subscription record of the first application to specify a time when the data event occurred; and when the first application accesses the data file, requesting by the first application a current version of the subscribed data objects on which a data operation occurred on the second computing device at or after the specified time, wherein the data operation comprises creation, deletion, or modification of a data object in the data file.