U.S. patent application number 10/306610 was filed with the patent office on 2003-05-01 for pseudo proxy server providing instant overflow capacity to computer networks.
This patent application is currently assigned to AT&T Corp.. Invention is credited to Blewett, Charles Douglas.
Application Number | 20030084159 10/306610 |
Document ID | / |
Family ID | 22811774 |
Filed Date | 2003-05-01 |
United States Patent
Application |
20030084159 |
Kind Code |
A1 |
Blewett, Charles Douglas |
May 1, 2003 |
Pseudo proxy server providing instant overflow capacity to computer
networks
Abstract
A pseudo proxy server is provided for a host network when the
host network experiences periods of congestion. The host network
determines whether an arrival rate of data requests exceeds a
predetermined threshold. If so, the host network adds an address of
a pseudo proxy server to a list of servers aliased to the host
network. Thereafter, data requests are routed to the pseudo proxy
server on a round robin basis. The pseudo proxy server may be
engaged without first loading information content from the host
network on the pseudo proxy server.
Inventors: |
Blewett, Charles Douglas;
(Morris County, NJ) |
Correspondence
Address: |
AHSAN + ASSOCIATES
P.O. BOX 251
HOPEWELL JUNCTION
NY
12533
US
|
Assignee: |
AT&T Corp.
|
Family ID: |
22811774 |
Appl. No.: |
10/306610 |
Filed: |
November 27, 2002 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
10306610 |
Nov 27, 2002 |
|
|
|
09217610 |
Dec 22, 1998 |
|
|
|
6526448 |
|
|
|
|
Current U.S.
Class: |
709/226 |
Current CPC
Class: |
H04L 67/1017 20130101;
H04L 67/1038 20130101; H04L 67/1012 20130101; H04L 67/1001
20220501 |
Class at
Publication: |
709/226 |
International
Class: |
G06F 015/173 |
Claims
I claim:
1. A method for managing overflow capacity in a computer network,
comprising: when a data request is received at the computer
network, determining whether an arrival rate of data requests
exceeds a predetermined threshold, if the predetermined threshold
is exceeded, adding an address of a pseudo proxy server to a list
of servers aliased to the computer network and sending a
recruitment message to the pseudo proxy server.
2. The method of claim 1, further comprising, thereafter routing
data requests to the pseudo proxy server on a round robin basis
with other servers of the computer network.
3. The method of claim 1, wherein the predetermined threshold is a
predetermined capacity of servers in the computer network.
4. The method of claim 1, wherein the predetermined threshold is a
predetermined bandwidth limit of a communications input to the
computer network.
5. The method of claim 1, wherein the pseudo proxy server is added
to the list of servers without first loading information content
from the computer network on the pseudo proxy server.
6. A method for fulfilling data requests at a pseudo proxy server,
comprising: receiving a data request at the pseudo proxy server,
determining whether the pseudo proxy server possesses a valid data
item responsive to the data request and whether the copy is valid.
if not, requesting the data item from a host network and furnishing
the data item in a response when it is received from the host
network.
7. The method of claim 6, wherein the determining step includes a
step of determining whether the pseudo proxy server has a copy of
the requested data stored locally.
8. The method of claim 6, wherein the determining step includes a
step of determining whether the pseudo proxy server has a copy of
the requested data stored locally and, even if so, whether an age
of the copy is less than a predetermine age limit for data
items.
9. The method of claim 6, further comprising, if the pseudo proxy
server possesses a valid data item responsive to the request,
furnishing the data item in a response.
10. The method of claim 6, further comprising, storing the data
item when it is received from the host network.
11. The method of claim 6, further comprising, thereafter, when
subsequent requests for the data item are received, furnishing a
copy of the stored data item in response to the data request.
12. A method for filling data requests at a pseudo proxy server,
comprising. receiving a data request at the pseudo proxy server, if
the data request involves a process to be performed by the pseudo
proxy server, requesting the process from a host network, receiving
the process, performing the process, and fulfilling the data
request.
13. A pseudo proxy service system, comprising a pseudo proxy server
network populated by a plurality of pseudo proxy servers, and a
recruitment server storing network addresses of the pseudo proxy
servers, selecting one of the addresses in response to a
recruitment request and furnishing the selected address in a
response message.
14. The pseudo proxy service system of claim 13, wherein the
recruitment server sends a message to the selected pseudo proxy
server.
15. The pseudo proxy service system of claim 13, wherein the pseudo
proxy servers operate according to the method of: receiving an
external request for data, determining whether the pseudo proxy
server possesses a valid data item responsive to the data request
and whether the copy is valid. if not, requesting the data item
from a host network and furnishing the data item in a response when
it is received from the host network.
Description
BACKGROUND
[0001] The present invention provides a resource management scheme
for a content provider in a computer network.
[0002] Predicting web server capacity can be a problem with serious
financial repercussions. Often a hosting provider maintains a
computer network and leases capacity to a content provider. The
hosting provider may be contractually obligated to guarantee that
it will provide server capacity sufficient to meet demand to the
content provider's site. A failure to meet demand may mean lost
revenue for the content provider. A failure to meet capacity
guarantees may mean lost revenue to the hosting provider. On the
other hand, providing static capacity for a content provider may be
financially disadvantageous to the hosting provider. If a server is
dedicated for the use of a first content provider but is under
used, the excess capacity could be used to service a second content
provider and generate additional revenues.
[0003] Ideally, a hosting provider would provide server resources
to a content provider in a manner that ebbs and flows with the
demand for service from the provider's site. New servers would be
added to the provider's site as the demand for the site increases.
The new server may be included in a round robin DNS pool of
machines and aliased to a particular host name. However, the act of
booting up a server and loading it with information content from
the content provider takes time. It may not be possible to load the
server in enough time to meet a sharp, unexpected rise in customer
demand. Accordingly, there is a need in the art for a resource
management scheme for host networks that dedicates new servers to
host sites in real-time with escalating demand.
SUMMARY
[0004] According to an embodiment of the present invention, a
pseudo proxy server is provided for a host network when the host
network experiences periods of congestion. When a data request is
received at the host network, the host network determines whether
an arrival rate of data requests exceeds a predetermined threshold.
If so, the host network adds an address of a pseudo proxy server to
a list of servers aliased to the host network. Thereafter, data
requests are routed to the pseudo proxy server on a round robin
basis. The pseudo proxy server may be engaged without first loading
information content from the host network on the pseudo proxy
server.
BRIEF DESCRIPTION OF THE DRAWINGS
[0005] FIG. 1 is a block diagram of a computer network constructed
in accordance with an embodiment of the present invention.
[0006] FIG. 2 is a flow diagram of a method of the host network
conducted in accordance with an embodiment of the present
invention.
[0007] FIG. 3 is a flow diagram of a method of the pseudo proxy
server conducted in accordance with an embodiment of the present
invention.
[0008] FIG. 4 is a block diagram of a computer network constructed
in accordance with an embodiment of the present invention.
DETAILED DESCRIPTION
[0009] The present invention provides a pseudo proxy server system
in which unregistered servers may be made to act as if they are
part of a host network on a rolling basis. The pseudo proxy server
may be added to a pool of servers and provide service to customer
requests immediately. According to the present invention, there is
no need to copy content from the content provider to the new server
prior to use. Instead, the pseudo proxy server accepts customer
requests immediately and copies content only as it is
requested.
[0010] FIG. 1 illustrates a block diagram of a pseudo proxy server
implemented according to an embodiment of the present invention.
FIG. 1 illustrates an Internet 100, a host network 110, a pseudo
proxy server 120 and a client terminal 130. The host network 110
may be populated by a DNS server 111 and a plurality of content
servers 112-118. The host network may be connected to the Internet
via a interface line 119 such as a Ti telephone line or the
like.
[0011] The content servers 112-118 store information content that
has been preloaded by content providers or the like. The content
servers 112-118 respond to connection requests from client terminal
130 and the like according to convention techniques in the art. The
content servers 112-118 also engage in a coordinated network
management process to monitor the performance of the host network
110. As is known, a "monitoring process" of the host network 110
monitors, for example, bandwidth availability on line 119, disk or
CPU availability of the various content servers 112-118 and other
operating conditions of the host network 110 that relate to its
ability to handle other connection requests. The known http log
monitoring process is an example of such a monitoring process.
[0012] The DNS server 110 stores a "DNS pool" (not shown), a table
that associates a machine name of the host network 110 with the IP
addresses of the content servers 112-118. An example of a machine
name is "www.att.com." Typically, when the DNS is presented with
the machine name of the host network 110, it retrieves an IP
address of one of the content servers 112-118 on a round robin
basis. A client terminal 130, once it has received the IP address
of a content server 112 would direct a connection request to the IP
address. As is known, a DNS server 111 may be provided within the
host network 110 as shown in FIG. 1 but also may be provided
elsewhere on Internet 100.
[0013] The pseudo proxy server 120 is a traditional computer
server. Typically, it is provided in communication with Internet
100 from a location that is spatially separated from the host
network 1 10.
[0014] As is typical in the art, each of the content servers
112-118 and the pseudo proxy server 120 possess connect queues (not
shown) in which they are able to receive and buffer a predetermined
number of connection requests. As is known, the incoming requests
are queued in an operating system kernel. The number of connection
requests that can be buffered by a single server is finite and
predetermined. When a content server (say, server 112) buffers its
maximum number of connection requests, any additional connection
requests to that content server 112 fail. As noted, failed
connection requests are undesirable.
[0015] FIG. 2 illustrates a method of operation that may be
conducted by the monitoring process in accordance with an
embodiment of the present invention. The method may be invoked
periodically, such as once per minute, or upon the receipt of a new
connection request to the host network 110. According to the
method, the monitoring process measures an arrival rate of new
connection requests (Step 1010). The monitoring process also
determines whether the arrival rate of customer requests exceeds a
predetermined threshold (Step 1020). If so, the monitoring process
causes the pseudo proxy server 120 to be signaled with a
"recruitment" message to indicate that the pseudo proxy server 120
should thereafter provide service on behalf of the host network 110
(Step 1030). The monitoring process adds an address of the pseudo
proxy server 120 to the DNS pool (Step 1040).
[0016] If, at step 1020, the host network is not operating in a
congested state, the monitoring process removes the IP address of
any pseudo proxy server from the DNS pool (Step 1050).
[0017] Typically, the predetermined threshold is established
according to capacity limitations of the host network 110. For
example, it may be set to 95% of the total capacity of content
servers 112-118 or, if the capacity of line 119 could be
bandwidth-limiting to the host network 110, to 95% of the bandwidth
limit of line 119.
[0018] During peak loading periods, when the arrival rate exceeds
the predetermined capacity threshold, a first call to the method
1000 will cause the address of the pseudo proxy server to be added
to the DNS pool. Thereafter, name server requests to the DNS server
111 will cause the IP address of the pseudo proxy server 120 to be
returned to the client terminal 130. The client terminal 130 will
direct its connection request tot he pseudo proxy server 120 rather
than a content server of the host network 110. Thus, requests to
the congested content servers 112-118 will decrease instantly by a
factor of 1/(n+1), where n is the number of content servers
provided in the host network 110. This decrease in customer
requests that are processed within the host network 110 permits the
congested content servers 112-118 to reduce the number of buffered
requests and work their way out of a congested state.
[0019] The present invention cooperates with traditional Internet
routing. As is known, the Internet 100 also is populated by a
number of DNS servers 140-170 organized into a predetermined
hierarchy of levels. When a client terminal 130 attempts to connect
to a host network 110, it communicates with a closest DNS server
140 to resolve the host's machine address (www.att.com) to an IP
address. The DNS server 140 may or may not have stored a copy of
the DNS pool stored by DNS 111. If it does not, the DNS server 140
communicates with other DNS servers of the Internet 100 to resolve
the machine address into an IP address. Once DNS server 140 obtains
a copy of the DNS pool, it selects one of the IP addresses and
provides it to the client terminal 130. The client terminal directs
a connection request to the selected content server (say, server
112).
[0020] After the machine address is resolved, the DNS server 140
also stores the DNS pool locally. If it receives the same machine
address from the same client terminal (or another terminal), it may
resolve the machine address without having to communicate with
other servers. Typically, each DNS server 140-180 of the Internet
100 stores a DNS pool only for a predetermined time; they expire
when the predetermined time period concludes.
[0021] After the congestion events subside, the DNS servers'
association between the pseudo proxy server and the host network's
Internet address will expire according to known techniques.
[0022] The method 1000 may continue to operate even after a first
pseudo proxy server 120 is engaged. If the rate of connection
requests to the host network 110 continues to rise and the host
network again reaches a congestion condition, the method 1000 may
engage additional pseudo proxy servers (not shown).
[0023] Returning to FIG. 1, it will be appreciated that a
percentage of customer requests are routed to the pseudo proxy
server 120 located elsewhere in Internet 100. As noted above, the
pseudo proxy server 120 is not pre-loaded with information content
from the host network 110. FIG. 3 illustrates a method of operation
of the pseudo-proxy server 120 conducted in accordance with an
embodiment of the present invention.
[0024] The method 2000 may begin when the pseudo proxy server 120
receives a request that has been routed to it (Step 2010). Upon
receipt, the pseudo proxy server 120 determines whether it
possesses valid data that can satisfy the data request (Step 2020).
If so, the pseudo proxy server 120 furnishes the requested data in
response to the data request (Step 2030).
[0025] If the pseudo proxy server 120 cannot satisfy the data
request, it requests data from the host network 110 (Step 2040).
Upon receipt of the requested data, the pseudo proxy server 120
stores the data (Step 2050) and furnishes it in response to the
data request at Step 2030.
[0026] In many applications, when a host network experiences an
unexpectedly high number of data requests, the requests typically
request the identical information. Consider, as an example, an
application where a host network 110 stores news. Exemplary
Internet news services, at the time of this writing, may be found
at www.cnn.com and www.washingtonpost.com. There may be others.
These networks may store a variety of information content related
to news items as diverse as national news, international news,
sports and the arts. Within each topical category of news, there
may be hundreds of articles relating to various newsworthy events.
However, in a typical application, when a news organization
experiences a unexpectedly high demand for information content, the
demand will be related to a breaking news event--one that is
covered in a single or very few number of news articles.
[0027] If the pseudo proxy server 120 were used to provide overflow
service in such an event, operation of the method 2000 of FIG. 3
will cause the pseudo proxy server 120 to receive a number of data
requests, each directed to the same article or set of articles.
Upon receipt of the first such request, the pseudo proxy server 120
would not have a copy of the article stored locally. It would
progress through Steps 2040 and 2050 to obtain one from the host
network 110. Thereafter, however, when it continues to receive
requests to the same article describing breaking news, the pseudo
proxy server 120 would have a copy of the article stored locally
and would furnish it in a response without having to contact the
host network 110 according to steps 2040-2050. Again, the pseudo
proxy service permits a server to be placed in service without
having to store a priori all information content from the host
network 110 locally at the pseudo proxy server 120.
[0028] During use, the pseudo proxy server 120 may receive several
requests for the same information simultaneously. That is, it may
receive two requests for the same information sequentially. In
response to the first received request, the pseudo proxy server 120
obtains the requested data from the host network 110. The pseudo
proxy server 120 may process transactions in such a way that it
begins processing of a second transaction before processing of a
first transaction has completed. In such an embodiment, the pseudo
proxy server 120 may begin processing of the second data request
before data associated with the first transaction has been received
from the host network 110 according to Step 2050. The pseudo proxy
server 120 preferably contains software control that, for a second
data request, "looks ahead" and determines whether the server 120
will receive the requested data pursuant to an earlier-received
(first) data request. In such a case, the pseudo proxy server 120
may stall processing of a second data request to the same
information content to avoid communicating twice with the congested
host network 110.
[0029] The pseudo proxy server 120 may perform any number of checks
to determine whether it stores a valid copy of requested data
locally. In a first simplest embodiment, it may determine that data
is valid if it possesses a copy of the requested data. In other
embodiments, a host network may define that information content
from the network is valid only for a predetermined time. For
example, according to the known Hypertext Transfer Protocol
("HTTP"), data may be assigned an expiration time; data is
considered valid until the expiration time is reached. Even if the
pseudo proxy server 120 stores a copy of the requested data, it may
determine that the copy is invalid because its age exceeds the
predetermined time defined by the host network 110. If the copy of
data is invalid because it is too old, the pseudo proxy server 120
obtains another newer copy of the data according to Steps
2040-2050.
[0030] In other embodiments, the host network 110 may be configured
to broadcast messages to invalidate data stored by its own content
servers 112-118 and any pseudo proxy servers 120 that may be acting
on its behalf. These "kill" messages may be broadcast by the host
network 110 when information content of a data item changes.
Typically, a data item is amended by a user. When the data item is
amended, a server in the host network 110 addresses a kill message
to all servers listed in the DNS pool of router 111. The kill
message identifies the old data item. In response, the servers
112-118, 120 mark the old data items (if any are stored) as
invalid.
[0031] According to an embodiment of the present invention, a
pseudo proxy service may be provided as a network service to
content providers. FIG. 4 illustrates a computer network
constructed in accordance with such an embodiment. There, an
Internet 200 is provided in communication with a host network 210
and a client terminal 220. The Internet 200 also is provided in
communication with a recruitment server 230 and a proxy network
240. The proxy network 240 may be populated servers 241-246
according to any number of known network topologies.
[0032] The recruitment server 230 performs administrative processes
related to the pseudo proxy service. It maintains a table of all
servers that may provide the pseudo proxy service to host networks.
In the example of FIG. 4, the recruitment server 230 would maintain
addresses of servers 242-246. The recruitment server 230 may
possess other functionality that would be conventional to a
commercial service. For example, it may perform validation and
billing functions that are typical to many commercial computer
implemented services.
[0033] In the embodiment of FIG. 4, the monitoring process of the
host network 210 may operate in accordance with the method 1000 of
FIG. 2. If the monitoring process reaches step 1030, the monitoring
process directs the recruitment messages to the recruitment server
230. The recruitment server 230 recalls an address of an available
server in the pseudo proxy network 240 (say, server 242) and
returns the address to the host network 210 monitoring process.
Thereafter, the method 1000 proceeds normally.
[0034] Before providing the IP address of the selected server 242
to the host network 110, the recruitment server 230 communicates
with the selected server 242 and provides it with information
indicating that it should provide overflow support for host network
210. In the embodiment of FIG. 4, the method 2000 of FIG. 3 may be
performed by the server 242 selected by the recruitment server.
[0035] The principles of the present invention also are applicable
to extend server operations that require execution of server
processing to fulfill data requests. A common example is the known
Common Gateway Interface ("CGI"), a tool commonly used for creating
web pages dynamically, among others. According to an embodiment of
the present invention, when a pseudo proxy server 120 (FIG. 1)
encounters a data request that requires execution of a CGI process,
(and the pseudo proxy server 120) does not store the process, the
pseudo proxy server requests the process from the host network 110.
(FIG. 3, Step 2040) along another that may be required to complete
the data request (e.g. web page content). In this embodiment, the
request made by the pseudo proxy server 120, at step 2040
identifies the pseudo proxy server's status and distinguishes it
from client terminals such as terminal 130. In response, the host
network 110 transfers the processes (and data, if requested) to the
pseudo proxy server 120. Once received, the pseudo proxy server
executes the process and completes the data request.
[0036] One of the benefits of the present invention is that the
pseudo proxy 120 may be employed without having to modify any
communication protocols that may be defined for the client terminal
130. The addition or removal of a pseudo proxy server 120 is
transparent to the client terminal 130. In this manner, the pseudo
proxy server 120 operates differently than known proxies which
typically have their own predefined protocol.
[0037] Several embodiments of the present invention are
specifically illustrated and described herein. However, it will be
appreciated that modifications and variations of the present
invention are covered by the above teachings and within the purview
of the appended claims without departing from the spirit and
intended scope of the invention.
* * * * *
References