选择镜像站点服务器的系统和方法

文档序号:7582696阅读:260来源:国知局
专利名称:选择镜像站点服务器的系统和方法
技术领域
本发明涉及利用计算机系统在Internet(因特网)上存取数据。具体来说,本发明涉及为被请求数据选择服务器的系统和方法。
随着Internet的不断普及,提供对Internet上的被请求地址的快速存取迅速成为一个主要问题。当一个流行的网页只有一台计算机来提供时,往该台计算机的Internet通信量会非常大。为解决这一问题,可用几台计算机来提供该主页,每台网页提供计算机——通常称为服务器——包含网页的拷贝。如果在同一地点有许多服务器,则在高Internet通信量期间至该地点的网络连接会出现堵塞。为了避免堵塞网络连接,可以在不同的站点设置一些镜像服务器。在此把这些站点称为镜像站点。通常把用多台计算机来提供一个网页称为对服务器进行镜像(mirroring)。


图1和2表示Internet中的基本通信线路。图1表示Internet的基本结构。网络组100A-100C、100D-100F和100G-100I被示出是通过路由器102A-102F进行连接的。这些网络和路由器的组合形成了自主系统(AS)。AS内的网络组能够利用AS 104A-104C内的标准和协议始终如一地执行各种任务。各AS104A-104C被示出是通过网关106A-106B彼此连接的。这些网关106A-106B通常包含关于Internet的足够多的信息,使得每一网关都具有与其它另一个网关相关的数据。每一网关通常具有路由表,路由表包含与在整个Internet内从点A至点B的路由有关的信息。
图2是表示用户请求一具体地址所采用的路径和接收该地址所采用的路径的方框图。图2表示用户200向本地名称服务201请求一地址,例如www.sun.com。用户的本地名称服务201可以是诸如Netcom和AT&T这样的服务。本地名称服务201然后向域名服务(DNS)服务器202a请求sun.com的地址。一般来说,DNS服务器202a向另一DNS服务器202b请求sun.com的地址,后者通常再向另一DNS服务器202c发出请求。这一系列请求继续下去,直到对sun.com地址的请求到达授权名称服务(授权NS)204为止。授权NS 204能够确定该sun.com地址。在图2所示的例子中,使用了镜像服务器IP1206a、IP2 206b和IP3 206c。授权NS 204确定哪一个服务器206a-206c应对例如sun.com这样的地址请求作出响应。镜像服务器206a-206c可设置在地理位置不同的地点,例如设置在东部、西部和欧洲。镜像服务器设置在不同地点的好处是多个地点能够比一个地点适应更多的Internet通信量。镜像服务器设置在不同地点的另一好处是如果用户在欧洲,则其访问欧洲服务器206c很可能快过访问西海岸服务器206b。
授权NS 204可根据几个因素来选择一镜像服务器。这些因素包括每台服务器的负荷或用户的位置。理想情况下,被请求地址应非常迅速返回给用户并尽可能迅速地下载到用户的计算机系统。把发出请求开始到接收到地址为止这段时间称为等待时间。下载被请求数据所需的时间通常由带宽确定。
一旦授权NS 204确定了用户应访问哪一台镜像服务器,它就通过用户请求所采用的路由把被选定镜像服务器的地址返回给该用户。
当用户用书签标记某一网页时会出现问题。当用户用书签标记某一网页时,他通常是用书签标记某一台服务器。例如,如果加州的用户向欧洲服务器206c发送请求并用书签标记该网页,则当该用户根据书签再调用该网页时,他将返回到欧洲服务器206c。但当该用户第二次访问欧洲服务器206c时,该欧洲服务器可能处于重负荷状态,而东部服务器206a则处于轻负荷状态。在这种情况下,用户最好访问东部服务器206a而不是访问欧洲服务器206c。由于用户已用书签标记了一特定服务器,所以无论在授权NS 204中制定了什么样的方法通常都将失败。此外,如果用户已用书签标记了一特定服务器,该被用书签标记的服务器如果可被快速访问,则对用户来说是最好不过的。例如,如果被用书签标记的服务器比欧洲服务器206c更靠近加州的用户,则该用户就会处于更佳的状态。与加书签有关的这些潜在问题一般出现在对用户不透明的Http重定向机制中。
授权NS 204确定的地址通常在预定的一段有限时间内是有效的。如果用户请求访问其先前已请求过的同一网页,如果自最后一次请求起已过去该段预定时间,则用户就应当再次询问授权NS 204该网页的地址。这样,授权NS 204就能够重新评估形势并重新确定把哪一台服务器路由选择到用户。
各种授权NS 204可用几种方法来确定使用哪一台镜像服务器。一种方法是所谓的负荷平衡(LB)方法,在这种方法中,授权NS 204确定每台镜像服务器在为多少用户服务,把新用户路由选择到负荷最轻的镜像服务器。负荷根据给定时刻访问该服务器的人数来确定。LB方法存在的问题是虽然考虑了负荷平衡,但没有考虑用户的位置。用户位置是决定等待时间的一重要因素。如果用户离被指定的服务器非常远,则对该服务器进行访问通常比离其很近时要花更长的时间,即使近的服务器的负荷比远的服务器的负荷重。
授权NS 204通常采用的另一种方法是循环DNS。循环DNS简单地轮流使用服务器。循环DNS方法存在的问题是没有考虑在任一时刻这些镜像服务器的不同负载。此外,循环DNS方法也没有考虑用户的位置。因此,等待时间和带宽这两个因素通常在循环方法中没有得到考虑。
还有一种可称为AS段计数(hop count)方法。在这种AS段计数方法中,对位于用户和镜像服务器之间的自治系统进行计数,为该用户选择这样一台服务器来使用,即位于在这台服务器和该用户之间的自治系统的数量最小。AS段计数方法假定带宽和等待时间这两个因素近似地反映在位于用户和服务器之间的自治系统的数量上。但是,实际上自治系统的规模可以不同,小的自治系统一般来说不能够适应象大的自治系统那样多的通信量。因此,如果非常小的AS被包括在具有较少数量的自治系统的路由内,则包含较多数量的自治系统的路由实际上会快过包含较少数量的自治系统的路由。
需要的是使访问最佳化并对用户是透明的镜像站点的服务器选择的系统和方法。本发明致力于这一需求。
本发明是提供对镜像站点的服务器选择的系统和方法。在一最佳实施例中,用户通过本地名称服务请求地址,本地名称服务向例如包括授权名称服务器和优化器名称服务器(ONS)的服务器请求地址。如果该ONS已经计算出适合于该用户的最佳路由,并且用于该最佳路由的预定时间尚未结束,则该ONS就以该最佳路由服务器应答该用户。但是,如果最佳路由没有被确定或者用于该最佳路由的预定时间已结束,则ONS就通过一个选择方法、例如循环方法应答该用户,同时启动最佳路由确定来为用户确定哪一条是最佳路由。
在该最佳实施例中,最佳路由确定以向全部镜像服务器请求到用户所使用的请求本地名称服务器的往返时间来开始。每一个镜像服务器然后向本地名称服务器(LNS)发送名称查询。该LNS有时会以差错信息应答,表示无此名称存在。每一个镜像服务器然后对于该名称查询和差错信息确定自己的往返时间并将该往返时间发送给ONS。ONS接收全部镜像服务器的往返时间,判断哪一台镜像服务器的往返时间最短(最佳路由)。然后把该最佳路由确定存储一段预定的时间。如果同一个LNS在该段时间内向ONS请求地址,就使用对于该特定LNS具有最佳路由的镜像服务器。
或者,每一个镜像服务器可不向LNS发送名称查询而是向LNS发送Internet控制信息协议(ICMP)回送包(echo packet)。一旦该回送包从LNS返回,则往返时间就可由每一个镜像服务器来确定。
根据本发明一实施例,提供了在包括多个服务器的计算机网络中选择计算机服务器的方法。该方法包括以下步骤判断是否已确定了最佳路由;如果已确定了最佳路由,就选择多个服务器中的一个作为最佳路由服务器;如果还没有确定最佳路由,就选择多个服务器中的一个作为选择方法服务器。该选择方法服务器的选择利用一个选择方法来确定,其中该选择方法不包括确定最佳路由。
根据本发明一实施例,还提供了在计算机网络中选择计算机服务器的系统。该系统包括多个服务器和与这些服务器连接的一授权名称服务器。该授权名称服务器判断是否已确定了最佳路由。如果已确定了最佳路由,它就选择这些服务器中的一个作为最佳路由服务器,如果还没有确定最佳路由,就选择这些服务器中的一个作为选择方法服务器。该选择方法不包括确定最佳路由。
图1是表示Internet基本结构的图。
图2是表示用户请求某一地址时所采用的路径以及在接收该地址时所采用的路径。
图3是可供本发明一实施例实施的一计算机系统的方框图。
图4是表示根据本发明一实施例提供镜像站点服务器选择的系统的数据流的系统图。
图5是根据本发明一实施例提供镜像站点服务器选择的方法的流程图。
图6是根据本发明一实施例在如图5的步骤508中所示确定最佳路由的方法的流程图。
图7是根据本发明一实施例在如图5的步骤508中所示确定最佳路由的另一种方法。
以下描述是为了使普通技术人员能够作出并使用本发明,在专利申请的角度及其要求的意义上进行以下描述。对最佳实施例的各种改进对本领域普通技术人员而言是显而易见的,此处的一般原理可应用于其它实施例。因此,本发明不应受所描述的实施例的限制,而是将与符合在此描述的原理和特点的最宽的范围相一致。
图3是适合于执行本发明一实施例的处理的通用计算机系统的方框图。图3表示通用计算机系统的一实施例。其它计算机系统体系结构和配置也可用来执行本发明的处理。由下述各种子系统构成的计算机系统包括至少一个微处理器子系统(也称为中央处理单元,或CPU)302。就是说,CPU 302可用一单片处理器或用多个处理器来实现。CPU 302是一通用数字处理器,它控制计算机系统的操作。利用从存储器310取出的指令,CPU 302控制输入数据的接收及处理,以及数据在输出设备上的输出及显示。
CPU 302与包括通常为随机存取存储器(RAM)的第一主存储器和通常为只读存储器(ROM)的第二主存储器的存储器310双向耦合。在本领域众所周知的是,主存储器可作为通用存储区和暂时存储器,还可用来存储输入数据和被处理数据。除供在CPU 302上运行的处理使用的其它数据和指令外,它还按照数据对象和文本对象的形式存储编程指令和数据。同样在本领域众所周知的是,主存储器通常包含被CPU用来执行其功能的基本操作指令、程序代码、数据和对象。如下所述,根据例如是需要双向还是单向数据存取,主存储设备302可以包括任何合适的计算机可读存储介质。CPU 302还能够从高速缓存(未示出)直接和非常快地检索经常需要的数据和把它们存储在该高速缓存内。
可拆卸海量存储设备312为计算机系统提供附加数据存储能力,双向或单向地与CPU 302耦合。例如,一种特定的通常称为CD-ROM的可拆卸海量存储设备通常把数据单向地传送给CPU 302,而软盘就能够双向地与CPU传送数据。存储设备312同样可以包括例如磁带、闪速存储器、载波所包含的信号、PC卡、便携海量存储设备、全息存储设备和其它存储设备这样的计算机可读介质。固定海量存储设备320也能够提供附加数据存储能力。海量存储设备320最普通的例子是硬盘驱动器。海量存储设备312、320通常存储一般来说不是正在被CPU 302使用的附加编程指令、数据等。应当认识到,如果需要,可按照标准方式把海量存储设备312、320内的信息包括为主存储器的一部分(例如RAM),作为虚拟存储器。
除了使CPU 302能够对存储子系统进行存取外,总线314还可用来提供对其它子系统和设备的存取。在所描述的实施例中,这些子系统和设备可以是显示监视器318、网络接口316、键盘304和指示设备306,还可以是辅助输入/输出设备接口、声卡、喇叭和其它所需的子系统。指示设备306可以是鼠标、指示笔、跟踪球或图形输入板,可用来与图形用户接口相互作用。
网络接口316使CPU 302利用所示出的网络连接能够与其它计算机、计算机网络或电信网络耦合。通过网络接口316,CPU 302可以从另一个网络接收例如数据对象或程序指令这样的信息,可以在执行上述方法步骤的过程中将信息输出给另一个网络。例如可以以包含在载波内的计算机信号的形式从另一个网络接收通常被表示为将在CPU上被执行的指令序列的信息,或例如以包含在载波内的计算机信号的形式将通常被表示为将在CPU上被执行的指令序列的信息输出给另一个网络。可用接口卡或类似的设备和由CPU 302执行的合适软件来把计算机系统连接到外部网络并按照标准协议传送数据。就是说,本发明的方法实施例可以只在CPU 302上执行,或者可以结合共享一部分处理的远程CPU在诸如Internet、企业网络或局域网这样的网络上执行。也可以通过网络接口316把附加海量存储设备(未示出)连接到CPU 302。
辅助I/O设备接口(未示出)可以与计算机系统一道使用。辅助I/O设备接口可以包括通用和定制接口,这些接口允许CPU 302向其它设备、例如麦克风、触敏显示器、转换器卡阅读器、磁带阅读器、话音或书写识别器、生物统计阅读器、照相机、便携海量存储设备和其它计算机发送数据和更经常地从这些设备接收数据。
此外,本发明各实施例还涉及具有计算机可读介质的计算机存储产品,该计算机可读介质包含用于执行各种计算机实现的操作的程序代码。计算机可读介质是能够存储以后可被计算机系统读出的数据的任何数据存储设备。介质和程序代码可以是为了本发明的目的而专门设计和制成的介质和程序代码,或者它们可以是计算机软件领域普通技术人员众所周知的那种介质和程序代码。计算机可读介质的例子有所有以上提到的介质,但不限于此磁介质,例如硬盘、软盘和磁带;光介质,例如CD-ROM 光盘;磁-光介质,例如软光盘(flopticaldisk);以及专门设计的硬件设备,例如应用专用集成电路(ASIC)、可编程逻辑器件(PLD)、ROM和RAM器件。还可以在联网计算机系统的网络上把计算机可读介质作为被包括在载波内的数据信号进行分布,以便计算机可读代码以分布方式进行存储和执行。程序代码的例子包括例如由编译程序产生的机器代码,或者包括含有可利用解释器执行的较高级代码的文件。
本领域普通技术人员都知道上述硬件和软件单元都具有标准的设计和结构。适合于与本发明一道使用的其它计算机系统可以包括增加或较少的子系统。此外,总线314只是说明起链接子系统作用的任何互连方法而已。图3所示计算机系统只不过是适合于与本发明一道使用的计算机系统的一个例子罢了。还可以使用具有不同子系统结构的其它计算机体系结构。
图4是根据本发明一实施例提供镜像站点服务器选择的系统的方框图。图4还表示各部件之间的数据流动。用户400把对地址的请求发送给用户的本地名称服务402。本地名称服务402然后向优化器名称服务器(ONS)404请求该地址。来自本地名称服务器(本地NS)402的请求在到达ONS 404之前可以经过几个服务器。
ONS 404最好是能够具体地应答查询、例如名称查询的名称服务器。虽然ONS能够以一个以上的名称工作,但其被限制为约二或三个名称。或者,名称服务器404可以是普通ANS。这样一来,普通ANS或用作ONS的补充或代替ONS来处理更大量的名称。ONS和镜像服务器最好用JAVATM来实现。有关ONS功能的更进一步的细节将参看图5、6和7来说明。
参看图5、6和7将能够更好地理解图4所示的数据流动。图5是本发明一实施例的镜像站点服务器选择的方法的流程图。图6是图5所示步骤508的最佳路由确定的方法的流程图。图7是图5所示步骤508的最佳路由确定的另一种方法。
本发明的提供镜像站点服务选择的方法的例子可参看图4和5。用户400在步骤500向本地NS(LNS)402请求带有名称的一地址。LNS在步骤502最后与ONS 404接触并向其请求该地址。ONS然后在步骤504判断是否已经为该LNS确定了仍然有效的最佳路由。最佳路由确定最好是只在预定一段时间、例如三十分钟内才是有效的。如果已为该LNS确定了在预定时间内仍然有效的最佳路由,则ONS 404就在步骤506以该最佳路由的镜像服务器应答LNS402。
但是,如果还没有为该LNS确定最佳路由,或者预定时间已经结束,则ONS 404就在步骤508以选择方法、例如循环方法应答LNS 402。此外,如果还没有为该LNS确定最佳路由,就在步骤508启动为该LNS的最佳路由确定。
本发明最佳路由确定(图5步骤508)的一实施例的最佳方法可参看图4和6来说明。在启动最佳路由确定时,ONS 404在步骤600向所有镜像服务器406a-406b请求至LNS 402的往返时间。每一个镜像服务器406a-406b则在步骤602把名称查询传送给LNS 402。LNS 402则在步骤604以表示所请求的名称不存在的差错信息进行应答。每一个镜像服务器406a-406b然后在步骤606确定从传送名称查询起到接收到差错信息为止的往返时间。每一个镜像服务器406a和406b然后在步骤608将自己的往返时间传送给ONS 404。于是ONS 404就能够在步骤610确定对于该特定的LNS 402,哪一个镜像服务器具有最佳路由。该最佳路由等价于最快路由。然后在步骤612将该最佳路由存储预定一段时间。
一旦LNS 402在步骤614请求地址,就在步骤616判断预定时间是否已结束。如果已结束,ONS 404就在步骤620以选择方法、例如循环方法应答LNS402,并在步骤600启动最佳路由确定。但是,如果在步骤616确认预定时间没有结束,就在步骤618把LNS 402指定给具有该最佳路由的镜像服务器406。
本发明最佳路由确定(图5步骤508)的一实施例的另一方法可参看图4和7来说明。ONS 404在步骤700向所有镜像服务器406a-406b请求至LNS 402的往返时间。每一个镜像服务器406a-406b则在步骤702把回送包传送给LNS402。回送包是“因特网控制方法协议(ICMP)”数据包,接收器一旦接收到就将其返回。回送包是业界所熟知的。每一个镜像服务器406a-406b然后在步骤704从LNS 402接收返回的回送包。每一个镜像服务器406a-406b然后在步骤706确定往返时间并将该往返时间传送给ONS 404。其余步骤708-718与图6的步骤610-620相同。
提供镜像站点服务器选择的方法和系统已经描述完毕。根据本发明编制的软件可以以某种计算机可读介质、例如存储器或CD-ROM的形式进行存储或者在网上进行传送,由处理器执行。
虽然对于各实施例描述了本发明,但本领域普通技术人员很容易看出可对这些实施例作出各种改动,并且这些改动将在本发明的范围之内,不违反本发明的精神。因此,不超出权利要求的范围和不违背权利要求的精神,本领域普通技术人员可作出许多改进。
权利要求
1.在包括多个服务器的计算机网络中选择计算机服务器的方法,该方法包括以下步骤判断是否已确定了最佳路由;如果已确定了最佳路由,就选择多个服务器中的一个作为最佳路由服务器;如果还没有确定最佳路由,就选择多个服务器中的一个作为选择方法服务器,该选择方法服务器的选择利用一个选择方法来确定,该选择方法不包括确定最佳路由。
2.权利要求1的方法,还包括以下步骤如果还没有确定最佳路由,就判断预定时间是否已结束如果预定时间已结束,就利用选择方法选择一个选择方法服务器。
3.权利要求1或2的方法,其中的选择方法是循环方法。
4.以上任一权利要求的方法,还包括以下步骤如果还没有确定最佳路由,就确定最佳路由,最佳路由的确定包括确定从多个服务器之一到达本地名称服务器的往返时间。
5.权利要求4的方法,其中往返时间的确定包括向本地名称服务器传送名称查询和从该本地名称服务器接收信息。
6.权利要求4的方法,其中往返时间的确定包括向本地名称服务器传送回送包和从该本地名称服务器接收返回的回送包。
7.以上任一权利要求的方法,其中最佳路由的确定包括确定从多个服务器的第一个到达本地名称服务器的第一往返时间和从多个服务器的第二个到达本地名称服务器的第二往返时间。
8.权利要求7的方法,其中比较第一往返时间和第二往返时间,以便确定第一和第二服务器的哪一个具有最佳路由。
9.以上任一权利要求的方法,其中最佳路由包括在多个服务器的一个和本地名称服务器之间的最短往返时间。
10.在包括多个服务器的计算机网络中选择计算机服务器的系统,该系统包括判断是否已确定了最佳路由的装置;如果已确定了最佳路由,就选择多个服务器中的一个作为最佳路由服务器的装置;如果还没有确定最佳路由,就选择多个服务器中的一个作为选择方法服务器的装置,该选择方法服务器的选择利用一个选择方法来确定,该选择方法不包括确定最佳路由。
11.在计算机网络中选择计算机服务器的系统,该系统包括多个服务器;和与这些服务器连接的一授权名称服务器,该授权名称服务器判断是否已确定了最佳路由,如果已确定了最佳路由,就选择这些服务器中的一个作为最佳路由服务器,如果还没有确定最佳路由,就选择这些服务器中的一个作为选择方法服务器,该选择方法不包括确定最佳路由。
12.在包括多个服务器的计算机网络中选择计算机服务器的计算机程序产品,包括判断是否已确定了最佳路由的计算机代码;如果已确定了最佳路由,就选择多个服务器中的一个作为最佳路由服务器的计算机代码;如果还没有确定最佳路由,就选择多个服务器中的一个作为选择方法服务器的计算机代码,该选择方法服务器的选择利用一个选择方法来确定,该选择方法不包括确定最佳路由;以及存储这些计算机代码的计算机可读介质。
全文摘要
本发明是提供镜像站点服务器选择的系统和方法。在一最佳实施例中,用户通过本地名称服务器请求地址,本地名称服务器向服务器请求地址,该服务器包括授权名称服务器、和优化器名称服务器(ONS)。如果OMS已经计算出了适合于该用户的最佳路由,并且该最佳路由适用的预定时间尚未结束,则ONS就以该最佳路由服务器应答用户。如果还没有确定最佳路由或者最佳路由适用的预定时间已结束,则ONS就以一个选择方法应答用户,同时还启动最佳路由确定来为用户确定最佳路由。
文档编号H04L29/08GK1245933SQ9911096
公开日2000年3月1日 申请日期1999年5月21日 优先权日1998年5月21日
发明者A·肖汉 申请人:太阳微系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1