计算机网络中的动态意图保证方法和装置以及存储介质与流程

文档序号:31957681发布日期:2022-10-28 22:41阅读:45来源:国知局
计算机网络中的动态意图保证方法和装置以及存储介质与流程
计算机网络中的动态意图保证方法和装置以及存储介质
1.本技术是申请日为2019年6月21日、申请号为201910545102.4、发明名称为“计算机网络中的动态意图保证方法和装置以及存储介质”中国申请的分案申请,其全部内容结合于此作为参考。
技术领域
2.本公开涉及计算机网络,更具体地,涉及网络装置的管理。


背景技术:

3.网络装置可以包括用于本地或远程配置装置的机制,例如,管理接口。通过与管理接口交互,客户端可以执行配置任务以及执行操作命令,以收集和查看被管理的装置的操作数据。例如,客户端可以配置装置的接口卡,调整支持的网络协议的参数,指定装置内的物理组件,修改路由器维护的路由信息,访问软件模块和驻留在装置上的其他资源,并且执行其他配置任务。此外,客户端可以允许用户查看来自装置的当前操作参数、系统日志、与网络连接相关的信息、网络活动或其他状态信息,并且查看从装置接收的事件信息并对其做出反应。
4.网络配置服务可以由多个不同的装置来执行,例如,具有服务卡和/或专用服务装置的路由器。这种服务包括连接服务,诸如诸如,第三层虚拟专用网络(l3vpn)、虚拟专用局域网服务(vpls)和对等(p2p)服务。其他服务包括网络配置服务,诸如诸如,dot1q虚拟局域网(vlan)服务。为了配置装置,以执行服务,用户(例如,管理员)可以编写将高级配置指令(例如,根据网络服务模型的指令)转换成低级配置指令(例如,根据装置配置模型的指令)的转换程序。作为配置服务支持的一部分,用户/管理员可以供应服务模型以及服务模型到装置配置模型之间的映射。
5.为了简化用户的映射定义,网络管理系统(nms)装置可以被设计为提供以简单方式定义映射的能力。例如,一些nms装置提供速度模板和/或可扩展样式表语言转换(xslt)的使用。这种转换器包含从高级服务模型到低级装置配置模型的转换或映射逻辑。通常,高级服务模型中较少量的变化会影响装置配置中较大量的属性。在从高级服务模型中创建、更新和删除服务时,可能会使用不同的转换器。
6.一个或多个策略可以将高级服务模型指定为意图(intent)。例如,策略可以将两个端点之间的第二层对等(l2p2p)服务识别为意图。管理员然后可以指定计算机网络中的哪些可用网络装置支持策略定义的l2p2p服务。然后,nms可以经由指定的网络装置在计算机网络内提供l2p2p服务。


技术实现要素:

7.通常,本公开描述了用于动态(例如,自动)提供和管理由用于管理计算机网络的策略阐述的意图的技术。当处理意图时,这些技术可以使网络管理系统(nms)或其他装置供应系统能够获得使用可扩展命令集定义的资源选择标准(也可以称为“过滤器”)。nms可以
使用资源选择标准自动识别将被配置为支持网络服务器的一个或多个资源。
8.nms可以维护资源数据库并提供接口,通过该接口来收集和更新各种不同的资源以及每个资源的当前状态。资源可以指装置、接口、端口、端口单元等。各种资源可以向nms报告当前状态(和/或nms可以轮询资源,以获得当前状态),其中,nms可以更新数据库,以保持每个资源的当前状态。nms可以基于资源选择标准选择资源,并通过所选择的资源提供网络服务,从而自动提供意图。
9.nms可以获得资源的更新状态,将资源的更新状态与资源选择标准进行比较,以确定意图是否已经降级。当资源不再满足资源选择标准时,nms可以降级意图,并识别另一资源(其可以被称为替换资源)来代替不足的资源。nms接下来可以使用替换资源来供应服务,从而提供意图保证,这可以表示维护或以其他方式管理意图,以确保网络服务的适当服务级别。
10.在一个示例中,技术的各个方面涉及一种方法,包括:由管理装置获得策略,该策略包括定义要在网络内部署的服务的高级配置数据,所述高级配置数据包括资源选择标准,该资源选择标准识别用于从多个潜在资源中选择支持该服务的资源的一个或多个标准;基于资源选择标准,由管理装置从多个潜在资源中确定支持服务的资源;由管理装置将高级配置数据转换成特定于所确定的资源的低级配置数据;并且当在网络中提供服务时,由管理装置使用特定于所确定的资源的低级配置数据来配置所确定的资源。
11.在另一示例中,该技术的各个方面涉及一种装置,包括:一个或多个处理器,其被配置为:获得策略,该策略包括定义要在网络内部署的服务的高级配置数据,所述高级配置数据包括资源选择标准,该资源选择标准识别用于从多个潜在资源中选择支持该服务的资源的一个或多个标准;基于资源选择标准,从多个潜在资源中确定支持服务的资源;将高级配置数据转换成特定于所确定的资源的低级配置数据;存储器,其被配置为存储特定于所确定的资源的低级配置数据;以及接口,当在网络中提供服务时,通过该接口使用特定于所确定的资源的低级配置数据来配置所确定的资源。
12.在另一示例中,该技术的各个方面涉及一种其上存储有指令的非暂时性计算机可读存储介质,在被执行时,所述指令促使管理装置的一个或多个处理器:获得策略,该策略包括定义要在网络内部署的服务的高级配置数据,所述高级配置数据包括资源选择标准,该资源选择标准识别用于从多个潜在资源中选择支持该服务的资源的一个或多个标准;基于资源选择标准,从多个潜在资源中确定支持服务的资源;将高级配置数据转换成特定于所确定的资源的低级配置数据;并且当在网络中供应服务时,使用特定于所确定的资源的低级配置数据来配置所确定的资源。
13.在附图和以下描述中阐述本公开的技术的一个或多个示例的细节。通过描述和附图,这些技术的其他特征、目的和优点将是显而易见的。
附图说明
14.图1是示出根据本公开中描述的技术的各个方面的包括使用管理装置管理的企业网络的元件的示例网络的框图;
15.图2是示出用于图1的管理装置的一组示例组件的框图;
16.图3是更详细示出图2所示的管理模块的框图;
17.图4是示出根据本公开中描述的技术的各个方面的资源分配的流程图;
18.图5是示出图1至图3所示的管理系统在执行本公开中描述的自动意图供应技术的各个方面的示例操作的流程图。
19.在所有附图和描述中,相同的附图标记表示相同的元件。
具体实施方式
20.图1是示出包括使用管理装置10管理的企业网络2的元件的示例的框图。企业网络2的被管理的元件14a-14g(统称为“元件14”)包括经由通信链路互连的网络装置,以形成通信拓扑,从而交换资源和信息。元件14(通常也称为网络装置或远程网络装置)可以包括例如路由器、交换机、网关、网桥、集线器、服务器、防火墙或其他入侵检测系统(ids)或入侵检测和防御(idp)系统、计算装置、计算终端、打印机、其他网络装置或这些装置的组合。虽然在本公开中被描述为传输、传送或以其他方式支持数据包,但是企业网络2可以根据由任何其他协议定义的任何其他离散数据单元来传输数据,例如,由异步传输模式(atm)协议定义的单元或者由用户数据报协议(udp)定义的数据报。互连元件14的通信链路可以是物理链路(例如,光链路、铜链路等)、无线链路或其任意组合。
21.企业网络2显示为经由通信链路耦合到公共网络18(例如,互联网)。公共网络18可以包括例如一个或多个客户端计算装置。公共网络18可以提供对网络服务器、应用服务器、公共数据库、媒体服务器、终端用户装置以及其他类型的网络资源装置和内容的访问。
22.管理装置10经由企业网络2通信耦合到元件14。在一些示例中,管理装置10形成装置管理系统的一部分,尽管出于示例的目的,在图1中仅示出了装置管理系统的一个装置。管理装置10可以直接或间接耦合到各种元件14。一旦部署和激活元件14,管理员12使用管理装置10来使用装置管理协议来管理网络装置。一个示例装置协议是简单网络管理协议(snmp),其允许管理装置10遍历和修改在每个被管理的元件14内存储配置数据的管理信息库(mib)。可在http://tools.ietf.org/html/rfc3411获得的harrington等人的rfc 3411“an architecture for describing simple network management protocol(snmp)management frameworks”,网络工作组,因特网工程任务组草案,2002年12月中,可以找到snmp协议的更多细节,其全部内容通过引用结合于此。
23.在一些情况下,管理装置10(也称为网络管理系统(nms)10或nms装置10)以及元件14由企业的it组集中维护。管理员12与管理装置10交互,以远程监控和配置元件14。例如,管理员12可以从管理装置10接收关于任何元件14的警报,查看元件14的配置数据,修改元件14的配置数据,向企业网络2添加新的网络装置,从企业网络2移除现有的网络装置,或者以其他方式操纵企业网络2和其中的网络装置。尽管出于举例的目的针对企业网络进行了描述,但是本公开的技术可应用于其他类型的公共和私有网络,包括lan、vlan、vpn等。
24.在一些示例中,管理员12使用管理装置10或本地工作站直接与元件14交互,例如,通过远程登录、安全外壳(ssh)或其他这样的通信会话。即,元件14通常提供用于直接交互的接口,诸如,命令行接口(cli)、基于网络的接口、图形用户接口(gui)等,通过这些接口,用户可以与装置交互,以直接发布基于文本的命令。例如,这些接口通常允许用户直接与装置交互,例如,通过远程登录、ssh、超文本传输协议(http)或其他网络会话,以根据定义的语法输入文本,以向被管理元件提交命令。在一些示例中,用户使用管理装置10启动与一个
元件14(即,图1示例中的元件14f)的ssh会话15,以直接配置元件14f。以这种方式,用户可以以直接执行元件14的格式提供命令。
25.此外,管理员12还可以创建可由管理装置10提交给任何或所有元件14的脚本。例如,除了cli接口之外,元件14还提供用于接收根据脚本语言指定命令的脚本接口。在某种意义上,脚本可以由管理装置10输出,以自动调用被管理的元件14上相应的远程过程调用(rpc)。脚本可以符合例如可扩展标记语言(xml)或另一种数据描述语言。
26.管理员12使用管理装置10来配置元件14,以指定某些操作特征,这些操作特征促进管理员12的目标。例如,管理员12可以为一个元件14指定关于安全性、装置可访问性、流量工程、服务质量(qos)、网络地址转换(nat)、数据包过滤、数据包转发、速率限制或其他策略的特定操作策略。管理装置10使用一个或多个网络管理协议来执行配置,所述网络管理协议被设计用于管理被管理的网络元件14内的配置数据,例如,snmp协议或网络配置协议(netconf)协议或其衍生物,例如,juniper装置管理接口。通常,netconf提供配置网络装置的机制,并对配置数据使用基于可扩展标记语言(xml)的数据编码,配置数据可能包括策略数据。可在tools.ietf.org/html/rfc4741获得的enns的“netconf configuration protocol”,网络工作组,rfc 4741,2006年12月中,描述了netconf。管理装置10可以与一个或多个元件14建立netconf会话。
27.管理装置10可以被配置为将新的一组高级配置数据与现有的(或旧的)一组高级配置数据进行比较,并将转换功能应用于新的高级配置数据和旧的高级配置数据之间的差异。具体地,管理装置10确定新的一组配置数据是否包括相对于旧的一组高级配置数据的任何额外配置参数,以及新的一组配置数据是否省略旧的一组高级配置数据中包括的任何配置参数。
28.换言之,被管理的装置的类型(例如,元件14的类型)的数量由n表示,变量y表示低级的、装置特定的配置数据,并且变量x表示高级配置数据。管理装置10包括n个转换功能f1()、f2()、
…fn
()。这些功能被配置为接受高级配置数据(可以表示为结构化输入参数,例如,根据yang),这在可在tools.ietf.org/html/rfc6020获得的bjorklund的“yang—a data modeling language for the network configuration protocol(netconf)”,因特网工程任务组,rfc 6020,2010年10月中描述。这些功能还被配置为输出相应组的低级装置配置数据变化,例如,装置配置的添加和移除。即,y1=f1(x),y2=f2(x),
…yn
=fn(x)。可以在例如jiang等人于2016年6月30日提交的“将高级配置指令转换为低级装置配置”(translating high-level configuration instructions to low-level device configuration)的美国专利申请第15/198,657号中,找到关于将高级配置信息(或者,换言之,高级别配置数据)转换成低级装置配置信息(或者,换言之,低级配置数据)的示例过程的额外细节,其全部内容通过引用结合于此。
29.管理装置10可以在软件定义的网络(sdn)的上下文中使用,其中,管理装置10可以在被管理的元件14内协调服务部署或供应。管理员12可以定义一个或多个策略,这些策略可以将高级服务模型指定为通常识别网络服务的意图。
30.例如,策略可以包括识别第二层对等(l2p2p)服务并将该服务指定为“端点之间的l2p2p服务”的意图。换言之,策略可以将l2psp服务和意图识别为“端点之间的l2p2p服务”。管理装置10可以编译意图并根据意图识别端点,从而指定l2p2p服务将如何部署。管理员12
然后可以指定计算机网络2内的哪些可用网络装置(例如,元件14)将支持由策略定义的l2p2p服务(例如,通过定义用于选择哪些可用网络装置来支持l2p2p服务的各种标准,如下面更详细讨论的)。管理装置10接下来可以将高级服务模型转换成特定于所选元件14的低级服务模型,并且部署低级服务模型,以经由指定的网络装置14在计算机网络2内供应l2p2p服务。
31.根据本公开中描述的技术的各个方面,管理装置10可以自动供应和管理由用于管理计算机网络2的策略产生的意图。当处理意图时,这些技术可以使管理装置10或其他装置供应系统能够获得使用可扩展命令集定义的资源选择标准(也可以称为“过滤器”)。管理装置10可以使用资源选择标准自动识别将被配置为支持由意图识别的网络服务的一个或多个资源。
32.管理装置10可以维护资源数据库并提供接口,通过该接口来收集和更新各种不同的资源以及每个资源的当前状态。资源可以指装置(例如,元件14)或者装置的一些组件,例如,接口、端口、端口的处理单元等。各种资源可以向管理装置10报告指示资源的当前状态的状态数据(和/或管理装置10可以轮询资源,以获得状态数据),其中,管理装置10可以更新数据库,以存储状态数据,从而保持每个资源的当前状态。管理装置10可以基于将资源选择标准应用于状态数据,自动(在一些示例中,意味着没有人工干预)选择资源,并且当供应由网络2中的意图识别的网络服务时,配置所选择的资源,从而自动(在一些示例中,意味着没有人工干预)供应意图。
33.管理装置10可以获得指示资源的更新状态的更新状态数据,将来自资源的更新状态数据与资源选择标准进行比较,以确定意图是否已经降级。当先前配置的资源的更新状态数据不再满足资源选择标准时,管理装置10可以降级该意图,并识别另一资源(其可以被称为替换资源)来代替不足的资源。管理装置10可以通过再次将资源选择标准应用于更新的状态数据来识别替换资源。当在网络2内重新供应服务时,管理装置10接下来可以配置替换资源,从而提供意图保证,这可以表示维护或以其他方式管理意图,以确保该意图的适当服务级别。
34.在一些示例中,管理装置10可以使用yang建模来根据意图定义高级配置数据,并将高级配置数据转换成特定于所选资源的低级装置配置数据。现代系统可以支持简化网络管理的意图,其中,意图可以是声明性的。为了实现意图,管理系统10可以选择最佳资源(在资源选择标准的背景中)。本公开中阐述的技术可以定义意图编译中意图模型和资源选择的可扩展性/可编程性的方法。
35.当管理员12以策略的形式提交意图时,管理系统10可以在意图编译中选择资源,并生成特定于所选资源的低级配置数据,从而允许以编程方式定义资源选择标准。管理装置10可以自动注册所选择的资源状态变化,从而如上所述提供保证(assurance)/闭环控制。例如,当意图降级时,管理系统10可以选择正确的替换资源并生成特定于替换资源的低级配置数据,从而以编程方式定义意图保证逻辑。
36.图2是示出图1的管理装置的一组示例组件的框图。在该示例中,管理装置10包括控制单元22、网络接口34和用户接口36。网络接口34表示可以将管理装置10通信耦合到外部装置(例如,图1的一个元件14)的示例接口。网络接口34可以表示无线和/或有线接口,例如,以太网接口或被配置为根据无线标准进行通信的无线电,例如,一个或多个ieee802.11
无线网络协议(例如,802.11a/b/g/n/ac或其他这样的无线协议)。在各种示例中,管理装置10可以包括多个网络接口,尽管出于示例的目的,仅示出了一个网络接口。
37.控制单元22表示硬件、软件和/或固件的任意组合,用于实现归于控制单元22及其组成模块和元件的功能。当控制单元22包括软件或固件时,控制单元22还包括用于存储和执行软件或固件的任何必要硬件,例如,一个或多个处理器或处理单元。通常,处理单元可以包括一个或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、或任何其他等效的集成或分立逻辑电路以及这些组件的任何组合。此外,通常使用固定和/或可编程逻辑电路来实现处理单元。
38.用户接口36表示一个或多个接口,通过这些接口,用户(例如,管理员12)(图1)与管理装置10交互,例如,以提供输入和接收输出。例如,用户接口36可以表示监视器、键盘、鼠标、触摸屏、触摸板、触控板、扬声器、照相机、麦克风等中的一个或多个。此外,尽管在该示例中,管理装置10包括用户接口,但是应当理解,管理员12不需要直接与管理装置10交互,而是可以远程访问管理装置10,例如,经由网络接口34。
39.在该示例中,控制单元22包括用户接口模块38、网络接口模块32和管理模块24。控制单元22执行用户接口模块38,以从用户接口36接收输入和/或向用户接口36提供输出。控制单元22还执行网络接口模块32,以经由网络接口34发送和接收数据(例如,数据包)。用户接口模块38、网络接口模块32和管理模块24可以再次实现为相应的硬件单元,或者以软件(包括固件和/或中间件)和硬件(例如,处理器)的组合实现。
40.控制单元22执行管理模块24,以管理各种网络装置,例如,图1的元件14。管理包括例如根据从用户(例如,图1的管理员12)接收的指令配置网络装置,并向用户提供提交配置网络装置的指令的能力。在该示例中,管理模块24还包括配置模块26和转换模块28。
41.管理模块24被配置为从用户(例如,管理员12)接收一组被管理的网络装置的高级配置指令或其他高级配置数据。随着时间的推移,用户可以更新配置指令,例如,添加新意图、移除现有意图或修改由被管理的装置执行的现有意图。高级配置指令可以根据例如又一个下一代(yang)数据建模语言来构造。在一些示例中,管理模块24还向用户提供提交转换模块28执行的转换功能的能力,以将高级配置指令转换成装置特定的低级配置指令或其他低级配置数据,如下所述。
42.管理装置10还包括配置数据库40。配置数据库40通常包括描述被管理的网络装置(例如,元件14)的信息。例如,配置数据库40可以包括指示装置标识符(例如,媒体访问控制(mac)和/或互联网协议(ip)地址)、装置类型、装置供应商、装置种类(例如,路由器、交换机、网桥、集线器等)等的信息。配置数据库40还存储被管理的装置(例如,元件14)的当前配置信息(例如,高级配置信息,或者在某些情况下,高级配置和低级配置信息)。
43.转换模块28确定使用配置数据库40管理哪些装置。转换模块28基于配置数据库40的信息来确定在高级配置指令上执行哪个转换功能30,例如,哪个装置将接收低级配置指令。转换模块28然后执行转换功能30的每个确定的转换功能,向转换功能提供高级配置指令作为输入,并接收低级配置指令。
44.配置模块26可以首先例如通过从配置数据库40中检索每个服务的现有的一组高级配置信息,来确定要更新配置的装置所执行的每个服务的现有的一组高级配置信息。配置模块26然后可以将现有的一组高级配置信息与新接收的一组高级配置信息进行比较,并
确定现有的和新接收的一组高级配置信息之间的差异。配置模块26然后可以将指示这些差异的信息传递给转换模块28,用于转换成相应的几组低级配置信息。配置模块26还基于新接收的一组高级配置信息更新记录在配置数据库40中的现有高级配置信息。
45.转换模块28可以生成两种不同类型的转换功能30,在上面被称为转发映射和反向映射。在图2的示例中,转发映射表示为“fm 50”,而反向映射表示为“rm 52”。转换模块28可以使用根据转换语言定义的转换脚本(为了便于说明,在图2的示例中未示出),从相应的转发映射50中自动生成rm 52,如在包含的美国专利申请no.15/198,657中更详细描述的。
46.如图2的示例中进一步所示,管理模块24还包括资源管理器模块60和分析模块62。资源管理器模块60可以表示被配置为基于资源选择标准59识别一个或多个资源的模块。即,配置模块26可以接收包括高级配置数据的策略,该高级配置数据识别指定要在网络2内供应的网络服务的一个或多个意图(在一些示例中,该意图是声明性的)。配置模块26可以向转换模块28提供意图,转换模块28可以将意图编译成特定于一个特定元件14的低级配置数据。为了编译意图,转换模块28可以从高级配置数据中提取资源选择标准59,并将资源选择标准59提供给资源管理器模块60。
47.资源管理器模块60可以维护可用资源的库存,其通过与分析模块62的交互来更新该库存。分析模块62可以表示被配置为经由网络接口模块32和网络接口34与元件14接口的模块,以便获得遥测数据。如图2的示例中进一步所示,管理装置10可以进一步包括遥测数据库70,其存储从元件14获得的遥测数据。资源管理器模块62可以请求分析模块62提供存储到遥测数据库70的不同类型的遥测数据。遥测数据可以包括描述元件14状态的任何数据,包括发送的数据包数、接收的数据包数、角色、会话数、等待时间、丢弃的数据包数、支持特定路由或其他网络协议的能力等。
48.资源管理器模块60可以基于资源选择标准59请求特定类型的遥测数据(其表示元件14的状态,因此也可以称为“状态数据”)。即,作为一个示例,当资源选择标准59指示需要具有少于1000个bgp会话的资源来支持意图时,资源管理器模块62可以为元件14请求多个活动bgp会话。作为另一示例,当资源选择标准59指示需要最小等待时间来支持意图时,资源管理器模块62可以请求元件15的等待时间度量。
49.分析模块62可以从资源管理器模块60接收请求,并访问遥测数据库70,以检索所请求的遥测数据。分析模块62可以提供所请求的遥测数据,作为遥测数据63。资源管理器模块60接下来可以将资源选择标准59应用于遥测数据63,以便识别将使用哪些资源来支持意图(换言之,即声明将供应哪些服务)。资源管理器模块60可以与转换模块28接口,以提供所识别的资源。转换模块28然后可以识别与所识别的资源相关联的一个或多个转发映射50,并将所识别的一个或多个转发映射50应用于高级配置数据,以获得特定于所识别的一个或多个资源的低级配置数据。
50.转换模块28可以与配置模块26接口,以提供低级配置数据和低级配置数据将应用到哪个元件14的指示。配置模块26然后可以与所识别的元件14接口,以在网络2中供应服务时,使用特定于所确定的资源的低级配置数据来配置所确定的资源。
51.分析模块62可以周期性地轮询(或以其他方式获得)以更新的遥测数据的形式的更新的状态数据,分析模块62可以将该数据存储到遥测数据库70中。响应于接收到更新的遥测数据,分析模块62可以与资源管理器模块60接口,以指示已经获得更新的遥测数据。在
一些示例中,遥测数据库70可以包括使资源管理器模块60能够订阅特定遥测数据的功能,从而在已经更新订阅的遥测数据时使资源管理器模块60能够自动接收指示。此外,尽管根据周期性轮询进行了描述,但是分析模块62可以以其他方式获得更新的遥测数据,例如,通过推送模型,其中,元件14被配置为响应于任何变化或超过某个阈值变化量的任何变化等来提供更新的遥测数据。
52.无论如何,资源管理器模块60可以基于识别更新状态(或者换言之,状态)的更新状态数据63和资源选择标准59来确定所确定的资源是否将继续支持服务。响应于确定所确定的资源将继续支持服务,资源管理器模块60可以避免调整或重新调整所供应的服务。资源管理器模块60可以响应于确定所确定的资源不再继续支持服务,并且基于资源选择标准59和更新的状态数据63,确定支持服务的替换资源。资源管理器模块60可以与转换模块28接口,以启动高级配置数据到特定于所确定的替换资源的低级配置数据的转换。转换模块28可以向配置模块26提供特定于所确定的替换资源的低级配置数据,配置模块26可以与所确定的替换资源接口,以在网络2中重新供应服务时,使用特定于所确定的替换资源的低级配置数据来配置所确定的替换资源。
53.图3是更详细示出图2所示的管理模块的框图。如图3的示例所示,配置模块26包括意图层模块100和元件配置模块(“元件配置模块”)102。意图层模块100可以管理一个或多个策略中指定的意图。尽管在图3的示例中未示出,但是意图层模块100可以将意图存储到意图数据库或其他数据结构中。意图层模块100可以管理将意图从高级配置数据101转换成低级配置数据105的过程。元件配置模块102可以表示被配置为使用特定于一个特定元件14的低级配置数据105来配置元件14的模块。
54.如图3的示例中进一步所示,转换模块28可以包括意图编译器模块104,其可以表示被配置为将高级配置数据101(表示一个或多个意图)转换成低级配置数据105的单元。在将高级配置数据101转换成低级配置数据105期间,意图编译器模块104可以识别资源选择标准59(其可以被指定为转发映射50中的资源匹配过滤器)。换言之,管理员12可以在转换逻辑(例如,转发映射50)中定义资源选择标准59,意图编译器模块104可以从转发映射50解析该标准。
55.如图3的示例中进一步所示,资源管理器模块60包括资源选择模块106和库存管理器模块108。资源选择模块106可以表示被配置为基于资源选择标准59选择一个或多个资源107的模块。意图编译器模块104可以从转发映射50获得资源选择标准59,并调用资源选择模块106,将资源选择标准59传递给资源选择模块106。资源选择模块106继而可以调用库存管理器模块108,库存管理器模块108可以表示被配置为发现网络2内的资源并维护诸如资源库存等资源的单元,基于存储到遥测数据库70的遥测数据来更新资源的状态。
56.库存管理器模块108可以从设备架构(device schema)中发现资源(其可以包括资源和资源池)。设备架构可以包括“资源扩展”,这可以表示资源,其示例如下。
57.leaf if-name{
58.type if-name-type;
59.ext:resource{
60.resource-key'/device/device-id'
61.ext:load-factor{
62.ext:load-factor-key'/device/interface/operation/if-in-traffic'
63.ext:load-factor-weightage

0.75

64.}
65.ext:load-factor{
66.ext:load-factor-key'/device/interface/operation/if-out-traffic'
67.ext:load-factor-weightage

0.25

68.}
69.}
70.}
71.在上面,“resource”是指将元件定义为资源的扩展,而“resource-key”可以允许资源分层定义。例如,装置可以包括一个或多个“端口”资源。每个端口资源可以包括一个或多个“单元”资源。在一些情况下,设备架构可以提供在给定上下文中指定资源单元范围的方式。资源键可以表示父资源关键路径。在一些示例中,资源是一个简单的值。此外,当装置id是接口名称资源的键(key)时,装置上的同一接口名称可能不会分配给两个服务。资源键可以是可选的。
72.此外,“resource-type”可以表示资源类型。可能有多种资源类型(例如,l2资源、l3覆盖资源等)。资源类型可以是可选的(例如:“虚拟电路”是“l3覆盖资源”)。“load-factor”(负载因子)可以指能够导出资源上的负载的扩展。负载因子可以包含“度量”路径和“权重”,其中,权重应用于所识别的度量,以获得负载。“resource-metrics”(资源度量)扩展是指操作状态(或者,换言之,状态)度量。
73.设备架构也可以定义复杂的资源度量。例如,可以具有在不同端点上导出的资源度量。例如,虚拟电路是网络范围内的“点对点”覆盖结构。将从两个端点导出该资源度量。度量可以例如包括接收的数据包和发送的数据包(rx-pps、tx-pps)。在这个示例中,可以从其他端点“发送的数据包”中导出一个端点的rx-pps。
74.以下扩展可用于表示复杂的度量。
75.ext:resource{
76.ext:complex-metric{
77.ext:equator-merge-rule;
78.ext:metric-name“rx-pps

;//this metric would be derived from other endpoint tx-pps
79.ext:metric

path:['/device/virtual-circuit/tx-pps”]
[0080]
}
[0081]
}
[0082]
在默认情况下,管理系统10可以定义“equator”(赤道)“资源合并策略”,其中,资源合并策略可以指定如何合并资源。当资源键相同时,赤道合并规则可以映射资源。设备架构可以允许定义定制的合并规则,该规则可以用于比较资源,以识别哪些实例可以被合并,从而导出复杂的度量,其示例如下。
[0083]
ext:resource{
[0084]
ext:complex-metric{
[0085]
ext:custom-merge-rule;
[0086]
ext:matcher-script

scripts.customresourcematcher

; //script that relates the resource across endpoints.
[0087]
ext:metric-name“rx-pps


[0088]
ext:metric

path:['/device/virtual-circuit/tx-pps”]
[0089]
}
[0090]
}
[0091]
设备架构还可以启用资源池发现,其中,在上下文中可以具有资源池。例如,考虑包含单元1-4094资源的接口。定义了“范围”的yang元件就是资源库。
[0092]
为了填充库存,库存管理器模块108可以根据以下伪代码遍历设备架构:
[0093]
对于元件配置架构中的每个yang元件
[0094]
如果存在资源扩展
[0095]
则使用
[0096]
资源键
[0097]
池-如果yang元件定义了范围
[0098]
负载因子键和权重
[0099]
自定义度量
[0100]
来创建资源类型。
[0101]
资源选择模块106可以确保资源持久性,并以有效的方式获得下一个可用资源,如下所示:
[0102]
资源管理器将资源集中分配给意图/服务;并且
[0103]
资源管理器应该近乎实时地分配资源。
[0104]
前面的示例如下:
[0105]
在服务提供商部署的情况下,如下指定资源:
[0106]
装置(pe、ce终端);
[0107]
接口;
[0108]
每个物理接口的单元接口-ge-0/0/1至ge-0/0/48。
[0109]
这具有以下两个方面:
[0110]
如何在数据库中高效地存储资源;
[0111]
如果单元是1到4094,则系统不应该添加数据库中的所有条目,因为具有许多端口,每个端口可以具有1到4094个单元。
[0112]
然后,该问题变成如何以有效的方式获得下一个可用资源,这可以通过下面的示例算法来解决。虽然位图可以用来识别下一个资源,但是位图的使用可能会引入性能瓶颈。在一些示例中,本公开中阐述的技术可以遵循数据结构的提交日志类型,在该数据结构中,保留所分配的资源。当具有下一个资源请求时,内存中的资源队列给出下一个可用资源。在队列重载之后,单独的线程会继续清除位图中的队列。资源管理器模块60可以在以下数据库表中维护分配的资源。
[0113]
内存数据结构:
[0114]
资源队列-维护前“n”个可用资源;
[0115]
资源内存表:资源,分配的服务。
[0116]
数据库:
[0117]
资源表:资源,分配的服务
[0118]
资源日志表:资源id,获取/释放状态
[0119]
资源位图表:父资源id、资源类型、资源位图
[0120]
资源管理器模块60可以使用数据库中的位图来跟踪“已用资源”与“可用资源”,并在数据库中提供资源使用信息的有效持久性。然而,上述步骤将序列化“资源分配”。为了避免串行化,在一些示例中,资源管理器模块60可以根据以下步骤执行,这些步骤在图4中更详细地示出。图4是示出根据本公开中描述的技术的各个方面的资源分配的流程图。
[0121]
在资源队列中缓存前n个可用资源(基于负载排序)和内存中的使用状态(200)。
[0122]
引入“资源日志”表来支持硬件故障。
[0123]
如果资源管理器将资源分配给服务(202),则添加到资源日志表(204)。
[0124]
基于特定阈值(资源分配条目的数量),清除高速缓存到“资源表”和“资源位图”表(206、208)。
[0125]
在硬件故障的情况下,从资源日志表中读取条目,并更新“资源表”和“资源位图”表(200)。
[0126]
返回到图3的示例,在一些示例中,多个服务可以在相同的资源上运行,例如,多个l3 vpn可以使用相同的接口子资源(单元接口)。这样,资源管理器模块60可以预测资源的利用率,使得在服务由于网络拥塞或其他原因而不能满足服务级别协议(sla)之前,服务将迁移到不同的资源。资源预测包括以下步骤:
[0127]
识别对应于资源的状态属性;
[0128]
创建预配置样本大小(》30)的样本。
[0129]
现在,根据参数的平均值计算置信区间(confidence interval)。
[0130]
样本间隔=m(+或-)(z*s/sqrt(n)),在此处,m表示当前样本的平均值,s表示标准偏差,n表示样本大小。
[0131]
在此处,根据置信度(预先配置的)%计算z。例如:对于95%的置信区间,z=1.96(默认为95%)。
[0132]
为了举例说明,考虑以下示例:
[0133]
接口的传入流量百分比是要预测的参数。为了便于说明,假设接口资源依赖于该参数。
[0134]
分析模块62可以周期性地轮询接口利用参数(即,分析模块62包括遥测收集模块112,其表示被配置为轮询元件14以收集参数或者(换言之)度量的模块),并且将大小为30个参数的样本分组(即,分析模块包括聚合模块110,其表示被配置为聚集不同参数或者(换言之)度量的模块),并且(由聚合模块110)为每个样本计算平均值和标准偏差。
[0135]
如果计算的平均值大于置信区间的上限,则资源选择模块106确定替换资源,并将原始资源支持的一个或多个服务迁移到替换资源。类似地,当平均值低于置信区间范围时,资源管理器模块60可以选择支持更多服务的资源。
[0136]
资源管理器模块60可以跟踪迁移和趋势中的任何波动,并建议用户优化样本大小和置信区间常数(置信百分比)。
[0137]
以这种方式,库存管理器模块108可以发现网络2内的资源,并维护库存(例如,在库存数据库中)。资源选择模块106然后可以识别满足或超过资源选择标准59的资源。在一些情况下,库存管理器模块108可以将上述权重应用于相应的资源度量,以获得相应的资源负载。库存管理器模块108然后可以向资源选择模块106提供资源负载,资源选择模块106可以基于将资源选择标准59应用于资源负载,来确定支持服务的资源。
[0138]
资源选择模块106可以从资源选择查询获得资源选择标准。资源管理器模块106可以分配优化的资源(就满足或超过资源选择标准59而言),作为意图转换的一部分(例如,高级配置数据101)。资源选择查询遵循过滤器语法,其中,下面显示样本数据模型和相应的资源选择,作为一个示例。
[0139][0140][0141]
在上面的示例中,“site”(站点)顶点引用了一些装置,其中,叶装置具有装置角色(“devicerole”)属性。
[0142]
在填充时,资源选择标准遵循上述数据模型,如以下示例所示。
[0143][0144]
指令提供了一种在图形查询语言(“graphql”)文档中描述交替运行时执行(alternate runtime execution)和类型验证行为的示例方法。“资源”指令可能表示解析的变量是资源。资源指令可以采用资源的别名标签,如下所示。
[0145]
定义:
[0146]
resource“《resourcealias》”[0147]
转到资源选择查询中使用的优化表达式和参数,在“资源”指令属性的参数中可能指定了优化决策变量。资源选择模块106可以从查询中导出以下优化决策变量:
[0148]
·
决策变量;
[0149]
·
目标;以及
[0150]
·
约束
[0151]
目标界限和约束可以被指定为“优化表达式”,下面提供其示例语法:
[0152]
优化功能:优化(目标、约束);
[0153]
目标:最小值、最大值、平均值;
[0154]
约束/界限:资源度量的限制-《=、=或》=。
[0155]
以这种方式,资源选择模块106可以获得资源选择标准59,并且将资源选择标准59应用于从库存管理器模块108获得的资源,从而获得将支持服务的资源107。意图编译器模块104然后可以继续将高级配置数据101转换成特定于资源107的低级配置数据105。意图层模块100可以将低级配置数据105传递给元件配置模块102,包括资源107的元件配置模块102可以与元件14接口,以使用低级配置数据105来配置元件14,以支持网络2内的服务。
[0156]
为了说明资源管理器如何导出优化约束和目标,考虑以下示例。
[0157][0158]
在上述资源选择查询中,装置资源包括:
[0159]
·
decision variables-latency(决策变量-延迟)、bgp-session-count;
[0160]
·
目标:最小延迟;
[0161]
·
约束:bgp-session-count《1000。
[0162]
前述内容可以由以下伪代码表示:
[0163]
对于资源选择查询中的每个元件:
[0164]
调用“解析器”并获取匹配的对象//解析器是graph ql中获取匹配对象的函数;
[0165]
填充“资源选择标准”//在查询的每个元件中指定为参数;
[0166]
如果存在“资源指令”,则
[0167]
读取资源的别名;
[0168]
读取优化决策变量;
[0169]
运行优化并选择资源;
[0170]
将资源分配给别名;
[0171]
与库存模块接口;
[0172]
注册“资源选择标准”的通知。
[0173]
如上所述,资源管理器模块60可以调用分析模块62,以便获得遥测数据(表示状态数据),这可能导致资源的各种变化。例如,假设装置的pe角色变化需要为该意图分配新资源。下面的伪代码说明了在基于轮询的模型中,当库存(例如,元件状态数据)发生变化时会发生什么。
[0174]
对于库存的每一次变化:
[0175]
检查变化是否与资源标准匹配;
[0176]
选择新资源并应用于意图。
[0177]
与分析节点接口,以
[0178]
启用对资源上所需属性的监控;
[0179]
通过消息总线收听来自分析节点的度量。
[0180]
针对阈值来配置分析节点上的事件。
[0181]
收听阈值交叉事件并运行优化模块。
[0182]
下面提供了用于在基于订阅的模型中获取资源更新的伪代码:
[0183]
对于资源选择查询中的每个元件,
[0184]
如果存在“resource directive”(资源指令),则
[0185]
读取优化决策变量;
[0186]
订阅约束的阈值;
[0187]
收听目标度量。
[0188]
资源约束语义可以出现在意图数据模型中,该模型可以在资源映射约束中指定。
[0189]
一些用例是:
[0190]
l3 vpn应该只有支持mpls的装置;
[0191]
应该使用环回地址端口。
[0192]
这些资源约束可以在yang中使用引用资源的leafref来建模。
[0193]
资源过滤器遵循过滤器查询语法,如以下示例中所示:
[0194][0195]
在某些情况下,资源约束可以基于上下文。服务模型可以包含装置和接口。该接口可以基于所选择的装置。在这些情况下,leafref路径将包含如下所示的上下文:
[0196][0197][0198]
在上述示例中,管理装置10可以帮助管理员12选择接口,其中,管理员12可以定义特定的环回地址来选择某个接口,并且管理装置10可以生成适当的配置来配置该接口。在这方面,这些技术可以允许系统辅助的用户选择。
[0199]
为了定义包括自动资源选择的意图,管理员12可以创建意图yang数据模型,并提供转换脚本以及资源选择查询。为了举例说明,考虑以下示例:
[0200]
·
意图:在保证高带宽的情况下,在“站点-a”和“站点-b”之间的l2点对点连接;
[0201]
·
意图实现:作为“服务层意图实现”的一部分,管理系统10可以选择具有“较小负载”的pe装置,并在站点-a和站点-b之间配置“l2电路”。
[0202]
在该示例中,管理员12可以如下定义意图yang数据模型:
[0203][0204][0205]
意图转换脚本可以包括python代码、映射器和模板中的一个或多个,包括资源选择查询。下面是映射器的一个示例(在上面包含的美国专利申请序列号15/198,657中更详细地描述其上下文和使用)。
[0206][0207][0208]
图5是示出图1-3所示的管理系统在执行本公开中描述的自动意图提供技术的各个方面的示例操作的流程图。管理装置10可以自动供应和管理由用于管理计算机网络2的策略阐述的意图。
[0209]
如上所述,当处理意图时,这些技术可以使管理装置10或其他装置供应系统能够获得高级配置数据101,其包括使用可扩展命令集定义的资源选择标准59(300)。管理装置10可以使用资源选择标准自动识别将被配置为支持由意图识别的网络服务的一个或多个资源。换言之,管理装置10可以基于资源选择标准59来确定支持由高级配置数据指定的服务的资源107(302)。管理装置10接下来可以将高级配置数据101转换成特定于资源107的低级配置数据105(304)。当在网络2中供应服务时,管理装置10可以使用特定于所确定的资源107的低级配置数据105来配置所确定的资源107(306)。
[0210]
该过程可以响应于元件14的状态(或者换言之,状态)的变化而重复。即,管理装置10可以维护资源数据库并提供接口,通过该接口来收集和更新各种不同的资源以及每个资源的当前状态。各种资源可以向管理装置10报告指示资源当前状态的状态数据(和/或管理装置10可以轮询资源,以获得状态数据),其中,管理装置10可以更新数据库,以存储状态数据,从而保持每个资源的当前状态。管理装置10可以基于将资源选择标准应用于状态数据来选择资源(302),执行转换(304),并且当在网络2中供应网络服务时,配置所选择的资源(306),从而自动供应意图。
[0211]
管理装置10可以获得指示资源的更新状态的更新状态数据,将来自资源的更新状态数据与资源选择标准进行比较,以确定意图是否已经降级。当先前配置的资源的更新状
态数据不再满足资源选择标准时,管理装置10可以降级该意图,并识别另一资源(其可以被称为替换资源)来代替不足的资源。管理装置10可以通过再次将资源选择标准应用于更新的状态数据来识别替换资源(302)。管理装置10接下来可以执行转换(304),并且当在网络2内重新供应服务时,配置替换资源(306),从而维护或以其他方式管理意图,以确保该意图的适当服务级别。
[0212]
除了上述内容或作为上述内容的替代,描述了以下示例。在以下任一示例中描述的特征可以与本文描述的任何其他示例一起使用。
[0213]
示例1.一种方法,包括:由管理装置获得策略,该策略包括定义要在网络内部署的服务的高级配置数据,所述高级配置数据包括资源选择标准,该资源选择标准识别用于从多个潜在资源中选择支持该服务的资源的一个或多个标准;基于资源选择标准,管理装置从多个潜在资源中确定支持服务的资源;由管理装置将高级配置数据转换成特定于所确定的资源的低级配置数据;并且当在网络中供应服务时,由管理装置使用特定于所确定的资源的低级配置数据来配置所确定的资源。
[0214]
示例2.根据示例1所述的方法,其中,所述高级配置数据包括指定网络服务的意图,并且包括资源选择标准。
[0215]
示例3.根据示例1所述的方法,其中,确定所述资源包括在没有人工干预的情况下并且基于所述资源选择标准,自动确定来自所述多个潜在资源的资源。
[0216]
示例4.根据示例1所述的方法,其中,所述高级配置数据使用可扩展命令集定义资源选择标准。
[0217]
示例5.根据示例1所述的方法,还包括获得识别所述多个潜在资源中的每一个的状态的状态数据,其中,确定资源包括基于将资源选择标准应用于状态数据来从所述多个潜在资源中确定支持服务的资源。
[0218]
示例6.根据示例5所述的方法,进一步包括:获得识别所述多个潜在资源中的每一个的更新状态的更新状态数据;基于更新的状态数据和资源选择标准,确定所确定的资源是否将继续支持服务;响应于确定所确定的资源不继续支持服务,并且基于资源选择标准和更新的状态数据,确定支持服务的替换资源;将高级配置数据转换成特定于所确定的替换资源的低级配置数据;并且当在网络中重新供应服务时,使用特定于所确定的替换资源的低级配置数据来配置所确定的替换资源。
[0219]
示例7.根据示例5所述的方法,其中,所述状态数据识别使用可扩展命令集定义的一个或多个资源度量以及相应的一个或多个权重,其中,所述资源度量识别所述多个潜在资源中相应资源的操作状态,并且其中,确定资源包括:将一个或多个权重应用于相应的一个资源度量,以获得一个或多个相应的资源负载;并且基于将资源选择标准应用于资源负载,确定所述多个潜在资源中支持服务的资源。
[0220]
示例8.根据示例1所述的方法,还包括基于设备架构确定多个潜在资源。
[0221]
示例9.根据示例1所述的方法,其中,确定资源包括:基于资源选择标准,确定决策变量、目标和约束中的一个或多个;并且将决策变量、目标和约束中的一个或多个应用于所述多个潜在资源,以确定支持服务的资源。
[0222]
示例10.一种装置,包括:一个或多个处理器,其被配置为:获得策略,该策略包括定义要在网络内部署的服务的高级配置数据,所述高级配置数据包括资源选择标准,该资
源选择标准识别用于从多个潜在资源中选择支持该服务的资源的一个或多个标准;基于资源选择标准,从多个潜在资源中确定支持服务的资源;将高级配置数据转换成特定于所确定的资源的低级配置数据;存储器,其被配置为存储特定于所确定的资源的低级配置数据;以及接口,当在网络中供应服务时,通过该接口使用特定于所确定的资源的低级配置数据来配置所确定的资源。
[0223]
示例11.根据示例10所述的装置,其中,所述高级配置数据包括指定网络服务的意图,并且包括资源选择标准。
[0224]
示例12.根据示例10所述的装置,其中,所述一个或多个处理器被配置为在没有人工干预的情况下并且基于所述资源选择标准,自动确定来自所述多个潜在资源的资源。
[0225]
示例13.根据示例10所述的装置,其中,所述高级配置数据使用可扩展命令集定义资源选择标准。
[0226]
示例14.根据示例10所述的装置,其中,所述一个或多个处理器还被配置为识别所述多个潜在资源中的每一个的状态的状态数据,其中,所述一个或多个处理器被配置为基于将资源选择标准应用于状态数据来确定所述多个潜在资源中支持服务的资源。
[0227]
示例15.根据示例14所述的装置,其中,所述一个或多个处理器还被配置为:获得识别所述多个潜在资源中的每一个的更新状态的更新状态数据;基于更新的状态数据和资源选择标准,确定所确定的资源是否将继续支持服务;响应于确定所确定的资源不继续支持服务,并且基于资源选择标准和更新的状态数据,确定支持服务的替换资源;将高级配置数据转换成特定于所确定的替换资源的低级配置数据;并且当在网络中重新供应服务时,使用特定于所确定的替换资源的低级配置数据来配置所确定的替换资源。
[0228]
示例16.根据示例14所述的装置,其中,所述状态数据识别使用可扩展命令集定义的一个或多个资源度量以及相应的一个或多个权重,其中,所述资源度量识别所述多个潜在资源中相应资源的操作状态,并且其中,所述一个或多个处理器被配置为:将一个或多个权重应用于相应的一个资源度量,以获得一个或多个相应的资源负载;并且基于将资源选择标准应用于资源负载,确定所述多个潜在资源中支持服务的资源。
[0229]
示例17.根据示例10所述的装置,其中,所述一个或多个处理器还被配置为确定所述多个潜在资源中的每一个的负载特性,其中,所述一个或多个处理器被配置为基于资源选择标准和负载特性来确定所述多个潜在资源中支持服务的资源。
[0230]
示例18.根据示例10所述的装置,还包括维护提交日志数据结构,通过该提交日志数据结构,识别已经被分配用于支持所述服务的多个潜在资源中的资源。
[0231]
示例19.根据示例18所述的装置,其中,所述提交日志数据结构指示所述多个潜在资源可用于分配支持服务,并且其中,确定资源包括基于资源选择标准和提交日志数据,确定所述多个潜在资源中支持服务的资源。
[0232]
示例20.一种其上存储有指令的非暂时性计算机可读存储介质,在被执行时,所述指令促使管理装置的一个或多个处理器:获得策略,该策略包括定义要在网络内部署的服务的高级配置数据,所述高级配置数据包括资源选择标准,该资源选择标准识别用于从多个潜在资源中选择支持该服务的资源的一个或多个标准;基于资源选择标准,从多个潜在资源中确定支持服务的资源;将高级配置数据转换成特定于所确定的资源的低级配置数据;并且当在网络中供应服务时,使用特定于所确定的资源的低级配置数据来配置所确定
的资源。
[0233]
此外,在上述任何示例中阐述的任何特定特征可以组合成所述技术的有益示例。即,任何特定特征通常适用于本公开中描述的技术的所有示例。已经描述了这些技术的各种示例。
[0234]
在一个或多个示例中,所描述的功能可以用硬件、软件、固件或其任意组合来实现。如果以软件实现,这些功能可以作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质上的一个或多个指令或代码来传输,并由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,其对应于有形介质,例如,数据存储介质。数据存储介质可以是可由一个或多个计算机或一个或多个处理器访问的任何可用介质,以检索指令、代码和/或数据结构,用于实现本公开中描述的技术。计算机程序产品可以包括计算机可读介质。
[0235]
通过示例而非限制的方式,这种计算机可读存储介质可以包括ram、rom、eeprom、cd-rom或其他光盘存储器、磁盘存储器或其他磁存储装置、闪存或任何其他可以用于存储指令或数据结构形式的所需程序代码并且可以由计算机访问的介质。计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他暂时介质,而是涉及非暂时的有形存储介质。本文使用的磁盘和光盘包括光盘(cd)、激光盘、光碟、数字多功能盘(dvd)、软盘和蓝光光盘,其中,磁盘通常磁性地再现数据,而光盘用激光光学地再现数据。上述的组合也应该包括在计算机可读介质的范围内。
[0236]
指令可以由一个或多个处理器执行,例如,一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程逻辑阵列(fpga)或其他等效的集成或分立逻辑电路。因此,本文使用的术语“处理器”可以指任何前述结构或任何其他适合于实现本文描述的技术的结构。此外,在一些方面,本文描述的功能可以设置在被配置为编码和解码的专用硬件和/或软件模块中,或者包含在组合编解码器中。此外,可以在一个或多个电路或逻辑元件中完全实现这些技术。
[0237]
本公开的技术可以在多种装置或设备中实现,包括无线手机、集成电路(ic)或一组ic(例如,芯片组)。在本公开中描述了各种组件、模块或单元,以强调被配置为执行所公开的技术的装置的功能方面,但是不一定需要由不同的硬件单元来实现。相反,如上所述,各种单元可以在编解码器硬件单元中组合,或者由许多互操作硬件单元(包括如上所述的一个或多个处理器)以及合适的软件和/或固件提供。
[0238]
已经描述了这些技术的各个方面。该技术的这些和其他方面在以下权利要求的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1