Systems and methods for providing synchronization services for units of information manageable by a hardware/software interface system
First Claim
1. A storage platform system including a processor and a computer readable storage medium, said storage system comprising:
- instructions for an operating system, the operating system including a kernel, wherein the kernel includes a database management program that encapsulates a file system, the database management program that encapsulates with the file system configured to store data in the file system as file streams, generate items that include metadata for the file streams and store the items in the database management program, the database management program including a base schema and a mechanism configured to extend the base schema to define a schema for the data, and divide the data into programmably defined change units based on the schema for the data, wherein a change unit is a smallest piece of schema that is individually tracked by the database management program integrated with the file system and the size of a change unit is adjustable;
wherein the database management system is configured to generate and store state information for files stored in a non-synch-aware remote computer system, wherein the state information includes change information for the files stored in the non-synch-aware remote computer system, wherein the non-synch-aware remote computer system does not include a synchronization subsystem that is synchronization compatible with a synchronization subsystem executing on the processor;
the operating system further including the synchronization subsystem configured to compare status information for items stored in the database management program to state information for corresponding files stored in the non-synch-aware remote computer system,the synchronization subsystem further configured to determine which files stored in the non-synch-aware remote computer system need updating based on the comparison,the synchronization subsystem further configured to translate items into files formatted for storage in the non-synch-aware remote computer system,the synchronization subsystem further configured to send the files formatted for storage in the non-synch to the remote computer system, andthe synchronization subsystem further configured to update the state information for files stored in the non-synch-aware remote computer system, wherein the non-synch-aware remote computer system is configured to receive the files and store them in a file system.
2 Assignments
0 Petitions
Accused Products
Abstract
Several embodiments of the present invention employ synchronization adapters for synchronizing information between “WinFS” and non-“WinFS” data sources. Examples of adapters include an adapter that synchronizes address book information between a “WinFS” contacts folder and a non-WinFS mailbox. In these instances, adapter developers might use the “WinFS” synchronization core services API described herein for accessing services provided by the “WinFS” synchronization platform in order to develop schema transformation code between the “WinFS” schema and the non-“WinFS” data source schema. Additionally, the adapter developer provides protocol support for communicating changes with the non-“WinFS” data source. A synchronization adapter is invoked and controlled by using the synchronization controller API and reports progress and errors using this API.
184 Citations
28 Claims
-
1. A storage platform system including a processor and a computer readable storage medium, said storage system comprising:
-
instructions for an operating system, the operating system including a kernel, wherein the kernel includes a database management program that encapsulates a file system, the database management program that encapsulates with the file system configured to store data in the file system as file streams, generate items that include metadata for the file streams and store the items in the database management program, the database management program including a base schema and a mechanism configured to extend the base schema to define a schema for the data, and divide the data into programmably defined change units based on the schema for the data, wherein a change unit is a smallest piece of schema that is individually tracked by the database management program integrated with the file system and the size of a change unit is adjustable; wherein the database management system is configured to generate and store state information for files stored in a non-synch-aware remote computer system, wherein the state information includes change information for the files stored in the non-synch-aware remote computer system, wherein the non-synch-aware remote computer system does not include a synchronization subsystem that is synchronization compatible with a synchronization subsystem executing on the processor; the operating system further including the synchronization subsystem configured to compare status information for items stored in the database management program to state information for corresponding files stored in the non-synch-aware remote computer system, the synchronization subsystem further configured to determine which files stored in the non-synch-aware remote computer system need updating based on the comparison, the synchronization subsystem further configured to translate items into files formatted for storage in the non-synch-aware remote computer system, the synchronization subsystem further configured to send the files formatted for storage in the non-synch to the remote computer system, and the synchronization subsystem further configured to update the state information for files stored in the non-synch-aware remote computer system, wherein the non-synch-aware remote computer system is configured to receive the files and store them in a file system. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for synchronizing data stored in a computer system, said method comprising:
-
executing an operating system that includes a kernel, the kernel including a database management program that encapsulates a file system, wherein the database management program includes a base schema and a mechanism to extend the base schema to define a schema for data; storing, by the database management program that encapsulates the file system, data in the file system as file streams; generating, by the database management program that encapsulates the file system, items that include metadata for the file streams, wherein the metadata is defined by the schema for the data; storing the items in the database management program; dividing, by the database management program that encapsulates the file system, said data into programmably defined change units based on the schema for the data, wherein a change unit is a smallest piece of schema that is individually tracked by the database management program that encapsulates the file system and the size of a change unit is adjustable; generating, by the database management program, state information for files stored in a non-synch-aware remote computer system, wherein the state information includes change information for the files stored in a non-synch-aware remote computer system, wherein the non-synch-aware remote computer system does not include a synchronization subsystem that is synchronization compatible with the database management program; comparing, by the database management program, change unit information for items stored in the database management program to state information for corresponding files stored in a non-synch-aware remote computer system; determining, by the database management program, which files stored in the non-synch-aware remote computer system need updating based on the comparison; translating, by the database management program, items into files formatted for storage in the non-synch-aware remote computer system; sending, by the database management program, the files formatted for storage in the non-synch-aware remote computer system to the remote computer system; and updating, by the database management program, the state information for files stored in the non-synch-aware remote computer system, wherein the non-synch-aware remote computer system is configured to receive the files and store them in a file system. - View Dependent Claims (10, 11, 12)
-
-
13. A method for synchronizing data, said method comprising:
-
executing an operating system that includes a kernel, the kernel including a database management program that encapsulates a file system; storing, by the database management program that encapsulates the file system, data in the file system as file streams; generating, by the database management program that encapsulates the file system, items associated with the file streams that include metadata for the file streams, wherein the metadata is defined by the schema for the data, further wherein the items conform to a schema derived from a base schema, the schema defining a size of a change unit, further wherein a change unit is the smallest piece of schema that is individually tracked by the database management program that encapsulates the file system; storing the items in the database management program; generating, by the database management program, state information for files stored in a non-synch-aware remote computer system, wherein the state information includes change information for the files stored in a non-synch-aware remote computer system, wherein the non-synch-aware remote computer system does not include a synchronization subsystem that is synchronization compatible with the database management program; comparing, by the database management program, change unit information for items stored in the database management program to state information for corresponding files stored in a non-synch-aware remote computer system; determining, by the database management program, which items in the database management program need updating based on the comparison; receiving files corresponding to the items that need updating from the non-synch- aware remote computer system; translating, by the database management program, files corresponding to the items that need updating into items; storing, by the database management program, the items obtained from the files corresponding to the items that need updating in the database management program; storing, by the database management program, updated state information for files stored in a non-synch-aware remote computer system. - View Dependent Claims (14, 15)
-
-
16. A computer-readable storage medium comprising computer-readable instructions, the computer readable storage medium comprising:
-
instructions for an operating system, the operating system including a kernel and a shell, wherein applications execute on the shell of the operating system; the instructions for the operating system including a database management program that encapsulates a file system, wherein the database management program that encapsulates the file system is part of the kernel of the operating system; the instructions for the database management program that encapsulates the file system configured to store data as file streams in the file system and generate items for the file streams that include metadata for the file streams, wherein the format of the metadata conforms to one of a plurality of schemas, each schema of the plurality is derived from a base schema, further wherein each schema of the plurality includes programmably defined change units, wherein a change unit is a smallest piece of schema that is individually tracked by the database management program that encapsulates the file system; instructions for generating state information for files stored in a non-synch-aware remote computer system, wherein the state information includes change information for the files stored in a non-synch-aware remote computer system, wherein the non-synch-aware remote computer system does not include a synchronization subsystem that is synchronization compatible with the database management program; instructions for comparing change unit information for items stored in the database management program to state information for corresponding files stored in a non-synch-aware remote computer system; instructions for determining which files stored in the non-synch-aware remote computer system need updating based on the comparison; instructions for translating items into files formatted for storage in the non-synch- aware remote computer system; instructions for sending the files formatted for storage in the non-synch-aware computer system to the remote computer system; and instructions for updating the state information for files stored in the non-synch-aware remote computer system, wherein the non-synch-aware remote computer system is configured to receive the files and store them in a file system. - View Dependent Claims (17, 18, 19, 20, 21)
-
-
22. A computer-readable storage medium comprising computer-readable instructions for synchronizing data, said computer-readable storage medium comprising:
-
instructions for executing an operating system that include instructions for a kernel, the instructions for the kernel including instructions for a file system encapsulated by a database management program, wherein the instructions for the database management program include instructions for a base schema and a mechanism to extend the base schema to define a schema for data; the instructions for the kernel of the operating system including instructions for storing data in the file system as file streams; the instructions for the kernel of the operating system including instructions for generating items that include metadata for the file streams, wherein the metadata is defined by the schema for the data; the instructions for the kernel of the operating system including instructions for instructions for storing the items in the database management program; the instructions for the kernel of the operating system including instructions for dividing said data into programmably defined change units based on the schema for the data, wherein a change unit is a smallest piece of schema that is individually tracked by the database management program that encapsulates the file system and the size of a change unit is adjustable; the instructions for the database management program including instructions for sequentially enumerating changes to said data and tracking said changes on a per change unit basis; the instructions for the database management program including instructions for generating state information for files stored in a non-synch-aware remote computer system, wherein the state information includes change information for the files stored in a non-synch-aware remote computer system, wherein the non-synch-aware remote computer system does not include a synchronization subsystem that is synchronization compatible with the database management program; the instructions for the database management program including instructions for comparing change unit information for items stored in the database management program to state information for corresponding files stored in a non-synch-aware remote computer system; the instructions for the database management program including instructions for determining which files stored in the non-synch-aware remote computer system need updating based on the comparison; the instructions for the database management program including instructions for translating items into files formatted for storage in the non-synch-aware remote computer system; the instructions for the database management program including instructions for sending the files formatted for storage in the non-synch-aware remote computer system to the remote computer system; and the instructions for the database management program including instructions for updating the state information for files stored in the non-synch-aware remote computer system, wherein the non-synch-aware remote computer system is configured to receive the files and store them in a file system. - View Dependent Claims (23, 24, 25)
-
-
26. A computer-readable storage medium comprising computer readable instructions for synchronizing data, said computer-readable storage medium comprising:
-
instructions for executing an operating system that includes a kernel, the kernel including a file system encapsulated by a database management program; the instructions for the kernel of the operating system including instructions for storing data in the file system as file streams; the instructions for the kernel of the operating system including instructions for generating items associated with the file streams that include metadata for the file streams, wherein the metadata is defined by the schema for the data, further wherein the items conform to a schema derived from a base schema, the schema defining a size of a change unit, further wherein a change unit is the smallest piece of schema that is individually tracked by the database management program integrated with the file system; instructions for storing the items in the database management program; instructions for generating state information for files stored in a non-synch-aware remote computer system, wherein the state information includes change information for the files stored in a non-synch-aware remote computer system, wherein the non-synch-aware remote computer system does not include a synchronization subsystem that is compatible with the database management program; instructions for comparing change unit information for items stored in the database management program to state information for corresponding files stored in a non-synch- aware remote computer system; instructions for determining which items in the database management program need updating based on the comparison; instructions for receiving files corresponding to the items that need updating from the non-synch-aware remote computer system; instructions for translating files corresponding to the items that need updating into items; instructions for storing the items obtained from the files corresponding to the items that need updating in the database management program; instructions for storing updated state information for files stored in a non-synch-aware remote computer system. - View Dependent Claims (27, 28)
-
Specification