CN106464530A - 网络更新的动态调度 - Google Patents

网络更新的动态调度 Download PDF

Info

Publication number
CN106464530A
CN106464530A CN201580029987.2A CN201580029987A CN106464530A CN 106464530 A CN106464530 A CN 106464530A CN 201580029987 A CN201580029987 A CN 201580029987A CN 106464530 A CN106464530 A CN 106464530A
Authority
CN
China
Prior art keywords
network
renewal
update
equipment
node
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
Application number
CN201580029987.2A
Other languages
English (en)
Other versions
CN106464530B (zh
Inventor
R·马哈詹
张铭
S·坎杜拉
刘洪强
金鑫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN106464530A publication Critical patent/CN106464530A/zh
Application granted granted Critical
Publication of CN106464530B publication Critical patent/CN106464530B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

本文中描述的技术和/或系统被配置为确定用于使网络从观察网络状态过渡到目标网络状态的更新操作的集合,并且基于被定义用于在过渡期间确保网络的可靠性的约束来生成用于动态地调度更新操作的集合的更新依赖图。技术和/或系统基于反馈来动态地调度更新操作的集合。例如,反馈可以包括先前调度的更新操作已经延迟、失败、或者成功完成的指示。

Description

网络更新的动态调度
背景技术
随着电子服务(例如,搜索服务、电子邮件服务、社交网络服务、云计算服务等)继续扩展,电子服务的提供者操作设备的网络以提供电子服务。网络的提供者或管理者通过连续更新网络内的互连的设备来维持网络。然而,在实现跨多个设备的网络更新时经常发生网络服务中断和/或故障,这至少是因为网络更新不能适应与其利用单个设备应用和完成更新所花费的时间量相关的运行时间差异。例如,由于第一设备的硬件资源上的当前负载,对第一设备的更新可能花费比预期的更长的时间量(例如,多于平均时间量)。在另一示例中,对第一设备的更新可能根本无法完成。因此,对第二设备的更新可能受到对第一设备的不成功或延迟的更新的影响,并因此,网络可能经历服务中断或故障。
发明内容
本文中所描述的技术和/或系统被配置为确定更新操作的集合以使网络从观察网络状态过渡到目标网络状态,并且基于被定义用于在过渡期间确保网络的可靠性的约束来生成用于动态地调度更新操作的集合的更新依赖图。技术和/或系统基于反馈动态地调度更新操作的集合。例如,反馈可以包括先前调度的更新操作已经被延迟、失败或成功完成的指示。
在各种实施例中,更新依赖图可以包括多个排序,按照该多个排序能够调度更新操作的集合。比如,第一排序可以与更新操作的第一子集相关联,并且第二排序可以与更新操作的第二子集相关联。至少一个更新操作可以被包括在更新操作的第一子集和更新操作的第二子集两者中,使得其可以基于第一排序或第二排序被动态地调度。换句话说,至少一个更新操作可以是子更新操作,该子更新操作取决于多个父更新操作中的一个父更新操作、例如被包括在第一排序中的第一父更新操作或者被包括在第二排序中的第二父更新操作的成功完成。
提供本发明内容部分以便以简化的形式介绍将在以下详细描述部分中进一步描述的一些概念。本发明内容部分并非意图标识要求保护的主题的关键特征或必要特征,也并非意图用于限制要求保护的主题的范围。
附图说明
参考附图呈现详细描述。在附图中,附图标记的最左边的数字标识附图标记首次出现的附图。不同附图中相同附图标记的使用表示相似或相同的项目。
图1图示根据各种实施例的示出被配置为动态地调度网络上的网络更新的各个更新操作的网络更新服务的示例图。
图2图示根据各种实施例的示出描述被配置为实现网络更新服务的一个或多个设备的各部件的环境的示例图。
图3图示根据各种实施例的示出使网络的至少部分从观察网络状态过渡到目标网络状态所进行的变化的示例图。
图4图示根据各种实施例的示出基于图3的变化生成的更新依赖图的示例图。
图5图示根据各种实施例的生成更新依赖图以使网络的状态从观察网络状态过渡到目标网络状态的示例过程。
图6图示根据各种实施例的使用更新依赖图来动态地调度包括网络更新的单独的更新操作的示例过程。
图7图示根据各种实施例的示出针对转发业务的网络的一部分从观察网络状态到目标网络状态的状态过渡的示例图。
图8图示根据各种实施例的示出基于图7的状态过渡生成的更新依赖图的示例图。
图9图示根据各种实施例的示出更新依赖图中的循环依赖的示例图。
图10图示根据各种实施例的在更新依赖图中调度循环依赖的更新操作的示例过程。
具体实施方式
本文中描述的技术和/或系统实现网络更新服务,网络更新服务被配置为生成与使网络的状态从观察网络状态过渡(例如,移动)到目标网络状态的更新操作相关联的更新依赖图。网络更新服务使用更新依赖图来动态地调度各个更新操作,从而可以实现网络更新。网络更新服务基于被定义用于确保网络更新的实现可靠(例如,减少发生网络中断或网络故障的机会)的一个或多个约束来生成更新依赖图。使用更新依赖图,网络更新服务可以基于从网络中的设备接收的反馈来动态地调度包括网络更新的各个更新操作。
换句话说,更新依赖图可以是引导或导航工具,其由网络更新服务使用以在运行时间期间基于所接收到的与先前实现的更新操作相关联的反馈来动态地选择一个或多个下一或随后的更新操作。比如,反馈可以指示(i)单独的更新操作已经失败并且未被成功地完成,(ii)单独的更新操作已经被延迟并且尚未被完成(例如,但未失败),或者(iii)单独的更新操作已经成功完成。基于接收到的反馈,网络更新服务可以访问和使用更新依赖图来动态地标识和调度下一更新操作。
用于更新网络的第一传统方法包括“一次性”方法,其确定网络的观察状态与网络的目标状态之间的一组差异,并且将这些差异一次全部或者同时全部应用于相关设备(例如,因此术语为“一次性”)。这种用于更新网络的传统的一次性方法需要同时成功地完成对网络中的各个设备的更新。然而,在大多数情况下,设备更新不会同时发生,这至少是因为,由于不同的硬件能力、设备资源上的不同的控制负载、通信延迟(例如,远程过程调用(RPC)延迟)等,设备实现更新要花费不同的时间量。因此,传统的“一次性”方法是不可靠或不安全的,这至少是因为对第二设备的更新可能取决于对第一设备成功地完成的更新,以便确保网络可靠性和安全性。如果对第一设备的更新的实现比对第二设备的更新需要更长时间(即,更新不同时发生),或者如果对第一设备的更新被延迟或失败,则网络可以在对第二设备的成功更新被完成的时间与对第一设备的更新被最终完成的稍后时间之间的“瞬时”时间段(例如,五秒的瞬时时间段、十秒的瞬时时间段、三十秒瞬时时间段、一分钟瞬时时间段等)内操作。瞬时时间段通常导致网络中断或故障,例如路由回路、黑洞和/或拥塞。因此,尽管传统的“一次性”方法试图有效地或一次性地实现网络更新,但是不能确保可靠和安全地实现网络更新。
用于更新网络的第二传统方法提高了可靠性和安全性,但是效率低。该第二传统方法是用于更新网络的多步骤方法,其中网络更新被划分为不同的步骤,并且步骤被静态地排序作为在对网络的更新开始之前预先确定的固定调度的一部分。例如,在生成固定调度之后,第二传统方法可以实现网络更新的第一预定步骤(例如,更新第一设备),等待第一预定步骤被成功完成的指示,然后实现网络更新的第二预定步骤(例如,更新第二设备),等待第二预定步骤被成功完成的指示,然后实现网络更新的第三预定步骤,以此类推,直到整个网络更新完成。虽然第二传统方法可以提高网络更新的可靠性和安全性,但是它是低效和慢的,因为固定调度不能适应运行时间条件。例如,如果出现问题并且第一预定步骤的完成不成功或被延迟,则固定调度中的随后的预定步骤要么不能实现,要么必须等待实现。在一些情况下,延迟或失败的第一预定步骤可以称为掉队(straggler)步骤。或者,与延迟的或失败的第一预定步骤相关联的设备可以称为掉队设备。在很多情况下,在掉队步骤和/或掉队设备赶上(例如,更新最终成功地完成)时,固定调度中的随后的预定步骤可能是不相关的(例如,旧的更新、无意义的等)。因此,尽管是可靠和安全的,但是对步骤静态地排序作为固定调度的一部分的传统方法也是低效的,这至少是因为它不允许固定调度被修改,例如以解决掉队步骤和/或掉队器件。
本文中所描述的网络更新服务被配置为实现动态调度方法以实现网络更新。网络更新服务生成并且使用更新依赖图来动态地调度包括网络更新的各种更新操作。换句话说,网络更新服务被配置为在网络更新基于所接收到的与已经调度的更新操作相关联的反馈已经开始选择和调度下一更新操作之后(例如,网络更新运行时间条件)访问更新依赖图。
不同于与以上讨论的“一次性”传统方法,本文中讨论的更新操作并不都是同时被发起的。此外,不同于以上“静态顺序”传统方法,本文中讨论的更新操作不是在网络更新开始之前预先确定的固定调度的一部分。相反,更新依赖图可以包括更新操作的各种排序,并且网络更新服务可以在考虑所接收到的反馈之后基于一个或多个排序动态地调度更新操作。例如,如果沿着第一排序出现问题或路障,并且网络更新服务例如在运行时间确定作为第一排序的一部分的更新操作被延迟或已经失败,则网络更新服务可以使用更新依赖图来标识第二排序,并且甚至鉴于延迟的或失败的更新操作来动态地寻找用于继续网络更新的可接受的方式。因此,能够根据在第二排序中定义的依赖性来调度依赖于延迟的或失败的更新操作并且因此无法经由第一排序被调度的一个或多个要调度的更新操作。
网络更新服务基于从定义的约束产生的依赖性来生成更新依赖图。在各种实施例中,更新依赖图的节点对应于更新操作,并且节点之间的边表示更新操作之间的依赖性(例如,第一更新操作将在第二更新操作之前实现)。在各种实施例中,更新依赖图的节点对应于网络元件(例如,设备或通信路径)的资源可用性,诸如链路带宽可用性和/或存储器可用性。
在各种实现中,网络更新服务可以基于网络一致性属性来定义约束。为了一致,网络更新必须符合或不违反被建立用于保护网络免受中断或故障的属性。第一示例属性可以是指示在网络中通信的分组不应该循环的禁止循环属性。第二示例属性可以是指示经由两个设备之间的链路通信的业务不能超过预定和/或最大容量的禁止拥塞属性。因此,可以基于这些示例属性来定义约束,并且约束可以对可以实现更新操作的顺序施加依赖性。比如,可以定义约束以确保将新的流带到链路的更新操作必须在从链路中去除现有流的更新操作之后发生(例如,如果链路由于资源容量限制而不能同时支持两个流)。因此,网络更新服务被配置为使用更新依赖图来动态地调度下一更新操作,同时遵守基于定义的约束建立的依赖性。
图1图示示例图100,其包括被配置为动态地调度网络104上的网络更新的各个更新操作的网络更新服务102。网络104可以包括各种设备106和通信路径108。通信路径108可以与连接两个设备的直接链路相关联,或者可以包括连接两个设备的间接链路,在间接链路中业务经由位于两个设备之间的至少一个中间设备来通信。在一个实现中,通信路径108可以包括通过或针对两个或更多个设备106建立的通信隧道。
在各种实施例中,正在被管理的网络104可以是大型生产网络,诸如数据中心网络(DCN)、因特网服务提供商(ISP)网络、企业网络(例如,云服务)或任何可以在实体(例如,操作和维护执行网络更新服务102的设备的实体)的控制下的其他管理域。设备106可以是物理网络设备,诸如交换设备(交换机)、路由设备(路由器)、网关设备(网关)、桥接设备(网桥)、集线器设备(网络集线器)、防火墙设备、网络地址转换器设备(NAT)、复用设备(复用器)、无线接入点设备(WAP)、代理服务器设备、文件服务器设备、数据库服务器设备、存储设备等。设备106还可以是能够连接到网络104的端用户设备。比如,端用户设备可以包括移动或便携式设备,诸如智能电话、蜂窝电话、个人数字助理(PDA)、电子书设备、膝上型计算设备、平板计算设备、个人媒体播放器设备等。或者,端用户设备可以包括固定设备,诸如台式计算设备、游戏控制台设备、数字视频记录设备(DVR)、机顶盒设备等。因此,网络104可以包括数十个,数百个或数千个彼此连接以包括域或管理网络的设备。
当更新网络104时,网络更新服务102被配置为确定使网络的状态从观察网络状态112过渡到目标网络状态114的变化110。如本文中使用的,网络104的“状态”取决于网络104内的各个设备106和/或各个通信路径108的状态。在各种实现中,单独的设备106或单独的通信路径108可以具有一个或多个状态变量,并且在任何给定时间,状态变量可以是各个值中的任何一个。在各种实施例中,状态变量被定义为值(例如,可以从观察值变为期望与观察值不同的目标值的可控值)可以被读取和/或写入的设备106或通信路径108的分量。因此,变化110可以与将状态变量从第一值变为第二值相关联。对状态变量的变化可以是直接变化,使得第一值变为第二值。或者,对状态变量的变化可以是间接变化,使得第一值经由既不是第一值也不是第二值的中间值变为第二值。
例如,设备106可以包括指示设备106是通电还是断电的电源状态变量。因此,功率状态变量的第一值可以指示设备106被通电,并且功率状态变量的第二值可以指示设备106被断电。这些不同的值可以从设备106读取(例如,观察到)和/或被写入设备106。在另一示例中,设备106可以包括路由状态变量,其指示各个通信路径中的一个通信路径,设备106针对该通信路径要用于传输数据(例如,入口交换设备)。因此,路由状态变量的第一值可以指示设备106要使用第一通信路径向网络中的另一设备传输数据(例如,业务流),并且路由状态变量的第二值可以指示设备106要使用不同于第一通信路径的第二通信路径向网络中的其他设备传输数据。
在各种实施例中,目标网络状态114可以基于由各种应用116(1)...116(N)请求和/或建议的状态变量值变化来生成。应用(例如,116(1)...116(N)中的一个)可以负责管理和控制网络104的特定的方面或功能,使得网络104有效且可靠地操作。在各种实施例中,由单独的应用(例如,116(1)...116(N)中的一个)管理和控制的网络104的特定的方面或功能可以与网络104的单个设备106和/或单个通信路径108或者网络的设备106的子集或通信路径108的子集(例如,特定类型的设备,诸如交换设备)相关联。
应用(例如,116(1)...116(N)中的一个)可以被分类为路由管理应用,其管理用于网络104的设备106(例如,交换设备)和/或通信路径108的交换机转发规则。例如,流量工程应用可以是被配置为沿着不同的通信路径108(例如,通过/针对两个或更多个设备106建立的通信隧道)引导业务以改善网络利用率和/或确保性能要求被满足的路由管理应用。在另一示例中,服务器负载平衡应用可以是跨设备(例如,处理数据请求的一组服务器)划分(例如,平等地)通信负载(例如,业务)的路由管理应用。
应用(例如,116(1)...116(N)中的一个)可以被分类为管理网络104的设备106和/或通信路径108的网络基础设施的基础设施管理应用。例如,电力管理应用可以是被配置为在任何给定时间打开或关闭交换设备以便缓解故障或节省能量的基础设施管理应用。在另一示例中,交换机升级应用可以是负责在交换设备上安装新的操作系统(即,固件)的基础设施管理应用。
以上描述的应用在本文中被提供为示例应用,并且预期被开发用于控制网络的一方面或功能的其他应用也可以得益于本文档中描述的技术和/或系统。
在各种实施例中,网络更新服务102可以通过计算观察网络状态112与目标网络状态114之间的差异来确定变化110。所计算的差异可以是一个或多个观察状态变量值与要写入网络104的一个或多个对应的期望状态变量值之间的差异。换句话说,假设观察网络状态112和目标网络状态114作为输入,网络更新服务102可以基于变化110来计算更新操作的集合。因此,网络更新服务102被配置为基于一个或多个定义的约束120生成更新依赖图118。比如,网络更新服务102被配置为基于约束来确定更新操作之间的依赖性,并且生成将更新操作彼此链接的一个或多个可接受且可靠的排序。
约束120可以由操作网络更新服务102的实体、被网络104服务的实体和/或应用116(1)...116(N)之一来定义。如以上讨论的,约束120可以鉴于被配置为确保网络104可靠、安全和有效地操作的属性和/或策略来定义。例如,一致性相关属性可以包括但不限于以下中的一项或多项:(i)禁止黑洞属性,其确保通信单元(例如,数据分组)在设备(例如,交换设备)处不被丢弃;(ii)禁止循环属性,其确保通信单元在网络内不被循环;(iii)分组相干属性,其确保通信单元不基于旧路由指令(例如,作为观察网络状态的一部分)和新路由指令(例如,作为目标网络状态的一部分)的混合在网络中传输;(iv)禁止拥塞属性,其确保网络内的通信单元的路由不引起拥塞(例如,由于超过带宽限制,因此链路不被拥塞);以及(v)存储器过载,其确保设备处的可用存储器资源足以满足与目标状态相关联的存储器需求。
更新依赖图118由多个节点和边组成。在各种实施例中,更新依赖图118的节点可以是操作类型节点。操作节点表示要被调度的更新操作,该更新操作与要被写入网络104的一个或多个个变化(例如,由应用提出的新的值)相关联。例如,操作节点可以与在交换设备处对业务路由状态变量的变化相关联(例如,将业务流从第一通信路径移动到第二通信路径的业务转发规则的添加、删除或修改)。第二类型的节点包括可以与一个或多个设备处的资源可用性相关联的资源节点。例如,资源节点可以基于当前存储器负载来指示可用存储器的量或者基于当前负载来指示可用通信带宽的量。
更新依赖图118中的两个操作节点之间的边表示要实现的两个更新操作之间的操作依赖性,从而信号传输应当在第二更新操作(例如,取决于父更新操作的成功完成的子节点的子更新操作)之前实现第一更新操作(例如,父节点的父更新操作)。更新依赖图118中的资源节点与操作节点之间的边表示资源依赖性。比如,在操作节点开始并且结束于或通向资源节点的边可以具有相关联的标签,该相关联的标签指示将在成功地完成由边在此开始的操作节点表示的更新操作之后将被释放或变得可用的资源的量(例如,可用资源)。在资源节点处开始并且结束于或通向操作节点的边可以具有相关联的标签,该相关联的标签指示在可以实现由边在此结束的操作节点表示的更新操作之前所需的可用资源(例如,消费所需的资源)的量。在各种实施例中,如果没有定义资源约束(例如,基于禁止拥塞属性定义的约束),则更新依赖图118可以仅包括操作节点。在其他实施例中,更新依赖图118可以包括操作节点和资源节点。
一旦生成,更新依赖图118可以包括可以被遵循以实现网络更新的多个可接受和可靠的排序。换句话说,可以向网络更新服务102提供用于导航更新依赖图118的各种方式。因此,网络更新服务102能够动态地(例如,基于运行时间条件)选择要调度的下一更新操作。
例如,如果更新操作的成功完成被延迟或停止,并且沿着第一排序的随后的更新操作取决于被延迟或停滞的更新操作,则网络更新服务102可以访问更新依赖图118以标识第二排序(例如,图中的不同的路由或解决方案),其不包括被延迟或停滞的更新操作,但仍然通向随后的更新操作。因此,网络更新服务102使用更新依赖图118动态地寻找绕过被延迟或停滞的更新操作的路径(例如,替换排序),使得随后的更新操作仍然可以被调度。因此,本文中所描述的网络更新服务102不使用固定调度来实现网络更新。相反,只要网络更新服务102基于使网络的状态从观察网络状态112过渡到目标网络状态114的所计算的变化110来维护更新依赖图118,网络更新服务102就可以更高效地实现网络更新,同时还确保网络更新是安全可靠的。
网络更新服务102被配置为使用更新依赖图118来基于从网络104接收的反馈122以动态地调度更新操作。反馈122可以是由网络104的元件(例如,设备106)提供的显式反馈,其可以包括以下指示:(i)更新操作已经被成功地完成(例如,按时、在预定时间量内),(ii)更新操作尚未被完成但仍在实现过程中(例如,更新被延迟,将不会在预定或预期的时间量内完成),或者(iii)更新操作已经失败并且不能被成功地完成。反馈122还可以或者备选地是隐式反馈,使得网络更新服务102监视各个更新操作的进展并且观察更新操作已经成功地完成还是未成功地完成或者更新操作是否已经被延迟(例如,不是在预期或预定的时间量内完成)。
基于反馈122,网络更新服务102可以使用更新依赖图118来选择下一更新操作,并且动态地调度124下一更新操作,使得网络更新可以继续。因此,网络更新服务102实现更加有效和可靠的方法来更新网络或网络的一部分,这至少是因为其确定可以实现网络更新的多个可靠排序(例如,遵循依赖性)并且其鉴于从网络接收的反馈122(例如,交换设备当前在实现已经调度的更新操作时被延迟)使用排序动态地选择要实现的下一操作更新。
图2是示出实现上述网络更新服务102的示例环境200的图。在各种实施例中,网络更新服务102可以经由一个或多个设备202来实现。设备202可以包括固定设备,诸如台式计算设备、服务器计算设备等。设备202可以备选地包括移动或便携式设备,诸如膝上型计算设备、平板计算设备、智能电话设备、蜂窝电话设备、个人数字助理(PDA)设备、电子书设备等。
设备202包括被配置为实现本文中描述的技术的网络更新服务102。设备202可以个别地和单独地包括一个或多个处理器204和存储器206。处理器204可以是单个处理单元或多个单元,每个单元可以包括多个不同的处理单元。处理器204可以包括微处理器、微型计算机、微控制器、数字信号处理器、中央处理单元(CPU)、图形处理单元(GPU)、安全处理器等。备选地或附加地,本文中描述的一些或所有技术可以至少部分由一个或多个硬件逻辑部件来执行。例如但不限于,可以使用的说明性类型的硬件逻辑部件包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、状态机、复杂可编程逻辑器件(CPLD)、其他逻辑电路、片上系统(SoC)和/或基于指令执行操作的任何其它设备。在其它能力中,处理器204可以被配置为取回和执行存储在存储器206中的计算机可读指令。
存储器206可以包括计算机可读介质中的一个或其组合。如本文中使用的,“计算机可读介质”包括计算机存储介质和通信介质。
计算机存储介质包括使用用于存储信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于相变存储器(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程ROM(EEPROM)、闪存或其他存储器技术、光盘ROM(CD-ROM)、数字通用盘(DVD)或其他光学存储装置、磁带盒、磁带、磁盘存储装置或其它磁性存储设备或者可以用于存储信息供设备访问的任何其他介质。
相比较而言,通信介质包括计算机可读指令、数据结构、程序模块或调制数据信号(例如,载波)中的其它数据。如本文中定义的,计算机存储介质不包括通信介质。
存储器206可以包括操作系统,该操作系统被配置为为了其他模块、部件和设备的利益而管理在设备内并且耦合到该设备的硬件和服务。在一些情况下,网络更新服务102的至少一部分可以在操作系统内或由操作系统实现。
网络更新服务102包括图形生成模块208和调度模块210中的一个或多个。如本文中使用的,术语“模块”意图出于讨论目的而表示软件的示例划分,而非意图表示任何类型的要求或所需的方法、方式或组织。因此,虽然讨论了各种“模块”,但是它们的功能和/或类似功能可以不同地布置(例如,组合成更少数量的模块,分成更大数量的模块等)。此外,虽然在本文中将某些功能和模块描述为由跨一个或多个设备的一个或多个处理器上可执行的软件和/或固件来实现,但在其他实施例中,任何或所有模块可以全部或部分通过硬件(例如,ASIC、专用处理单元等)来实现以执行所描述的功能。在其他实例中,功能和/或模块被实现为设备驱动器、固件等的一部分。
图形生成模块208被配置为确定和/或接收将网络104的状态从观察网络状态112移动到目标网络状态114的变化110。例如,变化110可以与计算的差异相关联,并且计算的差异可以包括将状态变量值从观察值变为期望值的指令或命令(例如,设备特定的指令或命令)。如以上讨论的,变化可以是直接变化或间接变化,并且具体的更新操作可以与更新依赖图118中的操作节点相关联。因此,图形生成模块108基于变化110生成和维护更新依赖图118并且将更新依赖图118存储在更新依赖图存储装置212中。此外,图形生成模块208基于存储在约束存储装置214中的定义的约束120生成更新依赖图118。如以上讨论的,约束120可以由以下中的一项或多项来定义:操作网络更新服务102的实体、正由网络104服务的实体(例如,如果不同于操作网络更新服务102的实体)、或者应用116(1)...116(N)中的一个应用的开发者。
调度模块210被配置为从网络接收反馈122,并且例如基于运行时间条件经由状态依赖图118动态地调度214一个或多个随后的或下一更新操作。在各种实施例中,调度模块210可以使用各种调度算法中的任何一种调度算法来动态地调度更新操作。调度算法的使用可以取决于被分配给网络更新服务102用于实现网络更新的资源。在一个实现中,调度模块210可以实现关键路径调度算法以实现网络更新。根据关键路径调度算法,调度模块210被配置为计算路径长度(例如,排序的长度)并且标识最长关键路径。调度模块210然后被配置为对与作为最长关键路径的一部分的节点相关联的更新操作的调度进行优先化,使得实现网络更新的总时间量最小化。也就是说,调度模块210可以通过动态地调度与最长关键路径上的节点相关联的更新操作来继续工作以缩短最长关键路径。本文档中稍后提供示例关键路径调度算法。此外,还可以使用其他调度算法来使用更新依赖图以动态地调度网络更新。
在与更新依赖图中的操作节点相关联的更新操作成功完成时,调度模块210可以被配置为从更新依赖图去除操作节点,这至少是因为它不再与要实现的更新操作相关联。
在各种实施例中,设备202包括一个或多个通信单元216。通信单元216可以被配置为促进到一个或多个网络(例如,网络104)、由各种服务或内容提供者操作的应用116(1)...116(N)、和/或其他设备的有线和/或无线连接。因此,通信单元216可以实现各种通信或网络连接协议中的一个或多个。
图3是图示要进行以使网络的至少部分从观察网络状态302过渡到目标网络状态304的变化的图300。图300示出了设备306(1)...306(5)(例如,在该示例中包括网络的一部分的一组网络交换设备)之间的数据业务流。在该示例中,资源约束被定义为将两个设备之间的每个直接链路的通信或业务负载限制到最大或阈值容量(例如,在该示例中为十个单元)。用于通信或业务流的示例单元可以是Gbps(千兆比特每秒)。因此,图形生成模块208被配置为生成更新依赖图,使得可以按照各种顺序之一进行改变而没有违反定义的约束。在图3的示例中,已经建立了通信隧道,因此,可以通过更新入口交换设备(例如,入口交换设备的状态变量)来实现将业务流从第一通信路径移动到第二通信路径。
在观察网络状态302中,第一业务流308(1)示出了表示从设备306(1)经由设备306(4)到设备306(5)的观察到的业务流的五个单元。第二业务流308(2)示出了表示从设备306(2)经由设备306(1)到设备306(5)的观察到的流的五个单元。第三业务流308(3)示出了表示从设备306(3)经由设备306(2)到设备306(5)的观察到的流的十个单元(例如,最大允许容量)。第四交通流308(4)示出了表示从设备306(4)经由设备306(1)到设备306(5)的观察到的流的五个单元。
在目标网络状态304中,观察网络状态302的第一业务流308(1)已经被移动到目标第一业务流310(1),该目标第一业务流310(1)示出从设备306(1)直接流向设备306(5)的五个单元。观察网络状态302的第二业务流308(2)已经被移动到目标第二业务流310(2),目标第二业务流310(2)示出了从设备306(2)直接流向设备306(5)的五个单元。观察网络状态302的第三业务流308(3)已经被移动到目标第三业务流310(3),目标第三业务流310(3)示出了从设备306(3)直接流向设备306(5)的十个单元。以及观察网络状态302的第四业务流308(4)已经被移动到目标第四业务流310(4),目标第四业务流310(4)示出了从设备306(4)直接流向设备306(5)的五个单元。
由于图3中的各种交换设备306(1)...306(5)有可能在不同时间应用业务流更新,所以同时向各个交换设备306(1)...306(5)同时发出所有更新操作/命令的一次性方法很可能导致至少一些直接链路(例如,超过十个单元容量)上的拥塞。例如,如果在设备306(2)成功地完成将流308(2)移动到目标流310(2)的更新操作之前并且在设备306(4)成功地完成将流308(4)移动到目标流310(4)的更新操作之前,设备306(1)成功地完成了将流308(1)移动到目标流310(1)的更新操作,则设备306(1)和306(5)之间的直接链路上的负载或带宽需求将是十五个单元,并且将超过由资源约束定义的十个单元最大容量。这在网络内会导致拥塞。
为了确保在实现图3中的变化时不超过链路的最大容量(例如,图3的示例中的十个单元),图形生成模块208被配置为生成图4的示例更新依赖图400。
图4的更新依赖图400中的圆形节点表示操作节点。图4的更新依赖图400中的矩形节点表示指示可用资源(例如,可用的链路带宽)的资源节点。在操作节点处开始并且结束于或通向资源节点的边上的标签指示在与边在此开始的操作节点相关联的更新操作成功完成之后被解放或释放的资源量。在资源节点处开始并且结束于或通向操作节点的边上的标签指示执行与边在此结束的操作节点相关联的更新操作所需的可用资源(例如,由更新操作消耗的资源)的量。
因此,在图3的观察网络状态302中,设备306(2)与设备306(5)之间的链路具有“零”可用带宽,如经由示例更新依赖图400的资源节点402所指示的。将观察到的业务流308(3)移动到目标业务流310(3)(如经由操作节点404指示的)向设备306(2)与设备306(5)之间的链路释放10个单元,并且从操作节点404到资源节点402的边被标记为指示释放的资源(例如,十个单元)。此外,操作节点406指示在将观察到的业务流308(3)移动到目标业务流310(3)之后,将观察到的业务流308(2)移动到目标流310(2)。从资源节点402到操作节点406的边被标记为指示需要五个单元来实现操作节点406的更新操作(例如,需要在设备306(2)与设备306(5)之间的五个可用单元)。
继续,资源节点408指示设备306(1)与设备306(5)之间的链路在观察状态下具有“零”可用带宽。将观察到的业务流308(2)移动到目标业务流310(2)(如经由操作节点406指示的)向设备306(1)与设备306(5)之间的链路释放5个单元,并且从操作节点406到资源节点408的边被标记为指示所释放的资源。此外,将观察到的业务流308(4)移动到目标业务流310(4)(如经由操作节点410所指示的)还向设备306(1)与设备306(5)之间的链路释放5个单元,并且从操作节点410到资源节点408的边被标记为指示所释放的资源。
此外,操作节点412指示,在与操作节点410或406之一相关联的更新操作成功完成之后,要将观察到的业务流308(1)移动到目标流310(1)。从资源节点408到操作节点412的边被标记为指示需要5个单元来实现操作节点412的操作(例如,需要在设备306(1)与设备306(5)之间的5个可用单元)。
给定图4中的更新依赖图400,调度模块210可以动态地调度更新操作,同时还确保避免链路拥塞。比如,调度模块210可以确定,将观察到的业务流308(3)移动到目标业务流310(3)以及将观察到的业务流308(4)移动到目标业务流310(4)不依赖于其他更新操作。因此,可以立即和/或并行地调度由操作节点404和410表示的更新操作,而不会违反网络拥塞属性。在与操作节点404相关联的操作完成之后,调度模块210可以调度与操作节点406相关联的操作。最后,调度模块210可以在例如基于反馈确定与节点406相关联的更新操作或与节点410相关联的更新操作中的任一个更新操作成功完成之后动态地调度与操作节点412相关联的更新操作。
如参考图3和图4所描述的示例中所见,调度模块210可以使用更新依赖图来基于从网络接收的反馈并且以各种顺序中的任何一个来动态地调度更新操作。例如,调度模块210可以确定与操作节点410相关联的更新操作是被停滞或延迟的掉队更新操作,因此调度模块210意识到与操作节点412相关联的更新操作可以替选地在与操作节点406相关联的更新操作成功完成之后来实现(例如,因为足够的资源被释放以满足所需的资源)。因此,可以在更新操作(例如,父操作节点404和406)的第一排序被成功地完成之后或者在更新操作(例如,父操作节点410)的第二排序被成功地完成之后来实现操作节点412(例如,子节点)。
在以上讨论的“静态排序”传统方法中,操作节点412可能已经是固定调度中的随后步骤,其必须等待直到与操作节点410相关联的更新操作被完成。例如,在网络更新开始之后不能改变的固定调度可以要求:第一,将观察流308(3)移动到目标流310(3),第二,将观察流308(2)移动到目标流310(2),第三,将观察流308(4)移动到目标流310(4),并且然后仅观察流308(1)可以移动到目标流310(1)。
因此,更新依赖图提供了调度灵活性,使得调度模块210仍然可以将观察流308(1)移动到目标流310(1),即使存在与操作节点406或410之一相关联的故障或延迟,在一些情况下,为了提高网络更新效率,调度模块210可以响应于确定操作节点406和410之一比预期更快完成来动态地调度操作节点412。
本文中的示例更新依赖图400仅提供作为示例,并且应当理解,基于(i)为了将网络的状态从观察状态移动到目标状态做出的改变的数量和/或(ii)定义的约束的数量,更新依赖图可以包括更多的节点和依赖关系。
图5、图6和图10图示被单独描述为逻辑流程图的示例过程,其表示可以用硬件、软件、固件或其组合来实现的操作序列。在软件的上下文中,操作表示在由一个或多个处理器执行时配置计算设备以执行上述操作的计算机可执行指令。通常,计算机可执行指令包括配置计算设备以执行特定功能或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。在一些实施例中,任何或所有操作可以通过硬件(例如,作为ASIC、专用处理单元等)执行所描述的功能来全部或部分地实现。在一些实例下,功能和/或模块被实现为操作系统的一部分。在其他实例中,功能和/或模块被实现为设备驱动器、固件等的一部分。
在示例过程中描述操作的顺序并不意图被解释为限制,并且可以以任何顺序和/或并行地组合任何数量的所描述的操作以实现示例过程。
图5图示确定用于使网络的状态从观察网络状态过渡到目标网络状态的变化的示例过程500。图5中的示例操作可以参考图1到图4中任一图图示的模块、组件和/或元件来描述。
在502,图形生成模块208可以确定观察网络状态。例如,观察网络状态可以包括网络(例如,网络104)的一个或多个观察状态变量值。可以随时间(例如,根据周期性观察调度)存储和/或更新观察网络状态。因此,图形生成模块208可以访问数据存储装置以确定观察网络状态,或者图形生成模块208可以例如从网络观察服务或网络观察实体接收观察网络状态。
在504,图形生成模块208可以确定目标网络状态。例如,目标网络状态可以包括或者基于对观察网络状态的一个或多个变化来生成。例如,以管理特定网络功能为任务的应用(例如,应用116(1)...116(N))可以请求或提议对一个或多个状态变量值的变化。变化可以指示希望使状态变量值从观察值过渡(例如,移动)到目标值(例如,直接或间接地)。目标网络状态可以随着时间(例如,根据周期性或连续的网络更新调度)存储和/或更新。因此,图形生成模块208可以访问数据存储装置以确定目标网络状态,或者图形生成模块208可以例如从生成目标网络状态的服务或实体接收目标网络状态。
在506,图形生成模块208可以确定用于使网络的状态从观察网络状态过渡到目标网络状态的更新操作(例如,更新操作的集合)。例如,更新操作可以与由应用116(1)...116(N)提议或请求的变化相关联。更新操作可以包括要发布到网络中的设备以将一个或多个状态变量值从观察值变为目标值的更新指令和/或命令。
在508,图形生成模块208可以接收或访问一个或多个约束。如以上讨论的,可以定义约束以确保网络的可靠性。例如,可以定义约束以确保网络状态过渡符合一个或多个一致性属性,如以上讨论的。
在510,图形生成模块208可以基于更新操作和约束生成更新依赖图。更新依赖图可以定义可以动态地调度更新操作的各种可接受的顺序。排序确保不违反定义的约束,因此网络状态转换是可靠和安全的。此外,由于可以定义各种排序,所以网络状态过渡可以更高效,因为如果第一排序停滞(例如,沿着第一排序遇到掉队设备或掉队操作),则更新依赖图提供第二排序,网络状态转换可以按照第二排序继续。
示例过程500可以作为正在进行的网络管理和维护服务的一部分被继续实现。因此,观察网络状态和/或目标网络状态可以继续改变,并且因此生成和/或维持更新依赖图以反映使网络的状态从观察网络状态过渡到目标网络状态的更新的变化。
图6图示使用更新依赖图来动态地调度包括网络更新的各个更新操作的示例过程600。图6中的示例操作可以参考图1到图5中任一图图示的模块、组件、元件和/或操作来描述。
在602,调度模块210可以确定更新依赖图内的一个或多个起始节点。起始节点与可以被首先调度以实现网络更新的更新操作相关联。在各种实施例中,起始节点可以基于关键路径调度来确定,在关键路径调度中确定通过更新依赖图的最长路径。
在604,调度模块210基于起始节点开始调度更新操作。例如,调度模块210可以根据一个或多个排序开始调度更新操作。
在606,调度模块210接收指示先前调度的更新操作(例如,与起始节点相关联的更新操作)的成功、不成功(例如,失败)或延迟完成的反馈。
在608,调度模块210可以访问更新依赖图以基于反馈来动态地调度一个或多个随后的更新操作。例如,如果反馈指示先前调度的更新操作已失败或被延迟,则调度模块210可以使用更新依赖图来选择不取决于失败或延迟的更新操作的成功完成的更新操作用于调度。先前调度的更新操作可以是更新依赖图中的第一排序的一部分,并且所选择的更新操作可以是更新依赖图中的第二排序的一部分。调度模块210继续迭代地执行操作606和608。例如,调度模块210继续迭代地执行操作606和608,直到从观察网络状态到目标网络状态的过渡完成。
下面提供的讨论描述了其中网络更新服务102与基于隧道的转发和/或加权成本多路径(WCMP)转发相关联地使网络从观察网络状态过渡到目标网络状态的实现。
出于本文中提供的讨论的目的,网络G(例如,网络104的至少一部分)可以包括一组交换设备S和一组直接链路L,其中直接链路连接两个交换设备。流f表示以业务量tf例如经由建立的隧道从入口交换设备si到出口交换设备sj通信的数据。网络可以使用路径集合Pf来携带业务(例如,也可以被称为隧道集合)。因此,f的转发状态可以被定义为Rf={rf,p|p∈Pf},其中rf,p是路径p上的f的业务负载。然后可以将网络状态NS表示为所有流的组合状态,使得NS={Rf|f∈F}。可以在入口交换设备处设置相对权重以确定流如何在多个路径或隧道之间被分割或划分。
作为说明性示例,图7示出了网络700的至少一部分,其例如被配置为通信从观察网络状态702过渡到目标网络状态704的数据单元(例如,数据分组、Gbps等)。网络700包括五个交换设备706(1)...706(5)(例如,这些交换设备在本文中也可以被称为单独的交换设备s1、s2、s3、s4、s5)。观察网络状态702具有跨过第一路径p1、708和第二路径p2、710的流(由虚线表示的流),其中业务的五个数据单元沿着第一路径p1、708和第二路径p2、710中的每个路径流动(例如,在图7中示出为“5”)。在图7的示例中,其遵循:业务tf=10,路径集合Pf={p1=s1s2s3s5,p2=s1s2s5},f的转发状态为Rf={rf,p1=5,rf,p2=5}。图7还图示网络700的目标网络状态704具有跨相同的第一路径p1、708和新的第三路径p3、712的流。目标网络状态704不包括来自观察网络状态702的旧的第二路径p2、710。
例如,网络更新服务102可以与可以在广域网(WAN)中使用的基于隧道的转发相关联地使用前述段落中的表示。例如,网络更新服务102还可以与可以在数据中心网络(DCN)中使用的WCMP转发相关联地使用前述段落中的表示。
在基于隧道的转发中,流可以通过多个路径转发。入口交换设备(例如,图7中的交换设备706(1)/s1)可以(i)例如基于数据分组报头将传入业务匹配到流,以及(ii)基于权重跨越多个路径划分传入业务。在沿着路径转发数据分组之前,入口交换设备可以用路径标识符标记数据分组。随后的交换设备(例如,沿着第一路径p1、708的交换设备706(2)/s2和706(3)/s3)可以基于路径标识符来转发数据分组,并且出口交换设备(例如,图7中的交换设备706(5)/s5)可以在数据分组到达之后去除路径标识符。因此,对于基于隧道的转发,Pf是路径(或隧道)的集合,并且路径的权重是rf,p/tf(例如,对于第一路径p1、708和第二路径p2、710中的每个路径的在图7中五除以十或者50%的权重)。
在WCMP转发中,在沿着路径的每一跳处的交换设备可以匹配分组报头并且在具有设置权重的一个或多个下一跳上划分流。最短路径和等成本多路径(ECMP)转发是示例类型的WCMP转发。对于WCMP转发,网络更新服务102可以使用如下等式(1)来计算链路l上的流的业务速率:
然后在交换机si处,可以使用如下等式(2)来确定针对下一跳sj的权重:
这里lij是从si到sj的链路,Li是从si开始的链路集合。例如,在图7的观察网络状态702中,w1;2=1,w1;4=0,w2;3=0.5,以及w2;5=0.5。
如以上讨论的,网络更新服务102可以被配置为接收当前(例如,观察)网络状态NSc,目标网络状态NSt以及与一个或多个一致性属性相关联的一个或多个约束作为输入。网络更新服务102然后可以确定(例如,计算)使网络的状态从当前网络状态NSc(例如,图7中的702)过渡到目标状态NSt(例如,图7中的704)的更新操作的集合(例如,基于变化110),并且将更新操作彼此链接以构建更新依赖图,使得在实现网络更新时不违反约束。因此,状态过渡是可靠且安全的。
对于这些示例数据转发实现,除了操作节点和资源节点之外,图形生成模块208还可以被配置为在更新依赖图中包括路径节点。路径节点可以通过对与单独路径相关联的更新操作和/或链路容量资源进行分组来进一步组织更新依赖图。路径节点可以连接到操作节点和/或资源节点。从操作节点到路径节点的边可以是操作依赖性或资源依赖性。作为调度过程的一部分,释放链路资源的路径节点可以具有相关联的“已提交”标签,其指示当网络从观察网络状态过渡到目标网络状态时正在远离路径的业务量。在业务被移走之后,提交的标签可以用于更新可用资源的量。
图8图示基于图7所示的状态过渡被生成用于基于隧道的转发的示例更新依赖图800。图形生成模块208可以基于被限定用于确保禁止网络的黑洞的约束来生成更新依赖图800。在各种实施例中,约束可以指示:(i)应当在入口交换设备将业务应用于新路径之前完全建立新的路径,以及(ii)从要在从任何下游交换设备去除路径之前被删除的路径去除所有业务。
图形生成模块208可以如下基于前面段落中规定的约束来生成更新依赖图800。对于每个流f,使用NSc和NSt,图形生成模块208可以确定要添加和/或要删除的路径,并且可以为每个添加和/或删除的路径生成路径节点。然后,图形生成模块208可以针对各个跳跃生成操作节点,并且添加(i)从操作节点到路径节点或(ii)从路径节点到操作节点的边,从而指示在交换设备处添加或删除路径。图形生成模块208可以生成改变路径权重的操作节点,使得权重对应于在入口交换设备处的NSt中规定的权重。为了确保禁止黑洞,图形生成模块208可以从每个路径节点添加边,该路径节点向改变路径权重的操作节点添加新的隧道。此外,图形生成模块208可以将来自改变路径权重的操作节点的边添加到删除旧的路径的每个路径节点。
如上面关于图7所讨论的,观察网络状态702的第一路径p1、708和第二路径p2、710上的路径权重分别为0.5和0.5。在目标网络状态704下,添加路径(例如,第三路径p3、712),并且删除路径(例如,第二路径p2、710),并且路径权重在第一路径p1、708上变为0.5并且在第三路径p3、712上变为0.5。
为了生成用于该过渡的更新依赖图800,图形生成模块208可以生成路径节点802,例如,对应于第二路径p2,710的三角形节点,其是要经由图7的状态过渡来删除的路径。图形生成模块208还可以生成路径节点804,例如,对应于第三路径p3,712的三角形节点,其是要经由图7的状态过渡来添加的路径。图形生成模块208还可以生成:与以下表1中规定的操作A相关联的操作节点806、与以下表1中规定的操作B相关联的操作节点808、与以下表1中规定的操作C相关联的操作节点810、与以下表1中规定的操作D相关联的操作节点812、与以下表1中规定的操作E相关联的操作节点814、与以下表1中规定的操作F相关联的操作节点816、以及与以下表1中规定的操作G相关联的操作节点818。
表1
索引 操作
A 在s1添加p3
B 在s4添加p3
C 在s5添加p3
D 改变s1处的权重
E 删除s1处的p2
F 删除s2处的p2
G 删除s5处的p2
如表1所示,图形生成模块208生成更新依赖图800,使得在与操作节点806、808和810相关联的操作A、B和C成功完成之后完全建立新的路径p3(例如,路径节点804)。更新依赖图800因此指示在s1(例如,交换设备706(1))处的路径权重可以被切换(例如,经由对应于节点812的操作D),使得在删除旧的路径p2之前去除业务(例如,经由分别与操作节点814、816和818相关联的操作E、F和G)。如在更新依赖图800中所示,图形生成模块208通过添加以下各项来定义依赖性:(i)来自向相应路径节点804添加路径的操作节点806、808和810的边,以及(ii)去往从相应路径节点802删除路径的操作节点814、816和818的边。图形生成模块208还通过将来自路径节点804的边添加到权重改变操作节点812并且将来自权重更改操作节点812的边添加到路径节点802来定义依赖性。
除了上面关于基于隧道的转发所讨论的约束之外,还可以定义资源约束(例如,最大链路容量、交换设备的最大存储容量等)。在各种实施例中,资源约束可以引起图8中的更新依赖图800具有资源节点(例如,矩形节点)。图8中的资源节点被标记为指示当前可用资源量。
例如,资源节点820指示在图7的观察网络状态702下的s1和s4之间的链路具有十个可用(例如,空闲)单元。类似地,资源节点822指示在图7的观察网络状态702下的s4和s5之间的链路具有十个可用(例如,空闲)单元。从资源节点820到路径节点804的边被标记为指示需要五个单元来添加第三路径p3 712。从资源节点822到路径节点804的边也被标记为指示需要五个单元来添加第三路径p3 712。
此外,从路径节点802到资源节点824和资源节点826的边被标记为在删除路径p2时指示五个单元被释放给(i)在s1与s2之间的链路(其在观察网络状态下具有零可用性,如经由资源节点824指示的)以及(ii)s2与s5之间的链路(其在观察网络状态下有五个单元可用,如经由资源节点826指示的)。如以上讨论的,指示可以被称为指示移动远离路径的业务量的提交标签。
图形生成模块208还在从路径节点804到操作节点812的边上添加标签(例如,在s1处改变路径权重的操作D),以指示经由路径节点804添加五个单元的业务。此外,从操作节点812到路径节点802的边上的标签指示经由路径节点802去除五个单元的业务。
对于与设备(例如,交换设备)的存储器相关联的资源节点,如果相关联的更新操作在设备处消耗存储器,则图形生成模块208可以将来自资源节点的边添加到操作节点,并且图形生成模块208用指示由更新操作消耗的存储器量的权重来标记边。相反,如果相关联的更新操作在设备处释放存储器,则图形生成模块208可以将边从操作节点添加到资源节点,并且图形生成模块208利用指示所释放的存储器量的权重来标记边。
在WCMP转发中,图形生成模块208可以基于从NSc到NSt的过渡来确定要更新的每个流的权重改变操作。图形生成模块208基于与分组一致性网络一致性属性相关联的约束来生成这些权重改变操作之间的依赖边。
示例算法1可以由图形生成模块208使用以生成示例更新依赖图以确保分组一致性(例如,在WCMP网络中)。在示例算法1中,旧版本号表示可以作为NSc的部分的旧路由规则,并且新版本号表示可以作为NSt的部分的新路由规则。
算法1
-v0:旧版本号
-v1:新版本号
使用示例算法1,入口交换设备被配置为用版本号标记每个数据分组,并且下游交换设备基于版本号处理数据分组。这确保了每个数据分组根据旧的路由规则或新的路由规则被路由(即,数据分组不是基于规则的混合来被路由)。示例算法1产生三种类型的操作:第一类型,其中入口交换设备标记具有新版本号的数据分组并且使用新的权重(示例算法1的行3);第二类型,其中下游交换设备具有用于处理具有新版本号和新权重的数据分组的规则(示例算法1的行6);以及第三类型,其中下游交换设备删除旧版本号的规则(示例算法1的行7)。因此,如果以上规定的第一类型的操作在以上规定的第二类型的操作(示例算法1的行8)之后发生,并且如果以上规定的第三类型的操作在第一类型的操作(示例算法1的行9)之后发生,则确保分组相干性。示例算法1的行5是示例性优化,其指定在旧的路由规则和新的路由规则两者中的流仅具有一个下一跳的交换设备处可能不需要变化。
更新依赖图在被生成和/或更新以反映与变化110相关联的更新操作之后,调度模块210使用更新依赖图来实现网络更新(例如,发出用于各种设备执行更新操作的更新指令和/或命令)。更新依赖图可以提供多个不同的可接受顺序,这些顺序用于实现网络更新,使得不违反约束,并且不同的顺序可以与不同的完成时间相关联(例如,按照排序完成更新操作的集合所花费的时间量)。因此,在各种实施例中,调度模块210被配置为标识更新依赖图中的可能将花费最长时间量来完成的排序,并且发起对所标识的排序的调度以最小化该最长时间量。这可以被称为关键路径调度。
为了实现关键路径调度,调度模块210可以使用本文中提供的示例算法2:
算法2
表2中如下规定示例算法2中的符号和/或变量:
表2
符号 描述
Oi 操作节点i
Rj 资源节点j
Rj.free Rj的自由容量
Pk 路径节点k
Pk.committed 移动远离路径k的业务
lij 从节点i到节点j的边权重
由于更新依赖图中的资源节点和/或路径节点可以用于表达约束,因此在计算关键路径时,调度模块210向资源节点和/或路径节点分配权重w=0。相反,调度模块210向操作节点分配权重w=1,并且如下在等式(3)所示的更新依赖图中为每个节点i计算关键路径长度CPLi
在各种实施例中,调度模块210可以实现更新依赖图中的节点的拓扑排序,并且然后在节点上进行迭代以使用等式(3)以反向拓扑顺序计算CPLi。这可以以线性时间有效地实现。
因此,可以基于示例算法2来实现更新操作的调度。例如,每当调度模块210开始调度时,调度模块210可以首先通过去除更新依赖图中可以与不再作为瓶颈的资源相关联的完成的更新操作和/或边来更新更新依赖图(示例算法2中的行2)。然后,调度模块210计算各个节点的CPL(示例算法2中的行3),并且按照CPL的降序对节点进行排序(示例算法2中的行4)。如果操作节点的操作依赖性和/或资源依赖性被满足(示例算法2中的行6和7),则调度模块210随后在操作节点上迭代并且调度操作节点。最后,调度模块210可以在开始下一循环之前等待一段时间或者等待调度更新操作完成(示例算法2中的行8)。
在各种实施例中,调度模块210对作为有向无环图(DAG)的更新依赖图执行关键路径调度,使得其不具有循环依赖性。本文中提供的示例算法3和示例算法4示出了用于调度用于以上讨论的基于隧道的转发的具体实现的更新操作的伪代码。
算法3——CanScheduleOperation(Oi)
示例算法3确定更新操作Oi是否准备好被调度,并且还相应地更新资源节点和/或路径节点的资源级别。如果Oi是路径(例如,隧道)添加操作,则调度模块210可以在Oi不具有父节点(示例算法3中的行2和3)或者其父资源节点指示足够可用(例如,空闲)资源(示例算法3中的行4到8)的情况下调度Oi。如果Oi是路径删除操作,则调度模块210可以在Oi没有父节点s(示例算法3中的行11和行12)的情况下调度Oi。在各种实施例中,路径删除操作不具有作为父节点的资源节点,因为它们释放资源(例如,存储器资源、链路资源等)。
如果Oi是权重改变操作,则调度模块210在业务增加的路径上收集空闲容量并且将业务移动到它们(示例算法3中的行14到34)。调度模块210然后在每个父路径节点进行迭代并且获得路径的可用资源(示例算法3中的行16到27)。这涉及能够被移动到路径的业务量。然后,调度模块210将路径总计为调度模块210可以针对该流移动的总业务量(示例算法3中的行26)。最后,调度模块210对子路径节点进行迭代(示例算法3中的行30到33),并且减少由Pj表示的路径上的“Pj.committed”业务(示例算法3中的行31)。
算法4——UpdateGraph(G)
示例算法4基于在更新网络的最后一轮中完成的更新操作来更新调度之前的更新依赖图。比如,调度模块210接收完成的更新操作并且更新更新依赖图中的相关节点(示例算法4中的行1到22)。如果操作节点添加路径,则调度模块210删除操作节点及其边(示例算法4中的行2和行3)。如果操作节点删除路径,则规则空间被释放,并且调度模块210更新资源节点(示例算法4中的行5和6),并且删除操作节点(示例算法4中的行7)。如果操作节点改变权重,则调度模块210对于每个子路径节点,向链路释放资源(示例算法4中的行11和12),并且如果资源被释放则删除边(示例算法4中的行13和14)。然后,调度模块210将正在移动离开该路径Pj.committed的业务量重置为零(示例算法4中的行15)。一旦调度模块210将业务从该路径移开,则调度模块210删除路径节点(示例算法4中的行16和17)。类似地,调度模块210检查父路径节点(示例算法4中的行18到20)。如果调度模块210已将所有业务移动到路径中,则调度模块210删除路径节点(示例算法4中的行19和行20)。如果父路径节点被去除,则该流的权重改变已经完成,并且调度模块210将其从更新依赖图中去除(示例算法4中的行22)。在利用完成的更新操作更新更新依赖图之后,调度模块210检查资源节点(示例算法4中的行23到26)并且删除来自未被作为瓶颈的资源(示例算法4中的行24到26)的边。
在各种实施例中,更新依赖图可以包括循环依赖。例如,由于定义的资源约束,一组节点(例如,具有两个或更多个操作节点的组)之间的依赖性可能创建圆,因此关键路径可能变为无限。此外,循环依赖性可能导致调度死锁,调度死锁停止网络更新的进展。
图9图示其中在更新依赖图中可能发生循环依赖性的示例图900。也就是说,第一操作节点902在实现时可以向与第一资源节点904相关联的资源释放资源,但是可能要求与第二资源节点906相关联的资源在实现之前具有足够的可用资源。然而,与第二操作节点908相关联的更新操作可以要求与第一资源节点904相关联的资源在被实现之前具有足够的可用资源,并且上述资源可能不具有足够的资源可用性,直到与更新操作节点902相关联的更新操作被完成。此外,与第二资源节点906相关联的资源可能无法向操作节点902提供可用资源,直到操作节点908被完成。因此,产生循环依赖性。
在其中更新依赖图包括一个或多个循环依赖性的实施例中,调度模块210可以被配置为(i)确定在更新依赖图中发生循环依赖,以及(ii)将循环依赖表示为更新依赖图中的单个逻辑节点910。因此,调度模块210可以被配置为例如使用上面提供的示例算法2调度逻辑节点910作为DAG的一部分。
在一些情况下,逻辑节点910可以被称为强连接组件(SCC),其是更新依赖图的子部分,其中每个包括性节点具有到被包括在SCC中的其他节点的路径。如果SCC在更新依赖图中被表示为逻辑节点,则调度模块210可以如以上讨论地计算CPL并且实现关键路径调度。在一些情况下,SCC可以与多个循环依赖性相关联。例如,两个或更多个循环依赖可以交叠,使得至少一个节点(例如,操作节点)可以是作为两个或更多个循环依赖性的一部分的交叉节点。因此,调度模块210可以调度第一循环依赖性的更新操作,然后使用交叉节点用于为至少第二循环依赖性调度更新操作。
在各种实施例中,当计算CPL时,调度模块210可以使用SCC中包括的多个操作节点(例如,图9中的数量为两个)作为相应逻辑节点的权重。因此,调度模块210可以被配置为评估权重,使得优选包括有更大SCC(例如,更多操作节点)的排序。
作为示例,调度模块210可以实现两个修改以将SCC并入到DAG调度中。首先,算法2的行5处的“针对”循环在虚拟更新依赖图中的所有节点(例如,具有单独表示为逻辑节点的一个或多个循环依赖性的更新依赖图)上迭代。当节点被选择并且如果它是单个节点时,调度模块210可以直接调用CanScheduleOperation(Oi)。如果所选节点是逻辑节点(例如,逻辑节点910),则调度模块210可以在SCC中的操作节点上进行迭代并且相应地调用功能。
在一些实现中,调度模块210可以使用中心性方法来决定迭代的顺序。使用中心性方法,调度模块210标识可以作为多个循环依赖性的一部分的SCC的中央节点(例如,上述的交叉节点),并且调度模块210可以在更新过程中在早期调度中央节点,使得可以实现来自多个循环依赖性的更新操作,并且可以更有效地调度和/或完成SCC。
由调度模块210实现的第二修改涉及当路径节点消耗链路资源或隧道添加操作消耗交换机资源的情况。这种资源消耗可以经由(i)与消耗资源的路径节点或隧道添加操作在相同SCC中,或(ii)是独立节点(不在任何SCC中)的节点来实现。该启发方法有助于防止通过向SCC外部的节点分配资源而引起的死锁。
因此,利用上述调度算法(例如,算法2),调度模块210可以解决SCC。然而,在一些情况下,调度模块210可能仍然遇到死锁,在这种情况下,SCC中没有操作能够进行。这可能是因为(i)调度算法可能无法在各种排序中找到可行解并且可能被卡住,或者(2)即使目标状态是有效状态,可行解可能仍然不存在。
在各种实现中,调度模块210可通过减小流率(例如,通过引入速率限制器)来解决死锁。降低流率释放允许去除隧道的路径上的链路资源。继而,交换设备存储器资源可以被释放,并且这允许完成先前例如由于不可用的资源而被死锁的一些操作。作为速率限制器的结果,调度算法210可以部分地实现更新操作,例如使用完全实现更新操作所需的总资源量的一部分。
示例算法5示出了用于解决基于隧道的网络的死锁的过程。参数k*确定调度模块210每次速率限制的流的最大数量,并且调度模块210控制解决死锁的时间与吞吐量损失量之间的权衡。
算法5——速率极限(SCC,k*)
调度模块210迭代SCC中的多达k*个权重改变节点,每个节点对应于流(示例算法5中的行2到8)。迭代的顺序可以基于上面讨论的中心性方法。对于每个权重改变节点Oi,调度模块210在子路径节点Pj上迭代。调度模块210通过lij(示例算法5中的行5)来减少Pj上的速率,并且因此增加路径上的链路(示例算法5中的行6到7)的空闲资源。然后,调度模块210从图中删除Pj(示例算法5中的行8)。
图10图示在更新依赖图中调度循环依赖性的操作更新的示例过程1000。图10中的示例操作可以参考图1到图9的任一个图中所示的模块、组件和/或元件来描述。
在1002,调度模块210可以确定在更新依赖图中的两个或更多个操作节点之间发生循环依赖性(例如,SCC)。更新依赖图还可以包括资源节点和/或路径节点。
在1004,调度模块210将循环依赖性表示为单个逻辑节点(例如,节点910)。通过将循环依赖性表示为单个逻辑节点,则更新依赖图可以变为DAG。
在1006,当调度以实现单个逻辑节点时,调度模块210从循环依赖性中的操作节点中选择操作节点(例如,节点902或节点908)作为循环依赖性起始点。根据上面讨论的中心性方法,调度模块210可以被配置为标识并且选择交叉节点作为循环依赖性起始点。
在1008,调度模块210使用循环依赖性开始点来实现与循环依赖性中的其他操作节点相关联或者经由交叉节点重叠的多个循环依赖性中的更新操作。
示例实现
实现A,一种方法包括:用于使网络的状态从观察网络状态过渡到目标网络状态的更新操作的集合;确定被定义用于在网络的状态从观察网络状态到目标网络状态的过渡期间确保网络的可靠性的一个或多个约束;由一个或多个硬件处理器生成并且至少部分基于一个或多个约束来定义更新依赖图,更新依赖图定义更新操作的集合的至少一个子集之间的依赖关系,其中更新依赖图定义能够响应于来自更新操作的集合的至少两个父更新操作中的一个父更新操作的成功完成来调度来自更新操作的集合的至少一个子更新操作;调度至少两个父更新操作中的第一父更新操作;调度至少两个父更新操作中的第二父更新操作;接收第一父更新操作或第二父更新操作中的一个父更新操作成功完成的指示;以及响应于接收到指示使用更新依赖图动态地调度至少一个子更新操作。
实现B,实现A的方法,其中一个或多个约束中的至少一个约束被定义用于避免通过以特定顺序调度更新操作的子集来丢弃数据分组。
实现C,实现A或实现B的方法,其中一个或多个约束中的至少一个约束被定义用于避免通过以特定顺序调度更新操作的子集来循环数据分组。
实现D,实现A到C中的任一项的方法,其中一个或多个约束中的至少一个约束被定义用于避免使用旧路由指令和新路由指令的混合来传送数据分组。
实现E,实现A到D中的任一项的方法,其中一个或多个约束中的至少一个约束是将网络中的两个设备之间的单独链路上的负载限制为最大容量的资源约束,其中资源约束被定义用于避免网络拥塞。
实现F,实现A到E中的任一项的方法,其中一个或多个约束中的至少一个约束是将设备的存储器负载限制为最大容量的存储器约束。
实现G,实现A到F中的任一项的方法,其中该组更新操作的单独更新操作直接或间接地改变网络的一个或多个状态变量值。
实现H,实现A到G中的任一项的方法,其中更新依赖图包括多个节点,并且方法还包括:确定第一父更新操作或第二父更新操作中的至少一个与作为通过更新依赖图的最长路径的部分的节点相关联;以及通过至少部分基于与作为最长路径的部分的节点的关联来调度第一父更新操作或第二父更新操作中的至少一个,开始网络更新以使网络从观察网络状态过渡到目标网络状态。
实现I,一个或多个存储计算机可执行指令的计算机存储介质,计算机可执行指令在由一个或多个处理器执行时将一个或多个处理器编程用于:确定用于使网络的状态从观察网络状态过渡到目标网络状态的更新操作的集合;确定被定义用于在网络的状态从观察网络状态到目标网络状态的过渡期间确保网络的可靠性的一个或多个约束;至少部分基于一个或多个约束至少生成第一排序和第二排序,更新操作的集合的第一子集能够以第一排序被调度,并且更新操作的集合的第二子集能够以第二排序被调度,其中至少一个更新操作被包括在更新操作的第一子集和更新操作的第二子集两者中;调度更新操作的第一子集的第一排序;接收第一排序的更新操作失败或延迟的指示;以及动态地调度第二排序使得更新操作的第一子集和更新操作的第二子集两者中包括的至少一个更新操作经由第二排序被成功地完成。
实现J,实现I的一种或多种计算机存储介质,其中第一排序和第二排序是更新依赖图中包括一个或多个节点的一部分,所述一个或多个节点指示用于与单个更新操作相关联的设备或链路的可用能力。
实现K,实现J的一个或多个计算机存储介质,其中第一排序和第二排序是更新依赖图中指示完成单个更新操作所需要的资源量的一部分。
实现L,实现J或实现K的一个或多个计算机存储介质,其中第一排序和第二排序是更新依赖图中指示在单个更新操作完成之后被释放的资源量的一部分。
实现M,一个或多个设备,包括:一个或多个处理器;一个或多个存储器;图形生成模块,其存储在一个或多个存储器上并且由一个或多个处理器来执行,用于维持一个或多个排序,更新操作的集合能够以一个或多个排序被调度以使网络的状态从观察网络状态过渡到目标网络状态;以及调度模块,其存储在一个或多个存储器上并且由一个或多个处理器来执行,用于至少部分基于与更新操作的集合中的至少一个先前调度的更新操作相关联的反馈来动态地选择更新操作的集合中的一个或多个下一更新操作用于调度。
实现N,实现M的一个或多个设备,其中反馈包括至少一个先前调度的更新操作被延迟的指示。
实现O,实现M的一个或多个设备,其中反馈包括至少一个先前调度的更新操作已经失败的指示。
实现P,实现M的一个或多个设备,其中反馈包括至少一个先前调度的更新操作已经被成功完成的指示。
实现Q,实现M到P中的任一项的一个或多个设备,其中调度模块在过渡的运行时间实现期间访问更新依赖图以动态地选择一个或多个下一更新操作。
实现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.一种方法,包括:
确定更新操作的集合,更新操作的所述集合用于使网络从观察网络状态过渡到目标网络状态;
确定一个或多个约束,所述一个或多个约束被定义用于在所述网络从所述观察网络状态到所述目标网络状态的所述过渡期间确保所述网络的可靠性;
由一个或多个硬件处理器至少部分基于所述一个或多个约束生成更新依赖图,所述更新依赖图定义更新操作的所述集合的至少子集之间的依赖,其中所述更新依赖图定义能够响应于来自更新操作的所述集合的至少两个父更新操作中的一个父更新操作的成功完成来调度来自更新操作的所述集合的至少一个子更新操作;
调度所述至少两个父更新操作中的第一父更新操作;
调度所述至少两个父更新操作中的第二父更新操作;
接收所述第一父更新操作或所述第二父更新操作中的一个父更新操作已经被成功完成的指示;以及
响应于接收到所述指示使用所述更新依赖图来动态地调度所述至少一个子更新操作。
CN201580029987.2A 2014-06-06 2015-06-03 网络更新的动态调度的方法和系统 Active CN106464530B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/298,794 US9887878B2 (en) 2014-06-06 2014-06-06 Dynamic scheduling of network updates
US14/298,794 2014-06-06
PCT/US2015/033860 WO2015187751A1 (en) 2014-06-06 2015-06-03 Dynamic scheduling of network updates

Publications (2)

Publication Number Publication Date
CN106464530A true CN106464530A (zh) 2017-02-22
CN106464530B CN106464530B (zh) 2019-10-01

Family

ID=53801150

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580029987.2A Active CN106464530B (zh) 2014-06-06 2015-06-03 网络更新的动态调度的方法和系统

Country Status (5)

Country Link
US (2) US9887878B2 (zh)
EP (1) EP3152868B1 (zh)
KR (1) KR102273413B1 (zh)
CN (1) CN106464530B (zh)
WO (1) WO2015187751A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108768804A (zh) * 2018-05-29 2018-11-06 杨杰 一种基于物联网的智能家居设备同步管理系统
CN109725916A (zh) * 2017-10-31 2019-05-07 北京国双科技有限公司 流处理的拓扑结构更新系统和方法
CN110622137A (zh) * 2017-05-16 2019-12-27 微软技术许可有限责任公司 高保真度网络仿真
CN112805984A (zh) * 2018-10-03 2021-05-14 华为技术有限公司 用于部署增量网络更新的系统
US20210397439A1 (en) * 2019-09-03 2021-12-23 Microsoft Technology Licensing, Llc Automatic probabilistic upgrade of tenant devices

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11119745B2 (en) 2014-11-10 2021-09-14 Amazon Technologies, Inc. Automated deployment of applications
US9547564B1 (en) 2014-11-10 2017-01-17 Amazon Technologies, Inc. Automated deployment of applications
US10459709B1 (en) 2014-11-10 2019-10-29 Amazon Technologies, Inc. Automated deployment of applications
WO2016119213A1 (zh) * 2015-01-30 2016-08-04 华为技术有限公司 数据处理的方法和设备
US9893940B1 (en) * 2015-05-26 2018-02-13 Amazon Technologies, Inc. Topologically aware network device configuration
US10361899B2 (en) * 2015-09-30 2019-07-23 Nicira, Inc. Packet processing rule versioning
JP6323480B2 (ja) 2016-03-02 2018-05-16 住友電気工業株式会社 プログラム更新システム、プログラム更新方法及びコンピュータプログラム
CN106656580B (zh) 2016-11-29 2020-06-26 华为技术有限公司 一种业务状态的迁移方法及装置
CN108363545B (zh) * 2017-01-26 2021-12-03 华为技术有限公司 一种数据配置方法及数据配置装置
US10355933B2 (en) * 2017-03-31 2019-07-16 Microsoft Technology Licensing, Llc Dependency graph for coordination of device configuration
US20180367597A1 (en) * 2017-06-15 2018-12-20 Ramakrishnan Kolli Method and System of Sharing a File
US10666507B2 (en) * 2017-06-30 2020-05-26 Microsoft Technology Licensing, Llc Automatic reconfiguration of dependency graph for coordination of device configuration
US11301433B2 (en) * 2017-11-13 2022-04-12 Weka.IO Ltd. Metadata journal in a distributed storage system
US10901721B2 (en) * 2018-09-20 2021-01-26 Vmware, Inc. Methods and apparatus for version aliasing mechanisms and cumulative upgrades for software lifecycle management
WO2020128569A1 (en) * 2018-12-17 2020-06-25 Eci Telecom Ltd. Migrating services in data communication networks
US20190324811A1 (en) * 2019-07-02 2019-10-24 Intel Corporation Technologies for providing latency-aware consensus management in a disaggregated architecture
CN110572451B (zh) * 2019-09-04 2021-04-30 腾讯科技(深圳)有限公司 一种数据处理的方法、装置及存储介质
US11153228B1 (en) 2019-12-11 2021-10-19 Juniper Networks, Inc. Synchronizing device resources for element management systems
US11356329B2 (en) * 2020-06-10 2022-06-07 At&T Intellectual Property I, L.P. Network intent synthesis

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998034350A2 (en) * 1997-02-05 1998-08-06 Firsttel Systems Corporation Automatic generation of reconfiguration scripts for telecommunication devices

Family Cites Families (123)

* Cited by examiner, † Cited by third party
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
US6724722B1 (en) 1999-03-19 2004-04-20 Lucent Technologies Inc. Managing congestion and potential traffic growth in an information network
EP1107108A1 (en) * 1999-12-09 2001-06-13 Hewlett-Packard Company, A Delaware Corporation System and method for managing the configuration of hierarchically networked data processing devices
US6748447B1 (en) * 2000-04-07 2004-06-08 Network Appliance, Inc. Method and apparatus for scalable distribution of information in a distributed 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
WO2003015000A1 (en) * 2001-08-08 2003-02-20 Trivium Systems Inc. Workflow engine for automating business processes in scalable multiprocessor computer platforms
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
US7865578B1 (en) * 2002-08-19 2011-01-04 Juniper Networks, Inc. Generation of a configuration patch for network devices
US8140569B2 (en) 2003-05-29 2012-03-20 Microsoft Corporation Dependency network based model (or pattern)
US7546333B2 (en) * 2002-10-23 2009-06-09 Netapp, Inc. Methods and systems for predictive change management for access paths in networks
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
US7385938B1 (en) * 2005-02-02 2008-06-10 At&T Corp. Method and apparatus for adjusting a network device configuration change distribution schedule
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
US7746784B2 (en) 2006-03-23 2010-06-29 Alcatel-Lucent Usa Inc. Method and apparatus for improving traffic distribution in load-balancing networks
US7539133B2 (en) 2006-03-23 2009-05-26 Alcatel-Lucent Usa Inc. Method and apparatus for preventing congestion 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
US7853675B2 (en) 2007-03-02 2010-12-14 International Business Machines Corporation Automatically enforcing change control in operations performed by operational management products
US7730364B2 (en) 2007-04-05 2010-06-01 International Business Machines Corporation Systems and methods for predictive failure management
US7873592B2 (en) 2007-04-20 2011-01-18 Microsoft Corporation Type inference for object-oriented languages
US20080271022A1 (en) 2007-04-27 2008-10-30 Motorola, Inc. Utilizing graphs to detect and resolve policy conflicts in a managed entity
US7761530B2 (en) * 2007-05-07 2010-07-20 Microsoft Corporation Configuration change management tool
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
US8228804B2 (en) 2007-07-18 2012-07-24 Opnet Technologies, Inc. Tuning routing metrics to reduce maximum link utilization 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
EP2245835A2 (en) 2008-02-08 2010-11-03 Ecrio, Inc. System, method and apparatus for controlling multiple applications and services on a digital electronic device
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
EP2110990B1 (en) * 2008-04-16 2014-06-04 Nokia Solutions and Networks Oy Managing a network element
US8086701B2 (en) 2008-04-28 2011-12-27 Microsoft Corporation Platform for managing and configuring network state
US8543998B2 (en) * 2008-05-30 2013-09-24 Oracle International Corporation System and method for building virtual appliances using a repository metadata server and a dependency resolution service
US8374987B2 (en) 2008-06-30 2013-02-12 Sap Ag Stateful, continuous evaluation of rules by a state correlation engine
US8731940B2 (en) 2008-09-18 2014-05-20 Koninklijke Philips N.V. Method of controlling a system and signal processing system
US7996719B2 (en) 2008-10-24 2011-08-09 Microsoft Corporation Expressing fault correlation constraints
US8775574B2 (en) * 2008-11-26 2014-07-08 Red Hat, Inc. Remote network management having multi-node awareness
US7839789B2 (en) 2008-12-15 2010-11-23 Verizon Patent And Licensing Inc. System and method for multi-layer network analysis and design
JP5039016B2 (ja) * 2008-12-15 2012-10-03 株式会社日立製作所 ネットワークシステム、管理サーバ及び設定スケジューリング方法
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
US8284699B1 (en) * 2009-04-30 2012-10-09 Palo Alto Networks, Inc. Managing network devices
WO2011034457A1 (en) * 2009-09-18 2011-03-24 Netcracker Technology Corp. Network configuration management
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)
US8817621B2 (en) 2010-07-06 2014-08-26 Nicira, Inc. Network virtualization apparatus
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
US20120102543A1 (en) * 2010-10-26 2012-04-26 360 GRC, Inc. Audit Management System
US20120101980A1 (en) 2010-10-26 2012-04-26 Microsoft Corporation Synchronizing online document edits
US8787392B2 (en) * 2010-12-17 2014-07-22 Cisco Technology, Inc. Dynamic routing metric adjustment
US20120163178A1 (en) 2010-12-23 2012-06-28 Telefonaktiebolaget L M Ericsson (Publ) Multiple-Algorithm Congestion Management
US9350567B2 (en) * 2011-01-25 2016-05-24 International Business Machines Corporation Network resource configurations
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 富士通株式会社 送信制御プログラム、通信装置および送信制御方法
ES2429219B1 (es) * 2011-05-06 2014-09-03 Telefónica, S.A. Método de composición de cambios de configuración en un elemento de red
US20120311111A1 (en) * 2011-06-03 2012-12-06 Microsoft Corporation Dynamic reconfiguration of cloud resources
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
US9053487B2 (en) * 2011-08-22 2015-06-09 At&T Intellectual Property I, L.P. Methods, systems, and products for notifying of enhancements to quality of service and experience
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
KR101630315B1 (ko) 2011-11-16 2016-06-14 노키아 솔루션스 앤드 네트웍스 오와이 네트워크 조정 장치
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
US9231892B2 (en) * 2012-07-09 2016-01-05 Vmware, Inc. Distributed virtual switch configuration and state management
US8984480B2 (en) 2012-07-10 2015-03-17 International Business Machines Corporation Automating and/or recommending data sharing coordination among applications in mobile devices
GB2505644A (en) * 2012-09-05 2014-03-12 Ibm Managing network configurations
JP2015533049A (ja) 2012-09-20 2015-11-16 株式会社Nttドコモ ネットワークにおけるトポロジ及びパス検証のための方法及び装置
US9081643B2 (en) * 2012-09-21 2015-07-14 Silver Sring Networks, Inc. System and method for efficiently updating firmware for nodes in a mesh network
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
US9094299B1 (en) * 2013-01-08 2015-07-28 Juniper Networks, Inc. Auto-generation of platform-independent interface and operational scripts for configuring network devices
US9391959B2 (en) * 2013-01-15 2016-07-12 Cisco Technology, Inc. Automated control plane for limited user destruction
US9183092B1 (en) * 2013-01-21 2015-11-10 Amazon Technologies, Inc. Avoidance of dependency issues in network-based service startup workflows
AT512003A3 (de) 2013-01-23 2014-05-15 Avl List Gmbh Verfahren zur Ermittlung eines regelungstechnischen Beobachters für den SoC
US9391875B2 (en) 2013-02-11 2016-07-12 Fujitsu Limited Resource oriented dependency graph for network configuration
US20140244218A1 (en) 2013-02-25 2014-08-28 International Business Machines Corporation Architecture optimization
US9755900B2 (en) * 2013-03-11 2017-09-05 Amazon Technologies, Inc. Managing configuration updates
US9141682B1 (en) 2013-03-25 2015-09-22 Amazon Technologies, Inc. Resolving conflicts within saved state data
US9602312B2 (en) 2013-07-08 2017-03-21 Nicira, Inc. Storing network state at a network controller
US9929918B2 (en) 2013-07-29 2018-03-27 Alcatel Lucent Profile-based SLA guarantees under workload migration in a distributed cloud
US9100292B2 (en) * 2013-09-10 2015-08-04 Wipro Limited Methods for managing upgrading a telecommunication network and devices thereof
US9648020B2 (en) * 2013-09-30 2017-05-09 Infinera Corporation License management system
US9716625B2 (en) * 2013-10-09 2017-07-25 International Business Machines Corporation Identifying compatible system configurations
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
US9836313B2 (en) 2014-02-04 2017-12-05 Tactual Labs Co. Low-latency visual response to input via pre-generation of alternative graphical representations of application elements and input handling on a graphical processing unit
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
US9893940B1 (en) * 2015-05-26 2018-02-13 Amazon Technologies, Inc. Topologically aware network device configuration
US10284417B2 (en) * 2015-06-22 2019-05-07 Arista Networks, Inc. Method and system for sharing state between network elements

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998034350A2 (en) * 1997-02-05 1998-08-06 Firsttel Systems Corporation Automatic generation of reconfiguration scripts for telecommunication devices

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHIUN LIN LIM: "Congestion-Free Routing Reconfiguration:Formulation and Examples", 《IEEE 2014 48TH ANNUAL CONFERENCE ON INFORMATION SCIENCES AND SYSTEMS(CISS)》 *
RATUL MAHAJAN: "On Consistent Updates in Software Defined Networks", 《ACM》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110622137A (zh) * 2017-05-16 2019-12-27 微软技术许可有限责任公司 高保真度网络仿真
CN110622137B (zh) * 2017-05-16 2023-07-04 微软技术许可有限责任公司 高保真度网络仿真
CN109725916A (zh) * 2017-10-31 2019-05-07 北京国双科技有限公司 流处理的拓扑结构更新系统和方法
CN109725916B (zh) * 2017-10-31 2022-04-26 北京国双科技有限公司 流处理的拓扑结构更新系统和方法
CN108768804A (zh) * 2018-05-29 2018-11-06 杨杰 一种基于物联网的智能家居设备同步管理系统
CN108768804B (zh) * 2018-05-29 2020-09-22 深圳市卡卓无线信息技术有限公司 一种基于物联网的智能家居设备同步管理系统
CN112805984A (zh) * 2018-10-03 2021-05-14 华为技术有限公司 用于部署增量网络更新的系统
CN112805984B (zh) * 2018-10-03 2022-09-23 华为技术有限公司 用于部署增量网络更新的系统
US20210397439A1 (en) * 2019-09-03 2021-12-23 Microsoft Technology Licensing, Llc Automatic probabilistic upgrade of tenant devices
US11947947B2 (en) * 2019-09-03 2024-04-02 Microsoft Technology Licensing, Llc. Automatic probabilistic upgrade of tenant devices

Also Published As

Publication number Publication date
CN106464530B (zh) 2019-10-01
WO2015187751A1 (en) 2015-12-10
KR102273413B1 (ko) 2021-07-05
US20180123875A1 (en) 2018-05-03
EP3152868B1 (en) 2018-01-10
US10771332B2 (en) 2020-09-08
US20150358198A1 (en) 2015-12-10
US9887878B2 (en) 2018-02-06
EP3152868A1 (en) 2017-04-12
KR20170015314A (ko) 2017-02-08

Similar Documents

Publication Publication Date Title
CN106464530A (zh) 网络更新的动态调度
Belgaum et al. A systematic review of load balancing techniques in software-defined networking
Syu et al. A survey on automated service composition methods and related techniques
Wang et al. Towards network-aware service composition in the cloud
CN111654386A (zh) 一种业务功能链建立方法及系统
Jia et al. Reliability-aware dynamic service chain scheduling in 5G networks based on reinforcement learning
Vissicchio et al. Safe, efficient, and robust SDN updates by combining rule replacements and additions
Wang et al. QoS-aware virtual SDN network planning
Antevski et al. Resource orchestration of 5G transport networks for vertical industries
Rui et al. Petri net-based reliability assessment and migration optimization strategy of SFC
Shang et al. Network congestion-aware online service function chain placement and load balancing
Dalgkitsis et al. SCHE2MA: Scalable, energy-aware, multidomain orchestration for beyond-5G URLLC services
Doan et al. SAP: Subchain-aware NFV service placement in mobile edge cloud
Chen et al. Energy-saving and resource-efficient algorithm for virtual network function placement with network scaling
Li et al. Processing-while-transmitting: cost-minimized transmission in SDN-based STINs
Kim et al. Method for VNF placement for service function chaining optimized in the NFV environment
Tohidi et al. Distributed controller-switch assignment in 5G networks
Liu et al. Achieving efficient and fast update for multiple flows in software-defined networks
Kim et al. Dynamic service function chaining by resource usage learning in SDN/NFV environment
Wang et al. Energy Efficient VNF Placement Algorithm Using Reinforcement Learning in NFV-Enabled Network
Sun et al. Reliable and efficient deployment for virtual network functions
He et al. Asco: an availability-aware service chain orchestration
JP6732927B2 (ja) 収容形態探索装置、収容形態探索方法及びプログラム
Xu et al. Coordinated resource allocation with VNFs precedence constraints in inter-datacenter networks over elastic optical infrastructure
Skobelev et al. Multi-agent tasks scheduling system in software defined networks

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