throbber
as United States
`a2) Patent Application Publication co) Pub. No.: US 2002/0059371 A1
`
` Jamailet al. (43) Pub. Date: May16, 2002
`
`
`US 20020059371A1
`
`(54) CACHING PROXY STREAMING APPLIANCE
`SYSTEMS AND METHODS
`
`Publication Classification
`
`(76)
`
`Inventors: John M. Jamail, Columbus, OH (US);
`Samson F. Creasey, Columbus, OH
`(US)
`Correspondence Address:
`OLIFF & BERRIDGE, PLC
`P.O. BOX 19928
`ALEXANDRIA,VA 22320 (US)
`
`(21) Appl. No.:
`(22)
`Filed:
`
`09/970,767
`Oct. 5, 2001
`Related U.S. Application Data
`
`(63) Non-provisional of provisional
`60/248,842, filed on Nov. 16, 2000.
`
`application No.
`
`Int. Ch? oe GO6F 15/16; GO6F 15/167
`(51)
`(52) US. Ch.
`caececsssccesssstsssaseesssssesesas 709/203; 709/213
`
`67
`
`ABSTRACT
`
`Aclient machine connects directly to a proxy server without
`the knowledge or without a programmed expectation that the
`proxy server will connect to another serverat all. ‘The client
`machine sendsa request directly to the proxy server, expect-
`ing that the content requested by the client machine resides
`on the proxy server. The proxy server,if it does not contain
`the requested content, obtains the requested content from a
`second server without the client machine ever knowingthat
`the contentdid not originally reside on the proxy server, and
`was instead obtained from the second server.
`
`
`
`310
`
`SECONDARY
`CLIENT
`SERVER
`MACHINE
`
`340
`
` CONTENT
`
`
`PROXY CONTENT
`REQUEST
`
`312
`REQUEST322
`
`\
`
`
`
`
`CONTENT324
`
`CONTENT
`
`STORAGE
`
`DEVICE 330
`CONTENT
`
`
`LOCATION
`MAP334
`
`
`Data Co Exhibit 1037
`Data Co Exhibit 1037
`Data Co v. Bright Data
`
`Data Cov. Bright Data
`
`

`

`Patent Application Publication May 16, 2002 Sheet 1 of 11
`
`US 2002/0059371 Al
`
`AUVAINOOAS
`
`AAAS
`
`AUVANOODAS
`
`WAAUAS
`
`
`
`
`
`INFINODAXOUdINALNOOD»SSaUddv
`
`
`
`IsanomilLSanoTd
`
`INALNOO
`
`INHTNOO
`
`AXOUd
`
`UAAMAS
`
`Lavaordd
`
`I‘Old
`
`
`
`
`

`

`Patent Application Publication May 16, 2002 Sheet 2 of 11
`
`US 2002/0059371 Al
`
`=,OLLSANOTd
`
`
`“ee,LN@LNOO
`
`*
`
`AAVANOODAS
`
`UHAUAS
`
`INALNOD\
`
`AUVAGNOOAS
`
`TWn..ov
`
`LN‘LINOO
`
`OLLSANOAL
`
`AYVANOOTS
`
`\WAAUAS
`
`
`
`SNOMIANINSITOD
`
`
`
`AaVAGAVELHNIHOVA
`
`INALNOOS
`
`OLLSANOTY
`
`AUVAONODIS
`
`AXOUd
`
`AAAS
`
`Iavword
`
`cOld
`
`CALOAUIGAA
`
`JNALNOO
`
`AUAVANOOES/OLLSANOTA
`
`WAAUASINALNOO
`
`
`
`“on,INTaVdd¥
`
`“»«2..
`
`s‘
`"en,
`we
`we*
`we
`Ne
`Me
`
`eaeay
`
`a"
`
`ae
`
`woeeee
`
`ar
`
`oeLNTAVddV
`et_INALNOD
`
`
`
`
`

`

`Patent Application Publication May 16, 2002 Sheet 3 of 11
`
`US 2002/0059371 Al
`
`
`
`AUVANOOESLNGAITO
`
`
`
`WAAMHSHNTHOVIA
`
`OrIOlt
`
`INaAILNOO
`
`O01
`
`
`
`
`
`INALNOOAXOUdLSAnouwrd
`
`|
`
`77LSANOTATI
`
`
`
`ZblLNALNOO
`
`
`
`_-v@lLNALNOD
`
`LNTINOD
`
`HOVAOLS
`
`OTHOIANd
`
`€Old
`
`
`
`
`
`

`

`Patent Application Publication May 16, 2002 Sheet 4 of 11
`
`US 2002/0059371 Al
`
`AYUVANOOAS
`
`
`
`INAITO
`
`WAATS
`
`ove
`
`tCLNS.LNOOD
`
`
`
`
`
`INALNOOAXOUdLsanowa
`
`INALNOO
`
`HDVAOLS
`
`
`
`0¢tHOIANA
`
`CHALELAY
`
`LNALINOO
`
`c£eNOILLYOd
`
`vyDid
`
`CECLSANOAATIT
`
`’77LNHULNOD
`
`LNALNOO
`
`ANIHOVI
`
`OI?
`
`007
`
`
`
`
`

`

`Patent Application Publication May 16, 2002 Sheet 5 of 11
`
`US 2002/0059371 Al
`
`
`
`AUAVANODASLNATTO
`
`
`
`WAAAASANTHOVIN
`
`OreOle
`
`LINALNOO
`
`
`
`
`
`INATINODAKOUdISAnNOde
`
`AXOUd
`
`UHAAAS
`
`Oze
`
`INHINOD
`
`ADVUOLS
`
`
`
`OffAOTANC
`
`LNAINOD
`
`NOILVOOT
`
`
`
`betdVW
`
`gDId
`
`\7ceLSANOUTIE
`
`
`
`¥cfLNALNOO
`
`
`
`
`
`

`

`Patent Application Publication May 16,2002 Sheet 6 of 11
`
`US 2002/0059371 Al
`
`RECEIVE FIRST CONTENT REQUEST
`FROM CLIENT MACHINE
`
`
`
`GENERATE SECOND CONTENT
`REQUEST FROM FIRST CONTENT
`REQUEST
`
`TRANSMIT SECOND CONTENT
`| REQUEST TO SECONDARY SERVER(S)
`
`RECEIVE CONTENT CORRESPONDING
`TO SECOND CONTENT REQUEST FROM
`ONE OF THE SECONDARY SERVER(S)
`
`
`
`
`TRANSMIT CONTEXT RECEIVED FROM
`ONE OF THE SECONDARY SERVER(S)
`CORRESPONDING TO 2ND CONTENT
`REQUEST TO CLIENT MACHINE AS
`CONTENT CORRESPONDINGTO FIRST
`CONTENT REQUEST
`
`S110
`
`$120
`
`3130
`
`5140
`
`5150
`
`FIG. 6
`
`

`

`Patent Application Publication May 16, 2002 Sheet 7 of 11
`
`US 2002/0059371 Al
`
`$200
`
`RECEIVE FIRST CONTENT REQUEST
`FROM CLIENT MACHINE
`
`
`
`
`1s
`
`
`REQUESTED
`
`
`CONTENT
`
`AVAILABLE
`LOCALLY9
`
`
`
`TRANSMIT SECOND CONTENT
`
`REQUEST TO SECONDARY SERVER(S)
`
`RECEIVE CONTENT CORRESPONDING
`
`
`
`TO SECOND CONTENT REQUEST FROM
`
`ONE OF THE SECONDARY SERVER(S)
`
`TRANSMIT LOCALLY STORED
`CONTENT TO CLIENT MACHINE
`
`AS CONTENT CORRESPONDING
`
`
`
` TRANSMIT CONTENT RECEIVED FROM
`TO FIRST CONTENT REQUEST
`ONE OF THE SECONDARY SERVER(S)
`
`CORRESPONDING TO 2ND CONTENT
`REQUEST TO CLIENT MACHINE AS
`
`CONTENT CORRESPONDING TO FIRST
`CONTENT REQUEST
`
`
`
`FIG. 7
`
`

`

`Patent Application Publication May 16,2002 Sheet 8 of 11
`
`US 2002/0059371 Al
`
`$300
`
`RECEIVE FIRST CONTENT REQUEST
`FROM CLIENT MACHINE
`
`S310
`
`$320
`
`Is
`REQUESTED
`CONTENT
`AVAILABLE
`
`LOCALLY
`1
`
`
`TO SECOND CONTENT REQUEST FROM
`
`ONE OF THE SECONDARY SERVER(S)
`
`
`
`
`
`
`
`
`
`
`TRANSMIT SECOND CONTENT
` RECEIVE CONTENT CORRESPONDING
`
`REQUEST TO SECONDARY SERVER(S)
`
`
`STORE RECEIVED CONTENT SO THAT
`RECEIVED CONTENT IS AVAILABLE
`
`
`LOCALLYIN RESPONSE TO FURTHER
`
`
`REQUESTS FOR THAT CONTENT
`
`TRANSMIT LOCALLY STORED
`CONTENT TO CLIENT MACHINE
`
`AS CONTENT CORRESPONDING
`
`
`
`
`TRANSMIT CONTENT RECEIVED FROM
`TO FIRST CONTENT REQUEST
`ONE OF THE SECONDARY SERVER(S)
`CORRESPONDINGTO 2ND CONTENT
`
`REQUEST‘TO CLIENT MACHINE AS
`CONTENT CORRESPONDINGTO FIRST
`
`
`CONTENT REQUEST
`
`
`
`FIG. 8
`
`

`

