专利名称:将虚拟统一资源定位器用于加载均衡的利记博彩app
技术领域:
本发明一般地涉及计算机网络中的信息检索。更具体地,本发明涉及用于在每个对话而不是在每个连接的基础上对一组服务器的HTTP请求进行均衡的方法和系统。
万维网是因特网的多媒体信息检索系统。在网络环境中,客户机采用超文本传输协议(HTTP)与网络服务器进行事务处理,其中HTTP是一种公知的应用协议,采用一种标准的网页描述语言、即超文本链接标示语言(HTML)向用户提供对文件(例如,文本、图形、图像、声音、视频等)的访问。HTML提供基本文档格式化,并允许开发者规定到其他服务器和文件的“链接”。在因特网范例中,到一个服务器的网络路径由所谓的统一资源定位器(URL)来识别,所述URL具有一个定义网络连接的专门语法。HTML可兼容浏览器(例如,Netscape Navigator或MicrosoftInternet Explorer)在客户机的使用,涉及通过URL进行的链接说明。作为响应,客户机作出对在链接中识别出的服务器的请求,随即接收根据HTML格式化的文档或其他对象。在网络服务器上支持的文档集合有时被称为网站(web site)。
在许多流行的网站,容量需求远大于一个服务器所能够提供的容量。因此,映射一个网站并合并一个加载均衡例程以便在一池(pool)服务器上分布连接请求是本领域所公知的。一般地,这种加载均衡是以循环方式实现的。每个服务器最好包括相同的数据,这样则任何请求都可以由该池中的多个服务器中的任何一个来处理。这以均匀的方式分布加载。
虽然这种已知的加载均衡方案有利,但特定类型的网络服务器事务处理不能有助于这种方式的加载均衡。于是,例如假设网站是一个金融机构或银行。一般地,用户访问这样一个网站来进行一组一个或多个交易、例如帐户余额查询、资金在一组帐户对之间的传输等。当为加载均衡目的而映射这种类型的网站时,则用户的HTTP请求有可能会由服务器池中的不同服务器来进行服务。这是不希望的,并且可能强迫用户不得不重复地进行登录,以便完成所要求的所有交易。在提供电子商业交易的镜像站点中也会遇到类似的问题。
这个问题的出现是因为现有技术中的加载均衡技术是在每个连接的基础上实现的。因此,如果一个处理HTTP请求的给定服务器由于过多的连接而突然变得过载,则加载均衡例程自动将下一个连接请求发送给池中的另一个服务器,即使该请求来自于同一个客户机也是如此。
本发明解决了这个问题。
本发明的一个主要目的是提供一种在每个对话基础上在一组服务器中合理地分布客户请求的方法。在该组中的一给定服务器最好被分配一给定数目的对话,而不是分配给定数目的连接,因此,用户的HTTP连接请求在整个对话期中最好由该组中的同一服务器进行服务。
本发明的另一个主要目的是在一组服务器中实施一个加载均衡例程,其中,来自客户机的给定的连接请求由该组中的同一服务器进行服务。
本发明的又一个目的是采用定义一个用户对话的所谓的虚拟URL来管理来自客户机的HTTP连接请求。然后通知该客户机已经将所请求的URL移到一个特定服务器上。
本发明的又一个目的是在对话的基础上对一池服务器均衡其连接请求,使每个服务器具有预定数目的、可以对在该服务器上支持的文档获得访问的用户。
本发明的另一个目的是在一个对话期间将来自一给定客户机的用户的HTTP连接请求,重新定向到一个特定的服务器。
在用于对由一给定URL识别的一池服务器管理其连接请求的方法、计算机程序产品和服务器方面,提供了本发明的这些和其他目的。在一个实施例中,该方法开始于对来自一给定客户机的连接请求进行响应,启动一个用户对话。响应该请求,该方法将一个对话标识符与池中的一给定服务器联系起来。然后用该对话标识符产生一个“虚拟”URL,该“虚拟”URL将连接请求改发(redirect)到所给定的服务器。此后,在该用户对话期间从所给定客户机发出的任何另外的连接请求都被改发到给定服务器,以便将所有内容从同一位置提供给客户。当用户对话结束时,虚拟URL失效,将给定服务器返回池中,以便可以将其分配给一个要进行管理的新的用户对话。
因此,依据本发明,用于对一池服务器管理其连接请求的方法,响应于来自启动用户对话的客户机的连接请求,将来自客户机的每个用户对话与池中的一给定服务器联系起来。根据加载均衡协议将用户对话与池中的服务器联系起来。在每个用户对话期间,则将来自一给定客户机的任何另外的连接请求改发到正在管理着该对话的服务器。通过产生一个包括唯一的对话标识符的虚拟URL,将用户对话与一给定服务器联系起来,然后将该标识符与从服务器返回的所有数据一起提供给客户机。在完成用户对话之后,虚拟URL失效。
本发明还描述了一种用于在由一给定URL识别的网站管理一池服务器的服务器。该服务器包括处理器、操作系统、加载均衡例程以及用于管理到该网站的HTTP连接请求的改发例程。改发例程是在服务器中运行的前端过程,包括对来自启动用户对话的客户机的连接请求进行响应、将来自客户机的每个用户对话通过一个唯一的对话标识符与一给定服务器联系起来的装置。在每个对话期间,将来自客户机的对给定URL的连接请求改发到给定服务器。
上述说明已经概述了本发明的一些更相关的目的和特征。这些目的仅仅显示了本发明的一些更相关的特征和应用。以不同方式应用所公开的发明或者如下所述地修改发明可以获得许多其他有益的结果。因此,通过参考下面对最佳实施例的详细说明,可以得出本发明的其他目的和更全面的理解。
为了更全面地理解本发明及其优点,下面应当参考结合附图进行的详细说明,其中
图1是实施本发明的典型系统;图2是显示与来自网络客户的对图1所示网络服务器的HTTP请求相联系的常规处理的流程图;图3是连接到包括一个服务器池的网站的客户机的方框图;图4是显示改发例程的发明功能的状态图;以及图5是显示改发例程的功能的流程图。
已知的因特网客户机-服务器系统如图1所示。客户机10通过网络14与网络服务器12相连。出于例示的目的,网络14是因特网、内联网、外联网或其他任何已知网络。网络服务器12是客户机可访问的多个服务器中的一个,其中一个客户机显示为10。典型的客户机包括浏览器16,浏览器16是已知的用于访问网络的服务器的软件工具。网络服务器支持超文本文档和对象形式的文件(被共同称为一个“网”站)。在因特网示范中,到服务器的网络路径是由所谓的统一资源定位器(URL)识别的。
一个典型的网络服务器12是包括基于RISC的处理器18、AIX操作系统20和网络服务器程序22的IBM Netfinity服务器,例如Netscape Enterprise服务器。服务器12还包括支持用于管理和经营的图形用户界面(GUI)的显示器24、以及应用程序设计界面(API)23,其中API 23提供扩展以使得应用开发者能够通过软件程序而扩展和/或定制其核心功能,其中软件程序包括公共网关接口(CGI)程序、插件程序、小服务程序(servlet)、活动服务器页、服务器方包括(SSI)(server side include)功能等。
一个典型的网络客户机是一台基于x-86、PowerPC或RISC的个人计算机,包括诸如IBM、OS/2或Microsoft Windows 95的操作系统,还包括一个网络浏览器、例如Netscape Navigator 4.0(或更高版本),它具有Java虚拟机(JVM)并支持应用插件程序或助手应用程序。
网络服务器接受一个客户机请求,并返回一个响应。服务器程序22的操作由多个服务器应用功能(SAF)来管理,每个SAF被构造为执行一个序列的特定步骤。如图2中的背景所示,该序列开始于授权翻译(AuthTrans)30,在授权翻译期间,服务器将由客户机发送的任何授权信息翻译成一个用户和一个组。如果需要,AuthTrans步骤可以对一个消息译码,以获得实际的客户机请求。在步骤32、即姓名翻译(NameTrans)步骤,与该请求相联系的URL可以保持不被触动,或者可以将其翻译成一个依赖于系统的文件名、改发URL或镜像网站URL。在步骤34、即路径检查(PathCheck)步骤,服务器在所得到的路径上执行各种测试,以确保所给定客户机可以检索该文档。在有时被称为对象类型(ObjectType)的步骤36,识别出给定文档的MIME(多用途网际邮件扩展)类型信息(例如,文本/html,图像/gif,等等)。在步骤38、即服务(Service)步骤,网络服务器例程选择一个内部服务器功能将结果发送回客户机。这个功能可以运行正常的服务器服务例程(来返回一个文件)、一些其他的服务器功能(例如返回一个常规文档的程序)或一个CGI程序。在步骤40、即增加记录(AddLog)步骤,记录关于事务处理的信息。
图3是显示实施本发明的环境的方框图。在这个例示中,客户机42向一个网站发出HTTP请求,该网站包括管理服务器44和由该管理服务器管理的一组镜像服务器46a-46n。管理服务器44可以包含镜像服务器中的一个。管理服务器44包括一个加载均衡例程48,用于跟踪每个镜像服务器上的加载,并根据一个加载均衡算法将服务请求指向服务器。依据本发明,管理服务器还包括一个提供本发明的增强功能性的改发器例程50。
下面将要看到,改发器例程50充当一个前端过程,用于对客户请求进行语法分析,并确定一给定请求是否表示一个“对话”的开始或结束。如同这里所使用的,一个对话表示在一给定用户(在客户机)与网站之间的一组无连接事务处理。例如,如果管理服务器是一个银行网站,则对话涉及从用户对服务器的一组查询,以及从服务器提供的响应。在这个例子中,用户联接主机,并被认可为被授权访问给定信息(例如,银行帐户余额)。依据本发明,在一给定“对话”期间,改发器使来自客户机的到站点的所有请求,和传送到客户机的所有信息能够提供给和提供自同一服务器。本领域普通技术人员因此将会理解,这使得加载是在每个对话的基础上被均衡,而不是象在现有技术中的在每个连接的基础上被均衡。
下面参考图4的状态图以及图5的流程图说明这个操作。在状态图中将顺序步骤进行了标号。该例程开始于步骤52,客户提出一个请求来启动一个对话。这一般是一个登录请求,例如可以通过使用户访问网站(通过其URL)来进行,然后将信息输入一个基于CGI的表单。这是因特网上的常规登录事务处理。返回流程图,在步骤52,客户机因此向管理服务器发出一个HTTP请求(例如,http//www.bank.com//login.html)。在步骤54,改发器截取该请求,并认可该用户已经请求启动一个对话。在用户标识和口令的输入和确认(可选)之后,例程继续到步骤56,在此,改发器查询加载均衡例程,以确定该组中的哪一个服务器将服务该对话。这个测试的输出取决于所实施的特定的加载均衡算法。如上所述,本发明使HTTP连接请求,和相关的服务器的响应,能够在整个对话期间通过该组中的一个服务器进行管理。
在步骤58,改发器将一个对话标识符与该对话联系起来,然后通知已经被选定管理该对话标识符的对话的服务器(在这个例子中是服务器S4)。对话标识符最好是一个唯一的标号(例如,渐增的顺序号码)。在步骤60,服务器S4将对话标识符记录在一个对话表55中。服务器池中的每个服务器最好具有一个相关的对话表55,用于存储由该服务器管理的对话的对话标识符。改发器同样包括一个适当的数据结构57,用于保存关于哪个服务器正在管理哪个对话的信息。在步骤62,改发器将一个适当的改发响应(例如,“302URL已经移动”)返回客户机。这个响应还识别服务器的URL,并包括对话标识符,例如“http//server 4 URL/sessionidentifier/login.html”。这有时被称为“虚拟”URL。这完成了改发功能。
客户机然后继续进行到步骤64,采用在步骤62从管理服务器传送出的URL发出一个新的HTTP连接请求。这个改发过程一般是由浏览器响应于302响应而实现的自动功能。该例程然后继续进行到步骤66,服务器S4提供所请求的数据。返回到客户机的所有数据包含对话标识符,用作URL基础的一部分。在对话的整个剩余部分,来自该特定客户机的所有HTTP连接请求通过服务器S4管理。这在流程图的步骤68进行了显示。
在步骤70重复执行测试,以确定对话是否结束。这个请求一般由改发器识别,因为用户已经采取了一些产生一给定下网(logoff)请求的行动。因此,例如,改发器对输入HTML流进行语法分析,并识别下列请求“http//server 4 URL/sessionidentifier/logoff.html”。在例程中的这一点,即在步骤72,服务器S4从对话表55中删去该对话标识符,并执行所请求的下网活动。删去对话标识符有时被称为“无效”标识符,因为一旦对话标识符被从表中删除,则客户机此时不再明确地与一直在用户对话期间处理来自该客户机的连接请求的服务器相连。
例程然后继续进行到步骤74,向客户机返回一个下网屏幕。服务器然后通知改发器与对话标识符相联系的用户已经下网。在步骤76,改发器使服务器S4不再对话,从而使得该服务器可用于处理来自另一个用户的新的对话。
因此,改发器保存由池中的每个服务器管理的对话的数目的运行计数值,和由每个服务器管理的实际对话标识符的标识。在用户完成他或她的对话时,已经管理了该对话的服务器变得可由改发器(并且因此可由加载均衡例程)使用,以便为来自另一个用户的另一组连接请求进行服务。因此,加载均衡是在每个对话的基础上、而不是在每个连接的基础上实现的。这比现有技术提供了显著的进步。
特别地,一给定用户现在可以着手一组事务处理,并被确保所有这样的事务处理都由同一服务器管理。通过实施改发功能,确保用户在不需要重复登录到服务器上的情况下就能够实现一组事务处理。这是非常有利的,因为事务处理是在无连接(即,“无状态”)操作环境中传送的连接请求。通过将虚拟URL增加到改发请求,目标服务器具有对实际用户对话计数、因而利用用户的上限而不是连接的上限的性能。另一个益处是用户不能在一个对话的中间对网页作书签,因为虚拟URL是短期的(即,它只持续与对话一样长的时间)。这确保用户不得不返回开始的URL来开始一个新的对话,从而防止在一特定对话的中间重新启动。改发器提供了一个一致的对话流。
上述功能最好以在管理服务器上运行的软件实施。因为对虚拟URL的改发是自动发生的,因此不需要修改客户端的软件。因此,改发器可以是插件程序使能代码,最好是一个Java小服务程序(servlet)。因此,这些功能由处理器中的可执行软件实现,即由驻留在计算机的随机存取存储器中的码模块中的一组指令(程序码)实现。在计算机需要之前,该组指令可以存储在另一个计算机存储器中,例如硬盘驱动器或诸如光盘(最后使用在CD ROM中)或软盘(最后使用在软盘驱动器中)之类的可移动存储器中,或者通过因特网或其他计算机网络下载。
另外,虽然所述各种方法在常规上是在由软件有选择地激活或重设的通用计算机中实施的,但本领域普通技术人员还会认识到,这些方法可以在构成执行所需方法步骤的硬件、固件和更专门化的装置中实施。
此外,如同这里所用的,网络“客户机”应该在广义上被解释为表示直接或间接连接到计算机网络、例如因特网上的,或者可以以任何已知或以后开发的方式连接到计算机网络上的,任何计算机或其部件。术语网络“服务器”也应该在广义上被解释为表示计算机、计算机平台、计算机或平台的附件或其任何部件。当然,“客户”应该在广义上被解释为表示请求或获得文件的个人,“服务器”是下载文件的实体。
因此,已经描述了本发明,所希望保护的范围由下面的权利要求书所限定。
权利要求
1.一种管理对由一给定URL识别的一池服务器的连接请求的方法,包括下列步骤响应来自一个启动对话的给定客户机的连接请求,将一个对话标识符与池中的一给定服务器联系起来;采用所述对话标识符改发对给定服务器的连接请求;以及在对话期间,向给定服务器改发来自给定客户机的任何另外的连接请求。
2.如权利要求1所述的方法,其中,采用对话标识符的步骤包括产生一个虚拟URL。
3.如权利要求2所述的方法,其中,虚拟URL包括在连接请求中的一个被修改为包括对话标识符的URL。
4.如权利要求1所述的方法,其中,对话标识符被包含在从给定服务器向客户机返回的数据中。
5.如权利要求1所述的方法,还包括下列步骤响应来自结束所述对话的给定客户机的连接请求,使对话标识符无效。
6.如权利要求1所述的方法,其中,给定客户机包括一个浏览器。
7.如权利要求1所述的方法,其中,池中的每个服务器支持类似的一组对象。
8.如权利要求1所述的方法,其中,对话标识符作为加载均衡协议的函数与一给定服务器相联系。
9.一种管理对一池服务器的连接请求的方法,包括下列步骤响应来自启动用户对话的客户机的连接请求,根据一个加载平衡协议将来自客户机的每个用户对话与池中的一给定服务器联系起来;以及在用户对话期间,向给定服务器改发来自客户机的任何另外的连接请求。
10.如权利要求9所述的方法,其中,联系步骤包括通过修改一个给定的URL使其包括一个对话标识符,产生一个虚拟URL;采用虚拟URL改发对给定服务器的连接请求。
11.如权利要求10所述的方法,还包括下列步骤在完成用户对话时使虚拟URL无效。
12.如权利要求10所述的方法,其中,从给定服务器返回给客户机的所有数据包括对话标识符。
13.如权利要求9所述的方法,其中,池中的每个服务器支持类似的一组给定对象。
14.如权利要求9所述的方法,其中,每个客户机包括一个网络浏览器。
15.一种在计算机可读介质中的用于管理对一池服务器的连接请求的计算机程序产品,包括响应来自启动用户对话的客户机的连接请求、根据一个加载平衡协议将来自客户机的每个用户对话与池中的一给定服务器联系起来的装置;以及在每个用户对话期间用于向给定服务器改发来自客户机的任何另外的连接请求的装置。
16.如权利要求15所述的计算机程序产品,其中,联系装置包括通过修改一给定的URL使其包括一个对话标识符而产生一个虚拟URL的装置;以及采用虚拟URL改发对给定服务器的给定连接请求的装置。
17.如权利要求16所述的计算机程序产品,还包括在完成用户对话时使虚拟URL无效的装置。
18.一种用于管理在由一给定URL识别的网站的一池服务器的服务器,包括一个处理器;一个操作系统;一个加载均衡例程;以及一个改发器例程,用于管理对所述网站的HTTP连接请求,包括响应来自启动用户对话的客户机的连接请求、根据加载平衡例程将来自客户机的每个用户对话与池中的一给定服务器联系起来的的装置;以及在每个用户对话期间用于向给定服务器改发来自客户机的任何另外的连接请求的装置。
19.如权利要求18所述的服务器,其中,联系装置包括通过修改给定的URL使其包括一个对话标识符而产生一个虚拟URL的装置;以及采用虚拟URL改发对给定服务器的给定连接请求的装置。
20.如权利要求19所述的服务器,其中,改发器还包括在完成用户对话时使虚拟URL无效的装置。
21.一种用于管理在由一给定URL识别的网站的一池服务器的方法,包括下列步骤响应来自启动用户对话的客户机的连接请求,将来自客户机的每个用户对话与池中的一个服务器联系起来;根据一个加载均衡协议将用户对话分布在该池服务器上;以及在由一给定客户机启动的一给定用户对话期间,只从给定客户机的相关服务器向所述给定客户机提供内容。
22.一种用于管理在由一给定URL识别的网站的一池服务器的方法,包括下列步骤在由一给定客户机启动的每个用户对话期间,将来自所述客户机的所有连接请求临时改发给池中的一给定服务器;以及根据一个加载均衡协议将用户对话分布在该池服务器上。
全文摘要
这里公开了用于管理对由一给定URL识别的一池服务器的连接请求的方法、计算机程序产品和服务器。该方法开始于对来自一给定客户机的连接请求进行响应,启动一个用户对话,将一个对话标识符与池中的一给定服务器联系起来。然后用该对话标识符产生一个“虚拟”URL,以便将连接请求改发到所给定的服务器。此后,在该用户对话期间从所给定客户机发出的任何另外的连接请求都被改发到给定服务器,以便将所有内容从同一位置提供给客户。
文档编号G06F9/46GK1268700SQ0010438
公开日2000年10月4日 申请日期2000年3月23日 优先权日1999年3月31日
发明者克里斯蒂安·利塔 申请人:国际商业机器公司