CN1170236C - 在客户机与服务器之间控制通信的方法和设备 - Google Patents
在客户机与服务器之间控制通信的方法和设备 Download PDFInfo
- Publication number
- CN1170236C CN1170236C CNB011171618A CN01117161A CN1170236C CN 1170236 C CN1170236 C CN 1170236C CN B011171618 A CNB011171618 A CN B011171618A CN 01117161 A CN01117161 A CN 01117161A CN 1170236 C CN1170236 C CN 1170236C
- Authority
- CN
- China
- Prior art keywords
- server
- session
- client computer
- request
- identification data
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种用于在客户机与一群簇服务器之间控制通信的方法,包括:在所述客户机与所选择的其中一个所述群簇服务器之间的网络上进行第一通信会话;发送响应于所述网络上的第一通信会话而产生的标识数据以便由所述客户机存储;从所述客户机接收请求以进行第二通信会话,其中所述请求包括标识数据;及响应于在述请求中的标识数据将所述请求路由到所选择的服务器。
Description
技术领域
本发明一般涉及客户机/服务器网络应用,具体地说,涉及使用服务器簇群处理大量客户通信的万维网站点。
背景技术
流行的Web站点,如大电子商务(e-商务)站点,必须频繁地应付同时访问站点的大量客户机。为了立即服务所有的客户机,这样一种站点典型地使用并行操作的一簇群Web服务器主机。经Web访问站点的客户机请求,一般以超文本传输协议(HTTP)请求的形式,由一个路由器分布在主机中。用于该目的的路由器,如由IBM公司生产的“eND”服务器,称为“喷散路由器”(spray router),因为他们将输入请求以簇群“喷散”在主机中,以便平衡它们中的处理负载。Web服务器主机的每一个都包括运行一个Web服务器或引擎,以及服务于客户请求所需的任何其他应用引擎或过程的适当计算机。
客户机请求的简单喷散路由是可能的,因为HTTP本身是无态的,即每次通信会话独立于任何以前的会话。因此,在一个客户机与Web服务器的任一个之间的会话终止之后,能由任何其他服务器之一同样好地建立和处理下次会话。就希望记住从一次会话至下一次会话的状态信息来说,Web服务器传递由一个“会话保持器”,一般为用作状态仓库的群簇中的另一个计算机,存储的信息。Web服务器使客户机存储一个一般为客户机盘上的“cookie数据块”(cookie)形式的标识符。下次客户机向Web站点递交一个HTTP请求,从客户机的盘读回客户机标识符。一般地,编码站点的Web页,从而将来自存储客户机标识符的数据插入到HTTP首部中的一个适当字段中。另外,例如使用在先有技术中已知的其他方法,如URL重写机构,可以传送数据。
无论哪一个Web服务器从喷散路由器接收请求,都使用客户标识符从会话保持器提取必需的状态信息。检索状态信息耗时,并且作为整体减慢Web服务器和群簇的动作。然而,由于不可能预计哪个Web服务器将从路由器接收任何给定的客户机请求,所以每当有一个新的HTTP请求时,服务器不能高速缓存适当的状态数据,并且必须从会话保持器检索它。
在某些大Web站点中,路由器保持互联网协议(IP)地址的一个固定查阅表,并且根据客户机的IP地址将每个客户机分配给一个服务器。将具有在给定范围内的IP地址的客户机分配给相同的服务器。因而,只要客户机地址还没有从一次HTTP会话变到下一次会话,就将客户机的HTTP请求重复地分配给相同的服务器。这种方法能解决在相同服务器上运行的多个应用引擎的问题。而且,当Web服务器之一断开时,分配给该服务器的客户机完全接收不到服务。
发明内容
本发明的一个目的在于,根据一群Web服务器提供一种能够使站点以改进速度和效率服务于客户机的Web站点结构。
本发明的另一个目的在于,提供一种用于在以HTTP会话访问Web站点的客户机与在该站点处的一群簇Web服务器中的一个之间保持亲合力的方法。
本发明的又一个目的在于,提供一种用于在以HTTP会话访问Web站点的客户机与运行在该站点处的一群簇Web服务器中的一个上的应用程序之间保持亲合力的方法。
在本发明的最佳实施例中,一个Web站点包括多个Web服务器主机,该主机带有一个在服务器中分布客户机HTTP请求的路由器和一个存储会话数据的会话保持器。每个主机运行一个Web服务器过程,并且可选择地,同样运行一个或多个其他应用过程。当客户机访问Web站点,并且借助于服务器之一进行HTTP会话时,服务器将一个会话标识符(会话ID)下载到客户机。会话ID包括标识Web服务器主机的数据、在负责会话的主机上的过程、及一个版本有效性计数器值。会话ID最好由客户机以一个cookie数据块的形式存储。
对Web站点网页进行编码,从而当客户机以后再次访问Web站点时,将会话ID包括在客户机的HTTP请求中。路由器读会话ID,以便将客户机的HTTP请求路由到与以前相同的主机。主机然后读ID,以便将请求传送到适当的过程和检查版本有效性计数器值。如果计数器值与由服务器存储在由用于该客户机的服务器保持的会话数据的一个高速缓存中的一个值匹配,则服务器能断定高速缓存命中已经发生。在这种情况下,服务器能简单地使用高速缓存会话数据,并且不需要从会话保持器检索任何数据。然而,如果在用于该客户机的高速缓存中没有会话数据,或者如果在版本有效性计数器值中有一个误匹配,则服务器用于自会话保持器的数据重新加载高速缓存。当会话数据在会话期间有变化时,服务器将新数据保存在会话保持器中,增大版本有效性计数器,并且用新计数值下载一个修改会话ID,以便客户机为下次会话而存储它。
因而,在客户机与在应用级下的Web服务器之一之间从一个HTTP会话至下一个会话保持亲合力。在由客户机初始化的连续HTTP会话中,在服务器处的高速缓存命中的概率最大,同时降低从会话保持器检索状态数据的需要。结果,提高服务器群簇的效率和速度。不需要路由器保存一个固定亲合力表,这与基于IP地址亲合力的先有技术中已知的系统不同。本发明因而提供一种容易定标的、灵活的且在面临群簇中出现变化或故障时可自适应的解决方案。
尽管这里描述的最佳实施例使用一个路由器,来读客户机的会话ID信息和因而路由客户机的HTTP请求,但即使没有路由器,本发明的方法也可以用于处理请求和保持会话亲合力。在这种情况下,Web服务器读会话ID信息,并且使用它将会话分配到适当的应用过程且使高速缓存数据生效。而且,尽管这些最佳实施例处理运行在Web服务器上的HTTP会话,但本发明的原理类似地可应用于其他基于群簇的客户器/服务器应用层协议。该协议必须是这样的:允许服务器向客户机发送一个会话ID,并且允许客户机将会话ID返回到在消息开始处的服务器。
因此按照本发明一个最佳实施例,提供有一种用于在客户机与一群簇服务器之间控制通信的方法,该方法包括:
在客户机与在群簇服务器中选择的一个服务器之间的一个网络上进行第一通信会话;
发送响应在网络上的第一通信会话而产生的标识数据以便由客户机存储;
从客户机接收请求以进行第二通信会话,该请求包括标识数据;及
响应在请求中的标识数据将请求路由到选择的服务器。
最好,进行第一通信会话包括使用一个应用协议-最好是超文本传输协议(HTTP)-的通信,并且其中接收请求包括接收一个HTTP请求。另外最好,网络包括因特网,并且其中服务器包括Web服务器。
最好,标识数据包括对选择服务器的网络地址的参考,其中网络地址包括一个传输控制协议/网间协议(TCP/IP)地址。而且最好,标识数据包括与选择服务器有关的一个路由端口的标识。
另外或者另一方面,进行第一通信会话包括在选择服务器上运行一个应用过程,并且标识数据包括应用过程的一种标识。最好,路由请求包括传送由应用过程处理的请求。
进一步另外或者另一方面,发送标识数据包括更新版本有效性计数器的值,以便标识在由选择服务器保持的高速缓存中的会话数据的当前版本,并且将计数器的更新值发送到客户机。最好,该方法包括:在服务器处接收路由的请求;和将包括在来自客户机的请求中的版本有效性计数器的第一值与由服务器保持的版本有效性计数器的第二值相比较,以便确定是否使用在第二通信会话中的高速缓冲器中的会话数据。最好,该方法包括:将来自第一通信会话的会话数据存储在一个会话保持器中;和从会话保持器检索存储的会话数据,以便响应在版本有效性计数器的第一与第二值之间的失配而用在第二通信会话中。另外或者另一方面,更新版本有效性计数器的值包括响应在会话数据中的预定类型的变化而更新该值。
最好,发送标识数据包括发送一个由客户机存储的cookie数据块。另外或者另一方面,从客户机接收请求包括接收已经由服务器重写的统一资源定位器(URL)以包括标识数据。
按照本发明的一个最佳实施例,也提供有一种用于在一个客户机与一个或多个服务器之间控制通信的方法,该方法包括:
在客户机与运行在服务器之一上的一个选择过程之间的一个网络上进行一种第一通信会话;
发送响应在网络上的第一通信会话而产生的标识数据以便由客户机存储;
从客户机接收请求以进行一种第二通信会话,该请求包括标识数据;及
响应在请求中的标识数据而传送由选择过程处理的请求。
最好,发送标识数据包括更新版本有效性计数器的值,以便标识由选择过程使用的在高速缓存中的会话数据的当前版本,并且将计数器的更新值发送到客户机。另外最好,该方法包括:将包括在来自客户机的请求中的版本有效性计数器的第一值与由服务器保持的版本有效性计数器的第二值相比较,以便确定是否使用在第二通信会话中的高速缓冲器中的会话数据。最好,该方法包括:响应在版本有效性计数器的第一与第二值之间的失配,重新装载高速缓存。另外或者另一方面,更新版本有效性计数器的值包括响应在会话数据中的预定类型的变化而更新该值。
最好,该过程包括一个使用超文本传输协议(HTTP)的应用过程。
按照本发明的一个最佳实施例,另外提供网络服务器设备,该设备包括:
一群簇服务器,它被联接成与一个网络上的客户机通信,并且是可操作的,以便响应在客户机与从群簇服务器中选择的一个服务器之间进行的第一通信会话,从而发送响应在网络上的第一通信会话而产生的标识数据以便由客户机存储;和
一个路由器,它被联接成接收来自客户机的请求以进行一种第二通信会话,该请求包括标识数据,并且响应在请求中的标识数据而将请求路由到选择的服务器。
最好,服务器包括与使用应用协议的客户机通信的应用服务器。最好,应用协议包括超文本传输协议(HTTP),并且其中请求包括一个HTTP请求。
另外最好,路由器包括多个端口,并且标识数据包括链接到选择服务器上的端口之一的一个标识。
按照本发明的一个最佳实施例,进一步提供网络服务器设备,该设备被联接成:在一个客户机与运行在服务器上的一个选择过程之间的一个网络上进行一种第一通信会话;和发送响应在网络上的第一通信会话而产生的标识数据,以便由客户机存储,从而响应来自进行第二通信会话的客户机的一个请求,该请求包括标识数据,该服务器响应在请求中的标识数据而将请求传送到处理的选择过程。
按照本发明的一个最佳实施例,还提供一种用于在一个客户机与一群簇服务器之间控制通信的计算机软件产品,该产品包括一种其中存储程序指令的计算机可读介质,这些指令当由选择的一个服务器读时,使服务器在网络上与客户机进行一种第一通信会话,及发送响应在网络上的第一通信会话而产生的标识数据以便由客户机存储,从而当在群簇处从客户机接收包括标识数据的请求以便进行第二通信会话时,响应在请求中的标识数据而将请求路由到选择的服务器。
按照本发明的一个最佳实施例,另外提供一种用于在一个客户机与一群簇服务器之间控制通信的计算机软件产品,其中响应在客户机与群簇服务器中选择的一个服务器之间的网络上的第一通信会话,选择服务器发送响应在网络上的第一通信会话而产生的标识数据以便由客户机存储,该产品包括一种其中存储程序指令的计算机可读介质,这些指令当由联接到服务器群簇上的一个路由器读时,使路由器在网络上从客户机接收到一个进行一种第二通信会话的请求时,响应在请求中的标识数据而将该请求路由到选择的服务器。
按照本发明的一个最佳实施例,另外提供一种用于在一个客户机与一个服务器之间控制通信的计算机软件产品,该产品包括一种其中存储程序指令的计算机可读介质,这些指令当由服务器读时,使服务器在一个客户机与在服务器上运行的一个选择过程之间的网络上进行一种第一通信会话,并且发送响应在网络上的第一通信会话而产生的标识数据以便由客户机存储,其中响应从客户机接收的请求而进行一种第二通信会话,该请求包括标识数据,这些指令响应在请求中的标识数据而传送由选择过程处理的请求。
附图说明
从其最佳实施例的、与附图一起采取的如下详细描述中将更充分地理解本发明,在附图中:
图1是方块图,按照本发明一个最佳实施例示意地表明经因特网服务于一个客户机的Web站点;
图2是方块图,按照本发明一个最佳实施例示意地表明起一个会话标识符作用的一种数据结构;
图3是流程图,按照本发明一个最佳实施例示意地表明用于路由HTTP请求的方法;
图4是流程图,按照本发明一个最佳实施例示意地表明用于处理HTTP请求的方法;及
图5是流程图,按照本发明一个最佳实施例示意地表明用于存储会话数据的方法。
具体实施方式
图1是方块图,按照本发明一个最佳实施例示意地表明万维网站点20。将Web站点联接成经一个网络22,最好是因特网,与客户机24通信。这些客户机一般包括运行适当浏览器软件的个人计算机。客户机使用在低级传输控制协议和网间协议(TCP/IP)上的超文本传输协议(HTTP)与Web站点通信。另外,Web站点20和客户机24可以在其他类型的网络上通信,并且可以使用其他通信和应用层协议。
Web站点20包括一个从客户机24接收HTTP请求和将他们分布在多个Web服务器32、34、…、36中的路由器30。路由器最好包括一个喷散路由器,如上述IBM eND服务器,具有按下面描述的适当修改。Web服务器包括在先有技术中已知的基本上任何适当类型的、运行Web服务器软件的主计算机。除必需的Web服务器软件过程之外,服务器的每一个一般运行一个或多个应用服务器38或应用引擎,如Java虚拟机(JVM)。由Web服务器进行的关于HTTP会话的状态数据由一个会话保持器40存储,会话保持器40也包括一个带有适当软件的主计算机。另一方面,会话保持器可以驻留在与Web服务器之一相同的主机上。路由器30、Web服务器32、34、36及会话保持器40的操作所需要的软件可以下载到一个网络上的相应计算机。另一方面,可以在诸如CD-ROM或非易失性存储器之类的真实介质上供给软件,以便安装在计算机中。
图2是方块图,按照本发明一个最佳实施例示意地表明起一个会话ID 50作用的一种数据结构。当客户机24与站点20进行初始HTTP会话时,分配给客户机的Web服务器,比如服务器32,在HTTP会话期间和/或其结束时将会话ID下载到客户机。会话ID最好以cookie数据块的形式下载到客户机24,并且然后存储在客户机的硬盘上,如先有技术中已知的那样。ID 50最好包括一个唯一的会话ID值51、以及分别标识TCP/IP地址和Web服务器主机的路由器端口的一个TCP/IP地址字段52和一个端口字段54。另一方面,代替在字段52和54中的地址和端口,ID可以包括一个对于由路由器30用于标识服务器主机的查阅表的密钥。ID也包括一个标识负责最近会话的Web服务器或其他应用服务器过程38的过程标识符字段56、和一个在下文描述其功能的版本有效性计数器字段58。
在以后的HTTP会话中,客户机将存储的会话ID 50传送到Web站点,用作其HTTP请求的部分以开始新会话。最好,以基本上与将由一个客户机存储的cookie数据块数据按常规传送到在HTTP请求中的一个服务器相同的方式,将会话ID从客户机传送到在HTTP请求首部中的Web站点。另一方面,URL重写机构可以用于将会话ID传送到路由器30。在这种情况下,一般使用超文本标记语言(HTML)代码,编码在站点20上的Web页,从而当客户机24请求一个新页时,新页的统一资源定位器(URL)由客户机浏览器重写以包括会话ID数据。尽管诸如此类的方法通常用在Web编程中,但如下面描述的那样,用于传输会话数据和在客户机24与服务器32之间的HTTP级处保持亲合力的应用程序在先有技术中是未知的。
图3是流程图,按照本发明一个最佳实施例示意地表明用于路由在站点20处从客户机24接收的HTTP请求的方法。在一个HTTP截收步骤60,路由器30截收输入HTTP请求,并且在第一ID抽取步骤62,从请求抽取会话ID。路由器在主机和端口抽取步骤64中,使用在会话ID 50的字段52和54中(图2)的信息,以确定应该对其路由请求的Web服务器主机的地址和路由器端口。这一般将是在客户机的以前HTTP会话中服务客户机24的同一主机,比如服务器32。另一方面,在一些情况下,可以迅速地预先在一次会话中确定:用户的下次HTTP请求将指向不同的服务器。在这样一种情况下,字段52和54将标识不同的服务器。
在过载检查步骤66,路由器确定请求所指向的主机是否能够处理该请求。如果主机由于其他客户机请求而过载,或者由于某些原因例如由于系统失效而不适用,则在重新定向步骤68,将当前客户机请求重新指向另一个主机。否则,按照在会话ID中的信息路由该请求。
无论路由器选择哪个主机,在所选择主机上运行的Web服务器过程在请示接收步骤70都从路由器30接收HTTP。服务器在第二ID抽取步骤72从该请求抽取会话ID 50。它然后在一个服务器ID抽取步骤74抽取写在会话ID的字段56中的服务器ID。一般地,如以上提到的那样,服务器ID标识一个应用过程或应用引擎,如过程38,它处理客户机以前HTTP会话并且从其中产生字段56中的数据。另一方面,对于某些服务器,如Domino综合信息和Web应用软件平台,产生过程可以是Web服务器过程本身。(“Domino”是LotusDevelopment Corporation的商标。)在一个请求传送步骤76,根据服务器ID,将客户机请求传送到产生过程或引擎以便处理。
图4是流程图,按照本发明一个最佳实施例示意地表明用于处理在会话ID 50中的数据的方法。该方法一般由在步骤76接收客户机的HTTP请求的服务器主机32上的服务器过程(或引擎)执行。在高速缓存查找步骤80,根据会话ID值51,对属于该客户机的会话数据,查找服务器的内存高速缓存。在高速缓存检查步骤82,该过程确定在高速缓存中是否有任何适当的数据。如果没有,那么在高速缓存重新加载步骤84,用由会话保持器40提取的数据重新加载高速缓存。该过程也在计数器设置步骤86,对从会话保持器加载的会话数据读版本有效性计数器的值,并且将在高速缓存中的计数器设置为该值。然后在会话持续步骤94,能进行HTTP会话。
另一方面,如果该过程在步骤82发现在高速缓存中有相关的会话数据,则在计数抽取步骤88,通过抽取版本有效性计数器的值而确认由高速缓存当前保持的数据。在计数器匹配步骤90,将该值与在会话ID 50的字段58中的计数器值相比较。如果有计数器值的失配,则该过程断定高速缓存数据是无效的,并且在步骤84使用于自会话保持器的数据重新加载高速缓冲器。然而,如果诸值匹配,则该过程在高速缓存命中步骤92,能继续使用在高速缓存中的会话数据,并且会话继续。
图5是流程图,按照本发明一个最佳实施例示意地表明在客户机24与服务器32之间的HTTP会话期间用于处理和存储会话数据的变化的一种方法。在会话期间,服务器过程在会话数据变化步骤100,检查会话数据的变化。最好,该过程检查会话数据的选择字段的、或所有这些字段的值,以便检测已经发生的任何相关变化。另一方面,提供一个应用程序接口(API),使应用程序编程器能够规定要检测的变化。在任何一种情况下,检测的变化可以包括在会话数据中出现的所有变化,或者他们可以仅包括一个选择子集。将检测的变化限制到一个选择子集可能意味着,如下面描述的那样,在传送到会话保持器的会话数据中将有些误差,但应用程序或许会因此而更迅速地运行。编程器因而给出用于应用性能的选择绝对会话数据精度的方案。
当在步骤100检测相关变化时,服务器32在一个数据保存步骤102将修改的会话数据发送到会话保持器40。该步骤可能发生在会话期间或在其结束时。同时,在计数器增大步骤104,服务器更新版本有效性计数器。更新计数器值被记录在服务器高速缓存中和在由会话保持器保存的会话数据中。服务器修改会话ID 50以便包括在字段58中的新计数器值、以及在其他数据字段中可能已经发生的任何其他变化,并且在ID发送步骤106发送由客户机24存储的修改ID。客户机将使用在其下次HTTP请求中的修改会话ID。
尽管表示在图1中的最佳实施例根据会话ID使用路由器30路由客户机HTTP请求,但图4和5的方法也可以由独立于任何路由器的Web服务器使用。在这种情况下,接收客户机HTTP请求的Web服务器读会话ID信息,并且用它将会话分配到适当的应用过程或引擎且使在其高速缓存中的数据生效。如有必要,接收请求的Web服务器可以将请求重新指向在不同主机上的适当服务器过程。如果高速缓存数据无效,则例如从磁盘重新加载高速缓存。
而且尽管这里描述的最佳实施例处理运行在Web服务器上的HTTP会话,但本发明的原理类似地适用于其他基于群簇的客户机/服务器用途。例如,在运行在用户数据报协议(UDP)上的多媒体用途中,作必要的修改后可以应用本发明的原理。
因而要理解,作为例子列举了上述最佳实施例,并且本发明不限于上文已经具体表示和描述的实施例。说得更确切一些,本发明的范围包括上文描述的各种特征的组合和子组合、以及熟悉本专业的技术人员在阅读以上描述时想到的和没有公开在先有技术中的变更和改进。
Claims (34)
1、一种用于在客户机与一群簇服务器之间控制通信的方法,包括:
在所述客户机与所选择的其中一个所述群簇服务器之间的网络上进行第一通信会话;
发送响应于所述网络上的第一通信会话而产生的标识数据以便由所述客户机存储;
从所述客户机接收请求以进行第二通信会话,其中所述请求包括标识数据;及
响应于在所述请求中的标识数据,将所述请求路由到所选择的服务器。
2、根据权利要求1所述的方法,其中所述进行第一通信会话的步骤包括使用应用协议进行通信。
3、根据权利要求2所述的方法,其中所述应用协议包括超文本传输协议,并且其中所述接收请求的步骤包括接收超文本传输协议请求。
4、根据权利要求3所述的方法,其中所述网络包括因特网,并且所述服务器包括Web服务器。
5、根据权利要求1所述的方法,其中所述标识数据包括对所选择服务器的网络地址的引用。
6、根据权利要求5所述的方法,其中所述网络地址包括传输控制协议/互联网协议地址。
7、根据权利要求1所述的方法,其中所述标识数据包括与所选择服务器相关的路由端口的标识。
8、根据权利要求1所述的方法,其中所述进行第一通信会话的步骤包括在所选择服务器上运行应用过程,并且所述标识数据包括所述应用过程的标识。
9、根据权利要求8所述的方法,其中所述路由请求的步骤包括传送由所述应用过程所处理的请求。
10、根据权利要求1所述的方法,其中所述发送标识数据的步骤包括更新版本有效性计数器的值,以便标识由所选择服务器保持在高速缓存中的会话数据的当前版本,并且将所述计数器的更新值发送到所述客户机。
11、根据权利要求10所述的方法,还包括:
在所述服务器中接收路由的请求;和
将包含在来自所述客户机的请求中的版本有效性计数器的第一值与由所述服务器保持的版本有效性计数器的第二值相比较,以便确定是否在所述第二通信会话中使用高速缓存中的会话数据。
12、根据权利要求11所述的方法,还包括:
将来自所述第一通信会话的会话数据存储在会话保持器中;和
从所述会话保持器检索所存储的会话数据,以便响应于在所述版本有效性计数器的第一与第二值之间的失配而用于所述第二通信会话。
13、根据权利要求10所述的方法,其中所述更新版本有效性计数器的值的步骤包括:响应于在所述会话数据中的预定类型的变化而更新所述值。
14、根据权利要求1所述的方法,其中所述发送标识数据的步骤包括发送由所述客户机所存储的cookie数据块。
15、根据权利要求1所述的方法,其中从所述客户机接收请求的步骤包括接收已经由服务器重写的统一资源定位器以包括所述标识数据。
16、一种用于在客户机与一个或多个服务器之间控制通信的方法,包括:
在所述客户机与运行在其中一个所述服务器中的选择过程之间的网络上进行第一通信会话;
发送响应于在所述网络上的第一通信会话而产生的标识数据以便由所述客户机存储;
从所述客户机接收请求以进行第二通信会话,其中所述请求包括标识数据;及
响应于在所述请求中的标识数据,传送将由所述选择过程所处理的请求。
17、根据权利要求16所述的方法,其中所述发送标识数据的步骤包括更新版本有效性计数器的值,以便标识由所述选择过程所用的、高速缓存中的会话数据的当前版本,并且将所述计数器的更新值发送到所述客户机。
18、根据权利要求17所述的方法,还包括:
将包含在来自所述客户机的请求中的版本有效性计数器的第一值与由所述服务器保持的版本有效性计数器的第二值相比较,以便确定是否在所述第二通信会话中使用高速缓存中的会话数据。
19、根据权利要求18所述的方法,还包括:
响应于在版本有效性计数器的第一与第二值之间的失配,重新装载高速缓存。
20、根据权利要求17所述的方法,其中所述更新版本有效性计数器的值的步骤包括响应于会话数据中的预定类型的变化而更新所述值。
21、根据权利要求16所述的方法,其中所述过程包括使用超文本传输协议的应用过程。
22、一种网络服务器设备,包括:
一群簇服务器,它们被联接成经过网络与客户机通信,并且可以响应在所述客户机与从所选择的其中一个群簇服务器之间进行的第一通信会话而操作,发送响应于所述网络中的第一通信会话而产生的标识数据以便由所述客户机存储;和
路由器,它被联接成接收来自所述客户机的请求以进行第二通信会话,所述请求包括标识数据,并且响应于所述请求中的标识数据而将所述请求路由到所选择的服务器。
23、根据权利要求22所述的设备,其中所述服务器包括与使用应用协议的客户机通信的应用服务器。
24、根据权利要求23所述的设备,其中所述应用协议包括超文本传输协议,并且所述请求包括超文本传输协议请求。
25、根据权利要求24所述的设备,其中所述网络包括因特网,并且所述服务器包括Web服务器。
26、根据权利要求22所述的设备,其中所述标识数据包括所选择服务器的网络地址的参考。
27、根据权利要求26所述的设备,其中所述网络地址包括传输控制协议/互联网协议(TCP/IP)地址。
28、根据权利要求22所述的设备,其中所述路由器包括多个端口,并且所述标识数据包括链接到所选择服务器上的其中一个端口的标识。
29、根据权利要求22所述的设备,其中由在所述选择服务器上运行的应用过程进行第一通信会话,并且所述标识数据包括应用过程的标识,所选择服务器响应于所述标识而传送由所述应用过程所处理的请求。
30、根据权利要求22所述的设备,其中所述发送到客户机的标识数据包括版本有效性计数器的值,所述值由所选择服务器更新以便标识由所选择选择服务器保持在高速缓存中的会话数据的当前版本,所选择服务器将包含在来自所述客户机的请求中的版本有效性计数器的第一值与由所述服务器所保持的版本有效性计数器的第二值相比较,以便确定是否在第二通信会话中使用高速缓存中的会话数据。
31、根据权利要求30所述的设备,还包括:
一个被联接成接收和存储来自所述第一通信会话的会话数据的会话保持器,其中所述服务器从所述会话保持器检索所存储的会话数据,以便响应于在版本有效性计数器的第一与第二值之间的失配而用于第二通信会话。
32、一种网络服务器设备,被联接成:
在客户机与运行在服务器的选择过程之间的网络上进行第一通信会话;和
发送响应于经过所述网络的第一通信会话而产生的标识数据,以便由所述客户机存储,从而响应于来自所述客户机的请求以进行第二通信会话,所述请求包括标识数据,所述服务器响应于所述请求中的标识数据而将所述请求传送到所选择过程,用以处理。
33、根据权利要求32所述的设备,其中所述发送到客户机的标识数据包括版本有效性计数器的更新值,所述值标识由所选择过程使用的、高速缓存中的会话数据的当前版本,并且更新所述服务器以将包含在来自所述客户机的请求中的版本有效性计数器的第一值与由所述服务器所保持的版本有效性计数器的第二值相比较,以便确定是否在第二通信会话中使用高速缓存中的会话数据。
34、根据权利要求32所述的设备,其中所述过程包括使用超文本传输协议的应用过程。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/562,375 | 2000-05-01 | ||
US09/562,375 US6947992B1 (en) | 2000-05-01 | 2000-05-01 | Maintaining HTTP session affinity in a cluster environment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1321935A CN1321935A (zh) | 2001-11-14 |
CN1170236C true CN1170236C (zh) | 2004-10-06 |
Family
ID=24246029
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB011171618A Expired - Fee Related CN1170236C (zh) | 2000-05-01 | 2001-04-27 | 在客户机与服务器之间控制通信的方法和设备 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6947992B1 (zh) |
CN (1) | CN1170236C (zh) |
Families Citing this family (88)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000068856A2 (en) | 1999-05-11 | 2000-11-16 | Webvan Group, Inc. | Electronic commerce enabled delivery system and method |
US7177825B1 (en) | 1999-05-11 | 2007-02-13 | Borders Louis H | Integrated system for ordering, fulfillment, and delivery of consumer products using a data network |
US7240283B1 (en) | 2000-11-10 | 2007-07-03 | Narasimha Rao Paila | Data transmission and rendering techniques implemented over a client-server system |
US7020698B2 (en) * | 2000-05-31 | 2006-03-28 | Lucent Technologies Inc. | System and method for locating a closest server in response to a client domain name request |
US9800671B1 (en) * | 2000-06-28 | 2017-10-24 | Intel Corporation | Repeatedly accessing a storage resource normally accessed through a web page without accessing the web page |
CA2424568A1 (en) * | 2000-10-02 | 2002-04-11 | Learning Tree International Inc. | Method and system for hands-on e-learning |
US7233914B1 (en) | 2000-12-27 | 2007-06-19 | Joyo Wijaya | Technique for implementing item substitution for unavailable items relating to a customer order |
US7127514B2 (en) * | 2000-12-28 | 2006-10-24 | Microsoft Corporation | Stateless distributed computer architecture with server-oriented state-caching objects maintained on network or client |
US7353380B2 (en) * | 2001-02-12 | 2008-04-01 | Aventail, Llc, A Subsidiary Of Sonicwall, Inc. | Method and apparatus for providing secure streaming data transmission facilities using unreliable protocols |
US7360075B2 (en) | 2001-02-12 | 2008-04-15 | Aventail Corporation, A Wholly Owned Subsidiary Of Sonicwall, Inc. | Method and apparatus for providing secure streaming data transmission facilities using unreliable protocols |
US7383329B2 (en) | 2001-02-13 | 2008-06-03 | Aventail, Llc | Distributed cache for state transfer operations |
US7308423B1 (en) | 2001-03-19 | 2007-12-11 | Franklin Goodhue Woodward | Technique for handling sales of regulated items implemented over a data network |
US7469341B2 (en) * | 2001-04-18 | 2008-12-23 | Ipass Inc. | Method and system for associating a plurality of transaction data records generated in a service access system |
US7921290B2 (en) * | 2001-04-18 | 2011-04-05 | Ipass Inc. | Method and system for securely authenticating network access credentials for users |
US20030065919A1 (en) * | 2001-04-18 | 2003-04-03 | Albert Roy David | Method and system for identifying a replay attack by an access device to a computer system |
US7103714B1 (en) * | 2001-08-04 | 2006-09-05 | Oracle International Corp. | System and method for serving one set of cached data for differing data requests |
US7277945B1 (en) * | 2001-09-12 | 2007-10-02 | Cisco Technology, Inc. | System and method for maintaining seamless session operation |
US7200665B2 (en) * | 2001-10-17 | 2007-04-03 | Hewlett-Packard Development Company, L.P. | Allowing requests of a session to be serviced by different servers in a multi-server data service system |
US7296061B2 (en) * | 2001-11-21 | 2007-11-13 | Blue Titan Software, Inc. | Distributed web services network architecture |
US7853643B1 (en) * | 2001-11-21 | 2010-12-14 | Blue Titan Software, Inc. | Web services-based computing resource lifecycle management |
JP3885585B2 (ja) * | 2001-12-28 | 2007-02-21 | 松下電器産業株式会社 | ルータ装置及びそれを用いたネットワークシステム |
US20030187976A1 (en) * | 2002-04-01 | 2003-10-02 | Decime Jerry B. | Tracking users at a web server network |
US7644434B2 (en) * | 2002-04-25 | 2010-01-05 | Applied Identity, Inc. | Computer security system |
WO2005066737A1 (en) * | 2003-12-31 | 2005-07-21 | Applied Identity | Method and system for establishing the identity of an originator of computer transactions |
US8910241B2 (en) | 2002-04-25 | 2014-12-09 | Citrix Systems, Inc. | Computer security system |
US7490162B1 (en) * | 2002-05-15 | 2009-02-10 | F5 Networks, Inc. | Method and system for forwarding messages received at a traffic manager |
US20040216122A1 (en) * | 2002-07-23 | 2004-10-28 | Charles Gram | Method for routing data through multiple applications |
US7328237B1 (en) * | 2002-07-25 | 2008-02-05 | Cisco Technology, Inc. | Technique for improving load balancing of traffic in a data network using source-side related information |
US7860975B2 (en) * | 2002-07-31 | 2010-12-28 | Oracle America, Inc. | System and method for secure sticky routing of requests within a server farm |
US7774473B2 (en) * | 2002-07-31 | 2010-08-10 | Oracle America, Inc. | System and method for sticky routing of requests within a server farm |
US20040068724A1 (en) * | 2002-08-30 | 2004-04-08 | Gardner Richard Wayne | Server processing for updating dataset versions resident on a wireless device |
CN1720520B (zh) * | 2002-12-02 | 2010-05-05 | 索尼株式会社 | 对话控制设备和方法,以及机器人设备 |
US7685631B1 (en) | 2003-02-05 | 2010-03-23 | Microsoft Corporation | Authentication of a server by a client to prevent fraudulent user interfaces |
US7634570B2 (en) * | 2003-03-12 | 2009-12-15 | Microsoft Corporation | Managing state information across communication sessions between a client and a server via a stateless protocol |
US20040215695A1 (en) * | 2003-03-31 | 2004-10-28 | Sue-Chen Hsu | Method and system for implementing accurate and convenient online transactions in a loosely coupled environments |
US7610386B1 (en) * | 2003-04-29 | 2009-10-27 | Blue Titan Software, Inc. | Stateful messaging gateway |
US8606885B2 (en) | 2003-06-05 | 2013-12-10 | Ipass Inc. | Method and system of providing access point data associated with a network access point |
US7454421B2 (en) * | 2003-07-11 | 2008-11-18 | Nippon Telegraph And Telephone Corporation | Database access control method, database access controller, agent processing server, database access control program, and medium recording the program |
US20050027853A1 (en) * | 2003-07-28 | 2005-02-03 | Martin Terry M. | System and method for collecting data regarding network service operation |
US20050038855A1 (en) * | 2003-07-30 | 2005-02-17 | Martin Terry M. | Systems and methods for collecting data regarding a messaging session |
US8266294B2 (en) * | 2003-08-13 | 2012-09-11 | Microsoft Corporation | Routing hints |
NZ544663A (en) * | 2003-08-13 | 2008-09-26 | Microsoft Corp | Routing hints |
US7882251B2 (en) * | 2003-08-13 | 2011-02-01 | Microsoft Corporation | Routing hints |
US7913251B2 (en) * | 2003-12-12 | 2011-03-22 | International Business Machines Corporation | Hypervisor virtualization of OS console and operator panel |
JP4980879B2 (ja) * | 2004-03-12 | 2012-07-18 | トムソン ライセンシング | ジオグラフィックドライブ上の自動リモートサイトダウンロード |
US7539862B2 (en) * | 2004-04-08 | 2009-05-26 | Ipass Inc. | Method and system for verifying and updating the configuration of an access device during authentication |
US7543069B2 (en) * | 2004-10-18 | 2009-06-02 | International Business Machines Corporation | Dynamically updating session state affinity |
US7502835B1 (en) * | 2004-11-17 | 2009-03-10 | Juniper Networks, Inc. | Virtual folders for tracking HTTP sessions |
US7558857B2 (en) * | 2005-06-30 | 2009-07-07 | Microsoft Corporation | Solution deployment in a server farm |
US8176408B2 (en) * | 2005-09-12 | 2012-05-08 | Microsoft Corporation | Modularized web provisioning |
CN1968117B (zh) * | 2005-11-19 | 2010-07-14 | 腾讯科技(深圳)有限公司 | 一种即时通信中局域网用户加入群组通信的方法 |
US8898309B2 (en) * | 2006-01-31 | 2014-11-25 | Speed-Trap.Com Ltd. | Website monitoring and cookie setting |
GB0601939D0 (en) * | 2006-01-31 | 2006-03-15 | Speed Trap Com Ltd | Website monitoring and cookie setting |
US9473316B2 (en) * | 2006-10-17 | 2016-10-18 | International Business Machines Corporation | Resource consumption reduction via meeting affinity |
US8099454B2 (en) * | 2007-08-03 | 2012-01-17 | International Business Machines Corporation | Staging a file within a distributed computing system |
US8560938B2 (en) * | 2008-02-12 | 2013-10-15 | Oracle International Corporation | Multi-layer XML customization |
US9239666B2 (en) * | 2007-09-12 | 2016-01-19 | Citrix Systems, Inc. | Methods and systems for maintaining desktop environments providing integrated access to remote and local resources |
US8516539B2 (en) | 2007-11-09 | 2013-08-20 | Citrix Systems, Inc | System and method for inferring access policies from access event records |
US8990910B2 (en) | 2007-11-13 | 2015-03-24 | Citrix Systems, Inc. | System and method using globally unique identities |
US20090198820A1 (en) * | 2007-12-07 | 2009-08-06 | Gallup, Inc. | Preserving state information client-server system networked via a stateless protocol |
US8788542B2 (en) | 2008-02-12 | 2014-07-22 | Oracle International Corporation | Customization syntax for multi-layer XML customization |
US8966465B2 (en) | 2008-02-12 | 2015-02-24 | Oracle International Corporation | Customization creation and update for multi-layer XML customization |
US8875306B2 (en) | 2008-02-12 | 2014-10-28 | Oracle International Corporation | Customization restrictions for multi-layer XML customization |
US8538998B2 (en) * | 2008-02-12 | 2013-09-17 | Oracle International Corporation | Caching and memory optimizations for multi-layer XML customization |
US9240945B2 (en) | 2008-03-19 | 2016-01-19 | Citrix Systems, Inc. | Access, priority and bandwidth management based on application identity |
US8782604B2 (en) | 2008-04-11 | 2014-07-15 | Oracle International Corporation | Sandbox support for metadata in running applications |
US8943575B2 (en) | 2008-04-30 | 2015-01-27 | Citrix Systems, Inc. | Method and system for policy simulation |
US8667031B2 (en) | 2008-06-13 | 2014-03-04 | Oracle International Corporation | Reuse of shared metadata across applications via URL protocol |
US8996658B2 (en) | 2008-09-03 | 2015-03-31 | Oracle International Corporation | System and method for integration of browser-based thin client applications within desktop rich client architecture |
US8799319B2 (en) | 2008-09-19 | 2014-08-05 | Oracle International Corporation | System and method for meta-data driven, semi-automated generation of web services based on existing applications |
US9122520B2 (en) | 2008-09-17 | 2015-09-01 | Oracle International Corporation | Generic wait service: pausing a BPEL process |
CN101729497B (zh) * | 2008-10-22 | 2013-02-27 | 国际商业机器公司 | 内容提供方法和系统 |
US8990573B2 (en) | 2008-11-10 | 2015-03-24 | Citrix Systems, Inc. | System and method for using variable security tag location in network communications |
US8332654B2 (en) * | 2008-12-08 | 2012-12-11 | Oracle International Corporation | Secure framework for invoking server-side APIs using AJAX |
US20100179980A1 (en) * | 2009-01-14 | 2010-07-15 | Movidilo S.L. | Cache system for mobile communications devices |
US8869108B2 (en) * | 2009-11-18 | 2014-10-21 | Oracle International Corporation | Techniques related to customizations for composite applications |
JP5407880B2 (ja) * | 2010-01-13 | 2014-02-05 | 株式会社リコー | 光走査装置及び画像形成装置 |
JP5326045B2 (ja) * | 2010-05-11 | 2013-10-30 | 株式会社チェプロ | 双方向通信システムおよびこれに用いるサーバ装置 |
US8996607B1 (en) * | 2010-06-04 | 2015-03-31 | Amazon Technologies, Inc. | Identity-based casting of network addresses |
US8478961B2 (en) | 2011-03-02 | 2013-07-02 | International Business Machines Corporation | Dynamic migration of virtual machines based on workload cache demand profiling |
US8954942B2 (en) | 2011-09-30 | 2015-02-10 | Oracle International Corporation | Optimizations using a BPEL compiler |
EP2667568B1 (en) * | 2012-05-25 | 2017-03-15 | Telefonaktiebolaget LM Ericsson (publ) | Methods and apparatuses for handling data-related requests |
US9729652B2 (en) | 2013-04-22 | 2017-08-08 | Microsoft Technology Licensing, Llc | Dynamically affinitizing users to a version of a website |
US9621427B1 (en) * | 2013-12-06 | 2017-04-11 | Vmware, Inc. | Automatic placement of clients in a distributed computer system satisfying constraints |
CN104767603A (zh) * | 2014-01-02 | 2015-07-08 | 北京思博途信息技术有限公司 | 一种提供网络服务的方法、服务器及用户终端 |
US10909186B2 (en) | 2015-09-30 | 2021-02-02 | Oracle International Corporation | Multi-tenant customizable composites |
US11595495B2 (en) | 2021-07-30 | 2023-02-28 | Morgan Stanley Services Group Inc. | Process isolation via application-level blue-green topology |
CN114928661A (zh) * | 2022-05-31 | 2022-08-19 | 杭州迪普科技股份有限公司 | 会话保持方法和装置 |
Family Cites Families (8)
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 |
US6094485A (en) * | 1997-09-18 | 2000-07-25 | Netscape Communications Corporation | SSL step-up |
US6076108A (en) * | 1998-03-06 | 2000-06-13 | I2 Technologies, Inc. | System and method for maintaining a state for a user session using a web system having a global session server |
US6098093A (en) * | 1998-03-19 | 2000-08-01 | International Business Machines Corp. | Maintaining sessions in a clustered server environment |
JP3550503B2 (ja) * | 1998-11-10 | 2004-08-04 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 通信を可能とするための方法及び通信システム |
US6466949B2 (en) * | 1998-11-23 | 2002-10-15 | Myway.Com Corporation | Performing event notification in a database having a distributed web cluster |
US6715082B1 (en) * | 1999-01-14 | 2004-03-30 | Cisco Technology, Inc. | Security server token caching |
US6374300B2 (en) * | 1999-07-15 | 2002-04-16 | F5 Networks, Inc. | Method and system for storing load balancing information with an HTTP cookie |
-
2000
- 2000-05-01 US US09/562,375 patent/US6947992B1/en not_active Expired - Fee Related
-
2001
- 2001-04-27 CN CNB011171618A patent/CN1170236C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1321935A (zh) | 2001-11-14 |
US6947992B1 (en) | 2005-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1170236C (zh) | 在客户机与服务器之间控制通信的方法和设备 | |
US11194719B2 (en) | Cache optimization | |
CN1151448C (zh) | 可扩缩的超高速缓存检索方法 | |
US9219705B2 (en) | Scaling network services using DNS | |
US7676599B2 (en) | System and method of binding a client to a server | |
CN1221898C (zh) | 刷新网络代理高速缓存服务器对象的系统和方法 | |
US20070226229A1 (en) | Method and system for class-based management of dynamic content in a networked environment | |
EP2263164B1 (en) | Request routing based on class | |
CN1352775A (zh) | 选择超高速缓冲存储器 | |
CN1351729A (zh) | 处理关于网站所提供信息的请求 | |
US20080208961A1 (en) | Parallel retrieval system | |
US20040205162A1 (en) | Method of executing an edge-enabled application in a content delivery network (CDN) | |
US20120317187A1 (en) | Prioritized Preloading of Documents to Client | |
US20070136477A1 (en) | HTTP header intermediary for enabling session-based dynamic site searches | |
US11778068B2 (en) | Systems and methods for processing requests for content of a content distribution network | |
CN1529460A (zh) | 基于全球网络定位的全局负载均衡方法 | |
US11805093B2 (en) | Systems and methods for processing requests for content of a content distribution network | |
CN102577237A (zh) | 网站托管服务调度方法、应用访问处理方法、装置及系统 | |
CN101046806A (zh) | 搜索引擎系统和方法 | |
WO2008039117A1 (en) | A method and apparatus for controlling a proxy server | |
EP2164231A1 (en) | Mobile phone optimized online communication | |
US8095687B1 (en) | Systems and methods for managing state in a cluster of servers | |
WO2001095116A2 (en) | A method and a system for providing information from a server to a client | |
IES20020173A2 (en) | A method and system for tracking accesses of websites by mobile communication units |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20041006 |