`Starnes et al.
`
`US006144996A
`Patent Number:
`11
`(45) Date of Patent:
`
`6,144,996
`Nov. 7, 2000
`
`73 Assignee: Compaq Computer Corporation,
`Houston, TeX.
`
`21 Appl. No.: 09/133,482
`22 Filed:
`Aug. 12, 1998
`Related U.S. Application Data
`60 Provisional application No. 60/085,309, May 13, 1998.
`(51) Int. Cl." ...................................................... G06F 1300
`52 U.S. Cl. .............................................................. 709/217
`58 Field of Search ..................................... 709/201, 203,
`709/212, 213, 214, 216, 217, 218, 219
`
`OTHER PUBLICATIONS
`54 METHOD AND APPARATUS FOR
`PROVIDING A GUARANTEED MINIMUM
`LEVEL N
`?
`FOR RNT R. Fielding et al., “Hypertext Transfer Protocol-HTTP/1.1”,
`HTTP Working Group, Aug. 12, 1996, pp. 1-110.
`DELIVERY OVER A NETWORK
`“WinGate 2.1 is Officially Released”, www.wingate.net,
`75 Inventors: Darrell J. Starnes, Tomball; Amgad
`1997.
`M. Elwahab, Houston; Jeffrey R.
`“WinGate Opens the Internet Door”, LAN Times (www
`Gabler, Tomball; Steven C. Giap;
`.lanstimes.com/97/97jan/701b066a.html), Jan. 1997.
`Rupali M. Kothari, both of Houston;
`“Microsoft Proxy Server 1.0", Microsoft Corporation
`Svilen B. Pronev, Cypress;
`(www.microsoft.com/products/prodref/130 ov.htm).
`Christopher H. Stewart, Tomball, all
`“Microsoft Announces Proxy Server 2.0', Microsoft Cor
`of TeX.
`poration (www.microsoft.com/corpinfo/press/1997/oct97/
`proxy2pr.htm), Oct. 8, 1997.
`“Microsoft Proxy Server 2.0; What's New”, Microsoft Cor
`poration
`(www.microSoft.com/proxy/guide/
`whatsnew.asp?a=2&B=1).
`Microsoft Proxy Server 2.0; Technical Papers, Cache Array
`Routing Protocol (CARP) Whitepaper, Microsoft Corpora
`St. ownisononpoyal capweepia
`Primary Examiner Moustafa M. Meky
`Attorney, Agent, Or Firm Akin, Gump, Strauss, Hauer &
`Field, L.L.P.
`ABSTRACT
`57
`A proxy System that offers connection Services and accel
`eration Services is disclosed. The acceleration Services pro
`vide 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
`U.S. PATENT DOCUMENTS
`delivery of objects from a network (e.g., the Internet) to
`users. The improved techniques can be utilized in a variety
`5,673,322 9/1997 Pepe et al. ................................ 380.49
`of apparatuses, including a proxy having an acceleration
`5,727,159 3/1998 Kikinis .................................... 709/203
`apparatus (e.g., an acceleration server). The acceleration
`5,764,235
`6/1998 Hunt et al..
`apparatus manages and monitors its utilization of processing
`5,838,927 11/1998 Gillon et al. ............................ 709/203
`resources So that performance of the proxy System can
`5,852,717 12/1998 Bhide et al. ......
`... 709/203
`during worst case conditions guarantee a minimum level of
`5,918,013 6/1999 Mighdoll et al. .
`r 70203
`5,935,207 8/1999 Logue et al.......
`... 709/219
`Service (for content delivery) to the requestors. The proxy
`System is also well Suited for being Scaled to provide
`5,964,891 10/1999 Caswell et al. ........................... 71.4/31
`5.991,810 11/1999 Shapiro et al. ...
`... 709/229
`6,014,698
`1/2000 Griffiths ........
`7021 additional processing resources.
`6,041,355
`3/2000 Toga ..........
`... 709/227
`6,049,821 4/2000 Therianet ................................ 709/203
`20 Claims, 7 Drawing Sheets
`
`56)
`
`References Cited
`
`106
`
`164 BROWSER
`
`
`
`PROXY
`SERVER
`
`
`
`CONTENT
`SERVER
`
`a BROWSER
`
`
`
`O4 BROWSER
`
`
`
`ACCELERATION
`SERVER
`
`110
`
`a-100
`
`Akamai Ex. 1038
`Akamai Techs. v. Equil IP Holdings
`IPR2023-00332
`Page 00001
`
`
`
`U.S. Patent
`
`Nov. 7, 2000
`
`Sheet 1 of 7
`
`6,144,996
`
`90 ||
`
`
`
`
`
`
`
`
`
`
`
`001:
`
`0 || ||
`
`HESMO}}8
`
`}}ESWOH8
`
`IPR2023-00332 Page 00002
`
`
`
`U.S. Patent
`
`Nov. 7, 2000
`
`Sheet 2 of 7
`
`6,144,996
`
`200
`
`206
`
`PROXY FILTER
`
`PROXY CACHE
`
`208
`
`PROXY SERVER
`
`1N 202
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`R
`N
`E
`T
`
`OBSERVER
`
`RESOURCE
`MANAGER
`
`2O4
`
`ACCELERATOR
`
`MANAGER
`
`
`
`
`
`MAGE
`STORE
`MANAGER
`
`ACCELERATION SERVER
`
`FIG 2
`
`IPR2023-00332 Page 00003
`
`
`
`U.S. Patent
`
`Nov. 7, 2000
`
`Sheet 3 of 7
`
`6,144,996
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`AVAILABLE
`FROM MAGE
`STORE
`
`IMAGE
`"N PROCESS;
`
`PROXY SERVER REQUESTS
`IMAGE VIA NETWORK
`
`NO
`
`YES
`
`N7
`
`RETRIEVE ACCELERATED
`VERSION OF THE
`REQUESTED IMAGE
`FROM IMAGE STORE
`
`
`
`IMAGE
`RECEIVED
`
`O
`N
`
`NO
`
`32
`O
`
`YES
`ERROR
`
`32
`2
`
`FORWARD RETREVED IMAGE
`310 n-TOREQUESTOR
`
`(END)
`
`FIG 3
`
`IPR2023-00332 Page 00004
`
`
`
`U.S. Patent
`
`Nov. 7, 2000
`
`Sheet 4 of 7
`
`6,144,996
`
`GOs) 402
`
`DETERMINE SLOT NUMBER FOR
`THE REQUESTED IMAGE
`
`400 (308)
`--
`
`OBTAIN OBJECTS AND THEIR STATES
`FROM IMAGE STORE BASED ON
`THE DETERMINED SLOT NUMBER
`
`404
`
`B>
`
`SELECT A TARGET OBJECT
`BASED ON A PREFERENCE SCHEME
`
`406
`
`SWITCH ON STATE OF TARGET OBJECT
`
`4.08
`
`410
`
`
`
`OBTAN TARGET
`OBJECT FROM
`IMAGE STORE
`
`(310)
`
`412
`
`
`
`
`
`
`
`S
`TARGET
`OBJECT
`YESYN ORG
`NO
`
`418
`
`SWITCH ON STATE CHANGE
`
`
`
`
`
`416
`
`CHOOSE ANOTHER
`TARGET OBJECT
`
`414
`
`ERROR
`CONDITION
`
`B
`N7
`
`A
`N7
`
`F.G. 4
`
`IPR2023-00332 Page 00005
`
`
`
`U.S. Patent
`
`Nov. 7, 2000
`
`Sheet 5 of 7
`
`6,144,996
`
`y 500
`
`SLOT-1
`
`SLOT-2
`
`SLOT-3
`
`O O.
`
`O.
`
`SLOT-n
`
`s
`
`
`
`FIG. 5
`
`IPR2023-00332 Page 00006
`
`
`
`U.S. Patent
`
`Nov. 7, 2000
`
`Sheet 6 of 7
`
`6,144.996
`
`OBECT REO UEST
`PROCESSING
`
`600
`
`p1
`
`602
`
`
`
`
`
`DOES
`OBJECT
`EXIST
`
`608
`
`S
`OBJECT
`YESN READY
`
`610
`
`RETURN READY
`INDICATOR TO
`OBJECT REQUESTOR
`
`(END)
`
`WAIT ON READY EVENT
`(SHORT WAIT)
`
`614
`
`
`
`YES
`NO
`
`616
`
`S
`OBJECT
`YESN READY
`
`NO
`
`
`
`WAT ON READY EVENT
`(INTERMEDIATE WAIT)
`
`620
`
`
`
`N7
`
`YES
`E
`
`606
`
`RETURN OBJECT FAILURE
`INDICATION TO OBJECT
`REQUESTOR
`
`F.G. 6A
`
`IPR2023-00332 Page 00007
`
`
`
`U.S. Patent
`
`Nov. 7, 2000
`
`Sheet 7 of 7
`
`6,144.996
`
`
`
`
`
`S
`OBJECT
`READY
`
`WAIT ON READY EVENT
`(LONG WAIT)
`
`
`
`628
`
`RETURN OBJECT READY FAILURE
`NDICATION TO OBJECT
`REQUESTOR
`
`
`
`F.G. 6B
`
`IPR2023-00332 Page 00008
`
`
`
`6,144,996
`
`1
`METHOD AND APPARATUS FOR
`PROVIDING A GUARANTEED MINIMUM
`LEVEL OF PERFORMANCE FOR CONTENT
`DELIVERY OVER A NETWORK
`
`2
`will provide Substantially faster responsiveness to a user's
`requests than would the 28.8 kbps modem.
`Internet proxy servers have been used to allow multiple
`users to share Internet access through a common high Speed
`connection. Examples of Such Internet proxy servers are (1)
`WinGate available from Deerfield Communications Com
`pany and (2) Microsoft Proxy Server available from
`MicroSoft Corporation. Shared connections facilitate pro
`Viding firewalls to prevent unauthorized access into the
`users (e.g., corporate) internal computers. These shared
`connections can also provide the Hypertext Transfer Proto
`col (HTTP) caching to allow improved responsiveness.
`These Internet proxy Servers can also provide Site filtering to
`prevent user (behind the Internet proxy server) access to
`certain Internet Sites.
`HTTP caching operates to locally store frequently
`accessed Internet material So that it becomes quickly avail
`able when subsequently requested. HTTP caching is
`described in the Hypertext Transfer Protocol (HTTP), ver
`sion 1.1, which is hereby incorporated by reference. Such
`caching enables an organization to more efficiently share the
`bandwidth of the Internet connection.
`Content negotiation is also known and described in the
`HTTP, version 1.1. Content negotiation is the process in
`which a HTTP response to a HTTP request is chosen to be
`that which is most Suitable, assuming of course that there is
`a choice. The content negotiation can be client-driven or
`Server-driven. The content differences being negotiated can
`vary widely but are nevertheless Stored on a content Server
`on the Internet. AS an example, the content differences could
`be different languages or different Size imageS. In Such a
`case, a client may negotiate on behalf of a user with a
`content server to receive Smaller (e.g., less robust, lower
`quality, or Smaller image area) images instead of commonly
`provided larger images from the Server. If the content Server
`can provide the Smaller images, then the user is able to
`receive and display the information (e.g., images) faster than
`had their been no choice or no negotiation. Thus, in Some
`cases, the negotiation facilitates improved bandwidth utili
`Zation and responsiveness of the Internet.
`One problem with the conventional approaches to content
`delivery over the Internet is that most content servers do not
`offer multiple versions of information content. As a result,
`content negotiation, even if available, is not Supported by
`most content Servers. There are also no Standards on what
`types of Versions or variations of information content a
`content Server should make available. Consequently, content
`negotiation is difficult to obtain over the Internet.
`Another problem is that while caching can improve
`responsiveness of the Internet to requests, it speeds only
`Subsequent requests for the same information from a shared
`Internet connection. As a result, there is never any perfor
`mance improvement for initial requests for information
`content from the Internet.
`Thus, there is a need for improved techniques for rapid
`and efficient delivery of information content from the Inter
`net to a uSer.
`
`60
`
`65
`
`SUMMARY OF THE INVENTION
`Broadly Speaking, the invention relates to a proxy System
`that offers connection Services and acceleration Services.
`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. In other words, the acceleration Services pro
`Vided by the invention operate to improve responsiveness of
`
`CROSS-REFERENCE TO RELATED
`APPLICATIONS
`This application claims the benefit of U.S. Provisional
`Application No. 60/085,309, entitled “METHOD AND
`APPARATUS FOR STORAGE AND DELIVERY OF
`CONTENT", and filed on May 13, 1998, the disclosure of
`which is incorporated herein by reference for all purposes.
`This application is related to U.S. patent application Ser.
`No. 09/133,498, filed concurrently herewith, entitled
`“METHOD AND APPARATUS FOR PROVIDING
`ACCELERATED CONTENT DELIVERY OVER A
`NETWORK, still pending, and assigned to the assignee of
`the present application, which is hereby incorporated herein
`by reference for all purposes.
`This application is related to U.S. patent application Ser.
`No. 09/133,791, filed concurrently herewith, entitled
`“ACCELERATED CONTENT DELIVERY OVER ANET
`WORK USING REDUCED SIZE OBJECTS,” and assigned
`to the assignee of the present application, Still pending,
`which is hereby incorporated herein by reference for all
`purposes.
`This application is also related to U.S. patent application
`Ser. No. 09/133,497, filed concurrently herewith, entitled
`“METHOD AND APPARATUS FOR EFFICIENT STOR
`AGE AND RETRIEVAL OF OBJECTS IN AND FROM
`AN OBJECT STORAGE DEVICE,” and assigned to the
`assignee of the present application, Still pending, which is
`hereby incorporated herein by reference for all purposes.
`This application is also related to U.S. patent application
`Ser. No. 09/132,952, filed concurrently herewith, entitled
`“METHOD AND SYSTEM CONDENSING ANIMATED
`IMAGES, and assigned to the assignee of the present
`application, Still pending, which is hereby incorporated
`herein by reference for all purposes.
`This application is also related to U.S. patent application
`Ser. No. 09/133,514, filed concurrently herewith, entitled
`“IMAGE FORMAT CONVERSION WITH TRANSPAR
`ENCY COLOR ADJUSTMENT,” and assigned to the
`assignee of the present application, Still pending, which is
`hereby incorporated herein by reference for all purposes.
`BACKGROUND OF THE INVENTION
`1. Field of the Invention
`The present invention relates to information retrieval and,
`more particularly, to accelerated retrieval of content infor
`mation over a network.
`2. Description of the Related Art
`The Internet is a resource for tremendous amounts of
`content information. AS examples, the content information
`can include text, images or other types of data. A user
`normally accesses the Internet using a connection provided
`by a modem and a regular telephone line or ISDN line, or by
`a T1 line or leased line. The connection to the Internet may
`be indirectly through an Internet Service Provider (ISP) or
`more directly to the Internet (or World Wide Web). The
`higher the bandwidth supported by the connection, the better
`the responsiveness of the Internet to the user's requests. For
`example, Since a T1 line offerS Substantially greater band
`width than does a 28.8 kbps modem and regular telephone
`line, the connection to the Internet provided by the T1 line
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`IPR2023-00332 Page 00009
`
`
`
`3
`content delivery from a network (e.g., Internet) to
`requestors, yet at the Same time ensures that acceleration
`Services do not become overloaded or otherwise disruptive
`Such that the acceleration Services would hinder responsive
`CSS.
`The invention can be implemented in numerous ways,
`including as a method, an apparatus, a System, or a computer
`readable medium. Several embodiments of the invention are
`Summarized below.
`As a method for delivering an object to a requestor at a
`local computer, an embodiment of the invention includes the
`operations of 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 the Second network, 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,
`when it is determined that the requested object is available
`from the object Store, retrieving the requested object from
`the object Store, and Supplying the retrieved object obtained
`from the object Store to the requestor, and when it is
`determined that the requested object is being obtained but is
`not presently available from the object Store, 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 the
`awaiting for the determined amount of time, and thereafter
`Supplying the retrieved object obtained from the remote
`computer to the requestor.
`As 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, an
`embodiment of the invention includes the operations of:
`intercepting, at the proxy machine, a Web page request in
`route from the local machine to the remote machine through
`the network; allowing the web page request to be sent from
`the proxy machine to the remote machine, 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; forwarding the requested web page
`from the proxy machine to the local machine; identifying, at
`the proxy machine, the at least one image file request in the
`requested web page, 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; attempting to produce an accel
`erated version for the identified at least one image file
`request at the proxy machine; 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; 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;
`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 the attempting to produce
`the accelerated version of the identified at least one image
`file request is ongoing, 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 the attempting completes within the determined period
`of time; and alternatively, delivering an original version of
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6,144,996
`
`4
`the requested image file for the identified at least one image
`file request to the local machine from the proxy machine
`when the attempting does not completes within the deter
`mined period of time, the original version of the requested
`image file being obtained by the pre-fetching from the
`remote machine or by releasing the preventing So that the at
`least one image file request is Sent from the proxy machine
`to the remote machine.
`AS a proxy System for distributing data objects, an
`embodiment of the invention includes: a proxy server and an
`acceleration unit. The 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. The 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 the proxy server. Further, when the
`requested object with the reduced size is determined not to
`be available from the acceleration unit for more than a
`determined period of time, the proxy Server obtains the
`requested object of the original size from the acceleration
`unit or from the content provider directly and provides the
`requested object having the original Size to the network
`browser.
`AS a computer readable medium containing program
`instructions for delivering an object to a requestor at a local
`computer, an embodiment of the invention includes: 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 the Second network, Second com
`puter 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 the Second computer
`readable code determines that the requested object is avail
`able 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 the awaiting for the determined amount of time, and
`thereafter Supplying the retrieved object obtained from the
`remote computer to the requestor, when the Second com
`puter readable code determines that the requested object is
`being obtained but is not presently available from the object
`StOre.
`The advantages of the invention are numerous. One
`advantage of the invention is that accelerated delivery of
`content to requesting clients is achieved while at the same
`time being able to guarantee a minimum level of Service
`(e.g., responsiveness) to the clients. Substantial performance
`gains in responsiveness and bandwidth utilization are able to
`be achieved without running the risk that the acceleration
`processing overburden the System Such that what would
`otherwise be performance gains turn into performance
`losses. In one case, the invention provides in the worst case
`the same level of service that would be perceived by the
`client if the proxy System according to the invention were
`performing only connection Services as a conventional
`
`IPR2023-00332 Page 00010
`
`
`
`S
`proxy Server. Another advantage of the invention is that it
`mitigates the risk of implementing new features or functions
`to Server Systems by ensuring that they will not Severely
`degrade the level of Service provided.
`Other aspects and advantages of the invention will
`become apparent from the following detailed description,
`taken in conjunction with the accompanying drawings,
`illustrating by way of example the principles of the inven
`tion.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`The present invention will be readily understood by the
`following detailed description in conjunction with the
`accompanying drawings, wherein like reference numerals
`designate like Structural elements, and in which:
`FIG. 1 is a proxy System that provides improved data
`delivery over a network according to an embodiment of the
`invention;
`FIG. 2 is a block diagram of a proxy System according to
`an embodiment of the invention;
`FIG. 3 is a flow diagram of GET image processing
`according to an embodiment of the invention;
`FIG. 4 is a flow diagram of image retrieval processing
`according to an embodiment of the invention;
`FIG. 5 is a Schematic diagram of a representative slot
`organization within an image Store according to an embodi
`ment of the invention; and
`FIGS. 6A and 6B illustrate a flow diagram of object
`request processing according to an embodiment of the
`invention.
`
`15
`
`25
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`The invention relates to a proxy System that offers con
`nection Services and acceleration Services. 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. In
`other words, the acceleration Services provided by the inven
`tion operate to improve responsiveness of content delivery
`from a network (e.g., Internet) to requestors, yet at the same
`time ensures that acceleration Services do not become over
`loaded or otherwise disruptive Such that the acceleration
`Services would hinder responsiveness.
`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 tech
`niques can be utilized in a variety of Systems or apparatuses,
`including a proxy System having an acceleration apparatus
`(e.g., an acceleration server). Such a proxy System is able to
`produce an accelerated version of content information from
`the network, cache the accelerated version (and possibly
`original versions) for Subsequent requests for the same
`information content, and Supply the accelerated version of
`the information content to a requesting user.
`However, the additional acceleration Services provided by
`a proxy System according to the invention is an additional
`processing burden on the processing resources of the proxy
`System. In general, a proxy System operates as not only a
`Server but also provides access for a plurality of clients.
`However, due to finite processing resources of the proxy
`System, the level of Service provided to clients depends on
`the number of clients using the proxy System. In other
`words, if the processing overhead at the proxy System
`becomes to great, it adversely effects the level of Service
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6,144,996
`
`6
`provided to the clients. The processing overhead is a product
`of many various processing tasks performed by a proxy
`System. Often these processing tasks result in errors caused
`by the proxy System or due to throughput problems. The
`acceleration Services of the invention are also significant
`processing tasks. Clients of the proxy System will perceive
`that the remote Servers are at fault, not the proxy System.
`Also, failures at the proxy System limits or prevents the
`clients from accessing the remote Servers. Conventionally,
`when failures occur at the proxy System, an error is often
`returned to the client indicating that a retry at a later time is
`required. Alternatively, instead of a notification, the client
`would perceive a Severe reduction in the level of Service.
`The proxy System manages and monitors its utilization of
`processing resources (namely, for the acceleration Services)
`So that performance of the proxy System can during worst
`case conditions guarantee a minimum level of Service (for
`content delivery) to the clients. The proxy System according
`to the invention is also well Suited for being Scaled to
`provide additional processing resources and thus accommo
`date Services to more active or a growing number of clients.
`Embodiments of the invention are discussed below with
`reference to FIGS. 1-6B. However, those skilled in the art
`will readily appreciate that the detailed description given
`herein with respect to these figures is for explanatory
`purposes as the invention extends beyond these limited
`embodiments.
`FIG. 1 is a proxy system 100 that provides improved data
`delivery over a network. The proxy system 100 includes the
`proxy server 102 that couples to network browsers 104. The
`proxy server 102 is also coupled to the Internet 106. The
`Internet 106 is a collection of interconnected computer
`Systems, Some of which act as content servers. Accordingly,
`FIG. 1 illustrates the Internet 106 coupled to a content server
`108 as a representative one of the content Servers associated
`with the Internet 106. Additionally, the proxy system 100
`includes an acceleration server 110. The acceleration server
`110 couples to the proxy server 102 as well as the Internet
`106.
`The proxy system 100 is able to provide improved content
`(data) delivery over the Internet 106. Namely, the proxy
`System 100 operates to Speed up the response time that a user
`of one of the browserS 104 undergoes after requesting Some
`content from the content server 108 until the requested
`content is supplied to the user at the one of the browsers 104.
`The general operation of the proxy system 100 is as
`follows. Normally, as a user of one of the browsers 104
`makes a request for data from a content Server on the
`Internet 106. The proxy server 102 initially intercepts the
`request for data from the browser 104 and determines
`whether the request for data can be satisfied locally by the
`proxy server 102 or the acceleration server 110. When the
`proxy Server 102 determines that the request for data cannot
`be satisfied locally, the proxy server 102 forwards the
`request for data to the content server 108 through the
`Internet 106. In this case, the previously intercepted request
`for data is passed through the proxy server 102 to the content
`server 108 via the Internet 106 so that the request for data
`can be Satisfied in a conventional, unaccelerated manner.
`On the other hand, when the proxy server 102 determines
`that the request for data can be Satisfied locally with an
`improved response time (i.e., accelerated delivery) to the
`user, then the proxy Server 102 and the acceleration Server
`110 operate to Satisfy the request for data using information
`locally Stored, thereby avoiding the need to traverse the
`sluggish Internet 106 and retrieve the requested data from
`
`IPR2023-00332 Page 00011
`
`
`
`7
`the content server 108. Also, if the acceleration server 110
`believes it can Satisfy the request for data locally but the
`necessary information is not yet locally available, then the
`acceleration Server 110 operates to retrieve the requested
`data from the content server 108 with a pre-fetch operation
`and then locally Store the necessary information. Thereafter,
`the acceleration Server 110 can Satisfy the request for data
`from local Storage. In either of these cases, the data returned
`to the browser 104 in response to the request for data will not
`only be locally available but also be reduced in size (e.g.
`reduced file size). Both of these features contribute to the
`ability of the proxy system 100 to significantly improve the
`response time in which the requested data can be delivered
`to the browser 104. Accordingly, the proxy server 102 acting
`together with the acceleration server 110 is able to accelerate
`the delivery of the requested data to the user of the browser
`104 that has made the request.
`During normal operation of the proxy system 100, the
`addition of the acceleration server 110 to the proxy system
`100 causes the delivery of requested data to be delivered to
`a user in an accelerated manner. However, if the number of
`users (i.e., clients) being serviced by the proxy system 100
`becomes Significant and the number of accelerated versions
`needed at any point in time becomes too large for the
`acceleration Server 110 to handle, this concentrated proceSS
`ing burden can cause the performance of the acceleration
`server 110, and thus the proxy system, to degrade. The
`invention resolves this potential problem by managing the
`load on the acceleration server 110 Such that even in the
`Worst case condition the performance of the proxy server
`100 is, for example, no worse than it would be had the proxy
`System been a conventional proxy server (i.e., without
`acceleration capabilities).
`FIG. 2 is a block diagram of a proxy system 200 according
`to an embodiment of the invention. The proxy system 200
`includes a proxy server 202 and an acceleration server 204.
`AS an example, the proxy server 202 can correspond to the
`proxy server 102 illustrated in FIG. 1, and the acceleration
`server 204 can correspond to the acceleration server 110 in
`FIG. 1.
`The proxy server 202 includes a proxy filter 206 and a
`proxy cache 208. The proxy filter 206 monitors requests for
`data received from the browsers 104. The proxy filter 206
`then filters out those requests that it believes it can accelerate
`the delivery of the requested data to the user of the browsers
`104. The proxy filter 206 then forwards these requests that
`it believes it can accelerate to the acceleration server 204.
`The proxy cache 208 operates as a cache Storage area in
`which responses to earlier requests from the Internet 106
`made by the browsers 104 can be temporarily saved and
`satisfied thereafter from the proxy cache 208 if any of the
`browsers 104 make the same request for data while the data
`remains stored in the proxy cache 208. Hence, the proxy
`cache 208 provides local Storage for content data that was
`previously requested by one of the browsers 104, and thus
`provides rapid access to the same content data as long as the
`content data remains stored in the proxy cache 208.
`However, the content stored in the proxy cache 208 is not
`accelerated, but merely non-accelerated content obtained by
`the proxy server 202 from a content server through the
`Internet 106.
`It should be noted that conventional proxy servers include
`a cache to temporarily Store content obtained from a content
`Server via the Internet. An example of Such a conventional
`proxy server is Microsoft Proxy Server, produced by
`Microsoft Corporation. Hence, the proxy server 202
`includes the proxy cache 208 because the proxy system 200
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6,144,996
`
`8
`according to the invention can be built using a conventional
`proxy server Suitably modified to include primarily the
`proxy filter 206. In other words, the proxy cache 208 need
`not be included in the proxy server 202 of the proxy system
`200 or if provided can be disabled.
`The proxy filter 206 supplies those of the data requests it
`believes it can accelerate to the acceleration server 204. For
`example, in a data request (e.g., World Wide Web page
`request) can be evaluated to determine if it includes images.
`Given that images are Separate files that tend to have
`relatively large file sizes, images are good candidates for
`acceleration. Hence, a data request associated with one or
`more images files (such as many World Wide Web pages) is
`an example of a data request that the proxy filter