`Patent Application Publication May 16,2002 Sheet 9 of 11
`
`US 2002/0059371 Al
`
`RECEIVE FIRST CONTENT REQUEST |
`FROM CLIENT MACHINE
`
`S410
`
`$420
`
`IS
`REQUESTED
`CONTENT
`Y¥
`AVAILABLE
`
`LOCALLY
`
`9
`DOES
`
`LOCALLY
`
`AVAILABLE
`
`CONTENT NEED
`
`UPDATING
`
`9
`
`
`TRANSMIT SECOND CONTENT
`
`REQUEST TO SECONDARYSERVER(S)
`
`$430
`
`
`
`
`
`
`
`RECEIVE CONTENT CORRESPONDING
`TO SECOND CONTENT REQUEST FROM
`ONE OF THE SECONDARY SERVER(S)
`
`STORE RECEIVED CONTENT SO THAT
`RECEIVED CONTENT IS AVAILABLE
`LOCALLY IN RESPONSE TO FURTHER
`REQUESTSFOR THAT CONTENT
`
`TRANSMIT LOCALLY STORED
`CONTENT TO CLIENT MACHINE
`
`
`AS CONTENT CORRESPONDING
`
`
`
`TRANSMIT CONTENT RECEIVED FROM
`TO FIRST CONTENT REQUEST
`
`ONE OF THE SECONDARY SERVER(S)
`
`
`CORRESPONDING TO 2ND CONTENT
`
`
`REQUEST TO CLIENT MACHINE AS
`CONTENT CORRESPONDING TO FIRST
`
`CONTENT REQUEST
`
`FIG. 9
`
`

`

`Patent Application Publication May 16,2002 Sheet 10 of 11
`
`US 2002/0059371 Al
`
`RECEIVE FIRST CONTENT REQUEST
`FROMCLIENT MACHINE
`
`DETERMINE ONEOR MORE
`SECONDARY SERVERS THAT STORE
`THE REQUESTED CONTENT BASED ON
`
`STORED CONTENT MAP
`
`IS
`REQUESTED
`CONTENT
`LOCATION STORED
`IN MAP
`?
`
`$530
`
`N
`
`TRANSMIT SECOND CONTENT
`REQUEST TO SECONDARYSERVER(S)
`
`INDICATED BY CONTENT MAP
`ONE OF THE SECONDARY SERVER(S)
`
`RECEIVE CONTENT CORRESPONDING
`TO SECOND CONTENT REQUEST FROM
`
`TRANSMIT CONTENT RECEIVED FROM
`ONE OF THE SECONDARY SERVER(S)
`CORRESPONDING TO 2ND CONTENT
`REQUEST TO CLIENT MACHINE AS
`CONTENT CORRESPONDING TO FIRST
`
`CONTENT REQUEST
`
`|
`
`
`
`SEARCH DISTRIBUTED
`NETWORK FOR ONE OR MORE
`SECONDARY SERVERS THAT
`STORE REQUESTED CONTENT
`
`!
`
`STORE SEARCH RESULTSIN
`CONTENT MAP
`
`S510
`
`$520
`
`$540
`
`$550
`
`5560
`
`$570
`
`.
`5580
`
`FIG. 10
`
`

`

`Patent Application Publication May 16,2002 Sheet 11 of 11
`
`US 2002/0059371 Al
`
`RECEIVE FIRST CONTENT REQUEST
`FROM CLIENT MACHINE
`
`5610
`
`$620
`
`5630
`
`is
`REQUESTED
`CONTENT
`Y
`AVAILABLE
`
`LOCALLY
`
`9
`DOES
`
`
`LOCALLY
`
`
`AVAILABLE
`
`
`CONTENT NEED
`
`UPDATING
`
`
`
`
`SECONDARY SERVERS THAT STORE
`THE REQUESTED CONTENT BASED ON
`STORED CONTENT MAP
`
`
`
`9
` DETERMINE ONE OR MORE
`
`
`TRANSMIT SECOND CONTENT
`REQUEST TO DETERMINED
`SECONDARY SERVER
`
`
` TRANSMIT LOCALLY STORED
`
`RECEIVE CONTENT CORRESPONDING
`TO SECOND CONTENT REQUEST FROM
`ONE OF THE SECONDARY SERVER(S)
`
`STORE RECEIVED CONTENT SO TITAT
`RECEIVED CONTENT IS AVAILABLE
`LOCALLYIN RESPONSE TO FURTHER
`REQUESTS FOR THAT CONTENT
`
`TRANSMIT CONTENT RECEIVED FROM
`ONE OF THE SECONDARYSERVER(S)
`CORRESPONDING TO 2ND CONTENT
`REQUEST TO CLIENT MACTIINE AS
`CONTENT CORRESPONDINGTO FIRST
`CONTENT REQUEST
`
`FIG. 11
`
`CONTENT TO CLIENT MACHINE
`AS CONTENT CORRESPONDING
`TO FIRST CONTENT REQUEST
`
`

`

`US 2002/0059371 Al
`
`May 16, 2002
`
`CACHING PROXY STREAMING APPLIANCE
`SYSTEMS AND METHODS
`
`BACKGROUND OF THE INVENTION
`
`[0001]
`
`1. Field of Invention
`
`[0002] This invention is directed to systems and methods
`for using a proxy server to cache and stream data streams.
`
`[0003]
`
`2. Description of Related Art
`
`[0004] Proxy servers are conventionally used in distrib-
`uted network environments for a variety of purposes. Tra-
`ditionally, a worldwide web proxyis implemented with the
`knowledge of the user. The user, communicating using a
`client machine, knowsthat a proxy server is present in the
`network. The user ultimately wishes to communicate with a
`destination server machine. The user also knowsthat the
`
`client machine must connectto this proxy server, rather than
`connecting to what the user believes to be the actual desti-
`nation server. In this case, which is shown in FIG. 1, the
`client machine connects to the proxy server that it knows
`about over the network.
`
`[0005] The client machine sends a message to the proxy
`server to inform the proxy server of the final destination
`serverthat the client machine wantsto talk to. In general, the
`client machine does this by providing the website name or
`URLaddress of the actual destination server (server B) to
`the proxyserver (server A), in addition to providing the file
`name on the actual destination server that is to be down-
`loaded to the client machine, where server A indicates the
`server the client machine thinks he is communicating with,
`and server B is another server in the communication loop. In
`response, the proxy server connects to the actual destination
`server. The proxy server then retrieves the file from the
`actual destination server and sendsthatfile back to the client
`machine.
`
`‘This use of a proxy server is particularly useful
`[0006]
`when the client wants to retrieve a file having a predeter-
`mined length, and which has no special transport require-
`ments, such as, for example, a web page, a program to be
`retrieved over the network,or the like, that are single pieces
`of data. In particular, this use of a proxy server is inappro-
`priate tor data streaming applications wherethe file may not
`have a fixed or predetermined length, and where the data is
`streamed such that there are significant transport require-
`ments which must be met for
`the data to be properly
`streamed to the client machine.
`
`[0007] Conventional transparent proxy servers are also
`used in distributed network environments. Conventional
`
`transparent proxy servers are proxy servers that are inte-
`grated into a network structure. Client machines often
`attempt to connect directly to actual destination servers that
`contain the files or data that the user wishes to download to
`the client machine. Thus, in this case, which is shown in
`FIG.2, in contrast to the traditional proxy servers described
`above and shown in FIG. 1,
`the client machine initially
`attempts to connect directly to the actual destination server
`that contains the desired download file, by outputting a
`request directed to the website name or URL address ofthe
`actual destination machine and containing the file name of
`the file the user wishes to downloadorretrieve.
`
`[0008] The distributed network hardware installed at the
`location of the client machine, or installed at an upstream
`
`point in the distributed network from the client, transpar-
`ently intercepts this request. This distributed network hard-
`ware forwards the intercepted request
`to the transparent
`proxy server. The transparent proxy server determines the
`web site name or URL address of the actual destination
`server, and generates a new requestto the actual destination
`machine for the file originally requested by the client
`machine. The transparent proxy server obtains the file from
`the actual destination machine and forwardsthe obtained file
`to the client machine.
`
`[0009] Because this method of proxying is integrated into
`the network, the transparent proxy server is able to deter-
`mine, from the network data, where the request from the
`client machine was originally destined for. As a result, the
`transparent proxy server can determinethe actual destination
`server to connect to in order to retrieve the requested file.
`
`the
`in conventional proxy servers,
`Importantly,
`[0010]
`clicnt machine, and thus the uscr, never actually “scces” the
`proxyserver. The client machineacts asif the client machine
`weredirectly connected to the actual destination server that
`the client machine originally submitted the request to. Thus,
`as far as the client machine knows, the client machine is
`communicating with the actual destination server (server A)
`when the client machine is really communicating with a
`transparent proxy server (server B). That is,
`to the client
`machine, the transparent proxy server is transparent in the
`sense that the client machine neversees the interaction ofthe
`
`transparent proxy server with the actual destination server.
`In other words,
`the client machine never knowsthat the
`transparent proxy serveris there at all.
`
`[0011] The transparent proxy server is particularly useful
`when the network administrator wants to control which
`servers the client machine directly communicates with. ‘This
`is usually done to create firewalls between the client
`machine and a distributed network that the client machine
`
`to. By using the transparent proxy server,
`can connect
`virus-infected files and attacks by hackers on the client
`machine can be trapped and defended against.
`
`SUMMARYOF THE INVENTION
`
`[0012] This invention provides systems and methods that
`implement a proxy server that communicates transparently
`with servers containing content desired by a chent machine
`that are not known bythe client machine.
`
`[0013] This invention separately provides systems and
`methods that implement a proxy server that caches content
`obtained from another server as the proxy server transmits
`the content to a client machine.
`
`[0014] This invention provides systems and methods that
`implement a proxy server that maps the locations of other
`servers from which the proxy server was able to obtain
`content requested by a client machine communicating with
`the proxy server.
`
`In various exemplary embodiments of the systems
`[0015]
`and methods according to this invention, the client machine
`connects directly to the proxy server without the knowledge
`or without a programmed expectation that the proxy server
`will connect to another server at all. The client machine
`
`sends a request directly to the proxy server (server A)
`expecting that the content requested by the client machine
`resides on the proxy server. The proxy server, if it does not
`
`

`

`US 2002/0059371 Al
`
`May 16, 2002
`
`contain the requested content, obtains the requested content
`from a second server (server B) without the client machine
`ever knowingthat the content did notoriginally reside on the
`proxy server, and was instead obtained from the server B.
`
`[0016] These and other features and advantages of this
`invention are described in, or are apparent from, the follow-
`ing detailed description of various exemplary embodiments
`of the systems and methods according to this invention.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`(0017] Various exemplary embodiments of this invention
`will be described in detail, with reference to the following
`figures, wherein:
`
`[0018] FIG. 1 is a block diagram of a network including
`a first conventional proxy server;
`
`[0019] FIG. 2 is a block diagram of a network including
`a second conventional proxy server;
`
`[0020] FIG. 3 is a block diagram of a network including
`a first exemplary embodimentof a proxy server according to
`this invention;
`
`(0021] FIG. 4 is a block diagram of a network including
`a second exemplary embodiment of a proxy server accord-
`ing to this invention;
`
`[0022] FIG. 5 is a block diagram of a network including
`a third exemplary embodiment of a proxy server according
`to this invention;
`
`
`
`[0023] FIG. 6 is a flowchart outlining a first exemplary
`embodiment of a method for responding to a content request
`according to this invention;
`
`[0024] FIG. 7 is a flowchart outlining a second exemplary
`embodiment of a method for responding to a content request
`according to this invention;
`
`[0025] FIG. 8 is a flowchart outlining a third exemplary
`embodimentof a method for responding to a content request
`according to this invention;
`
`
`
`the proxy server 120 would be
`[0030] Conventionally,
`able to transmit the requested content to the client machine
`110 only if the requested content were previously stored in
`a content storage device 130 of the proxy server 120.
`Otherwise, the proxy server 120 would transmit an error
`message to the client machine 110.
`
`In contrast, according to the systems and methods
`[0031]
`of this invention, if the proxy server 120 does not currently
`contain in the content storage device 130 the content iden-
`tified in the request 112 from the client machine 110, the
`proxy server 120 contacts one of the secondary servers 140
`of the network 100 that contains the requested content. In
`particular, the proxy server 120 generates a new request 122
`and directs that request 122 to a particular one of the
`secondary servers 140 that is known to contain the content
`identified in the request 112. This secondary server 140, in
`response to the request 122, transmits the requested content
`142 to the proxy server 120. The proxy server 120 then
`retransmits the content 142 received from the secondary
`server 140 to the client machine 110 as the content 124.
`
`[0032] Thus, in contrast to the traditional proxy server
`shown in FIG. 1, the client machine 110 does not need to
`know,or even identify to the proxy server 120, the name or
`address of the secondary server 140 that actually contains
`the content corresponding to the content request 112. Nor
`does the client machine 110 intend or care whether the proxy
`server 120 contacts a secondary server 140 to obtain the
`content 124 that corresponds to the content request 112.
`
`the interactions between the proxy
`[0033] Moreover,
`server 120 and the secondary server 140 are transparent to
`the client machine 110. However, in contrast to the conven-
`tional transparent proxy server shown in FIG. 2, where the
`client wishes to communicate with a secondary server but
`ends up communicating with a proxy server, according to the
`systems and methods of this invention, the client machine
`110 according to the systems and methods ofthis invention
`actually intends to communicate with the proxy server 120,
`not any of the secondary servers 140.
`
`
`
`[0034] Thus, according to the systems and methods ofthis
`[0026] FIG.9is a flowchart outlining a fourth exemplary
`invention,
`in various exemplary embodiments, the proxy
`embodimentof a method for responding to a content request
`server 120 connects to one or more secondary servers 140 to
`according to this invention;
`obtain the content that the user has requested, without the
`user ever knowing to which particular secondary server 140
`the proxy server 120 was connected to obtained the
`requested content, or even whether or not the proxy server
`120 has to connect to some secondary server 140 to obtain
`the requested content.
`
`[0027] FIG. 10 is a flowchart outlining a fifth exemplary
`embodimentof a method for responding to a content request
`according this invention; and
`
`[0028] FIG. 11 is a sixth exemplary embodiment of a
`method for responding to a content request accordingto this
`invention.
`
`DETAILED DESCRIPTION OF EXEMPLARY
`EMBODIMENTS
`
`[0029] FIG. 3 is a block diagram of a network 100
`including a first exemplary embodiment of a proxy server
`120 according to this invention. As shown in FIG.3, the
`network 100 includes a client machine 110, the proxy server
`120 and any number of distinct secondary servers 140. The
`client machine 110 generates one or more requests 112 for
`content and directs these requests 112 directly to the proxy
`server 120. The proxy server 120 receives these requests 112
`and transmits the requested content 124 back to the client
`machine.
`
`in various other
`It should be appreciated that,
`[0035]
`exemplary embodiments, the content storage device 130 can
`be omitted from the proxy server 120. In this case, the proxy
`server 120 has no native content that can be provided to the
`client machine as the content 124 in response to the request
`122. As a result, the proxy server 120 would need to obtain
`all requested content from the various secondary servers 140
`of the network 100.
`
`It should also be appreciated that, in various exem-
`[0036]
`plary embodiments,the proxy server 120 can contain,as part
`of the content storage device 130,a list or table of secondary
`servers 140 and the actual content, and/or the categories of
`content,
`that can be obtained from each such secondary
`server 140.
`It should further be appreciated that,
`if the
`
`

`

