CN106464532A - 网络状态管理服务 - Google Patents
网络状态管理服务 Download PDFInfo
- Publication number
- CN106464532A CN106464532A CN201580030241.3A CN201580030241A CN106464532A CN 106464532 A CN106464532 A CN 106464532A CN 201580030241 A CN201580030241 A CN 201580030241A CN 106464532 A CN106464532 A CN 106464532A
- Authority
- CN
- China
- Prior art keywords
- state
- network
- suggestion
- equipment
- variable
- 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/0893—Assignment of logical groups to network 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
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- 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
- H04L41/0869—Validating the configuration within one network element
-
- 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
- H04L41/0873—Checking configuration conflicts between network 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/0894—Policy-based network configuration management
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
-
- 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/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0659—Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities
- H04L41/0661—Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities by reconfiguring faulty entities
-
- 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/06—Management of faults, events, alarms or notifications
- H04L41/0695—Management of faults, events, alarms or notifications the faulty arrangement being the maintenance, administration or management system
-
- 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
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
-
- 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
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/0816—Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
在此所描述的技术和/或系统实现了网络管理服务,该网络管理服务被配置为读取和写入针对各个应用(例如网络管理应用)的网络的状态,使得应用能够独立地操作。网络管理服务被配置为读取观测网络状态并向应用提供观测网络状态。随后,网络管理服务从应用接收建议网络状态,并且使用状态依赖关系图来确定在建议网络状态之间是否存在状态冲突。网络管理服务还确定定义策略是否由建议网络状态违反。最后,网络管理服务被配置为通过将遵守定义策略的非冲突的建议网络状态合并来生成目标网络状态,并且基于所生成的目标网络状态来更新(例如写入)网络状态。
Description
背景技术
随着电子服务(例如,搜索服务、电子邮件服务、社交联网服务、云计算服务,等等)继续扩展,电子服务的提供商操作设备的网络以提供电子服务。然而,由于个体网络内的大量互连且依赖的设备,常常使提供商难以通过高效的且可靠的方式连续地操作网络。例如,网络内的交换机设备可能负责将消息从源设备传递到目的地设备并且可能不能够在给定时刻传递消息,这是因为在该给定时刻,消息要经由交换机设备被传递时,维护并更新交换机设备的应用可能已经禁用了交换机设备的功能中的至少一些功能,例如使得它能够接收固件更新。因此,网络可能经历可能影响网络的效率和可靠性的中断。
此外,多个应用可能试图同时控制网络设备的状态,从而导致状态冲突。例如,第一应用可能试图通过交换机设备路由业务,同时第二应用试图关闭交换机设备使得它能够接收更新。
发明内容
在此所描述的技术和/或系统实现了网络管理服务,该网络管理服务被配置为读取和写入针对各个应用(例如网络管理应用)的网络的状态,使得应用能够独立地操作。网络管理服务被配置为读取观测网络状态(例如,针对网络的个体状态变量的值),并且向应用提供观测网络状态。随后,网络管理服务从应用接收建议网络状态,其中每个建议网络状态提议对状态变量的期望值(例如,观测值或当前值)的至少一个改变。网络管理服务然后被配置为使用状态依赖关系图来确定在建议网络状态之间是否存在状态冲突并且定义策略是否被建议网络状态违反。最后,网络管理服务被配置为通过将遵守定义策略的非冲突的建议网络状态合并来生成目标网络状态,并且基于所生成的目标网络状态来更新(例如写入)网络状态(例如,将网络从观测网络状态或当前网络状态改变到目标网络状态)。
提供本发明内容从而以简化的形式介绍下面在具体实现中进一步描述的概念的选择。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。
附图说明
参考附图呈现了具体实现。在附图中,参考数字的最左边的(一个或多个)数字标识该参考数字首次出现的附图。在不同的附图中对相同的参考数字的使用指示相似或相同的项。
图1图示了根据各个实施例的网络管理服务的示例示图,该网络管理服务读取网络的观测状态、将观测状态提供给各个应用并且基于从各个应用接收到的建议状态来确定针对网络的目标状态。
图2图示了根据各个实施例的单个设备内的、跨多个设备的并且针对通信路径的示例状态变量依赖关系。
图3图示了根据各个实施例的描述被配置为实现网络管理设备的一个或多个设备的组件的示例环境。
图4图示了根据各个实施例的读取观测网络状态并且写入目标网络状态的网络管理服务的示例示图。
图5图示了根据各个实施例的生成用于在检测针对网络的状态冲突中使用的状态依赖关系图并且定义用于操作网络的策略的示例过程。
图6图示了根据各个实施例的基于建议网络状态到目标网络状态中的合并来更新观测网络状态或当前网络状态的示例过程。
图7图示了根据各个实施例的继续生成并更新目标网络状态的示例过程。
具体实现
在此所描述的技术和/或系统实现了监视和管理网络的网络管理服务。网络可以包括被配置为执行各种功能的各种类型的设备。网络还可以包括在各设备之间的各种通信路径。在此所描述的网络管理服务使得应用(例如网络管理应用)能够独立地操作。网络管理服务被配置为读取观测网络状态并将观测网络状态提供到应用。网络管理服务还被配置为使用状态依赖关系图来确定在从应用接收到的建议网络状态之间是否存在状态冲突。此外,网络管理服务被配置为确定定义策略是否被建议网络状态违反。最后,网络管理服务被配置为通过将遵守定义策略的非冲突的建议网络状态合并来生成目标网络状态,并且基于所生成的目标网络状态来更新(例如写入)网络状态。因此,在此所描述的网络管理服务使得网络能够安全地且高效地连续操作,这至少是因为避免了状态冲突并且检查了建议网络状态改变以确保它们遵守所定义的网络策略。
如本文中所使用的,网络的“状态”依赖于网络内的个体设备和/或个体通信路径的状态。因此,在此所描述的网络管理服务被配置为观测(例如读取)、存储并聚集网络内的个体设备和/或个体通信路径的状态,使得能够确定更广泛的网络的状态。在各种实现中,个体设备或个体通信路径可以具有一个或多个状态变量,并且在任何给定时间,状态变量可以是各个值中的任何一个值。
状态变量被定义为可以具有能够被读取和/或写入的值的设备或通信路径的任何组件。例如,状态变量可以为针对其能够读取观测值并且能够写入目标值的设备的可控制组件。状态变量可以为针对其能够读取观测值但是不能够写入目标值的设备的不可控制组件(例如,应用可能想要获知不可控制的或“只读”的状态变量的值以建议针对另一状态变量的期望值)。状态变量还可以与网络的虚拟组件相关联。
状态变量还可以被称为键值对,其中(i)键唯一地标识状态变量和/或与状态变量相关联的特定设备或通信路径,并且(ii)值标识针对状态变量的可能值中的一个值。例如,设备可以包括指示设备是被供电还是被断电的功率状态变量。因此,针对功率状态变量的第一值可以指示设备被供电,并且针对功率状态变量的第二值可以指示设备被断电。这些差异值能够从设备被读取(例如被观测到)和/或被写入到设备(例如,功率是设备的可控制组件使得网络管理服务能够将设备在被供电或被断电之间进行切换)。因此,网络的状态是与网络内的个体设备和/或个体通信路径相关联的状态变量的汇集或聚集(例如,键值对的表)。
通常,各个应用单独地访问设备并且控制设备的状态变量。例如,应用通常监视设备的状态变量,基于监视来确定用于更新设备的时间,登录到设备以控制状态变量(例如,将状态变量从观测值或当前值改变为期望值)并且然后发出命令以更新设备。可以由负责管理并控制设备和/或设备为其部分的网络的不同方面或功能的不同的独立的开发者和/或实体创建和/或操作这些各个应用,使得设备和网络有效地且可靠地操作(例如,网络如其应当地执行)。实现对网络中的设备的更新的应用通常没有意识到更新由其他应用实现或将要实现在相同的设备上。因此,多个独立操作的应用常常试图同时控制相同设备的相同状态变量。在许多实例中,由第一应用实现第一更新所要求的状态变量值可能不利地影响由第二应用实现的第二更新。例如,第一更新可能要求状态变量为第一值,同时第二更新可能要求状态变量为与第一值不同的第二值。因此,出现状态冲突并且该状态冲突可能减弱网络的效率和可靠性并且还使控制实现更新的应用的开发者和/或实体受挫败。
作为说明性示例,假定业务工程应用想要创建通过网络内的交换机设备的通信隧道,同时固件升级应用想要使相同的交换机设备升级。在许多实例中并且取决于哪个应用首先发起对交换机设备的动作,要么(i)业务工程应用未能创建通信隧道,这是因为交换机设备可能已经被关闭(例如,功率状态变量指示交换机设备被断电),使得固件升级应用能够使交换机设备升级,要么(ii)在由固件升级应用使交换机设备断电使得固件能够被升级之后或时,已经由业务工程应用建立的通信隧道可能最终丢掉通信业务。
用于解决状态冲突的传统方法包括实现一种系统,其中应用与彼此进行协商并且提前关于针对在给定时间的设备的状态变量的特定值达成一致使得能够避免状态冲突。然而,该传统方法需要在每对应用之间的协调和通信,并且因此应用变得彼此依赖(例如,必须被编程为以共同的语言进行通信的紧耦合的应用)。此外,该传统方法至少因为要求大量操作开销而引起开发复杂性和可扩展性挑战,使得每个应用能够与许多其他应用进行协商,以关于针对状态变量的特定值达成一致以避免冲突。例如,想要更新设备的应用可能需要将针对设备的状态变量的期望值传递到数十或数百个其他应用,并且然后在将状态变量从观测值或当前值改变为期望实现更新的值之前从数十或数百个其他应用接收批准。
在此所描述的技术和/或系统实现一种共享的网络管理服务,其实现用于使各个应用独立地实现对网络的状态的改变的协同的且有组织的方法。共享的网络管理服务承担解决将状态冲突远离应用并确保避免状态冲突的职责。这允许应用与彼此独立地进行操作(例如,应用不必与其他应用进行通信和协商)并且解决以上提到的复杂性和可扩展性挑战。此外,在此所描述的技术和/或系统减少了用于状态冲突解决和策略检查的延时。
如在此所讨论的,网络管理服务生成、维护并使用状态依赖关系图来检测状态冲突。状态依赖关系图捕获和/或表示在各状态变量之间的网络特定(例如域特定)依赖关系。可以定义针对与网络内的相同设备或相同通信路径相关联的两个或更多个状态变量的依赖关系。或者,可以定义在与第一设备或第一通信路径相关联的第一状态变量和与第二设备或第二通信路径相关联的第二状态变量之间的依赖关系。网络管理服务访问状态依赖关系图以确定存在状态冲突(例如,检测状态冲突)并解决状态冲突。
此外,网络管理服务可以确保网络在任何给定时间不违反策略(例如,不变量)。例如,策略可以为服务水平协议(SLA)或至少与服务水平协议(SLA)相关联。服务水平协议可以为被建立并被强制执行以确保网络以或高于可靠性和/或性能标准进行操作的网络范围服务水平协议。例如,服务水平协议可以被定义以确保网络以或高于最小网络连接性水平进行操作(例如,网络中至少百分之九十的交换机设备需要在任何给定时间被供电)。因此,网络管理服务审查定义策略并确保对网络的状态的任何改变(例如,对状态变量的改变)不引起对定义策略的违反。
图1图示了包括管理网络104的网络管理服务102的示例示意图100。网络104可以包括各种设备106和通信路径108。通信路径108可以与将两个设备进行连接的直接链路相关联,或者可以包括将两个设备进行连接的间接链路,其中业务经由被定位在两个设备(例如,端点设备)之间的至少一个中间设备被传递。在一个实现中,通信路径108可以包括通过两个或更多个设备的通信隧道。
在各个实施例中,被管理的网络104可以为大型生产网络,例如数据中心网络(DCN)、因特网服务提供商(ISP)网络、企业网络(例如,云服务)或可以在实体(例如,操作并维护执行网络管理服务102的设备的实体)的控制下的任何其他管理域。设备106可以为物理网络设备,例如交换设备(交换机)、路由设备(路由器)、网关设备(网关)、桥接设备(网络桥接器)、集线器设备(网络集线器)、防火墙设备、网络地址转换器设备(NAT)、多路复用设备(多路复用器)、无线接入点设备(WAP)、代理服务器设备、文件服务器设备、数据库服务器设备、存储设备,等等。设备106还可以为能够连接到网络104的终端用户设备。例如,终端用户设备可以包括移动设备或便携式设备,例如智能电话、蜂窝电话、个人数字助理(PDA)、电子书设备、膝上型计算设备、平板计算设备、个人媒体播放器设备,等等。或者,终端用户设备可以包括固定设备,例如台式计算设备、游戏控制台设备、数字视频记录设备(DVR)、机顶盒设备,等等。因此,网络104可以包括被连接到彼此以包括域或管理网络的数百或数千设备。
作为网络104的管理和管束的一部分,网络管理服务102被配置为监视并存储观测网络状态110(例如,读取观测网络状态110)。观测网络状态110包括在给定时间构成网络104的设备106和/或通信路径108的状态变量的值的汇集或聚集(例如,实时值、最近观测值等)。例如,在给定时间的个体设备106可以被观测以具有功率状态变量,其中的第一值指示功率被打开或者第二值指示功率被关闭。
在读取观测网络状态110(例如,针对状态变量的观测值)之后,网络管理服务102被配置为存储观测网络状态110和/或将观测网络状态110或观测网络状态110的至少部分(例如,针对指定状态变量的值)提供(例如传递)到各个应用112(1)…112(N)。在一个实现中,应用112(1)…112(N)可以请求和/或访问观测网络状态110(例如,将观测网络状态110从网络管理服务102中“拉取”)。在另一实现中,网络管理服务102可以将观测网络状态110自动提供到应用112(1)…112(N)(例如,将观测网络状态110“推送”到应用112(1)…112(N))。在其中网络为大型生产网络的实例中,应用的数量N可以是大的(例如,十个、五十个、一百个、一千个,等等)。
应用(例如,112(1)…112(N)之一)可以负责管理并控制网络104的特定方面或功能,使得网络104有效地且可靠地进行操作。因此,应用112(1)…112(N)可以是花费数年来设计、开发和部署在大型生产网络中的高度复杂的应用。在各个实施例中,由个体应用(例如,112(1)…112(N)之一)管理和控制的网络104的特定方面或功能可以与单个设备106和/或网络的单个通信路径108或者设备106的子集和/或网络的通信路径108的子集(例如,特定类型的设备,诸如网络交换机设备)相关联。因此,个体应用可以请求或者被提供有针对特定状态变量的观测状态值,其与个体应用被配置为管理并控制的设备106和/或通信路径108相关联(例如,个体应用可能不需要理解针对网络104的所有状态变量的观测状态值)。
应用(例如,112(1)…112(N)之一)可以被分类为管理针对网络104的设备106和/或通信路径108的交换转发规则的路由管理应用。例如,业务工程应用可以是路由管理应用,其被配置为操操纵不同的通信路径108(例如通过/针对两个或更多个设备106建立的通信隧道)的业务以改进网络利用和/或确保满足性能要求。在另一示例中,服务器负载平衡应用可以是路由管理应用,其等同地将通信负载(例如业务)跨设备(例如,处理针对数据的请求的服务器的组)进行划分。
应用(例如,112(1)…112(N)之一)可以被分类为基础设施管理应用,其管理网络104的设备106和/或通信路径108的网络基础设施。例如,功率管理应用可以是被配置为在任何给定时间打开或关闭交换设备以便缓和故障或节省能量的基础设施管理应用。在另一示例中,交换机升级应用可以是负责将新的操作系统(即固件)安装在交换机设备上的基础设施管理应用。在又一示例中,配置管理应用可以为被配置为管理交换设备配置和通信路径配置(例如,指定管理层,实现链路层发现协议(LLDP)、因特网协议(IP)分配,等等)的基础设施管理应用。
以上描述的应用在本文中被提供为示例应用,并且可以预见到,被开发为控制网络的方面或功能的其他应用还可以从本文档中描述的技术和/或系统获益。
在将观测网络状态110或针对特定状态变量的值提供到应用112(1)…112(N)然后,网络管理服务102从应用112(1)…112(N)接收(一个或多个)建议网络状态114。应用(例如,112(1)…112(N)之一)可以期望对观测网络状态110中的一个或多个状态变量的值的特定改变(例如,以更新设备),并且因此,应用可以生成并传递提议特定改变(例如,将状态变量的观测值或当前值改变为状态变量的期望值)的建议网络状态114。
网络管理服务102然后被配置为将(一个或多个)建议网络状态114合并并且生成目标网络状态116。针对管理的网络104的目标网络状态116基于从各个应用112(1)…112(N)统一接收到的(一个或多个)建议网络状态。目标网络状态116包括能够被同时实现的并且不会导致状态冲突或对定义网络策略(例如服务水平协议)的违反的、对状态变量的值的接受改变的组。网络管理服务102可以访问并使用以上讨论的状态依赖关系图以确定在经由建议网络状态114提议的两个或更多个改变之间是否存在冲突。网络管理服务102还可以访问定义策略并且确定经由建议网络状态114提议的改变是否导致策略违反。因此,网络管理服务102可能必须在确定存在冲突或违反定义策略时拒绝经由建议网络状态114提议的一些改变。换言之,目标网络状态116可以不实现经由建议网络状态114接收的所有所提议的状态变量改变。一旦目标网络状态116被生成,网络管理服务102就启动状态变量的改变(例如,从先前观测状态值或当前值到期望值)。
因此,以上描述的并且在本文中进一步讨论的网络管理服务102被配置为使应用112(1)…112(N)免遭与控制和管理网络104(例如,一个或多个设备106)相关联的交互和/或必须理解在状态变量之间的依赖关系。相反,网络管理服务102处理交互并理解在状态变量之间的依赖关系。因此,不要求应用112(1)…112(N)本身来实现读取和/或写入状态变量的设备特定方法和/或协议特定方法。此外,由于网络管理服务102不会使得应用112(1)…112(N)能够直接地且单方面地控制被管理的网络104中的设备106和/或通信路径108,因此能够检测到状态冲突,由此缓和网络故障或减弱的网络性能。
在各个实施例中,网络管理服务102可以使用应用编程接口(API)与应用112(1)…112(N)对接。
图2是图示了针对单个设备的、跨多个设备的并且针对通信路径的状态变量依赖关系的示图200。示图200图示了第一设备106(1)和第二设备106(2)以及将网络104中的第一设备106(1)连接到第二设备106(2)的通信路径108。如以上所讨论的,通信路径108可以是直接链路或间接链路。
网络管理服务102被配置为观测并存储针对网络中的设备106和通信路径108定义的状态变量的值(例如,键值对的表)。此外,网络管理服务102当存储值时可以将观测值(例如,键值对)与指示何时观测到针对状态变量的值的时间戳相关联。
第一设备106(1)可以与状态变量202(1)…202(M)相关联。第二设备106(2)可以与状态变量204(1)…204(L)相关联。通信路径108可以与状态变量206(1)…206(K)相关联。在各个实施例中,与设备106(1)和106(2)相关联的状态变量可以被称为物理状态变量,并且与通信路径108相关联的状态变量可以被称为虚拟状态变量,这是因为它们可以不是设备106的物理组件。相反,虚拟状态变量可以为与关联于设备的物理状态变量有关的组件。网络管理服务102可以被配置为基于关系来将虚拟状态变量转换为一个或多个物理状态变量。
针对个体设备106(1)和106(2)的示例状态变量包括但不限于以下中的一个或多个:设备功率状态变量(例如,功率单元可达性状态变量、管理功率状况状态变量,等等)、固件设置状态变量(例如,固件版本状态变量、启动镜像状态变量,等等)、设备配置状态变量(例如,管理接口设置状态变量、布线状况状态变量,等等)、路由控制状态变量(例如,流路由规则状态变量、链路权重分配状态变量,等等)以及设备计数器状态变量(例如,CPU利用状态变量、存储器利用状态变量,等等)。针对个体设备106(1)和106(2)的另一示例状态变量可以与通信接口相关联,并且可以包括但不限于以下中的一个或多个:接口功率状态变量(例如,接口管理状况状态变量、接口操作状况状态变量,等等)、接口配置状态变量(例如,IP分配状态变量、启动状况状态变量,等等)以及接口计数器状态变量(例如,业务负载状态变量、丢包率状态变量,等等)。
针对个体通信路径108的示例状态变量可以包括但不限于设置和业务状态变量(例如,标识通信路径上的交换设备的状态变量、多协议标签交换(MPLS)隧道状态变量,等等)。
由网络管理服务102生成的状态依赖关系图基于在网络104的状态变量之间的所定义的依赖关系。因此,由网络管理服务102用于检测状态冲突的状态依赖关系图可以定义依赖关系,使得个体状态变量不能够同时具有多个值(例如,交换设备不能够同时被供电和断电)。例如,当从第一应用接收到的建议网络状态请求或提议针对状态变量的第一值同时从第二应用接收到的建议网络状态请求或提议针对相同状态变量的与第一值不同的第二值时,状态依赖关系图可以用于检测到出现状态冲突。因此,依赖关系能够相对于个体状态变量被定义。
由网络管理服务102用于检测状态冲突的状态依赖关系图还可以定义在多个状态变量(例如,至少两个状态变量)之间的关系依赖关系。换言之,状态变量的值是否是可改变的可以取决于一个或多个其他状态变量的值。多个状态变量可以与相同设备或相同通信路径相关联。例如,状态变量202(1)的特定值可能与状态变量202(2)的特定值冲突,或者状态变量206(1)的特定值可能与状态变量206(2)的特定值冲突。在一个示例中,针对设备配置状态变量的特定值可以取决于固件版本状态变量的特定值(例如,固件版本可能必须为针对设备配置状态的特定值的最近升级的操作系统)。
多个状态变量可以备选地与不同的设备或通信路径相关联。例如,图2图示了在与设备106(1)相关联的状态变量202(2)和与设备106(2)相关联的状态变量204(1)之间的所定义的依赖关系208。作为示例,针对设备106(1)的设备配置状态变量(例如,状态变量202(2))的特定值可以依赖于设备106(2)的功率状态变量(例如,状态变量204(1))值是否指示设备106(2)被供电。
在各个实施例中,网络管理服务102基于层来构造状态变量。例如,状态变量202(1)可以为第一层210的一部分。状态变量202(2)可以为第二层212的一部分。并且,状态变量202(M)可以为第M层214的一部分(例如,其中M是整数值)。结构内定义的层可以基于状态变量的类型或种类。在一个实现中,层210可以包括功率类型或功率种类的状态变量,层212可以包括设备配置类型或设备配置种类的状态变量,并且层214可以包括路由控制类型或路由控制种类的状态变量。
由于应用(例如,应用112(1)…112(N)之一)可以负责控制并管理网络的特定方面或功能,所以应用可以仅仅对理解并控制与网络的特定方面或功能相关联的少量状态变量感兴趣。因此,网络管理服务102可以根据层来构造或组织状态变量,使得应用能够有效地获得针对特定层内的状态变量的观测值。该特定层与应用正在管理和控制的网络的特定方面或功能相关。继续在前一段中的示例,功率管理应用可能仅仅想要接收并理解层210中的状态变量的观测值(例如,功率类型或功率种类的那些)。或者,业务工程应用可能仅仅想要接收并理解层214中的状态变量的观测值(例如,路由控制类型或路由控制种类的那些)。
图3是示出了实现以上描述的网络管理服务102的示例环境300的示图。在各个实施例中,可以经由一个或多个设备302来实现网络管理服务102。设备302可以包括固定设备,例如台式计算设备、服务器计算设备,等等。设备302可以备选地包括移动设备或便携式设备,例如膝上型计算设备、平板计算设备、智能电话设备、蜂窝电话设备、个人数字助理(PDA)设备、电子书设备,等等。
(一个或多个)设备302包括被配置为实现在此所描述的技术的网络管理服务102。设备302可以个体地且单独地包括一个或多个处理器304和存储器306。(一个或多个)处理器304可以是单个处理器单元或多个单元,其中每个单元能够包括多个不同的处理单元。(一个或多个)处理器304可以包括微处理器、微型计算机、微控制器、数字信号处理器、中央处理单元(CPU)、图形处理单元(GPU)、安全性处理器,等等。备选地或附加地,能够至少部分地由一个或多个硬件逻辑组件执行在此所描述的技术中的一些或全部。例如但非限制性的,能够被使用的说明性类型的硬件逻辑组件包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、状态机、复杂可编程逻辑器件(CPLD)、其他逻辑电路、片上系统(SoC)和/或基于指令来执行操作的任何其他设备。在其他功能之中,(一个或多个)处理器304可以被配置为获取并执行存储在存储器306中的计算机可读指令。
存储器306可以包括计算机可读介质中的一个或组合。如本文中所使用的,“计算机可读介质”包括计算机存储介质和通信介质。
计算机存储介质包括通过用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术实现的易失性介质和非易失性介质、可移除介质和不可移除介质。计算机存储介质包括但不限于相位变化存储器(PRAM)、静态随机访问存储器(SRAM)、动态随机访问存储器(DRAM)、其他类型的随机访问存储器(RAM)、只读存储器(ROM)、电可擦可编程ROM(EEPROM)、闪存或其他存储器技术、紧凑盘ROM(CD-ROM)、数字多用盘(DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备或能够被用于存储用于由设备访问的信息的任何其他介质。
相反,通信介质包括计算机可读指令、数据结构、程序模块或诸如载波的经调制的数据信号中的其他数据。如本文中所限定的,计算机存储介质不包括通信介质。
存储器306可以包括被配置为管理设备内的并且耦合到设备的硬件和服务以有益于其他模块、组件和设备的操作系统。在一些实例中,网络管理服务102的至少一部分可以被实现在操作系统内,或者由操作系统实现。
网络管理服务102包括监视模块308、检查模块310和更新模块312中的一个或多个。如本文中所使用的,术语“模块”旨在表示为了讨论的目的的软件的示例划分,并且不旨在表示任何类型的要求或所需要的方法、方式或组织。因此,尽管讨论各种“模块”,但是它们的功能和/或类似的功能能够以不同方式来布置(例如,被组合成更少数量的模块、被分解成更大数量的模块,等等)。另外,尽管某些功能和模块在本文中被描述为由可执行在跨一个或多个设备的一个或多个处理器的软件和/或固件实现,但是在其他实施例中,模块中的任何或全部可以整体地或部分地由硬件(例如,ASIC、专门的处理单元,等等)实现以执行所描述的功能。在其他实例中,功能和/或模块被实现为设备驱动器、固件等的一部分。
监视模块308被配置为读取或观测被管理的网络104的当前网络状态或实际网络状态(即,观测网络状态110)。如以上所讨论的,观测网络状态110包括在给定时间的针对被管理的网络104的设备106和通信路径108的各种状态变量的值。在读取状态变量的值之后,监视模块308被配置为将观测值存储在状态变量存储314中。例如,监视模块308可以根据键值对(例如,键值对的表)来组织或构造状态变量存储314中的观测值。通过存储观测网络状态110,针对状态变量的最近观测值能够在观测值由监视模块308读取之后的稍后时间被访问。在一些实现中,可以根据设备106和/或通信路径108以及状态变量的类型或种类(例如,以上所讨论的层)来分类键值对。
在各种实现中,监视模块308可以被配置为根据定期排程(例如,每三十秒、每分钟、每三分钟、每十分钟、每三十分钟、每小时、每天的特定时间,等等)读取设备106和通信路径108的最新状态变量值。在其他实现中,监视模块308可以被配置为响应于特定事件而读取设备106和通信路径108的最新状态变量值。例如,特定事件可以包括由来自操作网络管理服务102的实体或由被管理的网络104服务的实体(例如,企业实体)的代表(例如网络管理员)发起的特定指令。在另一示例中,特定事件可以是网络故障或网络中断。
在各个实施例中,监视模块308使用各种协议读取并收集针对状态变量的值。例如,由监视模块308用于读取值的协议可以取决于设备106(例如,交换设备)的供应商或制造商和/或由设备106支持的物理技术(例如,简单网络管理协议(SNMP)、开放流通信协议等)。监视模块308然后将协议特定数据转换成要被存储在状态变量存储314中和/或要被提供到应用112(1)…112(N)的状态变量值。由于监视模块308可以被配置为实现用于从不同设备(例如,由不同实体制造的设备)读取状态变量的值的不同协议,因此监视模块308能够使应用112(1)…112(N)免遭不同设备106的异构性质。换言之,监视模块308可以通过统一格式对状态变量值进行转换并且将其永久地存储,使得应用112(1)…112(N)不必知道或理解用于读取和写入状态变量值的特定基础设施技术和/或协议。
监视模块308被进一步配置为将观测状态变量值提供到应用112(1)…112(N)。如以上所讨论的,观测状态变量值的提供可以经由推送技术或拉取技术来实现。此外,应用可能仅仅想要理解,并且因此被提供有与其负责控制和管理的网络功能或网络方面有关的特定状态变量值。因此,监视模块308可以被配置为将特定状态变量值提供到特定应用。例如,来自特定应用的拉取请求可以指示一个或多个键,该一个或多个键单独地标识设备106的状态变量或通信路径108的状态变量,并且监视模块308提供针对响应于拉取请求而指示的一个或多个键的观测值。在另一示例中,监视模块308可以被配置有意识到哪个状态变量值与特定应用有关的逻辑,并且因此,监视模块308可以根据排程(例如,定期排程)或响应于特定时间自动将特定状态变量值推送到特定应用。因此,监视模块308可以被配置为对应用112(1)…112(N)可用的中间接口,使得应用能够读取状态变量的观测值。
在接收到观测网络状态110(例如,一个或多个观测值)之后,应用112(1)…112(N)确定是否提议对观测值的改变。例如,应用可以确定观测值需要被改变使得应用能够更新设备106上的固件。因此,应用112(1)…112(N)被单独地配置为生成一个或多个建议网络状态114并将其返回到网络管理服务102。在各个实施例中,由应用(例如,应用112(1)…112(N)之一)生成和提供的每个建议网络状态114可以提议状态变量从观测值到期望值的单个改变。因此,单个应用可以确定需要多个值改变,并且因此,单个应用可以提供多个建议网络状态114。在其他实施例中,由应用(例如,应用112(1)…112(N)之一)生成和提供的个体建议网络状态114可以提议对多个相应的观测值的多个改变。
在各个实施例中,检查模块310被配置为从应用112(1)…112(N)接收建议网络状态114和/或将所提议的改变(例如,状态变量的期望值)存储在状态变量存储314中,使得检查模块310能够开始确定是否存在状态冲突或者是否违反定义策略。
在接收到建议网络状态114之后,检查模块310被配置为生成目标网络状态116。检查模块310通过检测并移除建议网络状态114之间的冲突来生成目标网络状态116。例如,如果在两个或更多个建议网络状态之间检测到冲突,则检查模块310被配置为接受一个建议网络状态并拒绝与所接受的建议网络状态冲突的至少一个其他建议网络状态。作为示例,检查模块310可以在第一建议网络状态和第二建议网络状态(例如,至少两个建议网络状态)提议同时(例如,同时地)将状态变量改变为不同值时检测到存在冲突。在另一示例中,检查模块310可以在第一建议网络状态提议对第一状态变量的第一期望值并且第二建议网络状态表提议对与第一状态变量不同的第二状态变量的第二期望值时检测到存在冲突,其中第一期望值和第二期望值是不兼容的(例如,基于所定义的依赖关系)。
检查模块310通过使用例如被存储在状态依赖关系图存储库316中的状态依赖关系图来确定是否存在冲突。如以上所讨论的,状态依赖关系图定义状态变量之间的依赖关系(例如,第一状态变量的特定值可以取决于第二状态变量的特定值)。因此,检查模块310访问状态依赖关系图以确定是否存在冲突。
在各个实施例中,网络管理服务102可以基于层(例如,在各层之间)来定义例如状态依赖关系图内的依赖关系。例如,参考回到图2,状态变量202(1)可以为多层依赖关系层次结构中的顶层210的部分。状态变量202(2)可以为多层依赖关系层次结构中的中间层212的部分,其中中间层212中的状态变量取决于顶层210中的一个或多个状态变量的至少一个值。并且,状态变量202(M)可以为多层依赖关系层次结构中的底层214的部分,其中底层214中的状态变量取决于中间层212中的一个或多个状态变量的至少一个值。在上下文中,应当理解,网络管理服务102能够生成状态依赖关系图,使得其包括任何数量(例如,两个、四个、六个、八个,等等)的层。
网络管理服务102可以使用多层依赖关系层次结构来有效地确定是否存在状态冲突。例如,如果顶层210中的功率状态变量指示设备被断电,则较低层的状态变量(诸如中间层212(例如,设备配置类型状态变量)和底层214(例如,路由控制类型状态变量))中的大多数(即便不是全部)可能是无效的或空的,这至少是因为设备被关闭并且不进行操作,由此消除应用控制和/或管理可能需要功率的较低层状态变量的可能性。换言之,如果功率状态变量指示设备的功率被关闭,则检查模块可以有效地拒绝与设备的较低层状态变量相关联的建议网络状态。或者,在一些实例中,可以通知应用功率状态变量指示设备的功率被关闭,并且因此,应用可以甚至不建议和/或提议对较低层状态变量的改变,这是因为设备被关闭。
在各个实施例中,检查模块310使用示例上次写入成功机制(还被称为上次提交)或示例锁定机制来解决检测到的冲突(例如,选择建议网络状态以接受)。使用上次写入成功机制,检查模块310被配置为基于例如何时接收到建议网络状态的时间来接受对状态变量的所提议的改变。例如,如果检查模块310检查到在两个建议网络状态之间存在冲突,则检查模块310接受或选择更近(即,较新)接收到的建议网络状态,而不是在较新的建议网络状态之前被接收到的较老的建议网络状态。
使用锁定机制,检查模块310使得应用能够在提供建议网络状态之前排他性地锁定状态变量。检查模块310还可以使得应用能够在提供建议网络状态之前排他性地锁定设备106或通信路径108,该建议网络状态可能影响与被锁定的设备106或被锁定的通信路径108相关联的多个状态变量。一旦设备、通信路径和/或状态变量(例如,经由锁定特定状态变量、设备106或通信路径108的指令)被锁定,检查模块310将不接受来自除了发起锁定的一个或多个应用(例如,锁定保持应用)之外的应用的状态变量改变。换言之,检查模块310在建议的应用不是锁定保持应用的情况下拒绝与锁相关联的建议网络状态。
在附加的实施例中,检查模块310使用基于优先级的机制来解决检测到的冲突(例如,选择建议网络状态以接受)。例如,检查模块310可以确定第一应用负责控制和管理可能比由另一应用控制和管理的不同网络功能更重要和/或更有价值的网络功能(例如,网络的操作在很大程度上取决于网络功能)。因此,检查模块310可以访问指示一个应用具有超过另一应用的优先级的排序的或加权的应用列表。在一些实现中,优先级可以指示被控制或管理的特定网络功能具有超过另一网络功能的优先级。
可以由操作网络管理服务102的实体、网络装备(例如,设备)的制造商或生产商、管理和控制网络功能或网络方面的应用(例如,应用112(1)…112(N)之一)的开发者、或由网络服务的实体中的一个或多个来定义状态变量和/或在状态变量之间的依赖关系。因此,被存储在状态依赖关系图存储库316中并且可由检查模块310访问的以确定在两个建议网络状态之间是否存在冲突的状态依赖关系图可以不断演变和/或被更新。例如,特定状态变量可以被新引入到状态依赖关系图或从状态依赖关系图被移除。或者,在两个状态变量之间的依赖关系可以被新引入到状态依赖关系图或从状态依赖关系图被移除。
检查模块310还通过确定定义策略是否被目标网络状态116违反或通过将两个或更多个建议网络状态114合并来生成目标网络状态116。因此,检查模块310被配置为访问并评价策略存储库318以确保目标网络状态116不违反任何所定义的策略(例如,免于策略违反)。通过强制执行策略,网络管理服务102能够确保缓和或限制由应用(例如,行为不当的应用)造成的网络故障。例如,在将非冲突的建议网络状态合并以生成目标网络状态116之后,检查模块310可以确定目标网络状态116是否违反一个或多个服务水平协议(SLA)。在一个实现中,SLA可以定义确保网络以以下或高于以下进行操作的策略:(i)最小网络容量水平和/或(ii)用于确保网络拓扑结构保持被连接的最小可达性水平,使得托管由网络提供的服务的设备能够继续有效地进行操作(例如,幸免于交换设备的任何单个故障)。
第一示例SLA可以被定义以确保网络104不被划分。该示例SLA涉及网络(例如,DCN)的拓扑结构特性并且可以与架顶(ToR)交换机的连接相关联。具体地,该示例SLA可能要求任何ToR交换机能够基于物理网络拓扑结构到达相同网络中的任何其他ToR。该示例SLA还可能要求任何ToR交换机能够连接到其网络内的边界路由器,由此指示ToR交换机具有广域网(WAN)可达性。
第二示例SLA可以被定义以确保两个设备(例如,ToR交换机)之间的容量。因此,该示例SLA可以确保从网络内的第一ToR交换机到第二ToR交换机的容量满足最大业务体积。检查模块310可以计算ToR交换机对的当前容量,并且将所计算的当前容量与针对所设计的网络拓扑结构计算的原始容量进行比较。该示例SLA可以被定义以确保网络内的ToR交换机对的最小百分比p(例如,百分之九十、百分之九十五,等等)具有至少原始容量的预定阈值t(例如,百分之五十、百分之六十,等等)。参数p和t是可配置的,并且可以由网络管理服务102、应用(例如,112(1)…112(N)之一)或另一实体设定。例如,参数可以根据平衡因子来设定,平衡因子包括冗余量,网络可能具有用于容忍容量丢失和/或由网络托管的服务的业务行为的冗余量。
在各个实施例中,策略可以被实现为在网络的网络图数据结构上的函数。网络图数据结构可以包含网络拓扑结构,并且函数可以返回指示目标网络状态116和/或非冲突的合并的建议网络状态是否违反定义策略的布尔结果。
与状态变量和/或依赖关系相似,还可以由操作网络管理服务102的实体、网络装备(例如,设备106)的制造商或生产商、管理和控制网络功能或网络方面的应用(例如,应用112(1)…112(N)之一)的开发者、或由网络服务的实体中的一个或多个来定义策略。因此,被存储在策略存储318中并且可由检查模块310访问的、用于确定是否违反策略的策略可以不断演变和/或被更新。
更新模块312被配置为根据目标网络状态116来更新被管理的网络。因此,更新模块312可以确定或计算在观测网络状态110与目标网络状态116之间的(一个或多个)差异,并且基于所确定的和/或所计算的差异来生成用于应用到网络的特定命令(例如,设备特定命令)。例如,更新模块312可以维持包含针对(例如,基于制造商和/或供应商的)特定类型的交换设备的个体更新动作的命令模板的命令池,其中更新动作可以由各种控制协议(例如,特定供应商API、开放流等)支持。更新模块312可以被配置为将命令模板定位在命令池中,使得命令能够被生成以正确地实现对状态变量的更新。因此,更新模块312被配置为代表应用112(1)…112(N)发布更新命令,使得应用不必理解更新各种设备的异构性质。换言之,由应用(即,建议网络状态114)建议的网络改变可以是通用的并且不需要指定用于将当前状态变量值改变为期望状态变量值的特定硬件命令。
在各个实施例中,更新模块312可以根据排程并基于目标网络状态116来实现改变。例如,更新模块312可以生成最终目标网络状态116并且开始根据定期排程(例如,每分钟、每三分钟、每十分钟、每小时、每三个小时、每天,等等)来实现改变。在各个实施例中,更新模块312可以不断地将网络从当前网络状态(例如,观测网络状态110)移动到目标网络状态116(例如,直到实现目标网络状态116的收敛)。因此,更新模块312可以继续基于不断地演变并且被更新的目标网络状态116来更新网络。
在各个实施例中,设备302包括一个或多个通信单元320。(一个或多个)通信单元320可以被配置为促进到一个或多个网络(例如,网络104)、由各种服务或内容提供商操作的应用112(1)…112(N)、和/或其他设备的有线连接和/或无线连接。因此,(一个或多个)通信单元320可以实现各种通信或网络连接协议中的一个或多个。
图4图示了读取和写入网络状态的网络管理服务102的示例示图。例如,在给定时间,监视模块308读取并收集状态变量值以聚集被管理的网络104的观测网络状态110。观测网络状态110的至少部分(例如,一个或多个特定状态变量值)被提供到个体应用(例如,应用112(1)…112(N)中的每个应用)。个体应用评价观测网络状态并提交指定对状态变量的至少一个改变的建议网络状态114。例如,应用112(1)可以提交提议改变第一状态变量的值SV 1(例如,来自图2的状态变量202(2))的建议网络状态402(1)。应用112(2)可以提交提议改变第二状态变量的值SV 2(例如,来自图2的状态变量202(1))的建议网络状态402(2)。应用112(3)也可以提交提议改变第二状态变量的值SV 2的建议网络状态402(3)。并且应用112(N)可以提交提议改变第三状态变量的值SV 3(例如,来自图2的状态变量204(1))的建议网络状态402(N)。
如以上所讨论的,检查模块310被配置为接收建议网络状态并确定在建议网络状态402(2)与402(3)之间存在冲突,这是因为应用112(2)和112(3)中的每个应用可能正提议状态变量202(1)被改变为不同值。因此,检查模块310可能由于检测到的冲突而选择并接受建议网络状态402(2)和402(3)中的一个建议网络状态,并且相反地,拒绝另一建议网络状态。如以上所讨论的,选择可以基于上次写入成功机制、锁定机制或基于优先级的机制来做出。因此,图4示出了检查模块310选择并接受建议网络状态402(2),并且将所接受的建议网络状态402(2)与包括目标网络状态116的其他非冲突的建议网络状态合并。相反地,检查模块310拒绝建议网络状态402(3)。
类似地,检查模块310被配置为确定在建议网络状态402(1)与402(N)之间存在冲突,这是因为例如,如由图2中的依赖关系208定义的,由应用112(1)提议的状态变量202(2)的期望值可能与由应用112(N)提议的状态变量204(1)的期望值不兼容。因此,检查模块310可能由于检测到的冲突而选择并接受建议网络状态402(1)和402(N)中的一个建议网络状态,并且相反地,拒绝另一建议网络状态。图4示出了检查模块310选择并接受建议网络状态402(N),并且将所接受的建议网络状态402(N)与包括目标网络状态116的其他非冲突的建议网络状态合并。相反地,检查模块310拒绝建议网络状态402(1)。
在一些实现中,检查模块310被配置为将建议网络状态的接受或拒绝传递到应用,使得应用意识到它们所提议的改变是否能够被实现在网络上。检查模块310可以附加地或备选地存储建议网络状态是被接受还是被拒绝的指示,使得应用112(1)…112(N)能够获知建议网络状态的接受或拒绝和/或对其做出反应。例如,检查模块310可以将指示以下的状态条目存储在例如状态变量存储314中:建议网络状态、提交了建议网络状态的应用、和/或建议网络状态被接受或被拒绝的原因。
更新模块312然后被配置为确定在观测网络状态与目标网络状态116之间的差异并且更新被管理的网络104,使得状态从观测网络状态改变为目标网络状态116。在各个实施例中,由更新模块312用于确定差异的观测网络状态是被提供到应用112(1)…112(N)的相同的观测网络状态110。在其中在观测网络状态110被初始地提供到应用112(1)…112(N)之后已经改变网络的状态的情况中,由更新模块312用于确定差异的观测网络状态可以是包括可以与被提供到应用112(1)…112(N)的中包含的那些状态变量不同的一个或多个状态变量的最近观测网络。换言之,在将观测网络状态110提供到应用112(1)…112(N)之后并且在检查模块310正在生成目标网络状态116的同时,监视模块308可能已经读取了针对一个或多个状态变量的更新值。
图5图示了被描绘为逻辑流程图的示例过程,其表示能够采用硬件、软件、固件或其组合实现的操作的序列。在软件的背景下,操作表示计算机可执行指令,计算机可执行指令当由一个或多个处理器执行时,将计算设备配置为执行所记载的操作。总体上,计算机可执行指令包括将计算设备配置为执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构,等等。在一些实施例中,操作中的任何或全部可以整体地或部分地由硬件(例如,ASIC、专门的处理单元等)实现以执行所描述的功能。在一些实例中,功能和/或模块被实现为操作系统的部分。在其他实例中,功能和/或模块被实现为设备驱动器、固件等的一部分。
操作被描述的顺序不旨在被理解为限制,并且任何数目的所描述的操作能够以任何顺序和/或并行地组合以实现过程。
图5图示了生成针对网络的状态依赖关系图并且定义用于操作网络的策略的示例过程500。可以参考图1-4中的任一附图中所图示的模块、组件和/或元件描述图5中的示例操作。
在502处,网络管理服务102被配置为定义针对网络的状态变量并接收状态变量定义。可以由管理网络(例如,应用112(1)…112(N))的应用、由网络装备(例如,设备106)的供应商或制造商、和/或由网络管理服务102定义状态变量。
在504处,网络管理服务102被配置为定义状态变量之间的依赖关系。还可以由管理网络(例如,应用112(1)…112(N))的应用、由网络装备(例如,设备106)的供应商或制造商、和/或由网络管理服务102定义依赖关系。例如,可能想要建议设备配置状态变量从第一配置(例如,第一值)改变为第二配置(例如,第二值)的设备配置控制应用可以理解设备的第二配置取决于固件版本状态变量的特定值(例如,需要设备运行新的操作系统,而非较旧的操作系统)。依赖关系还可以针对个体状态变量被定义(例如,状态变量可能不会同时具有两个不同的值)。
在506处,网络管理服务102被配置为生成针对网络的状态依赖关系图。基于在操作504中定义的依赖关系来生成状态依赖关系图,以确保能够在更新网络之前检测到并解决状态冲突。因此,网络的效率和可靠性得到改进,例如至少因为两个或更多个独立操作的应用不能够试图(i)同时控制(例如,直接写入)相同的状态变量(例如,将状态变量设置为两个或更多个不同的值)以及(ii)将两个或更多个状态变量改变为可能不兼容的和/或损害网络的值。
在508处,网络管理服务102被配置为定义用于操作网络的策略。再次,可以由管理网络的应用(例如,应用112(1)…112(N))、由网络装备(例如,设备106)的供应商或制造商、由网络管理服务102(例如,管理网络的实体)、和/或由被网络服务的实体(例如,公司、教育机构、非盈利组织,等等)定义策略。在各个实施例中,策略可以是被建立以确保网络(例如,针对客户)以或高于服务的最低水平进行操作的服务水平协议。
在510处,网络管理服务102被配置为示意所生成的状态依赖关系图和定义策略来管理网络。例如,所生成的状态依赖关系图被用于确保避免在建议网络状态之间的状态冲突,并且定义策略被用于确保网络性能不会落入服务的最低水平以下。
示例过程500可以被实现为进行中的网络管理和维护任务的一部分。因此,状态变量、依赖关系和/或策略可以继续在一时间段内被定义和被更新,并且进而状态依赖关系图也可以被更新。示例过程500还可以被实现为网络的初始建立(例如,用于执行服务的管理网络的构建)的一部分。
图6图示了基于对建议网络状态到目标网络状态中的合并来更新当前网络状态的示例过程600。可以参考图1-5中的任一附图中所图示的模块、组件、元件和/或操作来描述图6中的示例操作。
在602处,监视模块308读取观测网络状态110。如以上所讨论的,监视模块308可以读取针对包括网络状态的各种状态变量的当前值,并且然后将所读取的值(例如,作为键值对)存储在状态变量存储库314中。
在604处,监视模块308将观测网络状态110的至少一部分提供给个体应用(例如,应用112(1)…112(N))。例如,监视模块308可以经由推送技术将一个或多个状态变量值提供给特定应用,向特定应用提供的状态变量值与由特定应用管理和控制的网络功能和/或网络方面有关。在另一示例中,监视模块308可以响应于接收到对于一个或多个状态变量值的请求(例如,拉取请求)而将一个或多个状态变量值提供到特定应用。
在606处,检查模块310从应用接收建议网络状态。个体建议网络状态提议对观测网络状态110的改变,改变指示状态变量从观测值改变为期望值。如以上所讨论的,要被改变的观测值可以是被传递到特定应用的观测值,或者可以是在值在将观测值提供到特定应用与从特定应用接收建议网络状态之间被更新或被改变的情况下由监视模块308读取和存储的更新后的观测值。
在608处,检查模块310使用状态依赖关系图将接收到的建议网络状态的子集合并到目标网络状态中。因此,被合并到目标网络状态中的建议网络状态避免了状态冲突并且因此是非冲突的建议网络状态。如果检查模块310在两个或更多个建议网络状态之间检测到冲突,则检查模块可以选择并接受一个建议网络状态并拒绝其他建议网络状态。在各个实施例中,可以基于上次写入成功机制、锁定机制或基于优先级的机制来做出选择。
在各种实现中,检查模块310可以基于根据多层层次结构构造的状态依赖关系图来确定是否能够写入状态变量和/或是否存在冲突。使用多层层次结构,检查模块310能够在将建议网络状态合并时是更有效的。例如,多层状态依赖关系图的顶层可以包括设备106的功率状态变量。如果功率状态变量具有指示功率被关闭的值,则比功率状态变量层更低的层中的其他状态变量可能是无效的或空的,这是因为不存在功率。因此,与这些较低的层相关联的任何建议网络状态可能在功率被关闭时被拒绝。如果功率被恰当地提供到设备106(例如,功率状态变量具有指示功率被打开的值),则网络管理服务102能够然后移动到多层层次结构中的下一层并且控制设备固件状态变量,使得设备执行特定固件。继续该示例,设备固件状态变量可以为用于管理作为多层层次结构中的下一层的部分的设备配置状态变量的先决条件。一旦设备配置状态被设定为特定值,网络管理服务102就能够管理路由控制状态变量。因此,检查模块310可以基于针对多层状态依赖关系图建立的依赖关系的理解来接受和/或拒绝建议网络状态。
在610处,检查模块310确定目标网络状态是否违反定义策略。在各个实施例中,在每次建议网络状态被添加到包括已经被合并的非冲突的建议网络状态的目标网络状态(例如,目标网络状态尚未完成并且容易由更新模块312写入到网络)或与包括已经被合并的非冲突的建议网络状态的目标网络状态合并时,检查模块310可以执行该确定。在各个实施例中,检查模块310可以在目标网络状态完成并且容易由更新模块312写入到网络之后执行该确定。
在612处,在各个实施例中,检查模块310可以更新目标网络状态,使得其遵守定义策略。例如,如果在操作610处确定违反,则检查模块310可以将一个或多个非冲突的建议网络状态从目标网络状态移除,以解决违反并且确保目标网络状态遵守定义策略。
在614处,更新模块312将网络的状态改变为目标网络状态(例如,将被传递到应用的观测网络状态转变为目标网络状态,将更新后的或最近的观测网络状态改变为目标网络状态)。例如,更新模块312可以确定在当前网络状态与目标网络状态之间的差异,基于差异来生成命令,并且然后向网络的设备106发布命令(例如,写入改变),使得状态变量能够从由网络管理服务观测到的当前值改变为由应用期望的值。
图7图示了继续生成并更新目标网络状态的示例过程700。可以参考图1-6中的任一附图中所图示的模块、组件、元件和/或操作进行描述图7中的示例操作。
在702处,检查模块310被提供有建议网络状态。所提供的建议网络状态可以为响应于最近观测网络状态的读取、存储和提供而从各个应用接收到的建议网络状态中的一个建议网络状态。
704内的个体操作中的一个或多个然后被执行以确定所提供的建议网络状态是否要被合并到目标网络状态中。可以通过访问状态依赖关系图和/或定义策略来执行704中的个体操作。在704(A)处,检查模块310确定在所提供的建议网络状态与最近观测网络状态之间是否存在状态冲突。在一些实例中,最近观测网络状态可以为被提供到应用的观测网络状态。在一些实例中,最近观测网络状态可以与被提供到应用的观测网络状态不同。因此,一些状态变量和/或状态变量值可能不再是有意义的。
例如,监视模块308可能已经初始地读取了设备被供电并将此传递到应用。作为响应,应用可以提交提议对针对固件版本状态变量的值的改变的建议网络状态。然而,用于被供电的设备的功率可能已经被关闭使得,因此能够例如被修复。因此,在提议对针对固件版本状态变量的值的改变的建议网络状态由检查模块310接收并处理时,观测网络状态已经改变。由于功率被关闭并且固件版本状态变量依赖于功率状态变量,因此固件版本状态变量是暂时不可控制的状态变量(例如,直到设备的功率被重新打开)。在该示例中,建议网络状态被检查模块310拒绝。
在704(B)处,检查模块310确定在所提供的建议网络状态与目标网络状态之间是否存在状态冲突。在最终目标网络状态准备好由更新模块310写入到网络之前,目标网络状态可以包括先前已经由检查模块310接受并且被合并到目标网络状态中的非冲突的建议网络状态。因此,检查模块310可以执行在所提供的建议网络状态与已经被合并到目标网络状态中的每个非冲突的建议网络状态之间的检查以检测状态冲突。
在704(C)处,检查模块310确定将所提供的建议网络状态合并到目标网络状态中是否导致策略违反。
在决策框706处,检查模块310确定是否检测到来自操作704(A)或操作704(B)的冲突或者是否检测到来自操作704(C)的策略违反。如果对判断框706的回答是“否”,则在708处检查模块310接受所提供的建议网络状态并将所提供的建议网络状态合并到目标网络状态中。迭代过程然后返回到操作702,其中检查模块310被提供有下一建议网络状态。
如果对决策框706的回答是“是”,则在710处检查模块310拒绝所提供的建议网络状态并且不将所提供的建议网络状态合并到目标网络状态中,使得避免状态冲突和/或使得目标网络状态遵守定义策略。迭代过程然后返回到操作702,其中检查模块310被提供有下一建议网络状态。
在各个实施例中,代替在710处拒绝所提供的建议网络状态,检查模块310可以将已经被合并到目标网络状态中的冲突的建议网络状态从目标网络状态移除。然后,即使在检测到冲突之后,检查模块310可以能够接受所提供的建议网络状态并将所提供的建议网络状态合并到目标网络状态中。在所提供的建议网络状态具有超过已经被合并到目标网络状态中的冲突的建议网络状态的优先级时,这可能发生。
示例实现
实现A,一种方法,包括:向独立地管理网络的至少一部分的个体应用提供观测网络状态的一个或多个状态变量值;从多个应用接收到多个建议网络状态,其中个体建议网络状态提议对一个或多个状态变量值的一个或多个改变;将所述多个建议网络状态中的至少子集合并到目标网络状态中,其中所述多个建议网络状态的中所述子集中没有个体建议网络状态与所述多个建议网络状态中的所述子集中的另一个体建议网络状态冲突;以及由一个或多个硬件处理器至少部分地基于所述目标网络状态来改变所述网络的状态。
实现B,根据实现A所述的方法,还包括:确定所述目标网络状态是否违反针对所述网络建立的一个或多个定义策略;以及响应于确定所述目标网络状态违反针对所述网络建立的所述一个或多个定义的至少一个定义策略,通过将所述多个建议网络状态中的至少一个建议网络状态移除来更新所述目标网络状态,使得更新后的目标网络状态遵守针对所述网络建立的所述一个或多个定义策略。
实现C,根据实现B所述的方法,其中所述一个或多个定义策略包括至少一个服务水平协议。
实现D,根据实现A到C中的任一项所述的方法,还包括:确定在至少两个建议网络状态之间存在冲突;选择所述至少两个建议网络状态中的一个建议网络状态以接受并且合并到所述目标网络状态中;以及拒绝所述至少两个建议网络状态中的至少一个其他建议网络状态,使得所述至少一个其他建议网络状态不被合并到所述目标网络状态中。
实现E,根据实现D所述的方法,其中所述选择至少部分地基于以下各项中的一项:上次写入成功选择机制、锁定选择机制或基于优先级的选择机制。
实现F,根据实现A到E中的任一项所述的方法,其中所述改变包括:确定在所述观测网络状态与所述目标网络状态之间的差异;至少部分地基于所述差异来生成用于写入到所述网络的一个或多个设备的一个或多个设备特定命令;以及将所述一个或多个设备特定命令写入到所述一个或多个设备以将所述网络的所述状态从所述观测网络状态改变为所述目标网络状态。
实现G,根据实现A到E中的任一项所述的方法,其中所述改变包括:确定在更新后的观测网络状态与所述目标网络状态之间的差异,所述更新后的观测网络状态比用于向所述个体应用提供的所述一个或多个状态变量值的所述观测网络状态更最近地被读取;至少部分地基于所述差异来生成用于写入到所述网络的一个或多个设备的一个或多个设备特定命令;以及将所述一个或多个设备特定命令写入到所述一个或多个设备以将所述网络的所述状态从所述更新后的观测网络状态改变为所述目标网络状态。
实现H,根据实现A到G中的任一项所述的方法,还包括维持定义第一状态变量依赖于第二状态变量的状态依赖关系图。
实现I,根据实现A到H中的任一项所述的方法,其中状态变量是由至少一个应用可控制的所述网络的组件。
实现J,根据实现A到I中的任一项所述的方法,其中所述一个或多个状态变量值表示所述网络的设备的状态,所述方法还包括:使用设备特定技术从所述设备读取所述一个或多个状态变量值;以及以由所述多个应用理解的统一格式存储所述一个或多个状态变量值。
实现K,一个或多个计算机存储介质,存储计算机可执行指令,所述计算机可执行指令当由一个或多个处理器执行时,将所述一个或多个处理器编程为:确定在至少两个建议网络状态之间是否存在冲突,其中个体建议网络状态请求网络的状态变量的值被改变为期望值;选择所述至少两个建议网络状态中的一个建议网络状态以接受并且合并到目标网络状态中;拒绝所述至少两个建议网络状态中的至少一个其他建议网络状态,使得所述至少一个其他建议网络状态不被合并到所述目标网络状态中;以及至少部分地基于所述目标网络状态来改变所述网络的状态。
实现L,根据实现K所述的一个或多个计算机存储介质,其中所述可执行指令还将所述一个或多个处理器编程为:访问定义所述网络的状态变量之间的依赖关系的状态依赖关系图;并且使用所述状态依赖关系图来检测所述冲突。
实现M,根据实现L所述的一个或多个计算机存储介质,其中所接受的建议网络状态请求所述网络的第一状态变量的值被改变为与所述第一状态变量相关联的第一期望值;所拒绝的至少一个建议网络状态请求所述网络的第二状态变量的值被改变为与所述第二状态变量相关联的第二期望值;并且所述状态依赖关系图定义所述第一期望值与所述第二期望值不兼容。
实现N,根据实现L或实现M所述的一个或多个计算机存储介质,其中所述状态依赖关系图是多层状态依赖关系图,其中每层包括特定类型的状态变量,并且在所述多层状态依赖关系图中的各层之间存在所述依赖关系中的一种或多种依赖关系。
实现O,根据实现K到N中的任一项所述的一个或多个计算机存储介质,其中所述可执行指令还将所述一个或多个处理器编程为:从所述网络读取观测网络状态;向独立地管理所述网络的至少一部分的个体应用提供所述观测网络状态;以及从所述多个应用中的至少两个应用接收所述至少两个建议网络状态。
实现P,根据实现K到O中的任一项所述的一个或多个计算机存储介质,其中所述可执行指令还将所述一个或多个处理器编程为:确定所述目标网络状态是否违反针对所述网络建立的一个或多个定义策略;并且响应于确定所述目标网络状态违反针对所述网络建立的所述一个或多个定义策略中的至少一个定义策略,从所述目标网络状态移除至少一个建议网络状态,使得目标网络状态遵守针对所述网络建立的所述一个或多个定义策略。
实现Q,一个或多个设备,包括:一个或多个处理器;一个或多个存储器;监视模块,其被存储在所述一个或多个存储器上并且由所述一个或多个处理器执行,以读取网络的观测网络状态并且将所述观测网络状态提供到独立地管理所述网络的至少部分的个体应用;检查模块,其被存储在所述一个或多个存储器上并且由所述一个或多个处理器执行以通过以下来生成目标网络状态:(i)确定在从多个应用接收到的建议网络状态之间是否存在一个或多个状态变量冲突,以及(ii)将非冲突的建议网络状态合并到所述目标网络状态中,其中个体建议网络状态提议对针对所述网络定义的一个或多个状态变量的一个或多个值的一个或多个改变;以及更新模块,其被存储在所述一个或多个存储器上并且由所述一个或多个处理器执行以将所述目标网络状态写入到所述网络。
实现R,根据实现Q所述的一个或多个设备,其中所述检查模块访问状态依赖关系图以确定在建议网络状态之间是否存在所述一个或多个状态变量冲突。
实现S,根据实现Q或实现R所述的一个或多个设备,其中所述检查模块确定所述目标网络状态是否违反针对所述网络的一个或多个定义策略;并且响应于确定所述目标网络状态违反一个或多个定义策略中的至少一个定义策略,所述检查模块从所述目标网络状态移除至少一个建议网络状态,使得目标网络状态遵守所述一个或多个定义策略。
实现T,根据实现Q到S中的任一项所述的一个或多个设备,其中所述更新模块:确定在观测网络状态与所述目标网络状态之间的差异;至少部分地基于所述差异来生成用于写入到所述网络的一个或多个设备的一个或多个设备特定命令;以及将所述一个或多个设备特定命令写入到所述一个或多个设备以将所述观测网络状态转变为所述目标网络状态。
结论
虽然本公开内容可以使用特定于结构特征和/或方法动作的语言,但是本发明不限于在此所描述的特定特征或动作。相反,特定特征和动作被公开为实现本发明的说明性形式。
Claims (10)
1.一个或多个计算机存储介质,存储计算机可执行指令,所述计算机可执行指令当由一个或多个处理器执行时,将所述一个或多个处理器编程为:
确定在至少两个建议网络状态之间存在冲突,其中个体建议网络状态请求网络的状态变量的值被改变为期望值;
选择所述至少两个建议网络状态中的一个建议网络状态以接受并且合并到目标网络状态中;
拒绝所述至少两个建议网络状态中的至少一个其他建议网络状态,使得所述至少一个其他建议网络状态不被合并到所述目标网络状态中;以及
至少部分地基于所述目标网络状态来改变所述网络的状态。
2.根据权利要求1所述的一个或多个计算机存储介质,其中所述可执行指令还将所述一个或多个处理器编程为:
访问定义所述网络的状态变量之间的依赖关系的状态依赖关系图;以及
使用所述状态依赖关系图来检测所述冲突。
3.根据权利要求2所述的一个或多个计算机存储介质,其中:
所接受的所述建议网络状态请求所述网络的第一状态变量的值被改变为与所述第一状态变量相关联的第一期望值;
所拒绝的所述至少一个建议网络状态请求所述网络的第二状态变量的值被改变为与所述第二状态变量相关联的第二期望值;以及
所述状态依赖关系图定义所述第一期望值与所述第二期望值不兼容。
4.根据权利要求2所述的一个或多个计算机存储介质,其中所述状态依赖关系图是多层状态依赖关系图,其中每层包括特定类型的状态变量,并且在所述多层状态依赖关系图中的各层之间存在所述依赖关系中的一种或多种依赖关系。
5.一种方法,包括:
向独立地管理网络的至少一部分的个体应用提供观测网络状态的一个或多个状态变量值;
从多个应用接收多个建议网络状态,其中个体建议网络状态提议对一个或多个状态变量值的一个或多个改变;
将所述多个建议网络状态中的至少子集合并到目标网络状态中,其中所述多个建议网络状态中的所述子集中没有个体建议网络状态与所述多个建议网络状态中的所述子集中的另一个体建议网络状态冲突;以及
由一个或多个硬件处理器至少部分地基于所述目标网络状态来改变所述网络的状态。
6.根据权利要求5所述的方法,还包括:
确定所述目标网络状态是否违反针对所述网络建立的一个或多个定义策略;以及
响应于确定所述目标网络状态违反针对所述网络建立的所述一个或多个定义策略中的至少一个定义策略,通过移除所述多个建议网络状态中的至少一个建议网络状态来更新所述目标网络状态,使得更新后的所述目标网络状态遵守针对所述网络建立的所述一个或多个定义策略。
7.根据权利要求5所述的方法,还包括:
确定在至少两个建议网络状态之间存在状态冲突;
选择所述至少两个建议网络状态中的一个建议网络状态以接受并且合并到所述目标网络状态中;以及
拒绝所述至少两个建议网络状态中的至少一个其他建议网络状态,使得所述至少一个其他建议网络状态不被合并到所述目标网络状态中。
8.根据权利要求7所述的方法,其中所述选择至少部分地基于以下各项中的一项:上次写入成功选择机制、锁定选择机制或基于优先级的选择机制。
9.根据权利要求5所述的方法,其中所述改变包括:
确定在所述观测网络状态与所述目标网络状态之间的差异;
至少部分地基于所述差异来生成用于写入到所述网络的一个或多个设备的一个或多个设备特定命令;以及
将所述一个或多个设备特定命令写入到所述一个或多个设备,以将所述网络的所述状态从所述观测网络状态改变为所述目标网络状态。
10.一个或多个设备,包括:
一个或多个处理器;
一个或多个存储器;
监视模块,所述监视模块被存储在所述一个或多个存储器上并且由所述一个或多个处理器执行,以读取网络的观测网络状态并且向独立地管理所述网络的一部分的个体应用提供所述观测网络状态的至少一部分;
检查模块,所述检查模块被存储在所述一个或多个存储器上并且由所述一个或多个处理器执行,以通过以下各项来生成目标网络状态:(i)确定在从多个应用接收到的建议网络状态之间是否存在一个或多个状态变量冲突,以及(ii)将非冲突的建议网络状态合并到所述目标网络状态中,其中个体建议网络状态提议对针对所述网络定义的一个或多个状态变量的一个或多个值的一个或多个改变;以及
更新模块,所述更新模块被存储在所述一个或多个存储器上并且由所述一个或多个处理器执行,以将所述目标网络状态写入到所述网络。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/298,762 US9491054B2 (en) | 2014-06-06 | 2014-06-06 | Network-state management service |
US14/298,762 | 2014-06-06 | ||
PCT/US2015/034089 WO2015187894A1 (en) | 2014-06-06 | 2015-06-04 | Network-state management service |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106464532A true CN106464532A (zh) | 2017-02-22 |
CN106464532B CN106464532B (zh) | 2020-01-21 |
Family
ID=53496937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580030241.3A Active CN106464532B (zh) | 2014-06-06 | 2015-06-04 | 一种网络状态管理方法及设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9491054B2 (zh) |
EP (1) | EP3152866B1 (zh) |
CN (1) | CN106464532B (zh) |
BR (1) | BR112016027955B1 (zh) |
WO (1) | WO2015187894A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020069647A1 (en) * | 2018-10-03 | 2020-04-09 | Huawei Technologies Co., Ltd. | System for deploying incremental network updates |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10320622B2 (en) * | 2014-08-22 | 2019-06-11 | Vmware, Inc. | Policy declarations for cloud management system |
EP3216177B1 (en) * | 2014-11-06 | 2021-04-14 | Hewlett Packard Enterprise Development LP | Network policy graphs |
US11175966B2 (en) * | 2016-02-26 | 2021-11-16 | Arista Networks, Inc. | System and method of a managing multiple data centers |
US10693705B2 (en) | 2016-03-23 | 2020-06-23 | Arista Networks, Inc. | Show command service aka CLI relay |
US10187286B2 (en) * | 2016-05-23 | 2019-01-22 | Arista Networks, Inc. | Method and system for tracking network device information in a network switch |
US10917284B2 (en) | 2016-05-23 | 2021-02-09 | Arista Networks, Inc. | Method and system for using an OpenConfig architecture on network elements |
US10812342B2 (en) | 2017-04-28 | 2020-10-20 | Hewlett Packard Enterprise Development Lp | Generating composite network policy |
US10666507B2 (en) * | 2017-06-30 | 2020-05-26 | Microsoft Technology Licensing, Llc | Automatic reconfiguration of dependency graph for coordination of device configuration |
CN107733681B (zh) * | 2017-07-28 | 2018-10-30 | 贵州白山云科技有限公司 | 一种调度方案配置方法和装置 |
US11178018B2 (en) | 2018-09-28 | 2021-11-16 | Arista Networks, Inc. | Method and system for managing real network systems using simulation results |
US10880166B2 (en) | 2019-02-21 | 2020-12-29 | Arista Networks, Inc. | Multi-cluster management plane for network devices |
US11349774B2 (en) * | 2019-12-13 | 2022-05-31 | At&T Intellectual Property 1, L.P. | Methods, systems and computer readable media for diagnosing network function virtualization performance |
US11714786B2 (en) * | 2020-03-30 | 2023-08-01 | Microsoft Technology Licensing, Llc | Smart cable for redundant ToR's |
US11057275B1 (en) | 2020-09-18 | 2021-07-06 | Arista Networks, Inc. | Method and system for achieving high availability of a primary network controller in a network controller cluster using distributed network device state information |
US11743122B1 (en) | 2022-03-30 | 2023-08-29 | Amazon Technologies, Inc. | Network change verification based on observed network flows |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070289814A1 (en) * | 2006-03-31 | 2007-12-20 | Sawyer George M | Oil drain plug remover |
US20080215713A1 (en) * | 2007-03-02 | 2008-09-04 | David Maxwell Cannon | System and Method for Automatically Enforcing Change Control in Operations Performed by Operational Management Products |
US20080262992A1 (en) * | 2007-04-20 | 2008-10-23 | Microsoft Corporation | Type inference for object-oriented languages |
WO2013071965A1 (en) * | 2011-11-16 | 2013-05-23 | Nokia Siemens Networks Oy | Network coordination apparatus |
Family Cites Families (90)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5537580A (en) * | 1994-12-21 | 1996-07-16 | Vlsi Technology, Inc. | Integrated circuit fabrication using state machine extraction from behavioral hardware description language |
CA2161847A1 (en) | 1995-10-31 | 1997-05-01 | Wayne D. Grover | Method for preconfiguring a network to withstand anticipated failures |
US6078741A (en) | 1997-02-05 | 2000-06-20 | Firsttel Systems Corporation | Automatic generation of reconfiguration scripts for telecommunication devices |
US6724722B1 (en) | 1999-03-19 | 2004-04-20 | Lucent Technologies Inc. | Managing congestion and potential traffic growth in an information network |
GB2362481B (en) | 2000-05-09 | 2004-12-01 | Rolls Royce Plc | Fault diagnosis |
US7073143B1 (en) * | 2000-11-06 | 2006-07-04 | Cadence Design Systems, Inc. | Solving constraint satisfiability problem for circuit designs |
US20020130872A1 (en) * | 2001-03-15 | 2002-09-19 | Elena Novikova | Methods and systems for conflict resolution, summation, and conversion of function curves |
US7415038B2 (en) | 2001-03-29 | 2008-08-19 | International Business Machines Corporation | Method and system for network management providing access to application bandwidth usage calculations |
US20030014644A1 (en) * | 2001-05-02 | 2003-01-16 | Burns James E. | Method and system for security policy management |
WO2003014927A2 (en) | 2001-08-08 | 2003-02-20 | Trivium Systems Inc. | Scalable messaging platform for the integration of business software components |
US20030106062A1 (en) * | 2001-12-05 | 2003-06-05 | Koninklijke Philips Electronics N.V. | Home network environment as a state machine |
US7221945B2 (en) * | 2002-05-03 | 2007-05-22 | Leapstone Systems, Inc. | System and method for establishing and controlling access to network resources |
US7324981B2 (en) * | 2002-05-16 | 2008-01-29 | Microsoft Corporation | System and method of employing efficient operators for Bayesian network search |
US7552205B2 (en) * | 2002-05-21 | 2009-06-23 | Accenture Global Services Gmbh | Distributed transaction event matching |
US8140569B2 (en) * | 2003-05-29 | 2012-03-20 | Microsoft Corporation | Dependency network based model (or pattern) |
GB0301707D0 (en) | 2003-01-24 | 2003-02-26 | Rolls Royce Plc | Fault diagnosis |
US7610386B1 (en) * | 2003-04-29 | 2009-10-27 | Blue Titan Software, Inc. | Stateful messaging gateway |
US7539741B2 (en) * | 2003-04-30 | 2009-05-26 | Nokia Siemens Networks Oy | System, apparatus and method for supporting constraint based routing for multi-protocol label switching traffic engineering in policy-based management |
US7680055B1 (en) | 2003-09-26 | 2010-03-16 | At&T Intellectual Property Ii, L.P. | Method and apparatus for increasing survivability in IP networks |
US20050076339A1 (en) | 2003-10-03 | 2005-04-07 | Nortel Networks Limited | Method and apparatus for automated negotiation for resources on a switched underlay network |
US8312145B2 (en) | 2003-12-22 | 2012-11-13 | Rockstar Consortium US L.P. | Traffic engineering and bandwidth management of bundled links |
US7564780B2 (en) | 2004-01-15 | 2009-07-21 | Fujitsu Limited | Time constrained failure recovery in communication networks |
US8146160B2 (en) * | 2004-03-24 | 2012-03-27 | Arbor Networks, Inc. | Method and system for authentication event security policy generation |
US7558215B2 (en) | 2004-09-24 | 2009-07-07 | Alcatel-Lucent Usa Inc. | Method for optimizing the frequency of network topology parameter updates |
US7796500B1 (en) * | 2004-10-26 | 2010-09-14 | Sprint Communications Company L.P. | Automated determination of service impacting events in a communications network |
JP4438064B2 (ja) * | 2004-11-15 | 2010-03-24 | キヤノン株式会社 | データ処理装置および印刷設定処理方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム |
US7469392B2 (en) * | 2004-12-09 | 2008-12-23 | Synopsys, Inc. | Abstraction refinement using controllability and cooperativeness analysis |
US8494539B1 (en) | 2005-06-30 | 2013-07-23 | Alcatel Lucent | Congestion management in radio access networks |
US7426524B2 (en) | 2005-09-27 | 2008-09-16 | International Business Machines Corporation | Update processes in an enterprise planning system |
US7539133B2 (en) | 2006-03-23 | 2009-05-26 | Alcatel-Lucent Usa Inc. | Method and apparatus for preventing congestion in load-balancing networks |
US7746784B2 (en) | 2006-03-23 | 2010-06-29 | Alcatel-Lucent Usa Inc. | Method and apparatus for improving traffic distribution in load-balancing networks |
US7769727B2 (en) * | 2006-05-31 | 2010-08-03 | Microsoft Corporation | Resolving update-delete conflicts |
WO2008009235A1 (en) | 2006-07-12 | 2008-01-24 | Huawei Technologies Co., Ltd. | Method for controlling congestion |
US8135990B2 (en) | 2006-08-11 | 2012-03-13 | Opnet Technologies, Inc. | Multi-variate network survivability analysis |
US8826032B1 (en) * | 2006-12-27 | 2014-09-02 | Netapp, Inc. | Systems and methods for network change discovery and host name resolution in storage network environments |
US7730364B2 (en) | 2007-04-05 | 2010-06-01 | International Business Machines Corporation | Systems and methods for predictive failure management |
US20080271022A1 (en) * | 2007-04-27 | 2008-10-30 | Motorola, Inc. | Utilizing graphs to detect and resolve policy conflicts in a managed entity |
CN101304350B (zh) * | 2007-05-11 | 2013-02-13 | 华为技术有限公司 | 访问家庭网络设备的方法、系统和家庭网络接入设备 |
US8117606B2 (en) | 2007-06-04 | 2012-02-14 | Infosys Technologies Ltd. | System and method for application migration in a grid computing environment |
WO2009012019A1 (en) | 2007-07-18 | 2009-01-22 | Bobby Ninan | Tuning routing metrics to reduce maximum link utilization and/or provide failure resiliency |
EP2073478B1 (en) * | 2007-12-20 | 2011-11-16 | Electronics and Telecommunications Research Institute | Encryption communication apparatus and method for controlling transfer period of key resynchronization information |
US8447859B2 (en) | 2007-12-28 | 2013-05-21 | International Business Machines Corporation | Adaptive business resiliency computer system for information technology environments |
JP2011514586A (ja) * | 2008-02-08 | 2011-05-06 | エクリオ インコーポレイテッド | デジタル電子デバイス上の複数のアプリケーションおよびサービスを制御するためのシステム、方法、ならびに装置 |
US9098479B2 (en) * | 2008-02-15 | 2015-08-04 | Edyt Inc. | Methods and apparatus for improved navigation among controlled terms in one or more user documents |
US8191075B2 (en) * | 2008-03-06 | 2012-05-29 | Microsoft Corporation | State management of operating system and applications |
US8140461B2 (en) * | 2008-03-24 | 2012-03-20 | Hewlett-Packard Development Company, L.P. | System and method for identifying conflicting network access rules and creating a resolved consequence |
US8086701B2 (en) | 2008-04-28 | 2011-12-27 | Microsoft Corporation | Platform for managing and configuring network state |
US8374987B2 (en) * | 2008-06-30 | 2013-02-12 | Sap Ag | Stateful, continuous evaluation of rules by a state correlation engine |
CN102160359B (zh) * | 2008-09-18 | 2015-07-08 | 皇家飞利浦电子股份有限公司 | 控制系统的方法和信号处理系统 |
US7996719B2 (en) | 2008-10-24 | 2011-08-09 | Microsoft Corporation | Expressing fault correlation constraints |
US7839789B2 (en) | 2008-12-15 | 2010-11-23 | Verizon Patent And Licensing Inc. | System and method for multi-layer network analysis and design |
US8175846B2 (en) | 2009-02-05 | 2012-05-08 | Honeywell International Inc. | Fault splitting algorithm |
US7904540B2 (en) * | 2009-03-24 | 2011-03-08 | International Business Machines Corporation | System and method for deploying virtual machines in a computing environment |
US8144594B2 (en) | 2009-03-25 | 2012-03-27 | Comcast Cable Communications, Llc | Congestion management in a shared network |
US8270313B2 (en) * | 2009-11-13 | 2012-09-18 | Mitsubishi Electric Research Laboratories, Inc. | Ranking nodes in networks with topologies arranged as directed acyclic graphs |
US9264321B2 (en) * | 2009-12-23 | 2016-02-16 | Juniper Networks, Inc. | Methods and apparatus for tracking data flow based on flow state values |
US8364909B2 (en) * | 2010-01-25 | 2013-01-29 | Hewlett-Packard Development Company, L.P. | Determining a conflict in accessing shared resources using a reduced number of cycles |
US8489765B2 (en) | 2010-03-19 | 2013-07-16 | Cisco Technology, Inc. | Dynamic directed acyclic graph (DAG) adjustment |
US9141625B1 (en) * | 2010-06-22 | 2015-09-22 | F5 Networks, Inc. | Methods for preserving flow state during virtual machine migration and devices thereof |
US9009530B1 (en) * | 2010-06-30 | 2015-04-14 | Purdue Research Foundation | Interactive, constraint-network prognostics and diagnostics to control errors and conflicts (IPDN) |
US8880468B2 (en) * | 2010-07-06 | 2014-11-04 | Nicira, Inc. | Secondary storage architecture for a network control system that utilizes a primary network information base |
US8887132B1 (en) * | 2010-09-03 | 2014-11-11 | Christopher R. Hunter | Application runtime environment and framework |
US8819220B2 (en) | 2010-09-09 | 2014-08-26 | Hitachi, Ltd. | Management method of computer system and management system |
US20120101980A1 (en) * | 2010-10-26 | 2012-04-26 | Microsoft Corporation | Synchronizing online document edits |
US20120163178A1 (en) | 2010-12-23 | 2012-06-28 | Telefonaktiebolaget L M Ericsson (Publ) | Multiple-Algorithm Congestion Management |
US9277422B2 (en) * | 2011-02-15 | 2016-03-01 | Tata Consultancy Services Limited | Dynamic self configuration engine for cognitive networks and networked devices |
JP5672063B2 (ja) | 2011-02-24 | 2015-02-18 | 富士通株式会社 | 送信制御プログラム、通信装置および送信制御方法 |
US20120323702A1 (en) * | 2011-06-16 | 2012-12-20 | Emmanuel Puentes | System and method for client-server cooperation in selecting content for display |
US8661449B2 (en) | 2011-06-17 | 2014-02-25 | Microsoft Corporation | Transactional computation on clusters |
US8612583B2 (en) * | 2011-07-29 | 2013-12-17 | Cisco Technology, Inc. | Network management system scheduling for low power and lossy networks |
US8898676B2 (en) * | 2011-08-26 | 2014-11-25 | Vmware, Inc. | Management of software updates for software components in a virtualized environment of a datacenter using dependency relationships |
US9203701B2 (en) | 2011-10-25 | 2015-12-01 | Nicira, Inc. | Network virtualization apparatus and method with scheduling capabilities |
US9277482B2 (en) | 2011-11-10 | 2016-03-01 | Cisco Technology, Inc. | Adaptive reoptimization rate for unstable network topologies |
DE102012003977A1 (de) | 2012-02-28 | 2013-08-29 | Vodafone Holding Gmbh | Verfahren zum Untersuchen eines Datentransportnetzwerks und Computerprogrammprodukt |
US20130294250A1 (en) * | 2012-05-01 | 2013-11-07 | Qualcomm Iskoot, Inc. | Exchanging data between a user equipment and one or more servers over a communications network |
US8995339B2 (en) | 2012-06-08 | 2015-03-31 | At&T Intellectual Property I, L.P. | Network control of applications using application states |
US8984480B2 (en) * | 2012-07-10 | 2015-03-17 | International Business Machines Corporation | Automating and/or recommending data sharing coordination among applications in mobile devices |
WO2014046875A1 (en) | 2012-09-20 | 2014-03-27 | Ntt Docomo, Inc. | A method and apparatus for topology and path verification in networks |
US9203759B2 (en) * | 2012-11-07 | 2015-12-01 | Broadcom Corporation | Switch state reporting |
US9399959B2 (en) | 2014-03-26 | 2016-07-26 | GM Global Technology Operations LLC | System and method for adjusting a torque capacity of an engine using model predictive control |
AT512003A3 (de) * | 2013-01-23 | 2014-05-15 | Avl List Gmbh | Verfahren zur Ermittlung eines regelungstechnischen Beobachters für den SoC |
US20140244218A1 (en) | 2013-02-25 | 2014-08-28 | International Business Machines Corporation | Architecture optimization |
US9141682B1 (en) * | 2013-03-25 | 2015-09-22 | Amazon Technologies, Inc. | Resolving conflicts within saved state data |
US9559870B2 (en) * | 2013-07-08 | 2017-01-31 | Nicira, Inc. | Managing forwarding of logical network traffic between physical domains |
US9929918B2 (en) * | 2013-07-29 | 2018-03-27 | Alcatel Lucent | Profile-based SLA guarantees under workload migration in a distributed cloud |
US9454382B2 (en) * | 2013-10-14 | 2016-09-27 | International Business Machines Corporation | Verification of UML state machines |
US9613074B2 (en) | 2013-12-23 | 2017-04-04 | Sap Se | Data generation for performance evaluation |
CN106164839B (zh) * | 2014-02-04 | 2019-10-22 | 触觉实验室股份有限公司 | 以减小的等待时间提供对输入的视觉响应的方法 |
US9110524B1 (en) * | 2014-06-09 | 2015-08-18 | Xilinx, Inc. | High throughput finite state machine |
US9892185B2 (en) * | 2014-08-19 | 2018-02-13 | Projectwizards Gmbh | Method and system for syncing data structures |
-
2014
- 2014-06-06 US US14/298,762 patent/US9491054B2/en active Active
-
2015
- 2015-06-04 CN CN201580030241.3A patent/CN106464532B/zh active Active
- 2015-06-04 EP EP15733010.1A patent/EP3152866B1/en active Active
- 2015-06-04 BR BR112016027955-7A patent/BR112016027955B1/pt active IP Right Grant
- 2015-06-04 WO PCT/US2015/034089 patent/WO2015187894A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070289814A1 (en) * | 2006-03-31 | 2007-12-20 | Sawyer George M | Oil drain plug remover |
US20080215713A1 (en) * | 2007-03-02 | 2008-09-04 | David Maxwell Cannon | System and Method for Automatically Enforcing Change Control in Operations Performed by Operational Management Products |
US20080262992A1 (en) * | 2007-04-20 | 2008-10-23 | Microsoft Corporation | Type inference for object-oriented languages |
WO2013071965A1 (en) * | 2011-11-16 | 2013-05-23 | Nokia Siemens Networks Oy | Network coordination apparatus |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020069647A1 (en) * | 2018-10-03 | 2020-04-09 | Huawei Technologies Co., Ltd. | System for deploying incremental network updates |
CN112805984A (zh) * | 2018-10-03 | 2021-05-14 | 华为技术有限公司 | 用于部署增量网络更新的系统 |
CN112805984B (zh) * | 2018-10-03 | 2022-09-23 | 华为技术有限公司 | 用于部署增量网络更新的系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106464532B (zh) | 2020-01-21 |
US9491054B2 (en) | 2016-11-08 |
BR112016027955A8 (pt) | 2021-07-13 |
WO2015187894A1 (en) | 2015-12-10 |
EP3152866B1 (en) | 2018-05-30 |
EP3152866A1 (en) | 2017-04-12 |
US20150358209A1 (en) | 2015-12-10 |
BR112016027955B1 (pt) | 2024-01-02 |
BR112016027955A2 (pt) | 2017-08-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106464532A (zh) | 网络状态管理服务 | |
Ahmad et al. | Scalability, consistency, reliability and security in SDN controllers: a survey of diverse SDN controllers | |
US11463316B2 (en) | Topology explorer | |
US10574513B2 (en) | Handling controller and node failure scenarios during data collection | |
US8682940B2 (en) | Operating a network using relational database methodology | |
CN106464530B (zh) | 网络更新的动态调度的方法和系统 | |
CN105531688B (zh) | 提供作为其它服务的资源的服务 | |
US20150263983A1 (en) | System and Method for Allocating Resources and Managing a Cloud Based Computer System | |
CN110602208B (zh) | 一种分布式微服务治理系统及系统的构建方法 | |
CN107005422A (zh) | 第二天操作的基于拓扑的管理 | |
CN108965289A (zh) | 一种网络安全协同防护方法和系统 | |
CN110710161A (zh) | 生成网络的设备级逻辑模型 | |
CN109462511B (zh) | 网络的建立方法及装置 | |
CN110741602A (zh) | 响应于网络意图形式对等性失败的事件生成 | |
CN106101213A (zh) | 信息分布式存储方法 | |
CN117581239A (zh) | 用于人工智能定义网络的系统和方法 | |
Zhang et al. | A conflict resolution scheme in intent-driven network | |
CN105827744A (zh) | 云存储平台的数据处理方法 | |
Maurel et al. | Towards a service-oriented component model for autonomic management | |
Zuzek et al. | Formal model for contract negotiation in knowledge-based virtual organizations | |
CN107528724A (zh) | 一种节点集群的优化处理方法及装置 | |
Guimarães et al. | An analytical approach for optimization of computer network design considering the integration of the communication and power infrastructures | |
Mulár | Blockchain technology in the enterprise environment | |
Chhetri et al. | ADSL: an embedded domain-specific language for constraint-based distributed self-management | |
US20240097992A1 (en) | Smart Detection for Determination of Database Accuracy |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |