CN113064658B - 配置数据的拷贝方法、装置、设备及计算机可读存储介质 - Google Patents
配置数据的拷贝方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN113064658B CN113064658B CN201911409573.9A CN201911409573A CN113064658B CN 113064658 B CN113064658 B CN 113064658B CN 201911409573 A CN201911409573 A CN 201911409573A CN 113064658 B CN113064658 B CN 113064658B
- Authority
- CN
- China
- Prior art keywords
- data set
- configuration data
- identifier
- target
- copying
- 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
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了配置数据的拷贝方法、装置、设备及计算机可读存储介质,属于网络技术领域。方法包括:获取待拷贝的目标配置数据,将该目标配置数据划分为多个配置数据组。每个配置数据组均对应一个参数结构,每个参数结构均用于指示目标配置数据的目标数据集。对于任一个配置数据组,在该任一个配置数据组对应的参数结构中添加数据组标识,从而将该任一个配置数据组及添加有数据组标识的参数结构作为数据组报文。之后,将多个数据组报文分别发送给服务器,以完成目标配置数据的拷贝。本申请通过分段拷贝的方式将目标配置数据拷贝至目标数据集中,避免了由于占用内存超出服务器提供的内存而导致的拷贝失败,适用性较强。
Description
技术领域
本申请涉及网络技术领域,特别涉及一种配置数据的拷贝方法、装置、设备及计算机可读存储介质。
背景技术
随着网络技术的发展,越来越多的网络协议应用于客户端/服务器的网络结构中,网络配置协议(network configuration protocol,NETCONF)便是其中一种。通过NETCONF可以将客户端发送的配置数据拷贝至服务器的数据集中,服务器中的应用程序需要根据配置数据运行。在该拷贝过程中,服务器首先解析客户端发送的配置数据,再对解析后的配置数据进行压缩,将压缩后的配置数据存储于数据集中,从而完成配置数据的拷贝。
然而,相比于客户端发送的配置数据,解析后的配置数据占用的内存较大。如果客户端发送的配置数据较多,则解析后的配置数据占用的内存会超出服务器所提供的内存,服务器便会拒绝解析后的配置数据中的部分配置数据,从而导致拷贝过程失败。因此,亟待提供一种配置数据的拷贝方法。
发明内容
本申请实施例提供了一种配置数据的拷贝方法、装置、设备及计算机可读存储介质,以解决相关技术提供的问题,技术方案如下:
第一方面,提供了一种配置数据的拷贝方法,所述方法包括:获取待拷贝的目标配置数据,将该目标配置数据划分为多个配置数据组。每个配置数据组均对应一个参数结构,每个参数结构均用于指示目标配置数据的目标数据集。对于任一个配置数据组,在该任一个配置数据组对应的参数结构中添加数据组标识,从而将该任一个配置数据组及添加有数据组标识的参数结构作为数据组报文。之后,将多个数据组报文分别发送给服务器,服务器用于根据多个数据组报文中的数据组标识将多个数据组报文中的配置数据组分别拷贝至目标数据集,从而完成目标配置数据的拷贝。
通过在划分目标配置数据所得到的每个配置数据组对应的参数结构中添加数据组标识,使得服务器可根据数据组标识将每个配置数据组分别拷贝至获取的参考数据集中,再将参考数据集覆盖目标数据集,从而通过分段拷贝的方式将目标配置数据拷贝至目标数据集中。因此,不仅避免了目标配置数据占用内存超出服务器提供的内存而导致拷贝失败的情况,还能够应用于服务器运行的各个阶段,适用性较强。
在示例性实施例中,所述针对任一个配置数据组,在所述配置数据组对应的参数结构中添加数据组标识,包括:针对任一个配置数据组,根据所述任一个配置数据组在所述多个配置数据组中的发送顺序,在所述任一个配置数据组对应的参数结构中添加数据组标识;或者,确定所述多个配置数据组的数据组总数,基于所述数据组总数在任一个配置数据组对应的参数结构中添加数据组标识。
在示例性实施例中,所述针对任一个配置数据组,根据所述任一个配置数据组在所述多个配置数据组中的发送顺序,在所述任一个配置数据组对应的参数结构中添加数据组标识,包括:响应于所述任一个配置数据组的发送顺序是所述多个配置数据组中的第一个,在所述任一个配置数据组对应的参数结构中添加第一标识,所述第一标识用于指示所述服务器获取参考数据集,将所述任一个配置数据组拷贝至所述参考数据集;响应于所述任一个配置数据组的发送顺序是所述多个配置数据组中的最后一个,在所述任一个配置数据组对应的参数结构中添加第二标识,所述第二标识用于所述服务器将所述任一个配置数据组拷贝至所述参考数据集,将所述参考数据集覆盖所述目标数据集;响应于所述任一个配置数据组的发送顺序是除所述第一个及所述最后一个以外的其他顺序,在所述任一个配置数据组对应的参数结构中添加第三标识,所述第三标识用于所述服务器将所述任一个配置数据组拷贝至所述参考数据集。
在示例性实施例中,所述基于所述数据组总数在任一个配置数据组对应的参数结构中添加数据组标识,包括:在任一个配置数据组对应的参数结构中均添加一个参考标识,所述参考标识用于指示所述任一个配置数据组由所述目标配置数据划分得到;从所述多个配置数据组中确定一个参考配置数据组,在所述参考配置数据组对应的参数结构中添加一个数量标识,所述数量标识用于指示所述数据组总数。
在示例性实施例中,所述将多个数据组报文分别发送给服务器之后,所述方法还包括:响应于接收到所述服务器针对目标数据组报文发送的错误纠正指令,根据所述错误纠正指令确定所述目标数据组报文对应的错误;响应于所述目标数据组报文对应的错误可被纠正,纠正所述目标数据组报文对应的错误,得到纠正后的数据组报文;将所述纠正后的数据组报文发送给所述服务器,所述服务器用于基于所述纠正后的数据组报文继续进行所述目标配置数据的拷贝。
在示例性实施例中,所述方法还包括:响应于所述目标数据组报文对应的错误不可被纠正,向服务器发送第四标识,所述第四标识用于指示服务器终止所述目标配置数据的拷贝。
第二方面,提供了一种配置数据的拷贝方法,所述方法包括:接收客户端发送的多个数据组报文,每个数据组报文包括一个配置数据组及所述配置数据组对应的添加有数据组标识的参数结构,所述配置数据组由客户端划分待拷贝的目标配置数据得到,所述添加有数据组标识的参数结构均用于指示所述目标配置数据的目标数据集;根据所述添加有数据组标识的参数结构中的数据组标识获取参考数据集,将所述配置数据组分别拷贝至所述参考数据集,将所述参考数据集覆盖所述目标数据集,以进行所述目标配置数据的拷贝。
在示例性实施例中,所述根据所述添加有数据组标识的参数结构中的数据组标识获取参考数据集,将所述配置数据组分别拷贝至所述参考数据集,将所述参考数据集覆盖所述目标数据集,包括:任一个添加有数据组标识的参数结构中的数据组标识为第一标识、第二标识或者第三标识中的一种,根据所述第一标识、所述第二标识及所述第三标识获取所述参考数据集,将所述配置数据组分别拷贝至所述参考数据集;或者,任一个添加有数据组标识的参数结构中的数据组标识均包括参考标识,其中一个添加有数据组标识的参数结构中的数据组标识还包括数量标识,所述数量标识用于指示所述数据组总数,根据所述参考标识及所述数量标识获取所述参考数据集,将所述配置数据组分别拷贝至所述参考数据集。
在示例性实施例中,所述根据所述第一标识、所述第二标识及所述第三标识获取所述参考数据集,将所述配置数据组分别拷贝至所述参考数据集,包括:响应于所述数据组标识为第一标识,获取所述参考数据集,将所述第一标识对应的配置数据组拷贝至所述参考数据集;响应于所述数据组标识为第三标识,将所述第二标识对应的配置数据组拷贝至所述参考数据集;响应于所述数据组标识为第二标识,将所述第三标识对应的配置数据组拷贝至所述参考数据集,将所述参考数据集覆盖所述目标数据集。
在示例性实施例中,所述根据所述参考标识及所述数量标识获取所述参考数据集,将所述配置数据组分别拷贝至所述参考数据集,包括:响应于首次获取到所述参考标识,获取所述参考数据集,将所述参考标识对应的配置数据组拷贝至所述参考数据集;响应于非首次获取到所述参考标识,将所述参考标识对应的配置数据组拷贝至所述参考数据集;响应于已获取到的参考标识的数量等于所述数量标识所指示的数据组总数,将所述参考数据集覆盖所述目标数据集。
在示例性实施例中,所述将所述参考数据集覆盖所述目标数据集之前,所述方法还包括:响应于检测到任一个配置数据组的拷贝发生错误,终止所述目标配置数据的拷贝,或者,向所述客户端发送针对所述配置数据组所在的目标数据组报文的错误纠正指令。
在示例性实施例中,所述向所述客户端发送针对所述配置数据组所在的目标数据组报文的错误纠正指令之后,所述方法还包括:响应于接收到所述客户端基于所述错误纠正指令发送的纠正后的数据组报文,继续所述目标配置数据的拷贝。
在示例性实施例中,所述方法还包括:响应于接收到所述客户端基于所述错误纠正指令发送的第四标识,终止所述目标配置数据的拷贝。
在示例性实施例中,所述将所述参考数据集覆盖所述目标数据集之后,所述方法还包括:删除所述参考数据集。
第三方面,提供了一种配置数据的拷贝装置,所述装置包括:
获取模块,用于获取待拷贝的目标配置数据,将所述目标配置数据划分为多个配置数据组,每个配置数据组对应一个参数结构,每个参数结构均用于指示所述目标配置数据的目标数据集;
添加模块,用于针对任一个配置数据组,在所述任一个配置数据组对应的参数结构中添加数据组标识,将所述任一个配置数据组及添加有数据组标识的参数结构作为数据组报文;
发送模块,用于将多个数据组报文分别发送给服务器,所述服务器用于根据所述多个数据组报文中的数据组标识将所述多个数据组报文中的配置数据组分别拷贝至所述目标数据集。
在示例性实施例中,所述添加模块,用于针对任一个配置数据组,根据所述任一个配置数据组在所述多个配置数据组中的发送顺序,在所述任一个配置数据组对应的参数结构中添加数据组标识;或者,确定所述多个配置数据组的数据组总数,基于所述数据组总数在任一个配置数据组对应的参数结构中添加数据组标识。
在示例性实施例中,所述添加模块,用于响应于所述任一个配置数据组的发送顺序是所述多个配置数据组中的第一个,在所述任一个配置数据组对应的参数结构中添加第一标识,所述第一标识用于指示所述服务器获取参考数据集,将所述任一个配置数据组拷贝至所述参考数据集;响应于所述任一个配置数据组的发送顺序是所述多个配置数据组中的最后一个,在所述任一个配置数据组对应的参数结构中添加第二标识,所述第二标识用于所述服务器将所述任一个配置数据组拷贝至所述参考数据集,将所述参考数据集覆盖所述目标数据集;响应于所述任一个配置数据组的发送顺序是除所述第一个及所述最后一个以外的其他顺序,在所述任一个配置数据组对应的参数结构中添加第三标识,所述第三标识用于所述服务器将所述任一个配置数据组拷贝至所述参考数据集。
在示例性实施例中,所述添加模块,用于在任一个配置数据组对应的参数结构中均添加一个参考标识,所述参考标识用于指示所述任一个配置数据组由所述目标配置数据划分得到;从所述多个配置数据组中确定一个参考配置数据组,在所述参考配置数据组对应的参数结构中添加一个数量标识,所述数量标识用于指示所述数据组总数。
在示例性实施例中,所述装置还包括:接收模块,用于响应于接收到所述服务器针对目标数据组报文发送的错误纠正指令,根据所述错误纠正指令确定所述目标数据组报文对应的错误;响应于所述目标数据组报文对应的错误可被纠正,纠正所述目标数据组报文对应的错误,得到纠正后的数据组报文;将所述纠正后的数据组报文发送给所述服务器,所述服务器用于基于所述纠正后的数据组报文继续进行所述目标配置数据的拷贝。
在示例性实施例中,所述接收模块,还用于响应于所述目标数据组报文对应的错误不可被纠正,向服务器发送第四标识,所述第四标识用于指示服务器终止所述目标配置数据的拷贝。
第四方面,提供了一种配置数据的拷贝装置,所述装置包括:
接收模块,用于接收客户端发送的多个数据组报文,每个数据组报文包括一个配置数据组及所述配置数据组对应的添加有数据组标识的参数结构,所述配置数据组由客户端划分待拷贝的目标配置数据得到,所述添加有数据组标识的参数结构均用于指示所述目标配置数据的目标数据集;
拷贝模块,用于根据所述添加有数据组标识的参数结构中的数据组标识获取参考数据集,将所述配置数据组分别拷贝至所述参考数据集,将所述参考数据集覆盖所述目标数据集,以进行所述目标配置数据的拷贝。
在示例性实施例中,所述拷贝模块,用于任一个添加有数据组标识的参数结构中的数据组标识为第一标识、第二标识或者第三标识中的一种,根据所述第一标识、所述第二标识及所述第三标识获取所述参考数据集,将所述配置数据组分别拷贝至所述参考数据集;或者,任一个添加有数据组标识的参数结构中的数据组标识均包括参考标识,其中一个添加有数据组标识的参数结构中的数据组标识还包括数量标识,所述数量标识用于指示所述数据组总数,根据所述参考标识及所述数量标识获取所述参考数据集,将所述配置数据组分别拷贝至所述参考数据集。
在示例性实施例中,所述拷贝模块,用于响应于所述数据组标识为第一标识,获取所述参考数据集,将所述第一标识对应的配置数据组拷贝至所述参考数据集;响应于所述数据组标识为第三标识,将所述第二标识对应的配置数据组拷贝至所述参考数据集;响应于所述数据组标识为第二标识,将所述第三标识对应的配置数据组拷贝至所述参考数据集,将所述参考数据集覆盖所述目标数据集。
在示例性实施例中,所述拷贝模块,用于响应于首次获取到所述参考标识,获取所述参考数据集,将所述参考标识对应的配置数据组拷贝至所述参考数据集;响应于非首次获取到所述参考标识,将所述参考标识对应的配置数据组拷贝至所述参考数据集;响应于已获取到的参考标识的数量等于所述数量标识所指示的数据组总数,将所述参考数据集覆盖所述目标数据集。
在示例性实施例中,所述装置还包括:检测模块,用于响应于检测到任一个配置数据组的拷贝发生错误,终止所述目标配置数据的拷贝,或者,向所述客户端发送针对所述配置数据组所在的目标数据组报文的错误纠正指令。
在示例性实施例中,所述装置还包括:继续模块,用于响应于接收到所述客户端基于所述错误纠正指令发送的纠正后的数据组报文,继续所述目标配置数据的拷贝。
在示例性实施例中,所述装置还包括:终止模块,用于响应于接收到所述客户端基于所述错误纠正指令发送的第四标识,终止所述目标配置数据的拷贝。
在示例性实施例中,所述装置还包括:删除模块,用于删除所述参考数据集。
第五方面,提供了一种电子设备,所述电子设备包括存储器及处理器;所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以实现本申请第一方面或第一方面的任一种示例性实施例所提供的方法。
第六方面,提供了一种电子设备,所述电子设备包括存储器及处理器;所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以实现本申请第二方面或第二方面的任一种示例性实施例所提供的方法。
第七方面,提供了一种通信装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行第一方面或第一方面的任一种示例性实施例所提供的方法。
第八方面,提供了一种通信装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行第二方面或第二方面的任一种示例性实施例所提供的方法。
可选地,所述处理器为一个或多个,所述存储器为一个或多个。
可选地,所述存储器可以与所述处理器集成在一起,或者所述存储器与处理器分离设置。
在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请实施例对存储器的类型以及存储器与处理器的设置方式不做限定。
第九方面,提供了一种通信系统,该系统包括客户端及服务器,所述客户端用于执行上述第一方面或第一方面的任一种示例性实施例所提供的方法,所述服务器用于执行上述第二方面或第二方面的任一种示例性实施例所提供的方法。
第十方面,提供了一种计算机程序(产品),所述计算机程序(产品)包括:计算机程序代码,当所述计算机程序代码被计算机运行时,使得所述计算机执行上述各方面中的方法。
第十一方面,提供了一种可读存储介质,可读存储介质存储程序或指令,当所述程序或指令在计算机上运行时,上述各方面中的方法被执行。
第十二方面,提供了一种芯片,包括处理器,用于从存储器中调用并运行所述存储器中存储的指令,使得安装有所述芯片的通信设备执行上述各方面中的方法。
第十三方面,提供一种芯片,包括:输入接口、输出接口、处理器和存储器,所述输入接口、输出接口、所述处理器以及所述存储器之间通过内部连接通路相连,所述处理器用于执行所述存储器中的代码,当所述代码被执行时,所述处理器用于执行上述各方面中的方法。
附图说明
图1为本申请实施例提供的配置数据的拷贝方法的流程图;
图2为本申请实施例提供的拷贝流程示意图;
图3为本申请实施例提供的参数结构示意图;
图4为本申请实施例提供的参数结构示意图;
图5为本申请实施例提供的网络架构图;
图6为本申请实施例提供的拷贝流程示意图;
图7为本申请实施例提供的目标配置数据的报文示意图;
图8为本申请实施例提供的数据组报文示意图;
图9为本申请实施例提供的数据组报文示意图;
图10为本申请实施例提供的数据组报文示意图;
图11为本申请实施例提供的数据组报文示意图;
图12为本申请实施例提供的拷贝流程示意图;
图13为本申请实施例提供的拷贝流程示意图;
图14为本申请实施例提供的参数结构示意图;
图15为本申请实施例提供的拷贝流程示意图;
图16为本申请实施例提供的相关技术中的拷贝示意图;
图17为本申请实施例提供的相关技术中的拷贝示意图;
图18为本申请实施例提供的配置数据的拷贝装置的结构示意图;
图19为本申请实施例提供的配置数据的拷贝装置的结构示意图;
图20为本申请实施例提供的配置数据的拷贝设备的结构示意图。
具体实施方式
本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。
随着网络技术的发展,越来越多的网络协议应用于客户端/服务器的网络结构中,网络配置协议(network configuration protocol,NETCONF)便是其中一种。通过NETCONF可以将客户端发送的配置数据拷贝至服务器的数据集中,服务器中的应用程序需要根据配置数据运行。对此,本申请实施例提供了一种配置数据的拷贝方法,该方法可应用于支持NETCONF的客户端/服务器的网络架构中,如图1所示,该方法包括:
步骤101,客户端获取待拷贝的目标配置数据,将目标配置数据划分为多个配置数据组。
其中,待拷贝的目标配置数据是文本格式的数据,文本格式是指人类用户可理解的一种数据格式,例如可扩展标记语言(extensible markup language,可扩展标记语言)格式及JavaScript对象简谱(JavaScript object notation,JSON)格式。在实施中,可以将记录了配置数据的文件作为目标配置数据,该文件可通过统一资源定位符(uniformresource locator,URL)存储于客户端中。另外,目标配置数据还可以是客户端用户输入客户端的配置数据,客户端用户可以是人类用户,也可以是人工智能(artificialintelligence,AI)用户。
需要说明的是,目标配置数据的作用在于服务器中的应用程序需要根据目标配置数据来运行。因此,可基于服务器中应用程序的运行需求来确定获取目标配置数据的时机。例如,在服务器初始化的过程中,需要将客户端中的目标配置数据拷贝至服务器,以便于服务器中的应用程序开始运行。因此,可将服务器初始化作为客户端获取目标配置数据的时机,以便于将获取的目标配置数据拷贝至服务器。或者,在服务器启动之后的运行过程中,服务器可能会进行热升级,热升级是指服务器一边保持运行状态、一边进行升级的过程。在服务器完成热升级之后,当前服务器中已有的配置数据不再兼容,因而需要从客户端中拷贝能够兼容的目标配置数据,以便于服务器中的应用程序在服务器热升级之后继续运行。当然,本实施例不对获取目标配置数据的时机加以限定,除了上述基于服务器中应用程序的运行需求来确定时机的方式以外,客户端也可以每隔参考时长获取一次目标配置数据,参考时长可根据经验或实际需要进行设置。
在获取到目标配置数据之后,便可将目标配置数据划分为多个配置数据组,每个配置数据组所占用的内存可以相同,也可以不同。示例性地,可将目标配置数据平均划分为多个配置数据组。例如,参见图2,以目标配置数据占用的内存为128兆字节(megabyte,mb)为例,可将目标配置数据平均划分为4个配置数据组,每个配置数据组占用的内存为32mb。若是将目标配置数据整体拷贝至服务器,则可能由于目标配置数据占用的内存超出服务器提供的内存而导致拷贝失败。而通过上述划分,可以得到多个占用的内存较小的配置数据组,后续拷贝过程中可每次拷贝一个配置数据组,从而避免了上述拷贝失败的情况。当然,本实施例不仅局限于在目标配置数据占用的内存超出服务器提供的内存的情况下进行上述划分,在目标配置数据占用的内存未超出服务器提供的内存的情况下,也可以根据实际需要来进行上述划分。
在实施中,客户端可以获取服务器针对配置数据提供的内存阈值,基于该内存阈值来对目标配置数据进行划分,以使得划分得到的多个配置数据组中占用内存最大的一个配置数据组所占用的内存小于该内存阈值,从而保证任一个配置数据组所占用的内存均小于该内存阈值。或者,客户端也可以根据设置或已完成的历史划分过程来进行目标配置数据的划分。其中,根据设置进行划分是指将目标配置数据划分成设置的参考数量个配置数据组,或者,将目标配置数据划分成多个配置数据组,每个配置数据组所占用的内存均为设置的参考内存。而根据已完成的历史划分过程进行划分是指,参考历史划分过程中的划分次数以及划分得到的配置数据组所占用的内存中的一项或两项,来进行目标配置数据的划分。例如,历史时间中已完成的划分过程对待拷贝的配置数据进行了四次划分,得到了五个配置数据组,则本次也可以对目标配置数据进行四次划分,从而得到五个配置数据组。
进一步地,划分得到的多个配置数据组中的每个配置数据组均对应一个参数结构,每个参数结构均用于指示目标配置数据的目标数据集。根据NETCONF中的定义,配置数据组对应的参数结构可参见图3。在图3中,copy-config是指配置拷贝,target是指拷贝目标,即待拷贝的配置数据在被拷贝之前所在的位置,source是指拷贝来源,即配置数据在被拷贝之后所在的位置。需要说明的是,拷贝目标包括备选配置数据集(candidate)、运行配置数据集(running)、启动配置数据集(startup)以及url,拷贝来源包括candidate、running、startup、url以及config。
其中,url是上述说明中存储于客户端且记录了配置数据的文件,config是上述说明中客户端用户输入客户端的配置数据。可见,url及config均为客户端中的配置数据。而candidate、running以及startup则均为NETCONF所定义的三个数据集,该三个数据集中,candidate及running是基于服务器内存的数据集,即需要持续占用服务器内存的数据集,而startup则可以持久化至服务器硬盘而无需持续占用服务器内存。candidate用于存储将要提交至running的配置数据,running用于存储服务器中当前处于运行状态的配置数据,而startup用于存储服务器启动过程中所加载的配置数据。该三个数据集与url及config之间的区别在于,url及config中的配置数据是人类用户可理解的文本格式,而该三个数据集中的配置数据则是设备可理解的数据格式。
正是由于配置数据在客户端中及在服务器中的格式存在不同,因而在将配置数据从客户端中拷贝至服务器的过程中,需要对配置数据的格式进行转换。在转换过程中,服务器对客户端中的文本格式的配置数据进行解析,从而将文本格式的配置数据转换成设备可理解的数据格式,设备可理解的数据格式的配置数据所占用的内存大于文本格式的配置数据所占用的内存。因此,在由客户端至服务器的拷贝过程中,若是将客户端所获取的目标配置数据整体拷贝至服务器,则转换得到的设备可理解的数据格式的目标配置数据占用的内存会比目标配置数据所占用的内存更大,因而该设备可理解的数据格式的目标配置数据占用的内存往往会超出服务器提供的内存,服务器便会拒绝部分目标配置数据,从而导致拷贝失败。而若是在服务器内部的三个数据集之间所进行的拷贝,由于无需转换格式而不会存在上述拷贝失败的问题。或者,若是由服务器至客户端的拷贝,客户端在每次拷贝过程中往往仅拷贝数据集中的一部分配置数据,从而避免了每次获取的配置数据超出服务器提供的内存,因而也不会存在上述拷贝失败的问题。
基于以上构思,本实施例主要应用于由客户端至服务器的配置拷贝。根据NETCONF的定义,对于由客户端至服务器的配置拷贝,拷贝来源及拷贝目标具有以下两种有效的组合方式:第一种组合方式为拷贝来源为客户端中的url,拷贝目标为服务器中的running或者startup。第二种组合方式为拷贝来源为客户端中的config,拷贝目标为服务器中的running或者startup。因此,在每个配置数据组对应的参数结构中,参数结构中的拷贝来源可能是url或者config,参数结构中的拷贝目标则可能是running或者startup。由于每个配置数据组均是对目标配置数据进行拆分得到的,因而目标配置数据的拷贝来源即为每个配置数据组的参数结构中的拷贝来源,目标配置数据的拷贝目标即为每个配置数据组的参数结构中的拷贝目标。由于目标配置数据的拷贝目标是三个数据集之一,因而目标配置数据的拷贝目标也可以称为目标配置数据的目标数据集,则每个配置数据组的参数结构均指示了目标配置数据的目标数据集。例如,目标配置数据的拷贝来源为url、拷贝目标为running,则每个配置数据组的参数结构中的拷贝来源均为url,每个配置数据组的参数结构中的拷贝目标均为running。
步骤102,客户端针对任一个配置数据组,在任一个配置数据组对应的参数结构中添加数据组标识,将任一个配置数据组及添加有数据组标识的参数结构作为数据组报文。
在对获取的目标配置数据划分得到多个配置数据组之后,对于多个配置数据组中的任一个配置数据组,可在该任一个配置数据组对应的参数结构中添加数据组标识。需要说明的是,本实施例在任一个配置数据组对应的参数结构中添加数据组标识的作用包括:令服务器能够根据数据组标识进行一个数据集的获取、令服务器能够根据数据组标识将由同一目标配置数据划分得到的多个配置数据组均拷贝于所获取的一个数据集中,以及,令服务器能够根据数据组标识确认由同一目标配置数据划分得到的多个配置数据组已全部拷贝于该数据集中,从而触发将该数据集覆盖目标配置数据的目标数据集,以实现目标配置数据的拷贝。服务器所执行的过程会在后文中加以详细说明,此处先对客户端在参数结构中添加数据组标识的方式加以说明。
在示例性实施例中,针对任一个配置数据组,在配置数据组对应的参数结构中添加数据组标识,包括:针对任一个配置数据组,根据该任一个配置数据组在多个配置数据组中的发送顺序,在该任一个配置数据组中添加数据组标识。或者,确定多个配置数据组的数据组总数,基于数据组总数在任一个配置数据组对应的参数结构中添加数据组标识。
其中,该实施例可表示为以下三种添加方式:
第一种添加方式:该添加方式是基于上述任一个配置数据组在多个配置数据组中的发送顺序添加数据组标识的方式。示例性地,对于该任一个配置数据组,响应于该任一个配置数据组的发送顺序是多个配置数据组中的第一个,则在配置数据组对应的参数结构中添加第一标识。换言之,在后续将多个配置数据组发送给服务器的过程中,响应于该任一个配置数据组是第一个被发送的配置数据组,则会在该任一个配置数据组对应的参数结构中添加第一标识。第一标识用于指示服务器获取参考数据集,将该任一个配置数据组拷贝至参考数据集。
相应地,响应于该任一个配置数据组的发送顺序是多个配置数据组中的最后一个,则在该任一个配置数据组对应的参数结构中添加第二标识,第二标识用于服务器将该任一个配置数据组拷贝至参考数据集,将参考数据集覆盖目标数据集。响应于该任一个配置数据组的发送顺序是除第一个及最后一个以外的其他顺序,则在该任一个配置数据组对应的参数结构中添加第三标识,第三标识用于服务器将配置数据组拷贝至参考数据集。服务器根据上述第一标识、第二标识及第三标识进行拷贝的过程可参见后文说明。
以配置数据组的数量为N(N取大于1的正整数)个为例,在该添加方式中,客户端在第1个要发送的配置数据组对应的参数结构中添加第一标识,在第2、3、……、(N-1)个要发送的配置数据组对应的参数结构中添加第三标识,在第N个(即最后一个)要发送的配置数据组对应的参数结构中添加第二标识。当然,若N的取值为2,则无需添加第三标识,只要在第1个要发送的配置数据组对应的参数结构中添加第一标识,在第2个、也即是最后一个要发送的配置数据组对应的参数结构中添加第二标识即可。
在实施中,可以将NETCONF定义的参数结构扩展为如图4所示的参数结构。图4中,在参数结构的输入(input)中添加了一项分段(subsection)标识,该分段标识即包括上述第一标识begin(开始)、第二标识end(结束)以及第三标识continue(继续)。则多个配置数据组中的任一个配置数据组对应的参数结构中,除了包括拷贝来源、拷贝目标以外,还包括第一标识、第二标识以及第三标识的其中之一。在实施中,可以采用三个不同的数值分别作为第一标识、第二标识及第三标识,例如将数值0作为第一标识、将数值1作为第二标识、将数值10作为第三标识,本实施例不对所采用的数值加以限定。参见图2,以将128mb的目标配置数据平均划分为4个32mb的配置数据组为例,则在第一个要发送的配置数据组对应的参数结构中添加第一标识begin,在第2、3个要发送的配置数据组对应的参数结构中添加第三标识continue,在第4个要发送的配置数据组对应的参数结构中添加第二标识end。
第二种添加方式:该添加方式是基于上述任一个配置数据组在多个配置数据组中的发送顺序添加数据组标识的方式。其中,客户端在多个配置数据组的任一个配置数据组对应的参数结构中均添加一个参考标识,该参考标识用于指示配置数据组由目标配置数据划分得到。也就是说,由于给每个配置数据组对应的参数结构中均添加了一个参考标识,因此后续服务器只要从参数结构中获取到该参考标识,便可确定该参考标识所在的参数结构对应的配置数据组是由同一目标配置数据划分得到的,从而使得服务器可基于该参考标识来进行数据集的获取,以及,将任一个配置数据组拷贝至所获取的数据集中。
之后,客户端确定多个配置数据组中发送顺序为最后一个的配置数据组,在该发送顺序为最后一个的配置数据组对应的参数结构中添加一个截止标识,该截止标识用于指示当前配置数据组为多个配置数据组中的最后一个配置数据组,以便于服务器根据该截止标识确定已经接收到由同一目标配置数据划分得到的全部配置数据组。服务器根据上述参考标识及截止标识进行拷贝的过程可参见后文说明。
第三种添加方式:该添加方式是基于上述基于数据组总数在任一个配置数据组对应的参数结构中添加数据组标识的方式。示例性地,客户端在任一个配置数据组对应的参数结构中均添加一个参考标识,参考标识用于指示配置数据组由目标配置数据划分得到。由于第二种添加方式中已针对参考标识进行说明,因而此处不再加以赘述。另外,客户端还从多个配置数据组中确定一个参考配置数据组,在参考配置数据组对应的参数结构中添加一个数量标识,数量标识用于指示数据组总数,从而使得服务器可通过数量标识所指示的数据组总数,确认是否已经接收到由同一目标配置数据划分得到的全部配置数据组。其中,客户端可以通过随机选择的方式确定出该参考配置数据组,该参考配置数据组可以是多个配置数据组中任意发送顺序的一个配置数据组。
在实施中,考虑到可能需要从多个客户端分别拷贝多个配置数据组至服务器,在上述第二种添加方式及第三种添加方式中,不同的客户端可以采用不同的参考标识,以便于服务器区分来源于不同客户端的配置数据组。另外,在上述具有多个客户端的情况下,第一种添加方式中也可以在每个配置数据组对应的参数结构中均添加一个参考标识,以起到对不同服务器的区分作用。需要说明的是,多个客户端可以采用相同的添加方式,也可以采用不同的添加方式,本实施例对此不加以限定。
对于任一个配置数据组,无论通过何种方式向该任一个配置数据组中添加何种数据组标识,均可得到该任一个配置数据组对应的添加有数据组标识的参数结构。之后,便可将该任一个配置数据组以及上述添加有数据组标识的参数结构作为该任一个数据组对应的数据组报文,从而以数据组报文为单位实现目标配置数据的发送,详见步骤103。
步骤103,客户端将多个数据组报文分别发送给服务器。
对于获取到的多个数据组报文,客户端可通过与服务器协商好的密钥多个数据组报文中的任一个数据组报文进行加密发送,以便于服务器根据多个数据组报文将目标配置数据拷贝至目标数据集。需要说明的是,对于步骤102中说明的三种不同的添加方式,客户端发送数据组报文的方式也有所不同,以下分别进行说明:
对应第一种添加方式的第一种发送方式:由于任一个配置数据组的数据组标识是根据该任一个配置数据组在多个配置数据组中的发送顺序确定的,因而对于每个配置数据组所在的数据组报文,也需要按照该发送顺序来进行数据组报文的发送。也就是说,首先需要发送包含有第一标识的数据组报文。之后,发送包含有第三标识的数据组报文。在所有包含有第三标识的数据组报文均发送完毕之后,发送包含有第二标识的数据组报文。
对应第二种添加方式的第二种发送方式:由于针对多个配置数据组中发送顺序为最后一个的配置数据组添加了截止标识,因而相应地,在发送过程中需要先完成其他所有不包含截止标识的数据组报文的发送,再将该包含有截止标识的数据组报文作为最后一个数据组报文进行发送。
对应第三种添加方式的第三种发送方式:由于该添加方式是基于数据组总数添加的数据组标识,而未基于发送顺序添加数据组标识,因而可不限定任一个数据组报文的发送顺序。换言之,对于通过第三种添加方式得到的数据组报文,客户端可以按照任意顺序对多个数据组报文进行发送。
步骤104,服务器接收客户端发送的多个数据组报文。
由于客户端将多个数据组报文分别发送给服务器,因而服务器可相应地对多个数据组报文分别进行接收。响应于客户端通过加密方式进行数据组报文的发送,则服务器所接收到的是加密后的数据组报文,因而服务器可通过与客户端协商好的密钥来解密该加密后的数据组报文,从而实现数据组报文的接收。
对于服务器所接收到的每个数据组报文,该数据组报文中均包括一个配置数据组及配置数据组对应的添加有数据组标识的参数结构。其中,每个配置数据组均由客户端划分待拷贝的目标配置数据得到,而每个添加有数据组标识的参数结构中均具有配置数据组的拷贝来源、拷贝目标以及数据组标识。由于每个配置数据组是划分目标配置数据得到的,因而不同参数结构中的拷贝来源均为目标配置数据的拷贝来源,不同参数结构中的拷贝目标均为目标配置数据的目标数据集,从而使得每个参数结构均可用于指示目标配置数据的目标数据集。
步骤105,服务器根据添加有数据组标识的参数结构中的数据组标识获取参考数据集,将配置数据组分别拷贝至参考数据集,将参考数据集覆盖目标数据集,以进行目标配置数据的拷贝。
根据上述说明可知,参数结构中的数据组标识可以通过不同方式进行添加。因此,对于通过不同方式添加的数据组标识,服务器将添加有该数据组标识的参数结构对应的配置数据组拷贝至目标数据集的实现方式也有所不同。示例性地,根据添加有数据组标识的参数结构中的数据组标识获取参考数据集,将配置数据组分别拷贝至参考数据集,将参考数据集覆盖目标数据集,包括如下的三种拷贝方式:
对应第一种添加方式的第一种拷贝方式:由于第一种添加方式所添加的数据组标识包括第一标识、第二标识以及第三标识,因而任一个添加有数据组标识的参考结构中的数据组标识可能为第一标识、第二标识或者第三标识中的其中一种。因此,服务器可根据第一标识、第二标识及第三标识获取参考数据集,将配置数据组分别拷贝至参考数据集。
示例性地,服务器根据第一标识、第二标识及第三标识获取参考数据集,将配置数据组分别拷贝至参考数据集,包括:响应于数据组标识为第一标识,获取参考数据集,将第一标识对应的配置数据组拷贝至参考数据集。响应于数据组标识为第三标识,将第二标识对应的配置数据组拷贝至参考数据集。响应于数据组标识为第二标识,将第三标识对应的配置数据组拷贝至参考数据集,将参考数据集覆盖目标数据集。
其中,根据步骤103可知,客户端在对多个数据组报文进行发送的过程中,首先发送了包含有第一标识的数据组报文,其次发送了所有包含有第三标识的数据组报文,最后发送了包含有第二标识的数据组报文。因此,服务器首先接收到便是包含有第一标识的数据组报文,由于该包含有第一标识的数据组报文中的数据组标识即为第一标识,因而服务器根据该第一标识获取参考数据集,将该包含有第一标识的数据组报文中的配置数据组,也就是第一标识对应的配置数据组拷贝至参考数据集中。
需要说明的是,服务器获取参考数据集可以是服务器创建一个数据集作为该参考数据集,或者,还可以是服务器提前建立好多个备用数据集,从多个备用数据集中调用一个备用数据集作为该参考数据集。另外,该参考数据集并非NETCONF所定义的三个数据集之一,客户端对该参考数据集无感知。该参考数据集无需持续占用服务器内存,而是可以持久化至服务器硬盘,则后续仅在将配置数据组拷贝至参考数据集的过程中才需要占用服务器内存,从而节约了服务器的处理资源。后文中所涉及的服务器获取参考数据集均可按照上述说明,不再一一进行赘述。
之后,服务器所接收到的是一个或多个包含有第三标识的数据组报文,则服务器每接收到一个包含有第三标识的数据组报文,均可根据这一数据组报文中的第三标识将这一数据组报文中的配置数据组,也就是第三标识对应的配置数据组拷贝至参考数据集中。最后,服务器接收到包含有第二标识的数据组报文,则服务器可根据该第二标识将包含有第二标识的数据组报文中的配置数据组,也就是第二标识对应的配置数据组拷贝至参考数据集中。至此,服务器已将由同一目标配置数据划分得到的所有配置数据组均拷贝至了参考数据集中,也就是将目标配置数据拷贝至了参考数据集中。因此,服务器可继续根据第二标识,将拷贝有目标配置数据的参考数据组覆盖目标配置数据的目标数据集,从而成功将目标配置数据拷贝至目标数据集中。
需要说明的是,目标数据集可以是NETCONF定义的running或者startup中的任一数据集,本实施例不对目标数据集加以限定,而只要根据添加有数据组标识的参数结构中包含的拷贝目标确定该目标数据集即可。后文所涉及的目标数据集均可按照上述说明,后续不再加以赘述。
对应第二种添加方式的第二种拷贝方式:由于第二种添加方式在每个配置数据组的参数结构中均添加了一个参考标识,而在其中一个配置数据组的参考结构中除参考标识以外还添加了截止标识。因此,服务器根据参考标识及截止标识来获取参考数据集,从而将配置数据组分别拷贝至参考数据集。
根据步骤103可知,客户端首先对所有不包含截止标识的数据组报文进行发送,最后对既包含参考标识、又包含截止标识的数据组报文进行了发送。因此,服务器首次接收到的数据组报文便是不包含截止标识的数据组报文,服务器通过该不包含截止标识的数据组报文可首次获取到参考标识。因此,响应于首次获取到参考标识,服务器便可以获取参考数据集,将首次接收到的数据组报文中的配置数据组拷贝于该参考数据集中。之后,服务器继续接收不包含截止标识的数据组报文,服务器通过继续接收的数据组报文可非首次获取到参考标识。由于继续接收到的数据组报文中均包含与首次获取到的参考标识相同的参考标识,因而服务器可确定继续接收到的数据组报文中的配置数据组以及首次接收到的数据组报文中的配置数据组均是由同一目标配置数据划分得到的。因此,服务器可将继续接收到的数据组报文中的配置数据组也拷贝至响应于首次获取到参考标识所获取的参考数据集中。
服务器所接收到的最后一个数据组报文便是既包含参考标识、又包含截止标识的数据组报文。基于最后一个数据组报文中的参考标识,服务器可确定最后一个数据组报文中的配置数据组与之前接收到的数据组报文中的配置数据组均是由同一目标配置数据划分得到的。因此,服务器将最后一个数据组报文中的配置数据组也拷贝至响应于首次获取到参考标识所获取的参考数据集中。之后,服务器根据最后一个数据组报文中的截止标识,可确定已经接收到由同一目标配置数据划分得到的全部配置数据组。因此,可确定全部配置数据组均已拷贝至参考数据集中,即目标配置数据已拷贝至参考数据集中,从而可触发将拷贝有目标配置数据的参考数据组覆盖目标配置数据的目标数据集。
对应第三种添加方式的第三种拷贝方式:由于第三种添加方式在任一个配置数据组的参数结构中均添加了一个参考标识,而在其中一个参考配置数据组的参考结构中除参考标识以外还添加了用于指示数据组总数的标识。因此,服务器可根据参考标识及数量标识来获取参考数据集,从而将配置数据组分别拷贝至参考数据集。
示例性地,根据参考标识及数量标识获取参考数据集,将配置数据组分别拷贝至参考数据集,包括:响应于首次获取到参考标识,获取参考数据集,将参考标识对应的配置数据组拷贝至参考数据集。响应于非首次获取到参考标识,将参考标识对应的配置数据组拷贝至参考数据集。响应于已获取到的参考标识的数量等于数量标识所指示的数据组总数,将参考数据集覆盖目标数据集。
其中,在服务器接收客户端按照任意顺序发送的多个数据组报文的过程中,服务器每接收到一个数据组报文,均能够获取到一个参考标识。针对服务器首次获取到参考标识及非首次获取到参考标识两种情况所进行的响应,可参见上述第二种拷贝方式的说明,此处不再加以赘述。另外,正是由于客户端可按照任意顺序发送多个数据组报文,因而包含有数量标识的数据组报文可能是服务器所接收到的首个数据组报文,可能是服务器所接收到的最后一个数据组报文,也可能是服务器所接收到的首个数据组报文、最后一个数据组报文以外的其他数据组报文。
对此,服务器从首次通过接收数据组报文获取到参考标识开始,每获取到一个参考标识,均首先根据该参考标识做出响应,再确认已获取到的参考标识的数量。无论包含有数量标识的数据组报文是服务器所接收到的第几个数据组报文,一旦服务器获取到数量标识,便可在执行上述根据参考标识做出响应、确认数量之后,将确认之后的数量与数量标识所指示的数据组总数进行比较。响应于已获取到的参考标识的数量小于数据组总数,则服务器继续接收下一个数据组报文,基于下一个数据组报文重复执行上述做出响应、确认数量以及比较数量的过程。直至在接收到某一个数据组报文之后,服务器所确认的数量等于数据组总数,则说明服务器所接收到的配置数据组的数量等于对目标配置数据划分得到的数据组总数。因此,服务器便可确认已经接收到由同一目标配置数据划分得到的全部配置数据组,从而做出将参考数据集覆盖目标数据集的响应。
以数据组报文的总数量为三个,包含有数量标识的数据组报文是服务器所接收到的第二个数据组报文为例,对服务器的拷贝过程进行说明:服务器接收第一个数据组报文之后,由于第一个数据组报文中不包含有数量标识,因而服务器仅获取到参考标识,且该次获取为参考标识的首次获取。因此,服务器响应于首次获取的参考标识,获取参考数据集,将第一个数据组报文中的配置数据组拷贝于参考数据集中。另外,服务器还确认已获取到的参考标识的数量为一个。
之后,服务器继续接收第二个数据组报文,从而第二次获取到参考标识,以及获取到数量标识,该数量标识所指示的数据组总数等于数据组报文的总数量,即三个。响应于非首次获取到参考标识,服务器将第二数据组报文中的配置数据组拷贝于参考数据集中,将已获取到的参考标识的数量由一更新为二,即确认已获取到的参考标识的数量为两个。由于已获取到的参考标识的数量(两个)小于数据组总数(三个),因而服务器进一步接收第三个数据组报文。
在接收到第三个数据组报文之后,服务器第三次获取到参考标识,响应于非首次获取到参考标识,服务器将第三数据组报文中的配置数据组拷贝于参考数据集中,将已获取到的参考标识的数量由二更新为三,即确认已获取到的参考标识的数量为三个。至此,参考数据集中已经拷贝有由同一目标配置数据划分得到的三个配置数据组。这样,已获取到的参考标识的数量(三个)等于数据组总数(三个)。因此,响应于已获取到的参考标识的数量等于数据组总数,服务器便可将参考数据集覆盖目标数据集。
无论采用哪种拷贝方式,服务器均需要将数据组报文中的配置数据组拷贝至参考数据集中。根据步骤101中的说明可知,该拷贝过程中需要对配置数据组的格式进行转换。在实施中,可服务器可通过YANG模型将文本格式的配置数据组转换成设备可理解的数据格式。之后,再对设备可理解的数据格式的配置数据组进行压缩,得到压缩后的配置数据组,将压缩后的配置数据组存储于参考数据集中。
其中,YANG模型是互联网工程任务组(internet engineering task force,IETF)标准组织定义的一种将网络配置管理数据模型化描述的语言,以支持NETCONF客户端和服务端之间数据的完整描述,通过YANG模型来描述NETCONF客户端和服务端之间交互的配置数据、状态数据、远程过程调用(remote procedure call,RPC)和通知(Notification)。
基于上述说明,本实施例所提供的方法可应用于如图5所示的客户端/服务器的网络架构中。图5中,客户端与服务器通信连接,从而使得客户端可通过远程数据调用(remoteprocedure call,RPC)将数据组报文传输至服务器。服务器用于通过YANG模型将数据组报文中的配置数据组拷贝至参考数据集,再将参考数据集覆盖目标数据集。其中,参考数据集及目标数据集均存储于服务器中的数据库内。由于将配置数据集拷贝至参考数据集的过程中使用了YANG模型,因而存储有参考数据集及目标数据集的数据库可以称为YANG数据库(data base,DB)。
在示例性实例中,服务器将参考数据集覆盖目标数据集之后,可以从服务器中将参考数据集删除,以避免参考数据集占用服务器的处理资源。因此,参考数据集在服务器对配置数据组分别进行拷贝时被创建或调用,在完成所有配置数据组的拷贝之后被删除,则参考数据集根据可以看作是临时数据集(temp)。
接下来,基于图5所示的网络架构,结合图6所示的拷贝流程,以目标配置数据包括10,000,000条界面(interface)数据、客户端将目标配置数据平均划分为四个包括2,500,000条界面数据的配置数据组(即将图6中的N取值为4)、客户端按照第一种添加方式向配置数据组对应的参数结构中添加数据组标识为例,对目标配置数据的拷贝过程进行说明:
根据NETCONF的定义,客户端所获取的目标配置数据的数据报文可参见图7。由图7可知,目标配置数据的拷贝来源source为config,拷贝目标target为running,即目标配置数据的目标数据集为running,数据报文中包括序号为0000000~9,999,999共10,000,000条interface数据。之后,客户端将目标配置数据平均划分为4个配置数据组,则第一配置数据组所包括的是序号为0000000-2,499,999的数据,第二配置数据组所包括的是序号为2,500,000-4,999,999的数据,第三配置数据组所包括的是序号为5,000,000-7,499,999,第四配置数据组所包括的是序号为7,500,000-9,999,999的数据。
客户端向第一配置数据组对应的参数结构中添加数据组标识begin,得到如图8所示的第一数据组报文,将第一数据组报文发送给服务器。服务器接收到第一数据组报文之后,通过YANGDB根据第一数据组报文中的数据组标识begin获取参考数据集。将第一数据组报文中的第一配置数据组拷贝至参考数据集中,拷贝成功后向客户端返回成功信息。
客户端接收到成功信息之后,向第二配置数据组对应的参数结构中添加数据组标识continue,得到如图9所示的第二数据组报文,将第二数据组报文发送给服务器。服务器接收到第二数据组报文之后,通过YANGDB根据第二数据组报文中的数据组标识continue,直接将第二数据组报文中的第二配置数据组拷贝至参考数据集中,拷贝成功后再次向客户端返回成功信息。相应地,客户端也向第三配置数据组对应的参数结构中添加数据组标识continue,得到如图10所示的第三数据组报文。服务器按照与第二数据组报文同样的方式将第三数据组报文中的第三配置数据组拷贝至参考数据集中,向客户端返回针对第三数据组报文的成功信息。
最后,客户端根据所接收到的成功信息,向第四配置数据组对应的参数结构中添加数据组标识end,得到如图11所示的第四数据组报文。服务器接收到第四数据组报文之后,通过YANGDB根据第四数据组报文中的数据组标识end,先将第四数据组报文中的第四配置数据组拷贝至参考数据集,从而得到拷贝有由目标配置数据划分得到全部4个配置数据组的参考数据集。则YANGDB将参考数据集覆盖目标数据集running,在覆盖成功后删除参考数据集,将目标配置数据已成功拷贝至目标数据集的信息返回给客户端,从而完成对目标配置数据的拷贝过程。
可以看出,在每个数据组报文中的配置数据组均拷贝成功的情况下,便可完成针对目标配置数据的拷贝。而在实施中,可能会由于网络延迟等原因,造成其中的某个配置数据组拷贝失败。在示例性实施例中,服务器将参考数据集覆盖目标数据集之前,方法还包括:响应于检测到任一个配置数据组的拷贝发生错误,终止目标配置数据的拷贝,或者,向客户端发送针对配置数据组所在的目标数据组报文的错误纠正指令。
其中,服务器可以在检测到任一个配置数据组的拷贝发生错误的情况下,直接终止对该任一个配置数据组及该任一个配置数据组之后的其他配置数据组的拷贝,从而终止了目标配置数据的拷贝。参见图12,YANGDB响应于在将第(N-1)个数据组报文中的配置数据组拷贝至参考数据集过程中发生错误,则YANGDB将参考数据集删除。之后,YANGDB还可以确认拷贝发生错误的原因,将所确认的原因返回给客户端,以便于客户端针对原因进行调整。在客户端完成调整之后,便可重新从第一个数据组报文开始,对各个数据组报文分别进行发送。
或者,服务器也可以不终止目标配置数据的拷贝,而是针对发生错误的配置数据组所在的目标数据组报文生成错误纠正指令,将该错误纠正指令返回给客户端。由此,便可以在某一个配置数据组发生错误的情况下,使得客户端能够具有针对性的对该发生错误的配置数据组进行纠正。因此,客户端无需重复发送该发生错误的配置数据组之前的其他已成功拷贝的配置数据组所在的数据组报文,节约了拷贝目标配置数据所需的处理资源。
由于服务器将错误纠正指令发送给了客户端,因而客户端可相应地对错误纠正指令进行接收。示例性地,客户端将多个数据组报文分别发送给服务器之后,方法还包括:响应于接收到服务器针对目标数据组报文发送的错误纠正指令,根据错误纠正指令确定目标数据组报文对应的错误。响应于目标数据组报文对应的错误可被纠正,纠正目标数据组报文对应的错误,得到纠正后的数据组报文。将纠正后的数据组报文发送给服务器,服务器用于基于纠正后的数据组报文继续进行目标配置数据的拷贝。
在实施中,客户端首先根据错误纠正指令确认需要纠正的错误,再确认该错误是否可以被纠正。在该错误可以被纠正的情况下,客户端便对目标数据组报文对应的错误进行纠正,得到纠正后的数据组报文。需要说明的是,纠正后的数据组报文中的数据组标识与目标数据组报文中的数据组标识一致。以通过第一种添加方式添加数据组标识为例,响应于目标数据组报文是首个被发送的数据组报文,则目标数据组报文中的数据组标识可以为第一标识begin,则纠正后的数据组报文中的数据组标识也为第一标识begin。
示例性地,在客户端将纠正后的数据组报文发送给服务器之后,服务器响应于接收到客户端基于错误纠正指令发送的纠正后的数据组报文,继续目标配置数据的拷贝。参见图13,服务器根据纠正后的数据组报文中的数据组标识,对数据组标识中的配置数据组进行拷贝。响应于将该配置数据组成功拷贝至参考数据集,则服务器可向客户端发送成功信息,以便于获取服务器根据该成功信息继续发送的其他数据组报文,从而继续目标配置数据的拷贝。
若客户端确认错误不可以被纠正,则需要终止对目标配置数据的拷贝流程。在示例性实施中,客户端响应于目标数据组报文对应的错误不可被纠正,向服务器发送第四标识,第四标识用于指示服务器终止目标配置数据的拷贝。相应地,服务器响应于接收到客户端基于错误纠正指令发送的第四标识,终止目标配置数据的拷贝。在实施中,可以根据第四标识将NETCONF定义的参数结构扩展为如图14所示的参数结构。图14中,在参数结构的input所包括的subsection中,除了上述说明中的第一标识begin、第二标识end以及第三标识continue,还包括了第四标识discard(丢弃)。相应地,客户端发送第四标识discard以及服务器根据第四标识discard终止拷贝的过程可参见图15。
接下来,对本实施所提供的目标配置数据的拷贝方法及相关技术中所提供的拷贝方法进行对比说明:
参见图16,在相关技术一中,利用服务器中NETCONF所定义的备选配置数据集candidate来进行目标配置数据的拷贝。其中,客户端首先向服务器发送指令,清空服务器中candidate内已有的其他配置数据组。之后,对目标配置数据划分得到的多个配置数据组,将每个配置数据组均拷贝至已清空的candidate中,再将candidate拷贝至目标配置数据的目标数据集running或者startup中。
然而,根据NETCONF的定义,candidate及running均为需要持续占用内存的数据集。由于candidate是用于存储将要提交至running的配置数据,running是用于存储服务器中当前处于运行状态的配置数据,因而可以看出,candidate中存储的配置数据对服务器的运行没有直接影响,服务器运行所必须依赖的是running。因此,在部分内存较小的服务器中,仅支持对服务器的运行具有直接影响的running,而不支持candidate,则相关技术一无法应用至这些不支持candidate的服务器中,相关技术所提供的方法局限性较大。
而在本实施例所提供的拷贝方法中,服务器并不依赖于candidate,而是根据客户端针对配置数据组所添加的数据组标识获取可持久化到服务器硬盘的参考数据集,基于参考数据集来实现目标配置数据的拷贝。因此,即使服务器不支持candidate,也可以应用本实施例所提供的方法来进行目标配置数据的拷贝。可见,本实施例所提供的拷贝方法较为灵活,适用性较高。
参见图17,相关技术二中,服务器针对客户端划分目标配置数据所得到的多个配置数据组,将每个配置数据组均直接拷贝至目标数据集running或者startup中。然而,一旦在拷贝过程中出现错误,则目标数据集中所存储的配置数据也发生错误,且目标数据集无法恢复至拷贝之前的状态。因此,会导致服务器的运行发生错误,服务器无法继续运行。因此,相关技术二往往仅用于服务器初始化的阶段,而不能用于服务器的运行过程中。可以看出,相关技术二所提供的方法安全性不高、不够稳定,且具有较大的局限性。而在本实施例所提供的拷贝方法中,通过参考数据集作为拷贝的过渡数据集,使得本实施例所提供的拷贝方法既可以应用于服务器初始化的阶段,又可以应用于服务器的运行过程中,且能够保证服务器在拷贝过程中的正常运行。可见,本实施例所提供的方法安全稳定,适用性较高。
在相关技术三中,客户端直接将目标配置数据发送给服务器,服务器通过应用程序对目标配置数据进行自动化划分,再应用相关技术二所提供的方法将划分得到的配置数据组拷贝至目标数据集中。然而,服务器对目标配置数据所进行的自动化划分难度较高,所需的处理资源也较多,且由于应用了相关技术二,因而相关技术三也存在不够安全稳定、局限性较高的技术问题。可见,相比于相关技术三,本实施例所提供的方法较为安全稳定,适用性较高。
综上所述,本实施例通过在划分目标配置数据所得到的每个配置数据组对应的参数结构中添加数据组标识,使得服务器可根据数据组标识将每个配置数据组分别拷贝至获取的参考数据集中,再将参考数据集覆盖目标数据集,从而通过分段拷贝的方式将目标配置数据拷贝至目标数据集中。因此,不仅避免了目标配置数据占用内存超出服务器提供的内存而导致拷贝失败的情况,还无需依赖于candidate,能够应用于服务器运行的各个阶段,适用性较强。
基于相同构思,如图18所示,本申请实施例还提供了一种配置数据的拷贝装置,该装置包括:
获取模块1801,用于获取待拷贝的目标配置数据,将目标配置数据划分为多个配置数据组,每个配置数据组对应一个参数结构,每个参数结构均用于指示目标配置数据的目标数据集;
添加模块1802,用于针对任一个配置数据组,在任一个配置数据组对应的参数结构中添加数据组标识,将任一个配置数据组及添加有数据组标识的参数结构作为数据组报文;
发送模块1803,用于将多个数据组报文分别发送给服务器,服务器用于根据多个数据组报文中的数据组标识将多个数据组报文中的配置数据组分别拷贝至目标数据集。
在示例性实施例中,添加模块1802,用于针对任一个配置数据组,根据任一个配置数据组在多个配置数据组中的发送顺序,在任一个配置数据组对应的参数结构中添加数据组标识;或者,确定多个配置数据组的数据组总数,基于数据组总数在任一个配置数据组对应的参数结构中添加数据组标识。
在示例性实施例中,添加模块1802,用于响应于任一个配置数据组的发送顺序是多个配置数据组中的第一个,在任一个配置数据组对应的参数结构中添加第一标识,第一标识用于指示服务器获取参考数据集,将任一个配置数据组拷贝至参考数据集;响应于任一个配置数据组的发送顺序是多个配置数据组中的最后一个,在任一个配置数据组对应的参数结构中添加第二标识,第二标识用于服务器将任一个配置数据组拷贝至参考数据集,将参考数据集覆盖目标数据集;响应于任一个配置数据组的发送顺序是除第一个及最后一个以外的其他顺序,在任一个配置数据组对应的参数结构中添加第三标识,第三标识用于服务器将任一个配置数据组拷贝至参考数据集。
在示例性实施例中,添加模块1802,用于在任一个配置数据组对应的参数结构中均添加一个参考标识,参考标识用于指示任一个配置数据组由目标配置数据划分得到;从多个配置数据组中确定一个参考配置数据组,在参考配置数据组对应的参数结构中添加一个数量标识,数量标识用于指示数据组总数。
在示例性实施例中,装置还包括:接收模块,用于响应于接收到服务器针对目标数据组报文发送的错误纠正指令,根据错误纠正指令确定目标数据组报文对应的错误;响应于目标数据组报文对应的错误可被纠正,纠正目标数据组报文对应的错误,得到纠正后的数据组报文;将纠正后的数据组报文发送给服务器,服务器用于基于纠正后的数据组报文继续进行目标配置数据的拷贝。
在示例性实施例中,接收模块,还用于响应于目标数据组报文对应的错误不可被纠正,向服务器发送第四标识,第四标识用于指示服务器终止目标配置数据的拷贝。
综上所述,本实施例通过在划分目标配置数据所得到的每个配置数据组对应的参数结构中添加数据组标识,使得服务器可根据数据组标识将每个配置数据组分别拷贝至获取的参考数据集中,再将参考数据集覆盖目标数据集,从而通过分段拷贝的方式将目标配置数据拷贝至目标数据集中。因此,不仅避免了目标配置数据占用内存超出服务器提供的内存而导致拷贝失败的情况,还无需依赖于candidate,能够应用于服务器运行的各个阶段,适用性较强。
如图19所示,本申请实施例还提供了一种配置数据的拷贝装置,该装置包括:
接收模块1901,用于接收客户端发送的多个数据组报文,每个数据组报文包括一个配置数据组及配置数据组对应的添加有数据组标识的参数结构,配置数据组由客户端划分待拷贝的目标配置数据得到,添加有数据组标识的参数结构均用于指示目标配置数据的目标数据集;
拷贝模块1902,用于根据添加有数据组标识的参数结构中的数据组标识获取参考数据集,将配置数据组分别拷贝至参考数据集,将参考数据集覆盖目标数据集,以进行目标配置数据的拷贝。
在示例性实施例中,拷贝模块1902,用于任一个添加有数据组标识的参数结构中的数据组标识为第一标识、第二标识或者第三标识中的一种,根据第一标识、第二标识及第三标识获取参考数据集,将配置数据组分别拷贝至参考数据集;或者,任一个添加有数据组标识的参数结构中的数据组标识均包括参考标识,其中一个添加有数据组标识的参数结构中的数据组标识还包括数量标识,数量标识用于指示数据组总数,根据参考标识及数量标识获取参考数据集,将配置数据组分别拷贝至参考数据集。
在示例性实施例中,拷贝模块1902,用于响应于数据组标识为第一标识,获取参考数据集,将第一标识对应的配置数据组拷贝至参考数据集;响应于数据组标识为第三标识,将第二标识对应的配置数据组拷贝至参考数据集;响应于数据组标识为第二标识,将第三标识对应的配置数据组拷贝至参考数据集,将参考数据集覆盖目标数据集。
在示例性实施例中,拷贝模块1902,用于响应于首次获取到参考标识,获取参考数据集,将参考标识对应的配置数据组拷贝至参考数据集;响应于非首次获取到参考标识,将参考标识对应的配置数据组拷贝至参考数据集;响应于已获取到的参考标识的数量等于数量标识所指示的数据组总数,将参考数据集覆盖目标数据集。
在示例性实施例中,装置还包括:检测模块,用于响应于检测到任一个配置数据组的拷贝发生错误,终止目标配置数据的拷贝,或者,向客户端发送针对配置数据组所在的目标数据组报文的错误纠正指令。
在示例性实施例中,装置还包括:继续模块,用于响应于接收到客户端基于错误纠正指令发送的纠正后的数据组报文,继续目标配置数据的拷贝。
在示例性实施例中,装置还包括:终止模块,用于响应于接收到客户端基于错误纠正指令发送的第四标识,终止目标配置数据的拷贝。
在示例性实施例中,装置还包括:删除模块,用于删除参考数据集。
综上所述,本实施例通过在划分目标配置数据所得到的每个配置数据组对应的参数结构中添加数据组标识,使得服务器可根据数据组标识将每个配置数据组分别拷贝至获取的参考数据集中,再将参考数据集覆盖目标数据集,从而通过分段拷贝的方式将目标配置数据拷贝至目标数据集中。因此,不仅避免了目标配置数据占用内存超出服务器提供的内存而导致拷贝失败的情况,还无需依赖于candidate,能够应用于服务器运行的各个阶段,适用性较强。
应理解的是,上述图18或19提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请实施例提供了一种电子设备,电子设备包括存储器及处理器;存储器中存储有至少一条指令,至少一条指令由处理器加载并执行,以实现本申请的任一种示例性实施例所提供的方法。
参见图20,本申请实施例还提供一种配置数据的拷贝设备1000,图20所示的配置数据的拷贝设备1000用于执行上述配置数据的拷贝方法所涉及的操作。该配置数据的拷贝设备1000包括:存储器1001、处理器1002及接口1003,存储器1001、处理器1002及接口1003之间通过总线1004连接。
其中,存储器1001中存储有至少一条指令,至少一条指令由处理器1002加载并执行,以实现上述任一所述的配置数据的拷贝方法。
接口1003用于与网络中的其他设备进行通信,该接口1003可以通过无线或有线的方式实现,示例性地,该接口1003可以是网卡。例如,隧道配置设备1000可通过该接口1003与服务器进行通信。
应理解的是,图20仅仅示出了配置数据的拷贝设备1000的简化设计。在实际应用中,隧道配置设备可以包含任意数量的接口,处理器或者存储器。此外,上述处理器可以是中央处理器(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integratedcircuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(advanced RISC machines,ARM)架构的处理器。
进一步地,在一种可选的实施例中,上述存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
本申请实施例提供了一种通信装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行本申请的任一种示例性实施例所提供的方法。
可选地,处理器为一个或多个,存储器为一个或多个。
可选地,存储器可以与处理器集成在一起,或者存储器与处理器分离设置。
在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请实施例对存储器的类型以及存储器与处理器的设置方式不做限定。
本申请实施例提供了一种通信系统,该系统包括客户端及服务器,客户端及服务器用于执行本申请的任一种示例性实施例所提供的方法。
本申请实施例提供了一种计算机程序(产品),计算机程序(产品)包括:计算机程序代码,当计算机程序代码被计算机运行时,使得计算机执行上述本申请的任一种示例性实施例所提供的方法。
本申请实施例提供了一种可读存储介质,可读存储介质存储程序或指令,当程序或指令在计算机上运行时,本申请的任一种示例性实施例所提供的方法被执行。
本申请实施例提供了一种芯片,包括处理器,用于从存储器中调用并运行存储器中存储的指令,使得安装有芯片的通信设备执行本申请的任一种示例性实施例所提供的方法。
本申请实施例提供了一种芯片,包括:输入接口、输出接口、处理器和存储器,输入接口、输出接口、处理器以及存储器之间通过内部连接通路相连,处理器用于执行存储器中的代码,当代码被执行时,处理器用于执行本申请的任一种示例性实施例所提供的方法。
应理解的是,上述处理器可以是中央处理器(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(advanced RISC machines,ARM)架构的处理器。
进一步地,在一种可选的实施例中,上述存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用。例如,静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic random access memory,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data dateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。
本申请提供了一种计算机程序,当计算机程序被计算机执行时,可以使得处理器或计算机执行上述方法实施例中对应的各个步骤和/或流程。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid StateDisk)等。
以上所述仅为本申请的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (16)
1.一种配置数据的拷贝方法,其特征在于,所述方法包括:
获取待拷贝的目标配置数据,将所述目标配置数据划分为多个配置数据组,每个配置数据组对应一个参数结构,每个参数结构均用于指示所述目标配置数据的目标数据集;
针对任一个配置数据组,在所述任一个配置数据组对应的参数结构中添加数据组标识,将所述任一个配置数据组及添加有数据组标识的参数结构作为数据组报文,所述数据组标识包括第一标识、第二标识和第三标识中的一种标识,所述第一标识用于指示服务器获取参考数据集,将所述任一个配置数据组拷贝至所述参考数据集;所述第二标识用于所述服务器将所述任一个配置数据组拷贝至所述参考数据集,将所述参考数据集覆盖所述目标数据集;所述第三标识用于所述服务器将所述任一个配置数据组拷贝至所述参考数据集,所述参考数据集用于覆盖所述目标数据集;
将多个数据组报文分别发送给所述服务器,所述服务器用于根据所述多个数据组报文中的数据组标识将所述多个数据组报文中的配置数据组分别拷贝至所述目标数据集。
2.根据权利要求1所述的方法,其特征在于,所述针对任一个配置数据组,在所述任一个配置数据组对应的参数结构中添加数据组标识,包括:
针对任一个配置数据组,根据所述任一个配置数据组在所述多个配置数据组中的发送顺序,在所述任一个配置数据组对应的参数结构中添加数据组标识。
3.根据权利要求2所述的方法,其特征在于,所述针对任一个配置数据组,根据所述任一个配置数据组在所述多个配置数据组中的发送顺序,在所述任一个配置数据组对应的参数结构中添加数据组标识,包括:
响应于所述任一个配置数据组的发送顺序是所述多个配置数据组中的第一个,在所述任一个配置数据组对应的参数结构中添加所述第一标识;
响应于所述任一个配置数据组的发送顺序是所述多个配置数据组中的最后一个,在所述任一个配置数据组对应的参数结构中添加所述第二标识;
响应于所述任一个配置数据组的发送顺序是除所述第一个及所述最后一个以外的其他顺序,在所述任一个配置数据组对应的参数结构中添加所述第三标识。
4.根据权利要求1-3任一所述的方法,其特征在于,所述将多个数据组报文分别发送给所述服务器之后,所述方法还包括:
响应于接收到所述服务器针对目标数据组报文发送的错误纠正指令,根据所述错误纠正指令确定所述目标数据组报文对应的错误;
响应于所述目标数据组报文对应的错误可被纠正,纠正所述目标数据组报文对应的错误,得到纠正后的数据组报文;
将所述纠正后的数据组报文发送给所述服务器,所述服务器用于基于所述纠正后的数据组报文继续进行所述目标配置数据的拷贝。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
响应于所述目标数据组报文对应的错误不可被纠正,向服务器发送第四标识,所述第四标识用于指示服务器终止所述目标配置数据的拷贝。
6.一种配置数据的拷贝方法,其特征在于,所述方法包括:
接收客户端发送的多个数据组报文,每个数据组报文包括一个配置数据组及所述配置数据组对应的添加有数据组标识的参数结构,所述配置数据组由客户端划分待拷贝的目标配置数据得到,所述添加有数据组标识的参数结构均用于指示所述目标配置数据的目标数据集,所述数据组标识包括第一标识、第二标识和第三标识中的一种标识,所述第一标识用于指示服务器获取参考数据集,将任一个配置数据组拷贝至所述参考数据集;所述第二标识用于所述服务器将所述任一个配置数据组拷贝至所述参考数据集,将所述参考数据集覆盖所述目标数据集;所述第三标识用于所述服务器将所述任一个配置数据组拷贝至所述参考数据集;
根据所述添加有数据组标识的参数结构中的所述数据组标识获取所述参考数据集,将所述配置数据组分别拷贝至所述参考数据集,将所述参考数据集覆盖所述目标数据集,以进行所述目标配置数据的拷贝。
7.根据权利要求6所述的方法,其特征在于,所述根据所述添加有数据组标识的参数结构中的所述数据组标识获取所述参考数据集,将所述配置数据组分别拷贝至所述参考数据集,将所述参考数据集覆盖所述目标数据集,包括:
根据所述第一标识、所述第二标识及所述第三标识获取所述参考数据集,将所述配置数据组分别拷贝至所述参考数据集。
8.根据权利要求7所述的方法,其特征在于,所述根据所述第一标识、所述第二标识及所述第三标识获取所述参考数据集,将所述配置数据组分别拷贝至所述参考数据集,包括:
响应于所述数据组标识为所述第一标识,获取所述参考数据集,将所述第一标识对应的配置数据组拷贝至所述参考数据集;
响应于所述数据组标识为所述第三标识,将所述第三标识对应的配置数据组拷贝至所述参考数据集;
响应于所述数据组标识为所述第二标识,将所述第二标识对应的配置数据组拷贝至所述参考数据集,将所述参考数据集覆盖所述目标数据集。
9.根据权利要求6-8任一所述的方法,其特征在于,所述将所述参考数据集覆盖所述目标数据集之前,所述方法还包括:
响应于检测到任一个配置数据组的拷贝发生错误,终止所述目标配置数据的拷贝,或者,向所述客户端发送针对所述配置数据组所在的目标数据组报文的错误纠正指令。
10.根据权利要求9所述的方法,其特征在于,所述向所述客户端发送针对所述配置数据组所在的目标数据组报文的错误纠正指令之后,所述方法还包括:
响应于接收到所述客户端基于所述错误纠正指令发送的纠正后的数据组报文,继续所述目标配置数据的拷贝。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
响应于接收到所述客户端基于所述错误纠正指令发送的第四标识,终止所述目标配置数据的拷贝。
12.根据权利要求6-8、10和11任一所述的方法,其特征在于,所述将所述参考数据集覆盖所述目标数据集之后,所述方法还包括:
删除所述参考数据集。
13.一种配置数据的拷贝装置,其特征在于,所述装置包括:
获取模块,用于获取待拷贝的目标配置数据,将所述目标配置数据划分为多个配置数据组,每个配置数据组对应一个参数结构,每个参数结构均用于指示所述目标配置数据的目标数据集;
添加模块,用于针对任一个配置数据组,在所述任一个配置数据组对应的参数结构中添加数据组标识,将所述任一个配置数据组及添加有数据组标识的参数结构作为数据组报文,所述数据组标识包括第一标识、第二标识和第三标识中的一种标识,所述第一标识用于指示服务器获取参考数据集,将所述任一个配置数据组拷贝至所述参考数据集;所述第二标识用于所述服务器将所述任一个配置数据组拷贝至所述参考数据集,将所述参考数据集覆盖所述目标数据集;所述第三标识用于所述服务器将所述任一个配置数据组拷贝至所述参考数据集,所述参考数据集用于覆盖所述目标数据集;
发送模块,用于将多个数据组报文分别发送给所述服务器,所述服务器用于根据所述多个数据组报文中的数据组标识将所述多个数据组报文中的配置数据组分别拷贝至所述目标数据集。
14.一种配置数据的拷贝装置,其特征在于,所述装置包括:
接收模块,用于接收客户端发送的多个数据组报文,每个数据组报文包括一个配置数据组及所述配置数据组对应的添加有数据组标识的参数结构,所述配置数据组由客户端划分待拷贝的目标配置数据得到,所述添加有数据组标识的参数结构均用于指示所述目标配置数据的目标数据集,所述数据组标识包括第一标识、第二标识和第三标识中的一种标识,所述第一标识用于指示服务器获取参考数据集,将任一个配置数据组拷贝至所述参考数据集;所述第二标识用于所述服务器将所述任一个配置数据组拷贝至所述参考数据集,将所述参考数据集覆盖所述目标数据集;所述第三标识用于所述服务器将所述任一个配置数据组拷贝至所述参考数据集;
拷贝模块,用于根据所述添加有数据组标识的参数结构中的所述数据组标识获取所述参考数据集,将所述配置数据组分别拷贝至所述参考数据集,将所述参考数据集覆盖所述目标数据集,以进行所述目标配置数据的拷贝。
15.一种电子设备,其特征在于,所述电子设备包括存储器及处理器;所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以实现权利要求1-12中任一所述的配置数据的拷贝方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求1-12中任一所述的配置数据的拷贝方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911409573.9A CN113064658B (zh) | 2019-12-31 | 2019-12-31 | 配置数据的拷贝方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911409573.9A CN113064658B (zh) | 2019-12-31 | 2019-12-31 | 配置数据的拷贝方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113064658A CN113064658A (zh) | 2021-07-02 |
CN113064658B true CN113064658B (zh) | 2023-09-08 |
Family
ID=76558430
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911409573.9A Active CN113064658B (zh) | 2019-12-31 | 2019-12-31 | 配置数据的拷贝方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113064658B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113448655B (zh) * | 2021-07-09 | 2022-06-17 | 赞同科技股份有限公司 | C标准动态库的调用方法与装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107222321A (zh) * | 2016-03-21 | 2017-09-29 | 华为技术有限公司 | 一种配置报文发送方法及装置 |
CN107786350A (zh) * | 2016-08-24 | 2018-03-09 | 华为技术有限公司 | 一种恢复网络设备的出厂配置的方法、装置及网络设备 |
CN110278093A (zh) * | 2018-03-13 | 2019-09-24 | 华为技术有限公司 | 网络设备的配置方法和装置 |
CN110391949A (zh) * | 2019-09-19 | 2019-10-29 | 华为技术有限公司 | 一种配置变更的方法及相关装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9715380B2 (en) * | 2015-05-26 | 2017-07-25 | Cisco Technology, Inc. | Techniques for enabling dynamic update of device data models |
-
2019
- 2019-12-31 CN CN201911409573.9A patent/CN113064658B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107222321A (zh) * | 2016-03-21 | 2017-09-29 | 华为技术有限公司 | 一种配置报文发送方法及装置 |
CN107786350A (zh) * | 2016-08-24 | 2018-03-09 | 华为技术有限公司 | 一种恢复网络设备的出厂配置的方法、装置及网络设备 |
CN110278093A (zh) * | 2018-03-13 | 2019-09-24 | 华为技术有限公司 | 网络设备的配置方法和装置 |
CN110391949A (zh) * | 2019-09-19 | 2019-10-29 | 华为技术有限公司 | 一种配置变更的方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113064658A (zh) | 2021-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107819828B (zh) | 数据传输方法、装置、计算机设备和存储介质 | |
EP2079207A1 (en) | A method and device for processing the notification message | |
US11658870B2 (en) | Method and apparatus for restoring network device to factory defaults, and network device | |
CN111666745A (zh) | 一种文件下载方法、装置、服务器及介质 | |
CN112398726B (zh) | 推送消息的回执信息处理方法、系统及存储介质 | |
CN113064658B (zh) | 配置数据的拷贝方法、装置、设备及计算机可读存储介质 | |
CN112087475B (zh) | 一种云平台组件应用的消息推送方法、装置及消息服务器 | |
CN115396192A (zh) | 用户身份校验方法、装置、计算机设备及存储介质 | |
CN105554136A (zh) | 备份数据还原方法、装置及系统 | |
CN109711140B (zh) | 站点登录状态控制方法、装置、计算机设备及存储介质 | |
US20220248207A1 (en) | Dynamically switching network cards | |
CN111327680B (zh) | 认证数据同步方法、装置、系统、计算机设备和存储介质 | |
CN113259874A (zh) | 消息处理方法、电子设备及存储介质 | |
CN111158747B (zh) | App提示消息动态配置方法、系统、计算机设备和存储介质 | |
CN108021459B (zh) | 跨进程发送打点日志的方法及装置 | |
CN110730242A (zh) | 一种文件传输方法、装置及设备 | |
CN111835504A (zh) | 识别码生成方法及服务器 | |
US20190364134A1 (en) | Data processing method and apparatus for client | |
CN113391759B (zh) | 一种通信方法和设备 | |
CN112579235A (zh) | 响应数据国际化的方法、转码中心、客户端、设备及介质 | |
CN109548020B (zh) | 鉴权失败后的补偿方法及装置、服务器、存储介质 | |
CN111124445B (zh) | 一种家庭网关的升级方法及家庭网关 | |
CN113271337A (zh) | 一种计算机消息订阅方法和装置 | |
CN110784518A (zh) | 一种静态资源获取方法与装置 | |
CN117560285B (zh) | 一种智控物联整机ota升级方法、客户端及服务端 |
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 |