用于网络服务配置的事务完整性的制作方法_5

文档序号:9618561阅读:来源:国知局
言提供以设置网络设备和网络设 备资源的参数的资源模型。在一些示例中,路径供应模块218可以使用被公布为RFC 6020 的YANG数据建模语言来生成和/或编译资源模型。YANG可以用于对网络元件的状态和配 置数据进行建模。在图5的示例中,路径供应模块218可以根据YANG标准来将供应网络服 务所需要的任何资源模型编译成一个或多个建模文件。在编译了一个或多个建模文件时, 路径供应模块218可以执行服务供应工作以确定一个或多个数据建模文件的内容并供应 所请求的服务。路径供应模块218可以将YANG标准的格式化消息转换成设备专属和资源 专属配置信息。
[0083] 然后,路径供应模块218尝试对对应于设备专属配置信息的一个或多个网络资源 进行配置。路径供应模块218调用锁定单元110以获得针对网络资源的锁。在连续地或原 子地获得必要的锁时,路径供应模块根据配置信息对网络资源进行配置。以这种方式,服务 供应模块26A改变计算的路径的状态以安全地供应具有促进配置的网络资源的完整性的 服务。
[0084] 图4是图示了根据本公开中描述的技术的用于将网络资源映射到由协调仓库提 供的网络资源的相应的全网络同步表示以促进全网络同步网络资源锁定的示例数据结构 的框图。在该示例中,全网络同步的数据结构300具有以类似于文件系统的方式分层组 织的数据模型和名字空间。数据结构300通过网络"N1"和"N2"来聚集网络资源节点 304A-304D,使得网络资源节点304A-304B是表示网络"N1"的节点302B的子节点并且网络 资源节点304C-304D是表示网络"N2"的节点302C的子节点。节点302B、302C是根节点 302A的子节点。
[0085] 网络资源节点304A-304D(统称为"资源节点304")中的每个网络资源节点是 网络的对应网络资源的软件表示。技术数据库92存储针对可用的网络资源的标识符 310A-310N,资源图114将其映射到相应的软件表示。在该示例中,协调仓库22使用障碍节 点来实施锁。如果障碍节点存在,则障碍针对障碍条件来放置。总体上,分布式系统使用障 碍来阻挡对系统节点的集合的处理直到条件被满足,在那时所有系统节点都被允许进行处 理。服务供应模块26创建并遵守针对网络资源放置的障碍节点。即,因为障碍节点针对网 络资源来放置而已经不允许前进的服务供应模块26不尝试对网络资源进行配置除非和直 到服务供应模块26获得由障碍节点表示的锁。在图示的示例中,服务供应模块26A使用资 源图114将网络资源310D映射到节点304A。在确认针对节点304A的"锁"障碍节点不存 在之后,服务供应模块26A创建障碍节点310作为针对网络资源"/N1/RA"的节点304A的 子节点。服务供应模块26A因此具有用于对由310D标识的网络资源进行配置的锁,并且在 对网络资源进行配置之后,通过删除障碍节点310来释放锁。其他服务供应模块26禁止尝 试对网络资源进行配置直到服务供应模块26A删除障碍节点310。服务供应模块26A可以 创建障碍节点310作为短暂的,使得在服务供应模块26A失败时,协调仓库22移除障碍节 点310使得其他服务供应模块26可以获得针对节点304A的锁。
[0086] 在一些示例中,协调仓库22可以使用其他原语来实施对网络资源的锁定并 且由此用作针对网络资源配置的全网络信号量仓库。例如,协调仓库22可以使用 ZooKeeper?,其提供原语和配方,服务供应模块26可以利用该原语和配方来实施针对 网络资源的障碍和其他类型的锁。
[0087] 图5是图示了根据本文中描述的技术的针对用于使用协调仓库来供应服务的控 制器的操作的示例模式的流程图。关于图1的控制器10和协调仓库22来描述示例操作 400。控制器10接收服务请求并将事务委托给服务供应模块26A(401)。在确定了要被配 置为完成事务的网络资源的集合之后,服务供应模块26A连续地通过网络资源的集合进行 循环以获取锁并对资源进行配置。通过网络资源的集合进行循环(402),服务供应模块26A 确定是否仍然有要被配置的任何网络资源(404)。如果没有(404的否分支),则针对所请 求的服务的事务完成(406)。
[0088] 否则(404的是分支),针对循环中的下一个网络资源,服务供应模块26A尝试从协 调仓库22获取针对网络资源的锁(410)。在一些情况下,锁可以由要被配置的设备本机提 供,例如使用NETC0NFIG配置锁。如果服务供应模块26A没有成功获取锁(414),则服务供 应模块26A可以可选地等待一定时间(408)并且然后进行到循环的下一次迭代(402)。如 果服务供应模块26A获取锁(414),则服务供应模块26A尝试对网络资源进行配置(416)。 如果配置成功(422的是分支),则服务供应模块26A释放锁并进行到循环的下一次迭代 (402)。如果配置不成功(418的否分支),则因为服务不能够被配置为已计算,服务供应模 块26A可以回滚事务(420)并将锁释放回协调仓库22(422)。然而,在一些情况下,服务供 应模块26A可以再次尝试配置或继续对要被配置的集合中的其他网络资源进行配置。该确 定可以基于由网络操作设置的策略。
[0089] 图6是图示了根据本文中描述的技术的针对用于使用协调仓库来供应服务的控 制器的操作的示例模式的流程图。关于图1的控制器10和协调仓库22来描述示例操作 500。控制器10接收服务请求并将事务委托给服务供应模块26A(501)。在确定了要被配置 为完成事务并建立服务的网络资源的集合之后,服务供应模块26A尝试原子地获得针对网 络资源的集合中的所有网络资源的锁(504)。如以上所描述的,协调仓库22可以提供用于 进行网络资源锁定的障碍节点。原子地获得针对网络资源的集合的锁意味着所有障碍节点 以原子操作被创建一一它们中的全部被创建或者它们中没有一个被创建。如果不成功(508 的否分支),则服务供应模块26A可以可选地等待一定时间(502)并再次尝试原子地获得锁 (504)。
[0090] 在成功获得针对网络资源的集合的锁(508)时,服务供应模块26A通过网络资源 的集合进行迭代以配置资源。通过网络资源的集合进行循环(510),服务供应模块26A确定 是否仍然有要被配置的任何网络资源(512)。如果没有(512的否分支),则针对所请求的 服务的事务完成(518)并且服务供应模块26A释放锁(522)。
[0091] 如果集合中的网络资源仍然有要被配置的(512的是分支),服务供应模块26A尝 试对网络资源进行配置(514)。如果配置成功(520的是分支),则服务供应模块26A进行 到循环的下一迭代(510),如果配置不成功(520的否分支),则因为服务不能够被配置为已 计算,服务供应模块26A可以回滚事务(520)并将锁释放回协调仓库22(522)。然而,在一 些情况下,服务供应模块26A可以再次尝试配置或继续对要被配置的集合中的其他网络资 源进行配置。该确定可以基于由网络操作设置的策略。
[0092] 对于操作400和500的模式,服务供应模块26可以在未能获取锁时尝试获取针对 服务的网络资源的集合中的其他网络资源或针对其他服务的网络资源的锁。换言之,服务 供应模块26不需要空闲。操作400提供最终一致性模型,在所述最终一致性模型中在任何 时间一些网络资源由服务供应模块26A被配置具有服务而其他网络资源不被这样配置并 且可以由其他服务供应模块26锁定。另外,连续地锁定要求的网络资源通常具有协调仓库 22的、比原子地获取针对所有要求的网络资源的锁(如由操作500完成的)更大的锁定开 销。另外,操作500可以提供严格的服务级事务完整性并且可以提供比操作400更好的性 能,因为锁操作是单个原子锁获取。
[0093] 在一些示例中,服务供应模块26A可以派生针对用于并行配置多个网络资源的多 个例程的线程,而不是以单线程操作连续地通过网络资源的集合进行迭代。在一些示例中, 对于操作500,服务供应模块26A在工作者级别而不是例程级别实施锁。
[0094] 本文中描述的技术可以被实施在硬件、软件、固件、或其任何组合中。被描述为模 块、单元或部件的各种特征可以一起被实施在集成逻辑设备中或可以单独地被实施为离散 但可互操作的逻辑设备或其他硬件设备。在一些情况下,电子线路的各种特征可以被实施 为一个或多个集成电路设备,例如集成电路芯片或芯片组。
[0095] 如果被实施在硬件中,本公开可以涉及这样的处理器或集成电路设备的装置,例 如集成芯片或芯片组。备选地或附加地,如果被实施在软件或固件中,所述技术可以至少部 分由包括指令的计算机可读数据存储介质来实现,所述指令当被执行时使得处理器执行以 上描述的方法中的一个或多个方法。例如,计算机可读数据存储介质可以存储用于由处理 器执行的这样的指令。
[0096] 计算机可读介质可以形成计算机程序产品的一部分,其可以包括包装材料。计 算机可读介质可以包括计算机数据存储介质,例如随机存取存储器(RAM)、只读存储器 (R0M)、非易失性随机存取存储器(NVRAM)、电可擦可编程只读存储器(EEPR0M)、快闪存储 器、磁或光数据存储介质等等。在一些示例中,一款制品可以包括一个或多个计算机可读存 储介质。
[0097] 在一些示例中,计算机可读存储介质可以包括非暂态介质。术语"非暂态"可以指 示存储介质没有被实现在载波或传播的信号中。在某些示例中,非暂态存储介质可以存储 (例如,在RAM或高速缓存中)能够随时间变化的数据。
[0098] 代码或指令可以是由包括一个或多个处理器的处理电路执行的软件和/或固件, 所述一个或多个处理器诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电 路(ASIC)、现场可编程门阵列(FPGA)、或其他等同的集成或离散逻辑电路。因此,如本文中 使用的术语"处理器"可以指适合于实施本文中描述的技术的前述结构或任何其他结构中 的任何结构。另外,在一些方面中,在本公开中描述的功能可以被提供在软件模块或硬件模 块内。
[0099] 对于以上附加地或者备选地,描述了以下示例。在以下示例中的任何示例中描述 的特征可以与本文中描述的其他示例中的任何示例一起来利用。
[0100] 示例1. 一种方法,包括:由供应用于传输网络内的分组流的服务的控制器接收服 务请求,所述服务请求包括要由所述网络向所述网络的订户或客户提供的服务的定义;由 所述控制器确定要被配置为实施所述网络中的所述服务并将所述服务应用到所述订户的 基于分组的网络流量的至少一个网络设备的多个网络资源;以及仅在获取了针对所述至少 一个网络设备的所述多个网络资源的锁时由所述控制器将所述至少一个网络设备的所述 多个网络资源配置为供应所述服务,其中从存储针对所述至少一个网络设备的所述多个网 络资源中的每个网络资源的软件表示的全网络协调仓库获取所述锁,并且其中所述锁向所 述控制器提供针对所述多个网络资源的独占配置访问。
[0101] 示例2.根据示例1所述的方法,其中获取针对所述至少一个网络设备的所述多个 网络资源的所述锁包括从所述协调仓库获取针对所述至少一个网络设备的所述多个网络 资源中的每个网络资源的单独锁,其中针对所述多个网络资源中的每个网络资源的所述单 独锁向所述控制器提供针对所述网络资源的独占配置访问。
[0102] 示例3.根据示例1所述的方法,其中获取针对所述至少一个网络设备的所述多个 网络资源的所述锁包括从所述协调仓库原子地获取针对所述至少一个网络设备的所述多 个网络资源中的所有网络资源的单个锁,其中针对所述多个网络资源的所述单个锁向所述 控制器提供针对所述多个网络资源的所述独占配置访问。
[0103] 示例4.根据示例1所述的方法,其中所述服务包括以下各项中的一项:点到 点以太网服务、多点到多点以太网服务、点到多点以太网服务、全网状层3虚拟专用联网 (L3VPN)服务、以及中枢辐射型L3VPN服务。
[0104] 示例5.根据示例1所述的方法,其中所
当前第5页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1