`US 2002/0059371 Al
`
`May 16, 2002
`
`content storage device is to be omitted because the content
`storage device 130 will not be used to store content,
`the
`content storage device 130 can be nonetheless retained to
`store this list or table of the secondary servers 140 and the
`actual content that can be obtained from each such second-
`ary server 140.
`
`It should further be appreciated that, in various
`[0037]
`exemplary embodiments, the proxy server 120 can obtain
`the content corresponding to the content request 112, when
`the proxy server 120 either does not contain that content in
`the content storage device 130, or the content storage device
`130 is either omitted or is not used to store content, by
`generating one or more web searchesto identify one or more
`secondary servers 140 that contain the content correspond-
`ing to the content request 112. It should also be appreciated
`that this can be used to augmentthelist or table of secondary
`servers 140 discussed above, should the list or table of
`secondary servers 140 fail to identify a secondary server 140
`that contains the requested content.
`
`[0038] FIG. 4 is a block diagram of a network 200
`including a second exemplary embodimentof a proxy server
`220 according to this invention. As shown in FIG.4, the
`network 200 includes a client machine 210, the proxy server
`220 and any number ofdistinct secondary servers 240. The
`client machine 210 generates one or more requests 212 for
`content and directs these requests 212 directly to the proxy
`server 220. The proxy server 220 receives these requests 212
`and transmits the requested content 224 back to the client
`machine.
`
`the proxy server 220 would be
`[0039] Conventionally,
`able to transmit the requested content to the client machine
`210 only if the requested content were previously stored in
`a content storage device 230 of the proxy server 220.
`Otherwise, the proxy server 220 would transmit an error
`message to the client machine 210.
`
`In contrast, according to the systems and methods
`[0040]
`of this invention,if the proxy server 220 does not currently
`contain in the content storage device 230 the content iden-
`tified in the request 212 from the client machine 210, the
`proxy server 220 contacts one of the secondary servers 240
`of the network 200 that contains the requested content. In
`particular, the proxy server 220 generates a new request 222
`and directs that request 222 to a particular one of the
`secondary servers 240 that is known to contain the content
`identified in the request 212. This secondary server 240, in
`response to the request 222, transmits the requested content
`242 to the proxy server 220. The proxy server then retrans-
`mits the content received from the secondary server 240 to
`the client machine as the content 224.
`
`in this second exemplary
`the same time,
`{0041] At
`embodimentof the proxy server 220, the proxy server 220
`also stores the content received from the secondary server
`240 into a retrieved content portion 232 of the content
`storage device 230. Thus,
`the next
`time the client 210
`transmits a request 212 to the proxy server 220 for that
`content, the proxy server 220 will have that content stored
`in the retrieved content portion 232 of the content storage
`device 230 as native content. As a result, the proxy server
`220 will not need to connect to the appropriate secondary
`server 240 from which that content 242 was originally
`obtained, and will be able to immediately transmit
`the
`content 224 in response to the request 212.
`
`It should be appreciated that, in various exemplary
`[0042]
`embodiments, the content storage device 230 can initially
`contain no native content. In this case, the proxy server 220
`initially has no native content that can be provided to the
`client machine 210 as the content 224 in response to the
`request 212. As a result, the first time the proxy server 220
`receives a request 212 for any particular content, the proxy
`server 220 would need to obtain that requested content 242
`from one of the secondaryservers 240 of the network 200.
`Thereafter, that requested content 242 would then be stored
`in the retrieved content portion 232 of the content storage
`device 230 as native content.
`
`It should also be appreciated that, in various exem-
`[0043]
`plary embodiments,the proxy server 220 can contain,as part
`of the content storage device 239,a list or table of secondary
`servers 240 and the actual content, and/or the categories of
`content,
`that can be obtained from each such secondary
`server 240.
`
`It should further be appreciatedthat, if the content
`[0044]
`242 in the retrieved content portion 232 of the content
`storage device 230 that was obtained from a secondary
`server 240 has become “stale”, when a next request 212 for
`that content 242 is received by the proxy server 220, the
`proxy server 220 can “refresh” that obtained content 242
`stored in the retrieved content portion 232 of the content
`storage device 230 by again connecting with the appropriate
`secondary server 240 to obtain a current version of that
`content 242. The proxy server 220 would then replace the
`“stale” version of that content 242 in the content storage
`device 230 with the current version of that content 242.
`
`It should be appreciated that the proxy server 220
`[0045]
`can use any knownorlater-developed method or technique
`to determine whether or not the content 242 that is stored in
`
`the retrieved content portion 232 is “stale” when a content
`request 212 that correspondsto that content 242 is received
`by the proxy server 220. For example, in various exemplary
`embodiments, the proxy server 220 can determine that the
`content 242 corresponding to a particular content request
`212 stored in the retrieved content portion 232 is “stale”
`based on one or more of the length of time that the content
`242 has beenstored in the retrieved content portion 232, the
`type of the content 242 stored in the retrieved content
`portion 232, expiration information embeddedin the content
`242 stored in the retrieved content portion 232, an explicit
`request in the received content request 212 for updated
`content, or the like.
`
`in various
`It should further be appreciated that,
`[0046]
`exemplary embodiments, the proxy server 220 can obtain
`the content 224 corresponding to the content request 212,
`when the proxy server 220 either does not contain the
`content 242 corresponding to that content request 212 in the
`retrieved content portion 232 of the content storage device
`230, or the version of the content 242 in the retrieved content
`portion 232 of the content storage device 230 is “stale”, by
`generating one or more web searchesto identify one or more
`secondary servers 240 that contain the content 242 corre-
`sponding to that content request 212. It should also be
`appreciated that this can be used to augmentthe list or table
`of secondary servers 240 discussed above, should the list or
`table of secondary servers 240) fail to identify a secondary
`server 140 that contains the content 242 corresponding to
`that content request 212.
`
`

`

