CN110809875B - 服务对等交换 - Google Patents

服务对等交换 Download PDF

Info

Publication number
CN110809875B
CN110809875B CN201880039255.5A CN201880039255A CN110809875B CN 110809875 B CN110809875 B CN 110809875B CN 201880039255 A CN201880039255 A CN 201880039255A CN 110809875 B CN110809875 B CN 110809875B
Authority
CN
China
Prior art keywords
service
exchange
peer
endpoint
application
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
CN201880039255.5A
Other languages
English (en)
Other versions
CN110809875A (zh
Inventor
S·A·马登
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.)
Equinix Inc
Original Assignee
Equinix 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 Equinix Inc filed Critical Equinix Inc
Priority to CN202211584867.7A priority Critical patent/CN115941391A/zh
Publication of CN110809875A publication Critical patent/CN110809875A/zh
Application granted granted Critical
Publication of CN110809875B publication Critical patent/CN110809875B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/2871Implementation details of single intermediate entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols

Landscapes

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

Abstract

本公开描述了用于向执行数据中心内的或跨地理的分布的数据中心的数据写操作的源设备提供早期确认。在一个示例中,本公开描述了一种方法,该方法包括从本地数据中心的源设备接收要被存储在位于远程数据中心内的目的地设备处的数据;将所述数据存储到网关设备内包括的高速存储器;在存储所述数据后,向所述源设备和在数据被存储在目的地设备之前输出本地确认;将所述数据通过连接发送到远程数据中心;从远程数据中心内的设备接收远程确认;并且响应于接收到远程确认,对来自所述网关设备内包括的高速存储器的数据解除分配。

Description

服务对等交换
相关申请
本申请要求2017年6月13日提交的美国临时申请序列号62/518,992的优先权,其全部内容通过引用并入本文。
技术领域
本公开涉及计算机网络,并且更具体地,涉及用于在由计算机网络提供的应用之间用于创建和管理服务到服务的路径的服务对等交换。
背景技术
随着数字服务越来越占主导地位,此类服务以自动方式交互以提供企业之间的连接。用于访问企业服务的产品化应用编程接口(API)正在成为新的数字店面,并且企业通常会部署公共因特网可访问的API网关,以为其内部系统体系架构提供单一、受控且可靠的入口点。
发明内容
通常,本公开描述了一种用于创建和管理应用之间服务到服务路径的服务对等交换。例如具有与多个网络的网络连接的服务对等交换可以接收应用编程接口(API)数据,该应用编程接口(API)数据描述了用于例如由企业或云服务提供商(CSP)提供并且可以使用服务请求经由网络访问的服务的API。这样的服务可以包括例如数据存储、电子商务、计费、市场营销、客户关系管理(CRM)、社交媒体、数字媒体、财务、天气、搜索以及使用网络上的机器到机器通信可访问的其他服务。服务对等交换的管理员或客户可以配置服务对等交换所应用的策略,以在可经由不同网络访问的不同服务之间协调服务到服务的路径。
基于策略,服务对等交换可以在逻辑上分割由服务对等交换提供的共享服务带宽,并将服务请求路由到适当的服务端点。服务对等交换对于某些服务请求,还可以根据为每个目的地服务端点配置的策略,在将服务请求路由到服务端点之前,验证服务请求者是否被授权并执行服务级别策略。
与服务对等交换交换服务业务的服务的每个实例在网络地址和传输层端口公开远程API,该远程API可以使用服务目录,服务层和协议栈的更高层来通告和使用。至少在某些情况下,可以经由服务提供商的服务网关(或“API网关”)访问服务中的一个或多个服务,该服务网关在服务网关的网络地址和端口处用作远程API的公共接口。服务对等交换可以包括或访问服务注册表以获得在多个服务提供商网络的各个服务端点处访问服务的相应网络地址和端口。服务对等交换为服务对等交换的客户发布注册的、可访问的API,并为客户提供到访问链接上客户可访问的服务对等交换的网络地址和端口处的API的网络层和更高层连接。
在一些示例中,为了将服务对等交换的网络地址和端口接收到的服务请求路由到适当的服务端点,服务对等交换执行服务级别映射并代理以下各项之间的服务会话:(i)请求应用与服务对等交换以及(ii)服务对等交换和服务端点。在一些示例中,服务对等交换可以与云交换或其他网络服务交换具有连接性,这能够实现服务对等交换与托管服务的网络之间的一对多连接。在一些示例中,为了路由服务请求,服务对等交换应用策略以允许将服务请求桥接(即,在层2转发)到在网络层(层2/层3)可见的服务端点,以请求应用。在一些示例中,服务对等交换可以通过根据一个或多个策略来路由服务请求来为服务安排服务链。
本文描述的服务对等交换技术可以具有一个或多个技术优点。例如通过代理服务会话或桥接通信,服务对等交换可以允许多个应用交换服务请求和响应,而无需在执行彼此通信的服务实例的网络之间进行任意专用的直接网络层连接。以这种方式,服务对等交换可以替换互连的网络,使得客户网络可以保持彼此不连接,除了经由服务对等交换并且仅用于服务业务。这可以避免客户使用交叉连接或虚拟连接在客户之间购买或以其他方式建立直接或虚拟连接的需求,诸如虚拟专用网络或云交换、因特网交换或以太网交换的虚拟电路。减少或消除客户之间的直接或虚拟连接可以促进较低延迟的服务业务,并且可以通过减少通常需要用于促进这种网络连接的资源和/或资源利用率来简化网络的配置并减轻网络的负载,诸如网络链路、防火墙、网络设备的存储器资源等。服务对等网关还可为多个服务端点提供集中的位置,以执行端点特定(或至少客户特定)的请求者验证、安全性和分组检查、API级别的策略实施、数据收集和分析。
在一个示例中,一种方法包括:通过由一个或多个计算设备执行的服务对等交换,并且在该服务对等交换的第一服务交换端点处,接收来自第一客户网络的第一传入服务请求,其中第一传入服务请求以第一服务交换端点为目的地,并且其中所述第一传入服务请求可以调用第一应用的应用编程接口;由服务对等交换响应于接收到第一传入服务请求,输出以执行第一应用的第二客户网络的服务端点为目的地的第一传出服务请求,其中第一传出服务请求可以调用第一应用的应用编程接口;由服务对等交换并且在与第一服务交换端点不同的服务对等交换的第二服务交换端点处接收来自第一客户网络的第二传入服务请求,其中第二传入服务请求以第二服务交换端点为目的地,其中第二传入服务请求可以调用第二应用的应用编程接口;由服务对等交换响应于接收到第二传入服务请求,输出以执行第二应用的第三客户网络的服务端点为目的地的第二传出服务请求,其中第二传出服务请求可以调用第二应用的应用编程接口。
在另一示例中,一种服务交换系统包括一个或多个服务对等交换,其被配置为由包括一个或多个计算设备的服务对等交换平台执行;以及应用的服务网关,该应用被配置用于由第一客户网络执行,该服务网关被配置用于由第一客户网络的计算设备执行,其中一个或多个服务对等交换被配置为在服务交换端点处接收,来自第二客户网络的传入服务请求,其中该传入服务请求以服务交换端点为目的地,并且其中该传入服务请求可以调用被配置为由第一客户网络执行的应用的应用编程接口,其中一个或多个服务对等交换被配置为响应于接收到传入服务请求,输出以服务网关的服务端点为目的地的传出服务请求,其中传出服务请求可以调用被配置为由第一客户网络执行的应用的应用编程接口,其中服务网关被配置为在服务端点处接收第二服务请求,并将第二服务请求路由到应用。
在另一个示例中,一种服务交换系统包括一个或多个服务对等交换,该一个或多个服务对等交换被配置用于由包括一个或多个计算设备的服务对等交换平台执行,其中一个或多个服务对等交换被配置为在第一接收服务交换端点处接收来自第一客户网络的第一传入服务请求,其中第一传入服务请求以第一服务交换端点为目的地,并且其中第一传入服务请求可以调用第一应用的应用编程接口,其中一个或多个服务对等交换被配置为响应于接收到第一传入服务请求,输出以执行第一应用的第二客户网络的服务端点为目的地的第一传出服务请求,其中第一传出服务请求可以调用第一应用的应用编程接口,其中一个更多服务对等交换被配置为在与第一服务交换端点不同的第二服务交换端点处接收来自第一客户网络的第二传入服务请求,其中第二传入服务请求以第二服务交换端点为目的地,其中第二传入服务请求可以调用第二应用的应用编程接口,并且其中一个或多个服务对等交换被配置为响应于接收到第二传入服务请求来输出以执行第二应用的第三客户网络的服务端点为目的地的第二传出服务请求,其中第二传出服务请求可以调用第二应用的应用编程接口。
一个或多个示例的细节在附图和以下描述中阐述。根据说明书和附图以及根据权利要求书,其他特征、目的和优点将是显而易见的。
附图说明
图1是示出了根据本公开的技术的示例服务交换系统的框图,该示例服务交换系统用于在多个不同服务端点可访问的应用之间创建和管理服务到服务的路径。
图2A–2B是示出了根据本公开的技术的示例云交换点的框图,该示例性云交换点可由可编程网络平台配置,以在服务对等交换与多个客户网络之间建立网络连接,以能够实现由客户网络执行的应用之间的服务到服务通信。
图3是示出了根据本公开的技术的实例服务交换系统的框图。
图4是根据本公开的技术的示例服务映射。
图5是示出了根据本文所述的技术的框图,该框图示出了具有基于城域的云交换的服务交换系统的概念图,该基于城域的云交换提供多个云交换点以用于与服务对等交换进行通信。
图6是示出了根据本公开的技术的用于服务对等交换的示例操作模式的流程图。
图7是示出了根据本文描述的技术的分布式服务交换系统的示例的框图。
贯穿附图和文本,类似的参考字符表示类似的元素。
具体实施方式
图1是示出根据本公开的技术的示例服务交换系统的框图,该示例服务交换系统用于在多个不同服务端点可访问的应用之间创建和管理服务到服务的路径。服务交换系统100包括针对服务对等交换101的提供者的各个客户的多个客户网络108A-108C(统称为“客户网络108”)。
客户网络108中的每一个可以代表以下一项:例如企业网络;云服务提供商网络;私有、公共或混合云网络;云网络中的租户网络。客户网络108中的每一个是层3网络,可以包括一个或多个非边缘交换机、路由器、集线器、网关、安全设备(例如防火墙)、入侵检测和/或入侵防御设备、服务器、计算机终端、便携式计算机、打印机、数据库、诸如蜂窝电话或个人数字助理的无线移动设备、无线访问点、网桥、电缆调制解调器、应用加速器、或其他网络设备。
客户网络108中的每一个包括一个或多个主机服务器(未示出),每个主机服务器执行应用110A-110D(统称为“应用110”)中至少一个的实例。例如客户网络108A的一个或多个主机服务器各自执行应用110A的服务实例,并且该服务实例处理在分配给该服务实例的主机服务器的网络地址和端口处接收到的服务请求。作为另一示例,客户网络108C的一个或多个主机服务器各自执行应用110C的服务实例和/或应用110D的服务实例。
主机服务器可以包括计算服务器、存储服务器、应用服务器或用于执行处理经由网络接收的服务请求的应用的其他计算设备。主机服务器可以代表真实服务器或虚拟服务器,诸如虚拟机、容器或其他虚拟化执行环境。
应用110提供服务,诸如数据存储、电子商务、计费、市场营销、客户关系管理(CRM)、社交媒体、数字媒体、财务、天气、搜索以及使用在对应客户网络108上的机器对机器通信可访问的其他服务。应用110中的每一个可以代表不同的服务。主机服务器托管的每个服务实例在主机服务器的网络地址和端口处公开远程应用编程接口(API)。映射到由主机服务器执行的服务实例的网络地址和端口的组合称为“服务端点”,更具体地说,在此示例中,其中服务实例在逻辑上位于服务网关112的后面,称为“内部服务端点”。例如应用110D的服务实例处理在执行该服务实例的主机服务器的网络地址和端口处接收到的服务请求,该服务请求符合应用110D的API。服务请求可以可替代地被称为“API请求”。
由应用110提供的服务也可以替代地被称为“web服务”,因为这些服务与其他计算设备的web服务、应用和消息传送协议以及其他新兴协议进行通信,其至少部分针对万维网而开发,诸如超文本传输协议(HTTP)或简单邮件传输协议(SMTP),并在因特网协议网络上运行。这些服务可以根据不同的服务框架进行操作,诸如Apache Axis、Java Web服务、Windows Communication Foundation(WCF)和.NET Framework,它们各自使用一个或多个Web服务协议以在机器之间通信服务数据。示例Web服务协议包括JavaScript对象表示法(JSON)-远程过程调用(RPC)、代表性状态转移(REST)服务、简单对象访问协议(SOAP)、Apache Thrift、可扩展标记语言(XML)-RPC、消息队列遥测传输(MQTT)、Rabbit消息队列(RabbitMQ)和约束应用协议(CoAP)、和Web服务描述语言(WSDL)。
在该示例中,客户网络108的管理员将相应的服务网关112部署到客户网络,以将服务实例的内部API公开给客户网络外部的客户。例如客户网络108A的服务网关112A作为应用110A的一个或多个服务实例的单个入口点进行操作,并且负责路由到服务实例的服务请求。即,服务网关112A将在服务网关112处接收到的服务请求路由到以应用110A的一个或多个服务实例提供的目标服务。服务网关112A可以代表执行服务网关应用的服务器计算设备。服务网关112A可以代表在一个或多个服务端点处可访问的服务网关实例池(“网关池”)。服务网关112A可以由创建服务网关功能的一个或多个网络功能虚拟化(NFV)实例的相应客户实例化。在对它们进行实例化之后,客户可以在服务对等交换101中注册NFV实例。服务网关112A具有网络地址,并且可以在传输层端口处接收用于路由的服务请求,诸如用于基于HTTP的服务请求的端口80或8080,尽管服务网关可以将任意合适的传输层端口映射到服务。服务网关应用的网络地址和端口的组合是用于服务网关112A公开的服务的服务端点114A。服务网关112B、112C可以被部署并且与如上所述的服务网关112A类似地操作。因此,服务网关112B包括服务端点114B,服务网关112B在该服务端点114B处接收对应用110B的服务请求,并且服务网关112C包括服务端点114C、114D,服务网关112C在该服务端点114C、114D处接收对应用110C和110D的服务请求。
如本文中所使用的,术语“路由”和用于将服务请求传递到预期目的地的类似术语可以包括层2/层3转发,但是可以附加地或替代地包括策略的应用,以根据服务请求的服务协议来标识、批准服务请求,并将服务请求输出到其预期的目的地。可以以其原始形式或修改形式来路由输出服务请求,例如以将服务请求从接收到的服务交换端点定向到应用的服务端点,该服务端点可以经由服务网关的服务端点可以到达。
除了在请求者(即,服务请求的发布者)和内部服务端点之间路由服务请求之外,例如在路由服务请求之前,服务网关112中的每一个还可以验证请求者被授权做出请求,防止未经授权的请求者访问内部服务端点,在用于应用110的多个服务实例中执行负载平衡,节流服务请求,和/或将接收到的服务请求的网络服务协议转换为其他网络服务协议(例如将RESTful协议变换为SOAP)。服务网关112中的每一个可以使用服务发现机制来标识由应用110提供的服务的内部服务端点,并将对该服务的服务请求路由到内部服务端点。示例服务发现机制包括客户端发现和服务器端发现。服务网关112以这种方式提供外部API,以用于到达应用110的内部服务端点。
服务发现可能发生在服务层,因为服务层通常描述并提供业务功能和服务,以用于提供符合一个或多个Web服务协议的服务。应用110为对应客户108提供的服务与服务端点114相关联。由服务对等交换101获得并通告给服务网关112以供服务网关112进行服务发现的服务发现信息可以由服务对等交换101与服务端点相关联地存储。
客户网络108通过相应的通信链路103A-103C(统称为“通信链路103”)耦合到服务对等交换101。客户网络108和服务对等交换101通过通信链路103交换数据通信,例如每个通信链路可以代表至少一个以太网链路、异步传输模式(ATM)链路和SONET/SDH链路。通信链路103均可以代表层2网络,诸如局域网或虚拟局域网(VLAN)。数据通信可以符合开放系统互连(OSI)模型,传输控制协议(TCP)/因特网协议(IP)模型或用户数据报协议(UDP)/IP模型。数据通信可以包括具有因特网协议报头的层3(即网络层)分组,该因特网协议报头包括源和目的地网络地址以及层4(例如传输层协议,诸如TCP/UDP)源和目的地端口。因特网协议报头还指定用于数据通信的传输层协议。
客户网络108可能没有彼此的网络连接。也就是说,客户网络108A中的设备可能无法将网络(层3)分组发送到客户网络108B中的设备或客户网络108C中的设备,因为没有被配置为在客户网络108之间路由网络分组的物理或虚拟网络。在某些情况下,客户网络108可能仅经由除通信链路103之外的通信链路彼此之间具有网络连接。
服务对等交换101例如使用服务发现获得描述用于服务网关112公开的API的服务端点114的服务端点数据。服务端点数据可以包括服务端点114的网络地址和端口信息。服务对等交换101可以例如通过诸如向服务网关发送服务发现消息来执行服务发现以从服务网关的服务注册表获得服务端点数据。服务对等交换101可以进一步获得针对服务网关112在服务端点114处公开的API的API描述数据。API描述数据可以描述协议、方法、API端点等,这些协议、方法、API端点等为服务端点定义了可接受的服务请求,以与应用110的服务进行交互。API描述数据可以用WSDL格式化。
根据本公开中描述的技术,服务对等交换101通过在应用之间创建和管理服务到服务的路径来实现由不同客户网络108执行的应用110之间的服务间通信。在该示例中,服务对等交换101使服务交换端点106能够与客户网络108发送和接收服务业务。如本文所使用的,“服务业务”可以指调用服务实例的应用编程接口的服务请求,以及对这种服务请求的响应(或“服务响应”)。
每个服务交换端点106是网络地址和端口对,服务对等交换101使用服务映射数据在内部将网络地址和端口对映射到服务端点114之一,以用于由客户网络108执行的应用110提供的服务。服务对等交换101接收例如由应用110在服务交换端点106处发出的服务请求。作为响应,服务对等交换101输出对应服务请求,该对应服务请求被定向到目的地服务交换端点106被映射到的不同客户网络108上服务端点114。以此方式,服务对等交换101使得能够在由客户网络108执行的应用之间进行服务到服务通信,这些客户网络108彼此之间没有专用的直接网络层连接。服务对等交换101可以通过执行服务映射解析来实时地获得服务映射数据,以用于负载平衡作为池的成员的服务网关/应用之间服务请求。
在图1的示例中,服务对等交换101将服务交换端点106A-106D映射到多个客户网络108的相应服务端点114A-114D,在该示例中,服务端点114可在服务网关112处访问。服务对等交换101将服务对等交换101所公开的服务交换端点106A映射到客户网络108A的服务网关112A所公开的、可用于访问应用110A的API的服务端点114A。服务对等交换101将由服务对等交换101公开的服务交换端点106B映射到由客户网络108B的服务网关112B公开并且可用于访问应用110B的API的服务端点114B。服务对等交换101将由服务对等交换101公开的服务交换端点106C、106D映射到由客户网络108C的服务网关112C公开的并且可用于访问应用110C、110D的API的服务端点114C、114D。因此,如下文进一步详细描述,服务对等交换101使由客户网络108B,108C执行的应用110B-110D能够向应用110A发出服务请求,尽管客户网络108相互之间没有到网络连接。
服务对等交换101从客户网络108A接收服务请求124A。服务请求124A具有与服务交换端点106C的网络地址和端口相匹配的目的地网络地址和目的地端口。服务请求124A可以符合Web服务协议,诸如上面列出的Web服务协议中的任意一个。例如服务请求124A可以表示使用HTTP的REST通信、SOAP通信、或可以调用应用110C的API的另一种类型的服务请求。即,应用110C的服务实例将服务请求124A识别为调用用于应用110C的API的服务请求。服务请求124A可以由应用110A的服务实例生成,并且可以从执行该服务实例的客户网络108C的计算设备中输出。服务请求124A包括用于调用由应用110C的服务实例提供的API的服务数据。
服务对等交换101将在服务交换端点106C接收的服务请求124A映射到服务端点114C,并生成新的传出服务请求124A'。传出服务请求124A'包括来自服务请求124A的服务数据,并且包括使传出服务请求124A'在服务网关112C所暴露的服务端点114C处被接收的层4报头和层3报头。换句话说,服务对等交换101至少重写目的地为服务交换端点106C的服务请求124A的目的地网络地址和目的地端口,以生成并输出目的地为服务端点114C的传出服务请求124A'。服务对等交换101还可以生成传出服务请求124A'以具有源服务端点,作为由服务对等交换101映射到服务端点114A的服务交换端点106A。服务对等交换101经由通信链路103C输出传出服务请求124A'。服务网关112C在服务端点114C处接收传出服务请求124A'。服务对等交换101可以代理服务对等交换101和应用110A的服务实例之间的传输层(例如TCP)会话、以及服务对等交换101与应用110C的服务实例之间的传输层会话。以这种方式,尽管客户网络108不具有网络间连接性,服务对等交换101为应用110A的服务实例和应用110C的服务实例之间的服务请求和服务响应创建服务到服务路径。
服务网关112C发送传出服务请求124A',以由应用110C的服务实例进行处理。在一些情况下,服务网关112C可以生成具有层4报头和层3报头的新的传出服务请求124A',该层4报头和层3报头具有用于应用110C的服务实例的目的地端口和目的地地址。应用110C的服务实例可以输出针对由客户网络108B执行的应用110B的新服务请求125A。服务请求125A以服务对等交换101的服务交换端点106B为目的地。服务对等交换101在服务交换端点106B处接收服务请求125A。服务对等交换101将服务交换端点106B处的服务请求125A映射到服务端点114B,并生成新的传出服务请求125A'。为了生成新的传出服务请求125A',服务对等交换101可以应用与以上表达的操作类似的操作,以用于生成传出服务请求124A'。服务对等交换101经由通信链路103B输出传出服务请求125A'。服务网关112C在服务端点114C处接收传出服务请求125A'。服务对等交换101可以代理服务对等交换101与应用110C的服务实例之间的传输层会话以及服务对等交换101与应用110B的服务实例之间的传输层会话。
服务网关112B发送传出服务请求125A',以用于由应用110B的服务实例进行处理。在一些情况下,服务网关112B可以生成具有层4报头和层3报头的新的传出服务请求125A',该层4报头和层3报头具有用于应用110B的服务实例的目的地端口和目的地地址。应用110B的服务实例处理传出服务请求125A',并且可以生成目的地为服务交换端点106C的服务响应125B,该服务交换端点106C被指示为服务请求125的源服务端点。
服务对等交换101在服务交换端点106C处接收服务响应125B,并基于服务交换端点106C到服务端点114C的映射来生成传出服务响应125B'。因此,传出服务响应125B'目的地是服务端点114C。服务对等交换101经由通信链路103C将传出服务响应125B'输出到客户网络108C。服务网关112C在服务端点114C处接收传出服务响应125B',并将传出服务响应125B'定向到应用110C的服务实例。应用110C的服务实例处理传出服务响应125B'。
应用110C的服务实例可以响应于传出服务请求124A'而生成服务响应124B。服务响应124B基于传出服务请求124A'指示的源端点来以服务交换端点106A为目的地。服务对等交换101在服务交换点106A处接收服务响应124B,并且基于服务交换端点106A到服务端点114A的映射来生成服务响应124B'。因此,服务响应124B'以服务端点114A为目的地。服务对等交换101经由通信链路103A将服务响应124B'输出到客户网络108A。服务网关112A在服务端点114A处接收服务响应124B',并将服务响应124B'定向到应用110A的服务实例。应用110A的服务实例处理服务响应124B'。
在一些示例中,服务网关112中的每一个向服务对等交换101公开其注册的API和对应的服务端点114。例如,服务网关112A可以注册在服务端点114A处可访问的API,服务网关112B可以注册在服务端点114B处可访问的API,服务网关112C可以注册在服务端点114C和114D处可访问的API。在某些情况下,操作每个网关112的客户可以经由门户应用来注册API和服务端点114,诸如下面关于图2A–2B所述的客户门户330。服务端点和服务交换端点可以部分地使用统一资源定位符(URL)或统一资源标识符来指示,部分地使用传输层端口来指示,或者通过为服务端点显式指定网络地址和传输层端口来指示。如上所述,服务对等交换101可以使用服务发现来获得服务网关112的API的服务端点114。服务对等交换101可以在API目录中将端点114以及API一起发布给客户网络108的客户,其例如可经由由服务对等交换101的提供商部署的门户来访问。在一些示例中,服务对等交换101(或用于服务对等交换的客户门户,诸如门户330)输出在服务交换点处对应用编程接口的可访问性的指示。例如服务对等交换101将注册的端点114映射到服务交换端点106,并且在API目录中将端点106与API一起发布给客户网络108的客户。因此,应用110和服务网关112可以将对API的服务请求定向到服务对等交换101的服务交换端点106,从而使用服务交换端点106模拟(impersonate)服务网关112以接收最终以服务端点114后面的应用110为目的地的服务请求。
应用110可以执行服务发现以标识用于经由服务对等交换101访问服务端点114的服务交换端点106。服务发现可以发生在服务层。服务对等交换101可以例如使用发现统一资源定位符(URL)来公开发现API,以使得能够由应用110实现这种服务发现。例如应用110A可以使用包括指示应用110C的参数值的发现请求消息来调用发现API。服务对等交换101提供发现响应消息,该发现响应消息包括服务交换端点106C的网络地址和端口,服务交换端点106C被服务对等交换101映射到服务端点114C。因此,应用110A可以使用上述技术将服务请求定向至服务交换端点106C,以供服务对等交换101向由服务网关112C所公开的服务端点114C传递。
服务对等技术使服务对等交换101能够接收服务请求,并将服务请求路由到适当服务端点114以用于由多个不同客户网络108执行的相应应用110,尽管这样的网络至少在某些情况下没有彼此专用的网络连接。以这种方式,服务对等交换101可以替换互连网络,使得客户网络108可以保持彼此不连接,除了经由服务对等交换101并且仅用于服务业务,从而避免了客户的需求,该客户部署客户网络108,以使用交叉连接或诸如虚拟专用网络的虚拟连接来在客户网络108之间购买或以其他方式建立直接或虚拟连接。实际上,服务对等交换101通过根据应用110之间的访问授权,在客户间网络108之间提供服务请求路由以及在服务网关112之间提供服务分段,从而实质上抽象化网络。
此外,服务对等交换101可以为客户提供中立的服务以在彼此之间对等API服务。随着业务过程变得更加流动并在业务生态系统中交织在一起,客户可能会捆绑和共享流程中的服务。从客户网络108A经由客户108C到客户108B的服务请求124和125的流程是这种流程的示例。每个服务可能属于不同的组织实体(以及该实体提供的数字服务组件),并且流程可以表示新的联合业务供应。服务对等交换101提供分层的服务,作为已部署了各自客户网络108的两个或多个客户之间的数字业务对业务交易的交点。如下面进一步详细描述的,服务对等交换101可以被部署为服务交换,诸如云交换或因特网交换,并成为开放的数字业务交换,以用于具有对服务交换的访问或以其他方式具有由具有对服务交换的访问的网络执行的应用的租户。在一些情况下,通过在容纳服务交换的物理数据中心内为客户网络108部署网络和计算设备,使一个或多个租户客户直接与服务交换并置。一个或多个租户客户还可以或替代地经由并置于物理数据中心内并连接到服务交换的网络服务提供商间接连接到服务交换。
图2A–2B是示出了根据本公开的技术的示例性云交换点的框图,该示例性云交换点可由可编程网络平台配置,以在服务对等交换与多个客户网络之间建立网络连接,以能够实现由客户网络执行的应用之间的服务到服务通信。云交换点303是软件定义网络(SDN)控制或软件定义的广域网络(SD-WAN)控制的网络交换结构的示例实现,其中控制器(在此示例中为可编程网络平台328)管理网络的网络配置以促进客户网络308和服务对等交换301之间的连接。云交换点303、客户网络308和服务对等交换301可以代表服务交换系统100的示例实例。客户网络308可以代表示例客户网络108,应用310可以代表示例应用110,服务网关312可以代表示例服务网关112,服务端点314可以代表示例服务端点114,并且服务对等交换301可以代表示例服务对等交换101。
每个与云交换点303的提供商的不同客户相关联的客户网络308A-308C(统称为“客户网络308”)访问数据中心300中的云交换点303,以便从耦合到云交换点303的一个或多个其他网络中接收聚合服务。客户网络308各自包括提供和/或使用服务的端点设备。示例端点设备包括真实或虚拟服务器、智能电话、电视机顶盒、工作站、膝上型/平板计算机、视频游戏系统、电话会议系统、媒体播放器等。
客户网络308A-308B包括相应的提供商边缘/自治系统边界路由器(PE/ASBR)309A-309B。PE/ASBR 309A、309B中的每一个都可以执行外部网关路由协议,以通过访问链路316A-316B(统称为“访问链路316”)之一与PE路由器302A-302B(“PE路由器302”或更简单地称为“PE 302”)之一对等。在所示示例中,访问链路316中的每一个代表客户网络308的边缘路由器与云交换点303的边缘路由器(或自治系统边界路由器)之间的中转链路。例如PE309A和PE 302A可以经由外部网关协议(例如外部BGP)直接对等,以在访问链路316A上交换L3路由,并在客户网络308A和云服务提供商网络320之间交换L3数据业务。在某些情况下,访问链路316可以代表,也可以称为如以下进一步详细描述的,作为在IP/MPLS结构318中配置的用于IP-VPN的附接电路。在某些情况下,访问链路316可以各自包括在客户网络308的至少一个端口与云交换点303的至少一个端口之间的直接物理连接,而没有中间的中转网络。访问链路316可以在VLAN或堆叠的VLAN(例如QinQ)、VxLAN、LSP、GRE通道或其他类型的通道上操作。
虽然关于客户网络308和服务对等交换301之间的L3连接进行了图示和主要描述,但PE路由器302可以经由访问链路316附加地或替代地提供客户网络308和服务对等交换301之间的L2连接。例如PE路由器302A的端口可以被配置有L2接口,该L2接口经由访问链路316A向客户网络308A提供到服务对等交换301的L2连接,并且服务对等交换301被耦合(直接地或经由另一网络设备)到PE路由器304A的端口,该端口也配置有L2接口。PE路由器302A的端口可以附加地被配置有L3接口,该L3接口经由访问链路316A向客户网络308A提供到云服务提供商320B的L3连接。PE 302A可以被配置有多个L2和/或L3子接口,使得云交换提供商可以向客户308A提供与服务对等交换301以及与云交换点303耦合的一个或多个其他网络的一对多连接。
为了在客户网络308和服务对等交换301之间创建L2互连,在一些示例中,IP/MPLS结构318被配置有L2桥接域(例如L2虚拟专用网(L2VPN),诸如虚拟专用LAN服务(VPLS)、E-LINE或E-LAN),以在PE 302的面向客户的端口和304A的面向服务对等交换的端口之间桥接L2业务。在一些情况下,服务对等交换301和一个或多个客户网络308可以具有到同一PE路由器302、304的访问链路,该PE路由器使用桥接域来桥接L2业务。为了在客户网络308和服务对等交换301之间创建L3互连,在一些示例中,IP/MPLS结构318被配置有L3虚拟路由和转发实例(VRF)。
在云交换点303的一些示例中,访问链路316和聚合链路322中的任意一个都可以表示网络到网络接口(NNI)链路。NNI链路和供应NNI链路以促进数据中心300中的层2连接的附加细节在2013年9月17日发布的题为“Real time configuration and provisioningfor a carrier Ethernet exchange”的美国专利号8,537,845中提供了,其全部内容通过引用并入本文。
在该示例中,客户网络308C不是具有自治系统编号的自治系统。客户网络308C可以代表企业、网络服务提供商或云交换点的路由脚印内的其他客户网络。客户网络包括可以执行外部网关路由协议以通过访问链路316C与PE路由器302B对等的客户边缘(CE)设备311。在各种示例中,PE 309A-309B中的任意一个都可以替代地或以其他方式表示CE设备。客户网络308A-308B可以是也可以不是具有自治系统编号的自治系统。
访问链路316包括物理链路,并且可以包括一个或多个中间交换设备。PE/ASBR309A-309B、CE设备311和PE路由器302A-302B经由访问链路316交换L2/L3分组。在这方面,访问链路316构成了用于经由云交换点303进行云访问的传输链路。
在一些示例中,云交换点303将客户308对云交换点303的访问聚集到与云交换点303耦合的其他网络。例如图2A-2B示出了将各个客户网络308A-308B连接到云交换点303的PE路由器302A的访问链路316A-316B和将客户网络308C连接到PE路由器302B的访问链路316C。PE路由器302、304中的任意一个或多个可以包括ASBR。可以根据本文描述的技术来配置PE路由器302、304和IP/MPLS结构318,以将访问链路316中的任意一个互连到访问链路322。结果,例如云服务提供商网络320A仅需要配置单个云聚合链路(此处为访问链路322A),以便向多个客户网络308提供服务。也就是说,运行云服务提供商网络302A的云服务提供商不需要供应和配置例如从服务对等交换303到PE路由器309、311的单独的服务链路,以便于向客户网络308中的每一个提供服务。云交换点303可以代替地将耦合到PE 304A和服务对等交换301的访问链路322互连到多个云访问链路316以为客户网络308中的任意一个和服务对等交换机301之间的服务业务提供层3对等和网络可达性。
此外,单个客户网络,例如客户网络308A,仅需要已经配置了到数据中心300内的云交换点303的单个云访问链路(这里是访问链路316A),以便用于服务对等交换301以提供与也耦合到云交换点303的客户网络308对等的服务。即,服务对等交换301的操作者不需要供应和配置连接服务对等交换301的单独的服务链路以便提供对等于多个客户网络308的服务。云交换点303可以代之以将云访问链路316A-316B(再次作为示例)中的每一个互连到访问链路322,以为向客户网络308A-308C的云服务传递提供层3对等关系和网络可达性。
在某些情况下,服务对等交换301可以耦合到PE路由器(未示出),该PE路由器耦合到访问链路322。PE路由器可以执行外部网关路由协议,例如eBGP,以与云交换点303的PE路由器304A交换路由。
在所示的示例中,因特网协议/多协议标签交换(IP/MPLS)结构318互连PE 302和PE 304A。IP/MPLS结构318包括一个或多个交换和路由设备,包括PE 302、304A,其提供IP分组的IP/MPLS交换和路由以形成IP骨干网。在一些示例中,IP/MPLS结构318可以实现一个或多个不同的通道协议(即,除了MPLS之外)以在PE路由器之间路由业务和/或将该业务与不同的IP-VPN相关联。根据本文所述的技术,IP/MPLS结构318实现IP虚拟专用网(IP-VPN),以将客户308中的任意一个与服务对等交换301连接,以提供基于数据中心的“传输”和层3交叉连接。鉴于基于服务提供商的IP骨干网需要带宽有限的广域网(WAN)连接,以将服务业务从层3服务提供商传输到客户,本文所述的云交换点303“传输”服务业务并互连服务对等交换301到由基于数据中心的IP/MPLS架构318提供的数据中心300的高带宽本地环境中的客户308。在某些示例中,IP/MPLS结构318使用Rosen&Rekhter在因特网工程任务组(IETF)网络工作组、2006年2月、征求意见稿4364的“BGP/MPLS IP Virtual Private Networks(VPNs)”中描述的技术来实现IP-VPN,其全部内容通过引用并入本文。在一些示例配置中,客户网络308和服务对等交换301可以经由相应的链路连接到IP/MPLS结构318的同一PE路由器。
访问链路316和访问链路322可以包括附接电路,附接电路将与连接的客户网络308或服务对等交换301交换的业务与虚拟路由和转发实例(VRF)相关联,虚拟路由和转发实例(VRF)在PE 302、304A中被配置并且与在IP/MPLS结构318上运行的IP-VPN对应。例如PE302A可以在通过访问链路316A运行的双向标签交换路径(LSP)上与PE 310A交换IP分组,该LSP是PE中配置的VRF的附接电路302A。作为另一示例,PE 304A可以与PE设备或网络交换机交换IP分组,以用于在通过访问链路322操作的双向标签交换路径(LSP)或VLAN上的服务对等交换301,该LSP或VLAN是在PE 304A中配置的VRF的附接电路。每个VRF可以包括或代表不同路由和具有不同路由的转发表。
IP/MPLS结构318的PE路由器302、304可以被配置为用于云服务的相应的星型(hub-and-spoke)布置,其中PE 304A实现为中心(hub),并且PE 302被配置为中心的辐条(spoke)(对于各种星型实例/布置)。星型布置可确保服务业务能够在中心PE和辐条PE中的任意一个之间流动,但不能在不同的辐条PE之间流动。星型VPN可以以这种方式能够实现客户网络308之间的完全分离。如下文进一步描述的,在星型布置中,用于基于数据中心的IP/MPLS结构318和客户绑定的服务业务(即从服务对等交换301到客户网络308),PE 302将从PE 309、311接收的路由通告给PE 304A。对于服务对等交换绑定的服务业务(即,从客户网络308到服务对等交换301),PE 304A将服务对等交换301的路由通告给PE 302,PE 302将路由通告给PE 309、CE 311。如本文所使用的,中心VRF导出具有“上”路由目标(RT)的路由,而辐条VRF导入具有“上”路由目标的路由。相反,辐条VRF导出具有“下”路由目标的路由,而中心VRF导入目标为“下”路由目标的路由。在某些示例中,每个VRF实例都有唯一的路由区分符(RD)。
对于云交换点303的一些客户,云交换点303的提供商可以配置全网格布置,由此PE 302、304A集合各自耦合到该客户的不同的客户站点网络。在这种情况下,IP/MPLS结构318为笼到笼(cage-to-cage)或冗余业务(也称为东西向业务或水平业务)实现层3VPN(L3VPN)。L3VPN可以实现封闭的用户组,由此每个客户站点网络可以相互发送业务,但不能在L3VPN之外发送或接收业务。
在一些示例中,PE路由器可以根据对等模型而不使用覆盖网络而彼此耦合。即,PE309、CE 311和用于服务对等交换301的网络可以不彼此直接对等以交换路由,而是经由IP/MPLS结构318间接地交换路由。在图2B的示例中,可编程网络平台328配置云交换点303以实现多个虚拟电路324A-324C(统称为“虚拟电路324”),用于将客户网络308和服务对等交换301与端到端IP路径互连。服务对等交换301和客户308中的每一个可以是多个虚拟电路324的端点,其中多个虚拟电路324遍历用于IP/MPLS结构318的PE/PE或PE/CE对和客户或服务对等交换301之间的一个或多个附接电路。虚拟电路324可以表示通过IP/MPLS结构318的层3路径,该路径在将客户网络连接到架构318的附接电路与将服务对等交换301连接到结构318的附接电路之间。每个虚拟电路324可以包括在PE 302、304处具有端点的至少一个通道(例如LSP和/或通用路由封装(GRE)通道)。PE302、304可以建立相互互连的完整的通道网格。
每个虚拟电路324可以使用在IP/MPLS网络301中配置的不同星形网络来实现,该IP/MPLS网络301具有使用边界网关协议对等会话的全部或部分网格来交换路由的PE路由器302、304A,在此示例中是全网格的多协议内部边界网关协议(MP-iBGP)对等会话。MP-iBGP或简称MP-BGP是协议的示例,路由器通过该协议交换标记的路由以实现基于MPLS的VPN。然而,PE 302、304可以使用其他技术和/或协议来交换路由以实现IP-VPN。
在虚拟电路324A的示例中,PE 304A可以将用于到达服务对等交换的路由与可能具有相关联的VRF的星形网络相关联,该星形网络包括辐条PE路由器302A。然后,PE 304A将路由导出到PE路由器302A;PE路由器304A可以将指定PE路由器304A作为下一跳路由器的路由与标识星形网络的标签一起导出。PE路由器302A经由与PE 309B的路由协议连接将路由发送到PE路由器309B。PE路由器302A可以在添加云交换点303的自治系统编号(例如添加到BGP自治系统路径(AS_PATH)属性)并将PE路由器302A指定为下一跳路由器之后发送路由。因此,即使云交换点303可以基于数据中心,云交换点303也是在从客户308到云服务提供商320的自治系统的路径中的自治系统“跳”(反之亦然)。PE路由器310B将路由安装到路由数据库,诸如BGP路由信息库(RIB),以向服务对等交换301提供层3可达性。以这种方式,云交换点303将路由从服务对等交换301“泄漏”到客户网络308,而服务对等交换301和客户网络308不需要直接层对等连接。
PE路由器309B、302A和304A可以在相反的方向上执行类似的操作,以将由客户网络308B发起的路由转发到PE 304A,从而提供从服务对等交换301到客户网络308B的连接。在虚拟电路324A的示例中,PE路由器309A、304A和302A以与上述用于建立虚拟电路324B的方式相似的方式为客户网络308A和服务对等交换301交换路由。结果,数据中心300内的云交换点303可以将对等连接内部化,该对等连接可以另外在用于服务对等交换301的网络设备和PE 309A、309B中的每个之间建立,以便对服务对等交换301经由到云交换点303的单个访问链路322提供给多个客户网络308的服务进行聚合。缺少本文描述的技术,将客户网络308和服务对等交换301完全互连将需要在PE 309、CE 311中的每一个和针对服务对等交换301的网络设备之间的对等连接。使用本文描述的技术,云交换点303可以通过内部化层3对等并在访问接口之间提供基于数据中心的“传输”,将客户网络308和服务对等交换301完全互连,其中每个站点边缘设备(即,对于PE 309、CE 311中的每一个和针对服务对等交换301的网络设备)有一个对等连接。
在其中IP/MPLS结构318实现BGP/MPLS IP-VPN或使用路由目标来控制IP骨干网内的路由分配的其他IP-VPN的示例中,PE 304A可被配置为使用不同的非对称路由目标来从PE 302导入路由,并导出针对服务对等交换301的路由。同样,PE 302可以被配置为使用非对称路由目标从PE 304A导入路由并导出从PE 309、CE 311接收的路由。因此,PE 302、304A可以被配置为实现高级L3VPN,每个高级L3VPN包括IP/MPLS结构318的基本骨干网L3VPN以及客户网络308和附接到基本骨干网L3VPN的服务对等交换301中的任意一个的外联网。每个高级L3VPN构成了从服务对等交换301到一个或多个客户网络308的云服务传递网络,反之亦然。以此方式,云交换点303使服务对等交换301能够与任意客户网络308交换服务业务,同时内部化层3路由协议对等连接,其将以其他方式在客户网络308和针对服务对等交换301的网络的对之间建立,用于给定对之间的服务连接。换句话说,云交换点303允许客户网络308中的每一个和服务对等交换301网络建立到基于数据中心的层3互连的单个(或出于冗余或其他原因而更多)层3路由协议对等连接。通过过滤从用于服务对等交换的网络301到客户网络308的路由,反之亦然,PE 302、304A从而控制虚拟电路324的建立以及客户网络308和数据中心300内的服务对等交换301之间的相关联的服务业务流。分配到MP-iBGP网格318中的路由可以是VPN-IPv4路由,并且与路由区分器相关联,以将来自具有重叠地址空间的不同站点的路由进行区分。
用于配置云交换点的示例互连平台和可编程网络平台的附加细节在于2016年1月20日提交的名为“MULTI-CLOUD,MULTI-SERVICE DATA MODEL”的美国专利申请No.15/001,766以及于2015年10月29日提交的名为“INTERCONNECTION PLATFORM FOR REAL-TIMECONFIGURATION AND MANAGEMENT OF A CLOUD-BASED SERVICES EXCHANGE”的美国专利申请No.14/927,451中进行了描述;其每一个的全部内容通过引用并入本文。云交换点303的提供商的、并且与客户网络308A相关联的客户可以使用客户门户330或通过调用可编程网络平台328的、用于请求虚拟电路的一个或多个API来请求与服务对等交换301的互连,例如虚拟电路。作为响应,可编程网络平台328配置虚拟电路324A以创建虚拟电路324A。客户网络308A随后使用虚拟电路324A与服务对等交换301进行通信。
服务对等交换301公开经由与PE 304A的访问链路322从云交换点303可到达的服务交换端点306A-306C。服务对等交换端点306也可以从任意客户网络308到达,任意客户网络308耦合到云交换点303并且具有用于与服务对等交换301互连的虚拟电路324。服务交换端点306可以代表服务交换端点106的示例实例。服务对等交换301以服务映射320的形式存储配置数据,该服务映射将服务交换端点306映射到相应的服务端点314以经由服务网关312访问应用310。例如服务映射320可以将服务交换端点306A映射到服务端点314A,将服务交换端点306B映射到服务端点314B,以及将服务交换端点306C映射到服务端点314C。服务映射320可以表示关联数据结构,诸如表格、映射或字典。
服务对等交换301经由访问链路322从云交换点303接收服务请求,并使用服务映射320为服务请求确定对应的目的地服务端点314。在图2B的示例中,应用310发起服务请求325A,服务请求325A以服务交换端点306B为目的地。客户网络308A经由虚拟电路324A上的访问链路316A将服务请求325A输出到云交换点303。云交换点303使用虚拟电路324A将服务请求325A转发到服务对等交换301,其经由访问链路322来接收服务请求325。
服务对等交换301在服务交换端点306B处接收服务请求325A。服务对等交换301使用服务交换端点306B信息作为查询关键字来查询服务映射320,以确定映射到服务交换端点306B的服务端点。服务对等交换301根据服务请求325A生成新的服务请求325A'。服务请求325A'包括来自服务请求325A的服务数据,并且包括层4报头和层3报头,所述层4报头和层3报头使传出服务请求124A'在由服务网关312B公开的服务端点314B处被接收。例如服务对等交换301可以至少重写目的地为服务交换端点306A的服务请求325A的目的地网络地址和目的地端口,以生成和输出以服务端点314B为目的地的服务请求325A'。服务对等交换301还可以生成服务请求325A',以具有源服务端点作为服务交换端点306A,该服务交换端点306A被服务对等交换301映射到针对发起服务请求325A的应用310A的服务网关312A的服务端点314A。
服务对等交换301经由访问链路322输出服务请求325A'。云交换点303确定服务请求325A'以服务端点314B为目的地,并且将使用虚拟电路324B被转发。服务对等交换301可以在VLAN或用于具有客户网络308B的IP-VPN或其他虚拟网络的其他附接电路上输出服务请求325A'。云交换303可以部分地基于PE 304A在其上接收服务请求325A'的附接电路,使用虚拟电路324B转发服务请求325A'。客户网络308B经由访问链路316B从云交换点303接收服务请求325A'。
服务网关312B在服务端点314B处接收服务请求325A'。服务网关312B至少将来自服务请求325A'的服务数据发送至应用310B以进行处理。
服务对等交换301可以代理服务对等交换301和应用310A的服务实例之间的传输层(例如TCP)会话以及服务对等交换301与应用310B的服务实例之间的传输层会话。服务对等交换301还可以代理服务对等交换301与应用310A的服务实例之间的无连接通信(例如UDP)以及服务对等交换301与应用310B的服务实例之间的无连接通信。以这种方式,尽管客户网络108A、108B彼此不具有网络连接,但是服务对等交换301在应用310A的服务实例与应用310B的服务实例之间至少经由云交换点303创建服务到服务路径。应用310A的服务实例和应用310B的服务实例可以经由包括服务对等交换301的服务到服务路径来交换服务业务。
在某些情况下,服务对等交换301可以应用策略来控制服务端点314之间针对对应应用310的服务请求的直接桥接(层2转发)。在这种情况下,服务对等交换可以避免服务级别映射和代理,其中服务网关312经由服务对等交换301具有彼此之间的网络可达性。例如可以在充当到客户网络308C的网桥的服务对等交换301处接收由应用310A发起并指定服务端点314C的服务请求。服务对等交换301如下所述应用策略332,以确定是否允许服务请求。如果是,则服务对等交换301将服务请求转发到服务端点314。如果否,则服务对等交换301丢弃该服务请求。
在一些示例中,作为路由服务请求的一部分,服务对等交换可以协调(orchestrate)会话以为服务供应服务链。
策略332能够实现在由客户网络308执行的应用310之间进行服务分段。也就是说,服务对等交换301基于策略332确定服务对等交换301将通过彼此传递服务请求和服务响应来为其提供服务到服务路径的那些应用集合(例如,对)。以此方式,策略332阻止服务对等交换301提供由服务网关312的对除了针对定向到每个服务网关的服务业务之外的服务业务的可见性。另外,每个服务网关312只能被策略332允许向其他服务网关312发出服务请求。服务对等交换301的管理员或操作员也可以配置策略332。策略332可以进一步指定允许的频率、数量、日期和时间、或一对服务网关312之间的一个或多个服务请求的其他属性。以这种方式,应用策略332的服务对等交换301充当应用310之间的中介,以保护和控制服务流。在一些示例中,客户门户330向客户提供自助服务自动化以配置策略332。在一些示例中,服务对等交换301公开配置API以向客户提供自助服务自动化以配置策略332。
例如客户门户330代表应用,应用可以为客户提供用户界面以配置服务对等交换301的操作,尤其是配置服务映射320和策略332。客户门户330可以提供Web界面或可以经由网站访问的其他图形用户界面,以用于配置策略332。诸如真实服务器的一个或多个计算设备执行客户门户330。服务对等交换301的操作者也可以使用客户门户330配置服务映射320和策略332。
策略332可以包括例如用于安全性、中介、路由、服务转换、负载平衡和服务限制的策略。策略332可以是特定于客户的(即,为特定客户建立的、或者是全局的)。例如安全策略包括用于身份验证、授权、验证和加密的策略。例如策略332可能要求服务对等网关301使用安全协议使用凭据或先前获得的登录令牌来授权服务请求,诸如OAuth 2.0、X.509、Kerberos或用户名和密码。安全策略还可以确定是否授权客户网络308中的用户、服务实例或服务网关312向客户网络308中的另一个的服务网关312(或服务端点314)发出服务请求。用于负载平衡的策略332的应用可以包括将服务名称动态映射到作为网关池实例的服务目的地。
从服务网关312或更广泛地从客户网络308卸载策略的应用可以提供改善整个网络中服务的价值和/或可扩展性的技术优势。例如服务对等交换301可以将DDoS保护应用于各种服务网关,而不是每个服务网关312应用诸如服务网关的分布式拒绝服务(DDoS)保护的安全服务。其他服务可能包括限制,验证,其他安全服务,中介,负载平衡和路由。对于无法将大量资源投入网络基础架构的小型客户而言,此技术优势可能尤其有利。
策略332的路由策略使服务对等交换301将匹配的服务请求定向到特定的目标服务端点。虽然被示为单独的数据结构,但是在某些情况下,可以使用策略332来实现服务映射320。例如,路由策略可以基于其中的应用数据、服务请求的发起者以及目的地服务交换端点306来匹配服务请求。策略332的服务限制策略可以基于服务、服务请求的发起者或其他准则来限制对客户的服务请求。服务网关312可以将负载平衡应用于在服务端点314处接收到的服务请求。
尽管相对于图2A-2B的服务对等交换301进行了描述,但是策略332可以由本公开中描述的其他服务对等交换来应用。
服务映射320将服务交换端点306映射到相应的服务端点314,以经由服务网关312从客户网络308访问远程应用310。如上所述,可以使用策略332的路由策略来实现服务映射320。
在图2B的示例中,服务对等交换301可以应用策略332来认证和/或授权服务网关312A或应用310A以经由服务交换端点306B向服务端点314发送服务请求。服务对等交换301可以向授权实体返回授权令牌。服务请求325A可以包括授权令牌或其他凭证。服务对等交换301可以将策略332和服务映射320应用于在服务交换端点306B处接收到的服务请求325A,以授权、限制、路由到服务端点314B的服务请求325A的表示作为服务请求325A'。
图3是示出了根据本公开的技术的实例服务交换系统的框图。服务交换系统400包括与交换器410通信的服务对等交换平台401,以及与交换410通信的多个服务网关440A-440N。交换410可以表示因特网交换、以太网交换或云交换,诸如云交换点303,其可以由数据中心的数据中心提供商来管理,其中用于服务网关440的客户网络被共置一处以与其他客户网络交换网络业务。
服务对等交换平台401可以提供如图1、2A,2B所述的服务对等交换。服务对等交换401可以代表使用网络通信地耦合的真实或虚拟服务器或真实或虚拟服务器和/或联网设备的集群。服务对等交换401可以托管在公共云、私有云或混合云上。服务对等交换平台401可包括一个或多个通信单元402、一个或多个输入设备404和一个或多个输出设备406。服务对等交换平台401包括一个或多个处理器412和一个或多个存储设备440。一个或多个存储设备440包括操作系统431和服务对等交换应用422。服务对等交换平台401的设备、模块、存储区域或其他组件中的一个或多个可以互连以能够实现组件间通信(物理上、通信上和/或有效地)。在一些示例中,可以通过系统总线、网络连接、进程间通信数据结构或用于传送数据的任意其他方法来提供这种连接。服务对等交换应用422可以由多个服务器以分布式方式执行,服务对等交换平台401是其示例。执行服务对等交换应用422的服务器可以包括裸金属服务器、虚拟机、容器或其他执行环境中的一个或多个。
服务对等交换平台401的一个或多个输入设备404可以生成、接收或处理输入。这样的输入可以包括来自键盘、指示设备、语音响应系统、摄像机、按钮、传感器、移动设备、控制板、麦克风、存在敏感屏幕、网络或用于检测来自人类或机器的输入的任意其他类型的设备的输入。
服务对等交换平台401的一个或多个输出设备406可以生成、传输或处理输出。输出的示例是触觉、音频、视觉和/或视频输出。输出设备406可以包括显示器、声卡、视频图形适配器卡、扬声器、在场敏感屏幕、一个或多个USB接口、视频和/或音频输出接口、或者能够生成触觉、音频、视频或其他输出的任意其他类型的设备。输出设备406可以包括显示设备,该显示设备可以用作使用包括以下各项的技术的输出设备:液晶显示器(LCD)、量子点显示器、点矩阵显示器、发光二极管(LED)显示器、有机发光二极管(OLED)显示器、阴极射线管(CRT)显示器、电子墨水或单色、彩色或能够生成触觉、音频和/或视觉输出的任意其他类型的显示器。
服务对等交换平台401的一个或多个通信单元402可以通过发送和/或接收数据与服务对等交换平台401外部的设备进行通信,并且在某些方面可以用作输入设备和输出设备设备两者。在一些示例中,通信单元402可以经由交换410与网络上的其他设备进行通信,包括经由交换410与服务网关440进行通信。在其他示例中,通信单元402可以在诸如蜂窝无线电网络的无线电网络上发送和/或接收无线电信号。在其他示例中,服务对等交换平台401的通信单元402可以在诸如全球定位系统(GPS)网络的卫星网络上发送和/或接收卫星信号。通信单元402的示例包括网络接口卡(例如以太网卡)、光收发器、射频收发器、GPS接收器、或可以发送和/或接收信息的任意其他类型的设备。通信单元402的其他示例可以包括在移动设备以及通用串行总线(USB)控制器等中发现的
Figure GDA0003521082390000281
GPS、3G、4G和
Figure GDA0003521082390000282
无线电。
服务对等交换平台401的一个或多个处理器412可以实现功能和/或执行指令。处理器412的示例包括微处理器、应用处理器、显示控制器、辅助处理器、一个或多个传感器集线器、以及被配置为用作处理器、处理单元、处理设备或处理电路的任意其他硬件。服务对等交换平台401可以使用一个或多个处理器412来根据本公开的一个或多个方面使用由服务对等交换平台401存储和/或在服务对等交换平台401处执行的软件、硬件、固件或硬件、软件和固件的混合来执行操作。
一个或多个存储设备420可以存储用于在服务对等交换平台401的操作期间进行处理的信息。在一些示例中,一个或多个存储设备420是临时存储器,这意味着一个或多个存储设备的主要目的是不能长期存储。存储设备420可以被配置用于作为易失性存储器的信息的短期存储,因此如果被停用则不保留存储的内容。易失性存储器的示例包括随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)以及本领域已知的其他形式的易失性存储器。在一些示例中,存储设备420还包括一个或多个计算机可读存储介质。存储设备420可以被配置为存储比易失性存储器大的信息量。存储设备420可以进一步被配置用于作为非易失性存储空间来长期存储信息,并且在激活/关闭周期之后保留信息。非易失性存储器的示例包括磁性硬盘、光盘、软盘、闪存或电可编程存储器(EPROM)或电可擦可编程存储器(EEPROM)的形式。存储设备420可以存储与根据本公开的一个或多个方面描述的一个或多个模块相关联的程序指令和/或数据。
一个或多个处理器412和一个或多个存储设备420可以为一个或多个模块提供操作环境或平台,该模块可以被实现为软件,但是在一些示例中可以包括硬件、固件和软件的任意组合。一个或多个处理器412可以执行指令,并且一个或多个存储设备420可以存储一个或多个模块的指令和/或数据。处理器412和存储设备420的组合可以取回、存储和/或执行一个或多个应用、模块或软件的指令和/或数据。处理器412和/或存储设备420还可以可操作地耦合到一个或多个其他软件和/或硬件组件,包括但不限于图3所示的一个或多个组件。
图3中所示的被包括在存储设备420中的一个或多个模块或应用(或本文另外描述的模块)可以使用在服务对等交换平台401中驻留和/或执行的软件、硬件、固件或硬件、软件和固件的混合来执行所描述的操作。服务对等交换平台401可以用多个处理器或多个设备来执行模块中的每一个。服务对等交换平台401可以本地执行这些模块中的一个或多个,也可以作为在基础硬件上执行的虚拟机或容器。这些模块中的一个或多个可以作为操作系统431或计算平台的一个或多个服务来执行。这样的模块中的一个或多个可以在由操作系统431提供的操作平台的应用层上作为一个或多个可执行程序执行。
用户界面模块435可以管理与一个或多个用户界面设备的用户交互,该用户界面设备可以包括一个或多个输入设备404和一个或多个输出设备406。在一些示例中,服务对等交换平台401可以包括存在敏感的显示器,存在敏感的显示器可以充当用户界面设备,并且可以被视为输入设备404和输出设备406两者。在一些示例中,用户界面模块435可以充当服务对等交换平台401的各个组件之间的中介,以基于由一个或多个用户界面设备和/或一个或多个输入设备404检测到的用户输入进行确定,并在用户界面设备或一个或多个输出设备406上生成输出。
用户界面模块435可以从应用,服务,平台或服务对等交换平台401的其他模块接收指令,以使用户界面设备(例如在场敏感显示器)输出用户界面。用户界面模块435被示出为服务对等交换应用422的模块,但是用户界面模块436通常可以是操作系统的子组件或执行该子组件,操作系统的子组件控制服务对等交换平台401的操作,并且用户界面模块435可以替代地或者也可以是在对等交换平台401处执行的独立的应用、服务或模块。用户界面模块435可以在用户查看所呈现的用户界面并与所呈现的用户界面交互时,管理服务对等交换平台401所接收的输入,并响应于从应用、服务、平台或正在处理用户输入的对等交换平台401的其他模块接收到附加指令而更新用户界面。如下面进一步描述的,用户界面模块435可以输出门户并且从输入设备404接收输入数据(例如汇率数据),输入设备404由服务对等交换平台401的客户或管理员可访问,以指定和/或操纵策略432。
存储设备420可以包括操作系统431和服务对等交换应用422,以用于执行与为服务网关440之间交换服务请求提供服务对等交换有关的操作。服务对等交换应用422可以与服务对等交换平台401的一个或多个模块交互和/或结合服务对等交换平台401的一个或多个模块操作。服务对等交换应用422可以在服务对等交换平台401的服务交换端点上侦听网络分组。操作系统431可以执行网络堆栈并将目的地为服务交换端点的网络分组传递给服务对等交换应用422。服务请求可以被包括在一个或多个网络分组中。每个服务交换端点是服务对等交换平台401的网络层(L3)地址和传输层(L4)端口的组合。
用户可以为服务对等交换应用422调用用户界面436或应用编程界面439以配置策略432。策略432可以代表策略332的示例实例。通信单元402可以针对一个或多个服务端点接收描述一个或多个服务端点的服务端点数据。执行服务对等交换应用422的一个或多个处理器412处理服务端点数据,从操作系统431请求服务交换端点,并将服务交换端点映射到由服务端点数据指示的对应服务端点。处理器412生成用于服务交换端点到服务端点的映射的服务映射450,反之亦然。通过这些示例操作,服务对等交换应用422使服务对等交换平台401能够作为在服务端点之间执行服务路由的应用服务结构进行操作。应用服务结构可以跨越构成服务对等交换平台401的一个或多个真实和/或虚拟计算和/或网络设备。
服务对等交换平台401经由通信单元402和网络交换410从与服务网关440A关联的客户网络接收服务请求425A。服务请求425A目的地是服务对等交换401的服务交换端点。请求425A可以代表本公开描述的任意服务请求的示例实例。操作系统431将服务请求425A传递到服务对等交换应用422以进行处理,服务对等交换应用422在服务交换端点上进行监听。服务请求425A可以作为一个或多个分组到达。
根据本公开的一个或多个方面,执行服务对等交换应用422的一个或多个处理器412通过应用策略332来处理服务请求425A以将服务请求425A的表示输出到服务网关440B的服务端点。处理器412应用服务映射450以将服务请求425A的目的地服务交换端点映射到服务网关440B的服务端点。服务映射450可以在服务请求425A的一个或多个分组的目的地网络地址和目的地端口上匹配,并且指定服务网关440B的目的地端点。作为响应,处理器412生成具有目的地网络地址和目的地端口的服务请求425A',该目的地网络地址和目的地端口是服务网关440B的指定目的地端点。处理器412可以生成服务请求425A'以具有作为服务对等交换平台401的服务交换端点的源网络地址和源端口。以这种方式,服务对等交换平台401将服务网关440A模拟到服务网关440B。处理器412经由通信单元402输出服务请求425A',以经由网络交换410进行传递。
图4是根据本公开的技术的示例服务映射。服务映射450是具有多个条目452A-452D的关联数据结构,多个条目各自将服务对等交换的服务交换端点映射到应用的服务端点,诸如服务网关公开的服务端点,反之亦然。例如条目452A将服务交换端点106A映射到服务端点114A。服务映射450可以将每个服务端点和服务交换端点存储为网络地址和传输层端口的组合。服务映射450可以包括哈希表,使得条目452是哈希桶,哈希桶具有与应用于服务端点或服务交换端点的哈希函数的值相对应的哈希值,并且服务交换端点的哈希值被映射到服务端点,并且服务端点的哈希值被映射到服务交换端点。示例哈希函数包括SHA-1和MD5。
图5是示出了根据本文所述的技术的服务交换系统的概念图的框图,该服务交换系统具有基于城域的云交换,其提供多个云交换点以用于与服务对等交换进行通信。基于云的服务交换510(“云交换510”)的每个基于云的服务交换点528A-528D(以下称为“云交换点”,统称为“云交换点528”)可以表示不同的地理上位于同一大城市区域内的数据中心(“基于城域”、例如在纽约的纽约市、加利福尼亚的硅谷、华盛顿的西雅图-塔科马、明尼苏达州的明尼阿波利斯-圣保罗、英国的伦敦等),以提供有弹性且独立的基于云的服务交换,基于云的服务客户(“云客户”)和基于云的服务提供商(“云提供商”)(图5中未显示)通过该有弹性且独立的基于云的服务交换来分别接收和提供云服务。在各种示例中,云交换510可包括更多或更少的云交换点528。在一些情况下,云交换510仅包括一个云交换点528。如本文所用,对“云交换”或“基于云的服务交换”的引用可以指云交换点。云交换提供商可以在多个不同的大城市区域中部署云交换510的实例,云交换510的每个实例具有一个或多个云交换点528。
云交换点528中的每一个包括网络基础结构和操作环境,客户508A–508D(统称为“云客户508”)通过网络基础结构和操作环境经由服务对等交换101交换服务请求和服务响应。客户508中的每一个可以具有一个或更多服务对等网关(图5中未显示)。云客户508可以直接经由与云交换点528之一的层3对等和物理连接来交换服务请求和服务响应,也可以间接经由网络服务提供商506A-506B(统称为“NSP 506”或替代地“运营商506”)来交换服务请求和服务响应。NSP 506通过在云交换点528中的一个或多个内保持物理状态并聚集来自一个或多个客户508的层3访问来提供“云中转”。NSP506可以在层3直接与一个或多个云交换点528对等,并且这样做可以向一个或多个客户508提供间接的层3连接性和对等,客户508可以通过其来从云交换500获得云服务。
在图5的示例中,云交换点528中的每一个可以被分配不同的自治系统编号(ASN)。例如云交换点528A被分配了ASN 5,云交换点528B被分配了ASN 2,依此类推。因此,每个云交换点528是从服务对等交换101到客户508的路径矢量路由协议(例如BGP)路径中的下一跳。结果,尽管不是具有一个或多个广域网链路以及相应的因特网访问和中转策略的中转网络,每个云交换点528仍可以经由外部BGP(eBGP)或其他外部网关路由协议来与多个不同的自治系统对等,以便将服务业务从一个或多个云服务提供商550交换、聚合和路由到客户。换句话说,云交换点528可以内部化云服务提供商550和客户508将成对地维持的eBGP对等关系。替代地,客户508可以配置与云交换点528的单个eBGP对等关系,并且经由云交换从一个或多个云服务提供商550接收多个云服务。尽管本文主要针对云交换点与客户、NSP或云服务提供商网络之间的eBGP或其他层3路由协议对等进行描述,但云交换点可能会以其他方式从这些网络中学习路由,诸如通过静态配置或经由路由信息协议(RIP)、开放式最短路径优先(OSPF)、中间系统到中间系统(IS-IS)、或其他路由分配协议。每个云交换点528可以代表云交换点303的示例实例。
作为上述示例,客户508D被示为针对云交换500与云交换提供商签约,以经由云交换点528C、528D直接访问层3云服务。以这种方式,例如客户508D接收到云服务提供商550A的冗余层3连接。相比之下,客户508C被示为针对云交换500与云交换提供商签约,以经由云交换点528C直接访问层3云服务,并且还与NSP 506B签约,以经由NSP 506B的中转网络来访问层3云服务。客户508B被示为已经与多个NSP 506A,506B签约以具有经由NSP 506A、506B的各个中转网络对云交换点528A、528B的冗余云访问。通过以下各项使上述合同在云交换点528的网络基础结构中实例化:NSP 506和云交换点528的交换设备内的L3对等配置以及在云交换点528内建立的L3连接,例如第3层虚拟电路,以将云服务提供商550网络互连到NSP 506网络和客户508网络,它们都具有在云交换点528中的一个或多个内提供连接性的至少一个端口。
作为一个示例,客户508A向服务对等交换101所公开的服务交换点发出服务请求525。NSP506A将服务请求525传输到云交换点528A,云交换点528A使用在NSP 506A和服务对等交换101之间的虚拟电路将服务请求525传递给服务对等交换101。
服务对等交换101将作为服务请求525的目的地的服务交换端点映射到客户508D处的服务端点。服务对等交换101生成包括来自服务请求525的服务数据的新服务请求525',并将服务请求525'输出到客户网络508D。云交换点528D使用服务对等交换101和客户网络508D之间的虚拟电路将服务请求525'传递到客户网络508D。
图6是示出根据本公开的技术的用于服务对等交换的示例操作模式600的流程图。出于示例目的而相对于图1的服务对等交换101描述了图6,但是该操作可以由本公开中描述的任意服务对等交换来执行。服务对等交换101接收将服务交换端点106映射到客户网络108的服务网关112的服务端点的服务映射数据(602)。服务对等交换101可以将服务映射数据存储为服务映射或一个或多个策略。
服务对等交换101接收传入服务请求124A,传入服务请求124A由客户网络108A的设备输出、目的地为服务对等交换101的服务交换端点106C(604)。服务对等交换101确定服务请求124A是否被授权用于服务交换端点106C(606)。如果服务请求124A未被授权(608的“否”分支),则服务对等交换101丢弃服务请求124A(608)。例如服务对等交换101可以不对服务请求124A做出响应或不采取任意行动,或者可以以错误消息进行回复。如果服务请求124A被授权(608的“是”分支),则服务对等交换101路由该服务请求。
为了路由服务请求,服务对等交换101基于服务映射数据将服务交换端点106C映射到服务网关112C的服务端点114C。服务对等交换101生成目的地为在步骤610映射的服务端点114C的新的传出服务请求124A'(或重写服务请求124A的报头数据以形成新的传出服务请求124A')。服务对等交换101在与客户网络108C的通信链路103C上输出传出服务请求124A'(614)。
图7是示出根据本文描述的技术的分布式服务交换系统的示例的框图。系统800包括经由网络服务提供商825上的通信链路连接的多个地理上分布的数据中心810A-810B(“数据中心810”)。数据中心810可以位于单个大城市区域内或位于不同的大城市区域内。在该特定示例架构中,数据中心810中的每一个包括云交换803A-803B(“云交换803”)的对应云交换。然而,可以使用不同类型的分布式SDN或SD-WAN架构来实现分布式服务交换系统架构的其他示例。云交换803中的每一个可以是云交换点303的示例实例。分布式云交换的其他详细信息可在2017年3月31日提交的标题为“Inter-Metro Connectivity NetworkConnect”的美国专利申请No.15/475,957中找到,其全部内容通过引用并入本文。
系统800包括多个分布式服务对等交换801A-801B(“服务对等交换801”),其在相应的数据中心810内共置或以其他方式具有连接并且由分布式服务对等交换平台执行。在该特定示例架构中,服务对等交换801A经由访问链路822A连接至服务对等交换803A,并且服务对等交换801B经由访问链路822B而连接至服务对等交换803B。访问链路822可以代表访问链路322的示例实例。虽然在图7中仅示出了两个数据中心810中的两个服务对等交换801,但是系统800的其他示例可以包括位于附加的对应数据中心810中的更多服务对等交换801。
分布式服务对等交换801作为分布式服务对等交换操作,以跨多个位置提供服务对等交换服务,以使在本地位置的客户网络上执行的应用能够访问位于远程位置的服务。服务对等交换801包括共享服务交换端点806,用于经由云交换803经由访问链路822和通信链路103与客户网络108发送和接收服务业务。服务交换端点806可以是服务交换端点106的示例实例。
服务对等交换801A包括服务交换端点806C。服务对等交换包括服务交换端点806A。服务对等交换801A在服务交换端点806C处接收由应用110A发布的服务请求824A(服务请求124A的示例实例)。服务对等交换801A作为响应,在不同的客户网络108C上输出被定向到服务端点114C的对应的传出服务请求824A',目的地服务交换端点806A被映射到该服务端点114C。以此方式,服务对等交换801使得由客户网络108执行的应用之间能够进行服务到服务通信,这些客户网络108彼此之间没有专用的直接网络层连接,而且还连接到地理上分布的数据中心810。
分布式服务对等交换801可以监视服务对等交换801之间的延迟,并通过API方法公开延迟。例如服务网关112A可以经由API方法请求和接收服务对等交换801A和服务对等交换801B之间的延迟。
本文描述的技术可以以硬件、软件、固件或其任意组合来实现。被描述为模块、单元或组件的各种特征可以在集成逻辑设备中一起实现,或者分别作为离散但可互操作的逻辑设备或其他硬件设备实现。在某些情况下,电子电路的各种特征可以被实现为一个或多个集成电路设备,诸如集成电路芯片或芯片组。
如果以硬件实现,则本公开可以针对诸如处理器的装置或诸如集成电路芯片或芯片组的集成电路设备。替代地或附加地,如果以软件或固件实现,则该技术可以至少部分地由包括指令的计算机可读数据存储介质来实现,该指令在被执行时使处理器执行上述一种或多种方法。例如计算机可读数据存储介质可以存储这样的指令以供处理器执行。
计算机可读介质可以形成计算机程序产品的一部分,该计算机程序产品可以包括包装材料。计算机可读介质可以包括计算机数据存储介质,诸如随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存、磁性或光学数据存储介质等。在一些示例中,制品可以包括一个或多个计算机可读存储介质。
在一些示例中,计算机可读存储介质可以包括非暂时性介质。术语“非暂时性”可以指示存储介质没有体现在载波或传播的信号中。在某些示例中,非暂时性存储介质可以存储可以随时间变化的数据(例如在RAM或高速缓存中)。
代码或指令可以是由包括一个或多个处理器的处理电路执行的软件和/或固件,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或其他等效的集成或离散逻辑电路。因此,本文所使用的术语“处理器”可以指任意前述结构或适合于实施本文所述技术的任意其他结构。另外,在一些方面,可以在软件模块或硬件模块内提供本公开中描述的功能。

Claims (17)

1.一种处理服务请求的方法,包括:
由可编程网络平台在云交换中提供第一虚拟电路,以在服务对等交换和第一客户网络之间创建通过所述云交换的第一端到端路径,所述云交换具有与所述第一客户网络、执行应用的第二客户网络和所述服务对等交换的访问链路,其中所述服务对等交换由一个或多个计算设备执行;
由所述可编程网络平台在所述云交换中提供第二虚拟电路,以在所述服务对等交换和所述第二客户网络之间创建通过所述云交换的第二端到端路径;
由所述服务对等交换接收描述执行应用的所述第二客户网络的服务端点的服务端点数据;
由所述服务对等交换生成从所述服务对等交换的服务交换端点到执行所述应用的所述第二客户网络的所述服务端点的关联,其中所述服务交换端点包括所述一个或多个计算设备的网络层地址和传输层端口的组合;
由所述服务对等交换在所述服务交换端点处经由通过所述云交换的所述第一端到端路径,接收来自所述第一客户网络的传入服务请求,其中所述传入服务请求以所述服务交换端点的所述网络层地址和所述传输层端口为目的地,并且其中所述传入服务请求能够调用所述应用的应用编程接口;以及
由所述服务对等交换响应于接收到所述传入服务请求并且至少基于所述关联,经由通过所述云交换的所述第二端到端路径,输出以执行所述应用的所述第二客户网络的所述服务端点为目的地的传出服务请求,其中所述传出服务请求能够调用所述应用的所述应用编程接口。
2.根据权利要求1所述的方法,其中所述服务交换端点包括第一服务交换端点,所述方法还包括:
由所述服务对等交换并且在与所述第一服务交换端点不同的所述服务对等交换的第二服务交换端点处接收来自所述第一客户网络的附加传入服务请求,其中所述附加传入服务请求以所述第二服务交换端点为目的地,并且其中所述附加传入服务请求能够调用第二应用的应用编程接口;以及
由所述服务对等交换响应于接收到所述附加传入服务请求,输出以执行所述第二应用的第三客户网络的服务端点为目的地的附加传出服务请求,其中所述附加传出服务请求能够调用所述第二应用的所述应用编程接口。
3.根据权利要求1所述的方法,其中所述第一客户网络不具有与所述第二客户网络的网络连接性。
4.根据权利要求1所述的方法,其中所述传入服务请求和所述传出服务请求中的每个包括以下项中的一项:使用超文本传输协议(HTTP)的表示状态传输(REST)通信、JavaScript对象表示法(JSON)-远程过程调用(RPC)、简单对象访问协议(SOAP)消息、Apache Thrift请求和可扩展标记语言(XML)-RPC、消息队列遥测传输(MQTT)、Rabbit消息队列(RabbitMQ)和受约束的应用协议(CoAP)。
5.根据权利要求1所述的方法,还包括:
由用于所述服务对等交换的客户门户显示在所述服务交换端点处的所述应用的所述应用编程接口的可访问性的指示。
6.根据权利要求1所述的方法,还包括:
由所述服务对等交换接收发现请求,所述发现请求调用所述服务对等交换的发现应用编程接口,并且请求服务端点以用于访问所述应用的所述应用编程接口;以及
由所述服务对等交换输出响应于所述发现请求的发现响应,所述发现响应指示所述服务交换端点是用于访问所述应用的所述应用编程接口的服务端点。
7.根据权利要求1所述的方法,
其中所述第二客户网络的所述服务端点包括所述第二客户网络的服务网关的、针对由所述第二客户网络执行的应用的服务端点。
8.根据权利要求1所述的方法,其中所述第一客户网络、所述第二客户网络和所述服务对等交换各自经由所述访问链路中不同的访问链路进行通信。
9.根据权利要求1所述的方法,
其中所述云交换包括层3(L3)自治系统,
其中所述访问链路中的每个访问链路包括用于在所述云交换中被配置的因特网协议-虚拟专用网络的附接电路,
其中所述第一端到端路径包括用于在所述第一客户网络和所述云交换之间进行通信的所述访问链路,以及用于在所述云交换和所述服务对等交换之间进行通信的所述访问链路,以及
其中所述第二端到端路径包括用于在所述第二客户网络与所述云交换之间进行通信的所述访问链路,以及用于在所述云交换与所述服务对等交换之间进行通信的所述访问链路。
10.一种服务交换系统,包括:
可编程网络平台;
云交换,具有与第一客户网络、第二客户网络和一个或多个服务对等交换的访问链路;
其中所述可编程网络平台被配置为在所述云交换中提供第一虚拟电路以在所述一个或多个服务对等交换与所述第一客户网络之间创建通过所述云交换的第一端到端路径,其中所述一个或多个服务对等交换由一个或多个计算设备执行,
其中所述可编程网络平台被配置为在所述云交换中提供所述云交换中的第二虚拟电路,以在所述服务对等交换和所述第二客户网络之间创建通过所述云交换的第二端到端路径;以及
针对应用的服务网关,被配置用于由所述第二客户网络的计算设备执行,
其中所述一个或多个服务对等交换被配置为接收描述所述服务网关的服务端点的服务端点数据,
其中一个或多个服务对等交换被配置为生成从所述服务对等交换的服务交换端点到所述服务网关的所述服务端点的关联,其中所述服务交换端点包括所述一个或多个计算设备的网络层地址和传输层端口的组合;
其中所述一个或多个服务对等交换被配置为在所述服务交换端点处经由通过所述云交换的所述第一端到端路径接收来自所述第一客户网络的传入服务请求,其中所述传入服务请求以所述服务交换端点的所述网络层地址和所述传输层端口为目的地,并且其中所述传入服务请求能够调用所述应用的应用编程接口,
其中所述一个或多个服务对等交换被配置为响应于接收到所述传入服务请求并且至少基于所述关联,经由通过所述云交换的所述第二端到端路径输出以所述服务网关的所述服务端点为目的地的传出服务请求,其中所述传出服务请求能够调用所述应用的所述应用编程接口,并且
其中所述服务网关被配置为在所述服务端点处接收所述传出服务请求,并且将所述传出服务请求路由到所述应用。
11.一种服务交换系统,包括:
可编程网络平台;以及
云交换,具有与第一客户网络、第二客户网络和一个或多个服务对等交换的访问链路,所述一个或多个服务对等交换被配置用于由包括一个或多个计算设备的服务对等交换平台执行;
其中所述可编程网络平台被配置为在所述云交换中提供第一虚拟电路以在所述一个或多个服务对等交换与所述第一客户网络之间创建通过所述云交换的第一端到端路径,其中所述一个或多个服务对等交换由一个或多个计算设备执行,
其中所述可编程网络平台被配置为在所述云交换中提供所述云交换中的第二虚拟电路,以在所述服务对等交换和所述第二客户网络之间创建通过所述云交换的第二端到端路径;
其中所述一个或多个服务对等交换被配置为接收描述执行应用的所述第二客户网络的服务端点的服务端点数据,
其中一个或多个服务对等交换被配置为生成从所述服务对等交换的服务交换端点到执行所述应用的所述第二客户网络的所述服务端点的关联,其中所述服务交换端点包括所述一个或多个计算设备的网络层地址和传输层端口的组合;
其中所述一个或多个服务对等交换被配置为在所述服务交换端点处经由通过所述云交换的所述第一端到端路径接收来自所述第一客户网络的第一传入服务请求,其中所述第一传入服务请求以所述服务交换端点的所述网络层地址和所述传输层端口为目的地,并且其中所述传入服务请求能够调用所述应用的应用编程接口,
其中所述一个或多个服务对等交换被配置为响应于接收到所述传入服务请求并且至少基于所述关联,经由通过所述云交换的所述第二端到端路径输出以执行所述应用的所述第二客户网络的所述服务端点为目的地的传出服务请求,其中所述传出服务请求能够调用所述应用的所述应用编程接口。
12.根据权利要求11所述的服务交换系统,
其中所述服务交换端点包括第一服务交换端点;
其中所述一个或多个服务对等交换被配置为在与所述第一服务交换端点不同的第二服务交换端点处接收来自所述第一客户网络的附加传入服务请求,其中所述附加传入服务请求以所述第二服务交换端点为目的地,并且其中所述附加传入服务请求能够调用第二应用的应用编程接口,以及
其中所述一个或多个服务对等交换被配置为响应于接收到所述附加传入服务请求来输出附加传出服务请求,所述附加传出服务请求以执行所述第二应用的第三客户网络的服务端点为目的地,其中所述附加传出服务请求能够调用所述第二应用的所述应用编程接口。
13.根据权利要求11所述的服务交换系统,其中所述第一客户网络不具有与所述第二客户网络的网络连接。
14.根据权利要求11所述的服务交换系统,其中所述传入服务请求和所述传出服务请求中的每个包括以下项中的一项:使用超文本传输协议(HTTP)的表示状态传输(REST)通信、JavaScript对象表示法(JSON)-远程过程调用(RPC)、简单对象访问协议(SOAP)消息、Apache Thrift请求和可扩展标记语言(XML)-RPC、消息队列遥测传输(MQTT)、Rabbit消息队列(RabbitMQ)和受约束的应用协议(CoAP)。
15.根据权利要求11所述的服务交换系统,还包括:
用于所述一个或多个服务对等交换的客户门户,所述客户门户被配置为在所述服务交换端点处显示所述应用的所述应用编程接口的可访问性的指示。
16.根据权利要求11所述的服务交换系统,
其中所述一个或多个服务对等交换被配置为接收发现请求,所述发现请求调用所述服务对等交换的发现应用编程接口并且请求服务端点以用于访问所述应用的所述应用编程接口,以及
其中所述一个或多个服务对等交换被配置为响应于所述发现请求来输出发现响应,所述发现响应指示所述服务交换端点是用于访问所述应用的所述应用编程接口的服务端点。
17.根据权利要求11所述的服务交换系统,
其中所述第二客户网络的所述服务端点包括所述第二客户网络的服务网关的、针对由所述第二客户网络执行的应用的服务端点。
CN201880039255.5A 2017-06-13 2018-06-13 服务对等交换 Active CN110809875B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211584867.7A CN115941391A (zh) 2017-06-13 2018-06-13 服务对等交换

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762518992P 2017-06-13 2017-06-13
US62/518,992 2017-06-13
PCT/US2018/037389 WO2018232022A1 (en) 2017-06-13 2018-06-13 Service peering exchange

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202211584867.7A Division CN115941391A (zh) 2017-06-13 2018-06-13 服务对等交换

Publications (2)

Publication Number Publication Date
CN110809875A CN110809875A (zh) 2020-02-18
CN110809875B true CN110809875B (zh) 2022-12-16

Family

ID=62873585

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201880039255.5A Active CN110809875B (zh) 2017-06-13 2018-06-13 服务对等交换
CN202211584867.7A Pending CN115941391A (zh) 2017-06-13 2018-06-13 服务对等交换

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202211584867.7A Pending CN115941391A (zh) 2017-06-13 2018-06-13 服务对等交换

Country Status (7)

Country Link
US (3) US11044326B2 (zh)
EP (2) EP3639505B1 (zh)
CN (2) CN110809875B (zh)
AU (2) AU2018285865B2 (zh)
BR (1) BR112019026003A2 (zh)
CA (1) CA3066459C (zh)
WO (1) WO2018232022A1 (zh)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018232022A1 (en) 2017-06-13 2018-12-20 Equinix, Inc. Service peering exchange
US11115480B2 (en) 2017-10-02 2021-09-07 Vmware, Inc. Layer four optimization for a virtual network defined over public cloud
US10812337B2 (en) 2018-06-15 2020-10-20 Vmware, Inc. Hierarchical API for a SDDC
US10942788B2 (en) 2018-06-15 2021-03-09 Vmware, Inc. Policy constraint framework for an sddc
US11012431B2 (en) * 2018-07-31 2021-05-18 International Business Machines Corporation Secure sharing of peering connection parameters between cloud providers and network providers
US11159569B2 (en) * 2018-08-20 2021-10-26 Cisco Technology, Inc. Elastic policy scaling in multi-cloud fabrics
US10848423B1 (en) * 2018-09-26 2020-11-24 Amazon Technologies, Inc. Multi-account gateway
US10911374B1 (en) * 2018-09-28 2021-02-02 Riverbed Technology, Inc. Software defined wide area network (SD WAN) enabled network fabric for containers
US11165697B2 (en) 2018-11-16 2021-11-02 Juniper Networks, Inc. Network controller subclusters for distributed compute deployments
US10771435B2 (en) * 2018-11-20 2020-09-08 Netskope, Inc. Zero trust and zero knowledge application access system
US10824483B2 (en) 2018-11-20 2020-11-03 R Software Inc. Application programming interface scoring, ranking and selection
US10897420B1 (en) * 2018-12-28 2021-01-19 Juniper Networks, Inc. Service chaining among devices of interconnected topology
US11792119B2 (en) 2018-12-28 2023-10-17 Juniper Networks, Inc. Multi-protocol service chaining among devices of interconnected topology
US11048544B2 (en) * 2019-04-08 2021-06-29 Sap Se Cloud resource credential provisioning for services running in virtual machines and containers
US11544322B2 (en) * 2019-04-19 2023-01-03 Adobe Inc. Facilitating contextual video searching using user interactions with interactive computing environments
US11329882B2 (en) 2019-04-25 2022-05-10 Juniper Networks, Inc. Multi-cluster configuration controller for software defined networks
CN112054962B (zh) * 2019-06-06 2021-12-14 华为技术有限公司 一种实现组播的方法和装置
US11489930B2 (en) * 2019-06-11 2022-11-01 At&T Intellectual Property I, L.P. Telecommunication network edge cloud interworking via edge exchange point
AU2020327874A1 (en) * 2019-08-14 2022-03-17 Telnyx Llc Secure virtual private mobile and IP network in cloud
CN113132200B (zh) * 2019-12-30 2024-01-19 中兴通讯股份有限公司 数据转发方法、转发器、系统、服务器和存储介质
US11671429B1 (en) * 2020-02-26 2023-06-06 Equinix, Inc. Authorization automation in procurement of interconnections within a data center
US11881963B2 (en) * 2020-02-28 2024-01-23 Juniper Networks, Inc. Service-based transport classes for mapping services to tunnels
US11457057B2 (en) * 2020-03-11 2022-09-27 Microsoft Technology Licensing, Llc Systems and methods for establishing highly secure and resilient persistent communication connections
US11283876B2 (en) * 2020-03-20 2022-03-22 Verizon Patent And Licensing Inc. Systems and methods for end-to-end request-response flow routing for geographically distributed client devices
EP4078901A4 (en) * 2020-04-01 2023-10-11 VMWare, Inc. AUTOMATIC DEPLOYMENT OF NETWORK ELEMENTS FOR HETEROGENEOUS COMPUTING ELEMENTS
US11218407B2 (en) 2020-04-28 2022-01-04 Ciena Corporation Populating capacity-limited forwarding tables in routers to maintain loop-free routing
US11727034B2 (en) * 2020-06-08 2023-08-15 Mongodb, Inc. Cross-cloud deployments
US11363113B1 (en) * 2020-06-18 2022-06-14 Amazon Technologies, Inc. Dynamic micro-region formation for service provider network independent edge locations
US11803408B2 (en) 2020-07-29 2023-10-31 Vmware, Inc. Distributed network plugin agents for container networking
US11863352B2 (en) 2020-07-30 2024-01-02 Vmware, Inc. Hierarchical networking for nested container clusters
US11595302B2 (en) 2020-09-23 2023-02-28 Ciena Corporation Controlling routing behavior during router table-memory exhaustion events
US11929903B2 (en) 2020-12-29 2024-03-12 VMware LLC Emulating packet flows to assess network links for SD-WAN
US11979325B2 (en) 2021-01-28 2024-05-07 VMware LLC Dynamic SD-WAN hub cluster scaling with machine learning
KR102288944B1 (ko) * 2021-04-06 2021-08-12 박철우 Mqtt 기능을 활용한 유무선 음성통신 제어 시스템 및 방법
US20220353152A1 (en) * 2021-05-03 2022-11-03 Vmware, Inc. Methods to support dynamic transit paths through hub clustering across branches in sd-wan
US11606254B2 (en) 2021-06-11 2023-03-14 Vmware, Inc. Automatic configuring of VLAN and overlay logical switches for container secondary interfaces
WO2023287696A2 (en) * 2021-07-12 2023-01-19 Intel Corporation Sixth generation (6g) system architecture and functions
US11665258B2 (en) * 2021-09-03 2023-05-30 Cisco Technology, Inc. Seamless connectivity between network functions deployed on edge and in the cloud
US11943146B2 (en) 2021-10-01 2024-03-26 VMware LLC Traffic prioritization in SD-WAN
US11902245B2 (en) 2022-01-14 2024-02-13 VMware LLC Per-namespace IP address management method for container networks
US11575596B1 (en) * 2022-03-07 2023-02-07 Ciena Corporation Identifying an ingress router of a flow in inter-AS VPN option-C networks with visibility in one AS
US11909815B2 (en) 2022-06-06 2024-02-20 VMware LLC Routing based on geolocation costs
US11848910B1 (en) 2022-11-11 2023-12-19 Vmware, Inc. Assigning stateful pods fixed IP addresses depending on unique pod identity
US11831511B1 (en) 2023-01-17 2023-11-28 Vmware, Inc. Enforcing network policies in heterogeneous systems
US11863534B1 (en) * 2023-02-03 2024-01-02 Dice Corporation Scalable router interface initiation
US11895091B1 (en) * 2023-02-03 2024-02-06 Dice Corporation Scalable router interface communication paths

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106464742A (zh) * 2015-05-12 2017-02-22 环球互连及数据中心公司 用于基于云的服务交换的可编程网络平台

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9130897B2 (en) * 2003-09-30 2015-09-08 Ca, Inc. System and method for securing web services
GB0426202D0 (en) * 2004-11-30 2004-12-29 Ibm A method, system and computer program for addressing a web service
WO2008094540A1 (en) * 2007-01-29 2008-08-07 Mashery, Inc. Methods for analyzing limiting, and enhancing access to an internet api, web service, and data
US8379656B2 (en) 2009-09-04 2013-02-19 Equinix, Inc. Real time configuration and provisioning for a carrier ethernet exchange
WO2011117261A2 (en) * 2010-03-22 2011-09-29 Data Connection Limited System for connecting applications to networks
US8345692B2 (en) * 2010-04-27 2013-01-01 Cisco Technology, Inc. Virtual switching overlay for cloud computing
US8965957B2 (en) * 2010-12-15 2015-02-24 Sap Se Service delivery framework
US8495199B2 (en) * 2011-12-22 2013-07-23 Amazon Technologies, Inc. Interfaces to manage service marketplaces accessible via direct network peerings
US10129078B2 (en) 2014-10-30 2018-11-13 Equinix, Inc. Orchestration engine for real-time configuration and management of interconnections within a cloud-based services exchange
US9930103B2 (en) * 2015-04-08 2018-03-27 Amazon Technologies, Inc. Endpoint management system providing an application programming interface proxy service
US9948552B2 (en) * 2015-04-17 2018-04-17 Equinix, Inc. Cloud-based services exchange
WO2016183253A1 (en) 2015-05-12 2016-11-17 Equinix, Inc. Programmable network platform for a cloud-based services exchange
US9983860B1 (en) * 2016-02-05 2018-05-29 Equinix, Inc. Continuous application delivery monitoring
US10742721B1 (en) 2016-04-01 2020-08-11 Equinix, Inc. Inter-metro connectivity network connect
WO2018232022A1 (en) 2017-06-13 2018-12-20 Equinix, Inc. Service peering exchange

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106464742A (zh) * 2015-05-12 2017-02-22 环球互连及数据中心公司 用于基于云的服务交换的可编程网络平台

Also Published As

Publication number Publication date
AU2018285865A1 (en) 2019-12-19
EP3639505B1 (en) 2022-09-28
WO2018232022A1 (en) 2018-12-20
EP4113955A1 (en) 2023-01-04
US11044326B2 (en) 2021-06-22
AU2021254533B2 (en) 2023-09-28
AU2018285865B2 (en) 2021-07-22
US11758007B2 (en) 2023-09-12
BR112019026003A2 (pt) 2020-06-23
AU2021254533A1 (en) 2021-11-18
US20180359323A1 (en) 2018-12-13
CA3066459C (en) 2023-10-17
CA3066459A1 (en) 2018-12-20
CN115941391A (zh) 2023-04-07
US20230421649A1 (en) 2023-12-28
EP3639505A1 (en) 2020-04-22
CN110809875A (zh) 2020-02-18
US20210314411A1 (en) 2021-10-07

Similar Documents

Publication Publication Date Title
CN110809875B (zh) 服务对等交换
US11228573B1 (en) Application programming interface exchange
US11831496B2 (en) Providing access to configurable private computer networks
US11870644B2 (en) Exchange of routing information to support virtual computer networks hosted on telecommunications infrastructure network
US10951586B2 (en) Providing location-specific network access to remote services
US10868715B2 (en) Providing local secure network access to remote services
US7486659B1 (en) Method and apparatus for exchanging routing information between virtual private network sites
US11711317B1 (en) Remote port for network connectivity for non-colocated customers of a cloud exchange
AU2021332587B2 (en) Virtual domains within a shared device
US11880705B2 (en) Virtual network function virtual domain isolation
EP3151477B1 (en) Fast path content delivery over metro access networks
US11588731B1 (en) Cloud-to-cloud interface
US11757928B2 (en) Distributed denial-of-service mitigation

Legal Events

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