Caching Architecture for Delivery of Multimedia Content
BACKGROUND OF THE INVENTION
The number of homes and businesses using personal computers has increased substantially in recent years, and along with this increase has come an explosion in the use of the Internet, and particularly the World-Wide Web ("the Web"). The Web is a collection of formatted hypertext pages located on numerous computers around the world that are logically connected by the Internet. Although "the Web" has in the past been a source of primarily scientific and technical information, it is now a valuable resource for information relating to almost any subject, including business, entertainment, travel, and education, to name just a few. Advances in network technology, and especially in software such as "Web browsers" (software applications which provide a user interface to the Web), have made the Web accessible to a large segment of the population. However, despite the growth in the development and use of the Web, access to the Web still has many problems and disadvantages.
One problem commonly associated with Web browsing is communications latency. People commonly experience long, frustrating delays when browsing the Web. There are many possible causes for latency, such as heavy communications traffic on the Internet, slow response of remote servers, or the need to download very large files, as in the case of many images or audio files. Such delays will be even more of a problem as more users download multimedia pages which include streaming video along with other content. Therefore, what is needed is a means for reducing such latency to eliminate some of the frustration which typically has been associated with Web browsing.
U.S. Patent 5,935,207, entitled "Method and Apparatus for Providing Remote Site Administrators with User Hits on Mirrored Web Sites," discloses a proxy server which includes a document cache for storing recently requested documents. Hence, the patent discloses a method for reducing latency by caching recently requested documents, in their entirety, at proxy servers.
U.S. Patent 5,935,207 also describes a relatively convoluted way to track requests for the documents. Document requests are tracked by maintaining "hit" reports
at the proxy server and sending a hit report to a remote (source) site upon receiving an authenticated request for the hit report.
U.S. Patent 6,023,268, entitled "Reducing Latency While Downloading Objects over a Network," discloses another method for reducing latency experienced by a client processing system when accessing the World Wide Web. As disclosed in the patent, the client processing system is coupled to a server processing system, and the client processing system includes a processor and a read-only memory (ROM). A first set of objects associated with at least one Web resource is stored in the ROM in the client processing system. In response to a request by the client processing system to access a Web resource, objects associated with the Web resource is provided to the client processing system, excluding any objects represented in the first set. In addition to use of ROM, the patent also discusses use of flash memory, and states that resources cached in the flash memory can be updated from the server via the Internet or a phone connection. Hence, U.S. Patent 6,023,268 discloses reducing latency by caching resources at a client processing system.
Both of the above two patents describe ways to reduce latencies in the delivery of Web content. Nevertheless, in order to deal with ever increasing demands for bandwidth, further techniques to achieve a reduction in latencies are highly desirable.
SUMMARY OF THE INVENTION
■ A method and system for facilitating distribution of multimedia content to a plurality of client terminals. The method and system reduces latencies in the delivery of Web and other multimedia content. In particular, the method and system circumvent bandwidth bottlenecks and inconsistencies in communicating over the Internet between a content source and a distribution center. Advantageously, such Internet-related bandwidth bottlenecks and inconsistencies are circumvented while providing a straightforward way to track requests ("hits") for the multimedia content. Moreover, a better quality of service for streaming video content (e.g., fewer dropped frames and less pausing during playback) is provided.
In accordance with an embodiment of the present invention, the multimedia content comprises a template with embedded multimedia objects. The multimedia objects are divided into a first set of objects and a second set of objects. The
first set of objects comprise objects which are stable over a period of time and may typically include large files such as streaming video clips and graphics. The second set of objects comprise objects which may change over that period of time and may typically include smaller files such as text files. The first set of objects are stored in a cache system at a distribution center, and the second set of objects are stored at the content source.
BRIEF DESCRIPTION OF THE DRAWINGS
Fig. 1 is a schematic diagram depicting a system 100 for distributing multimedia content in accordance with an embodiment of the present invention.
Fig. 2 is a flow chart depicting a method 200 for preparing a distribution system 100 to efficiently distribute a web page with embedded multimedia objects in accordance with an embodiment of the present invention.
Fig. 3 is a flow chart depicting a process 300 for propagating an update to the web page with embedded multimedia objects in accordance with an embodiment of the present invention.
Fig. 4 is a flow chart depicting, from the client terminal's perspective, a method 400 for retrieving and displaying the web page with embedded multimedia objects in accordance with an embodiment of the present invention.
Fig. 5 is a flow chart depicting a method 500 for distributing the html template for the web page in accordance with an embodiment of the present invention.
Fig. 6 is a flow chart depicting a method 600 for distributing embedded multimedia objects in accordance with an embodiment of the present invention.
DESCRIPTION OF THE SPECIFIC EMBODIMENTS
Fig. 1 is a schematic diagram depicting a system 100 for distributing multimedia content in accordance with an embodiment of the present invention. The system 100 includes an Internet 102, a plurality of content sources 104, a plurality of distribution centers (depicted as headends or H/E) 106, and a plurality of client terminals (depicted as set top boxes or STB) 108. A cache device 110 is coupled to each of the
distribution centers 106. In addition, a content source 104 is depicted as receiving objects from objects feeds 112, advertisement servers 114, image sources 116, and streaming video sources 118.
The plurality of content sources 104 are coupled to the Internet 102. For example, a content source 104 may comprise a web site portal such as Go2Net.com, or a news web site such as CNN.com, or other types of sources. Each content source 104 may have various objects feeds 112, servers 114, and sources 116/118 coupled to it.
For example, news or stock quote feeds 112 may be fed into the content source 104. Servers 114 may provide advertisements for insertion into multimedia content deliveredy by the content source 104. Sources 116/118 may provide images 116, streaming video 118, and other content to the content source 104. Various other feeds, servers and sources may also be coupled to the content source 104.
The Internet 102 comprises a network of networks and is well known in the art. Communications over the Internet 102 are accomplished using standard protocols such as TCP/IP (transmission control protocol/internet protocol) and other protocols. The Internet 102 is coupled to the plurality of distribution centers 106. For example, a distribution center 106 may comprise a cable headend (H/E).
A cache or storage system 110 is coupled to each distribution center 106. The cache system 110 may physically reside within the center 106. The cache system 110 may comprise, for example, a storage system which stores digital objects on a disk drive array or other storage devices.
Each distribution center 106 is coupled to a plurality of client terminals 108. For example, a client terminal 108 may comprise a set top box (STB), a personal computer, an interactive television set, or another type of communication device.
In alternative or in addition to the Internet 102 being used to distribute multimedia content from the content sources 104 to distribution centers 106, communications channels or networks 120 apart from the Internet 102 may couple one or more content source 104 to one or more distribution center 106. One example of such an alternate path for communications is illustrated in Fig. 1. Other configurations are also possible and meant to be included within the scope of the present invention.
Fig. 2 is a flow chart depicting a method 200 for preparing a distribution system 100 to efficiently distribute a web page with embedded multimedia objects in accordance with an embodiment of the present invention. As depicted, the method 200 includes four steps.
The web page with embedded multimedia objects comprises a html (hyper text markup language) template and various objects embedded therein. As an example, consider the embedded objects to include: graphics, streaming video relating to daily headlines, and "live" stock quotes or similar data or text. The graphics may include, for example, logos, icons, and commonly requested stock charts.
In a first step 202, the embedded multimedio objects are divided into two sets of objects. The first step 202 may be performed well in advance to the other steps of the process 200.
In the example being considered, a first set of objects may include the images described above (logos, icons, and commonly requested stock charts) and the streaming video relating to daily headlines. A second set of objects may include the live stock quotes. The first set of objects may typically include large files which are stable over a period of time. The second set of objects may typically include small files which may change over that period of time.
In a second step 204, the first set of objects is transmitted from the content source 104 to the distribution center 106. As described above, the first set of objects may typically include files which are stable over a period of time. The transmission may occur via the Internet 102, or alternatively via a separate communications channel or network 120.
Since the first set of objects may generally include files which are stable over a period of time, the transmission does not need to occur over that stable period of time. Instead, the transmission may be performed only after the first set of objects has been changed or updated. Alternatively, the transmission may be performed periodically (for example, on a daily basis during off-peak hours).
In a third step 206, the distribution center 106 receives the first set of objects from the source 104. The transmission of these objects from source 104 to center
106 may occur via the Internet 102 or some alternate communications channel (for example, the alternate channel 120 illustrated in Fig. 1).
In a fourth step 208, the first set of objects is stored at the distribution center 106. The storage may be performed at the cache system 110. The cache system 110 is described above in relation to Fig. 1.
Fig. 3 is a flow chart depicting a process 300 for propagating an update to the web page with embedded multimedia objects in accordance with an embodiment of the present invention. As depicted, the process 300 includes six steps.
In a first step 302 in the process 300 of Fig. 3, the web page with embedded multimedia content is updated at the content source 104. Such an update may be periodic (e.g., stock charts that are updated on a daily basis) or irregular (e.g., redesign of icons used in web page).
In a second step 304, a determination is made as to whether the update 302 has changed or added new objects to the first set of objects. If the first set of objects has not been changed or added to, then in a third step 306 the updating process ends.
On the other hand, if the first set of objects has been changed or added to, then in a fourth step 308 the changed or new objects are transmitted from the source 104 to the distribution center 106. Subsequently, in fifth 310 and sixth 312 steps these objects are received and stored at the distribution center, respectively.
Fig. 4 is a flow chart depicting, from the client terminal's perspective, a method 400 for retrieving and displaying the web page with embedded multimedia objects in accordance with an embodiment of the present invention. As depicted in Fig. 4, the method 400 includes six steps.
In a first step 402, the client terminal 108 transmits a request for the web page. In the request, the web page may be specified by a URL (universal resource locator) for the html template of the web page. The request is transmitted upstream towards the appropriate content source 104. For example, in the system 100 depicted in Fig. 1, the request would go through a corresponding distribution center 106 and then either through the Internet 102 or possibly another channel 120 to the content source 104.
As described below in relation to Fig. 5, this request for the html template may be fulfilled by the content source 104.
In a second step 404, the client terminal 108 receives the html template of the web page in response to the request. In this case, the web page has embedded multimedia objects. The html template has tags or links within it which point to files for the multimedia objects.
In a third step 406, browser or browser-like software at the client terminal 108 loads the html template and finds the tags or links within it. As just mentioned, these tags or links point to files for the multimedia objects.
Subsequently, in a fourth step 408, the client terminal 108 transmits requests for the multimedia objects. In the request, the files for the multimedia objects may be specified by a URL (universal resource locator). The requests are transmitted upstream towards the appropriate content source 104. As described below in relation to Fig. 6, some of these requests are fulfilled by the content source 104, while other of these requests are fulfilled from the cache system 110 at a corresponding distribution center 106.
In a fifth step 410, the client terminal 108 receives responses which include the requested files for the multimedia objects. As just mentioned, some of the responses originate at the content source 104, while other responses originate at the corresponding distribution center 106.
Finally, in a sixth step 412, browser or browser-like software at the client terminal 108 loads the multimedia objects into the html template. This results in the entire web page, including the embedded multimedia objects, being displayed at the client terminal 108.
Fig. 5 is a flow chart depicting a method 500 for distributing the html template for the web page in accordance with an embodiment of the present invention. As depicted in Fig. 5, the method 500 includes eight steps.
In a first step 502, the distribution center 106 receives from a client terminal 108 a http (hyper text transport protocol) message which requests the html
template for the web page. In a second step 504, a software (or possibly hardware) mechanism implemented within the distribution center 106 opens the http message and examines the request. Subsequently, in a third step 506, another (or the same) software (or possibly hardware) mechanism implemented within the distribution center 106 determines that the html template for the web page is not stored in the cache system 110. Hence, in a fourth step 508, the distribution center 106 forwards the http message with the request to the appropriate content source 104. Forwarding of the http message may be accomplished by way of a routing protocol and may occur via the Internet 102 or possibly via another communications channel 120.
In a fifth step 510, the content source 104 receives the http message which requests the html template for the web page. In a sixth step 512, a software (or possibly hardware) mechanism implemented within the content source 104 opens the http message and examines the request. In a seventh step 514, the content source 104 retrieves the html template for the web page. Finally, in an eighth step 516, the content source 104 transmits the html template to the client terminal 108.
Fig. 6 is a flow chart depicting a method 600 for distributing embedded multimedia objects in accordance with an embodiment of the present invention. As depicted in Fig. 6, the method 600 includes nine steps. The actual method 600 in Fig. 6 depicts the process for distributing a single multimedia object. For multiple objects, the method 600 must be repeated multiple times.
In a first step 602, the distribution center 106 receives from a client terminal 108 a http message which requests the file of an embedded object. In a second step 604, a software (or possibly hardware) mechanism implemented within the distribution center 106 opens the http message and examines the request.
Subsequently, in a third step 606, another (or the same) software (or possibly hardware) mechanism implemented within the distribution center 106 determines whether or not the file of the embedded object is not stored in the cache system 110. Generally, if the embedded object comprises an object from the first set of objects, then the object will be found to be stored in the cache system 110. On the other hand, if the embedded object comprises an object from the second set of objects, then the object will not be found to be stored in the cache system 110. As describe above, the first
set of objects comprise objects which are stable over a period of time and may typically include large files such as streaming video clips and graphics. The second set of objects comprise objects which may change over that period of time and may typically include smaller files such as text files.
If the file for the object is found in the cache system 110, then in a fourth step 608 the distribution center 106 transmits the file for the object to the client terminal 108. The request for the object is fulfilled directly from the distribution center 106. In this case, after the fourth step 608, the method 600 ends.
Advantageously, the direct fulfillment for these objects circumvents bottlenecks and inconsistencies in bandwidth of Internet connections, so latencies are reduced in responding to the request. Moreover, the direct fulfillment provides a better quality of service for objects which include streaming video content (e.g., fewer dropped frames and less pausing during playback).
Otherwise, if the file for the object is not found in the cache system 110, then in a fifth step 610 the distribution center 106 forwards the http message with the request to the appropriate content source 104. Forwarding of the http message may be accomplished by way of a routing protocol and may occur via the Internet 102 or possibly via another communications channel 120. In this case, in a sixth step 612, the content source 104 receives the http message which requests the file for the object. In a seventh step 614, a software (or possibly hardware) mechanism implemented within the content source 104 opens the http message and examines the request. In an eighth step 616, the content source 104 retrieves the file for the object. Finally, in a ninth step 618, the content source 104 transmits the file for the object to the client terminal 108.
While specific embodiments and applications of the present invention have been illustrated and described, it is to be understood that the invention is not limited to the precise configuration and components disclosed herein and that various modifications, changes, and variations which will be apparent to those skilled in the art may be made in the arrangement, operation, and details of the methods and system of the present invention disclosed herein without departing from the spirit and scope of the invention as defined in the following claims.