CN106464584B - 根据程序设计接口提供路由器信息 - Google Patents

根据程序设计接口提供路由器信息 Download PDF

Info

Publication number
CN106464584B
CN106464584B CN201580028355.4A CN201580028355A CN106464584B CN 106464584 B CN106464584 B CN 106464584B CN 201580028355 A CN201580028355 A CN 201580028355A CN 106464584 B CN106464584 B CN 106464584B
Authority
CN
China
Prior art keywords
request
routers
requests
router
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201580028355.4A
Other languages
English (en)
Other versions
CN106464584A (zh
Inventor
M·S·E-D·欧维斯
P·B·库莱恩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN106464584A publication Critical patent/CN106464584A/zh
Application granted granted Critical
Publication of CN106464584B publication Critical patent/CN106464584B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Association of routers of virtual routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

提供商网络可实现根据程序设计接口提供路由器信息。多个路由器可被实现为提供商网络的一部分。利用这些路由器的客户端可能希望获取特定于一个或多个路由器的信息,以便利用所述特定路由器来配置通信。可从所述客户端接收对所述信息的请求,所述请求根据平台独立的所述程序设计接口被格式化。可将所述请求与其他接收到的请求一起维持,直至根据优先级方案被选择来服务为止。可将所述请求转换成所述请求的一个或多个版本,所述一个或多个版本根据特定于所述一个或多个路由器的接口被格式化。可将所述请求的所述转换后的一个或多个版本发送至所述一个或多个路由器,以便从所述一个或多个路由器获取所述信息。随后可将所述信息提供至所述客户端。

Description

根据程序设计接口提供路由器信息
背景技术
用于商用硬件的虚拟化技术的出现已针对管理大规模计算资源而为具有多样化需求的许多客户提供益处,从而允许各种计算资源有效且安全地由多个客户共享。例如,虚拟化技术可通过为每个用户提供由单一物理计算机器托管的一个或多个虚拟机而允许所述单一物理计算机器在多个用户之间共享,其中每个虚拟机充当不同的逻辑计算系统的软件模拟,所述逻辑计算系统为用户提供以为自己是特定硬件计算资源唯一的操作者和管理员的错觉,其还提供各种虚拟机之间的应用隔离和安全性。作为另一个实例,虚拟化技术可以通过为每个用户提供可跨多个数据存储装置分布的虚拟化数据存储库来允许数据存储硬件在多个用户之间共享,其中每个这样的虚拟化数据存储库充当不同的逻辑数据存储库,所述逻辑数据存储库为用户提供以为自己是数据存储资源唯一的操作者和管理员的错觉。
虚拟化技术产生了提供商网络,所述提供商网络经由网络连接向用户提供各种服务或资源。随着数据、交易以及与提供商网络的其他交互作用的数量的增加,客户对提供商网络的各种连接需求也在增加。一些客户可能希望利用与提供商网络的专用连接或直接连接,而不是利用公众可使用的连接(例如,经由互联网)。以这种方式,这些客户与提供商网络之间的连接可针对性能进行优化并提高提供商网络资源的利用率。然而,由于提供商网络修改了网络基础设施,所以客户可能必须修改或改变他们的专用连接。作为与提供商网络保持同步的一部分,客户可能需要获取关于底层提供商网络基础设施的信息以便于继续利用他们的专用连接。
附图说明
图1是根据一些实施方案的提供商网络图,所述提供商网络使用多个路由器以向提供商网络以及平台独立的程序设计接口提供连接以用于获取关于特定路由器的路由器信息。
图2是根据一些实施方案的使用路由器程序设计接口的路由器数据服务的框图。
图3是根据一些实施方案的服务于对特定路由器的请求的请求工作者的框图。
图4是根据各种实施方案示出客户端装置与路由器数据服务之间的交互作用的图。
图5是根据各种实施方案示出客户端装置与路由器数据服务之间的交互作用的图。
图6是根据一些实施方案示出用于实现程序化路由器接口的各种方法和技术的高级流程图。
图7是根据各种实施方案示出用于根据优先级方案选择对路由器信息的要服务的请求的各种方法和技术的高级流程图。
图8是根据一些实施方案示出用于对发送至提供商网络中路由器的路由器信息的请求进行节流的各种方法和技术的高级流程图。
图9是根据一些实施方案示出用于选择检索到的路由器信息来提供至客户端的各种方法和技术的高级流程图。
图10是根据一些实施方案示出示例性计算机系统的框图。
虽然在本文中通过列举若干实施方案和示意性附图的实例的方式描述了实施方案,本领域的技术人员应认识到,实施方案并不限于所描述的实施方案或附图。应理解,附图和对其的详细描述并非旨在将实施方案限于所公开的特定形式,而相反,其意图在于涵盖落入由所附权利要求书限定的精神和范围内的所有修改、等效物和替代方案。本文中使用的标题都仅用于组织目的,并且并不旨在用于限制本说明书或权利要求书的范围。如贯穿本申请所使用的,词语“可以”是在容许意义上(即,意指具有可能性)而非强制意义上(即,意指必须)使用的。类似地,词语“包括(include、including和includes)”表示包括但不限于。
具体实施方式
根据一些实施方案,本文所述的系统和方法可实现根据程序设计接口提供路由器信息。提供商网络可为客户端、操作者或其他客户供应对一个或多个计算资源的访问和/或控制。这些资源可包括被配置用于通过网络通信的各种类型的计算系统或装置。例如,在一些实施方案中,提供商网络可向客户端、用户或其他类型的客户提供呈预留计算实例(例如,充当不同的逻辑计算系统的虚拟机,所述逻辑计算系统为使用者提供以为自己是给定硬件计算资源唯一的操作者和管理员的错觉)形式的虚拟计算资源。提供商网络的客户端可维持(即,购买或购置)一个或多个计算资源(诸如计算实例)或利用其他资源来执行各种功能、服务、技术和/或应用。
然而,提供商网络可使用许多不同的组件、系统或装置来提供对由提供商网络提供的各种服务的访问。在各种实施方案中,为了提供对提供商网络的访问,可使用大量异构路由器。然而,作为提供访问的一部分,一些客户端可能必须基于特定路由器来配置与提供商信息的连接。关于特定路由器的信息可能因此对恰当地或有效地管理或操作与提供商网络的连接是有用的和/或必需的。例如,如果连接正遇到连接问题,那么关于特定路由器(所述连接是与其建立的)的某些路由器信息可用来进行故障检修和识别校正动作。然而,由于不同的路由器使用不同类型的用于获取路由器信息的接口,所以对于提供商网络的客户端来说,获取所需信息来根据需要配置、管理或操作连接可能是困难的。程序设计接口可允许客户端在不必理解特定路由器的接口在提供商网络中如何使用的情况下从路由器数据服务获取路由器信息。
图1是根据一些实施方案的提供商网络图,所述提供商网络使用多个路由器以向提供商网络以及平台独立的程序设计接口提供连接以用于获取关于特定路由器的路由器信息。提供商网络100可由诸如公司或公共部门组织的实体建立来将可经由互联网和/或其他网络访问的一种或多种基于网络的服务(诸如各种类型的基于云的计算或存储)提供至客户端130。提供商网络100可包括许多数据中心,所述数据中心托管实现和分布由提供商网络100提供的基础设施和服务所需的各种资源池(诸如物理和/或虚拟化计算机服务器、存储装置、联网设备等的集合)。客户端130可被配置来经由相应的路由器102来访问提供商网络。在一些实施方案中,路由器102可以是提供商网络100的边缘路由器。
提供商网络100可包括在提供商网络100的不同组件以及外部网络(例如,互联网)之间建立联网链接所必要的硬件(例如,调制解调器、路由器、交换器、负载均衡器、代理服务器等)和软件(例如,协议堆栈、会计软件、防火墙/安全软件等)。在一些实施方案中,提供商网络100可采用互联网协议(IP)隧道技术来提供覆盖网络,可使用隧道经由所述覆盖网络将封装的分组传递通过提供商网络100。然而,在一些实施方案中,客户端130可经由专用或物理连接访问底层网络。在图1中,客户端130a、130b、130c和130d可经由建立好的专用连接(由宽箭头示出)访问提供商网络。路由器102可有助于这些专用或物理连接。例如,客户端130a经由路由器102a连接。客户端130b和130c通过路由器102b连接,所述路由器102b经由路由器102c连接至提供商网络100。客户端130d可分别经由两个不同的路由器102d和102e连接。请注意,前述讨论不旨在对于可存在于客户端与路由器之间的不同连接组合进行限制。
客户端130可包括可配置来管理、操作或配置与提供商网络100的连接的任何类型的客户端。例如,给定客户端可使用各种工具、脚本或其他模块,所述工具、脚本或其他模块可能能够配置相应的连接、测试所述连接并启动或终止所述连接。作为管理连接的一部分,客户端130还可获取关于特定路由器的路由器信息。因此,客户端130b可通过向路由器数据服务110发送对路由器信息的请求来获取关于路由器102c的信息,所述路由器数据服务可根据平台独立的程序设计接口112被格式化。路由器数据服务110可根据路由器的特定接口查询路由器102c并将所请求的信息提供回客户端130b。
为了向路由器数据服务提交请求,给定客户端130可包括适当版本的网络浏览器,或可包括被配置来作为由网络浏览器提供的执行环境的延伸执行或在由网络浏览器提供的执行环境内执行的插件模块或其他类型的代码模块。可替代地,客户端130可包括诸如可利用路由器数据服务110来获取关于特定路由器的路由器信息的路由器管理或信息客户端(或其用户接口)的应用。在一些实施方案中,这种应用可包括足够的协议支持(例如,用于适当版本的超文本传输协议(HTTP)),以用于产生和处理基于网络的服务请求,而不必实现用于所有类型的基于网络的数据的完整浏览器支持。在一些实施方案中,客户端130可被配置来根据表述性状态转移(REST)类型的基于网络的服务架构、基于文件或基于消息的基于网络的服务架构、或另一适当的基于网络的服务架构来产生基于网络的服务请求。
尽管未示出,但是在一些实施方案中,客户端130可经由外部网络(其可以是与提供商网络的公共连接)将基于网络的服务请求传达至路由器数据服务110。在各种实施方案中,外部网络可包括在客户端130与路由器数据服务110之间建立基于网络的通信所必要的联网硬件和协议的任何适当组合。例如,网络通常可包括共同实现互联网的各种电信网络和服务提供商。网络还可包括专用网络(诸如局域网(LAN)或广域网(WAN))以及公共或专用无线网络。注意在一些实施方案中,客户端130可使用专用网络而不是公共互联网来与路由器数据服务110通信。
提供商网络的一些客户端可以是内部客户端140。内部客户端140可以与外部客户端130相似的方式操作,不同的是内部客户端可被供应在提供商网络100内并可使用由提供商网络100提供的服务或资源中的一个或多个。例如,内部客户端140a可被实现为内部网络配置或映射服务的一部分,并且因此可能需要获取针对路由器102的信息,路由器102可实现映射服务管理的连接的一部分。因此,内部客户端也可与路由器数据服务110通信以经由程序设计接口112获取路由器信息。
请注意前述描述不旨在进行限制,而是仅仅作为提供商网络、客户端以及路由器的实例来提供。组件的数量或布置(诸如客户端或路由器的数量或布置)可以许多不同的方式实现。各种其他组件可与平台独立的路由器程序设计接口交互或根据平台独立的路由器程序设计接口提供路由器信息。
本说明书接下来包括路由器数据服务的概述,所述路由器数据服务可使用程序设计接口来提供被实现为提供商网络的一部分的路由器的路由器信息。随后论述路由器数据服务的各种实例,包括可被用来作为实现路由器数据服务的一部分的不同组件/模块或组件/模块的布置。随后论述实现根据平台独立的程序设计接口提供路由器信息的一些不同方法和技术,所述方法和技术中的一些示出在所附流程图中。最后,提供了对示例性计算系统的描述,在所述示例性计算系统上可使用各种组件、模块、系统、装置和/或节点。在整个说明书中提供各种实例。
图2是根据一些实施方案的使用程序设计接口的路由器数据服务的框图。路由器数据服务200可跨多个服务器、节点或其他计算系统或装置(诸如以下参照图10所述的计算系统1000)实现。注意在给定组件的一个或多个实例可存在的情况下,本文中对那个组件的引用可以是单数的或复数的。然而,任何一种形式的使用不旨在排除另一种。
如上参照图1所述,提供商网络的外部客户端202和内部客户端204可利用路由器240来与提供商网络通信并在提供商网络内操作。路由器240的设置和其他信息可受客户端影响或可由客户端配置,因此外部客户端202和内部客户端204可与路由器数据服务200通信以获取特定路由器的特定路由器信息。在各种实施方案中,路由器数据服务可实现前端210。前端210可被配置来接收、分析、处置、引导或以其他方式处理发送至路由器数据服务200的请求。在一些实施方案中,前端210可被配置来分析或理解根据平台独立的程序设计接口格式化的请求并将这些请求引导至路由器数据服务200的合适组件以处置所述请求。例如,前端210可接收对路由器240b的请求。在一些实施方案中,前端210可被配置来向维持对路由器240b的请求的路由器队列220b发送请求。在一些实施方案中,单个请求可以是针对来自多个路由器(诸如路由器240a、240b、和240c)的聚合信息的。前端210还可实现各种其他服务功能,诸如对客户端的识别或授权进行处置(例如,基于访问凭证或访问列表)以执行特定请求。在一些实施方案中,前端210可收集路由器数据服务210的各种使用量度或其他性能量度并将它们提供至存储器或用于分析的另一个系统组件或装置。
在各种实施方案中,路由器数据服务200可使用分别对应于路由器240a、240b、240c和204d的路由器特定提示(诸如路由器队列220a、220b、220c和220d)。路由器队列220可在一个或多个计算节点、系统或装置上实现以维持对路由器数据的未决请求。在至少一些实施方案中,路由器队列220可以是优先级队列,诸如以下参照图3论述的优先级队列310。在至少一些实施方案中,相应的工作者230可处置来自路由器队列220的拉取请求以便将其转换并发送至路由器240。在一些实施方案中,如下参见图3所述,工作者230可被配置来选择拉取何种请求、节流传入请求、将所述请求转换成对路由器信息的请求的新版本并将请求发送至路由器240。然而,在一些实施方案中,工作者230只可执行这些功能中的一些(诸如选择请求和/或节流请求),而其他组件可转换并发送请求。工作者230可被供应用于执行针对来自工作者池242的特定路由器240的工作。工作者池242可以是被配置来服务对任意路由器240的请求的单一工作者池,或者可以是与每一个路由器相应的不同工作者池。如果工作者230故障,或以其他方式变得不可用,那么工作者池242中的工作者可被配置来选择新的工作者以代替故障的工作者240。如图2中所示出的,工作者可至少被配置来服务于特定路由器,从而工作者230a服务于路由器240a,工作者230b服务于路由器240b,工作者230c服务于路由器240c,并且工作者230d服务于路由器240d。
在至少一些实施方案中,路由器数据服务200可使用节流管理模块260来分析、确定、协调和/或实施对整个提供商网络的路由器的节流。例如,节流管理模块260可被配置来追踪发送至路由器240的转换后请求的数量,并且确定传入请求的总速率。基于确定的速率和关于提供商网络状态的其他信息(例如,关于提供商网络通信量水平的历史信息),在一些实施方案中,节流管理模块260可确定在工作者230处实施的特定的节流阈值,并且可将节流阈值发送至工作者来实施。图8(如下所论述的)提供了,在一些实施方案中,节流管理模块260可使用的用于确定和实施节流的许多不同技术。
在一些实施方案中,由发送至路由器240的请求得出的结果可被存储在结果队列250中。路由器数据服务200可使用结果队列250以便维持包括所请求的路由器信息的查询结果。前端210或另一组件可选择性地获取那些查询结果以便将结果提供至客户端202和204。图9(如下所论述)提供了可被实现来从结果队列250中选择结果的各种技术实例。在一些实施方案中,路由器200还可被配置来将一些结果存储在永久数据存储器(结果存储器270)中。结果存储器270可维持定期或频繁获取的健康或其他信息。在一些实施方案中,可通过访问结果存储器270并从那里的数据存储器获取一些信息来服务于对路由器信息的一些请求。
图3是根据一些实施方案的服务于对特定路由器的请求的请求工作者的框图。请求工作者300选择维持在优先级队列310中的待转换请求来服务。所述请求的转换后版本可被发送至路由器360。结果可随后提供至结果队列250和/或结果存储器270。请求工作者300可在一个或多个计算节点、系统或装置(例如,以下参照图10所述的计算系统1000)上实现。所示出的各种组件可被配置在硬件和/或软件组件中。
优先级队列310维持由前端210(如上参见图2所述)或另一组件或装置引导至优先级队列310的各种路由器特定请求。请求312a、312b、312c、312d、312e和312f可被维持在优先级队列310中直到被选择来服务。在各种实施方案中,请求工作者300可使用请求选择模块320。请求选择模块320可评估优先级队列310中的请求并拉取所选择的请求304来服务。例如,在一些实施方案中,请求选择模块320可确定或接收对请求312的优先级分数的指示。至少部分基于这些优先级分数,请求选择模块320可选择具有最高或接近最高优先级分数的那些请求312来服务。请求选择模块320可使用针对请求选择的各种技术(如下参照图6和图7所述),包括将多个请求312优化或合并成请求的单一的或数量减少的转换后版本。
在各种实施方案中,请求工作者300可实现节流控制330。节流控制330可针对可发送至路由器360的请求实施各种节流阈值或技术。在一些实施方案中,节流控制330可将用于追踪的请求报告至节流管理260,以及接收节流阈值和其他信息或指令以配置来自节流管理组件的节流334。节流控制330可(例如)监测针对路由器360的请求的速率并对发送至路由器360的全部请求、特定类型的请求(诸如低优先级请求)或来自特定客户端的请求进行节流。在一些实施方案中,节流控制330可使用如下参照图8所论述的各种节流技术。
在各种实施方案中,请求工作者300可使用报告模块340。报告模块340可被配置来处置接收到的查询结果,并将获取的路由器信息存储在一个或多个位置处。例如,报告模块340可确定,获取的路由器数据可以是存储344在结果存储器270中的健康或状态信息。而对于其他接收到的查询结果,报告模块340可被配置来确定,获取的路由器信息是服务于特定请求的,并且将请求路由器信息存储342在结果队列250中。在一些实施方案中,报告模块340可被配置来确定,新接收到的请求数据被存储在结果队列250中。
在各种实施方案中,请求工作者354可使用路由器专用请求转换模块350。路由器专用请求转换模块350可被配置来将根据程序设计接口格式化的请求312转换成特定于路由器360的程序设计接口。路由器专用请求转换模块350可访问可供请求工作者300访问的一个或多个库或知识库以便执行转换。路由器专用请求转换模块350随后可发送转换后的数据请求352,并接收回所请求的数据354。在一些实施方案中,路由器专用请求转换模块350可被配置来将所请求的数据354转换回与程序设计接口兼容的格式。
图4是根据各种实施方案示出客户端装置与路由器数据服务之间的交互作用的图。客户端400可以是利用路由器430的任何种类的提供商网络客户端。在各种实施方案中,客户端400可以是内部客户端(诸如内部客户端204),或外部客户端(诸如外部客户端202)。客户端400可经由在各种实施方案中均平台独立的路由器数据服务API与路由器数据服务200交互。例如,客户端400可发送根据路由器数据服务API 402格式化的对来自路由器430的路由器数据或信息的请求432,所述请求在前端210处接收。前端210可评估请求并在路由器430的恰当的路由器队列410中将请求排序434。工作者420可推动(pole)路由器队列410以评估对路由器430的未决请求。工作者420可根据针对未决请求的优先级方案选择请求436并从路由器队列410接收或拉取请求438。
工作者410可将请求转换成根据针对路由器430的特定路由器API 422格式化的请求的版本。请注意尽管示出了一个请求,但是请求可以是多个请求,并且因此请求的多个版本可被生成并根据特定路由器API 422被发送。在一些实施方案中,请求可被转换成接口(其不必是API)的任何版本。一旦被转换,请求的新版本可被发送440至路由器430以便获取所请求的数据。路由器430可服务于请求440并发送回路由器数据422,所述路由器数据还可根据路由器专用API 422被格式化。工作者420随后可在结果队列250内将检索到的路由器数据排序444。在一些实施方案中,来自多个路由器的结果可聚合并作为对针对来自多个路由器的信息的单一请求的响应来发送。前端210随后可从结果队列250选择检索到的路由器数据446并接收路由器数据448。前端210随后可将所请求的路由器数据提供450至客户端400。
图5是图,其示出了根据各种实施方案的客户端装置与路由器数据服务之间的交互作用。如上参照图4所论述的,路由器数据服务200可使用前端210来处置客户端请求。例如,对路由器数据的客户端请求502可经由路由器数据服务API 402被格式化,并在前端210处被接收。如上文所论述的,一些路由器数据或信息可维持在如结果存储器270(或结果队列250)的永久数据存储器中。在这个实例中,所请求的路由器数据502维持在结果存储器270中。对数据的请求可被发送504来从结果存储器270检索数据,所述结果存储器可发送回所请求的数据506。在一些实施方案中,前端210可确定来自结果存储器270的数据是否仍然有效。如果数据仍然有效,那么随后前端210可将路由器数据提供508至客户端500。如果无效,那么随后前端210可执行处置消息的各种请求以及以上图4所示的技术。
在图5所示的另一个实例中,客户端500将对路由器数据的请求510发送至前端210。然而,这个请求可能被不恰当地格式化或为无效的(例如,相对于路由器数据服务API402)。因此,无效请求消息412可被发送回客户端500,所述消息可指示无效性的原因(例如,响应可包括错误代码)。
关于特定提供商网络给出了实现根据以上参照图1-5所讨论的程序设计接口提供路由器信息的实例。各种其他类型或配置的提供商网络可实现这些技术。例如,其他架构或配置的路由器数据服务(例如,针对所述服务实现程序设计接口)可实现网络实体注册表。例如,可维持单个组或队列的对所有路由器的请求并且可从单个组拉取请求以进行转化、发送或其他处理。图6是根据一些实施方案示出用于根据程序设计接口提供路由器信息的各种方法和技术的高级流程图。可使用如上参照图1-5所描述的提供商网络的各种组件或其他提供商网络组件来实现这些技术。
在各种实施方案中,如610处所指示,可从提供商网络客户端接收对提供商网络的特定一个或多个路由器的特定路由器信息的请求。在至少一些实施方案中,可根据程序设计接口(API)使请求格式化。程序设计接口可支持对来自多个不同类型的路由器的路由器信息的请求或查询。这些不同类型的路由器中的每一个都可被配置成以不同方式访问,诸如根据特定于特定路由器类型的不同程序设计接口。例如,针对路由器类型的不同特定接口(例如,API)可能需要或使用不同的关键字来获取相同的信息(例如,路由器上的特定链接的链接状态)。然而,针对路由器信息的平台独立的程序设计接口可允许请求具有相同格式(例如,用于检查链接状态的相同的关键字),无论被引导至一种路由器类型或另一种路由器类型。
在一些实施方案中,可请求各种不同类型的路由器信息。例如,链接状态、边界网关协议(BGP)状态、地址解析协议(ARP)状态、虚拟局域网(VLAN)标签、差错、接收到的路由、所通告的路由或客户端可能采取措施来影响的任何其他路由器信息。在至少一些实施方案中,客户端可具有与提供商网络的专用连接。因此,对路由器信息的请求可包括对配置和/或操作专用连接有用的任何信息。注意,客户端还可处于提供商网络的内部。
如620处所指示,一旦接收到请求,可对请求进行评估以确定请求是否恰当。恰当的请求可与各种格式化、关键字、数据字段或其他程序设计接口特定需求相符。在至少一些实施方案中,还可关于客户端是否具有权限或访问权来做出特定请求对恰当的请求进行评估。例如,与外部客户端相比,内部客户端可拥有更大的访问权并且可因此利用更大范围的程序设计接口请求。如来自620的负退出所指示,可将差错响应622发送至发送不恰当请求的客户端。误差响应可指示请求的特定问题(例如,太多标志设置或未授权的访问),或者差错响应可仅拒绝请求。在各种实施方案中,可根据程序设计接口使差错响应本身格式化。
如630处所指示,还可确定是否已经请求特定路由器信息。例如,可从提供商网络中的路由器定期或频繁地收集一些路由器信息。此路由器信息可被集中存储或定位,使得不同的提供商网络服务或组件可能能够在不从路由器请求数据的情况下访问数据。数据可被存储并可指示期满点,期满之后所述数据可能不再有效。例如,在一些实施方案中,从路由器获取的路由器健康信息可存储在永久存储器中以供后续访问。如果已经或预先检索特定路由器信息,那么如来自630的正退出所指示,可(例如,从维持预先检索的路由器信息的永久数据存储器)获取特定路由器信息。
如果未曾预先检索特定信息(或曾预先检索信息但信息已不再有效),那么如640处所指示,可将请求与对特定路由器的路由器信息的其他未决请求一起维持。例如,在一些实施方案中,可将对特定路由器的请求维持或插入到队列(例如,优先级队列)或路由器的其他数据结构(可随后从所述数据结构中选择未决请求来服务)中。然而,在其他实施方案中,还可将所述请求与对其他路由器的请求一起维持,因此先前的实例不旨在进行限制。
如650处所指示,在各种实施方案中,随后可至少部分基于用于服务请求的优先级方案选择请求来服务。优先级方案可被简单定义,从而提供粗粒度优先顺序。例如,在一些实施方案中,可将来自内部客户端的请求视为高优先级并且可在来自外部客户端的请求之前选择来自内部客户端的请求进行处理(即使来自外部客户端的请求是在内部客户端请求之前接收到的)。相反地,在一些实施方案中,可在来自内部客户端的请求之后完成来自外部客户端的请求。根据来自每个客户端的特定请求类型,细粒度优先级方案可允许针对广泛变化的请求确定变化的优先级分数或优先级值并且导致(例如)选择在来自内部客户端的请求之前的来自外部客户端的请求。图7(以下所讨论的)提供根据优先级方案选择请求的其他实例。在至少一些实施方案中,可选择多个请求并将其组合成单一的转换后版本的请求。例如,多个请求可各自请求相同的路由器信息,或者可通过向特定路由器发送单一的转换后请求来获取针对请求的相应路由器信息。在一些实施方案中,因为针对路由器的程序设计接口可随着路由器的类型而变化,所以这些优化可以是特定于特定路由器的。
在各种实施方案中,如660处所指示,一旦选择,可根据针对特定路由器的程序设计接口将请求转换成对特定信息的请求的版本。例如,可将平台独立的请求“GET BGP_STATUS”转换成针对特定路由器的路由器特定请求“ACCESS BGP-STATUS”。转换请求可包括用转换的关键字(其中的一些可以是相同或不同的)以及足以满足针对路由器的特定程序设计接口的其他数据、符号或结构来填充转换后版本的各种字段。
如670处所指示,一旦转换,可将请求的版本发送至特定路由器以便获取特定信息。例如,每个路由器可维持只分配给API请求的特定接口。因此,可将请求发送至特定接口以便在特定路由器处将所述请求作为API请求来处理。
在各种实施方案中,如680处所指示,随后可根据程序设计接口将特定路由器信息提供至客户端。从特定路由器接收到的路由器信息和/或其他查询结果可以各种方式处置。在一些实施方案中,获取的路由器信息可在其被获取时发送至客户端。如下参照图9所描述,在一些实施方案中,特定信息可存储在数据结构(诸如队列)中,并且选择性地或智能地发送至请求客户端。
图7是根据各种实施方案示出用于根据优先级方案选择对路由器信息的要服务的请求的各种方法和技术的高级流程图。如上所述,为了确保提供重要功能、客户端(例如,提供商网络的内部客户端/服务)或事件的信息的某些请求被检测和快速追踪到(或者不保持对更大数量的不太重要的要服务的请求的等待),可实现各种优先级方案。在一些实施方案中,如710处所指示,可根据优先级方案确定发送至路由器的未决请求的相应优先级值。例如,前端组件(例如,以上参照图2所描述的前端210)或处置请求的其他接口可基于(例如)来源(外部或内部客户端)、请求类型(紧急请求或定期健康检查)、所请求的特定路由器信息、所请求的信息的数量或描述请求或提交所述请求的客户端的任何其他信息来打分、评分、计分或以其他方式指示特定请求的优先级。类似地,当(例如,由图2中的工作者230)评估请求以供选择时,可给所述请求计分。
在一些实施方案中,如720处所指示,除了确定优先级值,还可确定相应的未决时间。可将时间戳或其他指标与请求包括在一起以提供关于何时接收到请求的参考点,从而允许计算未决时间。在一些实施方案中,未决时间可以是隐含的或相对于其他请求被固有地描述。例如,在一些实施方案中,请求可维持在优先级队列中。例如,队列本身可通过排序指示特定请求的接收时间,所述请求以所述排序维持。
在各种实施方案中,如730处所指示,可选择具有确定的最高优先级值的候选请求。例如,如果3个请求具有相同的优先级分数8(其可能是未决请求中最高的优先级分数),那么3个请求可被识别为候选请求。然而,如果存在具有最高分数的单一请求,那么可选择该单一请求来服务(不必(如740处所指示)执行未决时间的任何比较)。如740处所指示,对于具有相同或相似优先级值(并因此被选为候选请求)的多个请求来说,具有最长未决时间的请求可被选为要服务的请求。例如,可在具有相同或相似优先级值的其他候选请求之前选择最靠近优先级队列前部的候选请求。
图8是根据一些实施方案示出用于对发送至提供商网络中的路由器的路由器信息的请求进行节流的各种方法和技术的高级流程图。对发送至提供商网络中的路由器的请求的节流可参照传入路由器请求的各种视图实现。可利用路由器专用视图、客户端专用视图或甚至全网视图来实现对速率的粗粒度控制和细粒度控制,路由器请求以所述速率在路由器处服务。以这种方式,路由器可能能够以有效或最佳的能力来执行路由功能。
在各种实施方案中,如810处所指示,可监测针对发送至提供商网络中的路由器的路由器信息的转换后的请求。例如,可收集、计算或以其他方式确定请求的各种速率或总数。在一些实施方案中,集中式组件(例如,图2中的节流管理模块260)可追踪对提供商网络中的全部路由器的传入请求的数量。因此,可评估对路由器的请求的全网视图。然而,在一些实施方案中,单独的组件(例如,工作者230)也可监测或追踪发送至特定路由器的请求。
在一些实施方案中,如820处所指示,可确定请求是否超过客户端专用阈值。例如,可设置客户端专用阈值以由特定客户端限制或阻止滥用行为或请求。因此,可追踪并评估在提供商网络中的特定路由器处或一些/全部路由器处的对客户端的请求。可确定请求的特定速率(例如,在特定时间段内)或请求的总数。如果来自客户端的请求的速率或总数超过了客户端专用阈值,那么,如从820的正退出所指示,可对来自客户端的请求进行节流,如830处所指示。例如,后续接收到的请求可能具有降低的优先级值,或被搁置以供在特定时间段内考虑。在一些实施方案中,节流请求可包括弹回或删去来自路由器队列或维持请求的其他结构的某些请求。
在一些实施方案中,如840处所指示,可确定请求是否超过路由器专用阈值。例如,可设置路由器专用阈值来限制或阻止:特定路由器被过载、对特定路由器其他功能(例如,路由)的性能的妨碍。因此,可追踪并评估在提供商网络中的特定路由器处接收到的请求。可确定请求的特定速率(例如,在特定时间段内)或请求的总数。如果对特定路由器的请求的速率或总数超过了路由器专用阈值,那么,如从840的正退出所指示,可对特定路由器的请求进行节流,如850处所指示。例如,后续接收到的请求可能具有降低的优先级值,或被搁置以供在特定时间段内考虑。在一些实施方案中,低优先级请求可被延迟考虑,而较高优先级的请求可能几乎不经历节流延迟。节流请求可包括弹回或删去来自路由器队列或维持请求的其他结构的某些请求。
在一些实施方案中,如860处所指示,可确定请求是否超过全网阈值。例如,可设置全网专用阈值来限制或阻止:提供商网络的路由器从整体上被过载;由路由器处的通信量拥挤导致对提供商网络的性能的妨碍。因此,可追踪并评估在提供商网络中的特定路由器处接收到的请求。可针对在路由器处发送/处理的请求确定请求的特定速率(例如,在特定时间段内)或请求的总数。如果对提供商网络的请求的速率或总数超过了全网阈值,那么,如从860的正退出所指示,可对提供商网络中的全部路由器的请求进行节流,如870处所指示。例如,后续接收到的请求可能具有降低的优先级值,或被搁置以供在特定时间段内考虑。在一些实施方案中,低优先级请求可被延迟考虑,而较高优先级的请求可能几乎不经历节流延迟。节流请求可包括弹回或删去来自路由器队列或维持请求的其他结构的某些请求。在一些实施方案中,可确定并实施针对特定路由器的不同的单独阈值。例如,一些路由器可经历针对路由器信息的较高请求负载。这些路由器可被提供或可实施(比其他路由器的阈值更低(并且因此更严格)的)节流阈值。以这种方式,有问题或关键的针对提供商网络的路由器可被定为目标以便于保护某些网络通信量资源或阻止过载路由器的传播或影响,所述过载路由器从整体上对提供商网络的路由器性能产生不利影响。
图9是根据一些实施方案示出用于选择检索到的路由器信息来提供至客户端的方法和技术的高级流程图。如上所述,根据使用各种优先级方案和节流技术以免过载提供商网络的路由器、抑制它们对应的路由功能的性能,以及服务于对信息的高优先级请求,可服务于对路由器信息的请求。类似地,可实现将请求的结果提供至客户端以使得这些针对所请求信息具有较高优先级或需要的请求较快地接收到结果。达到这种灵活性可通过各种方式来实现。例如,可针对查询结果维持针对不同请求优先级的不同队列,以使得可快速处理较高优先级队列中的所请求信息并将其发送至请求客户端。
在另一个实例中,可将针对请求的结果一起存储或维持,但是仍然可选择性地将其提供至客户端。如上关于维持接收到的结果所论述,可将这些结果维持在优先级队列或其他(在针对结果的排序以及针对结果的优先级中提供对应位置的)数据结构中。在一些实施方案中,如910处所指示,可根据用于服务对路由器数据的请求的优先级方案从一组维持在一起的查询结果中选择一个包括特定路由器信息的查询结果。在至少一些实施方案中,优先级方案可与用于选择请求来处理的优先级方案相同。例如,被快速选择来服务的高优先级请求还可被快速选择来提供至请求客户端。如上参照图7所论述,还可使用未决时间。例如,2个查询结果可具有相同的优先级值,因此未决时间可用于发送查询结果中等待时间最长的路由器信息。在一些实施方案中,各种机构可被实施以确保一些查询结果未代替较高优先级请求被长期延迟。例如,特定的机构可增加(具有超过某一阈值时间的未决时间的)查询结果的优先级值。在一些实施方案中,还可使用结果队列来存储来自单独路由器的信息并在将单一响应发送至客户端之前将所述信息聚合在一起。
如920处所指示的,一旦选择,可获取所识别的查询结果。例如,可按顺序发送(发往存储装置或其他存储或托管查询结果的组件的)请求以便检索查询结果。如930处所指示,一旦接收到,可根据发送请求的程序设计接口来格式化并发送所请求的包括路由器信息的查询结果。
在各种实施方案中,本文所述的方法可通过硬件和软件的任何结合来实施。例如,在一个实施方案中,所述方法可通过计算机系统(例如,图10中的计算机系统)来实施,所述计算机系统包括执行存储在耦合至处理器的计算机可读存储介质上的程序指令的一个或多个处理器。程序指令可被配置来实施本文所述的功能(例如,实施本文所述的路由器数据服务的各种服务器和其他组件的功能)。如图中所示和本文所述的各种方法表示方法的示例性实施方案。任何方法的顺序都可改变,并且各个元素可被添加、再排序、组合、省略、修改等。
可鉴于以下条款对本公开的实施方案进行描述:
1.一种提供商网络,其包括:
多个路由器,其被各自配置来将相应的一个或多个专用连接提供至所述提供商网络,其中所述多个路由器中的至少一些不同于所述多个路由器中的至少一些其他路由器;
多个计算节点,其一起实现针对所述提供商网络的路由器数据服务;
所述路由器数据服务,其被配置来:
接收来自所述提供商网络的客户端的对所述多个路由器中指定的一个或多个路由器的路由器信息的请求,其中所述请求根据程序设计接口被格式化;
将所述请求与对所述指定的一个或多个路由器的路由器信息的多个其他未决请求一起维持;
至少部分地基于用于服务针对所述多个路由器的请求的优先级方案来选择要服务的所述请求;
响应于要服务的所述请求的所述选择:
将对所述路由器信息的所述请求转换成所述请求的一个或多个版本,所述请求的所述一个或多个版本根据所述特定的一个或多个路由器的相应的一个或多个接口被格式化;
将所述请求的所述一个或多个版本发送至所述指定的一个或多个路由器以便获取所述路由器信息;并且
根据所述程序设计接口,将所述路由器信息提供至所述客户端。
2.如条款1所述的提供商网络,
其中多个不同客户端发送对来自所述多个路由器中的不同路由器的路由器信息的多个请求,其中所述路由器数据服务进一步被配置来执行对所述多个请求中的每一个的所述接收、所述维持、所述选择和所述发送,以使得所述多个请求的多个转换后版本被发送至所述多个路由器中的所述不同路由器;
其中所述多个计算节点实现用于服务发往所述多个路由器的请求的服务节流管理器和多个工作者;
所述服务节流管理器被配置来:
监测发送至所述多个路由器中的所述不同路由器的所述多个请求的所述多个转换后版本;
至少部分地基于所述监测确定节流请求阈值;
将所述节流请求阈值发送至所述多个工作者;
所述多个工作者,其被配置来:
对随后接收到的请求的转换后版本至所述多个路由器的发送进行节流,以使得不超过所述节流请求阈值。
3.如条款1所述的提供商网络,其还包括:
永久数据存储器,其被配置来维持预先检索到的针对所述多个路由器的路由器信息;
其中所述路由器数据服务进一步被配置来:
接收来自所述客户端的对所述指定的一个或多个路由器的其他路由器信息的另一个请求,其中所述另一个请求根据所述程序设计接口被格式化;
确定所述其他路由器信息维持在所述永久数据存储器处的所述预先检索到的路由器信息中;并且
响应于确定维持在所述永久数据存储器中的所述其他路由器信息是有效的,将维持在所述永久数据存储器处的所述预先检索到的路由器信息中的所述其他路由器信息发送至所述客户端。
4.如条款1所述的提供商网络,其中所述请求与对所述指定的一个或多个路由器的路由器信息的多个其他未决请求一起维持在优先级队列中。
5.一种方法,其包括:
通过一个或多个计算装置执行以下各项:
接收来自提供商网络的客户端的对来自所述提供商网络的指定的一个或多个路由器的路由器信息的请求,其中所述请求根据程序设计接口被格式化,其中所述指定的一个或多个路由器是实现为所述提供商网络的一部分的多个路由器中的一个或多个,其中所述多个路由器中的至少一些不同于所述多个路由器中的至少一些其他路由器;
将对所述路由器信息的所述请求的一个或多个版本发送至所述指定的一个或多个路由器以便获取所述路由器信息,其中所述请求的所述一个或多个版本根据针对所述指定的一个或多个路由器的相应的一个或多个接口被格式化;以及
根据所述程序设计接口,将所述路由器信息提供至所述客户端。
6.如条款5所述的方法,其还包括:
将所述请求与对所述指定的一个或多个路由器的路由器信息的多个其他未决请求一起维持;
至少部分地基于用于服务对所述多个路由器的请求的优先级方案来选择要服务的所述请求;并且
其中所述发送所述请求的所述一个或多个版本响应于选择所述请求而执行。
7.如条款6所述的方法,其中多个不同客户端发送对来自所述多个路由器中的不同路由器的路由器数据的多个请求,其中针对所述多个请求中的每一个执行所述接收、所述维持、所述选择和所述发送,以使得所述多个请求的多个转换后版本被发送至所述多个路由器中的所述不同路由器,并且其中所述方法还包括:
监测发送至所述多个路由器中的所述不同路由器的所述多个请求的所述多个转换后版本;
至少部分地基于所述监测确定超过了节流请求阈值;
响应于确定超过了所述节流请求阈值,对发送至所述多个路由器中的至少一个的随后接收到的请求的转换后版本进行节流。
8.如条款7所述的方法,其中所述节流请求阈值是特定于所述多个客户端中的特定客户端的阈值,并且其中所述对所述随后接收到的请求的转换后版本进行节流包括对从所述特定客户端接收到的请求进行节流,以使得不超过特定于所述特定客户端的所述阈值。
9.如条款7所述的方法,其中所述节流请求阈值是特定于所述提供商网络的阈值,并且其中所述对所述随后接收到的请求的转换后版本进行节流包括对所述多个路由器中的每一个处的请求进行节流,以使得不超过特定于所述提供商网络的所述阈值。
10.如条款6所述的方法,其中所述选择要服务的所述请求包括:
根据所述优先级方案确定所述请求和对所述指定的一个或多个路由器的路由器信息的所述多个其他未决请求中的每一个的相应优先级值;
确定所述请求和对所述指定的一个或多个路由器的路由器信息的所述多个其他未决请求中的每一个的相应未决时间;
将所述请求和所述多个其他未决请求中的每一个之中的具有所述最高相应优先级值的一个或多个未决请求识别为候选请求;以及
从所述一个或多个候选请求之中选择具有最长相应未决时间的候选请求,其中所选择的候选请求是所述请求。
11.如条款5所述的方法,其中所述客户端是在所述提供商网络外部的客户端,其中所述请求是在选择所述其他未决请求中的一个或多个之后选择的,其中所述一个或多个其他未决请求是从在所述提供商网络内部的客户端接收的。
12.如条款5所述的方法,其中所述客户端是在所述提供商网络内部的客户端,其中所述请求是在选择所述其他未决请求中的一个或多个之前选择的,其中所述一个或多个其他未决请求是从在所述提供商网络外部的客户端接收的。
13.如条款5所述的方法,其中接收根据所述程序设计接口被格式化的来自所述客户端的对来自所述指定的一个或多个路由器的其他路由器信息的另一个请求,并且其中所述方法还包括:
确定所述其他路由器信息被预先检索到并且是有效的;以及
响应于所述确定,将所述其他路由器信息提供至所述客户端。
14.如条款5所述的方法,其中所述将所述路由器信息提供至所述客户端包括:
根据用于服务对所述多个路由器的请求的所述优先级方案来选择包括所述路由器信息的查询结果,其中所述查询结果与包括相应路由器信息的多个其他查询结果一起维持;
获取所选择的查询结果;以及
将所述路由器信息发送至所述客户端。
15.一种存储程序指令的非暂时性计算机可读存储介质,所述程序指令在由多个计算装置执行时致使所述多个计算装置实现以下操作:
接收来自提供商网络的客户端的对来自所述提供商网络的指定的一个或多个路由器的路由器信息的请求,其中所述请求根据程序设计接口被格式化,其中所述指定的一个或多个路由器是实现为所述提供商网络的一部分的多个路由器中的一个或多个,其中所述多个路由器中的至少一些不同于所述多个路由器中的至少一些其他路由器;
将对所述路由器信息的所述请求转换成对所述路由器信息的所述请求的一个或多个版本,所述请求的所述一个或多个版本根据针对所述指定的一个或多个路由器的相应的一个或多个接口被格式化;
将所述请求的所述一个或多个版本发送至所述指定的一个或多个路由器以便获取所述路由器信息;并且
根据所述程序设计接口,将所述路由器信息提供至所述客户端。
16.如条款15所述的非暂时性计算机可读存储介质,其中所述程序指令进一步致使所述一个或多个计算装置实现以下操作:
将所述请求与对所述特定的一个或多个路由器的路由器信息的多个其他未决请求一起维持;
至少部分地基于用于服务对所述多个路由器的请求的优先级方案来选择要服务的所述请求;并且
其中所述发送所述请求的所述转换和所述请求的所述一个或多个版本响应于选择要服务的所述请求而执行。
17.如条款16所述的非暂时性计算机可读存储介质,其中多个不同客户端发送对来自所述多个路由器中的不同路由器的路由器数据的多个请求,其中针对所述多个请求中的每一个执行所述接收、所述维持、所述选择、所述转换和所述发送,以使得所述多个请求的多个转换后版本被发送至所述多个路由器中的所述不同路由器,并且其中所述程序指令致使所述一个或多个计算装置实现以下操作:
监测发送至所述多个路由器中的所述不同路由器的所述多个请求的所述多个转换后版本;
至少部分地基于所述监测确定超过了节流请求阈值;
响应于确定超过了所述节流请求阈值,对发送至所述多个路由器中的至少一个的随后接收到的请求的转换后版本进行节流。
18.如条款17所述的非暂时性计算机可读存储介质,其中所述节流请求阈值是特定于所述多个路由器中的特定路由器的阈值,并且其中对所述随后接收到的请求的所述转换后版本进行所述节流包括对所述特定路由器接收到的请求进行节流,以使得不超过特定于所述特定路由器的所述阈值。
19.如条款16所述的非暂时性计算机可读存储介质,其中,在所述选择所述要服务的请求中,所述程序指令致使所述一个或多个计算装置进一步实现以下各项:
根据所述优先级方案确定所述请求和对所述指定的一个或多个路由器的路由器信息的所述多个其他未决请求中的每一个的相应优先级值;
确定所述请求和对所述指定的一个或多个路由器的路由器信息的所述多个其他未决请求中的每一个的相应未决时间;
将所述请求和所述多个其他未决请求中的每一个之中的具有所述最高相应优先级值的一个或多个未决请求识别为候选请求;以及
从所述一个或多个候选请求之中选择具有最长相应未决时间的候选请求,其中所选择的候选请求是所述请求。
20.如条款15所述的非暂时性计算机可读存储介质,其中所述程序指令致使所述一个或多个计算装置实现以下各项:
接收来自所述客户端的对来自所述指定的一个或多个路由器的其他路由器信息的另一个请求,其中所述另一个请求根据所述程序设计接口被格式化;以及
响应于确定所述另一个请求是不恰当的,将根据所述程序设计接口被格式化的差错响应发送至所述客户端。
21.如条款15所述的非暂时性计算机可读存储介质,其中所述多个路由器被实现为所述提供商网络的边缘路由器。
22.如条款15所述的非暂时性计算机可读存储介质,其中所述程序指令致使所述一个或多个计算装置实现以下各项:
接收来自所述客户端的对来自所述指定的一个或多个路由器的其他路由器信息的另一个请求,其中所述另一个请求根据所述程序设计接口被格式化;
确定所述其他路由器信息已经检索到并且是无效的;以及
响应于所述确定,执行针对所述另一个请求的所述维持、所述选择、所述转换、所述发送和所述提供。
如本文所述的根据程序设计接口提供路由器信息的实施方案可在一个或多个计算机系统上执行,所述计算机系统可与各种其他设备交互。图10是根据各种实施方案示出示例性计算机系统的框图。例如,在不同的实施方案中,计算机系统1000可被配置来实现路由器数据服务的节点、永久数据存储器和/或客户端。计算机系统1000可以是各种类型的装置中的任何一种,包括但不限于:个人计算机系统、台式电脑、膝上型电脑或笔记本电脑、主机计算机系统、手持式计算机、工作站、网络计算机、消费装置、应用服务器、存储装置、电话、移动电话、或大体上任何类型的计算装置。
计算机系统1000包括通过输入/输出(I/O)接口1030耦合至系统存储器1020的一个或多个处理器1010(其中的任何一个可包括多个核心,所述多个核心可以是单线程的或多线程的)。计算机系统1000还包括耦合至I/O接口1030的网络接口1040。在各种实施方案中,计算机系统1000可以是包括一个处理器1010的单处理器系统,或包括若干处理器1010(例如两个、四个、八个或另一合适数量)的多处理器系统。处理器1010可以是能够执行指令的任何合适的处理器。例如,在各种实施方案中,处理器1010可以是实现各种指令集架构(ISA)中任何一种架构的通用或嵌入式处理器,所述架构诸如x86、PowerPC、SPARC或MIPSISA或任何其他合适的ISA。在多处理器系统中,每一个处理器1010可通常但不一定实现相同的ISA。计算机系统1000还包括一个或多个网络通信装置(例如,网络接口1040)以用于与其他系统和/或组件通过通信网络(例如,互联网、LAN等)通信。例如,在系统1000上执行的客户端应用可使用网络接口1040来与在单个服务器或一组服务器上执行的服务器应用通信,所述一组服务器实现本文所述系统的一个或多个组件。在另一实例中,在计算机系统1000上执行的服务器应用的实例可使用网络接口1040来与可能在其他计算机系统(例如,计算机系统1090)上执行的服务器应用(或另一服务器应用)的其他实例通信。
在所示出的实施方案中,计算机系统1000还包括一个或多个永久存储器装置1060和/或一个或多个I/O装置1080。在各种实施方案中,永久存储器装置1060可对应于磁盘驱动、磁带驱动、固态存储器、其他大容量存储器装置、或任何其他永久存储器装置。计算机系统1000(或分布式应用或在其上操作的操作系统)可如期望的将指令和/或数据存储在永久存储器装置1060中,并且可按需检索存储的指令和/或数据。例如,在一些实施方案中,计算机系统1000可托管存储器系统服务器节点,并且永久存储器1060可包括附接至所述服务器节点的SSD。
计算机系统1000包括被配置来存储可由处理器1010访问的指令和数据的一个或多个系统存储器1020。在各种实施方案中,系统存储器1020可使用任何合适的存储器技术(例如,高速缓冲存储器、静态随机存取存储器(SRAM)、DRAM、RDRAM、EDO RAM、DDR 10RAM、同步动态RAM(SDRAM)、Rambus RAM、EEPROM、非暂时性/闪存类型的存储器、或任何其他类型的存储器中的一个或多个)来实现。系统存储器1020可包括程序指令1025,所述程序指令1025可由处理器1010执行以便实施本文所述的方法和技术。在各种实施方案中,程序指令1025可以平台本地二进制、任何解释型语言(诸如JavaTM字节代码)、或以任何其他语言(诸如C/C++、JavaTM等)、或以其任何组合来编码。例如,在所示出的实施方案中,程序指令1025包括在不同实施方案中可被执行来实现提供商网络的功能的程序指令。在一些实施方案中,程序指令1025可实现多个单独的客户端、服务器节点和/或其他组件。
在一些实施方案中,程序指令1025可包括可被执行来实现操作系统(未示出)的指令,所述操作系统可以是各种操作系统(诸如UNIX、LINUX、SolarisTM、MacOSTM、WindowsTM等)中任何一种。任何或全部程序指令1025都可被提供为可包括具有在其上存储的指令的非暂时性计算机可读存储介质的计算机程序产品或软件,所述指令可用于编程计算机系统(或其他电子装置)以便根据各种实施方案执行进程。非暂时性计算机可读存储介质可包括用于以机器(例如,计算机)可读的形式(例如,软件、处理应用)存储信息的任何机构。一般来说,非暂时性计算机可访问介质可包括计算机可读的存储介质或存储器介质,诸如磁性介质或光学介质,例如经由I/O接口1030耦合至计算机系统1000的磁盘或DVD/CD-ROM。非暂时性计算机可读存储介质还可包括可作为系统存储器1020或另一类型的存储器被包括在计算机系统1000的一些实施方案中的任何易失性或非易失性介质,诸如RAM(例如,SDRAM、DDR SDRAM、RDRAM、SRAM等)、ROM等。在其他实施方案中,程序指令可使用通过通信介质(诸如网络链接和/或无线链接)传送的光学、声学或其他形式的传播信号(例如,载波、红外线信号、数字信号等)来通信,诸如可通过网络接口1040来实现。
在一些实施方案中,系统存储器1020可包括可如本文所述配置的数据存储器1045。一般而言,系统存储器1020(例如,系统存储器1020内的数据存储器1045)、永久存储器1060、和/或远程存储器1070可存储数据块、数据块复制品、与数据块和/或它们的状态关联的元数据、配置信息和/或可在实施本文所述的方法和技术中使用的任何其他信息。
在一个实施方案中,I/O接口1030可被配置来协调处理器1010、系统存储器1020与系统中任何外围装置之间的I/O通信量,包括通过网络接口1040或其他外围接口。在一些实施方案中,I/O接口1030可执行任何必需协议、时序或其他数据转换以将来自一个组件(例如,系统存储器1020)的数据信号转变成适合于由另一个组件(例如,处理器1010)使用的格式。例如,在一些实施方案中,I/O接口1030可包括对于通过各种类型的外围总线附接的装置的支持,所述外围总线诸如外围组件互连(PCI)总线标准或通用串行总线(USB)标准的改变形式。例如,在一些实施方案中,I/O接口1030的功能可分到两个或更多个单独的组件中,诸如北桥和南桥。另外,在一些实施方案中,I/O接口1030的一些或全部功能(诸如至系统存储器1020的接口)可直接并入处理器1010中。
例如,网络接口1040可被配置来允许数据在计算机系统1000与附接至网络的其他装置之间交换,所述其他装置诸如其他计算机系统1090(其可实现一个或多个存储器系统服务器节点、数据库引擎头节点和/或本文所述的数据库系统的客户端)。此外,网络接口1040可被配置来允许在计算机系统1000与各种I/O装置1050和/或远程存储器1070之间的通信。在一些实施方案中,输入/输出装置1050可包括一个或多个显示终端、键盘、小键盘、触摸屏、扫描装置、语音或光学识别装置,或适合于由一个或多个计算机系统1000输入或检索数据的任何其他装置。多个输入/输出装置1050可存在于计算机系统1000中或可分布于包括计算机系统1000的分布式系统的不同节点上。在一些实施方案中,类似输入/输出装置可与计算机系统1000分开并且可通过有线或无线连接(诸如通过网络接口1040)来与包括计算机系统1000的分布式系统的一个或多个节点交互作用。网络接口1040通常可支持一个或多个无线网络协议(例如,Wi-Fi/IEEE 802.11或另一无线网络标准)。然而,在各种实施方案中,例如,网络接口1040可支持通过任何合适的有线或无线通用数据网络(诸如其他类型的以太网网络)进行通信。另外,网络接口1040可支持通过电信/电话网络(诸如模拟语音网络或数字光纤通信网络)、通过存储区域网络(诸如光纤通道SAN)或通过任何其他合适类型的网络和/或协议进行通信。在各种实施方案中,计算机系统1000可包括多于、少于或不同于图10中所示出的那些的组件(例如,显示器、视频卡、音频卡、外围装置、其他网络接口(诸如ATM接口、以太网接口、帧中继接口)等)。
注意本文所述的分布式系统实施方案中的任何一个,或它们的组件中的任何一个,可作为一个或多个基于网络的服务被实现。例如,在计算服务内的计算集群可提供计算服务和/或其他类型的服务,所述计算服务和/或其他的类型服务对客户端采用本文所述的分布式计算系统(作为基于网络的服务)。在一些实施方案中,基于网络的服务可由被设计来支持通过网络的彼此协作的机对机交互作用的软件和/或硬件系统来实现。基于网络的服务可具有以机器可处理格式描述的接口,诸如网络服务描述语言(WSDL)。其他系统可以由对基于网络的服务的接口的描述所规定的方式与基于网络的服务交互作用。例如,基于网络的服务可限定其他系统可调用的各种操作,并且可限定特定的应用编程接口(API),当请求各种操作时,其他系统可能期望符合所述特定的应用编程接口(API)。
在各种实施方案中,通过使用包括与基于网络的服务请求关联的参数和/或数据的消息,基于网络的服务可被请求或调用。此类消息可根据特定的标记语言(诸如可延伸标记语言(XML))被格式化,和/或可使用协议(诸如简单对象访问协议(SOAP))来封装。为执行基于网络的服务请求,基于网络的服务客户端可组装包括所述请求的消息,并且使用基于互联网的应用层转移协议(诸如超文本传输协议(HTTP))将所述消息传达至对应于基于网络的服务的可寻址端点(例如,统一资源定位符(URL))。
在一些实施方案中,基于网络的服务可使用表述性状态传输(“RESTful”)技术而不是基于消息的技术来实现。例如,根据RESTful技术实现的基于网络的服务可通过包括在HTTP方法(诸如PUT、GET或DELETE)内而不是封装在SOAP消息内的参数来调用。
尽管已相当详细地描述了以上实施方案,但一旦完全了解以上公开内容,各种改变和修改对所属领域的技术人员将变为显而易见。旨在以下权利要求被解释成包括所有此类修改和改变,并且相应地,以上描述应被视为具有说明性而非限制性意义。

Claims (15)

1.一种提供路由器信息的方法,其包括:
通过一个或多个计算装置执行以下各项:
接收来自提供商网络的客户端的对来自所述提供商网络的指定的一个或多个路由器的路由器信息的请求,其中所述请求根据程序设计接口被格式化,其中所述指定的一个或多个路由器是实现为所述提供商网络的一部分的多个路由器中的一个或多个,其中所述多个路由器中的至少一些不同于所述多个路由器中的至少一些其他路由器;
将对所述路由器信息的所述请求的一个或多个版本发送至所述指定的一个或多个路由器以便获取所述路由器信息,其中所述请求的所述一个或多个版本根据所述指定的一个或多个路由器的相应的一个或多个接口被格式化;以及
根据所述程序设计接口,将所述路由器信息提供至所述客户端。
2.如权利要求1所述的方法,其还包括:
将所述请求与对所述指定的一个或多个路由器的路由器信息的多个其他未决请求一起维持;
至少部分地基于用于服务针对所述多个路由器的请求的优先级方案来选择要服务的所述请求;并且
其中所述发送所述请求的所述一个或多个版本响应于选择所述请求而执行。
3.如权利要求2所述的方法,其中多个不同客户端发送对来自所述多个路由器中的不同路由器的路由器数据的多个请求,其中针对所述多个请求中的每一个执行所述接收、所述维持、所述选择和所述发送,以使得所述多个请求的多个转换后版本被发送至所述多个路由器中的所述不同路由器,并且其中所述方法还包括:
监测发送至所述多个路由器中的所述不同路由器的所述多个请求的所述多个转换后版本;
至少部分地基于所述监测确定所述多个请求的所述多个转换后版本超过了节流请求阈值;
响应于确定所述多个请求的所述多个转换后版本超过了所述节流请求阈值,对发送至所述多个路由器中的至少一个的随后接收到的请求的转换后版本进行节流。
4.如权利要求3所述的方法,其中所述节流请求阈值是特定于所述多个客户端中的特定客户端的阈值,并且其中所述对所述随后接收到的请求的转换后版本进行节流包括对从所述特定客户端接收到的请求进行节流,以使得从所述特定客户端接收到的请求不超过特定于所述特定客户端的阈值。
5.如权利要求3所述的方法,其中所述节流请求阈值是特定于所述提供商网络的阈值,并且其中所述对所述随后接收到的请求的转换后版本进行节流包括对所述多个路由器中的每一个处的请求进行节流,以使得所述提供商网络中的全部所述多个路由器的请求不超过特定于所述提供商网络的所述阈值。
6.如权利要求2所述的方法,其中所述选择要服务的所述请求包括:
根据所述优先级方案确定所述请求和对所述指定的一个或多个路由器的路由器信息的所述多个其他未决请求中的每一个的相应优先级值;
确定所述请求和对所述指定的一个或多个路由器的路由器信息的所述多个其他未决请求中的每一个的相应未决时间;
将所述请求和所述多个其他未决请求中的每一个之中的具有最高相应优先级值的一个或多个未决请求识别为候选请求;以及
从所述一个或多个候选请求之中选择具有最长相应未决时间的候选请求,其中所选择的候选请求是所述请求。
7.如权利要求2所述的方法,其中所述客户端是在所述提供商网络内部的客户端,其中所述请求是在选择所述其他未决请求中的一个或多个之前选择的,其中所述其他未决请求中的一个或多个是从在所述提供商网络外部的客户端接收的。
8.如权利要求2所述的方法,其中所述将所述路由器信息提供至所述客户端包括:
根据用于服务针对所述多个路由器的请求的所述优先级方案来选择包括所述路由器信息的查询结果,其中所述查询结果与包括相应路由器信息的多个其他查询结果一起维持;
获取所选择的查询结果;以及
将所述路由器信息发送至所述客户端。
9.一种提供路由器信息的系统,其包括:
一个或多个计算装置,其耦合至存储程序指令的一个或多个非暂时性计算机可读存储介质,所述程序指令在由所述一个或多个计算装置执行时致使所述一个或多个计算装置:
接收来自提供商网络的客户端对来自所述提供商网络的指定的一个或多个路由器的路由器信息的请求,其中所述请求根据程序设计接口被格式化,其中所述指定的一个或多个路由器是实现作为所述提供商网络的一部分的多个路由器中的一个或多个,其中所述多个路由器中的至少一些不同于所述多个路由器中的至少一些其他路由器;
将对所述路由器信息的所述请求转换成对所述路由器信息的所述请求的一个或多个版本,所述一个或多个版本根据所述指定的一个或多个路由器的相应的一个或多个接口被格式化;
将所述请求的所述一个或多个版本发送至所述指定的一个或多个路由器以便获取所述路由器信息;并且
根据所述程序设计接口,将所述路由器信息提供至所述客户端。
10.如权利要求9所述的系统,其中所述程序指令进一步致使所述一个或多个计算装置:
将所述请求与对所述指定的一个或多个路由器的路由器信息的多个其他未决请求一起维持;
至少部分地基于用于服务针对所述多个路由器的请求的优先级方案来选择要服务的所述请求;并且
其中所述转换所述请求以及所述发送所述请求的所述一个或多个版本响应于选择要服务的所述请求而执行。
11.如权利要求10所述的系统,其中从多个不同客户端接收对来自所述多个路由器中的不同路由器的路由器数据的多个请求,其中针对所述多个请求中的每一个执行所述接收、所述维持、所述选择、所述转换和所述发送,以使得所述多个请求的多个转换后版本被发送至所述多个路由器中的所述不同路由器,并且其中所述程序指令致使所述一个或多个计算装置:
监测发送至所述多个路由器中的所述不同路由器的所述多个请求的所述多个转换后版本;
至少部分地基于所述监测确定所述多个请求的所述多个转换后版本超过了节流请求阈值;
响应于确定所述多个请求的所述多个转换后版本超过了所述节流请求阈值,对发送至所述多个路由器中的至少一个的随后接收到的请求的转换后版本进行节流。
12.如权利要求11所述的系统,其中所述节流请求阈值是特定于所述多个路由器中的特定路由器的阈值,并且其中所述对所述随后接收到的请求的转换后版本进行节流包括对接收到的针对所述特定路由器的请求进行节流,以使得接收到的针对所述特定路由器的请求不超过特定于所述特定路由器的阈值。
13.如权利要求10所述的系统,其中,在所述选择要服务的所述请求中,所述程序指令致使所述一个或多个计算装置:
根据所述优先级方案确定所述请求和对所述指定的一个或多个路由器的路由器信息的所述多个其他未决请求中的每一个的相应优先级值;
确定所述请求和对所述指定的一个或多个路由器的路由器信息的所述多个其他未决请求中的每一个的相应未决时间;
将所述请求和所述多个其他未决请求中的每一个之中的具有最高相应优先级值的一个或多个未决请求识别为候选请求;并且
从所述一个或多个候选请求之中选择具有最长相应未决时间的候选请求,其中所选择的候选请求是所述请求。
14.如权利要求9所述的系统,其中所述程序指令致使所述一个或多个计算装置:
接收来自所述客户端的对来自所述指定的一个或多个路由器的其他路由器信息的另一个请求,其中所述另一个请求根据所述程序设计接口被格式化;并且
响应于确定所述另一个请求是不恰当的,将根据所述程序设计接口被格式化的差错响应发送至所述客户端。
15.如权利要求9所述的系统,其中所述多个路由器被实现为所述提供商网络的边缘路由器。
CN201580028355.4A 2014-05-29 2015-05-29 根据程序设计接口提供路由器信息 Active CN106464584B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/290,680 2014-05-29
US14/290,680 US9059941B1 (en) 2014-05-29 2014-05-29 Providing router information according to a programmatic interface
PCT/US2015/033219 WO2015184282A1 (en) 2014-05-29 2015-05-29 Providing router information according to a programmatic interface

Publications (2)

Publication Number Publication Date
CN106464584A CN106464584A (zh) 2017-02-22
CN106464584B true CN106464584B (zh) 2019-12-06

Family

ID=53279990

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580028355.4A Active CN106464584B (zh) 2014-05-29 2015-05-29 根据程序设计接口提供路由器信息

Country Status (7)

Country Link
US (1) US9059941B1 (zh)
EP (1) EP3149921B1 (zh)
JP (1) JP6539341B2 (zh)
CN (1) CN106464584B (zh)
AU (1) AU2015266790B2 (zh)
CA (1) CA2950210C (zh)
WO (1) WO2015184282A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10455387B2 (en) 2015-05-13 2019-10-22 CyberReef Solutions Inc. Network-based Machine-to-Machine (M2M) private networking system
US10944850B2 (en) * 2018-10-29 2021-03-09 Wandisco, Inc. Methods, devices and systems for non-disruptive upgrades to a distributed coordination engine in a distributed computing environment
US11218380B2 (en) 2019-10-04 2022-01-04 Cisco Technology, Inc. Closed loop automation for intent-based networking
US11218381B2 (en) 2019-10-04 2022-01-04 Cisco Technology, Inc. Service tagging optimization for intent-based networking
US11201799B2 (en) 2019-10-15 2021-12-14 Cisco Technology, Inc. Intelligent selection of vantage points for monitoring subservices based on potential impact to services
US11088928B2 (en) 2019-10-15 2021-08-10 Cisco Technology, Inc. Service aware conditional path monitoring
US11228507B2 (en) 2019-12-05 2022-01-18 Cisco Technology, Inc. Baselining service-tagged data from subservices of a service for service assurance
US10938661B1 (en) 2019-12-05 2021-03-02 Cisco Technology, Inc. Service heatmap-based telemetry feedback loop
CN114095476B (zh) * 2020-07-02 2022-12-13 荣耀终端有限公司 电子设备查询路由器接口的方法、路由器及通信系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998033305A1 (fr) * 1997-01-28 1998-07-30 Sextant Avionique Procede et dispositif de routage generique de messages transmis dans des formats et selon des protocoles differents
CN101764696A (zh) * 2009-11-27 2010-06-30 福建星网锐捷网络有限公司 分布式路由交换设备及其实现方法
CN103415062A (zh) * 2013-07-17 2013-11-27 北京创毅讯联科技股份有限公司 一种网络连接装置、无线路由器和网络连接方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3293719B2 (ja) * 1994-09-30 2002-06-17 富士通株式会社 ネットワーク管理システム
US7194554B1 (en) * 1998-12-08 2007-03-20 Nomadix, Inc. Systems and methods for providing dynamic network authorization authentication and accounting
US6810427B1 (en) 1999-04-23 2004-10-26 Nortel Networks Limited Router table manager
US7072946B2 (en) * 2001-05-31 2006-07-04 Juniper Networks, Inc. Network router management interface with API invoked via login stream
US20050182675A1 (en) * 2001-11-30 2005-08-18 Alison Huettner System for converting and delivering multiple subscriber data requests to remote subscribers
US8126722B2 (en) * 2001-12-20 2012-02-28 Verizon Business Global Llc Application infrastructure platform (AIP)
JP3801129B2 (ja) * 2002-10-09 2006-07-26 日本電気株式会社 ルータパラメータ設定システム及びその方法
US8036139B2 (en) * 2002-10-28 2011-10-11 Cisco Technology, Inc. Internal BGP downloader
US7886075B2 (en) 2003-05-16 2011-02-08 Cisco Technology, Inc. Arrangement for retrieving routing information for establishing a bidirectional tunnel between a mobile router and a correspondent router
US20040255028A1 (en) * 2003-05-30 2004-12-16 Lucent Technologies Inc. Functional decomposition of a router to support virtual private network (VPN) services
US7499459B1 (en) 2004-02-05 2009-03-03 Cisco Technology, Inc. Partitioned routing information base
WO2006063118A2 (en) * 2004-12-07 2006-06-15 Pure Networks, Inc. Network management
US8478849B2 (en) * 2004-12-07 2013-07-02 Pure Networks LLC. Network administration tool
JP5621510B2 (ja) 2010-10-29 2014-11-12 日本電気株式会社 モバイルルータ情報管理サーバ、モバイルルータ、モバイルルータネットワーク、及びこれらの通信方法
EP2786261B1 (en) * 2011-11-29 2020-02-26 Amazon Technologies, Inc. Interfaces to manage direct network peerings
US8724642B2 (en) * 2011-11-29 2014-05-13 Amazon Technologies, Inc. Interfaces to manage direct network peerings
US9215131B2 (en) * 2012-06-29 2015-12-15 Cisco Technology, Inc. Methods for exchanging network management messages using UDP over HTTP protocol

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998033305A1 (fr) * 1997-01-28 1998-07-30 Sextant Avionique Procede et dispositif de routage generique de messages transmis dans des formats et selon des protocoles differents
CN101764696A (zh) * 2009-11-27 2010-06-30 福建星网锐捷网络有限公司 分布式路由交换设备及其实现方法
CN103415062A (zh) * 2013-07-17 2013-11-27 北京创毅讯联科技股份有限公司 一种网络连接装置、无线路由器和网络连接方法

Also Published As

Publication number Publication date
EP3149921A1 (en) 2017-04-05
AU2015266790A1 (en) 2016-12-15
EP3149921B1 (en) 2022-10-26
AU2015266790B2 (en) 2017-12-14
CN106464584A (zh) 2017-02-22
WO2015184282A1 (en) 2015-12-03
CA2950210C (en) 2020-05-12
JP2017524314A (ja) 2017-08-24
CA2950210A1 (en) 2015-12-03
US9059941B1 (en) 2015-06-16
JP6539341B2 (ja) 2019-07-03

Similar Documents

Publication Publication Date Title
CN106464584B (zh) 根据程序设计接口提供路由器信息
Han et al. Evaluating blockchains for IoT
US10503568B2 (en) Asynchronous handling of service requests
US10706028B2 (en) Detecting outliers in server transaction time as a form of time series data
US10795740B2 (en) Parameter delegation for encapsulated services
US20220058042A1 (en) Intent-based telemetry collection service
US8554980B2 (en) Triggered notification
CN105683918B (zh) 分布式系统中的集中式联网配置
JP2016514311A (ja) 単一テナント及び複数テナント環境を提供するデータベースシステム
CN107426007B (zh) 用于跟踪网络交换机中的网络装置信息的方法及系统
CN111258627A (zh) 一种接口文档生成方法和装置
US10778512B2 (en) System and method for network provisioning
US10785056B1 (en) Sharing a subnet of a logically isolated network between client accounts of a provider network
US10164854B2 (en) Providing dynamic latency in an integration flow
WO2022072108A1 (en) Adaptive data loss prevention
US20130132552A1 (en) Application-Aware Quality Of Service In Network Applications
US10348814B1 (en) Efficient storage reclamation for system components managing storage
US20220244976A1 (en) Containers on demand
US11663058B1 (en) Preemptive filtering of events of an event bus with a deterministic filter
US10505792B1 (en) Methods for facilitating network traffic analytics and devices thereof
US11533308B2 (en) Systems and methods for supporting unauthenticated post requests through a reverse proxy enabled for authentication
US10749747B1 (en) Methods for managing network device configurations and devices thereof
Sunita et al. Tools for Cloud for Resource Management: NOVA and SNMP
JP5823919B2 (ja) 分散実行システム、方法、装置およびプログラム
Pereira et al. Towards scalability for federated identity systems for cloud-Based environments

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant