Systems and methods for controlling the delivery behavior of downloaded content

Abstract
The present invention provides a comprehensive development platform and client-side technology for intelligent and cost-effective delivery of video, audio and broadband content over a network, such as the Internet, to desktop, mobile computing, and network connected devices. In one embodiment of the present invention, an intelligent delivery system (IDS) uses delivery behavior techniques for controlling delivery of content downloaded to a network connected device. A delivery behavior may specify one or more of the following delivery related characteristics: 1) a direction, 2) a source, 3) a schedule, 4) a report, and 5) a phase. A source may include a variety of types of content sources providing a range of performance or download characteristics. The IDS may download to the network connected device one or more files from one or more content sources in accordance with a specified delivery behavior. The delivery behavior can provide a balance between download performance and delivery costs in a manner specific to a user or application of the network connected device.
Description

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing and other objects, aspects, features, and advantages of the present invention will become more apparent and may be better understood by referring to the following description taken in conjunction with the accompanying drawings, in which:



FIGS. 1A and 1B are block diagrams of embodiments of a computing device for practicing an embodiment of the present invention;



FIG. 2A is a block diagram of an embodiment of an intelligent delivery client system;



FIG. 2B is a block diagram of an illustrative network environment for practicing an embodiment of the intelligent delivery client system;



FIG. 3A is a diagrammatic view of an embodiment of content structure for source content;



FIG. 3B is a diagrammatic view of an embodiment of content structure for local content;



FIG. 3C is a diagrammatic view of an embodiment of content structure in using a download order to download from the source content to the local content;



FIG. 3D is another diagrammatic view of another embodiment of content structure to download from the source content to the local;



FIG. 3E is a diagrammatic view of an embodiment of content structure in using temporary directory structure with a download order to download from the source content to the local content;



FIG. 3F is a flow diagram of steps performed in practicing an embodiment of downloading content with download orders;



FIG. 4A is a diagrammatic view of an embodiment of local content structure updated according to an embodiment of the flipping technique depicted in FIG. 4B;



FIG. 4B is a flow diagram of steps performed for practicing an embodiment of a flipping technique;



FIG. 5A is a diagrammatic view of an embodiment of a hashing and virtual file system of local content structure;



FIG. 5B is a diagrammatic view of another embodiment of a hashing and virtual file system of local content structure;



FIG. 5C is a diagrammatic view of yet another embodiment of a hashing and virtual file system of local content structure;



FIG. 5D is a flow diagram of steps performed in practicing an embodiment of caching and virtual file system content storing techniques;



FIG. 5E is a flow diagram of an embodiment of steps performed in accessing content stored via the illustrative caching and virtual file system related techniques of FIG. 5D;



FIG. 6A is a block diagram view of an embodiment for storing downloaded content using a shuffle storage technique;



FIG. 6B is a diagrammatic view of embodiments of various shuffle storage technique examples;



FIG. 6C is a flow diagram of example steps performed in practicing an embodiment of the shuffle storage technique in view of FIG. 6A and FIG. 6B;



FIG. 7A is a block diagram view of another embodiment for downloading and storing content from multiple servers;



FIG. 7B is a flow diagram of an embodiment of a method performed in practicing an embodiment of a Hypertext Transfer Protocol downloading technique in view of FIG. 7A;



FIG. 8A is a diagrammatic view of another embodiment of downloading according to a delivery behavior;



FIG. 8B is a diagrammatic view of an embodiment of a phased delivery behavior;



FIG. 8C is a flow diagram of an embodiment of a method performed in practicing one or more download behavior techniques in view of FIG. 8A and FIG. 8B;



FIG. 9A is a diagrammatic view of an embodiment of the intelligent client delivery system providing a user interface and user experience via online content;



FIG. 9B is an example embodiment of the user interface and user experience of the online content depicted diagrammatically in FIG. 9A;



FIG. 9C is a diagrammatic view of an embodiment of the intelligent client delivery system for providing a user interface and user experience via offline content;



FIG. 9D is an example embodiment of the user interface and user experience of the offline content depicted diagrammatically in FIG. 9A;



FIG. 9E is a flow diagram of an embodiment of a method performed in practicing a technique of providing offline access to online content;



FIG. 9F is a flow diagram of an embodiment of a method performed in practicing a technique of providing a user a similar offline experience as the online user experience;



FIG. 10A is a block diagram of an embodiment of the intelligent client delivery system for providing a content development environment;



FIG. 10B is an embodiment of the user interface of the designer tool of the content development environment;



FIG. 10C is another embodiment of the user interface of the designer tool of the content development environment;



FIG. 10D is an embodiment of the user interface of the editor tool of the content development environment;



