US20110093530A1 - Server persistence using a url identifier - Google Patents

Server persistence using a url identifier Download PDF

Info

Publication number
US20110093530A1
US20110093530A1 US12/976,364 US97636410A US2011093530A1 US 20110093530 A1 US20110093530 A1 US 20110093530A1 US 97636410 A US97636410 A US 97636410A US 2011093530 A1 US2011093530 A1 US 2011093530A1
Authority
US
United States
Prior art keywords
servers
server
load balancer
session
client
Prior art date
Legal status (The legal status 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 status listed.)
Abandoned
Application number
US12/976,364
Inventor
Steve Schnetzler
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to US12/976,364 priority Critical patent/US20110093530A1/en
Publication of US20110093530A1 publication Critical patent/US20110093530A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • 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/1027Persistence of sessions during load balancing
    • 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

Definitions

  • the present invention is directed to data access to a remote server. More particularly, the present invention is directed to maintaining persistence to a single remote server that is accessed through the Internet.
  • the load balancer makes the multiple servers look like a single, high-powered network resource to those accessing the site. It does this by selectively forwarding connections to the many servers arrayed behind it in an equitable manner, according to the server's operational health and the nature of the query.
  • URL munging Another solution to the mega proxy problem that can be utilized by wireless web users that do not accept cookies is referred to as “URL munging”.
  • URL munging In Uniform Resource Locator (“URL”) munging, a session identifier is stored as part of the URL. Server software uses the session identifier to identify that user's session.
  • URL munging requires costly modifications to be made to the individual web servers.
  • FIG. 1 is a block diagram of a system in accordance with one embodiment of the present invention.
  • FIG. 2 is a flow diagram of the steps performed by a load balancer in accordance with one embodiment of the present invention.
  • One embodiment of the present invention is a system that adds a specific server identifier to the URL of a website.
  • a load balancer directs all subsequent requests from a user to the identified server received with the URL.
  • FIG. 1 is a block diagram of a system 50 in accordance with one embodiment of the present invention.
  • System 50 includes the Internet 20 and a client computer 10 that is used to access Internet 20 .
  • Client computer 10 can be any known personal computer or other device that includes a web browser.
  • the web browser can be the Internet Explorer from Microsoft Corp., or any other type of browser.
  • Client computer 10 accesses Internet 20 through known methods such as through an Internet service provider (not shown).
  • System 50 further includes a load balancer 30 coupled to servers 41 - 45 .
  • Servers 41 - 45 form a group of servers that provide the same or similar content to a user and can each respond to the same URL request from a client.
  • Load balancer 30 can be any known load balancer that is modified to implement the present invention.
  • load balancer 30 is the NetStructure 7180 e-commerce Director from Intel Corp. that has been modified to perform the steps described below.
  • Load balancer 30 includes a processor and a memory or other type of computer readable medium.
  • FIG. 2 is a flow diagram of the steps performed by load balancer 30 in accordance with one embodiment of the present invention.
  • the steps are implemented by software stored in memory and executed by the processor of load balancer 30 .
  • the steps can be performed by hardware, or any combination of hardware and software.
  • the functionality of the steps can also be performed by a device that is separate from, but in communication with, load balancer 30 .
  • load balancer 30 receives a URL request from client computer 10 .
  • the URL request is directed to a web site that is concurrently located on each of servers 41 - 45 .
  • load balancer 30 determines if the URL request includes the identity of one of servers 41 - 45 (the “server ID”). If the URL request does not include a server ID, then at step 120 load balancer 30 forwards the URL request to one of servers 41 - 45 based on known load balancing algorithms or techniques. Load balancing algorithms typically distribute URL requests or queries equitably among servers 41 - 45 in order to amortize load and improve availability by avoiding downed servers.
  • step 130 load balancer 30 sends the query directly to the server among servers 41 - 45 that is identified by the server ID.
  • the server that received the query returns an HyperText Markup Language (“HTML”) page to load balancer 30 in a known manner.
  • HTML HyperText Markup Language
  • the HTML page would typically include additional URLs that can be selected by a user for further queries among servers 41 - 45 .
  • One example of one of the URLs included on the HTML page is www.xxx.com, which refers to an HTML page that is also located on servers 41 - 45 .
  • load balancer 30 adds a server ID to each of the URLs included in the received HTML page that correspond to an HTML page or query located on servers 41 - 45 .
  • the server ID corresponds to the particular server of servers 41 - 45 that sent the HTML page to load balancer 30 .
  • step 160 the revised HTML page is sent to client computer 10 .
  • Subsequent URL requests from client computer 10 at step 100 will now include a server ID.
  • the present invention sends all requests from client computer 10 to the same server once a connection to that server has been set up.
  • the connection is maintained even if the connection is broken by client computer 10 or the server during a session. Therefore, for example, if during a session a user is placing items in a shopping cart, the current status of the shopping cart will be maintained throughout the session.
  • the present invention provides, an advantage over cookies and URL munging because it is not dependent on the user accepting cookies and unlike URL munging, no costly modifications need be made to the individual web servers. Instead, all modifications are made to the load-balancing device.
  • any communication network can be used and any type of query can be used with the load balancer of the present invention.

