US6560655B1ExpiredUtility

Synchronization manager for standardized synchronization of separate programs

88
Assignee: MICROSOFT CORPPriority: Jun 22, 1999Filed: Jun 22, 1999Granted: May 6, 2003
Est. expiryJun 22, 2019(expired)· nominal 20-yr term from priority
H04L 69/329H04L 67/10
88
PatentIndex Score
217
Cited by
8
References
50
Claims

Abstract

A centralized manager for managing the data synchronization operations for multiple applications according to user preferences. Applications register respective COM handlers with the synchronization manager via COM methods. On a synchronize event the synchronization manager queues the registered application handlers, and calls the handlers to perform the synchronization of items therein. Progress and results are communicated to a user-viewable dialog via callbacks from the handlers to the synchronization manager. The synchronization manager provides consistent user interfaces for obtaining user preferences related to synchronization and for presenting information to the user, thus resulting in a consistent user experience.

Claims

exact text as granted — not AI-modified
What is claimed is:  
     
       1. A system for managing the synchronization of data, comprising, a centralized management component, a plurality of synchronization handlers registered with the centralized management component, each synchronization handler corresponding to a separate program having data maintained at different locations, the management component receiving a synchronization event, and in response thereto loading at least one of the synchronization handlers, each loaded synchronization handler called by the centralized management component to synchronize the data of its corresponding program. 
     
     
       2. The system of  claim 1  wherein each synchronization handler includes software object interfaces to methods therein, and the centralized management component calls at least one methods of each loaded synchronization handler via the software object interfaces. 
     
     
       3. The system of  claim 1  wherein the centralized management component includes at least one dialog for interfacing with the user. 
     
     
       4. The system of  claim 3  wherein at least one dialog comprises a settings dialog for obtaining user preference information. 
     
     
       5. The system of  claim 3  wherein at least one dialog comprises a progress dialog for displaying synchronization information to the user. 
     
     
       6. The system of  claim 5  wherein the progress dialog obtains information from the synchronization handler for displaying to the user. 
     
     
       7. The system of  claim 3  wherein the synchronization event is manually generated by the user, and wherein at least one dialog comprises a choice dialog for obtaining user input. 
     
     
       8. The system of  claim 6  wherein the choice enables the user selection of items related to an application. 
     
     
       9. The system of  claim 1  wherein the centralized management component creates an event object in response to the event. 
     
     
       10. The system of  claim 1  wherein the centralized management component creates a job information object to maintain information about the event. 
     
     
       11. The system of  claim 1  wherein the centralized management queues a plurality of synchronization handlers. 
     
     
       12. The system of  claim 1  wherein the event is automatically generated by a system component. 
     
     
       13. The system of  claim 1  wherein the event is automatically generated at a logon. 
     
     
       14. The system of  claim 1  wherein the event is automatically generated at a logoff. 
     
     
       15. The system of  claim 1  wherein the event is automatically generated at a machine idle time. 
     
     
       16. The system of  claim 1  further comprising a scheduling service for generating the event. 
     
     
       17. The system of  claim 1  wherein the data maintained at different locations for a program having a corresponding synchronization handler loaded therefor is maintained on a local machine and a network machine, and further comprising a connection object for administering a connection to the network machine. 
     
     
       18. The system of  claim 1  further comprising a notification mechanism for providing the synchronization event, and an interprocess communication mechanism for communicating between the management component and the notification mechanism. 
     
     
       19. The system of  claim 1  further comprising an interprocess communication mechanism for communicating between the management component and the synchronization handler. 
     
     
       20. The system of  claim 19  wherein the interprocess communication mechanism includes COM. 
     
     
       21. The system of  claim 19  wherein the interprocess communication mechanism includes local procedure call. 
     
     
       22. The system of  claim 19  wherein the interprocess communication mechanism includes lightweight remote procedure call. 
     
     
       23. The system of  claim 19  wherein the interprocess communication mechanism includes Sockets. 
     
     
       24. The system of  claim 19  wherein the interprocess communication mechanism includes Windows messages. 
     
     
       25. The system of  claim 19  wherein the interprocess communication mechanism includes Shared Memory. 
     
     
       26. The system of  claim 1  wherein each synchronization handler is loaded and called by the centralized management component independent of whether the program to which the synchronization handler corresponds is running. 
     
     
       27. A computer-readable medium having computer-executable instructions for performing steps comprising: 
       receiving a synchronization event at a central synchronization service;  
       obtaining user preference information related to the synchronization event;  
       loading at least one synchronization handler, each synchronization handler corresponding to a separate application or component that has data capable of being synchronized; and  
       directing from the central service each loaded synchronization handler to synchronize data based on the user preference information in response to the synchronization event.  
     
     
       28. The computer-readable medium of  claim 27  having further computer-executable instructions for performing the step of providing a dialog for obtaining user input. 
     
     
       29. The computer-readable medium of  claim 27  having further computer-executable instructions for performing the step of providing a dialog for displaying information to a user. 
     
     
       30. The computer-readable medium of  claim 27  having further computer-executable instructions for performing the step of triggering the event. 
     
     
       31. The computer-readable medium of  claim 27  wherein the step of obtaining user preference information includes the step of providing a dialog to a user. 
     
     
       32. The computer-readable medium of  claim 27  wherein the step of obtaining user preference information includes the step of accessing stored information. 
     
     
       33. The computer-readable medium of  claim 27  having further computer-executable instructions for performing the step of determining that a network is connected. 
     
     
       34. The computer-readable medium of  claim 27  wherein the step of loading at least one synchronization handler includes the step of loading a plurality of handlers registered with the synchronization service. 
     
     
       35. The computer-readable medium of  claim 27  wherein the step of directing each loaded synchronization handler includes the step of calling at least one interface of the synchronization handler. 
     
     
       36. The computer-readable medium of  claim 35  wherein the step of calling at least one interface of the synchronization handler includes the steps of calling an interface to prepare for synchronization and calling an interface to perform the synchronization. 
     
     
       37. The computer-readable medium of  claim 27  having further computer-executable instructions for performing the steps of receiving information from the synchronization handler via at least one callback therefrom, and displaying information corresponding to a callback. 
     
     
       38. The computer-readable medium of  claim 27  wherein each synchronization handler is loaded and called by the centralized management component independent of whether the application or component to which the synchronization handler corresponds is running. 
     
     
       39. In a computer system having a local computer connected to a remote network of computers, a method of synchronizing data between the local computer and the network, comprising, registering with a central manager of the local computer a plurality of application handlers, each application handler corresponding to a separate application or component having data stored on the network, receiving a synchronization event at the central manager, loading at least one of the application handlers in response to the event, and calling each loaded handler to synchronize data between the local machine and the network for the application or component to which the handler corresponds. 
     
     
       40. The method of  claim 39  further comprising displaying progress information related to the synchronization. 
     
     
       41. The method of  claim 39  further comprising receiving progress information related to the synchronization from each called handler. 
     
     
       42. The method of  claim 39  wherein receiving a synchronization event at the central manager includes receiving a manual synchronization request from a user. 
     
     
       43. The method of  claim 42  further comprising providing a user interface to receive user input. 
     
     
       44. The method of  claim 39  wherein receiving a synchronization event at the central manager includes receiving an automatically triggered event. 
     
     
       45. The method of  claim 39  wherein the automatically triggered event is scheduled. 
     
     
       46. The method of  claim 39  wherein loading at least one of the handlers includes queuing each of the handlers. 
     
     
       47. The method of  claim 46  further comprising maintaining event information in association with each queued handler. 
     
     
       48. The method of  claim 39  further comprising maintaining network connection information in a connection object. 
     
     
       49. The method of  claim 39  wherein each synchronization handler is loaded and called by the centralized management component independent of whether the application or component to which the synchronization handler corresponds is running. 
     
     
       50. A computer-readable medium having computer-executable instructions for performing the method of  claim 39 .

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.