Downloading a file over HTTP from multiple servers

Information

  • Patent Application
  • 20070204003
  • Publication Number
    20070204003
  • Date Filed
    June 29, 2006
    18 years ago
  • Date Published
    August 30, 2007
    17 years ago
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) provides a system and method to download content, such any type of video and/or audio media, servers via an application, Internet or web-based protocol, such as any type and form of the Hypertext Transfer Protocol (HTTP) from a content source providing the media via multiple servers. The IDS may download over a network portions of a media from multiple servers, and store the downloaded media to storage of the client. The media may be available in any desired portions from the servers such as one more byte ranges, for example, as a sequence of bytes. The IDS may obtain one or more byte ranges of the media from any of the multiple servers, such as a first byte range from a first server and a second bytes range from a second server. As the portions of the media from the servers are received, the IDS stores the portions of media in storage of the client in a manner to provide the media as desired.
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 downloading media to a client from a plurality of servers via a Hypertext Transfer Protocol, the method comprising the steps of: (a) receiving, by a client, a request to download media from a content source, the content source providing the media on a plurality of servers;(b) requesting, by a download manager of the client via a Hypertext Transfer Protocol, a first portion of the media from a first server of the plurality of servers, and a second portion of the media from a second server of the plurality of servers; and(c) receiving, by the client via the Hypertext Transfer Protocol, the first portion of the media from the first server, and the second portion of the media from the second server.
  • 2. The method of claim 1, comprising requesting, by the download manager, to one of the first server or the second server a size in bytes of the media.
  • 3. The method of claim 1, comprising determining, by the download manager, a size of the first portion of the media to request from the first server and a size of the second portion of the media to request from the second server.
  • 4. The method of claim 1, wherein step(b) comprises requesting, by the download manager, a first sequence of bytes of a first byte range of the media from the first server, and a second sequence of bytes of a second byte range of the media from the second server.
  • 5. The method of claim 1, wherein step(b) comprising requesting, by the download manager, a plurality of portions of the media from the plurality of servers.
  • 6. The method of claim 1, wherein one of the first portion or the second portion of the media comprises a segment of a file.
  • 7. The method of claim 1, wherein one of the first portion or the second portion of the media comprises a sequence of bytes in a byte range.
  • 8. The method of claim 1, wherein the media comprises one of video or audio.
  • 9. The method of claim 1, comprising storing, by a shuffling mechanism of the client, the first portion and second portion of media into allocated ordered physical locations of a file.
  • 10. The method of claim 9, comprising shuffling, by the shuffling mechanism, portions of media stored in the allocated ordered physical locations to place the first portion of media and the second portion of media into a desired position in the file.
  • 11. A system for downloading media to a client from a plurality of servers via a Hypertext Transfer Protocol, the system comprising: means for receiving, by a client, a request to download media from a content source, the content source providing the media on a plurality of servers;means for requesting, by a download manager of the client via a Hypertext Transfer Protocol, a first portion of the media from a first server of the plurality of servers, and a second portion of the media from a second server of the plurality of servers; andmeans for receiving, by the client via the Hypertext Transfer Protocol, the first portion of the media from the first server, and the second portion of the media from the second server.
  • 12. The system of claim 11, comprising means for requesting, by the download manager, to one of the first server or the second server a size in bytes of the media.
  • 13. The system of claim 11, comprising means for determining, by the download manager, a size of the first portion of the media to request from the first server and a size of the second portion of the media to request from the second server.
  • 14. The system of claim 11, comprising means for requesting, by the download manager, a first sequence of bytes of a first byte range of the media from the first server, and a second sequence of bytes of a second byte range of the media from the second server.
  • 15. The system of claim 11, comprising means for requesting, by the download manager, a plurality of portions of the media from the plurality of servers.
  • 16. The system of claim 11, wherein one of the first portion or the second portion of the media comprises a segment of a file.
  • 17. The system of claim 11, wherein one of the first portion or the second portion of the media comprises a sequence of bytes in a byte range.
  • 18. The system of claim 11, wherein the media comprises one of video or audio.
  • 19. The system of claim 11, comprising means for storing, by a shuffling mechanism of the client, the first portion and second portion of media into allocated ordered physical locations of a file.
  • 20. The system of claim 19, comprising means for shuffling, by the shuffling mechanism, portions of media stored in the allocated ordered physical locations to place the first portion of media and the second portion of media into a desired position in the file.
Provisional Applications (1)
Number Date Country
60777672 Feb 2006 US