服务放置辅助的制作方法

文档序号:33323030发布日期:2023-03-03 21:41阅读:40来源:国知局
服务放置辅助的制作方法
服务放置辅助
1.本技术要求于2021年8月27日提交的美国申请号17/459,205的权益,该申请的全部内容通过引用全部并入本文。
技术领域
2.本公开涉及资源分配,诸如计算机网络内的资源分配。


背景技术:

3.网络可以包括多个不同的网络设备,这些网络设备被配置为向客户提供客户服务。这种客户服务可以包括虚拟私有网络服务、业务工程服务、ip语音(voip)服务、视频点播(vod)服务、批量运输服务、围墙/开放花园、ip移动性子系统(ims)和其他移动性服务、防火墙服务和到服务提供方网络的客户端的互联网服务,并且路由从源设备行进到目的地设备的分组流。为了提供这种客户服务,网络设备必须被供应,以支持这种服务。在不以增加客户成本的低效方式执行这种供应的情况下,手动供应这种网络设备以在大型网络中支持这种服务是极其困难的。


技术实现要素:

4.通常,本公开描述了使得计算设备能够自动分配资源(诸如网络资源)的技术,以满足或符合客户服务要求和关联的约束,和/或辅助运营商优化资源分配。虽然本公开的技术主要是出于相对于计算机联网的示例目的而讨论的,但是这些技术可以适用于需要资源分配的任何领域,诸如制造、商品或服务的分发等。
5.自动化服务供应可能对服务提供方有用,诸如网络服务提供方。然而,自动化服务供应可能难以实现,因为每个服务提供方可能具有大有不同的要求,包括他们想要提供什么服务以及如何在其网络上实现服务。因此,服务供应平台通常被构建为一次性的客户特定应用,几乎没有机会针对不同的客户重复使用。适用于各种客户和服务的通用产品可能需要经由昂贵的专业服务或系统集成项目进行密集定制。而且,现有的服务供应平台具有有限的能力来分配和管理网络资源到要被部署在网络上的服务的指派。因此,将网络资源分配给客户要求在很大程度上是手动过程。
6.服务提供方可以使用他们喜欢的网络资源和客户服务的任何模型,从现有的标准模型和定制为拟合其目标的增强模型中进行选择。本公开的技术包括在计算设备内使用内部放置模型。计算设备可以将客户服务模型的实例、网络服务模型的实例和/或网络资源模型的实例映射或转换到内部放置模型,使得出于资源分配目的,资源和客户服务以及客户服务实例、网络服务实例和/或网络资源实例中表示的关联要求和约束在内部放置模型中表示。例如,一种或多种算法可以接收客户服务模型、网络服务模型和/或网络资源模型的实例作为输入,并且将这些实例映射到由计算设备内部使用的内部放置模型,用于将资源分配给客户服务要求。与分配相关的信息可以被输入到计算设备的一种或多种算法,以将所放置的服务“逆映射”(例如转换)为由客户设备(例如网络控制器)可消耗的形式,诸如网
络中使用的网络服务模型的实例。在一些示例中,网络服务模型的实例可以包含使得客户设备能够供应客户服务的信息,诸如供应客户服务所需的所有信息。
7.附加地,由于存在客户服务要求的不同组合可以如何被满足的约束,因此很难将客户服务要求放置在网络资源上。因此,服务提供方资源的利用效率相对较低。本公开将这个问题作为约束优化问题来解决,从而使得能够以最好地满足要求,最小化中断并且相对有效地使用网络资源的方式将服务要求自动和/或辅助地放置到诸如网络资源等资源上。本公开的技术可以使服务提供方能够以更低的成本向其客户提供更多值,因为资源可以被分配以更好地利用,并且以更有效的方式操作。
8.例如,计算设备可以接收指示多个资源的信息,并且接收指示多个客户服务的信息,分别与至少一个要求和/或至少一个约束相关联。在一些示例中,计算设备可以将多个资源自动分配给客户服务,使得与客户服务相关联的约束被满足。在一些示例中,计算设备可以辅助服务提供方优化资源池的多个资源的分配,以满足与客户服务相关联的约束。
9.可能有资源到客户服务的数千种不同的可能分配,特别是在资源是网络资源的情况下。每个客户服务可能都有自己的要求。因此,考虑到可能分配的排列数目以满足与每个客户服务相关联的要求和约束,手动分配能够不切实际,并且面临使一个或多个资源过载的风险。
10.本公开的技术可以提供优于当前系统的技术优点。例如,这些技术为计算设备提供了一种自动方式来分配或辅助将资源分配给客户服务,该客户服务包括要求并且可以与一个或多个约束相关联,同时避免使要求和约束未被满足。本文描述的技术能够被并入到实际应用中,诸如获得多个资源的指示和多个客户服务的指示(分别具有一个或多个要求和/或一个或多个约束)的计算设备,并且使用指示来以满足约束的方式自动分配或辅助服务提供方将资源分配给客户服务。
11.在一个示例中,一种方法包括:由计算设备从客户设备接收多个资源的指示,计算设备具有一个或多个处理器;由计算设备从客户设备接收多个客户服务的指示,多个客户服务中的每个客户服务与对应的至少一个要求和对应的至少一个约束相关联;由计算设备针对每个要求和每个约束自动确定该要求或约束是否能够仅由多个资源中的特定资源满足;由计算设备基于该确定来将多个资源中的至少一个资源分配给多个客户服务中的至少一个客户服务;以及在针对每个要求和每个约束确定之后,由计算设备向客户设备提供信息,以使得客户设备能够供应至少一个客户服务。
12.在另一示例中,一种计算设备包括:一个或多个处理器;以及在其上存储有指令的非瞬态计算机可读介质,该指令用以使一个或多个处理器:从客户设备接收多个资源的指示;从客户设备接收多个客户服务的指示,多个客户服务中的每个客户服务与对应的至少一个要求和对应的至少一个约束相关联;针对每个要求和每个约束自动确定该要求或约束是否能够仅由多个资源中的特定资源满足;基于该确定来将多个资源中的至少一个资源分配给多个客户服务中的至少一个客户服务;以及在针对每个要求和每个约束确定之后,向客户设备提供信息,以使得客户设备能够供应至少一个客户服务。
13.在又一示例中,非瞬态计算机可读介质包括指令,用于使至少一个可编程处理器:从客户设备接收多个资源的指示;从客户设备接收多个客户服务的指示,多个客户服务中的每个客户服务与对应的至少一个要求和对应的至少一个约束相关联;针对每个要求和每
个约束自动确定该要求或约束是否能够仅由多个资源中的特定资源满足;基于该确定来将多个资源中的至少一个资源分配给多个客户服务中的至少一个客户服务;以及在针对每个要求和每个约束确定之后,向客户设备提供信息,以使得客户设备能够供应至少一个客户服务。
14.在一个示例中,一种方法包括:由计算设备从客户设备接收表示多个客户服务的客户服务模型的实例,计算设备具有一个或多个处理器,多个客户服务中的每个客户服务与对应的至少一个要求和对应的至少一个约束相关联;由计算设备从客户设备接收表示多个资源的资源模型的实例;由计算设备,将客户服务模型的实例和资源模型的实例映射到由计算设备维护的内部放置模型;由计算设备使用内部放置模型将多个资源自动分配给多个客户服务,使得多个资源的分配满足多个客户服务中的每个客户服务的至少一个要求和至少一个约束;由计算设备响应于分配生成数据,该数据指示多个资源如何被分配给多个客户服务;由计算设备,将数据逆映射成由客户设备可消耗的格式,该数据指示多个资源如何被分配给多个资源;以及由计算设备向客户设备输出经逆映射的数据,该数据指示多个资源如何被分配给多个客户服务。
15.在另一示例中,一种计算设备包括:一个或多个处理器;以及在其上存储有指令的非瞬态计算机可读介质,该指令用以使一个或多个处理器:从客户设备接收表示多个客户服务的客户服务模型的实例,多个客户服务中的每个客户服务与对应的至少一个要求和对应的至少一个约束相关联;从客户设备接收表示多个资源的资源模型的实例;将客户服务模型的实例和资源模型的实例映射到由计算设备维护的内部放置模型;使用内部放置模型将多个资源自动分配给多个客户服务,使得多个资源的分配满足多个客户服务中的每个客户服务的至少一个要求和至少一个约束;响应于分配生成数据,该数据指示多个资源如何被分配给多个客户服务;将数据逆映射成由客户设备可消耗的格式,该数据指示多个资源如何被分配给多个资源;以及向客户设备输出经逆映射的数据,该数据指示多个资源如何被分配给多个客户服务。
16.在又一示例中,非瞬态计算机可读介质包括指令,用于使至少一个可编程处理器:从客户设备接收表示多个客户服务的客户服务模型的实例,多个客户服务中的每个客户服务与对应的至少一个要求和对应的至少一个约束相关联;从客户设备接收表示多个资源的资源模型的实例;将客户服务模型的实例和资源模型的实例映射到由计算设备维护的内部放置模型;使用内部放置模型将多个资源自动分配给多个客户服务,使得多个资源的分配满足多个客户服务中的每个客户服务的至少一个要求和至少一个约束;响应于分配生成数据,该数据指示多个资源如何被分配给多个客户服务;将数据逆映射成由客户设备可消耗的格式,该数据指示多个资源如何被分配给多个资源;以及向客户设备输出经逆映射的数据,该数据指示多个资源如何被分配给多个客户服务。
17.一个或多个示例的细节是在下面的附图和描述中陈述的。其他特征、目的和优点将通过描述和附图以及通过权利要求书而变得明显。
附图说明
18.图1是图示了根据本公开的技术的示例网络和云计算设备的概念图。
19.图2是图示了根据本公开的技术的可以确定客户服务在资源上的放置的示例计算
设备的框图。
20.图3是图示了根据本公开的技术的示例映射和逆映射的概念图。
21.图4是图示了根据本公开的技术的内部放置模型的概念图。
22.图5a至图5b是图示了多个资源的示例和多个资源中的一些资源的示例放置的概念图。
23.图6是描绘了根据本公开的技术的资源池的示例资源树的概念图。
24.图7是描绘了根据本公开的技术的层3虚拟私有网络(l3vpn)服务订单实例的概念图。
25.图8是图示了根据本公开的技术的放置选项和放置资源的概念图。
26.图9是描绘了资源到客户服务的示例分配以满足关联约束的概念图。
27.图10是图示了根据本公开的示例放置辅助技术的概念图。
28.图11是图示了根据本公开的用于将客户服务放置在资源上的示例技术的流程图。
29.图12是图示了根据本公开的用于将客户服务放置在资源上的其他示例技术的流程图。
具体实施方式
30.当尝试手动分配资源(诸如网络资源)以满足与客户服务相关联的要求和约束时,一个人可能会面临针对每个客户服务的数千个选项。每个客户服务的放置选择可能会影响每个后续客户服务的放置,因为资源已经被分配给先前的客户服务。因此,手动放置可能充满风险,因为分配已经分配的资源可能会使资源过载,并且导致业务丢失。如上面提到的,考虑到潜在分配的大量不同组合,手动分配可能是不切实际的,尤其是在具有大量网络设备的网络中。与现有系统相比,本文公开的技术的技术优点在于计算设备能够自动确定分配或辅助资源分配,以满足与客户服务相关联的要求和约束,并且避免网络设备过载。此外,本公开的技术可以将数据从由网络设备(诸如网络控制器)使用的形式变换为由计算设备可用于确定分配的形式,然后将指示分配的数据变换回由网络设备可消耗的格式。
31.客户服务放置可能是服务生命周期管理(slm)功能,其根据要求和约束分配资源以满足客户服务的需要。在计算机网络的上下文中,这些资源可以包括具有类型(例如以太网、数字订户线(dsl)、专线(ll)、移动等)、存储器(例如用于路由表)、带宽、路由区分符(可以区分路由和另一路由)、路由目标、地址和前缀等的路由器接口。约束的一些示例包括:客户设备(ce)访问接口类型必须与分配的提供方边缘接口类型相匹配,客户站点必须与为站点提供服务的pe所在的存在点(pop)位于同一区域中,一对客户访问必须被连接至不同存在点中的pe(例如针对存在网络中断时的稳健性)等。要求的示例可以包括接口类型、带宽、可支持路由的数目和最大成本。
32.图1是图示了根据本公开的技术的示例网络和云计算设备的概念图。网络120可以是服务提供方网络,其可以经由接入网络(诸如接入网络130)向主机设备(诸如主机设备108)提供客户服务。为了提供这种客户服务,网络控制器100可能需要供应网络资源,诸如提供方边缘路由器(pe),诸如pe路由器106a至106n(在下文中称为pe 106),以及在一些示例中供应其他网络设备(未示出)。客户服务可能与某些要求相关联,诸如接口类型、带宽、可支持路由的数目和/或最大成本。
33.管理员104可以经由用户界面与网络控制器100交互,以手动地供应pe 106和其他网络设备以提供这种客户服务。然而,当网络120包括大量网络设备并且存在大量客户服务要被放置在网络设备上时,确定如何分配诸如pe 106等网络资源可能是极其困难的,而不会使一个或多个网络设备负担过重。当网络设备负担过重时,网络设备可能会丢弃业务,这可能会导致客户服务无法按照该客户服务的原始要求提供。由于超出客户服务的要求的附加约束,这一切都可能变得更加复杂。例如,约束可能是客户服务必须使用两个不同的pe(例如pe106c和pe 106b在初级pe发生故障的情况下用于冗余性目的)。由于在处理具有数千个要求和数千个约束的数千个网络设备和数千个客户服务时,手动放置服务非常困难,因此客户服务被手动放置的网络通常效率低下,导致成本更高,因为与客户服务以自动方式或半自动方式(例如在另一计算设备的辅助下)被放置在网络资源上相比,需要更多的网络资源。
34.为了放置客户服务,管理员104可以通过网络控制器100与计算设备100通信,诸如向计算设备100传输服务实例。服务实例可以是计算设备100的工作订单,以确定客户服务在网络120的各种网络资源上的放置。服务实例可以包括客户服务模型的实例(客户服务实例)、可以指示已经分配给客户服务的现有网络资源的网络服务模型的实例(网络服务实例)和/或例如当有新的网络资源时的网络资源模型的实例(网络资源实例)。这些模型对于网络控制器100可能是唯一的,使得它们可能与由另一网络(未示出)的另一网络控制器使用的模型不同。
35.计算设备100可以位于云计算环境中,诸如云网络110。在一些示例中,管理员104和网络控制器100可以经由网络120和pe 106a与计算设备102通信。在其他示例中,管理员104和网络控制器100可以经由另一路由与计算设备102通信。计算设备102可以被配置为接收服务实例,将客户服务实例、网络服务实例和/或网络资源实例映射或转换为由计算设备102使用的内部放置模型。
36.在一些示例中,计算设备102可以自动地将在客户服务实例中表示的客户服务放置到在网络服务实例或网络资源实例中表示的网络资源上。在其他示例中,管理员104可以经由网络控制器100与计算设备102交互,以将客户服务手动地放置在网络资源上。在这种情况下,计算设备102可以被配置为输出可能由于手动放置而出现的任何问题的指示,以用于向管理员104显示。在其他示例中,计算设备102可以辅助管理员104将客户服务放置在网络资源上。
37.一旦计算设备102已经确定将客户服务实例中表示的客户服务放置到网络资源实例中表示的网络资源,计算设备102可以将更新后的网络服务实例映射为由网络控制器100使用的网络服务模型格式,并且将更新后的网络服务实例传输给网络控制器100。该更新后的网络服务实例可以包括与客户服务如何被放置在网络资源上相关的信息。在一些示例中,网络服务实例包括网络控制器100供应网络资源(诸如pe 106)所需的所有信息,以满足客户服务的要求和任何关联的约束。通过这种方式,网络控制器100可以供应网络资源,使得由主机108使用的客户服务满足主机108的任何预期。
38.在一些示例中,最大成本可以是要求,诸如服务成本必须低于$400。例如,带宽的成本函数能够与诸如隧道、对等链路、内部路由和外部路由等网络元素相关联。在成本是要求或约束的示例中,计算设备102可以使用成本函数来评估放置客户服务的不同方式。在一
些方面中,隧道或内部路由的成本函数能够与隧道或内部路由遍历的链路数目相关,或者与隧道或内部路由引起的延迟逆相关。
39.图2是图示了根据本公开的技术的可以确定客户服务在资源上的放置的示例计算设备的框图。计算设备200可以是图1的计算设备102的示例。计算设备200从网络控制器100(图1)或另一网络的网络控制器接收服务实例,并且将这些服务实例映射到计算设备200的内部放置模型中。计算设备200放置或辅助将与服务实例相关联的客户服务放置在与网络资源实例相关联的网络资源上。计算设备200将放置的客户服务映射到由网络控制器100可消耗的网络服务实例中,并且将网络服务实例传输给网络控制器100。
40.计算设备200可以包括耦合至网络接口220的控制单元202,以通过入站链路和出站链路与诸如网络控制器100(图1)等其他网络设备交换分组。网络接口220可以是由管理员104(图1)用于与计算设备200通信的接口。在一些示例中,网络接口220支持用于放置服务的三个外部接口。例如,网络接口220的第一外部接口可以是用于激活放置设计的接口,其可以将分配的放置映射到客户的网络和服务模型。网络接口220的第二外部接口可以是用于管理资源池的资源接口,客户服务可以根据ni被放置在该资源池上。网络接口220的第三外部接口可以是用于管理被放置在网络资源池的网络资源上的服务实例的接口。网络接口220可以接收客户服务实例216,并且可以接收和/或输出网络服务实例218。客户服务实例216可以是由客户用于表示客户服务的客户服务模型的实例,并且网络服务实例218可以是由客户用于指示将网络资源分配给客户服务的网络服务模型的实例。
41.控制单元202可以包括一个或多个处理器(未在图2中示出),其执行软件指令,诸如用于定义软件或计算机程序的那些软件指令,被存储到计算机可读存储介质(诸如存储装置242),该计算机可读存储介质可以是非瞬态计算机可读介质,包括存储设备(例如磁盘驱动器或光学驱动器)或存储器(诸如闪存或随机存取存储器(ram))或者任何其他类型的易失性或非易失性存储器,其存储指令以使一个或多个处理器执行本文描述的技术。备选地或附加地,控制单元202可以包括专用硬件,诸如一个或多个集成电路、一个或多个专用集成电路(asic)、一个或多个专用处理器(assp)、一个或多个现场可编程门阵列(fpga)或者专用硬件的一个或多个前述示例的任何组合,用于执行本文描述的技术。
42.控制单元202为放置元素212提供操作环境。放置元素212可以包括放置计算引擎214,其可以被配置为生成客户服务在网络资源上的放置。在一些示例中,放置元素212或放置计算引擎214可以被实现为在一个或多个服务器的一个或多个虚拟机上执行的一个或多个过程。即,尽管通常被图示和描述为在单个计算设备200上执行,但是这些组件的各个方面可以被委托给其他计算设备。
43.放置计算引擎214可以包括内部放置模型220。内部放置模型220可以是在生成客户服务在网络资源上的放置时由计算设备200内部使用的模型。放置计算引擎214还可以包括设计界面236和web用户界面238。设计界面236可以被配置为接受来自管理员104的命令,诸如以激活网络和服务设计,并且使放置计算引擎214对那些命令执行。设计界面236还可以被配置为与基于文件系统的设计项目工具244交互,其包含能够经由设计界面236激活、创建和测试的基于模型的设计。例如,设计界面236可以读取设计项目,并且包括用于针对示例模型实例测试设计的功能性。
44.服务设计工具234可以在内部实例化放置服务,或者连接至外部放置服务。服务设
计工具234可以具有基于终端的用户界面,并且还可以经由自动化脚本以“无头”模式运行。服务设计工具234可以支持基于设计项目中所包含的设计和示例实例来运用所有放置服务功能。在一些示例中,服务设计工具234可以是管理员104可以用于构造和测试设计的可执行程序。例如,管理员104可以执行服务设计工具234来打开项目,加载设计和示例网络实例,并且使用该工具来测试设计。
45.管理员104可以使用服务设计工具234来打开项目,并且结合网络设计测试服务设计,以确保示例服务订单被正确放置并且网络资源按预期分配。在放置设计之后,管理员104可以向设计项目添加洞察剧本和主动保证监测工件,以测试和监测服务的运行实例。
46.管理员104可以负责激活和修改由放置计算引擎214确定的网络和服务设计。例如,管理员104可以上传网络设计,并且以设计项目作为输入上传服务设计(例如网络服务模型的实例和客户服务模型的实例),两者都可以调用设计界面236以激活正在运行的放置服务中的设计。
47.web用户界面238可以被配置为提供基于web的界面,其可以包括图形用户界面组件、基于文本的组件等,以便于管理员104经由互联网与放置计算引擎214交互。在一些示例中,web用户界面238可以使用放置界面250来更新工作订单中在建的服务实例,以测试放置的可行性,并且向管理员104报告关于工作订单包含的客户要求或约束的剩余可用选项。
48.放置计算引擎214还可以包括网络资源接口254,其可以被配置为更新网络资源池,例如当工作订单包括网络资源模型的实例时。
49.在一些示例中,计算设备200可以包括订单管理器248。订单管理器248可以编排工作订单(诸如服务实例)的构造和执行,以准备和提供网络服务。工作订单可以流过计算设备200可以与工作订单一起处理的工作项的控制图,该工作订单可以包括从存储装置242接收输入并且向存储装置242提供输出。在一些示例中,计算设备200可以包括argo上的工作流管理器界面,其支持启动和监测工作流的执行。
50.在一些示例中,计算设备200是云计算设备,并且放置元素212是在高度可用的云环境中运行的有状态组件。因此,在一些示例中,计算设备200可以包括健康检查界面222,其被配置为检查放置元素的健康并且便于选择领导,因为云环境可以通过创建放置元素副本并且删除不健康的放置元素来管理缩放。
51.放置元素212可以满足作为云部署环境中可用的追踪、度量和日志服务的客户端的其他可观察性要求。在一些示例中,放置是云微服务软件开发工具包(sdk)应用,因此经由sdk的框架实现其追踪、指标、日志、配置和其他服务。
52.设计者可以将服务设计元素添加到设计项目,包括csm、nsm、变换模板和用于测试目的的服务订单示例。特别是针对放置服务设计,设计者可以添加使放置适应所使用的nm、csm和nsm所需的选择器和变换器。
53.在一些示例中,放置计算引擎214包括人工智能(ai)算法252,其可以被训练为生成客户服务在网络资源上的有效放置。例如,ai算法252可以接收评估准则(例如从图1的网络控制器100),并且自动提出放置服务的方式以优化评估准则。例如,可能无法满足所有客户的要求和约束,但满足其中的大多数可能是可以接受的。ai算法252可以确定放置服务以优化评估准则。在另一示例中,可能有必要移动一些服务来为具有更具体要求的新服务释放资源,但存在移动服务中断的一些风险。ai算法252可以确定可以最小化中断的服务的移
动。在一些示例中,ai算法252可以是基于约束的分支定界优化算法。ai算法252可以在计算昂贵的良好测试示例上训练,以便提高和/或加速新放置请求的性能。
54.图3是图示了根据本公开的技术的示例映射和逆映射的概念图。图3可以表示用于映射和逆映射的示例类别。网络控制器300可以是图1的网络控制器100的示例。网络控制器300可以包括客户服务模型304、网络资源模型306和网络服务模型308。客户服务模型304可以是由运行网络控制器300的客户使用的客户服务的表示。客户服务模型304可以包括客户服务模型元素310,其可以包括表示客户服务的要求和/或约束的对象。网络资源模型306可以是网络控制器300可以管理的网络的网络资源的表示。网络资源模型306可以包括网络资源模型元素312,其可以包括表示客户网络中的可用资源的对象。网络服务模型308可以是网络资源上已经放置的客户服务的表示。管理员104(图1)可以将客户服务模型304和表示资源的资源模型的实例(诸如网络服务模型308和/或网络资源模型306)传输给计算设备302,以便鉴于与客户服务相关联的要求和约束,使计算设备302将与客户服务模型304相关联的客户服务放置在与网络资源模型306或网络服务模型308相关联的网络资源。
55.计算设备302可以将客户服务模型304、网络资源模型306和/或网络服务模型308的实例映射到内部放置模型320中。内部放置模型320可以是图2的内部放置模型220的示例。客户服务模型304、网络资源模型306和网络服务模型308可以是由操作网络控制器300的客户使用的定制模型。内部放置模型320可以包括客户服务模型314和和网络资源模型316,其可以以不同于网络控制器300的客户服务模型304和网络资源模型316的方式表示。例如,客户服务模型314可以标识服务模型326的服务实例322正在运行的客户318(例如操作网络控制器300的客户)。客户服务模型314可以包括可能具有要求330的客户元素324。这些要求330还可以包括可能需要被满足以便提供期望的客户服务的约束328,或者与其相关联。
56.网络资源模型316可以包括资源池334的资源332。资源332中的每个资源都可以被使用,或者可以是空闲的。当计算设备302放置资源332中的一个资源以满足要求330中的要求或约束328中的约束时,可以说该资源被使用。未使用的资源可以说是空闲的。网络资源模型316的一些资源可以是网络元素336,诸如路由器、交换机、接口等。
57.例如,客户元素可以表示表示多个客户服务的服务对象。在一些示例中,多个客户服务中的每个客户服务与至少一个要求和至少一个约束相关联。在一些示例中,要求330可以包括接口类型、带宽、路由数目或最大成本。在一些示例中,约束328可以包括相同存在点、不同存在点、相同网络设备或不同网络设备。在一些示例中,多个网络资源可以包括具有接口类型的接口、链路、与链路相关联的带宽、路由、区域、存在点、路由区分符、路由目标、地址、前缀或网络设备。
58.在一些示例中,计算设备302可以使用内部放置模型402将多个资源332自动分配给多个客户服务,使得多个资源的分配满足多个客户服务中的每个客户服务的(要求330中的)至少一个要求和(约束328中的)至少一个约束。计算设备302然后可以生成指示将多个资源332分配给多个客户服务的数据,并且将指示分配的数据逆映射成由网络控制器300可消耗的格式,并且将逆映射的数据传输给网络控制器300。例如,计算设备302可以将指示分配的数据逆映射成包含指示分配的信息的网络服务模型实例中。计算设备302可以向客户设备400输出经逆映射的数据。通过这种方式,客户设备400可以接收使客户设备400能够在
网络120(图1)的资源上供应多个客户服务的信息。
59.在一些示例中,不是分配多个资源以满足多个客户服务的所有约束,计算设备302可以针对(诸如要求330中的)每个要求和(例如约束328中的)每个约束自动确定要求或约束是否能够仅由多个资源332中的特定资源满足。例如,客户服务的要求可能是链路为50gb,并且可能只有一个50gb链路,所有其他链接均小于50gb。因此,50gb链路的特定要求可能仅由一个50gb链路满足。响应于该确定,计算设备302可以基于该确定来将多个资源332中的至少一个分配给多个客户服务中的至少一个客户服务。例如,计算设备302可以将50gb链路分配给具有50gb链路约束的客户服务。在针对要求330中的每个要求和约束328中的每个约束确定之后,计算设备302可以向客户设备400提供信息,以使客户设备400能够供应至少一个客户服务(例如具有50gb限制的客户服务)。
60.通过将客户服务实例、网络服务实例和/或网络资源实例映射到内部放置模型中,计算设备200可能能够确定客户服务在任何网络的网络资源上的放置,而不仅仅是网络120。通过将所得放置映射回由网络控制器100可消耗的网络服务实例中,网络控制器100可以具有供应网络120(图1)的网络资源所需的所有信息。因此,本公开的技术通过变换由计算设备200接收的数据来提供技术的实际应用。
61.图4是图示了根据本公开的技术的内部放置模型320的概念图。图4可以表示内部放置模型320的示例类别。虚线可以表示计算设备302(图3)可以执行的映射。例如,计算设备302可以从客户接收服务订单400。服务订单400可以包括网络服务实例402和客户服务实例404。在一些示例中,服务订单400可以包括网络资源实例,其可以包括网络资源406的表示。计算设备302可以使用服务订单400和网络资源406的任何先验知识来将客户服务和网络资源映射到内部放置模型320中。例如,网络设备302可以将服务订单400的元素映射到要求选项jq 424和约束jq 426中(均在下文中描述)。网络设备406可以将网络资源406的元素映射到资源池jq 414(在下文中描述)。
62.内部放置模型320的元素可以包括可以被用于表示服务定义的服务定义412、可以被用于例如使用javascript对象表示法(json)查询(jq)语言来管理诸如资源池438等资源池的资源池jq 414。json是标准的基于文本的格式,用于表示基于javascript对象句法的结构化数据。例如,jq可以是json文档的通用变换器,类似于xml(可扩展标记语言)的xpath和xslt(可扩展样式表语言变换)。尽管本公开中陈述的示例可以指使用jq语言,但是任何编程语言都可以根据本公开的技术使用,诸如python、c++、go或其他合适的编程语言。
63.内部放置模型320还可以包括可以标识提交服务订单400的客户的客户416以及可以表示或标识网络资源406的各种网络元素的网络元素418。
64.服务定义412可以与放置jq 420交互。放置jq 420可以接受具有“订单”属性的对象作为输入(包含具有输入实例的服务订单)以及包含上述要求列表的“放置”属性,其中选项列表和放置结果与输入选项限制和手动放置的形式相同。放置jq可以在“订单”属性中输出对json文档的更新,以反映在服务被放置的情况下由于约束和放置分配的传播而产生的选项更新。
65.可能有多于一个放置jq。后续放置jq的“订单”输入可能是前一放置jq的输出。
66.服务定义412还可以与服务模型422交互,该服务模型422可以是图3的客户服务模型314的示例以及要求选项jq 424,其标识服务实例中的要求以及例如有哪些选项用于将
要求放置在资源池438的网络资源上。约束jq 426标识约束,诸如约束430,其必须基于要求的组合来满足。服务实例428可以表示客户服务的实例。
67.服务实例428可以是服务订单400的实例,并且与约束430和客户元素432相关联。约束428可以与要求434相关联。要求434可以与资源436相关联,该资源436可以是在资源池438中表示的资源。资源池438可以包括已使用的和空闲的资源。当计算设备302在资源436上放置服务时,资源436可以在内部放置模型320中更新以指示资源436被使用。
68.通过在内部放置模型320中表示客户服务模型和网络服务模型,计算设备302可以为许多不同的客户生成客户服务在网络资源上的布置,即使许多不同的客户可能正在使用不同的客户服务模型和/或他们自己的网络设备内的网络资源模型。
69.在一些示例中,基础约束(诸如约束430)也必须由有效放置来满足。一个这样的约束可以包括接口必须位于与客户站点相同位置的节点上。另一这样的约束可以是访问所需的带宽必须从访问被放置的节点分配。另一这样的限制可以是站点的路由数目必须从访问被放置的节点分配。进一步地,虚拟私有网络(vpn)还可以对发生故障时的稳健性具有多样性限制,这可能需要两个或多个访问被放置在不同的节点上。
70.示例服务放置用例现在被讨论。设计管理可以包括以下方面:网络设计和服务设计。网络设计可以是指定如何从输入网络服务实例402中选择网络资源池的过程。服务设计可以是指定如何从输入客户服务实例404中选择要求、有效网络选项和约束的过程。服务设计也可以是指定如何从输入网络服务实例402确定手动提供的放置限制的过程。服务设计也可以是指定如何用验证/缩小选项并自动放置服务的结果更新网络服务实例402和客户服务实例404的过程。
71.在一些示例中,网络资源池(诸如网络资源池438)可以在与它们相关的所有服务之间共享。通过这种方式,服务设计激活通常不需要对网络设计进行任何改变。如果服务设计取决于不在当前网络设计中的网络资源,则网络设计可以作为服务设计激活的一部分进行更新。
72.服务激活还有多个其他非放置方面,诸如激活关联的工作流。放置410被用于预供应和服务供应工作流。预供应是发现和准备新网络资源以支持服务的过程。放置410可以确定新的或更新的网络上的网络设计,以维护可用于分配给服务的资源池。服务供应可以包括组成服务订单,并且在csi 404中收集对服务订单400的客户要求。
73.在服务订单组成过程中,放置410可以在订单处于一致状态的任何时候调用,以在语义上验证订单并且提供有效选项以考虑所有要求。例如,在订单组成过程中的任何时间,图2的web用户界面238可以发送服务订单以更新服务订单包含的实例。放置410可以通过传播约束并且分配由管理员104作为手动放置请求的任何资源来更新实例。传播约束可以包括确定要求的剩余选项集。
74.选项能够经由管理员104的输入来缩小,例如管理员104可以请求访问被放置在纽约市的存在点上,即使服务设计将允许放置在纽约市和康涅狄格州的存在点上。手动放置是选项的非常具体的缩小,指示访问要被放置的确切pe接口。
75.传播约束能够确定由管理员104输入触发的选项减少,诸如手动放置决策。例如,如果管理员104将访问手动放置在pe nyc1中并且具有另一访问要求(具有存在点多样性约束),则涉及pe nyc1的所有选项能够从第二访问中移除。
76.约束传播能够减少选项的另一方式是服务订单变得更加精细。当要求和约束被添加到服务订单时,早期指定要求的选项集能够被消除。约束传播能够减少选项的另一方式是由于并发处理的订单分配资源,这可能会使某些选项不再可用。
77.订单组成可以是交互过程,其中放置410有助于缩小可用选项,这些选项填充手动放置的拾取列表和/或指示要求无法满足,因此运营商能够与客户协商或者订购更多网络资源以组成满足所有约束的订单。
78.放置410在执行时发挥作用。通过执行服务订单的放置,如果服务放置不是完全手动放置的,则自动完成服务放置,并且在用包括变换和应用于设备的工作流中的后续步骤所需的网络服务实例402更新订单之前分配资源,服务供应工作流开始。
79.基于模型的放置设计可以根据过滤器程序来指定,该过滤器程序由模型通知,将模型实例变换为内部放置模型,反之亦然。例如,计算设备302(图3)可以将输入实例变换为诸如资源池、要求、约束以及这些元素之间的关系等放置元素。放置的实例可以依次被变换回使用中的模型的更新实例中。
80.放置410可以为三个选择器类型定义的ds的放置元素和选择器定义模式。例如,jq过滤器可以将网络资源变换为通过其网络元素标识(存在点/pe/接口类型)、位置和类型进行索引。
81.网络设计可能由模型和网络资源池jq 414过滤器集合组成。资源池jq 414过滤器标识资源池jq 414过滤器在其上运行的网络模型实例中的网络资源池。
82.示例网络模型可以包括存在点集合,其位置包含具有带宽和路由资源的pe。每个pe可能由接口集合组成,这些接口按照它们能够提供的服务类型(专线、dsl等)进行分类。
83.例如,资源池jq 414可以采用正在使用的网络模型的实例,并且在网络元素“森林”中输出通向资源池的路径。任何数目的资源池jq能够被开发以构造资源池森林的不同部分。在其他示例中,除了可以有效地包括具有一个索引的分层数据库的网络元素森林之外,内部放置模型320可以以另一方式组织,诸如包括一个或多个关系数据库、图形数据库等。
84.以下是资源池jq 414的输出模型。资源池包括网络元素路径。网络元素路径可以是名称:类型对的序列,每个类型是路径末尾的网络元素的属性,并且名称是该属性的值。路径用于将网络元素组织和索引到支持有效要求选项查询的分层数据库中。
85.服务设计可以包括要求、选项、约束和放置jq过滤器。如果要求被手动放置在实例中,则要求jq可以使用网络元素森林中的池路径来指示这一点。在命名或编号资源的情况下,资源的具体名称或编号可以分别在命名要求或编号要求中指示。
86.与要求选项和约束jq相比,放置jq的工作方向相反:它们将放置的服务的放置元素作为输入,并且用放置更新的结果更新服务订单400中的网络服务实例402和/或客户服务实例404。
87.图5a至图5b是图示了多个资源的示例和多个资源中的一些资源的示例放置的概念图。图5a和图5b可以表示用于放置的示例对象(或类别的实例)类别。如图5a所示,资源可以包括区域,诸如西北(nw500)。资源还可以包括一个位置,诸如东北的纽约市(nyc ne 502)、东北的波士顿(bos ne 504)和西南的洛杉矶(lax sw 506)。位置可以包括存在点,诸如nyc1 508、nyc2 510、bos1 512、lax1 514和lax2 516。每个存在点可以包括多个路由和
带宽。例如,nyc1 508具有100万个路由和40gb的带宽。每个存在点可能具有关联接口类型的池。例如,nyc1 508可以具有以太网类型接口池(eth 518),并且nyc2 510可以具有数字订户线类型接口池(dsl 520)和专线类型接口池(ll 522)。类似地,bos1 512可以具有eth 524、dsl 526和ll 528。每个接口类型池可以包括该类型的接口。例如,eth 518可以具有以太网接口ge-0/0/0、ge-0/0/1等,如框530所示,dls 520可以具有框532所示的dsl接口,ll 522可以具有框534所示的专线接口,eth 524可以具有框536所示的以太网接口,dsl 526可以具有框538所示的dsl接口,并且ll 528可以具有框540所示的专线接口。
88.在一些示例中,资源分配或放置可以至少部分地基于满足给定客户服务的要求。例如,如图5b所示,第一服务可以具有由接口542表示的具体接口,当计算设备302在图5a的资源上放置客户服务时,该具体接口可以被满足。在该示例中,接口可以是接口532。因此,当放置该示例客户服务时,计算设备302可以将接口532标识为dsl接口。由于接口532是接口类型dsl 520,因此在东北的纽约市的存在点nyc2 510中,计算设备302可以放置客户服务,如图5a中的虚线所图示的并且在图5b中由虚线框概况的(例如接口542、ne 544、nyc546、nyc2 510和接口532)。
89.在另一示例中,客户服务可以具有作为要求的特定数目的可支持路由,例如如路由548所表示的。当放置该示例客户服务时,计算设备302可以标识资源,该资源至少具有放置服务所需的可支持路由数目。如果路由的数目是1000万,则计算设备302可以如图5a中的虚线所示放置客户服务。例如,计算设备302可以将服务从西北区域(nw500)放置到波士顿位置bos 504,再到bos1 512存在点。该示例也在图5b中与匹配的虚线(例如路由548、ne 544、bos 550、bos1 512和10m路由552)一起示出。
90.在另一示例中,客户服务可能具有带宽要求,例如40gb。在该示例中,计算设备302可以将客户服务放置在图5a的资源上,以满足带宽要求。例如,计算设备302可以确定lax1具有40gb的空闲带宽,并且如图5a中交替的虚线/点划线所指示的放置服务。该示例也由图5b中的类似带线框表示(带宽554、sw 556、lax 558、lax1 514和40g 560)。
91.在图5a至图5b的这些示例中,每个示例都涉及放置具有单个要求(接口、路由或带宽)的单个客户服务。随着每个客户服务的要求数目的增长,附加约束被放置在客户服务上,更多数目的客户服务被添加,更多的资源被添加,并且在这些资源上放置客户服务开始消耗资源,确定如何最好地将资源分配给客户服务变得更加复杂。
92.资源池jq可以追踪输入实例中的路径,并且在放置元素模型中构造通向资源池的网络元素的名称:类型路径。
93.图6是描绘了根据本公开的技术的资源池的示例资源树的概念图。图6可以表示用于放置的示例对象(或类别的实例)。资源树600包括三种类型的资源:接口、带宽和路由。资源树600的接口、带宽和路由中的每一个可以包括位置,诸如东北(ne)或西南(sw)。接口也可能具有关联的接口类型,诸如以太网、ll或dsl。接口、带宽和路由中的每一个都可能具有关联的存在点,诸如纽约市(n)、波士顿(b)或洛杉矶(l)。接口、带宽和路由中的每一个都可以具有关联的存在点,诸如nyc1(n1)、nyc2(n2)、bos1(b1)、lax1(l1)和lax2(l2)。在该示例中,接口、带宽和路由数目在关联的存在点中被示出为空闲的。这意味着这些资源没有通过在资源上放置客户服务来分配。
94.运行所有资源池jq(诸如图4的资源池jq 414)允许放置410,以构造网络元素的“森林”,其中森林中的每个路径通向资源池,放置410将该资源池分配给服务实例中的要求,就像这样。
95.图7是描绘了根据本公开的技术的层3虚拟私有网络(l3vpn)服务订单实例的概念图。图7可以表示与服务订单实例一起使用的示例类别。例如,客户(acme 5)可以通过将服务订单实例传输给计算设备302来放置l3vpn服务700的l3vpn服务订单实例。计算设备302可以将服务订单实例映射到内部放置模型320中。例如,计算设备302可以确定l3vpn服务700是vpn服务702中的一个vpn服务,并且用于客户acme 5 704。计算设备302可以确定存在该l3vpn服务订单实例中涉及的站点706。
96.这些站点中的每个站点都可能具有路由要求。例如,对可支持的总部路由708的数目的要求可以是1000个路由,并且对可支持的研究和设计(r&d)路由710的数目的要求可以是250个路由。总部路由708可以包括位置要求712(诸如在ne 720中)和访问要求714(诸如用于初级放置的1gb带宽和用于备用放置的1mb带宽)。r&d路由710可以包括访问716和位置要求718。例如,位置要求718可以是sw722的,并且访问要求716可以是5mb的带宽。
97.计算设备302可以使l3vpn客户服务的放置基于l3vpn服务订单实例的各种要求和约束。例如,计算设备302可以确定将初级总部路由放置在ne 720的位置处,其中承载是专线,带宽为1gb并且放置在e1-1处,如框724中指示的。计算设备302可以确定将备用总部路由放置在ne 720的位置处,其中承载是dsl,带宽为1mb,并且放置在a-2处,如框726所示。计算设备302也可以确定将r&d路由放置在sw 722的位置处,其中承载是以太网,带宽为5mb,并且放置在et-3处,如框728所示。这是相当简单的示例,具有两个办公室、一些要求和两个约束。现实示例可能极其复杂。虽然图7的示例针对l3vpn,但是在一些示例中,服务订单实例可以是第2层虚拟私有网络(l2vpn)或任何网络服务。
98.图8是图示了根据本公开的技术的放置选项和放置资源的概念图。图8可以表示用于放置的示例对象(或类别的实例)。在图8的示例中,图7的示例的先前未分配的资源被示出。来自图7的示例的客户服务也被示出。例如,针对家庭办公室(ho),客户服务802可以具有两个存在点被使用的约束,并且具有一个存在点具有1gb带宽和1k路由并且另一存在点具有1mb带宽和1k路由的要求。针对r&d设施,客户服务804可以具有相同pe被使用的约束,并且具有5m带宽和250个路由的要求。
99.计算设备302可以确定用于分配的哪些选项是最优的,并且分配这种选项。虚线中的每个虚线表示未被进行的潜在分配,并且实线中的每个实线表示被进行的分配。计算设备302可以更新与分配资源中的每个资源相关联的空闲的和已使用的统计数据,以反映新的分配。在图8的示例中,f表示“空闲的”,并且u表示“已使用的”。
100.图9是描绘了资源到客户服务的示例分配以满足关联约束的概念图。在图10的示例中,至少一个客户服务具有用于客户服务的资源在同一pe上的约束900。至少一个客户服务具有用于客户服务的资源在不同pe上的约束902。至少一个客户服务具有两个以太网接口的要求(要求904和要求906)以及dsl接口(要求908)。
101.pe1 910可以具有可用的单个dsl接口和单个以太网接口。因此,为了满足要求904、要求906和约束900,以太网资源(同一pe上的两个以太网接口),pe2 912的资源必须被分配给要求904和要求906,其包括一个dsl接口和三个以太网接口。
102.为了满足约束902,该要求908被放置在与要求906不同的pe上,pe1的dsl接口必须
被分配给要求908。同样,这是具有两个约束和三个要求的简单示例。在具有数千个资源、数千个客户服务(具有数千个约束和数千个要求)的网络的现实示例中分配网络资源变得非常笨拙。
103.图10是图示了根据本公开的示例放置辅助技术的概念图。图10可以表示用于放置的示例对象(或类别的实例)。在图10的示例中,客户服务1000和客户服务1002被示出。两次分配(示例以粗线示出)必须被进行,以满足与客户服务相关联的约束。选项/放置下示出的虚线中的每个虚线都是选项,并且无需被应用以满足约束。换言之,如果分配未被进行,诸如由粗线表示的分配,则与客户服务1002相关联的约束无法被满足。例如,为了满足与客户服务相关联的剩余约束(一旦粗线放置被进行),可能有多个选项。换言之,剩余约束中的每个约束都可以由多于一个资源满足。
104.例如,为了满足客户服务1002的要求,即,客户c1在不同的pe上有其接口,带宽为7、6和4的接口要求中的每个接口要求必须被放置在n1、n2和n3的不同pe上。如所示,ce n1有1个空闲接口,而ce n2和ce b1都有2个空闲接口。因此,ce n1的空芯接口必须被分配给客户服务1002的接口要求中的一个接口要求,以符合关联约束。如所示,ce n1的接口被分配给c1/s0/a0的要求。在其他示例中,ce n1的接口可以被分配给要求c1/s0/a1或c1/s1/a0。
105.相比之下,客户服务1000的要求和约束不需要任何具体的资源分配。c0/s0/a0和c0/s0/a1的要求被约束在不同的存在点上。由于存在点n包括pe n1和pe n2上的空闲接口,并且存在点b包括pe b1上的空闲接口,因此客户服务1000的要求和约束可以通过pe n1或pe n2的资源分配和pe b1的资源分配来符合。
106.在一些示例中,计算设备302可以使用分数,并且确定多个客户服务在最大化分数的多个网络资源上的放置。计算设备302然后可以输出具有最大分数的放置选项,以经由与网络控制器300相关联的显示器向管理员104显示。管理员104可以选择以选择这种配置,或者选择以不选择所显示的配置。
107.在一些示例中,计算设备302可以促进管理员104为一些客户服务设置相对于其他客户服务的优先级。例如,管理员能够向计算设备302指示特定服务最重要或比另一特定客户服务重要。
108.在一些示例中,计算设备302可以使用演绎规则来查看要求或约束是否能够被符合。在一些示例中,计算设备302可以使用人工智能或线间编程。在一些示例中,计算设备302可以使用分支定界技术。例如,计算设备302可以确定初始界限,然后检查另一界限。在一些示例中,计算设备302可以作为约束优化器来操作。
109.在一些示例中,在辅助模式下,计算设备302可以指示需要改变其他客户服务的放置,以达到当前被放置的客户服务的要求。在一些示例中,计算设备302可以支持两个准则,以在多个放置选项之间自动选择。例如,计算设备302可能更喜欢在修改客户服务时最小化中断的放置,诸如不改变现有客户服务的放置,除非有必要进行这种改变以适应任何变化的约束。在另一示例中,当分配资源时,计算设备302可能更喜欢跨多个资源池的平衡分配,或者备选地在开始从第二资源池分配之前耗尽第一资源池(例如类似于多协议标签切换(mpls)最少填充和最多填充准则)。
110.在一些示例中,可能存在与无法被满足的新客户服务相关联的至少一个约束或至
少一个要求。在这种情况下,管理员104可以询问客户是否可以接受客户放宽至少一个要求或至少一个约束。如果客户可以接受,则管理员104可以经由网络控制器300和/或计算设备302改变与新客户服务相关联的至少一个要求或至少一个约束。如果客户无法接受,则管理员104可以使用计算设备302来重新分配多个资源,使得与新客户服务相关联的至少一个要求或至少一个约束被符合。备选地,管理员104可以经由计算设备302向多个客户服务中的每个客户服务指派优先级,并且基于多个客户服务中的每个客户服务的所指派的优先级来重新分配多个资源。作为另一替代方案,管理员104可以基于预定准则经由计算设备302重新分配多个资源的至少一部分。
111.图11是图示了根据本公开的用于将客户服务放置在资源上的示例技术的操作的流程图。计算设备302可以从客户设备接收表示多个客户服务的客户服务模型的实例,多个客户服务中的每个客户服务与对应的至少一个要求和对应的至少一个约束相关联(1102)。例如,计算设备302可以从网络控制器300接收可以包括客户服务实例404(图4的两者)的服务订单400。
112.计算设备302可以从客户设备接收表示多个资源的资源模型的实例(1104)。例如,计算设备302可以从网络控制器300接收可以包括网络服务实例402或网络资源505的服务订单400。
113.计算设备302可以将客户服务模型的实例和资源模型的实例映射到由计算设备维护的内部放置模型(1106)。例如,计算设备302可以将客户服务模型和网络服务实例402和/或网络资源的实例映射到内部放置模型320。
114.计算设备302可以使用内部放置模型将多个资源自动分配给多个客户服务,使得多个资源的分配满足多个客户服务中的每个客户服务的至少一个要求和至少一个约束(1108)。例如,计算设备302可以使用内部放置模型320将多个资源自动分配给多个客户服务,使得多个资源的分配满足多个客户服务中的每个客户服务的至少一个要求和至少一个约束。
115.计算设备302可以响应于分配生成数据,该数据指示多个资源如何被分配给多个客户服务(1110)。例如,计算设备302可以生成数据,该数据指示将多个资源分配给多个客户服务。
116.计算设备302可以将数据逆映射成由客户设备可消耗的格式,该数据指示多个资源如何被分配给多个客户服务(1112)。例如,计算设备302可以将指示分配的数据映射到网络服务模型实例402中,从而更新网络服务模型实例402。在服务订单400不包括网络服务模型实例402的情况下,计算设备302可以创建网络服务模型实例402,其包括指示分配的数据。
117.计算设备302可以向客户设备输出经逆映射的数据,该数据指示多个资源如何被分配给多个客户服务(1114)。例如,计算设备302可以向网络控制器300输出更新后的网络服务模型412,其包含指示多个资源如何被分配给多个客户服务的逆映射数据。
118.在一些示例中,客户设备是第一客户设备,客户服务模型的实例是第一客户服务模型的实例,资源模型的实例是第一资源模型的实例,多个客户服务是第一多个客户服务,并且多个资源是第一多个资源。在这种示例中,计算设备302可以从第二客户设备(例如不同的网络控制器)接收表示第二多个客户服务的第二客户服务模型的实例,第二多个客户
服务,该第二多个客户服务中的每个客户服务与对应的至少一个要求和对应的至少一个约束相关联,第二客户服务模型不同于第一客户服务模型。在这种示例中,计算设备302可以从第二客户设备接收第二资源的实例,第二资源模型不同于第一资源模型。在这种示例中,计算设备302可以将第二客户服务模型的实例和第二资源模型的实例映射到内部放置模型。在这种示例中,计算设备302可以使用内部放置模型将第二多个资源自动分配给第二多个客户服务,使得第二多个资源的分配满足第二多个客户服务中的每个客户服务的至少一个要求和至少一个约束。在这种示例中,计算设备302可以响应于第二多个资源到第二多个客户服务的=分配来生成数据,该数据指示第二多个资源如何被分配给第二多个客户服务。在这种示例中,计算设备302可以将数据逆映射成由第二客户设备可消耗的格式,该数据指示第二多个资源如何被分配给第二多个资源。在这种示例中,计算设备302可以向第二客户设备输出经逆映射的数据,该数据指示多个资源如何被分配给第二多个客户服务。
119.在一些示例中,资源模型包括表示多个资源上的现有放置客户服务的网络服务模型(例如图3的网络服务模型308)或表示多个资源的网络资源模型(例如图3的网络资源模型306)中的至少一个,其中多个资源包括多个网络资源。在一些示例中,至少一个要求包括选自由以下组成的组的要求:接口类型、带宽、路由数目和最大成本。在一些示例中,至少一个约束包括选自由以下组成的组的约束:相同存在点、不同存在点、相同网络设备和不同网络设备。在一些示例中,多个资源包括选自由以下组成的组的资源中的至少一个:具有接口类型的接口、链路、与链路相关联的带宽、路由、区域、存在点、路由区分符、路由目标、地址、前缀和网络设备。
120.在一些示例中,计算设备302接收服务订单实例(例如服务订单400),该服务订单实例包括客户服务模型的实例(例如客户服务实例404)和资源模型的实例。
121.在一些示例中,服务订单实例包括网络服务订单实例。在一些示例中,服务订单实例包括l2vpn服务订单实例或l3vpn服务订单实例。
122.图12是图示了根据本公开的用于将客户服务放置在资源上的其他示例技术的流程图。计算设备302可以从客户设备接收多个资源的指示(1202)。例如,计算设备302可以从网络控制器300接收网络资源模型306或网络服务实例402的实例,其中任一个可以包括多个资源的指示。
123.计算设备302可以从客户设备接收多个客户服务的指示,多个客户服务中的每个客户服务与对应的至少一个要求和对应的至少一个约束相关联(1204)。例如,计算设备302可以从网络控制器300接收客户服务实例404,其可以包括多个客户资源的指示。
124.计算设备302可以针对每个要求和每个约束自动确定要求或约束是否能够仅由多个资源中的特定资源满足(1206)。例如,计算设备可以将空闲资源与每个要求和每个约束进行比较,以确定特定要求或特定约束是否能够仅由特定资源满足。
125.计算设备302可以基于该确定将多个资源中的至少一个资源分配给多个客户服务中的至少一个客户服务(1208)。例如,如果特定资源必须被分配,使得特定要求或特定约束被满足,则计算设备302可以分配该特定资源以满足特定要求或特定约束。
126.在针对每个要求和每个约束确定之后,计算设备302可以向客户设备提供信息,以使得客户设备能够供应至少一个客户服务(1210)。例如,计算设备302可以向网络控制器300提供网络服务实例402,该网络服务实例402包括使网络控制器300能够供应至少一个客
户服务的信息。
127.在一些示例中,分配多个资源中的至少一个资源包括:分配以满足能够仅由相应的特定资源满足的每个要求或每个约束。在一些示例中,在分配之后,计算设备302确定用于分配多个资源中的剩余资源的至少一部分的多个选项,剩余资源尚未被分配,以满足剩余要求和剩余约束,剩余要求和剩余约束尚未被满足。在一些示例中,计算设备302输出多个资源中的至少一个资源、能够仅由相应的特定资源满足的每个要求或每个约束以及多个选项的表示以供显示。
128.在一些示例中,计算设备302从用户接收用户输入的指示,该用户输入指示多个选项中的一个所选选项。在一些示例中,响应于接收到用户输入的指示,基于多个选项中的一个所选选项,计算设备302将剩余资源的至少一部分分配给客户服务的剩余部分。在一些示例中,计算设备302向客户设备提供信息,以使得客户设备能够供应客户服务的剩余部分。
129.在一些示例中,计算设备302从客户设备接收包括新客户服务的客户模型。在一些示例中,计算设备302确定多个资源的剩余部分无法满足与新客户服务相关联的至少一个要求或至少一个约束,剩余资源尚未被分配。在一些示例中,计算设备302输出多个资源的剩余部分无法满足与新客户服务相关联的至少一个要求或至少一个约束的指示以供显示。
130.在一些示例中,计算设备302改变与新客户服务相关联的至少一个要求或至少一个约束,重新分配多个资源,使得与新客户服务相关联的至少一个要求或至少一个约束被符合,为多个客户服务中的每个客户服务指派优先级,并且基于多个客户服务中的每个客户服务的所指派的优先级重新分配多个资源,或者基于预定准则重新分配多个资源的至少一部分。
131.在一些示例中,至少一个要求包括选自由以下组成的组的要求:接口类型、带宽、路由数目和最大成本。在一些示例中,至少一个约束包括选自由以下组成的组的约束:相同存在点、不同存在点、相同网络设备和不同网络设备。
132.在一些示例中,多个资源的指示包括资源模型的实例。在一些示例中,计算设备302将客户服务模型的实例和资源模型的实例映射到由计算设备维护的内部放置模型。在一些示例中,计算设备302将分配给多个客户服务中的至少一个客户服务的多个资源中的至少一个资源从内部放置模型逆映射成由客户设备可消耗的格式。
133.本公开中描述的技术至少部分地可以被实现在硬件、软件、固件或其任何组合中。例如,所描述的技术的各个方面可以在一个或多个处理器内实现,该一个或多个处理器包括一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者任何其他等效的集成或离散逻辑电路系统以及这种组件的任何组合。术语“处理器”或者“处理电路系统”可能通常指单独的或者与其他逻辑电路系统组合的前述逻辑电路系统或者任何其他等效的电路系统中的任何一个。包括硬件的控制单元也可以执行本公开的一种或多种技术。
134.这种硬件、软件和固件可以被实现在相同的设备内或者单独的设备内,以支持本公开中描述的各种操作和功能。另外,所描述的单元、模块或者组件中的任何一个可以一起或者单独地被实现为离散逻辑设备,而不是互操作逻辑设备。作为模块或者单元的不同特征的描绘旨在强调不同的功能方面,而并不一定意味着这种模块或者单元必须由单独的硬件或软件组件实现。相反,与一个或多个模块或者单元相关联的功能性可以由单独的硬件
或软件组件执行,或者被集成在共有的或者单独的硬件或软件组件内。
135.本公开所描述的技术也可以在包含指令的计算机可读介质(诸如计算机可读存储介质)中实施或编码。例如,当指令被执行时,在计算机可读介质中嵌入或编码的指令可以使可编程处理器或其他处理器执行方法。计算机可读介质可以包括非瞬态计算机可读存储介质以及瞬时通信介质。计算机可读存储介质(有形的且非瞬态的)可以包括随机存取存储器(ram)、只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、闪存、硬盘、cd-rom、软盘、盒式磁带、磁性介质、光学介质或者其他计算机可读存储介质。术语“计算机可读存储介质”是指物理存储介质,而非信号、载波或其他瞬时介质。
136.各种示例已经被描述。这些和其他示例在以下权利要求的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1