FIG. 10E is another embodiment of the user interface of the editor tool of the content development environment;



FIG. 10F is an embodiment of the user interface of a content download selector mechanism;



FIG. 10G is another embodiment of the user interface of a content download selector mechanism;



FIG. 10H is a flow diagram of an embodiment of a method performed in practicing a technique of providing offline and online content from a single content development tool;



FIG. 11A is a block diagram of an embodiment of the intelligent client delivery system for providing authentication and authorization of users for access to content;



FIG. 11B is a block diagram of an embodiment of a media player for providing authentication and authorization of users for access to content;



FIG. 11C is a flow diagram of an embodiment of a method performed in practicing a technique of providing authenticated and authorized access to media files;



FIG. 12A is a block diagram of an embodiment of a networked environment for practicing synchronization techniques;



FIG. 12B is a flow diagram of an embodiment of a method performed in practicing a technique of synchronizing transmission of streaming media for a user;



FIG. 12C is a flow diagram of an embodiment of a method performed in practicing a technique of synchronizing playing downloaded media for a user;



FIG. 12D is a flow diagram of an embodiment of a method performed in practicing a technique of synchronizing content between devices of a user;



FIG. 13A is a flow diagram of an embodiment of a method performed in practicing a technique of requesting from one computing device a download to another computing device; and



FIG. 13B is a flow diagram of an embodiment of a method performed in practicing a technique of changing the download from one computing device to another computing device.


Claims
  • 1. A method for controlling delivery of content from one or more content sources to a client, the method comprising the steps of: (a) identifying, for a client, a delivery behavior for downloading content from one or more content sources to the client, the delivery behavior specifying a content source for a unit of download and a delivery technique of a plurality of delivery techniques;(b) associating the delivery behavior with a download request to a download manager; and(c) downloading, by the download manager to the client, the unit of download from the content source according to the delivery technique specified by the delivery behavior.
  • 2. The method of claim 1, comprising specifying via the delivery behavior a schedule for downloading the unit of download from the content source to the client.
  • 3. The method of claim 2, comprising specifying the schedule based on one or more of the following: availability of a server of the content source, bandwidth of the client, and staggering downloads from the content source to one or more clients.
  • 4. The method of claim 1, comprising specifying via the delivery behavior a phase for a change to the delivery behavior during downloading.
  • 5. The method of claim 4, comprising specifying the phase for the change to the delivery behavior occurs based on one or more of the following: a cumulative time of downloading, a cumulative amount of content downloaded, and a pending due date or time to complete downloading.
  • 6. The method of claim 4, comprising changing, by the download manager, the delivery behavior during downloading based on the phase specified by the delivery behavior.
  • 7. The method of claim 4, comprising using, by the download manager, a second content source identified via the phase for downloading content.
  • 8. The method of claim 1, comprising specifying via the delivery behavior a report to be communicated by the client to provide information related to the downloading.
  • 9. The method of claim 8, comprising communicating, by the client, the report to provide information comprising one or more of the following: client bandwidth usage, download speed, and error rate.
  • 10. The method of claim 8, comprising communicating, by the client, the report to provide information related to one of metering or billing for the downloading.
  • 11. The method of claim 1, comprising specifying the delivery technique via the delivery behavior to comprise one of the following: progressive, reverse, gather, and combination.
  • 12. The method of claim 1, comprising downloading, by the download manager for a progressive delivery technique, a first unit of download representing a starting segment of content and a second unit of download subsequently to the first unit of download, the second unit of download representing a segment of the content following the starting segment.
  • 13. The method of claim 1, comprising downloading, by the download manager for a reverse delivery technique, a first unit of download representing an ending segment of content, and a second unit of download subsequently to the first unit of download, the second unit of download representing a segment of the content prior to and adjacent to the ending segment.
  • 14. The method of claim 1, comprising downloading, by the download manager for a gather delivery technique, a first unit of download representing a first segment of content, and a second unit of download subsequently to the first unit of download, the second unit of download representing a second segment of content not adjacent to the first segment.
  • 15. The method of claim 1, comprising downloading, by the download manager for a combination delivery technique, a first unit of download representing a segment near the end of the content, and a second unit of download subsequently to the first unit of download, the second unit of download representing a segment of the content prior to the segment of the first unit of download.
  • 16. The method of claim 1, comprising downloading, by the download manager, using a combination of two or more of the following delivery techniques: progressive, reverse, and gather.
  • 17. The method of claim 1, wherein the unit of download comprises one of video, audio, or data.
  • 18. The method of claim 1, wherein the one or more content sources comprises one of the following: a load-balanced host, a content-balanced host, a geographic proxy, a local proxy, a peer-to-peer host, and a host provided via neighborcasting.
  • 19. The method of claim 1, comprising specifying via the delivery behavior a preprocessing of content from the content source.
  • 20. The method of claim 1, wherein preprocessing comprises one or more of the following: hashing of a unit of download, splitting apart of a unit of download, bundling of units of download, and compression of one or more units of download.
  • 21. The method of claim 1, comprising executing the download manager as a background process of the client.
  • 22. The method of claim 1, comprising identifying the delivery behavior via a file.
  • 23. The method of claim 1, comprising identifying by a user the delivery behavior.
  • 24. A system for controlling a delivery of content from one or more content sources to a client, the system comprising: a storage element comprising information identifying a delivery behavior, the delivery behavior specifying a content source for a unit of download and a delivery technique of a plurality of delivery techniques;a download manager for downloading content from one or more content sources to a client and in communication with the storage element, the download manager receives a download request associated with the information, and downloads the unit of download from the content source to the client based on the delivery technique specified by the delivery behavior
  • 25. The system of claim 24, wherein the delivery behavior specifies a schedule for downloading the unit of download from the content source to the client.
  • 26. The system of claim 25 wherein the schedule is based on one or more of the following: availability of a server of the content source, bandwidth of the client, and staggering downloads from the content source to one or more clients.
  • 27. The system of claim 24, wherein the delivery behavior specifies a phase for a change to the delivery behavior during downloading.
  • 28. The system of claim 27, wherein the phase for the change to the delivery behavior occurs based on one or more of the following: a cumulative time of downloading, a cumulative amount of content downloaded, and a pending due date or time to complete downloading.
  • 29. The system of claim 27, wherein the download manager changes the delivery behavior during downloading based on the phase specified by the delivery behavior.
  • 30. The system of claim 27, wherein the download manager uses a second content source identified via the phase for downloading content.
  • 31. The system of claim 24, wherein the delivery behavior specifies a report to be communicated by the client to provide information related to the downloading.
  • 32. The system of claim 31, wherein the client communicates the report to provide information comprising one or more of the following: client bandwidth usage, download speed, and error rate.
  • 33. The system of claim 31, wherein the report provides information related to one of metering or billing for the downloading.
  • 34. The system of claim 24, wherein the delivery technique of the delivery behavior comprises one of the following: progressive, reverse, gather, and combination.
  • 35. The system of claim 24, wherein the download manager downloads for a progressive delivery technique a first unit of download representing a starting segment of content and a second unit of download subsequently to the first unit of download, the second unit of download representing a segment of the content following the starting segment.
  • 36. The system of claim 24, wherein the download manager downloads for a reverse delivery technique, a first unit of download representing an ending segment of content, and a second unit of download subsequently to the first unit of download, the second unit of download representing a segment of the content prior to and adjacent to the ending segment.
  • 37. The system of claim 24, wherein the download manager downloads for a gather delivery technique, a first unit of download representing a first segment of content, and a second unit of download subsequently to the first unit of download, the second unit of download representing a second segment of content not adjacent to the first segment.
  • 38. The system of claim 24, wherein the download manager downloads using a combination of two or more of the following delivery techniques: progressive, reverse, and gather.
  • 39. The system of claim 24, wherein the download manager downloads for a combination delivery technique, a first unit of download representing a segment near the end of the content, and a second unit of download subsequently to the first unit of download, the second unit of download representing a segment of the content prior to the segment of the first unit of download.
  • 40. The system of claim 24 wherein the unit of download comprises one of video, audio, or data.
  • 41. The system of claim 24 wherein the one or more content sources comprises one of the following: a load-balanced host, a content-balanced host, a geographic proxy, a local proxy, a peer-to-peer host, and a host provided via neighborcasting.
  • 42. The system of claim 24 wherein the delivery behavior specifies a preprocessing of content from the content source.
  • 43. The system of claim 42 wherein preprocessing comprises one or more of the following: hashing of a unit of download, splitting apart of a unit of download, bundling of units of download, and compression of one or more units of download.
  • 44. The system of claim 24 wherein the download manager executes as a background process of the client.
  • 45. The system of claim 24 comprising a file identifying the delivery behavior.
  • 46. The system of claim 24 comprising a mechanism for a user to indicate the delivery behavior.
  • 47. A system for controlling a delivery of content from one or more content sources to a client, the system comprising: a means for identifying, for a client, a delivery behavior for downloading content from one or more content sources to the client, the delivery behavior specifying a content source for a unit of download and a delivery technique of a plurality of delivery techniques;a means for associating the delivery behavior with a download request to a download manager; anda means for downloading, by the download manager to the client, the unit of download from the content source according to the delivery technique specified by the delivery behavior.
Provisional Applications (1)
Number Date Country
60777672 Feb 2006 US