Method and apparatus for providing a guaranteed minimum level of performance for content delivery over a network
First Claim
1. A method for delivering an object to a requestor at a local computer, said method comprising the operations of:
- (a) receiving, at an intermediate computer, a request for an object that is primarily stored on a remote computer, the local computer being capable of coupling to the intermediate computer via a first network, and the intermediate computer being capable of coupling to the remote computer via a second network;
(b) determining whether the requested object is available from an object store associated with the intermediate computer, the object store providing temporary secondary storage for objects;
(c) when said determining (b) determines that the requested object is available from the object store,(c1) retrieving the requested object from the object store, and(c2) supplying the retrieved object obtained from the object store to the requestor; and
(d) when said determining (b) determines that the requested object is being obtained but is not presently available from the object store,(d1) awaiting for a determined amount of time for the requested object to become available from the object store,(d2) subsequently retrieving the requested object from the remote computer when the requested object is still not available after said awaiting for the determined amount of time, and(d3) thereafter supplying the retrieved object obtained from the remote computer to the requestor.
4 Assignments
0 Petitions
Accused Products
Abstract
A proxy system that offers connection services and acceleration services is disclosed. The acceleration services provide for accelerated delivery of content to requestors (e.g., clients) while guaranteeing a minimum level of service (for content delivery) to the requestors. The acceleration services are facilitated by improved techniques for rapid and efficient delivery of objects from a network (e.g., the Internet) to users. The improved techniques can be utilized in a variety of apparatuses, including a proxy having an acceleration apparatus (e.g., an acceleration server). The acceleration apparatus manages and monitors its utilization of processing resources so that performance of the proxy system can during worst case conditions guarantee a minimum level of service (for content delivery) to the requestors. The proxy system is also well suited for being scaled to provide additional processing resources.
223 Citations
20 Claims
-
1. A method for delivering an object to a requestor at a local computer, said method comprising the operations of:
-
(a) receiving, at an intermediate computer, a request for an object that is primarily stored on a remote computer, the local computer being capable of coupling to the intermediate computer via a first network, and the intermediate computer being capable of coupling to the remote computer via a second network; (b) determining whether the requested object is available from an object store associated with the intermediate computer, the object store providing temporary secondary storage for objects; (c) when said determining (b) determines that the requested object is available from the object store, (c1) retrieving the requested object from the object store, and (c2) supplying the retrieved object obtained from the object store to the requestor; and (d) when said determining (b) determines that the requested object is being obtained but is not presently available from the object store, (d1) awaiting for a determined amount of time for the requested object to become available from the object store, (d2) subsequently retrieving the requested object from the remote computer when the requested object is still not available after said awaiting for the determined amount of time, and (d3) thereafter supplying the retrieved object obtained from the remote computer to the requestor. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method for delivering content from a remote machine to a local machine, where the local machine couples to a proxy machine, and the proxy machine couples to the remote machine through a network of computers, said method comprising the operations of:
-
(a) intercepting, at the proxy machine, a web page request in route from the local machine to the remote machine through the network; (b) allowing the web page request to be sent from the proxy machine to the remote machine; (c) delivering the requested web page to the proxy machine, the requested web page includes at least one image file request embedded in the requested web page; (d) forwarding the requested web page from the proxy machine to the local machine; (e) identifying, at the proxy machine, the at least one image file request in the requested web page; (f) pre-fetching the identified at least one image file request, with the content for each of the image file requests being obtained from the remote machine associated with the image file request; (g) attempting to produce an accelerated version for the identified at least one image file request at the proxy machine; (h) issuing, from the local machine, the at least one image file request embedded in the requested web page subsequent to receiving the request web page at the local machine; (i) intercepting, at the proxy machine, the at least one image file request in route from the local machine to the remote machine through the network; (j) preventing the at least one image file request from being sent from the proxy machine to the remote machine for at least a determined period of time while said attempting (g) to produce the accelerated version of the identified at least one image file request is ongoing; (k) delivering the accelerated version of a requested image file for the identified at least one image file request to the local machine from the proxy machine when said attempting (g) completes within the determined period of time; and (l) alternatively, delivering an original version of the requested image file for the identified at least one image file request to the local machine from the proxy machine when said attempting (g) does not completes within the determined period of time, the original version of the requested image file being obtained by said pre-fetching (f) from the remote machine or by releasing said preventing (g) so that the at least one image file request is sent from the proxy machine to the remote machine. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A proxy system for distributing data objects, comprising:
-
a proxy server, said proxy server operates to receive an object request having a requested object from a network browser and to manage the forwarding of the requested object to the network browser, said proxy server being connected to a network; and an acceleration unit coupled to said proxy server, said acceleration unit being connected to the network through a second connection, said acceleration unit operates to identify the requested object, pre-fetch the requested object having an original size from a content provider coupled to the network, reduce the size of the retrieved object to a reduced size, and provide the requested object with the reduced size to said proxy server, wherein when the requested object with the reduced size is determined not to be available from said acceleration unit for more than a determined period of time, said proxy server obtains the requested object of the original size from said acceleration unit or from the content provider directly and provides the requested object having the original size to the network browser. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. A computer readable medium containing program instructions for delivering an object to a requestor at a local computer, said computer readable medium comprising:
-
first computer readable code for receiving, at an intermediate computer, a request for an object that is primarily stored on a remote computer, the local computer being capable of coupling to the intermediate computer via a first network, and the intermediate computer being capable of coupling to the remote computer via a second network; second computer readable code for determining whether the requested object is available from an object store associated with the intermediate computer, the object store providing secondary temporarily storage for objects; third computer readable code for retrieving the requested object from the object store, and supplying the retrieved object obtained from the object store to the requestor, when said second computer readable code determines that the requested object is available from the object store; and fourth computer readable code for awaiting for a determined amount of time for the requested object to become available from the object store, subsequently retrieving the requested object from the remote computer when the requested object is still not available after said awaiting for the determined amount of time, and thereafter supplying the retrieved object obtained from the remote computer to the requestor, when said second computer readable code determines that the requested object is being obtained but is not presently available from the object store.
-
-
20. A computer readable medium 19,
wherein the requested object is an image file, and the object store is an image store, wherein the requested image file stored in the image store includes at least an accelerated version of the requested image file, and wherein said second computer readable code determines whether the accelerated version of the requested image file is available from the image store.
Specification