CN109155741A - 为不同参考架构配置系统资源 - Google Patents
为不同参考架构配置系统资源 Download PDFInfo
- Publication number
- CN109155741A CN109155741A CN201780025453.1A CN201780025453A CN109155741A CN 109155741 A CN109155741 A CN 109155741A CN 201780025453 A CN201780025453 A CN 201780025453A CN 109155741 A CN109155741 A CN 109155741A
- Authority
- CN
- China
- Prior art keywords
- network
- equipment
- declaratively
- requirement
- service
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0895—Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0876—Aspects of the degree of configuration automation
- H04L41/0886—Fully automatic configuration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
- H04L41/122—Discovery or management of network topologies of virtualised topologies, e.g. software-defined networks [SDN] or network function virtualisation [NFV]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0866—Checking the configuration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5041—Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
- H04L41/5054—Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Automation & Control Theory (AREA)
- Stored Programmes (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
接收标识期望的服务和参考架构的意图的规范。呈现期望的服务以提供用于分派给具有角色的多个设备的指令。呈现期望的服务包括:基于参考架构和特殊设备的角色来调用服务呈现程序函数。可通过为新的参考架构指定新的服务呈现程序函数来实现新的参考架构。
Description
背景技术
为了配置网络,网络管理员可指定期望的网络配置的声明性要求。例如,网络管理员可指定最终网络配置应当是什么的声明性要求,而不是如何完成网络配置的机制。这些声明性要求往往必须包括专用于待创建的特定类型的网络架构的非常特殊类型的要求。然而,在许多实例中,网络管理员可能期望能够灵活地利用用于待提供的服务的期望的要求的不同网络架构。例如,不是将用户限制成已被预先配置成能够被实现的单个类型的网络架构,而是用户可能期望容易地变成并实现新的/不同的网络架构以提供要求的服务。因此,存在对更灵活的方式来指定期望的服务的意图的需要。
附图说明
在下面的具体实施方式和附图中公开该发明的各种实施例。
图1是图示网络管理环境的实施例的图。
图2A是图示用于发布网络要求的过程的实施例的流程图。
图2B是图示用于处理约束的过程的实施例的流程图。
图3A是图示用于发布设备要求的过程的实施例的流程图。
图3B是图示用于使用接收的声明性要求自动配置网络的示例性过程的实施例的流程图。
图3C是图示用于自动配置L3 Clos网络的示例性过程的处理阶段/级别的框图。
图4是图示用于生成原生(native)硬件指令的过程的实施例的流程图。
图5是图示用于生成验证模型的过程的实施例的流程图。
图6是图示用于检测状态参数的过程的实施例的流程图。
图7是图示用于分析验证报告的过程的实施例的流程图。
图8A示出由502中接收的一组要求产生的声明性要求的示例的一部分,该组要求已被处理以指定网络组件之间的连接的拓扑。
图8B示出经生成以验证接收的要求的至少一部分的验证模型(例如,以JSON格式)的至少一部分的示例。
图8C示出经生成以实现接收的要求的至少一部分的示例性设备配置的一部分。
图9是图示用于为系统组件呈现配置/要求和验证模型以提供服务的过程的实施例的流程图。
图10A是用于L3 Clos类型参考网络架构的蓝图的示例。
图10B是图示由图10A的蓝图1000指定的系统组件和链接的示例的框图。
图10C是用于接入聚合类型参考网络架构的蓝图的示例。
图10D是图示由图10C的蓝图1010指定的系统组件和链接的示例的框图。
图10E是用于为示例性L3 Clos和接入聚合参考架构示例标识和调用配置/要求呈现函数的调度程序的示例性实现方式。
具体实施方式
该发明可以用许多方式来实现,包括被实现为过程;装置;系统;物质的组成;在计算机可读存储介质上体现的计算机程序产品;和/或处理器,诸如被配置成执行存储在耦合到处理器的存储器上和/或由该存储器提供的指令的处理器。在本说明书中,这些实现方式或该发明可采用的任何其它形式可被称为技术。通常,可在该发明的范围内改变公开的过程的步骤的次序。除非另有说明,否则诸如被描述为被配置成执行任务的处理器或存储器之类的组件可被实现为临时被配置成在给定时间执行任务的一般组件或者被制造成执行任务的特殊组件。如本文所使用的,术语“处理器”是指被配置成处理诸如计算机程序指令之类的数据的一个或多个设备、电路和/或处理核。
以下连同图示该发明原理的附图来提供该发明的一个或多个实施例的详细描述。结合这样的实施例来描述该发明,但是该发明不限于任何实施例。该发明的范围仅由权利要求限定,并且该发明包括许多替代方案、修改和等同物。在下面的描述中阐述许多特殊细节,以便提供对该发明的透彻理解。出于示例的目的而提供这些细节,并且可在没有这些特殊细节中的一些或全部的情况下根据权利要求来实践该发明。为了清楚起见,没有详细描述与该发明相关的技术领域中已知的技术材料,使得没有不必要地模糊该发明。
公开了配置系统资源。例如,一个或多个网络设备被配置成提供根据声明性要求所期望的网络服务。在一些实施例中,接收指定期望的服务的意图和待使用的参考架构的规范。例如,用户/网络管理员指定待配置的网络服务的声明性要求连同将用于提供网络服务的网络架构的规范。参考架构可标识将组织组件系统和设备以提供服务所用的标准方式。例如,参考架构标识将用于提供计划的(intended)网络服务的网络拓扑和一个或多个协议。呈现服务以提供用于分派给具有角色的多个设备的指令。例如,向提供服务的设备提供指令以在服务不同角色的各种设备处实现相应的服务组件。角色可对应于参考架构的各种不同类型的组件系统/设备。呈现服务包括基于参考架构和由设备扮演的角色来指定函数。例如,对于参考架构和角色的每个不同组合,指定为参考架构的角色的设备呈现服务的不同函数。当新的参考架构将用于实现服务时,参考架构的规范可被切换到新的参考架构,并且用于新的参考架构的每个角色的新的程序函数被指定并用于为新的参考架构呈现服务。
图1是图示网络管理环境的实施例的图。管理服务器102经由网络110连接到数据存储104、网络设备106和网络设备108。在一些实施例中,管理服务器102提供网络配置、监视和管理解决方案。例如,用户可利用至少部分地由管理服务器102提供的解决方案来建立网络配置,建立网络设备,监视网络的性能,监视网络的设备,使任务自动化,并且以其它方式执行网络的设备的管理。在所示的示例中,管理服务器102用于至少管理网络设备106和网络设备108。管理服务器102包括交互代理112和应用代理114。例如,交互代理112和应用代理114是管理服务器102的软件组件和/或硬件组件。在一些实施例中,管理服务器102是特殊化的定制硬件。在一些实施例中,管理服务器102用于配置硬件网络交换机。
交互代理112促进与用户的交互以接收和提供期望的要求、规范和状态更新。例如,用户经由直接提供的用户接口(例如web接口、应用接口、命令行接口、应用编程接口(API)、配置文件接口等)和/或远程(例如经由显示器、有线连接、网络等)访问交互代理112。使用用户接口,用户可提供高级要求,该高级要求指定期望的网络/设备的期望的配置和/或接收关于期望的网络的设备/组件的状态的信息和/或关于期望的配置要求的实现方式状态。交互代理112可管理多个应用代理。例如,交互代理112在多个应用程序之中选择应用代理以实现/完成期望的网络要求。在一些实施例中,交互代理112由用户经由RESTfulAPI访问。例如,HTTP方法(例如GET、PUT、POST、DELETE等)用于经由API访问和管理信息。URI可用于引用状态和资源。在一些实施例中,用户使用交互代理112指定期望的网络配置的一个或多个声明性要求。可在多个阶段/级别之中的一个或多个所选阶段/级别处指定声明性要求。在一些实施例中,用户使用交互代理112指定期望的网络配置的一个或多个约束(例如资源、策略等)。
应用代理114跨过各种网络设备实现和管理期望的网络要求、配置和状态更新。在一些实施例中,应用代理114向正被管理的网络的各种设备提供设备要求指令并从各种设备接收状态信息。例如,使用期望的网络要求,应用代理114确定各个设备要求以实现期望的网络要求。由应用代理114确定的设备要求可以是声明性设备要求,使得设备要求可被转换成许多不同原生设备指令中的任何一个(例如不同供应商的设备的原生指令、设备版本、设备操作系统、编程接口等)以实现设备要求。在所示的示例中,应用代理114已经选择网络设备106和108来实现期望的网络要求,并为每个网络设备106和108生成唯一的设备要求。
在一些实施例中,在将期望的网络要求转换成设备要求时,可利用多个不同的连续处理阶段/级别。可为不同处理阶段级别中的任何一个指定网络要求。例如,可在最一般和最高级别处和/或在较低和更具体的阶段/级别处指定网络要求。每个处理阶段/级别可将输入声明性要求转换成输出声明性要求,该输出声明性要求可用作用于下一个后续较低处理阶段/级别的输入声明性要求。对于每个处理阶段/级别,应用代理将输入声明性要求与一个或多个约束(例如可用资源、遵循的策略等)合并以确定输出声明性要求。通过能够提供多个不同处理阶段/级别的任何所选阶段/级别的期望的声明性网络要求,给予用户调整在配置网络时用户期望的控制的级别/数量的选项。例如,期望快速建立默认配置网络的网络管理员可在最高阶段/级别处指定声明性要求,而期望建立更加定制化和特殊的网络的网络管理员可在较低阶段/级别处指定声明性要求。在一些实施例中,每个处理阶段/级别执行不同的函数。例如,一个处理阶段/级别确定其输出声明性要求中的逻辑连接性,另一个处理阶段/级别确定其输出声明性要求中的物理连接性,并且另一个处理阶段/级别确定其输出声明性要求中的布线图。
在各种实施例中,可存在任何数量的应用代理。每个应用代理可执行相同和/或不同的函数。在一些实施例中,应用代理114和/或另一个应用代理协调并执行服务正在运行的验证。例如,已被接收的期望的网络/设备服务的期望的配置用于为所利用的一个或多个设备生成一个或多个设备验证模型。每个设备验证模型可标识将为验证模型的特殊设备验证/检测的一个或多个参数。设备验证模型与被提供给设备以实现配置设备的设备要求的设备要求不同。例如,提供设备要求以配置/设置设备以提供服务,而提供设备验证模型以验证服务的状态和/或配置。在一些实施例中,响应于设备验证模型,从标识在验证模型中标识的一个或多个参数的状态的对应设备接收状态报告。然后应用代理可聚合和分析一个或多个状态报告,以确定服务是否已被正确实现/配置和/或正在正确运行。
委托代理(proxy agent)116接收其对网络设备106的设备要求,并且委托代理118接收其对网络设备108的设备要求。每个委托代理可生成和/或实现/执行实现其设备要求以配置其相关联的各个网络设备的原生硬件指令。
在一些实施例中,委托代理116接收用于网络设备106的设备验证模型,并且委托代理118接收用于网络设备108的设备验证模型。每个委托代理可确定待报告的一个或多个状态参数以验证对应设备验证模型并收集/检测确定的状态参数。然后每个委托代理可向正在处理正被提供对服务的验证(例如提供给管理服务器102的应用代理)的应用代理提供收集/检测的状态参数的状态报告。在一些实施例中,每个委托代理报告关于其相关联的一个或多个设备的状态、操作和/或其它信息的信息。然后应用代理114可收集并处理报告的信息以报告信息和/或执行响应动作。例如,当委托代理提供其相关联对设备过载的状态更新时,应用代理可将新设备添加到网络以卸载处理和/或将过载设备的处理任务移动到另一个网络设备。收集的状态信息可由应用代理114提供给交互代理112作为报告和/或对动作的请求。
经由数据存储104促进交互代理112、应用代理114以及委托代理116和118之间的通信。在一些实施例中,交互代理112、应用代理114以及委托代理116和118不直接彼此通信。例如,不是直接在每个代理组件处维护状态信息和管理代理组件之间的通信,而是利用数据存储104来跟踪和提供代理组件的状态信息和通信。代理的所有状态信息(例如设备的状态、要求、配置等)可被存储在数据存储104中,而不是将状态信息存储在代理中。当将在代理之间通信数据时,发送代理发布/存储将向数据存储104通信的数据。接收数据的代理可从数据存储104读取数据和/或可被推送数据。例如,当某种类型的数据存储在数据存储104中时,代理订阅被通知,并且当在数据存储104处接收新类型的数据或对某种类型的数据的修改时,代理被通知。在一些实施例中,代理周期性地轮询/检查数据存储104的数据。数据存储104可被包括在联网的存储服务中。在所示的示例中,代理经由网络110访问数据存储104。在一些实施例中,数据存储104经由非共享连接直接连接到管理服务器102。在各种实施例中,数据存储104被包括在图1中所示的组件中的任何一个中。例如,数据存储104被包括在服务器102中。数据存储104可包括管理存储在数据存储104中的数据(例如管理数据订阅)的服务器。数据存储104的示例包括数据库、高可用存储、分布式存储、云存储、数据服务或任何其它类型的数据存储。
网络设备106和网络设备108可以是连接到网络110的任何类型的设备。网络设备106和网络设备108的示例包括服务器、网络交换机、网络路由器、高速缓存服务器、存储设备、管理程序交换机、虚拟路由器、负载平衡器、防火墙、网络结构(fabric)设备、虚拟网络设备、软件设备、软件组件、或者可以是物理的或虚拟的任何类型的计算机或联网设备。委托代理116是包括在网络设备106中的软件和/或硬件组件。委托代理116管理网络设备106。委托代理118是包括在网络设备108中的软件和/或硬件组件。委托代理118管理网络设备108。网络110的示例包括以下中的一个或多个:直接或间接物理通信连接、移动通信网络、因特网、内联网、局域网、广域网、存储区域网络以及将两个或更多个系统、组件或存储设备连接在一起的任何其它形式。可存在其它通信路径,并且已经简化了图1的示例以清楚地图示该示例。
虽然已经示出图1中所示的许多组件的单个实例以简化该图,但是可存在图1中所示的任何组件的附加实例。例如,可存在任何数量的管理服务器、存储和网络设备。管理服务器102可以是服务器集群,并且存储104可以是分布式存储。可存在任意数量的交互代理、应用代理和/或委托代理。单个服务器/设备可包括任何数量的交互代理、应用代理和/或委托代理。单个交互代理、应用代理和/或委托代理可为多个服务/设备提供服务。单个交互代理可与多个应用代理交互。例如,不同类型的网络要求和状态更新可由全部与单个交互代理接口连接的不同应用代理处理。虽然图1中所示的示例示出在相同的管理服务器上包括/安装的应用代理和交互代理,但是它们可被包括在不同的服务器/设备中。虽然图1中所示的示例示出在其相应的相关联的网络设备中包括/安装的每个委托代理,但是委托代理可被包括在不同的服务器/设备中。例如,委托代理被包括在管理服务器102中。虽然图1中所示的示例示出仅分配单个委托代理来管理单个相关联的网络设备,但是在一些实施例中,可分配单个委托代理来管理多个网络设备。还可存在图1中未示出的组件。在一些实施例中,图1的每个资源(例如每个代理、服务器和网络设备)可属于域。例如,属于相同域的资源是可互操作的,并且可一起起作用以执行网络配置和/或管理任务。在一些实施例中,每个资源可仅属于一个域,并且仅保证相同域内的资源可互操作以执行网络配置和/或管理任务。某些资源可能属于多个域。多个域可用于管理单个网络。图1中所示的组件可以是一个或多个域的组件。图1中所示的组件中的任何一个可以是物理或虚拟组件。
图2A是图示用于发布网络要求的过程的实施例的流程图。可在图1的管理服务器102上实现图2A的过程。在一些实施例中,图2A的过程由图1的交互代理112执行。
在202处,在交互代理处接收一组网络要求。在一些实施例中,交互代理是图1的交互代理112。交互代理可与用户和/或用户系统接口连接。交互代理可以是软件和/或硬件组件,并且可被包括在用于管理网络的服务器(例如管理网络设备)中。在一些实施例中,交互代理与一个或多个应用代理交互(例如管理)。例如,交互代理选择将实现该组网络要求和/或对其状态报告的一个或多个应用代理。用户或用户系统可经由直接提供的用户接口(例如web接口、可视显示接口、应用接口、命令行接口、应用编程接口(API)、RESTful API、配置文件接口等)和/或远程(例如经由显示器、有线连接、网络等)访问交互代理。
在一些实施例中,该组网络要求包括标识期望的服务的意图的以及用于实现该意图的相关联的参考架构的规范。参考架构可标识将组织组件系统和设备以提供服务所用的标准方式。例如,参考架构标识将用于提供计划的网络服务的网络拓扑和一个或多个协议。意图可指定期望的服务的一个或多个要求(例如声明性网络要求),而与待利用的参考架构无关。例如,意图可指定将20个服务器联网在一起。意图将使用指定的参考架构来实现,并且通过改变参考架构的规范,可改变相同意图的实现方式以利用新指定的参考架构。通过分离意图和参考架构的规范,可通过简单地指定不同参考架构连同相同的意图来实现意图的不同参考架构实现方式。
在一些实施例中,该组网络要求包括网络/服务和/或连接或能够连接到网络的一个或多个设备的期望的配置、设置、拓扑和/或其它规范。在一些实施例中,该组网络要求包括一组声明性要求。例如,声明性要求表达网络组件的期望的配置,而没有指定确切的原生设备配置和控制流。通过利用声明性要求,可指定应当完成什么,而不是应当如何完成它。声明性要求可与描述确切的设备配置语法和控制流以实现配置的命令性指令形成对比。通过利用声明性要求而不是命令性指令,用户和/或用户系统免除了确定实现用户/系统的期望的结果所需的确切设备配置的负担。例如,当利用来自不同供应商的各种不同类型的设备时,指定和管理确切的命令性指令以配置网络的每个设备往往是困难和繁琐的。随着新设备被添加和设备故障发生,网络的设备的类型和种类可动态变化。用不同的配置协议、语法和软件版本管理来自不同供应商的各种不同类型的设备以配置设备的内聚网络往往难以实现。因而,通过仅需要用户/系统指定声明性要求,网络设备的管理和配置变得更有效,该声明性要求指定适用于跨过各种不同类型的设备的期望的结果。
在各种实施例中,该组网络要求指定期望的配置、期望的动作、命令或者一个或多个设备的任何其它指令或期望的结果。该组网络要求的一个示例是建立连接的服务器网络的一组要求。
例如,意图是将144个服务器连接在一起,并且参考架构是网状网络(例如层3Clos网络)。在Clos网络参考架构中,每个较低层交换机(例如,叶)以全网状拓扑连接到顶层交换机(例如,主干)中的每一个。指定建立经由接收的要求文件接收的L3 Clos网络配置的指令的示例性意图的一部分如下:
网络架构=Clos/BGP
连接的交换机数量=144
IP地址池=10.0.0.0/20
以上要求指定应当建立具有144个网络交换机的网络,并且待建立的网络的网络架构拓扑是使用边界网关协议(BGP)的Clos网络,该边界网关协议具有交换的分配的范围从10.0.0.0至10.0.15.255的IP地址。
在一些实施例中,针对有效性和正确性验证该组要求。例如,验证:已经从授权和确认的源接收一组网络要求,提供的要求规范语法是正确的,已经提供了有效要求,已经指定了针对期望的结果的所有所需的参数,并且提供的要求能够经由可用的硬件/软件资源/设备来实现。
在一些实施例中,该组要求是一组声明性要求,该组声明性要求指定期望的配置、期望的动作、期望的映射结果、命令或者一个或多个声明性要求处理阶段/级别的任何其它期望的结果。在一些实施例中,可为连续声明性要求处理阶段/级别的一个或多个所选处理阶段/级别指定该组要求。例如,存在多个处理连续阶段/级别,其在每个较低阶段/级别处连续地需要更具体/较低阶段/级别的声明性要求,并且用户可为该阶段/级别中的任何一个指定声明性要求。在一些实施例中,处理阶段/级别中的每一个确定待配置的网络的附加方面。例如,每个处理阶段/级别的输出包括进一步定义期望的网络的附加方面的附加声明性要求。
在一些实施例中,为所选处理阶段/级别指定该组声明性要求。例如,基于当自动设置由指定的声明性要求定义的网络时期望受控的定制化和细节的数量,可以为最一般和最高处理阶段/级别或者为较低和更具体的处理阶段/级别指定网络声明性要求。如果适用的话,每个处理阶段/级别可将输入要求转换成输出要求,该输出要求可用作用于下一个处理阶段/级别的输入要求。例如,通过在多个处理级别/阶段中的每一个处连续地将声明性要求转换成具有更多特殊性的较低阶段/级别声明性要求,确定用于每个特殊设备、将由每个特殊设备的每个委托代理配置的声明性要求。
在一些实施例中,不是需要用户指定符合单个特殊性级别的声明性要求,而是用户能够在对应于多个处理级别/阶段的多个不同的特殊性级别中的任何一个处指定声明性要求。因而,通过能够在多个不同的所选级别中的任何一个处提供期望的网络声明性要求,给予用户在配置网络时指定用户期望的控制的级别/数量的选项。例如,期望快速建立默认配置网络的网络管理员可在最高阶段/级别处指定声明性要求(例如待支持的服务器的数量),而期望建立更加定制化和具体的网络的网络管理员可在较低阶段/级别处指定声明性要求(例如网络交换机之间的特殊电缆连接映射)。
在一些实施例中,每个阶段使用一个或多个约束(例如可用资源、遵循的策略等)来处理输入要求以确定输出要求。在一些实施例中,在交互代理处接收约束。例如,用户提供用于在数据存储中存储以用于在一个或多个处理阶段中使用的约束(例如可用资源、遵循的策略等)。在一些实施例中,如果所需的声明性要求还未由用户指定,利用与指定的声明性要求一致的默认声明性要求。在一些实施例中,可为多个不同处理阶段/级别指定声明性要求。例如,用户可为起始处理阶段/级别而且为另一个较低处理阶段/级别指定高级别声明性要求,以定制化期望的方面。在一些实施例中,以JavaScript对象表示法(即,JSON)格式指定声明性要求。
在204处,将该组网络要求的至少一部分发布到系统数据存储。例如,该组网络要求被发布到图1的数据存储104。在一些实施例中,一个或多个接收的约束被发布到系统数据存储。在一些实施例中,可自动确定一个或多个约束。在一些实施例中,交互代理是无状态的。例如,交互代理不维护其自己的跟踪要求处理和通信的状态的存储。不是存储和跟踪其状态数据,而是将状态数据存储/发布到远程网络数据存储(例如图1的数据存储104)。通过处于无状态,交互代理可在它遇到错误时快速替换/重新启动,而无需恢复被替换组件中的状态信息。
在一些实施例中,发布该组网络要求和/或约束包括将该组网络要求和/或约束存储在系统数据存储中,以允许应用代理读取和访问发布的该组要求和/或限制。因而,交互代理不是直接将该组网络要求通信给应用代理,而是将该组要求发布到存储以将该信息通信给应用代理。在一些实施例中,发布该组要求包括选择将接收适当的网络要求的一个或多个应用代理。例如,存在多个不同的应用代理,并且每个应用代理执行不同类型的处理,和/或针对不同的一组一个或多个网络设备执行处理。在另一个示例中,相同和/或不同的应用代理可执行多个不同处理阶段/级别的每个处理阶段/级别。为了实现/完成该组网络要求,可能需要将该组网络要求路由到适当的应用代理以用于进一步处理。在一些实施例中,处理该组网络要求以标识哪个应用代理应当接收该组要求的哪个部分(或全部),并且将由每个适当的应用代理接收的一个或多个要求被发布到不同存储位置,或由对应于适当的应用代理的系统数据存储的不同标识符来标识。例如,数据存储包括对应于每个不同的应用代理的不同数据记录,并且可通过将要求发布到期望的应用代理的对应数据记录来将一个或多个要求通信给应用代理。在另一个示例中,包括在发布的数据中的标识符标识哪个应用代理应当接收发布的数据。在一些实施例中,确定并发布与接收的该组网络要求相关联的一个或多个其它网络要求。例如,自动确定并发布对接收的该组网络要求的一个或多个相关联的处理阶段/级别的默认网络要求以用于处理。
在一些实施例中,在发布之前修改接收的该组要求和/或约束。例如,将接收的该组网络要求转换成可以发布到数据存储的形式。在另一个示例中,添加被确定为实现接收的该组要求所需的附加要求。在另一个示例中,移除被确定为实现接收的该组要求所不需要的一个或多个要求。在另一个示例中,修改接收的该组要求的一个或多个要求。
在一些实施例中,发布该组要求包括在系统数据存储中存储/创建标识符,该标识符标识该组网络要求的一个或多个要求的状态。例如,在系统数据存储中存储标识符,该标识符标识该组网络要求已经被发布在系统数据存储中并且准备好由一个或多个应用代理处理。随着该组网络要求由应用代理和其它代理处理,状态标识符可由应用代理或其它代理更新,以提供实现/完成对应要求的状态的更新。
图2B是图示用于处理约束的过程的实施例的流程图。可在图1的管理服务器102上实现图2B的过程。在一些实施例中,图2B的过程由图1的交互代理112执行。
在212处,接收约束。在一些实施例中,经由接口从用户接收一个或多个约束。例如,经由用户接口(例如web接口、应用接口、命令行接口、应用编程接口(API)、RESTfulAPI、配置文件接口等)在交互代理处接收约束(例如可用资源、遵循的策略等)。在一些实施例中,已经自动确定约束。例如,约束包括可用的网络交换机的列表,并且可用资源已被自动发现。在一些实施例中,约束包括标识资源的信息。例如,接收关于可用于确定输出声明性要求的硬件和/或软件资源的标识信息。在一些实施例中,约束包括一个或多个策略的规范。例如,如何确定输出要求的策略规范由策略约束(例如,如何分配设备名称,如何分配端口映射等)指定。在一些实施例中,策略约束可包括至少部分地指定如何从输入声明性要求确定输出的一个或多个规则、逻辑、程序代码和/或映射。在一些实施例中,约束可与输入声明性要求一起由应用代理利用,以为应用代理的多个处理阶段/级别的至少一个处理阶段/级别确定输出要求。在一些实施例中,接收的约束与至少一个特殊处理阶段/级别相关联。
在214处,存储接收的约束。在一些实施例中,存储接收的约束包括将约束发布到系统数据存储。例如,约束被发布到图1的数据存储104。在一些实施例中,发布约束包括将约束存储在系统数据存储中以允许应用代理读取和访问发布的约束,以在一个或多个处理阶段/级别期间使用。因而,交互代理不是直接将约束通信给应用代理,而是将该组要求发布到存储以将信息通信给应用代理。在一些实施例中,发布约束包括选择将接收适当的约束的一个或多个应用代理。例如,存在多个不同的应用代理,并且每个应用代理执行不同类型的处理和/或针对不同处理阶段/级别执行处理。在另一个示例中,相同和/或不同的应用代理可执行多个链接的处理阶段/级别的每个处理阶段/级别。在一些实施例中,发布约束包括选择将利用一个或多个适当的约束的一个或多个处理阶段/级别。在一些实施例中,在发布之前修改接收的约束。例如,将接收的约束转换成可以发布到数据存储的形式。在另一个示例中,添加被确定用于处理所需的附加约束。在另一个示例中,移除被确定为不需要的一个或多个约束。
图3A是图示用于发布设备要求的过程的实施例的流程图。可在图1的管理服务器102上实现图3A的过程。在一些实施例中,图3A的过程由图1的应用代理114执行。在一些实施例中,为将由一个或多个应用代理处理的每组网络要求执行图3A的过程。在一些实施例中,为多个连续处理阶段/级别的每个声明性要求处理阶段/级别执行图3A的过程。
在302处,在应用代理处接收一组网络要求。在一些实施例中,应用代理是图1的应用代理114。在一些实施例中,应用代理是跨过各种网络设备管理期望的要求、配置和状态更新的软件和/或硬件组件。例如,应用代理向正被管理的网络的各种设备提供指令并从其接收状态信息。在一些实施例中,可存在执行不同函数的不同类型的应用代理。例如,通过将要求与特殊应用代理的特殊功能性匹配,将网络要求提供给特殊应用代理。
在一些实施例中,接收的该组要求是在图2A的204中发布的该组要求。在一些实施例中,接收该组网络要求包括接收该组要求已被存储在用于应用代理的数据存储中的指示。例如,诸如图1的数据存储104之类的系统数据存储包括其中可以发布用于应用代理的数据的数据记录,和/或系统数据存储基于包括的标识符识别应当将发布的数据路由到何处。每个不同的应用代理可订阅系统数据存储的一个或多个数据记录和/或订阅标识将被路由到订阅的应用代理的内容的一个或多个标识符。在一个示例中,系统数据存储包括用于每个不同应用代理的不同数据记录,并且每个应用代理至少订阅其对应的数据记录。在另一个示例中,每个应用代理订阅标识符,并且系统数据存储将具有标识符的发布的数据路由到订阅的应用代理。
在一些实施例中,通过订阅数据记录,可在数据被发布到订阅的数据记录和/或包括订阅的数据标识符的情况下由数据存储向应用代理提供通知。在一些实施例中,通过订阅数据记录和/或数据标识符,可自动向应用代理提供/发送发布到订阅的数据记录和/或由数据标识符标识的任何数据。在一些实施例中,接收该组网络要求包括接收感兴趣的该组网络要求已被存储在数据存储中并且应用代理请求和获得感兴趣的该组网络要求的指示。例如,接收将由应用代理处理的用于特殊处理阶段/级别的该组网络要求。在一些实施例中,接收该组网络要求包括自动接收由应用代理订阅的该组网络要求的内容。在一些实施例中,接收该组要求包括直接从交互代理接收该组要求。
在一些实施例中,该组要求是一组声明性要求,该组声明性要求指定声明性要求处理阶段/级别的期望的配置、期望的动作、期望的映射结果、命令或任何其它期望的结果。在一些实施例中,已经为所选的处理阶段/级别指定了该组声明性要求。例如,存在多个连续的处理阶段/级别,其在每个较低级别处连续地需要更具体/较低级别的声明性要求,并且用户可指定用于阶段/级别中的任何一个的声明性要求。在一些实施例中,该组要求未由用户完全指定,并且接收的该组要求包括与用户指定的声明性要求一致的默认声明性要求。
在304处,接收与该组网络要求相关联的一个或多个约束。例如,标识和接收将与接收的该组要求一起用于确定输出的约束(例如可用资源、遵循的策略等)。在一些实施例中,已经至少部分地基于与将由应用代理处理的该组网络要求相关联的处理阶段/级别来标识一个或多个约束。在一些实施例中,接收的该组约束是存储在图2B的214中的该组约束。
在306处,利用接收的该组网络要求和接收的一个或多个约束来确定一组输出要求。例如,接收的该组输入要求和接收的一个或多个适用约束用于确定较低级别的输出声明性要求。在一些实施例中,接收的该组网络要求是一组声明性要求,该组声明性要求将使用一个或多个约束来处理以最终确定用于将被配置成实现期望的网络的一个或多个设备的一组声明性设备要求。在一些实施例中,遵循一个或多个处理阶段/级别的线性进展以确定最终输出的一组声明性要求。在一些实施例中,利用一个或多个处理阶段/级别的有向图进展来确定最终输出的一组声明性要求。例如,遵循一个或多个处理阶段/级别的有向非循环图的工作流处理次序以确定最终输出的一组声明性要求。
在一个示例中,在应用代理处接收建立先前描述的L3 Clos网络配置的该组要求,并且应用代理分析接收的要求并确定和标识将用于实现接收的网络要求的期望的网络配置的设备。示例性L3 Clos网络要求将主干网络交换机设备的数量指定成16,并将叶网络交换机设备的数量指定成128。应用代理总共将确定和标识将需要被配置成实现期望的Clos网络的144个设备。对于待利用的设备中的每一个,应用代理确定在实现期望的Clos网络时的各个设备要求。各个设备要求可被存储在用于每个设备的对应系统数据存储条目中。例如,应用代理在数据存储的144个不同数据条目中发布各个设备要求,并且每个设备的每个委托代理访问这些数据条目以接收对应的设备要求。对于L3 Clos网络示例,以下是用于144个不同设备要求之一的设备要求的一个示例。
角色=主干
IP地址=10.0.0.3
邻居=[(Leaf-1,10.0.0.7),(Leaf-2,10.0.0.15),...(Leaf-128,10.0.0.176)]
状态=已定义
以上设备要求指定:在Clos网络中,一个网络交换机设备将是具有被定义为IP地址10.0.0.3的BGP路由器标识符的主干交换机。还已经标识了连接到该主干交换机设备的叶交换机。
在一些实施例中,306中执行的处理包括针对多个连续声明性要求处理阶段/级别的至少一个处理阶段/级别执行处理。例如,如果适用的话,使用应用代理执行针对一个处理阶段/级别的处理,并且将该处理级别的输出声明性要求发布到数据存储以用作用于下一个处理阶段的输入声明性要求。在另一个示例中,应用代理执行针对利用接收的该组网络要求作为输入的处理阶段/级别的处理,并且还针对各自利用先前较高级别的处理阶段/级别的输出声明性要求作为其输入声明性要求的后续较低级别的处理阶段/级别执行处理,直到最后一个处理阶段/级别为将被配置成实现期望的网络的一个或多个设备确定一组声明性设备要求。如果没有为特定处理阶段/级别指定声明性要求,可基于接收的声明性要求(例如,为了一致)自动确定用于该处理阶段/级别所需的输入声明性要求,和/或利用用于该处理阶段/级别的默认声明性要求。
在一些实施例中,利用一个或多个约束包括利用标识资源的信息来向/从硬件/软件资源分配配置。例如,从设备资源的列表中选择待配置的设备。在另一个示例中,从可用配置参数范围的列表中选择配置参数。在一些实施例中,利用约束包括利用一个或多个策略的规范。例如,如何从输入要求确定输出要求的策略规范由策略指定(例如,如何分配设备名称,如何分配端口映射等)。在一些实施例中,策略包括至少部分地指定如何从输入声明性要求确定输出声明性要求的一个或多个规则、逻辑、程序代码和/或映射。
在一些实施例中,用于确定输出要求的应用代理是可配置/可定制化的。例如,用户可修改、扩展和/或配置由应用代理执行的处理和/或定义整个应用代理。应用代理可经由诸如API之类的接口而可配置/可定制化。
在一些实施例中,验证该组输出要求。在一些实施例中,验证该组输出要求包括执行一个或多个测试以确定该组输出要求是否有效并且与一个或多个输入要求的意图匹配。在一些实施例中,待执行的测试可取决于该组输出要求的处理阶段/级别、输入要求的内容、输出要求的内容、利用的应用代理、利用的一个或多个约束和/或经执行确定输出声明性要求的处理。
在一些实施例中,多个处理阶段/级别的最终处理阶段/级别生成该组输出要求,该组输出要求包括用于一个或多个设备(例如由实现接收的要求所需的设备类型、能力、所需的数量、处理能力等确定和选择的设备)的要求,该一个或多个设备将用于实现期望的输入要求的网络。对于待配置的一个或多个设备中的每一个,可确定各个设备要求。在一些实施例中,用于每个单独设备的设备要求是声明性要求。例如,设备要求包括网络设备的期望的配置、设置的规范和/或其它规范。
在308处,将对应于接收的要求的该组输出要求(例如设备要求)发布到系统数据存储。在一些实施例中,该组输出要求将被用作用于下一个处理级别的输入要求,并且被发布以被提供给应用代理以处理下一个处理阶段/级别。在一些实施例中,该组输出要求包括用于将被配置成实现接收的网络要求的一个或多个设备的设备要求。例如,应用代理分析接收的网络要求并确定(例如使用一个或多个处理阶段/级别)将用于实现接收的网络要求的一个或多个设备(例如由实现接收的要求所需的设备类型、能力、所需的数量、处理能力等确定和选择的设备)。对于待配置的一个或多个设备中的每一个,应用代理确定其各个设备要求。
在一些实施例中,用于每个单独设备的设备要求是声明性要求。例如,设备要求包括网络设备的期望的配置、设置的规范和/或其它规范。声明性要求表达网络设备的期望的配置,而没有指定确切的原生设备配置和控制流指令。通过利用声明性要求而不是确切的原生硬件指令,指定在网络设备中应当完成什么。通过利用声明性要求而不是命令性指令,应用代理免除了确定实现期望的结果所需的确切设备编程和配置语法的负担。例如,当来自不同供应商的各种不同类型的设备可被利用并在网络上动态地互换时,对于用户来说知道配置网络的每个设备的确切命令性语法和配置范例往往是困难和繁重的。
在一些实施例中,发布该组输出要求包括将输出要求存储在系统数据存储(例如图1的数据存储104)中以允许一个或多个应用代理和/或委托代理读取和访问发布的该组要求。因而,应用代理不是直接将设备要求通信给将用于实现期望的网络的另一个应用代理或一个或多个所选设备,而是将该设备要求发布到系统存储以通信该信息。
在一些实施例中,发布该组输出要求包括选择将接收适用要求的一个或多个应用/委托代理。例如,存在各自被分配给不同的网络设备的多个不同的委托代理。为了完成和实现期望的网络要求,可能需要将对应的设备要求路由到适当的委托代理以用于进一步处理。将由每个适当的应用/委托代理接收的设备要求可被发布到对应于适当的应用/委托代理的系统数据存储的不同存储位置。例如,系统数据存储包括对应于每个不同的应用/委托代理的不同数据记录,并且可通过将适当的要求发布到期望的应用/委托代理的对应数据记录来将适当的要求通信到对应的委托代理。
在一些实施例中,使用标识符发布用于应用代理的要求,该标识符标识正在接收要求的应用代理。在一些实施例中,发布要求包括在系统数据存储中存储/创建标识符。在一些实施例中,随着要求被实现/完成,状态标识符可由应用代理更新。例如,标识符被存储在系统数据存储中,该标识符标识用于应用代理的要求已被发布在系统数据存储中并且准备好由适当的应用代理处理(例如被设置在“已定义”状态)。随着要求由应用代理处理,状态标识符可由应用代理更新,以提供完成要求的处理阶段的状态的更新。
在一些实施例中,使用标识符发布用于每个设备/委托代理的设备要求,该标识符标识正在接收对应的设备要求的设备/委托代理。在一些实施例中,发布设备要求包括在系统数据存储中为将用于实现接收的网络要求的设备的每个设备要求存储/创建标识符。先前的L3 Clos网络示例中发布的“状态”设备要求指定实现设备要求的状态。随着设备要求被实现/完成,该状态标识符可由网络交换机设备的委托代理更新。例如,标识符被存储在系统数据存储中,该标识符标识用于设备的设备要求已被发布在系统数据存储中并且准备好由适当的委托代理处理(例如被设置在“已定义”状态)。随着设备要求由委托代理处理,状态标识符可由委托代理更新,以提供实现设备要求的状态的更新。
图3B是图示用于使用接收的声明性要求自动配置网络的示例性过程的实施例的流程图。可在图1的管理服务器102上实现图3B的过程。在一些实施例中,图3B的过程至少部分地由诸如图1的应用代理114之类的一个或多个不同的应用代理执行。例如,每个处理阶段/级别可由相同的应用代理或由不同的应用代理执行。在一些实施例中,图3B的过程的至少一部分被包括在图3A的306中。在一些实施例中,图3B的过程用于自动配置L3 Clos网络。例如,图3B的过程用于为特殊网络域和网络传送点(即,PoD)配置L3 Clos网络。
在一些实施例中,取决于由用户提供的输入声明性要求的级别,可在过程的步骤中的任何一个处灵活地开始/进入图3B的过程。在一些实施例中,在接收配置网络的声明性要求(例如在图2A的202处接收)之后,确定对应于接收的声明性要求的声明性要求处理阶段/级别的处理阶段/级别(例如在图2A的204中为特殊应用代理发布声明性要求,以处理用于标识的处理阶段/级别的声明性要求)。例如,分析接收的声明性要求以确定在接收的声明性要求中指定的要求的级别/类型,并且标识对应于接收的声明性要求的多个处理阶段/级别的处理阶段/级别。在一些实施例中,确定图3B的过程的哪个步骤(例如步骤310至320中的哪一个)对应于标识的处理阶段/级别,并且在确定的步骤处进入/开始图3B的过程。
在310处,执行针对逻辑连接性处理阶段/级别的处理以确定定义逻辑连接性的输出。在一些实施例中,在多个声明性要求处理阶段/级别的处理阶段/级别处确定逻辑连接性。在一些实施例中,处理逻辑连接性处理阶段/级别包括使用输入声明性要求来确定输出声明性要求。在一些实施例中,至少部分地在图3A的302中接收输入声明性要求。在一些实施例中,处理逻辑连接性处理阶段/级别包括确定输出声明性要求,该输出声明性要求标识叶网络交换机和主干网络交换机之间的逻辑连接以实现定义期望的L3 Clos网络的输入声明性要求。该处理阶段/级别的输入声明性要求可指定下面的一个或多个:将使用待建立的L3 Clos网络连接的服务器的数量;以及超额订阅比率(例如,理论上可能针对网络交换机端口所需的最大带宽量对比网络交换机端口的实际最大带宽容量)。在一些实施例中,获得(例如在图3A的304中获得)和利用(例如在图3A的306中利用)约束来确定输出声明性要求。例如,在选择将在标识网状网络的输出声明性要求中利用的设备类型时,获得和利用将可用于创建L3 Clos网络(例如没有标识特殊的确切机器)的设备(例如网络硬件交换机)的简档(例如面向交换机的端口的数量、面向服务器的端口的数量等)。在一些实施例中,仅在约束中标识的设备可以是在输出声明性要求中标识的交换机。
在一些实施例中,逻辑连接性处理阶段/级别的输入声明性要求包括由用户提供的一个或多个声明性要求。例如,逻辑连接性处理阶段/级别的输入声明性要求包括在图2A的202中接收的声明性要求。在一些实施例中,输入声明性要求的至少一部分还未由用户直接指定,并且默认和/或动态确定的声明性输入要求被利用。动态确定的声明性输入要求可被确定成至少部分与用户提供的输入声明性要求一致。在一些实施例中,在用户提供输入声明性要求的较低/较晚级别/阶段的情况下,不执行步骤310。例如,在312处进入图3B的过程。在一些实施例中,验证输出声明性要求以确保满足性能预期和/或输入声明性要求的意图。在一些实施例中,验证输出声明性要求以验证在输出声明性要求中利用的网络交换机和/或利用的设备的数量和/或类型。
在312处,执行针对物理连接性处理阶段/级别的处理以确定定义物理连接性的输出。在一些实施例中,从逻辑连接性到物理连接性的变换涉及将交换机模型分配给逻辑设备并执行确认以确保所选的交换机模型具有参与网络配置的必要先决条件(诸如具有特殊线路速率的端口的数量)。在一些实施例中,物理连接性处理阶段/级别是多个声明性要求处理阶段/级别之一。在一些实施例中,处理物理连接性处理阶段/级别包括使用输入声明性要求来确定输出声明性要求。该处理阶段/级别的输入声明性要求可以是310的处理阶段/级别的输出声明性要求。在一些实施例中,至少部分地在图3A的302中接收输入声明性要求。在一些实施例中,处理物理连接性处理阶段/级别包括确定输出声明性要求,该输出声明性要求标识对应于输入声明性要求中指定的逻辑连接的特殊设备类型之间的物理连接。在一些实施例中,获得(例如在图3A的304中获得)和利用(例如在图3A的306中利用)约束来确定输出声明性要求。例如,在选择将在标识L3 Clos网状网络的输出声明性要求中利用的特殊设备类型时,获得和利用将可用于创建L3 Clos网络的特殊设备类型(例如网络硬件交换机的特殊型号/供应商)的简档。在一些实施例中,将特殊设备类型分配给输入声明性要求的逻辑设备,以确定用于该处理阶段的输出声明性要求。
在一些实施例中,物理连接性处理阶段/级别的输入声明性要求包括由用户提供的一个或多个声明性要求。例如,物理连接性处理阶段/级别的输入声明性要求包括在图2A的202中接收的声明性要求。在一些实施例中,输入声明性要求的至少一部分还未由用户直接指定,并且默认和/或动态确定的声明性输入要求被利用。动态确定的声明性输入要求可被确定成至少部分与用户提供的输入声明性要求一致。在一些实施例中,在用户提供比物理连接性处理阶段/级别的级别低/晚的输入声明性要求的级别/阶段的情况下,不执行步骤312。例如,在314处进入图3B的过程。在一些实施例中,验证输出声明性要求以确保正确的路由表与输入声明性要求一致。在一些实施例中,验证输出声明性要求以验证包括在输出声明性要求中的路由表和/或特殊设备类型。
在314处,执行针对布线图处理阶段/级别的处理以确定定义布线图/映射的输出。在一些实施例中,布线图处理阶段/级别是多个声明性要求处理阶段/级别之一。在一些实施例中,处理布线图处理阶段/级别包括使用输入声明性要求来确定输出声明性要求。该处理阶段/级别的输入声明性要求可以是312的处理阶段/级别的输出声明性要求。在一些实施例中,至少部分地在图3A的302中接收输入声明性要求。在一些实施例中,处理布线图处理阶段/级别包括确定输出声明性要求,该输出声明性要求标识定义在输入声明性要求中指定的L3 Clos交换机的端口之间的连接的布线图/映射。在一些实施例中,获得(例如在图3A的304中获得)和利用(例如在图3A的306中利用)约束来确定输出声明性要求。例如,在确定L3 Clos网状网络的交换机的端口之间的特殊电缆连接时,获得和利用将用于创建L3Clos网络的特殊设备(例如网络硬件交换机)的端口映射/标识和端口资源的约束。在一些实施例中,在确定用于该处理阶段的输出声明性要求时,为特殊端口分配各种角色(例如面向服务器、主干、边缘等)。在一些实施例中,在确定布线图输出声明性要求时利用一个或多个策略/规则/代码约束。
在一些实施例中,布线图处理阶段/级别的输入声明性要求包括由用户提供的一个或多个声明性要求。例如,布线图级别的输入声明性要求包括在图2A的202中接收的声明性要求。在一些实施例中,输入声明性要求的至少一部分还未由用户直接指定,并且默认和/或动态确定的声明性输入要求被利用。动态确定的声明性输入要求可被确定成至少部分与用户提供的输入声明性要求一致。在一些实施例中,在用户提供比布线图处理阶段/级别的级别低/晚的输入声明性要求的级别/阶段的情况下,不执行步骤314。例如,在316处进入图3B的过程。在一些实施例中,验证输出声明性要求以确保正确的布线和/或端口(例如端口函数)映射。
在316处,执行针对候选要求处理阶段/级别的处理以确定定义软资源分配的输出。在一些实施例中,候选要求处理阶段/级别是多个声明性要求处理阶段/级别之一。在一些实施例中,处理候选要求处理阶段/级别包括使用输入声明性要求来确定输出声明性要求。该处理阶段/级别的输入声明性要求可以是314的处理阶段/级别的输出声明性要求。在一些实施例中,至少部分地在图3A的302中接收输入声明性要求。在一些实施例中,处理候选要求处理阶段/级别包括确定输出声明性要求,该输出声明性要求标识在输入声明性要求中标识的连接的分配的软资源。在一些实施例中,获得(例如在图3A的304中获得)和利用(例如在图3A的306中利用)约束来确定输出声明性要求。例如,在将软资源分配给网络交换机连接时,利用包括将可用于分配的软资源的列表(例如IP地址范围、自治系统号(ASN)范围等)的约束。在一些实施例中,在分配在输出声明性要求中指定的软资源时利用一个或多个策略/规则/代码约束。
在一些实施例中,候选要求处理阶段/级别的输入声明性要求包括由用户提供的一个或多个声明性要求。例如,候选要求级别的输入声明性要求包括在图2A的202中接收的声明性要求。在一些实施例中,输入声明性要求的至少一部分还未由用户直接指定,并且默认和/或动态确定的声明性输入要求被利用。动态确定的声明性输入要求可被确定成至少部分与用户提供的输入声明性要求一致。在一些实施例中,在用户提供比候选要求处理阶段/级别的级别低/晚的输入声明性要求的级别/阶段的情况下,不执行步骤316。例如,在318处进入图3B的过程。在一些实施例中,验证输出声明性要求以确保正确的IP分配、ASN、边界网关协议(BGP)会话等。虽然已经描述了ASN示例,但是可在各种实施例中利用其它参考架构和路由协议。例如,可利用不需要ASN的不同路由协议,诸如开放最短路径优先(OSPF)。
在318处,执行针对呈现的要求处理阶段/级别的处理以确定定义任何扩展/可选要求的输出。在一些实施例中,呈现的要求处理阶段/级别是多个声明性要求处理阶段/级别之一。在一些实施例中,处理呈现的要求处理阶段/级别包括使用输入声明性要求来确定输出声明性要求。该处理阶段/级别的输入声明性要求可以是316的处理阶段/级别的输出声明性要求。在一些实施例中,至少部分地在图3A的302中接收输入声明性要求。在一些实施例中,处理呈现的要求处理阶段/级别包括确定输出声明性要求,该输出声明性要求标识包括待建立的L3 Clos网络的任何扩展/可选要求/配置的最终配置。在一些实施例中,获得(例如在图3A的304中获得)和利用(例如在图3A的306中利用)约束来确定输出声明性要求。例如,在确定在输出声明性要求中指定的最终要求的扩展/可选要求/配置时,利用将为特殊类型的设备分配的扩展/可选配置(例如将从候选配置、参数等添加/替换的配置)的规范。在一些实施例中,在确定呈现的要求输出声明性要求时利用一个或多个策略/规则/代码约束。
在一些实施例中,呈现的要求处理阶段/级别的输入声明性要求包括由用户提供的一个或多个声明性要求。例如,呈现的要求级别的输入声明性要求包括在图2A的202中接收的声明性要求。在一些实施例中,输入声明性要求的至少一部分还未由用户直接指定,并且默认和/或动态确定的声明性输入要求被利用。动态确定的声明性输入要求可被确定成至少部分与用户提供的输入声明性要求一致。在一些实施例中,在用户提供比呈现的要求处理阶段/级别的级别低/晚的输入声明性要求的级别/阶段的情况下,不执行步骤318。例如,在320处进入图3B的过程。在一些实施例中,验证输出声明性要求以确保正确的最终配置。
在一些实施例中,针对呈现的要求处理阶段/级别执行处理包括:对于将被配置成提供期望的服务的系统(例如设备)的每个组件,标识和调用函数以为系统的组件生成呈现的要求。在一些实施例中,存在各自专用于参考架构内的特定参考架构和系统组件角色的多个不同的函数。例如,对于将用于提供计划的网络服务的每个系统组件,配置系统组件的呈现的要求由专用于参考架构和系统组件的角色的特定程序函数生成。在一些实施例中,为了支持新的参考架构,将提供用于参考架构内的每个可能角色(例如设备类型)的分离函数,使得可以定位和调用该函数以在需要时实现参考架构。
在320处,执行针对确认的要求处理阶段/级别的处理以确定包括特殊设备要求的输出。在一些实施例中,确认的要求处理阶段/级别是多个声明性要求处理阶段/级别的最终处理阶段/级别。在一些实施例中,处理确认的要求处理阶段/级别包括使用输入声明性要求来确定输出声明性要求。该处理阶段/级别的输入声明性要求可以是318的处理阶段/级别的输出声明性要求。在一些实施例中,至少部分地在图3A的302中接收输入声明性要求。在一些实施例中,处理确认的要求处理阶段/级别包括确定输出声明性要求,该输出声明性要求将最终配置分配给将配置成实现L3 Clos网络的特殊网络设备。在一些实施例中,获得(例如在图3A的304中获得)和利用(例如在图3A的306中利用)约束来确定输出声明性要求。例如,接收包括特殊设备简档的规范、特殊实际设备的可用性和/或特殊设备的唯一标识符(例如序列号)的约束,以确定将在输出声明性要求中指定的特殊设备/交换机分配。在一些实施例中,在分配在确认的要求输出声明性要求中分配的特殊设备时利用一个或多个策略/规则/代码约束。
在一些实施例中,确认的要求处理阶段/级别的输入声明性要求包括由用户提供的一个或多个声明性要求。例如,呈现的要求级别的输入声明性要求包括在图2A的202中接收的声明性要求。在一些实施例中,输入声明性要求的至少一部分还未由用户直接指定,并且默认和/或动态确定的声明性输入要求被利用。动态确定的声明性输入要求可被确定成至少部分与用户提供的输入声明性要求一致。在一些实施例中,在用户提供标识特殊设备的最终确认的要求的情况下,不执行步骤320。在一些实施例中,验证输出声明性要求以确保正确的特殊设备分配。在一些实施例中,输出声明性要求将被推送到特殊委托代理以配置特殊设备/交换机。例如,在图4的402处接收该阶段/级别的输出声明性要求。
在一些实施例中,318和/或320中的处理包括为将被配置成提供期望的服务的每个系统组件(例如节点、设备等)标识和调用配置/服务,该配置/服务呈现程序函数以为组件生成呈现/输出的要求。在一些实施例中,存在各自专用于参考架构内的特定参考架构和系统组件角色的多个不同的函数。例如,对于将用于提供计划的网络服务的每个系统组件,配置系统组件的呈现/输出的要求由专用于参考架构和系统组件的角色的特定程序函数生成。在一些实施例中,为了支持新的参考架构,将提供用于参考架构内的每个可能角色(例如设备类型)的分离函数,使得可以定位和调用该函数以在需要时实现参考架构。
在一些实施例中,318和/或320中的处理包括为将被配置成提供期望的服务的系统的每个组件(例如节点、设备等)标识和调用验证模型呈现函数以为系统的组件生成验证模型。在一些实施例中,存在多个不同的函数,多个不同的函数各自专用于参考架构内的特定参考架构和系统组件角色以生成对应的验证模型。例如,对于将用于提供计划的网络服务的每个系统组件,验证模型由专用于参考架构和系统组件的角色的特定程序函数生成(例如,验证模型呈现函数不同于为系统组件生成呈现/输出的要求的服务呈现函数)。
虽然已在图3B的示例中示出处理阶段/级别的简单线性进展,但是在不同示例中,一个或多个处理阶段/级别的有向图进展用于确定最终输出声明性要求。例如,遵循一个或多个处理阶段/级别的有向非循环图的工作流处理次序以确定最终输出的该组声明性要求。
图3C是图示用于自动配置L3 Clos网络的示例性过程的处理阶段/级别的框图。可在图1的管理服务器102上实现图3C中所示的处理。在一些实施例中,图3C中所示的处理至少部分地由诸如图1的应用代理114之类的一个或多个不同的应用代理执行。在一些实施例中,图3C中所示的处理被包括在图3A的306中。在一些实施例中,图3C图示图3B的过程。在一些实施例中,用户能够在连续处理阶段/级别中的任何一个处灵活地进入图3C中所示的处理,这取决于由用户提供的输入声明性要求的级别。如图330中所示,先前/更高级别阶段的输出声明性要求由下一个较低级别的应用代理用作其输入声明性要求。应用代理利用输入声明性要求连同预定义的输入约束来确定输出声明性要求。
图4是图示用于生成原生硬件指令的过程的实施例的流程图。可在图1的网络设备106和/或108上实现图4的过程。在一些实施例中,图4的过程由图1的委托代理116和/或118执行。
在402处,在委托代理处接收设备要求。在一些实施例中,委托代理是图1的委托代理116或118。在一些实施例中,委托代理是为相关联/分配的设备管理和实现设备要求的软件和/或硬件组件。在一些实施例中,针对不同的网络设备存在不同类型/版本的委托代理。例如,委托代理在设备要求和实现专用于设备的原生指令之间提供转换功能性,并且为特殊设备选择可以为特殊设备生成原生指令(例如专用于设备的供应商、操作系统、协议、版本等)的委托代理。通过分离交互代理、应用代理和委托代理之间的功能性,只有代理需要处理设备的特殊原生指令。因而,当将新类型或版本的设备添加到网络时,仅需要用于新设备的新委托代理,而交互代理和应用代理可仍然不变。这可允许简化管理网络的各种不同类型的设备。可在由委托代理管理的设备上安装委托代理。在一些实施例中,委托代理远离被管理的设备。在一些实施例中,一个委托代理可管理多个设备。例如,单个委托代理可管理多个相同类型的设备。在一些实施例中,在服务器处生成设备特殊指令并将其提供给委托代理,该委托代理负责在设备上应用提供的指令并报告应用提供的指令的状态。
在一些实施例中,接收的设备要求是在图3A的308中为委托代理的设备发布的设备要求。在一些实施例中,接收设备要求包括接收设备要求已被存储在用于特殊设备的委托代理的系统数据存储中的指示。例如,诸如图1的数据存储104之类的系统数据存储包括数据记录,其中可以发布用于委托代理的数据。每个不同的委托代理可订阅对应于正由相应的委托代理管理的设备的系统存储的一个或多个数据记录。例如,系统数据存储包括用于每个网络设备的不同数据记录,并且每个委托代理订阅其分配的设备的对应数据记录。在一些实施例中,每个不同的委托代理向系统数据存储订阅一个或多个标识符,该标识符标识与对应的委托代理相关联的设备。例如,由订阅的标识符标识的任何发布的数据被通知给订阅的委托代理。在一些实施例中,通过订阅数据记录和/或标识符,可在数据被发布到订阅的数据记录和/或与标识符相关联的数据已被发布的情况下由数据存储向委托代理提供通知。在一些实施例中,通过订阅数据记录和/或标识符,可向委托代理自动提供/发送发布到订阅的数据记录和/或由标识符标识的任何数据。在一些实施例中,接收设备要求包括接收指示:设备要求由于订阅而已被存储到数据存储,并且委托代理请求并获得来自数据存储的设备要求。在一些实施例中,接收设备要求包括由于订阅而自动从数据存储接收设备要求的内容。在一些实施例中,接收设备要求包括直接从应用代理接收设备要求。
在404处,在委托代理处生成原生硬件指令以配置委托代理的设备。在一些实施例中,在软件库中生成原生硬件指令,并且生成的原生硬件指令由委托代理、应用代理和/或另一个代理使用。在一些实施例中,由委托代理接收的设备要求由委托代理处理,以生成实现接收的设备要求的原生硬件指令。例如,接收的声明性指令被转换成命令性指令。在一些实施例中,原生硬件指令采用设备的原生编程/配置语法。例如,以设备的配置软件接口原生的格式生成原生硬件指令。在一些实施例中,原生硬件指令采用可以由设备直接用于配置设备的形式。在一些实施例中,原生硬件指令由设备执行。例如,发布生成的原生硬件指令以用于在设备上执行。
在一个示例中,在委托代理处接收成为先前在规范中描述的L3 Clos网络配置的主干交换机的设备要求,并且委托代理分析接收的设备要求并生成原生网络交换机设备指令,以配置网络交换机设备成为具有指定的BGP路由器标识符和指定的邻居的Clos网络的主干交换机。
在406处,提供设备的状态。在一些实施例中,步骤406是可选的并且可不被执行。在一些实施例中,提供状态包括将状态的标识符发布到系统数据存储(例如图1的数据存储104)。在一些实施例中,提供状态包括提供实现接收的设备要求的状态的指示。例如,提供设备要求的处理的阶段的状态指示。在一些实施例中,提供状态指示包括更新系统数据存储中的状态标识符。例如,在图1的数据存储104中更新状态标识符(例如允许委托代理是无状态的)。在一些实施例中,更新的状态标识符是对应于在先前描述的Clos网络设备要求示例中发布的“状态=已定义”的标识符。
在一些实施例中,设备的状态指示在设备上实现设备要求的状态。例如,状态可以是六个状态之一。初始的第一个示例性状态是“已定义”状态,该状态指示设备要求已经由应用代理成功地发布到系统数据存储。第二个示例性状态是“分阶段(staged)”状态,该状态通过接收委托代理指示该委托代理已经接收设备要求并且已经指派资源以实现设备要求。第三个示例性状态是“呈现”状态,该状态指示委托代理已生成对应于设备要求的原生硬件指令。第四个示例性状态是“已部署”状态,该状态指示委托代理已发布生成的原生硬件指令以用于在设备上执行。第五个示例性状态是“操作”状态,该状态指示在设备上成功执行生成的原生硬件指令。然而,当遇到错误时,可指示第六个示例性“错误”状态以指示已经遇到错误。
在一些实施例中,设备的状态指示设备的健康状态。例如,可提供诸如处理负载、CPU利用、存储利用、存储器利用、版本标识、遇到的错误、网络状态、网络带宽、网络等待时间等之类的信息的指示。在一些实施例中,设备的状态指示丢包率。例如,设备的三元内容可寻址存储器(即,TCAM)利用的指示由委托代理提供。在另一个示例中,当TCAM表溢出时提供指示。
图5是图示用于生成验证模型的过程的实施例的流程图。可在图1的管理服务器102上实现图5的过程。
在502处,接收一组服务的要求。在一些实施例中,接收的该组要求是在图3A的302中接收的该组网络要求。该服务可以是网络服务和/或其它类型的服务。在一些实施例中,该组要求包括一组声明性要求。例如,声明性要求表达网络组件的期望的配置,而没有指定确切的原生设备配置和控制流。通过利用声明性要求,可指定应当完成什么,而不是应当如何完成它。
在504处,生成针对该组要求的每个设备的验证模型以验证服务的状态和实现方式。在一些实施例中,生成验证模型包括使用接收的该组要求连同与该组要求相关联的一个或多个接收的约束来确定将用于生成一个或多个验证模型和一个或多个设备配置的一组更完整的要求。例如,图3B的步骤316的输出用于为将用于实现待验证的服务的一个或多个设备生成一个或多个验证模型。在该示例中,步骤316的输出用于生成将用于配置设备以提供服务(例如用于生成图3B的步骤318/320的输出)的特殊设备要求以及针对设备中的每一个的分离验证模型两者,以验证每个设备正在正确运行并且已经针对该组要求进行了正确配置。在一些实施例中,已经处理接收的该组要求以包括诸如使用图3C的过程的至少一部分的布线图/映射之类的信息。例如,已经处理502中接收的该组要求以指定网络组件之间的连接的拓扑。
图8A-8C示出JavaScript对象表示法(JSON)代码的示例。已经简化JSON示例的语法以提高可读性。在各种实施例中,利用实际的完整JSON语法。图8A示出由502中接收的该组要求产生的声明性要求的示例的一部分,该部分已被处理以指定网络组件之间的连接的拓扑。规范部分802示出规范文件的一部分(例如示出JavaScript对象表示法(JSON)文件的元素),该部分指定将在期望的L3 CLOS网络的名为“leaf_3”的叶节点和名为“spine_1”的主干节点之间创建的期望的连接。然而,规范部分802未指定实际连接节点设备的确切必要的路由规范。
图8B示出经生成以验证接收的要求的至少一部分的验证模型(例如以JSON格式)的至少一部分的示例。为了验证在部分802中按照期望指定的连接,图8B的验证模型包括对应的部分804,该部分指定对应的连接预期为并且应当被验证为边界网关协议(BGP)连接,与源和目的地设备的指定IP地址和自治系统号(ASN)相关联,并且作为叶和主干之间的连接“结构”而被连接在一起。
通过使用相同的接收的该组要求从设备配置分离地生成并向设备的委托代理提供验证模型,可向委托代理提供关于待验证的设备参数的更佳指导。在一些实施例中,每个验证模型将经由相应的委托代理而被提供给用于提供服务的每个相应的设备,并且每个委托代理通过基于其提供的验证模型收集和报告关于其设备的各种数据信道和参数的信息来执行遥测收集。例如,每个验证模型标识针对特殊设备的特殊参数,该特殊设备应当由特殊设备的委托代理检查和收集,因为这些参数与验证服务相关。
图8C示出经生成以实现接收的要求的至少一部分的示例性设备配置的一部分。已经生成图8C中所示的配置部分820,以至少部分地指示设备(关于如何配置设备)以实现期望的服务。这可与502中接收的要求形成对比,该要求指定期望的结果而不是如何实现期望的结果。另外,与指定待报告/验证的参数的验证模型(例如图8B中所示)形成对比,图8C的设备配置指定设备的实际实现方式配置。在图8C中所示的示例中,通过将配置数据写入到设备的一个或多个配置文件并使用写入的配置文件执行命令来配置将接收设备配置的对应设备(例如交换机/委托代理)。配置部分820标识应当写入到文件“/etc/quagga/Quagga.conf”以包括指定的数据(例如使用Quagga路由软件套件建立交换机路由的配置)并且使用三个指定的命令来命令Quagga软件停止、开始并重新加载写入的文件以用于执行。在一些实施例中,当委托代理接收图8C的设备配置时,委托代理至少部分地通过执行如由接收的设备配置指示的配置来实现设备配置。如示例中所示,与更验证具体且更简单的验证模型(例如图8B中所示)相比,尝试使用实现设备的各种设备配置(例如图8C中所示)来验证期望的服务的实现方式将是困难的。
返回到图5,在506处,将每个生成的验证模型提供给用于实现期望的服务的一个或多个设备的每个相应的设备。在一些实施例中,提供生成的验证模型包括将生成的验证模型发送到相应的设备的委托代理。例如,管理服务器102的应用代理将生成的验证模型发送到网络设备106的委托代理116,并将另一个生成的验证模型发送到图1的网络设备108的委托代理118。在一些实施例中,提供每个生成的验证模型包括将每个生成的验证模型发布到系统数据存储(例如图1的数据存储104),以允许一个或多个委托代理读取和访问其相应的发布的验证模型。因而,应用代理不是将验证模型直接通信给设备,而是将验证模型发布到系统存储以通信信息。
在一些实施例中,发布验证模型包括选择将接收适用要求的一个或多个委托代理。例如,将由每个适当的委托代理接收的验证模型可被发布到对应于适当的委托代理的系统数据存储的不同存储位置(例如不同的数据记录)。在一些实施例中,使用标识符来发布针对每个设备/委托代理的验证模型,该标识符标识正在接收对应的验证模型的设备/委托代理。在一些实施例中,发布验证模型包括在系统数据存储中为每个设备存储/创建状态标识符。随着验证模型被处理,该状态标识符可由委托代理更新。在各种实施例中,验证可至少部分地由设备和/或服务器执行,或者针对分离的数据库/数据存储离线执行。
图6是图示用于检测状态参数的过程的实施例的流程图。可在图1的网络设备106和/或网络设备108上实现图6的过程。例如,图6的过程的至少一部分由网络设备106的委托代理(例如委托代理116)和/或网络设备108的委托代理(例如委托代理118)执行。
在602处,接收验证模型。在一些实施例中,委托代理接收验证模型。委托代理可以是被配置成使用验证模型处理验证的委托代理。该委托代理可与图4中用于配置设备的委托代理相同或不同。在一些实施例中,接收的验证模型是图5的506中提供的验证模型。例如,正被验证的设备的委托代理从应用代理获得验证模型。
在一些实施例中,接收的验证模型是图5的506中发布的针对委托代理的设备的验证模型。在一些实施例中,接收验证模型包括接收验证模型已被存储在用于特殊设备的委托代理的系统数据存储中的指示。例如,诸如图1的数据存储104之类的系统数据存储包括数据记录,其中可以发布用于委托代理的数据。每个不同的委托代理可订阅对应于正由相应的委托代理管理的设备的系统存储的一个或多个数据记录。例如,系统数据存储包括用于每个网络设备的不同数据记录,并且每个委托代理订阅其分配的设备的对应数据记录。在一些实施例中,每个不同的委托代理向系统数据存储订阅一个或多个标识符,该标识符标识与对应的委托代理相关联的设备。例如,由订阅的标识符标识的任何发布的数据被通知给订阅的委托代理。在一些实施例中,通过订阅数据记录和/或标识符,可在验证模型被发布到订阅的数据记录和/或与标识符相关联的数据已被发布的情况下由数据存储向委托代理提供通知。在一些实施例中,通过订阅数据记录和/或标识符,可向委托代理自动提供/发送发布到订阅的数据记录和/或由标识符标识的任何数据。在一些实施例中,接收验证模型包括:由于订阅而接收验证模型已被存储到数据存储的指示,并且委托代理请求并获得来自数据存储的验证模型。在一些实施例中,接收验证模型包括:由于订阅而从数据存储自动接收验证模型的内容。在一些实施例中,接收验证模型包括直接从应用代理接收验证模型。
在一些实施例中,验证模型包括连接的相关联参数和一个或多个连接的列表,并且验证模型的相关联设备/委托代理将报告/验证列出的连接的存在、状态和/或参数。例如,图8B的规范部分804标识待验证的BGP连接会话,并且指定源和目的地设备的IP地址、自治系统号(ASN),并且该BGP连接将用作叶和主干之间的“结构”角色。这些参数和指定BGP的状态将由接收设备/委托代理报告/验证。
在一些实施例中,验证模型包括应当在验证模型的相关联设备上操作的一个或多个服务过程的列表,并且相关联设备/委托代理将报告/验证列出的服务过程的存在、状态和/或参数。例如,图8B的部分806指定向BGP连接提供指定参数的服务应当在具有指定router_id(例如IP地址)和ASN的相关联设备上操作。
在一些实施例中,验证模型包括应当被配置并且在验证模型的相关联设备上操作的一个或多个IP地址的列表,并且相关联设备/委托代理将报告/验证列出的IP地址的存在、状态和/或参数。例如,图8B的部分808指定具有指定参数的IP地址应当在用作指定“角色”的相关联设备上操作。在该示例中指定的“角色”可以是“服务器”或“结构”。“服务器”角色标识将用于连接到服务器设备的IP地址,并且“结构”角色标识将用于连接到网络结构交换机的IP地址(例如L3 CLOS网络的主干/叶节点)。
在一些实施例中,验证模型包括应当被验证的相关联设备的一个或多个接口的列表,并且相关联设备/委托代理将报告/验证列出的接口的存在、状态和/或参数。例如,图8B的部分810指定:对于被标识为“swpt32”的设备的接口(例如交换机端口32),应当报告/验证其状态、数据计数器(例如使用接口发送/接收的字节)、遇到的错误、丢弃的字节等。
在一些实施例中,验证模型包括相关联设备与应当被配置和操作的其它连接设备的接口之间的一个或多个连接的列表,并且相关联设备/委托代理将报告/验证列出的接口连接的存在、状态和/或参数。例如,图8B的部分812指定:对于被标识为“swpt49”的设备的接口(例如交换机端口49),它应当在被标识为“Etherneti1/5”的“spine_1”的接口处连接到被标识为“spine_1”的另一个设备。
在一些实施例中,验证模型包括相关联设备的一个或多个设备标识的列表,并且相关联设备/委托代理将报告/验证列出的设备标识的存在、状态和/或参数。例如,图8B的部分814指定验证模型的设备应当属于被标识为“leaf_3”的模型“Celestica_RedstoneXP”,并且应当属于设备类型“NetworkDevice”。
返回到图6,在604处,确定待报告以验证该验证模型的一个或多个参数。在一些实施例中,验证模型标识一个或多个参数。例如,验证模型包括感兴趣的参数的列表以及待报告的这些参数中的每一个的状态/验证。参数和状态的示例包括连接会话、服务、IP地址、接口、接口连接、设备配置、设备属性、端口、服务质量度量等的参数/状态。在一些实施例中,验证模型标识待验证的更高概念项而不是待验证的特殊参数,并且需要被验证以验证该项的一个或多个参数被标识。例如,验证模型标识待验证的连接,并且需被验证的连接的一个或多个参数被标识。在一些实施例中,确定一个或多个参数包括:基于验证模型生成需要从设备检测的状态参数的列表。在一些实施例中,确定一个或多个参数包括:标识待验证的设备/操作系统特殊参数以验证该验证模型的项。例如,验证模型包括不专用于特定设备类型和/或设备操作系统的验证指令/参数,并且委托代理将验证指令转换成设备类型/操作系统专用的指令/参数。通过允许验证模型的协议/格式/指令是特殊供应商/操作系统不可知的,简化了验证模型的生成。因为每个委托代理可专用于特定类型的设备供应商/操作系统,所以委托代理是在验证模型的通用验证项到特定于设备的特殊项之间执行转换的最有效实体。
在606处,检测确定的参数。在一些实施例中,当接收验证模型时执行参数检测。例如,执行初始验证以确保已正确地初始化/配置验证模型的服务。在一些实施例中,周期性地执行参数检测。例如,在持续的基础上以周期性间隔执行验证,以确保服务的连续正确运行。在一些实施例中,周期性地(例如每隔周期性间隔)执行参数检测。在一些实施例中,动态地执行参数检测。例如,当检测潜在的材料改变时,调用并执行参数检测以确保虽然改变,但是服务正确运行。改变的示例可包括对下面的一个或多个的改变:网络连接、设备硬件、设备操作系统、设备的应用、错误事件以及与验证模型相关联的设备的任何状态。在另一个示例中,当向设备(例如交换机)操作系统通知改变(例如对路由/路由表的改变)时,操作系统通知委托代理作为响应触发参数检测。
在一些实施例中,检测确定的参数包括获得参数的状态。例如,获得网络连接的状态。在另一个示例中,确定标识的过程是否仍然在运行。在一些实施例中,检测确定的参数包括获得参数的值。例如,确定标识的网络连接的网络标识符(例如IP地址)。在一些实施例中,检测确定的参数包括获得从另一个设备向该设备报告的信息。例如,执行验证检测的设备从其邻居设备接收状态报告/消息,并且包括在这些报告/消息中的信息被获得。在一些实施例中,检测确定的参数包括对连接到执行验证检测的设备的另一个设备执行查询。例如,查询消息被发送到另一个设备以检测参数。在另一个示例中,可发送ping消息或对信息的请求。在一些实施例中,检测确定的参数包括从标识参数/状态的连接的节点/设备获得接收的消息。例如,从对等交换机接收链路层发现协议(LLDP)消息,并且报告/分析该消息以执行验证。
在608处,报告检测的参数。例如,将检测的参数中的一个或多个发送给应用代理(例如以执行验证为任务的管理服务器102的应用代理)以用于分析。在一些实施例中,报告检测的参数包括执行分析以确定验证结果。例如,将一个或多个检测的参数与参数的一个或多个预期值比较,以确定是否已经检测到预期值,并且在报告中包括比较的结果的标识。在一些实施例中,报告检测的参数包括确定检测的参数中的一个或多个的概要。例如,对检测的参数进行分类、组织、分析、清点和/或统计分析,并且在提供的报告中包括一个或多个结果。在一些实施例中,报告检测的参数包括发布到远程数据存储。例如,将报告发布到图1的数据存储104。
在一些实施例中,报告包括一个或多个参数的确定的聚合概要/计数。例如,除了每个接口的各个状态/参数(例如状态标识符、状态上次更新时间等)的列表之外,还确定并在报告中包括处于活动、不活动、预期等的接口的数量。在另一个示例中,除了每个会话的各个状态/参数的列表(例如会话状态、状态上次更新时间、源/目的地IP地址/ASN等)之外,还确定并在报告中包括处于活动、不活动、预期等的会话(例如BGP会话)的数量。在一些实施例中,报告包括LLDP消息的标识和已经在设备与其对等设备之间交换的消息的一个或多个参数(例如发送/接收接口和设备的标识、消息时间戳等)。
图7是图示用于分析验证报告的过程的实施例的流程图。可在图1的管理服务器102上实现图7的过程。
在702处,接收一个或多个验证模型的检测的参数的一个或多个报告。在一些实施例中,接收的报告是在一个或多个实例中、在608中从一个或多个不同设备/委托代理提供的报告。例如,从已被配置成提供正被验证的服务的每个设备接收报告。在一些实施例中,接收报告包括直接从一个或多个设备接收报告。在一些实施例中,接收报告包括从中央共享数据存储(例如图1的数据存储104)获得/接收报告。例如,应用代理已订阅数据存储以接收在数据存储中发布的报告。在一些实施例中,应用代理不是订阅数据存储,而是周期性地轮询/检查数据存储。
在704处,分析报告。例如,对接收的报告中包括的报告数据进行关联、比较并以其它方式分析,以确定服务是否已被正确地实现/配置和/或正在正确运行。在一些实施例中,对应于服务的正确运行状态的一个或多个预期值和/或预期状态是已知的,并且报告被分析以验证预期值/状态已被检测。在一些实施例中,分析报告包括确定报告中是否已报告错误消息和/或意外状态的指示。
在一些实施例中,验证与接收的报告相关联的预期。例如,执行一个或多个规则或测试以验证报告中包括的值与预期、指定的一样和/或在范围内。在一些实施例中,预期包括待执行的一个或多个测试,以验证由交互代理提供的一组要求(例如在图2A的204中发布并且在图3A的302中接收)已被成功实现。例如,图2A的202中接收的该组网络要求指定待执行的一个或多个测试,以验证该组网络要求已被成功实现。例如,在整个说明书中讨论的L3Clos网络示例中,接收验证路由表已被成功更新并且叶交换机节点知道邻居以反映Clos网络配置的测试连同在图2A的202中接收的网络要求。该测试可连同图2A的204中的要求由交互代理发布,并且应用代理接收测试作为用于验证的预期。在一些实施例中,预期为资源利用指示符标识可接受的范围。在一些实施例中,预期标识接收的状态的错误状态。
在一些实施例中,执行分析包括确定满足吞吐量和/或服务质量/性能度量。在一些实施例中,执行分析包括:确定是否已经跨过来自提供服务的设备的所有报告正确地配置/检测了提供期望的服务的设备之间的所有期望的连接。例如,不是仅仅隔离检查每个报告,而是将来自不同设备的多个报告中报告的数据关联,以确定被支持连接的两个设备之间的连接数据/参数匹配以创建有效连接。在一些实施例中,执行分析包括确定是否存在无关(或不应当存在以提供期望的服务)的一个或多个参数/连接。在一些实施例中,执行分析包括验证域的隔离和/或确保一个域不过度利用资源。
在706处,如果适用的话,基于报告的分析执行动作。在一些实施例中,如果接收的报告中包括的数据与预期、指定的一样和/或在范围内,则不执行动作。例如,确定服务正在正确运行和/或已被正确配置。在一些实施例中,确定服务未正确运行和/或还未被正确配置,并且提供消息以指示该错误(例如经由交互代理)。在一些实施例中,预期基于接收的报告的数据来标识待执行的响应动作。在一些实施例中,执行动作包括报告报告的数据。例如,报告测试的结果(例如,报告测试的结果以验证已成功实现该组网络要求)。在一些实施例中,报告报告的数据包括总结报告的数据。报告报告的数据可包括向交互代理提供报告/状态(例如交互代理可向用户提供报告/状态)。在一些实施例中,报告报告的数据包括发布/更新诸如图1的数据存储104之类的系统数据存储的数据记录。例如,状态标识符被发布到由互动代理订阅的数据存储的数据记录。
在一些实施例中,执行动作包括配置、移动、移除和/或添加网络的设备和/或网络的设备的过程/程序。例如,应用代理生成指令(例如将设备要求发布到系统数据存储以用于委托代理在设备上实现)以自动缓解/修复由状态指示的错误(例如修复/替换已经遇到错误的设备)。在一个示例中,当委托代理提供其相关联的设备过载的状态更新时,应用代理可将新设备添加到网络以卸载处理和/或将过载设备的处理任务移动到另一个网络设备。收集的状态信息可由应用代理提供给交互代理作为报告和/或对动作的请求。
在一些实施例中,执行动作包括允许被配置成执行动作的另一个应用代理执行动作。例如,已经确定接收的状态指示应当执行动作的应用代理通知另一个应用代理(例如通过发布到由第二应用代理订阅的数据存储)执行动作。在一些实施例中,交互代理管理哪个应用代理将执行动作。例如,交互代理被通知状态并指示(例如通过将要求发布到数据存储)能够执行响应动作的应用代理执行响应动作。在一些实施例中,执行响应动作包括响应于图3A的302中接收的状态来提供响应要求。例如,将响应要求转换成将被提供给待实现的委托代理的设备要求。
图9是图示用于为系统组件呈现配置/要求和验证模型以提供服务的过程的实施例的流程图。可在图1的服务器102上实现图9的过程。在一些实施例中,图9的过程的至少一部分被包括在图3B的318和/或320中。在一些实施例中,图9的过程的至少一部分被包括在图5的504中。在一些实施例中,图9的过程的至少一部分由被包括在图1的服务器102中的服务呈现调度程序执行,该服务呈现调度程序为将用于提供期望的网络服务的网络设备(例如图1的设备106、108等)生成设备要求和验证模型。
在902处,接收用于服务的蓝图。在一些实施例中,蓝图标识系统组件(例如设备/节点)以及在将实现意图(例如在图3A的302中接收的意图要求)的系统组件之间的以下中的一个或多个:逻辑连接性、物理连接性、布线以及软资源分配。在一些实施例中,蓝图至少部分基于将用于实现指定的声明性要求的指定的参考网络架构。例如,用户/网络管理员已经指定将用于提供由指定的声明性要求期望的网络服务的网络架构。参考架构可标识将组织组件系统和设备以提供服务所用的标准方式。例如,参考架构标识将用于提供计划的网络服务的网络拓扑和协议。参考架构的示例包括标识应当使用BGP协议建立L3 Clos类型网络的规范。参考架构的另一个示例包括标识应当建立接入聚合类型网络的规范。在一些实施例中,蓝图标识对应于蓝图的参考网络架构。在一些实施例中,直接指定蓝图。例如,用户直接提供手动生成的蓝图。在一些实施例中,至少部分自动地生成蓝图。在一些实施例中,用户指定声明性要求和参考架构,并且蓝图被自动和/或交互地生成。例如,使用图3B的过程的至少一部分(例如用户可在其入口点中的任何一个处进入图3B的过程),自动构建蓝图。
图10A是用于L3 Clos类型参考网络架构的蓝图的示例。蓝图1000在部分1002中标识该蓝图用于参考架构L3 Clos。部分1004标识待建立的服务的系统组件。存在三个待建立并且被配置为L3 Clos网络的叶节点的节点,同时存在两个待建立并且被配置为L3 Clos网络的主干节点的节点。部分1006标识在部分1004中指定的各种系统组件之间的连接。标识的连接中的每一个被指定为提供结构连接的角色。图10B是图示由图10A的蓝图1000指定的系统组件和链接的示例的框图。
图10C是用于接入聚合类型参考网络架构的蓝图的示例。蓝图1010在部分1012中标识该蓝图用于接入聚合参考架构。部分1014标识待建立的服务的组件系统。存在两个待建立并且被配置为接入聚合网络的接入节点的节点,存在两个待建立并且被配置为接入聚合网络的聚合节点的节点,并且存在两个待建立并且被配置为接入聚合网络的核心节点的节点。部分1016标识部分1014中指定的各种组件系统之间的连接。接入节点和聚合节点之间的连接被指定为提供接入聚合连接的角色。聚合节点和核心节点之间的连接被指定为提供聚合核心连接的角色。图10D是图示由图10C的蓝图1010指定的系统组件和链接的示例的框图。
返回到图9,在904处,对于将根据接收的蓝图配置的每个组件(例如设备、节点等),为组件标识和调用呈现配置的对应的服务呈现程序函数。例如,使用对应的程序函数生成用于待建立的网络服务的节点的声明性要求(例如在图4的402中接收)。在一些实施例中,存在各自专用于参考架构内的特定参考架构和组件角色的多个不同的函数。例如,对于将用于提供计划的网络服务的每个组件,配置系统组件的呈现/输出的要求由专用于参考架构和组件的角色的特定程序函数生成。在L3 Clos架构的示例中,存在用于两个不同的组件角色中的至少每一个的分离函数(例如用于叶节点的呈现函数和用于主干节点的呈现函数)。在接入聚合架构的示例中,存在用于三个不同的组件角色中的至少每一个的分离函数(例如用于接入节点的呈现函数、用于聚合节点的呈现函数、以及用于核心节点的呈现函数)。
在一些实施例中,为每个组件标识函数包括:在多个呈现函数之中为组件标识对应于参考架构和参考架构内的组件的角色的函数。在一些实施例中,为了支持新的参考架构,将提供用于参考架构内的每个可能角色(例如设备类型)的分离函数,使得可以定位和调用该函数以在需要时实现参考架构。在一些实施例中,该函数呈现要求,该要求将被至少部分地提供给实现呈现的要求的节点(例如设备、设备的集合等)。例如,在图3B的318和/或320中生成和/或在图4的402中接收要求。在一些实施例中,调用该函数包括向函数提供蓝图的至少一部分和待呈现的组件的标识符。例如,蓝图的标识符和组件的特殊实例的标识符被提供为调用函数的自变量,并且考虑到如在蓝图中指定的连接和连接的组件,该函数呈现组件的要求。
在906处,对于将根据接收的蓝图配置的每个组件(例如节点),为组件标识和调用呈现验证模型的对应的验证模型呈现函数。例如,使用对应的程序函数生成用于待建立的网络服务的节点的验证模型(例如在图5的504中生成并在506中提供、在图6的602中接收等)。在一些实施例中,存在各自专用于参考架构内的特定参考架构和组件角色的多个不同的验证模型呈现函数。例如,对于将用于提供计划的网络服务的每个组件,用于组件的验证模型由专用于参考架构和组件的角色的特定程序函数生成。在一些实施例中,为每个组件标识验证模型生成函数包括:在多个验证模型生成函数之中为组件标识对应于参考架构和参考架构内的组件的角色的函数。在一些实施例中,验证模型被生成为图6的过程的一部分。在一些实施例中,在图6的602中接收生成的验证模型。在一些实施例中,调用验证模型呈现函数包括向函数提供蓝图的至少一部分和待呈现的组件的标识符。例如,蓝图的标识符和组件的特殊实例的标识符被提供为验证模型呈现函数的自变量,并且考虑到如在蓝图中指定的连接和连接的组件,该函数呈现组件的验证模型。
在一些实施例中,1004和/或1006的至少一部分由标识和调用适当函数的一个或多个调度程序执行。例如,一个调度程序执行1004,而另一个调度程序执行1006。图10E是用于为示例性L3 Clos和接入聚合参考架构示例标识和调用配置/要求呈现函数的调度程序的示例性实现方式。实现方式1020的部分1022定义从标识符对(参考架构标识符和角色标识符的对)到将为对应于该对的节点调用的配置/要求呈现函数的标识符的映射。实现方式1020的部分1024示出用于各种对应函数的模板,其中可定义用于呈现函数的实现方式代码。
虽然为了清楚理解的目的而已经用一些细节描述了前述实施例,但是该发明不限于提供的细节。存在实现该发明的许多替代方式。公开的实施例是说明性的而非限制性的。
Claims (20)
1.一种配置系统资源的方法,包括:
接收标识期望的服务和参考架构的意图的规范;以及
使用处理器来呈现期望的服务以提供用于分派给具有角色的多个设备的指令;
其中呈现期望的服务包括:基于参考架构和特殊设备的角色来调用服务呈现程序函数;以及
其中可通过为新的参考架构指定新的服务呈现程序函数来实现新的参考架构。
2.根据权利要求1所述的方法,其中意图标识期望的服务的声明性要求。
3.根据权利要求1所述的方法,其中期望的服务包括网络服务。
4.根据权利要求1所述的方法,其中多个设备包括参考架构的多个节点。
5.根据权利要求1所述的方法,其中多个设备包括网络交换机设备。
6.根据权利要求1所述的方法,其中参考架构标识将用于提供期望的服务的网络拓扑。
7.根据权利要求1所述的方法,其中参考架构标识将用于提供期望的服务的协议。
8.根据权利要求1所述的方法,其中可使用多个不同参考架构中的至少一个来呈现期望的服务。
9.根据权利要求1所述的方法,其中服务呈现程序函数生成将提供给特殊设备的声明性要求。
10.根据权利要求1所述的方法,其中参考架构标识L3 Clos网络架构。
11.根据权利要求1所述的方法,其中角色包括参考架构内的角色。
12.根据权利要求1所述的方法,其中呈现期望的服务包括:为多个设备中的每个不同角色标识不同的服务呈现程序函数。
13.根据权利要求1所述的方法,其中调用服务呈现程序函数包括:向服务呈现程序函数提供意图的蓝图和特殊设备的标识符。
14.根据权利要求1所述的方法,其中呈现期望的服务包括使用调度程序,该调度程序为将用于提供期望的服务的每个设备标识和调用函数实例。
15.根据权利要求1所述的方法,其中呈现期望的服务包括:基于参考架构和特殊设备的角色来调用验证模型程序函数。
16.根据权利要求15所述的方法,其中验证模型程序函数为特殊设备生成验证模型。
17.根据权利要求16所述的方法,其中验证模型为特殊设备标识待监视的一个或多个参数。
18.根据权利要求16所述的方法,其中验证模型被提供给特殊设备。
19.一种配置系统资源的系统,包括:
处理器,被配置成:
接收标识期望的服务和参考架构的意图的规范;以及
呈现期望的服务以提供用于分派给具有角色的多个设备的指令;
其中呈现期望的服务包括:基于参考架构和特殊设备的角色来调用服务呈现程序函数;以及
其中可通过为新的参考架构指定新的服务呈现程序函数来实现新的参考架构;以及
存储器,耦合到处理器并且被配置成向处理器提供指令。
20.一种用于配置系统资源的计算机程序产品,该计算机程序产品被体现在非暂时性计算机可读存储介质中并且包括计算机指令以用于:
接收标识期望的服务和参考架构的意图的规范;以及
呈现期望的服务以提供用于分派给具有角色的多个设备的指令;
其中呈现期望的服务包括:基于参考架构和特殊设备的角色来调用服务呈现程序函数;以及
其中可通过为新的参考架构指定新的服务呈现程序函数来实现新的参考架构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111609597.6A CN114338376B (zh) | 2016-05-24 | 2017-02-22 | 为不同参考架构配置系统资源的方法和系统 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/163,308 US10374872B2 (en) | 2016-05-24 | 2016-05-24 | Configuring system resources for different reference architectures |
US15/163308 | 2016-05-24 | ||
PCT/US2017/018812 WO2017204872A1 (en) | 2016-05-24 | 2017-02-22 | Configuring system resources for different reference architectures |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111609597.6A Division CN114338376B (zh) | 2016-05-24 | 2017-02-22 | 为不同参考架构配置系统资源的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109155741A true CN109155741A (zh) | 2019-01-04 |
CN109155741B CN109155741B (zh) | 2021-12-24 |
Family
ID=60412573
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780025453.1A Active CN109155741B (zh) | 2016-05-24 | 2017-02-22 | 为不同参考架构配置系统资源的方法和系统 |
CN202111609597.6A Active CN114338376B (zh) | 2016-05-24 | 2017-02-22 | 为不同参考架构配置系统资源的方法和系统 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111609597.6A Active CN114338376B (zh) | 2016-05-24 | 2017-02-22 | 为不同参考架构配置系统资源的方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (3) | US10374872B2 (zh) |
EP (2) | EP3465401B1 (zh) |
CN (2) | CN109155741B (zh) |
WO (1) | WO2017204872A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111817870A (zh) * | 2019-04-10 | 2020-10-23 | 瞻博网络公司 | 基于意图的网络感知网络设备软件升级调度 |
WO2021104501A1 (zh) * | 2019-11-28 | 2021-06-03 | 华为技术有限公司 | 意图处理方法和相关装置 |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10389573B2 (en) | 2014-11-14 | 2019-08-20 | Apstra, Inc. | Configuring a network |
US10063428B1 (en) | 2015-06-30 | 2018-08-28 | Apstra, Inc. | Selectable declarative requirement levels |
US10313206B1 (en) | 2015-12-23 | 2019-06-04 | Apstra, Inc. | Verifying service status |
US10331495B2 (en) | 2016-02-05 | 2019-06-25 | Sas Institute Inc. | Generation of directed acyclic graphs from task routines |
US10380185B2 (en) * | 2016-02-05 | 2019-08-13 | Sas Institute Inc. | Generation of job flow objects in federated areas from data structure |
US10650046B2 (en) | 2016-02-05 | 2020-05-12 | Sas Institute Inc. | Many task computing with distributed file system |
US10642896B2 (en) | 2016-02-05 | 2020-05-05 | Sas Institute Inc. | Handling of data sets during execution of task routines of multiple languages |
US10338968B2 (en) | 2016-02-05 | 2019-07-02 | Sas Institute Inc. | Distributed neuromorphic processing performance accountability |
US10650045B2 (en) | 2016-02-05 | 2020-05-12 | Sas Institute Inc. | Staged training of neural networks for improved time series prediction performance |
US10795935B2 (en) | 2016-02-05 | 2020-10-06 | Sas Institute Inc. | Automated generation of job flow definitions |
US10374872B2 (en) | 2016-05-24 | 2019-08-06 | Apstra, Inc. | Configuring system resources for different reference architectures |
GB2553784B (en) * | 2016-09-13 | 2019-02-06 | Advanced Risc Mach Ltd | Management of log data in electronic systems |
US10771345B1 (en) * | 2016-12-28 | 2020-09-08 | Amazon Technologies, Inc. | Network monitoring service |
US11567994B2 (en) | 2017-01-24 | 2023-01-31 | Apstra, Inc. | Configuration, telemetry, and analytics of a computer infrastructure using a graph model |
USD898059S1 (en) | 2017-02-06 | 2020-10-06 | Sas Institute Inc. | Display screen or portion thereof with graphical user interface |
USD898060S1 (en) | 2017-06-05 | 2020-10-06 | Sas Institute Inc. | Display screen or portion thereof with graphical user interface |
US10756983B2 (en) | 2017-12-08 | 2020-08-25 | Apstra, Inc. | Intent-based analytics |
US20190238410A1 (en) * | 2018-01-31 | 2019-08-01 | Hewlett Packard Enterprise Development Lp | Verifying network intents |
US11086709B1 (en) | 2018-07-23 | 2021-08-10 | Apstra, Inc. | Intent driven root cause analysis |
US11985023B2 (en) | 2018-09-27 | 2024-05-14 | Juniper Networks, Inc. | Supporting graphQL based queries on yang based configuration data models |
US11706192B2 (en) * | 2018-10-17 | 2023-07-18 | Battelle Memorial Institute | Integrated behavior-based infrastructure command validation |
US10892952B2 (en) | 2019-02-21 | 2021-01-12 | Juniper Networks, Inc. | Supporting compilation and extensibility on unified graph-based intent models |
US10992543B1 (en) * | 2019-03-21 | 2021-04-27 | Apstra, Inc. | Automatically generating an intent-based network model of an existing computer network |
US10897396B2 (en) | 2019-03-29 | 2021-01-19 | Juniper Networks, Inc. | Supporting concurrency for graph-based high level configuration models |
US10841182B2 (en) | 2019-03-29 | 2020-11-17 | Juniper Networks, Inc. | Supporting near real time service level agreements |
US11606301B2 (en) | 2019-04-23 | 2023-03-14 | Hewlett Packard Enterprise Development Lp | Verifying intents in stateful networks using atomic address objects |
US11075805B1 (en) | 2019-04-24 | 2021-07-27 | Juniper Networks, Inc. | Business policy management for self-driving network |
US11165647B2 (en) | 2019-06-28 | 2021-11-02 | Juniper Networks, Inc. | Managing multiple semantic versions of device configuration schemas |
US11290332B2 (en) | 2019-12-11 | 2022-03-29 | Oracle International Corporation | System and method for modelling cloud networks for automation |
US11489948B2 (en) * | 2019-12-30 | 2022-11-01 | Cloudflare, Inc. | Method and system for reliable application layer data transmission through unreliable transport layer connections in a network |
US11456917B2 (en) * | 2020-06-01 | 2022-09-27 | Cisco Technology, Inc. | Analyzing deployed networks with respect to network solutions |
US11283691B1 (en) | 2020-10-21 | 2022-03-22 | Juniper Networks, Inc. | Model driven intent policy conflict detection and resolution through graph analysis |
US11570055B2 (en) | 2020-11-25 | 2023-01-31 | Apstra, Inc. | Connectivity templates |
US11611512B2 (en) * | 2020-12-30 | 2023-03-21 | Arris Enterprises Llc | System to dynamically detect and enhance classifiers for low latency traffic |
US11546228B2 (en) | 2021-01-04 | 2023-01-03 | Oracle International Corporation | Zero-touch configuration of network devices using hardware metadata |
CN114731340A (zh) * | 2021-04-30 | 2022-07-08 | 商汤国际私人有限公司 | 交互信息的处理方法、装置、设备及存储介质 |
US11700181B2 (en) * | 2021-06-30 | 2023-07-11 | Juniper Networks, Inc. | Topology compiler for network management system |
US12095627B2 (en) * | 2021-11-05 | 2024-09-17 | International Business Machines Corporation | Predict new system status based on status changes |
US11936523B2 (en) * | 2022-01-12 | 2024-03-19 | Cisco Technology, Inc. | Incremental network intent provisioning |
US12107855B2 (en) | 2022-03-17 | 2024-10-01 | Nile Global, Inc. | Methods and systems for network security |
US12058005B1 (en) | 2023-09-08 | 2024-08-06 | Bank Of America Corporation | Intelligent apparatus to auto-generate spine-leaf network topography for datacenter leveraging quantum photonic generative artificial intelligence |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2237530A1 (en) * | 2009-04-02 | 2010-10-06 | Thomson Licensing | Method and device for selection of a service and of selection of at least one service rendering device, and method and device for setting up a service rendering on at least one service rendering device |
US20130061146A1 (en) * | 2011-09-07 | 2013-03-07 | Cisco Technology, Inc. | System and method for developing architectural designs |
CN104272294A (zh) * | 2012-07-31 | 2015-01-07 | 惠普发展公司,有限责任合伙企业 | 系统架构生成 |
WO2015065382A1 (en) * | 2013-10-30 | 2015-05-07 | Hewlett-Packard Development Company, L.P. | Instantiating a topology-based service using a blueprint as input |
US20160142243A1 (en) * | 2014-11-14 | 2016-05-19 | Apstrktr, Inc. | Configuring a network |
Family Cites Families (150)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6246680B1 (en) | 1997-06-30 | 2001-06-12 | Sun Microsystems, Inc. | Highly integrated multi-layer switch element architecture |
US7783468B2 (en) * | 1998-05-13 | 2010-08-24 | Accretive Technologies, Inc. | Automated system and method for service and cost architecture modeling of enterprise systems |
US6892230B1 (en) * | 1999-06-11 | 2005-05-10 | Microsoft Corporation | Dynamic self-configuration for ad hoc peer networking using mark-up language formated description messages |
CA2280925A1 (en) * | 1999-07-29 | 2001-01-29 | Bernard Charles Sherman | Stabilized cefuroxime axetil |
US6704873B1 (en) * | 1999-07-30 | 2004-03-09 | Accenture Llp | Secure gateway interconnection in an e-commerce based environment |
US7103647B2 (en) * | 1999-08-23 | 2006-09-05 | Terraspring, Inc. | Symbolic definition of a computer system |
US6571282B1 (en) * | 1999-08-31 | 2003-05-27 | Accenture Llp | Block-based communication in a communication services patterns environment |
US6615199B1 (en) * | 1999-08-31 | 2003-09-02 | Accenture, Llp | Abstraction factory in a base services pattern environment |
US6842906B1 (en) * | 1999-08-31 | 2005-01-11 | Accenture Llp | System and method for a refreshable proxy pool in a communication services patterns environment |
US6640244B1 (en) * | 1999-08-31 | 2003-10-28 | Accenture Llp | Request batcher in a transaction services patterns environment |
US6339832B1 (en) * | 1999-08-31 | 2002-01-15 | Accenture Llp | Exception response table in environment services patterns |
US6434568B1 (en) * | 1999-08-31 | 2002-08-13 | Accenture Llp | Information services patterns in a netcentric environment |
US6636242B2 (en) * | 1999-08-31 | 2003-10-21 | Accenture Llp | View configurer in a presentation services patterns environment |
US6601234B1 (en) * | 1999-08-31 | 2003-07-29 | Accenture Llp | Attribute dictionary in a business logic services environment |
US6477580B1 (en) * | 1999-08-31 | 2002-11-05 | Accenture Llp | Self-described stream in a communication services patterns environment |
US6640249B1 (en) * | 1999-08-31 | 2003-10-28 | Accenture Llp | Presentation services patterns in a netcentric environment |
WO2001076205A1 (en) * | 2000-03-31 | 2001-10-11 | Coppercom, Inc. | Telecommunications system and methods |
US6922685B2 (en) * | 2000-05-22 | 2005-07-26 | Mci, Inc. | Method and system for managing partitioned data resources |
US7051098B2 (en) * | 2000-05-25 | 2006-05-23 | United States Of America As Represented By The Secretary Of The Navy | System for monitoring and reporting performance of hosts and applications and selectively configuring applications in a resource managed system |
US7043457B1 (en) * | 2000-06-28 | 2006-05-09 | Probuild, Inc. | System and method for managing and evaluating network commodities purchasing |
US7881920B2 (en) * | 2000-08-29 | 2011-02-01 | Abu El Ata Nabil A | Systemic enterprise management method and apparatus |
US6868070B1 (en) | 2000-10-06 | 2005-03-15 | Vertical Networks, Inc. | Systems and methods for providing voice/data communication systems and voice/data communications |
US9639553B2 (en) * | 2000-11-02 | 2017-05-02 | Oracle International Corporation | TCP/UDP acceleration |
US6978301B2 (en) | 2000-12-06 | 2005-12-20 | Intelliden | System and method for configuring a network device |
EP1350188A2 (en) | 2000-12-14 | 2003-10-08 | Appilog Logview Ltd. | System for collecting, correlating, querying and viewing topology information |
CA2337292A1 (en) | 2001-02-15 | 2002-08-15 | Linmor Technologies Inc. | Dynamically adaptive network element telemetry system |
US7150037B2 (en) | 2001-03-21 | 2006-12-12 | Intelliden, Inc. | Network configuration manager |
US20030009540A1 (en) * | 2001-06-29 | 2003-01-09 | International Business Machines Corporation | Method and system for presentation and specification of distributed multi-customer configuration management within a network management framework |
US20030009552A1 (en) * | 2001-06-29 | 2003-01-09 | International Business Machines Corporation | Method and system for network management with topology system providing historical topological views |
US20030041238A1 (en) * | 2001-08-15 | 2003-02-27 | International Business Machines Corporation | Method and system for managing resources using geographic location information within a network management framework |
US7200548B2 (en) | 2001-08-29 | 2007-04-03 | Intelliden | System and method for modeling a network device's configuration |
US9087319B2 (en) | 2002-03-11 | 2015-07-21 | Oracle America, Inc. | System and method for designing, developing and implementing internet service provider architectures |
GB0217839D0 (en) * | 2002-08-01 | 2002-09-11 | Ibm | Installation of a data processing solution |
US8775649B2 (en) * | 2002-11-26 | 2014-07-08 | Oracle America, Inc. | Optimizing client code through automated server specialization |
US7689676B2 (en) * | 2003-03-06 | 2010-03-30 | Microsoft Corporation | Model-based policy application |
US7437706B2 (en) * | 2003-06-27 | 2008-10-14 | At&T Intellectual Property I, L.P. | Automating the life cycle of a distributed computing application |
WO2005022416A1 (en) * | 2003-08-21 | 2005-03-10 | The Trustees Of Columbia University In The City Of New York | Methods and systems for autonomously managing a network |
US7380025B1 (en) * | 2003-10-07 | 2008-05-27 | Cisco Technology, Inc. | Method and apparatus providing role-based configuration of a port of a network element |
US20050091346A1 (en) * | 2003-10-23 | 2005-04-28 | Brijesh Krishnaswami | Settings management infrastructure |
US20050091068A1 (en) | 2003-10-23 | 2005-04-28 | Sundaresan Ramamoorthy | Smart translation of generic configurations |
US7668944B2 (en) | 2004-02-20 | 2010-02-23 | Evgeny Leib | System and unified setting interface for configuring network manageable devices |
US7702718B2 (en) * | 2004-03-30 | 2010-04-20 | Cisco Technology, Inc. | Providing enterprise information |
US8260893B1 (en) * | 2004-07-06 | 2012-09-04 | Symantec Operating Corporation | Method and system for automated management of information technology |
US9537731B2 (en) * | 2004-07-07 | 2017-01-03 | Sciencelogic, Inc. | Management techniques for non-traditional network and information system topologies |
US8156207B2 (en) * | 2004-10-08 | 2012-04-10 | Hewlett-Packard Development Company, L.P. | Method and apparatus for remotely configuring network devices |
JP2008519322A (ja) * | 2004-10-28 | 2008-06-05 | テレコム・イタリア・エッセ・ピー・アー | 電気通信サービスおよび/またはネットワーク管理用のプラットフォームにおけるリソースの管理方法、対応プラットフォーム、およびそのコンピュータ・プログラム生成物 |
CA2594036A1 (en) * | 2005-01-06 | 2006-07-13 | Tervela, Inc. | Intelligent messaging application programming interface |
US9418040B2 (en) * | 2005-07-07 | 2016-08-16 | Sciencelogic, Inc. | Dynamically deployable self configuring distributed network management system |
EP1907553B1 (en) | 2005-07-18 | 2012-08-22 | Pioneer Hi-Bred International Inc. | Modified frt recombination sites and methods of use |
US8819202B1 (en) * | 2005-08-01 | 2014-08-26 | Oracle America, Inc. | Service configuration and deployment engine for provisioning automation |
JP4836237B2 (ja) | 2005-10-18 | 2011-12-14 | キヤノン株式会社 | システム及びその制御方法 |
US20070130192A1 (en) | 2005-12-01 | 2007-06-07 | Alcatel | Method and system for configuring network devices through an operations support system interface |
US20070168244A1 (en) * | 2006-01-19 | 2007-07-19 | International Business Machines Corporation | Methods and apparatus for coordinating and selecting protocols for resources acquisition from multiple resource managers |
US20080008188A1 (en) | 2006-05-25 | 2008-01-10 | Proximetry, Inc. | Systems and methods for wireless resource management with quality of service (qos) management |
US7970746B2 (en) * | 2006-06-13 | 2011-06-28 | Microsoft Corporation | Declarative management framework |
US7710900B2 (en) * | 2006-09-05 | 2010-05-04 | Cisco Technology, Inc. | Method and system for providing network management based on defining and applying network administrative intents |
US7693877B1 (en) * | 2007-03-23 | 2010-04-06 | Network Appliance, Inc. | Automated information lifecycle management system for network data storage |
US8838755B2 (en) * | 2007-03-23 | 2014-09-16 | Microsoft Corporation | Unified service management |
US8782182B2 (en) | 2007-05-24 | 2014-07-15 | Foundry Networks, Llc | Generating device-specific configurations |
US9730078B2 (en) | 2007-08-31 | 2017-08-08 | Fisher-Rosemount Systems, Inc. | Configuring and optimizing a wireless mesh network |
US20090112668A1 (en) * | 2007-10-31 | 2009-04-30 | Abu El Ata Nabil A | Dynamic service emulation of corporate performance |
WO2009091370A1 (en) | 2008-01-17 | 2009-07-23 | Hewlett-Packard Development Company, L.P. | Device software customization |
US20090198797A1 (en) | 2008-02-05 | 2009-08-06 | Microsoft Corporation | Network device provisioning using documents |
US7870238B2 (en) * | 2008-02-15 | 2011-01-11 | !J Incorporated | Vendor-independent network configuration tool |
US8281046B2 (en) | 2008-07-03 | 2012-10-02 | Steelseries Aps | System and method for distributing user interface device configurations |
US8386593B1 (en) | 2008-07-17 | 2013-02-26 | NetBrain Technologies Inc. | Computer aided network engineering system, apparatus, and method |
US8312419B2 (en) * | 2008-10-30 | 2012-11-13 | Hewlett-Packard Development Company, L.P. | Automated lifecycle management of a computer implemented service |
US20130283169A1 (en) * | 2012-04-24 | 2013-10-24 | Social Communications Company | Voice-based virtual area navigation |
US8578076B2 (en) * | 2009-05-01 | 2013-11-05 | Citrix Systems, Inc. | Systems and methods for establishing a cloud bridge between virtual storage resources |
US8195706B2 (en) | 2009-05-26 | 2012-06-05 | Computer Associates Think, Inc. | Configuration management visualization |
US8527955B2 (en) * | 2009-09-11 | 2013-09-03 | International Business Machines Corporation | System and method to classify automated code inspection services defect output for defect analysis |
US20120137367A1 (en) | 2009-11-06 | 2012-05-31 | Cataphora, Inc. | Continuous anomaly detection based on behavior modeling and heterogeneous information analysis |
AU2011205748B2 (en) * | 2010-01-15 | 2014-06-26 | Endurance International Group, Inc. | Unaffiliated web domain hosting service based on a common service architecture |
US8458159B2 (en) * | 2010-05-05 | 2013-06-04 | Microsoft Corporation | Automatic role determination for search configuration |
EP2583211B1 (en) * | 2010-06-15 | 2020-04-15 | Oracle International Corporation | Virtual computing infrastructure |
US8743888B2 (en) | 2010-07-06 | 2014-06-03 | Nicira, Inc. | Network control apparatus and method |
US10726362B2 (en) * | 2011-01-31 | 2020-07-28 | X-Act Science Inc. | Predictive deconstruction of dynamic complexity |
US20120233315A1 (en) * | 2011-03-11 | 2012-09-13 | Hoffman Jason A | Systems and methods for sizing resources in a cloud-based environment |
US9808730B2 (en) | 2011-10-31 | 2017-11-07 | Traxxas Lp | Multi-function electronic device-enabled transmit controller |
US20160342510A1 (en) | 2012-01-17 | 2016-11-24 | Google Inc. | Remote management of data planes and configuration of networking devices |
US9052961B2 (en) * | 2012-03-02 | 2015-06-09 | Vmware, Inc. | System to generate a deployment plan for a cloud infrastructure according to logical, multi-tier application blueprint |
WO2013165369A1 (en) * | 2012-04-30 | 2013-11-07 | Hewlett-Packard Development Company, L.P. | Automated event management |
US9027024B2 (en) * | 2012-05-09 | 2015-05-05 | Rackspace Us, Inc. | Market-based virtual machine allocation |
US8750288B2 (en) * | 2012-06-06 | 2014-06-10 | Juniper Networks, Inc. | Physical path determination for virtual network packet flows |
US20130346591A1 (en) * | 2012-06-21 | 2013-12-26 | Alcatel-Lucent Usa Inc. | Clientless Cloud Computing |
US8918493B1 (en) * | 2012-06-28 | 2014-12-23 | Emc Corporation | Methods and apparatus for automating service lifecycle management |
CN103580980B (zh) * | 2012-07-24 | 2019-05-24 | 中兴通讯股份有限公司 | 虚拟网络自动发现和自动配置的方法及其装置 |
US9563480B2 (en) * | 2012-08-21 | 2017-02-07 | Rackspace Us, Inc. | Multi-level cloud computing system |
US8898763B1 (en) * | 2012-09-07 | 2014-11-25 | Amazon Technologies, Inc. | Automated infrastructure operations |
US10148530B2 (en) * | 2012-09-07 | 2018-12-04 | Oracle International Corporation | Rule based subscription cloning |
US9065678B2 (en) * | 2012-10-24 | 2015-06-23 | Cisco Technology, Inc. | System and method for pinning virtual machine adapters to physical adapters in a network environment |
US9094299B1 (en) * | 2013-01-08 | 2015-07-28 | Juniper Networks, Inc. | Auto-generation of platform-independent interface and operational scripts for configuring network devices |
US8869236B1 (en) | 2013-01-11 | 2014-10-21 | Shoretel, Inc. | Automatic configuration of a network device |
US9449119B2 (en) | 2013-01-15 | 2016-09-20 | Hewlett-Packard Development Company, L.P. | Product visualization |
US9135145B2 (en) * | 2013-01-28 | 2015-09-15 | Rackspace Us, Inc. | Methods and systems of distributed tracing |
US9137119B2 (en) * | 2013-03-07 | 2015-09-15 | Cisco Technology, Inc. | Efficient handling of multi-destination traffic in an internet protocol fabric data center |
US9037571B1 (en) | 2013-03-12 | 2015-05-19 | Amazon Technologies, Inc. | Topology service using closure tables and metagraphs |
US20160014976A1 (en) * | 2013-07-19 | 2016-01-21 | Imad A. Kallabat | Water-actuated growing container and unit |
US10164958B2 (en) * | 2013-08-19 | 2018-12-25 | Entry Point, Llc | Open access network secure authentication systems and methods |
WO2015065355A1 (en) * | 2013-10-30 | 2015-05-07 | Hewlett-Packard Development Company, L. P. | Stitching an application model to an infrastructure template |
US11245588B2 (en) * | 2013-10-30 | 2022-02-08 | Micro Focus Llc | Modifying realized topologies |
EP3063666A4 (en) * | 2013-10-30 | 2017-09-13 | Hewlett-Packard Enterprise Development LP | Management of the lifecycle of a cloud service modeled as a topology |
US9374294B1 (en) * | 2013-11-05 | 2016-06-21 | Cisco Technology, Inc. | On-demand learning in overlay networks |
US9674042B2 (en) * | 2013-11-25 | 2017-06-06 | Amazon Technologies, Inc. | Centralized resource usage visualization service for large-scale network topologies |
IN2013MU04061A (zh) | 2013-12-26 | 2015-07-31 | Tata Consultancy Services Ltd | |
US9276815B2 (en) * | 2013-12-27 | 2016-03-01 | Dell Products L.P. | N-node virtual link trunking (VLT) systems management plane |
US9264308B2 (en) * | 2013-12-27 | 2016-02-16 | Dell Products L.P. | N-node virtual link trunking (VLT) systems data plane |
US9830135B2 (en) * | 2014-01-29 | 2017-11-28 | Dell Products L.P. | Declarative and pluggable business logic for systems management |
US9459859B2 (en) * | 2014-01-31 | 2016-10-04 | Dell Products L.P. | Template derivation for configuration object management |
US20150220308A1 (en) * | 2014-01-31 | 2015-08-06 | Dell Products L.P. | Model-based development |
US20150304164A1 (en) * | 2014-04-17 | 2015-10-22 | Accton Technology Corporation | Data center auto provisioning |
US11334831B2 (en) * | 2014-05-21 | 2022-05-17 | X-Act Science, Inc. | Predictive risk assessment in system modeling |
CN105282195A (zh) * | 2014-06-27 | 2016-01-27 | 中兴通讯股份有限公司 | 网络服务提供、策略规则评估、服务组件选择方法及装置 |
US9705815B2 (en) * | 2014-06-27 | 2017-07-11 | Juniper Networks, Inc. | Graph database for services planning and configuration in network services domain |
EP2963563A1 (en) | 2014-06-30 | 2016-01-06 | Fujitsu Limited | Computing apparatus and method for managing a graph database |
EP3175394A4 (en) | 2014-07-30 | 2018-03-28 | Sios Technology Corporation | Converged analysis of application, virtualization and cloud infrastructure resources using graph theory |
US10700931B2 (en) * | 2014-08-17 | 2020-06-30 | Microsoft Technology Licensing, Llc | Network device configuration framework |
US20160149769A1 (en) * | 2014-11-21 | 2016-05-26 | University Of Maryland | Automating Cloud Services Lifecycle Through Semantic Technologies |
SG11201704328PA (en) * | 2014-11-28 | 2017-06-29 | Huawei Tech Co Ltd | Systems and methods for providing customized virtual wireless networks based on service oriented network auto-creation |
US10250641B2 (en) * | 2015-01-27 | 2019-04-02 | Sri International | Natural language dialog-based security help agent for network administrator |
US10747740B2 (en) | 2015-03-24 | 2020-08-18 | Kyndi, Inc. | Cognitive memory graph indexing, storage and retrieval |
US9762402B2 (en) * | 2015-05-20 | 2017-09-12 | Cisco Technology, Inc. | System and method to facilitate the assignment of service functions for service chains in a network environment |
US20160344772A1 (en) | 2015-05-22 | 2016-11-24 | Brian Quentin Monahan | Modelling network to assess security properties |
US10148493B1 (en) * | 2015-06-08 | 2018-12-04 | Infoblox Inc. | API gateway for network policy and configuration management with public cloud |
US10063428B1 (en) | 2015-06-30 | 2018-08-28 | Apstra, Inc. | Selectable declarative requirement levels |
US9736556B2 (en) * | 2015-09-10 | 2017-08-15 | Equinix, Inc. | Automated fiber cross-connect service within a multi-tenant interconnection facility |
US10411954B2 (en) * | 2015-10-13 | 2019-09-10 | International Business Machines Corporation | Pattern based network configuration |
US9704277B2 (en) | 2015-10-15 | 2017-07-11 | International Business Machines Corporation | Vectorized graph processing |
US10313206B1 (en) * | 2015-12-23 | 2019-06-04 | Apstra, Inc. | Verifying service status |
CN106921437B (zh) * | 2015-12-28 | 2019-03-05 | 华为技术有限公司 | 一种在光接入网中建立虚拟接入节点的方法和设备 |
WO2017132417A1 (en) * | 2016-01-26 | 2017-08-03 | Enterpriseweb Llc | Unified operating system for distributed computing |
US9654360B1 (en) | 2016-02-29 | 2017-05-16 | Wowza Media Systems, LLC | Coordinating analytics between media player and server |
US10277461B1 (en) | 2016-04-20 | 2019-04-30 | Juniper Networks, Inc. | Generating network service models |
US10387631B2 (en) * | 2016-05-06 | 2019-08-20 | Enterpriseweb Llc | Systems and methods for domain-driven design and execution of modular and dynamic services, applications and processes |
US9888007B2 (en) | 2016-05-13 | 2018-02-06 | Idm Global, Inc. | Systems and methods to authenticate users and/or control access made by users on a computer network using identity services |
US10374872B2 (en) | 2016-05-24 | 2019-08-06 | Apstra, Inc. | Configuring system resources for different reference architectures |
US11567994B2 (en) | 2017-01-24 | 2023-01-31 | Apstra, Inc. | Configuration, telemetry, and analytics of a computer infrastructure using a graph model |
US10516761B1 (en) | 2017-03-17 | 2019-12-24 | Juniper Networks, Inc. | Configuring and managing network devices using program overlay on Yang-based graph database |
US10558542B1 (en) | 2017-03-31 | 2020-02-11 | Juniper Networks, Inc. | Intelligent device role discovery |
US10698714B2 (en) | 2017-04-07 | 2020-06-30 | Nicira, Inc. | Application/context-based management of virtual networks using customizable workflows |
US10812342B2 (en) | 2017-04-28 | 2020-10-20 | Hewlett Packard Enterprise Development Lp | Generating composite network policy |
EP3913861B1 (en) | 2017-12-05 | 2023-04-19 | Google LLC | Automated network change system |
US10756983B2 (en) | 2017-12-08 | 2020-08-25 | Apstra, Inc. | Intent-based analytics |
US11019027B2 (en) | 2018-06-27 | 2021-05-25 | Cisco Technology, Inc. | Address translation for external network appliance |
US10771342B2 (en) | 2018-10-31 | 2020-09-08 | Hewlett Packard Enterprises Development LP | Encoding and verifying network intents for stateful networks |
US10892952B2 (en) | 2019-02-21 | 2021-01-12 | Juniper Networks, Inc. | Supporting compilation and extensibility on unified graph-based intent models |
US10841182B2 (en) | 2019-03-29 | 2020-11-17 | Juniper Networks, Inc. | Supporting near real time service level agreements |
US10897396B2 (en) | 2019-03-29 | 2021-01-19 | Juniper Networks, Inc. | Supporting concurrency for graph-based high level configuration models |
EP3722944A1 (en) | 2019-04-10 | 2020-10-14 | Juniper Networks, Inc. | Intent-based, network-aware network device software-upgrade scheduling |
US11606301B2 (en) | 2019-04-23 | 2023-03-14 | Hewlett Packard Enterprise Development Lp | Verifying intents in stateful networks using atomic address objects |
-
2016
- 2016-05-24 US US15/163,308 patent/US10374872B2/en active Active
-
2017
- 2017-02-22 EP EP17803187.8A patent/EP3465401B1/en active Active
- 2017-02-22 CN CN201780025453.1A patent/CN109155741B/zh active Active
- 2017-02-22 CN CN202111609597.6A patent/CN114338376B/zh active Active
- 2017-02-22 EP EP20209925.5A patent/EP3822755B1/en active Active
- 2017-02-22 WO PCT/US2017/018812 patent/WO2017204872A1/en unknown
-
2019
- 2019-06-14 US US16/442,269 patent/US11088900B2/en active Active
-
2021
- 2021-08-09 US US17/397,520 patent/US11689413B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2237530A1 (en) * | 2009-04-02 | 2010-10-06 | Thomson Licensing | Method and device for selection of a service and of selection of at least one service rendering device, and method and device for setting up a service rendering on at least one service rendering device |
US20130061146A1 (en) * | 2011-09-07 | 2013-03-07 | Cisco Technology, Inc. | System and method for developing architectural designs |
CN104272294A (zh) * | 2012-07-31 | 2015-01-07 | 惠普发展公司,有限责任合伙企业 | 系统架构生成 |
WO2015065382A1 (en) * | 2013-10-30 | 2015-05-07 | Hewlett-Packard Development Company, L.P. | Instantiating a topology-based service using a blueprint as input |
US20160142243A1 (en) * | 2014-11-14 | 2016-05-19 | Apstrktr, Inc. | Configuring a network |
Non-Patent Citations (1)
Title |
---|
ROB HIGH, JR.等: "IBM’s SOA Foundation - An Architectural Introduction and Overview", 《IBM SOA FOUNDATION – ARCHITECTURE OVERVIEW》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111817870A (zh) * | 2019-04-10 | 2020-10-23 | 瞻博网络公司 | 基于意图的网络感知网络设备软件升级调度 |
CN111817870B (zh) * | 2019-04-10 | 2021-12-21 | 瞻博网络公司 | 管理多个网络设备的方法、控制器设备以及存储介质 |
US11640291B2 (en) | 2019-04-10 | 2023-05-02 | Juniper Networks, Inc. | Intent-based, network-aware network device software-upgrade scheduling |
US11922162B2 (en) | 2019-04-10 | 2024-03-05 | Juniper Networks, Inc. | Intent-based, network-aware network device software-upgrade scheduling |
WO2021104501A1 (zh) * | 2019-11-28 | 2021-06-03 | 华为技术有限公司 | 意图处理方法和相关装置 |
Also Published As
Publication number | Publication date |
---|---|
US11088900B2 (en) | 2021-08-10 |
US20210367837A1 (en) | 2021-11-25 |
US10374872B2 (en) | 2019-08-06 |
CN114338376B (zh) | 2024-05-24 |
WO2017204872A1 (en) | 2017-11-30 |
US20190306015A1 (en) | 2019-10-03 |
US20170346684A1 (en) | 2017-11-30 |
EP3822755B1 (en) | 2022-07-13 |
EP3822755A1 (en) | 2021-05-19 |
EP3465401A1 (en) | 2019-04-10 |
EP3465401B1 (en) | 2021-01-06 |
US11689413B2 (en) | 2023-06-27 |
CN114338376A (zh) | 2022-04-12 |
CN109155741B (zh) | 2021-12-24 |
EP3465401A4 (en) | 2019-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109155741A (zh) | 为不同参考架构配置系统资源 | |
US11831491B2 (en) | System and methods to validate issue detection and classification in a network assurance system | |
US11805024B1 (en) | Automatically generating an intent-based network model of an existing computer network | |
US11570055B2 (en) | Connectivity templates | |
US11876699B2 (en) | Verifying service status | |
US10063428B1 (en) | Selectable declarative requirement levels | |
CN107003983A (zh) | 配置网络 | |
CN110383765A (zh) | 使用图形模型的计算机基础结构的配置、遥测和分析 | |
EP2890054A1 (en) | System and method for designing a network for one or more entities in an enterprise | |
CN109379217B (zh) | 一种城域网异厂家业务编排器 | |
US11121923B2 (en) | Automatic provisioning of network components | |
Saadon et al. | A survey of application orchestration and OSS in next-generation network management | |
JP2014154925A (ja) | ネットワーク検証システム | |
Alhuseini et al. | 5G service value chain and network slicing framework using ecosystem modeling, agile delivery, and user-story automation | |
Hemid | Facilitation of The OpenDaylight Architecture | |
CN111466134B (zh) | 用于在通信网络中分配通信资源的方法和布置 | |
Shukla et al. | Cisco Cloud Infrastructure | |
Gashi | Analysis and implementation of a software infrastructure-on-demand scheme for ISP processes through Albismart | |
Kylmäaho et al. | Network Management System Selection Process Based on Modern Challenges and Industry Needs | |
Bassi | Enterprise CORD | |
Wennerström | Active Assurance in Kubernetes |
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 |