在网络中获取信息的方法和装置的制作方法

文档序号:7737028阅读:130来源:国知局
专利名称:在网络中获取信息的方法和装置的制作方法
背景技术
网络一般包括多个网络节点,其通过通信介质彼此相连接。网络节点可包括例如交换机、路由器、个人计算机、服务器、网络器件或任意其他网络设备。诸如服务器的网络节点可以用根据各种格式而创建的文件的形式来存储信息,例如超文本置标语言(HTML)文件、可扩展置标语言(XML)文件等等。文件也可称为“页面”(page)或“网页”(webpage)。如果用户希望得到某个文件,则该用户可以使用多种网络协议来请求访问该文件。协议可以是一个预定的过程,通过该过程在网络节点之间交换信息。
由于某些应用的高性能需求,可能需要实现这样一种技术,其确保用户可以非常可信而又具有很小延迟地访问所期望的文件。为了实现这一目标,相同的文件可以存储在多个不同的服务器上。无论何时用户发送了访问存储在服务器上的文件的请求,该请求都可由网络访问设备截获,例如“负载平衡器”或“网络交换机”(web switch)。该网络访问设备可操作来协调并控制怎样存储和访问信息,以最优化整体网络性能。优化的性能例如可以实现为对服务器上所存储信息的较少访问时间。由于对较少的访问时间的越来越强烈的需求,可以认识到,存在对这些技术的强烈的需求,即通过网络从服务器更快地获取信息。


在本说明书的结论部分具体地指出并清楚地要求了被视为本发明的实施例的主题物。然而,通过结合附图参考下述详细的描述,可最佳地理解本发明的实施例(包括其组织和操作方法)及其目的、特征和优点,其中图1是适于实施本发明的一个实施例的系统;
图2是根据本发明一个实施例的访问设备的框图;图3是由根据本发明一个实施例的信息管理组件执行的程序设计逻辑的方框流程图;以及图4图示了根据本发明一个实施例的消息流。
具体实施例方式
在下面的详细描述中,给出了大量具体细节,以提供对本发明的实施例的透彻理解。然而,本领域内的技术人员应该理解到,没有这些具体细节也可实施本发明的实施例。在其他情形下,未详细示出公知方法、过程、组件和电路,以免混淆本发明的实施例。
本发明的一个实施例可以提高从服务器获取信息的速度。服务器可连接到访问设备,例如负载平衡器、网络交换机、虚拟专用网网关等等。该访问设备可管理怎样存储信息以及怎样从服务器获取信息。例如,负载平衡器可操作用来使得多个服务器对于那些访问所述服务器阵列的用户而言,看起来像是单个非常强大的网络资源。它通过下述方式来实现这一目标,即根据诸如服务器的运行健康状况、查询的属性等因素来以一种均衡的方式将连接转发给排列在它之后的许多服务器。负载平衡器可通过下述方式来检查服务器的运行健康状况用人工客户端来测试服务器,或者向它发送一系列脚本并查看响应,其中所述脚本可访问一些关键页面。
用户一般可使用位于客户计算机例如个人计算机(PC)上的浏览器来尝试访问服务器上的信息。所述信息可包括例如网页。用户可通过输入该网页的信息标识符来启动所述动作。信息标识符的示例可以是统一资源定位符(URL)。然后,使用传统的网络协议,浏览器可以使用URL来尝试建立客户计算机和其中存储有网页的服务器之间的连接。这种协议的示例可包括超文本传输协议(HTTP)1.1版,如在因特网工程工作组(IETF)1999年6月的草案标准RFC 2616中所定义的那样,并可从“www.ietf.org”获得(“HTTP规范”),尽管本发明的实施例并不局限在这一上下文中。
网络访问设备例如负载平衡器可代表服务器来截获并处理所述连接请求。如果所请求的网页驻留在网络中一个以上的服务器中,则负载平衡器可基于各种参数例如上面讨论的那些参数来选择特定的服务器。然后,负载平衡器尝试与所选择的服务器建立连接。与合适的服务器建立连接后,服务器可向负载平衡器发送所请求的网页。负载平衡器然后可将该网页发送到客户计算机,在其处浏览器可为用户显示该网页。
如果在访问网页时出现严重的延迟,则可能会产生问题。用户可能变得不耐烦并取消了请求,并且在之后立即递交了另一个请求以获得同一个网页。所述取消可能导致客户计算机和负载平衡器之间的连接以及负载平衡器和服务器之间的连接的终止。用户递交其他的请求后,在获取所请求的信息之前必须重新建立两个连接。这可能导致网络资源的低效率的使用。
为了避免这一问题和其它潜在的问题,尽管取消了客户计算机和负载平衡器之间的连接,但一个实施例中的用户仍然保持了负载平衡器和服务器之间的连接。负载平衡器接收到所请求的信息之后,可将所请求的信息连同客户计算机的源地址和所述信息的信息地址(例如URL)存储在信息表中。如果客户计算机尝试建立新的连接以请求相同信息,则负载平衡器可以从信息表中获取所述信息,并将它发送到客户计算机,而无需向服务器打开(open)新的连接。
本发明的这一实施例提供了几个优点。例如,本发明的这一实施例避免了重建负载平衡器和服务器之间的连接所引起的延迟。负载平衡器还可以避免以下操作,即不得不经历选择过程以从一组服务器或服务器集群中选择特定服务器。另外,服务器将不需要两次获取所述信息,从而释放了资源以用于其他方面。
值得注意的是,在本说明书中,对“一个实施例”或“实施例”的引用意味着与该实施例相联系而描述的某项特征、结构或特性至少包括在本发明的一个实施例中。短语“在一个实施例中”在说明书不同位置的出现未必指同一个实施例。
现在详细地参考附图,其中相似的部件通篇都用相似的标号表示,图1图示了适于实现本发明一个实施例的系统。图1是网络100的框图。网络100可包括客户计算机102、网络104、访问设备106和服务器108。在本发明的一个实施例中,服务器108例如可以是通过网络而连接到一起的服务器阵列的一部分。
图2是根据本发明一个实施例的系统的框图。图2图示了系统200,其表示访问设备,例如访问设备106。如图2所示,系统200可包括处理器202、输入/输出(I/O)适配器204、操作员接口206、存储器210和磁盘存储设备218。存储器210可存储计算机程序指令和数据。术语“计算机指令”可以包括计算机代码段,其包含来自预定计算机语言的字、值和符号,当所述代码段根据预定方式或语法而组合放置时,可使得处理器执行特定功能。计算机语言的示例可包括C、C++和汇编语言。处理器202执行存储在存储器210中的程序指令并处理其中的数据。磁盘存储设备218存储将要传输到存储器210以及从其处传输过来的数据。通过连接224,I/O适配器204与其他设备进行通信,并将数据传入以及传出计算机系统。其他设备的示例可包括麦克风或显示器,例如分别是麦克风106和显示器102。通过接收命令并提供状态信息,操作员接口206可与系统操作员相接口。所有这些元件都通过总线208互连,总线208使得数据可在各个元件之间相互发送。
处理器202可以是能够提供本发明实施例所需求的速度和功能的任何类型的处理器。例如,处理器202可以是来自英特尔公司、摩托罗拉公司、太阳微系统公司、康柏计算机公司和其他公司制造的处理器系列的处理器。处理器202还可包括数字信号处理器(DSP)和伴随体系结构,例如来自德克萨斯仪器公司的DSP。
在本发明的一个实施例中,存储器210和磁盘存储设备218可包括机器可读介质,并且可包括能够存储可由处理器执行的指令的任何介质。这种介质的一些示例包括但不局限于只读存储器(ROM)、随机访问存储器(RAM)、可编程ROM、可擦除可编程ROM、电可擦除可编程ROM、动态RAM、磁盘(例如软盘和硬盘)、光盘(例如CD-ROM)以及可存储数字信息的任何其他介质。在本发明的一个实施例中,以压缩和/或加密格式将指令存储在介质上。如在此所使用的,短语“可由处理器执行”意味着包含(encompass)以压缩和/或加密格式存储的指令以及在由处理器执行之前需要由安装程序编译或安装的指令。而且,客户端200可以包含通过各种I/O控制器而实现的多个机器可读存储设备的各种组合,所述存储设备可由处理器202访问,并且能够存储计算机程序指令和数据的组合。
存储器210可由处理器202通过总线208访问,并包括操作系统216、程序分区212和数据分区214。在本发明的一个实施例中,操作系统216可包括由微软公司出售的操作系统,例如Microsoft Windows95、98、2000和NT。程序分区212存储实现了在此描述的各系统的功能的程序指令,并允许处理器202来执行。数据分区214可由处理器202访问,并存储在程序指令执行期间所使用的数据。
在本发明的一个实施例中,程序分区212包含可在此统称为信息管理组件的程序指令。尽管本发明的这一实施例使用了一个组件,但是可以认识到,这一组件执行的功能可以与其他组件相结合,或者分解到附加的组件中,而仍然落在本发明的范围内。
I/O适配器204可包括网络适配器或网络接口卡(NIC),其被配置成与任何合适的技术一同来使用,以使用例如所期望的一组通信协议、业务和操作过程来控制计算机或网络设备之间的通信信号。在本发明的一个实施例中,I/O适配器204例如可根据传输控制协议(TCP)和因特网协议(IP)来操作,如分别在1981年9月采用的IETF标准7 RFC 793和1981年9月采用的IETF标准5 RFC 791中定义的那样,二者都可从“www.ietf.org”处获得,尽管本发明的实施例并不局限于这一上下文。I/O适配器204还包括用于将I/O适配器204与合适的通信介质相连接的合适的连接器。I/O适配器204可通过任意合适的介质来接收通信信号,所述介质例如是铜线、双绞线、同轴电缆、光纤、无线电频率等等。
下面将参考图3及其附属示例来进一步描述系统100和系统200的操作。尽管在此提供的图3可包括特定处理逻辑,但是应该认识到该处理逻辑仅仅提供了可以怎样实现在此描述的通用功能的一个示例。而且,给定的处理逻辑中的每一个操作都不必以给出的顺序来执行,除非另有说明。
图3是由根据本发明一个实施例的信息管理组件执行的程序设计逻辑的方框流程图。如图3所示,在方框302,通过第一连接接收获得信息的第一请求。获得信息的第一请求例如可以是使用根据HTTP规范的HTTP“Get”命令的获得网页的请求。第一连接例如可以是在客户计算机和访问设备例如访问设备106之间的连接。在方框304,可通过第二连接获取信息。第二连接例如可以是访问设备和包含所请求信息的服务器例如服务器108之间的连接。在方框306,访问设备可检测到第一连接已终止。第一连接可由于各种原因而终止,例如用户主动地通过从客户计算机处的浏览器发送的取消或刷新请求、客户计算机和访问设备之间的物理或逻辑连接的断开等等。在方框308,访问设备可通过第三连接接收获得信息的第二请求。第三连接例如可包括客户计算机和访问设备之间用于取代已终止的第一连接的新连接。在方框310,访问设备可确定第二请求是否与第一请求相匹配。在方框312,根据方框310处的确定,访问设备可通过第三连接而发送所述信息。
在方框304处获取信息之后,访问设备可将所述信息存储在存储器中,例如存储器210或磁盘存储设备218。在本发明的一个实施例中,第一请求可包括第一源地址和第一信息地址。访问设备可将第一源地址、第一信息地址和所述信息存储在信息表中。访问设备可在方框308处接收第二请求。第二请求可包含第二源地址和第二信息地址。访问设备可搜索信息表,以确定第二源地址和第一源地址是否匹配,以及确定第一信息地址与第二信息地址是否匹配。如果二者都匹配,则访问设备可获取对应于第一源地址和第一信息地址的信息,并将所述信息通过第三连接发送到客户计算机。
在本发明的一个实施例中,源地址可包括IP地址,信息地址可包括URL,而所述信息可包括网页,例如HTML或XML文件。然而可以理解,源地址、信息地址和信息可以是根据一组所期望协议的其它格式,而仍落在本发明的范围之内。
客户计算机接收所请求的信息之后,客户计算机可发送请求以终止客户计算机和访问设备之间的第三连接。访问设备然后可根据所使用的特定协议来终止访问设备和服务器之间的第二连接以及第三连接。
图4图示了根据本发明一个实施例的消息流。如图4所示,在客户计算机和访问设备之间以及访问设备和服务器之间建立了TCP会话。访问设备例如可以是网络交换机。网络交换机可类似于负载平衡器而操作。
在第一段中,在客户计算机和网络交换机之间建立TCP会话。在消息流的这一示例中,网络交换机和服务器之间还没有建立TCP连接。在第一段期间,客户计算机可发送所期望的网页的URL。
访问设备已接收并存储所请求的URL之后,网络交换机可进入第二段。第二段例如可包括选择具有所请求网页的服务器。网络交换机可向所选择的服务器建立TCP连接,并将URL请求通过所打开的连接而传递给该服务器。
在第三段中,在从服务器接收所请求的信息之前,终止从客户计算机到网络交换机的TCP连接。然而,网络交换机将到服务器的TCP连接保持为打开的,以接收所请求的信息。
在第四段中,在客户计算机和网络交换机之间建立新的TCP会话。客户计算机发送获得URL的请求。由于网络交换机和服务器之间的TCP连接仍然是打开的,因此不在网络交换机和服务器之间打开新的TCP连接。
在第五段中,网络交换机检查它的信息表,以确定是否已存在该源IP地址指向所述服务器的未完结的URL请求。如果存在所述URL请求,则将先前的URL请求与新的URL请求相衔接。结果,网络交换机可避免下述操作选择服务器,打开新连接,以及将新的URL请求发送到所选择的服务器。
在第六段中,网络交换机可接收与先前的URL请求相关联的网页。网络交换机可执行一个验证过程,以确保所接收的网页与在新的URL请求中所请求的网页相同、网页是最新的等等。如果所述网页是有效的,则网络交换机将该网页发送到客户计算机。如果所述网页是无效的,则可以选择一个新的服务器,向该服务器打开连接,并将新的URL请求发送到所选择的服务器。
在第七段中,网络交换机可以接收终止客户计算机和网络交换机之间连接的请求。它接收这一请求后,网络交换机可以终止网络交换机和服务器之间打开的连接。
网络交换机已将网页发送到客户计算机之后,网络交换机可从信息表中删除该网页和对应的条目。或者,网络交换机例如可类似于缓存器件那样保持所述信息,并在一段时间过去后删除它。在这一示例中,网络交换机可将一个老化定时器(aging timer)与所述源地址、URL和信息相关联,并且周期性地或以预定的时间间隔删除特定条目。这可以实现来避免超过存储器阈值,也可避免保持无效信息。在本发明的一个实施例中,网络交换机可以使用先进先出(FIFO)的思想,其中,如果达到了存储器的最大使用率,则可删除最早存储的信息。
在本发明的一个实施例中,服务器可能不使用源IP地址来发送所请求的信息。例如,在使用自然地址翻译(NAT)技术的网络中可能会发生这一情形。在本发明的这一实施例中,网络交换机可能不需要将源IP地址和URL一起存储在它的信息表中。
虽然已如在此所描述的那样说明了本发明的实施例的某些特征,但是,对本领域内的技术人员来说可做出许多修正、替换、改变和等同。因此应理解到,所附权利要求应覆盖所有这种落在本发明实施例的真正精神之内的修正和改变。
权利要求
1.一种获取信息的方法,包括通过第一连接接收获得信息的第一请求;通过第二连接获取所述信息;检测到所述第一连接被终止;通过第三连接接收获得所述信息的第二请求;确定所述第二请求是否与所述第一请求相匹配;以及根据所述确定,通过所述第三连接发送所述信息。
2.如权利要求1所述的方法,其中,所述第一请求包括第一源地址和第一信息地址,所述方法还包括,在接收所述第二请求之前,将所述信息与所述第一源地址和所述第一信息地址一起存储在信息表中。
3.如权利要求2所述的方法,其中,所述第二请求包括第二源地址和第二信息地址,并且所述确定包括搜索所述信息表,以确定所述第二源地址与所述第一源地址是否相匹配;以及确定所述第一信息地址与所述第二信息地址是否相匹配。
4.如权利要求3所述的方法,其中,所述源地址包括因特网地址,并且所述信息地址包括统一资源定位符。
5.如权利要求1所述的方法,其中,所述信息包括超文本置标语言文件。
6.如权利要求1所述的方法,其中,所述信息包括可扩展置标语言文件。
7.如权利要求1所述的方法,还包括接收终止所述第三连接的请求;以及终止所述第二和第三连接。
8.一种在网络中获取信息的方法,包括通过第一连接,在第二网络节点处接收第一网络节点获得信息的第一请求;通过第二连接,将所述第一请求发送到第三网络节点;接收所述第一连接被终止的通知;在所述第二网络节点处,通过所述第二连接接收所述信息;在所述第二网络节点处,通过第三连接接收获得所述信息的第二请求;以及通过所述第三连接,将所述信息发送到所述第一网络节点。
9.如权利要求8所述的方法,其中,所述第一请求包括第一源地址和第一信息地址,所述方法还包括,在接收所述第二请求之前,将所述信息与所述第一源地址和所述第一信息地址一起存储在所述第二网络节点处的信息表中。
10.如权利要求9所述的方法,其中,所述第二请求包括第二源地址和第二信息地址,并且所述发送包括搜索所述信息表,以确定所述第二源地址与所述第一源地址是否相匹配;以及确定所述第一信息地址与所述第二信息地址是否相匹配;以及根据所述确定,发送所述信息。
11.如权利要求9所述的方法,其中,所述源地址包括因特网地址,并且所述信息地址包括统一资源定位符。
12.如权利要求8所述的方法,其中,所述信息包括超文本置标语言文件。
13.如权利要求8所述的方法,其中,所述信息包括可扩展置标语言文件。
14.如权利要求8所述的方法,还包括接收终止所述第三连接的请求;以及终止所述第二和第三连接。
15.一种制品,包括存储介质;所述存储介质包括所存储的指令,所述指令在由处理器执行时导致执行下述步骤通过第一连接接收获得信息的第一请求,通过第二连接获取所述信息,检测到所述第一连接被终止,通过第三连接接收获得所述信息的第二请求,确定所述第二请求是否与所述第一请求相匹配,以及根据所述确定,通过所述第三连接发送所述信息。
16.如权利要求15所述的制品,其中,所述第一请求包括第一源地址和第一信息地址,并且,所述所存储的指令在由处理器执行时还导致执行下述步骤在接收所述第二请求之前,将所述信息与所述第一源地址和所述第一信息地址一起存储在在信息表中。
17.如权利要求16所述的制品,其中,所述第二请求包括第二源地址和第二信息地址,并且,所述所存储的指令在由处理器执行时还导致执行下述操作通过搜索所述信息表,以确定所述第二源地址与所述第一源地址是否相匹配,以及确定所述第一信息地址与所述第二信息地址是否相匹配,从而确定所述第二请求是否与所述第一请求相匹配。
18.如权利要求15所述的制品,其中,所述所存储的指令在由处理器执行时,还导致执行下述操作接收终止所述第三连接的请求,以及终止所述第二和第三连接。
全文摘要
本发明公开了一种方法,尽管取消了客户计算机和负载平衡器之间的连接,但仍保持负载平衡器和服务器之间的连接。接收到所请求的信息之后,负载平衡器可将所请求的信息与客户计算机的源地址和所述信息的信息地址(例如URL)一起存储在信息表中。如果客户计算机尝试建立请求相同信息的新连接,则负载平衡器可从信息表中获取所述信息,并将它发送到客户计算机,而无需打开到服务器的新连接。
文档编号H04L29/08GK1631018SQ02814204
公开日2005年6月22日 申请日期2002年5月23日 优先权日2001年6月7日
发明者亚历克斯·阿格霍尔姆, 凯尔·迈克尔·詹森 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1