WO2001014990A1 - Method for content delivery over the internet - Google Patents

Method for content delivery over the internet Download PDF

Info

Publication number
WO2001014990A1
WO2001014990A1 PCT/US2000/022964 US0022964W WO0114990A1 WO 2001014990 A1 WO2001014990 A1 WO 2001014990A1 US 0022964 W US0022964 W US 0022964W WO 0114990 A1 WO0114990 A1 WO 0114990A1
Authority
WO
WIPO (PCT)
Prior art keywords
server
user
information
database
address
Prior art date
Application number
PCT/US2000/022964
Other languages
French (fr)
Inventor
Jesse Chou
Jonathan Stockley
James Teske
Chung-Kao Hsieh
Emil Chang
Original Assignee
Webever, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Webever, Inc. filed Critical Webever, Inc.
Priority to AU67951/00A priority Critical patent/AU6795100A/en
Publication of WO2001014990A1 publication Critical patent/WO2001014990A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1021Server selection for load balancing based on client or server locations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/10015Access to distributed or replicated servers, e.g. using brokers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Definitions

  • the present invention generally relates to content distribution and user request redirection over the internet, and, in particular, the distribution of all types of data (including dynamic and static web pages, e- commerce transactions, email messages, banner ads, etc.) over the internet and the redirection/rerouting of a web content request from one server to another server.
  • data including dynamic and static web pages, e- commerce transactions, email messages, banner ads, etc.
  • BACKGROUND Traditional internet web sites generally are hosted at one location (i.e. at one server or a cluster of servers at one physical location).
  • the server for ABC website (as illustrated) is on a server located in New York 10.
  • User requests from various localities e.g. Seattle 12, San Jose 14, L.A. 16, Taipei 18, Boston 20, and New York 22, are all routed to this one server located in New York 10.
  • a single location constitutes a single point of failure. For example, if a catastrophe happens at this physical location, web sites at this locality will go down. With mission critical web sites, such as e-commerce sites, this is not an acceptable situation.
  • the present invention provides methods for allowing a website (or any content) to be distributed and delivered on several servers located at various geographic locations and for redirecting user requests from the home server to a server that can provide the best performance to that particular requesting user (the preferred support server).
  • the original home server and all other support servers hosting the distributed content are provided with an agent.
  • a user's request to the home server of a website is processed whereby the user's IP address, along with other information, is used to determine the preferred support server (which also can be the home server itself).
  • the requested web page is then compiled with the universal resource index (URI) of the preferred support server and sent back to the user.
  • URI universal resource index
  • Javascripts for generating cookies may also be attached to the compiled web page such that the user's time zone and the URI (among other information) of the preferred support server can be inserted into the cookie where one or more of these cookies may be returned to the support server the next time a web page is requested from this website.
  • the agent In the subsequent requests for content from this website, one or more cookies will be sent along with the request and the information in the cookie can be used by the agent to minimize redirection computations, to gather necessary statistical information on end users; and to conduct load balancing. In this manner, a content distribution and redirection network is established.
  • An advantage of the present invention is that it provides a method for a content delivery network.
  • Another advantage of the present invention is that it provides a content delivery network having intelligent routing of user requests to the server that can provide the best performance to the particular requesting user.
  • Yet another advantage of the present invention is that it provides a method for load balancing in a content delivery network.
  • Fig. 1 illustrates the traditional method in accessing a website on the internet.
  • Fig. 2 illustrates a conceptual diagram of the method of the present invention.
  • Fig. 3 illustrates an embodiment of the present invention for a content distribution network.
  • Fig. 4 illustrates a system view of the components of the preferred embodiment of the present invention and the interaction among them.
  • Fig. 5 illustrates a detailed view of the components of the preferred embodiemtn of the present invention and the interaction among them.
  • Figs. 6A and 6B illustrate the process flow in processing a user request.
  • Fig. 7 illustrates an alternative embodiment of the present invention whereby several companies can be peered using the present invention.
  • a first server for hosting ABC website is located at a first locality, e.g. New York 30 and a second server for hosting ABC website is located at a second locality, e.g. San Jose 32.
  • the two websites may have the exact same content or may have specific localized content suited for each locality.
  • Each website would have its own IP address.
  • a content delivery agent (CDA) of the present invention is placed at each locality and next to each web server, 34 and 36.
  • the CDA will perform a number of tasks, including the identification of the geographical location of the user .requesting web content and the routing of the request to the preferred support server that will provide the highest performance to that particular requesting user.
  • a user at a client computer 40 uses a browser to request a web page from a specified website.
  • the website may have its own database 46 as well (which is supported by the present invention as well in the distribution and synchronization of the database contents).
  • the initial request 42 goes through the internet and arrives at the specified website 44, this site 44 being a site enabled by an CDA of the present invention.
  • the agent-enabled web server makes a number of calculations and database inquiries 47 working in conjunction with a content delivery management (CDM) server 50 and a database server 56 to arrive at a determination as to the best support server to service this user's request.
  • CDM content delivery management
  • this CDA 48 can communicate 55 with another CDM server 52 and database server 54 to make that determination.
  • the user is directed to the server that can provide the highest performance to the user, based on constant re-evaluation of the parameters such as the server load and content, end user location, mobile end users (e.g. using the wireless application protocal (WAP)), load balancing, cost balancing, and specific traffic routing.
  • WAP wireless application protocal
  • a message is sent 49 from the first server 44 to the determined support server 48.
  • the determined support server 48 then provides 51 the requested information to the user 40 (instead of the server 44).
  • all references to the term support server may include the home server (the original web server) as well.
  • the result of this determination is then communicated 47 back to the CDA for compilation into the server response to the end user. Subsequent requests by the end user are directly directed to the preferred support server.
  • the CDA/CDM/database 44, 50, 56 maintain the ability to communicate any necessary information regarding these transactions to the CDA/CDM/database 48, 52, 54 located at the preferred server site.
  • the information shared between server locations is the basis for supporting e-commerce and dynamic content, load balancing, cost balancing, and system health monitoring.
  • the CDM servers provide a second level of content distribution and delivery management to monitor and interact with the agents.
  • the database servers (54, 56) monitor the CDM and CDA servers and the CDM servers perform the load balancing calculations.
  • each CDM server interfaces with a geographic database server (54, 56), monitors several CDAs, and performs a number of functions depending on the specific configuration. For example, the CDM server or the database server monitors the status of a number of CDAs and reacts when a CDA no longer responses, which can be an indication that particular CDA and the associated web server is down.
  • the CDM server also may interfaces with the geographic database (54, 56) to provide geographic information for identifying the location of the requesting user.
  • CDM servers only shows two CDM servers, there may be many more CDM servers for the purpose of providing a distributed network and a fault-tolerant system.
  • the CDM servers also monitor each other. If a CDM server fails, other CDM servers may take over its tasks.
  • the combination of CDM servers, geographic database servers, and CDA can be implemented in a number of different ways.
  • a presently preferred embodiment of the CDM, geographic database, and CDA is presented.
  • the end user at a computer 60 makes an initial request 62 for a page of a particular website 64.
  • the CDA residing at this website processes the request and makes an inquiry to the database 66.
  • the CDA parses the request and determines the IP (internet protocol) address of the requesting user and performs a number of other tasks (which are explained in detail below) for deriving certain information.
  • This information is then provided to the geographic database 66 and the database 66 generates the IP address for the server most optimal for serving the client 60.
  • the CDA replaces all hyperlinks referencing within this particular website to use this IP address.
  • This page is then returned back 68 to the client 60.
  • All subsequent requests 70 by the client 60 for web pages within this particular website is now directed to the determined, optimal web server 72 and this server 72 serves this client 60.
  • a cache can be included with the CDA such that the most frequently lookup IP addresses will be readily available so that no database lookup is necessary.
  • Each database is updated accordingly every time a client accesses the database.
  • Each database also communicates and updates other databases such that there is not a single point of failure and all of the databases have the same updated information.
  • the CDM server 80 interfaces with a geographic database server 82.
  • the geographic database server 82 interacts with a number of CDAs, 84, 86, and 88, and other geographic database servers 90.
  • CDAs CDAs
  • 84, 86, and 88 geographic database servers
  • CDAs CDAs
  • 84, 86, and 88 geographic database servers
  • CDAs CDAs
  • 84, 86, and 88 and other geographic database servers 90.
  • CDAs content delivery administration server
  • CMC content management consoles
  • the CDM 80, the database 82, the CDAS 92, and web server can all reside on one machine or on separate machines.
  • the CMC 94 typically resides on a remote machine for monitoring the CDM. CDA, the database, etc. While.
  • the CDA can also share the same machine with the CDM, it typically resides on a separate machine with the web server.
  • the CDA is placed on the web server or may be integrated as part of the web server. Referring to Fig. 6A, it intercepts all HTTP requests to the web server and parses the header for IP address and for cookie information 100. Then, it passes the HTTP request to the web server and the web server generates a response page (which can be any types of data in any format, not limited to the traditional notion of a "page") 102.
  • the CDA captures the response page and checks for supported content 104 (i.e. markup content with resource links such as HTML files, streaming media meta files, RTSP meta files, etc.).
  • the response page is sent back to the client without modification 106. If there is supported' content, the response page is parsed 108. If a cookie is received with the request 1 10, or if a cookie is received but no support server is specified in the cookie 1 1 1 , a new support server needs to be determined. The support server simply indicates the server that will provide that best performance relative to the client. The steps for determining a new support server is explained in Fig. 6B starting from connect point A and returning to connect point B. After connect point B at 1 12, the response page is compiled using the IP address of the determined support server, meaning that all Universal Resource Indices (URI) referencing this particular website has been changed to the IP address of the support server.
  • URI Universal Resource Indices
  • the response page now contains redirected URIs to the support server rather than to the original website.
  • a javascript is inserted into the redirect response page and the response page is returned to the client.
  • the javascript contains code for obtaining user's time zone information (and other information) and the IP address of the determined support server is inserted into the new cookie.
  • a new preferred support server (which can be calculated by the database server)
  • a new preferred support server (which can be calculated by the database server)
  • this time zone information is converted to a longitude coordinate 121.
  • the latitude information is determined by the general location of the country.
  • a correlation to one or more support servers can be determined 122 based on distance.
  • geographic information within the geographic database is compared to the cookie time zone information and updated if necessary to provide current, up-to-date geographic database data. If the cookie does not contain time zone information, then information already present in the geographic database is used.
  • the geographic database is updated with the new longitude and latitude information associated with that particular user IP address if necessary 124.
  • the geographic database contain a complete set of IP addresses including gateways. Associated with each IP address is a set of longitude and latitude information, meaning that for each IP address in existence, the method of the present invention can determine the longitude and latitude information for it and can therefore determine the best server for serving each particular IP address.
  • each of the support servers on the preferred support server list is factored with load balancing information such as peak time information,- special event information, network utilization (e.g. traffic and CPU usage), business logic specified needs, and the status and load of the CDAs and CDMs.
  • load balancing information such as peak time information,- special event information, network utilization (e.g. traffic and CPU usage), business logic specified needs, and the status and load of the CDAs and CDMs.
  • load balancing information such as peak time information,- special event information, network utilization (e.g. traffic and CPU usage), business logic specified needs, and the status and load of the CDAs and CDMs.
  • load balancing information such as peak time information,- special event information, network utilization (e.g. traffic and CPU usage), business logic specified needs, and the status and load of the CDAs and CDMs.
  • a timestamp for the cookie is used to allow load balancing between peak and off-peak hours. By properly setting the timestamp for the cookie, traffic can be directed away from certain support servers during peak- hour periods.
  • This type of load balancing is oracular in nature; hence it is predictive load balancing. For example, if a user requests certain information at 5 P.M., a cookie can be set to expire at 6 P.M. so that the server that can provide the best performance will have to be calculated again. Over time, once a pattern is developed, all the support servers for different time periods can be placed in the cookie without further calculation.
  • the status of the CDAs and CDMs are provided to the database server through a heartbeat, which is a small packet of information periodically sent by each CDA and CDM server.
  • the packet indicates the load and queue size of the server and any other interested system information. If the heartbeat is not received ⁇ vithin a certain interval (e.g. two times the reporting period), there is a high likelihood that the particular CDA or CDM is down and the proper steps , will be taken (such as informing the operator).
  • the availability of the content on each of the servers is also considered since it is not necessary to have a complete set of content at each server 130. Content can be distributed, localized and stored customized for each server accordingly. After the calculations, the preferred server at the top of the list becomes the destination server for this particular client at this particular time 132.
  • the CDM server provides the heartbeat to the database server as described above.
  • the CDM server also logs various statistics including bandwidth usage, number of pages served, time served, etc.
  • the database server performs a number of tasks in addition to responding database inquiries. As stated above, it determines the support server for a given IP address. In the database itself, a set of longitude and latitude coordinates is associated with each IP address and the longitude and latitude coordinates of all support servers. Additionally, it receives a heartbeat from CDMs and CDAs. The heartbeat information is logged in a local table. If a heartbeat is missing from a CDM or CDA, it is also logged in a global table such that other database servers know the status of all the CDMs and CDAs.
  • IP database Since the IP database is updated continuously, at pre-defined intervals, all of the databases are replicated and synchronized so that all of the databases may contain the same updated information.
  • CDAS content delivery administration server
  • CDM content management console
  • the above described methods compiles the response page before the response page is sent back to the client.
  • Another compiling method is to have the user's browser perform the compilation for redirection.
  • the response page is wrapped with javascript code (or equivalent language) to rewrite the links, and the javascript is executed in the browser. In the manner, load is taken off the CDA server and transferred to the user's machine.
  • Another way of implementing this method is install it as a plug-in that intercepts the response page and redirect the links.
  • javascript refers to browser based scripting language such as ECMA Script, etc.
  • an alternative embodiment of the present invention can be in the form of a Geographic Domain Name Service (GeoDNS).
  • GeoDNS Geographic Domain Name Service
  • a DNS resolves a given domain name (e.g. www.yahoo.com) to an IP address (e.g. 123.123.123.123).
  • IP address e.g. 123.123.123.123.123.
  • DNS simply resolves names to IP addresses.
  • redirection can be done at the DNS level rather than at the server level. For example, a user request for a web page is always routed to the DNS first for domain name resolution.
  • the DNS receives this information, since the user's IP address is known from the request, it can be used to calculate (as described above) the best support server for the particular user IP address. Then, the user request is directly routed to that support server without having to go to any one particular server.
  • only the DNS needs to be modified to carry out such tasks.
  • the embodiments of the present invention can be applied in a number of ways. In one application, it can be deployed across a network of support servers controlled by one company. In another application, it can be deployed across two or more different networks each owned by a different company - a content peering network.
  • the different networks technically, will work in the same manner as a single network. However, given the fact that each network may only be at a certain geographical region of world, by using the present invention, each company can now leverage on the support servers of others uniting to become a global network. For example, referring to Fig. 7, the geographical locations of the data centers of companies A, B, and C are shown.
  • companies A and C only have data centers on the east coast of the United States and company B only has data centers on the west coast of the United States.
  • Companies A and B by adopting the technologies of the present invention, their networks can be extended to encompass the entire United States (illustrated with triangles). This implementation can be extended to across and around the world.
  • the least cost path may be calculated. Granted that it may not be the shortest path or the fastest path, due to cost considerations, the least cost path may be of interest. For example, if data is to be moved from Australia to Japan and the direct path costs $1 per gigabit per second.
  • Logical extension of the geographic database data will including groupings of IP addresses according to common gateway access to the internet. In this manner, the geographic database remains valid for Dynamic Host Configuration Protocol (DHCP).
  • DHCP Dynamic Host Configuration Protocol
  • granularity of the IP address location data in the geographic database is refined based on algorithms comparing data directly obtained from router tables and trace route information.
  • the geographic database of the present invention containing ail IP addresses and corresponding longitude and latitude information, can be used in a number of applications. For example, localization of ads for products and/or services can be targeted based on user geographic information.
  • the corresponding longitude and latitude information can be obtained from the database of the present invention and ads can be specifically served according to the user's geographic area.
  • Other applications include the verification of an user identity.
  • the same content may be distributed to one or more servers.
  • faster access can be provided to requesting users located in those wide geographical locations.
  • this is a method to provide faster access without having to increase the size or the number of connections among the servers of the internet.
  • web content for a site may be updated periodically and the updates should be distributed to the other servers hosting the same web content.
  • this user's request once received by the web, should be rerouted and served by server that is located nearest to the requesting user in order to provide the fastest response to the requesting user.
  • the nearest server is experiencing heavy usage, the user request should be re-routed to the next nearest server. This is the idea of load balancing.
  • the present invention provides the core technology for enabling all of the above-described ideas.
  • a first step of one embodiment of the present invention in replicating the web content of a web site to another server, all or partial of the web pages of the web site are copied into a database.
  • the databases at two servers can be easily synchronized using existing technology.
  • a database can be easily replicated to another server using existing methods.
  • the content of the web page is parsed. For each intrinsic hyperlink (a link that is directed to a web page within the web site) in the web page, a calculation is made and the intrinsic hyperlink is replaced with a reference to a location within the database which refers to the address of the new location of the web page. For example, if the web page www . ⁇ abc.com/index. html contains an intrinsic hyperlink to www.abc.coin/companvinfo.html, in storing www.abc.com/index.html into the database, this intrinsic hyperlink www.abc.com/conipanyinfo.html is replaced with the address of the page www.abc.com/companyinfo.html within the database.
  • the above method can handle web pages with static information without any problem.
  • an enhanced method is required. For example, a user requests certain information from the web site by entering certain parameters on a requesting page (which is a static page); the entered information is then submitted to the Common Gateway Interface ("CGI") program interfacing between the requesting page and perhaps a database at the backend supplying the requested information.
  • CGI Common Gateway Interface
  • the CGI program will take the entered information and dynamically generate a web page for the requesting user. This page will be intercepted by the agent software and parsed according to the method described above (since there might be intrinsic hyperlinks to other pages within the web site) before it is supplied to the user. In this manner, dynamic information can be retrieved directly from the web site without problem.

