网络服务基于云的网络功能注入的制作方法

文档序号:10618693阅读:236来源:国知局
网络服务基于云的网络功能注入的制作方法
【专利摘要】本文公开了用于提供外部网络服务的API描述并使用API将外部服务集成到网络中的系统、方法和计算机程序产品实施例。一个实施例通过以下步骤来操作:从服务提供方接收应用编程接口(API)的描述;使用用于创建服务的新实例的API向服务提供方发送调用,并向服务提供方发送将对其应用所述服务的业务流。
【专利说明】
网络服务基于云的网络功能注入
技术领域
[0001]实施例大体涉及虚拟网络服务,具体地涉及将外部网络功能集成到网络服务中。
【背景技术】
[0002]基于云的网络服务可以允许各种独立提供的方案以对服务用户透明的方式集成到虚拟网络中。例如,由一个实体提供的基于云的网络服务可以合并由第二实体提供的防火墙服务,扩展由于第三方而使得其可用的对用户可用的服务。
[0003]—般地,网络通过适配于外部服务的应用编程接口(API)来集成外部服务。网络可以修改其操作以实现API,使外部服务实例化,并通过外部服务对业务进行正确路由。然而,修改网络的操作以集成到API会需要相当大的时间和精力。

【发明内容】

[0004]鉴于上述内容,为外部网络服务提供方提供传输API描述的机制将会是有利的,所述API描述可以合并到网络操作中以利用外部服务。
[0005]在一个实施例中,系统从服务提供方接收应用编程接口(API)的描述。系统基于业务流生成API调用以创建由服务提供方提供的服务的新实例,使得调用如描述所指定的那样被格式化,并且该系统向服务提供方发送API调用。系统向服务提供方发送业务流,以及接收业务流,其中服务提供方已将服务应用于所述业务流。
[0006]还公开了方法和计算机可读介质实施例。
[0007]以下参照附图具体描述附加实施例和特征以及各种实施例的结构和操作。
【附图说明】
[0008]附图合并在本文中并形成说明书的一部分。
[0009]图1A是根据示例实施例的用于将基于云的外部服务集成到网络中的联网环境的框图。
[0010]图1B是示出了根据示例实施例的用于将基于云的外部服务集成到网络中的联网环境的进一步的细节的框图。
[0011]图2是示出了根据示例实施例的用于向网络注册网络服务API功能的示例注册API调用的框图。
[0012]图3是示出了根据示例实施例的用于网络API功能注册和实例化的调用序列的示图。
[0013]图4是描述了根据示例实施例的用于发起网络服务中的外部服务的处理的流程图。
[0014]在附图中,相似的附图标记通常指示等同或相似的要素。附加地,通常,附图标记中最左侧的数字标识附图标记首先出现的附图。
【具体实施方式】
[0015]本文提供的是用于提供外部网络服务的API描述并使用API将外部服务集成到网络中的系统、方法和/或计算机程序产品实施例,和/或其组合和子组合。
[0016]图1A示出了根据示例实施例的用于将基于云的外部服务集成到网络中的联网环境 100。
[0017]联网环境100包括客户端IlOa和110b、网络120和网络服务提供方130a-130b。
[0018]在一个实施例中,客户端IlOa和IlOb通过网络120进行通信。客户端IlOa和IlOb的每一个可以是能够通过网络进行通信的任意计算设备或计算设备(例如,个人计算机、服务器、移动设备、局域网(LAN)等)的组合。客户端IlOa和IlOb可以是网络120的客户端。在另一实施例中,客户端IlOa和IlOb通过网络120建立的虚拟LAN(VLAN)进行通信。
[0019]网络120包括被配置为在客户端(例如,客户端11Oa和11Ob)之间路由数据业务的节点122a-122f的网络。例如,网络120是城域网(MAN)或广域网(WAN)。在一个实施例中,网络120提供虚拟联网服务(例如VLAN、虚拟个人网络(VPN))等。在一个实施例中,网络120提供远程位置中的客户端之间的以太网连接。例如,网络120为远程位置中的客户端之间的数据通信提供具有专用带宽的虚拟电路。网络120可以使用任意点到点、点到多点或多点到多点的联网协议。使用的网络接入协议可以包括例如以太网、异步传输模式(ATM)、高级数据链路控制(HDLC)、帧中继、同步光联网(SONET)/同步数字分级(SDH)、互联网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)、多协议标签交换(MPLS)等。
[0020]网络服务提供方130a_130b独立于网络120提供网络服务。例如,由第三方实体主持提供方130a-130b。示例网络服务是对两个通信客户端之间的业务流进行过滤的防火墙。网络服务的其他示例是入侵检测系统、抗病毒系统、反垃圾邮件过滤器等。在一个实施例中,网络服务提供方130a-130b向多个网络提供网络服务。网络服务提供方130a-130b通过提供用于创建网络服务的实例以及用于对要被服务的业务进行格式化的API来提供网络服务。网络使用提供方的相应API来供应提供方的服务。
[0021 ]在一个实施例中,网络120还为客户端提供网络服务。例如,网络120为其客户端实施其自身的防火墙服务。在一个实施例中,网络120的客户端可以选择使用由网络120或外部提供方提供的服务来用于附加或备选服务。在一个实施例中,客户端通过客户端端口网页选择服务和服务源。
[0022]根据实施例,网络服务提供方130a_130b在注册处理期间向网络120提供API的描述。以这种方式,提供方130向网络120传达如何交互以及供应提供方130的服务。网络120然后使用该API描述来对通过服务提供方转发的服务请求和业务进行格式化。以这种方式,网络120提供多个网络服务提供方的服务,而不必针对每个提供方修改其代码。在一个实施例中,提供方130a-130b通过调用网络120的注册API并包括提供方API描述作为参数来注册它们的相应服务API。
[0023]图1B是示出了根据示例实施例的联网环境100的进一步的细节的框图。
[0024]如图1B中所示,示例网络节点122包括API注册模块124、服务调用模块126、客户端端口模块128和API数据库129。
[0025]在一个实施例中,API注册模块124从网络服务提供方接收API注册调用。API注册调用包括API调用的API描述,以供应由服务提供方提供的网络服务功能。API注册模块124将API描述存储在API数据库129中。
[0026]在一个实施例中,服务调用模块126生成并发送API调用,以供应网络服务。当网络120试图从服务提供方发起外部网络服务时,服务调用模块126向API数据库129询问API调用的API描述,以发起服务功能。
[0027]在一个实施例中,客户端端口模块128从网络120的客户端接收命令,以发起外部网络服务。例如,客户端端口模块128可以从客户端11 Oa接收命令,以包括由f irera ll.com提供的防火墙,以用于客户端IlOa与客户端IlOb之间的连接。在一个实施例中,客户端端口模块128为客户端提供图形用户界面,以供应配置和服务设置。然后,客户端端口模块128可以向服务调用模块126转发指令,以发起服务。客户端端口模块128可以向客户端提供确认,表明外部服务已被正确发起、或服务不可用。例如,如果尚未在API数据库129中注册服务的API,则客户端端口模块128可以向客户端通知所请求的服务不可用。
[0028]如图1B中所示,示例服务提供方130包括API发布模块132和服务模块134。
[0029]在一个实施例中,API发布模块132与服务提供方130所试图从其接收服务请求的网络120传输用于注册网络服务功能的注册API调用。在一个实施例中,当提供新服务时、或当已经改变了现有服务的API时,API发布模块132注册服务API。
[0030]在一个实施例中,服务模块134从网络接收API服务调用,并相应地发起网络服务功能。
[0031]图2示出了根据示例实施例的用于向网络120注册网络服务API功能250的示例注册API调用200。可以使用例如高级消息队列协议(AMQP)、简单对象访问协议(S0AP)、表述性状态传递(REST)和Java消息服务(JMS)来发送网络120与网络服务提供方130之间的API调用。
[0032]在一个实施例中,注册API调用200包括两部分:注册API标识符210和API描述220。
[0033]在一个实施例中,注册API标识符210将API调用200标识为用于向网络120注册外部功能的调用。注册API标识符210可以例如是将API调用200与由网络120接收到的其他调用区分开的标志。
[0034]在一个实施例中,API描述220指定当调用外部网络API功能250时要传送的格式和参数。在一个实施例中,API描述220包括外部服务标识符222和参数224。
[0035]服务标识符222标识被注册的外部网络API功能250。服务标识符222可以是例如标识API功能250的多个或一组字符。
[0036]参数224指定当供应外部API功能时网络120需要传送的参数。在一个实施例中,从与外部网络API功能250所应用于的业务流相关联的参数的列表指定参数。
[0037]例如,网络120可以在客户端IlOa和IlOb之间实现VLAN,并可以试图通过VLAN建立业务的防火墙。在示例实施例中,如由相应API描述220所描述的,网络120针对防火墙调用外部API功能250,以建立由外部提供方130a提供的防火墙服务。作为API功能调用的部分,网络120可以传送诸如业务流的标识符、业务的源地址和目的地址、源和目的端口等的参数。
[0038]在一个实施例中,网络120具有与业务流相关联的可用参数的列表、以及这些参数的描述符。在一个实施例中,注册API功能的提供方130a使用来自与网络120中的业务流相关联的可用参数的列表的描述符来描述API功能参数224。在一个实施例中,API描述220用被表示为合适位置中的变量的参数来指定API调用的格式。当形成API调用时,网络120用所需服务的相应参数来替代所述变量。
[0039]图3示出了根据示例实施例的用于网络API功能注册和实例化的调用序列。
[0040]如上所述,服务提供方130a注册所提供的服务的API功能。如步骤302所示,为注册API功能从而网络120可以调用该功能,提供方130a向网络服务120发出注册API调用。网络120将接收到的API描述存储在API注册数据库中,用于未来在发起外部服务功能时进行参考。
[0041]在步骤304,网络120可以利用注册成功的确认进行响应。
[0042]在步骤306,网络120通过从API数据库检索适合于服务的API描述并将API调用发送给提供方130a来发起外部服务。
[0043 ]在步骤308,提供方130发送API调用成功的确认。
[0044]在步骤310,网络120开始通过提供方130a发送业务,以执行所提供的服务。例如,如果通过API调用发起了防火墙服务,则网络120通过提供方130发送业务以供处理。
[0045]如果API调用的格式改变,则外部服务提供方通过例如再次执行处理300来更新API描述。
[0046]图4是描述了根据示例实施的用于发起网络服务中的外部服务的处理的流程图。
[0047]在步骤402,网络120从客户端接收请求,以将外部服务合并到业务流中。例如,客户端I 1a可能希望向客户端I1a与客户端I 1b之间的VLAN连接添加由f irewall.com提供的防火墙。
[0048]在步骤404,网络120检查是否已经注册了所请求的外部服务。在一个实施例中,网络120检查API注册数据库并尝试检索与所请求的外部服务相对应的API的描述。如步骤406中所示,如果网络120没有找到服务的API描述,则网络120不创建服务实例并向请求客户端通知错误消息。
[0049]如果在步骤404,网络120发现与所请求的服务相对应的API描述,则处理移至步骤408并以API描述所描述的格式来创建API调用。例如,网络120可以准备API调用,以根据由firewill.com指定的格式来创建防火墙。API调用包括参数,替代描述中指定的变量。例如,用于使用firewall, com创建防火墙的API描述可以是“ #fw/$FLOW_ID/$SRC_ADDR/$DST_ADDR/$SRC_P0RT/$DST_P0RT.”用于在两个客户端之间建立防火墙的API调用随后用变量替代业务流的相应参数,例如“#fw/60/l 10.20.30.1/110.20.42.1/88/89。
[0050]在步骤中410,网络120向外部服务发送API调用,并通过以适当的格式转发业务来发起服务。在上述示例中,网络120将如上所述发送API调用,然后转发来自节点110.20.30.1:88并去往110.20.42.1:89的流60业务并通过f ireralI.com网络对其进行转移。
[0051 ] 结论
[0052]API数据库可以是任意存储类型的结构化存储器,包括永久性存储器。在示例中,每个数据库可以被实现为相关数据库或文件系统。
[0053]可以用硬件、软件或固件或其任意组合来实现图1A和图1B中的框和模块的每一个。
[0054]可以在相同或不同计算设备上实现图1A和图1B中的框和模块的每一个。这种计算设备可以包括但不限于个人计算机、移动设备(例如移动电话)、工作站、嵌入式系统、游戏控制台、电视、机顶盒或任意其他计算设备。此外,计算设备可以包括但不限于,具有处理器和存储器的设备,包括用于执行和存储指令的非瞬时性存储器。存储器可以有形地体现数据和程序指令。软件可以包括一个或多个应用和操作系统。硬件可以包括但不限于处理器、存储器和图形用户界面显示器。计算设备还可以具有多个处理器和多个共享或分离的存储器组件。例如,计算设备可以是集中计算环境或服务器群的一部分或全部。
[0055]诸如“(a)”、“(b)”、等的标识符有时用于不同的元素或步骤。使用这些标识符是为了清楚而不必需指定元素或步骤的顺序。
[0056]以上已经在示出了指定功能及其关系的实施方式的功能构建块的辅助下,描述了本发明。为便于描述,本文已经任意定义了这些功能构建块的边界。只要所指定的功能及其关系被适当地执行,就可以定义备选边界。
[0057]特定实施例的上述描述将完全揭示本发明的总体性质,其他人可以在不过度实验,不脱离本发明的总体构思的情况下,通过应用本领域技术知识来容易地修改和/或适应这种特定实施例的各种应用。因此,基于本文呈现的教导和引导,这种适应和修改意图在所公开的实施例的等同物的含义和范围内。将理解的是本文的措辞和术语用于描述而非限制的目的,使得本领域技术人员鉴于教导和引导来解释本说明书的措辞或术语。
[0058]本实施例的宽度和范围不应受任意上述示例的限制,而是应仅根据所附权利要求及其等同物来限定。
【主权项】
1.一种用于将外部服务集成到网络中的计算机实现的方法,包括: 从服务提供方接收应用编程接口 “API”的描述; 基于业务流生成API调用,所述API调用用于创建由服务提供方提供的服务的新实例,使得所述调用如所述描述所指定的那样被格式化,所述业务流是定址到目的地的数据流; 向服务提供方发送所述API调用,以将所述服务实例化; 在向目的地发送数据流之前,向服务提供方发送业务流以使所述业务流被所述服务处理;以及 在所述业务流被所述服务处理之后,从服务提供方接收业务流以继续向目的地转发。2.根据权利要求1所述的方法,其中所述API的描述包括表示业务流的参数的变量。3.根据权利要求2所述的方法,其中所述调用包括替代所述变量的参数值。4.根据权利要求1所述的方法,其中所述API的描述包括用于创建服务的格式。5.根据权利要求1所述的方法,其中所述API的描述包括用于发送业务流的格式。6.根据权利要求1所述的方法,还包括: 从网络客户端接收用于发起服务提供方的服务的指令, 其中响应于接收到所述指令而发送所述API调用。7.根据权利要求1所述的方法,其中由服务提供方提供的服务包括以下至少一项:防火墙、入侵检测系统、WAN加速系统和流监控系统。8.一种用于将外部服务集成到网络中的系统,包括: API注册模块,从服务提供方接收应用编程接口 “API”的描述; 服务调用模块: 基于业务流生成API调用,所述API调用用于创建由服务提供方提供的服务的新实例,使得所述调用如所述描述所指定的那样被格式化; 向服务提供方发送所述API调用; 向服务提供方发送业务流;以及 从服务提供方接收业务流,其中服务提供方已经将所述服务应用于所述业务流。9.根据权利要求8所述的系统,其中所述API的描述包括表示业务流的参数的变量。10.根据权利要求9所述的系统,其中所述调用包括替代所述变量的参数值。11.根据权利要求8所述的系统,其中所述API的描述包括用于创建服务的格式。12.根据权利要求8所述的系统,其中所述API的描述包括用于发送业务流的格式。13.根据权利要求8所述的系统,还包括: 客户端端口模块,从网络客户端接收用于发起服务提供方的服务的指令, 其中响应于接收到所述指令而发送所述API调用。14.根据权利要求8所述的系统,其中由服务提供方提供的服务包括以下至少一项:防火墙、入侵检测系统、WAN加速系统和流监控系统。15.一种存储有指令的有形计算机可读设备,当所述指令被至少一个计算设备执行时,使得所述至少一个计算设备执行以下操作,包括: 从服务提供方接收应用编程接口 “API”的描述; 基于业务流生成API调用,所述API调用用于创建由服务提供方提供的服务的新实例,使得所述调用如所述描述所指定的那样被格式化; 由一个或多个处理设备向服务提供方发送所述API调用; 向服务提供方发送业务流;以及 从服务提供方接收业务流,其中服务提供方已经将所述服务应用于所述业务流。16.根据权利要求15所述的计算机可读设备,其中所述API的描述包括表示业务流的参数的变量。17.根据权利要求16所述的计算机可读设备,其中所述API调用包括替代所述变量的参数值。18.根据权利要求15所述的计算机可读设备,其中所述API的描述包括用于创建服务的格式。19.根据权利要求15所述的计算机可读设备,其中所述API的描述包括用于发送业务流的格式。20.根据权利要求15所述的计算机可读设备,还包括: 从网络客户端接收发起服务提供方的服务的指令, 其中响应于接收到所述指令而发送所述API调用。21.根据权利要求15所述的计算机可读设备,其中由服务提供方提供的服务包括以下至少一项:防火墙、入侵检测系统、WAN加速系统和流监控系统。22.一种方法,包括: 在网络元件处接收定址到目的地的业务流; 在向目的地发送数据流之前,向服务提供方发送业务流以使所述业务流被服务处理;以及 在所述业务流被所述服务处理之后,从服务提供方接收业务流以继续向目的地转发。23.根据权利要求23所述的方法,还包括: 在网络元件处接收用于将所述服务应用于业务流的指令,其中响应于所述指令而向服务提供方进行发送。
【文档编号】H04L12/801GK105981339SQ201580008184
【公开日】2016年9月28日
【申请日】2015年2月9日
【发明人】威廉姆·托马斯·塞拉
【申请人】第三雷沃通讯有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1