应用特定web请求路由的制作方法

文档序号:7990598阅读:196来源:国知局
应用特定web请求路由的制作方法
【专利摘要】Web请求路由器被用来将对网络内的内容的请求进行路由。Web请求路由器工作在通用计算设备上,被配置为接收请求、解析请求并将请求路由到适当目的地。Web请求路由器可被配置为执行不同的路由方法和操作。例如,Web请求路由器可基于以下各项来路由请求:网络流量的类型(例如,用户/机器);应用特定的逻辑、URL模式和/或其他编程逻辑。该web请求路由器可被配置为基于所确定的该请求的亲近性(例如,文档、统一资源定位符(URL)、目录路径、站点集合)来路由该请求。Web请求路由器还可被配置为执行QOS操作,诸如审计、日志记录、计量、对网络流量扼流、禁止网络流量等等。
【专利说明】应用特定WEB请求路由
[0001]背景
[0002]传统网络负载平衡器设备是用于路由请求的非常昂贵的专用硬件设备。这些设备可被配置成执行第4层和第7层路由。第7层是性能密集的,而第4层限于用于定制请求的路由行为。随着网络的增长,可能出现瓶颈,导致网络流量减慢。
[0003]概述
[0004]提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的选择的概念。本概述不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
[0005]Web请求路由器被用来将对网络内的内容的请求进行路由。Web请求路由器工作在通用计算设备上,被配置为接收请求、解析请求并将请求路由到适当目的地。Web请求路由器可被配置为执行不同的路由方法和操作。例如,Web请求路由器可基于以下各项来路由请求:网络流量的类型(例如,用户/机器);应用特定的逻辑、URL模式和/或其他编程逻辑。Web请求路由器可被配置为基于一请求的所确定的亲和性(例如,文档、统一资源定位符(URL)、目录路径、站点集合、底层HTTP协议的一个或多个属性,诸如cookie、用户代理、HTTP版本……等等)来路由该请求。Web请求路由器还可被配置为执行QOS操作,诸如审计、日志记录、计量、对网络流量扼流、禁止网络流量等等。
[0006]附图简述
[0007]图1示出使用web请求路由器的路由系统;
[0008]图2示出用于在包括在线服务的前端和后端服务器的网络中使用web请求路由器来路由请求的示例系统200 ;
[0009]图3示出使用web请求路由器来路由请求的概览过程;
[0010]图4示出可由web请求路由器执行的不同示例性操作;以及
[0011]图5示出说明性计算机体系结构。
[0012]详细描述
[0013]现将参考其中相同的标号代表相同的元件的附图来描述各实施例。
[0014]一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其它类型的结构。也可使用其他计算机系统配置,包括手持式设备、多处理器系统、基于微处理器或可编程消费电子产品、小型计算机、大型计算机等等。还可使用在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备两者中。
[0015]图1示出使用web请求路由器的路由系统。如图所示,系统100包括路由器102、网络负载平衡器104-105、web请求路由器110-112、后端服务器120-127以及高速缓存116。可使用更多或更少的路由器、网络负载平衡器、web请求路由器以及后端服务器。另外,由系统100中的组件所提供的功能中的某些可以由其他组件来执行。例如,负载平衡可由一不同计算设备执行,而不是使用专用网络负载平衡器(例如,web请求路由器110-112和/或某种其他通用计算设备)。[0016]路由器102跨网络路由数据分组。一般而言,路由器102使用数据分组中的地址来确定要在哪里将该分组转发到网络负载平衡器104-105或某个其他目的地。
[0017]负载平衡器104-105可被实现为专用网络设备,和/或负载平衡器所提供的功能的部分/全部可由其他计算设备(例如,web请求路由器110-112或某组其他的计算设备(未示出))来执行。根据一实施例,当网络负载平衡器是专用负载平衡器时,负载平衡器104-105工作在较低的TCP/IP层(例如,第4层而不是第7层),使得每一负载平衡器都能处理更多请求。负载平衡器104-105还可工作在一不同层。例如,该负载平衡器可以是第3层设备,该设备充当路由但是执行平衡负载。当负载平衡器接收到请求时,该负载平衡器将该请求定向到可用web请求路由器之一。可使用不同方法来将该请求路由到web请求路由器(例如,循环(round robin)、基于负载值、基于负载值及其他)。通常,传统负载平衡器是专用的硬件设备,它们与通用计算设备相比是昂贵的。
[0018]Web请求路由器110-112将请求定向到一个或多个后端服务器120-127。Web请求路由器提供一种可缩放的请求路由器,其与专用网络负载平衡器相比工作在较高的TCP/IP层(例如,第7层)。根据一实施例,web请求路由器被实现为在微软的用于Windows服务器的因特网信息服务(HS)中运行的通用计算服务器。一般而言,IIS是一种灵活、安全且易于管理的用于Web托管(例如,从媒体流传输到web应用托管)的Web服务器。Web请求路由器110-112与专用硬件计算设备相比较是廉价的。例如,web请求路由器可实现在具有低存储器和处理规格的商品服务器上。
[0019]在接收到请求后,接收该请求的web请求路由器确定该请求的目的地(例如,后端服务器120-127)。该web请求路由器可执行不同的操作以确定目的地。一般而言,web请求路由器使用HTTP协议来解析该请求以确定该请求的目的地。在许多情形下,使用该请求中所指定的主机头部(host-header)来选择要将该请求定向到的后端服务器和/或后端服务器池。可在高速缓存(例如高速缓存116)中查找主机头部,且该查找可涉及应用某些预定规则。例如,当web请求路`由器接收到xxxx-yyyy.sharepoint.com形式的统一资源定位(URL)请求时,该web请求路由器可在高速缓存中查找该xxxx部分且yyyy的任何值被发送到同一组服务器。该web请求路由器还可执行其他逻辑来确定该请求的目的地。
[0020]该web请求路由器可基于该请求的亲和性来定向该请求。例如,该web请求路由器可被配置为创建/使用针对以下各项的亲和性:个别文件、特定URL、目录路径、文件类型、站点集合、底层HTTP协议的一个或多个属性,诸如cookies、用户代理、HTTP版本……,等等。例如,亲和性可被创建并存储(例如存储在高速缓存116中),该亲和性引导web请求路由器使用后端服务器120来服务对“文档I”的请求,而对“站点集合I”的请求可被定向到后端服务器124和125。可针对一个或多个后端服务器创建亲和性以接收与在URL内包括匹配模式的请求有关的请求(例如,该web请求路由器可检测到URL中包括模式“WordViewer.aspx”的请求并基于对此模式的亲近性将该请求定向到该一个或多个所指定的后端服务器)。可创建一亲近性,该亲近性指定:包括特定地址或该地址的一部分的任何请求要由所述后端服务器中的一个或多个来服务。
[0021]该web请求路由器可被配置为基于从其接收该请求的用户来路由该请求。例如,一个或多个用户可被定向到第一组后端服务器而一个或多个其他用户可被定向到第二组后端服务器。根据一实施例,基于(例如,在cookie中接收的)认证信息来确定该用户。该web请求路由器可检查高速缓存116和/或某个其他位置来基于该请求是从谁接收的来路由该请求。
[0022]该web请求路由器可被配置为基于客户端所配置的设置来动态改变对请求的路由,诸如由客户端接收的设置和/或从另一计算设备接收的设置(例如,在一应用服务器和/或客户端处所设置的)。例如,用户可设置一可选项:使用基于客户端的应用来不同地路由流量以测试新特性。例如,基于一 cookie (由客户端应用设置为带外),该web请求路由器所接收的请求可被路由到该软件的一较新的/不同的版本,从而允许管理员/用户预览该新版本而不将该新版本暴露给他们的其他用户。根据基于客户端的应用设置来改变web请求路由器的路由还可用于其他目的(例如,内部测试团队以验证新的功能而不将该新功能暴露给真正的终端用户)。一般而言,根据设置基于客户端应用内的值,不同用户可被暴露给不同的内容。
[0023]该web请求路由器可确定网络流量的类型(基于用户的/基于机器/基于管理的)并基于所确定的流量类型来路由该流量。例如,该web请求路由器可将基于用户的流量路由到第一组后端服务器,将基于机器的流量路由到第二组后端服务器,并将管理流量路由到再另一组后端服务器。该web请求路由器还可基于网络流量的类型排定请求的优先级(例如,基于用户的流量被赋予比基于机器的流量更高的优先级)。
[0024]Web请求路由器还可被配置为执行服务质量(QOS)操作。该web请求路由器还可执行许多不同的操作(例如,计量网络流量;审计网络流量;记录网络流量日志;对网络流量计费并进行控制)。例如,web请求路由器可拒绝被确定为来自未授权源的网络流量。以此方式,该后端服务器不接收该未授权流量并不花费时间处理该未授权流量。该web请求路由器还可基于该请求扼流该流量。例如,某些用户可被限于特定的带宽/内容量。该web请求路由器还可被配置为用于需要对使用计费的服务。例如,该web请求路由器可被配置为记录负载日志并测量负载(请求的数量以及两个方向上的带宽两者)。Web请求路由器还可在可能仅支付了较低流量的站点具有突然的流行度尖峰时对那些站点进行扼流。
[0025]该web请求路由器 还可被配置为将请求重新路由到该web请求路由器的网络之外和/或之内的另一目的地。例如,该web请求路由器可能知道所请求的内容已被移动到何处,而这尚未被域名系统(DNS)所反映出。在此情况下,该web请求路由器可访问该内容从高速缓存116 (或某个其他位置)所移动的位置并且在该DNS更新该内容的位置之前将该请求重新路由到该内容的位置。
[0026]该web请求路由器还可基于该日的时刻(time of the day)和/或被配置为接收该请求的后端服务器上的负载来路由流量。例如,在该天中规定的小时期间,满足特定条件(例如,用户流量)的请求被定向到第一组后端服务器,而不满足该条件的请求被定向到第二组后端服务器。在其他时间期间,该web请求路由器可按相同方式路由流量。服务器的负载也可被web请求路由器用来确定如何路由请求。该负载可以是针对特定服务器和/或针对一组服务器的。例如,该负载可以是跨所有/部分后端服务器的平均负载。也可使用其他负载信息(例如,峰值负载、在该日内不同时刻的平均负载……)。该WRR可被配置为向该客户端提供负载信息或者不提供负载信息。
[0027]高速缓存116可被配置为存储在路由请求时使用的许多不同类型的信息。例如,配置信息(其可以是数百万个快速改变的对象)被存储在该高速缓存中而不是被推送到web请求路由器的每一个中。web请求路由器可以简单地从该高速缓存获得值。高速缓存116可被配置为存储路由表,该路由表可被用来确定要将特定请求路由到何处。
[0028]Web请求路由器可使用许多不同的因素来协助路由该请求,诸如后端服务器利用率、到服务器的连接数目和总体性能,来确定哪个后端服务器接收请求。web请求路由器还可以使用用于路由请求的应用特定逻辑。例如,可以基于文档标识符和/或包括在已接收的请求内的用户信息来路由请求。
[0029]该web请求路由器还可利用若干技术中的一个或多个(例如,循环、基于负载值、基于后端对其他请求所返回的负载值、基于高速缓存中的负载、或基于感测到其他响应多快地被返回)来确定请求的目的地。
[0030]图2示出用于在包括在线服务的前端和后端服务器的网络中使用web请求路由器来路由请求的示例系统200。示例系统200包括客户端202和204、网络206、负载平衡器208、web请求路由器209、WFE服务器210、212、214、后端服务器216-219,以及可选的路由组件220。可使用更多或更少的客户端、WFE、后端服务器、负载平衡器和网络。另外,由系统200中的组件所提供的功能中的某些可以由其他组件来执行。例如,负载平衡可以在WFE和/或某种其他计算设备中执行。
[0031]在示例实施例中,客户端202和204是诸如台式计算机、膝上型计算机、终端计算机、个人数字助理或蜂窝电话设备的计算设备。客户端202和204可包括输入/输出设备、中央处理单元(“CPU”)、数据存储设备和网络设备。在本申请中,术语客户端和客户端计算机互换地使用。
[0032]WFE210、212和214可由客户端202和204经由负载平衡器208和web请求路由器209通过网络206访问。一个或多个WFE可改变。例如,可随着时间增加/删除/改变一个或多个WFE。后端服务器216-219对WFE210、212和214是可访问的。负载平衡器208可以是专用网络设备和/或一个或多个通用服务器计算机。负载平衡器208,web请求路由器209,路由组件220,WFE210、212和214以及后端服务器216 — 219可包括输入/输出设备、中央处理单元(“CPU”)、数据存储设备和网络设备。在示例实施例中,网络206是因特网,并且客户端202和204可以远程地访问WFE210、212和214以及连接到WFE210、212和214的资源。
[0033]在一不例实施例中,系统200是在线的、基于浏览器的基于云的系统。在系统200中,后端服务器216-219中的一个或多个是SQL服务器,例如,来自美国华盛顿州雷蒙德市的微软公司的SQL服务器。
[0034]WFE210、212和214提供客户端202和204与后端服务器216-219之间的接口。负载平衡器208将来自客户端202和204的请求定向到web请求路由器。负载平衡器208可包括一个或多个专用硬件设备和/或被配置为执行负载平衡的通用计算设备。根据实施例,负载平衡器208是在第4层TCP/IP连接处终止的专用硬件负载平衡器。如同上面讨论的,硬件负载平衡器可工作在一不同层(例如第3层)。当负载平衡器不必执行大量处理时,它通常可以路由许多更多的消息。例如,处理安全套接字层(SSL)连接可显著地减少负载平衡器可处理的多个请求。与较高层相比,负载平衡器能够在较低层路由许多更多的请求(例如,在较低层处理多达5倍的请求)。
[0035]web请求路由器209将请求定向到WFE210、212和214,并且使用诸如WFE利用率、到WFE的连接数目和总体WFE性能的因素来确定哪个WFE服务器接收客户端请求。类似地,web请求路由器209使用诸如后端服务器利用率、到服务器的连接数目和总体性能的因素来确定哪个后端服务器接收请求。web请求路由器209可用于从负载平衡器208卸载处理中的某些。例如,负载平衡器208可运行在较低的TCP/IP层(例如,第3、4层)以使得它可以处理更多的请求。web请求路由器209提供可运行在较高的TCP/IP层(例如,第7层)的可缩放的请求路由器。web请求路由器可以使用用于路由请求的应用特定逻辑。例如,可以基于文档标识符和/或包括在已接收的请求内的用户信息来路由请求。当WFE改变发生时(例如,WFE被删除/增加),该web请求路由器存储关于该WFE改变的已改变信息,使得该web请求路由器停止向已经被移除的WFE发送流量并在适当时将流量定向到新添加的WFE。[0036]客户端请求的示例可以是访问存储在后端服务器之一上的文档,编辑存储在后端服务器(例如216-219)上的文档,或者将文档存储在后端服务器上。当负载平衡器208通过网络206接收客户端请求时,负载平衡器208将请求定向到可用的web请求路由器209中的一个。web请求路由器209确定WFE服务器210、212和214中的哪一个接收客户端请求。类似地,WFE服务器210、212、214和/或可选的路由组件220确定后端服务器216-219中的哪一个或多个从WFE服务器接收请求。后端服务器可以被配置为存储一个或多个承租人(即顾客)的数据。
[0037]客户端202和/或客户端204可改变web请求路由器209的路由。例如,客户端202可在基于客户端的应用内设置一选项,该选项允许该客户端被定向到不同内容(例如,应用的新版本)以便可对其进行测试/预览。还可从另一计算设备(例如,应用服务器)接收设置。
[0038]web请求路由器运行在可包括内置到硬件中的解密功能的通用计算设备(例如服务器)。例如,许多CPU已内建了解码能力,该解码能力可被用来帮助解码安全套接字层(SSL)连接。web请求路由器通常比用于大型网络的专用负载平衡器(例如负载平衡器208)更便宜。可利用任意数目的web请求路由器209来处理请求。在在线服务运行期间,web请求路由器的数目也可以动态地改变。例如,取决于服务的负载,可以动态地部署/移除更多或更少的web请求路由器。
[0039]web请求路由器209可以使用用于路由请求的应用特定逻辑。可以基于请求内所包括的信息(例如,文档标识符和/或用户/文档/地址信息)来路由请求。例如,请求可以是“…/wordviewer.aspx ? id=fo0.docx”形式的HTTP请求。请求与特定的应用相关联,并且包括文档标识符“fo0.docx”作为请求的部分。不同的应用可以具有不同的请求结构。一般而言,与应用相关联的请求可以包括诸如以下各项:应用信息、用户信息、承租人信息、文档信息等。很多应用请求已经包括可用于路由的信息,而不必修改请求以包括可用于路由的附加信息。换言之,web请求路由器具有关于应用如何创建请求的应用特定知识。由此,由于应用可以已经包括请求内的可用信息,因此附加信息不必被创建并被存储在请求内。
[0040]请求的路由可以基于所请求的内容的名称/类型/路径前缀(例如,请求中的URL路径的某个部分)/站点集合/地址(例如,fo0.docx/承租人I/、LOCI/*, doc,…)。例如,对特定文档fo0.docx的所有请求可被定向到单一服务器以处理该请求来改善其高速缓存响应的能力,而对非常受欢迎的站点的请求可被定向到一组服务器。当单一服务器处理对一文档的请求时,它通常能够从经高速缓存的内容中检索到所请求的内容,由此节省时间和计算资源。一旦文档已经被请求,它可被高速缓存到最初处理请求的服务器上。由于可以基于文档名称来路由请求,则该文档很有可能位于已确定的服务器的高速缓存中。其他应用特定信息也可用于路由请求,诸如基于应用的特定版本、文档版本、应用类型等来路由。
[0041]对请求的路由还可以至少部分地基于其他因素,诸如:基于非用户发起的请求来路由(机器人(bot));请求的复制(路由到多个端点用于调试目的);地理分布(跨网络、跨数据中心路由以获得DNS传播期间的高可用性)等。
[0042]文档还可以被高速缓存在某个其它位置,诸如高速缓存服务器(未示出)内。高速缓存服务器通过从同一客户端或其他客户端进行的先前的请求中检索已保存的内容来加速请求。高速缓存服务器频繁地存储所请求的资源以使得它们可以被更快速地提供。
[0043]查找表可用于确定请求的目的地。例如,查找表可被存储在网络内的数据存储中和/或高速缓存(例如,高速缓存116)中。查找表由web请求路由器访问以确定请求的目的地。例如,查找表可包括顾客名称、文档名称以及该文档所存储的位置。web请求路由器使用来自请求的信息并在查找表内为该文档查找数据存储的位置。当在线服务内的内容位置变化时,可更新查找表以使得web请求路由器自动地将内容定向到已更新的位置。如所讨论的,出于很多不同的理由可以改变内容位置,诸如机器、场、数据库的新部署,升级,分隔数据库,碎片整理操作等。
[0044]图3-4示出用于使用web请求路由器在在线系统中路由请求的过程。
[0045]在阅读本文中给出的例程的讨论时,应该理解,各个实施例的逻辑操作被实现为:
(I)一系列运行于计算系统上的计算机实现的动作或程序模块;和/或(2)计算系统内的互连的机器逻辑电路或电路模块。这种实现是取决于实现本发明的计算系统的性能需求的选择问题。因此,所例示并构成本文中描述的实施例的逻辑操作被不同地称为操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可以用软件、固件、专用数字逻辑,以及其任何组合来实现。
[0046]图3示出使用web请求路由器来路由请求的概览过程。
[0047]在开始操作之后,过程300行进至在其中接收请求的操作310。在被配置作为将请求路由到适合的目的地的web请求路由器的一组通用商品服务器处接收请求。该目的地可以在该web请求路由器所驻留的网络的内部/外部。所述请求是针对存储在一个或多个机器上的内容的。所请求的内容可移动位置。例如,数据库可被复制到新位置、承租人可被移动到一不同位置、新的场可被部署等。根据一实施例,所述请求遵守HTTP协议。
[0048]流向操作320,该请求被web请求路由器解析。可解析该请求以获得不同类型的信息。例如,可解析某些请求来:确定首部内的位置的名称;标识与该请求相关联的应用;标识文档的名称;标识用户;确定该请求内包含的设置(即,应用特定路由请求);标识请求的类型(例如,用户/机器/管理);标识地址;等等。可被解析的一些信息包括应用标识信息、文档信息、用户信息、认证信息、安全信息、顾客信息等。
[0049]移至操作330,该web请求路由器可执行其他操作。许多类型的操作可被编程以由web请求路由器执行。Web请求路由器可创建/使用亲近性。例如,可为文档、站点集合、URL、目录路径等创建亲近性。Web请求路由器还可执行各种QOS操作(例如,计量网络流量;审计网络流量;记录网络流量日志;对网络流量计费以及拒绝)(参见图4和对其他操作的相关讨论)。
[0050]移至操作340,确定请求的目的地。如所讨论的,可使用许多不同类型的信息来确定目的地。根据一实施例,关于网络中各后端服务器上有什么可用内容的信息被存储在查找表中,该查找表可由该web请求路由器访问。该查找表反映了数据的当前位置。根据一实施例,只要内容位置改变就自动更新查找表,以使得查找表包含的信息准确地反映在进行请求时具有可用内容的服务器。根据一实施例,该查找表标识一个或多个后端服务器,该后端服务器处理特定文档/URL/地址/用户/站点集合。例如,一个服务器可处理第一组文档,另一服务器处理特定站点集合,另一服务器处理包括特定地址的请求,等等。通过将对相同内容的请求发送到相同的机器,该内容将有可能被存储在机器的高速缓存内。如果请求是针对不具有被高速缓存的内容的另一个服务器,则该服务器随后在获得该文档时执行多得多的步骤。也可基于该请求内所包括的其他信息(例如,将web请求路由器定向到内容的另一位置的测试请求)来确定目的地。还可禁止该请求的目的地。例如,可确定一请求与被禁止的请求者相关联。
[0051]移至操作350,将该请求转发到所确定的目的地,或者在该请求被禁止时拒绝该请求。该目的地可以在该web请求路由器所驻留的网络的内部/外部。在一些情况下(例如,该请求很大),该请求可被流传输到目的地。
[0052]流向操作360,当该请求被转发到目的地时,一响应被从该目的地接收并返回给客户端。该响应可以如所接收的那样被返回和/或在返回前被修改。例如,负载信息、健康度信息等等可被包括在该响应内。在一些情况下(例如,该响应很大),该响应可被流传输到客户端。
[0053]随后该过程移至结束框并返回以处理其它动作。
[0054]图4示出可由web请求路由器执行的不同示例性操作。这些示例性操作是作为示例提供的,不旨在是限制性的。可执行过程400的操作中的O个或更多个。
[0055]操作410示出创建/使用亲近性。可针对以下各项创建/确定亲近性:个别文件、文件组、特定URL、URL的部分、特定目录路径、目录路径的部分、应用、应用类型、文件类型、站点集合、底层HTTP协议的一个或多个属性,诸如cookies、用户代理、HTTP版本等。亲近性也可以是基于不同项目的组合的。例如,web请求路由器可将与地址“Addr I”相关联的“文档”类型的文件关联为要被存储在后端服务器I处。
[0056]操作420示出应用控制的路由。路由请求可根据从基于客户端的应用接收的设置。用户和/或另一计算设备可通过改变设置来临时/永久改变一请求的路由。例如,用户可使用基于客户端的应用来设置测试设置,其导致web请求路由器将从一个或多个用户接收到的请求路由到应用/内容的不同版本以用于测试之目的。Web前端服务器或其他计算设备也可改变路由。
[0057]操作430示出使用web请求路由器来执行QOS操作。Web请求路由器可被配置为执行各种QOS操作(例如,计量网络流量;审计网络流量;记录网络流量日志;确定网络健康度;监视网络流量;对网络流量计费并进行控制)。健康度可与一组机器中的每一个的健康度和/或该组机器的整体健康度相关。例如,web请求路由器可确定平均健康度得分,该平均健康度得分是基于从所述机器中的每一个获得的值。用这种方式,单一机器的健康度得分值不提供该组中的其他机器的健康度得分的错误解读(例如,一个机器可以是处于高度需求,而该组中的其他机器并非如此)。
[0058]操作440示出阻挡不适当的网络流量。例如,web请求路由器可拒绝被确定为来自未授权源的网络流量。以此方式,该后端服务器不接收该未授权流量并不花费时间处理该未授权流量。
[0059]操作450示出基于网络流量的类型的路由。可取决于该请求何时来自用户、机器或者该请求是管理请求来不同地路由该请求。例如,来自用户的请求可以比来自机器的请求被排定更高的优先级。还可基于网络流量的类型来不同地路由该请求并创建亲近性(例如,基于用户的流量到服务器1-3、基于机器的流量到服务器3-4,而管理请求到服务器5)。根据一实施例,网络流量的类型是从该请求内的一字段确定的。
[0060]操作460示出将请求路由到多个目的地。请求可被路由到一个以上的目的地。例如,为调试之目的,请求可被路由到多个目的地。
[0061]操作470示出在DNS传播期间重新路由请求。对于内容被从一个位置移动到新位置之后的某个时间段,该新位置没有被域名系统(DNS)反映。在此DNS传播时间段期间,在DNS更新该内容的位置之前,web请求路由器可确定内容的位置(例如,从查找表(或某个其他位置))并将该请求重新路由到该新位置。所述重新路由可以跨网络、跨数据中心路由,或者路由到同一网络/数据中心内的另一机器。
[0062]操作480示出基于请求的时间和/或当前网络性质(例如,负载)的路由。该web请求路由器可基于该日内的时刻(time of the day)和/或被配置为接收该请求的后端服务器上的负载来路由流量。例如,在该天中规定的小时期间,满足特定条件(例如,用户流量)的请求被定向到第一组后端服务器,而不满足该条件的请求被定向到第二组后端服务器。在其他时间期间,该web请求路由器可按相同方式路由流量。服务器的负载也可被web请求路由器用来确定如何路由请求。
[0063]现在参考图5,将描述在各实施例中利用的计算机500的说明性计算机架构。图5所示的计算机体系结构可被配置为服务器、台式或移动计算机,并且包括中央处理单元5(“CPU”)、包括随机存取存储器9 (“RAM”)和只读存储器(“ROM”)10的系统存储器7、以及将存储器耦合至中央处理单元(“CPU”)5的系统总线12。
[0064]在R0M10中存储基本输入/输出系统,该系统包含有助于诸如在启动期间在计算机内的各元件之间传输信息的基本例程。计算机500还包括大容量存储设备14,用于存储操作系统16、应用程序10、数据存储24、文件、以及与路由请求相关的路由程序26。
[0065]大容量存储设备14通过连接至总线12的大容量存储控制器(未示出)连接至CPU5。大容量存储设备14及其相关联的计算机可读介质为计算机500提供非易失性存储。虽然本文中包含的对计算机可读介质的描述涉及诸如硬盘或CD-ROM驱动器等大容量存储设备,但是计算机可读介质可以是能够由系统100访问的任何可用介质。
[0066]作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、可擦除可编程只读存储器(“EPROM”)、电可擦可编程只读存储器(“EEPR0M”)、闪存或其他固态存储器技术、⑶-ROM、数字多功能盘(“DVD”)或其他光存储、磁带盒、磁带、磁盘存储或其他磁性存储设备,或能用于存储所需信息且可以由计算机500访问的任何其他介质。
[0067]根据各实施例,计算机500可以使用通过诸如因特网的网络18至远程计算机的逻辑连接在联网环境中操作。计算机500可以通过连接至总线12的网络接口单元20来连接到网络18。网络连接可以是无线的和/或有线的。网络接口单元20也可用于连接到其他类型的网络和远程计算机系统。计算机500还可以包括用于接收和处理来自多个其他设备的输入的输入/输出控制器22,这些设备包括键盘、鼠标或者电子指示笔(未在图5中示出)。类似地,输入/输出控制器22可以为显示屏28、打印机或其它类型的输出设备提供输出。
[0068]如上面简要提到的,多个程序模块和数据文件可以存储在计算机500的大容量存储设备14和RAM9内,包括适于控制联网计算机的操作的操作系统16,比如华盛顿州雷蒙德市的微软?公司的WINDOWS?操作系统。大容量存储设备14和RAM9还可以存储一个或多个程序模块。具体而言,大容量存储设备14和RAM9可以存储诸如路由程序26的执行与路由请求相关的任务的一个或多个应用程序。
[0069]以上说明、示例和数据提供了对本发明的组成部分的制造和使用的全面描述。因为可以在不背离本发明的精神和范围的情况下做出本发明的许多实施例,所以本发明落在所附权利要求的范围内。
【权利要求】
1.一种用于将请求路由到后端服务器的方法,包括: 在web请求路由器处接收请求,所述web请求路由器是通用计算设备; 在所述web请求路由器处,解析所述请求,解析所述请求包括解释网络协议并确定包括所述请求要被路由到的后端服务器的目的地;以及 将所述请求路由到所确定的目的地。
2.如权利要求1所述的方法,其特征在于,在所述web请求路由器处接收所述请求包括从负载平衡器接收所述请求,所述负载平衡器是专用网络设备。
3.如权利要求2所述的方法,其特征在于,所述web请求路由器卸载由所述负载平衡器执行的功能,包括卸载以下至少一项:解释所述请求的网络协议;解密与所述请求相关联的安全;确定与所述请求相关联的亲近性以及解释正式域名(FQDN)。
4.如权利要求1所述的方法,其特征在于,解析所述请求包括以下至少一个:确定与所述请求相关联的亲近性,其中所述亲近性是与以下的至少一项相关联的:文档;目录路径;站点集合;以及统一资源定位符;确定何时将所述请求路由到正在运行一应用的一不同版本的后端服务器,使得从第一客户端接收的对内容的第一请求被定向到第一目的地而从第二客户端接收的对所述内容的第二请求被定向到第二位置;使用以下的至少一项来确定所述目的地:所述请求的时间以及一组后端服务器上的负载;以及确定来自用户流量和机器流量的与所述请求相关联的网络流量的类型并且基于所确定的所述网络流量的类型来路由所述请求并排定所述请求的优先级。
5.如权利要求1所述的方法,其特征在于,还包括使用所述web请求路由器来执行以下的至少一项:计量网络流量;审计网络流量;记录网络流量日志,对网络流量计费以及拒绝网络流量。
6.如权利要求1所述的方法,其特征在于,还包括在内容已被移动且域名系统(DNS)尚未更新一不同网络位置的位置时使用所述web请求路由器来将所述请求路由到所述不同网络位置。
7.如权利要求1所述的方法,其特征在于,还包括基于从客户端设备处的基于用户的应用接收到的改变来改变所述web请求路由器的路由。
8.一种具有用于路由请求的计算机可执行指令的计算机可读存储介质,其特征在于,包括: 接收对网络中的内容的请求;其中所述请求是在web请求路由器处从所述网络中的专用负载平衡器接收的,其中所述web请求路由器是所述网络中的一组web请求路由器的一部分,所述web请求路由器包括客户端可配置路由逻辑; 在所述web请求路由器处,解析所述请求,包括解释所述网络协议,确定与来自用户流量和机器流量的所述请求相关联的网络流量的类型,以及基于所确定的所述网络流量的类型来调整所述请求的路由,以及确定包括所述请求要被路由到的后端服务器的目的地;以及 将所述请求路由到所确定的目的地。
9.一种用于在在线服务中路由请求的系统,包括: 处理器和计算机可读介质; 存储在所述计算机可读介质上并在所述处理器上执行的操作环境;被配置为存储用于web请求路由器的状态信息的高速缓存; Web请求路由器,所述web请求路由器卸载由负载平衡器执行的功能,包括卸载以下至少一项:解密与所述请求相关联的安全;解释FQDN (正式域名)以及确定与所述请求相关联的亲近性,其中所述web请求路由器被耦合到所述网络和所述高速缓存,所述网络和所述高速缓存均被配置为执行动作,所述动作包括: 接收对网络中的内容的请求;其中所述请求是在web请求路由器处从所述网络中的专用负载平衡器接收的,其中所述web请求路由器是所述网络中的一组web请求路由器的一部分,所述web请求路由器包括客户端可配置路由逻辑; 在所述web请求路由器处,解析所述请求,包括解释所述网络协议,为所述网络执行质量服务(QOS)操作,包括以下至少一项:计量网络流量;审计网络流量;记录网络流量日志;对网络流量计费以及拒绝网络流量;以及确定包括所述请求要被路由到的后端服务器的目的地;以及 将所述请求路由到所确定的目的地。
10.如权利要求9所述的系统,其特征在于,解析所述请求包括确定与所述请求相关联的亲近性,其中所述亲近性与以下至少一项相关联:文档;目录路径;站点集合;以及统一资源定位符。
【文档编号】H04L12/28GK103609074SQ201280029563
【公开日】2014年2月26日 申请日期:2012年6月16日 优先权日:2011年6月17日
【发明者】A·霍普曼, E·福克斯, T·富特旺勒 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1