Abstract

Methods for allowing digital content (e.g. website) to be distributed and delivered on several servers located at various geographic locations by redirecting user requests from the home server to a server that can provide the best performance to that particular user are presented. A user's request to the home server of a website is processed (100) whereby the user's IP address, along with other information, is used to determine the preferred support server (108, 110, 111, 112). User information may be inserted into one or more cookies, enabling subsequent requests for content from this location which may include information to be used by server agent(s) to minimize redirection computations, to gather necessary statistical information on end users, and to conduct load balancing (110, 111, 112).

Description

TITLE
METHOD FOR CONTENT DELIVERY OVER THE INTERNET
PRIORITY CLAIM
This application claims priority to a first U.S. provisional application filed on August 21. 1999, entitled "Method For Replication, Synchronization, and Rerouting of Data over the Internet", having Application No. 60/150,163 and a second U.S. provisional application filed on June 20, 2000, entitled "Method for Distributing Content Over the Internet", having Application No. (pending).
FIELD OF INVENTION
The present invention generally relates to content distribution and user request redirection over the internet, and, in particular, the distribution of all types of data (including dynamic and static web pages, e- commerce transactions, email messages, banner ads, etc.) over the internet and the redirection/rerouting of a web content request from one server to another server.
BACKGROUND Traditional internet web sites generally are hosted at one location (i.e. at one server or a cluster of servers at one physical location). For example, referring to Fig. 1, the server for ABC website (as illustrated) is on a server located in New York 10. User requests from various localities, e.g. Seattle 12, San Jose 14, L.A. 16, Taipei 18, Boston 20, and New York 22, are all routed to this one server located in New York 10. There are many problems with this situation. In the first case, a single location constitutes a single point of failure. For example, if a catastrophe happens at this physical location, web sites at this locality will go down. With mission critical web sites, such as e-commerce sites, this is not an acceptable situation. In the second case, with a web site hosted at a single geographical point, user requests from relatively distant places will experience very slow response due to the number of hops required from the requesting user's browser to the web site and back. For example, a request for a web page generated by a Taipei user 18 will go through a number of hops from that user's computer to the web site and back, which translates into a significant amount of time. Often, the requesting user will experience a time-out situation where the browser simply informs the user that the requested web page is not available. Both of the above examples illustrate that the traditional model of hosting a web site at one physical location actually is not a very good model. It would be desirable from a fault-tolerance point of view and from a performance point of view (among others) to have a distributed model whereby web contents are distributed around the globe and user requests are captured and routed to the server that can provide the best performance to that particular user.
SUMMARY OF THE INVENTION
It is therefore an object of the present invention to provide a method for a content delivery network.
It is another object of the present invention to provide a content delivery network having intelligent routing of user requests to the server that can provide the best performance to the particular requesting user.
It is still another object of the present invention to provide a method for load balancing in a content delivery network.
Briefly, the present invention provides methods for allowing a website (or any content) to be distributed and delivered on several servers located at various geographic locations and for redirecting user requests from the home server to a server that can provide the best performance to that particular requesting user (the preferred support server). The original home server and all other support servers hosting the distributed content are provided with an agent. A user's request to the home server of a website is processed whereby the user's IP address, along with other information, is used to determine the preferred support server (which also can be the home server itself). The requested web page is then compiled with the universal resource index (URI) of the preferred support server and sent back to the user. Javascripts for generating cookies may also be attached to the compiled web page such that the user's time zone and the URI (among other information) of the preferred support server can be inserted into the cookie where one or more of these cookies may be returned to the support server the next time a web page is requested from this website. In the subsequent requests for content from this website, one or more cookies will be sent along with the request and the information in the cookie can be used by the agent to minimize redirection computations, to gather necessary statistical information on end users; and to conduct load balancing. In this manner, a content distribution and redirection network is established.
An advantage of the present invention is that it provides a method for a content delivery network.
Another advantage of the present invention is that it provides a content delivery network having intelligent routing of user requests to the server that can provide the best performance to the particular requesting user.
Yet another advantage of the present invention is that it provides a method for load balancing in a content delivery network. These and other features and advantages of the present invention will become well understood upon examining the figures and reading the following detailed description of the invention.
IN THE DRAWINGS
Fig. 1 illustrates the traditional method in accessing a website on the internet.
Fig. 2 illustrates a conceptual diagram of the method of the present invention.
Fig. 3 illustrates an embodiment of the present invention for a content distribution network.
Fig. 4 illustrates a system view of the components of the preferred embodiment of the present invention and the interaction among them.
Fig. 5 illustrates a detailed view of the components of the preferred embodiemtn of the present invention and the interaction among them.
Figs. 6A and 6B illustrate the process flow in processing a user request.
Fig. 7 illustrates an alternative embodiment of the present invention whereby several companies can be peered using the present invention.
DETAIL DESCRIPTION OF THE PREFERRED EMBODIMENT
In a presently preferred embodiment of the present invention, referring to Fig. 2, a first server for hosting ABC website is located at a first locality, e.g. New York 30 and a second server for hosting ABC website is located at a second locality, e.g. San Jose 32. The two websites may have the exact same content or may have specific localized content suited for each locality. Each website would have its own IP address. A content delivery agent (CDA) of the present invention is placed at each locality and next to each web server, 34 and 36. Generally speaking, the CDA will perform a number of tasks, including the identification of the geographical location of the user .requesting web content and the routing of the request to the preferred support server that will provide the highest performance to that particular requesting user. As an example considering only geographic distance between users and the servers. Seattle users 12. San Jose users 14, L.A. users 16, and Taipei users 18 will be routed to the San Jose server 36, and Boston users 20 and"New York users 22 will be routed to the New York server 34.
More specifically, referring to Fig. 3, a user at a client computer 40 uses a browser to request a web page from a specified website. The website may have its own database 46 as well (which is supported by the present invention as well in the distribution and synchronization of the database contents). The initial request 42 goes through the internet and arrives at the specified website 44, this site 44 being a site enabled by an CDA of the present invention. The agent-enabled web server makes a number of calculations and database inquiries 47 working in conjunction with a content delivery management (CDM) server 50 and a database server 56 to arrive at a determination as to the best support server to service this user's request. After the initial request, subsequent requests by this user for web content from this website will be served by the second agent-enabled web server 48, 51 and 53. If in any of the subsequent requests, the best support server needs to be determined again (e.g. for load balancing reasons, etc), this CDA 48 can communicate 55 with another CDM server 52 and database server 54 to make that determination. By this method, the user is directed to the server that can provide the highest performance to the user, based on constant re-evaluation of the parameters such as the server load and content, end user location, mobile end users (e.g. using the wireless application protocal (WAP)), load balancing, cost balancing, and specific traffic routing.
In another embodiment of the present invention, once the determination is made as to the support server, a message is sent 49 from the first server 44 to the determined support server 48. The determined support server 48 then provides 51 the requested information to the user 40 (instead of the server 44). Note that all references to the term support server may include the home server (the original web server) as well.
To accomplish these tasks, once the determination is made as to the preferred support server and redirection of the end user request has occurred, information is continually transmitted between the CDAs, CDMs, and the database servers at each location. In this manner, subsequent requests by end users are continually evaluated as to the suitability of the current preferred support server selection. The continuous evaluation of preferred support server selection requires timely communications between server locations and system components (i.e. CDAs, CDMs, database servers). By way of example, referring to Fig. 3, an end user's initial information request from a server 44 is evaluated by CDA for content type and end user information and passed 47 to the CDM/database for determining a preferred support server for redirection. The result of this determination is then communicated 47 back to the CDA for compilation into the server response to the end user. Subsequent requests by the end user are directly directed to the preferred support server. The CDA/CDM/database 44, 50, 56 maintain the ability to communicate any necessary information regarding these transactions to the CDA/CDM/database 48, 52, 54 located at the preferred server site. The information shared between server locations is the basis for supporting e-commerce and dynamic content, load balancing, cost balancing, and system health monitoring.
The CDM servers provide a second level of content distribution and delivery management to monitor and interact with the agents. In the preferred embodiment, the database servers (54, 56) monitor the CDM and CDA servers and the CDM servers perform the load balancing calculations. In another embodiment, each CDM server interfaces with a geographic database server (54, 56), monitors several CDAs, and performs a number of functions depending on the specific configuration. For example, the CDM server or the database server monitors the status of a number of CDAs and reacts when a CDA no longer responses, which can be an indication that particular CDA and the associated web server is down. The CDM server also may interfaces with the geographic database (54, 56) to provide geographic information for identifying the location of the requesting user. Although, Fig. 3 only shows two CDM servers, there may be many more CDM servers for the purpose of providing a distributed network and a fault-tolerant system. The CDM servers also monitor each other. If a CDM server fails, other CDM servers may take over its tasks. The combination of CDM servers, geographic database servers, and CDA can be implemented in a number of different ways.
Referring to Fig. 4, a presently preferred embodiment of the CDM, geographic database, and CDA is presented. Here, the end user at a computer 60 makes an initial request 62 for a page of a particular website 64. The CDA residing at this website processes the request and makes an inquiry to the database 66. In processing the request, the CDA parses the request and determines the IP (internet protocol) address of the requesting user and performs a number of other tasks (which are explained in detail below) for deriving certain information. This information is then provided to the geographic database 66 and the database 66 generates the IP address for the server most optimal for serving the client 60. The CDA replaces all hyperlinks referencing within this particular website to use this IP address. This page is then returned back 68 to the client 60. All subsequent requests 70 by the client 60 for web pages within this particular website is now directed to the determined, optimal web server 72 and this server 72 serves this client 60. Note that a cache can be included with the CDA such that the most frequently lookup IP addresses will be readily available so that no database lookup is necessary.
Information with respect to the client, in particular the time zone, is collected and factored into the database. Each database is updated accordingly every time a client accesses the database. Each database also communicates and updates other databases such that there is not a single point of failure and all of the databases have the same updated information.
Referring to Fig. 5, the components of the presently preferred embodiment are illustrated. The CDM server 80 interfaces with a geographic database server 82. The geographic database server 82 interacts with a number of CDAs, 84, 86, and 88, and other geographic database servers 90. There is also a content delivery administration server (CDAS) 92 for interfacing with one or more content management consoles (CMC), 94 and 96. Note that the CDM 80, the database 82, the CDAS 92, and web server can all reside on one machine or on separate machines. The CMC 94 typically resides on a remote machine for monitoring the CDM. CDA, the database, etc. While. the CDA can also share the same machine with the CDM, it typically resides on a separate machine with the web server. The CDA is placed on the web server or may be integrated as part of the web server. Referring to Fig. 6A, it intercepts all HTTP requests to the web server and parses the header for IP address and for cookie information 100. Then, it passes the HTTP request to the web server and the web server generates a response page (which can be any types of data in any format, not limited to the traditional notion of a "page") 102. The CDA captures the response page and checks for supported content 104 (i.e. markup content with resource links such as HTML files, streaming media meta files, RTSP meta files, etc.). If there is no supported content, there is no redirection to be done and the response page is sent back to the client without modification 106. If there is supported' content, the response page is parsed 108. If a cookie is received with the request 1 10, or if a cookie is received but no support server is specified in the cookie 1 1 1 , a new support server needs to be determined. The support server simply indicates the server that will provide that best performance relative to the client. The steps for determining a new support server is explained in Fig. 6B starting from connect point A and returning to connect point B. After connect point B at 1 12, the response page is compiled using the IP address of the determined support server, meaning that all Universal Resource Indices (URI) referencing this particular website has been changed to the IP address of the support server. In other words, the response page now contains redirected URIs to the support server rather than to the original website. In the next step 1 14, a javascript is inserted into the redirect response page and the response page is returned to the client. The javascript contains code for obtaining user's time zone information (and other information) and the IP address of the determined support server is inserted into the new cookie.
If there is already a support server specified in the cookie 1 1 1 , there is no need to determine a new support server and the response page is compiled using the IP address of the destination server as specified in the cookie 1 12. In the next step 1 14, as explained above, a javascript for obtaining interested information is generated and attached to the response page and the response page is returned to the client.
In determining a new preferred support server (which can be calculated by the database server), referring to Fig. 6B, at connect point A, if-a cookie has been received and the cookie does not already contain a support server but does contains time zone information of the client 120, this time zone information is converted to a longitude coordinate 121. The latitude information .is determined by the general location of the country. With the longitude and latitude information for the client determined, a correlation to one or more support servers can be determined 122 based on distance. Also, geographic information within the geographic database is compared to the cookie time zone information and updated if necessary to provide current, up-to-date geographic database data. If the cookie does not contain time zone information, then information already present in the geographic database is used. In calculating the distance between the support servers to the user's geographic location, because the longitude and latitude information for the support servers and for the requesting user are known, these distances (from the user to each support server) can be calculated using the Great Circle formula (for calculating the distance between any two points on earth). By selecting the top five (arbitrarily speaking) support server candidates and ranking them by distance, a preliminary list of support server candidates is formed.
Additionally, the geographic database is updated with the new longitude and latitude information associated with that particular user IP address if necessary 124. Note that the geographic database contain a complete set of IP addresses including gateways. Associated with each IP address is a set of longitude and latitude information, meaning that for each IP address in existence, the method of the present invention can determine the longitude and latitude information for it and can therefore determine the best server for serving each particular IP address.
Next 128, each of the support servers on the preferred support server list is factored with load balancing information such as peak time information,- special event information, network utilization (e.g. traffic and CPU usage), business logic specified needs, and the status and load of the CDAs and CDMs. Generally speaking, the formula for calculating the ultimate support server is the summation of all factors listed above (and described below), each indicated by a raw number and multiplied by a weight.
In considering peak time information, internet traffic tends to be the greatest during certain hours. It would be beneficial to shift traffic from servers in one time zone to servers in another time zone. For example, traffic may be the greatest during 6 P.M. and 9 P.M. By shifting traffic to another time zone where traffic is light, end user may experience better performance. In the presently preferred embodiment, a timestamp for the cookie is used to allow load balancing between peak and off-peak hours. By properly setting the timestamp for the cookie, traffic can be directed away from certain support servers during peak- hour periods. This type of load balancing is oracular in nature; hence it is predictive load balancing. For example, if a user requests certain information at 5 P.M., a cookie can be set to expire at 6 P.M. so that the server that can provide the best performance will have to be calculated again. Over time, once a pattern is developed, all the support servers for different time periods can be placed in the cookie without further calculation.
For special events, instead of having all user hitting one server at the same time, by monitoring the performance of all the support servers, users can be redirected to support servers with light usage, thereby avoiding overloading any one particular support server or the home server. Time-stamping the cookies can also be used here.
The status of the CDAs and CDMs are provided to the database server through a heartbeat, which is a small packet of information periodically sent by each CDA and CDM server. The packet indicates the load and queue size of the server and any other interested system information. If the heartbeat is not received λvithin a certain interval (e.g. two times the reporting period), there is a high likelihood that the particular CDA or CDM is down and the proper steps, will be taken (such as informing the operator).
The availability of the content on each of the servers is also considered since it is not necessary to have a complete set of content at each server 130. Content can be distributed, localized and stored customized for each server accordingly. After the calculations, the preferred server at the top of the list becomes the destination server for this particular client at this particular time 132.
In the steps described above and in the preferred embodiment, the CDM server provides the heartbeat to the database server as described above. The CDM server also logs various statistics including bandwidth usage, number of pages served, time served, etc.
The database server performs a number of tasks in addition to responding database inquiries. As stated above, it determines the support server for a given IP address. In the database itself, a set of longitude and latitude coordinates is associated with each IP address and the longitude and latitude coordinates of all support servers. Additionally, it receives a heartbeat from CDMs and CDAs. The heartbeat information is logged in a local table. If a heartbeat is missing from a CDM or CDA, it is also logged in a global table such that other database servers know the status of all the CDMs and CDAs.
Since the IP database is updated continuously, at pre-defined intervals, all of the databases are replicated and synchronized so that all of the databases may contain the same updated information.
In the preferred embodiment, the content delivery administration server (CDAS) and the CDM server can sit on the same machines. CDAS provides the interface to the CMC (content management console) for allowing reporting and configuration of the CDAs and CDMs.
Browser Redirection
The above described methods compiles the response page before the response page is sent back to the client. Another compiling method is to have the user's browser perform the compilation for redirection. Here, the response page is wrapped with javascript code (or equivalent language) to rewrite the links, and the javascript is executed in the browser. In the manner, load is taken off the CDA server and transferred to the user's machine. Another way of implementing this method is install it as a plug-in that intercepts the response page and redirect the links. Here, javascript refers to browser based scripting language such as ECMA Script, etc.
First Alternative Embodiment of the Present Inventiion
Here, an alternative embodiment of the present invention can be in the form of a Geographic Domain Name Service (GeoDNS). A DNS resolves a given domain name (e.g. www.yahoo.com) to an IP address (e.g. 123.123.123.123). Currently, DNS simply resolves names to IP addresses. By coupling with the geographic database of the present invention and the methods described above (including load balancing), redirection can be done at the DNS level rather than at the server level. For example, a user request for a web page is always routed to the DNS first for domain name resolution. When the DNS receives this information, since the user's IP address is known from the request, it can be used to calculate (as described above) the best support server for the particular user IP address. Then, the user request is directly routed to that support server without having to go to any one particular server. Here, only the DNS needs to be modified to carry out such tasks.
Second Alternative Embodiment of the Present Inventiion
The embodiments of the present invention can be applied in a number of ways. In one application, it can be deployed across a network of support servers controlled by one company. In another application, it can be deployed across two or more different networks each owned by a different company - a content peering network. The different networks, technically, will work in the same manner as a single network. However, given the fact that each network may only be at a certain geographical region of world, by using the present invention, each company can now leverage on the support servers of others uniting to become a global network. For example, referring to Fig. 7, the geographical locations of the data centers of companies A, B, and C are shown. Note that companies A and C only have data centers on the east coast of the United States and company B only has data centers on the west coast of the United States. Companies A and B, by adopting the technologies of the present invention, their networks can be extended to encompass the entire United States (illustrated with triangles). This implementation can be extended to across and around the world.
In establishing a content peering network, it is necessary to account for all of the traffic and transactions from users of one company extending to support servers of another company. This may be necessary for billing purposes. Furthermore, it can also be used to decide the least cost path for moving data from one point to another point. For example, by collecting all of the cost information for moving data from one point to another point, the least cost path may be calculated. Granted that it may not be the shortest path or the fastest path, due to cost considerations, the least cost path may be of interest. For example, if data is to be moved from Australia to Japan and the direct path costs $1 per gigabit per second. If data moving from Australia to San Jose, CA costs $0.50 per gigabit per second and data moving from San Jose, CA to Japan costs $0.25 per gigabit per second, it would be more economical to go from Australia to San Jose, CA then to Japan rather than going straight from Australia to Japan. Third Alternative Embodiment of the Present Invention
Logical extension of the geographic database data will including groupings of IP addresses according to common gateway access to the internet. In this manner, the geographic database remains valid for Dynamic Host Configuration Protocol (DHCP). In addition, granularity of the IP address location data in the geographic database is refined based on algorithms comparing data directly obtained from router tables and trace route information.
Fourth Alternative Embodiment of the Present Invention
The geographic database of the present invention, containing ail IP addresses and corresponding longitude and latitude information, can be used in a number of applications. For example, localization of ads for products and/or services can be targeted based on user geographic information. Here, once the user's IP address is obtained, the corresponding longitude and latitude information can be obtained from the database of the present invention and ads can be specifically served according to the user's geographic area. Other applications include the verification of an user identity.
Fifth Alternative Embodiment of the Present Invention
In distributing web content over the internet, the same content may be distributed to one or more servers. By distributing the same content to many servers placed across a wide geographical locations, faster access can be provided to requesting users located in those wide geographical locations. Thus, this is a method to provide faster access without having to increase the size or the number of connections among the servers of the internet.
In providing the same web content across many servers, there are several considerations, including synchronization of the web content among the servers and re-directing a user request to the nearest server. For example, web content for a site may be updated periodically and the updates should be distributed to the other servers hosting the same web content. Additionally, when a user requests data from the web site, this user's request, once received by the web, should be rerouted and served by server that is located nearest to the requesting user in order to provide the fastest response to the requesting user. Furthermore, if the nearest server is experiencing heavy usage, the user request should be re-routed to the next nearest server. This is the idea of load balancing.
The present invention provides the core technology for enabling all of the above-described ideas. In a first step of one embodiment of the present invention, in replicating the web content of a web site to another server, all or partial of the web pages of the web site are copied into a database. In one simple method, the databases at two servers can be easily synchronized using existing technology. Or, a database can be easily replicated to another server using existing methods.
In copying a web page into the database, the content of the web page is parsed. For each intrinsic hyperlink (a link that is directed to a web page within the web site) in the web page, a calculation is made and the intrinsic hyperlink is replaced with a reference to a location within the database which refers to the address of the new location of the web page. For example, if the web page www .■abc.com/index. html contains an intrinsic hyperlink to www.abc.coin/companvinfo.html, in storing www.abc.com/index.html into the database, this intrinsic hyperlink www.abc.com/conipanyinfo.html is replaced with the address of the page www.abc.com/companyinfo.html within the database. Thus, all of the selected web pages of the web site is referenced and contained within the database. By changing all of the intrinsic links to within the database, it provides a major advantage that is explained below. It is important to note a level of intelligence can be added by selecting only certain web pages to store in the database, thereby rerouting only certain pages. In this manner, we can replicate either the entire web site or only part of the web site. For extrinsic hyperlinks, no changes are made to them.
Note that the reference to databases in this write-up shall not be construed as a limiting factor. Lists or other technologies can be used instead of databases.
The above method can handle web pages with static information without any problem. For web pages with dynamic information, an enhanced method is required. For example, a user requests certain information from the web site by entering certain parameters on a requesting page (which is a static page); the entered information is then submitted to the Common Gateway Interface ("CGI") program interfacing between the requesting page and perhaps a database at the backend supplying the requested information. The CGI program will take the entered information and dynamically generate a web page for the requesting user. This page will be intercepted by the agent software and parsed according to the method described above (since there might be intrinsic hyperlinks to other pages within the web site) before it is supplied to the user. In this manner, dynamic information can be retrieved directly from the web site without problem.
While the present invention has been described with reference to certain preferred embodiments, it is to be understood that the present invention is not to be limited to such specific embodiments. Rather, it is the inventor's intention that the invention be understood and construed in its broadest meaning as reflected by the following claims. Thus, these claims are to be understood as incorporating and not only the preferred embodiment described hereip but all those other and further alterations and modifications as would be apparent to those of ordinary skill in the art.
What we claim:

Claims

What we claim:
1. A method for internet content delivery network having two or more support servers at different geographic locations and each associated with longitude and latitude coordinates, comprising the steps of: generating a first user request for web content from a specified website, said user request containing an IP address; receiving said first user request at.said website; parsing said first user request for an IP address; associating said IP address with longitude and latitude coordinates; comparing the longitude and latitude coordinates of said IP address with the longitude and latitude coordinates of said support servers; determining the support server having the shortest geographic location with said IP address: and having said determined support server returning said requested web content.
PCT/US2000/022964 1999-08-21 2000-08-21 Method for content delivery over the internet WO2001014990A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU67951/00A AU6795100A (en) 1999-08-21 2000-08-21 Method for content delivery over the internet

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15016399P 1999-08-21 1999-08-21
US60/150,163 1999-08-21

Publications (1)

Publication Number Publication Date
WO2001014990A1 true WO2001014990A1 (en) 2001-03-01

Family

ID=22533361

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/022964 WO2001014990A1 (en) 1999-08-21 2000-08-21 Method for content delivery over the internet

Country Status (2)

Country Link
AU (1) AU6795100A (en)
WO (1) WO2001014990A1 (en)

Cited By (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1331788A2 (en) * 2002-01-29 2003-07-30 Fujitsu Limited Contents delivery network service method and system
WO2004043045A2 (en) * 2002-11-06 2004-05-21 Tellique Kommunikationstechnik Gmbh Method for the pre-transmission of structured data amounts between a client device and a server device
EP1456765A1 (en) * 2001-12-18 2004-09-15 Ebay, Inc. Prioritization of third party access to an online commerce site
EP1504363A1 (en) * 2002-05-10 2005-02-09 Nokia Corporation Relocation of content sources during IP-level handoffs
EP1703693A1 (en) * 2005-02-23 2006-09-20 AT&T Corp. Monitoring for replica placement and request distribution
EP1861788A2 (en) * 2005-03-09 2007-12-05 Telcordia Technologies, Inc. Method, apparatus and system for a location-based uniform resource locator
CN100369431C (en) * 2004-06-30 2008-02-13 三洋电机株式会社 Networkable appliance
WO2008053397A2 (en) * 2006-10-30 2008-05-08 Telefonaktiebolaget Lm Ericsson (Publ) Method and nodes for aggregating data traffic over an access domain
WO2008098592A1 (en) * 2007-02-15 2008-08-21 Hurra Communications Gmbh Method and system for redirecting a request according to a profile
WO2009032777A2 (en) * 2007-08-29 2009-03-12 Nirvanix, Inc. Method and system for determining an optimally located storage node in a communications network
US7565432B2 (en) * 2001-04-02 2009-07-21 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) and multilevel cache for use therewith
EP2190168A1 (en) 2008-11-25 2010-05-26 Huawei Technologies Co., Ltd. Dispatching method, dispatching apparatus and dispatching system
US20110093522A1 (en) * 2009-10-21 2011-04-21 A10 Networks, Inc. Method and System to Determine an Application Delivery Server Based on Geo-Location Information
EP2424191A1 (en) * 2010-08-27 2012-02-29 Atop Technologies, Inc. Network service providing system with high reliability
US20120253976A1 (en) * 2008-08-21 2012-10-04 Digital River, Inc. Half-Graphical User Interface Order Processing Method and Web Service
WO2013076635A1 (en) * 2011-11-23 2013-05-30 Telefonaktiebolaget Lm Ericsson (Publ) Precise geolocation for content caching in evolved packet core networks
CN103501269A (en) * 2013-09-30 2014-01-08 深圳先进技术研究院 Routing list extension method, router and geographic space routing method
US8977749B1 (en) 2012-07-05 2015-03-10 A10 Networks, Inc. Allocating buffer for TCP proxy session based on dynamic network conditions
US9094364B2 (en) 2011-12-23 2015-07-28 A10 Networks, Inc. Methods to manage services over a service gateway
US9215275B2 (en) 2010-09-30 2015-12-15 A10 Networks, Inc. System and method to balance servers based on server load status
US9219751B1 (en) 2006-10-17 2015-12-22 A10 Networks, Inc. System and method to apply forwarding policy to an application session
US9253152B1 (en) 2006-10-17 2016-02-02 A10 Networks, Inc. Applying a packet routing policy to an application session
US9270774B2 (en) 2011-10-24 2016-02-23 A10 Networks, Inc. Combining stateless and stateful server load balancing
US9338225B2 (en) 2012-12-06 2016-05-10 A10 Networks, Inc. Forwarding policies on a virtual service network
US9386088B2 (en) 2011-11-29 2016-07-05 A10 Networks, Inc. Accelerating service processing using fast path TCP
US9531846B2 (en) 2013-01-23 2016-12-27 A10 Networks, Inc. Reducing buffer usage for TCP proxy session based on delayed acknowledgement
US9609052B2 (en) 2010-12-02 2017-03-28 A10 Networks, Inc. Distributing application traffic to servers based on dynamic service response time
US9705800B2 (en) 2012-09-25 2017-07-11 A10 Networks, Inc. Load distribution in data networks
US9806943B2 (en) 2014-04-24 2017-10-31 A10 Networks, Inc. Enabling planned upgrade/downgrade of network devices without impacting network sessions
US9843484B2 (en) 2012-09-25 2017-12-12 A10 Networks, Inc. Graceful scaling in software driven networks
US9900252B2 (en) 2013-03-08 2018-02-20 A10 Networks, Inc. Application delivery controller and global server load balancer
US9906422B2 (en) 2014-05-16 2018-02-27 A10 Networks, Inc. Distributed system to determine a server's health
US9942152B2 (en) 2014-03-25 2018-04-10 A10 Networks, Inc. Forwarding data packets using a service-based forwarding policy
US9942162B2 (en) 2014-03-31 2018-04-10 A10 Networks, Inc. Active application response delay time
US9986061B2 (en) 2014-06-03 2018-05-29 A10 Networks, Inc. Programming a data network device using user defined scripts
US9992107B2 (en) 2013-03-15 2018-06-05 A10 Networks, Inc. Processing data packets using a policy based network path
US9992229B2 (en) 2014-06-03 2018-06-05 A10 Networks, Inc. Programming a data network device using user defined scripts with licenses
US10002141B2 (en) 2012-09-25 2018-06-19 A10 Networks, Inc. Distributed database in software driven networks
US10021174B2 (en) 2012-09-25 2018-07-10 A10 Networks, Inc. Distributing service sessions
US10020979B1 (en) 2014-03-25 2018-07-10 A10 Networks, Inc. Allocating resources in multi-core computing environments
US10027761B2 (en) 2013-05-03 2018-07-17 A10 Networks, Inc. Facilitating a secure 3 party network session by a network device
US10038693B2 (en) 2013-05-03 2018-07-31 A10 Networks, Inc. Facilitating secure network traffic by an application delivery controller
US10044582B2 (en) 2012-01-28 2018-08-07 A10 Networks, Inc. Generating secure name records
US10129122B2 (en) 2014-06-03 2018-11-13 A10 Networks, Inc. User defined objects for network devices
USRE47296E1 (en) 2006-02-21 2019-03-12 A10 Networks, Inc. System and method for an adaptive TCP SYN cookie with time validation
US10230770B2 (en) 2013-12-02 2019-03-12 A10 Networks, Inc. Network proxy layer for policy-based application proxies
US10243791B2 (en) 2015-08-13 2019-03-26 A10 Networks, Inc. Automated adjustment of subscriber policies
US10318288B2 (en) 2016-01-13 2019-06-11 A10 Networks, Inc. System and method to process a chain of network applications
US10389835B2 (en) 2017-01-10 2019-08-20 A10 Networks, Inc. Application aware systems and methods to process user loadable network applications
US10581976B2 (en) 2015-08-12 2020-03-03 A10 Networks, Inc. Transmission control of protocol state exchange for dynamic stateful service insertion

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5592172A (en) * 1993-05-14 1997-01-07 U.S. Philips Corporation Method of, and system for, describing a geographical area to a communications network
US5774660A (en) * 1996-08-05 1998-06-30 Resonate, Inc. World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network
US5862339A (en) * 1996-07-09 1999-01-19 Webtv Networks, Inc. Client connects to an internet access provider using algorithm downloaded from a central server based upon client's desired criteria after disconnected from the server
US6052718A (en) * 1997-01-07 2000-04-18 Sightpath, Inc Replica routing
US6092178A (en) * 1998-09-03 2000-07-18 Sun Microsystems, Inc. System for responding to a resource request

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5592172A (en) * 1993-05-14 1997-01-07 U.S. Philips Corporation Method of, and system for, describing a geographical area to a communications network
US5862339A (en) * 1996-07-09 1999-01-19 Webtv Networks, Inc. Client connects to an internet access provider using algorithm downloaded from a central server based upon client's desired criteria after disconnected from the server
US5774660A (en) * 1996-08-05 1998-06-30 Resonate, Inc. World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network
US6052718A (en) * 1997-01-07 2000-04-18 Sightpath, Inc Replica routing
US6092178A (en) * 1998-09-03 2000-07-18 Sun Microsystems, Inc. System for responding to a resource request

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
DAVIS ET AL.: "A means for expressing location information in the domain name system", REQUEST FOR COMMENTS (RFC) 1876, January 1996 (1996-01-01), pages 1 - 18, XP002932297 *
FARRELL ET AL.: "DNS encoding of geographical location", REQUEST FOR COMMENTS (RFC) 1712, November 1994 (1994-11-01), pages 1 - 7, XP002932296 *

