用于分布式服务的上下文专用网络资源寻址模型的制作方法

文档序号:7714683阅读:169来源:国知局
专利名称:用于分布式服务的上下文专用网络资源寻址模型的制作方法
技术领域
本发明涉及用于分布式服务的上下文专用网络资源寻址模型。
背景技术
传统上,正在通过网络请求某种数据的计算设备通常假设它将这样的请求定向到的计算设备包括所请求的数据。如果这样的计算设备不包含所请求的数据,则现有的解决方案仅限于要么重定向发出请求的计算设备,并由此使发出请求的计算设备将其请求重新发送到它被重定向到的计算设备,或者,可另选地,从另一计算设备获取这样的数据,然后, 将它提供给发出请求的计算设备。每一种情况都是低效的。重定向使发出请求的计算设备必须向不同的目的地计算设备重新发出同一个请求,而从另一计算设备获取数据会添加额外的网络通信集。当然,直到实际访问所请求的数据为止不提供成功的第三选项可以是简单地通知发出请求的计算设备,从接收到请求的计算设备无法提供所请求的数据。在许多网络环境中,通常可以使用这样的第三选项,因为这样的网络环境可以基于更多严格定义的资源集。然而,在诸如无所不在的因特网和万维网(www)之类的大规模多方分布式网络中,对这样的选项的广泛使用会导致大量的用户在某些数据的位置被移动或者数据被以别的方式重新组织时不能访问这样的数据。相反,在大规模的多方分布式网络中,前两个选项是更需要的。例如,Wffff上的网页,会并且常常确实将用户的web浏览器重定向到更适当的网页。通常,当一个网页的数据被移到网络上的不同的网页或其他位置时,这样的重定向会发生。在这样的情况下,原始位置可以简单地将用户的浏览器重定向到新位置,从而使浏览器再一次向新网页或新位置中的其他资源发出同一个请求。作为另一个示例,Wffff上的许多网站可以,并且常常确实提供后端进程,这些后端进程可以去并获取由用户所请求的数据,不管该数据的实际位置,然后,将这样的数据返回到发出请求的用户。尽管来自用户的计算设备的请求技术上不被重定向,但是,仍会由这样的后端进程去并从这样的数据现在所在的任何位置获取所请求的数据所执行的额外的网络通信集带来低效率。随着可以通过网络可用的资源(特别是编程资源)增多,诸如上面所枚举的那些之类的现有的重定向方案的低效率变得更加明显,并对性能产生更大的影响。例如,当用户在包括从网络源检索主要静态数据的典型的web浏览会话中使用web浏览器,在这样的典型的web浏览会话过程中用户可能遇到的重定向中几乎没有重定向可能不会显著地影响用户的体验。实际上,对于典型的用户,最终获取所请求的数据的能力是重要的大事,并且由任何重定向机制所带来的额外的延迟可以是小事,特别是在总的浏览体验的范围内。然而,对于在计算设备上执行的计算机可执行指令,这些计算机可执行指令使用基于网络的资源作为一种应用程序编程接口类型,以便那些计算机可执行指令,作为那些计算机可执行指令的执行的主要本质的一部分,通过网络从其他联网的计算设备连续地请求数据,通过网络进行数据访问的效率会变得头等重要。

发明内容
在一个实施方式中,后端定位器服务可以提供位置专用网络地址,以便可以跨可通信地耦合到网络的多个计算设备划分数据,后端定位器服务可以提供最适于所请求的数据的计算设备的位置专用网络地址。在另一实施方式中,可以创建基于网络的应用程序编程接口,以使得初始请求可以是位置不可知的,而随后的请求可以变得更加具体,并且经由后端定位器服务,可以仅仅作为这样的基于网络的应用程序编程接口中固有的往返通信的一部分被定向到适当的位置,由此不会引入任何额外的延迟、重复,或其他这样的重定向低效率。在又一实施方式中,可以分层定义可通过基于网络的应用程序编程接口来展示的数据和服务文档,以允许随后的请求变得更加具体,并且经由后端定位器服务同样作为这样的基于网络的应用程序编程接口中固有的往返通信的一部分被定向到适当的位置。提供本发明内容是为了以精简的形式介绍将在以下具体实施方式
中进一步描述的一些概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。通过下面的结合附图对本发明进行的具体实施方式
,本发明的附加特征和优点将变得更加显而易见。


