IP Library Granted Patent US 7,739,317
Granted Patent B2
US 7,739,317 · App. 11/558,660 · Granted Jun 15, 2010

Data serialization and transfer

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,739,317
App. No.
11/558,660
Granted
Jun 15, 2010
Kind
B2
Abstract

A transfer protocol for sending data between a source device and a receiving device uses hierarchical metadata to establish relationships between content files and content metadata so that after an initial element is received, subsequent elements, be they files or metadata, have a defined relationship to a previously sent element.

Claims (60)

1. A method of transferring media between a source device and a receiving device comprising:

assembling a prologue string of a data stream, the prologue string being the first data unit in the data stream, the prologue string indicating a format of a remaining portion of the data stream, the prologue string defining a relationship between a plurality of content files and their respective content metadata that make up the remaining portion of the data stream, the prologue string including a root item type indicator and a total number to count, wherein the root item type indicator defines a metadata stack including a plurality of hierarchal attributes, each hierarchal attribute having a respective level of hierarchy that specifies a hierarchal relation of the content metadata to each other;

sending the prologue string to the receiving device;

assembling a plurality of metadata strings according to the metadata stack of the prologue string, wherein the plurality of metadata strings describe at least a part of the metadata stack, wherein each metadata string of the plurality of metadata strings corresponds to a hierarchal attribute of the plurality of hierarchal attributes, and each metadata string identifies aspects of a hierarchal attribute of the plurality of hierarchal attributes assigned to the respective level of the hierarchy of the media, wherein at least one of the plurality of the metadata strings has a count indicator that designates at least the one of the plurality of the metadata strings is countable against the total number to count, to form an assembled plurality of metadata strings;

sending at least the one of the assembled metadata strings to the receiving device, to form a sent metadata string;

assembling a content file associated with the sent metadata string, to form an associated content file;

sending the associated content file to the receiving device;

repeating the sending of any remaining portion of the assembled plurality of metadata strings and remaining associated content file of the media to the receiving device, to form a plurality of sent metadata strings and sent content files that make up the remaining portion of the data stream;

determining when attribute information of a corresponding hierarchal attribute at the same respective level of hierarchy of the respective content metadata is duplicated in the assembled plurality of metadata strings and identifying that attribute information as a duplicated attribute information; and

deleting the duplicated attribute information from the assembled plurality of metadata strings.

2. The method of claim 1 , wherein at least one of the assembled plurality of metadata strings includes a first separator between a first name/value pair and a second name/value pair of a plurality of name/value pairs and a second separator between a name and a value of each name/value pair.

3. The method of claim 2 , wherein at least one of the assembled plurality of the metadata strings includes a unique identifier, at least one type identifier, and at least one name identifier.

4. The method of claim 1 , wherein at least one of the assembled plurality of the metadata strings comprises one of

a METAXFER_ENCODE_HMEDIAITEM;

a METAXFER_ENCODE_MEDIAITEMROOT;

a METAXFER_ENCODE_MEDIAITEMTYPE; and

a METAXFER_ENCODE_RELATION.

5. The method of claim 1 , wherein at least one of the assembled plurality of the metadata strings is a URL, name, an artist, an album, a genre, a track number, a copyright notice, a source, a star rating, a playcount, a channel number, an origin date, a synchronization date, a duration, a picture flag, a picture height and width dimension, a description, a media format, an index, a display URL, a sort key, a hidden flag, or a stocking kit unit (SKU) identifier.

6. The method of claim 1 , wherein the prologue string is a description of a root component or an identifier configured to identify optional information of the sending device.

7. The method of claim 1 , further comprising:

receiving the prologue string at the receiving device;

receiving the metadata string with the count indicator at the receiving device;

receiving the associated content file; and

setting a user interface element according to the total number to count in the prologue string and a progress number indicating how many of the sent metadata strings having the count indicator have been received.

8. The method of claim 7 , further comprising using a received metadata string to set a relationship to a previously received metadata string from the current step of sending at least the one metadata string.

9. The method of claim 7 , further comprising using the received metadata string to set a relationship for a received content file to a previously sent metadata string.

10. The method of claim 7 , further comprising parsing a received metadata string into name/value pairs.

11. The method of claim 10 , further comprising blocking an item from presentation to a user when a name/value pair indicates the content file is hidden.

12. The method of claim 1 , further comprising:

assigning the count indicator or a not-count indicator to each attribute of the plurality of hierarchal attributes via the corresponding metadata string of the plurality of metadata strings that make up at least a part of the metadata stack-and each of the associated content files;

calculating the total number to count;

wherein the metadata strings and associated content files having the count indicator are used to indicate a progress count of the received attributes against the total number to count.

13. The method of claim 1 , further comprising:

assigning the count indicator or a not-count indicator to each non-duplicate attribute of the plurality of hierarchal attributes via the corresponding metadata string of the plurality of metadata strings that make up at least a part of the metadata stack and each of the associated content files;

calculating the total number to count;

wherein the metadata strings and associated content files having the count indicator are used to indicate a progress count of the received attributes against the total number to count.

14. The method of claim 1 , further comprising:

changing lower level attributes which previously pointed to duplicated attribute information to point to an adjacent higher level attribute which is adjacent to the attribute of the deleted duplicated attribute information.

15. A computer storage media having a sequence of instructions which, when executed by a processor of a media device, causes the processor to execute a process for transferring media, the process comprising:

assembling a prologue string of a data stream, the prologue string being the first data unit in the data stream, the prologue string indicating a format of a remaining portion of the data stream, the prologue string defining a relationship between a plurality of content files and their respective content metadata that make up the remaining portion of the data stream, the prologue string including a root item type indicator and a total number to count, wherein the root item type indicator defines a metadata stack including a plurality of hierarchal attributes, each hierarchal attribute having a respective level of hierarchy that specifies a hierarchal relation of the content metadata to each other;

sending the prologue string to the receiving device;

assembling a plurality of metadata strings according to the metadata stack of the prologue string, wherein the plurality of metadata strings describe at least a part of the metadata stack, wherein each metadata string of the plurality of metadata strings corresponds to a hierarchal attribute of the plurality of hierarchal attributes, and each metadata string identifies aspects of a hierarchal attribute of the plurality of hierarchal attributes assigned to the respective level of the hierarchy of the media, wherein at least one of the plurality of the metadata strings has a count indicator that designates at least the one of the plurality of the metadata strings is countable against the total number to count, to form an assembled plurality of metadata strings;

sending at least the one of the assembled metadata strings to the receiving device, to form a sent metadata string;

assembling a content file associated with the sent metadata string, to form an associated content file;

sending the associated content file to the receiving device; and

repeating the sending of any remaining portion of the of the assembled plurality of metadata strings and remaining associated content file of the media to the receiving device, to form a plurality of sent metadata strings and sent content files that make up the remaining portion of the data stream; and

determining when attribute information of a corresponding hierarchal attribute at the same respective level of hierarchy of the respective content metadata is duplicated in the assembled plurality of metadata strings and identifying that attribute information as a duplicated attribute information; and

deleting the duplicated attribute information from the assembled plurality of metadata strings.

16. The computer storage media of claim 15 , wherein at least one of the assembled plurality of metadata strings includes a first separator between a first name/value pair and a second name/value pair of a plurality of name/value pairs and a second separator between a name and a value of each name/value pair.

17. The computer storage media of claim 16 , wherein at least one of the assembled plurality of the metadata strings includes a unique identifier, at least one type identifier, and at least one name identifier.

18. The computer storage media of claim 15 , further comprising:

assigning the count indicator or a not-count indicator to each attribute of the plurality of hierarchal attributes via the corresponding metadata string of the plurality of metadata strings that make up at least a part of the metadata stack and each of the associated content files;

calculating the total number to count;

wherein the metadata strings and associated content files having the count indicator are used to indicate a progress count of the received attributes against the total number to count.

19. The computer storage media of claim 15 , further comprising:

assigning the count indicator or a not-count indicator to each non-duplicate attribute of the plurality of hierarchal attributes via the corresponding metadata string of the plurality of metadata strings that make up at least a part of the metadata stack and each of the associated content files;

calculating the total number to count;

wherein the metadata strings and associated content files having the count indicator are used to indicate a progress count of the received attributes against the total number to count.

20. The computer storage media of claim 15 , further comprising:

changing lower level attributes which previously pointed to duplicated attribute information to point to an adjacent higher level attribute which is adjacent to the attribute of the deleted duplicated attribute information.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2007
From: ASMI, YASSER; ZUBER, MARK D.
To: MICROSOFT CORPORATION
Reel/Frame 018903/0079 →