Cited By (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7565432B2 (en) * 2001-04-02 2009-07-21 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) and multilevel cache for use therewith
US7962651B2 (en) 2001-04-02 2011-06-14 Microsoft Corporation Peer-to-peer name resolution protocol (PNRP) and multilevel cache for use therewith
US9626705B2 (en) 2001-12-18 2017-04-18 Paypal, Inc. Prioritization of third party access to an online commerce site
EP1456765A4 (en) * 2001-12-18 2011-01-19 Ebay Inc Prioritization of third party access to an online commerce site
EP1456765A1 (en) * 2001-12-18 2004-09-15 Ebay, Inc. Prioritization of third party access to an online commerce site
US8918505B2 (en) 2001-12-18 2014-12-23 Ebay Inc. Prioritization of third party access to an online commerce site
US9508094B2 (en) 2001-12-18 2016-11-29 Paypal, Inc. Prioritization of third party access to an online commerce site
US9679323B2 (en) 2001-12-18 2017-06-13 Paypal, Inc. Prioritization of third party access to an online commerce site
US9589289B2 (en) 2001-12-18 2017-03-07 Paypal, Inc. Prioritization of third party access to an online commerce site
EP1331788A3 (en) * 2002-01-29 2006-04-26 Fujitsu Limited Contents delivery network service method and system
EP1331788A2 (en) * 2002-01-29 2003-07-30 Fujitsu Limited Contents delivery network service method and system
US7525940B2 (en) 2002-04-26 2009-04-28 Nokia Siemens Networks Oy Relocation of content sources during IP-level handoffs
EP1504363A4 (en) * 2002-05-10 2005-06-22 Nokia Corp Relocation of content sources during ip-level handoffs
EP1504363A1 (en) * 2002-05-10 2005-02-09 Nokia Corporation Relocation of content sources during IP-level handoffs
EP1887484A3 (en) * 2002-11-06 2008-08-27 Tellique Kommunikationstechnik GmbH Method for pre-transmission of structured data sets between a client device and a server device
WO2004043045A3 (en) * 2002-11-06 2004-11-04 Tellique Kommunikationstechnik Method for the pre-transmission of structured data amounts between a client device and a server device
WO2004043045A2 (en) * 2002-11-06 2004-05-21 Tellique Kommunikationstechnik Gmbh Method for the pre-transmission of structured data amounts between a client device and a server device
US8078759B2 (en) 2002-11-06 2011-12-13 Tellique Kommunikationstechnik Gmbh Method for prefetching of structured data between a client device and a server device
CN100369431C (en) * 2004-06-30 2008-02-13 三洋电机株式会社 Networkable appliance
EP1703693A1 (en) * 2005-02-23 2006-09-20 AT&T Corp. Monitoring for replica placement and request distribution
US7941556B2 (en) 2005-02-23 2011-05-10 At&T Intellectual Property I, Lp Monitoring for replica placement and request distribution
EP1861788A2 (en) * 2005-03-09 2007-12-05 Telcordia Technologies, Inc. Method, apparatus and system for a location-based uniform resource locator
EP1861788A4 (en) * 2005-03-09 2011-03-16 Telcordia Tech Inc Method, apparatus and system for a location-based uniform resource locator
USRE47296E1 (en) 2006-02-21 2019-03-12 A10 Networks, Inc. System and method for an adaptive TCP SYN cookie with time validation
US9219751B1 (en) 2006-10-17 2015-12-22 A10 Networks, Inc. System and method to apply forwarding policy to an application session
US9270705B1 (en) 2006-10-17 2016-02-23 A10 Networks, Inc. Applying security policy to an application session
US9253152B1 (en) 2006-10-17 2016-02-02 A10 Networks, Inc. Applying a packet routing policy to an application session
US9497201B2 (en) 2006-10-17 2016-11-15 A10 Networks, Inc. Applying security policy to an application session
WO2008053397A2 (en) * 2006-10-30 2008-05-08 Telefonaktiebolaget Lm Ericsson (Publ) Method and nodes for aggregating data traffic over an access domain
US7706265B2 (en) 2006-10-30 2010-04-27 Telefonaktiebolaget L M Ericsson (Publ) Decentralized node, access edge node, and access node for aggregating data traffic over an access domain, and method thereof
WO2008053397A3 (en) * 2006-10-30 2008-06-26 Ericsson Telefon Ab L M Method and nodes for aggregating data traffic over an access domain
WO2008098592A1 (en) * 2007-02-15 2008-08-21 Hurra Communications Gmbh Method and system for redirecting a request according to a profile
WO2009032777A3 (en) * 2007-08-29 2009-05-14 Nirvanix Inc Method and system for determining an optimally located storage node in a communications network
US10523747B2 (en) 2007-08-29 2019-12-31 Oracle International Corporation Method and system for selecting a storage node based on a distance from a requesting device
US10924536B2 (en) 2007-08-29 2021-02-16 Oracle International Corporation Method and system for selecting a storage node based on a distance from a requesting device
US10193967B2 (en) 2007-08-29 2019-01-29 Oracle International Corporation Redirecting devices requesting access to files
US9336233B2 (en) 2007-08-29 2016-05-10 Scott P. Chatley Method and system for determining an optimally located storage node in a communications network
WO2009032777A2 (en) * 2007-08-29 2009-03-12 Nirvanix, Inc. Method and system for determining an optimally located storage node in a communications network
US9760921B2 (en) 2008-08-21 2017-09-12 Digital River, Inc. Half-graphical user interface order processing system and method
US20120253976A1 (en) * 2008-08-21 2012-10-04 Digital River, Inc. Half-Graphical User Interface Order Processing Method and Web Service
EP2190168A1 (en) 2008-11-25 2010-05-26 Huawei Technologies Co., Ltd. Dispatching method, dispatching apparatus and dispatching system
US8433793B2 (en) 2008-11-25 2013-04-30 Huawei Technologies Co., Ltd. Dispatching method, dispatching apparatus and dispatching system
US8078723B2 (en) 2008-11-25 2011-12-13 Huawei Technologies Co., Ltd. Dispatching method, dispatching apparatus and dispatching system
US10735267B2 (en) 2009-10-21 2020-08-04 A10 Networks, Inc. Determining an application delivery server based on geo-location information
US9960967B2 (en) * 2009-10-21 2018-05-01 A10 Networks, Inc. Determining an application delivery server based on geo-location information
US20110093522A1 (en) * 2009-10-21 2011-04-21 A10 Networks, Inc. Method and System to Determine an Application Delivery Server Based on Geo-Location Information
EP2424191A1 (en) * 2010-08-27 2012-02-29 Atop Technologies, Inc. Network service providing system with high reliability
US9961135B2 (en) 2010-09-30 2018-05-01 A10 Networks, Inc. System and method to balance servers based on server load status
US9215275B2 (en) 2010-09-30 2015-12-15 A10 Networks, Inc. System and method to balance servers based on server load status
US10447775B2 (en) 2010-09-30 2019-10-15 A10 Networks, Inc. System and method to balance servers based on server load status
US9609052B2 (en) 2010-12-02 2017-03-28 A10 Networks, Inc. Distributing application traffic to servers based on dynamic service response time
US10178165B2 (en) 2010-12-02 2019-01-08 A10 Networks, Inc. Distributing application traffic to servers based on dynamic service response time
US9961136B2 (en) 2010-12-02 2018-05-01 A10 Networks, Inc. Distributing application traffic to servers based on dynamic service response time
US9906591B2 (en) 2011-10-24 2018-02-27 A10 Networks, Inc. Combining stateless and stateful server load balancing
US10484465B2 (en) 2011-10-24 2019-11-19 A10 Networks, Inc. Combining stateless and stateful server load balancing
US9270774B2 (en) 2011-10-24 2016-02-23 A10 Networks, Inc. Combining stateless and stateful server load balancing
WO2013076635A1 (en) * 2011-11-23 2013-05-30 Telefonaktiebolaget Lm Ericsson (Publ) Precise geolocation for content caching in evolved packet core networks
US9386088B2 (en) 2011-11-29 2016-07-05 A10 Networks, Inc. Accelerating service processing using fast path TCP
US9094364B2 (en) 2011-12-23 2015-07-28 A10 Networks, Inc. Methods to manage services over a service gateway
US9979801B2 (en) 2011-12-23 2018-05-22 A10 Networks, Inc. Methods to manage services over a service gateway
US10044582B2 (en) 2012-01-28 2018-08-07 A10 Networks, Inc. Generating secure name records
US8977749B1 (en) 2012-07-05 2015-03-10 A10 Networks, Inc. Allocating buffer for TCP proxy session based on dynamic network conditions
US9602442B2 (en) 2012-07-05 2017-03-21 A10 Networks, Inc. Allocating buffer for TCP proxy session based on dynamic network conditions
US9154584B1 (en) 2012-07-05 2015-10-06 A10 Networks, Inc. Allocating buffer for TCP proxy session based on dynamic network conditions
US10491523B2 (en) 2012-09-25 2019-11-26 A10 Networks, Inc. Load distribution in data networks
US10516577B2 (en) 2012-09-25 2019-12-24 A10 Networks, Inc. Graceful scaling in software driven networks
US9705800B2 (en) 2012-09-25 2017-07-11 A10 Networks, Inc. Load distribution in data networks
US9843484B2 (en) 2012-09-25 2017-12-12 A10 Networks, Inc. Graceful scaling in software driven networks
US10862955B2 (en) 2012-09-25 2020-12-08 A10 Networks, Inc. Distributing service sessions
US10021174B2 (en) 2012-09-25 2018-07-10 A10 Networks, Inc. Distributing service sessions
US10002141B2 (en) 2012-09-25 2018-06-19 A10 Networks, Inc. Distributed database in software driven networks
US9544364B2 (en) 2012-12-06 2017-01-10 A10 Networks, Inc. Forwarding policies on a virtual service network
US9338225B2 (en) 2012-12-06 2016-05-10 A10 Networks, Inc. Forwarding policies on a virtual service network
US9979665B2 (en) 2013-01-23 2018-05-22 A10 Networks, Inc. Reducing buffer usage for TCP proxy session based on delayed acknowledgement
US9531846B2 (en) 2013-01-23 2016-12-27 A10 Networks, Inc. Reducing buffer usage for TCP proxy session based on delayed acknowledgement
US9900252B2 (en) 2013-03-08 2018-02-20 A10 Networks, Inc. Application delivery controller and global server load balancer
US11005762B2 (en) 2013-03-08 2021-05-11 A10 Networks, Inc. Application delivery controller and global server load balancer
US9992107B2 (en) 2013-03-15 2018-06-05 A10 Networks, Inc. Processing data packets using a policy based network path
US10659354B2 (en) 2013-03-15 2020-05-19 A10 Networks, Inc. Processing data packets using a policy based network path
US10305904B2 (en) 2013-05-03 2019-05-28 A10 Networks, Inc. Facilitating secure network traffic by an application delivery controller
US10038693B2 (en) 2013-05-03 2018-07-31 A10 Networks, Inc. Facilitating secure network traffic by an application delivery controller
US10027761B2 (en) 2013-05-03 2018-07-17 A10 Networks, Inc. Facilitating a secure 3 party network session by a network device
CN103501269A (en) * 2013-09-30 2014-01-08 深圳先进技术研究院 Routing list extension method, router and geographic space routing method
US10230770B2 (en) 2013-12-02 2019-03-12 A10 Networks, Inc. Network proxy layer for policy-based application proxies
US9942152B2 (en) 2014-03-25 2018-04-10 A10 Networks, Inc. Forwarding data packets using a service-based forwarding policy
US10020979B1 (en) 2014-03-25 2018-07-10 A10 Networks, Inc. Allocating resources in multi-core computing environments
US10257101B2 (en) 2014-03-31 2019-04-09 A10 Networks, Inc. Active application response delay time
US9942162B2 (en) 2014-03-31 2018-04-10 A10 Networks, Inc. Active application response delay time
US9806943B2 (en) 2014-04-24 2017-10-31 A10 Networks, Inc. Enabling planned upgrade/downgrade of network devices without impacting network sessions
US10411956B2 (en) 2014-04-24 2019-09-10 A10 Networks, Inc. Enabling planned upgrade/downgrade of network devices without impacting network sessions
US9906422B2 (en) 2014-05-16 2018-02-27 A10 Networks, Inc. Distributed system to determine a server's health
US10686683B2 (en) 2014-05-16 2020-06-16 A10 Networks, Inc. Distributed system to determine a server's health
US10129122B2 (en) 2014-06-03 2018-11-13 A10 Networks, Inc. User defined objects for network devices
US10749904B2 (en) 2014-06-03 2020-08-18 A10 Networks, Inc. Programming a data network device using user defined scripts with licenses
US10880400B2 (en) 2014-06-03 2020-12-29 A10 Networks, Inc. Programming a data network device using user defined scripts
US9992229B2 (en) 2014-06-03 2018-06-05 A10 Networks, Inc. Programming a data network device using user defined scripts with licenses
US9986061B2 (en) 2014-06-03 2018-05-29 A10 Networks, Inc. Programming a data network device using user defined scripts
US10581976B2 (en) 2015-08-12 2020-03-03 A10 Networks, Inc. Transmission control of protocol state exchange for dynamic stateful service insertion
US10243791B2 (en) 2015-08-13 2019-03-26 A10 Networks, Inc. Automated adjustment of subscriber policies
US10318288B2 (en) 2016-01-13 2019-06-11 A10 Networks, Inc. System and method to process a chain of network applications
US10389835B2 (en) 2017-01-10 2019-08-20 A10 Networks, Inc. Application aware systems and methods to process user loadable network applications

Also Published As

Publication number Publication date
AU6795100A (en) 2001-03-19

Similar Documents

Publication Publication Date Title
WO2001014990A1 (en) Method for content delivery over the internet
US10476984B2 (en) Content request routing and load balancing for content distribution networks
US8060613B2 (en) Resource invalidation in a content delivery network
US8291046B2 (en) Shared content delivery infrastructure with rendezvous based on load balancing and network conditions
US7054935B2 (en) Internet content delivery network
US8214524B2 (en) System and method for selecting an optimal authoritative name server
CN102077189B (en) Request routing using network computing components
US20050097185A1 (en) Localization link system
US20140181307A1 (en) Routing apparatus and method
KR20100054660A (en) System and method for contents delivery based on multiple content delivery network providers, and content server thereof
KR20100054659A (en) System and method for contents delivery based on multiple content delivery network providers, and content server thereof

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP