Method and apparatus for synchronizing multiple versions of digital data
AssigneeMicrosoft Corporation
InventorsJonathan C. Kagle, Gilad Odinak
Life of this patent
Estimating the term…
Abstract
A method and system for synchronizing multiple versions of multimedia objects is provided. Each multimedia object may be identified by a unique identifier. In addition, a history graph may be generated and maintained for each object, where the history graph includes nodes that store unique identifiers and whose vectors describe the relationship between the multimedia objects. Metadata may be used to describe the transformations of objects.
Claims30
A method for synchronizing multiple versions of an object, comprising:
- receiving a multimedia object having an associated unique identifier and a history comprising a plurality of nodes and a plurality of vectors defining relationships between the plurality of nodes;
- assigning a new unique identifier to the multimedia object responsive to the multimedia object being modified;
- updating the history of the multimedia object to include a node corresponding to the new unique identifier and a vector corresponding to the relationship between the received multimedia object and the modified multimedia object;
- updating metadata associated with the vector, the metadata describing the modification performed to arrive at the multimedia object corresponding to the new unique identifier;
- and
- storing portions of the history with the modified multimedia object, said storing comprising:
- determining a threshold time based on a current time measurement;
- identifying a first node and a second node in the history, the first node associated with a time before the threshold time and the second node associated with a time after the threshold time;
- comparing the time associated with the first node to the threshold time;
- comparing the time associated with the second node to the threshold time;
- and
- based on said comparisons, storing the second node with the modified multimedia object, and storing the first node at a location separate from the modified multimedia object.
A computer-readable medium having computer-executable instructions for performing the steps of:
- receiving a multimedia object having an associated unique identifier and a history comprising a plurality of nodes and a plurality of vectors defining relationships between the plurality of nodes;
- assigning a new unique identifier to the multimedia object responsive to the multimedia object being modified;
- updating the history of the multimedia object to include a node corresponding to the new unique identifier and a vector corresponding to the relationship between the received multimedia object and the modified multimedia object;
- updating metadata associated with the vector, the metadata describing the modification performed to arrive at the multimedia object corresponding to the new unique identifier;
- and
- storing portions of the history with the modified multimedia object, said storing comprising:
- determining a threshold time based on a current time measurement;
- identifying a first node and a second node in the history, the first node associated with a time before the threshold time and the second node associated with a time after the threshold time;
- comparing the time associated with the first node to the threshold time;
- comparing the time associated with the second node to the threshold time;
- and
- based on said comparisons, storing the second node with the modified multimedia object, and storing the first node at a location separate from the modified multimedia object.
A method for synchronizing multiple versions of an object, comprising:
- assigning a multimedia object a first unique identifier;
- providing the multimedia object a history comprising a plurality of nodes and a plurality of vectors defining relationships between the plurality of nodes, the history having a node representing the first unique identifier of the multimedia object;
- responsive to the multimedia object being modified, assigning the modified multimedia object a second unique identifier;
- updating the history to include a node representing the second unique identifier of the multimedia object and to associate the node representing the first unique identifier to the node representing the second unique identifier;
- and
- storing potions of the history with the modified multimedia object, said storing comprising:
- determining a threshold time based on a current time measurement;
- identifying a first node and a second node in the history, the first node associated with a time before the threshold time and the second node associated with a time after the threshold time;
- comparing the time associated with the first node to the threshold time;
- comparing the time associated with the second node to the threshold time;
- and
- based on said comparisons, storing the second node with the modified multimedia object, and storing the first node at a location separate from the modified multimedia object.
A method for synchronizing multiple versions of an object, comprising:
- assigning a multimedia object a first unique identifier;
- providing the multimedia object a history comprising a plurality of nodes and a plurality of vectors defining relationships between the plurality of nodes, the history having a node representing the first unique identifier of the multimedia object;
- responsive to the multimedia object being modified, assigning the modified multimedia object a second unique identifier;
- updating the history to include a node representing the second unique identifier of the multimedia object and to associate the node representing the first unique identifier to the node representing the second unique identifier;
- and
- transferring the history with the modified multimedia object, wherein transferring the history with the modified multimedia object comprises:
- determining a threshold time based on a current time measurement;
- identifying a first node and a second node in the history, the first node associated with a time before the threshold time and the second node associated with a time after the threshold time;
- comparing the time associated with the first node to the threshold time;
- comparing the time associated with the second node to the threshold time;
- and
- transferring the history based on said comparisons, wherein the second node is transferred with the modified multimedia object, and wherein the first node is not transferred with the modified multimedia object.
A method for synchronizing multiple versions of an object, comprising:
- receiving a multimedia object having an associated unique identifier and a history comprising a plurality of nodes and a plurality of vectors defining relationships between the plurality of nodes;
- assigning a new unique identifier to the multimedia object responsive to the multimedia object being modified;
- updating the history of the multimedia object to include a node corresponding to the new unique identifier and a vector corresponding to the relationship between the received multimedia object and the modified multimedia object;
- updating metadata associated with the vector, the metadata describing the modification performed to arrive at the multimedia object corresponding to the new unique identifier, and
- transferring the history with the modified multimedia object, said transferring comprising:
- determining a threshold time based on a current time measurement;
- identifying a first node and a second node in the history, the first node associated with a time before the threshold time and the second node associated with a time after the threshold time;
- comparing the time associated with the first node to the threshold time;
- comparing the time associated with the second node to the threshold time;
- and
- transferring the history based on said comparisons, wherein the second node is transferred with the modified multimedia object, and wherein the first node is not transferred with the modified multimedia object.
A computer-readable medium having computer-executable instructions for performing the steps of:
- receiving a multimedia object having an associated unique identifier and a history comprising a plurality of nodes and a plurality of vectors defining relationships between the plurality of nodes;
- assigning a new unique identifier to the multimedia object responsive to the multimedia object being modified;
- updating the history of the multimedia object to include a node corresponding to the new unique identifier and a vector corresponding to the relationship between the received multimedia object and the modified multimedia object;
- updating metadata associated with the vector, the metadata describing the modification performed to arrive at the multimedia object corresponding to the new unique identifier, and
- transferring the history with the modified multimedia object, said transferring comprising:
- determining a threshold time based on a current time measurement;
- identifying a first node and a second node in the history, the first node associated with a time before the threshold time and the second node associated with a time after the threshold time;
- comparing the time associated with the first node to the threshold time;
- comparing the time associated with the second node to the threshold time;
- and
- transferring the history based on said comparisons, wherein the second node is transferred with the modified multimedia object, and wherein the first node is not transferred with the modified multimedia object.
A computer-readable medium having computer-executable instructions for performing the steps of:
- assigning a multimedia object a first unique identifier;
- providing the multimedia object a history comprising a plurality of nodes and a plurality of vectors defining relationships between the plurality of nodes, the history having a node representing the first unique identifier of the multimedia object;
- responsive to the multimedia object being modified, assigning the modified multimedia object a second unique identifier;
- updating the history to include a node representing the second unique identifier of the multimedia object and to associate the node representing the first unique identifier to the node representing the second unique identifier, and
- storing portions of the history with the modified multimedia object, said storing comprising:
- determining a threshold time based on a current time measurement;
- identifying a first node and a second node in the history, the first node associated with a time before the threshold time and the second node associated with a time after the threshold time;
- comparing the time associated with the first node to the threshold time;
- comparing the time associated with the second node to the threshold time;
- and
- based on said comparisons, storing the second node with the modified multimedia object, and storing the first node at a location separate from the modified multimedia object.
A computer-readable medium having computer-executable instructions for performing the steps of:
- assigning a multimedia object a first unique identifier;
- providing the multimedia object a history comprising a plurality of nodes and a plurality of vectors defining relationships between the plurality of nodes, the history having a node representing the first unique identifier of the multimedia object;
- responsive to the multimedia object being modified, assigning the modified multimedia object a second unique identifier;
- updating the history to include a node representing the second unique identifier of the multimedia object and to associate the node representing the first unique identifier to the node representing the second unique identifier, and
- transferring the history with the modified multimedia object, said transferring comprising:
- determining a threshold time based on a current time measurement;
- identifying a first node and a second node in the history, the first node associated with a time before the threshold time and the second node associated with a time after the threshold time;
- comparing the time associated with the first node to the threshold time;
- comparing the time associated with the second node to the threshold time;
- and
- transferring the history based on said comparisons, wherein the second node is transferred with the modified multimedia object, and wherein the first node is not transferred with the modified multimedia object.
Dependencies are inferred from the claim text.