`US 2002/0059371 Al
`
`May 16, 2002
`
`[0047] FIG. 5 is a block diagram of a network 300
`including a third exemplary embodiment of a proxy server
`320 according to this invention. As shown in FIG. 5, the
`network 300 includes a client machine 310, the proxy server
`320 and any number ofdistinct secondary servers 340. The
`client machine 310 generates one or more requests 312 for
`content and directs these requests 312 directly to the proxy
`server 320. The proxy server 320 receives these requests 312
`and transmits the requested content 324 back to the client
`machine.
`
`the proxy server 320 would be
`[0048] Conventionally,
`able to transmit the requested content to the client machine
`310 only if the requested content were previously stored in
`a content storage device 330 of the proxy server 320.
`Otherwise, the proxy server 320 would transmit an error
`message to the client machine 310.
`
`In contrast, according to the systems and methods
`[0049]
`of this invention, if the proxy server 320 does not currently
`contain in the content storage device 330 the content iden-
`tified in the request 312 from the client machine 310, the
`proxy server 320 contacts one of the secondary servers 340
`of the network 300 that contains the requested content. In
`particular, the proxy server 320 generates a new request 322
`and directs that request 322 to a particular one of the
`secondary servers 340 that is known to contain the content
`identified in the request 312. This secondary server 340, in
`response to the request 322, transmits the requested content
`342 to the proxy server 320. The proxy server then retrans-
`mits the content received from the secondary server 340 to
`the client machine as the content 324.
`
`In this third exemplary embodiments, the proxy
`[0050]
`server 320 contains, as part of the content storage device
`330, a list or table, or, more gencrally, a content location map
`334, of secondary servers 340 and the actual content, and/or
`the categories of content, that can be obtained from each
`such secondary server 340. Furthermore, in this third exem-
`plary embodiment, as the proxy server 320 obtains content
`342 from various ones of the secondary servers 340,
`the
`proxy server 320 updates the content location map 334, such
`that the content location map 334 forms a mapping ofthe
`various secondary servers 340 and the content 342, and/or
`one or more categories of content 342, that each secondary
`server 340 contains. As a result, if the proxy server 320
`needs to obtain a more current version of the content 342
`that corresponds to a particular content request 312 that is
`currently stored in the content storage device 330, the proxy
`server 320 can use the content location map 334 to identify
`which secondary server 340 stores the content to be updated.
`Similarly, if the proxy server 320 receives a content request
`312 for content 342 that is not stored in the content storage
`device 330, the proxy server 320 can consult the content
`location map 334 to identify which one or more of the
`secondary servers 340 have similar content and/or to iden-
`tify which one or more of the secondary servers 340 store the
`appropriate category of content and thus might store the
`content that correspondsto a particular content request 312.
`
`It should be appreciated that, in various exemplary
`(0051]
`embodiments, the proxy server 320 according to this third
`exemplary embodiment can be combined with the second
`exemplary embodimentof the proxy server 220.In this case,
`the proxy server 320 also stores the content received from
`the secondaryserver 340into a retrieved content portion 232
`
`of the content storage device 330. Thus, the next time the
`client 310 transmits a request 312 to the proxy server 320 for
`that content, the proxy server 320 will have that content
`stored in the content storage device 330 as native content. As
`a result, the proxy server 320 will not need to connectto the
`appropriate secondary server 340 from which that content
`342 wasoriginally obtained, and will be able to immediately
`transmit the content 324 in response to the content request
`312.
`
`It should be appreciated that, in various exemplary
`[0052]
`embodiments, the content storage device 330 can initially
`contain no native content. In this case, the proxy server 320
`initially has no native content that can be provided to the
`client machine as the content 324 in response to the request
`312. As a result, the first time the proxy server 320 receives
`a request 312 for any particular content, the proxy server 320
`would need to obtain the content corresponding to that
`particular content request 312 from one of the secondary
`servers 340 of the network 300. Thereafter,
`the content
`corresponding to that particular content request 312 would
`then be stored in the content storage device 330 as native
`content.
`
`It should further be appreciated that, as the content
`[0053]
`342 in the content storage device 330 that was obtained from
`a secondary server 340 has become “stale”, when a next
`request 312 for the content 342 corresponding to that
`particular content request 312 is received by the proxy
`server 320, the proxy server 320 can “refresh” the obtained
`content 342 correspondingto t

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket