用于网络控制器的联合的通信框架的制作方法

文档序号:14652038发布日期:2018-06-08 22:01阅读:137来源:国知局
用于网络控制器的联合的通信框架的制作方法

此申请案主张2016年4月20日提出申请的标题为“用于网络控制器的联合的通信框架(COMMUNICATION FRAMEWORK FOR A FEDERATION OF NETWORK CONTROLLERS)”的美国临时申请案第62/325,355号的权益及优先权,所述美国临时申请案的全部内容出于所有目的以引用的方式并入本文中。



背景技术:

本发明一般来说涉及联网技术,且更特定来说涉及一种用于网络环境中的网络控制器的通信框架。

网络控制器通常经配置以管理在与网络控制器相关联的域内的一或多个网络元件。取决于网络的大小,针对网络控制器的域可包括大量网络元件(例如,数千或数万个)且由网络控制器针对所管理网络元件而存储的数据的大小可为相当大的。此呈现与此数据的管理及网络的成长相关的数个问题。举例来说,考虑其中第一域网络控制器管理对应于第一域的大的网络且第二域网络控制器管理对应于第二域的另一大的网络的网络配置。网络管理员可想要将所述两个大的域网络互连以形成更大的网络。此可通过将第一域网络控制器与第二域网络控制器互连而完成。然而,由于作为互连的结果而在两个域网络控制器之间共享的与个别域网络相关的大的不受限制数据量,因此此可对于网络性能具有不利影响。



技术实现要素:

本发明一般来说涉及联网技术,且更特定来说涉及一种用于网络环境中的网络控制器的通信框架。

本发明提供一种通信框架,所述通信框架可经配置以控制或限制网络控制器的用以向其它者(例如向网络环境中的其它网络控制器)传递、导出或共享所述网络控制器的数据的能力。作为此框架的一部分,提供使得能够针对特定网络控制器而指定约束条件的技术,其中所述约束条件控制及限制被准许从所述特定网络控制器传递到所述网络环境中的其它网络控制器、应用程序或其它既定数据接收方的数据。

在特定实施例中,可提供网络控制器,所述网络控制器包括由一或多个处理器执行的一或多个模块的群集。网络控制器的数据可存储于与所述网络控制器相关联的存储器中。可针对所述网络控制器而指定约束条件信息,所述约束条件信息识别对将数据从所述网络控制器传递到其它者(例如传递到其它网络控制器)的一或多个约束条件。响应于数据请求,网络控制器可基于针对所述网络控制器指定的约束条件信息而确定是否准许进行与数据请求对应的数据传递。如果不准许,那么网络控制器不允许或阻止进行与数据请求对应的数据传递。如果准许,那么网络控制器允许从控制器传递所请求数据。

针对控制器而指定的约束条件信息可采取各种不同形式。约束条件信息可识别筛选器,其中筛选器识别将被筛选且因此不被准许从控制器传递的数据。在特定实施例中,可以规则(例如,基于原则的规则)、受限制数据传递的列表(或替代地,经准许数据传递的列表)等等的形式指定约束条件。

在特定实施例中,提供系统、方法以及存储可由一或多个处理器执行的代码或多个指令的非暂时性计算机可读媒体以用于执行与约束网络控制器的联合中的数据相关的各种操作。举例来说,在一些实施例中,可提供第一网络控制器(例如,由一或多个计算系统执行),所述第一网络控制器经配置以管理第一域中的第一组一或多个网络元件,所述第一组网络元件中的每一网络元件经配置以提供一或多个联网功能。由所述第一组网络元件提供的一或多个联网功能可包括各种功能,例如防火墙功能、数据转发或路由功能等等。所述第一网络控制器可响应于请求将数据从所述第一网络控制器传递到接收方的数据请求而确定针对所述第一网络控制器指定的约束条件信息,所述约束条件信息识别对从所述第一网络控制器传递数据的一组约束条件。所述第一网络控制器可基于所述约束条件信息而确定不准许将由所述数据请求所请求的数据从所述第一网络控制器传递到所述接收方,且因此阻止将所请求数据从所述第一网络控制器传递到所述接收方。所述接收方可为联网环境中的另一网络控制器、应用程序或其它实体。

在上文所描述的实施例中,由所述第一网络控制器管理的第一组网络元件可包括一或多个虚拟网络元件及/或一或多个物理网络元件。

在一些实施例中,所述数据请求可为由所述第一网络控制器从第二网络控制器接收,其中所述第二网络控制器管理第二域中的一或多个网络元件,且所述接收方为所述第二网络控制器。所述第二网络控制器是由与提供所述第一网络控制器的所述系统不同的第二系统提供,或可为由与提供所述第一网络控制器的计算系统相同的计算系统提供。在一些其它实施例中,所述接收方可为经配置以控制或管理一或多个网络元件的应用程序。在替代实施例中,所述接收方可为联网环境中的其它实体。

在一些实施例中,针对所述第一网络控制器的所述组约束条件可为基于各种不同准则。举例来说,所述组约束条件可包含基于用于在所述第一网络控制器与所述接收方之间进行通信的通信信道的特性(例如,所述通信信道的类型、将用于将所请求数据从所述第一网络控制器传递到所述接收方的通信协议或所述通信信道的状态)的第一约束条件,所述第一约束条件约束从所述第一网络控制器到所述接收方的数据传递。作为另一实例,所述组约束条件可包含基于所述第一网络控制器的特性(例如,所述第一网络控制器的位置、来自所述第一组网络元件的网络元件的特性、所述第一网络控制器的状态或用于所述第一网络控制器的配置参数集)的约束条件,所述约束条件约束从所述第一网络控制器到所述接收方的数据传递。作为又另一实例,所述组约束条件可包含基于所述接收方的特性(例如,所述接收方的位置、用于所述接收方的配置参数集、所述接收方的状态或在所述接收方为另一网络控制器—第二网络控制器的情况下,由所述第二网络控制器控制的网络元件的特性)的第一约束条件,所述第一约束条件约束从所述第一网络控制器到所述接收方的数据传递。

作为又另一实例,所述组约束条件可包含基于所述第一网络控制器的租户的特性的约束条件(其约束从所述第一网络控制器到所述接收方的数据传递)、基于由所述数据请求所请求的数据的特性的约束条件(其约束从所述第一网络控制器到所述接收方的数据传递)或基于所述第一网络控制器及所述接收方在其中进行操作的网络环境的状态的约束条件(其约束从所述第一网络控制器到所述接收方的数据传递)。

在特定实施例中,针对网络控制器的约束条件信息可为静态的且可被手动地改变(即,不可改变,除非由用户改变)或动态的(例如,可在无需手动介入的情况下由自动化技术改变)。可使用各种不同技术来以自动化、半自动化或手动方式设定及/或更新约束条件信息。举例来说,可使用一或多种机器学习或人工智能(AI)技术来动态地自动或以半自动化方式设定或改变约束条件准则。

在特定实施例中,可使用建模语言(例如YANG)来将网络控制器的数据建模。可针对网络控制器的数据而指定多个数据模型。可接着针对所述模型中的一或多者而指定约束条件。针对模型而指定的约束条件可用于约束与模型对应的数据传递。举例来说,可针对网络控制器而指定第一模型,所述第一模型识别针对网络控制器所存储的数据的子集。针对网络控制器的约束条件信息可包括指定与第一模型相关联的第一约束条件的信息。因此,约束条件信息可用作用于由数据模型公开的控制器数据的筛选或约束筛选器。

在特定实施例中,可提供网络控制器,所述网络控制器用于管理第一域中的第一组一或多个网络元件,所述第一组网络元件中的每一网络元件经配置以提供一或多个联网功能。所述网络控制器可接收请求将特定数据从第一网络控制器传递到接收方的数据请求。作为一个实例,所述接收方可为管理第二域中的第二组一或多个网络元件的第二网络控制器,所述第二组网络元件中的每一网络元件经配置以提供一或多个联网功能。响应于接收到数据请求,所述第一网络控制器可确定针对所述第一网络控制器而指定的约束条件信息。所述网络控制器可接着基于所述约束条件信息而确定是否准许将所述特定数据从所述第一网络控制器传递到所述接收方。只有在基于所述约束条件信息而确定准许将所述特定数据从所述第一网络控制器传递到所述接收方后,才即刻将所述特定数据从所述第一网络控制器传递到所述接收方。以此方式,如果基于所述约束条件信息而确定不准许将所述特定数据从所述第一网络控制器传递到所述接收方,那么不将所述特定数据从所述第一网络控制器传递到所述接收方。

主张针对于一种系统、方法以及存储可由一或多个处理器执行的多个指令的非暂时性计算机可读媒体的各种实施例,其中在一个技术方案分类(例如,方法)中所提及的任何特征也可在另一技术方案分类(例如,系统)中主张。所附权利要求书中往回的附属项及参考是仅出于正式原因而选择。然而,也可主张由返回到任何先前权利要求(在特定多个附属项中)的有意参考得出的任何标的物,使得揭示并可主张权利要求书及其特征的任何组合,而不管权利要求书中所选择的附属项如何。可被主张的标的物不仅包括如权利要求书中所陈述的特征组合而且包括权利要求书中的任何其它特征组合,其中权利要求书中所提及的每一特征可与权利要求书中的任何其它特征或其它特征组合进行组合。此外,本文中所描述或描绘的实施例及特征中的任一者可在单独技术方案中主张及/或以与本文中所描述或描绘的任何实施例或特征或者与权利要求书的特征中的任一者的任何组合来主张。

在参考以下说明书、权利要求书及所附图式后,前述内容以及其它特征及实施例将变得更加显而易见。

附图说明

图1是并入特定实施例的网络环境的经简化框图。

图2是根据特定实施例的控制器的经简化框图,其展示通信子系统的细节。

图3描绘其中多个控制器被配置为彼此的同级的网络环境。

图4描绘其中根据阶层而配置多个控制器的网络环境。

图5描绘根据特定实施例的展示由控制器执行以用于将数据从控制器传递到另一控制器的处理的经简化流程图。

图6是根据特定实施例的可用于执行控制器的各种模块的计算系统或装置的经简化框图。

具体实施方式

在以下描述中,出于解释目的,陈述特定细节以便提供对所主张实施例的透彻理解。然而,将明了,可在不具有这些特定细节的情况下实践各种实施例。图及描述并不打算为限制性的。本文中使用词语“示范性”意指“用作实例(example、instance)或图解说明”。在本文中描述为“示范性”的任何实施例或设计未必应视为比其它实施例或设计优选或有利。

本发明一般来说涉及联网技术,且更特定来说涉及一种用于网络环境中的网络控制器的通信框架。在特定实施例中,提供一种通信框架,所述通信框架可经配置以控制或限制网络控制器的用以向其它者(例如向网络环境中的其它网络控制器)传递、导出或共享网络控制器的数据的能力。作为此框架的一部分,提供使得能够针对特定网络控制器而指定约束条件的技术,其中所述约束条件控制及限制被准许从特定网络控制器传递到网络环境中的其它网络控制器、应用程序或既定数据接收方的数据。

网络环境可包括多个控制器,每一控制器经配置以管理若干个网络元件,包含真实网络元件及虚拟网络元件。虚拟网络元件的实例不加限制地包含运行应用程序的虚拟机器、容器等等。容器通常包括运行时环境,所述运行时环境包含被捆绑到一个封装中的应用程序、其附属项、程序库以及运行所述应用程序所需的其它二进制及配置文件。针对运行多个容器化(containerized)网络元件的服务器,多个容器可共享服务器的操作系统核心。当在网络环境中部署包含软件定义联网(SDN)控制器的网络控制器时,所述网络控制器被布置在一起且以使得其能够管理网络元件(真实网络元件及虚拟化网络元件两者)并与在其管理下的所述网络元件互动的方式配置。这些布置通常基于对网络的部分或区域的管理控制。举例来说,在特定实施例中,网络可被划分成称为域的部分或区域,其中每一域包含可为真实及/或虚拟网络元件的一或多个网络元件。逻辑上,域表示一组网络元件。

可使用各种不同准则或原因来配置域,例如(不加限制地)监管要求、物理限制、地理边界、不同软件系统(例如,由于存在不同软件系统(即,不同产品),因此有时发生分离)等等。单个网络控制器通常经指派为并负责管理在域内的网络元件。因此,此控制器有时还称为域控制器或域网络控制器。由网络控制器执行的典型功能包含但不限于网络元件的发现、网络元件的配置、网络元件的配设、网络元件的监视、固定网络元件、网络元件的库存管理、对路径、子网络、私人网络、隧道或跨越许多网络元件而配设的其它较高‘层’的服务的配置以及其它功能。

由于网络环境可被分割成多个域(其中每一域由域控制器管理),因此通常存在部署在网络环境内的多个域控制器。当两个或两个以上此类域控制器希望彼此进行通信而作为执行控制器功能的一部分时,将其称为控制器的联合。本发明描述用于控制联合中的此类网络控制器之间的通信(例如,提供用以指定对所述通信的约束条件的能力)的通信框架。

图1是并入特定实施例的网络环境100的经简化框图。图1中所描绘的网络环境100包括被组织到域中的多个网络元件,其中每一域由网络控制器管理。图1中所描绘的实施例包括两个网络控制器:域控制器A 102,其经配置以管理在域A内的网络元件;及域控制器B 104,其经配置以管理在域B内的网络元件。控制器102及104可各自经配置以充当用于在由控制器管理的域内的多个网络元件(NE)106的网络控制器。图1中所描绘的实施例仅为实例且并不打算为限制性的。所属领域的技术人员将认识到许多变化形式、替代方案及修改形式。举例来说,在一些实施例中,网络环境100可具有比图1中所展示的元件更多或更少的元件、可组合两个或两个以上元件或者可具有不同的元件配置或布置。举例来说,尽管在图1中仅描绘两个控制器102及104,但此并非打算以任何方式具限制性。网络环境可包括一个、两个或更多域,其中每一域由网络控制器控制。网络元件可属于一个域且由一个‘主控装置(master)’控制,但多个网络控制器将针对不同功能管理同一网络元件也是可能的。在特定实施例中,应用程序可经开发以通过两个或两个以上网络控制器而控制一个网络元件。

在域内且由网络控制器管理的网络元件可包括一或多个物理网络元件及/或一或多个虚拟网络元件。举例来说,如图1中所描绘,域网络控制器A 102经配置以管理包括网络元件106的域,所述网络元件可包括一或多个物理网络元件108及/或一或多个虚拟网络元件110。以类似方式,如图1中所描绘,域网络控制器B 104经配置以管理包括网络元件112的域,所述网络元件可包括一或多个物理网络元件114及/或一或多个虚拟网络元件116。

物理网络元件的实例不加限制地包含经配置以提供联网相关功能(例如数据转发、交换及路由功能)的真实物理机器或装置。由物理网络元件提供的联网功能还可包含防火墙功能性等等。物理网络元件的实例包含基于硬件的交换机、路由器、防火墙装置等。虚拟网络元件利用虚拟化技术来提供联网相关功能。虚拟网络元件可不加限制地包含运行应用程序、容器化应用程序等等的虚拟机器。虚拟网络元件(例如,虚拟网络元件110及116)一般以软件实施且经由软件实施方案而提供联网相关功能。由虚拟网络元件提供的功能有时称为虚拟网络功能(VNF)且可包含与数据转发、交换、路由、防火墙等等相关的功能。在特定实施例中,可在物理网络元件上实施一或多个虚拟网络元件。在控制器的域内的网络元件的数目可从一个域到另一域变化且可从几个网络元件一直数到大量网络元件,包含数十个及数千个网络元件。

如图1中所描绘,一或多个应用程序118-1、118-2、118-3等(一般来说,应用程序118)可与控制器102及104中的一者或两者以通信方式耦合。应用程序的实例包含用于管理域网络控制器、用于设定或改变网络配置、用于执行与网络元件相关的各种功能(例如,监视网络元件、固定网络元件、网络元件的库存管理)、用于配置及监视较高层级网络功能(例如穿过多个网络元件的路径、隧道、私人网络)等等的应用程序。

网络控制器(例如网络控制器102或104)可使用软件、硬件或其组合来实施。在特定实施例中,控制器可由运行于网络中的服务器或计算系统上的过程实施。在一些实施例中,控制器过程可甚至由所述网络中的网络元件执行。执行控制器的网络元件或服务器可位于控制器所管理的域内,或可位于不同域中。使控制器在其自身的管理网络上运行以将所述控制器连接到网络元件有时为典型的,但不这样做也是可接受的。由于网络控制器与网络上的网络元件进行通信,因此将管理网络隔离是常见的,所述管理网络仅存在以用于网络控制器到网络元件通信而不携载其它业务,且不受由那些网络元件提供的数据网络服务的配置影响。使用同一网络来进行控制及数据服务也是常见的(在所述网络针对网络元件的子集为操作上可接受的情况下)。控制器与网络元件之间的连接可为物理或虚拟化(例如,使用虚拟局域网络(VLAN)或隧道)的连接。

网络控制器可与其它网络控制器、在所述网络控制器的域内的网络元件及与一或多个应用程序进行通信。如图1中的实施例中所描绘,控制器102及104可经由通信信道132而彼此以通信方式耦合。信道132可具有不同类型(例如,有线、无线)且可使用不同通信协议来促进控制器102与104之间的通信。举例来说,在特定实施例中,通信信道132可使用网络隧道技术以使用例如通用路由囊封(GRE)、多协议标签交换(MPLS)等协议来实现通信(包含本地存取)。

网络控制器可使用一或多个通信信道而与由控制器管理的网络元件以通信方式耦合。可使用各种不同方式及协议来促进网络控制器与由所述控制器管理的网络元件之间的通信。在特定实例中,可使用多个协议来实现对于任何特定网络元件的完整控制功能性。

在特定实施例中,网络控制器负责对在由所述网络控制器控制的域内的网络元件的总体网络配置及管理。举例来说,网络控制器A 102可负责对网络元件106的总体网络配置及管理。同样,网络控制器B 104可负责对网络元件112的总体网络配置及管理。网络控制器可用于跨越多个网络元件而设定全球网络范围原则及其编配(orchestration),此可在网络控制器的域内跨越多个网络装置而完成。网络控制器可具有不同类型。实例包含SDN控制器,例如由加利福尼亚州圣何塞(San Jose California)的通信系统公司(Communications Systems,Inc.)提供的SDN控制器(被提供为SDN控制器(BSC)产品的一部分)以及其它。SDN控制器可改变及操纵网络的状态,例如重新配置在所述SDN控制器的域内的网络元件(例如路由器)。

用户(例如网络管理员)可使用一或多个应用程序118来与网络控制器及由所述网络控制器管理的网络元件进行互动。网络控制器将与所述网络控制器的包含网络元件的域对应的网络的集中式逻辑视图提供给这些应用程序及应用程序的用户。应用程序通常与网络控制器而非与由网络控制器管理的网络元件进行通信。举例来说,应用程序可从网络控制器请求网络信息,例如针对网络控制器的域及在所述域内的网络元件的信息。举例来说,信息可包含针对网络元件的路由信息、针对网络元件的配置信息等等。作为另一实例,应用程序可与网络控制器进行通信以配置网络。举例来说,网络控制器还可从应用程序接收指令以用于管理、改变及/或操纵由包含于网络控制器的域中的网络元件形成的网络的状态。举例来说,网络控制器可从应用程序接收指令以设定并控制在网络控制器的域内的一或多个网络元件之间的网络路径。在特定实施例中,一或多个应用程序118可安装于由网络控制器提供的平台上。举例来说,在图1中,在一些实施例中,应用程序118-1可安装于网络控制器102上,而应用程序118-3可安装于网络控制器104上。在一些实施例中,网络控制器104可托管应用程序118的商业逻辑及数据模型。替代地,所述商业逻辑及数据模型还可在域网络控制器102/104两者外部。在一些其它实施例中,应用程序可安装于其它平台上。

网络控制器可包括一个或多个模块的群集。举例来说,如图1中所描绘,网络控制器102包括模块120-1、120-2、120-3及120-4。因此,从逻辑观点来看,网络控制器102可被视为模块120-1、120-2、120-3及120-4的群集。群集中的模块进行协作以形成一单个逻辑网络控制器。举例来说,模块120-1、120-2、120-3及120-4全部协作地起作用以形成一个逻辑网络控制器102。群集当中的协作可实现各种程度的冗余、高可用性、对正式(in-state)软件升级、可扩缩性及其它高性能功能性的支持。构成一个网络控制器的经群集化模块可不同于构成另一网络控制器的模块。举例来说,在图1中,网络控制器104是三个模块126-1、126-2及126-3的群集。

网络控制器模块可使用硬件、软件或其组合来实施。构成模块的硬件及/或软件可由一或多个物理计算系统托管。因此,一起协作以形成一个网络控制器的模块可运行于一个计算系统或多个计算系统上。因此,网络控制器可由一个计算系统或由协作地工作的多个计算系统实施。

在一些实施例中,网络控制器的两个或两个以上模块可为彼此的副本或冗余。此冗余可经提供以增加网络控制器的性能、可扩缩性及可靠性。举例来说,网络控制器可被提供为包括两个模块或子系统控制器的群集。当子系统控制器中的一者在网络控制器中出故障时,处理工作负载及资源可被重定向到群集内的其它子系统控制器模块,使得网络控制器在处理中无间断的情况下继续执行处理。此冗余增加网络控制器的可用性且使停机时间最小化。

相同网络控制器的多个实例可在一个计算系统上并行运行或执行或者可在多个计算系统上运行或执行。网络控制器实例经配置以能够确定并连接到由所述网络控制器实例管理的网络元件以便控制及管理所述网络元件。网络控制器实例可使用不同技术来连接到由所述网络控制器管理的网络元件。举例来说,可提供基于云的网络控制器,其经由隧道而到达远程网络中以连接到由所述网络控制器管理的网络元件。网络控制器、控制网络元件及应用程序可在基于云的拓扑中操作。

计算系统可执行一或多个网络控制器。举例来说,第一计算系统可执行第一网络控制器及第二网络控制器。如上文所描述,网络控制器可包括多个模块。在特定实施例中,计算系统可执行网络控制器的全部模块且因此据称网络控制器由所述计算系统执行。在一些其它实施例中,对单个网络控制器的模块的执行可跨越多个计算系统而分布。举例来说,第一计算系统可执行网络控制器的一或多个模块且网络控制器的其它模块可由一或多个其它计算系统执行。在特定实施例中,计算系统可有时同时执行不同网络控制器的模块。举例来说,特定计算系统可并行执行第一网络控制器的模块,还可执行第二网络控制器的模块。因此,计算系统可执行一或多个网络控制器或者一或多个网络控制器的一或多个模块。在一些实施例中,网络元件自身可为执行一或多个网络控制器或者一或多个网络控制器的一或多个模块的计算系统。

当第一网络控制器的模块与第二网络控制器的模块进行通信时,第一网络控制器可被视为与第二网络控制器进行通信。彼此通信的两个模块可位于相同计算系统或不同计算系统上。第一网络控制器与第二网络控制器可为相同网络控制器代码基底的不同软件版本(例如,相同网络控制器的两个实例的模块),或可为完全不同的网络控制器。

网络控制器的数据可存储于与网络控制器相关联的数据存储装置中。此数据可表示由网络控制器用于执行其功能的数据及/或由网络控制器作为执行其功能的结果而产生的数据。举例来说,存储于网络控制器的数据存储装置中的数据可包含由网络控制器用于执行其功能(包含管理在网络控制器的域内的各种网络元件)的网络数据。针对包括模块群集的网络控制器,与网络控制器相关联的数据存储装置可由各种模块共享,所述各种模块协作地操作以形成网络控制器。举例来说,在图1中,数据存储装置122与网络控制器102相关联且用于存储与网络控制器102相关的数据。数据存储装置122可由网络控制器102的模块120-1、120-2、120-3及120-4共享。同样,数据存储装置128与网络控制器104相关联且用于存储网络控制器104的数据。数据存储装置128可由网络控制器104的模块126-1、126-2及126-3共享。虽然将数据存储装置122展示为在网络控制器102内(或将数据存储装置128展示为在网络控制器104内),但此表示逻辑关联且并非要求数据存储装置122物理上存在于实施网络控制器102的相同计算系统中(或使数据存储装置128物理上存在于实施网络控制器104的相同计算系统内)。用于网络控制器的数据存储装置可跨越多个计算系统而扩展。

数据存储装置122及128可存储与其相应网络控制器相关联的各种类型的数据,例如由网络控制器用于管理网络元件的网络数据。举例来说,存储于用于网络控制器的数据存储装置中的数据可包含与在网络控制器的域内的网络元件相关的数据、针对所述网络控制器的配置信息、针对由所述网络控制器管理的网络元件的配置信息、网络拓扑信息、路由信息、与网络控制器的域相关的信息等等。存储于数据存储装置中的数据还可包含应用程序特定数据。举例来说,通过多个具有开放流能力的网络元件而配设路径的应用程序可引入存储于网络控制器中的“路径”模型且读取路径信息/将所述路径信息写入到网络控制器的数据存储装置。作为另一实例,包括多个路径的服务模型可由应用程序引入并存储于数据存储装置中作为应用程序特定数据的一部分。尽管图1中所描绘的实施例展示单个数据存储装置与每一网络控制器相关联,但此并非打算为限制性的。在替代实施例中,网络控制器可使用多个数据存储装置并与所述多个数据存储装置相关联。数据存储装置可与多个网络控制器相关联。

在特定实施例中,涉及网络控制器的通信可取决于相对于所述网络控制器的通信的方向而被分类为北-南或东-西通信。举例来说,网络控制器与一或多个应用程序118之间的通信及网络控制器与在所述网络控制器的域内的网络元件之间的通信可称为北-南通信。在特定实施例中,网络控制器可包含用以促进此类北-南通信的通信接口模块。举例来说,如图1中所展示,网络控制器102包括北-南通信接口模块134且网络控制器104包括北-南通信接口模块136以促进北-南方向上的通信。

在特定实施例中,网络控制器与其它网络控制器具有的通信称为东-西通信。网络控制器可包含用于促进此类东-西通信的通信接口模块。举例来说,在图1中,网络控制器102包括东-西通信接口模块138且网络控制器104包括东-西通信接口模块140以促进东-西方向上的通信。

可使用各种不同协议来实现北-南及东-西通信。下文给出一些此类协议的实例。然而,这些实例并非打算为限制性的。可在替代实施例中使用各种其它协议以促进北-南及东-西通信。

在特定实施例中,RESTCONF协议可用于网络控制器与应用程序之间的通信。RESTCONF是一种类型的REST(表述性状态事务(REpresentational State Transaction))协议。REST协议可以若干种方式体现。网络控制器可使用RESTCONF协议结合网络配置协议(NETCONF)并使用YANG作为建模语言。举例来说,RESTCONF可经由HTTP提供编程接口以存取网络控制器数据,所述网络控制器数据定义于YANG模型中并存储于网络控制器的数据存储装置中。根据特定实施例,YANG模型可用作用以声明及定义筛选器的模式(schema)。使用RESTCONF,可由一或多个应用程序118对存储于网络控制器的数据存储装置中的数据(例如对存储于与网络控制器102相关联的数据存储装置122及与网络控制器104相关联的数据存储装置128中的数据)执行例如CRUD(创建、读取、更新或删除)操作的操作。举例来说,应用程序可使用RESTCONF接口来安装/编程网络流(例如,层2“L2”流、层3“L3”流)、检索关于网络流的信息、删除所安装流以及执行其它操作。在一些实施例中,RESTCONF接口可由网络控制器内的北-南通信接口模块促进。RESTCONF是通向网络控制器的数据及操作的应用程序用户接口的一个实例。一些网络控制器(例如由通信系统公司(Communications Systems,Inc.)提供的网络控制器)为可插拔的且此类接口可在网络控制器的架构的寿命周期内演进及循环。

在特定实施例中,RESTCONF(或一些其它基于REST的协议)还可用于网络控制器之间的东-西通信。举例来说,网络控制器102及104可使用RESTCONF协议来经由通信信道132彼此进行通信及交换数据。

如上文所指示,网络控制器可经由一或多个通信信道而以通信方式耦合到在其域内的网络元件。网络控制器可使用不同协议来与在其域内的网络元件进行通信。举例来说,网络控制器102可经由第一通信信道而与网络元件106中的第一网络元件以通信方式耦合且可使用第一协议来与第一网络元件进行通信。网络控制器102可经由第二通信信道而与网络元件106中的第二网络元件以通信方式耦合且可使用第二协议(其与第一通信协议相同或不同)来与第二网络元件进行通信。

在特定实施例中,基于标准的协议可用于网络控制器与在所述网络控制器的域内的网络元件之间的通信。标准由开放联网基金会(ONF)—致力于推广及采用软件定义联网(SDN)的用户主导型组织进行管理。网络控制器可使用基于的协议来跨越网络元件而部署、管理及更新转发(例如,路由及交换)功能。通信协议允许外部实体(例如网络控制器102或104)存取及配置网络元件。可用于控制网络的各种方面,例如业务转发、拓扑发现、服务质量(QoS)、收集针对网络节点(例如,网络交换机装置)的信息(例如节点描述)、流表信息、端口信息等以及其它。在网络控制器内,使用协议所检索或发现的信息(例如拓扑信息)可存储于网络控制器的数据存储装置中。在一些实施例中,协议可由网络控制器的北-南通信接口模块促进。

在特定实施例中,北-南及东-西通信可为基于网络配置协议(NETCONF)。NETCONF是由IETF定义的标准(最新RFC是RFC 6241)。NETCONF协议提供用以安装、更新及删除网络装置(例如路由器、交换机及防火墙)的配置的机制。协议将基于可扩展标记语言(XML)或基于JavaScript对象表示法(JSON)的数据编码用于配置数据及协议消息。网络控制器可既充当NETCONF服务器又充当客户端。作为客户端,网络控制器可连接到外部启用NETCONF的装置(例如,网络元件)且使用NETCONF(南向接口)来管理所述外部启用NETCONF的装置。网络控制器还可充当NETCONF服务器且使其自身公开于其它启用NETCONF的装置,使得网络控制器可由NETCONF客户端管理及配置,所述NETCONF客户端可为另一网络控制器或托管应用程序的装置。

如先前所指示,在特定实施例中,提供通信框架,所述通信框架可经配置以控制或限制网络控制器的用以向其它网络控制器传递、导出或共享网络控制器的数据的能力。在特定实施例中,网络控制器可包含实施此框架的通信子系统。举例来说,在图1中,网络控制器102包括通信子系统124且网络控制器104包括通信子系统130,每一通信子系统经配置以控制相应网络控制器的用以向其它网络控制器传递、导出或共享网络控制器的数据的能力。通信子系统124负责控制从网络控制器102被传递到其它网络控制器的数据。同样,通信子系统130负责控制从网络控制器104被传递到其它网络控制器的数据。

在特定实施例中,用于网络控制器的通信子系统使得能够针对网络控制器指定约束条件(例如,筛选器)以用于约束或限制允许从网络控制器被传递到其它网络控制器、应用程序或数据的既定接收方的数据。举例来说,针对网络控制器102,通信子系统124使得能够针对网络控制器102指定筛选器。基于这些筛选器,通信子系统124约束从网络控制器102被传递到其它网络控制器(举例来说,网络控制器104)或数据的其它既定接收方的数据。针对网络控制器104,通信子系统130使得能够针对网络控制器104指定筛选器。基于这些筛选器,通信子系统130经配置以约束从网络控制器104被传递到其它网络控制器(举例来说,网络控制器102)或数据的其它既定接收方的数据。

图2是根据特定实施例的网络控制器200的经简化框图,其展示通信子系统204的细节。在图2中所描绘的实施例中,网络控制器200与存储网络控制器200的数据的数据存储装置202相关联。网络控制器200还包含通信子系统204,所述通信子系统用于控制对网络控制器200的存储于数据存储装置202中的数据的存取,通信子系统204经配置以控制从网络控制器200传递到其它网络控制器的数据。通信子系统204经配置使得能够针对网络控制器200指定约束条件信息210且应用所指定约束条件来控制或限制可从网络控制器200被传递到其它网络控制器或其它既定数据接收方或者可向其它网络控制器或其它既定数据接收方共享的数据。通信子系统204使用约束条件信息210来限制网络控制器200的可向既定数据接收方(例如其它网络控制器)共享的数据。

如上文所描述,通信子系统204使得能够针对网络控制器200指定约束条件信息210。在图2中所描绘的实施例中,通信子系统204包括用于指定或编程约束条件信息210的可编程接口子系统212。可手动地(例如,通过网络管理员)、使用自动化技术(例如,机器学习技术)及手动与自动化技术的组合指定针对网络控制器的约束条件。在一些实施例中,可手动地(举例来说,通过网络管理员)指定约束条件信息210。可编程接口212提供可由网络管理员用于针对网络控制器200指定各种约束条件的接口。指示约束条件的信息可作为约束条件信息210存储于网络控制器200的数据存储装置202中。举例来说,网络管理员可使用应用程序而连接到可编程接口212且接着针对网络控制器200指定一或多个约束条件。关于所指定约束条件的信息可存储于数据存储装置202中作为约束条件信息210的一部分。

在一些实施例中,可自动地设定或更新针对网络控制器的约束条件。举例来说,在特定实施例中,可使用无人式(unattended)学习技术(例如,机器学习技术)来自动地识别将用于网络控制器200的一或多个约束条件且还更新所述约束条件。举例来说,可使用机器学习技术来识别特定状况(例如,与拥塞相关的网络状况)及型式且响应于识别特定状况型式而设定及/或更新一或多个约束条件(例如,响应于拥塞状况而限制可从网络控制器传递的数据)。作为另一实例,可提供基于网络拓扑的自动化,其中约束条件是响应于网络拓扑的改变。识别约束条件的信息可存储于数据存储装置200中作为约束条件信息210的一部分。

在仍其它实施例中,可使用手动与自动化技术的组合来设定约束条件信息210。举例来说,在一个实施例中,用户可使用可编程接口212而手动地设定针对网络控制器200的初始约束条件。这些初始约束条件可接着由一或多个机器学习技术用作种子以用于自动地设定或更新额外约束条件。在一些实施例中,可允许用户手动地改变或越权控制已由自动化技术(例如机器学习技术)设定的约束条件。

由约束条件信息210针对网络控制器200而定义的约束条件接着用于限制可从网络控制器200传递的数据。举例来说,可响应于由网络控制器200从另一网络控制器接收的数据请求而执行此约束。举例来说,网络控制器200的通信子系统204可接收或拦截通信请求216,所述通信请求请求从网络控制器200传递特定数据。通信请求的源可为另一网络控制器、应用程序或其它实体。在一些实例中,通信请求216可由发生于网络控制器200中、发生于网络中的一或多个事件触发,或者可响应于由网络控制器200从另一网络控制器接收的一或多个数据请求而触发。

在特定实施例中,响应于接收到请求216,通信子系统204可经配置以首先确定被请求从网络控制器200传递到另一网络控制器的数据。通信子系统204可接着基于针对网络控制器200所指定的约束条件信息210而确定是否准许从网络控制器200传递所确定数据。如果通信子系统204根据约束条件信息210而确定不准许传递所述数据,那么通信子系统208可阻止或以其它方式不允许从网络控制器200传递所述数据。如果替代地通信子系统204确定所述数据的传递并不受约束条件信息210限制,那么允许将所述数据从网络控制器200传递到数据的既定接收方(例如,请求网络控制器或请求应用程序)。

在图2中所描绘的实施例中,通信子系统204包括筛选器引擎子系统208,所述筛选器引擎子系统经配置以接收或拦截通信请求216、确定通过所述请求而被请求从网络控制器200传递到另一网络控制器的数据、基于约束条件信息210而确定是否准许从网络控制器200传递所确定数据,且接着基于所述确定而阻止从网络控制器200传递所述数据或允许从网络控制器200传递所述数据。

如上文所描述,网络控制器的数据可存储于网络控制器的数据存储装置中。举例来说,如图2中所展示,网络控制器200的网络数据206可存储于数据存储装置202中。在不存在通信子系统204的情况下,不存在置于可从网络控制器200被传递到既定数据接收方(例如其它网络控制器)的数据上的约束条件。换句话说,在不存在通信子系统204的情况下,整个网络数据206可从网络控制器200被传递到其它网络控制器。通信子系统204经配置以使得能够将约束条件置于可从网络控制器200被传递到既定数据接收方(例如另一网络控制器)的数据上。举例来说,约束条件可经配置而将可从网络控制器200被传递到另一网络控制器的数据限制为网络数据206的子集(恰当子集,即,少于由网络数据206存储的可从网络控制器200传递的所有数据)。

可使用各种不同数据模型来针对网络控制器存储数据。举例来说,在特定实施例中,可使用建模语言(例如YANG)来将针对网络控制器所存储的数据建模。可接着针对数据模型中的一或多者而指定针对网络控制器所指定的约束条件。针对模型而指定的约束条件可用于约束与所述模型对应的数据的传递。举例来说,可针对网络控制器而指定第一模型,第一模型与针对网络控制器所存储的数据的子集对应。可接着针对网络控制器而指定与第一模型相关联的一或多个约束条件以对从网络控制器传递数据的所述子集(或其一部分)加以约束。举例来说,针对网络控制器的约束条件信息可包括指定与第一模型相关联的第一约束条件的信息。因此,约束条件信息可用作筛选器以用于约束网络控制器的由数据模型公开的数据。举例来说,两个网络控制器可使用共同协议(例如RESTCONF)来彼此查询且发现由彼此支持的模型集合。这些集合的交集表示网络控制器可彼此进行通信的共同“语言”或对象集合。可针对网络控制器而指定约束条件并先验地按每“用户”、每域等将所述约束条件应用于这些集合。

以此方式,通信子系统204限制由网络控制器200向其它网络控制器传递或共享的数据。与允许传递网络控制器的全部数据相对比,限制可从网络控制器传递的数据会增强网络控制器的联合的可扩缩性。此又会增强包括此类网络控制器的联合的网络环境的效率及可扩缩性。举例来说,考虑其中第一域网络控制器管理对应于第一域的大的网络(即,管理大量网络元件)且第二域网络控制器管理对应于第二域的另一大的网络的网络配置。网络管理员可想要将所述两个大的域网络互连以形成更大的网络。此可通过将第一域网络控制器与第二域网络控制器互连而完成。在不具有用以约束从网络控制器传递的信息的能力的情况下,在可形成此互连之前,网络管理员将必须评估由于此互连对网络性能造成的不利影响,所述不利影响是因与个别域网络相关的不受限制的较大数据量(其可接着在两个域网络控制器之间共享)所致。然而,使用本发明中所描述的约束机制显著地简化此任务。通过针对两个域网络控制器适当地指定约束条件,可确定性地配置及控制网络控制器之间的所准许数据交换。两个域网络控制器之间的数据传递可以编程方式受限制,借此减小对总体网络性能的不利影响。

约束条件信息210提供用于以编程方式约束从网络控制器200传递的数据的确定性高效灵活且可扩缩方式。网络控制器的此编程能力使得能够以受控制且可配置方式执行网络控制器之间的数据的分布。约束机制使得网络控制器能够将其数据中的一些数据向其它网络控制器共享,但还使得网络控制器能够阻止特定其它数据被共享。此使得网络控制器能够将特定数据保持为私人的且不向其它网络控制器共享所述特定数据。

在一些实施例中,网络控制器的传递约束能力可提供为用户可选择特征,可根据用户的需要而针对网络控制器接通或关断所述用户可选择特征。当被接通时,在特定实施例中,可使用两种不同配置来约束数据传递。根据第一配置,除非基于针对网络控制器而指定的约束条件信息210具体地不准许所有数据传递,否则网络控制器200的操作的默认模式可为允许所述所有数据传递。在此配置中,约束条件信息可识别不被准许的数据传递。根据第二配置,除非由针对网络控制器而指定的约束条件信息210准许进行传递,否则网络控制器200的操作的默认模式可为不允许所述传递。在此配置中,针对网络控制器的约束条件信息可识别特定经准许数据传递。

在各种实施例中,约束条件信息210可采取各种形式。在特定实施例中,可将约束条件信息210指定为筛选器,其中筛选器识别将被筛选且因此不被准许从网络控制器200传递的数据。筛选器可为基于与传递相关的一或多个条件,当满足所述一或多个条件时,所述筛选器指示不准许传递数据。条件可为基于与传递相关的一或多个准则。在特定实施例中,可以规则(例如,基于原则的规则)、受限制数据传递的列表(或替代地,经准许数据传递的列表)等等的形式指定约束条件。

约束条件信息210可为静态的(即,不可改变,除非由用户改变)或动态的(例如,可在无需手动介入的情况下由自动化技术改变)。可使用各种不同技术来以自动化、半自动化或手动方式设定及/或更新约束条件信息210。举例来说,可使用一或多种机器学习或人工智能(AI)技术来动态地自动或以半自动化方式设定或改变约束条件准则。还可使用其它技术(例如基于分析的技术、基于规则的技术(例如,应用于传入数据集的规则)以及其它)来动态地调整约束条件信息210。

在特定实施例中,将由约束条件信息210指定的筛选器应用于由网络控制器存储的数据以确定被准许进行传递的数据。在特定非限制性实施例中,网络控制器数据的部分之间的逻辑关系可用于促进筛选。举例来说,在一个实施例中,可以促进对由网络控制器(例如网络控制器200)存储的数据的可被共享的部分的识别的方式在逻辑上组织所述数据。各种不同逻辑关系可用于组织数据。举例来说,在特定实施例中,数据(或其部分)可在逻辑上组织为阶层,举例来说组织为树(例如,存取树),且可指定约束条件,所述约束条件识别数据树的哪些部分可向数据的特定消费者共享且哪些部分不可被共享。举例来说,可根据网络接收者(sendee)“堆叠”而组织数据,在所述网络接收者“堆叠”中,高层级服务可包括一或多个较低层服务,所述一或多个较低层服务包括其它更低层的服务,以此类推。针对此服务模型的数据可根据与服务的层对应的阶层而以阶层方式组织。在此类实施例中,可将控制器间互动限制为(举例来说)特定服务层。举例来说,约束条件可与数据树阶层的特定节点或区段(例如,子树)相关联,所述特定节点或区段对应于对与那些节点或区段相关的数据的约束条件。通常,所述树中的节点“越高”,所述节点越好地限制数据传送。

针对网络控制器而指定的约束条件可为基于与数据传递相关的各种不同准则。出于解释的目的,假定所请求数据的既定接收方是另一网络控制器。此并非打算为限制性的。在各种实例中,既定接收方可为网络环境中的应用程序或其它实体。出于清晰的目的,数据将从其被传递的网络控制器称为“源”网络控制器且数据将被传递到的网络控制器称为“接收方”网络控制器。可用于对传递加以限制的准则的实例不加限制地包含:

(a)源网络控制器的性质及其域—例如,源网络控制器的配置(例如,基于源网络控制器的配置参数集)、源网络控制器的域相关特性(例如,在由源网络控制器控制的域内的一或多个网络元件的特性)、源网络控制器的地理位置(例如,可不允许位于美国的网络控制器将数据传递到位于欧洲的网络控制器)、源网络控制器的状态(例如,由源网络控制器在数据请求时经历的拥塞)等。

(b)接收方网络控制器(或一般来说,既定接收方)的性质及其域—例如,接收方网络控制器的配置(例如,基于接收方网络控制器的配置参数集)、接收方网络控制器的域相关特性(例如,在由接收方网络控制器控制的域内的一或多个网络元件的特性)、接收方网络控制器的地理位置(例如,可不允许位于美国的网络控制器将数据传递到位于欧洲的网络控制器)、接收方网络控制器的状态(例如,由接收方网络控制器在数据请求时经历的拥塞)等。

(c)通信信道的特性—例如,用于在源网络控制器与接收方网络控制器之间进行通信的通信信道的类型、用于通信的通信协议、通信信道在通信时的状态等。

(d)与源网络控制器或接收方网络控制器的租户相关的信息。

(e)将被传递的数据的特性。

(f)网络状况及状态,包含但不限于各种类别的网络参数、遥测数据、统计数据等。

在特定实施例中,网络控制器可支持多个租户。租户可为封闭用户群组或情境。所述情境可能或可能不对于其它租户可用及可见。租户可为用户或群组(例如,公司中的部门),所述用户或群组在与其它租户群组隔离的情况下消费及/或配设网络资源/服务的子集。在特定实施例中,租户可表示客户(例如,在商业情境中的支付客户)。可向租户提供对网络控制器数据的特定存取水平,所述特定存取水平可与另一不同租户的存取水平相同或不同。可针对网络控制器在租户水平处指定约束条件。举例来说,针对图1中所描绘的配置,网络控制器102及104可均支持多个租户。租户的身份及与租户相关的其它信息可用作用于针对网络控制器102及104中的每一者而设定约束条件的准则。举例来说,在一个实施例中,网络控制器102可支持多个租户,包含公司“ABD”的一或多个应用程序。网络控制器104也可支持多个租户,包含另一公司“XYZ”的一或多个应用程序。租户可具有在其范围内配设网络服务的某种能力(例如,网络服务配设类型应用程序)。公司ABD可不想要将由网络控制器102存储的任何其数据向网络控制器104上的公司XYZ共享。因此,针对网络控制器102的约束条件信息可经指定使得将约束条件强加于网络控制器102上以阻止网络控制器102将属于ABD的任何数据向网络控制器104上的XYZ共享。以此方式,可依照租用准则而指定约束条件,从而基于网络控制器所支持的租用期或租户来约束各网络控制器之间的数据共享。

在特定实施例中,数据的接收方可被组织成群组且可在群组基础上指定约束条件。举例来说,针对一或多个网络控制器而指定的约束条件信息可用于形成“实体群组”,使得仅群组内的实体可彼此共享数据而无法与群组之外的实体共享数据。因此,当此网络控制器接收到使第一实体与另一实体共享由网络控制器存储的数据的数据请求时,仅在所述第一实体及所述另一实体为同一群组的一部分的情况下准许所述特定数据传递。

在网络环境中,网络控制器自身可以各种不同配置来布置。图3描绘其中将多个网络控制器配置为彼此的同级的网络环境。图3中所描绘的实施例包含三个网络控制器,包含全部为彼此的同级的域网络控制器A 302、域网络控制器B 304及域网络控制器C 306。网络控制器302经由通信信道308而与网络控制器304以通信方式耦合且网络控制器304经由通信信道310而与网络控制器306以通信方式耦合。通信信道308及310可具有各种不同类型且可使用各种不同通信协议来启用通信。

图3中的网络控制器可属于一个供应商或提供者或者可属于不同供应商或提供者。举例来说,在一个实例中,所有三个网络控制器302、304及306可为由供应商A提供的网络控制器,其中网络控制器302经配置以管理西海岸域、网络控制器304经配置以管理中心域且网络控制器306经配置以管理东海岸域。在另一实施例中,网络控制器302可由供应商A提供、网络控制器306可由供应商B提供且网络控制器304可由又另一供应商—供应商C提供。

使用图3中所描绘的网络控制器配置作为实例,在一个情景中,可针对网络控制器302而配置约束条件,所述约束条件仅允许将由网络控制器302存储的数据的子集(恰当子集)向网络控制器304且向网络控制器306共享。举例来说,如果304仅看到302上的网络的一组“边缘端口”,那么可使用302来配设穿过302网络的路径,而不会使路径的装置跳转细节公开。此实现控制器的联合所期望的效率及责任划分。可针对网络控制器306而配置约束条件,所述约束条件仅允许将由网络控制器306存储的数据的子集(恰当子集)向网络控制器304共享。可针对网络控制器304而设定约束条件,所述约束条件不允许网络控制器304将由网络控制器304从网络控制器302接收的任何数据向网络控制器306共享。还可针对网络控制器304而设定约束条件,所述约束条件不允许网络控制器304将由网络控制器304从网络控制器306接收的任何数据向网络控制器302共享。以此方式,即使网络控制器306可接收来自网络控制器302及来自网络控制器304的数据的子集,仍以编程方式不允许网络控制器304将由网络控制器304从网络控制器302接收的数据向网络控制器306共享且不允许网络控制器304将由网络控制器304从网络控制器306接收的数据向网络控制器302共享。

图4描绘其中根据阶层而配置多个网络控制器的网络环境。图4中所描绘的实施例包含三个网络控制器,即根据阶层而配置的域网络控制器A 402、域网络控制器B 404及域网络控制器C 406。在此配置中,网络控制器B 404可称为主域网络控制器,其中网络控制器A 402及C 406称为子域网络控制器。子域网络控制器A 402经由通信信道408而与主网络控制器B 404以通信方式耦合且主网络控制器B 404经由通信信道410而与子域网络控制器C 406以通信方式耦合。通信信道408及410可具有各种不同类型且可使用各种不同通信协议来启用通信。

图4中的网络控制器可属于一个供应商或提供者或者可属于不同供应商或提供者。举例来说,在一个实例中,所有三个网络控制器402、404及406可由供应商A提供。在此情景中,子域网络控制器A 402可经配置以用于管理西海岸域、子域网络控制器C 406可经配置以用于管理东海岸域且主域网络控制器B 404可经配置以管理横跨东海岸及及西海岸两者的整个美国。在另一实施例中,子域网络控制器A 402可由供应商A提供、子域网络控制器C 406可由供应商B提供且主网络控制器B 404可来自第三提供者间供应商。

图5描绘根据特定实施例的展示由网络控制器执行以用于将数据从网络控制器传递到另一网络控制器的经简化流程图500。图5中所描绘的特定处理步骤系列并非打算为限制性的。应了解,可以与图5中所描绘的次序不同的次序来执行处理步骤,且并非需要执行图5中所描绘的所有步骤。在一个实施例中,图5中所描绘的处理可由网络控制器的通信子系统(例如图2中所描绘的通信子系统204)执行。所述处理可由执行网络控制器的计算机系统执行。

在502处,网络控制器接收数据通信请求,所述数据通信请求请求将数据从网络控制器传递到另一网络控制器。数据请求可由于某一事件而起源于网络控制器自身上,或者可由网络控制器从另一网络控制器或从某一其它实体(例如,应用程序)接收。

在504处,网络控制器确定与在502中所接收的请求对应的将被传递的数据。在504中所确定的数据可选自存储于网络控制器的数据存储装置中的数据且可为所述数据的一部分。

在506处,网络控制器存取针对网络控制器而指定的约束条件信息。约束条件信息可存储于与网络控制器相关联的数据存储装置上。针对网络控制器的约束条件信息可指定一组一或多个约束条件。所述约束条件可为基于各种不同准则,例如源网络控制器的特性、将被传递的数据的接收方的特性、将用于进行通信的通信信道的特性、将被传递的数据的特性、源网络控制器及接收方在其中进行操作的网络环境的条件等等。在特定实施例中,约束条件可识别条件,如果满足所述条件,那么确定是否准许从源网络控制器进行数据传递。在特定实施例中,可以规则(例如,基于原则的规则)、受限制数据传递的列表(或替代地,经准许数据传递的列表)等等的形式指定约束条件。

在508处,基于在506中所存取的约束条件信息,网络控制器确定是否准许传递在504中所确定的数据。如果在508中确定准许传递在504中所确定的数据,那么在510中,网络控制器根据在502中所接收的数据请求而允许并使得能够将在504中所确定的数据传递到其既定接收方,且处理接着结束。否则,如果在508中确定不准许传递数据,那么在512中,网络控制器阻止从网络控制器传递数据。以此方式,基于针对网络控制器所指定的约束条件信息而准许或不准许从网络控制器传递所请求数据。

随着云计算的出现及扩散,网络架构正被建模以适应云的需要。在特定实施例中,调制解调器云基础设施的深且大规模堆叠在普通网络控制器框架中被逻辑上建模。可通过在数据中心中部署网络控制器群集而实现最接近于物理基础设施的较低层的地理分布。大规模数据中心可按照一些自然服务边界而部署多个网络控制器群集。可提供较高层服务,所述较高层服务横跨较低层网络控制器群集的域且在较高层网络控制器群集中建模,所述较高层网络控制器群集从对较低层进行建模的网络控制器收集数据。任何特定建模层的消费者可与提供所述层的网络控制器群集互动,而不会向系统的其余部分增加任何直接负载。上部层网络控制器可查询较低层的网络控制器以发现较低层模型,且表示所述层之间的关系。举例来说,纽约(NY)数据中心与圣何塞(SJ)数据中心之间的广域网络(WAN)服务可在NY及SJ网络控制器之上的网络控制器中建模。举例来说,返回参考图4,网络控制器402可经配置为SJ网络控制器、网络控制器408可经配置为NY网络控制器且网络控制器406可经配置以管理NY与SJ之间的WAN服务。NY及SJ网络控制器模型(例如,使用YANG而建模的模型)中的相关网络资源将与较高网络控制器中的WAN服务模型相关。

在特定实施例中,提供了用于发现较低层模型、创建并维持层间关系且当较高层及较低层在单独网络控制器群集中运行时,在较低层中发生改变后即刻在较高层中提供商业逻辑的可靠触发的机构。

在特定实施例中,数据模型(例如,以YANG)可用于产生北向接口(例如,RESTCONF),所述数据模型完整地描述被公开于经联合网络控制器同级的每个元素—其语法及语义。上文所描述的通信子系统可用于约束这些数据模型的共享的公开。RESTCONF可充当且可被编程为用于由数据模型公开的前述数据的筛选或约束点。约束条件可不加限制地基于原则、安全性、存取控制(例如多租户存取)、资源限制等。约束条件信息中所指定的这些筛选器可使用其它数据模型(例如,YANG)来完整地描述。所述模型描述由网络控制器保存并管理的数据的(恰当)子集,所述数据的子集也可通过相同存取机构(例如RESTCONF)而获得。举例来说,模型的全体可用于描述网络控制器的数据存储装置中的数据。所述数据是所述数据模型的实例。因此,对于模型中所描述的变量(例如,所接收包或Pktsln),每租户/用户可存在所述变量的实例。因此,模型的子集可供每一用户(或并非每一用户)使用,且恰当子集含有模型的全部。筛选器/约束条件用于限制对此完整集合的特定部分的存取。举例来说,两个网络控制器可使用共同协议(例如RESTCONF)来彼此查询且发现由彼此支持的模型集合。这些集合的交集表示网络控制器可彼此进行通信的共同“语言”或对象集合。可针对网络控制器而指定约束条件并先验地按每“用户”、每域等将所述约束条件应用于这些集合。

如先前所指示,网络控制器可以硬件、软件或其组合来实施。当以软件来实施时,网络控制器可由代码或指令实施,所述代码或指令可由一或多个处理器执行。代码或指令可存储于非暂时性计算机可读媒体或存储器上且可由一或多个计算系统的一或多个处理器执行。计算系统可通过执行实施网络控制器的代码或指令而执行一或多个网络控制器。如先前所指示,网络控制器可包括可以软件、硬件或其组合来实施的一或多个模块。计算系统可执行网络控制器的这些模块中的一或多者。网络控制器被视为由执行网络控制器的一或多个模块的一或多个计算系统来执行。

图6是根据特定实施例的可用于实施网络控制器的物理计算系统或装置600的经简化框图。举例来说,计算系统600可用于执行实施网络控制器的一或多个模块(例如,图1中针对网络控制器102所描绘的模块120-1、120-2、120-3及120-4)。在一些实施例中,计算系统600经配置以实施上文所描述的方法中的任一者。举例来说,如计算系统600的一或多个计算系统可用于执行实施一或多个网络控制器的代码或指令。计算系统还可执行与网络控制器介接的一或多个应用程序。计算系统还可托管一或多个网络元件。

计算系统600可具有各种类型,不加限制地包含:个人计算机、便携式计算机、工作站、网络计算机、大型计算机、信息亭、移动装置(例如PDA或移动电话)、物理网络装置(例如,路由器、交换机)或者任何其它数据处理系统。由于计算机及网络的千变万化本质,因此对图6中所描绘的计算系统600的描述仅打算为出于图解说明计算系统的优选实施例目的的特定实例。具有比图6中所描绘的系统更多或更少组件的许多其它配置是可能的。

如图6中所展示,计算系统600可包括可经由总线605而以通信方式耦合的数个组件。所述组件可包含一或多个处理器610、一或多个输入装置615、一或多个输出装置620、通信子系统630、存储装置625及存储子系统640。总线子系统605提供用于使计算系统600的各种组件及子系统按照预期彼此进行通信的机构。虽然总线子系统605被示意性地展示为单个总线,但总线子系统的替代实施例可利用多个总线。

处理器610表示计算系统600的处理资源且可不加限制地包含一或多个通用处理器及/或一或多个专用处理器(例如数字信号处理芯片、图形加速处理器及/或类似物)。处理器610可包含一或多个单核心或多核心处理器。

输入装置615可包含用于将输入提供到计算系统600的一或多个不同机构,例如(不加限制地)鼠标、键盘、触摸垫、手写板及/或类似物。输出装置620可包含用于从计算系统600输出信息的一或多个不同机构,例如(不加限制地)显示单元、音频输出装置、打印机及/或类似物。

计算系统600还可包含促进向计算系统600及从所述计算系统的通信的通信子系统630。通信子系统630可不加限制地包含调制解调器、网络卡(无线或有线)、红外通信装置、无线通信装置及/或芯片集(例如装置、802.11装置、WiFi装置、WiMax装置、蜂窝式通信设施等)及/或促进数据通信的类似物。通信子系统630使得计算系统600能够接收数据及/或将数据发射到一或多个其它计算系统、一或多个网络及/或任何其它装置。

存储子系统640提供用于存储数据及代码(指令)的非暂时性媒体,所述数据及代码可由一或多个处理器610执行以用于执行本发明中所描述的各种方法及处理。举例来说,存储子系统640可经配置以存储提供特定实施例的功能性的基本编程及数据建构。根据特定实施例,实施本发明中所描述的功能的软件代码指令或模块可存储于存储子系统640中。这些软件模块可由一或多个处理器610执行。存储子系统640还可提供用于存储根据特定实施例而使用的数据的存储库(repository)。举例来说,在实施网络控制器的计算机系统中,存储子系统640可提供用于存储针对网络控制器而指定的约束条件信息的存储库且还可充当用于存储网络控制器的数据的数据存储装置。

在特定实施例中,存储子系统640可包括存储器子系统642及文件/磁盘存储子系统644。存储器子系统642(有时还称为系统存储器)可包含若干个存储器,例如用于在程序执行期间存储指令及数据的主随机存取存储器(RAM)、其中存储固定指令的只读存储器(ROM)、快闪存储器等等。各种软件元件可位于系统存储器642内,例如操作系统646、装置驱动器、可执行程序库及/或其它代码,例如一或多个应用程序648,所述一或多个应用程序可包括由各种实施例提供的计算机程序及/或可经设计以实施由其它实施例提供的方法及/或配置由其它实施例提供的系统,如本文中所描述。

文件存储子系统644提供对程序及数据文件的持久性(非易失性)存储,且可包含硬盘驱动器、软盘驱动器以及相关联可装卸式媒体、光盘只读存储器(CD-ROM)驱动器、光学驱动器、可装卸式媒体盒式磁盘、本地及/或网络可存取存储装置以及其它类似存储媒体及装置。如图6中所展示,计算系统600还可包含为计算系统600的一部分或可由计算系统600存取的一或多个存储装置625。网络控制器的数据(例如网络数据206)可由文件存储子系统644、存储装置625或可由网络控制器存取的一些其它存储装置存储。

如本文中所使用,术语“机器可读媒体”及“计算机可读媒体”是指任何非暂时性媒体,所述非暂时性媒体存储致使一或多个计算系统、机器或处理器以特定方式操作并执行特定功能的数据及/或指令(例如,代码、程序)。在使用计算系统600来实施的实施例中,在存储可由一或多个处理器610执行的指令/代码时可涉及各种计算机可读媒体。计算机可读媒体可以各种形式体现,例如非易失性存储器或易失性存储器。

上文所论述的方法、系统及装置为实例且并不打算为限制性的。各种实施例可视情况省略、替代或添加各种程序或组件。举例来说,在替代配置中,可以与所描述的次序不同的次序执行所描述的方法及/或可添加、省略及/或组合各种阶段。在各种其它实施例中,可将关于特定实施例所描述的特征组合。可以类似方式组合实施例的不同方面及元件。技术演进且因此元件中的许多元件是实例,所述实例并不将本发明的范围限于那些特定实例。

在本发明中给出特定细节以提供对实施例的透彻理解。然而,可在不具有这些特定细节的情况下实践实施例。举例来说,已在不具有不必要细节的情况下展示众所周知的电路、过程、算法、结构及技术以便避免使实施例模糊。此描述仅提供实例性实施例,且并不打算限制所主张实施例的范围、适用性或配置。而是,实施例的先前描述将给所属领域的技术人员提供用于实施所主张实施例的赋能描述。可在不背离本发明的精神及范围的情况下在元件的功能及布置上做出各种改变。

虽然已描述了特定实施例,但各种修改、更改、替代构造及等效内容也囊括在所主张实施例的范围内。实施例并不限于某些特定数据处理环境内的操作,而是在多个数据处理环境内自由进行操作。另外,虽然已使用一系列特定事务及步骤来描述特定实施例,但所属领域的技术人员应明了,所主张实施例的范围并不限于所描述系列的事务及步骤。虽然一些流程图将操作描述为顺序过程,但可并行或同时执行操作中的许多操作。另外,可重新布置操作的次序。过程可具有图中未包含的额外步骤。

此外,尽管已使用硬件与软件的特定组合来描述特定实施例,但应认识到,硬件与软件的其它组合也在本发明的范围内。可仅以硬件或仅以软件(例如,代码程序、固件、中间件、微代码等)或者使用其组合来实施特定实施例。可在相同处理器或以任何组合的不同处理器上实施本文中所描述的各种过程。在将组件、模块、系统或装置描述为经配置以执行特定操作或功能的情况下,可(例如)通过以下操作而实现此配置:设计电子电路以执行操作;通过对可编程电子电路(例如微处理器)进行编程以执行操作,例如通过执行计算机指令或代码或者执行经编程以执行存储于非暂时性存储器媒体上的代码或指令的处理器或核心;或其任何组合等等。过程可使用多种技术(包含但不限于用于过程间通信的常规技术)进行通信,且不同过程对可使用不同技术,或相同过程对可在不同时间使用不同技术。

因此,应将本说明书及图式视为具有说明性意义而非限制性意义。然而,将显而易见的是,可在不背离如权利要求书中所陈述的较宽广精神及范畴的情况下对本说明书及图式做出添加、减去、删除以及其它修改及改变。因此,虽然已描述了特定实施例,但这些并不打算为限制性的。各种修改及等效内容在所附权利要求书的范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1