发明内容
本发明实施例提供了一种集群时间同步方法、集群及时间同步系统,以快速实现集群内时间同步。
第一方面,本发明实施例提供了一种集群时间同步方法,在所述集群中选择至少一个节点配置为服务端节点,其他节点配置为客户端节点,根据各个服务端节点的地址为客户端节点配置时间同步地址;所述方法还包括:
服务端节点向外部的时间服务器发送第一同步请求,并接收所述时间服务器发送的标准时间;
服务端节点根据所述标准时间对自身时钟进行同步;
客户端节点根据配置的时间同步地址,向服务端节点发送第二同步请求;
服务端节点根据接收到的所述第二同步请求,向相应客户端节点反馈自身时钟对应的当前时间;
客户端节点根据服务端节点反馈的当前时间进行时间同步。
优选地,所述服务端节点包括:至少两个节点;
进一步包括:将所述服务端节点中的一个节点配置为主服务节点,将所述服务端节点中除所述主服务节点之外的其他节点配置为备服务节点;
所述服务端节点向外部的时间服务器发送第一同步请求,并接收所述时间服务器发送的标准时间,包括:利用所述主服务节点执行所述向所述时间服务器发送所述第一同步请求,并接收所述时间服务器发送的标准时间的操作;
所述客户端节点根据配置的时间同步地址,向服务端节点发送第二同步请求,包括:所述客户端节点根据配置的时间同步地址,向所述主服务节点发送所述第二同步请求;
进一步包括:所述备服务节点向所述主服务节点发送第三同步请求;所述主服务节点根据所述第三同步请求,向所述备服务节点发送自身时钟对应的当前时间;所述备服务节点根据所述主服务节点发送的当前时间进行时间同步。
优选地,
进一步包括:在各个备服务节点中配置第一时间阈值和主服务节点的接管顺序;
进一步包括:各个备服务节点在向主服务节点发送了所述第三同步请求之后,在到达所述第一时间阈值时,未接收到主服务节点的反馈信息,则根据所述主服务节点的接管顺序,用于接管该主服务节点的备服务节点接管该主服务节点,其他备服务节点将该用于接管该主服务节点的备服务节点作为时间同步的主服务节点。
优选地,
进一步包括:在各个客户端节点中配置第二时间阈值;
所述根据各个服务端节点的地址为客户端节点配置时间同步地址,包括:将所述主服务节点的接管顺序作为时间同步地址的配置顺序,为各个客户端节点配置时间同步地址;
进一步包括:在所述客户端节点向所述主服务节点发送了所述第二同步请求之后,在到达第二时间阈值时,未收到所述主服务节点的反馈信息时,则确定所述主服务节点故障;根据时间同步地址的配置顺序,将位于所述主服务节点地址下一个位置的地址对应的备服务节点作为时间同步的主服务节点。
第二方面,本发明实施例还提供了一种集群,包括:
配置单元,用于在所述集群中选择至少一个节点配置为服务端节点,其他节点配置为客户端节点,根据各个服务端节点的地址为客户端节点配置时间同步地址;
服务端节点,用于向外部的时间服务器发送第一同步请求,并接收所述时间服务器发送的标准时间;根据所述标准时间对自身的时钟进行同步;接收客户端节点发送的第二同步请求,并根据所述第二同步请求,向相应客户端节点反馈自身时钟对应的当前时间;
客户端节点,用于根据配置的时间同步地址,向服务端节点发送第二同步请求;根据服务端节点反馈的当前时间进行时间同步。
优选地,
所述服务端节点包括:至少两个节点;
所述配置节点,进一步用于将所述服务端节点中的一个节点配置为主服务节点,将所述服务端节点中除所述主服务节点之外的其他节点配置为备服务节点;
所述主服务节点,用于执行所述向外部的时间服务器发送第一同步请求,并接收所述时间服务器发送的标准时间;根据所述标准时间对自身的时钟进行同步;接收客户端节点发送的第二同步请求,并根据所述第二同步请求,向相应客户端节点反馈自身时钟对应的当前时间;
所述主服务节点,进一步用于接收所述备服务节点发送的第三同步请求,并向所述备服务节点发送自身时钟对应的当前时间;
所述客户端节点,具体用于向所述主服务节点发送所述第二同步请求;
所述备服务节点,用于向所述主服务节点发送第三同步请求;并根据所述主服务节点反馈的当前时间进行时间同步。
优选地,
所述配置单元,进一步用于在各个备服务节点中配置第一时间阈值和主服务节点的接管顺序;
各个备服务节点,进一步用于在向主服务节点发送了所述第三同步请求之后,在到达所述第一时间阈值时,未接收到主服务节点的反馈信息,则根据所述主服务节点的接管顺序,用于接管该主服务节点的备服务节点接管该主服务节点,其他备服务节点将该用于接管该主服务节点的备服务节点作为时间同步的主服务节点。
优选地,
所述配置单元,进一步用于在各个客户端节点中配置第二时间阈值;
所述配置单元,具体用于将所述主服务节点的接管顺序作为时间同步地址的配置顺序,为各个客户端节点配置时间同步地址;
所述客户端节点,进一步用于在所述客户端节点向所述主服务节点发送了所述第二同步请求之后,在到达第二时间阈值时,未收到所述主服务节点的反馈信息时,则确定所述主服务节点故障;根据时间同步地址的配置顺序,将位于所述主服务节点地址下一个位置的地址对应的备服务节点作为时间同步的主服务节点。
第三方面,本发明实施例还提供了一种时间同步系统,包括:时间服务器和上述任一所述集群;其中,
所述时间服务器,用于接收所述集群中服务端节点发送的所述第一同步请求,并根据所述第一同步请求反馈标准时间。
本发明实施例提供了一种集群时间同步方法、集群及时间同步系统,通过在集群中选择至少一个节点配置为服务端节点,其他节点配置为客户端节点,并根据各个服务端节点的地址为客户端节点配置为时间同步地址,由服务端节点向外部的时间服务器发送第一同步请求,以实现服务端节点与标准时间的同步,集群内的客户端节点通过向服务端节点发送第二同步请求,以实现与服务端节点的时间同步,从而实现了集群内各个节点时间的自动同步,提高了时间同步的效率。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种集群时间同步方法,该方法可以包括以下步骤:
步骤101:在所述集群中选择至少一个节点配置为服务端节点,其他节点配置为客户端节点,根据各个服务端节点的地址为客户端节点配置时间同步地址;
步骤102:服务端节点向外部的时间服务器发送第一同步请求,并接收所述时间服务器发送的标准时间;
步骤103:服务端节点根据所述标准时间对自身的时钟进行同步;
步骤104:客户端节点根据配置的时间同步地址,向服务端节点发送第二同步请求;
步骤105:服务端节点根据接收到的所述第二同步请求,向相应客户端节点反馈自身时钟对应的当前时间;
步骤106:客户端节点根据服务端节点反馈的当前时间进行时间同步。
根据上述方案,通过在集群中选择至少一个节点配置为服务端节点,其他节点配置为客户端节点,并根据各个服务端节点的地址为客户端节点配置为时间同步地址,由服务端节点向外部的时间服务器发送第一同步请求,以实现服务端节点与标准时间的同步,集群内的客户端节点通过向服务端节点发送第二同步请求,以实现与服务端节点的时间同步,从而实现了集群内各个节点时间的自动同步,提高了时间同步的效率。
在本发明一个实施例中,在配置一个服务端节点的情况下,若该服务端节点发生了故障,那么集群时间同步则无法实现,因此,为了保证在服务端节点故障时,集群依然可以实现时间同步,那么所述服务端节点可以包括:至少两个节点。例如,配置两个服务端节点。
进一步包括:将所述服务端节点中的一个节点配置为主服务节点,将所述服务端节点中除所述主服务节点之外的其他节点配置为备服务节点;以使主服务节点故障时,由备服务节点接管主服务节点,以实现集群的时间同步。
其中,与外部的时间服务器之间进行标准时间的同步,是由主服务节点来实现。
所述客户端节点通过向所述主服务节点发送所述第二同步请求,以实现集群内节点的时间同步。
在主服务节点正常时,备服务节点可以看作是客户端节点,因此,所述备服务节点向所述主服务节点发送第三同步请求;所述主服务节点根据所述第三同步请求,向所述备服务节点发送自身时钟对应的当前时间;所述备服务节点根据所述主服务节点发送的当前时间进行时间同步。
在本发明一个实施例中,当服务端节点包括至少两个时,对于备服务节点是由哪一个来接管当前的主服务节点,需要对各个备服务节点进行进一步配置:在各个备服务节点中配置第一时间阈值和主服务节点的接管顺序。例如,该主服务节点的接管顺序为:主服务节点-备服务节点1-备服务节点2-备服务节点3-……。其中,该第一时间阈值可以为3s。
进一步包括:各个备服务节点在向主服务节点发送了所述第三同步请求之后,在到达所述第一时间阈值时,未接收到主服务节点的反馈信息,则根据所述主服务节点的接管顺序,用于接管该主服务节点的备服务节点接管该主服务节点,其他备服务节点将该用于接管该主服务节点的备服务节点作为时间同步的主服务节点。例如,用于接管该主服务节点的备服务节点为备服务节点1。
在本发明一个实施例中,若主服务节点发生了切换,那么客户端节点也需要向切换后的主服务节点进行时间同步,因此,可以进一步包括:在各个客户端节点中配置第二时间阈值;例如,该第二时间阈值为3s。
其中,在为各个客户端节点配置时间同步地址时,可以将所述主服务节点的接管顺序作为时间同步地址的配置顺序,为各个客户端节点配置时间同步地址;该配置顺序为:主服务节点的地址-备服务节点1的地址-备服务节点2的地址-备服务节点3的地址-……。
进一步包括:在所述客户端节点向所述主服务节点发送了所述第二同步请求之后,在到达第二时间阈值时,未收到所述主服务节点的反馈信息时,则确定所述主服务节点故障;根据时间同步地址的配置顺序,将位于所述主服务节点地址下一个位置的地址对应的备服务节点作为时间同步的主服务节点。例如,该位于主服务节点地址下一个位置的地址对应的备服务节点为备服务节点1,那么各个客户端节点将备服务节点1作为主服务节点进行时间同步。
在时间服务器发生了故障,以至于无法为服务端节点提供标准时间时,服务端节点可以将自身时钟对应的时间作为标准时间,并将自身时钟对应的时间提供给各个客户端节点进行时间同步,以保证集群内各个节点的时间同步,防止由于集群内节点时间不同步造成的数据混乱问题。
在集群内服务端节点的个数不同时,集群实现时间同步的方式也可以不同,其中,集群内服务端节点的个数可以包括如下两种情况:
情况A、一个服务端节点。
情况B、至少两个服务端节点。
下面针对上述情况A和情况B,分别对集群时间同步方式进行说明。
针对情况A:
在情况A下,在集群中选择一个节点将其配置为服务端节点,其他节点均配置为客户端节点。请参考图2,为时间同步系统示意图。
其中,服务端节点的选择方式可以是随机选择。
在情况A下,需要对集群中的节点进行如下配置:
1、对集群中各个节点的配置。
在集群的各个节点中均安装部署NTP(Network Time Protocol,网络时间协议)组件,用于实现集群中各个节点的时间同步。
2、对服务端节点的配置。
在服务端节点中配置ntp.conf文件,在该ntp.conf文件中包括外部的时间服务器的地址和时间同步间隔1。例如,该时间同步间隔1为1个小时。在集群处于外网状态时,服务端节点可以每隔1个小时,根据该地址向外部的时间服务器请求一次时间同步。
在服务端节点中进一步配置fudge属性和server属性,用于实现在集群中不存在外网的情况下,服务端节点无需重复性的向外部的时间服务器请求时间同步,其中,在配置的fudge属性和server属性中可以配置重试次数,以及重试时间阈值。
例如,重试时间阈值为3s,重试次数为3次。那么在服务端节点向外部的时间服务器发送同步请求之后经过3s未接收到反馈信息,则进行下一次重试。在服务端节点重试三次向外部的时间服务器请求时间同步,均未收到反馈的标准时间,那么确定集群内不存在外网。
在集群内不存在外网的情况下,服务端节点根据配置的fudge属性和server属性,将自身的时间作为标准时间提供给客户端节点,以实现时间同步。
3、对客户端节点的配置。
在客户端节点中配置时间同步地址以及时间同步间隔2,其中,该时间同步间隔2可以与时间同步间隔1相同,也可以不同,例如,该时间同步间隔2为1个小时。该时间同步地址为服务端节点的地址,客户端节点根据配置的该地址向服务端节点请求时间同步。
在情况A下,图2所示的时间同步系统所实现的时间同步方式请参考图3,可以包括如下步骤:
步骤301:服务端节点根据配置的时间同步间隔1和地址,向外部的时间服务器发送同步请求。
步骤302:判断在设定的重试时间阈值内是否接收到外部的时间服务器反馈的标准时间,若未接收到,执行步骤303;若接收到,执行步骤304。
步骤303:判断是否超过设定的重试次数,若超过,则执行步骤305;若未超过,则执行步骤301。
步骤304:服务端节点根据标准时间对自身时钟进行同步,并执行步骤305。
在本实施例中,若服务端节点自身时钟的时间与标准时间相同,则可以不对自身时钟进行同步;若服务端节点自身时钟的时间与标准时间不相同,那么需要根据标准时间对自身时钟进行同步。
例如,服务端节点自身时钟的时间为12:01:03,外部的时间服务器反馈的标准时间为12:00:00,那么服务端节点需要将自身时钟同步为12:00:00。
步骤305:各个客户端节点根据配置的时间间隔2和地址,向服务端节点发送同步请求。
步骤306:服务端节点根据各个同步请求,向相应客户端节点反馈自身时钟对应的当前时间。
步骤307:各个客户端节点根据接收到当前时间进行时间同步。
以上,为情况A的时间同步流程。
针对情况B:
在情况B下,在集群中选择至少两个节点将其配置为服务端节点,其他节点配置为客户端节点。其中,进一步将服务端节点中的一个节点配置为主服务节点,服务端节点中除主服务节点以外的其他节点配置为备服务节点。
其中,服务端节点的选择方式可以是随机选择,以及服务端节点的个数也可以根据需求来确定。请参考图4,为时间同步系统示意图,服务端节点个数为(n+1)个,其中,主服务节点1个,备服务节点n个。其中,n为不小于1的正整数。
备服务节点的配置是为了防止在主服务节点故障时,集群的各个节点无法实现时间同步的问题,由备服务节点接管主服务节点,来实现集群内各个节点的时间同步。
在情况B下,需要对集群中的节点进行如下配置:
1、对集群中各个节点的配置。
在集群的各个节点中均安装部署NTP(Network Time Protocol,网络时间协议)组件,用于实现集群中各个节点的时间同步。
2、对服务端节点的配置。
在服务端节点中配置ntp.conf文件,在该ntp.conf文件中包括外部的时间服务器的地址和时间同步间隔1。例如,该时间同步间隔1为1个小时。在集群处于外网状态时,服务端节点可以每隔1个小时,根据该地址向外部的时间服务器请求一次时间同步。
在服务端节点中进一步配置fudge属性和server属性,用于实现在集群中不存在外网的情况下,服务端节点无需重复性的向外部的时间服务器请求时间同步,其中,在配置的fudge属性和server属性中可以配置重试次数,以及重试时间阈值。
例如,配置的重试时间阈值为3s,重试次数为3次。那么在服务端节点向外部的时间服务器发送同步请求之后经过3s未接收到反馈信息,则进行下一次重试。在服务端节点重试三次向外部的时间服务器请求时间同步,均未收到反馈的标准时间,那么确定集群内不存在外网。
在集群内不存在外网的情况下,服务端节点根据配置的fudge属性和server属性,将自身的时间作为标准时间提供给客户端节点,以实现时间同步。
在该情况B下,进一步需要对备服务节点进行如下配置:
在备服务节点中配置NTP HA(High Available,高可用性集群)监控组件。在本实施例中,该监控组件中至少可以包括如下内容:时间间隔2、第一时间阈值和主服务节点的接管顺序。
其中,时间间隔2的设置目的是:备服务节点每隔该时间间隔2时,向主服务节点请求一次时间同步。其中,该时间同步间隔2可以与时间同步间隔1相同,也可以不同,例如,该时间间隔2为1个小时。
其中,第一时间阈值的设置目的是:在备服务节点在向主服务节点发送同步请求之后时间到达第一时间阈值时,未接收到主服务节点反馈的信息,那么确定主服务节点故障。例如,该第一时间阈值为3s。
其中,主服务节点的接管顺序的设置目的是:在当前备服务节点确定主服务节点故障时,根据该主服务节点的地址和主服务节点的接管顺序,确定接管该主服务节点的备服务节点,将确定的该接管备服务节点作为主服务节点实现时间同步。假设,该主服务节点的接管顺序为:主服务节点-备服务节点1-备服务节点2-备服务节点3-……-备服务节点n。
各个备服务节点也可以根据该主服务节点的接管顺序,确定由哪一个备服务节点来接管当前的主服务节点。
3、对客户端节点的配置。
在客户端节点中配置时间同步地址、时间同步间隔2和第二时间阈值,其中,该时间同步间隔2可以与时间同步间隔1相同,也可以不同,例如,该时间同步间隔2为1个小时。
其中,该第二时间阈值的设置目的是,客户端节点在向主服务节点发送同步请求之后到达第二时间阈值,未接收到主服务节点的反馈信息,则确定主服务节点故障。
在该情况B下,该时间同步地址为各个服务端节点的地址,其中,在为客户端节点配置时间同步地址时,需要根据各个主服务节点的接管顺序进行配置,其中,该服务端节点的地址配置顺序如下:主服务节点的地址-备服务节点1的地址-备服务节点2的地址-备服务节点3的地址-……-备服务节点n的地址。
在该情况B下,客户端节点根据地址配置顺序,向配置顺序中第一个地址对应的服务端节点请求时间同步,在发送同步请求之后第二时间阈值内未接收到反馈信息,则确定该服务端节点故障,客户端节点向第二个地址对应的服务端节点请求时间同步,以此类推。
在该情况B下,图4所示的时间同步系统所实现的时间同步方式请参考图5,可以包括如下步骤:
步骤501:主服务节点根据配置的时间同步间隔1和地址,向外部的时间服务器发送同步请求。
步骤502:判断在设定的重试时间阈值内是否接收到外部的时间服务器反馈的标准时间,若未接收到,执行步骤503;若接收到,执行步骤504。
步骤503:判断是否超过设定的重试次数,若超过,则分别执行步骤505和步骤509;若未超过,则执行步骤501。
步骤504:主服务节点根据标准时间对自身时钟进行同步。
在客户端节点方面,执行步骤505。在备服务节点方面,执行步骤509。
步骤505:各个客户端节点根据配置的时间间隔2和时间同步地址,向主服务节点发送同步请求。
在初始情况下,各个客户端节点根据时间同步地址确定主服务节点,其中,确定的主服务节点为图4中的主服务节点。
步骤506:各个客户端节点根据配置的第二时间阈值,判断在到达第二时间阈值时,是否接收到主服务节点的反馈信息,若是,则执行步骤507,否则,执行步骤508。
步骤507:根据主服务节点反馈的当前时间进行时间同步,并执行步骤505。
步骤508:各个客户端节点根据时间同步地址中服务端节点的地址配置顺序,确定位于主服务节点下一个地址对应的备服务节点,将该备服务节点作为主服务节点,并执行步骤505。
例如,主服务节点故障之后,位于主服务节点下一个地址对应的备服务节点是图4中的备服务节点1,那么将备服务节点1作为主服务节点,实现时间同步。
步骤509:各个备服务节点根据配置的时间间隔2和主服务节点的接管顺序,向主服务节点发送同步请求。
在初始情况下,各个备服务节点根据主服务节点的接管顺序确定主服务节点,其中,确定的主服务节点为图4中的主服务节点。
步骤510:各个备服务节点根据配置的第一时间阈值,判断在到达第一时间阈值时,是否接收到主服务节点的反馈信息,若是,则执行步骤511,否则,执行步骤512。
步骤511:根据主服务节点反馈的当前时间进行时间同步,并执行步骤509。
步骤512:各个备服务节点根据主服务节点的接管顺序,确定位于主服务节点下一个地址对应的备服务节点,将该备服务节点作为主服务节点,作为主服务节点的该备服务节点执行步骤501,其他备用服务执行步骤509。
以上为上述情况A和情况B的集群时间同步流程。
请参考图6,本发明实施例还提供了一种集群,可以包括:
配置单元601,用于在所述集群中选择至少一个节点配置为服务端节点,其他节点配置为客户端节点,根据各个服务端节点的地址为客户端节点配置时间同步地址;
服务端节点602,用于向外部的时间服务器发送第一同步请求,并接收所述时间服务器发送的标准时间;根据所述标准时间对自身的时钟进行同步;接收客户端节点发送的第二同步请求,并根据所述第二同步请求,向相应客户端节点反馈自身时钟对应的当前时间;
客户端节点603,用于根据配置的时间同步地址,向服务端节点发送第二同步请求;根据服务端节点反馈的当前时间进行时间同步。
在本发明一个实施例中,所述服务端节点包括:至少两个节点;
所述配置节点,进一步用于将所述服务端节点中的一个节点配置为主服务节点,将所述服务端节点中除所述主服务节点之外的其他节点配置为备服务节点;
所述主服务节点,用于执行所述向外部的时间服务器发送第一同步请求,并接收所述时间服务器发送的标准时间;根据所述标准时间对自身的时钟进行同步;接收客户端节点发送的第二同步请求,并根据所述第二同步请求,向相应客户端节点反馈自身时钟对应的当前时间;
所述主服务节点,进一步用于接收所述备服务节点发送的第三同步请求,并向所述备服务节点发送自身时钟对应的当前时间;
所述客户端节点,具体用于向所述主服务节点发送所述第二同步请求;
所述备服务节点,用于向所述主服务节点发送第三同步请求;并根据所述主服务节点反馈的当前时间进行时间同步。
在本发明一个实施例中,所述配置单元,进一步用于在各个备服务节点中配置第一时间阈值和主服务节点的接管顺序;
各个备服务节点,进一步用于在向主服务节点发送了所述第三同步请求之后,在到达所述第一时间阈值时,未接收到主服务节点的反馈信息,则根据所述主服务节点的接管顺序,用于接管该主服务节点的备服务节点接管该主服务节点,其他备服务节点将该用于接管该主服务节点的备服务节点作为时间同步的主服务节点。
在本发明一个实施例中,所述配置单元,进一步用于在各个客户端节点中配置第二时间阈值;
所述配置单元,具体用于将所述主服务节点的接管顺序作为时间同步地址的配置顺序,为各个客户端节点配置时间同步地址;
所述客户端节点,进一步用于在所述客户端节点向所述主服务节点发送了所述第二同步请求之后,在到达第二时间阈值时,未收到所述主服务节点的反馈信息时,则确定所述主服务节点故障;根据时间同步地址的配置顺序,将位于所述主服务节点地址下一个位置的地址对应的备服务节点作为时间同步的主服务节点。
本发明实施例还提供了一种时间同步系统,包括:时间服务器和上述任一所述集群;其中,
所述时间服务器,用于接收所述集群中服务端节点发送的所述第一同步请求,并根据所述第一同步请求反馈标准时间。
综上,本发明各个实施例至少可以实现如下有益效果:
1、在本发明实施例中,通过在集群中选择至少一个节点配置为服务端节点,其他节点配置为客户端节点,并根据各个服务端节点的地址为客户端节点配置为时间同步地址,由服务端节点向外部的时间服务器发送第一同步请求,以实现服务端节点与标准时间的同步,集群内的客户端节点通过向服务端节点发送第二同步请求,以实现与服务端节点的时间同步,从而实现了集群内各个节点时间的自动同步,提高了时间同步的效率。
2、在本发明实施例中,通过在集群中配置至少两个服务端节点,并将一个服务端节点配置为主服务节点,其他服务端节点配置为备服务节点,在主服务节点发生故障无法实现时间同步时,可以由备服务节点接管主服务节点实现时间同步。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个〃·····”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。