Abstract

A method of accessing a web page from a plurality of servers over the Internet include receiving a request for the web page from a client computer at a load balancer and sending the request to a first server of the plurality of servers. The load balancer receives the web page from the first server and adds an identity of the first server to all URLs on the web page that reference the plurality of servers. The load balancer then forwards the data to the client computer.

Description

    FIELD OF THE INVENTION
  • The present invention is directed to data access to a remote server. More particularly, the present invention is directed to maintaining persistence to a single remote server that is accessed through the Internet.
  • BACKGROUND INFORMATION
  • In order to provide responsiveness and availability to customers, many e-commerce sites on the Internet employ multiple servers and a load balancer. In essence, the load balancer makes the multiple servers look like a single, high-powered network resource to those accessing the site. It does this by selectively forwarding connections to the many servers arrayed behind it in an equitable manner, according to the server's operational health and the nature of the query.
  • A problem exists because individual users must be tied to a single server and maintain persistence to that server for secure transactions and for enhancing the experience for the user. For example, navigating an online application, such as a shopping cart or stock trading system, requires a series of interactions between the visitor and the site's back-end applications. These applications need to know where a user was, so that they can decide where the user will be next. If a load balancer or other device redirects the user to a different web server during an interaction session, this may cause the connection to fail, and the user's session will be ended prematurely. In addition, the user's previously entered information, such as the contents of a shopping cart, may be lost.
  • This problem is commonly referred to as the “mega proxy problem”. A likely result of the lack of persistence is that the user will leave the site unsatisfied and may never return.
  • One way to overcome the mega proxy problem is for the user to accept cookies on the user's machine. The cookies allow the user to be directed to the correct server and maintain persistence to the server. However, many users object to accepting cookies. In addition, most wireless protocols inherently do not use cookies in an effort to conserve bandwidth.
  • Another solution to the mega proxy problem that can be utilized by wireless web users that do not accept cookies is referred to as “URL munging”. In Uniform Resource Locator (“URL”) munging, a session identifier is stored as part of the URL. Server software uses the session identifier to identify that user's session. However, URL munging requires costly modifications to be made to the individual web servers.
  • Based on the foregoing, there is a need for an improved method for maintaining persistence with a web server while using a load balancer.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram of a system in accordance with one embodiment of the present invention.
  • FIG. 2 is a flow diagram of the steps performed by a load balancer in accordance with one embodiment of the present invention.
  • DETAILED DESCRIPTION
  • One embodiment of the present invention is a system that adds a specific server identifier to the URL of a website. A load balancer directs all subsequent requests from a user to the identified server received with the URL.
  • FIG. 1 is a block diagram of a system 50 in accordance with one embodiment of the present invention. System 50 includes the Internet 20 and a client computer 10 that is used to access Internet 20. Client computer 10 can be any known personal computer or other device that includes a web browser. The web browser can be the Internet Explorer from Microsoft Corp., or any other type of browser. Client computer 10 accesses Internet 20 through known methods such as through an Internet service provider (not shown).
  • System 50 further includes a load balancer 30 coupled to servers 41-45. Servers 41-45 form a group of servers that provide the same or similar content to a user and can each respond to the same URL request from a client. Load balancer 30 can be any known load balancer that is modified to implement the present invention. In one embodiment, load balancer 30 is the NetStructure 7180 e-commerce Director from Intel Corp. that has been modified to perform the steps described below. Load balancer 30 includes a processor and a memory or other type of computer readable medium.
  • FIG. 2 is a flow diagram of the steps performed by load balancer 30 in accordance with one embodiment of the present invention. In one embodiment, the steps are implemented by software stored in memory and executed by the processor of load balancer 30. In other embodiments, the steps can be performed by hardware, or any combination of hardware and software. The functionality of the steps can also be performed by a device that is separate from, but in communication with, load balancer 30.
  • At step 100, load balancer 30 receives a URL request from client computer 10. The URL request is directed to a web site that is concurrently located on each of servers 41-45.
  • At step 110, load balancer 30 determines if the URL request includes the identity of one of servers 41-45 (the “server ID”). If the URL request does not include a server ID, then at step 120 load balancer 30 forwards the URL request to one of servers 41-45 based on known load balancing algorithms or techniques. Load balancing algorithms typically distribute URL requests or queries equitably among servers 41-45 in order to amortize load and improve availability by avoiding downed servers.
  • If the URL request includes a server ID at step 110, at step 130 load balancer 30 sends the query directly to the server among servers 41-45 that is identified by the server ID.
  • At step 140, in response to the query received at either step 120 or step 130, the server that received the query returns an HyperText Markup Language (“HTML”) page to load balancer 30 in a known manner. The HTML page would typically include additional URLs that can be selected by a user for further queries among servers 41-45. One example of one of the URLs included on the HTML page is www.xxx.com, which refers to an HTML page that is also located on servers 41-45.
  • At step 150, load balancer 30 adds a server ID to each of the URLs included in the received HTML page that correspond to an HTML page or query located on servers 41-45. The server ID corresponds to the particular server of servers 41-45 that sent the HTML page to load balancer 30. Using the above example, and assuming that the HTML page was received from server 43, the URL would be changed to www.xxx.com?Sticky=server 43, where “sever 43” is the server ID for server 43.
  • Finally, at step 160 the revised HTML page is sent to client computer 10. Subsequent URL requests from client computer 10 at step 100 will now include a server ID.
  • As described, the present invention sends all requests from client computer 10 to the same server once a connection to that server has been set up. The connection is maintained even if the connection is broken by client computer 10 or the server during a session. Therefore, for example, if during a session a user is placing items in a shopping cart, the current status of the shopping cart will be maintained throughout the session.
  • The present invention provides, an advantage over cookies and URL munging because it is not dependent on the user accepting cookies and unlike URL munging, no costly modifications need be made to the individual web servers. Instead, all modifications are made to the load-balancing device.
  • Several embodiments of the present invention are specifically illustrated and/or 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.
  • For example, although the embodiment described involves the Internet and URLs, any communication network can be used and any type of query can be used with the load balancer of the present invention.

Claims (3)

1-21. (canceled)
22. A method for a client to access data from a plurality of servers comprising:
providing a plurality of servers each containing the data to be accessed by a client during a session;
using a load balancer connected to each of the plurality of servers to select one of the servers from among the plurality of servers for the session;
sending server identification data to the client for the selected server; and
using the server identification data from the client to reconnect to the selected sever in the event of a session failure.
23. A machine-readable medium having stored thereon data representing instructions which, when executed by a machine, cause the machine to perform operations, comprising:
accessing a plurality of servers each containing the data by a client during a session;
causing a load balancer connected to each of the plurality of servers to select one of the servers from among the plurality of servers for the session;
sending server identification data to the client for the selected server; and
using the server identification data from the client to reconnect to the selected sever in the event of a session failure.
US12/976,364 2002-02-27 2010-12-22 Server persistence using a url identifier Abandoned US20110093530A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/976,364 US20110093530A1 (en) 2002-02-27 2010-12-22 Server persistence using a url identifier

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/083,557 US20030163586A1 (en) 2002-02-27 2002-02-27 Server persistence using a URL identifier
US12/976,364 US20110093530A1 (en) 2002-02-27 2010-12-22 Server persistence using a url identifier

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US10/083,557 Continuation US20030163586A1 (en) 2002-02-27 2002-02-27 Server persistence using a URL identifier

Publications (1)

Publication Number Publication Date
US20110093530A1 true US20110093530A1 (en) 2011-04-21

Family

ID=27753315

Family Applications (3)

Application Number Title Priority Date Filing Date
US10/083,557 Abandoned US20030163586A1 (en) 2002-02-27 2002-02-27 Server persistence using a URL identifier
US12/976,384 Abandoned US20110093531A1 (en) 2002-02-27 2010-12-22 Server persistence using a url identifier
US12/976,364 Abandoned US20110093530A1 (en) 2002-02-27 2010-12-22 Server persistence using a url identifier

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US10/083,557 Abandoned US20030163586A1 (en) 2002-02-27 2002-02-27 Server persistence using a URL identifier
US12/976,384 Abandoned US20110093531A1 (en) 2002-02-27 2010-12-22 Server persistence using a url identifier

Country Status (1)

Country Link
US (3) US20030163586A1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020178213A1 (en) * 2001-04-11 2002-11-28 Parry John Chad Remote URL munging
US20020178186A1 (en) * 2001-04-11 2002-11-28 Parry John Chad Remote URL munging business method
US20080077653A1 (en) * 2006-09-26 2008-03-27 Morris Robert P Methods, systems, and computer program products for enabling dynamic content in a markup-language-based page using a dynamic markup language element
US8966012B2 (en) 2011-08-31 2015-02-24 Metaswitch Networks Ltd Processing data and operating a communications device
CN105373746B (en) * 2015-11-26 2018-09-14 深圳市金证科技股份有限公司 A kind of distributed data processing method and apparatus

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US6067545A (en) * 1997-08-01 2000-05-23 Hewlett-Packard Company Resource rebalancing in networked computer systems
US6128279A (en) * 1997-10-06 2000-10-03 Web Balance, Inc. System for balancing loads among network servers
US6182139B1 (en) * 1996-08-05 2001-01-30 Resonate Inc. Client-side resource-based load-balancing with delayed-resource-binding using TCP state migration to WWW server farm
US20020010783A1 (en) * 1999-12-06 2002-01-24 Leonard Primak System and method for enhancing operation of a web server cluster
US6424992B2 (en) * 1996-12-23 2002-07-23 International Business Machines Corporation Affinity-based router and routing method
US6658473B1 (en) * 2000-02-25 2003-12-02 Sun Microsystems, Inc. Method and apparatus for distributing load in a computer environment
US6748448B1 (en) * 1999-12-13 2004-06-08 International Business Machines Corporation High performance internet storage access scheme
US6779017B1 (en) * 1999-04-29 2004-08-17 International Business Machines Corporation Method and system for dispatching client sessions within a cluster of servers connected to the world wide web
US6954783B1 (en) * 1999-11-12 2005-10-11 Bmc Software, Inc. System and method of mediating a web page
US7099915B1 (en) * 2000-06-30 2006-08-29 Cisco Technology, Inc. Server load balancing method and system
US7139792B1 (en) * 2000-09-29 2006-11-21 Intel Corporation Mechanism for locking client requests to a particular server
US7543066B2 (en) * 2001-04-30 2009-06-02 International Business Machines Corporation Method and apparatus for maintaining session affinity across multiple server groups
US7778260B2 (en) * 1998-10-09 2010-08-17 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2309558A (en) * 1996-01-26 1997-07-30 Ibm Load balancing across the processors of a server computer
US6578066B1 (en) * 1999-09-17 2003-06-10 Alteon Websystems Distributed load-balancing internet servers
US6785666B1 (en) * 2000-07-11 2004-08-31 Revenue Science, Inc. Method and system for parsing navigation information
US7587500B2 (en) * 2001-01-10 2009-09-08 Xcelera Distributed selection of a content server
US6954456B2 (en) * 2001-12-14 2005-10-11 At & T Corp. Method for content-aware redirection and content renaming

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6182139B1 (en) * 1996-08-05 2001-01-30 Resonate Inc. Client-side resource-based load-balancing with delayed-resource-binding using TCP state migration to WWW server farm
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
US6424992B2 (en) * 1996-12-23 2002-07-23 International Business Machines Corporation Affinity-based router and routing method
US6067545A (en) * 1997-08-01 2000-05-23 Hewlett-Packard Company Resource rebalancing in networked computer systems
US6128279A (en) * 1997-10-06 2000-10-03 Web Balance, Inc. System for balancing loads among network servers
US7778260B2 (en) * 1998-10-09 2010-08-17 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US6779017B1 (en) * 1999-04-29 2004-08-17 International Business Machines Corporation Method and system for dispatching client sessions within a cluster of servers connected to the world wide web
US6954783B1 (en) * 1999-11-12 2005-10-11 Bmc Software, Inc. System and method of mediating a web page
US20020010783A1 (en) * 1999-12-06 2002-01-24 Leonard Primak System and method for enhancing operation of a web server cluster
US6748448B1 (en) * 1999-12-13 2004-06-08 International Business Machines Corporation High performance internet storage access scheme
US6658473B1 (en) * 2000-02-25 2003-12-02 Sun Microsystems, Inc. Method and apparatus for distributing load in a computer environment
US7099915B1 (en) * 2000-06-30 2006-08-29 Cisco Technology, Inc. Server load balancing method and system
US7139792B1 (en) * 2000-09-29 2006-11-21 Intel Corporation Mechanism for locking client requests to a particular server
US7543066B2 (en) * 2001-04-30 2009-06-02 International Business Machines Corporation Method and apparatus for maintaining session affinity across multiple server groups

Also Published As

Publication number Publication date
US20110093531A1 (en) 2011-04-21
US20030163586A1 (en) 2003-08-28

Similar Documents

Publication Publication Date Title
US7861174B2 (en) Method and system for assembling concurrently-generated content
US6360262B1 (en) Mapping web server objects to TCP/IP ports
US20020055956A1 (en) Method and system for assembling concurrently-generated content
US6598077B2 (en) System and method for dynamic content routing
US7200665B2 (en) Allowing requests of a session to be serviced by different servers in a multi-server data service system
US20040215703A1 (en) System supporting concurrent operation of multiple executable application operation sessions
US7930362B2 (en) Techniques for delivering personalized content with a real-time routing network
US9342808B2 (en) Load balancing technique implemented in a data network device utilizing a data cache
US6430602B1 (en) Method and system for interactively responding to instant messaging requests
US8301748B2 (en) Managing CDN registration by a storage provider
US6343323B1 (en) Resource retrieval over a source network determined by checking a header of the requested resource for access restrictions
CN101753606B (en) Method for realizing WEB reverse proxy
US20060059246A1 (en) System and method for connection optimization
US20030097405A1 (en) Methods and systems for integrating with load balancers in a client and server system
US20030172164A1 (en) server persistence using a session identifier
US20110093530A1 (en) Server persistence using a url identifier
US20050188008A1 (en) System for communicating with servers using message definitions
US11204971B1 (en) Token-based authentication for a proxy web scraping service
US20030217147A1 (en) Directing a client computer to a least network latency server site
US20030074432A1 (en) State data management method and system
EP4222617A1 (en) Web scraping through use of proxies, and applications thereof
US20020129149A1 (en) Method and system for automatically directing a web user to a selected web server
WO2002056566A1 (en) Method and system for internet connection
EP1360598B1 (en) Assembling concurrently-generated personalized web pages
JP4728026B2 (en) Load balancing system and load balancing method

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION