一种多客户端并发配置的方法、服务端和客户端与流程

未命名 08-15 阅读:93 评论:0


1.本发明涉及客户端配置领域,特别是涉及一种多客户端并发配置的方法、服务端和客户端。


背景技术:

2.netconf(network configuration protocol)是一种网管配置管理协议,使用netconf的网管或控制器(netconf客户端)和被管理的网络设备(netconf服务端)之间建立会话,客户端使用远程过程调用(rpc,remote procedure calls)方式和基于可扩展标记语言(xml,extensible markuplanguage)编码的数据协议实现对服务端的配置和管理。
3.netconf协议定义了一系列数据区(datastore)及针对数据区的操作,用于编辑和保存配置数据,相关的数据区及操作包括:
4.运行数据区《running》:用于保存设备当前生效的配置数据;候选数据区《candidate》:用于缓存客户端当前编辑的配置数据,候选数据区的配置数据不会立即生效,需要等客户端执行提交操作且校验通过后,这些数据会复制到运行数据区正式生效;编辑配置《edit-config》:编辑配置数据,目标可以是运行数据区或候选数据区;提交《commit》:将候选数据区的内容提交到运行数据区;锁定《lock》:客户端锁定指定数据区,锁定目标可以是运行数据区或候选数据区,被锁定的数据区不允许其他客户端修改;解锁《unlock》:已锁定某个数据区的客户端,通过此操作解除对该数据区的锁定。
5.在使用netconf协议管理网络设备时,为了避免多个netconf客户端同时配置服务端导致数据冲突,客户端需要按照“锁定候选数据区-编辑候选数据区-提交配置-解锁候选数据区”的步骤完成配置操作。在已锁定数据区的客户端解锁前,其他客户端不能修改数据区的内容。
6.某个客户端成功锁定配置数据区后,由于软件或网络故障等原因,客户端未发送解锁消息或解锁消息未被送达服务端,导致服务端配置数据区锁定状态无法解除,这种情况下,其他客户端无法配置设备。
7.在人-机器交互的传统管理方式下,对比人自身的处理效率,上述问题影响不大,但在类似工业互联网这种机器-机器交互的智能运维场景下,多台网管和控制器需要根据采集到的设备性能、状态、告警等数据,分析网络质量,并快速实时调整网络参数,上述问题会严重影响网络管理效率
8.鉴于此,克服该现有技术所存在的缺陷是本技术领域亟待解决的问题。


技术实现要素:

9.本发明实施例要解决的问题是如何解决某个客户端成功锁定配置数据区后,由于软件或网络故障等原因,客户端未发送解锁消息或解锁消息未被送达服务端,导致服务端配置数据区锁定状态无法解除,这种情况下,其他客户端无法配置设备的问题。
10.本发明实施例采用如下技术方案:
11.第一方面,本发明提出了一种多客户端并发配置的方法,包括:
12.服务端接收来自于客户端的第一协商消息,根据所述第一协商消息确定客户端所具有的锁定能力;
13.向客户端发送第二协商消息,以便于客户端基于第二协商消息确定所述服务端所具有的锁定能力,进而根据所述服务端所具有的锁定能力发送相应的锁定消息;
14.接收客户端的锁定消息,对所述锁定消息进行解析得到参数,根据所述参数对候选数据区进行锁定和后续解锁。
15.优选的,当所述参数表明锁定消息为具有锁定超时能力的消息时,所述参数还包含超时时间参数,所述根据所述参数对候选数据区进行锁定和后续解锁,具体包括:
16.启动锁定定时器;
17.实时获取锁定定时器的定时值;
18.若所述定时值大于所述超时时间参数,则对候选数据区进行解锁;
19.若在定时超时之前接收到所述客户端的提交配置消息,则将所述配置数据复制到运行数据区,并解锁候选数据区,停止定时器计时。
20.优选的,当所述参数表明锁定消息为具有提交后解锁能力的消息时,所述根据所述参数对候选数据区进行锁定和后续解锁,具体包括:
21.接收来自客户端的配置数据,将配置数据写入候选数据区;
22.在接收到客户端的提交配置消息后,将所述配置数据复制到运行数据区,配置生效后,直接解锁候选数据区。
23.优选的,客户端至少包括第一客户端和第二客户端,当所述参数表明锁定消息为具有锁定抢占能力的消息时,所述参数还包含优先级参数,所述根据所述参数对候选数据区进行锁定和后续解锁,具体包括:
24.服务端解析所述第一客户端的锁定消息,所述优先级参数为第一优先级;
25.当候选数据区被所述第一客户端锁定时,服务端又接收到来自于所述第二客户端的锁定消息,所述优先级参数为第二优先级;
26.根据第一优先级和第二优先级,确定候选数据区的锁定权限;
27.若第一优先级不小于第二优先级,所述锁定权限继续归属于所述第一客户端,向所述第二客户端发送锁定失败的消息;
28.若第一优先级小于第二优先级,服务端解锁候选数据区,将所述锁定权限移交给第二客户端,清除第一客户端未提交的配置数据,并向所述第一客户端发送锁候选数据区被其他客户端抢占的反馈消息。
29.优选的,所述若第一优先级不小于第二优先级,所述锁定权限继续归属于所述第一客户端,之后还包括:
30.将第一客户端的配置数据写入候选数据区;
31.在接收到第一客户端的提交配置消息后,将所述配置数据复制到运行数据区;
32.在接收来到第一客户端的解锁请求消息后,对所述候选数据区进行解锁;
33.或,
34.当所述第一客户端的所述参数表明所述锁定消息为还具有提交后解锁能力的消息时:
35.将第一客户端的配置数据写入候选数据区;
36.在接收到第一客户端的提交配置消息后,将所述配置数据复制到运行数据区,配置生效后,直接解锁候选数据区;
37.或,
38.当所述第一客户端的所述参数表明所述锁定消息为还具有锁定超时能力的消息时,所述参数还包括超时时间参数:
39.启动锁定定时器;
40.实时获取锁定定时器的定时值;
41.若所述定时值大于所述超时时间参数,则对候选数据区进行解锁;
42.若在定时超时之前接收到所述第一客户端的提交配置消息,则将所述配置数据复制到运行数据区,并解锁候选数据区,停止定时器计时。
43.优选的,客户端至少包括第一客户端和第二客户端,当候选数据区被第一客户端锁定,服务端又接收到来自第二客户端的锁定消息,且所述参数表明锁定消息为具有锁定附加配置能力的消息时,所述参数还保包含第二客户端的配置数据,所述多客户端并发配置的方法还包括:
44.将第二客户端的配置数据进行缓存,向第二客户端发送等待锁定的消息;
45.在第一客户端解除对候选数据区的锁定之后,判断所述第二客户端的配置数据和候选数据区内的最新配置数据是否冲突;
46.若存在冲突,清除已缓存的配置数据,向第二客户端发送锁定失败的消息;
47.若不存在冲突,将已缓存的配置数据存入候选数据区内,将锁定权限移交至第二客户端,并向第二客户端发送锁定成功的消息。
48.优选的,所述将锁定权限移交至第二客户端,并向第二客户端发送锁定成功的消息,之后还包括:
49.在接收到第二客户端的提交配置消息后,将所述配置数据复制到运行数据区;
50.在接收到第二客户端的解锁请求消息后,对所述候选数据区进行解锁;
51.或,
52.当所述第二客户端的所述参数表明锁定消息为还具有提交后解锁能力的消息时,所述将锁定权限移交至第二客户端,并向第二客户端发送锁定成功的消息,之后还包括:
53.在接收到第二客户端的提交配置消息后,将所述配置数据复制到运行数据区,配置生效后,直接解锁候选数据区;
54.或,
55.当所述第二客户端的所述参数表明锁定消息为还具有锁定超时能力的消息时,所述参数还包括超时时间参数,所述将锁定权限移交至第二客户端,并向第二客户端发送锁定成功的消息,之后还包括:
56.启动锁定定时器;
57.实时获取锁定定时器的定时值;
58.若所述定时值大于所述超时时间参数,则对候选数据区进行解锁;
59.若在定时超时之前接收到所述第二客户端的提交配置消息,则将所述配置数据复制到运行数据区,并解锁候选数据区,停止定时器计时。
60.第二方面,本发明还提出了一种服务端,应用在第一方面的多客户端并发配置方法,所述服务端包括:
61.至少一个处理器;
62.至少一个存储器;
63.其中,所述至少一个处理器以及所述至少一个存储器相互通信连接,所述至少一个存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面的多客户端并发配置的方法。
64.第三方面,本发明还提出了一种多客户端并发配置的方法,包括:
65.客户端向服务端发送第一协商消息,以便于服务端基于第一协商消息确定所述客户端所具有的锁定能力;
66.接收来自服务端发送的第二协商消息,根据所述第二协商消息确定服务端所具有的锁定能力;
67.客户端向服务端发送锁定消息,其中,所述锁定消息中携带有所述服务端所能支持的参数,以便于服务端根据所述参数对候选数据区进行锁定和后续解锁。
68.第四方面,本发明还提出了一种客户端,应用于第三方面的多客户端并发配置的方法,所述客户端包括:
69.至少一个处理器;
70.至少一个存储器;
71.其中,所述至少一个处理器以及所述至少一个存储器相互通信连接,所述至少一个存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第三方面的多客户端并发配置的方法。与现有技术相比,本发明实施例的有益效果在于:
72.本发明通过扩展协议标准定义的锁定和解锁操作,使得服务端和客户端分别具有锁定能力,进而完成锁定能力的协商,在锁定消息中携带参数,可以依据参数进行解锁,避免了由于软件或网络故障等原因,客户端未发送解锁消息或解锁消息未被送达服务端,导致服务端配置数据区锁定状态无法解除的问题,保证其他客户端可以配置设备。
73.进一步地,本发明通过对客户端的锁定消息进行解析得到参数,通过参数表明发送锁定消息对应的客户端具有锁定超时能力、锁定抢占能力、提交后解锁能力、锁定附加配置能力。通过锁定超时能力,避免某个客户端长期锁定数据区,导致其他客户端无法配置设备;通过锁定抢占能力,允许需要紧急操作设备的客户端优先获得配置数据区锁定权限,保障紧急任务被优先执行;通过提交后解锁能力,允许服务端在客户端提交配置成功后自动解锁配置数据区,减少等待解锁消息的时间开销;通过锁定附加配置能力,允许客户端在锁定消息中附加配置数据,减少消息交互次数;在配置数据区已被锁定的情况下,减少客户端等待数据区解锁的时间,且无需在等待过程中反复轮询配置数据区锁定状态。
附图说明
74.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以
根据这些附图获得其它的附图。
75.图1是本发明实施例提供的一种多客户端并发配置的方法流程示意图;
76.图2是本发明实施例提供的一种多客户端并发配置内服务端与客户端协商过程流程示意图;
77.图3是本发明实施例提供的图1中步骤204的第一种具体流程示意图;
78.图4是本发明实施例提供的第一种多客户端并发配置的方法的交互流程示意图;
79.图5是本发明实施例提供的图1中步骤204的第二种具体流程示意图;
80.图6是本发明实施例提供的一种多客户端并发配置内对于候选数据区的第一种解锁方式流程示意图;
81.图7是本发明实施例提供的一种多客户端并发配置内对于候选数据区的第二种解锁方式流程示意图;
82.图8是本发明实施例提供的一种多客户端并发配置内服务端与客户端之间实现锁定抢占功能的方法流程示意图;
83.图9是本发明实施例提供的图1中步骤204的第三种具体流程示意图;
84.图10是本发明实施例提供的一种多客户端并发配置内服务端与客户端之间实现提交后解锁的方法流程示意图;
85.图11是本发明实施例提供的一种多客户端并发配置的服务端和客户端具有锁定附加配置的多客户端并发配置的方法流程示意图;
86.图12是本发明实施例提供的一种多客户端并发配置内实现锁定附加配置功能的方法流程示意图;
87.图13是本发明实施例提供的一种多客户端并发配置的方法流程图;
88.图14是本发明实施例提供的装置的结构示意图。
具体实施方式
89.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
90.在本发明的描述中,术语“内”、“外”、“纵向”、“横向”、“上”、“下”、“顶”、“底”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明而不是要求本发明必须以特定的方位构造和操作,因此不应当理解为对本发明的限制。
91.本发明中术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本技术的描述中,除非另有说明,“多个”的含义是两个或两个以上。
92.在本技术中,除非另有明确的规定和限定,术语“连接”应做广义理解,例如,“连接”可以是固定连接,也可以是可拆卸连接,或成一体;可以是直接相连,也可以通过中间媒介间接相连。此外,术语“耦接”可以是实现信号传输的电性连接的方式。
93.此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
94.实施例1:
95.本发明实施例1提供了一种多客户端并发配置的方法,如图1所示,包括:
96.步骤201:服务端接收来自于客户端的第一协商消息,根据所述第一协商消息确定客户端所具有的锁定能力。
97.其中,本发明实施例的服务端和客户端都遵循netconf协议,客户端向服务端发送第一协商消息,并通告自身支持的锁定能力。本发明实施例客户端的锁定能力包括:锁定超时能力、锁定抢占能力、提交后解锁能力和锁定附加配置能力。
98.为了获取锁定超时能力、锁定抢占能力、提交后解锁能力、锁定附加配置能力,本发明对netconf协议做了如下扩展,具体包括:
99.新增4种锁定能力的定义,能力协商消息格式参考步骤203的说明
100.urn:fiberhome:yang:lock-timeout,对应锁定超时能力;
101.urn:fiberhome:yang:lock-preemptive,对应锁定抢占能力;
102.urn:fiberhome:yang:unlock-after-committing,对应提交后解锁能力;
103.urn:fiberhome:yang:lock-with-config,对应锁定附加配置能力;
104.扩展netconf《lock》rpc输入参数,新增如下timeout、priority、unlock-after-committing、config节点定义
105.106.[0107][0108]
步骤202:向客户端发送第二协商消息,以便于客户端基于第二协商消息确定所述服务端所具有的锁定能力,进而根据所述服务端所具有的锁定能力发送相应的锁定消息。
[0109]
本发明实施例的服务端向客户端发送第二协商消息,通告服务端自身所具有的锁定能力。本发明实施例服务端的锁定能力包括:锁定超时能力、锁定抢占能力、提交后解锁能力和锁定附加配置能力。本发明实施例通过netconf协议,建立服务端与客户端之间的会话,进而完成服务端与客户端锁定能力的协商,完成协商后,客户端可以在会话中,使用双方都支持的锁定功能。值得说明的是,本发明实施例步骤201与步骤202之间并无先后顺序要求。
[0110]
步骤203:接收客户端的锁定消息,对所述锁定消息进行解析得到参数,根据所述参数对候选数据区进行锁定和后续解锁。
[0111]
本发明实施例通过扩展服务端和客户端的锁定能力后,客户端所发送的锁定消息内就会携带相应的参数,服务端解析来自客户端发送锁定消息,并解析到相应的参数,进而通过参数知晓客户端具备相应的能力,进而实现对候选数据区进行解锁。值得说明的是,本发明实施例的候选数据区只有在未被锁定的状态才能被客户端锁定,并进行配置;候选数据区被当前客户端锁定后,当其它的客户端需要进行配置时,首先需要将候选数据区进行解锁后,待候选数据区处于未被锁定时,才能被其它的客户端锁定,并进行配置。
[0112]
当本发明实施例通过扩展netconf协议标准定义的锁定和解锁操作后,使得本发明实施例的客户端和服务端具有对应的锁定能力。服务端与客户端之间建立会话,完成锁定能力协商过程的消息内容和格式示例,如图2所示,具体如下:
[0113]
[0114][0115]
本发明通过扩展协议标准定义的锁定和解锁操作,使得服务端和客户端分别具有锁定能力,进而完成锁定能力的协商,在解锁消息中携带参数,可以依据参数进行解锁,避免了由于软件或网络故障等原因,客户端未发送解锁消息或解锁消息未被送达服务端,导致服务端配置数据区锁定状态无法解除的问题,保证其他客户端可以配置设备。
[0116]
实施例2:
[0117]
本发明实施例2在实施例1的基础上,重点阐述当所述参数表明锁定消息为具有锁定超时能力的消息时,所述参数包还含超时时间参数时,如何解决某个客户端成功锁定候选数据区后,由于软件或网络故障等原因,客户端未发送解锁消息或解锁消息未被送达服
务端,导致服务端候选数据区锁定状态无法解除的种情况下,其他客户端无法配置设备的问题。
[0118]
当所述参数表明锁定消息为具有锁定超时能力的消息时,所述参数包含超时时间参数,所述根据所述参数对候选数据区进行锁定和后续解锁,如图3所示,具体包括:
[0119]
步骤301:启动锁定定时器。
[0120]
其中,本发明实施例的客户端与服务端在完成锁定能力协商后,如果客户端和服务端均具有锁定超时能力,就可以实现锁定超时功能。客户端向服务端发送锁定消息,请求服务端锁定候选数据区,并且,该锁定消息内携带有超时时间参数。服务端接收客户端的锁定消息后,通过解析得到的超时时间参数对候选数据进行锁定和后续解锁;当服务端解析得到超时时间参数后,启动锁定定时器开始计时。可以理解的是,本发明实施例的超时时间参数实际上是一个设定的时间值(例如,超时时间参数设定为10000毫秒),可以根据实际情况进行设置。
[0121]
步骤302:实时获取锁定定时器的定时值。
[0122]
其中,本发明实施例的锁定定时器可以理解为监测时间的器件,通过实时获取锁定计时器的定时值,并将实时获取的定时值与超时时间参数进行比对,就可以知晓从启动锁定定时器开始到服务端处理客户端编辑和提交配置结束的过程中,客户端是否超时。本发明实施例的定时值表示的是锁定定时器实时监测的时间值。
[0123]
步骤303:若所述定时值大于所述超时时间参数,则对候选数据区进行解锁。
[0124]
其中,当定时值大于超时时间参数时,则表示客户端配置过程超时,即客户端在锁定定时器超时前未发送解锁消息,此时服务端对候选数据区进行解锁。
[0125]
步骤304:若在定时超时之前接收到所述客户端的提交配置消息,则将所述配置数据复制到运行数据区,并解锁候选数据区,停止定时器计时。
[0126]
其中,本发明实施例的定时超时表示的是锁定定时器超时,若在定时超时之前接收到所述客户端的提交配置消息,则说明客户端在锁定定时器超时之前完成了编辑和提交配置操作,并且,服务端对候选数据区进行了解锁;在此过程中,服务端对于候选数据区的解锁过程,至少存在两种方式:第一种,服务端接收到客户端发送的提交配置消息,服务端处理客户端提交配置的操作,并反馈给客户端,然后客户端发送解锁消息,服务端根据客户端的解锁消息对候选数据区进行解锁,最后停止锁定定时器;第二种,服务端接收到客户端发送的提交配置消息,服务端将对应的配置数据复制到运行数据区内进行运行,配置生效,然后解锁候选数据区,最后停止锁定定时器,此种方式的前提是,服务端和客户端均支持提交后解锁能力。
[0127]
接下来详细的说明本发明实施例服务端与客户端之间实现锁定超时功能的过程,客户端和服务端在完成锁定能力协商后,如果客户端和服务端均支持锁定超时能力,则可按照如图4所示,实现锁定超时功能。
[0128]
步骤401,客户端向服务端发送消息,请求锁定候选数据区,锁定消息携带超时时间参数,具体格式和示例如下:
[0129][0130]
步骤402,服务端收到锁定消息后,锁定候选数据区,并启动锁定定时器,超时时间为10000毫秒。
[0131]
步骤403-406为普通解锁流程,即客户端在锁定定时器超时前完成了编辑和提交配置操作,主动发送解锁消息。
[0132]
步骤403,客户端发送消息,编辑候选数据区,提交配置。
[0133]
步骤404,服务端处理客户端编辑和提交配置的操作。
[0134]
步骤405,客户端发送解锁消息。
[0135]
步骤406,服务端解锁候选数据区,停止锁定定时器。
[0136]
其中,步骤407-410为超时解锁流程,即客户端在锁定定时器超时前未发送解锁消息,服务端自动解锁。
[0137]
步骤407,客户端发送消息,编辑候选数据区,提交配置。
[0138]
步骤408,服务端处理客户端编辑和提交配置的操作。
[0139]
步骤409,锁定定时器超时,服务端解除锁定,清除未提交的配置数据。
[0140]
步骤410,服务端向客户端发送消息,通知由于超时,锁定已解除。
[0141]
本发明实施例2通过扩展netconf协议标准定义的锁定和解锁操作,使得本发明实施例的客户端和服务端双方均支持锁定超时的锁定能力。通过锁定超时,避免某个客户端长期锁定候选数据区,导致其他客户端无法配置设备。
[0142]
实施例3:
[0143]
本发明实施例3在实施例1的基础上,重点阐述当所述参数表明锁定消息为具有锁定抢占能力的消息时,所述参数还包含优先级参数时,如何解决某个客户端为了消除设备故障或规避网络异常,需要紧急修改设备配置,但此时另外一个客户端锁定了配置数据区,正在执行某个低优先级的操作,导致前者所需执行的紧急任务无法及时完成的问题。
[0144]
本发明实施例的客户端至少包括第一客户端和第二客户端,当所述参数表明锁定消息为具有锁定抢占能力的消息时,所述参数还包含优先级参数,所述根据所述参数对候选数据区进行锁定和后续解锁,如图5所示,具体包括:
[0145]
步骤501:服务端解析第一客户端的锁定消息,所述优先级参数为第一优先级。
[0146]
本发明实施例的客户端(至少包含有第一客户端和第二客户端)与服务端在完成锁定能力协商后,如果客户端和服务端均支持锁定抢占的锁定能力,就可以实现锁定抢占的能力。客户端向服务端发送锁定消息,请求服务端锁定候选数据区,并且,该锁定消息内携带有优先级参数。服务端对第一客户端发送的锁定消息进行解析,根据锁定消息内所携带的优先级参数,就可以知晓第一客户端对应的第一优先级。
[0147]
步骤502:当候选数据区被第一客户端锁定时,服务端又接收到来自于第二客户端的锁定消息,所述优先级参数为第二优先级。
[0148]
服务端根据第一客户端发送的锁定消息,对候选数据区进行锁定;在候选数据区被锁定,并且,第一客户端未完成配置之前的过程中,若服务端又接收到来自第二客户端的锁定消息,则通过服务端解析第二客户端所发送的锁定消息,得到第二客户端对应的第二优先级。值得说明的是,本发明实施例在实现锁定抢占的锁定能力之前,需要对所有的客户端的优先级提前进行设置,并且,客户端发送锁定消息时,可以携带有其所对应的锁定优先级。
[0149]
步骤503:根据第一优先级和第二优先级,确定候选数据区的锁定权限。
[0150]
本发明实施例通过比对第一优先级和第二优先级,进而判定候选数据区的锁定权限。
[0151]
步骤504:若第一优先级不小于第二优先级,所述锁定权限继续归属于所述第一客户端,向所述第二客户端发送锁定失败的消息。
[0152]
若第一优先级大于等于第二优先级,则说明第一客户端的优先级高于或等于第二客户端的优先级,候选数据区的锁定权限仍归属于第一客户端,此时服务端判定第二客户端锁定失败,并向第二客户端发送锁定失败的消息。
[0153]
步骤505:若第一优先级小于第二优先级,服务端解锁候选数据区,将所述锁定权限移交给第二客户端,清除第一客户端未提交的配置数据,并向所述第一客户端发送锁候选数据区被其他客户端抢占的反馈消息。
[0154]
若第一优先级小于第二优先级,则说明第一客户端的优先级低于第二客户端的优先级,服务端判定第二客户端锁定成功,并解锁候选数据区,将锁定权限移交给第二客户端,并清除第一客户端的配置数据,并向第一客户端发送候选数据区被第二客户端抢占的反馈消息,然后服务端根据第二客户端的锁定消息,对候选数据区进行锁定,执行对于第二客户端的配置过程。
[0155]
当所述若第一优先级不小于第二优先级,所述锁定权限继续归属于所述第一客户端,之后还包括对于候选数据区的解锁过程,对于候选数据区的解锁存在两种方式,如图6所示,对于候选数据区的第一种解锁方式具体为:
[0156]
步骤601:将第一客户端的配置数据写入候选数据区。
[0157]
步骤602:在接收到第一客户端的提交配置消息后,将所述配置数据复制到运行数据区。
[0158]
步骤603:在接收来到第一客户端的解锁请求消息后,对所述候选数据区进行解锁。
[0159]
对于候选数据区还包括第二种解锁方法,所述参数表明所述锁定消息为还具有提交后解锁能力的消息时,所述若第一优先级不小于第二优先级,所述锁定权限继续归属于
所述第一客户端,之后还包括,如图7所示,具体为:
[0160]
步骤701:将第一客户端的配置数据写入候选数据区;
[0161]
步骤702:在接收到第一客户端的提交配置消息后,将所述配置数据复制到运行数据区,配置生效后,直接解锁候选数据区。
[0162]
本发明实施例对于候选数据区的第一种解锁方式和第二种解锁方式在实施例2的步骤304中已经详细的进行了阐述,在此不做赘述。
[0163]
接下来详细的说明本发明实施例服务端与客户端之间实现锁定抢占功能的过程,客户端和服务端在完成锁定能力协商后,如果服务端和客户端均支持锁定抢占能力,则可按照如图8所示,实现锁定抢占功能。
[0164]
步骤801,第一客户端向服务端发送消息,锁定候选数据区,锁定优先级为x,在此以x为10为例进行解释说明,消息内容和格式示例如下:
[0165][0166][0167]
步骤802,服务端锁定候选数据区。
[0168]
步骤803,第二客户端向服务端发送消息,锁定候选数据区,锁定优先级为y,在此y为8为例进行解释说明。
[0169]
步骤804,由于第二客户端的锁定优先级小于第一客户端,服务端判定第二客户端锁定失败。
[0170]
步骤805,服务端向第二客户端发送消息,通知锁定失败,数据区已被其他客户端锁定。
[0171]
步骤806,第二客户端向服务端发送消息,锁定候选数据区,锁定优先级为z,在此z为15为例进行解释说明。
[0172]
步骤807,由于第二客户端的锁定优先级大于第一客户端,服务端判定第二客户端锁定成功,将候选数据区锁定权限移交给第二客户端,并清除第一客户端为提交的配置数据。
[0173]
步骤808,服务端向第二客户端发送消息,通知锁定成功。
[0174]
步骤809,服务端向第一客户端发送消息,通知由于高优先级客户端抢占,锁定解除。
[0175]
本发明实施例3通过扩展netconf协议标准定义的锁定和解锁操作,使得本发明实施例的客户端和服务端双方均支持锁定抢占的锁定能力。通过锁定抢占,允许需要紧急操作设备的客户端优先获得配置数据区锁定权限,保障紧急任务被优先执行。
[0176]
实施例4:
[0177]
本发明实施例3在实施例1的基础上,重点阐述当所述参数表明锁定消息为具有提交后解锁能力的消息时,如何解决在候选数据区被某个客户端锁定的情况下,其他客户端无法编辑,而且不知道何时解锁,需要不断重复尝试锁定操作,进而产生额外的等待时间和处理开销的问题。
[0178]
本发明实施例的客户端与服务端在完成锁定能力协商后,如果客户端和服务端均支撑提交后解锁能力,就可以实现提交后解锁功能。客户端向服务端发送锁定消息,服务端解析锁定消息得到对应的参数,当所述参数表明锁定消息为具有提交后解锁能力的消息时,所述根据所述参数对候选数据区进行锁定和后续解锁,如图9所示,具体包括:
[0179]
步骤901:接收来自客户端的配置数据,将配置数据写入候选数据区。
[0180]
服务端接收来自客户端的配置数据,并将配置写入候选数据区内。
[0181]
步骤902:在接收到客户端的提交配置消息后,将所述配置数据复制到运行数据区,配置生效后,直接解锁候选数据区。
[0182]
服务端接收到客户端的提交配置消息后,将配置数据复制到运行数据区,配置生效,直接解锁候选配置区,服务端并向客户端发送消息,通知客户端候选数据区已经解锁。
[0183]
接下来详细的说明本发明实施例服务端与客户端之间实现提交后解锁的功能过程,客户端和服务端在完成锁定能力协商后,如果客户端和服务端均支持提交后解锁能力,则可按照如图10所示,实现提交后解锁功能。
[0184]
步骤1001,客户端向服务端发送消息,锁定候选数据区,锁定消息携带提交后解锁参数,消息内容和格式示例如下:
[0185][0186]
步骤1002,服务端锁定候选数据区。
[0187]
步骤1003,客户端向服务端发送消息,编辑候选数据区。
[0188]
步骤1004,服务端将配置数据写入候选数据区。
[0189]
步骤1005,客户端向服务端发送消息,提交配置。
[0190]
步骤1006,服务端将配置数据复制到运行数据区,配置生效。
[0191]
步骤1007,服务端自动解锁候选数据区。
[0192]
步骤1008,服务端向客户端发送消息,通知候选数据区已解锁。
[0193]
本发明实施例4通过扩展netconf协议标准定义的锁定和解锁操作,使得本发明实施例的客户端和服务端双方均支持提交后解锁的锁定能力。通过提交后解锁功能,允许服务端在客户端提交配置成功后自动解锁候选数据区,从而减少等待解锁消息的时间开销,提高了效率。
[0194]
实施例5:
[0195]
本发明实施例5在实施例1的基础上,通过扩展netconf协议标准定义的锁定和解锁操作,使得本发明实施例的客户端和服务端均支持锁定附加配置的锁定能力,进而解决了即使多个客户端待编辑的配置数据内容不同,而且在配置数据区中不存在语法和业务层面的冲突,依然只能串行执行配置操作,效率不高的问题。
[0196]
本发明实施例的客户端至少包括第一客户端和第二客户端,当候选数据区被第一客户端锁定,服务端又接收到来自第二客户端的锁定消息,且所述参数表明锁定消息为具有锁定附加配置能力的消息时,所述参数还保包含第二客户端的配置数据,如图11所示,所述多客户端并发配置的方法还包括:
[0197]
步骤1101:将第二客户端的配置数据进行缓存,向第二客户端发送等待锁定的消息。
[0198]
所述服务端对第二客户端的锁定消息进行解析,得到第二客户端的配置数据。第二客户端的配置数据包含在其发送的锁定消息中,具体参考步骤1205锁定消息中《config》和《/config》标签之间的内容。其中,本发明实施例的第二客户端向服务端发送锁定消息,服务端接收锁定消息,并对锁定消息进行解析,相应的锁定消息内附带有第二客户端的配置数据,服务端通过解析锁定消息,就可以获取第二客户端的配置数据。
[0199]
服务端获取了第二客户端的配置数据后,服务端将第二客户端的配置数据进缓存在服务端内,并向客户端发送配置已缓存,等待锁定的消息。值得说明的是,由于此时第一客户端正在占据候选数据区,进行配置,并且第一客户端未接触对于候选数据区的锁定,此时服务端将第二客户端的配置数据缓存的位置为服务端内部,但并非候选数据区。
[0200]
步骤1102:在第一客户端解除对候选数据区的锁定之后,判断所述第二客户端的配置数据和候选数据区内的最新配置数据是否冲突。
[0201]
由于第一客户端进行配置的过程中,已经对候选数据区进行相应的编辑,因此当第一客户端解除对候选数据区的锁定之后,将第二客户端的配置数据做冲突验证,进而判定所述第二客户端的配置数据和候选数据区内的最新配置数据是否冲突。若存在冲突,即使第一客户端接触对候选数据区的锁定以后,第二客户端也可能无法进行正常的配置。例如,假定在第一客户端配置的过程中,需要删掉了a文件,然而第二客户端配置时,需要有a文件才能完成正常的配置;在第一客户端解除对候选数据区的锁定之后,此时候选数据区为的最新配置数据,即已经写入了第一客户端的配置数据,候选数据区内已经删除了a文件,当需要将缓存的第二客户端的配置数据存入候选数据区时,由于缺乏a文件,使得因缺乏a文件造成存在冲突,无法将缓存的第二客户端的配置文件存入候选数据区内。
[0202]
步骤1103:若存在冲突,清除已缓存的配置数据,向第二客户端发送锁定失败的消息。
[0203]
其中,当存在冲突时,服务端清除已经缓存的配置数据,并向第二客户端发送锁定失败的消息,告知第二客户端锁定失败。
[0204]
步骤1104:若不存在冲突,将已缓存的配置数据存入候选数据区内,将锁定权限移交至第二客户端,并向第二客户端发送锁定成功的消息。
[0205]
其中,若不存在冲突,就将已缓存的配置文件存入候选数据区内,锁定权限移交至第二客户端,并向第二客户端发送锁定成功的消息。本发明实施例在第一客户端配置的过程中,通过提前将第二客户端缓存的配置数据存入服务端内(非候选数据区),第一客户端解除对候选数据区的锁定之后,将缓存的配置数据做冲突校验,若无冲突就将缓存的数据直接存入候选数据区内,进而节省了将配置数据逐一写入候选数据的时间。
[0206]
接下来详细的说明本发明实施例服务端与客户端之间实现锁定附加配置功能的过程,客户端和服务端在完成锁定能力协商后,如果服务端和客户端均支持锁定附加配置能力,则可按照如图12所示,实现锁定附加配置功能。
[0207]
步骤1201,第一客户端向服务端发送消息,锁定候选数据区。
[0208]
步骤1202,服务端锁定候选数据区。
[0209]
步骤1203,第一客户端向服务端发送消息,编辑和提交配置。
[0210]
步骤1204,服务端处理第一客户端的编辑和提交配置操作。
[0211]
步骤1205,第二客户端向服务端发送消息,锁定候选数据区,锁定消息附带配置数据,消息内容和格式示例如下:
[0212][0213]
步骤1206,服务端缓存第二客户端的配置数据。
[0214]
步骤1207,服务端向第二客户端发送消息,通知配置数据已缓存,等待锁定。
[0215]
步骤1208,第一客户端向服务端发送消息,解锁候选数据区。
[0216]
步骤1209,服务端解锁候选数据区,并检查缓存第二客户端的配置数据是否和最新配置数据冲突。
[0217]
步骤1210-1211为锁定失败流程。
[0218]
步骤1210,数据冲突,锁定失败,服务端清除缓存配置数据。
[0219]
步骤1211,服务端向客户端发送消息,通知锁定失败。
[0220]
步骤1212-1216为锁定成功流程。
[0221]
步骤1212,无数据冲突,服务端将候选数据区权限移交给第二客户端,并将步骤1207中缓存的配置数据写入候选数据区。
[0222]
步骤1213,服务端向第二客户端发送消息,通知锁定成功。
[0223]
步骤1214,第二客户端向服务端发送消息,提交配置。
[0224]
步骤1215,服务端处理提交配置操作。
[0225]
步骤1216,第二客户端向服务端发送消息,解锁候选数据区。
[0226]
本发明实施例5通过扩展netconf协议标准定义的锁定和解锁操作,使得本发明实施例的客户端和服务端双方均支持锁定附加配置的锁定能力。允许客户端在锁定消息中附加配置数据,减少消息交互次数;在候选数据区已被第一客户端锁定的情况下,对第二客户端内的数据进行缓存,第一客户端解除对候选数据区的锁定之后,将缓存的配置数据做冲突校验,若无冲突就将缓存的数据直接存入候选数据区内,进而节省了将配置数据逐一写入候选数据的时间,且无需在等待过程中反复轮询配置数据区锁定状态。
[0227]
本发明实施例所述将锁定权限移交至第二客户端,并向第二客户端发送锁定成功的消息,之后还包括将锁定权限移交到第二客户端,并根据第二客户端所发送的锁定消息对候选数据区进行解锁。当第二客户端获取对于候选数据区的锁定权限后,所述对于候选数据区的解锁具体包括一下三种方式:第一种,在接收到第二客户端的提交配置消息后,将所述配置数据复制到运行数据区,在接收到第二客户端的解锁请求消息后,对所述候选数据区进行解锁;第二种,对应的第二客户端和服务端均具有提交后解锁的锁定功能,所述第二客户端的锁定消息中携带有提交后解锁的参数,所述将锁定权限移交至第二客户端,并向第二客户端发送锁定成功的消息之后,第二客户端的提交配置消息后,将所述配置数据复制到运行数据区,配置生效后,直接解锁候选数据区;第三种,客户端和所述服务端均具有超时后解锁的锁定能力,所述第二客户端的锁定消息中携带有超时时间参数的参数,所述将锁定权限移交至第二客户端,并向第二客户端发送锁定成功的消息之后,服务端根据接收的锁定消息进行解析,获取超时时间参数,启动锁定定时器;实时获取锁定定时器的定时值;若所述定时值大于所述超时时间参数,则对候选数据区进行解锁;若在定时超时之前接收到所述第二客户端的提交配置消息,则将所述配置数据复制到运行数据区,并解锁候选数据区,停止定时器计时。
[0228]
实施例6:
[0229]
本发明实施例6还提出了一种多客户端并发配置的方法,如图13所示,包括:
[0230]
步骤1301:客户端向服务端发送第一协商消息,以便于服务端基于第一协商消息确定所述客户端所具有的锁定能力。
[0231]
步骤1302:接收来自服务端发送的第二协商消息,根据所述第二协商消息确定服务端所具有的锁定能力。
[0232]
步骤1303:客户端向服务端发送锁定消息,其中,所述锁定消息中携带有所述服务端所能支持的参数,以便于服务端根据所述参数对候选数据区进行锁定和后续解锁。
[0233]
本发明实施例6对于1301-1303步骤基本与实施例1相同,不同的是,实施例1的执行主体为服务端,本发明实施例6的执行主体为客户端。本发明通过扩展协议标准定义的锁定和解锁操作,使得服务端和客户端分别具有锁定能力,进而完成锁定能力的协商,在解锁消息中携带参数,可以依据参数进行解锁,避免了由于软件或网络故障等原因,客户端未发送解锁消息或解锁消息未被送达服务端,导致服务端配置数据区锁定状态无法解除的问题,保证其他客户端可以配置设备。
[0234]
进一步的,本发明通过对客户端的锁定消息进行解析得到参数,通过参数表明发送锁定消息对应的客户端具有锁定超时能力、锁定抢占能力、提交后解锁能力、锁定附加配置能力。通过锁定超时能力,避免某个客户端长期锁定数据区,导致其他客户端无法配置设备;通过锁定抢占能力,允许需要紧急操作设备的客户端优先获得配置数据区锁定权限,保障紧急任务被优先执行;通过提交后解锁能力,允许服务端在客户端提交配置成功后自动解锁配置数据区,减少等待解锁消息的时间开销;通过锁定附加配置能力,允许客户端在锁定消息中附加配置数据,减少消息交互次数;在配置数据区已被锁定的情况下,减少客户端等待数据区解锁的时间,且无需在等待过程中反复轮询配置数据区锁定状态。
[0235]
实施例7:
[0236]
如图14所示,是本发明实施例的装置的架构示意图。本实施例的装置包括一个或多个处理器21以及存储器22。其中,图14中以一个处理器21为例。
[0237]
处理器21和存储器22可以通过总线或者其他方式连接,图14中以通过总线连接为例。
[0238]
存储器22作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序和非易失性计算机可执行程序,。处理器21通过运行存储在存储器22中的非易失性软件程序和指令,从而执行多客户端并发配置的方法。
[0239]
当处理器执行如实施例1-5中的多客户端并发配置的方法时,该装置为服务端;当处理器执行如实施例6中的多客户端并发配置的方法时,该装置为客户端。
[0240]
存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器22可选包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0241]
所述程序指令/模块存储在所述存储器22中,当被所述一个或者多个处理器21执行时,执行上述实施例1-5中的多客户端并发配置的方法或执行上述实施例6中的多客户端并发配置的方法,例如,执行以上描述的图1-12所示的各个步骤。
[0242]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

技术特征:
1.一种多客户端并发配置的方法,其特征在于,包括:服务端接收来自于客户端的第一协商消息,根据所述第一协商消息确定客户端所具有的锁定能力;向客户端发送第二协商消息,以便于客户端基于第二协商消息确定所述服务端所具有的锁定能力,进而根据所述服务端所具有的锁定能力发送相应的锁定消息;接收客户端的锁定消息,对所述锁定消息进行解析得到参数,根据所述参数对候选数据区进行锁定和后续解锁。2.根据权利要求1所述的多客户端并发配置的方法,其特征在于,当所述参数表明锁定消息为具有锁定超时能力的消息时,所述参数还包含超时时间参数,所述根据所述参数对候选数据区进行锁定和后续解锁,具体包括:启动锁定定时器;实时获取锁定定时器的定时值;若所述定时值大于所述超时时间参数,则对候选数据区进行解锁;若在定时超时之前接收到所述客户端的提交配置消息,则将所述配置数据复制到运行数据区,并解锁候选数据区,停止定时器计时。3.根据权利要求1所述的多客户端并发配置的方法,其特征在于,当所述参数表明锁定消息为具有提交后解锁能力的消息时,所述根据所述参数对候选数据区进行锁定和后续解锁,具体包括:接收来自客户端的配置数据,将配置数据写入候选数据区;在接收到客户端的提交配置消息后,将所述配置数据复制到运行数据区,配置生效后,直接解锁候选数据区。4.根据权利要求1所述的多客户端并发配置的方法,其特征在于,客户端至少包括第一客户端和第二客户端,当所述参数表明锁定消息为具有锁定抢占能力的消息时,所述参数还包含优先级参数,所述根据所述参数对候选数据区进行锁定和后续解锁,具体包括:服务端解析所述第一客户端的锁定消息,所述优先级参数为第一优先级;当候选数据区被所述第一客户端锁定时,服务端又接收到来自于所述第二客户端的锁定消息,所述优先级参数为第二优先级;根据第一优先级和第二优先级,确定候选数据区的锁定权限;若第一优先级不小于第二优先级,所述锁定权限继续归属于所述第一客户端,向所述第二客户端发送锁定失败的消息;若第一优先级小于第二优先级,服务端解锁候选数据区,将所述锁定权限移交给第二客户端,清除第一客户端未提交的配置数据,并向所述第一客户端发送锁候选数据区被其他客户端抢占的反馈消息。5.根据权利要求4所述的多客户端并发配置的方法,其特征在于,所述若第一优先级不小于第二优先级,所述锁定权限继续归属于所述第一客户端,之后还包括:将第一客户端的配置数据写入候选数据区;在接收到第一客户端的提交配置消息后,将所述配置数据复制到运行数据区;在接收来到第一客户端的解锁请求消息后,对所述候选数据区进行解锁;或,
当所述第一客户端的所述参数表明所述锁定消息为还具有提交后解锁能力的消息时:将第一客户端的配置数据写入候选数据区;在接收到第一客户端的提交配置消息后,将所述配置数据复制到运行数据区,配置生效后,直接解锁候选数据区;或,当所述第一客户端的所述参数表明所述锁定消息为还具有锁定超时能力的消息时,所述参数还包括超时时间参数:启动锁定定时器;实时获取锁定定时器的定时值;若所述定时值大于所述超时时间参数,则对候选数据区进行解锁;若在定时超时之前接收到所述第一客户端的提交配置消息,则将所述配置数据复制到运行数据区,并解锁候选数据区,停止定时器计时。6.根据权利要求1所述的多客户端并发配置的方法,其特征在于,客户端至少包括第一客户端和第二客户端,当候选数据区被第一客户端锁定,服务端又接收到来自第二客户端的锁定消息,且所述参数表明锁定消息为具有锁定附加配置能力的消息时,所述参数还保包含第二客户端的配置数据,所述多客户端并发配置的方法还包括:将第二客户端的配置数据进行缓存,向第二客户端发送等待锁定的消息;在第一客户端解除对候选数据区的锁定之后,判断所述第二客户端的配置数据和候选数据区内的最新配置数据是否冲突;若存在冲突,清除已缓存的配置数据,向第二客户端发送锁定失败的消息;若不存在冲突,将已缓存的配置数据存入候选数据区内,将锁定权限移交至第二客户端,并向第二客户端发送锁定成功的消息。7.根据权利要求6所述的多客户端并发配置的方法,其特征在于,所述将锁定权限移交至第二客户端,并向第二客户端发送锁定成功的消息,之后还包括:在接收到第二客户端的提交配置消息后,将所述配置数据复制到运行数据区;在接收到第二客户端的解锁请求消息后,对所述候选数据区进行解锁;或,当所述第二客户端的所述参数表明锁定消息为还具有提交后解锁能力的消息时,所述将锁定权限移交至第二客户端,并向第二客户端发送锁定成功的消息,之后还包括:在接收到第二客户端的提交配置消息后,将所述配置数据复制到运行数据区,配置生效后,直接解锁候选数据区;或,当所述第二客户端的所述参数表明锁定消息为还具有锁定超时能力的消息时,所述参数还包括超时时间参数,所述将锁定权限移交至第二客户端,并向第二客户端发送锁定成功的消息,之后还包括:启动锁定定时器;实时获取锁定定时器的定时值;若所述定时值大于所述超时时间参数,则对候选数据区进行解锁;若在定时超时之前接收到所述第二客户端的提交配置消息,则将所述配置数据复制到
运行数据区,并解锁候选数据区,停止定时器计时。8.一种服务端,其特征在于,包括:至少一个处理器;至少一个存储器;其中,所述至少一个处理器以及所述至少一个存储器相互通信连接,所述至少一个存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7任一项所述的多客户端并发配置的方法。9.一种多客户端并发配置的方法,其特征在于,包括:客户端向服务端发送第一协商消息,以便于服务端基于第一协商消息确定所述客户端所具有的锁定能力;接收来自服务端发送的第二协商消息,根据所述第二协商消息确定服务端所具有的锁定能力;客户端向服务端发送锁定消息,其中,所述锁定消息中携带有所述服务端所能支持的参数,以便于服务端根据所述参数对候选数据区进行锁定和后续解锁。10.一种客户端,其特征在于,包括:至少一个处理器;至少一个存储器;其中,所述至少一个处理器以及所述至少一个存储器相互通信连接,所述至少一个存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求9所述的多客户端并发配置的方法。

技术总结
本发明涉及客户端配置技术领域,提供了一种多客户端并发配置的方法、服务端和客户端,方法包括服务端接收来自于客户端的第一协商消息,根据第一协商消息确定客户端的锁定能力;向客户端发送第二协商消息,以便客户端基于第二协商消息确定服务端的锁定能力,根据服务端发送的锁定消息;接收客户端的锁定消息,对所述锁定消息解析得到参数,根据参数对候选数据区锁定和后续解锁。本发明通过扩展协议标准定义的锁定和解锁操作,使服务端和客户端具有锁定能力,使得依据参数进行解锁,避免软件或网络故障,客户端未发送解锁消息或解锁消息未被送达服务端,导致候选数据区无法解锁的问题,保证其他客户端可以配置设备。保证其他客户端可以配置设备。保证其他客户端可以配置设备。


技术研发人员:梁凡 王新柱
受保护的技术使用者:烽火通信科技股份有限公司
技术研发日:2023.06.02
技术公布日:2023/8/13
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