通过参考各个附图,可以更好地理解如下具体实施方式
,其中图1是包括后端定位器服务以及跨多个计算设备划分的数据的示例性系统的框图;图2是高效地将请求定向到适当的计算设备的示例性通信交换的框图;图3是用于使用后端定位器服务的示例性机制的流程图;以及图4是示例性计算设备的框图。详细描述下面的描述涉及在给定通过网络通信请求的数据的情况下将网络通信高效地定向到最适当的计算设备。后端定位器服务可以提供最适于所请求的数据的计算设备的位置专用网络地址。数据请求可以是可以被分层定义的基于网络的应用程序编程接口的一部分,以使得根据基于网络的应用程序编程接口,初始请求可以是位置不可知的,而同样根据基于网络的应用程序编程接口,随后的请求可以更加具体,并由此可以作为这样的基于网络的应用程序编程接口中固有的往返通信的一部分被定向到适当的计算设备。尽管下面的描述引用了基于网络的应用程序编程接口的具体示例,以及诸如因特网和万维网(www)之类的具体的已知网络,但是,下面所描述的机制没有这样的限制。实际上,没有变化,如上文所描述的,这样的机制同样适用于任何类型的基于网络的应用程序编程接口以及分布式计算设备的网络的任何类型或实现。如此,尽管下面的描述为了清楚起见将引用具体示例,但是,描述的范围不应被如此狭窄地理解。虽然未作要求,但以下描述将处在诸如程序模块等正由一个或多个计算设备执行的计算机可执行指令的一般上下文中。更具体而言,除非另外指明,否则描述将参考一个或多个计算设备或外围设备所执行的动作以及其所执行的操作的符号表示。由此,可以理解,这些有时被称为计算机执行的动作和操作包括以结构化形式表示数据的电信号的处理单元的操纵。该操纵在存储器中的各个位置变换或维护数据,这以本领域技术人员都理解的方式重新配置或以其他方式更改计算设备或外围设备的操作。其中维护数据的数据结构是具有由该数据的格式定义的特定特性的物理位置。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。此外,本领域技术人员将会认识到这些计算设备不必限于常规个人计算机,并且包括其他计算配置,包括手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机等等。类似地,这些计算设备不必限于独立计算设备,因为各机制也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。转向图1,示出了系统100,包括经由网络180彼此可通信地耦合的计算设备。在所示出的实施方式中,经由网络180可通信地耦合的计算设备可以包括客户机计算设备110 以及多个服务器计算设备,如服务器计算设备130、140以及150。在一个实施方式中,多个服务器计算设备130、140以及150可以各自可通信地耦合到诸如数据存储135、145以及 155之类的数据存储,数据存储可以各自保留数据,这些数据可以被客户机计算设备110请求,并由客户机计算设备110使用。另外,如图1所示的系统100还可以包括诸如后端服务器计算设备160之类的一个或多个后端服务器计算设备,它们可以执行后端定位器服务 170。虽然在图1的系统100中被视为单独的服务器计算设备上单一执行的实例,但是,在其他实施方式中,后端定位器服务170可以在每一个服务器计算设备上执行的单个实例中实现,服务器计算设备可通信地耦合到诸如服务器计算设备130、140以及150之类的数据存储。图1的系统100另外还包括诸如域名服务器计算设备120之类的一个或多个域名服务器计算设备。如本领域的技术人员所知的,这样的域名服务器计算设备可以为客户机计算设备110提供转换服务,从而,诸如网络浏览器之类的在客户机计算设备上执行的进程可以为服务器计算设备提供常见的或口语的名称,域名服务器计算设备120可以将这样的常用名称转换为精确的网络地址,通信可以通过该网络地址在客户机计算设备110和其网络地址由域名服务器计算设备120指定的服务器计算设备130、140或150中的一个或多个之间路由。通常,可以由负责管理服务器计算设备130、140和150的实体来更新域名注册数据库,以在与那些服务器计算设备中的一个或多个相关联的常用名和向其发送定向到这样的常用名的通信的准确的网络地址之间提供链接。在一个实施方式中,服务器计算设备130、140、150和160可以串联地工作,以向诸如客户机计算设备110之类的客户机计算设备提供数据和服务。例如,服务器计算设备 130、140、150和160都可以由旨在提供这样的服务的单一实体来进行管理,并由其指导。可以向诸如客户机计算设备110之类的客户机计算设备提供的一个这样的服务可以是通过基于网络的应用程序编程接口对数据及其他资源的访问。在一个实施方式中,这样的接口可以基于代表性状态传输(REST)体系结构。如本领域的技术人员所知的,REST体系结构包括客户机和服务器,其中,客户机向服务器发起请求,服务器处理那些请求,并返回响应。另外,服务器不需要维持客户机上下文,以便每一个请求和响应,本质上,可以是独立的,REST体系结构可以被视为“无状态”。作为可以由服务器计算设备130、140、150以及160所提供的基于网络的应用程序编程接口的示例,那些服务器计算设备中的每一个都可以是诸如万维网上的单一 web域之类的同一个网络域的一部分。这样的域可以是一般地通过诸如例如“www. someplace, com" 之类的顶级域名来标识。域名服务器计算设备120可以提供服务器计算设备130、140或 150中的任何一个的网络地址,作为被定向到这样的顶级域名(诸如从在客户机计算设备 110上执行的进程)的请求应该被定向到的地址。响应于这样的初始请求,并作为基于网络的应用程序编程接口的一部分,这样的初始响应被定向到的服务器计算设备可以用服务文档作出响应,该服务文档可以为客户机计算设备110上的调用进程提供进一步的选项。例如,选项可包括在客户机计算设备上执行的进程可以请求更多有关其信息的数据的各种名称空间,或类型的列表。随后的来自客户机计算设备110的通信可以引用那些选项中的一个,诸如,例如,通过将请求定向到〃 www. someplace. com/selected_option",来自服务器计算设备130、140或150中的任何一个的响应接收到该通信,可以再一次提供另一个服务文档,该另一个服务文档可以列出与在请求中引用的选项有关的进一步的选项。如此,客户机计算设备110和服务器计算设备130,140和150中的一个或多个之间的往返通信可以允许在客户机计算设备上执行的进程最终选择、请求和编辑特定数据或其他信息,它们可以存储在分别与服务器计算设备130、140和150相关联的数据存储135、145和155中。如此, 服务器计算设备130、140和150可以提供基于网络的应用程序编程接口。转向图2,其中所示出的系统200示出了示例性网络通信系列,示出了在将通信定向到基于网络的应用程序编程接口的上下文内适当的服务器计算设备而不会添加附加的低效率时使用诸如后端定位器服务170之类的后端定位器服务。一开始,如上文所描述的, 在客户机计算设备110上执行的进程可以通过首先将请求定向到旨在充当对于基于网络的应用程序编程接口的使用的起始点的顶级域,来启动与服务器计算设备130、140或150 的通信。如此,如图2的系统200所示,客户机计算设备110可以将通信210定向到域名服务器计算设备120,其包括与服务器计算设备130、140以及150相关联的顶级域的常用名。 在响应215中,域名服务器计算设备120可以返回服务器计算设备130,140以及150中的一个或多个的网络地址。如本领域的技术人员所知的,由域名服务器计算设备120所返回的准确的网络地址可以是与域名服务器数据库中的顶级域名相关联的网络地址,如通过管理该域名的实体。在某些情况下,域名服务器计算设备120可以将某些智能应用到它在响应215中提供的对网络地址的选择。例如,管理域名的实体可以指定,在域名服务器数据库中,在响应215中所提供的网络地址是服务器计算设备130、140和150之中的在地理上或在物理上与发出请求的客户机计算设备110最近的服务器计算设备的网络地址。在这样的情况下,域名服务器计算设备120可以诸如从客户机计算设备的网络地址来标识客户机计算设备110的大致位置,并可以在响应215中,返回服务器计算设备130、140和150中的与该位置最近的包括相关域的服务器计算设备的网络地址。为了说明,在图2的系统200中, 响应215被示为指定服务器计算设备130的网络地址。因此,客户机计算设备可以将初始通信220定向到服务器计算设备130。如在图 2的系统200中所示,初始通信220可以是位置无关的,因为它不必指定特定服务器计算设备,相反,可以只指定它一般地被定向到顶级域。例如,通信220可以简单地指示它被定向到形式“www. somplace. com”的web地址。响应于这样的请求,服务器计算设备130不必确定客户机计算设备110是否正在请求服务器计算设备130可以访问的数据,诸如经由前面在图1中所示出的服务器计算设备130可通信地耦合到的数据存储135。相反,如图2的系统200所示,服务器计算设备130可以以通信225作出响应,该通信225包括服务文档,该文档可以列出对客户机计算设备110可用的进一步的选项。例如,与响应225 —起提供的月艮务文档中的选项可以呈现诸如〃 www. som印lace. com/option#l〃禾口〃 www. som印lace. com/option#2//之类的更加具体的资源标识符的形式。在一个实施方式中,由与响应225 —起返回的服务文档所标识的选项可以标识不同类型的数据或数据名称空间。例如,由服务器计算设备130、140和150支持的域可以提供对用户的联系人列表中的联系人的诸如姓名、电话号码、电子邮件地址之类的联系人信息及其他信息的访问,或者对诸如正在被同步的文件,进行这样的同步的源位置和目标位置, 及用户正在跨如图1所示的网络180进行同步的文件的其他类似的信息的访问。在这样的实施方式中,与服务文档一起返回的服务文档可以包括形式“www. someplace, com/sync”或 "www. someplace, com/contacts “的资源标识符。随后,在接收到经由通信225所提供的服务文档时,客户机计算设备110可以选择在服务文档中枚举的选项中的一个,并可以经由提供给服务器计算设备130的通信,返回请求,选择这样的选项,如图2的系统200所示。由于可以经由基于网络的应用程序编程接口提供的许多数据可以是用户专用的,在在客户机计算设备110和与基于网络的应用程序编程接口相关联的服务器计算设备之间的通信过程中的某个时间点,客户机计算设备代表其正在使用基于网络的应用程序编程接口的用户将需要标识其本身。如本领域的技术人员所知,这样的标识可以采取诸如密码之类的标识信息、认证信息的形式,及其他类似的信息的形式。为了说明,在图2的系统200中,服务器计算设备130被示为作为对上文所描述的请求230的响应235的一部分,请求标识、认证。同样,如所指出的,可以在请求用户专用数据之前的任何时间执行用户的标识的认证,图2的系统200中的例示只是示例性的。一旦被认证,随后的来自这样的用户的请求可包括用户标识信息。例如,在对用户的认证过程中,客户机计算设备110和它正在向其认证的服务器计算设备可以建立令牌, 或其他数据集,它们将与每一个随后的请求包括在一起,以至少对于该通信会话来唯一地标识用户。不管准确的机制,一旦用户被认证,随后的通信,诸如从客户机计算设备110到诸如服务器计算设备130之类的服务器计算设备的随后的通信M0,可包括这样的令牌或其他用户标识信息。作为对基于网络的应用程序编程接口的使用的一部分,客户机计算设备110可以,在某个点,请求足够具体的数据,以至于诸如服务器计算设备130之类的这样的请求所定向到的服务器计算设备,可能需要使用诸如后端定位器服务170之类的后端定位器服务,来将未来这样的请求定向到比较适当的服务器计算设备。返回到上面的示例,诸如经由通信225所提供的服务文档之类的服务文档,可以指定资源标识符"■· someplace, com/ sync"和〃 www. som印lace, com/contacts"作为客户机计算设备110可以通过其请求同步信息或联系人信息的标识符。诸如来自客户机计算设备110的通信240之类的随后的请求可以,除包括令牌或其他用户标识符之外,还包括诸如例如““靈someplace, com/ sync”之类的那些资源标识符中的一个。尽管这样的通信240可以被定向到的服务器计算设备130仍可以理解可以被访问的同步数据的基本结构,但是,服务器计算设备130可以, 在一个实施方式中,可通信地与数据存储135耦合,如图1所示,该数据存储135包括相关的同步数据,或实际上,可能任何同步数据。相反,例如,同步数据可以保留在数据存储145 中,该数据存储145可以可通信地耦合到服务器计算设备140,如图1所示。在这样的示例中,服务器计算设备130,当接收到通信240时,可以向后端服务器计算设备160提供信息, 以允许在这样的计算设备上执行的后端定位器服务170标识关于同步数据的未来的通信将被定向到的更加适当的计算设备。如图2的系统200所示,当接收到可以被定向到服务器计算设备130没有访问权限的数据类型的通信240时,服务器计算设备130可以将通信250定向到在后端服务器计算设备160上执行的后端定位器服务170。通信250可以包括可以被后端定位器服务170 用来标识这样的请求被更加适当地定向到的服务器计算设备的信息。例如,如果数据被如此划分,以便一种类型的数据被存储在与一个服务器计算设备相关联的数据存储中,而不同类型的数据被存储在与不同的计算设备相关联的数据存储中,那么,通信250可以包括通信240所涉及的数据类型的标识,或数据的名称空间。可另选地,数据可以被如此划分, 以便一个用户的数据被存储在与一个服务器计算设备相关联的数据存储中,而另一个用户的数据可以被存储在与不同的服务器计算设备相关联的数据存储中。在这样的情况下,通信250可以包括试图访问数据的用户的标识。如下面所进一步描述的,后端定位器服务170 对数据在一个或多个数据存储之间的准确的划分是不可知的,只要给后端定位器服务提供了足以确定哪一个后端存储包括所请求的数据的相关信息。如前面所指出的,诸如后端定位器服务170之类的后端定位器服务,不必在诸如后端服务器计算设备160之类的单独的后端服务器计算设备上执行,而是可以在诸如服务器计算设备130,140和150之类的单个的服务器计算设备上执行。在这样的实施方式中, 通信250和255不必是在服务器计算设备130上执行的一个或多个进程之中的进程间或者甚至进程内通信。在如图2所示的系统200中,在经由通信250接收相关信息之后,后端定位器服务 170可以标识数据以及将向其定向对这样的数据的进一步的请求的服务器计算设备的位置。这样的信息可以包含在从后端服务器计算设备160到服务器计算设备130的通信255 中。然后,服务器计算设备130可以响应向客户机提供再一个服务文档的客户机计算设备 110,只是所提供的服务文档可以指定通过后端定位器服务170来标识的计算设备。在图 2的系统200所示出的所示示例中,已标识的服务器计算设备可以是服务器计算设备140。 然后,可以由客户机计算设备110将诸如包含在通信270中的请求之类的进一步的请求定向到服务器计算设备140,该服务器计算设备140可以可以访问相关数据,并经由响应通信 275,提供所请求的数据,如图所示。为提供更多细节,并返回到前面枚举的具体示例,通信240可以是,例如,客户机计算设备110对〃 www. som印lace, com/sync"资源标识符的选择。在此示例中,数据可以在服务器计算设备130、140以及150之间划分,以便服务器计算设备130可通信地耦合到包括联系人数据的数据存储135(如图1所示),而服务器计算设备140和150分别可通信地耦合到包括同步数据的数据存储145和155(也如图1所示)。此外,还可以如此划分同步数据,以便在数据存储145中维护了特定用户的同步数据,而在数据存储155中维护了其他用户的同步数据,如图1所示。在这样的示例中,当在来自客户机计算设备110的通信MO中接收到“www. someplace, com/sync”资源标识符时,服务器计算设备130可以经由通信250,提供随后的请求将被定向到同步数据的指示以及其同步数据将被请求的用户的标识。同步数据的标识是将所请求的数据的名称空间,以允许后端定位器服务170确定,如图1所示的数据存储 145以及155,可以是相关的,对用户的高质量标识可以允许后端定位器服务进一步缩减, 并确定,在本示例中,数据存储145可以包括相关数据。在跟着发生的响应沈5中,服务器计算设备130可以提供服务文档,该服务文档根据上文所描述的基于网络的应用程序编程接口,提供关于同步数据名称空间的更多细节。这样的信息可以是对名称空间通用的,如此,可以由服务器计算设备130来提供,无需引用服务器计算设备140。例如,同步数据名称空间可以由正在被同步的文件的标识、这样的文件的位置、在其上面正在同步这样的文件及其他同步信息的计算设备的位置构成。 如前所述,可以向客户机计算设备110提供更具体的资源标识符,以允许客户机计算设备随后选择这样的更具体的信息。例如,与响应265 —起提供的服务文档可包括以"■· someplace, com/sync/syncob jects “禾口〃 www. someplace, com/sync/devices “的形式存在的资源标识符。然而,由于服务器计算设备130可能已经接收到位置专用信息,诸如从后端定位器服务170,这样的信息可以包括在作为响应沈5的一部分所提供的服务文档中。在一个实施方式中,可以修改资源标识符以包括位置专用信息,诸如通过将这样的信息预先附加到资源标识符中。在这样的实施方式中,形式“www. somplace. com"的资源标识符可以是位置无关资源标识符,而形式“serVer_B. someplace, com"的资源标识符可以是位置相关资源标识符。如此,在作为响应沈5的一部分返回的服务文档中所提供的资源标识符可以是〃 server—B. someplace, com/ sync/syncob jects “禾口 “ server—B. someplace, com/ sync/devices"的形式。使用这样的位置相关资源标识符的诸如请求270之类的随后的请求,可以被定向到诸如服务器计算设备140之类的已标识的服务器计算设备,如图2的系统 200所示。可以看出,基于网络的应用程序编程接口可以被如此构建,以便初始请求被定向到诸如顶级域名之类的位置无关资源标识符,而随着随后的响应提供带有增多的特殊性级别的服务文档,随后的请求变得更加具体。另外,通过基于网络的应用程序编程接口展示的数据和资源本质上可以是分层的,以便具体的数据或资源被分组到多种类型或名称空间, 以便通过首先访问相关的类型或名称空间来获得对该数据或那些资源的访问。转向图3,其中所示出的流程图300示出了在作为在基于网络的应用程序编程接口的上下文内由这样的服务器计算设备所生成的响应的一部分来确定何时引用后端定位器服务时可以由服务器计算设备执行的一系列示例性步骤。如流程图300所示,当在步骤 310中接收客户机请求时,服务器计算设备可以首先在步骤320中确定该请求是位置相关请求还是位置无关请求。如前面所指出的,初始请求可能是位置无关的,如定向到顶级域的请求。实际上,在一个实施方式中,诸如可以在客户机计算设备上执行的客户机应用程序可能需要不高速缓存位置相关资源定位器,而是利用诸如定向到顶级域的资源定位器之类的位置无关资源来启动对基于网络的应用程序编程接口的每一次新的使用。
如果在步骤320中服务器计算设备确定从客户机计算设备接收到的请求是位置相关的,那么,这样的请求可能是使用基于网络的应用程序编程接口的现有的通信周期内的一系列请求和响应的结果。尽管如此,在可选实施方式中,在步骤330中,可以进行检查, 以验证在步骤310中接收到的位置相关请求事实上指定适当的位置。更具体而言,在步骤 330中,该检查可以验证客户机没有不适当地高速缓存位置相关资源定位器,并以不适当的方式简单地再用它。如果指定了适当的位置,那么,服务器计算设备已经被标识为对在步骤 310中接收到的请求作出响应的最适当的服务器计算设备,作为结果,在步骤340中,服务器计算设备可以对客户机的请求作出响应。然后,处理可以返回到步骤310,此时,可以接收来自客户机的随后的请求。然而,如果在步骤320中确定在步骤310中接收到的请求是位置无关的,那么,处理可以继续执行步骤350。类似地,如果在步骤320中确定在步骤310中接收到的请求是位置相关的,但是,在步骤330中确定指定了不适当的位置,那么,可以再一次继续执行步骤350。在步骤350中,确定服务器计算设备是否可以访问诸如在步骤310中接收到的请求之类的请求所涉及的必要数据。如果在步骤350中确定服务器计算设备可以访问必要的数据,则处理可以返回到步骤340,服务器计算设备可以对在步骤310中接收到的请求作出响应。然而,在步骤350中,如果确定服务器计算设备没有对必要的数据的访问权限,则服务器计算设备可以在步骤360中向后端定位器服务提供相关信息。如前面所指出的,在步骤360中提供给后端定位器服务的信息可以取决于跨可通信地耦合到不同的服务器计算设备的不同的数据存储划分数据的方式。可以使用后端定位器服务,不管所使用的划分的类型如何,只要给后端定位器服务提供了关于所使用的划分的信息。如此,可以根据数据类型,或数据的名称空间,根据数据所关联到的特定用户,其组合,或根据任何其他方案,来划分数据。如果例如数据是根据数据的类型或名称空间来划分的,那么,在步骤360中所提供的相关信息可以包括将在步骤310中接收到的请求定向到的数据的类型、或名称空间。 类似地,如果数据是根据数据所关联到的特定用户来划分的,则在步骤360中所提供的相关信息可以包括与在步骤310中接收到的请求相关联的用户的标识。在步骤370中,可以从后端定位器服务接收位置信息,该位置信息可以指定要向其定向未来的请求的适当的位置。然后,可以将这样的信息包括到在步骤380中所提供的响应中。例如,如上文所描述的,在一个实施方式中,资源标识符,如将被包括在作为响应在步骤380中所提供的服务文档中的资源标识符,可以被修改,以在它们中预先附加位置专用信息。可另选地,在步骤370中接收到的位置信息可以以别的方式在在步骤380中所提供的响应中被标识。如在步骤340的情况下,一旦提供了响应,则处理可以返回到步骤310, 此时,可以接收另一个客户机请求,并可以重复处理。上面的描述引用了由在一个或多个计算设备上执行的计算机可执行指令执行的动作。转向图4,示出了一个这样的示例性计算设备400。这样的示例性计算设备400可以是上文所描述的并且如图1所示的计算设备110、120、130、140、150或160中的任何一个, 或诸如计算设备之类的任何其他设备。图4的示例性计算设备400可包括但不限于,一个或多个中央处理单元(CPU) 420、 系统存储器430和将包括该系统存储器在内的各种系统组件耦合至处理单元420的系统总线421。系统总线421可以是若干类型的总线结构中的任一种,包括使用各种总线体系结构中的任一种的存储器总线或存储器控制器、外围总线,以及局部总线。计算设备400通常还包括能够包括可由计算设备400访问的任何可用介质的计算机可读介质,并且包括易失性和非易失性介质以及可移动和不可移动介质两者。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术来实现的介质。计算机存储介质包括但不限于,RAM、R0M、EEPR0M、闪存或其它存储器技术、 CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由计算设备400访问的任何其它介质。通信介质通常以诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任意信息传送介质。作为示例而非限制,通信介质包括有线介质,如有线网络或直接线连接,以及如声学、RF、红外及其他无线介质之类的无线介质。上述中任一组合也应包括在计算机可读介质的范围之内。系统存储器430包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM) 431和随机存取存储器(RAM) 432。基本输入/输出系统433 ¢10 包含有助于诸如启动时在计算设备400中元件之间传递信息的基本例程,它通常存储在ROM 431 中。RAM 432通常包含处理单元420可以立即访问和/或目前正在操作的数据和/或程序模块。作为示例而非限制,图4示出了操作系统434、其它程序模块435和程序数据436。 计算机系统400还可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。只作为示例,图4示出了读写不可移动、非易失性磁性介质的硬盘驱动器441。可以与示例性计算设备中一起使用的其他可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器 441通常通过诸如接口 440之类的不可移动存储器接口连接到系统总线421。上文所讨论的并且在图4中所示出的驱动器以及它们的相关联的计算机存储介质,为计算设备400提供了计算机可读的指令、数据结构、程序模块及其他数据的存储。例如,在图4中,硬盘驱动器441被示为存储了操作系统444、其他程序模块445,以及程序数据446。注意,这些组件可以与操作系统434、其它程序模块435和程序数据436相同,也可以与它们不同。操作系统444、其它程序模块445和程序数据446在这里被标注了不同的标号是为了说明至少它们是不同的副本。计算设备400可以使用对一个或多个远程计算机的逻辑连接在联网环境中工作。 为了说明简便起见,计算设备400在图4中被示为连接到最初在图1中所示出的网络180。 网络180不仅限于任何特定网络或联网协议。相反,图4所描绘的逻辑连接是一般网络连接471,其可以是局域网(LAN)、广域网(WAN)或其他网络。计算设备400通过网络接口或适配器471连接到通用网络连接470,该网络接口或适配器进而连接到系统总线421。在联网环境中,相对于计算设备400或其部分或外围设备所描绘的程序模块可被存储在通过一般网络连接471通信地耦合到计算设备400的一个或多个其他计算设备的存储器中。可以理解,所示的网络连接是示例性的,且可以使用在计算设备之间建立通信链路的其他手段。从上面的描述可以看出,提供了用于将客户机通信定向到适当的计算设备而不会产生重定向低效率的机制。鉴于此处所描述的主题的许多可能的方案,作为本发明,我们声明所有这样的实施方式都在下面的权利要求书以及又等效内容的范围和精神内。
权利要求
1.一种用于将请求定向到包括与对所述请求作出响应有关的资源的计算设备的系统 (100),所述系统(100)包括包括第一资源集的第一服务器计算设备;包括至少部分地与所述第一资源集不同的第二资源集的第二服务器计算设备;展示基于网络的应用程序编程接口的域,所述基于网络的应用程序编程接口用于通过利用所述基于网络的应用程序编程接口的逐渐更具体的请求来访问包括所述第一资源集和所述第二资源集的域资源集;以及第一后端定位器服务(170),其用于标识将接收涉及来自所述域资源集的特定资源的后续请求的所述第一服务器计算设备或所述第二服务器计算设备中的一个,,所述第一后端定位器(170)基于所述特定资源是位于所述第一资源集还是所述第二资源集中来执行所述标识。
2.如权利要求1所述的系统,其特征在于,包括第二后端定位器服务,其用于执行与所述第一后端定位器服务等效的功能,所述第一后端定位器服务在所述第一服务器计算设备上执行,所述第二后端定位器服务在所述第二服务器计算设备上执行。
3.如权利要求1所述的系统,其特征在于,所述资源包括存储的数据。
4.计算设备或所述第二服务器计算设备的标识。
5.如权利要求1所述的系统,其特征在于,如果所述第一服务器计算设备接收到涉及所述第二资源集的位置无关请求,则所述第一服务器计算设备调用所述第一后端定位器服务,并且如果所述第二服务器计算设备接收到涉及所述第一资源集的位置无关请求,则所述第二服务器计算设备调用所述第一后端定位器服务。
6.如权利要求1所述的系统,其特征在于,所述第一后端定位器服务基于所述特定资源的名称空间来确定所述特定资源是位于所述第一资源集中还是所述第二资源集中。
7.如权利要求1所述的系统,其特征在于,所述第一后端定位器服务基于与所述特定资源相关联的用户来确定所述特定资源是位于所述第一资源集中还是所述第二资源集中。
8.一种将请求定向到包括与对所述请求作出响应有关的资源的计算设备的方法,所述方法包括下列步骤接收对资源的逐渐更具体的请求,所述逐渐更具体的请求是根据基于网络的应用程序编程接口的,所述逐渐更具体的请求是位置无关的;将信息提供给后端定位器服务(170)以允许所述后端定位器服务(170)标识包括与对所述逐渐更具体的请求作出响应有关的资源的计算设备;以及用包括位置相关资源标识符的服务文档来响应对资源的所述逐渐更具体的请求中的至少一个,所述位置相关资源标识符指定由所述后端定位器服务(170)标识的计算设备。
9.如权利要求8所述的方法,其特征在于,所述资源包括存储的数据。
10.如权利要求8所述的方法,其特征在于,所述位置相关资源标识符包括预先附加到位置无关资源标识符的位置信息。
11.如权利要求8所述的方法,其特征在于,当对资源的所述逐渐更具体的请求中的最近请求涉及只可从不同的计算设备获得的资源时,将所述信息提供给后端定位器服务。
12.如权利要求8所述的方法,其特征在于,提供给所述后端定位器服务的所述信息包括所述逐渐更具体的请求所涉及的资源的名称空间。
13.如权利要求8所述的方法,其特征在于,提供给所述后端定位器服务的所述信息包括对所述逐渐更具体的请求涉及其资源的用户的标识。
14.一种或多种具有用于执行如权利要求8所述的步骤的计算机可执行指令的计算机可读介质。
全文摘要
可以使用后端定位器服务来从域中的多个计算设备中标识特定计算设备,该特定计算设备是处理对数据或其他资源的特定类型的请求最适当的计算设备。由域主存的数据或资源可以在多个计算设备之间划分。域可以展示基于网络的应用程序编程接口,其中客户机计算设备的连续请求就所请求的数据或资源而言变得更加具体。来自域中的计算设备的响应可以在某一时间点由后端定位器服务通知,并可以包括位置专用资源标识符。客户机计算设备可以使用这样的位置专用资源标识符来将进一步的通信定向到适当的特定计算设备,而不会产生重定向低效率。
文档编号H04L29/08GK102299954SQ201110184819
公开日2011年12月28日 申请日期2011年6月23日 优先权日2010年6月24日
发明者A·G·班达卡, D·舒克拉, F·穆罕默德, K·拉曼, N·古普塔, R·E·安德斯 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1