分布式网络坐标系统的制作方法

文档序号:7802555阅读:221来源:国知局
专利名称:分布式网络坐标系统的制作方法
分布式网络坐标系统
背景技术
在网络上用户体验的质量可能受到网络上状况的很大影响,所述状况诸如是在用户设备与一个或多个服务器之间的等待时间(latency)和可得到的带宽。例如,在高度交互的客户机-服务器应用中,在客户设备处的用户可以对来自服务器的内容作出重复的请求。即使在客户设备与服务器之间有足够的带宽来允许相对快速地传送大的文件,长的等待时间也会促成令人失望的用户体验,其中服务器没有表现为对客户设备进行响应。相反, 在牵涉到大的数据传送但相对较少的客户机-服务器交互的客户机-服务器应用中,短的等待时间并不能克服带宽不足以提供对于数据的可接受传送时间的缺点。在许多情形下,给定的在线服务可以与能够提供在线服务给客户设备的许多服务器相关联。解决以上略述的所考虑问题的一种方式是把每个客户设备指引到能够给用户提供高服务质量的优选的服务器。然而,用于将客户设备指引到服务器的现有技术常常导致客户设备与对于提供优质的用户体验而言非理想的服务器通信。而且,现有的技术常常使得某些服务器过载,而同时让其它服务器相对地利用不足。作为例子,客户设备常常通过提供域名到域名服务(“DNS”)服务器而请求访问在线服务。作为响应,DNS服务器将给客户设备提供位置可能被设置为在地理上临近DNS服务器的一个或多个服务器的列表。因此,DNS服务器的地理位置常常是客户设备将使用哪个服务器来访问web服务的决定因素。然而,客户设备可能位于相对远离DNS服务器的位置。而且,网络等待时间和带宽不总是直接与地理临近性相关,在某些情形下,在物理距离上相对远离客户设备的服务器可能能够比物理上更接近于客户设备的服务器提供更高的服务质量。

发明内容
本文档涉及计算机网络。一种技术存储网络中第一设备的初始网络位置,该网络还包括第二设备。所述技术可包括监视与第二设备的现有应用通信有关的一个或多个网络性能度量(metric)。所述技术还可包括根据初始网络位置和网络性能度量来确定第一设备的更新的网络位置。另一种实现被显现为包括存储设备和操纵构件(manipulation component)的系统。存储设备可被配置成存储网络中内容服务器或客户设备的第一网络位置。操纵构件可被配置成将客户设备或内容服务器的第一网络位置操纵到第二网络位置。另一种实现被显现为确定对于设备的第一网络坐标的技术。第一网络坐标可以标识网络中设备的各自的第一网络位置。所述技术还可以包括确定对于设备的第二网络坐标。第二网络坐标可以标识网络中设备的各自的第二网络位置。所述技术还可以包括为设备计算第一网络坐标与第二网络坐标之间的差别。所述差别可以反映一个个设备在网络内的移动。所述技术还可以包括根据差别来识别所述一个个设备的子集以用于进一步处理。以上列出的例子打算提供快速参考以便帮助读者,以及不打算规定这里描述的构思的范围。


附图举例说明了在本文档中传达的创造性构思的实现。通过参考结合附图作出的以下说明可以更容易理解所举例说明的实现。在各个附图上同样的参考数字在任何可行的地方被使用来指示同样的单元。而且,每个参考数字的最左边数字传达了在参考数字被首次引入处的图和相关联的讨论。图1、5和9显示按照本构思的某些实现的网络系统的例子。图2A、2B和2C显示按照本构思的某些实现的、某些设备的构件的例子。图3A JB和7显示按照本构思的某些实现的、由某些设备存储的数据结构的例子。图4、6、8和10显示可以按照本构思的某些实现来完成的示范性方法的流程图。
具体实施例方式本文档涉及到分布式坐标系统,其尤其可以在客户机/服务器处理模型中被利用。更具体地,这里公开的实施例可以为了各种目的而有利地使用某些网络设备的网络位置。在总地相对于图1、2A、2B、2C、3A、;3B和4所举例说明的第一场景中,客户设备可以确定在网络系统中它的位置,例如网络坐标。网络系统可包括几个地标(landmark)服务器,所述地标服务器用作为“信标”,以使得客户设备能够自定位,例如确定它自己的坐标。 网络系统还可以包括几个内容服务器。客户设备可以通过网络系统与内容服务器通信,并根据这些通信来更新它自己的位置。在总地相对于图5、6和7所举例说明的第二种场景中,引入了经由多个接口的网络访问。客户设备可以通过使用第一(例如,有线)接口而与地标和/或内容服务器通信,以便确定在网络系统上它自己的位置。客户设备还可以通过使用第二(例如,无线)接口进行通信,以便确定在网络系统上的另一个位置。因此,客户设备的位置可以根据哪个接口正被使用而被设置在网络系统内的不同坐标处。客户设备可以根据对于各个接口的它的坐标, 来为访问特定的web服务而选择第一或第二网络接口。在总地相对于图8所举例说明的第三种场景中,公开了网络位置的操纵。例如,月艮务器可以具有在网络系统中的第一位置。服务器可以将该第一位置操纵到网络系统内的第二位置,这例如是通过响应于带有被操纵的第二位置的客户请求来进行。在某些实现中,月艮务器可以确定发出请求的客户设备应当访问另一个服务器。服务器可以操纵它自己的位置以便更加远离发出请求的客户设备,这样使得客户将访问另外的服务器。在总地相对于图9和10所举例说明的第四种场景中,公开了示范性诊断技术。例如,随着时间的推移,某些设备可以在网络坐标系统内移动。设备的移动可被使用来识别在网络上诸如拥塞的路由器那样的特定网络状况。第一种场景
考虑图1,图上显示网络系统100的例子。网络系统100可包括能够通过网络系统100 进行通信的多个设备。例如,网络系统100可包括地标服务器110(1)、11(K2)、110(3)和 11(Κ4),内容服务器120(1)、120(2)和130,客户设备140和DNS服务器150。为了方便起见,网络系统100的一个个构件通过包括括号中的参考数字而被标识,例如,地标服务器110(1)。当全体地引用构件时括号中的参考数字将省略,例如,“地标服务器110”通常可以指地标服务器110(1),(2), (3)和/或⑷中的一个或多个。当在这里使用时,术语服务器(例如,地标服务器或内容服务器)、机器、计算机和设备(例如,客户设备)可被理解为是指可以发送或接收数据的任何设备。例如,这些术语可被理解为是指以下的任一项物理服务器、在服务器上运行的虚拟机(例如,使用虚拟化技术)、运行单个操作系统的计算设备、运行一个以上的操作系统的计算设备、运行不同的操作系统(例如,Microsoft Windows , Linux , FreeBSD )的计算设备、不同于服务器的计算设备(例如,膝上型计算机、可寻址的电源)、或计算设备的一部分(例如,附连到网络的 (network attached)盘、附连到网络的存储器、存储子系统、存储区域网络(SAN)、图形处理单元、数值加速器(numerical accelerator)、或量子计算设备)。当在这里使用时,术语网络和网络系统可被理解为是指使得能在实体之间进行通信的一个或多个通信信道。例如,术语网络可包括一个或多个有线或无线通信信道,其被使用来实施一个或多个局域网(“LAN”)、广域网(“WAN”)、互联网、虚拟专用网(“VPN”)、内联网、外联网、或它们的组合。示范性无线网可以实施3G和4G移动通信、Wi-Fi LAN和蓝牙连接。示范性有线网尤其可包括拨号、电缆、数字用户线(DSL)、综合业务数字网(ISDN)和以太网技术。网络系统可包括诸如路由器、集线器和交换机以及通过网络系统进行通信的端点(例如,客户机和服务器)那样的设备。如图1所示,网络系统100可包括一个或多个地标服务器110。图1可以被概念化为二维网络坐标系统的表示,其中每条点线用10个单位的坐标空间间隔开。坐标系统可包括水平取向的X轴180和垂直取向的y轴190。地标服务器110、内容服务器120和130、 客户设备140和DNS服务器150在图1上被图示在大致它们各自的网络坐标处。例如,在 (0,0)的地标服务器110(1)被显示在图1的左下角。同样地,地标服务器110C3)被显示在图1的右上角,在00,40)。正如在下面更详细地讨论的,图1描绘了在两个不同的坐标处,例如,在(10,30)和00,30)处的客户设备140,以反映客户设备140在坐标系统内的移动。一般地说,地标服务器110可以动作以通过网络系统100建立网络坐标系统。例如,地标服务器110可以各自具有在网络系统100内的对应的全局网络坐标组。在一些实施例中,对于每个地标服务器110,网络坐标是静止的,且不改变。而且,为了讨论起见,每个地标服务器110的网络坐标在以下的讨论中由始至终保持一致。其中对于给定地标服务器的坐标可以改变的示范性环境将在下面详细说明。内容服务器120和130以及客户设备140可被配置成确定它们自己在网络坐标系统内相对于地标服务器110的位置。例如,内容服务器120和130以及客户设备140可以测量对于与地标服务器110中的一个或多个通信的往返行程时间(等待时间)。根据所测量的等待时间,内容服务器120和130以及客户设备140可以执行计算,以确定它们各自的网络坐标。例如,所述计算可以实施一个或多个到达时间差(TDOA)或三角测量算法。一般地说,客户设备140也可以通过网络系统100进行通信以访问一个或多个web 服务。例如,内容服务器120可以提供对第一 web服务的访问,诸如在比如“www. 123news. com"的域名下可访问的新闻服务。同样地,内容服务器130可以提供对第二 web服务的访问,诸如在比如“www. xyzsearch. com”那样的域名下的在线搜索引擎。
正如下面更详细地讨论的,客户设备140例如可以初始地通过与地标服务器110 通信而确定它的本地网络坐标。客户设备140然后可以查询内容服务器130,以通过使用由内容服务器130提供的搜索引擎而搜索新闻服务,且从搜索引擎得到域名“www. 123news. com”作为查询结果。客户设备140可以根据从客户设备140发送查询给内容服务器130时直至它接收到来自内容服务器130的响应的往返行程时间,而更新它的本地网络坐标。根据更新的网络坐标,客户设备140然后可以确定是访问内容服务器120(1)处还是120(2) 处的 “www. 123news. com”。
应当指出,地标服务器110、内容服务器120和130以及客户设备140在这里是相对于由每个机器实施的功能性被描述的。然而,这里描述的某个功能性可以在各种机器之间被组合。例如,在一些实施例中,单个服务器可以例如通过用作为具有已知的、可能固定的坐标的信标和也提供对web服务的访问而既起地标服务器的作用又起内容服务器的作用。同样地,内容服务器可以通过从另一个机器访问web服务而用作为客户设备。而且,这里公开的对于每个机器的各种处理可被跨多个机器地分布。例如,地标服务器110和内容服务器120和130可被实施为包括几个不同机器的服务器场地或机架,所述机器共同地操作来提供地标服务器和/或内容服务器功能性。
图I还举例说明了示范的域名服务(“DNS”)服务器150。一般地说,客户设备140 可以通过访问DNS服务器150而得到对于给定域名的互联网协议(“IP”)地址。例如,客户设备140可以发送域名“www. xyzsearch. com”到DNS服务器150,并作为响应,接收对于内容服务器130的IP地址“IP1”。同样地,客户设备140可以发送域名“www. 123news. com” 到DNS服务器150,并且接收对于内容服务器120(1)的IP地址“IP2”和对于内容服务器 120(2)的 “IP3”。
正如下面更详细地讨论的,对于给定机器的网络坐标不一定必须反映地理位置。 而是,对于给定机器的网络坐标标识在网络坐标系统中该机器的位置,这是网络距离的虚拟表示。正如也是在下面更详细地讨论的,网络坐标可以通过使用诸如等待时间或带宽那样的网络性能度量而被定义。
使用等待时间作为例子,网络坐标系统上每个单位可以对应于I毫秒的时间。因此,从地标服务器110(1)发送到地标服务器110(4)的分组在40毫秒的时间内从(0,0) 行进到(40,O)。而且,对于这样的分组的往返行程时间将花费80毫秒,来例如在X轴上行进40个单位回到地标服务器110(1)。然而,应当指出,通过使用诸如TDOA或维瓦尔第 (Vivaldi)算法那样的某些技术得到的坐标不一定必须在时间单位与网络坐标单位之间具有固定的映射。不过,某些描述的实现将使用在时间与网络坐标单位之间固定的对应以便于讨论,除非另外指出的。
而且,为了简洁和清晰起见,网络坐标系统的最初的讨论将作出某些简化的假设。 例如,用于分组从地标服务器110(1)到地标服务器110(4)的往返行程时间通常可包括某些延迟,用于由地标服务器110(4)处理分组。除非另外指示,这样的处理将被假设为瞬时的,以简化网络坐标系统的讨论,但可在其它实施例中被考虑。
而且,为了清晰起见,讨论将集中在二维网络坐标系统。然而,在一些实施例中,网络坐标系统可包括一维、三维、四维或更多数量的维。然而,实验结果间接表明在给定这样的实现的相对复杂性下,为网络坐标系统使用多于四维可导致在接近真实网络状况下的收益递减(diminishing returns)。而且,虽然为了简单起见,所公开的实施例利用了笛卡尔平面,但实施例可以在非笛卡尔或非欧几里德空间中被实施。例如,可以使用球、椭圆、极、 抛物线或其它坐标系统。
图2A、2B和2C—般性地分别举例说明了地标服务器110、内容服务器120和130、以及客户设备140的示范性结构。
图2A举例说明了地标服务器110的示范性结构。地标服务器110可包括中央处理单元(“CPU”)211,其可操作地连接到存储器212。例如,CPU 211可以是精简指令集计算 (RISC)或复杂指令集计算(CISC)微处理器,其经由总线被连接到存储器212。存储器212 可以是诸如随机存取存储器(RAM)那样的易失性存储装置或诸如闪速存储器那样的非易失性存储器。虽然在图2A上未示出,地标服务器110也可以包括各种输入/输出设备,例如, 键盘、鼠标、显示器、打印机等等。而且,地标服务器110可包括一个或多个非易失性存储装置,诸如硬盘驱动器(HDD)、光学(压密盘/数字视频盘)驱动器、磁带驱动器等等。一般地说,由地标服务器110处理的任何数据可被存储在存储器212中,也可以按需要被提交到非易失性存储装置。
地标服务器110的存储器212可包括实施这里描述的某种处理的各种构件。例如, 存储器212可包括信标构件213、操纵构件214、DNS查找客户机215、DNS更新客户机216 和诊断构件217。每个构件213-217可包括被存储在存储器212中的指令,所述指令可以由 CPU 211读出和执行。而且,构件213-217还可以被存储在非易失性存储装置中,以及按需要被检索到存储器212中,以便实施这里描述的处理。
信标构件213通常可以操作来为客户设备140和内容服务器120和130提供“信标”,以便在网络系统100上自定位。例如,信标构件213可以通过网络系统100接收信标请求,和提供信标响应给发出请求的机器。客户设备140和内容服务器120和130可以通过以下方式进行自定位,即根据在发送它们的信标请求与接收信标响应之间的时间差,即往返行程时间或等待时间,而执行某些计算。
操纵构件214通常可以操作来操纵客户设备140和内容服务器120和130在网络系统100上的位置。例如,操纵构件214可以使得客户设备140自定位到网络系统100内的被操纵的位置。通过这样做,地标服务器110可以使得客户设备140表现为更靠近或更远离特定的内容服务器120,正如下面更详细地讨论的。
DNS查找客户机215可以被地标服务器110使用来为内容服务器120和130查找 DNS条目,例如,IP地址。DNS更新客户机216可以被地标服务器110使用来更新用于地标服务器110的DNS条目。诊断构件217可以被地标服务器110使用来诊断在网络系统100 上的某些状况。例如,通过使用诊断构件217可以识别拥塞的或出故障的路由器。
图2B举例说明了内容服务器120和130的示范性结构。内容服务器120和130通常可包括与以上相对于地标服务器110讨论的类似的硬件构件。例如,内容服务器120和 130可包括例如通过总线而被连接到存储器222的CPU 221。存储器222可包括CPU-可执行的构件 223、224、225、226 和 227。
Web服务构件223可以通过网络系统100为客户设备140提供web服务。例如, web服务构件223可以代表在内容服务器120(1)和120(2)上的新闻服务“www. 123news. com”,以及可以代表在内容服务器130上的搜索引擎“www. abcsearch. com”。
自定位构件224可以为内容服务器120和130执行处理以便在网络系统100上自定位,这例如是通过计算它们的位置坐标而进行的。例如,自定位构件224可以通过网络系统100而与在地标服务器110的一个或多个上的信标构件213通信,并根据通信的往返行程等待时间而得出本地网络坐标。自定位构件224还可以相对于其它内容服务器来更新它的本地网络坐标,例如,内容服务器120(1)的自定位构件224可以根据与内容服务器 120(2)或130通信的等待时间,更新它的本地坐标。
自定位构件224可以把涉及自定位的数据存储在坐标表格225中。DNS更新客户机226可以执行某些操作来在DNS服务器150上填充用于内容服务器120和130的DNS条目。例如,DNS更新客户机226可以提供IP地址和网络坐标给DNS服务器150,然后DNS服务器150可以通过各种DNS查找客户机存储DNS条目来用于以后的检索。
图2C举例说明了客户设备140的示范性结构。客户设备140通常可包括与以上相对于地标服务器110和内容服务器120和130讨论的类似的硬件构件。例如,客户设备 140可包括例如通过总线被连接到存储器242的CPU 241。存储器242可包括CPU可执行的构件 243、244、245 和 246。
web浏览器243可以经由web服务构件223访问从内容服务器120和130可得到的web服务,并且把从内容服务器得到的内容显示给客户设备140的用户。例如,web浏览器243可以从内容服务器120(1)或120(2)得到新闻网页,和可以从内容服务器130得到搜索门户页面。
自定位构件244可以执行与以上相对于内容服务器120/130的自定位构件224所讨论的类似的操作。同样地,坐标表格245可以存储与以上相对于坐标表格225所讨论的类似的数据。DNS查找客户机246可以执行与以上相对于地标服务器110的DNS查找客户机215所讨论的类似的操作。
图3A和3B表示了可以由客户设备140上的自定位构件244维护的示范性坐标表格245。特别地,图3A和3B表示了在两个不同的时间点处被存储在客户设备140上的坐标表格245,正如下面更详细地讨论的。一般地说,图3B表示了相对于图3A所示的坐标表格 245的版本的、坐标表格245的更新的版本。
如图3A和3B所示,坐标表格245可包括设备列301,它标识网络系统100上的各种设备,例如,地标服务器110和内容服务器120和130。RTT列302可以标识从客户设备 140观察到的、对于与设备列301中标识的设备进行通信的、以毫秒计的往返行程等待时间。例如,对于客户设备140而言,用于与地标服务器110(2)进行通信的往返行程时间可以是28. 28毫秒。坐标列303可以为设备列301中的每个设备标识网络坐标中的位置。应当指出,术语“本地”被使用来标识存储着坐标表格245的设备。因此,由于图3A和3B表示了在客户设备140上的坐标表格245,所以为了清晰起见,在设备列301中使用了术语“本地”。虽然客户设备140通常为每个设备保留网络坐标直到它们被更新,但在RTT列302中的往返行程时间一旦被使用来计算本地坐标,就可以在存储器中被删除或被改写。
图4举例说明了示范性方法400。正如下面讨论的,方法400例如可以通过客户设备140的自定位构件244确定在网络坐标系统上客户设备140的本地坐标而被实施。通过使用方法400,客户设备140还可以访问诸如与“www. xyzsearch. com”相关联的在线搜索引擎和与“www. 123news. com”相关联的新闻服务那样的web服务。为了讨论起见,图I所示的网络坐标系统被假设为完全基于在各种机器之间的等待时间测量。使用诸如带宽那样的其它网络性能度量来建立网络坐标系统的实施例将在后面讨论。
方法400在块401开始,该块牵涉到与地标服务器通信。在本例的上下文中,客户设备140可以与地标服务器110中的一个或多个通信。客户设备140可以通过网络系统 100在一个或多个分组中将位置请求发送到例如地标服务器110(2),(3)和(4)。地标服务器110(2),(3)和⑷可以用信标响应来响应位置请求。
接着,块402牵涉到识别网络性能度量。在本例的上下文中,客户设备140可以识别与位置请求和信标响应相关联的网络性能度量。例如,客户设备140可以从每个地标服务器确定从位置请求的发送到信标响应的接收的往返行程时间。客户设备140还可以把这些值记录在坐标表格245中,如图3A所示。例如,对于地标服务器110(2)的往返行程时间是28. 28毫秒,对于地标服务器110(3)是63. 24毫秒,以及对于地标服务器110 (4)是84. 84 毫秒。
接着,块403牵涉到确定初始位置。在本例的上下文中,客户设备140可以确定初始网络位置,例如,定位在网络系统100上的客户设备140的网络坐标组。例如,客户设备 140可以确定初始的一组本地坐标(10,30),正如图3A所示的。应当指出,客户设备140不一定必须与所有的地标服务器110通信,以标识这个初始的本地坐标组。
然而,在一些实施例中,客户设备140优选地当定位在特定的坐标系统内时与附加的地标服务器通信。在某种程度上,客户设备140可以通过与附加的地标服务器通信而减小收敛到坐标组上的时间量。地标服务器的最佳数目可以取决于内容服务器的数目、坐标维数、坐标空间的特性和诸如往返行程时间的变化性那样的网络状况。例如,附加的地标服务器可能是在具有附加坐标维数的实施例中想要的,以便给客户设备140提供以在每个维上不同的位置处的信标。使用附加的地标服务器还可以减小在利用特定地标服务器的等待时间测量中的任何不精确性的影响。最佳化技术也可以被应用到速度收敛和减小测量误差。
接着,块404牵涉到与内容服务器通信。在本例的上下文中,客户设备140可以与内容服务器130通信。例如,用户可以在web浏览器243中输入字符串“www. xyzsearch. com”。客户设备140然后可以从DNS服务器150得到用于内容服务器130的IP地址,例如 IPl0客户设备140然后可以发送请求到内容服务器130,例如,包括搜索词“新闻”。内容服务器130可以用诸如用于“www. 123news. com”的域名那样的用户数据来响应,用户随后可以使用该用户数据来访问从内容服务器120(1)和120(2)可得到的新闻服务。
接着,块405牵涉到监视网络性能度量。在本例的上下文中,客户设备140可以监视关联于与内容服务器130的通信的某些网络性能度量。例如,客户设备140可以确定用于与内容服务器130进行通信的往返行程时间(例如,等待时间)是20毫秒。如图3B所示, 客户设备140可以把这个值加到坐标表格245。
接着,块406牵涉到确定更新的位置。在本例的上下文中,客户设备140可以根据对于与内容服务器130进行通信的等待时间,而更新它的位置。例如,客户设备140可以确定根据在(30,30)处的内容服务器130的位置和20毫秒的往返行程时间,客户设备140 在网络坐标系统中离开内容服务器130 10个单位。而且,因为内容服务器130和客户设备140在y方向上具有完全相同的坐标(例如,30),所以客户设备140的所有移动可以是在X方向上。因此,客户设备140可以确定它的初始X坐标(10)需要被更新到(20),例如, 离开内容服务器130 10个单位。如图3B所示,客户设备140然后可以把它的更新的位置 (20,30)记录在坐标表格245。应当指出,图I通过使用在位置(20,30)处划上阴影的图标而举例说明了对于客户设备140的更新的位置。
接着,块407牵涉到根据更新的位置选择内容服务器。在本例的上下文中,客户设备140可以通过使用更新的网络坐标而选择内容服务器用于访问“www. 123news. com”。例如,客户设备140可以从DNS服务器150请求“www. 123news. com”的DNS解析。DNS服务器 150可以用分别对于内容服务器120(1)和120(2)的IP地址和网络坐标进行响应。例如, DNS服务器150可以提供对于内容服务器120(1)的IP地址IP2和网络坐标(0,30),以及对于内容服务器120(2)的IP地址IP3和网络坐标(30,30)。
客户设备140然后可以分别根据它的更新的位置和内容服务器120(1)与120⑵ 的位置,选择内容服务器用于访问新闻服务。例如,客户设备140可以选择具有最短的网络距离的内容服务器。因此,因为内容服务器120(2)位于离开5个单位的(25,30)处,而内容服务器120(1)位于离开20个单位的(0,30)处,所以客户设备140可以选择内容服务器 120(2)。
应当指出,在以上讨论的例子中,客户设备140在更新它的位置之前,根据与内容服务器130的通信,会选择内容服务器120(1)。这是因为在(10,30)处的客户设备140的初始位置,相比于内容服务器120(2)(例如,15个网络单位),更接近于内容服务器120(1) (例如,10个网络单位)。
而且,应当指出,客户设备140的更新的网络位置可以反映客户设备140的连接性的各种改变。例如,如果客户设备140是诸如蜂窝电话、PDA、或膝上型计算机那样的移动设备,则可以至少部分地通过把客户设备140移到新的物理位置,而造成客户设备140在网络坐标系统内的移动。然而,即使客户设备140是静止的,例如台式计算机或服务器,客户设备140仍旧可能在网络坐标系统内移动。这种移动可能是由在网络系统100上可得到的连接性的改变而造成的。
作为例子,被客户设备140使用来与位于“左面”或在负X方向上的设备通信的路由器可能出故障或变为拥塞的。这可以造成对于客户设备140在负X方向上的通信的增加的等待时间,甚至是在没有客户设备140的任何物理移动的情况下。因此,鉴于对于与内容服务器120(1)进行通信的增加的等待时间的可能性,对于客户设备140而言,访问内容服务器120(2)处而不是内容服务器120(1)处的“www. 123news. com”可以是有利的。
还应当指出,在以上的例子中,客户设备140成功地能够更新它的位置,而无需使用专用的探测业务量来发现它的更新的位置。更确切地说,网络业务量被使用来从内容服务器130得到用户数据,诸如网页。涉及这个现有的应用业务量的网络性能度量被使用来更新对于客户设备140的位置。这是有利的,因为专用的探测业务量可以招致相当大的开销花费。例如,专用网络探测可以牵涉到在客户设备140和内容服务器120(1)、120⑵和 130中的一个或多个内容服务器上的处理器和存储器利用。而且,专用网络探测将导致网络系统100上专用于载送探测通信的业务量。与此相反,客户设备140能够利用与访问搜索引擎“www. abcsearch. com”相关联的处理器和存储器利用以及网络业务量来更新它的位置。
算法考虑在以上的讨论中,作出某些简化假设,以便于讨论某些实施例。然而,这里公开的实施例是与在分布式网络坐标系统中使用的各种算法兼容的,正如下面讨论的。
例如,网络坐标系统的单位在上面是用以毫秒计的等待时间定义的,例如,I个单位等于I毫秒的单向行程或2毫秒的往返行程时间。然而,在一些实施例中,例如通过使用 TDOA技术,可以使用等待时间的相对差值,而不是绝对时间值来确定网络坐标。
作为例子,考虑设备(未示出)位于坐标(20,20)以及与每个地标服务器110通信以建立初始位置。这样的设备距离每个地标服务器是等距的,大约为网络坐标系统上的 28. 28单位。因此,通过使用I毫秒到I个网络坐标单位的固定的映射,设备仅仅在用于与每个地标服务器110通信的往返行程时间大约为28. 28X2=56. 56毫秒的情况下才位于 (20,20)。
然而,方法400也可以通过使用到达时间差(TDOA)方法而被实施。通过使用这样的方法,设备可以改而在假定设备与每个地标服务器之间的等待时间等同的情况下位于 (20,20),而不管对于每个地标服务器的、以秒计的实际的等待时间。因此,通过使用TDOA 方法,在用于与地标服务器通信的等待时间之间没有任何差别便指示了 设备是距离每个地标服务器等距的。同样地,诸如以上一特别地相对于步骤405和406-讨论的那些的位置更新,也可以通过使用TDOA技术,例如与内容服务器130的通信而被实施。
而且,这里公开的实施例可以与诸如维瓦尔第的算法那样的分布式坐标算法兼容。在这样的实施例中,客户设备140可以不断地调节它的本地坐标,以使得相对于到网络系统100上其它设备的测量的往返行程时间的误差最小化。在另外的实施例中,纬度和经度或其它地理位置可被使用来自举(bootstrap)对于客户设备140的初始的网络坐标组。 在这样的实施例中,测量的往返行程时间可被使用来改进初始的该组坐标,正如以上讨论的。替换地,初始位置可以如以上讨论的那样在方法400的块403,即,相对于地标服务器 110被确定。使用对于地标服务器110的固定的或全局的坐标,可以加速这样的算法的收敛时间。
另外,应当指出,分布式坐标算法可以使用一个以上的往返行程测量来计算坐标组。例如,方法400的块401和404可包括分别与地标服务器110和内容服务器130的多个通信。块402和405可包括往返行程测量的统计处理,诸如计算在客户设备140与地标服务器110和内容服务器130之间的往返行程时间的指数移动平均。在这样的实施例中, 可以根据平均等待时间,而不是根据单次测量,来计算坐标。在另外的实施例中,最小的或中值的往返行程时间可以结合或替代平均时间被使用。
而且,分布式坐标算法可以引入对于每个往返行程测量的可信度和/或误差的概念。应当指出,在方法400的块406,客户设备140根据与具有20晕秒的往返行程时间的内容服务器130的单次通信,在网络坐标系统中移动全部的10个单位。一般地说,可能有用的是例如取决于与对于内容服务器130的往返行程时间和/或坐标相关联的可信度值或分数,而使位置更新小于所述全部的10个单位。
另外,客户设备140可以根据与地标服务器110和内容服务器120/130的另外的通信,不断更新它在网络系统100内的位置。例如,客户设备140可以在接收到来自内容服务器120(2)的新闻网页之后更新它的坐标。内容服务器120/130还可以以与客户设备140同样的方式不断更新它们的坐标。
还应当指出,本发明的实施例可以无需使用地标服务器110而被实施。许多分布式坐标算法不需要使用具有固定位置的设备。不过,地标服务器110可以服务于几个有用的目的。首先,地标服务器110可以提供一致的参考点,这对于其它设备在网络系统100上的自定位是有用的。而且,倘若有足够数目的地标服务器110是可得到的,则可以减小到坐标组的收敛时间。
得到坐标正如以上讨论的,客户设备140可以使用地标服务器110和内容服务器130的坐标来更新它的本地坐标。客户设备140可以通过使用如下面讨论的不同的技术而得到对于地标服务器110和内容服务器130的坐标。
在一些实施例中,对于地标服务器110的坐标可以已知是永久的或对于某个或许预定的时间段是固定的。例如,地标服务器110的坐标可以独立于涉及到地标服务器的连接性的网络性能和度量的改变,而对于预定的时间段保持为恒定的值。因此,可能可行的是让客户设备140用对于每个地标服务器的已知网络坐标预先配置。在其它实施例中,客户设备140可以通过用信标请求来请求坐标而得到对于每个地标服务器的坐标。因为对于某个时间段,坐标可以保持为恒定,所以客户设备140不一定必须不断地更新对于每个地标服务器的网络坐标。
然而,正如也讨论的,可能希望周期地更新地标服务器110的坐标。例如,如果在网络系统100上的连接链路在网络坐标系统的给定区域内被去除或被限制,则可以预期 由于这种对于网络系统100的物理改变的结果,一个或多个地标服务器可能经历增加的等待时间。在这样的环境下,可能希望给受到影响的地标服务器赋予新的坐标,以便把它们 “移动”远离客户设备和内容服务器,这样,所述客户设备和内容服务器将不再能够使用被去除的连接链路。同样地,如果通信链路被添加或它的容量被扩展,则可能希望给受到影响的地标服务器赋予新的坐标,以便把它们“移动”得更靠近客户设备和内容服务器,这样,所述客户设备和内容服务器将能够利用添加/扩展的链路。在再另外的实施例中,地标服务器110可以通过使用诸如方法400那样的技术而周期地自定位。在这样的实施例中,地标服务器110可以配备有类似于自定位构件224和244那样的自定位构件。
在其中地标服务器110接收更新的坐标的情形下,可以使用几种方法来把坐标提供给内容服务器120/130和客户设备140。例如,当新的坐标被赋予时,地标服务器110可以把新的坐标“推送”到网络系统100上的每个设备。替换地,地标服务器110可以等待来自网络系统100上的设备的下一个信标请求,并用新赋予的坐标进行响应。
而且,地标服务器110还可以与在DNS服务器150上的域名和对应的DNS条目相关联。例如,在地标服务器110上的DNS更新客户机216可以把对于地标服务器的坐标的拷贝保留在DNS服务器150上的文本(txt)记录中。DNS更新客户机216还可以按想要的那样更新txt记录,以便反映新赋予的坐标。客户设备140和内容服务器120/130可被配置成除了地址记录以外还请求DNS txt记录,以便得到对于地标服务器的坐标。客户设备 140可以使用DNS查找客户机246用于这些目的。在一些实施例中,内容服务器120/130也可以被配置以类似于DNS查找客户机246那样的DNS查找客户机。
内容服务器120/130可以使用如以上讨论的类似的技术来提供它们的各自的坐标给客户设备140。例如,内容服务器120/130可以通过使用类似于以上相对于方法400讨论的那样的处理,不断地更新它们的坐标,并且保留/更新具有其当前的坐标的DNS txt记录。在这样的实施例中,客户设备140可被配置成当从DNS服务器150请求域名的解析时请求DNS txt记录以及地址记录。
在另外的实施例中,内容服务器120/130可以把它们的坐标直接提供到客户设备 140。例如,客户设备140可以得到具有用于内容服务器120(1)的IP地址的DNS地址记录。 在接收到来自客户设备140的初始通信后,内容服务器120(1)可以提供它自己的坐标,以及其它内容服务器,诸如内容服务器120 (2)的坐标给客户设备140。客户设备140可以把它自己的坐标与从内容服务器120 (I)接收的坐标进行比较,以确定是从内容服务器120 (I)还是从 120 (2)访问 “www. 123news. com,,。
在一些实施例中,内容服务器120和130可以在网页上提供它们的坐标给客户设备140。例如,对于“www. 123news. com”的主页可包括标记语言代码,诸如超文本标记语言 (HTML)或扩展标记语言(XML)代码。内容服务器120(1)和120(2)可以在标记语言代码中包括它们的坐标。因此,每次在客户设备140处刷新网页时,客户设备140将得到对应的更新的坐标。
在另外的实施例中,网页可包括脚本代码,诸如JavaScript 或VBScript 。脚本代码可直接包括坐标,或可以是客户设备140可执行的,以便从对应的内容服务器检索坐标。在再另外的实施例中,来自单个内容服务器的标记语言或脚本代码可包括对于多个内容服务器的坐标。因此,如果客户设备140从内容服务器120(1)检索网页,则该网页可包括对于内容服务器120(1)和120(2)两者的坐标。在这样的实施例中,内容服务器120(1) 和120(2)可以周期地互相传达它们更新的坐标。
网络性能度量正如以上讨论的,等待时间可被用作为用于定义网络坐标系统上的距离的度量。对于给定设备的本地坐标可以根据等待时间的一次或移动平均而被确定。在一些实施例中,地标服务器110、内容服务器120/130和客户设备140可被配置成实施传输控制协议扩展统计 (“TCP ESTATS”)。一般地说,TCP ESTATS可以基于逐个连接地提供拥塞、带宽、等待时间和其它网络性能度量。例如,TCP ESTATS直接指示往返行程时间,并且指示分组丢失以及为给定连接所传送的数据量。因此,带宽和拥塞测量可以从TCP ESTATS推定。
而且,TCP ESTATS可以在许多计算设备上被预先配置,且可以作用来在无论何时被配置以TCP ESTATS的设备从事网络通信时监视TCP业务量。因此,例如,在客户设备140 与内容服务器130之间的通信可以使用在网络系统100上的TCP/IP(互联网协议)连接。 对于通信的网络性能度量可以反映在用于TCP/IP连接的TCP ESTATS信息中。因此,例如, 方法400的块402和405可以通过处理分别用于与地标服务器110和内容服务器130的连接的TCP ESTATS数据而被实施。
等待时间不是适用于定义网络系统100的网络坐标系统的唯一的度量。在一些实施例中,带宽可被使用为替换的距离量度(measure)。一般地说,互相之间具有可得到的高带宽的两个设备,比起具有可得到的较低带宽的两个设备,可以在网络坐标系统上定位得更靠近。然而,应当指出,带宽测量通常可能牵涉到比等待时间测量显著更多的用于测量的网络业务量。这是因为单个分组和响应可能适用于确定在两个设备之间的等待时间,而带宽测量可能牵涉到显著大于一个分组和响应的传送。
而且,复合的网络性能度量也可以被使用来定义网络坐标系统。作为例子,网络距离可以根据在两个设备之间的吞吐量,或根据等待时间与带宽的和值或乘积,而被定义。在再另外的实施例中,所述和值和/或乘积可被加权,以得到想要的用户体验。一般地说,带宽和等待时间测量可以通过使用网络统计而得到,例如通过使用TCP ESTATS得到的网络统计。
作为例子,在其中用户以相对较少的服务器交互而访问大的数据文件的实施例中,带宽可以相对较重地被加权。同样地,在高度交互的应用中,带宽可以不予考虑,或相对较轻地加权。这样的加权机制例如可以通过将加权因子乘以在任何两个设备之间的测量的等待时间和/或带宽而被实施。
后台位置更新在以上的方法400的讨论中,客户设备140响应于对于搜索新闻服务的用户请求,访问内容服务器130处的搜索引擎。与请求相关联的通信被使用来更新客户设备140的本地坐标。因此,在网络系统100上请求数据的用户的行动被利用来更新客户设备140的位置,而不招致在网络系统100上附加的探测业务量的代价。
然而,不是来自客户设备140的所有通信都必然地响应于用户输入。而是,在一些情形下,由web浏览器243进行的后台处理可被使用来通过网络系统100得到用户数据。例如,web浏览器243可以周期地访问网络系统100上的时间服务器(未示出),例如以便更新与web浏览器243相关联的时钟或系统时钟。
在一些实施例中,时间服务器还可以具有它自己的网络坐标组。因此,客户设备 140可以通过使用后台通信来更新它的位置而实施方法400。作为另一个例子,在web浏览器243中用户条目的服务器一侧的自动完成也可以被使用来更新位置坐标,例如当自动完成服务器具有相关联的网络坐标组时。还应当指出,内容服务器120和130还可以使用对于用户数据(例如,web内容、时间数据、自动完成数据、等等)的前台和/或后台请求来更新它们在坐标系统内的位置。
第二种场景在一些实施例中,客户设备140可以具有多种访问网络系统100的方式。例如,客户设备140可能能够通过使用有线接口,例如电缆调制解调器、DSL、以太网等等,而连接到网络系统100。客户设备140还可能能够通过使用诸如Wi-Fi或3G接口那样的无线接口而连接到网络系统100。有时,客户设备140可以同时通过两种接口被连接到网络系统100。在其它时间,客户设备140可以通过使用两种接口中的仅仅一种接口而被连接到网络系统100。
图5举例说明了如以上相对于图I讨论的网络系统100。然而,在图5上,客户设备140被图解为处在坐标系统内的几个不同的位置。当使用有线接口连接到网络系统100 时,客户设备140可以确定它自己的坐标是(10,30)。然而,当使用无线接口连接到网络系统100时,客户设备140可以初始地确定它的坐标是(40,30),并随后更新对于无线接口的坐标为(35,30)。然而,应当指出,图I的前面的讨论不限于有线或无线接口,以及相对于图 I讨论的实施例可以用有线或无线接口被实施。
对于上下文,考虑诸如客户设备140那样的单个设备为什么可能对于不同接口具有不同的网络坐标可以是有用的。虽然客户设备140在一个时间仅仅可以处在一个地理位14置,但到网络系统100上各种设备的等待时间对于不同的网络接口可以是非常不同的。例如,客户设备140可以使用到由电缆ISP操作的服务器的有线接口,例如,电缆调制解调器。 同时,客户设备140可以使用无线接口,例如3G,来连接到由它们的蜂窝服务提供者操作的服务器。虽然客户设备140对于两个接口是在同一个物理位置,但与网络系统100的通信在使用有线接口时被通过电缆ISP服务器来路由,而在使用无线接口时被通过蜂窝提供者服务器路由。通过这两个服务器到网络系统100上的各种设备的等待时间可以是非常不同的,因为两个服务器可以是处在不同的物理位置。因此,有可能客户设备140同时具有对于每个接口的两个不同的网络坐标组。为了得到对于各个接口的网络坐标,客户设备140可以实施诸如以上相对于方法400讨论的那些的技术来识别对于每个接口的它的本地坐标。
在某些情形下,对于客户设备140,可能希望通过使用一个接口而不是另一个接口来访问特定的web服务。取决于对于每个接口的各自的网络坐标,客户设备140当使用特定的接口时可以更接近于特定的web浏览器。作为例子,客户设备140可能希望在网络系统100上从内容服务器130访问搜索引擎“www. abcsearch. com”。如果客户设备140具有对于有线接口的网络坐标,这些网络坐标比对于无线接口的坐标更接近于内容服务器130, 则客户设备140可以使用有线接口,而不是无线接口,来与内容服务器130通信。一般地, 客户设备140可以从几个网络接口中选择使用具有较低的等待时间的接口,以便提供更好的用户体验。
图6举例说明了适用于例如由客户设备140上的自定位构件244实施的示范性方法 600。
块601牵涉到识别对于第一网络接口和第二网络接口的、在网络坐标系统中的位置。在本例的上下文中,客户设备140可以通过使用以上相对于方法400讨论的那些的技术,而识别对于第一有线接口的、在网络系统100内的它的本地坐标。同样地,客户设备140 也可以识别对于第二无线接口的、在网络系统100内的它的本地坐标。如图7所示,客户设备140可对于每个接口在坐标表格245中包括分开的RTT测量和本地坐标。例如,图7举例说明了客户设备140确定对于有线接口的它的本地坐标是(10,30),以及对于无线接口是(40,30)。
应当指出,客户设备140当确定它的本地坐标时不一定必须在两个接口上与同一组设备通信。例如,客户设备140可以与地标服务器110(2),(3)和⑷通信,以得到对于有线接口的它的本地坐标,并且改而与地标服务器110(1),(3)和(4)通信以得到对于无线接口的它的本地坐标。同样地,客户设备140可以通过使用每个网络接口与不同的设备通信而更新坐标。
接着,块602牵涉到接收对于访问服务的请求。在本例的上下文中,客户设备140 的用户可以在web浏览器243中输入请求以访问诸如web服务“www. abcsearch. com”那样的网络服务。这时,客户设备140可以接着识别与“www. abcsearch. com”相关联的一个或多个IP地址,这例如是通过从DNS服务器150得到它们来进行的。例如,客户设备140可以得到对于内容服务器130的IP地址和网络坐标,例如,IPl和(30,30)。
接着,块603牵涉到从第一和第二网络接口进行选择。在本例的上下文中,客户设备140可以根据对于各个网络接口的网络坐标,从有线网络接口或无线网络接口进行选择,以便访问“WWW. abcsearch. com”。例如,客户设备140可以选择具有离内容服务器130的最接近网络坐标的接口。应当指出,当使用无线接口时,客户设备140是处在(40,30), 即,沿正X方向离开(30,30)处的内容服务器130 10个单位。然而,当使用有线接口时,客户设备140是处在(10,30),它是沿负X方向离开(30,30)处的内容服务器130 20个单位。 因此,客户设备140可以选择无线接口用于访问“www. abcsearch. com”,因为无线接口有离对应内容服务器130的较小网络距离。
接着,块604牵涉到存储对于所选择的网络的更新的坐标。在本例的上下文中,客户设备140例如根据与内容服务器130的通信,可以更新对于无线接口的它的本地坐标。例如,如果在内容服务器130与客户设备140之间存在低的等待时间条件,则客户设备140可以更新它的位置,以移动得更靠近内容服务器130,例如,大约为(35,30),正如图5上褪色的图标显示的。应当指出,在一些情形下,客户设备140可以确定使用无线接口比起使用有线接口,它的更新的坐标把客户设备140定位为更加远离内容服务器130。在这样的情形下,客户设备140可以开始使用有线接口访问“www. abcsearch. com”。
接着,块605可以牵涉到在将来的某个时间重新启动设备。在本例的上下文中,客户设备140可以重新启动。为了本例的目的,重新启动可包括进入休眠模式、电源完全关断、或仅仅断开与一个或这两个网络接口的连接。客户设备140还可以将对于每个接口的它的当前的网络坐标记入日志(log),供将来参考。
接着,块606牵涉到使用更新的坐标作为初始值。在本例的上下文中,客户设备 140可以使用对于每个网络接口的最近更新的坐标作为用于更新它的位置的初始值,例如使用方法400的一个或多个步骤。作为例子,客户设备140可以重新连接到无线接口,并使用(35,30)的更新的坐标作为对于无线接口的它的初始坐标。在这样的实施例中,客户设备140可能不需要执行方法400的块401-403,即,通过与地标服务器110通信而确定它的初始位置。替代地,客户设备140可以通过使用记入日志的坐标,立即开始在网络系统100 上与内容服务器120/130通信。
正如以上相对于图I讨论的,网络坐标可以在设备特定的基础上,例如,对于网络系统100中的每个设备而被计算。另外,正如相对于图5讨论的,在单个设备可以对于不同的网络接口具有不同坐标的场合下,改进是可能的。在再另外的改进中,每个网络接口可以具有一个以上的相关联网络坐标组,正如下面更详细地讨论的。
一般地说,客户设备140的每个网络接口可以通过接入网络在网络系统100上通信,所述接入网络连接客户设备140到互联网服务提供者。在以上讨论的例子中,客户设备 140可以将第一接入网络用于有线连接以连接到电缆ISP,而将第二接入网络用于到它们的蜂窝服务提供者的无线3G连接。然而,在一些情形下,客户设备140可以使用同一个接口连接到多个接入网络。
例如,考虑在家中的用户,他连接到无线路由器,以访问它们的电缆互联网服务。 用户在它们的电缆互联网服务方面可能有某些困难,并可能决定使用替换的无线连接,诸如 3G 便携式连接或 WiMax (Worldwide Interoperability for Microwave Access (全球微波接入互操作性))连接。因此,用户从用于它们的电缆ISP的接入网络切换到用于替换的无线连接的不同的接入网络,而同时继续使用无线接口。
在这样的实施例中,客户设备140可以在接入网络的基础上计算和更新网络坐标,例如,对于用户的电缆ISP的第一坐标组和对于3G或WiMax连接的第二坐标组。客户设备140可以将对于每个相应的接入网络的坐标记入日志,供以后使用。因此,如果用户从 3G或WiMax连接切换回它们自己的无线路由器和ISP,则客户设备140可以使用以前记入日志的、用于它们自己的ISP的坐标作为初始坐标。与通过同地标服务器110通信而重新初始化坐标相比,这可以加速对于坐标的收敛时间。
以上公开的技术当用户在地理位置之间移动时也可以是有用的。当用户到达新的目的地,例如咖啡店时,用户可以访问由咖啡店提供的Wi-Fi互联网服务。咖啡店可以使用与用户的家庭ISP不同的接入网络。因此,用户第一次连接到咖啡店Wi-Fi服务时,客户设备140可以全部地实施方法400,例如确定初始坐标组,然后当用户浏览到各个不同的网址时,迭代地更新坐标。客户设备140也可以将对于咖啡店Wi-Fi网络的坐标记入日志。在以后访问咖啡店时,客户设备140可以访问对于咖啡店的最近的记入日志的坐标组,并使用这些作为初始坐标来用于访问。
第三种场景在某些情形下,可能希望操纵客户设备140和/或内容服务器120/130的网络坐标, 以得到某些结果。特别地,给定设备的网络坐标可被基于网络性能而操纵成使得设备表现为处在不同于“实际”位置的、网络系统100上的位置。作为例子,内容服务器120(2)可被配置成使得它自己表现为处在与通常通过等待时间的实际测量而得到的位置不同的位置。 这样的处理可被实施,以便使得客户设备140 (和在网络系统100上的其它客户设备)访问在不同的内容服务器处,例如在内容服务器120(1)处的web服务。因此,通过操纵它自己的位置,内容服务器120(2)可以故意重定向客户设备140到内容服务器120(1),虽然内容服务器120(2)实际上是在网络坐标系统中最接近的内容服务器。这个方法例如对于为了负荷平衡的目的而减小内容服务器120(2)上的处理负荷,使内容服务器120(2)停止使用 (decommission),或是在不同的(或许更新的或最佳化的)内容从内容服务器120 (I)而不是内容服务器120(2)可得到的场合下,可以是有用的。
在内容服务器120 (2)上的操纵构件227可以实施某种处理来达到内容服务器 120(2)的坐标操纵。图8举例说明了适用于实施这样的技术的示范性方法800。下面的讨论是参照如图I所示的各种设备的位置进行的。
块801牵涉到接收来自客户的请求。在本例的上下文中,内容服务器120(2)可以接收对于“WWW. 123news. com”的请求。例如,所述请求可以由客户设备140发送,例如作为对网页的HTTP请求。
接着,块802牵涉到确定在网络坐标系统内的移动。在本例的上下文中,内容服务器120(2)可以确定内容服务器120 (2)远离客户设备140的移动。例如,内容服务器120 (2) 可能打算通过操纵在网络系统100上它自己的位置以表现为更加远离客户设备140,而使它自己慢慢地“停止使用”。一般地说,内容服务器120(2)可以通过在网络坐标系统内的任何维度中移动它自己而做到这一点。这可以具有减小内容服务器120(2)上的工作负荷,直至最终没有另外的请求被内容服务器120(2)接收到的效果。在这一点,可以使内容服务器 120(2)变为完全地离线,而不用中断“www. 123news. com”的可用性。
对于本二维例子来说,内容服务器120(2)将更改它的位置的X分量,正如下面讨论的。在三维或更多维坐标系统的情形下,也可以有高度或z分量。在一些实施例中,在网络系统100上设备的缺省高度或z分量可以是O。因此,内容服务器120(2)可以仅仅增加它的高度分量的绝对值,以使它自己移动远离网络系统100上的各种设备。甚至在网络系统100上的实际等待时间条件通常不会导致内容服务器120(2)具有增加的高度分量的场合下也可以是这种情形。
接着,块803牵涉到确定操纵数据。在本例的上下文中,内容服务器120⑵可以确定操纵数据,例如,被操纵的坐标,其反映从(25,30)到(40,30)的移动。例如,被操纵的坐标可被包括在DNS txt记录。替换地,被操纵的坐标可被包括在用于与“www. 123news. com” 相关联的网页的修改的标记语言或脚本代码中。正如讨论的,在一些实施例中,脚本代码并不直接包括坐标,而是可由客户设备140执行来检索坐标。在这样的实施例中,操纵数据可以是由内容服务器120(2)本地存储的更新的坐标的拷贝,用于当脚本代码被客户设备140 执行时的以后的检索。
接着,块804牵涉到操纵位置。在本例的上下文中,内容服务器120(2)可以把操纵数据,例如,操纵的坐标,提供到远程设备,诸如客户设备140。内容服务器120(2)可以直接或间接地这样做。在其中坐标被包括在标记语言或脚本代码的实施例中,内容服务器 120(2)可以把坐标连同对于“www. 123news. com”的网页一起发送到客户设备140。在其中坐标通过客户机执行的脚本代码而被检索的实施例中,内容服务器120(2)可以在与网页分开的通信中提供坐标。在其中坐标经由DNS txt记录被分发的实施例中,内容服务器 120(2)可以通过把具有被操纵的坐标的DNS txt记录上载到DNS服务器150而间接地提供它的坐标到客户设备140。
在一些实施例中,慢慢地移动内容服务器120(2)远离客户设备140是有用的。在这样的实施例中,内容服务器120(2)可以迭代地实施方法800的一个或多个块。例如,内容服务器120(2)可以每天操纵它的位置I个单位,慢慢地移动远离一个或多个客户设备。 在几天或几星期的时间段后,这可以导致稳定地减小对于内容服务器120(2)的工作负荷, 因为较少的客户设备将选择内容服务器120(2)来访问“www. 123news. com”。最终,内容服务器120(2)可被移动得足够远,这样,网络系统100上的每个客户设备比起120(2)更接近于另一个内容服务器,因此内容服务器120(2)将被完全地停止使用。
操纵客户机坐标在某些情形下,可能希望操纵客户设备140的位置,代替或附加于操纵内容服务器的位置。例如,地标服务器110可以使用操纵构件214来指引客户设备140远离内容服务器 120(2)和/或趋向内容服务器120 (I)。在这样的实施例中,地标服务器110以几种不同的方式操纵客户设备140的坐标,正如下面讨论的。
地标服务器110操纵客户设备140的位置的一个方法是故意延迟信标响应。例如, 应当指出,如果地标服务器110(3)和⑷在方法400的块401延迟它们的对客户设备140 的响应,则这将具有使客户设备140沿负X方向移动的效果。为了做到这一点,地标服务器 110(3)和(4)可以计算足以将客户设备140移动到被操纵的位置的附加等待时间段。在这样的实施例中,附加等待时间段可以是在方法800的块803确定的操纵数据。应当指出,客户设备140不一定必须知道它的位置正在被地标服务器110操纵。
然而,因为在接收信标响应中的延迟,故意地引入等待时间可能具有减慢对于客户设备140的收敛时间的后果。在另外的实施例中,地标服务器110可被配置成在信标响应中提供值,客户设备140可以使用这些值来确定它的位置,正如在下面更详细地讨论的。这样的实现可以允许地标服务器110立即对信标请求进行响应,而同时仍旧操纵客户设备 140的位置。
例如,地标服务器110可以在它们的信标响应中包括可由客户设备140施加的某些缩放因子。例如,地标服务器110(3)和110(4)可以在信标响应中包括值“2”,指示客户设备140可以把信标响应的测量的等待时间乘以因数2。地标服务器110(1)和110(2)可以同样地在信标响应中提供值“1”,指示客户设备140可以使用实际的等待时间值(例如乘以I)来计算它的位置。在这种情形下,缩放因子会用作为在方法800的块803中所确定的操纵数据。这样地使用缩放因子,地标服务器110便可以对信标请求立即响应,而同时仍旧移动客户设备140趋向内容服务器120(1)和远离内容服务器120(2)。
在其它实施例中,地标服务器110可以直接在信标响应中提供等待时间(和/或带宽)值。作为例子,地标服务器110可包括数值,指示客户设备可以使用该数值,例如,以毫秒计的等待时间测量,作为要代替实际测量的等待时间来使用的操纵数据。因此,地标服务器110(3)和110 (4)可以在它们的信标响应中发送相对较大的等待时间值,以及地标服务器(I)和(2)可以使用相对较小的值。这样的实现也可以具有沿想要的方向移动客户设备 140的效果。应当指出,在其中带宽被操纵的实施例中,较小的带宽值将具有移动客户设备 140远离特定的地标服务器的效果。当操纵实际测量的等待时间和/或带宽时,被发送到客户设备140的等待时间和/或带宽值可以如以上讨论的那样被缩放。
在再另外的实施例中,地标服务器110可以改而直接地操纵客户设备140的坐标。 作为例子,在信标响应中,地标服务器110可以包括用于客户设备140的坐标组以用作为它的本地坐标。在一些情形下,信标响应可包括重写(override)标志,指示客户设备140应当重写它自己的等待时间测量,并使用被包括在信标响应中的坐标。坐标和重写标志可被包括在各种类型的通信中,包括作为标记语言或脚本代码。
在再另外的实施例中,内容服务器120(2)可以执行类似于以上相对于地标服务器110讨论的那样的处理,以操纵用于客户设备140的坐标。例如,内容服务器120(2)可以故意地延迟响应客户设备140,以使得客户设备140将更新它的位置来移动远离内容服务器120(2)。替换地,内容服务器120(2)可以把前述的等待时间缩放因子或操纵的坐标发送到客户设备140。
在再另外的实施例中,内容服务器120(1)可以例如通过代表内容服务器120(2) 提供等待时间因子或操纵的坐标,而操纵用于内容服务器120(2)的坐标。一般地说,因为客户设备140可以使用与内容服务器120/130的通信来确定它自己的坐标,所以以上相对于地标服务器110描述的技术也可以应用于与内容服务器120/130进行的通信。
而且,地标服务器110和内容服务器120/130不需要直接提供操纵数据到客户设备140。而是,地标服务器110例如可以提供操纵数据到内容服务器120/130,这样使得内容服务器120/130把它们自己的坐标、等待时间值等等报告给客户设备140,以便实施想要的操纵。同样地,地标服务器110和内容服务器120/130可以用操纵数据来填充DNS服务器150上的一个或多个txt记录。在这样的实施例中,当用DNS服务器150解析域名时,客户设备140可以得到操纵数据。
正如以上讨论的,操纵网络系统100内的设备的位置对于使一个或多个服务器停止使用可能是有用的,或者在减小服务器上的处理或网络负荷可能有用的其它时间可能是有用的。而且,通过使用与以上讨论的类似的技术,可以达到负荷平衡。例如,地标服务器和/或内容服务器120/130可被配置成操纵网络坐标,以使得经历较低负荷的内容服务器被移动趋向具有高度密集的客户设备的位置,以及经历较高负荷的内容服务器被移动远离这些区域。替换地,客户设备可被移动趋向具有相对较低负荷的服务器,和/或远离具有相对较高负荷的服务器。
客户和/或内容服务器坐标的操纵并不限于使服务器停止使用或负荷平衡的目的。例如,可以在其中对于重定向客户机到不同的内容服务器是有用的各种其它环境下操纵坐标。例如,一个内容服务器120(1)可包括“www. 123news. com”网址的特定版本,例如 Adobe Flash 版本,而内容服务器120 (2)可包括网址的标准HTML版本。在这样的情形下, 可能希望把使能Adobe Flash 的客户设备重定向到内容服务器120 (I),而把未使能的客户设备重定向到内容服务器120(2)。
作为另一个例子,内容服务器120(1)可以具有以特定的格式可得到的数据,诸如以Microsoft Access 格式可得到的数据库。内容服务器120 (2)可以具有以不同格式的类似的或完全相同的数据库,诸如以MySQL。在这样的情形下,可能希望把具有Microsoft Access 能力的客户机重定向到内容服务器120 (I),而把具有MySQL能力的客户机重定向到内容服务器120(2)。
第四种场景以上描述的技术对于把客户设备140指引到适当的内容服务器以用于得到对web服务的访问可以是有用的。然而,在网络坐标系统内的客户设备140和内容服务器120/130的移动也可以提供关于在网络系统100上的状况的某些信息。例如,如果客户设备140和内容服务器120/130 —致地移动远离地标服务器110(2)和110(3),则这可以指示它们正经历与地标服务器110(2)和(3)的某些连接性问题。这甚至在客户设备140和内容服务器 120/130之间的相对距离不改变的情形下也可能是真实的。
例如,考虑图9,其举例说明了在网络系统100上客户设备140和内容服务器120(2)和130的移动。图9上显示的正常图标代表了在第一时间每个设备的位置,且划阴影的图标代表响应于网络连接性的某种改变的设备的新位置。应当指出,这些设备的每个设备在第一时间具有30的y坐标,但随后每个设备沿负I方向移动20个单位。然而,还应当指出,内容服务器120(1)并没有移动。取决于被使用来定义网络坐标系统的网络性能度量, 这可能暗示了在内容服务器120(2),130和客户设备140中的每一个与地标服务器(2)和(3)之间的增加的等待时间、减小的带宽或二者。而且,这可能暗示了某些共享的网络状况,诸如出故障的或拥塞的路由器,可能被客户设备140、内容服务器120(2)和内容服务器 130使用。所述状况的识别可以通过注意到内容服务器120(1)在网络系统100内未展现类似的移动而被促进,正如下面更详细地讨论的。
图10举例说明了例如适合于由地标服务器110上的诊断构件217实施的示范性方法1000。
方法1000可以在块1001开始,这牵涉到确定第一网络坐标。在本例的上下文中, 地标服务器110可以确定在第一时间的一个或多个设备的第一网络坐标。例如,诊断构件 217可以确定120(1)、客户设备140、内容服务器120(2)和内容服务器130的网络坐标,例如分别为(0,30)、(10,30)、(25,30)和(30,30)。
接着,块1002牵涉到确定第二网络坐标。在本例的上下文中,地标服务器110可以确定在第二时间的对于设备的第二网络坐标。例如,诊断构件217可以确定在某个预定的时间量内,例如一天内,以上识别的设备的网络坐标是如由图9的划上阴影的图标显示的。 例如,诊断构件217可以识别内容服务器120 (I)、客户设备140、内容服务器120 (2)和内容服务器130的位置是分别在(0,30)、(10,10)、(25,10)和(30,10)。
接着,块1003牵涉到计算所述坐标的差值。在本例的上下文中,地标服务器110 可以计算对于每个设备的第一坐标组和第二坐标组的差值。因此,诊断构件217可以识别 客户设备140、内容服务器120(2)和内容服务器130在一天内每个已经沿负7方向移动20 个单位。相反,诊断构件217可以识别内容服务器120(1)没有移动。
接着,块1004可以识别设备的子集。在本例的上下文中,地标服务器110可以识别已经移动的设备子集,例如用于进一步处理。因此,诊断构件217可以识别客户设备140、 内容服务器120(2)和内容服务器130作为设备的子集,其排除了内容服务器120(1)。
接着,块1005牵涉到识别设备的公共通信路由。在本例的上下文中,地标服务器 110可以识别与设备子集相关联的公共通信路由。例如,诊断构件217可以确定设备子集的每个设备通过公共的路由器或其它通信路由(交换机、集线器、物理有线、无线路径、代理或其它服务器、互联网服务提供者等等)而与地标服务器110 (2)和(3)通信。通过识别这样的公共通信路由,方法1000可以帮助管理员确定网络系统100上可能存在问题的地方。 这个技术可以有利于识别过载的连接,例如,太多的带宽被使用在特定的连接上。这个技术也可以有利于识别通信错误,例如,由没有被应答的通信而造成的重发。
在另外的实施例中,在块1004,可以使用阈值技术来识别设备子集。例如,仅仅移动大于预定数目(例如10个)的网络单位的设备可被识别。这可能是有用的,因为内容服务器120(1)可以被预期为在网络坐标系统内展现某种正常的移动。通过将这样的阈值设置得足够高,在块1004,内容服务器120(1)的正常移动(例如,由于预期的等待时间的波动) 可能不会触发把内容服务器120(1)包括在设备子集中。
而且,附加于使用移动的绝对值或作为其替换,移动的速率也可以被使用来在块 1004识别设备子集。作为例子,每天10个单位的移动可被指定为用于包括在子集中的阈值。因此,在连续四天的每天内移动5个单位的设备将总共移动20个单位,但仍将不被包括在子集内。然而,一天内移动10个单位和以后不移动的设备将被包括在子集内。
在再另外的实施例中,某些类型的设备可以被排除在方法1000之外。作为例子, 移动设备,诸如膝上型计算机、蜂窝电话、个人数字助理(PDA)等等,可被预期为展现在网络系统100内的显著移动。相反,服务器和/或台式计算机可能往往保持为相对静止,因此对于通过方法1000考虑可能是更有用的。
还应当指出,诊断构件217也可以被包括在客户设备140和/或内容服务器 120/130中,以实施以上相对于方法1000所描述的处理。
方法实现正如以上讨论的,图4,6,8和10分别显示了示范性方法400,600,800和1000的流程图。这些方法中的每个与本构思的至少某些实现一致。应当指出,方法400,600,800和1000 被描述的次序不打算被解释为限制,以及任何数目的描述的块可以以任何次序被组合来实施所述方法,或替换的方法。
而且,虽然示范性方法是相对于公开的系统实施例讨论的,但这些方法可以以任何适当的硬件、软件、固件或它们的任何组合被实施。在一种情形下,所述方法被存储在计算机可读媒体上作为一组指令,使得其由计算设备的处理器的执行使得计算设备执行所述方法。
权利要求
1.一种方法包括以下步骤存储在网络(100)中第一设备(140)的初始网络位置,所述网络包括该第一设备(140) 和第二设备(130);监视涉及到与第二设备(140)的现有应用通信的一个或多个网络性能度量(302);以及根据该初始网络位置和网络性能度量(302),确定第一设备(140)的更新的网络位置。
2.按照权利要求1的方法,其中网络性能度量包括TCP扩展的统计(“TCPESTATS”)。
3.按照权利要求1的方法,其中现有的应用通信包括以下的一项或多项 来自第二设备的、对于网页的请求,来自第二设备的、对于当前时间的请求,或来自第二设备的、对于自动完成数据的请求。
4.按照权利要求1的方法,其中第一设备的更新的网络位置根据第二设备的网络位置被确定。
5.按照权利要求1的方法,其中初始网络位置被表示为网络坐标系统的坐标,所述方法还包括与多个地标服务器进行通信,所述地标服务器具有被表示为在网络坐标系统中的已知坐标的位置,其中更新的网络位置包括根据一个个地标服务器的已知坐标而被确定的更新的坐标。
6.按照权利要求1的方法,所述方法还包括识别在网络中第一设备的第二网络位置,其中第一设备同时处在该第一网络位置和该第二网络位置;接收对于访问在网络上可得到的网络服务的请求;以及确定是从第一位置还是从第二位置访问该网络服务。
7.一种系统(100),包括存储装置(222 ),被配置成存储网络中的内容服务器(120)或客户设备(140 )的第一网络位置;以及操纵构件(227),被配置成将客户设备(140)或内容服务器(120)的第一网络位置操纵成第二网络位置。
8.按照权利要求7的系统,其中第一网络位置包括网络坐标系统的第一网络坐标,以及操纵构件还被配置成通过确定对于第二网络位置的第二网络坐标而操纵第一网络位置。
9.按照权利要求7的系统,其中操纵构件还被配置成通过提供值给远程设备而操纵第一网络位置,其中所述值被远程设备应用来确定客户设备或内容服务器的第二网络位置。
10.按照权利要求7的系统,其中操纵构件还被配置成通过给远程设备提供以对应于第二网络位置的网络性能度量而操纵第一网络位置。
11.一种计算机可读存储媒体(222),其包括指令,使得一个或多个处理器(221)执行按照权利要求1一 6中的任何一项的方法。
全文摘要
本文档涉及到分布式网络坐标系统。一种实现提供了计算机可读存储媒体,其包括可以使得处理器执行某些动作的指令。例如,所述动作可包括存储网络中的第一设备的初始网络位置。该网络可包括第一设备和第二设备。所述动作还可包括监视涉及到与第二设备的现有应用通信的一个或多个网络性能度量,和根据初始网络位置和网络性能度量确定第一设备的更新的网络位置。网络健康的各方面可以从监视坐标系统内各种设备的网络位置的改变而得到。
文档编号H04L12/26GK102546245SQ20111044693
公开日2012年7月4日 申请日期2011年12月28日 优先权日2010年12月28日
发明者A.G.格林伯格, K.达摩尔, R.克恩, S.阿贾瓦尔, T.V.库里恩, 袁利华 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1