CN113381875B - 用于获取配置数据的方法 - Google Patents
用于获取配置数据的方法 Download PDFInfo
- Publication number
- CN113381875B CN113381875B CN202010420746.3A CN202010420746A CN113381875B CN 113381875 B CN113381875 B CN 113381875B CN 202010420746 A CN202010420746 A CN 202010420746A CN 113381875 B CN113381875 B CN 113381875B
- Authority
- CN
- China
- Prior art keywords
- model
- data
- resource
- configuration data
- network element
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 230000004044 response Effects 0.000 claims abstract description 41
- 230000027455 binding Effects 0.000 claims description 38
- 238000009739 binding Methods 0.000 claims description 38
- 238000006243 chemical reaction Methods 0.000 claims description 6
- 230000007704 transition Effects 0.000 claims description 2
- 238000013499 data model Methods 0.000 abstract description 48
- 238000007726 management method Methods 0.000 description 110
- 238000004891 communication Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 239000008186 active pharmaceutical agent Substances 0.000 description 6
- 238000013500 data storage Methods 0.000 description 5
- 102100038367 Gremlin-1 Human genes 0.000 description 4
- 101001032872 Homo sapiens Gremlin-1 Proteins 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000013515 script Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 241000721662 Juniperus Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000013502 data validation Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
- H04L41/0226—Mapping or translating multiple network management protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2452—Query translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/085—Retrieval of network configuration; Tracking network configuration history
- H04L41/0853—Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开涉及用于获取数据配置的方法。提供了支持来自异构数据源的客户端数据模型的服务器。用服务器管理网元以支持来自异构数据源的客户端数据模型。服务器接收对将以第一模型返回的网元的配置数据的第一查询。服务器确定网元的配置数据的模型类型。当模型类型为不是第一模型的第二模型时,服务器向网元发送将以第二模型返回的配置数据的第二查询,并且将从网元接收的配置数据转换为第一模型。另外,服务器返回第一模型中的配置数据作为对第一查询的响应。
Description
技术领域
本发明涉及计算机网络,更具体地,涉及网元的管理。
背景技术
计算机网络是可以交换数据和共享资源的互连计算设备的集合。各种设备操作以促进计算设备之间的通信。例如,计算机网络可以包括路由器、交换机、网关、防火墙和各种其他设备,以提供和促进网络通信。
这些网元通常包括用于本地或远程配置设备的机制(例如管理接口)。通过与管理接***互,客户端可以执行配置任务以及执行操作命令以收集和查看被管理设备的操作数据。例如,客户端可以配置设备的接口卡、调整支持的网络协议的参数、指定设备内的物理部件、修改由路由器维护的路由信息、访问软件模块和驻留在设备上的其他资源,以及执行其他配置任务。此外,客户端可以允许用户查看来自设备的当前操作参数、***日志、与网络连接相关的信息、网络活动或其他状态信息,以及查看从设备接收的事件信息并对其作出反应。
网络配置服务可以由多个不同的设备来执行,例如具有服务卡和/或专用服务设备的路由器。这些服务包括连接服务,例如三层虚拟专用网(L3VPN)、虚拟专用局域网服务(VPLS)和对等(P2P)服务。其他服务包括网络配置服务,例如Dot1q VLAN服务。网络管理***(NMS)和NMS设备(也称为控制器或控制器设备)可以支持这些服务,使得管理员可以容易地创建和管理这些高级网络配置服务。
特别地,设备的用户配置可以被称为“意图”。基于意图的联网***允许管理员描述预期的网络/计算/存储状态。用户意图可以归类为业务策略或无状态意图。可以基于网络的当前状态来解析业务策略或有状态意图。无状态意图可以是描述预期网络/计算/存储状态的完全声明性方式,而不考虑当前网络状态。
意图可以表示为意图数据模型,其可以使用统一图建模。意图数据模型可以被表示为连接的图,从而可以跨意图数据模型来实现业务策略。例如,可以使用具有与有边(has-edges)和参考(ref)边连接的顶点的连接图来表示数据模型。控制器设备可以将意图数据模型建模为统一的图,使得意图模型可以被表示为连接的。以这种方式,可以跨意图数据模型实现业务策略。当使用统一的图模型来建模意图时,扩展新的意图支持需要扩展图模型和编译逻辑。
为了配置设备以执行意图,用户(例如管理员)可以编写转换程序,该转换程序将高级配置指令(例如,根据意图数据模型的指令,其可以表示为统一图模型)转换成低级配置指令(例如根据设备配置模型的指令)。作为配置服务支持的一部分,用户/管理员可以提供意图数据模型以及意图数据模型到设备配置模型之间的映射。
为了简化用户的映射定义,控制器设备可以被设计成以简单的方式提供定义映射的能力。例如,一些控制器设备提供对速度模板和/或可扩展样式表语言转换(XSLT)的使用。这种转换器包含从意图数据模型到低级设备配置模型的转换或映射逻辑。通常,意图数据模型中相对少量的改变会影响设备配置上相对大量的属性。当从意图数据模型创建、更新和删除服务时,可以使用不同的转换器。
发明内容
一般来说,本发明描述用于管理网元之间的接口并提供运行时可编程接口以管理配置数据的技术。在例如网络管理***(NMS)设备(在此也称为控制器设备)上操作的服务器可以与具有以例如另一下一代(YANG)数据建模语言表示的低级(即设备级)配置数据的网元交互。配置数据确定可由与网元上的服务交互的应用可编程接口(API)执行的范围和功能。这些API提供接口,以便于网元有计划地访问其他网元,例如以获得相关的配置信息。例如,分组控制器可能需要与光控制器交互以获得光控制器的拓扑和清单(inventory)。与配置数据交互的示例API包括使用代表性状态传输(REST)模式的API。具体地,一个这样的示例API是RESTCONF,其使用HTTP方法来提供对网元的访问。可以例如由控制器设备实现的网络中的配置管理服务器提供经由API接收命令并与在目标网元上操作的客户端交互以管理配置数据的服务。
在网络中交互的设备通常具有被格式化为符合不同模式(例如数据模型模式的不同版本或不同数据模型模式)的不同配置。例如,模式定义了配置数据的语法和/或关键字。根据本发明的技术,所述配置管理服务器包括(i)数据绑定,其充当从在一个模式中格式化的配置数据到在另一模式中格式化的转换器,以及(ii)数据映射器,其在转换之后处理所述配置数据。
传统上,在分层数据模式中,如果管理员请求父资源,则网元以父资源的信息进行响应。为了获得任何子资源的信息(例如,版本标识符(ID等),管理员或管理服务器必须单独地请求它们。根据本发明的技术,在递归地传送配置数据的目标网元上的客户端从指定的父节点开始行进通过分层,以返回分层中的子节点的所有版本ID。如果任何返回的节点具有不同的版本ID,则服务器可以特别地请求该节点的特定配置数据。
为了确定网络中哪些资源可用,或者从设备中检索配置对象,网络管理员时常向网络查询网络上可用的服务和/或资源。目前,如RESTCONF的API不支持分页;即,请求响应的能力通过请求下一响应范围的能力指定响应范围。例如,一些类型的资源可以在整个网络上具有数千个实例。根据本发明的技术,配置管理服务器有助于作出指定限制的请求,所述限制指定将从服务器获取的记录的数量(例如,针对前800个记录的请求等)。将来的请求(例如,对于记录801至1600的请求)使用游标ID来确定下一范围将从哪里开始,例如从对应于游标ID的记录之后的记录开始。以这种方式,即使记录的数量改变(例如随后的记录被删除或增加),记录都最终被检索。
示例方法包括接收将以第一模型返回的网元的配置数据的第一查询。该方法还包括确定网元的配置数据的模型类型。当模型类型为不是第一模型的第二模型时,该方法包括向网元发送将以第二模型返回配置数据的第二查询,以及将从网元接收的配置数据转换为第一模型。另外,该方法包括返回以第一模型的配置数据作为对第一查询的响应。
示例方法包括在缓存中存储用于多个资源的配置数据以及对应的资源标识符和版本标识符。该方法还包括响应于一事件,选择多个资源中的一个或多个并使用资源标识符查询对应的版本标识符。该方法包括接收响应于该查询的具有资源标识符和版本标识符的响应。该方法包括将所接收的版本标识符与缓存中的对应版本标识符进行比较。另外,该方法包括响应于所接收的版本标识符之一与缓存中的对应版本id之间的差异,请求与对应资源id相关联的资源的配置数据,并且将响应于该请求而接收的配置数据存储在缓存中。
示例方法包括接收针对资源的第一查询,所述第一查询指定查询参数和响应限制。该方法还包括生成第一查询响应,该第一查询响应包括第一资源列表,该第一资源列表包括满足查询参数达响应限制的资源的数量。另外,该方法包括存储第一游标id,该第一游标id标识第一查询响应中的第一资源列表上的最后一个资源。
在附图和下面的描述中阐述了一个或多个示例的细节。其他特征、目的和优点从说明书和附图以及权利要求中将是清楚明白的。响应返回所请求的记录、记录总数的计数以及指定响应中的最后记录的ID的游标ID。
附图说明
图1是示出包括使用管理设备管理的企业网络的元件的示例的框图。
图2是示出用于图1的管理设备的一组示例性部件的框图。
图3A和3B是示出根据本发明的教导而操作的在图1和2的管理设备上操作的示例配置管理器的框图。
图4是来自以不同模式存储配置数据的网元检索的配置数据的示例方法的流程图。
图5是版本缓存管理的示例方法的流程图。
图6是资源分页的示例方法的流程图。
具体实施方式
配置管理设备包括网络管理设备和控制器(例如软件定义的联网(SDN)控制器等),操作具有配置API的服务器,例如RESTCONF服务器,以提供用于访问网元和网络管理设备的编程接口,并改变配置数据。例如,RESTCONF服务器提供基于HTTP的协议以提供对网元和网络管理设备的访问并改变配置数据。对于北向集成(也称为NBI),网元提供接口(例如,经由在网元上操作的客户端)以与配置API交互。在网络内,这些客户端可以包括相同的配置数据。然而,它们可能不会以相同的格式提供数据或使用相同的数据模型(有时称为“模式(schema)”)。格式和/或数据模型包括例如用于定义配置数据的不同语法和/或关键字。例如,一个设备可以使用符合最新建模条件的数据建模语言来建模,而另一个设备可以使用旧有建模条件来建模(例如旧有模型可以使用“名称”,而当前模型可以使用“名称:”)。这意味着,为了促进与网元的通信,需要转换配置数据以允许编程接口读取和写入配置数据。因为,例如,可以在网络中部署模式的变化,所以对于在网元上操作的客户端,将源数据模型(例如,YANG型数据模型等)转换为目标模型将是繁重的。如下所述,配置管理服务器包括提供从一个模式的格式转换到另一模式的格式的方法的数据绑定。因此,当网元、网络管理设备或控制器经由配置管理服务器提供的接口请求配置数据时,网元、网络管理设备或控制器可以接收对网元可用的格式的请求的响应。配置管理服务器上的配置API提供灵活的HTTP GET&POST、PUT请求来管理配置数据的数据分层中的数据。数据绑定被配置为基于统一资源标识符(URI)和过滤器返回数据。因为具有特定客户端数据模型的网元可以具有不同的数据存储和不同的优化模型,所以在一些示例中,网元上的客户端提供到客户端数据模型(例如到配置管理服务器)的转换机制。
在配置数据内,通常以分层组织资源。网元上的客户端可以缓存要使用的数据存储资源(例如以避免重复调用以确定可用资源)以及对应的版本标识符(ID)。有时,为了确保资源是最新的,应用将请求资源的版本ID。当版本ID改变时,应用确定资源已经改变并且可以请求更新的值。
传统上,当请求父资源时,网元仅从父资源返回信息。要获得任何子资源的版本ID,服务器必须单独请求它们。在有数千个具有父子关系的资源的复杂***中,这个过程可能需要花费数千个占用处理和带宽资源的单独呼叫。如下所述,响应于对分层数据配置的具有资源ID的查询,目标网元上的客户端递归地行进通过该分层。客户端返回与资源ID相关联的资源的版本以及该资源的所有子资源的资源ID-版本ID对。这样,服务器可以每个父资源进行一次调用,而不是每个资源进行一次调用。如果分层中的任何子资源具有不同的版本ID,则服务器可以具体地对特定资源进行调用。
为了确定网络中哪些资源可用,网络管理员时常向网络查询网络上可用的服务和/或资源。目前,如RESTCONF的API不支持分页;即,请求响应的能力通过请求下一响应范围的能力指定响应范围。例如,一些类型的资源可以在整个网络上具有数千个实例。根据本发明的技术,配置管理服务器有助于作出指定限制的请求,所述限制指定将从服务器获取的记录的数量(例如针对前800个记录的请求等)。将来的请求(例如对于记录801至1600的请求)使用游标ID来确定下一范围将从哪里开始(例如从对应于游标ID的记录之后的记录开始)。以这种方式,即使记录的数量改变(例如随后的记录被删除或增加),记录都最终被检索。
图1是示出包括使用网络管理设备102管理的企业网络100的元件的示例的框图。企业网络100的受管理网元104A-104G(统称为“网元104”)包括经由通信链路互连以形成通信拓扑以便交换资源和信息的网元。网元104可以包括例如路由器、交换机、网关、网桥、集线器、服务器、防火墙或其他入侵检测***(IDS)或入侵防御***(IDSP)、计算设备、计算终端、打印机、其他网元或这些设备的组合。网络管理设备102可以管理企业网络100内的不同网元104。例如,一个网络管理设备102可以是管理与光网络相关的网元104的光控制器,而另一个网络管理设备102可以是管理与IP网络相关的网元104的互联网协议(IP)控制器。在所示示例中,网络管理设备102通信地联接到管理网络管理设备102的控制器设备105,网络管理设备102提供不同类型的网元104之间的协调。例如,控制器设备105可以向IP网络提供光网络拓扑(例如企业网络100内的节点和链路)。虽然在本发明中描述为发送、传送或以其他方式支持分组,但是企业网络100可以根据由任何其他协议定义的任何其他分立数据单元来发送数据,所述协议诸如由异步传输模式(ATM)协议定义的信元,或者由用户数据报协议(UDP)定义的数据报。互连元件104的通信链路可以是物理链路(例如光、铜等)、无线或其任何组合)。
企业网络100被示出为经由通信链路联接到公共网络106(例如因特网)。公共网络106可以包括例如一个或多个客户端计算设备。公共网络106可以提供对网络服务器、应用服务器、公共数据库、介质服务器、终端用户设备以及其他类型的网络资源设备和内容的访问。
网络管理设备102经由企业网络100通信地联接到元件104。在一些示例中,网络管理设备102形成设备管理***的一部分,尽管为了图1中的示例的目的仅示出了设备管理***的一个设备。网络管理设备102可以直接或间接联接到各种元件104。一旦部署并激活了元件104,管理员108就使用网络管理设备102(或多个这样的管理设备)来使用设备管理协议来管理网元。一个示例设备协议是简单网络管理协议(SNMP),该简单网络管理协议允许网络管理设备102遍历并修改管理信息库(MIB),该管理信息库在每个被管理元件104内存储配置数据。SNMP协议的进一步细节可以在以下文献中找到:Harrington等人发表的RFC3411“An Architecture for Describing Simple Network Management Protocol(SNMP)Management Frameworks(描述简单网络管理协议(SNMP)管理模式的架构)”,网络工作组,互联网工程任务组草案,2002年12月,可在http://tools.ietf.org/html/rfc3411查阅,其全部内容通过引用并入本文。
在通常的实践中,网络管理设备102(也称为网络管理***(NMS)或NMS设备)和元件104由企业的IT组集中维护。管理员108与控制器设备105和/或网络管理设备102交互以远程地监视和配置元件104。例如,管理员108可以从网络管理设备102接收关于任何元件104的警告、查看元件104的配置数据、修改元件104的配置数据、向企业网络100添加新的网元、从企业网络100移除现有的网元,或者以其他方式操纵企业网络100和其中的网元。尽管针对企业网络进行了描述,但是本发明的技术可应用于其他网络类型、公共和私有网络,包括LAN、VLAN、VPN等。
在一些示例中,管理员108使用控制器设备105或本地工作站来与元件104交互,例如通过远程登录、安全外壳(SSH)或其他这样的通信会话。即,元件104通常提供用于直接交互的接口(诸如命令行接口(CLI))、基于web的接口、图形用户界面(GUI)等,用户通过这些接口可以与设备交互以直接发出基于文本的命令。例如,这些接口通常允许用户通过例如远程登录、安全外壳(SSH)、超文本传输协议(HTTP)或其他网络会话直接与设备交互,以根据所定义的语法输入文本来向受管理元件提交命令。在一些示例中,用户使用控制器设备105发起与元件104之一(例如元件104F)的SSH会话110,以直接配置元件104F。以此方式,用户可以直接向元件104提供用于执行的格式的命令。
此外,管理员108还可以创建可以由控制器设备105提交给任何或所有元件104的脚本。例如,除了CLI接口之外,元件104还提供用于接收根据脚本语言指定命令的脚本的接口。在某种意义上,脚本可由控制器设备105输出以自动调用受管理单元104上的对应远程过程调用(RPC)。脚本例如可以遵循可扩展标记语言(XML)或另一种数据描述语言。
管理员108使用控制器设备105来配置元件104以指定进一步作为管理员108的目标的某些操作特性。例如,管理员108可为元件104指定关于安全性、设备可访问性、流量工程、服务质量(QoS)、网络地址转换(NAT)、分组过滤、分组转发、速率限制或其他策略的特定操作策略。控制器设备105使用为管理受管理的网元14内的配置数据而设计的一个或多个网络管理协议来执行配置,诸如SNMP协议、网络配置协议(NETCONF)(或其派生协议,诸如Juniper设备管理接口)或代表性状态传输配置协议(RESTCONF)。网络管理设备102可以与一个或多个元件104建立NETCONF和/或RESTCONF会话。
配置数据可以用YANG来表示,这在下列文献中有所描述:Bjorklund的“YANG—AData Modeling Language for the Network Configuration Protocol(NETCONF)(YANG-一种用于网络配置协议(NETCONF)的数据建模语言)”,因特网工程任务组,RFC 6020,2010年10月,可在tools.ietf.org/html/rfc6020查阅。在一些示例中,意图数据模型可以用YAML Ain't标记语言(YAML语言)来表达。网络管理设备102可以包括用于转换意图数据模型差异的各种反应性映射器。这些功能被配置为接受意图数据模型(其可以例如根据YANG或YAML被表达为结构化的输入参数)。这些功能还被配置为输出对应的低级设备配置数据模型改变的集合,例如,设备配置添加和移除。即,y1=f1(x),y2=f2(x),…yN=fN(x)。
网络管理设备102可将YANG建模用于意图数据模型和低级设备配置模型。该数据可以包含YANG实体上的关系,例如列表项和容器。网络管理设备102可将YANG数据模型转换为图形数据模型,并将YANG验证转换为数据验证。在2017年3月17日提交的美国专利申请15/462,465“使用基于YANG图形数据库的程序覆盖来配置和管理网络设备”(CONFIGURINGAND MANAGING NETWORK DEVICES USING PROGRAM OVERLAY ON YANG-BASED GRAPHDATABASE)中描述了用于使用高级配置数据的图模型来管理网元的技术,其全部内容通过引用结合于此。
网络管理设备102可从管理员108之一接收表示关于统一意图数据模型的创建、更新和/或删除动作中的任一个或全部的数据。网络管理设备102可被配置为针对应用于图形模型的创建、更新和删除中的每一个、使用相同的编译逻辑。通常,控制器(如网络管理设备102)使用用于意图的分层数据模型、低级数据模型和资源。分层数据模型可以基于YANG或YAML。该分层数据模型可以被表示为图形,如以上所讨论的。控制器设备105使用用于跨越(span)了低级模型的高级模型的分层数据模型。
在所示示例中,控制器设备105和网络管理设备102包括配置管理服务器112,配置管理服务器112帮助例如管理员108管理网元104。配置管理服务器112例如可以是RESTCONF服务器。在一些示例中,配置管理服务器112通信地联接到网元104和在网元104上操作的客户端114。附加地或可选地,在一些示例中,配置管理服务器112从控制器设备105通信地联接到网络管理设备102。在网络100中,各种网元104可以使用不同的模式来定义配置数据。例如,由不同制造商制造的网元104可以使用不同的模式。作为另一示例,不同的网元可以用不同的版本数据模型语言来操作。如在此所使用的,数据模型语言的不同版本被认为是不同的模式。如下所述,配置管理服务器112包括提供转换以从一个模式的格式转换到另一模式的格式的数据绑定。在一些示例中,在从一个网元104(有时称为“请求网元”)接收到对另一网元104(有时称为“目标网元”)的配置和/或资源的请求时,配置管理服务器112有助于将由目标网元使用的模式转换为在请求网元上使用的模式。配置管理服务器112检索与目标网元相关联的一个或多个数据绑定以设置和/或检索来自目标网元的配置数据。例如,在使用HTTP请求的***(例如与RESTCONF等兼容的***等)中,配置管理服务器112可以提供HTTP GET&POST、PUT请求以管理配置数据的数据分层中的数据。例如,网络100可以包括来自使用两种不同模式的不同制造商的分组控制器和光控制器,并且分组控制器可能需要来自光控制器的拓扑信息。在这样的例子中,配置管理服务器112可以检索与两个控制器相关联的数据绑定,并且转换命令以符合光控制器的模式,并且以符合分组控制器的模式的方式返回拓扑信息。
另外,在一些示例中,配置管理器112便于缓存网络设备104上的资源的配置数据。为了减少从网络设备104检索资源的需要,配置管理器112维护存储配置数据的缓存。配置数据包括版本标识符(版本ID)。偶尔,网络设备104上的资源的配置数据发生改变,并且网络设备104(例如在网络设备104上操作的配置客户端114)将改变版本ID以表示配置已经改变。版本ID例如可以是基于该配置通过算法确定的(例如使用散列算法等)。有时,为了确保缓存中的定义是最新的,配置管理器112使用感兴趣的资源的资源ID向网络设备104请求一个或多个版本ID。当版本ID改变时,配置管理器112确定定义已经改变并且可以请求特定资源的新定义。在分层中存储该配置。响应于接收到具有资源ID的版本ID请求,目标网络设备上的配置客户端114递归地行进通过分层。配置客户端114返回与资源ID相关联的资源的版本以及该资源的所有子资源的资源ID-版本对。类似地,在一些示例中,控制器设备105上的配置管理服务器112维护版本缓存,并且可以向网络管理设备102查询版本ID。例如,控制器设备105可以缓存与网络拓扑相关的网元104的资源配置。
另外,在一些示例中,管理员108可以经由配置管理服务器112查询网络100上可用的服务和/或资源,以便确定网络100中哪些资源是可用的。查询指定要提取和/或显示的记录的数量的限制(例如针对前800个记录的请求等)。查询的结果返回指定的记录数量以及指定的记录数量内的最后资源的游标ID(例如资源ID等)。将来的请求(例如对于记录801至1600的请求)包括游标ID以确定下一范围将从哪里开始(例如从对应于游标ID的记录之后的记录开始)。以这种方式,即使记录的数量改变(例如随后的记录被删除或增加),记录也不会被跳过。
图2是示出图1的网络管理设备102的一组示例部件的框图。在该示例中,网络管理设备102包括控制单元200、网络接口202和用户接口204。网络接口202表示可以将网络管理设备102可通信地联接到外部设备(例如图1的元件104之一)的示例接口。网络接口202可以表示无线和/或有线接口,例如以太网接口或无线电,其被配置为根据无线标准进行通信,例如IEEE802.11无线网络协议(例如802.11a/b/g/n或其他这样的无线协议)中的一个或多个。在各种示例中,网络管理设备102可以包括多个网络接口,尽管为了示例的目的仅示出了一个网络接口。
控制单元200表示用于实现属于控制单元200及其构成模块和元件的功能的硬件、软件和/或固件的任何组合。当控制单元200包括软件或固件时,控制单元200还包括用于存储和执行软件或固件的任何必要的硬件,诸如一个或多个处理器或处理单元。一般来说,处理单元可包含一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或任何其他等效集成或分立逻辑电路,以及此类部件的任何组合。此外,通常使用固定和/或可编程逻辑电路来实现处理单元。
用户接口204表示一个或多个接口,诸如管理员108(图1)的用户通过该接口与网络管理设备102交互以例如提供输入和接收输出。例如,用户接口204可以表示监视器、键盘、鼠标、触摸屏、触摸板、触控板、扬声器、相机、麦克风等中的一个或多个。此外,尽管在该示例中网络管理设备102包括用户接口,但是管理员108不需要直接与网络管理设备102交互,而是可以例如经由网络接口202远程访问控制器设备102。
尽管出于示例的目的将用户接口204描述为允许管理员108(图1)与控制器设备102交互,但是可以附加地或可选地使用其他接口。控制器设备102包括代表性状态转移(REST)客户端(未示出)(有时称为“RESTCONF”客户端),其可以充当到另一设备的接口,管理员108通过该接口配置控制器设备102。同样地,管理员108通过REST客户端与控制器设备102交互来配置元件104。
在该示例中,控制单元200包括用户接口模块206、网络接口模块208和管理模块210。控制单元200执行用户接口模块206以从用户接口204接收输入和/或向用户接口204提供输出。控制单元200还执行网络接口模块208以经由网络接口202发送和接收数据(例如分组)。用户接口模块206、网络接口模块208和管理模块210可再次实施为对应的硬件单元,或实施为软件或固件,或其组合。
控制单元200的功能可以实现为固定或可编程数字逻辑电路中的一个或多个处理单元。这种数字逻辑电路可以包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或任何其他等效的集成或分立逻辑电路,以及这些部件的任何组合。当被实现为可编程逻辑电路时,控制单元200可以进一步包括一个或多个计算机可读存储介质,其存储将由控制单元200的处理单元执行的硬件或固件指令。
控制单元200执行管理模块210以管理各种网元,例如图1的网元104。管理包括例如根据从用户(例如图1的管理员108)接收的指令来配置网元,并且向用户提供用于提交指令以配置网元的能力。在该示例中,管理模块210还包括配置模块212。
管理模块210被配置成从诸如管理员108等用户接收用于一组受管理的网元的意图统一图建模的配置数据。这样的意图统一图建模的配置数据可以被称为“意图数据模型”。随着时间的推移,用户可以更新配置数据,例如,以添加新服务、删除现有服务,或者修改由被管理设备执行的现有服务。统一意图数据模型可以根据例如YANG或YAML来构造。该图形模型可以包括由边以分层方式连接的多个顶点。在YANG中用“leafref”元件表示图模型的边。在YAML的情况下,这样的边可以用“ref”边表示。类似地,父到子顶点关系可以用“具有”边表示。例如,元件A的顶点是指使用具有边的元件B的顶点,可以理解为是指“元件A具有元件B”。
网络管理设备102还包括配置数据库214。配置数据库214通常包括描述被管理的网元(例如网元104)的信息。配置数据库214可用作意图数据存储,其可用于保存和管理意图数据模型的集合。例如,配置数据库210可以包括指示设备标识符(例如MAC和/或IP地址)、设备类型、设备供应商、设备种类(例如路由器、交换机、网桥、集线器等)等的信息(统称为“配置数据”)。配置数据库214还存储被管理设备(例如元件104)的当前配置信息(例如意图数据模型,或者在一些情况下的意图数据模型和低级配置信息两者)。配置数据库214用作存储网元104的配置数据的缓存。诸如管理员108的用户使用配置数据来管理网络100,而不必频繁地从每个网元104请求配置数据。如下所述,控制器设备102不时地通过从每个网元104请求配置数据来更新和/或以其他方式管理配置数据库214中的配置数据。
管理模块210可以将配置数据库214建模为表示YANG配置数据元素的图形数据结构(或图形数据库)。YANG指定了各种类型的数据结构,包括列表、叶列表(leaflist)、容器、具有内容的容器和特征。管理模块210可以将列表、容器、具有内容的容器和特征以及顶级容器中的每一个建模为图形数据结构中的顶点(vertices)。或,配置数据库214可以表示YAML配置数据元件。
在构造图形数据结构之后,管理模块210可对图形数据结构的数据执行操作。例如,管理模块210可以将诸如获取配置、通过过滤器的获取配置和编辑配置等基于Netconf的操作映射到诸如Gremlin查询等图形查询语言查询。在gremlindocs.spmallette.documentup.com和github.com/tinkerpop/gremlin/wiki中的Gremlin文档(GremlinDocs)中描述了Gremlin。如果条件属性改变,则管理模块210可以执行映射到图形数据结构的顶点和边的条件。响应于所述条件,管理模块210可处理作为如下文更详细论述的功能而处理的额外改变。
在所示示例中,控制单元200包括配置管理服务器112。可替换地,配置管理服务器112可以作为网络100内的单独服务器或者在网络100内的任何网元上操作。如下所述,配置管理服务器112提供到网元104的资源的配置数据的接口。例如,配置管理服务器112使用数据绑定提供接口,以在网元104内的资源使用不同模式时将查询转换为不同模式。
另外,在一些示例中,配置管理服务器112支持分页。配置管理服务器112使用基于游标的资源信息分页来进行资源的批量检索。当请求网络100上的可用资源列表时,配置管理器112接收具有(a)游标ID、(b)限制或范围以及在一些示例中(c)用于标识感兴趣资源的条件的请求。配置管理服务器112返回(a)从具有在接收到的游标ID之后的游标ID的资源开始的满足条件达到极限的资源列表、(b)满足查询条件的可用资源的总数量,以及(c)在资源列表上提供的最后一个资源的游标ID。
图3A是示出根据本发明的教导操作的示例配置管理器112的框图。配置管理服务器112例如可以是由控制器设备102操作的RESTCONF服务器。在所示示例中,配置管理器112包括管理员接口302、网络接口304、数据映射器306、模式验证器308和分页控制器312。
管理员接口302(例如经由图2的用户接口204)与管理员108通信以接收输入(例如执行任务的请求)并传输对该输入的响应(例如对请求的响应等)。网络接口304可通信地联接到用于发送请求并接收对这些请求的响应的网络设备。如图3B所示,网络接口304可以与网络100中的网元104的配置客户端114通信,或者可以与网络管理设备102的网络接口通信。
数据映射器306通信地联接到数据绑定数据库314。数据绑定数据库314包括提供从一种模式的格式到另一种模式的格式的映射的数据绑定。例如,一请求网元(或在网元上操作的资源)可以向使用不同模式的目标网元请求信息。作为另一示例,配置模型210可以一所选模式存储网元104的配置数据。数据绑定数据库314包括用于网元104的数据绑定。例如,从网元104检索出的并存储在配置数据库214中的配置数据可以使用YANG数据模型的最新版本来格式化,而一个或多个网元可以使用YANG数据模型的较早版本来存储该配置。数据绑定的示例性结构示于下表1中。
表1
数据绑定(i)在YANG数据模型中针对给定路径注册,(ii)支持GET&SET方法,(iii)包含资源和资源映射。
例如,数据绑定的GET方法提供运行时上下文参数(诸如父路径)、查询参数包括分页、排序和深度字段。以下是数据绑定的示例GET方法。
当配置管理器112接收到GET请求时,数据映射器306验证该请求并检查数据源是否在给定路径中注册。如果否,则数据映射器306递归地检查父是否向数据绑定注册。数据映射器306通过调用关联数据绑定中的GET方法来从网元检索配置数据。如果数据绑定未在确切路径中注册,则数据映射器306应用查询参数。数据映射器306合并来自不同分支的数据以返回配置数据。
数据绑定的SET方法提供运行时上下文参数,例如PUT、PATCH和POST操作。以下是用于数据绑定的示例SET方法。
当接收到PUT请求时,数据映射器306验证该请求。数据映射器306检查数据源是否在给定路径中注册。如果否,则数据映射器306递归地检查父是否向数据绑定注册。如果是,则数据映射器306调用与感兴趣的网元104相关联的数据绑定中的SET方法并使用PUT操作。当接收到POST请求时,数据映射器306验证该请求。数据映射器306检查数据源是否在给定路径中注册。如果否,则数据映射器306递归地检查父是否向数据绑定注册。如果是,则数据映射器306调用与感兴趣的网元104相关联的数据绑定中的SET方法并使用POST操作。当接收到PATCH请求时,数据映射器306验证该请求。数据映射器306检查数据源是否在给定路径中注册。如果否,则数据映射器306递归地检查父是否向数据绑定注册。如果是,则数据映射器306调用与感兴趣的网元104相关联的数据绑定中的SET方法并使用POST操作。
在一些示例中,模式验证器308是组合来自多个子树的数据并返回该数据的模式感知数据映射器。模式验证器308支持诸如内容、深度、字段和***等查询参数。在一些示例中,YANG数据模型被编译成JSON模式。在这些示例中,模式验证器308使用JSON模式来(a)验证数据、(b)基于查询参数过滤数据,和/或(c)组合来自多个数据绑定的数据。在所示示例中,模式验证器308接收从客户端114上载的数据模型318以自动生成支持数据映射器306操作(诸如PUT、PATCH、POST和GET)的数据绑定逻辑。
管理员108可能希望检查网络100中可用的资源。然而,一些资源可以在不同的网元104上具有数千个实例。分页控制器312促进游标分页式分页,以便于查看资源。分页控制器312可以例如从管理员108接收查询配置数据库214中的配置数据的任何输入。如下所述,分页控制器312将结果返回给该查询。基于游标的分页避免了偏移限制分页的问题。例如,使用偏移限制分页,如果在客户端分页的同时删除来自先前页面的项目,则所有后续结果将向前移位1。因此,当客户端请求下一页面时,有一个结果是它将跳过并且永远看不到。相反,如果在客户端正在分页时将结果添加到结果列表中,则客户端会在不同的页面上多次看到相同的结果。为了便于基于游标的分页,分页控制器312使用游标和限制数量以及查询参数。可以从管理员108接收查询参数和限制数量。游标持有特定资源的唯一标识符。游标用作指向下一个记录的指针以开始查询以获得下一页结果。限制数量表示要提取的记录数。例如,如果限制数量为50,每个页面可以包含直至50个结果。响应包括在指定限制内响应于查询的记录、指定对应于响应中的最后一个记录的资源的标识符的游标,以及总计数。响应于所述查询参数的资源的总计数数量。
分页控制器312响应于在由游标标识的记录之后的记录处开始直到由限制数量指定的记录的数量的查询参数来(例如在配置数据库214中)检索资源的记录。分页控制器312将这些记录作为查询响应返回,并将最后一个记录的标识符存储在游标中。当接收到返回下一组结果(有时称为“下一页”)的指示时,分页控制器312响应于查询参数来检索记录,所述查询参数在由游标标识的记录之后的记录处开始,直到由限制数量指定的记录的数量。
在所示示例中,缓存管理器310缓存在网元104上操作的资源的配置数据,并且当在网络设备104上操作的资源的配置数据改变时更新缓存。例如,在许多情况下,北向应用可以不与控制器同步(例如控制器的重启、控制器的软件升级,以及在北向应用到控制器之间的连接性丢失等)。为了支持缓存,配置客户端114在版本缓存316中维护用于每个数据存储资源的“版本”字段。版本字段包括当与对应的数据存储资源相关联的配置数据改变时改变的版本ID。例如,版本ID可以是递增的,或者可以是基于配置数据在数学上计算的数字。版本ID受配置数据资源的影响,不会针对非配置数据的更改而更新。对配置数据资源的更改可能会影响该资源和任何先前数据资源的版本ID。缓存管理器310在版本缓存316中缓存版本ID。
周期性地(例如每小时、每天等)或非周期性地(例如在重置时、在重新连接到网元104时等),缓存管理器310通过查询感兴趣的数据存储资源的版本ID来检查缓存的数据是否不同步。下面示出了一个示例查询。GET/restconf/data/example-jukebox:jukebox/\
Library/artist=FooFighters/albumn=WastingLIght HTTP/1.1?
fields=”songs(song/name,song/version-id_”
Host:example.com
Accept:application/yang-data+xml
响应于这样的查询,网元可以如下进行响应。
对于配置数据资源,客户端114为每个数据存储资源维护资源版本,并且当使用例如GET或HEAD方法将其检索为目标资源或先前资源时返回“version-id”属性。当查询资源时,客户端114递归地搜索分层结构并检索该资源的子资源的资源ID和版本ID。为每个子资源返回资源ID和版本ID。如果版本ID中的任何一个与存储在版本缓存316中的版本ID不同,则配置管理器112可以请求特定的配置数据。
图4是从以符合不同模式的形式存储配置数据的网元104检索配置数据的示例方法的流程图。最初,配置管理服务器112接收关于在一个或多个网元104上操作的资源的配置数据的请求(402)。例如,该请求可以包括用于检索配置数据的GET操作或用于设置配置数据的SET操作。配置管理服务器112从数据映射器数据库314中检索与要查询的网元104上的资源相关联的数据绑定(404)。配置管理服务器112基于在目标网元的数据模型中针对给定路径注册的数据绑定来配置请求(406)。
配置管理服务器112向目标网元发送配置请求(408)。配置管理服务器112接收来自目标网元104的响应(410)。配置管理服务器112将配置数据进行转换,以例如确认请求网元的模式(412)。模式验证器308提供结果(414)。
图5是版本缓存管理的示例方法的流程图。最初,客户端114请求在网元104上操作的资源的版本(例如版本ID)(502)。例如,缓存管理器310可以响应于检测到网元104已经重启而请求(多个)版本。网元104的配置客户端114检索所请求的资源的配置数据的版本(504)。客户端管理器114递归地检索用于分层中的子资源的配置数据的版本(506)。客户端管理器114返回所收集的版本(508)。
客户端114选择具有返回的版本数据的资源(510)。缓存管理器310将版本号与存储在版本缓存316中的资源的对应版本号进行比较(512)。缓存管理器310确定从配置客户端接收的所选择的资源的版本ID是否与存储在版本缓存316中的对应的版本ID相匹配(514)。当版本ID匹配时(在514处为是),则该方法继续。当版本ID不匹配时(在514处为否),缓存管理器310从对应的网元104请求所选择的资源的配置数据(516)。
客户端管理器114返回用于资源的配置数据(518)。
缓存管理器310在版本缓存316中(例如在配置数据库214中)存储新的配置数据和新的版本ID(520)。当存在要检查的另一资源时(在522处为是),缓存管理器310选择要检查的下一资源(510)。否则,当没有另一资源要检查时(在522处为否),客户端管理器310用另一组资源再次开始该过程(502)。
图6是资源分页的示例方法的流程图。最初,分页控制器312接收包括条件(例如请求参数)和限制数量的请求(602)。分页控制器312向存储缓存配置数据的数据库(例如配置数据库214)查询满足条件的资源(604)。从具有游标标识符之后的标识符的资源开始,分页控制器312选择列表上的资源的数量,直到限制数量(606)。在初始请求时,游标可能不保存资源标识符,因此将选择第一个记录。例如,如果总共存在1000个匹配条件的资源并且限制数量是100,则分页控制器312可以选择前100个资源ID。分页控制器312返回选择的标识符和/或与选择的标识符相关联的记录,并将游标设置为最后一个所选择的资源的资源ID(608)。随后,分页控制器312可接收对于下一数量的记录的请求以在游标中保持的资源ID之后的记录处开始。
本发明中所描述的技术可至少部分地实施为硬件、软件、固件或其任何组合。例如,所描述的技术的各个方面可以在一个或多个处理器中实现,包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA),或任何其他等效的集成或分立逻辑电路,以及这些部件的任何组合。术语“处理器”或“处理电路”一般可指前述逻辑电路中的任一个,可为单独或与其他逻辑电路或任何其他等效电路组合。包括硬件的控制单元也可以执行本发明的一个或多个技术。
此类硬件、软件和固件可在同一设备内或在单独设备内实施以支持本发明中所描述的各种操作和功能。另外,所描述的单元、模块或部件中的任一者可一起或单独实施为分立但可互操作的逻辑设备。对作为模块或单元的不同特征的描述旨在突出不同的功能方面,而不必暗示这样的模块或单元必须由单独的硬件或软件部件来实现。相反,与一个或多个模块或单元相关联的功能可以由单独的硬件或软件部件来执行,或者集成在公共或单独的硬件或软件部件内。
在本发明中所描述的技术还可在包含指令的计算机可读介质(例如计算机可读存储介质)中实施或编码。嵌入或编码在计算机可读介质中的指令可致使可编程处理器或其他处理器例如在执行所述指令时执行所述方法。计算机可读介质可以包括非易失性计算机可读存储介质和瞬态通信介质。计算机可读存储介质是有形的和非易失性的,可以包括随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存、硬盘、CD-ROM、软盘、盒式磁带、磁性介质、光学介质,或其他计算机可读存储介质。术语“计算机可读存储介质”是指物理存储介质,而不是信号、载波或其他瞬态介质。
已经描述了各种示例。这些和其他示例在所附权利要求的范围内。
Claims (16)
1.一种用于获取配置数据的方法,包括:
由服务器装置从客户端装置接收定义用于存储多个受管理网元的配置数据的第一模型,所述第一模型包括一个或多个路径并且包括用于将从所述多个受管理网元接收的配置数据转换为符合所述第一模型的相应转换指令,每个路径对应于所述多个受管理网元的不同的标识符;
由所述服务器装置从所述客户端装置接收将以所述第一模型返回的所述多个受管理网络中的第一网元的配置数据的第一查询,所述第一查询为所述第一网元指定所述标识符中的一个标识符;
由所述服务器装置向所述第一网元发送第二查询以检索对应于所述第一查询并符合第二模型的配置数据;
由所述服务器装置利用对应于包含在所述第一模型的路径之一中的所述第一网元的标识符中的一个标识符的转换指令将从所述第一网元接收的所述配置数据进行转换以符合所述第一模型;以及
由所述服务器装置将符合所述第一模型的转换的配置数据作为对所述第一查询的响应返回给所述客户端装置。
2.如权利要求1所述的方法,其中,所述第一网元与数据绑定数据库中的数据绑定相关联,所述数据绑定指定在所述第一模型和所述第二模型之间进行转换的一个或多个关系,并且其中,向所述第一网元发送所述配置数据的所述第二查询还包括基于所述数据绑定构造所述第二查询。
3.如权利要求2所述的方法,其中,将从所述第一网元接收的所述配置数据转换为所述第一模型进一步包括基于所述数据绑定将所述第二模型转换为所述第一模型。
4.如权利要求2所述的方法,其中,所述数据绑定包括将符合所述第一模型的查询转换成符合所述第二模型的查询的规则。
5.如权利要求1或2所述的方法,进一步包括将所述配置数据以所述第一模型存储在配置数据库中。
6.如权利要求1或2所述的方法,其中,其中所述第一查询请求所述第一网元和第二网元的配置数据并且包括用于所述第一网元的所述标识符中的第一标识符和用于所述第二网元的所述标识符中的第二标识符。
7.如权利要求6所述的方法,进一步包括,
向所述第二网元发送第三查询以检索对应于所述第一查询并符合第三模型的配置数据;和
利用对应于包含在所述第一模型的路径之一中的所述第二网元的标识符中的所述第二标识符的转换指令将从所述第二网元接收的所述配置数据进行转换以符合所述第一模型。
8.如权利要求6所述的方法,进一步包括将来自第一网元和第二网元的所述配置数据以所述第一模型的格式存储在配置数据库中。
9.如权利要求1所述的方法,进一步包括:
将多个资源的配置数据连同对应的资源标识符和版本标识符一起存储在缓存中,所述多个资源的配置数据包括所述第一网元的配置数据;
响应于一事件,选择所述多个资源中的一个或多个资源,并且使用所选择的资源的资源标识符,从包括所述第一网元的所述多个受管理网元查询所选择的资源的版本标识符;
从所述多个受管理网元接收响应于所述查询的具有所述资源标识符和所述版本标识符的一个或多个响应;
将所接收的版本标识符与缓存中存储的对应版本标识符进行比较;
响应于所接收的版本标识符之一与缓存中的对应版本标识符之间的差异,请求与对应的资源标识符相关联的资源的配置数据;和
将响应于所述请求而从所述资源接收的所述配置数据存储在所述缓存中。
10.如权利要求9所述的方法,其中,所述响应包括与所述查询中的资源标识符相关联的子资源的资源标识符和版本标识符。
11.根据权利要求10所述的方法,其中,将接收到的版本标识符与缓存中的对应版本标识符进行比较包括比较子资源的资源标识符和版本标识符。
12.如权利要求9或10所述的方法,其中,当资源的配置数据发生改变时,资源的版本标识符发生改变。
13.如权利要求9或10所述的方法,其中,所述事件包括以下至少之一:与所述资源相关联的所述第一网元的重启、与所述资源相关联的所述第一网元的软件升级,和到与所述资源相关联的网元的连接性的恢复。
14.如权利要求9或10所述的方法,其中,请求与对应的资源标识符相关联的资源的配置数据进一步包括:
确定资源的配置数据的模型类型;
当所述模型类型为不是所述第一模型的所述第二模型时:
向与将以第二模型返回的配置数据的资源相关联的所述第一网元发送请求;和
将从所述第一网元接收的所述配置数据转换为所述第一模型以存储在所述缓存中。
15.如权利要求14所述的方法,其中,所述资源与数据绑定数据库中的数据绑定相关联,并且其中,向所述第一网元发送针对所述配置数据的第二查询还包括基于所述数据绑定构造所述第二查询。
16.如权利要求9或10所述的方法,其中,所述配置数据被存储在第一数据库中并且版本标识符被存储在第二数据库中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/800,545 | 2020-02-25 | ||
US16/800,545 US11711262B2 (en) | 2020-02-25 | 2020-02-25 | Server to support client data models from heterogeneous data sources |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113381875A CN113381875A (zh) | 2021-09-10 |
CN113381875B true CN113381875B (zh) | 2024-06-04 |
Family
ID=71069644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010420746.3A Active CN113381875B (zh) | 2020-02-25 | 2020-05-18 | 用于获取配置数据的方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11711262B2 (zh) |
EP (1) | EP3873032A1 (zh) |
CN (1) | CN113381875B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3910880A1 (en) * | 2020-05-14 | 2021-11-17 | Nokia Technologies Oy | Blockchain based device monitoring |
US20240078234A1 (en) * | 2022-09-02 | 2024-03-07 | Starlord (Cayman) Limited | Apparatus, method and storage medium for database pagination |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107534671A (zh) * | 2015-04-27 | 2018-01-02 | 微软技术许可有限责任公司 | 分布式服务实体和关联的聚合与联合 |
CN110505075A (zh) * | 2018-05-18 | 2019-11-26 | 华为技术有限公司 | 设备管理方法及相关设备 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6766334B1 (en) * | 2000-11-21 | 2004-07-20 | Microsoft Corporation | Project-based configuration management method and apparatus |
US20050015471A1 (en) | 2003-07-18 | 2005-01-20 | Zhang Pu Paul | Secure cluster configuration data set transfer protocol |
US7590669B2 (en) * | 2004-04-06 | 2009-09-15 | Microsoft Corporation | Managing client configuration data |
US8291045B2 (en) * | 2005-02-14 | 2012-10-16 | Microsoft Corporation | Branded content |
WO2009063555A1 (ja) | 2007-11-13 | 2009-05-22 | Fujitsu Limited | 制御代理装置、制御代理方法および制御代理プログラム |
US10084650B2 (en) * | 2013-07-09 | 2018-09-25 | Tail-f Systems AB | Graphical user interface for customizing graphical representations based on registry data |
US10007710B2 (en) * | 2015-09-21 | 2018-06-26 | Splunk Inc. | Adaptive control of data collection requests sent to external data sources |
US10044826B2 (en) | 2016-08-10 | 2018-08-07 | Cloudflare, Inc. | Method and apparatus for reducing network resource transmission size using delta compression |
US10956415B2 (en) * | 2016-09-26 | 2021-03-23 | Splunk Inc. | Generating a subquery for an external data system using a configuration file |
US11188551B2 (en) | 2016-11-04 | 2021-11-30 | Microsoft Technology Licensing, Llc | Multi-level data pagination |
US20180196687A1 (en) * | 2017-01-06 | 2018-07-12 | Ca, Inc. | Adaptive data modeling |
US10516761B1 (en) | 2017-03-17 | 2019-12-24 | Juniper Networks, Inc. | Configuring and managing network devices using program overlay on Yang-based graph database |
US20190391980A1 (en) | 2018-06-26 | 2019-12-26 | Live Nation Entertainment, Inc. | Systems methods and apparatus for generation of a database object |
-
2020
- 2020-02-25 US US16/800,545 patent/US11711262B2/en active Active
- 2020-05-18 CN CN202010420746.3A patent/CN113381875B/zh active Active
- 2020-05-18 EP EP20175129.4A patent/EP3873032A1/en active Pending
-
2023
- 2023-06-02 US US18/328,550 patent/US20230308348A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107534671A (zh) * | 2015-04-27 | 2018-01-02 | 微软技术许可有限责任公司 | 分布式服务实体和关联的聚合与联合 |
CN110505075A (zh) * | 2018-05-18 | 2019-11-26 | 华为技术有限公司 | 设备管理方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113381875A (zh) | 2021-09-10 |
US20210266220A1 (en) | 2021-08-26 |
US11711262B2 (en) | 2023-07-25 |
US20230308348A1 (en) | 2023-09-28 |
EP3873032A1 (en) | 2021-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3620920B1 (en) | Dynamic intent assurance and programmability in computer networks | |
EP3700132B1 (en) | Supporting compilation and extensibility on unified graph-based intent models | |
US10200248B1 (en) | Translating high-level configuration instructions to low-level device configuration | |
CN110958131B (zh) | YANG配置数据模型上支持基于GraphQL的查询 | |
EP3716534A1 (en) | Supporting near real time service level agreements | |
US10278112B1 (en) | Resolving out-of-band configuration changes to high-level service configuration for managed network devices | |
US11165647B2 (en) | Managing multiple semantic versions of device configuration schemas | |
EP3989486B1 (en) | Model driven intent policy conflict detection and resolution through graph analysis | |
US20230308348A1 (en) | Server to support client data models from heterogeneous data sources | |
CN112104473B (zh) | 基于图形的意图控制器中的可编程配置模板 | |
EP3754905B1 (en) | Programmable configlets through opaque intents in graph based intent controllers | |
US11736410B1 (en) | Synchronizing device resources for element management systems | |
EP3952212B1 (en) | Using a programmable resource dependency mathematical model to perform root cause analysis | |
US11805013B2 (en) | Prioritizing policy intent enforcement on network devices | |
EP4395254A1 (en) | Query mechanism for a network management system | |
US11451440B1 (en) | Sharing configuration resources for network devices among applications | |
CN115529235A (zh) | 控制器设备及用于该控制器设备的方法和*** | |
CN118282863A (zh) | 用于网络管理***的查询机制 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |