US 7,577,960 B2
System and method for managing cached objects using notifications bonds
David Cappers Steere, Bellevue, Wash. (US); Rohan Kumar, Redmond, Wash. (US); Yun Lin, Kirkland, Wash. (US); Danilo D'Amico Almeida, Woodinville, Wash. (US); and Shishir Purushottam Pardikar, Redmond, Wash. (US)
Assigned to Microsoft Corporation, Redmond, Wash. (US)
Filed on Jun. 19, 2003, as Appl. No. 10/600,787.
Prior Publication US 2004/0261082 A1, Dec. 23, 2004
Int. Cl. G06F 9/44 (2006.01); G06F 12/00 (2006.01)
U.S. Cl. 719—318  [707/201] 62 Claims
OG exemplary drawing
 
1. A computer-implemented method for a client to interact with a server, the computer-implemented method comprising:
creating a cached object from an original object, the original object being managed by the server; wherein the client interacts with a plurality of cached objects that are created on the client from objects managed by the server;
creating a bond manager on the server, the bond manager including:
a filter component configured to scan for incoming and outgoing events related to shared files from a file system manager of the server and forward the events to a service component; and
the service component configured to receive events from the filter component and establish notification bonds with the client, the service component maintaining a server bond table, wherein the server bond table includes a server identifier, a server aggregate bond number, and a notification log offset identifying a location within a notification log;
establishing a notification bond associated with the original object with the server, the notification bond enabling the client to obtain a notification from the bond manager on the server in response to an object related event associated with the original object; wherein the notification bond remains persistent through a reboot of the client and server and the object related event is associated with an edit of the original object, the notification bond established after determining the notification bond to be missing by comparing a client aggregate bond number with the server aggregate bond number; and wherein the original object is associated with a different notification bond from the objects that have established notification bonds; and
updating the cached object with a change to the original object after the change is made to the original object.